From 887a390ec0349ae6efec74ea3c6de9dbdd2c7f0e Mon Sep 17 00:00:00 2001 From: Samuel Pitoiset Date: Wed, 18 Mar 2026 17:03:58 +0100 Subject: [PATCH] radv: advertise VK_KHR_shader_abort Without VK_KHR_device_fault there is no way to get back the abort messages. Signed-off-by: Samuel Pitoiset Part-of: --- docs/features.txt | 1 + docs/relnotes/new_features.txt | 1 + src/amd/vulkan/radv_physical_device.c | 7 +++++++ 3 files changed, 9 insertions(+) diff --git a/docs/features.txt b/docs/features.txt index 11c1acf2f5b..bfa72aea9cf 100644 --- a/docs/features.txt +++ b/docs/features.txt @@ -579,6 +579,7 @@ Khronos extensions that are not part of any Vulkan version: VK_KHR_ray_tracing_pipeline DONE (anv/gfx12.5+, lvp, radv/gfx10.3+, vn) VK_KHR_ray_tracing_position_fetch DONE (anv, lvp, radv/gfx10.3+, vn) VK_KHR_robustness2 DONE (anv, hasvk, hk, kk, lvp, nvk, panvk/v10+, pvr, radv, tu, v3dv, vn) + VK_KHR_shader_abort DONE (radv) VK_KHR_shader_bfloat16 DONE (anv/gfx12.5+, radv/gfx12+, vn) VK_KHR_shader_clock DONE (anv, hasvk, lvp, nvk, panvk, radv, tu, vn) VK_KHR_shader_constant_data DONE (anv, radv) diff --git a/docs/relnotes/new_features.txt b/docs/relnotes/new_features.txt index 11c1631a0ba..92d875417dc 100644 --- a/docs/relnotes/new_features.txt +++ b/docs/relnotes/new_features.txt @@ -24,3 +24,4 @@ VK_EXT_debug_marker in vulkan runtime VK_EXT_mesh_shader on NVK VK_KHR_device_fault on RADV VK_GOOGLE_display_timing for KHR_display on anv, pvr, radv, tu, v3dv +VK_KHR_shader_abort on RADV diff --git a/src/amd/vulkan/radv_physical_device.c b/src/amd/vulkan/radv_physical_device.c index 40bc0330b4e..db454c9e9bb 100644 --- a/src/amd/vulkan/radv_physical_device.c +++ b/src/amd/vulkan/radv_physical_device.c @@ -744,6 +744,7 @@ radv_physical_device_get_supported_extensions(const struct radv_physical_device .KHR_sampler_mirror_clamp_to_edge = true, .KHR_sampler_ycbcr_conversion = true, .KHR_separate_depth_stencil_layouts = true, + .KHR_shader_abort = true, .KHR_shader_atomic_int64 = true, .KHR_shader_bfloat16 = radv_bfloat16_enabled(pdev), .KHR_shader_clock = true, @@ -1626,6 +1627,9 @@ radv_physical_device_get_features(const struct radv_physical_device *pdev, struc .deviceFaultVendorBinary = instance->debug_flags & RADV_DEBUG_HANG, .deviceFaultReportMasked = true, .deviceFaultDeviceLostOnMasked = false, + + /* VK_KHR_shader_abort */ + .shaderAbort = true, }; } @@ -2343,6 +2347,9 @@ radv_get_physical_device_properties(struct radv_physical_device *pdev) /* VK_KHR_device_fault */ .maxDeviceFaultCount = 1, + + /* VK_KHR_shader_abort */ + .maxShaderAbortMessageSize = RADV_MAX_SHADER_ABORT_MESSAGE_SIZE, }; struct vk_properties *p = &pdev->vk.properties;