10#include "SubstrateDefinitions.h"
98 uint32 PersistentMaxBytesPerPixel = 0;
99 uint32 PersistentMaxClosurePerPixel = 0;
101 bool bUsesAnisotropy =
false;
108 bool bRoughDiffuse =
false;
109 bool bRoughnessTracking =
false;
110 bool bStochasticLighting =
false;
112 int32 SliceStoringDebugSubstrateTreeDataWithoutMRT = -1;
113 int32 SliceStoringDebugSubstrateTreeData = -1;
114 int32 FirstSliceStoringSubstrateSSSDataWithoutMRT = -1;
115 int32 FirstSliceStoringSubstrateSSSData = -1;
219UE_DEPRECATED(5.7,
"Please, use the GetSubstrateUsesTileType() function instead")
273 static bool ShouldCompilePermutation(const FGlobalShaderPermutationParameters& Parameters);
274 static void ModifyCompilationEnvironment(const FGlobalShaderPermutationParameters& Parameters, FShaderCompilerEnvironment& OutEnvironment);
278FSubstrateTilePassVS::FParameters
SetTileParameters(FRDGBuilder& GraphBuilder, const FViewInfo& View, const ESubstrateTileType Type, EPrimitiveType& PrimitiveType);
279FSubstrateTilePassVS::FParameters
SetTileParameters(const FViewInfo& View, const ESubstrateTileType Type, EPrimitiveType& PrimitiveType);
288 FRDGBuilder& GraphBuilder,
289 TArray<FViewInfo>& Views,
290 const FSceneTextures& InSceneTextures,
291 FDBufferTextures& DBufferTextures,
292 FDecalVisibilityTaskData* DecalVisibility,
293 FInstanceCullingManager& InstanceCullingManager,
294 const FSubstrateSceneData& SubstrateSceneData);
OODEFFUNC typedef void(OODLE_CALLBACK t_fp_OodleCore_Plugin_Free)(void *ptr)
#define UE_DEPRECATED(Version, Message)
Definition CoreMiscDefines.h:302
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
EGBufferLayout
Definition GBufferInfo.h:107
#define DECLARE_GLOBAL_SHADER(ShaderClass)
Definition GlobalShader.h:408
FInt32Point FIntPoint
Definition MathFwd.h:124
const bool
Definition NetworkReplayStreaming.h:178
ERHIAccess
Definition RHIAccess.h:11
ERDGPassFlags
Definition RenderGraphDefinitions.h:128
#define SHADER_PARAMETER_RDG_BUFFER_SRV(ShaderType, MemberName)
Definition ShaderParameterMacros.h:1800
#define SHADER_PARAMETER_RDG_TEXTURE(ShaderType, MemberName)
Definition ShaderParameterMacros.h:1752
#define END_GLOBAL_SHADER_PARAMETER_STRUCT
Definition ShaderParameterMacros.h:1669
#define RDG_BUFFER_ACCESS(MemberName, Access)
Definition ShaderParameterMacros.h:1923
#define BEGIN_SHADER_PARAMETER_STRUCT(StructTypeName, DllStorage)
Definition ShaderParameterMacros.h:1482
#define SHADER_PARAMETER_STRUCT_REF(StructType, MemberName)
Definition ShaderParameterMacros.h:1909
#define SHADER_PARAMETER_RDG_TEXTURE_UAV(ShaderType, MemberName)
Definition ShaderParameterMacros.h:1788
#define BEGIN_GLOBAL_SHADER_PARAMETER_STRUCT
Definition ShaderParameterMacros.h:1663
#define SHADER_PARAMETER_STRUCT_INCLUDE(StructType, MemberName)
Definition ShaderParameterMacros.h:1895
#define END_SHADER_PARAMETER_STRUCT()
Definition ShaderParameterMacros.h:1485
#define SHADER_PARAMETER(MemberType, MemberName)
Definition ShaderParameterMacros.h:1684
#define SHADER_USE_PARAMETER_STRUCT(ShaderClass, ShaderParentClass)
Definition ShaderParameterStruct.h:62
#define SHADER_PERMUTATION_INT(InDefineName, Count)
Definition ShaderPermutation.h:492
#define SHADER_PERMUTATION_BOOL(InDefineName)
Definition ShaderPermutation.h:482
ESubstrateTileType
Definition SubstrateMaterialShared.h:67
Definition DecalRenderingShared.h:95
Definition GlobalShader.h:269
Definition InstanceCullingManager.h:45
Definition RenderGraphResources.h:1426
Definition RenderGraphResources.h:1452
Definition RenderGraphResources.h:1321
Definition RenderGraphBuilder.h:49
Definition RenderGraphResources.h:839
Definition RenderGraphResources.h:905
Definition RenderGraphResources.h:571
Definition SceneRendering.h:2080
Definition ScenePrivate.h:2875
Definition SceneRendering.h:1132
Definition Substrate.h:257
Definition ArrayView.h:139
Definition RenderUtils.cpp:2080
bool GetSubstrateUsesComplexSpecialPath(const FViewInfo &View)
Definition Substrate.cpp:213
void AddSubstrateMaterialClassificationIndirectArgsPass(FRDGBuilder &GraphBuilder, const FViewInfo &View, ERDGPassFlags ComputePassFlags)
Definition Substrate.cpp:1615
void BindSubstrateForwardPasslUniformParameters(FRDGBuilder &GraphBuilder, const FViewInfo &View, FSubstrateForwardPassUniformParameters &OutSubstrateUniformParameters)
Definition Substrate.cpp:798
uint32 GetSubstrateMaxClosureCount(const FViewInfo &View)
Definition Substrate.cpp:158
bool UsesSubstrateMaterialBuffer(EShaderPlatform In)
Definition Substrate.cpp:143
bool ShouldRenderSubstrateDebugPasses(const FViewInfo &View)
Definition SubstrateVisualize.cpp:1446
bool UsesStochasticLightingClassification(EShaderPlatform InPlatform)
Definition Substrate.cpp:245
void AddSubstrateDBufferPass(FRDGBuilder &GraphBuilder, const FSceneTextures &SceneTextures, const FDBufferTextures &DBufferTextures, const TArray< FViewInfo > &Views)
Definition Substrate.cpp:1792
void AddSubstrateMaterialClassificationPass(FRDGBuilder &GraphBuilder, const FMinimalSceneTextures &SceneTextures, const FDBufferTextures &DBufferTextures, const TArray< FViewInfo > &Views)
Definition Substrate.cpp:1638
void AppendSubstrateMRTs(const FSceneRenderer &SceneRenderer, uint32 &RenderTargetCount, TArrayView< FTextureRenderTargetBinding > RenderTargets)
Definition Substrate.cpp:1549
uint32 TileTypeDispatchIndirectArgOffset(const ESubstrateTileType Type)
Definition Substrate.cpp:1285
void BindSubstratePublicGlobalUniformParameters(FRDGBuilder &GraphBuilder, const FSubstrateSceneData *SubstrateSceneData, FSubstratePublicParameters &OutSubstrateParameters)
Definition Substrate.cpp:861
constexpr uint32 StencilBit_ComplexSpecial
Definition Substrate.h:215
void AddProcessAndPrintSubstrateMaterialPropertiesPasses(FRDGBuilder &GraphBuilder, const FViewInfo &View, FRDGTextureRef SceneColorTexture, EShaderPlatform Platform, FSubstrateViewDebugData::FTransientPixelDebugBuffer &NewSubstratePixelDebugBuffer)
Definition SubstrateVisualize.cpp:281
void AddSubstrateStencilPass(FRDGBuilder &GraphBuilder, const TArray< FViewInfo > &Views, const FMinimalSceneTextures &SceneTextures)
Definition Substrate.cpp:1446
void AddSubstrateOpaqueRoughRefractionPasses(FRDGBuilder &GraphBuilder, FSceneTextures &SceneTextures, TArrayView< const FViewInfo > Views)
Definition SubstrateRoughRefraction.cpp:66
FIntPoint GetSubstrateTextureResolution(const FViewInfo &View, const FIntPoint &InResolution)
Definition Substrate.cpp:183
void BindSubstrateMobileForwardPasslUniformParameters(FRDGBuilder &GraphBuilder, const FViewInfo &View, FSubstrateMobileForwardPassUniformParameters &OutSubstrateUniformParameters)
Definition Substrate.cpp:831
void AddSubstrateSampleMaterialPass(FRDGBuilder &GraphBuilder, const FScene *Scene, const FMinimalSceneTextures &SceneTextures, const TArray< FViewInfo > &Views)
Definition Substrate.cpp:1956
bool GetSubstrateUsesAnisotropy(const FViewInfo &View)
Definition Substrate.cpp:224
uint32 GetClosureTileIndirectArgsOffset(uint32 InDownsampleFactor)
Definition Substrate.cpp:125
FScreenPassTexture AddSubstrateDebugPasses(FRDGBuilder &GraphBuilder, const FViewInfo &View, FScreenPassTexture &ScreenPassSceneColor)
Definition SubstrateVisualize.cpp:1451
uint32 TileTypeDrawIndirectArgOffset(const ESubstrateTileType Type)
Definition Substrate.cpp:1279
bool ShouldCompileSubstrateTileTypePermutations(const int32 SubstrateTileType, const EShaderPlatform Platform)
Definition Substrate.cpp:1992
bool IsStochasticLightingActive(EShaderPlatform InPlatform)
Definition Substrate.cpp:138
constexpr uint32 StencilBit_Single
Definition Substrate.h:213
void SetBasePassRenderTargetOutputFormat(const EShaderPlatform Platform, const FMaterialShaderParameters &MaterialParameters, FShaderCompilerEnvironment &OutEnvironment, EGBufferLayout GBufferLayout)
Definition Substrate.cpp:1579
constexpr uint32 StencilBit_Complex
Definition Substrate.h:214
FSubstrateTilePassVS::FParameters SetTileParameters(const FViewInfo &View, const ESubstrateTileType TileType, EPrimitiveType &PrimitiveType)
Definition Substrate.cpp:1257
void InitialiseSubstrateFrameSceneData(FRDGBuilder &GraphBuilder, FSceneRenderer &SceneRenderer)
Definition Substrate.cpp:434
TRDGUniformBufferRef< FSubstratePublicGlobalUniformParameters > CreatePublicGlobalUniformBuffer(FRDGBuilder &GraphBuilder, FSubstrateSceneData *SubstrateScene)
Definition Substrate.cpp:880
bool GetSubstrateUsesTileType(const FViewInfo &View, ESubstrateTileType TileType)
Definition Substrate.cpp:199
void BindSubstrateBasePassUniformParameters(FRDGBuilder &GraphBuilder, const FViewInfo &View, FSubstrateBasePassUniformParameters &OutSubstrateUniformParameters)
Definition Substrate.cpp:683
void AddSubstrateDBufferBasePass(FRDGBuilder &GraphBuilder, TArray< FViewInfo > &Views, const FSceneTextures &InSceneTextures, FDBufferTextures &DBufferTextures, FDecalVisibilityTaskData *DecalVisibility, FInstanceCullingManager &InstanceCullingManager, const FSubstrateSceneData &SubstrateSceneData)
Definition Substrate.cpp:1922
constexpr uint32 StencilBit_Fast
Definition Substrate.h:212
Definition DBufferTextures.h:35
Definition MaterialShared.h:1181
Definition SceneTextures.h:52
Definition SceneTextures.h:110
Definition ScreenPass.h:41
Definition ShaderCore.h:544
Definition Substrate.h:92
Definition Substrate.h:145
FRDGBufferRef ClosureTileCountBuffer
Definition Substrate.h:170
FSubstrateSceneData * SceneData
Definition Substrate.h:175
uint32 MaxBytesPerPixel
Definition Substrate.h:148
FRDGBufferRef ClassificationTileDispatchIndirectBuffer
Definition Substrate.h:166
FIntPoint TileCount
Definition Substrate.h:154
FRDGBufferRef ClosureTilePerThreadDispatchIndirectBuffer
Definition Substrate.h:173
FRDGBufferUAVRef ClassificationTileDrawIndirectBufferUAV
Definition Substrate.h:164
uint8 UsesTileTypeMask
Definition Substrate.h:151
FRDGBufferRef ClosureTileRaytracingIndirectBuffer
Definition Substrate.h:172
FRDGBufferRef ClosureTileDispatchIndirectBuffer
Definition Substrate.h:171
FRDGBufferUAVRef ClassificationTileListBufferUAV
Definition Substrate.h:160
bool bUsesAnisotropy
Definition Substrate.h:152
uint32 TileEncoding
Definition Substrate.h:155
FRDGBufferSRVRef ClassificationTileListBufferSRV
Definition Substrate.h:159
uint32 LayerCount
Definition Substrate.h:156
FRDGBufferRef ClassificationTileDrawIndirectBuffer
Definition Substrate.h:163
uint32 MaxClosurePerPixel
Definition Substrate.h:147
uint32 ClassificationTileListBufferOffset[SUBSTRATE_TILE_TYPE_COUNT]
Definition Substrate.h:161
TRDGUniformBufferRef< FSubstrateGlobalUniformParameters > SubstrateGlobalUniformParameters
Definition Substrate.h:177
FRDGBufferUAVRef ClassificationTileDispatchIndirectBufferUAV
Definition Substrate.h:167
void Reset()
Definition Substrate.cpp:94
FRDGBufferRef ClassificationTileListBuffer
Definition Substrate.h:158
FRDGBufferRef ClosureTileBuffer
Definition Substrate.h:169
Definition Substrate.h:194
FRDGBufferUAVRef DebugDataUAV
Definition Substrate.h:197
FRDGBufferRef DebugData
Definition Substrate.h:196
uint32 DebugDataSizeInUints
Definition Substrate.h:195
Definition Substrate.h:200
Definition Substrate.h:204
Definition Substrate.h:184
TQueue< TSharedPtr< FRHIGPUBufferReadback > > PixelMaterialDebugDataReadbackQueries
Definition Substrate.h:186
FTransientPixelDebugBuffer CreateTransientPixelDebugBuffer(FRDGBuilder &GraphBuilder)
Definition SubstrateVisualize.cpp:1547
void SafeRelease()
Definition SubstrateVisualize.cpp:1566
uint32 SystemInfoDebugDataSizeBytes
Definition Substrate.h:188
static FTransientPixelDebugBuffer CreateDummyPixelDebugBuffer(FRDGBuilder &GraphBuilder)
Definition SubstrateVisualize.cpp:1554
FTransientSystemInfoDebugBuffer CreateTransientSystemInfoDebugBuffer(FRDGBuilder &GraphBuilder)
Definition SubstrateVisualize.cpp:1559
TQueue< TSharedPtr< FRHIGPUBufferReadback > > SystemInfoDebugDataReadbackQueries
Definition Substrate.h:189
FSubstrateViewDebugData()
Definition SubstrateVisualize.cpp:1526
uint32 PixelMaterialDebugDataSizeBytes
Definition Substrate.h:185
Definition RenderGraphUtils.h:135
Definition ShaderPermutation.h:229