99template <
typename FSubsurfacePassPS,
typename FSubsurfacePassVS>
151 RHICmdList.
SetViewport(0.0f, 0.0f, 0.0f, Viewport.Extent.X, Viewport.Extent.Y, 1.0f);
#define check(expr)
Definition AssertionMacros.h:314
TGlobalResource< FFilterVertexDeclaration, FRenderResource::EInitPhase::Pre > GFilterVertexDeclaration
Definition CommonRenderResources.cpp:13
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define DECLARE_GLOBAL_SHADER(ShaderClass)
Definition GlobalShader.h:408
FInt32Point FIntPoint
Definition MathFwd.h:124
void SetGraphicsPipelineState(FRHICommandList &RHICmdList, const FGraphicsPipelineStateInitializer &Initializer, uint32 StencilRef, EApplyRendertargetOption ApplyFlags, bool bApplyAdditionalState)
Definition PipelineStateCache.cpp:1478
@ PT_RectList
Definition RHIDefinitions.h:844
@ PT_TriangleList
Definition RHIDefinitions.h:824
void AddDrawScreenPass(FRDGBuilder &GraphBuilder, FRDGEventName &&PassName, FScreenPassViewInfo ViewInfo, const FScreenPassTextureViewport &OutputViewport, const FScreenPassTextureViewport &InputViewport, const TShaderRef< FShader > &VertexShader, const TShaderRef< PixelShaderType > &PixelShader, FRHIBlendState *BlendState, FRHIDepthStencilState *DepthStencilState, typename PixelShaderType::FParameters *PixelShaderParameters, EScreenPassDrawFlags Flags=EScreenPassDrawFlags::None)
Definition ScreenPass.h:505
#define SHADER_PARAMETER_RDG_BUFFER_SRV(ShaderType, MemberName)
Definition ShaderParameterMacros.h:1800
#define RDG_BUFFER_ACCESS(MemberName, Access)
Definition ShaderParameterMacros.h:1923
#define BEGIN_SHADER_PARAMETER_STRUCT(StructTypeName, DllStorage)
Definition ShaderParameterMacros.h:1482
#define END_SHADER_PARAMETER_STRUCT()
Definition ShaderParameterMacros.h:1485
#define SHADER_PARAMETER(MemberType, MemberName)
Definition ShaderParameterMacros.h:1684
void SetShaderParameters(FRHIBatchedShaderParameters &BatchedParameters, const FShaderParameterBindings &Bindings, const FShaderParametersMetadata *ParametersMetadata, const void *InParametersData)
Definition ShaderParameterStruct.cpp:883
#define SHADER_USE_PARAMETER_STRUCT(ShaderClass, ShaderParentClass)
Definition ShaderParameterStruct.h:62
void AddSubsurfaceTiledScreenPass(FRDGBuilder &GraphBuilder, FRDGEventName &&Name, const FViewInfo &View, typename FSubsurfacePassPS::FParameters *PassParameters, TShaderMapRef< FSubsurfacePassVS > &VertexShader, TShaderMapRef< FSubsurfacePassPS > &PixelShader, FRHIBlendState *BlendState, FRHIDepthStencilState *DepthStencilState, const FScreenPassTextureViewport SceneViewport, FSubsurfaceTiles::ETileType TileType, const bool bShouldFallbackToFullScreenPass=false)
Definition SubsurfaceTiles.h:100
FSubsurfaceTilePassVS::FParameters GetSubsurfaceTileParameters(const FScreenPassTextureViewport &TileViewport, const FSubsurfaceTiles &InTile, FSubsurfaceTiles::ETileType TileType)
Definition SubsurfaceTiles.cpp:25
FORCEINLINE uint32 ToIndex(FSubsurfaceTiles::ETileType Type)
Definition SubsurfaceTiles.h:60
FSubsurfaceTiles ClassifySSSTiles(FRDGBuilder &GraphBuilder, const FViewInfo &View, const FSceneTextures &SceneTextures, const FScreenPassTextureViewportParameters SceneViewportParameters, const FScreenPassTextureViewportParameters SubsurfaceViewportParameters, const bool IsHalfRes)
Definition SubsurfaceTiles.cpp:286
void AddConditionalClearBlackUAVPass(FRDGBuilder &GraphBuilder, FRDGEventName &&PassName, FRDGTextureRef Texture, const FScreenPassTextureViewport &ScreenPassViewport, FRDGBufferRef ConditionBuffer, uint32 Offset)
Definition SubsurfaceTiles.cpp:83
uint32 Offset
Definition VulkanMemory.cpp:4033
Definition GlobalShader.h:269
Definition RHIResources.h:4572
FBoundShaderStateInput BoundShaderState
Definition RHIResources.h:4754
FRHIBlendState * BlendState
Definition RHIResources.h:4755
FRHIRasterizerState * RasterizerState
Definition RHIResources.h:4756
FRHIDepthStencilState * DepthStencilState
Definition RHIResources.h:4757
EPrimitiveType PrimitiveType
Definition RHIResources.h:4760
Definition RenderGraphResources.h:1426
Definition RenderGraphResources.h:1321
Definition RenderGraphBuilder.h:49
FRDGPassRef AddPass(FRDGEventName &&Name, const ParameterStructType *ParameterStruct, ERDGPassFlags Flags, ExecuteLambdaType &&ExecuteLambda)
Definition RenderGraphEvent.h:38
Definition RenderGraphResources.h:571
Definition RHIResources.h:696
Definition RHICommandList.h:3819
void SetStreamSource(uint32 StreamIndex, FRHIBuffer *VertexBuffer, uint32 Offset)
Definition RHICommandList.h:3984
void DrawPrimitiveIndirect(FRHIBuffer *ArgumentBuffer, uint32 ArgumentOffset)
Definition RHICommandList.h:4127
void SetViewport(float MinX, float MinY, float MinZ, float MaxX, float MaxY, float MaxZ)
Definition RHICommandList.h:4015
void ApplyCachedRenderTargets(FGraphicsPipelineStateInitializer &GraphicsPSOInit)
Definition RHICommandList.h:4048
Definition RHIResources.h:686
Definition ScreenPass.h:136
Definition SubsurfaceTiles.h:84
static bool ShouldCompilePermutation(const FGlobalShaderPermutationParameters &Parameters)
Definition SubsurfaceTiles.cpp:20
FSubsurfaceTileFallbackScreenPassVS(const ShaderMetaType::CompiledShaderInitializerType &Initializer)
Definition SubsurfaceTiles.h:91
FSubsurfaceTileFallbackScreenPassVS()=default
DECLARE_GLOBAL_SHADER(FSubsurfaceTileFallbackScreenPassVS)
Definition SubsurfaceTiles.h:64
Definition SceneRendering.h:1132
FGlobalShaderMap * ShaderMap
Definition SceneRendering.h:1474
static RHIParamRefType GetRHI()
Definition RHIStaticStates.h:57
FString ToString(uint16 Value)
Definition PathFollowingComponent.cpp:82
U16 Index
Definition radfft.cpp:71
Definition GlobalShader.h:73
Definition RenderGraphDefinitions.h:103
Definition SceneTextures.h:110
Definition ShaderCore.h:544
Definition SubsurfaceTiles.h:19
static const uint32 TilePerThread_GroupSize
Definition SubsurfaceTiles.h:34
FRDGBufferRef TileIndirectDispatchBuffer
Definition SubsurfaceTiles.h:46
static FORCEINLINE uint32 GetIndirectDispatchArgOffset(ETileType Type)
Definition SubsurfaceTiles.h:53
bool IsValid() const
Definition SubsurfaceTiles.h:55
FIntPoint TileDimension
Definition SubsurfaceTiles.h:36
FRDGBufferRef TileIndirectRayDispatchBuffer
Definition SubsurfaceTiles.h:48
FIntPoint BufferResolution
Definition SubsurfaceTiles.h:28
FRDGBufferSRVRef TileTypeCountSRV
Definition SubsurfaceTiles.h:43
ETileType
Definition SubsurfaceTiles.h:25
static const uint32 GroupSize
Definition SubsurfaceTiles.h:29
FRDGBufferRef TileIndirectDrawBuffer
Definition SubsurfaceTiles.h:47
uint32 TileCount
Definition SubsurfaceTiles.h:35
FRDGBufferRef TileDataBuffer[TileTypeCount]
Definition SubsurfaceTiles.h:41
FRDGBufferSRVRef GetTileBufferSRV(ETileType Type) const
Definition SubsurfaceTiles.h:57
FRDGBufferRef TileTypeCountBuffer
Definition SubsurfaceTiles.h:44
FRDGBufferRef GetTileBuffer(ETileType Type) const
Definition SubsurfaceTiles.h:56
FRDGBufferSRVRef TileDataSRV[TileTypeCount]
Definition SubsurfaceTiles.h:40
FRDGBufferRef TilePerThreadIndirectDispatchBuffer
Definition SubsurfaceTiles.h:50
static FORCEINLINE uint32 GetIndirectDrawArgOffset(ETileType Type)
Definition SubsurfaceTiles.h:52
static const uint32 TileSize
Definition SubsurfaceTiles.h:32
static const uint32 TileTypeCount
Definition SubsurfaceTiles.h:26
bool bRectPrimitive
Definition SubsurfaceTiles.h:37