Navigation
API > API/Runtime > API/Runtime/RenderCore > API/Runtime/RenderCore/FRDGBuilder
Overloads
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
FRDGPassRef AddPass
(
FRDGEventName&& Name, |
Adds a lambda pass to the graph without any parameters. | RenderGraphBuilder.h | |
FRDGPass * AddPass
(
FRDGEventName&& Name, |
|||
FRDGPassRef AddPass
(
FRDGEventName&& Name, |
Adds a lambda pass to the graph with an accompanied pass parameter struct. | RenderGraphBuilder.h | |
FRDGPass * AddPass
(
FRDGEventName&& Name, |
|||
FRDGPassRef AddPass
(
FRDGEventName&& Name, |
Adds a lambda pass to the graph with a runtime-generated parameter struct. | RenderGraphBuilder.h | |
FRDGPass * AddPass
(
FRDGEventName&& Name, |
AddPass(FRDGEventName &&, ERDGPassFlags, ExecuteLambdaType &&)
Description
Adds a lambda pass to the graph without any parameters. This useful for deferring RHI work onto the graph timeline, or incrementally porting code to use the graph system. NeverCull and SkipRenderPass (if Raster) are implicitly added to Flags. AsyncCompute is not allowed. It is never permitted to access a created (i.e. not externally registered) RDG resource outside of passes it is registered with, as the RHI lifetime is not guaranteed.
| Name | AddPass |
| Type | function |
| Header File | /Engine/Source/Runtime/RenderCore/Public/RenderGraphBuilder.h |
| Include Path | #include "RenderGraphBuilder.h" |
template<typename ExecuteLambdaType>
FRDGPassRef AddPass
(
FRDGEventName && Name,
ERDGPassFlags Flags,
ExecuteLambdaType && ExecuteLambda
)
AddPass(FRDGEventName &&, ERDGPassFlags, ExecuteLambdaType &&)
| Name | AddPass |
| Type | function |
| Header File | /Engine/Source/Runtime/RenderCore/Public/RenderGraphBuilder.inl |
| Include Path | #include "RenderGraphBuilder.inl" |
template<typename ExecuteLambdaType>
FRDGPass * AddPass
(
FRDGEventName && Name,
ERDGPassFlags Flags,
ExecuteLambdaType && ExecuteLambda
)
AddPass(FRDGEventName &&, const ParameterStructType *, ERDGPassFlags, ExecuteLambdaType &&)
Description
Adds a lambda pass to the graph with an accompanied pass parameter struct.
RDG resources declared in the struct (via _RDG parameter macros) are safe to access in the lambda. The pass parameter struct should be allocated by AllocParameters(), and once passed in, should not be mutated. It is safe to provide the same parameter struct to multiple passes, so long as it is kept immutable. The lambda is deferred until execution unless the immediate debug mode is enabled. All lambda captures should assume deferral of execution.
The lambda must include a single RHI command list as its parameter. The exact type of command list depends on the workload. For example, use FRHIComputeCommandList& for Compute / AsyncCompute workloads. Raster passes should use FRHICommandList&. Prefer not to use FRHICommandListImmediate& unless actually required.
Declare the type of GPU workload (i.e. Copy, Compute / AsyncCompute, Graphics) to the pass via the Flags argument. This is used to determine async compute regions, render pass setup / merging, RHI transition accesses, etc. Other flags exist for specialized purposes, like forcing a pass to never be culled (NeverCull). See ERDGPassFlags for more info.
The pass name is used by debugging / profiling tools.
| Name | AddPass |
| Type | function |
| Header File | /Engine/Source/Runtime/RenderCore/Public/RenderGraphBuilder.h |
| Include Path | #include "RenderGraphBuilder.h" |
template<typename ParameterStructType, typename ExecuteLambdaType>
FRDGPassRef AddPass
(
FRDGEventName && Name,
const ParameterStructType * ParameterStruct,
ERDGPassFlags Flags,
ExecuteLambdaType && ExecuteLambda
)
AddPass(FRDGEventName &&, const ParameterStructType *, ERDGPassFlags, ExecuteLambdaType &&)
| Name | AddPass |
| Type | function |
| Header File | /Engine/Source/Runtime/RenderCore/Public/RenderGraphBuilder.inl |
| Include Path | #include "RenderGraphBuilder.inl" |
template<typename ParameterStructType, typename ExecuteLambdaType>
FRDGPass * AddPass
(
FRDGEventName && Name,
const ParameterStructType * ParameterStruct,
ERDGPassFlags Flags,
ExecuteLambdaType && ExecuteLambda
)
AddPass(FRDGEventName &&, const FShaderParametersMetadata , const void , ERDGPassFlags, ExecuteLambdaType &&)
Description
Adds a lambda pass to the graph with a runtime-generated parameter struct.
| Name | AddPass |
| Type | function |
| Header File | /Engine/Source/Runtime/RenderCore/Public/RenderGraphBuilder.h |
| Include Path | #include "RenderGraphBuilder.h" |
template<typename ExecuteLambdaType>
FRDGPassRef AddPass
(
FRDGEventName && Name,
const FShaderParametersMetadata * ParametersMetadata,
const void * ParameterStruct,
ERDGPassFlags Flags,
ExecuteLambdaType && ExecuteLambda
)
AddPass(FRDGEventName &&, const FShaderParametersMetadata , const void , ERDGPassFlags, ExecuteLambdaType &&)
| Name | AddPass |
| Type | function |
| Header File | /Engine/Source/Runtime/RenderCore/Public/RenderGraphBuilder.inl |
| Include Path | #include "RenderGraphBuilder.inl" |
template<typename ExecuteLambdaType>
FRDGPass * AddPass
(
FRDGEventName && Name,
const FShaderParametersMetadata * ParametersMetadata,
const void * ParameterStruct,
ERDGPassFlags Flags,
ExecuteLambdaType && ExecuteLambda
)