|
|
| ezGALCommandEncoder (ezGALDevice &ref_device, ezGALCommandEncoderCommonPlatformInterface &ref_commonImpl) |
| |
| void | SetBindGroup (ezUInt32 uiBindGroup, const ezGALBindGroupCreationDescription &bindGroup) |
| | Sets a bind group to the given bind group index. Preferably, bindGroup should be created via ezBindGroupBuilder::CreateBindGroup.
|
| |
| void | SetBindGroup (ezUInt32 uiBindGroup, ezGALBindGroupHandle hBindGroup) |
| | Sets a bind group resource to the given bind group index. As there are two functions to set bind groups (this one and the overload for transient bind groups) the last call takes precedence if both functions are called for the same index. Resources in hBindGroup must be in the states required by their shader binding when the bind group is used by a draw or dispatch call.
|
| |
|
void | SetPushConstants (ezArrayPtr< const ezUInt8 > data) |
| |
| ezGALTimestampHandle | InsertTimestamp () |
| |
| ezGALOcclusionHandle | BeginOcclusionQuery (ezEnum< ezGALQueryType > type) |
| | Starts an occlusion query. This function must be called within a render scope and EndOcclusionQuery must be called within the same scope. Only one occlusion query can be active at any given time.
|
| |
| void | EndOcclusionQuery (ezGALOcclusionHandle hOcclusion) |
| | Ends an occlusion query. The given handle must afterwards be passed into the ezGALDevice::GetOcclusionQueryResult function, which needs to be repeated every frame until results are ready.
|
| |
| ezGALFenceHandle | InsertFence () |
| |
|
void | CopyBuffer (ezGALBufferHandle hDest, ezGALBufferHandle hSource) |
| | hDest must be in ezGALResourceState::CopyDestination. hSource must be in ezGALResourceState::CopySource.
|
| |
|
void | CopyBufferRegion (ezGALBufferHandle hDest, ezUInt32 uiDestOffset, ezGALBufferHandle hSource, ezUInt32 uiSourceOffset, ezUInt32 uiByteCount) |
| | hDest must be in ezGALResourceState::CopyDestination. hSource must be in ezGALResourceState::CopySource.
|
| |
|
void | UpdateBuffer (ezGALBufferHandle hDest, ezUInt32 uiDestOffset, ezArrayPtr< const ezUInt8 > sourceData, ezGALUpdateMode::Enum updateMode=ezGALUpdateMode::TransientConstantBuffer) |
| | Updates a buffer region. TransientConstantBuffer is only allowed on transient constant buffers. AheadOfTime means the update happens before the encoder commands are executed. No state prerequisites are required.
|
| |
|
void | CopyTexture (ezGALTextureHandle hDest, ezGALTextureHandle hSource) |
| | hDest must be in ezGALResourceState::CopyDestination. hSource must be in ezGALResourceState::CopySource.
|
| |
|
void | CopyTextureRegion (ezGALTextureHandle hDest, const ezGALTextureSubresource &destinationSubResource, const ezVec3U32 &vDestinationPoint, ezGALTextureHandle hSource, const ezGALTextureSubresource &sourceSubResource, const ezBoundingBoxu32 &box) |
| | destinationSubResource of hDest must be in ezGALResourceState::CopyDestination. sourceSubResource of hSource must be in ezGALResourceState::CopySource.
|
| |
|
void | UpdateTexture (ezGALTextureHandle hDest, const ezGALTextureSubresource &destinationSubResource, const ezBoundingBoxu32 &destinationBox, const ezGALSystemMemoryDescription &sourceData) |
| | Updates a texture region. Similar to UpdateBuffer with AheadOfTime. No state prerequisites are required.
|
| |
|
void | ResolveTexture (ezGALTextureHandle hDest, const ezGALTextureSubresource &destinationSubResource, ezGALTextureHandle hSource, const ezGALTextureSubresource &sourceSubResource) |
| | destinationSubResource of hDest must be in ezGALResourceState::ResolveDestination. sourceSubResource of hSource must be in ezGALResourceState::ResolveSource.
|
| |
|
void | ReadbackTexture (ezGALReadbackTextureHandle hDestination, ezGALTextureHandle hSource) |
| | hSource must be in ezGALResourceState::CopySource.
|
| |
|
void | ReadbackBuffer (ezGALReadbackBufferHandle hDestination, ezGALBufferHandle hSource) |
| | hSource must be in ezGALResourceState::CopySource.
|
| |
| void | TextureBarrier (ezArrayPtr< const ezGALTextureBarrier > barriers) |
| |
| void | TextureBarrier (ezGALTextureHandle hTexture, ezGALTextureRange range={}, ezBitflags< ezGALResourceState > stateBefore=ezGALResourceState::Default, ezBitflags< ezGALResourceState > stateAfter=ezGALResourceState::Default, ezBitflags< ezGALShaderStageFlags > stagesBefore=ezGALShaderStageFlags::Auto, ezBitflags< ezGALShaderStageFlags > stagesAfter=ezGALShaderStageFlags::Auto) |
| |
| void | BufferBarrier (ezArrayPtr< const ezGALBufferBarrier > barriers) |
| |
| void | BufferBarrier (ezGALBufferHandle hBuffer, ezBitflags< ezGALResourceState > stateBefore=ezGALResourceState::Default, ezBitflags< ezGALResourceState > stateAfter=ezGALResourceState::Default, ezBitflags< ezGALShaderStageFlags > stagesBefore=ezGALShaderStageFlags::Auto, ezBitflags< ezGALShaderStageFlags > stagesAfter=ezGALShaderStageFlags::Auto) |
| |
|
void | Flush () |
| | Submits all pending work to the GPU. Call this if you want to wait for a fence or some other kind of GPU synchronization to take place to ensure the work is actually submitted to the GPU.
|
| |
|
void | PushMarker (const char *szMarker) |
| |
|
void | PopMarker () |
| |
|
void | InsertEventMarker (const char *szMarker) |
| |
|
void | BeginCompute (const char *szName="") |
| |
|
void | EndCompute () |
| |
|
ezResult | Dispatch (ezUInt32 uiThreadGroupCountX, ezUInt32 uiThreadGroupCountY, ezUInt32 uiThreadGroupCountZ) |
| |
|
ezResult | DispatchIndirect (ezGALBufferHandle hIndirectArgumentBuffer, ezUInt32 uiArgumentOffsetInBytes) |
| | hIndirectArgumentBuffer must be in ezGALResourceState::DrawIndirect.
|
| |
|
void | BeginRendering (const ezGALRenderingSetup &renderingSetup, const char *szName="") |
| | Color targets in renderingSetup must be in ezGALResourceState::RenderTarget. The depth target must be in ezGALResourceState::DepthStencilRead or ezGALResourceState::DepthStencilWrite depending on the render target view.
|
| |
|
void | EndRendering () |
| |
|
bool | IsInRenderingScope () const |
| |
| void | Clear (const ezColor &clearColor, ezUInt32 uiRenderTargetClearMask=0xFFFFFFFFu, bool bClearDepth=true, bool bClearStencil=true, float fDepthClear=1.0f, ezUInt8 uiStencilClear=0x0u) |
| | Clears active rendertargets.
|
| |
|
ezResult | Draw (ezUInt32 uiVertexCount, ezUInt32 uiStartVertex) |
| | Bound vertex buffers must be in ezGALResourceState::VertexBuffer.
|
| |
|
ezResult | DrawIndexed (ezUInt32 uiIndexCount, ezUInt32 uiStartIndex) |
| | Bound vertex buffers must be in ezGALResourceState::VertexBuffer. The bound index buffer must be in ezGALResourceState::IndexBuffer.
|
| |
|
ezResult | DrawIndexedInstanced (ezUInt32 uiIndexCountPerInstance, ezUInt32 uiInstanceCount, ezUInt32 uiStartIndex) |
| | Bound vertex buffers must be in ezGALResourceState::VertexBuffer. The bound index buffer must be in ezGALResourceState::IndexBuffer.
|
| |
|
ezResult | DrawIndexedInstancedIndirect (ezGALBufferHandle hIndirectArgumentBuffer, ezUInt32 uiArgumentOffsetInBytes) |
| | Bound vertex buffers must be in ezGALResourceState::VertexBuffer. The bound index buffer must be in ezGALResourceState::IndexBuffer. hIndirectArgumentBuffer must be in ezGALResourceState::DrawIndirect.
|
| |
|
ezResult | DrawInstanced (ezUInt32 uiVertexCountPerInstance, ezUInt32 uiInstanceCount, ezUInt32 uiStartVertex) |
| | Bound vertex buffers must be in ezGALResourceState::VertexBuffer.
|
| |
|
ezResult | DrawInstancedIndirect (ezGALBufferHandle hIndirectArgumentBuffer, ezUInt32 uiArgumentOffsetInBytes) |
| | Bound vertex buffers must be in ezGALResourceState::VertexBuffer. hIndirectArgumentBuffer must be in ezGALResourceState::DrawIndirect.
|
| |
|
void | SetIndexBuffer (ezGALBufferHandle hIndexBuffer) |
| | hIndexBuffer must be invalidated or in ezGALResourceState::IndexBuffer.
|
| |
|
void | SetVertexBuffer (ezUInt32 uiSlot, ezGALBufferHandle hVertexBuffer, ezUInt32 uiOffset=0) |
| | hVertexBuffer must be invalidated or in ezGALResourceState::VertexBuffer.
|
| |
|
void | SetGraphicsPipeline (ezGALGraphicsPipelineHandle hGraphicsPipeline) |
| |
|
void | SetComputePipeline (ezGALComputePipelineHandle hComputePipeline) |
| |
|
void | SetViewport (const ezRectFloat &rect, float fMinDepth=0.0f, float fMaxDepth=1.0f) |
| |
|
void | SetScissorRect (const ezRectU32 &rect) |
| |
|
void | SetStencilReference (ezUInt8 uiStencilRefValue) |
| |
|
EZ_ALWAYS_INLINE ezGALDevice & | GetDevice () |
| |
|
void | InvalidateState () |
| |
|
const ezGALCommandEncoderStats & | GetStats () const |
| |
|
void | ResetStats () |
| |