diff options
author | ReinUsesLisp <reinuseslisp@airmail.cc> | 2021-04-14 06:04:59 +0200 |
---|---|---|
committer | ameerj <52414509+ameerj@users.noreply.github.com> | 2021-07-23 03:51:27 +0200 |
commit | b126987c59964d81ae3705ad7ad6c0ace8714e19 (patch) | |
tree | d6384469b9450431de5679dcd12fa2ce18e9a8dd /src/shader_recompiler/frontend/ir | |
parent | shader: Implement early Z tests (diff) | |
download | yuzu-b126987c59964d81ae3705ad7ad6c0ace8714e19.tar yuzu-b126987c59964d81ae3705ad7ad6c0ace8714e19.tar.gz yuzu-b126987c59964d81ae3705ad7ad6c0ace8714e19.tar.bz2 yuzu-b126987c59964d81ae3705ad7ad6c0ace8714e19.tar.lz yuzu-b126987c59964d81ae3705ad7ad6c0ace8714e19.tar.xz yuzu-b126987c59964d81ae3705ad7ad6c0ace8714e19.tar.zst yuzu-b126987c59964d81ae3705ad7ad6c0ace8714e19.zip |
Diffstat (limited to 'src/shader_recompiler/frontend/ir')
-rw-r--r-- | src/shader_recompiler/frontend/ir/attribute.cpp | 7 | ||||
-rw-r--r-- | src/shader_recompiler/frontend/ir/attribute.h | 2 |
2 files changed, 9 insertions, 0 deletions
diff --git a/src/shader_recompiler/frontend/ir/attribute.cpp b/src/shader_recompiler/frontend/ir/attribute.cpp index 7993e5c43..4d0b8b8e5 100644 --- a/src/shader_recompiler/frontend/ir/attribute.cpp +++ b/src/shader_recompiler/frontend/ir/attribute.cpp @@ -20,6 +20,13 @@ u32 GenericAttributeIndex(Attribute attribute) { return (static_cast<u32>(attribute) - static_cast<u32>(Attribute::Generic0X)) / 4u; } +u32 GenericAttributeElement(Attribute attribute) { + if (!IsGeneric(attribute)) { + throw InvalidArgument("Attribute is not generic {}", attribute); + } + return static_cast<u32>(attribute) % 4; +} + std::string NameOf(Attribute attribute) { switch (attribute) { case Attribute::PrimitiveId: diff --git a/src/shader_recompiler/frontend/ir/attribute.h b/src/shader_recompiler/frontend/ir/attribute.h index 34ec7e0cd..8bf2ddf30 100644 --- a/src/shader_recompiler/frontend/ir/attribute.h +++ b/src/shader_recompiler/frontend/ir/attribute.h @@ -226,6 +226,8 @@ enum class Attribute : u64 { [[nodiscard]] u32 GenericAttributeIndex(Attribute attribute); +[[nodiscard]] u32 GenericAttributeElement(Attribute attribute); + [[nodiscard]] std::string NameOf(Attribute attribute); } // namespace Shader::IR |