9#if UE_ENABLE_INCLUDE_ORDER_DEPRECATED_IN_5_6
16#include "SceneDefinitions.h"
21#define USE_MESH_BATCH_VALIDATION !UE_BUILD_SHIPPING
46 inline bool IsBound()
const {
return GPUSceneWriteDelegate !=
nullptr; }
51 return GPUSceneWriteDelegate;
208 TEXT(
"DynamicPrimitiveData provided should have %u instances in InstanceSceneData. Found %d"),
213 TEXT(
"DynamicPrimitiveData provided should have %u elements in InstanceDynamicData. Found %d"),
219 TEXT(
"DynamicPrimitiveData provided has the custom data flag set, but NumInstanceCustomDataFloats == 0"));
221 TEXT(
"DynamicPrimitiveData provided should have %u elements in InstanceCustomData. Found %d"),
297#if UE_ENABLE_DEBUG_DRAWING
450 uint32 CastRayTracedShadow : 1;
466#if UE_ENABLE_DEBUG_DRAWING
509#if USE_MESH_BATCH_VALIDATION
545 , CastRayTracedShadow(
true)
#define NULL
Definition oodle2base.h:134
#define check(expr)
Definition AssertionMacros.h:314
#define checkf(expr, format,...)
Definition AssertionMacros.h:315
#define UE_BUILD_TEST
Definition Build.h:17
#define UE_BUILD_SHIPPING
Definition Build.h:20
#define WITH_EDITOR
Definition Build.h:67
@ INDEX_NONE
Definition CoreMiscDefines.h:150
#define UE_DEPRECATED(Version, Message)
Definition CoreMiscDefines.h:302
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define SDPG_NumBits
Definition EngineDefines.h:70
#define UE_ENABLE_DEBUG_DRAWING
Definition EngineDefines.h:15
@ SDPG_World
Definition EngineTypes.h:189
return true
Definition ExternalRpcRegistry.cpp:601
EGPUSceneGPUWritePass
Definition MeshBatch.h:61
EPrimitiveIdMode
Definition MeshBatch.h:72
@ PrimID_FromPrimitiveSceneInfo
Definition MeshBatch.h:77
@ PrimID_NumBits
Definition MeshBatch.h:92
@ PrimID_ForceZero
Definition MeshBatch.h:89
@ PrimID_Num
Definition MeshBatch.h:91
@ PrimID_DynamicPrimitiveShaderData
Definition MeshBatch.h:83
constexpr int32 GPrimIDDynamicFlag
Definition MeshBatch.h:96
ENGINE_API bool AreCompressedTransformsSupported()
Definition SceneManagement.cpp:34
ENGINE_API bool IsCompatibleWithHairStrands(const FMaterial *Material, const ERHIFeatureLevel::Type FeatureLevel)
Definition MaterialInterface.cpp:81
ENGINE_API bool IsHairStrandsGeometrySupported(const EShaderPlatform Platform)
Definition MaterialInterface.cpp:73
#define RHI_RAYTRACING
Definition RHIDefinitions.h:65
@ PT_NumBits
Definition RHIDefinitions.h:847
@ PT_TriangleList
Definition RHIDefinitions.h:824
USkinnedMeshComponent float
Definition SkinnedMeshComponent.h:60
if(Failed) console_printf("Failed.\n")
Definition MeshBatch.h:44
bool IsBound() const
Definition MeshBatch.h:46
FGPUSceneWriteDelegate * operator->() const
Definition MeshBatch.h:48
Definition GPUSceneWriter.h:91
Definition HitProxies.h:86
Definition RenderResource.h:509
Definition SceneManagement.h:820
Definition MaterialRenderProxy.h:102
Definition MaterialShared.h:2058
Definition PrimitiveSceneProxy.h:296
Definition RHIResources.h:1581
Definition SplineMeshSceneProxy.h:165
Definition VertexFactory.h:661
Type
Definition RHIFeatureLevel.h:20
Definition RuntimeVirtualTexture.h:231
@ false
Definition radaudio_common.h:23
static CORE_API const FColor White
Definition Color.h:749
Definition InstanceUniformShaderParameters.h:44
Definition InstanceUniformShaderParameters.h:18
Definition MaterialShared.h:1181
static constexpr UE_FORCEINLINE_HINT T DivideAndRoundUp(T Dividend, T Divisor)
Definition UnrealMathUtility.h:694
Definition MeshBatch.h:124
TConstArrayView< float > InstanceCustomData
Definition MeshBatch.h:128
EGPUSceneGPUWritePass DataWriterGPUPass
Definition MeshBatch.h:130
void Validate(uint32 NumInstances) const
Definition MeshBatch.h:202
uint32 GetPayloadFloat4Stride() const
Definition MeshBatch.h:159
TConstArrayView< FRenderBounds > InstanceLocalBounds
Definition MeshBatch.h:127
FGPUSceneWriteDelegateRef DataWriterGPU
Definition MeshBatch.h:129
uint32 NumInstanceCustomDataFloats
Definition MeshBatch.h:132
void SetPayloadDataFlags(uint16 Flags, bool bValue)
Definition MeshBatch.h:134
void SetNumInstanceCustomDataFloats(uint32 NumFloats)
Definition MeshBatch.h:149
void EnableInstanceLocalBounds(bool bEnable)
Definition MeshBatch.h:148
TConstArrayView< FInstanceDynamicData > InstanceDynamicData
Definition MeshBatch.h:126
void EnableInstanceDynamicData(bool bEnable)
Definition MeshBatch.h:146
uint16 PayloadDataFlags
Definition MeshBatch.h:131
void EnableInstanceSkinningData(bool bEnable)
Definition MeshBatch.h:147
TConstArrayView< FInstanceSceneData > InstanceSceneData
Definition MeshBatch.h:125
Definition MeshBatch.h:99
uint32 FirstIndex
Definition MeshBatch.h:103
uint32 PrimitiveType
Definition MeshBatch.h:105
bool IsValid() const
Definition MeshBatch.h:108
FIndexBuffer * IndexBuffer
Definition MeshBatch.h:101
Definition MeshBatch.h:232
uint32 NumPrimitives
Definition MeshBatch.h:277
FRHIUniformBuffer * PrimitiveUniformBuffer
Definition MeshBatch.h:237
uint32 bUserDataIsColorVertexBuffer
Definition MeshBatch.h:290
uint32 MinVertexIndex
Definition MeshBatch.h:282
float MinScreenSize
Definition MeshBatch.h:285
const FIndexBuffer * IndexBuffer
Definition MeshBatch.h:249
uint32 bForceInstanceCulling
Definition MeshBatch.h:293
uint32 DynamicPrimitiveIndex
Definition MeshBatch.h:309
const void * UserData
Definition MeshBatch.h:264
int32 GetNumPrimitives() const
Definition MeshBatch.h:312
FUniformBufferRHIRef LooseParametersUniformBuffer
Definition MeshBatch.h:246
FMeshBatchElement()
Definition MeshBatch.h:329
uint32 bPreserveInstanceOrder
Definition MeshBatch.h:294
uint32 InstancedLODRange
Definition MeshBatch.h:289
int32 VisualizeElementIndex
Definition MeshBatch.h:299
int32 UserIndex
Definition MeshBatch.h:284
FRHIBuffer * IndirectArgsBuffer
Definition MeshBatch.h:269
uint32 IndirectArgsOffset
Definition MeshBatch.h:270
uint32 InstancedLODIndex
Definition MeshBatch.h:288
FColor SkinCacheDebugColor
Definition MeshBatch.h:301
float MaxScreenSize
Definition MeshBatch.h:286
FMeshBatchElementDynamicIndexBuffer DynamicIndexBuffer
Definition MeshBatch.h:255
uint32 DynamicPrimitiveInstanceSceneDataOffset
Definition MeshBatch.h:310
uint32 * InstanceRuns
Definition MeshBatch.h:260
uint32 bIsSplineProxy
Definition MeshBatch.h:291
uint32 BaseVertexIndex
Definition MeshBatch.h:281
void * VertexFactoryUserData
Definition MeshBatch.h:267
uint32 MaxVertexIndex
Definition MeshBatch.h:283
EPrimitiveIdMode PrimitiveIdMode
Definition MeshBatch.h:273
const class FSplineMeshSceneProxy * SplineMeshSceneProxy
Definition MeshBatch.h:262
uint32 bIsInstanceRuns
Definition MeshBatch.h:292
uint32 FirstIndex
Definition MeshBatch.h:275
uint32 NumInstances
Definition MeshBatch.h:280
const FMeshBatchDynamicPrimitiveData * DynamicPrimitiveData
Definition MeshBatch.h:308
uint32 bFetchInstanceCountFromScene
Definition MeshBatch.h:295
const TUniformBuffer< FPrimitiveUniformShaderParameters > * PrimitiveUniformBufferResource
Definition MeshBatch.h:243
Definition MeshBatch.h:371
uint32 bUseForMaterial
Definition MeshBatch.h:410
uint32 RuntimeVirtualTextureMaterialType
Definition MeshBatch.h:444
FMeshBatch(const FMeshBatch &)=default
int8 VisualizeLODIndex
Definition MeshBatch.h:471
uint32 bSelectable
Definition MeshBatch.h:436
uint32 bUseForWaterInfoTextureDepth
Definition MeshBatch.h:461
const FLightCacheInterface * LCI
Definition MeshBatch.h:381
FMeshBatch(FMeshBatch &&)=default
PRAGMA_DISABLE_DEPRECATION_WARNINGS FMeshBatch()
Definition MeshBatch.h:519
FHitProxyId BatchHitProxyId
Definition MeshBatch.h:384
const FMaterialRenderProxy * MaterialRenderProxy
Definition MeshBatch.h:378
ENGINE_API bool UseForHairStrands(ERHIFeatureLevel::Type InFeatureLevel) const
Definition MeshBatch.cpp:26
uint32 Type
Definition MeshBatch.h:415
uint32 DepthPriorityGroup
Definition MeshBatch.h:417
FMeshBatch & operator=(FMeshBatch &&)=default
uint32 bUseSelectionOutline
Definition MeshBatch.h:433
uint32 bDitheredLODTransition
Definition MeshBatch.h:439
uint16 MeshIdInPrimitive
Definition MeshBatch.h:397
bool HasAnyDrawCalls() const
Definition MeshBatch.h:495
uint32 bCanApplyViewModeOverrides
Definition MeshBatch.h:420
int32 GetNumPrimitives() const
Definition MeshBatch.h:485
uint32 bUseForDepthPass
Definition MeshBatch.h:411
FMeshBatch & operator=(const FMeshBatch &)=default
uint32 bRenderToVirtualTexture
Definition MeshBatch.h:442
ENGINE_API bool IsDualBlend(ERHIFeatureLevel::Type InFeatureLevel) const
Definition MeshBatch.cpp:20
uint32 bUseForLumenSurfaceCacheCapture
Definition MeshBatch.h:464
ENGINE_API bool Validate(const FPrimitiveSceneProxy *SceneProxy, ERHIFeatureLevel::Type FeatureLevel) const
uint32 bUseWireframeSelectionColoring
Definition MeshBatch.h:426
int32 SegmentIndex
Definition MeshBatch.h:394
uint32 ReverseCulling
Definition MeshBatch.h:402
uint32 bWireframe
Definition MeshBatch.h:413
int32 DynamicMeshBoundsIndex
Definition MeshBatch.h:387
uint32 bDisableBackfaceCulling
Definition MeshBatch.h:403
ENGINE_API void PreparePrimitiveUniformBuffer(const FPrimitiveSceneProxy *PrimitiveSceneProxy, ERHIFeatureLevel::Type FeatureLevel)
Definition SceneManagement.cpp:1590
const FVertexFactory * VertexFactory
Definition MeshBatch.h:375
float TessellationDisablingShadowMapMeshSize
Definition MeshBatch.h:391
ENGINE_API bool IsMasked(ERHIFeatureLevel::Type InFeatureLevel) const
Definition MeshBatch.cpp:37
uint32 bViewDependentArguments
Definition MeshBatch.h:458
ENGINE_API bool IsDecal(ERHIFeatureLevel::Type InFeatureLevel) const
Definition MeshBatch.cpp:13
ENGINE_API bool IsTranslucent(ERHIFeatureLevel::Type InFeatureLevel) const
Definition MeshBatch.cpp:7
uint32 bOverlayMaterial
Definition MeshBatch.h:447
TArray< FMeshBatchElement, TInlineAllocator< 1 > > Elements
Definition MeshBatch.h:372
int8 LODIndex
Definition MeshBatch.h:400
int8 VisualizeHLODIndex
Definition MeshBatch.h:468
FMeshBatch(FMeshBatch &)=default
uint32 CastShadow
Definition MeshBatch.h:409
uint32 bUseAsOccluder
Definition MeshBatch.h:412
Definition RenderTransform.h:272