From: Rob Clark Date: Thu, 31 May 2018 23:17:30 +0000 (-0400) Subject: freedreno/ir3: image atomics use image-store path X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=067d89c2cdc5ad3e2dfe6b04929048f3cfb25a0e;p=mesa.git freedreno/ir3: image atomics use image-store path image reads are handled via tex state, whereas image writes and atomics are handled via SSBO state block. Previously we were only considering image write, and not image atomics which also uses the SSBO state block. Signed-off-by: Rob Clark --- diff --git a/src/gallium/drivers/freedreno/ir3/ir3_nir.c b/src/gallium/drivers/freedreno/ir3/ir3_nir.c index cd1f9c526f2..a3896a3071f 100644 --- a/src/gallium/drivers/freedreno/ir3/ir3_nir.c +++ b/src/gallium/drivers/freedreno/ir3/ir3_nir.c @@ -242,6 +242,14 @@ ir3_nir_scan_driver_consts(nir_shader *shader, layout->ssbo_size.count; layout->ssbo_size.count += 1; /* one const per */ break; + case nir_intrinsic_image_var_atomic_add: + case nir_intrinsic_image_var_atomic_min: + case nir_intrinsic_image_var_atomic_max: + case nir_intrinsic_image_var_atomic_and: + case nir_intrinsic_image_var_atomic_or: + case nir_intrinsic_image_var_atomic_xor: + case nir_intrinsic_image_var_atomic_exchange: + case nir_intrinsic_image_var_atomic_comp_swap: case nir_intrinsic_image_var_store: idx = intr->variables[0]->var->data.driver_location; if (layout->image_dims.mask & (1 << idx))