62 checkf(
false,
TEXT(
"Platforms that support bindless must override GenerateBindlessAccess"));
69 checkf(
false,
TEXT(
"Platforms that support replacing globals must override ReplaceGlobal"));
120 bool bGloballyCoherent =
false;
121 bool bIsBindable =
false;
#define checkf(expr, format,...)
Definition AssertionMacros.h:315
@ INDEX_NONE
Definition CoreMiscDefines.h:150
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
constexpr void EnumAddFlags(Enum &Flags, Enum FlagsToAdd)
Definition EnumClassFlags.h:91
#define ENUM_CLASS_FLAGS(Enum)
Definition EnumClassFlags.h:6
EShaderFrequency
Definition RHIDefinitions.h:202
@ UBMT_INVALID
Definition RHIDefinitions.h:635
EShaderCodeResourceBindingType
Definition RHIDefinitions.h:553
EShaderParameterType
Definition ShaderCore.h:248
EShaderParameterParserConfigurationFlags
Definition ShaderParameterParser.h:26
@ UseStableConstantBuffer
EBindlessConversionType
Definition ShaderParameterParser.h:18
Definition ShaderCore.h:402
Definition ShaderParameterParser.h:41
TMap< FString, FParsedShaderParameter > ParsedParameters
Definition ShaderParameterParser.h:243
static RENDERCORE_API EShaderParameterType ParseAndRemoveBindlessParameterPrefix(FStringView &InName)
Definition ShaderParameterParser.cpp:214
void GetParameterFileAndLine(const FParsedShaderParameter &ParsedParameter, FString &OutFile, FString &OutLine) const
Definition ShaderParameterParser.h:199
RENDERCORE_API void ValidateShaderParameterType(const FShaderCompilerInput &CompilerInput, const FString &ShaderBindingName, int32 ReflectionOffset, int32 ReflectionSize, bool bPlatformSupportsPrecisionModifier, FShaderCompilerOutput &CompilerOutput) const
Definition ShaderParameterParser.cpp:1267
bool DidModifyShader() const
Definition ShaderParameterParser.h:204
virtual RENDERCORE_API ~FShaderParameterParser()
static constexpr const TCHAR * kBindlessSamplerArrayPrefix
Definition ShaderParameterParser.h:140
void ValidateShaderParameterTypes(const FShaderCompilerInput &CompilerInput, FShaderCompilerOutput &CompilerOutput) const
Definition ShaderParameterParser.h:191
FString OriginalParsedShader
Definition ShaderParameterParser.h:241
RENDERCORE_API bool ParseParameters(const FShaderParametersMetadata *RootParametersStructure, TArray< FShaderCompilerError > &OutErrors)
Definition ShaderParameterParser.cpp:264
bool bMovedLoosedParametersToRootConstantBuffer
Definition ShaderParameterParser.h:251
const FPlatformConfiguration & PlatformConfiguration
Definition ShaderParameterParser.h:239
RENDERCORE_API bool ParseAndModify(const FShaderCompilerInput &CompilerInput, TArray< FShaderCompilerError > &OutErrors, FString &PreprocessedShaderSource)
Definition ShaderParameterParser.cpp:1202
static RENDERCORE_API bool RemoveBindlessParameterPrefix(FString &InName)
Definition ShaderParameterParser.cpp:245
RENDERCORE_API bool MoveShaderParametersToRootConstantBuffer(const FShaderParametersMetadata *RootParametersStructure, EShaderFrequency ShaderFrequency, FString &PreprocessedShaderSource)
Definition ShaderParameterParser.cpp:1114
bool bNeedToMoveToRootConstantBuffer
Definition ShaderParameterParser.h:248
static constexpr const TCHAR * kBindlessSRVArrayPrefix
Definition ShaderParameterParser.h:138
RENDERCORE_API void ExtractFileAndLine(int32 PragamLineoffset, int32 LineOffset, FString &OutFile, FString &OutLine) const
Definition ShaderParameterParser.cpp:1458
static constexpr const TCHAR * kBindlessSamplerPrefix
Definition ShaderParameterParser.h:135
const FParsedShaderParameter * FindParameterInfosUnsafe(const FString &ParameterName) const
Definition ShaderParameterParser.h:161
FShaderParameterParser()=delete
bool bBindlessEnabled
Definition ShaderParameterParser.h:245
static constexpr const TCHAR * kBindlessUAVPrefix
Definition ShaderParameterParser.h:134
static constexpr const TCHAR * kBindlessSRVPrefix
Definition ShaderParameterParser.h:133
RENDERCORE_API void ValidateShaderParameterTypes(const FShaderCompilerInput &CompilerInput, bool bPlatformSupportsPrecisionModifier, FShaderCompilerOutput &CompilerOutput) const
Definition ShaderParameterParser.cpp:1399
virtual RENDERCORE_API FString GenerateBindlessParameterDeclaration(const FParsedShaderParameter &ParsedParameter) const
Definition ShaderParameterParser.cpp:938
bool bModifiedShader
Definition ShaderParameterParser.h:254
const FParsedShaderParameter & FindParameterInfos(const FString &ParameterName) const
Definition ShaderParameterParser.h:154
RENDERCORE_API void RemoveMovingParametersFromSource(FString &PreprocessedShaderSource)
Definition ShaderParameterParser.cpp:892
static RENDERCORE_API FStringView GetBindlessParameterPrefix(EShaderParameterType InShaderParameterType)
Definition ShaderParameterParser.cpp:252
RENDERCORE_API EShaderParameterType ParseParameterType(FStringView InType)
Definition ShaderParameterParser.cpp:188
void ValidateShaderParameterType(const FShaderCompilerInput &CompilerInput, const FString &ShaderBindingName, int32 ReflectionOffset, int32 ReflectionSize, FShaderCompilerOutput &CompilerOutput) const
Definition ShaderParameterParser.h:175
static constexpr const TCHAR * kBindlessUAVArrayPrefix
Definition ShaderParameterParser.h:139
RENDERCORE_API void ApplyBindlessModifications(FString &PreprocessedShaderSource)
Definition ShaderParameterParser.cpp:997
Definition EnumAsByte.h:22
Definition UnrealString.h.inl:34
constexpr bool IsEmpty() const
Definition StringView.h:180
@ Invalid
Definition ShaderParameterMetadata.h:42
Definition ShaderCore.h:544
Definition ShaderCompilerCore.h:411
Definition ShaderCompilerCore.h:491
Definition ShaderParameterParser.h:87
FStringView ParsedArraySize
Definition ShaderParameterParser.h:99
FStringView ParsedName
Definition ShaderParameterParser.h:97
FStringView ParsedType
Definition ShaderParameterParser.h:98
bool IsFound() const
Definition ShaderParameterParser.h:105