blob: f6d0b264c7a1dabb05be57a1beb083674d1826c5 [file] [log] [blame]
{
"description": [
"Copyright 2018 The ANGLE Project Authors. All rights reserved.",
"Use of this source code is governed by a BSD-style license that can be",
"found in the LICENSE file.",
"",
"vk_format_map.json: Format mapping between OpenGL and Vulkan.",
"",
"The format of the map is a dictionary where the key of each entry is the",
"ANGLE format ID, and the value is the Vulkan format enum. Note some formats",
"are missing from the map, these formats are either unsupported or emulated",
"on Vulkan. The map matches GL formats to identical Vulkan formats; missing",
"formats use the overrides table for emulation.",
"",
"We implement formats that aren't natively supported in Vulkan using",
"fallback and override formats. These are specified as dictionaries (also keyed on",
"the angle format ID), with two optional entries for Buffer and Image",
"formats. Each entry specifies a fallback or override format.",
"",
"Override formats are used for emulated support for formats we assume are never",
"supported by any Vulkan device, although they might exist. Fallback formats",
"differ in that they are tested at runtime for support, and we only fall back",
"if the main format is not available on this device.",
"",
"Also see gen_vk_format_table.py for the code generation step."
],
"map": {
"NONE": "VK_FORMAT_UNDEFINED",
"A1R5G5B5_UNORM": "VK_FORMAT_A1R5G5B5_UNORM_PACK16",
"B4G4R4A4_UNORM": "VK_FORMAT_B4G4R4A4_UNORM_PACK16",
"R4G4B4A4_UNORM": "VK_FORMAT_R4G4B4A4_UNORM_PACK16",
"R5G6B5_UNORM": "VK_FORMAT_R5G6B5_UNORM_PACK16",
"R5G5B5A1_UNORM": "VK_FORMAT_R5G5B5A1_UNORM_PACK16",
"B5G6R5_UNORM": "VK_FORMAT_B5G6R5_UNORM_PACK16",
"B5G5R5A1_UNORM": "VK_FORMAT_B5G5R5A1_UNORM_PACK16",
"R8_UNORM": "VK_FORMAT_R8_UNORM",
"R8_SNORM": "VK_FORMAT_R8_SNORM",
"R8_UINT": "VK_FORMAT_R8_UINT",
"R8_SINT": "VK_FORMAT_R8_SINT",
"R8_USCALED": "VK_FORMAT_R8_USCALED",
"R8_SSCALED": "VK_FORMAT_R8_SSCALED",
"R8G8_UNORM": "VK_FORMAT_R8G8_UNORM",
"R8G8_SNORM": "VK_FORMAT_R8G8_SNORM",
"R8G8_UINT": "VK_FORMAT_R8G8_UINT",
"R8G8_SINT": "VK_FORMAT_R8G8_SINT",
"R8G8_USCALED": "VK_FORMAT_R8G8_USCALED",
"R8G8_SSCALED": "VK_FORMAT_R8G8_SSCALED",
"R8G8B8_UNORM": "VK_FORMAT_R8G8B8_UNORM",
"R8G8B8_SNORM": "VK_FORMAT_R8G8B8_SNORM",
"R8G8B8_UINT": "VK_FORMAT_R8G8B8_UINT",
"R8G8B8_SINT": "VK_FORMAT_R8G8B8_SINT",
"R8G8B8_USCALED": "VK_FORMAT_R8G8B8_USCALED",
"R8G8B8_SSCALED": "VK_FORMAT_R8G8B8_SSCALED",
"R8G8B8_UNORM_SRGB": "VK_FORMAT_R8G8B8_SRGB",
"B8G8R8_UNORM": "VK_FORMAT_B8G8R8_UNORM",
"B8G8R8_SNORM": "VK_FORMAT_B8G8R8_SNORM",
"B8G8R8_UINT": "VK_FORMAT_B8G8R8_UINT",
"B8G8R8_SINT": "VK_FORMAT_B8G8R8_SINT",
"R8G8B8A8_UNORM": "VK_FORMAT_R8G8B8A8_UNORM",
"R8G8B8A8_SNORM": "VK_FORMAT_R8G8B8A8_SNORM",
"R8G8B8A8_UINT": "VK_FORMAT_R8G8B8A8_UINT",
"R8G8B8A8_SINT": "VK_FORMAT_R8G8B8A8_SINT",
"R8G8B8A8_USCALED": "VK_FORMAT_R8G8B8A8_USCALED",
"R8G8B8A8_SSCALED": "VK_FORMAT_R8G8B8A8_SSCALED",
"R8G8B8A8_UNORM_SRGB": "VK_FORMAT_R8G8B8A8_SRGB",
"B8G8R8A8_UNORM": "VK_FORMAT_B8G8R8A8_UNORM",
"B8G8R8A8_SNORM": "VK_FORMAT_B8G8R8A8_SNORM",
"B8G8R8A8_USCALED": "VK_FORMAT_B8G8R8A8_USCALED",
"B8G8R8A8_SSCALED": "VK_FORMAT_B8G8R8A8_SSCALED",
"B8G8R8A8_UINT": "VK_FORMAT_B8G8R8A8_UINT",
"B8G8R8A8_SINT": "VK_FORMAT_B8G8R8A8_SINT",
"B8G8R8A8_UNORM_SRGB": "VK_FORMAT_B8G8R8A8_SRGB",
"R10G10B10A2_UNORM": "VK_FORMAT_A2B10G10R10_UNORM_PACK32",
"R10G10B10A2_SNORM": "VK_FORMAT_A2B10G10R10_SNORM_PACK32",
"R10G10B10A2_USCALED": "VK_FORMAT_A2B10G10R10_USCALED_PACK32",
"R10G10B10A2_SSCALED": "VK_FORMAT_A2B10G10R10_SSCALED_PACK32",
"R10G10B10A2_UINT": "VK_FORMAT_A2B10G10R10_UINT_PACK32",
"R10G10B10A2_SINT": "VK_FORMAT_A2B10G10R10_SINT_PACK32",
"R16_UNORM": "VK_FORMAT_R16_UNORM",
"R16_SNORM": "VK_FORMAT_R16_SNORM",
"R16_USCALED": "VK_FORMAT_R16_USCALED",
"R16_SSCALED": "VK_FORMAT_R16_SSCALED",
"R16_UINT": "VK_FORMAT_R16_UINT",
"R16_SINT": "VK_FORMAT_R16_SINT",
"R16_FLOAT": "VK_FORMAT_R16_SFLOAT",
"R16G16_UNORM": "VK_FORMAT_R16G16_UNORM",
"R16G16_SNORM": "VK_FORMAT_R16G16_SNORM",
"R16G16_USCALED": "VK_FORMAT_R16G16_USCALED",
"R16G16_SSCALED": "VK_FORMAT_R16G16_SSCALED",
"R16G16_UINT": "VK_FORMAT_R16G16_UINT",
"R16G16_SINT": "VK_FORMAT_R16G16_SINT",
"R16G16_FLOAT": "VK_FORMAT_R16G16_SFLOAT",
"R16G16B16_UNORM": "VK_FORMAT_R16G16B16_UNORM",
"R16G16B16_SNORM": "VK_FORMAT_R16G16B16_SNORM",
"R16G16B16_USCALED": "VK_FORMAT_R16G16B16_USCALED",
"R16G16B16_SSCALED": "VK_FORMAT_R16G16B16_SSCALED",
"R16G16B16_UINT": "VK_FORMAT_R16G16B16_UINT",
"R16G16B16_SINT": "VK_FORMAT_R16G16B16_SINT",
"R16G16B16_FLOAT": "VK_FORMAT_R16G16B16_SFLOAT",
"R16G16B16A16_UNORM": "VK_FORMAT_R16G16B16A16_UNORM",
"R16G16B16A16_SNORM": "VK_FORMAT_R16G16B16A16_SNORM",
"R16G16B16A16_USCALED": "VK_FORMAT_R16G16B16A16_USCALED",
"R16G16B16A16_SSCALED": "VK_FORMAT_R16G16B16A16_SSCALED",
"R16G16B16A16_UINT": "VK_FORMAT_R16G16B16A16_UINT",
"R16G16B16A16_SINT": "VK_FORMAT_R16G16B16A16_SINT",
"R16G16B16A16_FLOAT": "VK_FORMAT_R16G16B16A16_SFLOAT",
"R32_UINT": "VK_FORMAT_R32_UINT",
"R32_SINT": "VK_FORMAT_R32_SINT",
"R32_FLOAT": "VK_FORMAT_R32_SFLOAT",
"R32G32_UINT": "VK_FORMAT_R32G32_UINT",
"R32G32_SINT": "VK_FORMAT_R32G32_SINT",
"R32G32_FLOAT": "VK_FORMAT_R32G32_SFLOAT",
"R32G32B32_UINT": "VK_FORMAT_R32G32B32_UINT",
"R32G32B32_SINT": "VK_FORMAT_R32G32B32_SINT",
"R32G32B32_FLOAT": "VK_FORMAT_R32G32B32_SFLOAT",
"R32G32B32A32_UINT": "VK_FORMAT_R32G32B32A32_UINT",
"R32G32B32A32_SINT": "VK_FORMAT_R32G32B32A32_SINT",
"R32G32B32A32_FLOAT": "VK_FORMAT_R32G32B32A32_SFLOAT",
"R64_UINT": "VK_FORMAT_R64_UINT",
"R64_SINT": "VK_FORMAT_R64_SINT",
"R64_FLOAT": "VK_FORMAT_R64_SFLOAT",
"R64G64_UINT": "VK_FORMAT_R64G64_UINT",
"R64G64_SINT": "VK_FORMAT_R64G64_SINT",
"R64G64_FLOAT": "VK_FORMAT_R64G64_SFLOAT",
"R64G64B64_UINT": "VK_FORMAT_R64G64B64_UINT",
"R64G64B64_SINT": "VK_FORMAT_R64G64B64_SINT",
"R64G64B64_FLOAT": "VK_FORMAT_R64G64B64_SFLOAT",
"R64G64B64A64_UINT": "VK_FORMAT_R64G64B64A64_UINT",
"R64G64B64A64_SINT": "VK_FORMAT_R64G64B64A64_SINT",
"R64G64B64A64_FLOAT": "VK_FORMAT_R64G64B64A64_SFLOAT",
"B10G11R11_UFLOAT_PACK32": "VK_FORMAT_B10G11R11_UFLOAT_PACK32",
"E5B9G9R9_UFLOAT_PACK32": "VK_FORMAT_E5B9G9R9_UFLOAT_PACK32",
"D16_UNORM": "VK_FORMAT_D16_UNORM",
"X8_D24_UNORM_PACK32": "VK_FORMAT_X8_D24_UNORM_PACK32",
"D32_FLOAT": "VK_FORMAT_D32_SFLOAT",
"S8_UINT": "VK_FORMAT_S8_UINT",
"D16_UNORM_S8_UINT": "VK_FORMAT_D16_UNORM_S8_UINT",
"D24_UNORM_S8_UINT": "VK_FORMAT_D24_UNORM_S8_UINT",
"D32_FLOAT_S8X24_UINT": "VK_FORMAT_D32_SFLOAT_S8_UINT",
"BC1_RGB_UNORM_BLOCK": "VK_FORMAT_BC1_RGB_UNORM_BLOCK",
"BC1_RGB_UNORM_SRGB_BLOCK": "VK_FORMAT_BC1_RGB_SRGB_BLOCK",
"BC1_RGBA_UNORM_BLOCK": "VK_FORMAT_BC1_RGBA_UNORM_BLOCK",
"BC1_RGBA_UNORM_SRGB_BLOCK": "VK_FORMAT_BC1_RGBA_SRGB_BLOCK",
"BC2_RGBA_UNORM_BLOCK": "VK_FORMAT_BC2_UNORM_BLOCK",
"BC2_RGBA_UNORM_SRGB_BLOCK": "VK_FORMAT_BC2_SRGB_BLOCK",
"BC3_RGBA_UNORM_BLOCK": "VK_FORMAT_BC3_UNORM_BLOCK",
"BC3_RGBA_UNORM_SRGB_BLOCK": "VK_FORMAT_BC3_SRGB_BLOCK",
"BPTC_RGB_UNSIGNED_FLOAT_BLOCK": "VK_FORMAT_BC6H_UFLOAT_BLOCK",
"BPTC_RGB_SIGNED_FLOAT_BLOCK": "VK_FORMAT_BC6H_SFLOAT_BLOCK",
"BPTC_RGBA_UNORM_BLOCK": "VK_FORMAT_BC7_UNORM_BLOCK",
"BPTC_SRGB_ALPHA_UNORM_BLOCK": "VK_FORMAT_BC7_SRGB_BLOCK",
"ETC2_R8G8B8_UNORM_BLOCK": "VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK",
"ETC2_R8G8B8_SRGB_BLOCK": "VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK",
"ETC2_R8G8B8A1_UNORM_BLOCK": "VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK",
"ETC2_R8G8B8A1_SRGB_BLOCK": "VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK",
"ETC2_R8G8B8A8_UNORM_BLOCK": "VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK",
"ETC2_R8G8B8A8_SRGB_BLOCK": "VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK",
"EAC_R11_UNORM_BLOCK": "VK_FORMAT_EAC_R11_UNORM_BLOCK",
"EAC_R11_SNORM_BLOCK": "VK_FORMAT_EAC_R11_SNORM_BLOCK",
"EAC_R11G11_UNORM_BLOCK": "VK_FORMAT_EAC_R11G11_UNORM_BLOCK",
"EAC_R11G11_SNORM_BLOCK": "VK_FORMAT_EAC_R11G11_SNORM_BLOCK",
"ASTC_4x4_UNORM_BLOCK": "VK_FORMAT_ASTC_4x4_UNORM_BLOCK",
"ASTC_4x4_SRGB_BLOCK": "VK_FORMAT_ASTC_4x4_SRGB_BLOCK",
"ASTC_5x4_UNORM_BLOCK": "VK_FORMAT_ASTC_5x4_UNORM_BLOCK",
"ASTC_5x4_SRGB_BLOCK": "VK_FORMAT_ASTC_5x4_SRGB_BLOCK",
"ASTC_5x5_UNORM_BLOCK": "VK_FORMAT_ASTC_5x5_UNORM_BLOCK",
"ASTC_5x5_SRGB_BLOCK": "VK_FORMAT_ASTC_5x5_SRGB_BLOCK",
"ASTC_6x5_UNORM_BLOCK": "VK_FORMAT_ASTC_6x5_UNORM_BLOCK",
"ASTC_6x5_SRGB_BLOCK": "VK_FORMAT_ASTC_6x5_SRGB_BLOCK",
"ASTC_6x6_UNORM_BLOCK": "VK_FORMAT_ASTC_6x6_UNORM_BLOCK",
"ASTC_6x6_SRGB_BLOCK": "VK_FORMAT_ASTC_6x6_SRGB_BLOCK",
"ASTC_8x5_UNORM_BLOCK": "VK_FORMAT_ASTC_8x5_UNORM_BLOCK",
"ASTC_8x5_SRGB_BLOCK": "VK_FORMAT_ASTC_8x5_SRGB_BLOCK",
"ASTC_8x6_UNORM_BLOCK": "VK_FORMAT_ASTC_8x6_UNORM_BLOCK",
"ASTC_8x6_SRGB_BLOCK": "VK_FORMAT_ASTC_8x6_SRGB_BLOCK",
"ASTC_8x8_UNORM_BLOCK": "VK_FORMAT_ASTC_8x8_UNORM_BLOCK",
"ASTC_8x8_SRGB_BLOCK": "VK_FORMAT_ASTC_8x8_SRGB_BLOCK",
"ASTC_10x5_UNORM_BLOCK": "VK_FORMAT_ASTC_10x5_UNORM_BLOCK",
"ASTC_10x5_SRGB_BLOCK": "VK_FORMAT_ASTC_10x5_SRGB_BLOCK",
"ASTC_10x6_UNORM_BLOCK": "VK_FORMAT_ASTC_10x6_UNORM_BLOCK",
"ASTC_10x6_SRGB_BLOCK": "VK_FORMAT_ASTC_10x6_SRGB_BLOCK",
"ASTC_10x8_UNORM_BLOCK": "VK_FORMAT_ASTC_10x8_UNORM_BLOCK",
"ASTC_10x8_SRGB_BLOCK": "VK_FORMAT_ASTC_10x8_SRGB_BLOCK",
"ASTC_10x10_UNORM_BLOCK": "VK_FORMAT_ASTC_10x10_UNORM_BLOCK",
"ASTC_10x10_SRGB_BLOCK": "VK_FORMAT_ASTC_10x10_SRGB_BLOCK",
"ASTC_12x10_UNORM_BLOCK": "VK_FORMAT_ASTC_12x10_UNORM_BLOCK",
"ASTC_12x10_SRGB_BLOCK": "VK_FORMAT_ASTC_12x10_SRGB_BLOCK",
"ASTC_12x12_UNORM_BLOCK": "VK_FORMAT_ASTC_12x12_UNORM_BLOCK",
"ASTC_12x12_SRGB_BLOCK": "VK_FORMAT_ASTC_12x12_SRGB_BLOCK"
},
"overrides": {
"A16_FLOAT": {
"image": "R16_FLOAT"
},
"A32_FLOAT": {
"image": "R32_FLOAT"
},
"A8_UNORM": {
"image": "R8_UNORM"
},
"L8_UNORM": {
"image": "R8_UNORM"
},
"L8A8_UNORM": {
"image": "R8G8_UNORM"
},
"R4G4B4A4_UNORM": {
"image": "R8G8B8A8_UNORM"
},
"R5G5B5A1_UNORM": {
"image": "A1R5G5B5_UNORM"
},
"R8G8B8_UNORM": {
"image": "R8G8B8A8_UNORM"
},
"R8G8B8_UNORM_SRGB": {
"image": "R8G8B8A8_UNORM_SRGB"
},
"B8G8R8X8_UNORM": {
"buffer": "NONE",
"image": "B8G8R8A8_UNORM"
},
"D24_UNORM_X8_UINT": {
"buffer": "NONE",
"image": "D24_UNORM_S8_UINT"
},
"ETC1_R8G8B8_UNORM_BLOCK": {
"buffer": "NONE",
"image": "ETC2_R8G8B8_UNORM_BLOCK"
},
"R32_FIXED": {
"buffer": "R32_FLOAT"
},
"R32G32_FIXED": {
"buffer": "R32G32_FLOAT"
},
"R32G32B32_FIXED": {
"buffer": "R32G32B32_FLOAT"
},
"R32G32B32A32_FIXED": {
"buffer": "R32G32B32A32_FLOAT"
}
},
"fallbacks": {
"D32_FLOAT_S8X24_UINT": {
"image": ["D24_UNORM_S8_UINT", "D32_FLOAT_S8X24_UINT"]
},
"D24_UNORM_S8_UINT": {
"image": ["D32_FLOAT_S8X24_UINT", "D24_UNORM_S8_UINT"]
},
"D24_UNORM_X8_UINT": {
"image": ["D32_FLOAT_S8X24_UINT", "D24_UNORM_S8_UINT"]
},
"S8_UINT": {
"image": ["D24_UNORM_S8_UINT", "D32_FLOAT_S8X24_UINT", "S8_UINT"]
},
"R8_UNORM": {
"buffer": "R32_FLOAT"
},
"R8_SNORM": {
"buffer": "R32_FLOAT"
},
"R8_USCALED": {
"buffer": "R32_FLOAT"
},
"R8_SSCALED": {
"buffer": "R32_FLOAT"
},
"R8G8_UNORM": {
"buffer": "R32G32_FLOAT"
},
"R8G8_SNORM": {
"buffer": "R32G32_FLOAT"
},
"R8G8_USCALED": {
"buffer": "R32G32_FLOAT"
},
"R8G8_SSCALED": {
"buffer": "R32G32_FLOAT"
},
"R8G8B8_UNORM": {
"buffer": "R32G32B32_FLOAT"
},
"R8G8B8_SNORM": {
"buffer": "R32G32B32_FLOAT"
},
"R8G8B8_USCALED": {
"buffer": "R32G32B32_FLOAT"
},
"R8G8B8_SSCALED": {
"buffer": "R32G32B32_FLOAT"
},
"R8G8B8A8_UNORM": {
"buffer": "R32G32B32A32_FLOAT"
},
"R8G8B8A8_SNORM": {
"buffer": "R32G32B32A32_FLOAT"
},
"R8G8B8A8_USCALED": {
"buffer": "R32G32B32A32_FLOAT"
},
"R8G8B8A8_SSCALED": {
"buffer": "R32G32B32A32_FLOAT"
},
"R16_UNORM": {
"buffer": "R32_FLOAT"
},
"R16_SNORM": {
"buffer": "R32_FLOAT"
},
"R16_USCALED": {
"buffer": "R32_FLOAT"
},
"R16_SSCALED": {
"buffer": "R32_FLOAT"
},
"R16G16_UNORM": {
"buffer": "R32G32_FLOAT"
},
"R16G16_SNORM": {
"buffer": "R32G32_FLOAT"
},
"R16G16_USCALED": {
"buffer": "R32G32_FLOAT"
},
"R16G16_SSCALED": {
"buffer": "R32G32_FLOAT"
},
"R16G16B16_UNORM": {
"buffer": "R32G32B32_FLOAT"
},
"R16G16B16_SNORM": {
"buffer": "R32G32B32_FLOAT"
},
"R16G16B16_USCALED": {
"buffer": "R32G32B32_FLOAT"
},
"R16G16B16_SSCALED": {
"buffer": "R32G32B32_FLOAT"
},
"R16G16B16A16_UNORM": {
"buffer": "R32G32B32A32_FLOAT"
},
"R16G16B16A16_SNORM": {
"buffer": "R32G32B32A32_FLOAT"
},
"R16G16B16A16_USCALED": {
"buffer": "R32G32B32A32_FLOAT"
},
"R16G16B16A16_SSCALED": {
"buffer": "R32G32B32A32_FLOAT"
}
}
}