UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
RendererPrivateUtils.h File Reference
#include "RenderResource.h"
#include "RHI.h"
#include "RHICommandList.h"
#include "RenderGraphUtils.h"

Go to the source code of this file.

Classes

class  FTileTexCoordVertexBuffer
 
class  FTileIndexBuffer
 
class  FBufferScatterUploader
 
struct  FBufferScatterUploader::FScatterInfo
 
class  UE::RendererPrivateUtils::Implementation::FPersistentBuffer
 
struct  UE::RendererPrivateUtils::Implementation::FStructuredBufferTraits
 
struct  UE::RendererPrivateUtils::Implementation::FByteAddressBufferTraits
 
class  UE::RendererPrivateUtils::Implementation::TPersistentBuffer< InValueType, InBufferTraits >
 
class  UE::RendererPrivateUtils::Implementation::TBufferScatterUploader< InValueType, InBufferTraits, InNumValuesPerScatter >
 
struct  UE::RendererPrivateUtils::Implementation::TBufferScatterUploader< InValueType, InBufferTraits, InNumValuesPerScatter >::FUploadData
 
class  UE::RendererPrivateUtils::Implementation::TAsyncBufferScatterUploader< InValueType, InBufferTraits, InNumValuesPerScatter >
 

Namespaces

namespace  UE
 
namespace  UE::RendererPrivateUtils
 
namespace  UE::RendererPrivateUtils::Implementation
 

Typedefs

template<typename InValueType >
using TPersistentStructuredBuffer = UE::RendererPrivateUtils::Implementation::TPersistentBuffer< InValueType, UE::RendererPrivateUtils::Implementation::FStructuredBufferTraits >
 
template<typename InValueType , int32 InNumValuesPerScatter = 1>
using TStructuredBufferScatterUploader = UE::RendererPrivateUtils::Implementation::TBufferScatterUploader< InValueType, UE::RendererPrivateUtils::Implementation::FStructuredBufferTraits, InNumValuesPerScatter >
 
template<typename InValueType >
using TPersistentByteAddressBuffer = UE::RendererPrivateUtils::Implementation::TPersistentBuffer< InValueType, UE::RendererPrivateUtils::Implementation::FByteAddressBufferTraits >
 
template<typename InValueType , int32 InNumValuesPerScatter = 1>
using TByteAddressBufferScatterUploader = UE::RendererPrivateUtils::Implementation::TBufferScatterUploader< InValueType, UE::RendererPrivateUtils::Implementation::FByteAddressBufferTraits, InNumValuesPerScatter >
 
template<typename InValueType , int32 InNumValuesPerScatter = 1>
using TAsyncByteAddressBufferScatterUploader = UE::RendererPrivateUtils::Implementation::TAsyncBufferScatterUploader< InValueType, UE::RendererPrivateUtils::Implementation::FByteAddressBufferTraits, InNumValuesPerScatter >
 

Functions

bool ShouldSkipNaniteLPIs (EShaderPlatform ShaderPlatform)
 
RENDERER_API FBufferRHIRefGetOneTileQuadVertexBuffer ()
 
RENDERER_API FBufferRHIRefGetOneTileQuadIndexBuffer ()
 
template<typename ReadbackProcessingLambdaType >
void AddBufferLockReadbackPass (FRDGBuilder &GraphBuilder, TRefCountPtr< FRDGPooledBuffer > SourceBuffer, uint32 NumBytes, ReadbackProcessingLambdaType &&ReadbackProcessingLambda)
 
void AddClearIndirectDispatchArgsPass (FRDGBuilder &GraphBuilder, ERHIFeatureLevel::Type FeatureLevel, FRDGBufferRef IndirectArgsRDG, const FIntVector3 &DimClearValue, uint32 NumIndirectArgs, uint32 IndirectArgStride)
 
void AddClearIndirectDispatchArgs1DPass (FRDGBuilder &GraphBuilder, ERHIFeatureLevel::Type FeatureLevel, FRDGBufferRef IndirectArgsRDG, uint32 NumIndirectArgs, uint32 IndirectArgStride)
 
FRDGBufferRef CreateAndClearIndirectDispatchArgs (FRDGBuilder &GraphBuilder, ERHIFeatureLevel::Type FeatureLevel, const TCHAR *Name, const FIntVector3 &DimClearValue, uint32 NumIndirectArgs, uint32 IndirectArgStride)
 
FRDGBufferRef CreateAndClearIndirectDispatchArgs1D (FRDGBuilder &GraphBuilder, ERHIFeatureLevel::Type FeatureLevel, const TCHAR *Name)
 

Typedef Documentation

◆ TAsyncByteAddressBufferScatterUploader

◆ TByteAddressBufferScatterUploader

◆ TPersistentByteAddressBuffer

◆ TPersistentStructuredBuffer

◆ TStructuredBufferScatterUploader

Function Documentation

◆ AddBufferLockReadbackPass()

void AddBufferLockReadbackPass ( FRDGBuilder GraphBuilder,
TRefCountPtr< FRDGPooledBuffer SourceBuffer,
uint32  NumBytes,
ReadbackProcessingLambdaType &&  ReadbackProcessingLambda 
)

◆ AddClearIndirectDispatchArgs1DPass()

void AddClearIndirectDispatchArgs1DPass ( FRDGBuilder GraphBuilder,
ERHIFeatureLevel::Type  FeatureLevel,
FRDGBufferRef  IndirectArgsRDG,
uint32  NumIndirectArgs,
uint32  IndirectArgStride 
)
inline

Clear indirect for 1D kernel launch, sets YZ grid dimensions to 1.

◆ AddClearIndirectDispatchArgsPass()

void AddClearIndirectDispatchArgsPass ( FRDGBuilder GraphBuilder,
ERHIFeatureLevel::Type  FeatureLevel,
FRDGBufferRef  IndirectArgsRDG,
const FIntVector3 DimClearValue,
uint32  NumIndirectArgs,
uint32  IndirectArgStride 
)

Clear indirect args for GPU-side building, initializes the XYZ dimensions of the dispatch arg to DimClearValue and everything else in the strided range to zero. Can clear one or more args (NumIndirectArgs). IndirectArgStride gives the size (in uints) of each argument, this may be larger than the required size. E.g., to make space for an atomic counter.

◆ CreateAndClearIndirectDispatchArgs()

FRDGBufferRef CreateAndClearIndirectDispatchArgs ( FRDGBuilder GraphBuilder,
ERHIFeatureLevel::Type  FeatureLevel,
const TCHAR Name,
const FIntVector3 DimClearValue,
uint32  NumIndirectArgs,
uint32  IndirectArgStride 
)

Create an indirect args buffer and clear it using AddClearIndirectDispatchArgsPass.

◆ CreateAndClearIndirectDispatchArgs1D()

FRDGBufferRef CreateAndClearIndirectDispatchArgs1D ( FRDGBuilder GraphBuilder,
ERHIFeatureLevel::Type  FeatureLevel,
const TCHAR Name 
)
inline

Create and initialize a singular indirect args buffer with size derived from FRHIDispatchIndirectParameters.

◆ GetOneTileQuadIndexBuffer()

RENDERER_API FBufferRHIRef & GetOneTileQuadIndexBuffer ( )

One Tile Quad Index Buffer

◆ GetOneTileQuadVertexBuffer()

RENDERER_API FBufferRHIRef & GetOneTileQuadVertexBuffer ( )

One Tile Quad Vertex Buffer

◆ ShouldSkipNaniteLPIs()

bool ShouldSkipNaniteLPIs ( EShaderPlatform  ShaderPlatform)

Returns true if Nanite primitives are to be skipped in Light Primitive Interactions (LPI) and the primitive acceleration structure (octree).