mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-24 19:40:10 +01:00
pvr: support VK_FORMAT_R8G8_SSCALED for vertex attribs
Signed-off-by: Frank Binns <frank.binns@imgtec.com> Acked-by: Erik Faye-Lund <erik.faye-lund@collabora.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36412>
This commit is contained in:
parent
e47512ce94
commit
692893705f
3 changed files with 14 additions and 0 deletions
|
|
@ -427,6 +427,7 @@ static VkFormat pvr_get_copy_format(VkFormat format)
|
|||
case VK_FORMAT_R8_SNORM:
|
||||
return VK_FORMAT_R8_SINT;
|
||||
case VK_FORMAT_R8G8_SNORM:
|
||||
case VK_FORMAT_R8G8_SSCALED:
|
||||
return VK_FORMAT_R8G8_SINT;
|
||||
case VK_FORMAT_R8G8B8_SNORM:
|
||||
return VK_FORMAT_R8G8B8_SINT;
|
||||
|
|
|
|||
|
|
@ -107,6 +107,8 @@ static const struct pvr_format pvr_format_table[] = {
|
|||
FORMAT(R8G8_UNORM, U8U8, U8U8, U8),
|
||||
/* VK_FORMAT_R8G8_SNORM = 17. */
|
||||
FORMAT(R8G8_SNORM, S8S8, S8S8, S8),
|
||||
/* VK_FORMAT_R8G8_SSCALED = 19. */
|
||||
FORMAT(R8G8_SSCALED, S8S8, S8S8, INVALID),
|
||||
/* VK_FORMAT_R8G8_UINT = 20. */
|
||||
FORMAT(R8G8_UINT, U8U8, U8U8, UINT8),
|
||||
/* VK_FORMAT_R8G8_SINT = 21. */
|
||||
|
|
@ -607,6 +609,9 @@ pvr_get_image_format_features2(const struct pvr_format *pvr_format,
|
|||
|
||||
vk_format = pvr_format->vk_format;
|
||||
|
||||
if (vk_format_is_scaled(vk_format))
|
||||
return 0;
|
||||
|
||||
if (pvr_get_tex_format(vk_format) != ROGUE_TEXSTATE_FORMAT_INVALID) {
|
||||
if (vk_tiling == VK_IMAGE_TILING_OPTIMAL) {
|
||||
const uint32_t first_component_size =
|
||||
|
|
@ -761,6 +766,9 @@ pvr_get_buffer_format_features2(const struct pvr_format *pvr_format)
|
|||
|
||||
desc = vk_format_description(vk_format);
|
||||
|
||||
if (vk_format_is_scaled(vk_format))
|
||||
return VK_FORMAT_FEATURE_2_VERTEX_BUFFER_BIT;
|
||||
|
||||
flags |= VK_FORMAT_FEATURE_2_TRANSFER_SRC_BIT |
|
||||
VK_FORMAT_FEATURE_2_TRANSFER_DST_BIT;
|
||||
|
||||
|
|
|
|||
|
|
@ -215,6 +215,11 @@ static inline bool vk_format_is_alpha_on_msb(VkFormat vk_format)
|
|||
#endif
|
||||
}
|
||||
|
||||
static inline bool vk_format_is_scaled(VkFormat vk_format)
|
||||
{
|
||||
return util_format_is_scaled(vk_format_to_pipe_format(vk_format));
|
||||
}
|
||||
|
||||
static inline unsigned
|
||||
vk_format_get_blocksize(VkFormat format)
|
||||
{
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue