43 template <
typename TDimension>
57 if (!OutString.IsEmpty())
59 OutString.AppendChar(
TEXT(
'\n'));
62 if (Prefix !=
nullptr)
64 OutString.Append(Prefix);
67 if (TDimension::IsMultiDimensional)
69 OutString.Appendf(
TEXT(
"TShaderPermutationDomain[%d]"), TDimension::PermutationCount);
72 if (Prefix !=
nullptr)
84 if (!OutString.IsEmpty())
86 OutString.AppendChar(
TEXT(
','));
94 template <
typename TDimension>
97 if constexpr (TDimension::IsMultiDimensional)
101 else if constexpr (std::is_base_of_v<FShaderPermutationBool, TDimension>)
116 OutString.Appendf(
TEXT(
"%s (%d)"), TDimension::DefineName,
static_cast<int32>(TDimension::ToDefineValue(
E)));
120 OutString.Appendf(
TEXT(
"%d"),
static_cast<int32>(TDimension::ToDefineValue(
E)));
125 template <
typename DimensionType>
128 for (
int32 PermutationId = 0; PermutationId < DimensionType::PermutationCount; ++PermutationId)
130 if (
Value == DimensionType::FromDimensionValueId(PermutationId))
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
FRHIGlobals GRHIGlobals
Definition RHIGlobals.cpp:6
Definition ShaderPermutationUtils.h:10
void FormatPermutationParameter(const typename TDimension::Type &E, FString &OutString, bool bFullNames, const TCHAR *Prefix)
Definition ShaderPermutationUtils.h:95
bool DoesDimensionContainValue(const typename DimensionType::Type &Value)
Definition ShaderPermutationUtils.h:126
bool ShouldCompileWithWaveSize(const FShaderPermutationParameters &Parameters, int32 WaveSize)
Definition ShaderPermutationUtils.h:11
void FormatPermutationDomain(const TShaderPermutationDomain<> &InShaderPermutationDomain, FString &OutString, bool bFullNames, const TCHAR *Prefix)
Definition ShaderPermutationUtils.h:46
bool ShouldPrecacheWithWaveSize(const FShaderPermutationParameters &Parameters, int32 WaveSize)
Definition ShaderPermutationUtils.h:30
int32 MaximumWaveSize
Definition RHIGlobals.h:505
static bool ToDefineValue(Type E)
Definition ShaderPermutation.h:68
Definition ShaderPermutation.h:27
const EShaderPlatform Platform
Definition ShaderPermutation.h:29
Definition ShaderPermutation.h:229