/Engine/Source/Runtime/Renderer/Public/MeshPassProcessor.h
FMeshDrawCommandfully describes a mesh pass draw call, captured just above the RHI.FMeshDrawCommandshould contain only data needed to draw. For InitViews payloads, useFVisibleMeshDrawCommand. FMeshDrawCommands are cached at Primitive AddToScene time for vertex factories that support it (no per-frame or per-view shader binding changes). Dynamic Instancing operates at theFMeshDrawCommandlevel for robustness. Adding per-command shader bindings will reduce the efficiency of Dynamic Instancing, but rendering will always be correct. Any resources referenced by a command must be kept alive for the lifetime of the command.FMeshDrawCommandis not responsible for lifetime management of resources. For uniform buffers referenced by cachedFMeshDrawCommand's, RHIUpdateUniformBuffer makes it possible to access per-frame data in the shader without changing bindings.
class FMeshDrawCommand
union FMeshDraw...
@6087
uint32
BaseVertexIndex
FRHIBuffer*...
Buffer
FGraphicsMinima...
CachedPipelineId
PSO
uint32
FirstIndex
Draw command parameters
FRHIBuffer*...
IndexBuffer
FMeshDrawComman...
IndirectArgs
uint32
NumInstances
uint32
NumPrimitives
uint32
NumVertices
uint32
Offset
int8
PrimitiveIdStreamIndex
EPrimitiveType:...
PrimitiveType
Redundant as already present in CachedPipelineId, but need access for dynamic instancing on GPU.
FMeshDrawShader...
ShaderBindings
Resource bindings
uint8
StencilRef
Non-pipeline state
FMeshDrawComman...
VertexParams
FVertexInputStr...
VertexStreams