v3dv: Enable VK_FORMAT_A2R10G10B10_UINT_PACK32 format

Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38278>
This commit is contained in:
Jose Maria Casanova Crespo 2025-11-04 12:36:34 +01:00 committed by Marge Bot
parent 8e2d054544
commit 5d24610d50
3 changed files with 5 additions and 0 deletions

View file

@ -175,6 +175,7 @@ image_format_plane_features(struct v3dv_physical_device *pdevice,
} else if (vk_format == VK_FORMAT_A2B10G10R10_UNORM_PACK32 ||
vk_format == VK_FORMAT_A2R10G10B10_UNORM_PACK32 ||
vk_format == VK_FORMAT_A2B10G10R10_UINT_PACK32 ||
vk_format == VK_FORMAT_A2R10G10B10_UINT_PACK32 ||
vk_format == VK_FORMAT_B10G11R11_UFLOAT_PACK32) {
/* To comply with shaderStorageImageExtendedFormats */
flags |= VK_FORMAT_FEATURE_2_STORAGE_IMAGE_BIT |
@ -302,6 +303,7 @@ buffer_format_features(VkFormat vk_format, const struct v3dv_format *v3dv_format
VK_FORMAT_FEATURE_2_UNIFORM_TEXEL_BUFFER_BIT |
VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_BIT;
} else if (vk_format == VK_FORMAT_A2B10G10R10_UINT_PACK32 ||
vk_format == VK_FORMAT_A2R10G10B10_UINT_PACK32 ||
vk_format == VK_FORMAT_B10G11R11_UFLOAT_PACK32) {
flags |= VK_FORMAT_FEATURE_2_UNIFORM_TEXEL_BUFFER_BIT |
VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_BIT;

View file

@ -1394,6 +1394,7 @@ pipeline_populate_v3d_vs_key(struct v3d_vs_key *key,
&vi_info->pVertexAttributeDescriptions[i];
assert(desc->location < MAX_VERTEX_ATTRIBS);
if (desc->format == VK_FORMAT_B8G8R8A8_UNORM ||
desc->format == VK_FORMAT_A2R10G10B10_UINT_PACK32 ||
desc->format == VK_FORMAT_A2R10G10B10_UNORM_PACK32) {
key->va_swap_rb_mask |= 1 << (VERT_ATTRIB_GENERIC0 + desc->location);
}
@ -2096,6 +2097,7 @@ pipeline_populate_graphics_key(struct v3dv_pipeline *pipeline,
&vi_info->pVertexAttributeDescriptions[i];
assert(desc->location < MAX_VERTEX_ATTRIBS);
if (desc->format == VK_FORMAT_B8G8R8A8_UNORM ||
desc->format == VK_FORMAT_A2R10G10B10_UINT_PACK32 ||
desc->format == VK_FORMAT_A2R10G10B10_UNORM_PACK32) {
key->va_swap_rb_mask |= 1 << (VERT_ATTRIB_GENERIC0 + desc->location);
}

View file

@ -189,6 +189,7 @@ static const struct v3dv_format format_table[] = {
FORMAT(A2B10G10R10_UNORM_PACK32,RGB10_A2, RGB10_A2, SWIZ_XYZW, 16, true),
FORMAT(A2B10G10R10_UINT_PACK32, RGB10_A2UI, RGB10_A2UI, SWIZ_XYZW, 16, false),
FORMAT(A2R10G10B10_UNORM_PACK32,RGB10_A2, RGB10_A2, SWIZ_ZYXW, 16, true),
FORMAT(A2R10G10B10_UINT_PACK32, RGB10_A2UI, RGB10_A2UI, SWIZ_ZYXW, 16, false),
FORMAT(E5B9G9R9_UFLOAT_PACK32, NO, RGB9_E5, SWIZ_XYZ1, 16, true),
FORMAT(B10G11R11_UFLOAT_PACK32, R11F_G11F_B10F,R11F_G11F_B10F, SWIZ_XYZ1, 16, true),