diff options
Diffstat (limited to 'src/shader_recompiler/frontend/ir')
-rw-r--r-- | src/shader_recompiler/frontend/ir/attribute.cpp | 14 | ||||
-rw-r--r-- | src/shader_recompiler/frontend/ir/attribute.h | 6 |
2 files changed, 15 insertions, 5 deletions
diff --git a/src/shader_recompiler/frontend/ir/attribute.cpp b/src/shader_recompiler/frontend/ir/attribute.cpp index dc2bec06db..5b3694f652 100644 --- a/src/shader_recompiler/frontend/ir/attribute.cpp +++ b/src/shader_recompiler/frontend/ir/attribute.cpp @@ -9,11 +9,21 @@ namespace Shader::IR { -u32 TxtCoordAttributeIndex(Attribute attribute) { +bool IsFixedFncTexture(Attribute attribute) { + return attribute >= Attribute::FixedFncTexture0S && attribute <= Attribute::FixedFncTexture9Q; +} + +u32 FixedFncTextureAttributeIndex(Attribute attribute) { + if (!IsFixedFncTexture(attribute)) { + throw InvalidArgument("Attribute is not fixedfnctexture {}", attribute); + } return (static_cast<u32>(attribute) - static_cast<u32>(Attribute::FixedFncTexture0S)) / 4u; } -u32 TxtCoordAttributeElement(Attribute attribute) { +u32 FixedFncTextureAttributeElement(Attribute attribute) { + if (!IsFixedFncTexture(attribute)) { + throw InvalidArgument("Attribute is not fixedfnctexture {}", attribute); + } return static_cast<u32>(attribute) % 4; } diff --git a/src/shader_recompiler/frontend/ir/attribute.h b/src/shader_recompiler/frontend/ir/attribute.h index 6957fb43b9..3f07fd7acb 100644 --- a/src/shader_recompiler/frontend/ir/attribute.h +++ b/src/shader_recompiler/frontend/ir/attribute.h @@ -222,12 +222,12 @@ enum class Attribute : u64 { FrontFace = 255, }; -constexpr size_t NUM_TXT_COORD = 10; +constexpr size_t NUM_FIXEDFNCTEXTURE = 10; constexpr size_t NUM_GENERICS = 32; -[[nodiscard]] u32 TxtCoordAttributeIndex(Attribute attribute); +[[nodiscard]] u32 FixedFncTextureAttributeIndex(Attribute attribute); -[[nodiscard]] u32 TxtCoordAttributeElement(Attribute attribute); +[[nodiscard]] u32 FixedFncTextureAttributeElement(Attribute attribute); [[nodiscard]] bool IsGeneric(Attribute attribute) noexcept; |