|
| RENDERCORE_API | FRDGBuilder (FRHICommandListImmediate &RHICmdList, FRDGEventName Name={}, ERDGBuilderFlags Flags=ERDGBuilderFlags::None, EShaderPlatform ShaderPlatform=GMaxRHIShaderPlatform) |
| |
| | FRDGBuilder (const FRDGBuilder &)=delete |
| |
| RENDERCORE_API | ~FRDGBuilder () |
| |
| FRDGTexture * | FindExternalTexture (FRHITexture *Texture) const |
| |
| FRDGTexture * | FindExternalTexture (IPooledRenderTarget *ExternalPooledTexture) const |
| |
| FRDGBuffer * | FindExternalBuffer (FRHIBuffer *Buffer) const |
| |
| FRDGBuffer * | FindExternalBuffer (FRDGPooledBuffer *ExternalPooledBuffer) const |
| |
| RENDERCORE_API FRDGTextureRef | RegisterExternalTexture (const TRefCountPtr< IPooledRenderTarget > &ExternalPooledTexture, ERDGTextureFlags Flags=ERDGTextureFlags::None) |
| |
| RENDERCORE_API FRDGTextureRef | RegisterExternalTexture (const TRefCountPtr< IPooledRenderTarget > &ExternalPooledTexture, const TCHAR *NameIfNotRegistered, ERDGTextureFlags Flags=ERDGTextureFlags::None) |
| |
| RENDERCORE_API FRDGBufferRef | RegisterExternalBuffer (const TRefCountPtr< FRDGPooledBuffer > &ExternalPooledBuffer, ERDGBufferFlags Flags=ERDGBufferFlags::None) |
| |
| RENDERCORE_API FRDGBufferRef | RegisterExternalBuffer (const TRefCountPtr< FRDGPooledBuffer > &ExternalPooledBuffer, ERDGBufferFlags Flags, ERHIAccess AccessFinal) |
| |
| RENDERCORE_API FRDGBufferRef | RegisterExternalBuffer (const TRefCountPtr< FRDGPooledBuffer > &ExternalPooledBuffer, const TCHAR *NameIfNotRegistered, ERDGBufferFlags Flags=ERDGBufferFlags::None) |
| |
| FRDGTextureRef | CreateTexture (const FRDGTextureDesc &Desc, const TCHAR *Name, ERDGTextureFlags Flags=ERDGTextureFlags::None) |
| |
| FRDGBufferRef | CreateBuffer (const FRDGBufferDesc &Desc, const TCHAR *Name, ERDGBufferFlags Flags=ERDGBufferFlags::None) |
| |
| FRDGBufferRef | CreateBuffer (const FRDGBufferDesc &Desc, const TCHAR *Name, FRDGBufferNumElementsCallback &&NumElementsCallback, ERDGBufferFlags Flags=ERDGBufferFlags::None) |
| |
| FRDGTextureSRVRef | CreateSRV (const FRDGTextureSRVDesc &Desc) |
| |
| FRDGBufferSRVRef | CreateSRV (const FRDGBufferSRVDesc &Desc) |
| |
| FRDGBufferSRVRef | CreateSRV (FRDGBufferRef Buffer, EPixelFormat Format) |
| |
| FRDGTextureUAVRef | CreateUAV (const FRDGTextureUAVDesc &Desc, ERDGUnorderedAccessViewFlags Flags=ERDGUnorderedAccessViewFlags::None) |
| |
| FRDGTextureUAVRef | CreateUAV (FRDGTextureRef Texture, ERDGUnorderedAccessViewFlags Flags=ERDGUnorderedAccessViewFlags::None, EPixelFormat Format=PF_Unknown) |
| |
| FRDGBufferUAVRef | CreateUAV (const FRDGBufferUAVDesc &Desc, ERDGUnorderedAccessViewFlags Flags=ERDGUnorderedAccessViewFlags::None) |
| |
| FRDGBufferUAVRef | CreateUAV (FRDGBufferRef Buffer, EPixelFormat Format, ERDGUnorderedAccessViewFlags Flags=ERDGUnorderedAccessViewFlags::None) |
| |
| template<typename ParameterStructType > |
| TRDGUniformBufferRef< ParameterStructType > | CreateUniformBuffer (const ParameterStructType *ParameterStruct) |
| |
| void * | Alloc (uint64 SizeInBytes, uint32 AlignInBytes=16) |
| |
| template<typename PODType > |
| PODType * | AllocPOD () |
| |
| template<typename PODType > |
| PODType * | AllocPODArray (uint32 Count) |
| |
| template<typename PODType > |
| TArrayView< PODType > | AllocPODArrayView (uint32 Count) |
| |
| template<typename ObjectType , typename... TArgs> |
| ObjectType * | AllocObject (TArgs &&... Args) |
| |
| template<typename ObjectType > |
| TArray< ObjectType, SceneRenderingAllocator > & | AllocArray () |
| |
| template<typename ParameterStructType > |
| ParameterStructType * | AllocParameters () |
| |
| template<typename ParameterStructType > |
| ParameterStructType * | AllocParameters (const ParameterStructType *StructToCopy) |
| |
| template<typename BaseParameterStructType > |
| BaseParameterStructType * | AllocParameters (const FShaderParametersMetadata *ParametersMetadata) |
| |
| template<typename BaseParameterStructType > |
| TStridedView< BaseParameterStructType > | AllocParameters (const FShaderParametersMetadata *ParametersMetadata, uint32 NumStructs) |
| |
| void | AddPostExecuteCallback (TUniqueFunction< void()> &&Callback) |
| |
| template<typename ParameterStructType , typename ExecuteLambdaType > |
| FRDGPassRef | AddPass (FRDGEventName &&Name, const ParameterStructType *ParameterStruct, ERDGPassFlags Flags, ExecuteLambdaType &&ExecuteLambda) |
| |
| template<typename ExecuteLambdaType > |
| FRDGPassRef | AddPass (FRDGEventName &&Name, const FShaderParametersMetadata *ParametersMetadata, const void *ParameterStruct, ERDGPassFlags Flags, ExecuteLambdaType &&ExecuteLambda) |
| |
| template<typename ExecuteLambdaType > |
| FRDGPassRef | AddPass (FRDGEventName &&Name, ERDGPassFlags Flags, ExecuteLambdaType &&ExecuteLambda) |
| |
| template<typename ParameterStructType , typename LaunchLambdaType > |
| FRDGPassRef | AddDispatchPass (FRDGEventName &&Name, const ParameterStructType *ParameterStruct, ERDGPassFlags Flags, LaunchLambdaType &&LaunchLambda) |
| |
| void | SetPassWorkload (FRDGPass *Pass, uint32 Workload) |
| |
| RENDERCORE_API void | AddPassDependency (FRDGPass *Producer, FRDGPass *Consumer) |
| |
| void | SetCommandListStat (TStatId StatId) |
| |
| void | AddDispatchHint () |
| |
| template<typename TaskLambda > |
| UE::Tasks::FTask | AddSetupTask (TaskLambda &&Task, bool bCondition=true, ERDGSetupTaskWaitPoint WaitPoint=ERDGSetupTaskWaitPoint::Compile) |
| |
| template<typename TaskLambda > |
| UE::Tasks::FTask | AddSetupTask (TaskLambda &&Task, UE::Tasks::ETaskPriority Priority, bool bCondition=true, ERDGSetupTaskWaitPoint WaitPoint=ERDGSetupTaskWaitPoint::Compile) |
| |
| template<typename TaskLambda > |
| UE::Tasks::FTask | AddSetupTask (TaskLambda &&Task, UE::Tasks::FPipe *Pipe, UE::Tasks::ETaskPriority Priority=UE::Tasks::ETaskPriority::Normal, bool bCondition=true, ERDGSetupTaskWaitPoint WaitPoint=ERDGSetupTaskWaitPoint::Compile) |
| |
| template<typename TaskLambda , typename PrerequisitesCollectionType > |
| UE::Tasks::FTask | AddSetupTask (TaskLambda &&Task, PrerequisitesCollectionType &&Prerequisites, UE::Tasks::ETaskPriority Priority=UE::Tasks::ETaskPriority::Normal, bool bCondition=true, ERDGSetupTaskWaitPoint WaitPoint=ERDGSetupTaskWaitPoint::Compile) |
| |
| template<typename TaskLambda , typename PrerequisitesCollectionType > |
| UE::Tasks::FTask | AddSetupTask (TaskLambda &&Task, UE::Tasks::FPipe *Pipe, PrerequisitesCollectionType &&Prerequisites, UE::Tasks::ETaskPriority Priority=UE::Tasks::ETaskPriority::Normal, bool bCondition=true, ERDGSetupTaskWaitPoint WaitPoint=ERDGSetupTaskWaitPoint::Compile) |
| |
| template<typename TaskLambda > |
| UE::Tasks::FTask | AddCommandListSetupTask (TaskLambda &&Task, bool bCondition=true, ERDGSetupTaskWaitPoint WaitPoint=ERDGSetupTaskWaitPoint::Compile) |
| |
| template<typename TaskLambda > |
| UE::Tasks::FTask | AddCommandListSetupTask (TaskLambda &&Task, UE::Tasks::ETaskPriority Priority, bool bCondition=true, ERDGSetupTaskWaitPoint WaitPoint=ERDGSetupTaskWaitPoint::Compile) |
| |
| template<typename TaskLambda > |
| UE::Tasks::FTask | AddCommandListSetupTask (TaskLambda &&Task, UE::Tasks::FPipe *Pipe, UE::Tasks::ETaskPriority Priority=UE::Tasks::ETaskPriority::Normal, bool bCondition=true, ERDGSetupTaskWaitPoint WaitPoint=ERDGSetupTaskWaitPoint::Compile) |
| |
| template<typename TaskLambda , typename PrerequisitesCollectionType > |
| UE::Tasks::FTask | AddCommandListSetupTask (TaskLambda &&Task, PrerequisitesCollectionType &&Prerequisites, UE::Tasks::ETaskPriority Priority=UE::Tasks::ETaskPriority::Normal, bool bCondition=true, ERDGSetupTaskWaitPoint WaitPoint=ERDGSetupTaskWaitPoint::Compile) |
| |
| template<typename TaskLambda , typename PrerequisitesCollectionType > |
| UE::Tasks::FTask | AddCommandListSetupTask (TaskLambda &&Task, UE::Tasks::FPipe *Pipe, PrerequisitesCollectionType &&Prerequisites, UE::Tasks::ETaskPriority Priority=UE::Tasks::ETaskPriority::Normal, bool bCondition=true, ERDGSetupTaskWaitPoint WaitPoint=ERDGSetupTaskWaitPoint::Compile) |
| |
| bool | IsParallelSetupEnabled () const |
| |
| bool | IsAsyncComputeEnabled () const |
| |
| RENDERCORE_API void | SetFlushResourcesRHI () |
| |
| void | SkipInitialAsyncComputeFence () |
| |
| void | QueueBufferUpload (FRDGBufferRef Buffer, const void *InitialData, uint64 InitialDataSize, ERDGInitialDataFlags InitialDataFlags=ERDGInitialDataFlags::None) |
| |
| template<typename ElementType > |
| void | QueueBufferUpload (FRDGBufferRef Buffer, TArrayView< ElementType, int32 > Container, ERDGInitialDataFlags InitialDataFlags=ERDGInitialDataFlags::None) |
| |
| void | QueueBufferUpload (FRDGBufferRef Buffer, const void *InitialData, uint64 InitialDataSize, FRDGBufferInitialDataFreeCallback &&InitialDataFreeCallback) |
| |
| template<typename ElementType > |
| void | QueueBufferUpload (FRDGBufferRef Buffer, TArrayView< ElementType, int32 > Container, FRDGBufferInitialDataFreeCallback &&InitialDataFreeCallback) |
| |
| void | QueueBufferUpload (FRDGBufferRef Buffer, FRDGBufferInitialDataFillCallback &&InitialDataFillCallback) |
| |
| void | QueueBufferUpload (FRDGBufferRef Buffer, FRDGBufferInitialDataCallback &&InitialDataCallback, FRDGBufferInitialDataSizeCallback &&InitialDataSizeCallback) |
| |
| void | QueueBufferUpload (FRDGBufferRef Buffer, FRDGBufferInitialDataCallback &&InitialDataCallback, FRDGBufferInitialDataSizeCallback &&InitialDataSizeCallback, FRDGBufferInitialDataFreeCallback &&InitialDataFreeCallback) |
| |
| void | QueueCommitReservedBuffer (FRDGBufferRef Buffer, uint64 CommitSizeInBytes) |
| |
| void | QueueTextureExtraction (FRDGTextureRef Texture, TRefCountPtr< IPooledRenderTarget > *OutPooledTexturePtr, ERDGResourceExtractionFlags Flags=ERDGResourceExtractionFlags::None) |
| |
| void | QueueTextureExtraction (FRDGTextureRef Texture, TRefCountPtr< IPooledRenderTarget > *OutPooledTexturePtr, ERHIAccess AccessFinal, ERDGResourceExtractionFlags Flags=ERDGResourceExtractionFlags::None) |
| |
| void | QueueBufferExtraction (FRDGBufferRef Buffer, TRefCountPtr< FRDGPooledBuffer > *OutPooledBufferPtr) |
| |
| void | QueueBufferExtraction (FRDGBufferRef Buffer, TRefCountPtr< FRDGPooledBuffer > *OutPooledBufferPtr, ERHIAccess AccessFinal) |
| |
| RENDERCORE_API const TRefCountPtr< IPooledRenderTarget > & | ConvertToExternalTexture (FRDGTextureRef Texture) |
| |
| RENDERCORE_API const TRefCountPtr< FRDGPooledBuffer > & | ConvertToExternalBuffer (FRDGBufferRef Buffer) |
| |
| RENDERCORE_API FRHIUniformBuffer * | ConvertToExternalUniformBuffer (FRDGUniformBufferRef UniformBuffer) |
| |
| const TRefCountPtr< IPooledRenderTarget > & | GetPooledTexture (FRDGTextureRef Texture) const |
| |
| const TRefCountPtr< FRDGPooledBuffer > & | GetPooledBuffer (FRDGBufferRef Buffer) const |
| |
| void | SetTextureAccessFinal (FRDGTextureRef Texture, ERHIAccess Access) |
| |
| void | SetBufferAccessFinal (FRDGBufferRef Buffer, ERHIAccess Access) |
| |
| RENDERCORE_API void | UseExternalAccessMode (FRDGViewableResource *Resource, ERHIAccess ReadOnlyAccess, ERHIPipeline Pipelines=ERHIPipeline::Graphics) |
| |
| void | UseExternalAccessMode (TArrayView< FRDGViewableResource *const > Resources, ERHIAccess ReadOnlyAccess, ERHIPipeline Pipelines=ERHIPipeline::Graphics) |
| |
| RENDERCORE_API void | UseInternalAccessMode (FRDGViewableResource *Resource) |
| |
| void | UseInternalAccessMode (TArrayView< FRDGViewableResource *const > Resources) |
| |
| RENDERCORE_API void | FlushSetupQueue () |
| |
| RENDERCORE_API void | Execute () |
| |
| void | RemoveUnusedTextureWarning (FRDGTextureRef Texture) |
| |
| void | RemoveUnusedBufferWarning (FRDGBufferRef Buffer) |
| |
| template<typename FilterSubresourceLambdaType > |
| void | AddTextureTransition (FRDGTexture *Texture, FRDGTextureSubresourceState &StateBefore, FRDGTextureSubresourceState &StateAfter, FilterSubresourceLambdaType &&FilterSubresourceLambda) |
| |
| template<typename ExecuteLambdaType > |
| FRDGPass * | AddPass (FRDGEventName &&Name, ERDGPassFlags Flags, ExecuteLambdaType &&ExecuteLambda) |
| |
| template<typename ExecuteLambdaType > |
| FRDGPass * | AddPass (FRDGEventName &&Name, const FShaderParametersMetadata *ParametersMetadata, const void *ParameterStruct, ERDGPassFlags Flags, ExecuteLambdaType &&ExecuteLambda) |
| |
| template<typename ParameterStructType , typename ExecuteLambdaType > |
| FRDGPass * | AddPass (FRDGEventName &&Name, const ParameterStructType *ParameterStruct, ERDGPassFlags Flags, ExecuteLambdaType &&ExecuteLambda) |
| |
| template<typename ParameterStructType , typename LaunchLambdaType > |
| FRDGPass * | AddDispatchPass (FRDGEventName &&Name, const ParameterStructType *ParameterStruct, ERDGPassFlags Flags, LaunchLambdaType &&LaunchLambda) |
| |
| template<typename TaskLambdaType > |
| UE::Tasks::FTask | AddSetupTask (TaskLambdaType &&TaskLambda, bool bCondition, ERDGSetupTaskWaitPoint WaitPoint) |
| |
| template<typename TaskLambdaType > |
| UE::Tasks::FTask | AddSetupTask (TaskLambdaType &&TaskLambda, UE::Tasks::ETaskPriority Priority, bool bCondition, ERDGSetupTaskWaitPoint WaitPoint) |
| |
| template<typename TaskLambdaType > |
| UE::Tasks::FTask | AddSetupTask (TaskLambdaType &&TaskLambda, UE::Tasks::FPipe *Pipe, UE::Tasks::ETaskPriority Priority, bool bCondition, ERDGSetupTaskWaitPoint WaitPoint) |
| |
| template<typename TaskLambdaType , typename PrerequisitesCollectionType > |
| UE::Tasks::FTask | AddSetupTask (TaskLambdaType &&TaskLambda, PrerequisitesCollectionType &&Prerequisites, UE::Tasks::ETaskPriority Priority, bool bCondition, ERDGSetupTaskWaitPoint WaitPoint) |
| |
| template<typename TaskLambdaType , typename PrerequisitesCollectionType > |
| UE::Tasks::FTask | AddSetupTask (TaskLambdaType &&TaskLambda, UE::Tasks::FPipe *Pipe, PrerequisitesCollectionType &&Prerequisites, UE::Tasks::ETaskPriority Priority, bool bCondition, ERDGSetupTaskWaitPoint WaitPoint) |
| |
| template<typename TaskLambdaType > |
| UE::Tasks::FTask | AddCommandListSetupTask (TaskLambdaType &&TaskLambda, bool bCondition, ERDGSetupTaskWaitPoint WaitPoint) |
| |
| template<typename TaskLambdaType > |
| UE::Tasks::FTask | AddCommandListSetupTask (TaskLambdaType &&TaskLambda, UE::Tasks::ETaskPriority TaskPriority, bool bCondition, ERDGSetupTaskWaitPoint WaitPoint) |
| |
| template<typename TaskLambdaType > |
| UE::Tasks::FTask | AddCommandListSetupTask (TaskLambdaType &&TaskLambda, UE::Tasks::FPipe *Pipe, UE::Tasks::ETaskPriority Priority, bool bCondition, ERDGSetupTaskWaitPoint WaitPoint) |
| |
| template<typename TaskLambdaType , typename PrerequisitesCollectionType > |
| UE::Tasks::FTask | AddCommandListSetupTask (TaskLambdaType &&TaskLambda, PrerequisitesCollectionType &&Prerequisites, UE::Tasks::ETaskPriority Priority, bool bCondition, ERDGSetupTaskWaitPoint WaitPoint) |
| |
| template<typename TaskLambdaType , typename PrerequisitesCollectionType > |
| UE::Tasks::FTask | AddCommandListSetupTask (TaskLambdaType &&TaskLambda, UE::Tasks::FPipe *Pipe, PrerequisitesCollectionType &&Prerequisites, UE::Tasks::ETaskPriority Priority, bool bCondition, ERDGSetupTaskWaitPoint WaitPoint) |
| |
| | FRDGScopeState (FRHICommandListImmediate &InRHICmdList, bool bImmediate, bool bParallelExecute) |
| |
| bool | ShouldEmitEvents () const |
| |
| template<typename TScopeType > |
| bool | ShouldAllocScope (TOptional< TRDGEventScopeGuard< TScopeType > > const &, ERDGScopeFlags Flags) const |
| |
Use the render graph builder to build up a graph of passes and then call Execute() to process them. Resource barriers and lifetimes are derived from RDG parameters in the pass parameter struct provided to each AddPass call. The resulting graph is compiled, culled, and executed in Execute(). The builder should be created on the stack and executed prior to destruction.