mesa/src/panfrost/vulkan
Eric R. Smith 24c692c981 panvk: fix a NULL pointer dereference in occlusion queries
If a meta operation (like a blit or clear) happens while occlusion
queries are active, we temporarily disable the query. Unfortunately
the code for this did not clear out the `syncobj` field. In rare
combinations of circumstances this could cause an attempt to issue
a write back of the occlusion query values, and since we've zeroed
the `ptr` field it writes to a NULL value, causing a bus fault and
device lost error.

Fixes: 61534faf4e ("panvk: Wire occlusion queries to internals")
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Reviewed-by: Lars-Ivar Hesselberg Simonsen <lars-ivar.simonsen@arm.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36525>
2025-08-07 11:58:53 +00:00
..
avalon panvk: Add v12 support 2025-04-15 13:36:07 +02:00
bifrost panvk: Add basic infrastructure for shader variants 2025-07-21 16:52:44 +00:00
csf build: avoid redefining unreachable() which is standard in C23 2025-07-31 17:49:42 +00:00
jm all: rename gl_shader_stage to mesa_shader_stage 2025-08-06 10:28:40 +08:00
valhall panvk: Overhaul the Bifrost descriptor set implementation 2024-06-14 20:52:21 +00:00
meson.build panvk: hide utrace behind more generic interface 2025-07-23 08:28:21 +00:00
panvk_blend.h panvk: Support color attachment remapping 2025-04-10 13:17:53 +00:00
panvk_buffer.c pan/kmod: Expose the raw GPU ID through pan_kmod_dev_props 2025-07-09 08:40:12 +00:00
panvk_buffer.h panvk: drop bo tracking from panvk_buffer 2025-05-28 18:06:57 +00:00
panvk_buffer_view.h panfrost, panvk: Use arch version 9 to distinguish between Bifrost & Valhall 2025-06-18 16:09:03 +00:00
panvk_cmd_alloc.h pan: Use a consistent pan_ prefix across src/panfrost/* 2025-05-21 14:58:20 +02:00
panvk_cmd_desc_state.h panvk: Add basic infrastructure for shader variants 2025-07-21 16:52:44 +00:00
panvk_cmd_dispatch.h panvk: Add basic infrastructure for shader variants 2025-07-21 16:52:44 +00:00
panvk_cmd_draw.h panvk: Prepare panvk_draw_prepare_varyings for JM indirect 2025-08-04 12:12:54 +00:00
panvk_cmd_fb_preload.h panvk: Build cmd_fb_preload on explicit fb_info 2024-11-26 11:58:28 +01:00
panvk_cmd_meta.h panfrost: Kill the mali_ptr typedef 2025-01-07 11:10:55 +00:00
panvk_cmd_oq.h panvk/csf: Rework the occlusion query logic to avoid draw flushes 2025-01-15 14:07:37 +00:00
panvk_cmd_pool.c panvk: Catch indirect allocation failures 2024-10-01 14:36:38 +00:00
panvk_cmd_pool.h panvk: Prepare panvk_cmd_pool for CSF 2024-08-23 14:38:59 +00:00
panvk_cmd_precomp.h panvk: Implement precomp dispatch 2025-02-11 12:33:23 +00:00
panvk_cmd_push_constant.h panvk: Add basic infrastructure for shader variants 2025-07-21 16:52:44 +00:00
panvk_cmd_ts.h panvk: Add timestamp write and reset 2025-07-01 08:27:29 +00:00
panvk_descriptor_set.h panvk: Support DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT 2025-07-23 12:54:24 +00:00
panvk_descriptor_set_layout.h panvk: report the maximum supported size for a variable count iub 2025-06-20 13:14:34 +00:00
panvk_device.h panvk: Prepare panvk_draw_prepare_varyings for JM indirect 2025-08-04 12:12:54 +00:00
panvk_device_memory.c panvk: add error checking for dump/trace mmap call 2025-07-16 03:48:02 +00:00
panvk_device_memory.h panvk: Conditionally register an host address when tracking user memory 2024-08-23 14:39:00 +00:00
panvk_host_copy.c panvk: implement VK_EXT_host_image_copy for depth/stencil images 2025-07-16 10:56:03 +00:00
panvk_image.c build: avoid redefining unreachable() which is standard in C23 2025-07-31 17:49:42 +00:00
panvk_image.h panvk: split out helper function for checking AFBC support 2025-07-16 10:56:01 +00:00
panvk_image_view.h panvk/v9+: Set up limited texture descs for storage use 2025-05-12 08:37:08 +00:00
panvk_instance.c panvk: add a driConf to force enable atomics in shaders 2025-06-27 14:48:16 +00:00
panvk_instance.h panvk: add a driConf to force enable atomics in shaders 2025-06-27 14:48:16 +00:00
panvk_macros.h build: avoid redefining unreachable() which is standard in C23 2025-07-31 17:49:42 +00:00
panvk_mempool.c pan: Use a consistent pan_ prefix across src/panfrost/* 2025-05-21 14:58:20 +02:00
panvk_mempool.h panvk: Fix panvk_priv_mem_bo() on 32-bit platforms 2025-01-10 15:53:36 +00:00
panvk_meta.h panvk: Add basic infrastructure for shader variants 2025-07-21 16:52:44 +00:00
panvk_physical_device.c panvk: implement VK_EXT_host_image_copy for depth/stencil images 2025-07-16 10:56:03 +00:00
panvk_physical_device.h panvk: Advertise timestamp support 2025-07-01 08:27:48 +00:00
panvk_precomp_cache.h panvk: Add basic infrastructure for shader variants 2025-07-21 16:52:44 +00:00
panvk_priv_bo.c panvk: add panvk_as_alloc and panvk_as_free helpers 2025-06-24 18:53:04 +00:00
panvk_priv_bo.h panfrost: Kill the mali_ptr typedef 2025-01-07 11:10:55 +00:00
panvk_query_pool.h panvk: widen type before multiplying 2024-11-28 10:22:22 +00:00
panvk_sampler.h panvk: Use multiple sampler planes and one texture descriptor per plane 2025-02-08 07:48:41 +00:00
panvk_shader.h all: rename gl_shader_stage to mesa_shader_stage 2025-08-06 10:28:40 +08:00
panvk_tracepoints.py panvk: define more utrace tracepoints 2025-07-02 22:31:11 +00:00
panvk_utrace.c panvk/csf: prepare for indirect dispatch tracing 2025-07-02 22:31:12 +00:00
panvk_utrace.h panvk: Make panvk_utrace_record_ts wait mask configurable 2025-07-23 08:28:22 +00:00
panvk_utrace_perfetto.cc build: avoid redefining unreachable() which is standard in C23 2025-07-31 17:49:42 +00:00
panvk_utrace_perfetto.h panvk: define more utrace tracepoints 2025-07-02 22:31:11 +00:00
panvk_vX_blend.c panvk: Add basic infrastructure for shader variants 2025-07-21 16:52:44 +00:00
panvk_vX_buffer_view.c pan/genxml: Get rid of the Plane descriptor 2025-06-25 12:10:37 +02:00
panvk_vX_cmd_desc_state.c panvk: Add basic infrastructure for shader variants 2025-07-21 16:52:44 +00:00
panvk_vX_cmd_dispatch.c panvk: Add basic infrastructure for shader variants 2025-07-21 16:52:44 +00:00
panvk_vX_cmd_draw.c build: avoid redefining unreachable() which is standard in C23 2025-07-31 17:49:42 +00:00
panvk_vX_cmd_fb_preload.c pan/kmod: Expose the raw GPU ID through pan_kmod_dev_props 2025-07-09 08:40:12 +00:00
panvk_vX_cmd_meta.c panvk: fix a NULL pointer dereference in occlusion queries 2025-08-07 11:58:53 +00:00
panvk_vX_cmd_push_constant.c panvk: Add basic infrastructure for shader variants 2025-07-21 16:52:44 +00:00
panvk_vX_descriptor_set.c build: avoid redefining unreachable() which is standard in C23 2025-07-31 17:49:42 +00:00
panvk_vX_descriptor_set_layout.c panvk: Support VK_DESCRIPTOR_TYPE_MUTABLE_EXT on v9+ 2025-07-23 12:54:24 +00:00
panvk_vX_device.c panvk: Prepare panvk_draw_prepare_varyings for JM indirect 2025-08-04 12:12:54 +00:00
panvk_vX_image_view.c panvk: fix EXT_texture_compression_astc_support 2025-08-06 13:14:24 +00:00
panvk_vX_nir_lower_descriptors.c build: avoid redefining unreachable() which is standard in C23 2025-07-31 17:49:42 +00:00
panvk_vX_physical_device.c panvk: Enable VK_ARM_shader_core_builtins 2025-08-07 11:46:33 +02:00
panvk_vX_precomp_cache.c panvk: Add basic infrastructure for shader variants 2025-07-21 16:52:44 +00:00
panvk_vX_query_pool.c build: avoid redefining unreachable() which is standard in C23 2025-07-31 17:49:42 +00:00
panvk_vX_sampler.c build: avoid redefining unreachable() which is standard in C23 2025-07-31 17:49:42 +00:00
panvk_vX_shader.c panvk: rewrite pan_nir_lower_static_noperspective 2025-08-07 10:33:36 +00:00
panvk_wsi.c panvk: add basic driconf infrastructure 2025-03-31 09:24:04 +00:00
panvk_wsi.h panvk: Move panvk_wsi definitions to panvk_wsi.h 2024-03-27 09:47:34 +00:00