{
    "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"
        }
    }
}
