From ad14a81cc7b92c9572cfec5b1ada82135c954ff0 Mon Sep 17 00:00:00 2001 From: Icenowy Zheng Date: Thu, 14 May 2026 01:39:18 +0800 Subject: [PATCH] pvr: advertise VK_KHR_maintenance5 As most work for maintenance5 is already done in the common Vulkan runtime, functions required by it are implemented in pvr driver and blitting functions are changed to use common functions for acquiring subresource layer count, advertise VK_KHR_maintenance5 now. Signed-off-by: Icenowy Zheng Reviewed-by: Frank Binns Part-of: --- docs/features.txt | 2 +- docs/relnotes/new_features.txt | 1 + src/imagination/vulkan/pvr_physical_device.c | 12 ++++++++++++ 3 files changed, 14 insertions(+), 1 deletion(-) diff --git a/docs/features.txt b/docs/features.txt index 76735c672fd..032d37b53c3 100644 --- a/docs/features.txt +++ b/docs/features.txt @@ -524,7 +524,7 @@ Vulkan 1.4 -- all DONE: anv, hk, lvp, nvk, panvk/v10+, radv/gfx8+, tu/a7xx+, vn VK_KHR_index_type_uint8 DONE (anv, kk, lvp, nvk, panvk, pvr, radv, tu, v3dv, vn) VK_KHR_line_rasterization DONE (anv, kk, lvp, nvk, panvk, pvr, radv, tu, v3dv, vn) VK_KHR_load_store_op_none DONE (anv, kk, lvp, nvk, panvk, radv, tu, v3dv, vn) - VK_KHR_maintenance5 DONE (anv, hasvk, lvp, nvk, panvk/v10+, radv, tu, v3dv, vn) + VK_KHR_maintenance5 DONE (anv, hasvk, lvp, nvk, panvk/v10+, pvr, radv, tu, v3dv, vn) VK_KHR_maintenance6 DONE (anv, hasvk, lvp, nvk, panvk/v10+, radv, tu, vn) VK_KHR_map_memory2 DONE (anv, kk, lvp, nvk, panvk, pvr, radv, tu, vn) VK_KHR_push_descriptor DONE (anv, hasvk, kk, lvp, nvk, panvk, radv, tu, vn) diff --git a/docs/relnotes/new_features.txt b/docs/relnotes/new_features.txt index de0d0a32208..c9795278501 100644 --- a/docs/relnotes/new_features.txt +++ b/docs/relnotes/new_features.txt @@ -14,3 +14,4 @@ GL_ARB_texture_query_lod on panfrost/v9+ VK_KHR_maintenance11 on RADV OpenCL 3.1 support for rusticl on asahi, iris, radeonsi, llvmpipe and zink VK_KHR_workgroup_memory_explicit_layout on pvr +VK_KHR_maintenance5 on pvr diff --git a/src/imagination/vulkan/pvr_physical_device.c b/src/imagination/vulkan/pvr_physical_device.c index 3097f4f4077..68747d42a4c 100644 --- a/src/imagination/vulkan/pvr_physical_device.c +++ b/src/imagination/vulkan/pvr_physical_device.c @@ -149,6 +149,7 @@ static void pvr_physical_device_get_supported_extensions( .KHR_maintenance2 = true, .KHR_maintenance3 = true, .KHR_maintenance4 = true, + .KHR_maintenance5 = true, .KHR_map_memory2 = true, .KHR_multiview = true, .KHR_pipeline_executable_properties = true, @@ -334,6 +335,9 @@ static void pvr_physical_device_get_supported_features( /* Vulkan 1.3 / VK_KHR_maintenance4 */ .maintenance4 = true, + /* Vulkan 1.4 / VK_KHR_maintenance5 */ + .maintenance5 = true, + /* Vulkan 1.1 / VK_KHR_shader_draw_parameters */ .shaderDrawParameters = true, @@ -857,6 +861,14 @@ static bool pvr_physical_device_get_properties( /* Vulkan 1.3 / VK_KHR_maintenance4 */ .maxBufferSize = max_memory_alloc_size, + /* Vulkan 1.4 / VK_KHR_maintenance5 */ + .earlyFragmentMultisampleCoverageAfterSampleCounting = true, + .earlyFragmentSampleMaskTestBeforeSampleCounting = false, + .depthStencilSwizzleOneSupport = false, + .polygonModePointSize = false, + .nonStrictSinglePixelWideLinesUseParallelogram = false, + .nonStrictWideLinesUseParallelogram = true, + /* Vulkan 1.4 / VK_EXT_vertex_attribute_divisor / VK_KHR_vertex_attribute_divisor */ .maxVertexAttribDivisor = UINT32_MAX, .supportsNonZeroFirstInstance = true,