111 template<
typename ShaderType>
114 template <ECopyTextureResourceType SrcType>
117 template <ECopyTextureResourceType SrcType, ECopyTextureResourceType DstType>
127template <ECopyTextureResourceType SrcType, ECopyTextureResourceType DstType, ECopyTextureValueType ValueType, u
int32 NumChannels>
130 static_assert(NumChannels >= 1 && NumChannels <= 4,
"Only 1 to 4 channels are supported.");
208template <
typename ShaderType>
216template <ECopyTextureResourceType SrcType, ECopyTextureResourceType DstType>
228template <ECopyTextureResourceType SrcType>
#define check(expr)
Definition AssertionMacros.h:314
#define checkNoEntry()
Definition AssertionMacros.h:316
ECopyTextureValueType
Definition CopyTextureShaders.h:30
ECopyTextureResourceType
Definition CopyTextureShaders.h:23
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define DECLARE_EXPORTED_TYPE_LAYOUT(T, RequiredAPI, Interface)
Definition MemoryLayout.h:559
void SetShaderValue(FRHIBatchedShaderParameters &BatchedParameters, const FShaderParameter &Parameter, const ParameterType &Value, uint32 ElementIndex=0)
Definition ShaderParameterUtils.h:24
@ SPF_Mandatory
Definition ShaderParameters.h:51
#define DECLARE_EXPORTED_SHADER_TYPE(ShaderClass, ShaderMetaTypeShortcut, RequiredAPI,...)
Definition Shader.h:1683
Definition CopyTextureShaders.h:54
LAYOUT_FIELD(FShaderParameter, DstOffsetParam)
static void ModifyCompilationEnvironment(const FGlobalShaderPermutationParameters &Parameters, FShaderCompilerEnvironment &OutEnvironment)
Definition CopyTextureShaders.h:69
void Dispatch(FRHIComputeCommandList &RHICmdList, const CopyTextureCS::DispatchContext &Context, FIntVector const &SrcOffset, FIntVector const &DstOffset, FIntVector const &Dimensions)
Definition CopyTextureShaders.h:82
LAYOUT_FIELD(FShaderParameter, SrcOffsetParam)
const FShaderResourceParameter & GetSrcResourceParam()
Definition CopyTextureShaders.h:79
static TShaderRef< FCopyTextureCS > SelectShader(FGlobalShaderMap *GlobalShaderMap, ECopyTextureResourceType SrcType, ECopyTextureResourceType DstType, ECopyTextureValueType ValueType, CopyTextureCS::DispatchContext &OutContext)
Definition CopyTextureShaders.h:240
const FShaderResourceParameter & GetDstResourceParam()
Definition CopyTextureShaders.h:80
LAYOUT_FIELD(FShaderResourceParameter, DstResourceParam)
LAYOUT_FIELD(FShaderResourceParameter, SrcResourceParam)
LAYOUT_FIELD(FShaderParameter, DimensionsParam)
FCopyTextureCS()
Definition CopyTextureShaders.h:57
FCopyTextureCS(const ShaderMetaType::CompiledShaderInitializerType &Initializer)
Definition CopyTextureShaders.h:58
Definition GlobalShader.h:173
RENDERCORE_API TShaderRef< FShader > GetShader(FShaderType *ShaderType, int32 PermutationId=0) const
Definition GlobalShader.cpp:608
Definition GlobalShader.h:269
static void ModifyCompilationEnvironment(const FGlobalShaderPermutationParameters &Parameters, FShaderCompilerEnvironment &Environment)
Definition GlobalShader.h:289
Definition MemoryImage.h:49
FRHIBatchedShaderParameters & GetScratchShaderParameters()
Definition RHICommandList.h:1190
Definition RHICommandList.h:2735
void SetBatchedShaderParameters(FRHIComputeShader *InShader, FRHIBatchedShaderParameters &InBatchedParameters)
Definition RHICommandList.h:2850
void DispatchComputeShader(uint32 ThreadGroupCountX, uint32 ThreadGroupCountY, uint32 ThreadGroupCountZ)
Definition RHICommandList.h:2929
FRHIComputeShader * GetBoundComputeShader() const
Definition RHICommandList.h:2793
Definition RHIResources.h:1018
Definition ShaderParameters.h:56
Definition ShaderParameters.h:87
Definition CopyTextureShaders.h:129
static const TCHAR * GetSourceFilename()
Definition CopyTextureShaders.h:144
static bool ShouldCompilePermutation(const FGlobalShaderPermutationParameters &Parameters)
Definition CopyTextureShaders.h:147
static constexpr uint32 ThreadGroupSizeX
Definition CopyTextureShaders.h:140
static constexpr uint32 ThreadGroupSizeY
Definition CopyTextureShaders.h:141
static constexpr uint32 ThreadGroupSizeZ
Definition CopyTextureShaders.h:142
TCopyResourceCS(const ShaderMetaType::CompiledShaderInitializerType &Initializer)
Definition CopyTextureShaders.h:136
TCopyResourceCS()
Definition CopyTextureShaders.h:135
static const TCHAR * GetFunctionName()
Definition CopyTextureShaders.h:145
static void ModifyCompilationEnvironment(const FGlobalShaderPermutationParameters &Parameters, FShaderCompilerEnvironment &OutEnvironment)
Definition CopyTextureShaders.h:152
void GetDispatchContext(CopyTextureCS::DispatchContext &OutContext)
Definition CopyTextureShaders.h:196
Definition CopyTextureShaders.h:37
@ SM5
Definition RHIFeatureLevel.h:42
Definition CopyTextureShaders.h:42
uint32 ThreadGroupSizeY
Definition CopyTextureShaders.h:44
uint32 ThreadGroupSizeZ
Definition CopyTextureShaders.h:45
ECopyTextureValueType ValueType
Definition CopyTextureShaders.h:48
ECopyTextureResourceType DstType
Definition CopyTextureShaders.h:47
uint32 ThreadGroupSizeX
Definition CopyTextureShaders.h:43
uint32 NumChannels
Definition CopyTextureShaders.h:49
ECopyTextureResourceType SrcType
Definition CopyTextureShaders.h:46
Definition CopyTextureShaders.h:38
static constexpr int32 Z
Definition CopyTextureShaders.h:38
static constexpr int32 Y
Definition CopyTextureShaders.h:38
static constexpr int32 X
Definition CopyTextureShaders.h:38
Definition GlobalShader.h:73
static constexpr UE_FORCEINLINE_HINT T DivideAndRoundUp(T Dividend, T Divisor)
Definition UnrealMathUtility.h:694
Definition RHIShaderParameters.h:241
Definition ShaderCore.h:544
const EShaderPlatform Platform
Definition ShaderPermutation.h:29
IntType Y
Definition IntVector.h:34
IntType X
Definition IntVector.h:31
IntType Z
Definition IntVector.h:37
IntType GetMin() const
Definition IntVector.h:453