XII Release 0.1.0
Loading...
Searching...
No Matches
xiiRenderGraphCompiledPass Struct Reference

A fully compiled render pass ready for execution. More...

#include <RenderGraph.h>

Public Attributes

xiiRenderGraphId m_Id
 Setup-local pass ID for tools and profiling.
xiiHashedString m_sName
 Debug name for this pass, used in profiling and diagnostics.
xiiUInt32 m_uiPassIndex = xiiInvalidIndex
 Index into the graph's pass table.
xiiUInt32 m_uiQueueIndex = 0U
 0=Graphics, 1=AsyncCompute, 2=AsyncTransfer.
xiiUInt32 m_uiMergeGroupIndex = xiiInvalidIndex
 Index into the graph's merge group array, or xiiInvalidIndex if this pass is not merged with any others.
bool m_bHasSideEffects = false
 Whether this pass has side effects (e.g. present, copy to readback, UAV write with unknown output, etc.) that must be preserved even if no other pass reads from it.
bool m_bAllowMerge = true
 Whether this pass is allowed to be merged with adjacent passes on the same queue. This is a hint to the compiler, but not a guarantee.
bool m_bManagedRenderPass = false
 Whether the graph owns the native render-pass scope for this pass. Legacy passes may continue to open their own scopes.
bool m_bIsCulled = false
 Whether this pass was culled during compilation. Culled passes are not executed, but may still have side effects if they are reachable from a side-effect pass.
xiiHybridArray< xiiUInt32, 4 > m_PreBarrierIndices
 For split barriers, the end barrier is emitted before the pass and the begin barrier is emitted after the pass, so the compiler can overlap the transition with GPU execution of this pass and future consumers.
xiiHybridArray< xiiUInt32, 4 > m_PostBarrierBeginIndices
 For split barriers, the begin barrier is emitted after the pass and the end barrier is emitted before the next producer, so the compiler can overlap the transition with GPU execution of this pass and past producers.
xiiHybridArray< xiiUInt32, 4 > m_PostBarrierIndices
 Immediate export/ownership transitions emitted after the pass.
xiiHybridArray< xiiUInt32, 4 > m_AcquireResourceIndices
 Indices into the graph's resource table for transient resources whose lifetime starts at this pass. The executor will acquire these resources from the cache before executing the pass and return them to the cache after executing the pass.
xiiHybridArray< xiiUInt32, 4 > m_ReleaseResourceIndices
 Indices into the graph's resource table for transient resources whose lifetime ends at this pass. The executor will acquire these resources from the cache before executing the pass and return them to the cache after executing the pass.
xiiHybridArray< xiiUInt32, 4 > m_DependencyPassIndices
 Indices of passes that this pass depends on (i.e. there is a path of resource reads/writes from those passes to this pass). This is used for diagnostics and profiling, but not for execution order, which is determined by the queue submission order.
void * m_pPassData = nullptr
 The pass data struct is defined by the user in the setup callback and contains all information needed to execute the pass. The execute callback will cast this pointer back to the correct type.
xiiDelegate< void(class xiiRenderGraphPassContext &)> m_ExecuteDelegate
xiiDelegate< void(xiiRenderGraphPassContext &)> m_PrepareDelegate
 The execute callback records GPU commands for this pass into the command list provided by the context, using the resolved resources and blackboard data. The callback must not modify the graph or its resources, as it may be executed multiple times during the frame (e.g. for multi-GPU or split-frame rendering).

Detailed Description

A fully compiled render pass ready for execution.


The documentation for this struct was generated from the following file:
  • /home/runner/work/XII/XII/Source/Engine/GraphicsCore/Pipeline/RenderGraph.h