diff options
| author | 2020-04-15 15:03:49 -0400 | |
|---|---|---|
| committer | 2020-04-15 15:03:49 -0400 | |
| commit | e33196d4e7687dd29636decd4b52e01b10fe8984 (patch) | |
| tree | b20b84dc47b9ef48c8701951ead117f52252e6e5 /src/video_core/engines | |
| parent | Merge pull request #3670 from lioncash/reorder (diff) | |
| parent | shader/memory: Implement RED.E.ADD (diff) | |
| download | yuzu-e33196d4e7687dd29636decd4b52e01b10fe8984.tar.gz yuzu-e33196d4e7687dd29636decd4b52e01b10fe8984.tar.xz yuzu-e33196d4e7687dd29636decd4b52e01b10fe8984.zip | |
Merge pull request #3612 from ReinUsesLisp/red
shader/memory: Implement RED.E.ADD and minor changes to ATOM
Diffstat (limited to 'src/video_core/engines')
| -rw-r--r-- | src/video_core/engines/shader_bytecode.h | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/video_core/engines/shader_bytecode.h b/src/video_core/engines/shader_bytecode.h index 430ee86ba..5e9cfba22 100644 --- a/src/video_core/engines/shader_bytecode.h +++ b/src/video_core/engines/shader_bytecode.h | |||
| @@ -1006,6 +1006,12 @@ union Instruction { | |||
| 1006 | } stg; | 1006 | } stg; |
| 1007 | 1007 | ||
| 1008 | union { | 1008 | union { |
| 1009 | BitField<23, 3, AtomicOp> operation; | ||
| 1010 | BitField<48, 1, u64> extended; | ||
| 1011 | BitField<20, 3, GlobalAtomicType> type; | ||
| 1012 | } red; | ||
| 1013 | |||
| 1014 | union { | ||
| 1009 | BitField<52, 4, AtomicOp> operation; | 1015 | BitField<52, 4, AtomicOp> operation; |
| 1010 | BitField<49, 3, GlobalAtomicType> type; | 1016 | BitField<49, 3, GlobalAtomicType> type; |
| 1011 | BitField<28, 20, s64> offset; | 1017 | BitField<28, 20, s64> offset; |
| @@ -1787,6 +1793,7 @@ public: | |||
| 1787 | ST_S, | 1793 | ST_S, |
| 1788 | ST, // Store in generic memory | 1794 | ST, // Store in generic memory |
| 1789 | STG, // Store in global memory | 1795 | STG, // Store in global memory |
| 1796 | RED, // Reduction operation | ||
| 1790 | ATOM, // Atomic operation on global memory | 1797 | ATOM, // Atomic operation on global memory |
| 1791 | ATOMS, // Atomic operation on shared memory | 1798 | ATOMS, // Atomic operation on shared memory |
| 1792 | AL2P, // Transforms attribute memory into physical memory | 1799 | AL2P, // Transforms attribute memory into physical memory |
| @@ -2097,6 +2104,7 @@ private: | |||
| 2097 | INST("1110111101010---", Id::ST_L, Type::Memory, "ST_L"), | 2104 | INST("1110111101010---", Id::ST_L, Type::Memory, "ST_L"), |
| 2098 | INST("101-------------", Id::ST, Type::Memory, "ST"), | 2105 | INST("101-------------", Id::ST, Type::Memory, "ST"), |
| 2099 | INST("1110111011011---", Id::STG, Type::Memory, "STG"), | 2106 | INST("1110111011011---", Id::STG, Type::Memory, "STG"), |
| 2107 | INST("1110101111111---", Id::RED, Type::Memory, "RED"), | ||
| 2100 | INST("11101101--------", Id::ATOM, Type::Memory, "ATOM"), | 2108 | INST("11101101--------", Id::ATOM, Type::Memory, "ATOM"), |
| 2101 | INST("11101100--------", Id::ATOMS, Type::Memory, "ATOMS"), | 2109 | INST("11101100--------", Id::ATOMS, Type::Memory, "ATOMS"), |
| 2102 | INST("1110111110100---", Id::AL2P, Type::Memory, "AL2P"), | 2110 | INST("1110111110100---", Id::AL2P, Type::Memory, "AL2P"), |