v3dv: Add normalisation flags to the format table

These indicate if we need to apply software packing and unpacking for render
targets of these formats.

Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35820>
This commit is contained in:
Ella Stanforth
2025-06-29 15:40:35 +01:00
committed by Marge Bot
parent 9e9763cf86
commit 40515312f6
2 changed files with 39 additions and 0 deletions
+6
View File
@@ -627,6 +627,12 @@ struct v3dv_format_plane {
/* Whether the return value is 16F/I/UI or 32F/I/UI. */
uint8_t return_size;
/* Needs software unorm packing */
bool unorm;
/* Needs software snorm packing */
bool snorm;
};
struct v3dv_format {
+33
View File
@@ -45,6 +45,39 @@
TEXTURE_DATA_FORMAT_##tex, \
swiz, \
return_size, \
false, \
false, \
}}, \
supports_filtering, \
}
/* Format requiring software unorm packing */
#define FORMAT_UNORM(vk, rt, tex, swiz, return_size, supports_filtering) \
[VK_ENUM_OFFSET(VK_FORMAT_##vk)] = { \
1, \
{{ \
V3D_OUTPUT_IMAGE_FORMAT_##rt, \
TEXTURE_DATA_FORMAT_##tex, \
swiz, \
return_size, \
true, \
false, \
}}, \
supports_filtering, \
}
/* Format requiring software snorm packing */
#define FORMAT_SNORM(vk, rt, tex, swiz, return_size, supports_filtering) \
[VK_ENUM_OFFSET(VK_FORMAT_##vk)] = { \
1, \
{{ \
V3D_OUTPUT_IMAGE_FORMAT_##rt, \
TEXTURE_DATA_FORMAT_##tex, \
swiz, \
return_size, \
false, \
true, \
}}, \
supports_filtering, \
}