panvk: expose EXT_texel_buffer_alignment support
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run

This was mostly wired up, but we currently require an alignment of 64
for uniform texel buffers, because we're currently using
plane-descriptors for this.

We could lift that limitation by switching to buffer descriptors and use
LD_CVT for the format-conversion, but that's a bigger change.

Let's just fix up the aligntment and enable the extension for now.

Reviewed-by: Olivia Lee <benjamin.lee@collabora.com>
Reviewed-by: Mary Guillemard <mary.guillemard@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34826>
This commit is contained in:
Erik Faye-Lund 2025-05-05 21:23:52 +02:00
parent 69467f26c9
commit 2ec3b83f99
3 changed files with 8 additions and 3 deletions

View file

@ -503,7 +503,7 @@ Vulkan 1.3 -- all DONE: anv, hk, lvp, nvk, radv, tu, vn, v3dv
VK_EXT_image_robustness DONE (anv, hasvk, lvp, nvk, panvk, radv, tu, v3dv, vn)
VK_EXT_shader_demote_to_helper_invocation DONE (anv, hasvk, lvp, nvk, panvk, radv, tu, v3dv, vn)
VK_EXT_subgroup_size_control DONE (anv, hasvk, lvp, nvk, panvk/v10+, radv, tu, v3dv, vn)
VK_EXT_texel_buffer_alignment DONE (anv, hasvk, lvp, nvk, pvr, radv, tu, v3dv, vn)
VK_EXT_texel_buffer_alignment DONE (anv, hasvk, lvp, nvk, panvk, pvr, radv, tu, v3dv, vn)
VK_EXT_texture_compression_astc_hdr DONE (vn)
VK_EXT_tooling_info DONE (anv, hasvk, nvk, panvk, pvr, radv, tu, v3dv, vn)
VK_EXT_ycbcr_2plane_444_formats DONE (anv, lvp, nvk, panvk/v10+, vn)

View file

@ -24,3 +24,4 @@ VK_KHR_robustness2 on RADV
VK_EXT_zero_initialize_device_memory on RADV and NVK
VK_EXT_primitive_topology_list_restart on panvk
VK_EXT_image_2d_view_of_3d on panvk
VK_EXT_texel_buffer_alignment on panvk

View file

@ -317,6 +317,7 @@ get_device_extensions(const struct panvk_physical_device *device,
.EXT_shader_demote_to_helper_invocation = true,
.EXT_shader_replicated_composites = true,
.EXT_subgroup_size_control = has_vk1_1,
.EXT_texel_buffer_alignment = true,
.EXT_tooling_info = true,
.EXT_vertex_attribute_divisor = true,
.EXT_vertex_input_dynamic_state = true,
@ -584,6 +585,9 @@ get_features(const struct panvk_physical_device *device,
/* VK_EXT_shader_replicated_composites */
.shaderReplicatedComposites = true,
/* VK_EXT_texel_buffer_alignment */
.texelBufferAlignment = true,
/* VK_EXT_ycbcr_2plane_444_formats */
.ycbcr2plane444Formats = arch >= 10,
@ -1024,8 +1028,8 @@ get_device_properties(const struct panvk_instance *instance,
/* XXX: VK_EXT_texel_buffer_alignment */
.storageTexelBufferOffsetAlignmentBytes = 64,
.storageTexelBufferOffsetSingleTexelAlignment = false,
.uniformTexelBufferOffsetAlignmentBytes = 4,
.uniformTexelBufferOffsetSingleTexelAlignment = true,
.uniformTexelBufferOffsetAlignmentBytes = 64,
.uniformTexelBufferOffsetSingleTexelAlignment = false,
/* VK_KHR_maintenance4 */
.maxBufferSize = 1 << 30,