diff options
| author | 2021-04-14 21:40:30 -0300 | |
|---|---|---|
| committer | 2021-07-22 21:51:27 -0400 | |
| commit | 34519d3fc637fa921c0105e01dbbc50cfacd924d (patch) | |
| tree | bf020c5682eb36c6e9a8d6e18be21c0d0c499d35 /src/shader_recompiler | |
| parent | vk_pipeline_cache: Silence GCC warnings (diff) | |
| download | yuzu-34519d3fc637fa921c0105e01dbbc50cfacd924d.tar.gz yuzu-34519d3fc637fa921c0105e01dbbc50cfacd924d.tar.xz yuzu-34519d3fc637fa921c0105e01dbbc50cfacd924d.zip | |
shader: Mark atomic instructions as writes
Diffstat (limited to 'src/shader_recompiler')
| -rw-r--r-- | src/shader_recompiler/ir_opt/global_memory_to_storage_buffer_pass.cpp | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/src/shader_recompiler/ir_opt/global_memory_to_storage_buffer_pass.cpp b/src/shader_recompiler/ir_opt/global_memory_to_storage_buffer_pass.cpp index 0d4f266c3..378a3a915 100644 --- a/src/shader_recompiler/ir_opt/global_memory_to_storage_buffer_pass.cpp +++ b/src/shader_recompiler/ir_opt/global_memory_to_storage_buffer_pass.cpp | |||
| @@ -115,6 +115,33 @@ bool IsGlobalMemoryWrite(const IR::Inst& inst) { | |||
| 115 | case IR::Opcode::WriteGlobal32: | 115 | case IR::Opcode::WriteGlobal32: |
| 116 | case IR::Opcode::WriteGlobal64: | 116 | case IR::Opcode::WriteGlobal64: |
| 117 | case IR::Opcode::WriteGlobal128: | 117 | case IR::Opcode::WriteGlobal128: |
| 118 | case IR::Opcode::GlobalAtomicIAdd32: | ||
| 119 | case IR::Opcode::GlobalAtomicSMin32: | ||
| 120 | case IR::Opcode::GlobalAtomicUMin32: | ||
| 121 | case IR::Opcode::GlobalAtomicSMax32: | ||
| 122 | case IR::Opcode::GlobalAtomicUMax32: | ||
| 123 | case IR::Opcode::GlobalAtomicInc32: | ||
| 124 | case IR::Opcode::GlobalAtomicDec32: | ||
| 125 | case IR::Opcode::GlobalAtomicAnd32: | ||
| 126 | case IR::Opcode::GlobalAtomicOr32: | ||
| 127 | case IR::Opcode::GlobalAtomicXor32: | ||
| 128 | case IR::Opcode::GlobalAtomicExchange32: | ||
| 129 | case IR::Opcode::GlobalAtomicIAdd64: | ||
| 130 | case IR::Opcode::GlobalAtomicSMin64: | ||
| 131 | case IR::Opcode::GlobalAtomicUMin64: | ||
| 132 | case IR::Opcode::GlobalAtomicSMax64: | ||
| 133 | case IR::Opcode::GlobalAtomicUMax64: | ||
| 134 | case IR::Opcode::GlobalAtomicAnd64: | ||
| 135 | case IR::Opcode::GlobalAtomicOr64: | ||
| 136 | case IR::Opcode::GlobalAtomicXor64: | ||
| 137 | case IR::Opcode::GlobalAtomicExchange64: | ||
| 138 | case IR::Opcode::GlobalAtomicAddF32: | ||
| 139 | case IR::Opcode::GlobalAtomicAddF16x2: | ||
| 140 | case IR::Opcode::GlobalAtomicAddF32x2: | ||
| 141 | case IR::Opcode::GlobalAtomicMinF16x2: | ||
| 142 | case IR::Opcode::GlobalAtomicMinF32x2: | ||
| 143 | case IR::Opcode::GlobalAtomicMaxF16x2: | ||
| 144 | case IR::Opcode::GlobalAtomicMaxF32x2: | ||
| 118 | return true; | 145 | return true; |
| 119 | default: | 146 | default: |
| 120 | return false; | 147 | return false; |