Path: blob/21.2-virgl/src/gallium/drivers/zink/zink_format.c
4570 views
#include "zink_format.h"12static const VkFormat formats[PIPE_FORMAT_COUNT] = {3#define MAP_FORMAT_NORM(FMT) \4[PIPE_FORMAT_ ## FMT ## _UNORM] = VK_FORMAT_ ## FMT ## _UNORM, \5[PIPE_FORMAT_ ## FMT ## _SNORM] = VK_FORMAT_ ## FMT ## _SNORM,67#define MAP_FORMAT_SCALED(FMT) \8[PIPE_FORMAT_ ## FMT ## _USCALED] = VK_FORMAT_ ## FMT ## _USCALED, \9[PIPE_FORMAT_ ## FMT ## _SSCALED] = VK_FORMAT_ ## FMT ## _SSCALED,1011#define MAP_FORMAT_INT(FMT) \12[PIPE_FORMAT_ ## FMT ## _UINT] = VK_FORMAT_ ## FMT ## _UINT, \13[PIPE_FORMAT_ ## FMT ## _SINT] = VK_FORMAT_ ## FMT ## _SINT,1415#define MAP_FORMAT_SRGB(FMT) \16[PIPE_FORMAT_ ## FMT ## _SRGB] = VK_FORMAT_ ## FMT ## _SRGB,1718#define MAP_FORMAT_FLOAT(FMT) \19[PIPE_FORMAT_ ## FMT ## _FLOAT] = VK_FORMAT_ ## FMT ## _SFLOAT,2021// one component2223// 8-bits24MAP_FORMAT_NORM(R8)25MAP_FORMAT_SCALED(R8)26MAP_FORMAT_INT(R8)27MAP_FORMAT_SRGB(R8)28// 16-bits29MAP_FORMAT_NORM(R16)30MAP_FORMAT_SCALED(R16)31MAP_FORMAT_INT(R16)32MAP_FORMAT_FLOAT(R16)33// 32-bits34MAP_FORMAT_INT(R32)35MAP_FORMAT_FLOAT(R32)3637// two components3839// 8-bits40MAP_FORMAT_NORM(R8G8)41MAP_FORMAT_SCALED(R8G8)42MAP_FORMAT_INT(R8G8)43MAP_FORMAT_SRGB(R8G8)44// 16-bits45MAP_FORMAT_NORM(R16G16)46MAP_FORMAT_SCALED(R16G16)47MAP_FORMAT_INT(R16G16)48MAP_FORMAT_FLOAT(R16G16)49// 32-bits50MAP_FORMAT_INT(R32G32)51MAP_FORMAT_FLOAT(R32G32)5253// three components5455// 8-bits56MAP_FORMAT_NORM(R8G8B8)57MAP_FORMAT_SCALED(R8G8B8)58MAP_FORMAT_INT(R8G8B8)59MAP_FORMAT_SRGB(R8G8B8)60MAP_FORMAT_NORM(B8G8R8)61MAP_FORMAT_SCALED(B8G8R8)62MAP_FORMAT_INT(B8G8R8)63MAP_FORMAT_SRGB(B8G8R8)64// 16-bits65MAP_FORMAT_NORM(R16G16B16)66MAP_FORMAT_SCALED(R16G16B16)67MAP_FORMAT_INT(R16G16B16)68MAP_FORMAT_FLOAT(R16G16B16)69// 32-bits70MAP_FORMAT_INT(R32G32B32)71MAP_FORMAT_FLOAT(R32G32B32)7273// four components7475// 8-bits76MAP_FORMAT_NORM(R8G8B8A8)77MAP_FORMAT_SCALED(R8G8B8A8)78MAP_FORMAT_INT(R8G8B8A8)79MAP_FORMAT_NORM(B8G8R8A8)80MAP_FORMAT_SCALED(B8G8R8A8)81MAP_FORMAT_INT(B8G8R8A8)82MAP_FORMAT_SRGB(B8G8R8A8)83[PIPE_FORMAT_RGBA8888_SRGB] = VK_FORMAT_A8B8G8R8_SRGB_PACK32,84// 16-bits85MAP_FORMAT_NORM(R16G16B16A16)86MAP_FORMAT_SCALED(R16G16B16A16)87MAP_FORMAT_INT(R16G16B16A16)88MAP_FORMAT_FLOAT(R16G16B16A16)89// 32-bits90MAP_FORMAT_INT(R32G32B32A32)91MAP_FORMAT_FLOAT(R32G32B32A32)9293// other color formats94[PIPE_FORMAT_A4B4G4R4_UNORM] = VK_FORMAT_R4G4B4A4_UNORM_PACK16,95[PIPE_FORMAT_A4R4G4B4_UNORM] = VK_FORMAT_B4G4R4A4_UNORM_PACK16,96[PIPE_FORMAT_B4G4R4A4_UNORM] = VK_FORMAT_A4R4G4B4_UNORM_PACK16_EXT,97[PIPE_FORMAT_R4G4B4A4_UNORM] = VK_FORMAT_A4B4G4R4_UNORM_PACK16_EXT,98[PIPE_FORMAT_B5G6R5_UNORM] = VK_FORMAT_R5G6B5_UNORM_PACK16,99[PIPE_FORMAT_R5G6B5_UNORM] = VK_FORMAT_B5G6R5_UNORM_PACK16,100101[PIPE_FORMAT_A1B5G5R5_UNORM] = VK_FORMAT_R5G5B5A1_UNORM_PACK16,102[PIPE_FORMAT_A1R5G5B5_UNORM] = VK_FORMAT_B5G5R5A1_UNORM_PACK16,103[PIPE_FORMAT_B5G5R5A1_UNORM] = VK_FORMAT_A1R5G5B5_UNORM_PACK16,104105[PIPE_FORMAT_R11G11B10_FLOAT] = VK_FORMAT_B10G11R11_UFLOAT_PACK32,106[PIPE_FORMAT_R9G9B9E5_FLOAT] = VK_FORMAT_E5B9G9R9_UFLOAT_PACK32,107/* ARB_vertex_type_2_10_10_10 */108[PIPE_FORMAT_R10G10B10A2_UNORM] = VK_FORMAT_A2B10G10R10_UNORM_PACK32,109[PIPE_FORMAT_R10G10B10A2_SNORM] = VK_FORMAT_A2B10G10R10_SNORM_PACK32,110[PIPE_FORMAT_B10G10R10A2_UNORM] = VK_FORMAT_A2R10G10B10_UNORM_PACK32,111[PIPE_FORMAT_B10G10R10A2_SNORM] = VK_FORMAT_A2R10G10B10_SNORM_PACK32,112[PIPE_FORMAT_R10G10B10A2_USCALED] = VK_FORMAT_A2B10G10R10_USCALED_PACK32,113[PIPE_FORMAT_R10G10B10A2_SSCALED] = VK_FORMAT_A2B10G10R10_SSCALED_PACK32,114[PIPE_FORMAT_B10G10R10A2_USCALED] = VK_FORMAT_A2R10G10B10_USCALED_PACK32,115[PIPE_FORMAT_B10G10R10A2_SSCALED] = VK_FORMAT_A2R10G10B10_SSCALED_PACK32,116[PIPE_FORMAT_R10G10B10A2_UINT] = VK_FORMAT_A2B10G10R10_UINT_PACK32,117[PIPE_FORMAT_B10G10R10A2_UINT] = VK_FORMAT_A2R10G10B10_UINT_PACK32,118[PIPE_FORMAT_B10G10R10A2_SINT] = VK_FORMAT_A2R10G10B10_SINT_PACK32,119120// depth/stencil formats121[PIPE_FORMAT_Z32_FLOAT] = VK_FORMAT_D32_SFLOAT,122[PIPE_FORMAT_Z32_FLOAT_S8X24_UINT] = VK_FORMAT_D32_SFLOAT_S8_UINT,123[PIPE_FORMAT_Z16_UNORM] = VK_FORMAT_D16_UNORM,124[PIPE_FORMAT_Z16_UNORM_S8_UINT] = VK_FORMAT_D16_UNORM_S8_UINT,125[PIPE_FORMAT_Z24X8_UNORM] = VK_FORMAT_X8_D24_UNORM_PACK32,126[PIPE_FORMAT_Z24_UNORM_S8_UINT] = VK_FORMAT_D24_UNORM_S8_UINT,127[PIPE_FORMAT_S8_UINT] = VK_FORMAT_S8_UINT,128129// compressed formats130[PIPE_FORMAT_DXT1_RGB] = VK_FORMAT_BC1_RGB_UNORM_BLOCK,131[PIPE_FORMAT_DXT1_RGBA] = VK_FORMAT_BC1_RGBA_UNORM_BLOCK,132[PIPE_FORMAT_DXT3_RGBA] = VK_FORMAT_BC2_UNORM_BLOCK,133[PIPE_FORMAT_DXT5_RGBA] = VK_FORMAT_BC3_UNORM_BLOCK,134[PIPE_FORMAT_DXT1_SRGB] = VK_FORMAT_BC1_RGB_SRGB_BLOCK,135[PIPE_FORMAT_DXT1_SRGBA] = VK_FORMAT_BC1_RGBA_SRGB_BLOCK,136[PIPE_FORMAT_DXT3_SRGBA] = VK_FORMAT_BC2_SRGB_BLOCK,137[PIPE_FORMAT_DXT5_SRGBA] = VK_FORMAT_BC3_SRGB_BLOCK,138139[PIPE_FORMAT_RGTC1_UNORM] = VK_FORMAT_BC4_UNORM_BLOCK,140[PIPE_FORMAT_RGTC1_SNORM] = VK_FORMAT_BC4_SNORM_BLOCK,141[PIPE_FORMAT_RGTC2_UNORM] = VK_FORMAT_BC5_UNORM_BLOCK,142[PIPE_FORMAT_RGTC2_SNORM] = VK_FORMAT_BC5_SNORM_BLOCK,143[PIPE_FORMAT_BPTC_RGBA_UNORM] = VK_FORMAT_BC7_UNORM_BLOCK,144[PIPE_FORMAT_BPTC_SRGBA] = VK_FORMAT_BC7_SRGB_BLOCK,145[PIPE_FORMAT_BPTC_RGB_FLOAT] = VK_FORMAT_BC6H_SFLOAT_BLOCK,146[PIPE_FORMAT_BPTC_RGB_UFLOAT] = VK_FORMAT_BC6H_UFLOAT_BLOCK,147};148149VkFormat150zink_pipe_format_to_vk_format(enum pipe_format format)151{152return formats[format];153}154155156