aboutsummaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/freedreno/a5xx/fd5_image.c
diff options
context:
space:
mode:
authorEric Anholt <[email protected]>2019-12-20 14:02:55 -0800
committerEric Anholt <[email protected]>2020-01-21 10:06:23 -0800
commitfb6fca003757478a06fb1f6781ad769e84b335ff (patch)
tree2d0b379b5f27b6e75442a30e8e63b8ecd09ddbdf /src/gallium/drivers/freedreno/a5xx/fd5_image.c
parent7558b5da13685f701cbe7a9ca804e95e01e38e63 (diff)
freedreno: Stop scattered remapping of SSBOs/images to IBOs.
Just make it be all SSBOs then all storage images. The remapping table was there to make it so that the big gap present from gallium's atomic lowering would get cleaned up, but that's no longer case. The table has made it very hard to support Vulkan storage images, so it's time for it to go. This does mean that an SSBO/IBO that is only loaded (or size-queried) will now occupy a slot in the table where it wouldn't before. This seems like a minor cost compared to being able to drop this much logic. With the remapping table gone, SSBO array handling for turnip just falls out. Fixes many array cases of dEQP-VK.binding_model.shader_access.primary_cmd_buf.storage_buffer.* Reviewed-by: Rob Clark <[email protected]> Reviewed-by: Jonathan Marek <[email protected]> (turnip) Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3240> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3240>
Diffstat (limited to 'src/gallium/drivers/freedreno/a5xx/fd5_image.c')
-rw-r--r--src/gallium/drivers/freedreno/a5xx/fd5_image.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/gallium/drivers/freedreno/a5xx/fd5_image.c b/src/gallium/drivers/freedreno/a5xx/fd5_image.c
index e46a21c4523..4da1f16385a 100644
--- a/src/gallium/drivers/freedreno/a5xx/fd5_image.c
+++ b/src/gallium/drivers/freedreno/a5xx/fd5_image.c
@@ -210,6 +210,6 @@ fd5_emit_images(struct fd_context *ctx, struct fd_ringbuffer *ring,
translate_image(&img, &so->si[index]);
emit_image_tex(ring, m->image_to_tex[index] + m->tex_base, &img, shader);
- emit_image_ssbo(ring, m->image_to_ibo[index], &img, shader);
+ emit_image_ssbo(ring, v->shader->nir->info.num_ssbos + index, &img, shader);
}
}