diff options
| author | 2019-01-25 23:42:14 -0500 | |
|---|---|---|
| committer | 2019-01-25 23:42:14 -0500 | |
| commit | 1f4ca1e841cd0b0427218d787efe10a3fa62df33 (patch) | |
| tree | 00cc1743c6a6ba593e3b56897b13c2272a71d779 /src/video_core/engines | |
| parent | Merge pull request #2054 from bunnei/scope-context-refactor (diff) | |
| parent | shader_ir: Fixup clang build (diff) | |
| download | yuzu-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.h | 10 | ||||
| -rw-r--r-- | src/video_core/engines/shader_header.h | 2 |
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 | ||
| 402 | enum class SystemVariable : u64 { | 406 | enum 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 | } |