pvr: Add support for R32G32B32A32_UINT, R32_UINT and R8_UINT formats.

These formats are required by vkCmdCopyBuffer implementation. The
formats in pvr_format_table are exposed to applications as well.
Given these formats are supported for rendering and sampling, there
shouldn't be a problem exposing these to applications.

Co-authored-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com>
Signed-off-by: Rajnesh Kanwal <rajnesh.kanwal@imgtec.com>
Signed-off-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com>
Reviewed-by: Frank Binns <frank.binns@imgtec.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16897>
This commit is contained in:
Rajnesh Kanwal 2022-05-16 14:27:40 +01:00
parent 86f703e7b1
commit ce36859b95

View file

@ -25,6 +25,7 @@
#include "pvr_formats.h"
#include "pvr_private.h"
#include "vk_enum_to_str.h"
#include "vk_format.h"
#include "vk_log.h"
#include "vk_util.h"
@ -46,7 +47,15 @@ struct pvr_format {
/* TODO: add all supported core formats */
static const struct pvr_format pvr_format_table[] = {
/* VK_FORMAT_R8_UINT = 13. */
FORMAT(R8_UINT, U8, U8),
/* VK_FORMAT_B8G8R8A8_UNORM = 44. */
FORMAT(B8G8R8A8_UNORM, U8U8U8U8, U8U8U8U8),
/* VK_FORMAT_R32_UINT = 98. */
FORMAT(R32_UINT, U32, U32),
/* VK_FORMAT_R32G32B32A32_UINT = 107. */
FORMAT(R32G32B32A32_UINT, U32U32U32U32, U32U32U32U32),
/* VK_FORMAT_D32_SFLOAT = 126. */
FORMAT(D32_SFLOAT, F32, F32),
};
@ -59,6 +68,10 @@ static inline const struct pvr_format *pvr_get_format(VkFormat vk_format)
return &pvr_format_table[vk_format];
}
mesa_logd("Format %s(%d) not supported\n",
vk_Format_to_str(vk_format),
vk_format);
return NULL;
}