From dc02a63d212d314ade09b7f0d05c3ead4832cd8e Mon Sep 17 00:00:00 2001 From: Christian Gmeiner Date: Sun, 7 Jun 2026 23:01:45 +0200 Subject: [PATCH] panvk: Advertise VK_EXT_shader_tile_image Enable the extension and its read-access features, gated to PAN_ARCH >= 9. Signed-off-by: Christian Gmeiner Reviewed-by: Lorenzo Rossi Part-of: --- docs/features.txt | 1 + docs/relnotes/new_features.txt | 1 + src/panfrost/vulkan/panvk_vX_physical_device.c | 11 +++++++++++ 3 files changed, 13 insertions(+) diff --git a/docs/features.txt b/docs/features.txt index 26dc97ee036..18dba3e769e 100644 --- a/docs/features.txt +++ b/docs/features.txt @@ -695,6 +695,7 @@ Khronos extensions that are not part of any Vulkan version: VK_EXT_shader_stencil_export DONE (anv, hk, kk, lvp, panvk, radv, tu, vn) VK_EXT_shader_subgroup_ballot DONE (anv, dzn, hasvk, hk, kk, lvp, nvk, panvk, pvr, radv, vn) VK_EXT_shader_subgroup_vote DONE (anv, dzn, hasvk, hk, kk, lvp, nvk, panvk, pvr, radv, vn) + VK_EXT_shader_tile_image DONE (panvk/v9+) VK_EXT_shader_uniform_buffer_unsized_array DONE (anv, hk, nvk, panvk, radv, tu, vn) VK_EXT_surface_maintenance1 DONE (anv, hk, kk, lvp, nvk, panvk, radv, tu, v3dv, vn) VK_EXT_swapchain_colorspace DONE (anv, hk, kk, lvp, nvk, radv, tu, v3dv, vn) diff --git a/docs/relnotes/new_features.txt b/docs/relnotes/new_features.txt index 8e79d7ce259..e2f744c97ea 100644 --- a/docs/relnotes/new_features.txt +++ b/docs/relnotes/new_features.txt @@ -39,3 +39,4 @@ GL_OES_texture_float on etnaviv/HALF_FLOAT GL_ARB_texture_float on etnaviv/HALF_FLOAT VK_NVX_binary_import on NVK VK_EXT_image_sliced_view_of_3d on panvk +VK_EXT_shader_tile_image on panvk diff --git a/src/panfrost/vulkan/panvk_vX_physical_device.c b/src/panfrost/vulkan/panvk_vX_physical_device.c index 1a845d6bc57..ab7c8dd4af7 100644 --- a/src/panfrost/vulkan/panvk_vX_physical_device.c +++ b/src/panfrost/vulkan/panvk_vX_physical_device.c @@ -208,6 +208,7 @@ panvk_per_arch(get_physical_device_extensions)( .EXT_shader_stencil_export = true, .EXT_shader_subgroup_ballot = true, .EXT_shader_subgroup_vote = true, + .EXT_shader_tile_image = PAN_ARCH >= 9, .EXT_shader_uniform_buffer_unsized_array = true, .EXT_subgroup_size_control = has_vk1_1, #ifdef PANVK_USE_WSI_PLATFORM @@ -606,6 +607,11 @@ panvk_per_arch(get_physical_device_features)( .robustImageAccess2 = false, .nullDescriptor = PAN_ARCH >= 10, + /* VK_EXT_shader_tile_image */ + .shaderTileImageColorReadAccess = PAN_ARCH >= 9, + .shaderTileImageDepthReadAccess = PAN_ARCH >= 9, + .shaderTileImageStencilReadAccess = PAN_ARCH >= 9, + /* VK_KHR_shader_clock */ .shaderSubgroupClock = device->kmod.dev->props.gpu_can_query_timestamp, .shaderDeviceClock = device->kmod.dev->props.timestamp_device_coherent, @@ -1244,6 +1250,11 @@ panvk_per_arch(get_physical_device_properties)( .provokingVertexModePerPipeline = false, .transformFeedbackPreservesTriangleFanProvokingVertex = false, + /* VK_EXT_shader_tile_image */ + .shaderTileImageCoherentReadAccelerated = PAN_ARCH >= 9, + .shaderTileImageReadSampleFromPixelRateInvocation = PAN_ARCH >= 9, + .shaderTileImageReadFromHelperInvocation = PAN_ARCH >= 9, + /* VK_ANDROID_native_buffer */ .sharedImage = vk_android_get_front_buffer_usage() != 0,