From d5da47f831d40e9c4571078b530cf0febe711a6c Mon Sep 17 00:00:00 2001 From: Samuel Pitoiset Date: Tue, 10 Jun 2025 09:07:53 +0200 Subject: [PATCH] radv: advertise VK_KHR_maintenance9 Signed-off-by: Samuel Pitoiset Part-of: --- docs/features.txt | 1 + docs/relnotes/new_features.txt | 1 + src/amd/vulkan/radv_physical_device.c | 13 +++++++++++++ 3 files changed, 15 insertions(+) diff --git a/docs/features.txt b/docs/features.txt index b3c58d01f55..85b13d2c5a4 100644 --- a/docs/features.txt +++ b/docs/features.txt @@ -551,6 +551,7 @@ Khronos extensions that are not part of any Vulkan version: VK_KHR_get_surface_capabilities2 DONE (anv, hk, lvp, nvk, pvr, radv, tu, v3dv, vn) VK_KHR_incremental_present DONE (anv, hasvk, hk, lvp, nvk, radv, tu, v3dv, vn) VK_KHR_maintenance7 DONE (anv, hk, lvp, nvk, radv, tu, vn) + VK_KHR_maintenance9 DONE (radv) VK_KHR_performance_query DONE (anv, radv/gfx10.3+, tu, v3dv) VK_KHR_pipeline_binary DONE (radv) VK_KHR_pipeline_executable_properties DONE (anv, hk, nvk, panvk, hasvk, radv, tu, v3dv) diff --git a/docs/relnotes/new_features.txt b/docs/relnotes/new_features.txt index ff62acc1b39..1547f805d56 100644 --- a/docs/relnotes/new_features.txt +++ b/docs/relnotes/new_features.txt @@ -44,3 +44,4 @@ cl_khr_spirv_queries VK_EXT_depth_clamp_zero_one on panvk VK_KHR_depth_clamp_zero_one on panvk VK_EXT_depth_clip_control on panvk +VK_KHR_maintenance9 on RADV diff --git a/src/amd/vulkan/radv_physical_device.c b/src/amd/vulkan/radv_physical_device.c index cc5498200c1..840581c83d5 100644 --- a/src/amd/vulkan/radv_physical_device.c +++ b/src/amd/vulkan/radv_physical_device.c @@ -552,6 +552,7 @@ radv_physical_device_get_supported_extensions(const struct radv_physical_device .KHR_maintenance6 = true, .KHR_maintenance7 = true, .KHR_maintenance8 = true, + .KHR_maintenance9 = true, .KHR_map_memory2 = true, .KHR_multiview = true, .KHR_performance_query = radv_perf_query_supported(pdev), @@ -1319,6 +1320,9 @@ radv_physical_device_get_features(const struct radv_physical_device *pdev, struc /* VK_KHR_video_decode_vp9 */ .videoDecodeVP9 = true, + + /* VK_KHR_maintenance9 */ + .maintenance9 = true, }; } @@ -1955,6 +1959,10 @@ radv_get_physical_device_properties(struct radv_physical_device *pdev) .supportedIndirectCommandsShaderStagesShaderBinding = VK_SHADER_STAGE_COMPUTE_BIT, .deviceGeneratedCommandsTransformFeedback = true, .deviceGeneratedCommandsMultiDrawIndirectCount = true, + + /* VK_KHR_maintenance9 */ + .image2DViewOf3DSparse = pdev->info.gfx_level >= GFX8, + .defaultVertexAttributeValue = VK_DEFAULT_VERTEX_ATTRIBUTE_VALUE_ZERO_ZERO_ZERO_ZERO_KHR, }; struct vk_properties *p = &pdev->vk.properties; @@ -2579,6 +2587,11 @@ radv_GetPhysicalDeviceQueueFamilyProperties2(VkPhysicalDevice physicalDevice, ui } break; } + case VK_STRUCTURE_TYPE_QUEUE_FAMILY_OWNERSHIP_TRANSFER_PROPERTIES_KHR: { + VkQueueFamilyOwnershipTransferPropertiesKHR *prop = (VkQueueFamilyOwnershipTransferPropertiesKHR *)ext; + prop->optimalImageTransferToQueueFamilies = ~0; + break; + } default: break; }