UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
WideCustomResolveShaders.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "CoreMinimal.h"
6#include "ShaderParameters.h"
7#include "Shader.h"
8#include "GlobalShader.h"
11
27
28template <unsigned MSAASampleCount, unsigned Width, bool UseFMask>
30{
32public:
36 {
37 static_assert(Width >= 0 && Width <= 3, "Invalid width");
38 static_assert(MSAASampleCount == 0 || MSAASampleCount == 2 || MSAASampleCount == 4 || MSAASampleCount == 8, "Invalid sample count");
39
40 Tex.Bind(Initializer.ParameterMap, TEXT("Tex"), SPF_Mandatory);
41 if (MSAASampleCount > 0)
42 {
43 FMaskTex.Bind(Initializer.ParameterMap, TEXT("FMaskTex"), SPF_Optional);
44 }
45 ResolveOrigin.Bind(Initializer.ParameterMap, TEXT("ResolveOrigin"));
46 }
47
52
62
64 {
66 OutEnvironment.SetDefine(TEXT("WIDE_RESOLVE_WIDTH"), Width);
67 OutEnvironment.SetDefine(TEXT("MSAA_SAMPLE_COUNT"), MSAASampleCount);
68 OutEnvironment.SetDefine(TEXT("USE_FMASK"), UseFMask);
69 }
70
71protected:
75};
76
77extern void ResolveFilterWide(
78 FRHICommandList& RHICmdList,
79 FGraphicsPipelineStateInitializer& GraphicsPSOInit,
83 const FIntPoint& SrcOrigin,
84 int32 NumSamples,
#define TEXT(x)
Definition Platform.h:1272
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
bool IsFeatureLevelSupported(const FStaticShaderPlatform InShaderPlatform, ERHIFeatureLevel::Type InFeatureLevel)
Definition DataDrivenShaderPlatformInfo.h:1047
UE::Math::TVector2< float > FVector2f
Definition MathFwd.h:74
void SetTextureParameter(FRHIBatchedShaderParameters &BatchedParameters, const FShaderResourceParameter &Parameter, FRHITexture *TextureRHI)
Definition ShaderParameterUtils.h:77
void SetShaderValue(FRHIBatchedShaderParameters &BatchedParameters, const FShaderParameter &Parameter, const ParameterType &Value, uint32 ElementIndex=0)
Definition ShaderParameterUtils.h:24
void SetSRVParameter(FRHIBatchedShaderParameters &BatchedParameters, const FShaderResourceParameter &Parameter, FRHIShaderResourceView *SRV)
Definition ShaderParameterUtils.h:139
@ SPF_Optional
Definition ShaderParameters.h:49
@ SPF_Mandatory
Definition ShaderParameters.h:51
#define DECLARE_SHADER_TYPE(ShaderClass, ShaderMetaTypeShortcut,...)
Definition Shader.h:1688
void ResolveFilterWide(FRHICommandList &RHICmdList, FGraphicsPipelineStateInitializer &GraphicsPSOInit, const ERHIFeatureLevel::Type CurrentFeatureLevel, const FTextureRHIRef &SrcTexture, FRHIShaderResourceView *FmaskSRV, const FIntPoint &SrcOrigin, int32 NumSamples, int32 WideFilterWidth, FRHIBuffer *DummyVB)
Definition WideCustomResolveShaders.cpp:91
Definition GlobalShader.h:269
static void ModifyCompilationEnvironment(const FGlobalShaderPermutationParameters &Parameters, FShaderCompilerEnvironment &Environment)
Definition GlobalShader.h:289
Definition RHIResources.h:4572
Definition RHIResources.h:1581
Definition RHICommandList.h:3819
Definition RHIResources.h:3304
Definition RHIResources.h:2153
Definition ShaderParameters.h:56
Definition ShaderParameters.h:87
Definition WideCustomResolveShaders.h:30
static void ModifyCompilationEnvironment(const FGlobalShaderPermutationParameters &Parameters, FShaderCompilerEnvironment &OutEnvironment)
Definition WideCustomResolveShaders.h:63
LAYOUT_FIELD(FShaderParameter, ResolveOrigin)
FWideCustomResolvePS()
Definition WideCustomResolveShaders.h:33
static bool ShouldCompilePermutation(const FGlobalShaderPermutationParameters &Parameters)
Definition WideCustomResolveShaders.h:48
FWideCustomResolvePS(const ShaderMetaType::CompiledShaderInitializerType &Initializer)
Definition WideCustomResolveShaders.h:34
LAYOUT_FIELD(FShaderResourceParameter, Tex)
LAYOUT_FIELD(FShaderResourceParameter, FMaskTex)
void SetParameters(FRHIBatchedShaderParameters &BatchedParameters, FRHITexture *Texture2DMS, FRHIShaderResourceView *FmaskSRV, FIntPoint Origin)
Definition WideCustomResolveShaders.h:53
Definition WideCustomResolveShaders.h:13
FWideCustomResolveVS()
Definition WideCustomResolveShaders.h:16
static bool ShouldCompilePermutation(const FGlobalShaderPermutationParameters &Parameters)
Definition WideCustomResolveShaders.h:22
FWideCustomResolveVS(const ShaderMetaType::CompiledShaderInitializerType &Initializer)
Definition WideCustomResolveShaders.h:17
Type
Definition RHIFeatureLevel.h:20
@ SM5
Definition RHIFeatureLevel.h:42
Definition GlobalShader.h:73
Definition RHIShaderParameters.h:241
Definition Shader.h:1610
Definition ShaderCore.h:544
const EShaderPlatform Platform
Definition ShaderPermutation.h:29
Definition IntPoint.h:25