UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
FRDGUserValidation Class Referencefinal

#include <RenderGraphValidation.h>

Public Member Functions

 FRDGUserValidation (FRDGAllocator &Allocator)
 
 FRDGUserValidation (const FRDGUserValidation &)=delete
 
RENDERCORE_API ~FRDGUserValidation ()
 
RENDERCORE_API void ValidateCreateTexture (const FRDGTextureDesc &Desc, const TCHAR *Name, ERDGTextureFlags Flags)
 
RENDERCORE_API void ValidateCreateBuffer (const FRDGBufferDesc &Desc, const TCHAR *Name, ERDGBufferFlags Flags)
 
RENDERCORE_API void ValidateCreateSRV (const FRDGTextureSRVDesc &Desc)
 
RENDERCORE_API void ValidateCreateSRV (const FRDGBufferSRVDesc &Desc)
 
RENDERCORE_API void ValidateCreateUAV (const FRDGTextureUAVDesc &Desc)
 
RENDERCORE_API void ValidateCreateUAV (const FRDGBufferUAVDesc &Desc)
 
RENDERCORE_API void ValidateCreateUniformBuffer (const void *ParameterStruct, const FShaderParametersMetadata *Metadata)
 
RENDERCORE_API void ValidateCreateTexture (FRDGTextureRef Texture)
 
RENDERCORE_API void ValidateCreateBuffer (FRDGBufferRef Buffer)
 
RENDERCORE_API void ValidateCreateSRV (FRDGTextureSRVRef SRV)
 
RENDERCORE_API void ValidateCreateSRV (FRDGBufferSRVRef SRV)
 
RENDERCORE_API void ValidateCreateUAV (FRDGTextureUAVRef UAV)
 
RENDERCORE_API void ValidateCreateUAV (FRDGBufferUAVRef UAV)
 
RENDERCORE_API void ValidateCreateUniformBuffer (FRDGUniformBufferRef UniformBuffer)
 
RENDERCORE_API void ValidateRegisterExternalTexture (const TRefCountPtr< IPooledRenderTarget > &ExternalPooledTexture, const TCHAR *Name, ERDGTextureFlags Flags)
 
RENDERCORE_API void ValidateRegisterExternalBuffer (const TRefCountPtr< FRDGPooledBuffer > &ExternalPooledBuffer, const TCHAR *Name, ERDGBufferFlags Flags)
 
RENDERCORE_API void ValidateRegisterExternalTexture (FRDGTextureRef Texture)
 
RENDERCORE_API void ValidateRegisterExternalBuffer (FRDGBufferRef Buffer)
 
RENDERCORE_API void ValidateUploadBuffer (FRDGBufferRef Buffer, const void *InitialData, uint64 InitialDataSize)
 
RENDERCORE_API void ValidateUploadBuffer (FRDGBufferRef Buffer, const void *InitialData, uint64 InitialDataSize, const FRDGBufferInitialDataFreeCallback &InitialDataFreeCallback)
 
RENDERCORE_API void ValidateUploadBuffer (FRDGBufferRef Buffer, const FRDGBufferInitialDataFillCallback &InitialDataFillCallback)
 
RENDERCORE_API void ValidateUploadBuffer (FRDGBufferRef Buffer, const FRDGBufferInitialDataCallback &InitialDataCallback, const FRDGBufferInitialDataSizeCallback &InitialDataSizeCallback)
 
RENDERCORE_API void ValidateUploadBuffer (FRDGBufferRef Buffer, const FRDGBufferInitialDataCallback &InitialDataCallback, const FRDGBufferInitialDataSizeCallback &InitialDataSizeCallback, const FRDGBufferInitialDataFreeCallback &InitialDataFreeCallback)
 
RENDERCORE_API void ValidateCommitBuffer (FRDGBufferRef Buffer, uint64 CommitSizeInBytes)
 
RENDERCORE_API void ValidateExtractTexture (FRDGTextureRef Texture, TRefCountPtr< IPooledRenderTarget > *OutTexturePtr)
 
RENDERCORE_API void ValidateExtractBuffer (FRDGBufferRef Buffer, TRefCountPtr< FRDGPooledBuffer > *OutBufferPtr)
 
RENDERCORE_API void ValidateConvertToExternalResource (FRDGViewableResource *Resource)
 
RENDERCORE_API void ValidateConvertToExternalUniformBuffer (FRDGUniformBuffer *UniformBuffer)
 
RENDERCORE_API void ValidateAddPass (const void *ParameterStruct, const FShaderParametersMetadata *Metadata, const FRDGEventName &Name, ERDGPassFlags Flags)
 
RENDERCORE_API void ValidateAddPass (const FRDGEventName &Name, ERDGPassFlags Flags)
 
RENDERCORE_API void ValidateAddPass (const FRDGPass *Pass)
 
RENDERCORE_API void ValidateExecutePassBegin (const FRDGPass *Pass)
 
RENDERCORE_API void ValidateExecutePassEnd (const FRDGPass *Pass)
 
RENDERCORE_API void ValidateExecuteBegin ()
 
RENDERCORE_API void ValidateExecuteEnd ()
 
RENDERCORE_API bool TryMarkForClobber (FRDGViewableResource *Resource) const
 
RENDERCORE_API void ValidateGetPooledTexture (FRDGTextureRef Texture) const
 
RENDERCORE_API void ValidateGetPooledBuffer (FRDGBufferRef Buffer) const
 
RENDERCORE_API void ValidateSetAccessFinal (FRDGViewableResource *Resource, ERHIAccess AccessFinal)
 
RENDERCORE_API void ValidateAddSubresourceAccess (FRDGViewableResource *Resource, const FRDGSubresourceState &Subresource, ERHIAccess Access)
 
RENDERCORE_API void ValidateUseExternalAccessMode (FRDGViewableResource *Resource, ERHIAccess ReadOnlyAccess, ERHIPipeline Pipelines)
 
RENDERCORE_API void ValidateUseInternalAccessMode (FRDGViewableResource *Resaource)
 
RENDERCORE_API void ValidateExternalAccess (FRDGViewableResource *Resource, ERHIAccess Access, const FRDGPass *Pass)
 
void SetParallelExecuteEnabled (bool bInParallelExecuteEnabled)
 

Static Public Member Functions

static RENDERCORE_API void SetAllowRHIAccess (const FRDGPass *Pass, bool bAllowAccess)
 

Detailed Description

Used by the render graph builder to validate correct usage of the graph API from setup to execution. Validation is compiled out in shipping builds. This class tracks resources and passes as they are added to the graph. It will then validate execution of the graph, including whether resources are used during execution, and that they are properly produced before being consumed. All found issues must be clear enough to help the user identify the problem in client code. Validation should occur as soon as possible in the graph lifecycle. It's much easier to catch an issue at the setup location rather than during deferred execution.

Finally, this class is designed for user validation, not for internal graph validation. In other words, if the user can break the graph externally via the client-facing API, this validation layer should catch it. Any internal validation of the graph state should be kept out of this class in order to provide a clear and modular location to extend the validation layer as well as clearly separate the graph implementation details from events in the graph.

Constructor & Destructor Documentation

◆ FRDGUserValidation() [1/2]

FRDGUserValidation::FRDGUserValidation ( FRDGAllocator Allocator)

◆ FRDGUserValidation() [2/2]

FRDGUserValidation::FRDGUserValidation ( const FRDGUserValidation )
delete

◆ ~FRDGUserValidation()

RENDERCORE_API FRDGUserValidation::~FRDGUserValidation ( )

Member Function Documentation

◆ SetAllowRHIAccess()

static RENDERCORE_API void FRDGUserValidation::SetAllowRHIAccess ( const FRDGPass Pass,
bool  bAllowAccess 
)
static

Traverses all resources in the pass and marks whether they are externally accessible by user pass implementations.

◆ SetParallelExecuteEnabled()

void FRDGUserValidation::SetParallelExecuteEnabled ( bool  bInParallelExecuteEnabled)
inline

◆ TryMarkForClobber()

RENDERCORE_API bool FRDGUserValidation::TryMarkForClobber ( FRDGViewableResource Resource) const

Attempts to mark a resource for clobbering. If already marked, returns false.

◆ ValidateAddPass() [1/3]

RENDERCORE_API void FRDGUserValidation::ValidateAddPass ( const FRDGEventName Name,
ERDGPassFlags  Flags 
)

◆ ValidateAddPass() [2/3]

RENDERCORE_API void FRDGUserValidation::ValidateAddPass ( const FRDGPass Pass)

◆ ValidateAddPass() [3/3]

RENDERCORE_API void FRDGUserValidation::ValidateAddPass ( const void ParameterStruct,
const FShaderParametersMetadata Metadata,
const FRDGEventName Name,
ERDGPassFlags  Flags 
)

Tracks and validates the addition of a new pass to the graph.

Parameters
bSkipPassAccessMarkingSkips marking the pass as a producer or incrementing the pass access. Useful when the builder needs to inject a pass for debugging while preserving error messages and warnings for the original graph structure.

◆ ValidateAddSubresourceAccess()

RENDERCORE_API void FRDGUserValidation::ValidateAddSubresourceAccess ( FRDGViewableResource Resource,
const FRDGSubresourceState Subresource,
ERHIAccess  Access 
)

◆ ValidateCommitBuffer()

RENDERCORE_API void FRDGUserValidation::ValidateCommitBuffer ( FRDGBufferRef  Buffer,
uint64  CommitSizeInBytes 
)

◆ ValidateConvertToExternalResource()

RENDERCORE_API void FRDGUserValidation::ValidateConvertToExternalResource ( FRDGViewableResource Resource)

◆ ValidateConvertToExternalUniformBuffer()

RENDERCORE_API void FRDGUserValidation::ValidateConvertToExternalUniformBuffer ( FRDGUniformBuffer UniformBuffer)

◆ ValidateCreateBuffer() [1/2]

RENDERCORE_API void FRDGUserValidation::ValidateCreateBuffer ( const FRDGBufferDesc Desc,
const TCHAR Name,
ERDGBufferFlags  Flags 
)

◆ ValidateCreateBuffer() [2/2]

RENDERCORE_API void FRDGUserValidation::ValidateCreateBuffer ( FRDGBufferRef  Buffer)

◆ ValidateCreateSRV() [1/4]

RENDERCORE_API void FRDGUserValidation::ValidateCreateSRV ( const FRDGBufferSRVDesc Desc)

◆ ValidateCreateSRV() [2/4]

RENDERCORE_API void FRDGUserValidation::ValidateCreateSRV ( const FRDGTextureSRVDesc Desc)

◆ ValidateCreateSRV() [3/4]

RENDERCORE_API void FRDGUserValidation::ValidateCreateSRV ( FRDGBufferSRVRef  SRV)

◆ ValidateCreateSRV() [4/4]

RENDERCORE_API void FRDGUserValidation::ValidateCreateSRV ( FRDGTextureSRVRef  SRV)

◆ ValidateCreateTexture() [1/2]

RENDERCORE_API void FRDGUserValidation::ValidateCreateTexture ( const FRDGTextureDesc Desc,
const TCHAR Name,
ERDGTextureFlags  Flags 
)

Tracks and validates inputs into resource creation functions.

◆ ValidateCreateTexture() [2/2]

RENDERCORE_API void FRDGUserValidation::ValidateCreateTexture ( FRDGTextureRef  Texture)

Tracks and validates the creation of a new externally created / registered resource instances.

◆ ValidateCreateUAV() [1/4]

RENDERCORE_API void FRDGUserValidation::ValidateCreateUAV ( const FRDGBufferUAVDesc Desc)

◆ ValidateCreateUAV() [2/4]

RENDERCORE_API void FRDGUserValidation::ValidateCreateUAV ( const FRDGTextureUAVDesc Desc)

◆ ValidateCreateUAV() [3/4]

RENDERCORE_API void FRDGUserValidation::ValidateCreateUAV ( FRDGBufferUAVRef  UAV)

◆ ValidateCreateUAV() [4/4]

RENDERCORE_API void FRDGUserValidation::ValidateCreateUAV ( FRDGTextureUAVRef  UAV)

◆ ValidateCreateUniformBuffer() [1/2]

RENDERCORE_API void FRDGUserValidation::ValidateCreateUniformBuffer ( const void ParameterStruct,
const FShaderParametersMetadata Metadata 
)

◆ ValidateCreateUniformBuffer() [2/2]

RENDERCORE_API void FRDGUserValidation::ValidateCreateUniformBuffer ( FRDGUniformBufferRef  UniformBuffer)

◆ ValidateExecuteBegin()

RENDERCORE_API void FRDGUserValidation::ValidateExecuteBegin ( )

Validate graph state before and after execution.

◆ ValidateExecuteEnd()

RENDERCORE_API void FRDGUserValidation::ValidateExecuteEnd ( )

◆ ValidateExecutePassBegin()

RENDERCORE_API void FRDGUserValidation::ValidateExecutePassBegin ( const FRDGPass Pass)

Validate pass state before and after execution.

◆ ValidateExecutePassEnd()

RENDERCORE_API void FRDGUserValidation::ValidateExecutePassEnd ( const FRDGPass Pass)

◆ ValidateExternalAccess()

RENDERCORE_API void FRDGUserValidation::ValidateExternalAccess ( FRDGViewableResource Resource,
ERHIAccess  Access,
const FRDGPass Pass 
)

◆ ValidateExtractBuffer()

RENDERCORE_API void FRDGUserValidation::ValidateExtractBuffer ( FRDGBufferRef  Buffer,
TRefCountPtr< FRDGPooledBuffer > *  OutBufferPtr 
)

◆ ValidateExtractTexture()

RENDERCORE_API void FRDGUserValidation::ValidateExtractTexture ( FRDGTextureRef  Texture,
TRefCountPtr< IPooledRenderTarget > *  OutTexturePtr 
)

Validates a resource extraction operation.

◆ ValidateGetPooledBuffer()

RENDERCORE_API void FRDGUserValidation::ValidateGetPooledBuffer ( FRDGBufferRef  Buffer) const

◆ ValidateGetPooledTexture()

RENDERCORE_API void FRDGUserValidation::ValidateGetPooledTexture ( FRDGTextureRef  Texture) const

◆ ValidateRegisterExternalBuffer() [1/2]

RENDERCORE_API void FRDGUserValidation::ValidateRegisterExternalBuffer ( const TRefCountPtr< FRDGPooledBuffer > &  ExternalPooledBuffer,
const TCHAR Name,
ERDGBufferFlags  Flags 
)

◆ ValidateRegisterExternalBuffer() [2/2]

RENDERCORE_API void FRDGUserValidation::ValidateRegisterExternalBuffer ( FRDGBufferRef  Buffer)

◆ ValidateRegisterExternalTexture() [1/2]

RENDERCORE_API void FRDGUserValidation::ValidateRegisterExternalTexture ( const TRefCountPtr< IPooledRenderTarget > &  ExternalPooledTexture,
const TCHAR Name,
ERDGTextureFlags  Flags 
)

◆ ValidateRegisterExternalTexture() [2/2]

RENDERCORE_API void FRDGUserValidation::ValidateRegisterExternalTexture ( FRDGTextureRef  Texture)

◆ ValidateSetAccessFinal()

RENDERCORE_API void FRDGUserValidation::ValidateSetAccessFinal ( FRDGViewableResource Resource,
ERHIAccess  AccessFinal 
)

◆ ValidateUploadBuffer() [1/5]

RENDERCORE_API void FRDGUserValidation::ValidateUploadBuffer ( FRDGBufferRef  Buffer,
const FRDGBufferInitialDataCallback InitialDataCallback,
const FRDGBufferInitialDataSizeCallback InitialDataSizeCallback 
)

◆ ValidateUploadBuffer() [2/5]

RENDERCORE_API void FRDGUserValidation::ValidateUploadBuffer ( FRDGBufferRef  Buffer,
const FRDGBufferInitialDataCallback InitialDataCallback,
const FRDGBufferInitialDataSizeCallback InitialDataSizeCallback,
const FRDGBufferInitialDataFreeCallback InitialDataFreeCallback 
)

◆ ValidateUploadBuffer() [3/5]

RENDERCORE_API void FRDGUserValidation::ValidateUploadBuffer ( FRDGBufferRef  Buffer,
const FRDGBufferInitialDataFillCallback InitialDataFillCallback 
)

◆ ValidateUploadBuffer() [4/5]

RENDERCORE_API void FRDGUserValidation::ValidateUploadBuffer ( FRDGBufferRef  Buffer,
const void InitialData,
uint64  InitialDataSize 
)

◆ ValidateUploadBuffer() [5/5]

RENDERCORE_API void FRDGUserValidation::ValidateUploadBuffer ( FRDGBufferRef  Buffer,
const void InitialData,
uint64  InitialDataSize,
const FRDGBufferInitialDataFreeCallback InitialDataFreeCallback 
)

◆ ValidateUseExternalAccessMode()

RENDERCORE_API void FRDGUserValidation::ValidateUseExternalAccessMode ( FRDGViewableResource Resource,
ERHIAccess  ReadOnlyAccess,
ERHIPipeline  Pipelines 
)

◆ ValidateUseInternalAccessMode()

RENDERCORE_API void FRDGUserValidation::ValidateUseInternalAccessMode ( FRDGViewableResource Resaource)

The documentation for this class was generated from the following file: