diff options
author | Rob Clark <[email protected]> | 2018-05-31 19:17:30 -0400 |
---|---|---|
committer | Rob Clark <[email protected]> | 2018-06-11 09:06:03 -0400 |
commit | 067d89c2cdc5ad3e2dfe6b04929048f3cfb25a0e (patch) | |
tree | a5fc2f76be58a7dd85dc85824edcc30050406f42 | |
parent | 41642bdbca007035772fbfdc311f14daa5510d5d (diff) |
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 <[email protected]>
-rw-r--r-- | src/gallium/drivers/freedreno/ir3/ir3_nir.c | 8 |
1 files changed, 8 insertions, 0 deletions
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)) |