From 067d89c2cdc5ad3e2dfe6b04929048f3cfb25a0e Mon Sep 17 00:00:00 2001 From: Rob Clark Date: Thu, 31 May 2018 19:17:30 -0400 Subject: [PATCH] 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 --- src/gallium/drivers/freedreno/ir3/ir3_nir.c | 8 ++++++++ 1 file changed, 8 insertions(+) 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)) -- 2.30.2