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,