From e5c54cf33bd564624e660f7adb432e98dab8e912 Mon Sep 17 00:00:00 2001 From: Erik Faye-Lund Date: Mon, 25 Aug 2025 13:56:35 +0200 Subject: [PATCH] panvk: enable KHR_maintenance7 In theory, we should be able to support separateDepthStencilAttachmentAccess, but in practice this occasionally fails tests. So let's disable it for now, and deal with that feature down the line. Reviewed-by: Lars-Ivar Hesselberg Simonsen Part-of: --- docs/features.txt | 2 +- docs/relnotes/new_features.txt | 1 + src/panfrost/vulkan/panvk_vX_physical_device.c | 16 ++++++++++++++++ 3 files changed, 18 insertions(+), 1 deletion(-) diff --git a/docs/features.txt b/docs/features.txt index c69b384b77c..35e1b71d666 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_display_properties2 DONE (anv, hk, nvk, pvr, radv, tu, v3dv, vn) 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_maintenance7 DONE (anv, hk, lvp, nvk, panvk/v10+, radv, tu, vn) VK_KHR_maintenance8 DONE (nvk) VK_KHR_maintenance9 DONE (lvp, radv, nvk) VK_KHR_performance_query DONE (anv, radv/gfx10.3+, tu, v3dv) diff --git a/docs/relnotes/new_features.txt b/docs/relnotes/new_features.txt index dab5f17bf11..156e67a2e1b 100644 --- a/docs/relnotes/new_features.txt +++ b/docs/relnotes/new_features.txt @@ -15,3 +15,4 @@ cl_khr_semaphore on radeonsi and zink cl_khr_external_semaphore on radeonsi and zink cl_khr_external_semaphore_sync_fd on radeonsi and zink GL_NV_shader_atomic_int64 on radeonsi and Panfrost V9+ +VK_KHR_maintenance7 on panvk/v10+ diff --git a/src/panfrost/vulkan/panvk_vX_physical_device.c b/src/panfrost/vulkan/panvk_vX_physical_device.c index c72c8d650ae..7a250c2bd59 100644 --- a/src/panfrost/vulkan/panvk_vX_physical_device.c +++ b/src/panfrost/vulkan/panvk_vX_physical_device.c @@ -81,6 +81,7 @@ panvk_per_arch(get_physical_device_extensions)( .KHR_maintenance4 = has_vk1_1, .KHR_maintenance5 = has_vk1_1, .KHR_maintenance6 = has_vk1_1, + .KHR_maintenance7 = has_vk1_1, .KHR_map_memory2 = true, .KHR_multiview = true, .KHR_pipeline_executable_properties = true, @@ -366,6 +367,7 @@ panvk_per_arch(get_physical_device_features)( .maintenance4 = true, .maintenance5 = true, .maintenance6 = true, + .maintenance7 = true, /* Vulkan 1.4 */ .shaderSubgroupRotate = true, @@ -931,6 +933,20 @@ panvk_per_arch(get_physical_device_properties)( .fragmentShadingRateClampCombinerInputs = false, .maxCombinedImageSamplerDescriptorCount = 1, + /* VK_KHR_maintenance7 */ + /* We don't implement VK_KHR_fragment_shading_rate */ + .robustFragmentShadingRateAttachmentAccess = false, + .separateDepthStencilAttachmentAccess = false, + .maxDescriptorSetTotalUniformBuffersDynamic = MAX_DYNAMIC_UNIFORM_BUFFERS, + .maxDescriptorSetTotalStorageBuffersDynamic = MAX_DYNAMIC_STORAGE_BUFFERS, + .maxDescriptorSetTotalBuffersDynamic = MAX_DYNAMIC_BUFFERS, + .maxDescriptorSetUpdateAfterBindTotalUniformBuffersDynamic = + PAN_ARCH >= 9 ? MAX_DYNAMIC_UNIFORM_BUFFERS : 0, + .maxDescriptorSetUpdateAfterBindTotalStorageBuffersDynamic = + PAN_ARCH >= 9 ? MAX_DYNAMIC_STORAGE_BUFFERS : 0, + .maxDescriptorSetUpdateAfterBindTotalBuffersDynamic = + PAN_ARCH >= 9 ? MAX_DYNAMIC_BUFFERS : 0, + /* VK_KHR_line_rasterization */ .lineSubPixelPrecisionBits = 8,