nir: handle float atomics in nir_lower_memory_model

Signed-off-by: Marcin Ślusarz <marcin.slusarz@intel.com>
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Fixes: 2adb337256 ("nir,radv/aco: add and use pass to lower make available/visible barriers")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10766>
(cherry picked from commit 2c3e2d69bd)
This commit is contained in:
Marcin Ślusarz 2020-11-12 20:13:26 +01:00 committed by Eric Engestrom
parent 0a69eb9bae
commit 29ac834b1e
2 changed files with 13 additions and 1 deletions

View file

@ -184,7 +184,7 @@
"description": "nir: handle float atomics in nir_lower_memory_model",
"nominated": true,
"nomination_type": 1,
"resolution": 0,
"resolution": 1,
"master_sha": null,
"because_sha": "2adb337256f146b10b31365ac6ba8ab820d9014e"
},

View file

@ -79,6 +79,10 @@ get_intrinsic_info(nir_intrinsic_instr *intrin, nir_variable_mode *modes,
case nir_intrinsic_ssbo_atomic_xor:
case nir_intrinsic_ssbo_atomic_exchange:
case nir_intrinsic_ssbo_atomic_comp_swap:
case nir_intrinsic_ssbo_atomic_fadd:
case nir_intrinsic_ssbo_atomic_fcomp_swap:
case nir_intrinsic_ssbo_atomic_fmax:
case nir_intrinsic_ssbo_atomic_fmin:
*modes = nir_var_mem_ssbo;
*reads = true;
*writes = true;
@ -101,6 +105,10 @@ get_intrinsic_info(nir_intrinsic_instr *intrin, nir_variable_mode *modes,
case nir_intrinsic_global_atomic_xor:
case nir_intrinsic_global_atomic_exchange:
case nir_intrinsic_global_atomic_comp_swap:
case nir_intrinsic_global_atomic_fadd:
case nir_intrinsic_global_atomic_fcomp_swap:
case nir_intrinsic_global_atomic_fmax:
case nir_intrinsic_global_atomic_fmin:
*modes = nir_var_mem_global;
*reads = true;
*writes = true;
@ -123,6 +131,10 @@ get_intrinsic_info(nir_intrinsic_instr *intrin, nir_variable_mode *modes,
case nir_intrinsic_deref_atomic_xor:
case nir_intrinsic_deref_atomic_exchange:
case nir_intrinsic_deref_atomic_comp_swap:
case nir_intrinsic_deref_atomic_fadd:
case nir_intrinsic_deref_atomic_fmin:
case nir_intrinsic_deref_atomic_fmax:
case nir_intrinsic_deref_atomic_fcomp_swap:
*modes = nir_src_as_deref(intrin->src[0])->modes;
*reads = true;
*writes = true;