summaryrefslogtreecommitdiffstats
path: root/src/shader_recompiler/frontend/ir
diff options
context:
space:
mode:
authorFeng Chen <vonchenplus@gmail.com>2021-08-31 18:07:25 +0200
committerFeng Chen <vonchenplus@gmail.com>2021-08-31 18:07:25 +0200
commit73b11f390e3dabf42d22af78670c8aa6d8f52cee (patch)
tree3af775771173d1e827d2e1a05ada642a43fba9a9 /src/shader_recompiler/frontend/ir
parentMerge pull request #6905 from Morph1984/nifm-misc (diff)
downloadyuzu-73b11f390e3dabf42d22af78670c8aa6d8f52cee.tar
yuzu-73b11f390e3dabf42d22af78670c8aa6d8f52cee.tar.gz
yuzu-73b11f390e3dabf42d22af78670c8aa6d8f52cee.tar.bz2
yuzu-73b11f390e3dabf42d22af78670c8aa6d8f52cee.tar.lz
yuzu-73b11f390e3dabf42d22af78670c8aa6d8f52cee.tar.xz
yuzu-73b11f390e3dabf42d22af78670c8aa6d8f52cee.tar.zst
yuzu-73b11f390e3dabf42d22af78670c8aa6d8f52cee.zip
Diffstat (limited to 'src/shader_recompiler/frontend/ir')
-rw-r--r--src/shader_recompiler/frontend/ir/attribute.cpp8
-rw-r--r--src/shader_recompiler/frontend/ir/attribute.h5
2 files changed, 13 insertions, 0 deletions
diff --git a/src/shader_recompiler/frontend/ir/attribute.cpp b/src/shader_recompiler/frontend/ir/attribute.cpp
index 4d0b8b8e5..dc2bec06d 100644
--- a/src/shader_recompiler/frontend/ir/attribute.cpp
+++ b/src/shader_recompiler/frontend/ir/attribute.cpp
@@ -9,6 +9,14 @@
namespace Shader::IR {
+u32 TxtCoordAttributeIndex(Attribute attribute) {
+ return (static_cast<u32>(attribute) - static_cast<u32>(Attribute::FixedFncTexture0S)) / 4u;
+}
+
+u32 TxtCoordAttributeElement(Attribute attribute) {
+ return static_cast<u32>(attribute) % 4;
+}
+
bool IsGeneric(Attribute attribute) noexcept {
return attribute >= Attribute::Generic0X && attribute <= Attribute::Generic31X;
}
diff --git a/src/shader_recompiler/frontend/ir/attribute.h b/src/shader_recompiler/frontend/ir/attribute.h
index ca1199494..6957fb43b 100644
--- a/src/shader_recompiler/frontend/ir/attribute.h
+++ b/src/shader_recompiler/frontend/ir/attribute.h
@@ -222,8 +222,13 @@ enum class Attribute : u64 {
FrontFace = 255,
};
+constexpr size_t NUM_TXT_COORD = 10;
constexpr size_t NUM_GENERICS = 32;
+[[nodiscard]] u32 TxtCoordAttributeIndex(Attribute attribute);
+
+[[nodiscard]] u32 TxtCoordAttributeElement(Attribute attribute);
+
[[nodiscard]] bool IsGeneric(Attribute attribute) noexcept;
[[nodiscard]] u32 GenericAttributeIndex(Attribute attribute);