UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
RayTracingValidationShaders.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
6#include "RHIDefinitions.h"
8
9#if RHI_RAYTRACING
10
12{
14
15public:
17 FRayTracingValidateGeometryBuildParamsCS(const ShaderMetaType::CompiledShaderInitializerType& Initializer)
19 {
20 IndexBufferParam.Bind(Initializer.ParameterMap, TEXT("IndexBuffer"), SPF_Optional);
21 VertexBufferParam.Bind(Initializer.ParameterMap, TEXT("VertexBuffer"), SPF_Optional);
22 VertexBufferStrideParam.Bind(Initializer.ParameterMap, TEXT("VertexBufferStride"), SPF_Optional);
23 VertexBufferOffsetInBytesParam.Bind(Initializer.ParameterMap, TEXT("VertexBufferOffsetInBytes"), SPF_Optional);
24 IndexBufferOffsetInBytesParam.Bind(Initializer.ParameterMap, TEXT("IndexBufferOffsetInBytes"), SPF_Optional);
25 IndexBufferStrideParam.Bind(Initializer.ParameterMap, TEXT("IndexBufferStride"), SPF_Optional);
26 NumPrimitivesParam.Bind(Initializer.ParameterMap, TEXT("NumPrimitives"), SPF_Optional);
27 MaxVerticesParam.Bind(Initializer.ParameterMap, TEXT("MaxVertices"), SPF_Optional);
28 }
29
31 {
32 return FBuiltInRayTracingShader::ShouldCompilePermutation(Parameters) && RHISupportsWaveOperations(Parameters.Platform);
33 }
34
35 // Large thread group to handle large meshes with a single 1D dispatch
36 static const uint32 NumThreadsX = 1024;
37
39 {
40 OutEnvironment.CompilerFlags.Add(CFLAG_ForceDXC);
41 OutEnvironment.SetDefine(TEXT("NUM_THREADS_X"), NumThreadsX);
42 FBuiltInRayTracingShader::ModifyCompilationEnvironment(Parameters, OutEnvironment);
43 }
44
45 static RENDERCORE_API void Dispatch(FRHICommandList& RHICmdList, const FRayTracingGeometryBuildParams& Params);
46
55
56};
57
59{
61
62public:
64 FRayTracingValidateSceneBuildParamsCS(const ShaderMetaType::CompiledShaderInitializerType& Initializer)
66 {
67 InstanceBufferParam.Bind(Initializer.ParameterMap, TEXT("InstanceBuffer"), SPF_Optional);
68 InstanceBufferOffsetInBytesParam.Bind(Initializer.ParameterMap, TEXT("InstanceBufferOffsetInBytes"), SPF_Optional);
69 InstanceBufferStrideInBytesParam.Bind(Initializer.ParameterMap, TEXT("InstanceBufferStrideInBytes"), SPF_Optional);
70 NumInstancesParam.Bind(Initializer.ParameterMap, TEXT("NumInstances"), SPF_Optional);
71 NumHitGroupsParam.Bind(Initializer.ParameterMap, TEXT("NumHitGroups"), SPF_Optional);
72 }
73
75 {
76 return FBuiltInRayTracingShader::ShouldCompilePermutation(Parameters) && RHISupportsWaveOperations(Parameters.Platform);
77 }
78
79 // Large thread group to handle large meshes with a single 1D dispatch
80 static const uint32 NumThreadsX = 1024;
81
83 {
84 OutEnvironment.CompilerFlags.Add(CFLAG_ForceDXC);
85 OutEnvironment.SetDefine(TEXT("NUM_THREADS_X"), NumThreadsX);
86 FBuiltInRayTracingShader::ModifyCompilationEnvironment(Parameters, OutEnvironment);
87 }
88
89 static RENDERCORE_API void Dispatch(FRHICommandList& RHICmdList,
90 uint32 NumHitGroups, uint32 NumInstances,
91 FRHIBuffer* InstanceBuffer, uint32 InstanceBufferOffset, uint32 InstanceBufferStride);
92
98};
99
100
101#endif // RHI_RAYTRACING
#define TEXT(x)
Definition Platform.h:1272
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
bool RHISupportsWaveOperations(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:1232
#define DECLARE_GLOBAL_SHADER(ShaderClass)
Definition GlobalShader.h:408
#define LAYOUT_FIELD(T, Name,...)
Definition MemoryLayout.h:471
@ SPF_Optional
Definition ShaderParameters.h:49
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition RHIResources.h:1581
Definition RHICommandList.h:3819
Definition ShaderParameters.h:56
Definition ShaderParameters.h:87
void ModifyCompilationEnvironment(EShaderPlatform Platform, FDecalBlendDesc DecalBlendDesc, EDecalRenderStage DecalRenderStage, FShaderCompilerEnvironment &OutEnvironment)
Definition DecalRenderingCommon.cpp:959
void Dispatch(FRHIComputeCommandList &RHICmdList, const TShaderRef< TShaderClass > &ComputeShader, const FShaderParametersMetadata *ParametersMetadata, const typename TShaderClass::FParameters &Parameters, FIntVector GroupCount)
Definition RenderGraphUtils.h:491
bool ShouldCompilePermutation(ELightmapQuality LightmapQuality, const FMeshMaterialShaderPermutationParameters &Parameters)
Definition LightMapRendering.cpp:48
Definition GlobalShader.h:73
Definition RHIContext.h:590
Definition ShaderCore.h:544
const EShaderPlatform Platform
Definition ShaderPermutation.h:29