summaryrefslogtreecommitdiff
path: root/src/shader_recompiler/frontend/ir/microinstruction.cpp
diff options
context:
space:
mode:
authorGravatar ameerj2021-04-11 02:07:02 -0400
committerGravatar ameerj2021-07-22 21:51:27 -0400
commit3db2b3effa953ae66457b7a19b419fc4db2c4801 (patch)
tree04c73897a74be053a610edf60703c72e985ee590 /src/shader_recompiler/frontend/ir/microinstruction.cpp
parentnsight_aftermath_tracker: Report used shaders to Nsight Aftermath (diff)
downloadyuzu-3db2b3effa953ae66457b7a19b419fc4db2c4801.tar.gz
yuzu-3db2b3effa953ae66457b7a19b419fc4db2c4801.tar.xz
yuzu-3db2b3effa953ae66457b7a19b419fc4db2c4801.zip
shader: Implement ATOM/S and RED
Diffstat (limited to 'src/shader_recompiler/frontend/ir/microinstruction.cpp')
-rw-r--r--src/shader_recompiler/frontend/ir/microinstruction.cpp66
1 files changed, 66 insertions, 0 deletions
diff --git a/src/shader_recompiler/frontend/ir/microinstruction.cpp b/src/shader_recompiler/frontend/ir/microinstruction.cpp
index 2df631791..0f66c5627 100644
--- a/src/shader_recompiler/frontend/ir/microinstruction.cpp
+++ b/src/shader_recompiler/frontend/ir/microinstruction.cpp
@@ -93,6 +93,72 @@ bool Inst::MayHaveSideEffects() const noexcept {
93 case Opcode::WriteSharedU32: 93 case Opcode::WriteSharedU32:
94 case Opcode::WriteSharedU64: 94 case Opcode::WriteSharedU64:
95 case Opcode::WriteSharedU128: 95 case Opcode::WriteSharedU128:
96 case Opcode::SharedAtomicIAdd32:
97 case Opcode::SharedAtomicSMin32:
98 case Opcode::SharedAtomicUMin32:
99 case Opcode::SharedAtomicSMax32:
100 case Opcode::SharedAtomicUMax32:
101 case Opcode::SharedAtomicInc32:
102 case Opcode::SharedAtomicDec32:
103 case Opcode::SharedAtomicAnd32:
104 case Opcode::SharedAtomicOr32:
105 case Opcode::SharedAtomicXor32:
106 case Opcode::SharedAtomicExchange32:
107 case Opcode::SharedAtomicExchange64:
108 case Opcode::GlobalAtomicIAdd32:
109 case Opcode::GlobalAtomicSMin32:
110 case Opcode::GlobalAtomicUMin32:
111 case Opcode::GlobalAtomicSMax32:
112 case Opcode::GlobalAtomicUMax32:
113 case Opcode::GlobalAtomicInc32:
114 case Opcode::GlobalAtomicDec32:
115 case Opcode::GlobalAtomicAnd32:
116 case Opcode::GlobalAtomicOr32:
117 case Opcode::GlobalAtomicXor32:
118 case Opcode::GlobalAtomicExchange32:
119 case Opcode::GlobalAtomicIAdd64:
120 case Opcode::GlobalAtomicSMin64:
121 case Opcode::GlobalAtomicUMin64:
122 case Opcode::GlobalAtomicSMax64:
123 case Opcode::GlobalAtomicUMax64:
124 case Opcode::GlobalAtomicAnd64:
125 case Opcode::GlobalAtomicOr64:
126 case Opcode::GlobalAtomicXor64:
127 case Opcode::GlobalAtomicExchange64:
128 case Opcode::GlobalAtomicAddF32:
129 case Opcode::GlobalAtomicAddF16x2:
130 case Opcode::GlobalAtomicAddF32x2:
131 case Opcode::GlobalAtomicMinF16x2:
132 case Opcode::GlobalAtomicMinF32x2:
133 case Opcode::GlobalAtomicMaxF16x2:
134 case Opcode::GlobalAtomicMaxF32x2:
135 case Opcode::StorageAtomicIAdd32:
136 case Opcode::StorageAtomicSMin32:
137 case Opcode::StorageAtomicUMin32:
138 case Opcode::StorageAtomicSMax32:
139 case Opcode::StorageAtomicUMax32:
140 case Opcode::StorageAtomicInc32:
141 case Opcode::StorageAtomicDec32:
142 case Opcode::StorageAtomicAnd32:
143 case Opcode::StorageAtomicOr32:
144 case Opcode::StorageAtomicXor32:
145 case Opcode::StorageAtomicExchange32:
146 case Opcode::StorageAtomicIAdd64:
147 case Opcode::StorageAtomicSMin64:
148 case Opcode::StorageAtomicUMin64:
149 case Opcode::StorageAtomicSMax64:
150 case Opcode::StorageAtomicUMax64:
151 case Opcode::StorageAtomicAnd64:
152 case Opcode::StorageAtomicOr64:
153 case Opcode::StorageAtomicXor64:
154 case Opcode::StorageAtomicExchange64:
155 case Opcode::StorageAtomicAddF32:
156 case Opcode::StorageAtomicAddF16x2:
157 case Opcode::StorageAtomicAddF32x2:
158 case Opcode::StorageAtomicMinF16x2:
159 case Opcode::StorageAtomicMinF32x2:
160 case Opcode::StorageAtomicMaxF16x2:
161 case Opcode::StorageAtomicMaxF32x2:
96 case Opcode::BindlessImageWrite: 162 case Opcode::BindlessImageWrite:
97 case Opcode::BoundImageWrite: 163 case Opcode::BoundImageWrite:
98 case Opcode::ImageWrite: 164 case Opcode::ImageWrite: