From 7692d3c0e1a2b54c82c945335d23fc174252fda1 Mon Sep 17 00:00:00 2001 From: Mohamed Ahmed Date: Fri, 27 Jun 2025 22:14:39 +0300 Subject: [PATCH] nvk: Advertise VK_KHR_maintenance9 Reviewed-by: Faith Ekstrand Part-of: --- docs/features.txt | 2 +- docs/relnotes/new_features.txt | 1 + src/nouveau/vulkan/nvk_physical_device.c | 14 ++++++++++++++ 3 files changed, 16 insertions(+), 1 deletion(-) diff --git a/docs/features.txt b/docs/features.txt index 75c95a230da..f0d31743c3f 100644 --- a/docs/features.txt +++ b/docs/features.txt @@ -553,7 +553,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 (lvp, radv) + VK_KHR_maintenance9 DONE (lvp, radv, nvk) 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 022a1392e52..a95d5c1deb0 100644 --- a/docs/relnotes/new_features.txt +++ b/docs/relnotes/new_features.txt @@ -9,3 +9,4 @@ VK_KHR_video_encode_intra_refresh on radv VK_KHR_video_encode_quantization_map on radv GL_ATI_meminfo and GL_NVX_gpu_memory_info on r300 VK_KHR_shader_untyped_pointers on anv and RADV +VK_KHR_maintenance9 on NVK diff --git a/src/nouveau/vulkan/nvk_physical_device.c b/src/nouveau/vulkan/nvk_physical_device.c index 659a2f4059a..13c93e97299 100644 --- a/src/nouveau/vulkan/nvk_physical_device.c +++ b/src/nouveau/vulkan/nvk_physical_device.c @@ -147,6 +147,7 @@ nvk_get_device_extensions(const struct nvk_instance *instance, .KHR_maintenance5 = true, .KHR_maintenance6 = true, .KHR_maintenance7 = true, + .KHR_maintenance9 = true, .KHR_map_memory2 = true, .KHR_multiview = true, .KHR_pipeline_executable_properties = true, @@ -474,6 +475,9 @@ nvk_get_device_features(const struct nv_device_info *info, /* VK_KHR_maintenance7 */ .maintenance7 = true, + + /* VK_KHR_maintenance9 */ + .maintenance9 = true, /* VK_KHR_pipeline_executable_properties */ .pipelineExecutableInfo = true, @@ -1091,6 +1095,11 @@ nvk_get_device_properties(const struct nvk_instance *instance, .maxDescriptorSetUpdateAfterBindTotalStorageBuffersDynamic = NVK_MAX_DYNAMIC_BUFFERS / 2, .maxDescriptorSetUpdateAfterBindTotalBuffersDynamic = NVK_MAX_DYNAMIC_BUFFERS, + /* VK_KHR_maintenance9 */ + .image2DViewOf3DSparse = false, + .defaultVertexAttributeValue = + VK_DEFAULT_VERTEX_ATTRIBUTE_VALUE_ZERO_ZERO_ZERO_ZERO_KHR, + /* VK_EXT_legacy_vertex_attributes */ .nativeUnalignedPerformance = true, @@ -1650,6 +1659,11 @@ nvk_GetPhysicalDeviceQueueFamilyProperties2( p->priorities[0] = VK_QUEUE_GLOBAL_PRIORITY_MEDIUM; break; } + case VK_STRUCTURE_TYPE_QUEUE_FAMILY_OWNERSHIP_TRANSFER_PROPERTIES_KHR: { + VkQueueFamilyOwnershipTransferPropertiesKHR *p = (void *)ext; + p->optimalImageTransferToQueueFamilies = ~0; + break; + } default: vk_debug_ignored_stype(ext->sType);