[VK_FORMAT_BC2_SRGB_BLOCK] = PIPE_FORMAT_DXT3_SRGBA,
[VK_FORMAT_BC3_UNORM_BLOCK] = PIPE_FORMAT_DXT5_RGBA,
[VK_FORMAT_BC3_SRGB_BLOCK] = PIPE_FORMAT_DXT5_SRGBA,
+ [VK_FORMAT_BC4_UNORM_BLOCK] = PIPE_FORMAT_RGTC1_UNORM,
+ [VK_FORMAT_BC4_SNORM_BLOCK] = PIPE_FORMAT_RGTC1_SNORM,
+ [VK_FORMAT_BC5_UNORM_BLOCK] = PIPE_FORMAT_RGTC2_UNORM,
+ [VK_FORMAT_BC5_SNORM_BLOCK] = PIPE_FORMAT_RGTC2_SNORM,
[VK_FORMAT_BC6H_UFLOAT_BLOCK] = PIPE_FORMAT_BPTC_RGB_UFLOAT,
[VK_FORMAT_BC6H_SFLOAT_BLOCK] = PIPE_FORMAT_BPTC_RGB_FLOAT,
[VK_FORMAT_BC7_UNORM_BLOCK] = PIPE_FORMAT_BPTC_RGBA_UNORM,
enum pipe_format
vk_format_to_pipe_format(enum VkFormat vkformat)
{
- if (vkformat >= ARRAY_SIZE(vk_format_map))
- return PIPE_FORMAT_NONE;
+ if (vkformat >= ARRAY_SIZE(vk_format_map)) {
+ switch (vkformat) {
+ case VK_FORMAT_G8B8G8R8_422_UNORM:
+ return PIPE_FORMAT_YUYV;
+ case VK_FORMAT_B8G8R8G8_422_UNORM:
+ return PIPE_FORMAT_UYVY;
+ case VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM:
+ return PIPE_FORMAT_YV12;
+ case VK_FORMAT_G8_B8R8_2PLANE_420_UNORM:
+ return PIPE_FORMAT_NV12;
+ default:
+ return PIPE_FORMAT_NONE;
+ }
+ }
/* Unpopulated entries in the table must be PIPE_FORMAT_NONE */
STATIC_ASSERT(PIPE_FORMAT_NONE == 0);