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 <zhengxingda@iscas.ac.cn>
Reviewed-by: Frank Binns <frank.binns@imgtec.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41569>
This commit is contained in:
Icenowy Zheng 2026-05-14 01:39:18 +08:00 committed by Marge Bot
parent f5a3e02797
commit ad14a81cc7
3 changed files with 14 additions and 1 deletions

View file

@ -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)

View file

@ -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

View file

@ -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,