mesa/src/broadcom/vulkan
Jose Maria Casanova Crespo 87a0eac718 v3dv: avoid duplicate bo_handles between cpu_job and CSD lists
v3d_submit_cpu_ioctl() takes a separate ww_acquire_ctx for the cpu_job's
bo_handles[] and any embedded CSD's bo_handles[]; a BO appearing in both
lists makes the second lock wait on a reservation held by the first
context, deadlocking the ioctl.

We avoid adding a duplicate BO handle when it's already in the cpu_job's
list. This collided when an app suballocates an indirect VkBuffer and a
CSD bind-group VkBuffer out of one VkDeviceMemory.

Fixes: e404ccba5b ("v3dv: use the indirect CSD user extension")
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41616>
2026-05-18 12:26:55 +00:00
..
.dir-locals.el
.editorconfig
meson.build v3dv: split v3dv_private.h into smaller headers 2026-03-25 02:04:57 +00:00
v3dv_bo.c v3dv: split v3dv_private.h into smaller headers 2026-03-25 02:04:57 +00:00
v3dv_bo.h v3dv: split v3dv_private.h into smaller headers 2026-03-25 02:04:57 +00:00
v3dv_cl.c v3d: Rename cle_buffer_min_size to page_size 2026-03-27 18:54:29 +00:00
v3dv_cl.h v3d,v3dv: document cl_emit_with_prepacked 2024-06-07 09:44:13 +02:00
v3dv_cmd_buffer.c v3dv: defer tile_alloc creation in meta TLB ops 2026-04-13 10:31:21 +00:00
v3dv_cmd_buffer.h v3dv: defer tile_alloc creation in meta TLB ops 2026-04-13 10:31:21 +00:00
v3dv_common.h v3dv: split v3dv_private.h into smaller headers 2026-03-25 02:04:57 +00:00
v3dv_descriptor_set.c v3dv: split v3dv_private.h into smaller headers 2026-03-25 02:04:57 +00:00
v3dv_descriptor_set.h v3dv: split v3dv_private.h into smaller headers 2026-03-25 02:04:57 +00:00
v3dv_device.c v3dv: expose maxFragmentOutputAttachments as max_rts 2026-05-18 11:45:10 +00:00
v3dv_device.h v3dv: Emulate multi-queue support via vk_queue for Android 2026-05-05 07:03:08 +00:00
v3dv_event.c nir: introduce nir_descriptor_type for Vulkan like descriptors 2026-03-31 07:16:20 +00:00
v3dv_format_table.h v3dv: centralize limit macros in v3dv_limits.h 2026-01-09 09:42:29 +00:00
v3dv_formats.c v3dv: split v3dv_private.h into smaller headers 2026-03-25 02:04:57 +00:00
v3dv_image.c v3dv/android: Add deferred ANB allocation support 2026-04-29 15:31:28 +00:00
v3dv_image.h v3dv: split v3dv_private.h into smaller headers 2026-03-25 02:04:57 +00:00
v3dv_limits.h v3dv: Emulate multi-queue support via vk_queue for Android 2026-05-05 07:03:08 +00:00
v3dv_meta_clear.c v3dv: defer tile_alloc creation in meta TLB ops 2026-04-13 10:31:21 +00:00
v3dv_meta_common.h v3dv/v3d: Fix copyright holder to Raspberry Pi Ltd 2022-02-18 11:50:07 +01:00
v3dv_meta_copy.c v3dv: include mem_offset in vkCmdFillBuffer destination 2026-05-11 10:49:20 +02:00
v3dv_pass.c v3dv: split v3dv_private.h into smaller headers 2026-03-25 02:04:57 +00:00
v3dv_pass.h v3dv: split v3dv_private.h into smaller headers 2026-03-25 02:04:57 +00:00
v3dv_pipeline.c v3dv: lower oversized compute workgroups to 256 invocations 2026-04-30 13:59:19 +00:00
v3dv_pipeline.h v3dv: split v3dv_private.h into smaller headers 2026-03-25 02:04:57 +00:00
v3dv_pipeline_cache.c v3dv: split v3dv_private.h into smaller headers 2026-03-25 02:04:57 +00:00
v3dv_query.c nir: introduce nir_descriptor_type for Vulkan like descriptors 2026-03-31 07:16:20 +00:00
v3dv_query.h v3dv: split v3dv_private.h into smaller headers 2026-03-25 02:04:57 +00:00
v3dv_queue.c v3dv: avoid duplicate bo_handles between cpu_job and CSD lists 2026-05-18 12:26:55 +00:00
v3dv_uniforms.c v3dv: split v3dv_private.h into smaller headers 2026-03-25 02:04:57 +00:00
v3dv_version_dispatch.h v3dv: split v3dv_private.h into smaller headers 2026-03-25 02:04:57 +00:00
v3dv_wsi.c v3dv: split v3dv_private.h into smaller headers 2026-03-25 02:04:57 +00:00
v3dvx_cmd_buffer.c v3dv: use shared v3d_tile_alloc_sizes() and 128B initial blocks 2026-04-13 10:31:21 +00:00
v3dvx_descriptor_set.c v3dv: split v3dv_private.h into smaller headers 2026-03-25 02:04:57 +00:00
v3dvx_device.c v3dv: split v3dv_private.h into smaller headers 2026-03-25 02:04:57 +00:00
v3dvx_format_table.h v3dv: split v3dv_private.h into smaller headers 2026-03-25 02:04:57 +00:00
v3dvx_formats.c v3dv: split v3dv_private.h into smaller headers 2026-03-25 02:04:57 +00:00
v3dvx_image.c v3dv: split v3dv_private.h into smaller headers 2026-03-25 02:04:57 +00:00
v3dvx_meta_common.c v3dv: defer tile_alloc creation in meta TLB ops 2026-04-13 10:31:21 +00:00
v3dvx_pipeline.c v3dv: split v3dv_private.h into smaller headers 2026-03-25 02:04:57 +00:00
v3dvx_private.h v3dv: split v3dv_private.h into smaller headers 2026-03-25 02:04:57 +00:00
v3dvx_queue.c v3dv: defer tile_alloc creation in meta TLB ops 2026-04-13 10:31:21 +00:00