From: Kenneth Graunke Date: Sun, 24 Sep 2017 19:23:34 +0000 (-0700) Subject: i965/vec4: Actually handle atomic op intrinsics. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=a62fe340981b56fe54e49d3a6791e568f7f87554;p=mesa.git i965/vec4: Actually handle atomic op intrinsics. Embarassingly, someone enabled the ARB_shader_atomic_counter_ops extension for Gen7+ but never added the intrinsics to the switch statement in the vec4 backend, so they just hit an unreachable() call and died. Fixes: 40dd45d0c6aa4a9d (i965: Enable ARB_shader_atomic_counter_ops) Cc: "17.2 17.1 17.0 13.0" Reviewed-by: Jordan Justen Reviewed-by: Ian Romanick --- diff --git a/src/intel/compiler/brw_vec4_nir.cpp b/src/intel/compiler/brw_vec4_nir.cpp index 211682916f5..0a1caa9fad8 100644 --- a/src/intel/compiler/brw_vec4_nir.cpp +++ b/src/intel/compiler/brw_vec4_nir.cpp @@ -804,9 +804,17 @@ vec4_visitor::nir_emit_intrinsic(nir_intrinsic_instr *instr) break; } - case nir_intrinsic_atomic_counter_read: case nir_intrinsic_atomic_counter_inc: - case nir_intrinsic_atomic_counter_dec: { + case nir_intrinsic_atomic_counter_dec: + case nir_intrinsic_atomic_counter_read: + case nir_intrinsic_atomic_counter_add: + case nir_intrinsic_atomic_counter_min: + case nir_intrinsic_atomic_counter_max: + case nir_intrinsic_atomic_counter_and: + case nir_intrinsic_atomic_counter_or: + case nir_intrinsic_atomic_counter_xor: + case nir_intrinsic_atomic_counter_exchange: + case nir_intrinsic_atomic_counter_comp_swap: { unsigned surf_index = prog_data->base.binding_table.abo_start + (unsigned) instr->const_index[0]; const vec4_builder bld =