mesa/src/vulkan/runtime
Lars-Ivar Hesselberg Simonsen 60a2b66f63 vk/sync: Fix execution only barriers
With vkCmdPipelineBarrier, it's possible to specify a barrier with
pipeline stages but without any memory barriers. These might not be
practical, but are legal Vulkan code.

Barriers like this are currently ignored in mesa, as we only convert
barriers with passed memory barriers into vkCmdPipelineBarrier2.

This commit adds handling of execution only barriers by converting them
into a memory barrier without access masks.

Fixes: 97f0a4494b ("vulkan: implement legacy entrypoints on top of VK_KHR_synchronization2")
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34187>
(cherry picked from commit 20c0d169e4)
2025-04-16 15:37:03 +02:00
..
bvh vulkan/bvh: Move first PLOC task_count fetch inside PHASE 2025-04-02 11:04:13 +02:00
radix_sort vulkan/runtime,radv: Add shared BVH building framework 2024-12-01 16:08:06 +00:00
rmv vulkan/rmv: Correctly set heap size 2024-11-14 09:11:25 +00:00
meson.build vulkan/runtime,radv: Add shared BVH building framework 2024-12-01 16:08:06 +00:00
vk_acceleration_structure.c vk/bvh: Add default stubs for unsupported entrypoints 2025-01-23 05:16:58 +00:00
vk_acceleration_structure.h vk/bvh: Fix clang build error with turnip 2025-01-20 01:22:22 +00:00
vk_android.c vulkan/android: change vk_enum_defines.h path 2024-09-05 22:59:58 +00:00
vk_android.h vulkan/android: Add helper to probe AHB support 2024-05-14 14:53:44 +00:00
vk_blend.c treewide: Stop putting enum in front of Vulkan enum types 2024-12-02 17:22:49 +00:00
vk_blend.h
vk_buffer.c vulkan/runtime: fix GetBufferMemoryRequirements2 for maintenance4 2024-08-19 10:13:09 +00:00
vk_buffer.h
vk_buffer_view.c
vk_buffer_view.h
vk_cmd_copy.c vk/runtime: update symbols that have become aliases for newer ones 2023-12-04 23:27:29 +00:00
vk_cmd_enqueue.c vulkan: Update XML and headers to 1.4.303 2024-12-02 17:22:49 +00:00
vk_command_buffer.c vk/cmdbuf: add back deleted maint6 workgraph bits 2024-01-11 15:59:17 +00:00
vk_command_buffer.h vulkan/runtime: introduce vk_meta_object_list 2024-07-25 19:14:31 +00:00
vk_command_pool.c vulkan/runtime: return same cmdbuf level from the command pool freelist 2024-11-08 17:20:43 +00:00
vk_command_pool.h vulkan/runtime: return same cmdbuf level from the command pool freelist 2024-11-08 17:20:43 +00:00
vk_debug_report.c
vk_debug_report.h
vk_debug_utils.c util,vulkan,asahi,hk: hash format strings 2025-01-17 18:09:45 +00:00
vk_debug_utils.h util,vulkan,asahi,hk: hash format strings 2025-01-17 18:09:45 +00:00
vk_deferred_operation.c
vk_deferred_operation.h
vk_descriptor_set_layout.c
vk_descriptor_set_layout.h vulkan: Add a BLAKE3 hash to vk_descriptor_set_layout 2024-02-27 22:17:09 +00:00
vk_descriptor_update_template.c vulkan: reference count vk_descriptor_update_template 2024-06-20 16:43:55 +00:00
vk_descriptor_update_template.h vulkan: reference count vk_descriptor_update_template 2024-06-20 16:43:55 +00:00
vk_descriptors.c
vk_descriptors.h
vk_device.c vulkan: add common GetCalibratedTimestampsKHR 2025-01-07 03:39:29 +00:00
vk_device.h vulkan: add common GetCalibratedTimestampsKHR 2025-01-07 03:39:29 +00:00
vk_device_generated_commands.c vk/runtime: add EXT DGC layout handling 2024-09-27 18:41:41 +00:00
vk_device_generated_commands.h vk/runtime: add EXT DGC layout handling 2024-09-27 18:41:41 +00:00
vk_device_memory.c mesa/vulkan: use DETECT_OS_ANDROID 2024-01-18 18:45:40 +00:00
vk_device_memory.h
vk_drm_syncobj.c
vk_drm_syncobj.h
vk_fence.c
vk_fence.h
vk_format_info_gen.py util,vulkan,mesa,compiler: Generate source files with utf8 encoding from mako template 2023-12-07 12:41:07 +00:00
vk_framebuffer.c
vk_framebuffer.h
vk_graphics_state.c vk/pass: Add input attachment location info 2025-04-16 15:37:02 +02:00
vk_graphics_state.h vulkan: rename depth bias graphics states 2024-12-06 13:48:26 -05:00
vk_image.c vulkan: calculate remaining layers of 2d view of 3d image correctly 2025-01-22 00:33:16 +00:00
vk_image.h vk/image: Add a vk_image_buffer_range() helper 2024-08-20 15:11:14 +00:00
vk_instance.c vulkan: add MESA_VK_TRACE_PER_SUBMIT 2024-11-28 07:03:20 +00:00
vk_instance.h vulkan: add MESA_VK_TRACE_PER_SUBMIT 2024-11-28 07:03:20 +00:00
vk_limits.h vulkan: Add generic graphics and compute VkPipeline implementations 2024-02-27 22:17:09 +00:00
vk_log.c vulkan: Add a comment explainint SEVERITY_WARNING_BIT for vk_error*() 2024-10-01 00:48:36 +00:00
vk_log.h vulkan: add vk_debug_ignored_stype helper 2024-05-10 18:49:38 +00:00
vk_meta.c vulkan: use the meta pipeline cache for graphics pipelines 2024-12-31 10:32:50 +00:00
vk_meta.h vulkan: add a new vk_meta option to use the rect list pipeline path 2024-12-31 10:32:50 +00:00
vk_meta_blit_resolve.c vk/meta: Let meta users pass the color attachment write mask explicitly 2024-08-20 15:11:14 +00:00
vk_meta_clear.c vk/meta: Pass depth/stencil attachments only when a clear is requested 2024-12-09 08:24:22 +00:00
vk_meta_copy_fill_update.c vk/meta: Fix buffer -> image copy using a graphics pipeline 2024-10-02 21:54:53 +00:00
vk_meta_draw_rects.c vulkan/runtime: implementaiton -> implementation 2024-06-26 12:31:00 +00:00
vk_meta_object_list.c vk/meta: Support VkShaderExt objects to allow tracking internal shaders 2024-10-03 09:53:34 +00:00
vk_meta_object_list.h vulkan/runtime: introduce vk_meta_object_list 2024-07-25 19:14:31 +00:00
vk_meta_private.h vk/meta: Make some helpers public 2024-10-03 09:53:34 +00:00
vk_nir.c nir/validate: validate ssa dominance by default 2025-01-23 23:35:44 +00:00
vk_nir.h
vk_nir_convert_ycbcr.c vulkan: Fix incorrect bpcs value for padded formats 2024-10-16 14:30:15 +00:00
vk_nir_convert_ycbcr.h
vk_object.c vulkan: reduce struct vk_object_base by 8 bytes 2024-04-15 22:12:52 +00:00
vk_object.h vulkan: do not access member of a NULL structure 2024-06-21 21:07:05 +00:00
vk_physical_device.c vulkan: add common GetPhysicalDeviceCalibrateableTimeDomainsKHR 2025-01-07 03:39:28 +00:00
vk_physical_device.h vulkan: Set SPIR-V caps from supported features 2024-05-09 01:14:23 +00:00
vk_pipeline.c vulkan/runtime: ensure robustness state is fully initialized 2025-02-28 22:17:35 +01:00
vk_pipeline.h vulkan: Add a vk_pipeline_ops::get_shader method 2024-09-26 17:18:25 +00:00
vk_pipeline_cache.c vulkan/runtime: allow to use a different disk cache 2025-02-06 07:33:37 +00:00
vk_pipeline_cache.h vulkan/runtime: allow to use a different disk cache 2025-02-06 07:33:37 +00:00
vk_pipeline_layout.c vulkan: Add push constant ranges to vk_pipeline_layout 2024-02-27 22:17:09 +00:00
vk_pipeline_layout.h vulkan: Add push constant ranges to vk_pipeline_layout 2024-02-27 22:17:09 +00:00
vk_query_pool.c
vk_query_pool.h
vk_queue.c vulkan/queue: Check for _mem_signal_temp before we submit 2024-10-14 13:13:15 +00:00
vk_queue.h vulkan/queue: Use a builder pattern for vk_queue_submit 2024-10-03 22:11:39 +00:00
vk_render_pass.c vk/pass: Add input attachment location info 2025-04-16 15:37:02 +02:00
vk_render_pass.h vk/pass: Add input attachment location info 2025-04-16 15:37:02 +02:00
vk_sampler.c vk/sampler: split out sampler init from create 2025-01-15 16:12:27 +00:00
vk_sampler.h vk/sampler: split out sampler init from create 2025-01-15 16:12:27 +00:00
vk_semaphore.c
vk_semaphore.h
vk_shader.c vulkan: export vk_robustness_disabled 2024-10-04 17:52:10 +00:00
vk_shader.h vulkan: export vk_robustness_disabled 2024-10-04 17:52:10 +00:00
vk_shader_module.c dzn: Use vk_pipeline_shader_stage_to_nir() 2024-08-29 03:30:31 +00:00
vk_shader_module.h dzn: Use vk_pipeline_shader_stage_to_nir() 2024-08-29 03:30:31 +00:00
vk_standard_sample_locations.c
vk_standard_sample_locations.h
vk_sync.c
vk_sync.h
vk_sync_binary.c vulkan: don't zero-initialize STACK_ARRAY()'s stack array 2024-04-08 17:23:25 +00:00
vk_sync_binary.h
vk_sync_dummy.c
vk_sync_dummy.h
vk_sync_timeline.c vulkan: Use u_cnd_monotonic for vk_sync_timeline 2024-07-08 22:09:06 +00:00
vk_sync_timeline.h vulkan: Use u_cnd_monotonic for vk_sync_timeline 2024-07-08 22:09:06 +00:00
vk_synchronization.c vk/sync: Fix execution only barriers 2025-04-16 15:37:03 +02:00
vk_synchronization.h vulkan: Add vk_expand_(dst|src)_access_flags2 2024-06-28 10:41:49 +00:00
vk_texcompress_astc.c
vk_texcompress_astc.h
vk_texcompress_etc2.c
vk_texcompress_etc2.h
vk_video.c vulkan/video: Do byte-alignment when building a h264 slice header 2025-04-02 11:04:11 +02:00
vk_video.h vulkan/video: adds a bitstream writer of h265 slice header 2024-08-02 07:15:59 +00:00
vk_ycbcr_conversion.c
vk_ycbcr_conversion.h