summaryrefslogtreecommitdiff
path: root/src/video_core/engines
diff options
context:
space:
mode:
authorGravatar bunnei2019-01-25 23:42:14 -0500
committerGravatar GitHub2019-01-25 23:42:14 -0500
commit1f4ca1e841cd0b0427218d787efe10a3fa62df33 (patch)
tree00cc1743c6a6ba593e3b56897b13c2272a71d779 /src/video_core/engines
parentMerge pull request #2054 from bunnei/scope-context-refactor (diff)
parentshader_ir: Fixup clang build (diff)
downloadyuzu-1f4ca1e841cd0b0427218d787efe10a3fa62df33.tar.gz
yuzu-1f4ca1e841cd0b0427218d787efe10a3fa62df33.tar.xz
yuzu-1f4ca1e841cd0b0427218d787efe10a3fa62df33.zip
Merge pull request #1927 from ReinUsesLisp/shader-ir
video_core: Replace gl_shader_decompiler with an IR based decompiler
Diffstat (limited to 'src/video_core/engines')
-rw-r--r--src/video_core/engines/shader_bytecode.h10
-rw-r--r--src/video_core/engines/shader_header.h2
2 files changed, 9 insertions, 3 deletions
diff --git a/src/video_core/engines/shader_bytecode.h b/src/video_core/engines/shader_bytecode.h
index e53c77f2b..cdef97bc6 100644
--- a/src/video_core/engines/shader_bytecode.h
+++ b/src/video_core/engines/shader_bytecode.h
@@ -397,6 +397,10 @@ struct IpaMode {
397 bool operator!=(const IpaMode& a) const { 397 bool operator!=(const IpaMode& a) const {
398 return !operator==(a); 398 return !operator==(a);
399 } 399 }
400 bool operator<(const IpaMode& a) const {
401 return std::tie(interpolation_mode, sampling_mode) <
402 std::tie(a.interpolation_mode, a.sampling_mode);
403 }
400}; 404};
401 405
402enum class SystemVariable : u64 { 406enum class SystemVariable : u64 {
@@ -644,6 +648,7 @@ union Instruction {
644 BitField<37, 2, HalfPrecision> precision; 648 BitField<37, 2, HalfPrecision> precision;
645 BitField<32, 1, u64> saturate; 649 BitField<32, 1, u64> saturate;
646 650
651 BitField<31, 1, u64> negate_b;
647 BitField<30, 1, u64> negate_c; 652 BitField<30, 1, u64> negate_c;
648 BitField<35, 2, HalfType> type_c; 653 BitField<35, 2, HalfType> type_c;
649 } rr; 654 } rr;
@@ -1431,6 +1436,7 @@ public:
1431 PredicateSetRegister, 1436 PredicateSetRegister,
1432 RegisterSetPredicate, 1437 RegisterSetPredicate,
1433 Conversion, 1438 Conversion,
1439 Video,
1434 Xmad, 1440 Xmad,
1435 Unknown, 1441 Unknown,
1436 }; 1442 };
@@ -1562,8 +1568,8 @@ private:
1562 INST("11100000--------", Id::IPA, Type::Trivial, "IPA"), 1568 INST("11100000--------", Id::IPA, Type::Trivial, "IPA"),
1563 INST("1111101111100---", Id::OUT_R, Type::Trivial, "OUT_R"), 1569 INST("1111101111100---", Id::OUT_R, Type::Trivial, "OUT_R"),
1564 INST("1110111111010---", Id::ISBERD, Type::Trivial, "ISBERD"), 1570 INST("1110111111010---", Id::ISBERD, Type::Trivial, "ISBERD"),
1565 INST("01011111--------", Id::VMAD, Type::Trivial, "VMAD"), 1571 INST("01011111--------", Id::VMAD, Type::Video, "VMAD"),
1566 INST("0101000011110---", Id::VSETP, Type::Trivial, "VSETP"), 1572 INST("0101000011110---", Id::VSETP, Type::Video, "VSETP"),
1567 INST("0011001-1-------", Id::FFMA_IMM, Type::Ffma, "FFMA_IMM"), 1573 INST("0011001-1-------", Id::FFMA_IMM, Type::Ffma, "FFMA_IMM"),
1568 INST("010010011-------", Id::FFMA_CR, Type::Ffma, "FFMA_CR"), 1574 INST("010010011-------", Id::FFMA_CR, Type::Ffma, "FFMA_CR"),
1569 INST("010100011-------", Id::FFMA_RC, Type::Ffma, "FFMA_RC"), 1575 INST("010100011-------", Id::FFMA_RC, Type::Ffma, "FFMA_RC"),
diff --git a/src/video_core/engines/shader_header.h b/src/video_core/engines/shader_header.h
index 99c34649f..cf2b76ff6 100644
--- a/src/video_core/engines/shader_header.h
+++ b/src/video_core/engines/shader_header.h
@@ -106,7 +106,7 @@ struct Header {
106 } ps; 106 } ps;
107 }; 107 };
108 108
109 u64 GetLocalMemorySize() { 109 u64 GetLocalMemorySize() const {
110 return (common1.shader_local_memory_low_size | 110 return (common1.shader_local_memory_low_size |
111 (common2.shader_local_memory_high_size << 24)); 111 (common2.shader_local_memory_high_size << 24));
112 } 112 }