UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
ClearReplacementShaders.h File Reference
#include "CoreMinimal.h"
#include "DataDrivenShaderPlatformInfo.h"
#include "GlobalShader.h"
#include "Math/IntVector.h"
#include "Math/UnrealMathSSE.h"
#include "PipelineStateCache.h"
#include "PixelFormat.h"
#include "RenderGraphUtils.h"
#include "RHI.h"
#include "RHICommandList.h"
#include "RHIDefinitions.h"
#include "Serialization/MemoryLayout.h"
#include "Shader.h"
#include "ShaderCompilerCore.h"
#include "ShaderCore.h"
#include "ShaderParameterUtils.h"
#include "ShaderParameters.h"
#include "Templates/EnableIf.h"
#include "Templates/Function.h"

Go to the source code of this file.

Classes

struct  TClearReplacementTypeSelector< Type >
 
struct  TClearReplacementTypeSelector< EClearReplacementValueType::Float >
 
struct  TClearReplacementTypeSelector< EClearReplacementValueType::Int32 >
 
struct  TClearReplacementTypeSelector< EClearReplacementValueType::Uint32 >
 
struct  TClearReplacementBase< ValueType, NumChannels, bZeroOutput, bEnableBounds >
 
class  TClearReplacementCS< ResourceType, BaseType >
 
class  TClearReplacementVS< bEnableDepth, BaseType >
 
class  TClearReplacementPS< b128BitOutput, BaseType >
 

Namespaces

namespace  ClearReplacementCS
 

Typedefs

typedef TClearReplacementBase< EClearReplacementValueType::Uint32, 1, false, falseFClearReplacementBase_Uint
 
typedef TClearReplacementBase< EClearReplacementValueType::Uint32, 4, false, falseFClearReplacementBase_Uint4
 
typedef TClearReplacementBase< EClearReplacementValueType::Float, 4, false, falseFClearReplacementBase_Float4
 
typedef TClearReplacementBase< EClearReplacementValueType::Uint32, 1, true, falseFClearReplacementBase_Uint_Zero
 
typedef TClearReplacementBase< EClearReplacementValueType::Float, 4, true, falseFClearReplacementBase_Float4_Zero
 
typedef TClearReplacementBase< EClearReplacementValueType::Float, 4, true, trueFClearReplacementBase_Float4_Zero_Bounds
 
typedef TClearReplacementBase< EClearReplacementValueType::Uint32, 1, false, trueFClearReplacementBase_Uint_Bounds
 
typedef TClearReplacementBase< EClearReplacementValueType::Uint32, 4, false, trueFClearReplacementBase_Uint4_Bounds
 
typedef TClearReplacementBase< EClearReplacementValueType::Int32, 4, false, trueFClearReplacementBase_Sint4_Bounds
 
typedef TClearReplacementBase< EClearReplacementValueType::Float, 1, false, trueFClearReplacementBase_Float_Bounds
 
typedef TClearReplacementBase< EClearReplacementValueType::Float, 4, false, trueFClearReplacementBase_Float4_Bounds
 
typedef TClearReplacementVS< false, FClearReplacementBase_Float4_ZeroFClearReplacementVS
 
typedef TClearReplacementVS< false, FClearReplacementBase_Float4_Zero_BoundsFClearReplacementVS_Bounds
 
typedef TClearReplacementVS< true, FClearReplacementBase_Float4_ZeroFClearReplacementVS_Depth
 
typedef TClearReplacementPS< false, FClearReplacementBase_Float4FClearReplacementPS
 
typedef TClearReplacementPS< true, FClearReplacementBase_Float4FClearReplacementPS_128
 
typedef TClearReplacementPS< false, FClearReplacementBase_Float4_ZeroFClearReplacementPS_Zero
 
typedef TClearReplacementCS< EClearReplacementResourceType::Buffer, FClearReplacementBase_Uint_BoundsFClearReplacementCS_Buffer_Uint_Bounds
 
typedef TClearReplacementCS< EClearReplacementResourceType::Buffer, FClearReplacementBase_Float_BoundsFClearReplacementCS_Buffer_Float_Bounds
 
typedef TClearReplacementCS< EClearReplacementResourceType::Buffer, FClearReplacementBase_Float4_BoundsFClearReplacementCS_Buffer_Float4_Bounds
 
typedef TClearReplacementCS< EClearReplacementResourceType::LargeBuffer, FClearReplacementBase_Uint_BoundsFClearReplacementCS_LargeBuffer_Uint_Bounds
 
typedef TClearReplacementCS< EClearReplacementResourceType::LargeBuffer, FClearReplacementBase_Float_BoundsFClearReplacementCS_LargeBuffer_Float_Bounds
 
typedef TClearReplacementCS< EClearReplacementResourceType::LargeBuffer, FClearReplacementBase_Float4_BoundsFClearReplacementCS_LargeBuffer_Float4_Bounds
 
typedef TClearReplacementCS< EClearReplacementResourceType::StructuredBuffer, FClearReplacementBase_Uint_BoundsFClearReplacementCS_StructuredBuffer_Uint_Bounds
 
typedef TClearReplacementCS< EClearReplacementResourceType::StructuredBuffer, FClearReplacementBase_Float_BoundsFClearReplacementCS_StructuredBuffer_Float_Bounds
 
typedef TClearReplacementCS< EClearReplacementResourceType::StructuredBuffer, FClearReplacementBase_Float4_BoundsFClearReplacementCS_StructuredBuffer_Float4_Bounds
 
typedef TClearReplacementCS< EClearReplacementResourceType::Texture3D, FClearReplacementBase_Float4_BoundsFClearReplacementCS_Texture3D_Float4_Bounds
 
typedef TClearReplacementCS< EClearReplacementResourceType::Texture2D, FClearReplacementBase_Float4_BoundsFClearReplacementCS_Texture2D_Float4_Bounds
 
typedef TClearReplacementCS< EClearReplacementResourceType::Texture2DArray, FClearReplacementBase_Float4_BoundsFClearReplacementCS_Texture2DArray_Float4_Bounds
 
typedef TClearReplacementCS< EClearReplacementResourceType::Buffer, FClearReplacementBase_Uint_ZeroFClearReplacementCS_Buffer_Uint_Zero
 
typedef TClearReplacementCS< EClearReplacementResourceType::StructuredBuffer, FClearReplacementBase_Uint_ZeroFClearReplacementCS_StructuredBuffer_Uint_Zero
 
typedef TClearReplacementCS< EClearReplacementResourceType::Texture2DArray, FClearReplacementBase_Uint_ZeroFClearReplacementCS_Texture2DArray_Uint_Zero
 
typedef TClearReplacementCS< EClearReplacementResourceType::Buffer, FClearReplacementBase_UintFClearReplacementCS_Buffer_Uint
 
typedef TClearReplacementCS< EClearReplacementResourceType::LargeBuffer, FClearReplacementBase_UintFClearReplacementCS_LargeBuffer_Uint
 
typedef TClearReplacementCS< EClearReplacementResourceType::StructuredBuffer, FClearReplacementBase_UintFClearReplacementCS_StructuredBuffer_Uint
 
typedef TClearReplacementCS< EClearReplacementResourceType::Texture2DArray, FClearReplacementBase_UintFClearReplacementCS_Texture2DArray_Uint
 
typedef TClearReplacementCS< EClearReplacementResourceType::Texture3D, FClearReplacementBase_Float4FClearReplacementCS_Texture3D_Float4
 
typedef TClearReplacementCS< EClearReplacementResourceType::Texture2D, FClearReplacementBase_Float4FClearReplacementCS_Texture2D_Float4
 
typedef TClearReplacementCS< EClearReplacementResourceType::Texture2DArray, FClearReplacementBase_Float4FClearReplacementCS_Texture2DArray_Float4
 
typedef TClearReplacementCS< EClearReplacementResourceType::Texture3D, FClearReplacementBase_Uint4FClearReplacementCS_Texture3D_Uint4
 
typedef TClearReplacementCS< EClearReplacementResourceType::Texture2D, FClearReplacementBase_Uint4FClearReplacementCS_Texture2D_Uint4
 
typedef TClearReplacementCS< EClearReplacementResourceType::Texture2DArray, FClearReplacementBase_Uint4FClearReplacementCS_Texture2DArray_Uint4
 
typedef TClearReplacementCS< EClearReplacementResourceType::Buffer, FClearReplacementBase_Uint4FClearReplacementCS_Buffer_Uint4
 
typedef TClearReplacementCS< EClearReplacementResourceType::LargeBuffer, FClearReplacementBase_Uint4FClearReplacementCS_LargeBuffer_Uint4
 
typedef TClearReplacementCS< EClearReplacementResourceType::StructuredBuffer, FClearReplacementBase_Uint4FClearReplacementCS_StructuredBuffer_Uint4
 
typedef TClearReplacementCS< EClearReplacementResourceType::Buffer, FClearReplacementBase_Uint4_BoundsFClearReplacementCS_Buffer_Uint4_Bounds
 
typedef TClearReplacementCS< EClearReplacementResourceType::LargeBuffer, FClearReplacementBase_Uint4_BoundsFClearReplacementCS_LargeBuffer_Uint4_Bounds
 
typedef TClearReplacementCS< EClearReplacementResourceType::StructuredBuffer, FClearReplacementBase_Uint4_BoundsFClearReplacementCS_StructuredBuffer_Uint4_Bounds
 
typedef TClearReplacementCS< EClearReplacementResourceType::Texture3D, FClearReplacementBase_Uint4_BoundsFClearReplacementCS_Texture3D_Uint4_Bounds
 
typedef TClearReplacementCS< EClearReplacementResourceType::Texture2D, FClearReplacementBase_Uint4_BoundsFClearReplacementCS_Texture2D_Uint4_Bounds
 
typedef TClearReplacementCS< EClearReplacementResourceType::Texture2DArray, FClearReplacementBase_Uint4_BoundsFClearReplacementCS_Texture2DArray_Uint4_Bounds
 
typedef TClearReplacementCS< EClearReplacementResourceType::Buffer, FClearReplacementBase_Sint4_BoundsFClearReplacementCS_Buffer_Sint4_Bounds
 
typedef TClearReplacementCS< EClearReplacementResourceType::LargeBuffer, FClearReplacementBase_Sint4_BoundsFClearReplacementCS_LargeBuffer_Sint4_Bounds
 
typedef TClearReplacementCS< EClearReplacementResourceType::StructuredBuffer, FClearReplacementBase_Sint4_BoundsFClearReplacementCS_StructuredBuffer_Sint4_Bounds
 
typedef TClearReplacementCS< EClearReplacementResourceType::Texture3D, FClearReplacementBase_Sint4_BoundsFClearReplacementCS_Texture3D_Sint4_Bounds
 
typedef TClearReplacementCS< EClearReplacementResourceType::Texture2D, FClearReplacementBase_Sint4_BoundsFClearReplacementCS_Texture2D_Sint4_Bounds
 
typedef TClearReplacementCS< EClearReplacementResourceType::Texture2DArray, FClearReplacementBase_Sint4_BoundsFClearReplacementCS_Texture2DArray_Sint4_Bounds
 

Enumerations

enum class  EClearReplacementResourceType {
  Buffer = 0 , Texture2D = 1 , Texture2DArray = 2 , Texture3D = 3 ,
  StructuredBuffer = 4 , LargeBuffer = 5
}
 
enum class  EClearReplacementValueType { Float , Int32 , Uint32 }
 

Functions

template<EClearReplacementResourceType ResourceType, EClearReplacementValueType ValueType, uint32 NumChannels, bool bBarriers>
void ClearUAVShader_T (FRHIComputeCommandList &RHICmdList, FRHIUnorderedAccessView *UAV, uint32 SizeX, uint32 SizeY, uint32 SizeZ, const typename TClearReplacementTypeSelector< ValueType >::Type(&ClearValues)[NumChannels], TFunctionRef< void(FRHIComputeShader *, const FShaderResourceParameter &, bool)> ResourceBindCallback)
 
template<EClearReplacementResourceType ResourceType, EClearReplacementValueType ValueType, uint32 NumChannels, bool bBarriers>
void ClearUAVShader_T (FRHIComputeCommandList &RHICmdList, FRHIUnorderedAccessView *UAV, uint32 SizeX, uint32 SizeY, uint32 SizeZ, const typename TClearReplacementTypeSelector< ValueType >::Type(&ClearValues)[NumChannels])
 
template<EClearReplacementResourceType ResourceType, uint32 NumChannels, bool bBarriers>
void ClearUAVShader_T (FRHIComputeCommandList &RHICmdList, FRHIUnorderedAccessView *UAV, uint32 SizeX, uint32 SizeY, uint32 SizeZ, const void *ClearValues, EClearReplacementValueType ValueType)
 

Typedef Documentation

◆ FClearReplacementBase_Float4

◆ FClearReplacementBase_Float4_Bounds

◆ FClearReplacementBase_Float4_Zero

◆ FClearReplacementBase_Float4_Zero_Bounds

◆ FClearReplacementBase_Float_Bounds

◆ FClearReplacementBase_Sint4_Bounds

◆ FClearReplacementBase_Uint

◆ FClearReplacementBase_Uint4

◆ FClearReplacementBase_Uint4_Bounds

◆ FClearReplacementBase_Uint_Bounds

◆ FClearReplacementBase_Uint_Zero

◆ FClearReplacementCS_Buffer_Float4_Bounds

◆ FClearReplacementCS_Buffer_Float_Bounds

◆ FClearReplacementCS_Buffer_Sint4_Bounds

◆ FClearReplacementCS_Buffer_Uint

◆ FClearReplacementCS_Buffer_Uint4

◆ FClearReplacementCS_Buffer_Uint4_Bounds

◆ FClearReplacementCS_Buffer_Uint_Bounds

◆ FClearReplacementCS_Buffer_Uint_Zero

◆ FClearReplacementCS_LargeBuffer_Float4_Bounds

◆ FClearReplacementCS_LargeBuffer_Float_Bounds

◆ FClearReplacementCS_LargeBuffer_Sint4_Bounds

◆ FClearReplacementCS_LargeBuffer_Uint

◆ FClearReplacementCS_LargeBuffer_Uint4

◆ FClearReplacementCS_LargeBuffer_Uint4_Bounds

◆ FClearReplacementCS_LargeBuffer_Uint_Bounds

◆ FClearReplacementCS_StructuredBuffer_Float4_Bounds

◆ FClearReplacementCS_StructuredBuffer_Float_Bounds

◆ FClearReplacementCS_StructuredBuffer_Sint4_Bounds

◆ FClearReplacementCS_StructuredBuffer_Uint

◆ FClearReplacementCS_StructuredBuffer_Uint4

◆ FClearReplacementCS_StructuredBuffer_Uint4_Bounds

◆ FClearReplacementCS_StructuredBuffer_Uint_Bounds

◆ FClearReplacementCS_StructuredBuffer_Uint_Zero

◆ FClearReplacementCS_Texture2D_Float4

◆ FClearReplacementCS_Texture2D_Float4_Bounds

◆ FClearReplacementCS_Texture2D_Sint4_Bounds

◆ FClearReplacementCS_Texture2D_Uint4

◆ FClearReplacementCS_Texture2D_Uint4_Bounds

◆ FClearReplacementCS_Texture2DArray_Float4

◆ FClearReplacementCS_Texture2DArray_Float4_Bounds

◆ FClearReplacementCS_Texture2DArray_Sint4_Bounds

◆ FClearReplacementCS_Texture2DArray_Uint

◆ FClearReplacementCS_Texture2DArray_Uint4

◆ FClearReplacementCS_Texture2DArray_Uint4_Bounds

◆ FClearReplacementCS_Texture2DArray_Uint_Zero

◆ FClearReplacementCS_Texture3D_Float4

◆ FClearReplacementCS_Texture3D_Float4_Bounds

◆ FClearReplacementCS_Texture3D_Sint4_Bounds

◆ FClearReplacementCS_Texture3D_Uint4

◆ FClearReplacementCS_Texture3D_Uint4_Bounds

◆ FClearReplacementPS

◆ FClearReplacementPS_128

◆ FClearReplacementPS_Zero

◆ FClearReplacementVS

◆ FClearReplacementVS_Bounds

◆ FClearReplacementVS_Depth

Enumeration Type Documentation

◆ EClearReplacementResourceType

Enumerator
Buffer 
Texture2D 
Texture2DArray 
Texture3D 
StructuredBuffer 
LargeBuffer 

◆ EClearReplacementValueType

Enumerator
Float 
Int32 
Uint32 

Function Documentation

◆ ClearUAVShader_T() [1/3]

template<EClearReplacementResourceType ResourceType, EClearReplacementValueType ValueType, uint32 NumChannels, bool bBarriers>
void ClearUAVShader_T ( FRHIComputeCommandList RHICmdList,
FRHIUnorderedAccessView UAV,
uint32  SizeX,
uint32  SizeY,
uint32  SizeZ,
const typename TClearReplacementTypeSelector< ValueType >::Type(&)  ClearValues[NumChannels] 
)
inline

◆ ClearUAVShader_T() [2/3]

template<EClearReplacementResourceType ResourceType, EClearReplacementValueType ValueType, uint32 NumChannels, bool bBarriers>
void ClearUAVShader_T ( FRHIComputeCommandList RHICmdList,
FRHIUnorderedAccessView UAV,
uint32  SizeX,
uint32  SizeY,
uint32  SizeZ,
const typename TClearReplacementTypeSelector< ValueType >::Type(&)  ClearValues[NumChannels],
TFunctionRef< void(FRHIComputeShader *, const FShaderResourceParameter &, bool)>  ResourceBindCallback 
)
inline

Helper functions for running the clear replacement shader for specific resource types, values types and number of channels. Can be used from inside RHIs via FRHICommandList_RecursiveHazardous. ResourceBindCallback is provided to allow the RHI to override how the UAV resource is bound to the underlying platform context..

◆ ClearUAVShader_T() [3/3]

template<EClearReplacementResourceType ResourceType, uint32 NumChannels, bool bBarriers>
void ClearUAVShader_T ( FRHIComputeCommandList RHICmdList,
FRHIUnorderedAccessView UAV,
uint32  SizeX,
uint32  SizeY,
uint32  SizeZ,
const void ClearValues,
EClearReplacementValueType  ValueType 
)
inline