~emersion/go-kdf

86b01e6265aaea1d21b99cdfc2341309d1bca808 — Simon Ser 1 year, 1 month ago 3390d05
vulkan: add optional formats
2 files changed, 622 insertions(+), 381 deletions(-)

M vulkan/formats.go
M vulkan/gen_formats.go
M vulkan/formats.go => vulkan/formats.go +586 -370
@@ 3,379 3,487 @@
package vulkan

const (
	FormatUndefined                  Format = 0
	FormatR4G4_UNORM_PACK8           Format = 1
	FormatR4G4B4A4_UNORM_PACK16      Format = 2
	FormatB4G4R4A4_UNORM_PACK16      Format = 3
	FormatR5G6B5_UNORM_PACK16        Format = 4
	FormatB5G6R5_UNORM_PACK16        Format = 5
	FormatR5G5B5A1_UNORM_PACK16      Format = 6
	FormatB5G5R5A1_UNORM_PACK16      Format = 7
	FormatA1R5G5B5_UNORM_PACK16      Format = 8
	FormatR8_UNORM                   Format = 9
	FormatR8_SNORM                   Format = 10
	FormatR8_USCALED                 Format = 11
	FormatR8_SSCALED                 Format = 12
	FormatR8_UINT                    Format = 13
	FormatR8_SINT                    Format = 14
	FormatR8_SRGB                    Format = 15
	FormatR8G8_UNORM                 Format = 16
	FormatR8G8_SNORM                 Format = 17
	FormatR8G8_USCALED               Format = 18
	FormatR8G8_SSCALED               Format = 19
	FormatR8G8_UINT                  Format = 20
	FormatR8G8_SINT                  Format = 21
	FormatR8G8_SRGB                  Format = 22
	FormatR8G8B8_UNORM               Format = 23
	FormatR8G8B8_SNORM               Format = 24
	FormatR8G8B8_USCALED             Format = 25
	FormatR8G8B8_SSCALED             Format = 26
	FormatR8G8B8_UINT                Format = 27
	FormatR8G8B8_SINT                Format = 28
	FormatR8G8B8_SRGB                Format = 29
	FormatB8G8R8_UNORM               Format = 30
	FormatB8G8R8_SNORM               Format = 31
	FormatB8G8R8_USCALED             Format = 32
	FormatB8G8R8_SSCALED             Format = 33
	FormatB8G8R8_UINT                Format = 34
	FormatB8G8R8_SINT                Format = 35
	FormatB8G8R8_SRGB                Format = 36
	FormatR8G8B8A8_UNORM             Format = 37
	FormatR8G8B8A8_SNORM             Format = 38
	FormatR8G8B8A8_USCALED           Format = 39
	FormatR8G8B8A8_SSCALED           Format = 40
	FormatR8G8B8A8_UINT              Format = 41
	FormatR8G8B8A8_SINT              Format = 42
	FormatR8G8B8A8_SRGB              Format = 43
	FormatB8G8R8A8_UNORM             Format = 44
	FormatB8G8R8A8_SNORM             Format = 45
	FormatB8G8R8A8_USCALED           Format = 46
	FormatB8G8R8A8_SSCALED           Format = 47
	FormatB8G8R8A8_UINT              Format = 48
	FormatB8G8R8A8_SINT              Format = 49
	FormatB8G8R8A8_SRGB              Format = 50
	FormatA8B8G8R8_UNORM_PACK32      Format = 51
	FormatA8B8G8R8_SNORM_PACK32      Format = 52
	FormatA8B8G8R8_USCALED_PACK32    Format = 53
	FormatA8B8G8R8_SSCALED_PACK32    Format = 54
	FormatA8B8G8R8_UINT_PACK32       Format = 55
	FormatA8B8G8R8_SINT_PACK32       Format = 56
	FormatA8B8G8R8_SRGB_PACK32       Format = 57
	FormatA2R10G10B10_UNORM_PACK32   Format = 58
	FormatA2R10G10B10_SNORM_PACK32   Format = 59
	FormatA2R10G10B10_USCALED_PACK32 Format = 60
	FormatA2R10G10B10_SSCALED_PACK32 Format = 61
	FormatA2R10G10B10_UINT_PACK32    Format = 62
	FormatA2R10G10B10_SINT_PACK32    Format = 63
	FormatA2B10G10R10_UNORM_PACK32   Format = 64
	FormatA2B10G10R10_SNORM_PACK32   Format = 65
	FormatA2B10G10R10_USCALED_PACK32 Format = 66
	FormatA2B10G10R10_SSCALED_PACK32 Format = 67
	FormatA2B10G10R10_UINT_PACK32    Format = 68
	FormatA2B10G10R10_SINT_PACK32    Format = 69
	FormatR16_UNORM                  Format = 70
	FormatR16_SNORM                  Format = 71
	FormatR16_USCALED                Format = 72
	FormatR16_SSCALED                Format = 73
	FormatR16_UINT                   Format = 74
	FormatR16_SINT                   Format = 75
	FormatR16_SFLOAT                 Format = 76
	FormatR16G16_UNORM               Format = 77
	FormatR16G16_SNORM               Format = 78
	FormatR16G16_USCALED             Format = 79
	FormatR16G16_SSCALED             Format = 80
	FormatR16G16_UINT                Format = 81
	FormatR16G16_SINT                Format = 82
	FormatR16G16_SFLOAT              Format = 83
	FormatR16G16B16_UNORM            Format = 84
	FormatR16G16B16_SNORM            Format = 85
	FormatR16G16B16_USCALED          Format = 86
	FormatR16G16B16_SSCALED          Format = 87
	FormatR16G16B16_UINT             Format = 88
	FormatR16G16B16_SINT             Format = 89
	FormatR16G16B16_SFLOAT           Format = 90
	FormatR16G16B16A16_UNORM         Format = 91
	FormatR16G16B16A16_SNORM         Format = 92
	FormatR16G16B16A16_USCALED       Format = 93
	FormatR16G16B16A16_SSCALED       Format = 94
	FormatR16G16B16A16_UINT          Format = 95
	FormatR16G16B16A16_SINT          Format = 96
	FormatR16G16B16A16_SFLOAT        Format = 97
	FormatR32_UINT                   Format = 98
	FormatR32_SINT                   Format = 99
	FormatR32_SFLOAT                 Format = 100
	FormatR32G32_UINT                Format = 101
	FormatR32G32_SINT                Format = 102
	FormatR32G32_SFLOAT              Format = 103
	FormatR32G32B32_UINT             Format = 104
	FormatR32G32B32_SINT             Format = 105
	FormatR32G32B32_SFLOAT           Format = 106
	FormatR32G32B32A32_UINT          Format = 107
	FormatR32G32B32A32_SINT          Format = 108
	FormatR32G32B32A32_SFLOAT        Format = 109
	FormatR64_UINT                   Format = 110
	FormatR64_SINT                   Format = 111
	FormatR64_SFLOAT                 Format = 112
	FormatR64G64_UINT                Format = 113
	FormatR64G64_SINT                Format = 114
	FormatR64G64_SFLOAT              Format = 115
	FormatR64G64B64_UINT             Format = 116
	FormatR64G64B64_SINT             Format = 117
	FormatR64G64B64_SFLOAT           Format = 118
	FormatR64G64B64A64_UINT          Format = 119
	FormatR64G64B64A64_SINT          Format = 120
	FormatR64G64B64A64_SFLOAT        Format = 121
	FormatB10G11R11_UFLOAT_PACK32    Format = 122
	FormatE5B9G9R9_UFLOAT_PACK32     Format = 123
	FormatD16_UNORM                  Format = 124
	FormatX8_D24_UNORM_PACK32        Format = 125
	FormatD32_SFLOAT                 Format = 126
	FormatS8_UINT                    Format = 127
	FormatD16_UNORM_S8_UINT          Format = 128
	FormatD24_UNORM_S8_UINT          Format = 129
	FormatD32_SFLOAT_S8_UINT         Format = 130
	FormatBC1_RGB_UNORM_BLOCK        Format = 131
	FormatBC1_RGB_SRGB_BLOCK         Format = 132
	FormatBC1_RGBA_UNORM_BLOCK       Format = 133
	FormatBC1_RGBA_SRGB_BLOCK        Format = 134
	FormatBC2_UNORM_BLOCK            Format = 135
	FormatBC2_SRGB_BLOCK             Format = 136
	FormatBC3_UNORM_BLOCK            Format = 137
	FormatBC3_SRGB_BLOCK             Format = 138
	FormatBC4_UNORM_BLOCK            Format = 139
	FormatBC4_SNORM_BLOCK            Format = 140
	FormatBC5_UNORM_BLOCK            Format = 141
	FormatBC5_SNORM_BLOCK            Format = 142
	FormatBC6H_UFLOAT_BLOCK          Format = 143
	FormatBC6H_SFLOAT_BLOCK          Format = 144
	FormatBC7_UNORM_BLOCK            Format = 145
	FormatBC7_SRGB_BLOCK             Format = 146
	FormatETC2_R8G8B8_UNORM_BLOCK    Format = 147
	FormatETC2_R8G8B8_SRGB_BLOCK     Format = 148
	FormatETC2_R8G8B8A1_UNORM_BLOCK  Format = 149
	FormatETC2_R8G8B8A1_SRGB_BLOCK   Format = 150
	FormatETC2_R8G8B8A8_UNORM_BLOCK  Format = 151
	FormatETC2_R8G8B8A8_SRGB_BLOCK   Format = 152
	FormatEAC_R11_UNORM_BLOCK        Format = 153
	FormatEAC_R11_SNORM_BLOCK        Format = 154
	FormatEAC_R11G11_UNORM_BLOCK     Format = 155
	FormatEAC_R11G11_SNORM_BLOCK     Format = 156
	FormatASTC_4x4_UNORM_BLOCK       Format = 157
	FormatASTC_4x4_SRGB_BLOCK        Format = 158
	FormatASTC_5x4_UNORM_BLOCK       Format = 159
	FormatASTC_5x4_SRGB_BLOCK        Format = 160
	FormatASTC_5x5_UNORM_BLOCK       Format = 161
	FormatASTC_5x5_SRGB_BLOCK        Format = 162
	FormatASTC_6x5_UNORM_BLOCK       Format = 163
	FormatASTC_6x5_SRGB_BLOCK        Format = 164
	FormatASTC_6x6_UNORM_BLOCK       Format = 165
	FormatASTC_6x6_SRGB_BLOCK        Format = 166
	FormatASTC_8x5_UNORM_BLOCK       Format = 167
	FormatASTC_8x5_SRGB_BLOCK        Format = 168
	FormatASTC_8x6_UNORM_BLOCK       Format = 169
	FormatASTC_8x6_SRGB_BLOCK        Format = 170
	FormatASTC_8x8_UNORM_BLOCK       Format = 171
	FormatASTC_8x8_SRGB_BLOCK        Format = 172
	FormatASTC_10x5_UNORM_BLOCK      Format = 173
	FormatASTC_10x5_SRGB_BLOCK       Format = 174
	FormatASTC_10x6_UNORM_BLOCK      Format = 175
	FormatASTC_10x6_SRGB_BLOCK       Format = 176
	FormatASTC_10x8_UNORM_BLOCK      Format = 177
	FormatASTC_10x8_SRGB_BLOCK       Format = 178
	FormatASTC_10x10_UNORM_BLOCK     Format = 179
	FormatASTC_10x10_SRGB_BLOCK      Format = 180
	FormatASTC_12x10_UNORM_BLOCK     Format = 181
	FormatASTC_12x10_SRGB_BLOCK      Format = 182
	FormatASTC_12x12_UNORM_BLOCK     Format = 183
	FormatASTC_12x12_SRGB_BLOCK      Format = 184
	FormatUndefined                                  Format = 0
	FormatR4G4_UNORM_PACK8                           Format = 1
	FormatR4G4B4A4_UNORM_PACK16                      Format = 2
	FormatB4G4R4A4_UNORM_PACK16                      Format = 3
	FormatR5G6B5_UNORM_PACK16                        Format = 4
	FormatB5G6R5_UNORM_PACK16                        Format = 5
	FormatR5G5B5A1_UNORM_PACK16                      Format = 6
	FormatB5G5R5A1_UNORM_PACK16                      Format = 7
	FormatA1R5G5B5_UNORM_PACK16                      Format = 8
	FormatR8_UNORM                                   Format = 9
	FormatR8_SNORM                                   Format = 10
	FormatR8_USCALED                                 Format = 11
	FormatR8_SSCALED                                 Format = 12
	FormatR8_UINT                                    Format = 13
	FormatR8_SINT                                    Format = 14
	FormatR8_SRGB                                    Format = 15
	FormatR8G8_UNORM                                 Format = 16
	FormatR8G8_SNORM                                 Format = 17
	FormatR8G8_USCALED                               Format = 18
	FormatR8G8_SSCALED                               Format = 19
	FormatR8G8_UINT                                  Format = 20
	FormatR8G8_SINT                                  Format = 21
	FormatR8G8_SRGB                                  Format = 22
	FormatR8G8B8_UNORM                               Format = 23
	FormatR8G8B8_SNORM                               Format = 24
	FormatR8G8B8_USCALED                             Format = 25
	FormatR8G8B8_SSCALED                             Format = 26
	FormatR8G8B8_UINT                                Format = 27
	FormatR8G8B8_SINT                                Format = 28
	FormatR8G8B8_SRGB                                Format = 29
	FormatB8G8R8_UNORM                               Format = 30
	FormatB8G8R8_SNORM                               Format = 31
	FormatB8G8R8_USCALED                             Format = 32
	FormatB8G8R8_SSCALED                             Format = 33
	FormatB8G8R8_UINT                                Format = 34
	FormatB8G8R8_SINT                                Format = 35
	FormatB8G8R8_SRGB                                Format = 36
	FormatR8G8B8A8_UNORM                             Format = 37
	FormatR8G8B8A8_SNORM                             Format = 38
	FormatR8G8B8A8_USCALED                           Format = 39
	FormatR8G8B8A8_SSCALED                           Format = 40
	FormatR8G8B8A8_UINT                              Format = 41
	FormatR8G8B8A8_SINT                              Format = 42
	FormatR8G8B8A8_SRGB                              Format = 43
	FormatB8G8R8A8_UNORM                             Format = 44
	FormatB8G8R8A8_SNORM                             Format = 45
	FormatB8G8R8A8_USCALED                           Format = 46
	FormatB8G8R8A8_SSCALED                           Format = 47
	FormatB8G8R8A8_UINT                              Format = 48
	FormatB8G8R8A8_SINT                              Format = 49
	FormatB8G8R8A8_SRGB                              Format = 50
	FormatA8B8G8R8_UNORM_PACK32                      Format = 51
	FormatA8B8G8R8_SNORM_PACK32                      Format = 52
	FormatA8B8G8R8_USCALED_PACK32                    Format = 53
	FormatA8B8G8R8_SSCALED_PACK32                    Format = 54
	FormatA8B8G8R8_UINT_PACK32                       Format = 55
	FormatA8B8G8R8_SINT_PACK32                       Format = 56
	FormatA8B8G8R8_SRGB_PACK32                       Format = 57
	FormatA2R10G10B10_UNORM_PACK32                   Format = 58
	FormatA2R10G10B10_SNORM_PACK32                   Format = 59
	FormatA2R10G10B10_USCALED_PACK32                 Format = 60
	FormatA2R10G10B10_SSCALED_PACK32                 Format = 61
	FormatA2R10G10B10_UINT_PACK32                    Format = 62
	FormatA2R10G10B10_SINT_PACK32                    Format = 63
	FormatA2B10G10R10_UNORM_PACK32                   Format = 64
	FormatA2B10G10R10_SNORM_PACK32                   Format = 65
	FormatA2B10G10R10_USCALED_PACK32                 Format = 66
	FormatA2B10G10R10_SSCALED_PACK32                 Format = 67
	FormatA2B10G10R10_UINT_PACK32                    Format = 68
	FormatA2B10G10R10_SINT_PACK32                    Format = 69
	FormatR16_UNORM                                  Format = 70
	FormatR16_SNORM                                  Format = 71
	FormatR16_USCALED                                Format = 72
	FormatR16_SSCALED                                Format = 73
	FormatR16_UINT                                   Format = 74
	FormatR16_SINT                                   Format = 75
	FormatR16_SFLOAT                                 Format = 76
	FormatR16G16_UNORM                               Format = 77
	FormatR16G16_SNORM                               Format = 78
	FormatR16G16_USCALED                             Format = 79
	FormatR16G16_SSCALED                             Format = 80
	FormatR16G16_UINT                                Format = 81
	FormatR16G16_SINT                                Format = 82
	FormatR16G16_SFLOAT                              Format = 83
	FormatR16G16B16_UNORM                            Format = 84
	FormatR16G16B16_SNORM                            Format = 85
	FormatR16G16B16_USCALED                          Format = 86
	FormatR16G16B16_SSCALED                          Format = 87
	FormatR16G16B16_UINT                             Format = 88
	FormatR16G16B16_SINT                             Format = 89
	FormatR16G16B16_SFLOAT                           Format = 90
	FormatR16G16B16A16_UNORM                         Format = 91
	FormatR16G16B16A16_SNORM                         Format = 92
	FormatR16G16B16A16_USCALED                       Format = 93
	FormatR16G16B16A16_SSCALED                       Format = 94
	FormatR16G16B16A16_UINT                          Format = 95
	FormatR16G16B16A16_SINT                          Format = 96
	FormatR16G16B16A16_SFLOAT                        Format = 97
	FormatR32_UINT                                   Format = 98
	FormatR32_SINT                                   Format = 99
	FormatR32_SFLOAT                                 Format = 100
	FormatR32G32_UINT                                Format = 101
	FormatR32G32_SINT                                Format = 102
	FormatR32G32_SFLOAT                              Format = 103
	FormatR32G32B32_UINT                             Format = 104
	FormatR32G32B32_SINT                             Format = 105
	FormatR32G32B32_SFLOAT                           Format = 106
	FormatR32G32B32A32_UINT                          Format = 107
	FormatR32G32B32A32_SINT                          Format = 108
	FormatR32G32B32A32_SFLOAT                        Format = 109
	FormatR64_UINT                                   Format = 110
	FormatR64_SINT                                   Format = 111
	FormatR64_SFLOAT                                 Format = 112
	FormatR64G64_UINT                                Format = 113
	FormatR64G64_SINT                                Format = 114
	FormatR64G64_SFLOAT                              Format = 115
	FormatR64G64B64_UINT                             Format = 116
	FormatR64G64B64_SINT                             Format = 117
	FormatR64G64B64_SFLOAT                           Format = 118
	FormatR64G64B64A64_UINT                          Format = 119
	FormatR64G64B64A64_SINT                          Format = 120
	FormatR64G64B64A64_SFLOAT                        Format = 121
	FormatB10G11R11_UFLOAT_PACK32                    Format = 122
	FormatE5B9G9R9_UFLOAT_PACK32                     Format = 123
	FormatD16_UNORM                                  Format = 124
	FormatX8_D24_UNORM_PACK32                        Format = 125
	FormatD32_SFLOAT                                 Format = 126
	FormatS8_UINT                                    Format = 127
	FormatD16_UNORM_S8_UINT                          Format = 128
	FormatD24_UNORM_S8_UINT                          Format = 129
	FormatD32_SFLOAT_S8_UINT                         Format = 130
	FormatBC1_RGB_UNORM_BLOCK                        Format = 131
	FormatBC1_RGB_SRGB_BLOCK                         Format = 132
	FormatBC1_RGBA_UNORM_BLOCK                       Format = 133
	FormatBC1_RGBA_SRGB_BLOCK                        Format = 134
	FormatBC2_UNORM_BLOCK                            Format = 135
	FormatBC2_SRGB_BLOCK                             Format = 136
	FormatBC3_UNORM_BLOCK                            Format = 137
	FormatBC3_SRGB_BLOCK                             Format = 138
	FormatBC4_UNORM_BLOCK                            Format = 139
	FormatBC4_SNORM_BLOCK                            Format = 140
	FormatBC5_UNORM_BLOCK                            Format = 141
	FormatBC5_SNORM_BLOCK                            Format = 142
	FormatBC6H_UFLOAT_BLOCK                          Format = 143
	FormatBC6H_SFLOAT_BLOCK                          Format = 144
	FormatBC7_UNORM_BLOCK                            Format = 145
	FormatBC7_SRGB_BLOCK                             Format = 146
	FormatETC2_R8G8B8_UNORM_BLOCK                    Format = 147
	FormatETC2_R8G8B8_SRGB_BLOCK                     Format = 148
	FormatETC2_R8G8B8A1_UNORM_BLOCK                  Format = 149
	FormatETC2_R8G8B8A1_SRGB_BLOCK                   Format = 150
	FormatETC2_R8G8B8A8_UNORM_BLOCK                  Format = 151
	FormatETC2_R8G8B8A8_SRGB_BLOCK                   Format = 152
	FormatEAC_R11_UNORM_BLOCK                        Format = 153
	FormatEAC_R11_SNORM_BLOCK                        Format = 154
	FormatEAC_R11G11_UNORM_BLOCK                     Format = 155
	FormatEAC_R11G11_SNORM_BLOCK                     Format = 156
	FormatASTC_4x4_UNORM_BLOCK                       Format = 157
	FormatASTC_4x4_SRGB_BLOCK                        Format = 158
	FormatASTC_5x4_UNORM_BLOCK                       Format = 159
	FormatASTC_5x4_SRGB_BLOCK                        Format = 160
	FormatASTC_5x5_UNORM_BLOCK                       Format = 161
	FormatASTC_5x5_SRGB_BLOCK                        Format = 162
	FormatASTC_6x5_UNORM_BLOCK                       Format = 163
	FormatASTC_6x5_SRGB_BLOCK                        Format = 164
	FormatASTC_6x6_UNORM_BLOCK                       Format = 165
	FormatASTC_6x6_SRGB_BLOCK                        Format = 166
	FormatASTC_8x5_UNORM_BLOCK                       Format = 167
	FormatASTC_8x5_SRGB_BLOCK                        Format = 168
	FormatASTC_8x6_UNORM_BLOCK                       Format = 169
	FormatASTC_8x6_SRGB_BLOCK                        Format = 170
	FormatASTC_8x8_UNORM_BLOCK                       Format = 171
	FormatASTC_8x8_SRGB_BLOCK                        Format = 172
	FormatASTC_10x5_UNORM_BLOCK                      Format = 173
	FormatASTC_10x5_SRGB_BLOCK                       Format = 174
	FormatASTC_10x6_UNORM_BLOCK                      Format = 175
	FormatASTC_10x6_SRGB_BLOCK                       Format = 176
	FormatASTC_10x8_UNORM_BLOCK                      Format = 177
	FormatASTC_10x8_SRGB_BLOCK                       Format = 178
	FormatASTC_10x10_UNORM_BLOCK                     Format = 179
	FormatASTC_10x10_SRGB_BLOCK                      Format = 180
	FormatASTC_12x10_UNORM_BLOCK                     Format = 181
	FormatASTC_12x10_SRGB_BLOCK                      Format = 182
	FormatASTC_12x12_UNORM_BLOCK                     Format = 183
	FormatASTC_12x12_SRGB_BLOCK                      Format = 184
	FormatG8B8G8R8_422_UNORM                         Format = 1000157000
	FormatB8G8R8G8_422_UNORM                         Format = 1000157001
	FormatG8_B8_R8_3PLANE_420_UNORM                  Format = 1000157002
	FormatG8_B8R8_2PLANE_420_UNORM                   Format = 1000157003
	FormatG8_B8_R8_3PLANE_422_UNORM                  Format = 1000157004
	FormatG8_B8R8_2PLANE_422_UNORM                   Format = 1000157005
	FormatG8_B8_R8_3PLANE_444_UNORM                  Format = 1000157006
	FormatR10X6_UNORM_PACK16                         Format = 1000157007
	FormatR10X6G10X6_UNORM_2PACK16                   Format = 1000157008
	FormatR10X6G10X6B10X6A10X6_UNORM_4PACK16         Format = 1000157009
	FormatG10X6B10X6G10X6R10X6_422_UNORM_4PACK16     Format = 1000157010
	FormatB10X6G10X6R10X6G10X6_422_UNORM_4PACK16     Format = 1000157011
	FormatG10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16 Format = 1000157012
	FormatG10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16  Format = 1000157013
	FormatG10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16 Format = 1000157014
	FormatG10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16  Format = 1000157015
	FormatG10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16 Format = 1000157016
	FormatR12X4_UNORM_PACK16                         Format = 1000157017
	FormatR12X4G12X4_UNORM_2PACK16                   Format = 1000157018
	FormatR12X4G12X4B12X4A12X4_UNORM_4PACK16         Format = 1000157019
	FormatG12X4B12X4G12X4R12X4_422_UNORM_4PACK16     Format = 1000157020
	FormatB12X4G12X4R12X4G12X4_422_UNORM_4PACK16     Format = 1000157021
	FormatG12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16 Format = 1000157022
	FormatG12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16  Format = 1000157023
	FormatG12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16 Format = 1000157024
	FormatG12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16  Format = 1000157025
	FormatG12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16 Format = 1000157026
	FormatG16B16G16R16_422_UNORM                     Format = 1000157027
	FormatB16G16R16G16_422_UNORM                     Format = 1000157028
	FormatG16_B16_R16_3PLANE_420_UNORM               Format = 1000157029
	FormatG16_B16R16_2PLANE_420_UNORM                Format = 1000157030
	FormatG16_B16_R16_3PLANE_422_UNORM               Format = 1000157031
	FormatG16_B16R16_2PLANE_422_UNORM                Format = 1000157032
	FormatG16_B16_R16_3PLANE_444_UNORM               Format = 1000157033
	FormatG8_B8R8_2PLANE_444_UNORM                   Format = 1000331000
	FormatG10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16  Format = 1000331001
	FormatG12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16  Format = 1000331002
	FormatG16_B16R16_2PLANE_444_UNORM                Format = 1000331003
	FormatA4R4G4B4_UNORM_PACK16                      Format = 1000341000
	FormatA4B4G4R4_UNORM_PACK16                      Format = 1000341001
	FormatASTC_4x4_SFLOAT_BLOCK                      Format = 1000067000
	FormatASTC_5x4_SFLOAT_BLOCK                      Format = 1000067001
	FormatASTC_5x5_SFLOAT_BLOCK                      Format = 1000067002
	FormatASTC_6x5_SFLOAT_BLOCK                      Format = 1000067003
	FormatASTC_6x6_SFLOAT_BLOCK                      Format = 1000067004
	FormatASTC_8x5_SFLOAT_BLOCK                      Format = 1000067005
	FormatASTC_8x6_SFLOAT_BLOCK                      Format = 1000067006
	FormatASTC_8x8_SFLOAT_BLOCK                      Format = 1000067007
	FormatASTC_10x5_SFLOAT_BLOCK                     Format = 1000067008
	FormatASTC_10x6_SFLOAT_BLOCK                     Format = 1000067009
	FormatASTC_10x8_SFLOAT_BLOCK                     Format = 1000067010
	FormatASTC_10x10_SFLOAT_BLOCK                    Format = 1000067011
	FormatASTC_12x10_SFLOAT_BLOCK                    Format = 1000067012
	FormatASTC_12x12_SFLOAT_BLOCK                    Format = 1000067013
)

var formatTable = map[string]Format{
	"A1R5G5B5_UNORM_PACK16":      FormatA1R5G5B5_UNORM_PACK16,
	"A2B10G10R10_SINT_PACK32":    FormatA2B10G10R10_SINT_PACK32,
	"A2B10G10R10_SNORM_PACK32":   FormatA2B10G10R10_SNORM_PACK32,
	"A2B10G10R10_SSCALED_PACK32": FormatA2B10G10R10_SSCALED_PACK32,
	"A2B10G10R10_UINT_PACK32":    FormatA2B10G10R10_UINT_PACK32,
	"A2B10G10R10_UNORM_PACK32":   FormatA2B10G10R10_UNORM_PACK32,
	"A2B10G10R10_USCALED_PACK32": FormatA2B10G10R10_USCALED_PACK32,
	"A2R10G10B10_SINT_PACK32":    FormatA2R10G10B10_SINT_PACK32,
	"A2R10G10B10_SNORM_PACK32":   FormatA2R10G10B10_SNORM_PACK32,
	"A2R10G10B10_SSCALED_PACK32": FormatA2R10G10B10_SSCALED_PACK32,
	"A2R10G10B10_UINT_PACK32":    FormatA2R10G10B10_UINT_PACK32,
	"A2R10G10B10_UNORM_PACK32":   FormatA2R10G10B10_UNORM_PACK32,
	"A2R10G10B10_USCALED_PACK32": FormatA2R10G10B10_USCALED_PACK32,
	"A8B8G8R8_SINT_PACK32":       FormatA8B8G8R8_SINT_PACK32,
	"A8B8G8R8_SNORM_PACK32":      FormatA8B8G8R8_SNORM_PACK32,
	"A8B8G8R8_SRGB_PACK32":       FormatA8B8G8R8_SRGB_PACK32,
	"A8B8G8R8_SSCALED_PACK32":    FormatA8B8G8R8_SSCALED_PACK32,
	"A8B8G8R8_UINT_PACK32":       FormatA8B8G8R8_UINT_PACK32,
	"A8B8G8R8_UNORM_PACK32":      FormatA8B8G8R8_UNORM_PACK32,
	"A8B8G8R8_USCALED_PACK32":    FormatA8B8G8R8_USCALED_PACK32,
	"ASTC_10x10_SRGB_BLOCK":      FormatASTC_10x10_SRGB_BLOCK,
	"ASTC_10x10_UNORM_BLOCK":     FormatASTC_10x10_UNORM_BLOCK,
	"ASTC_10x5_SRGB_BLOCK":       FormatASTC_10x5_SRGB_BLOCK,
	"ASTC_10x5_UNORM_BLOCK":      FormatASTC_10x5_UNORM_BLOCK,
	"ASTC_10x6_SRGB_BLOCK":       FormatASTC_10x6_SRGB_BLOCK,
	"ASTC_10x6_UNORM_BLOCK":      FormatASTC_10x6_UNORM_BLOCK,
	"ASTC_10x8_SRGB_BLOCK":       FormatASTC_10x8_SRGB_BLOCK,
	"ASTC_10x8_UNORM_BLOCK":      FormatASTC_10x8_UNORM_BLOCK,
	"ASTC_12x10_SRGB_BLOCK":      FormatASTC_12x10_SRGB_BLOCK,
	"ASTC_12x10_UNORM_BLOCK":     FormatASTC_12x10_UNORM_BLOCK,
	"ASTC_12x12_SRGB_BLOCK":      FormatASTC_12x12_SRGB_BLOCK,
	"ASTC_12x12_UNORM_BLOCK":     FormatASTC_12x12_UNORM_BLOCK,
	"ASTC_4x4_SRGB_BLOCK":        FormatASTC_4x4_SRGB_BLOCK,
	"ASTC_4x4_UNORM_BLOCK":       FormatASTC_4x4_UNORM_BLOCK,
	"ASTC_5x4_SRGB_BLOCK":        FormatASTC_5x4_SRGB_BLOCK,
	"ASTC_5x4_UNORM_BLOCK":       FormatASTC_5x4_UNORM_BLOCK,
	"ASTC_5x5_SRGB_BLOCK":        FormatASTC_5x5_SRGB_BLOCK,
	"ASTC_5x5_UNORM_BLOCK":       FormatASTC_5x5_UNORM_BLOCK,
	"ASTC_6x5_SRGB_BLOCK":        FormatASTC_6x5_SRGB_BLOCK,
	"ASTC_6x5_UNORM_BLOCK":       FormatASTC_6x5_UNORM_BLOCK,
	"ASTC_6x6_SRGB_BLOCK":        FormatASTC_6x6_SRGB_BLOCK,
	"ASTC_6x6_UNORM_BLOCK":       FormatASTC_6x6_UNORM_BLOCK,
	"ASTC_8x5_SRGB_BLOCK":        FormatASTC_8x5_SRGB_BLOCK,
	"ASTC_8x5_UNORM_BLOCK":       FormatASTC_8x5_UNORM_BLOCK,
	"ASTC_8x6_SRGB_BLOCK":        FormatASTC_8x6_SRGB_BLOCK,
	"ASTC_8x6_UNORM_BLOCK":       FormatASTC_8x6_UNORM_BLOCK,
	"ASTC_8x8_SRGB_BLOCK":        FormatASTC_8x8_SRGB_BLOCK,
	"ASTC_8x8_UNORM_BLOCK":       FormatASTC_8x8_UNORM_BLOCK,
	"B10G11R11_UFLOAT_PACK32":    FormatB10G11R11_UFLOAT_PACK32,
	"B4G4R4A4_UNORM_PACK16":      FormatB4G4R4A4_UNORM_PACK16,
	"B5G5R5A1_UNORM_PACK16":      FormatB5G5R5A1_UNORM_PACK16,
	"B5G6R5_UNORM_PACK16":        FormatB5G6R5_UNORM_PACK16,
	"B8G8R8A8_SINT":              FormatB8G8R8A8_SINT,
	"B8G8R8A8_SNORM":             FormatB8G8R8A8_SNORM,
	"B8G8R8A8_SRGB":              FormatB8G8R8A8_SRGB,
	"B8G8R8A8_SSCALED":           FormatB8G8R8A8_SSCALED,
	"B8G8R8A8_UINT":              FormatB8G8R8A8_UINT,
	"B8G8R8A8_UNORM":             FormatB8G8R8A8_UNORM,
	"B8G8R8A8_USCALED":           FormatB8G8R8A8_USCALED,
	"B8G8R8_SINT":                FormatB8G8R8_SINT,
	"B8G8R8_SNORM":               FormatB8G8R8_SNORM,
	"B8G8R8_SRGB":                FormatB8G8R8_SRGB,
	"B8G8R8_SSCALED":             FormatB8G8R8_SSCALED,
	"B8G8R8_UINT":                FormatB8G8R8_UINT,
	"B8G8R8_UNORM":               FormatB8G8R8_UNORM,
	"B8G8R8_USCALED":             FormatB8G8R8_USCALED,
	"BC1_RGBA_SRGB_BLOCK":        FormatBC1_RGBA_SRGB_BLOCK,
	"BC1_RGBA_UNORM_BLOCK":       FormatBC1_RGBA_UNORM_BLOCK,
	"BC1_RGB_SRGB_BLOCK":         FormatBC1_RGB_SRGB_BLOCK,
	"BC1_RGB_UNORM_BLOCK":        FormatBC1_RGB_UNORM_BLOCK,
	"BC2_SRGB_BLOCK":             FormatBC2_SRGB_BLOCK,
	"BC2_UNORM_BLOCK":            FormatBC2_UNORM_BLOCK,
	"BC3_SRGB_BLOCK":             FormatBC3_SRGB_BLOCK,
	"BC3_UNORM_BLOCK":            FormatBC3_UNORM_BLOCK,
	"BC4_SNORM_BLOCK":            FormatBC4_SNORM_BLOCK,
	"BC4_UNORM_BLOCK":            FormatBC4_UNORM_BLOCK,
	"BC5_SNORM_BLOCK":            FormatBC5_SNORM_BLOCK,
	"BC5_UNORM_BLOCK":            FormatBC5_UNORM_BLOCK,
	"BC6H_SFLOAT_BLOCK":          FormatBC6H_SFLOAT_BLOCK,
	"BC6H_UFLOAT_BLOCK":          FormatBC6H_UFLOAT_BLOCK,
	"BC7_SRGB_BLOCK":             FormatBC7_SRGB_BLOCK,
	"BC7_UNORM_BLOCK":            FormatBC7_UNORM_BLOCK,
	"D16_UNORM":                  FormatD16_UNORM,
	"D16_UNORM_S8_UINT":          FormatD16_UNORM_S8_UINT,
	"D24_UNORM_S8_UINT":          FormatD24_UNORM_S8_UINT,
	"D32_SFLOAT":                 FormatD32_SFLOAT,
	"D32_SFLOAT_S8_UINT":         FormatD32_SFLOAT_S8_UINT,
	"E5B9G9R9_UFLOAT_PACK32":     FormatE5B9G9R9_UFLOAT_PACK32,
	"EAC_R11G11_SNORM_BLOCK":     FormatEAC_R11G11_SNORM_BLOCK,
	"EAC_R11G11_UNORM_BLOCK":     FormatEAC_R11G11_UNORM_BLOCK,
	"EAC_R11_SNORM_BLOCK":        FormatEAC_R11_SNORM_BLOCK,
	"EAC_R11_UNORM_BLOCK":        FormatEAC_R11_UNORM_BLOCK,
	"ETC2_R8G8B8A1_SRGB_BLOCK":   FormatETC2_R8G8B8A1_SRGB_BLOCK,
	"ETC2_R8G8B8A1_UNORM_BLOCK":  FormatETC2_R8G8B8A1_UNORM_BLOCK,
	"ETC2_R8G8B8A8_SRGB_BLOCK":   FormatETC2_R8G8B8A8_SRGB_BLOCK,
	"ETC2_R8G8B8A8_UNORM_BLOCK":  FormatETC2_R8G8B8A8_UNORM_BLOCK,
	"ETC2_R8G8B8_SRGB_BLOCK":     FormatETC2_R8G8B8_SRGB_BLOCK,
	"ETC2_R8G8B8_UNORM_BLOCK":    FormatETC2_R8G8B8_UNORM_BLOCK,
	"R16G16B16A16_SFLOAT":        FormatR16G16B16A16_SFLOAT,
	"R16G16B16A16_SINT":          FormatR16G16B16A16_SINT,
	"R16G16B16A16_SNORM":         FormatR16G16B16A16_SNORM,
	"R16G16B16A16_SSCALED":       FormatR16G16B16A16_SSCALED,
	"R16G16B16A16_UINT":          FormatR16G16B16A16_UINT,
	"R16G16B16A16_UNORM":         FormatR16G16B16A16_UNORM,
	"R16G16B16A16_USCALED":       FormatR16G16B16A16_USCALED,
	"R16G16B16_SFLOAT":           FormatR16G16B16_SFLOAT,
	"R16G16B16_SINT":             FormatR16G16B16_SINT,
	"R16G16B16_SNORM":            FormatR16G16B16_SNORM,
	"R16G16B16_SSCALED":          FormatR16G16B16_SSCALED,
	"R16G16B16_UINT":             FormatR16G16B16_UINT,
	"R16G16B16_UNORM":            FormatR16G16B16_UNORM,
	"R16G16B16_USCALED":          FormatR16G16B16_USCALED,
	"R16G16_SFLOAT":              FormatR16G16_SFLOAT,
	"R16G16_SINT":                FormatR16G16_SINT,
	"R16G16_SNORM":               FormatR16G16_SNORM,
	"R16G16_SSCALED":             FormatR16G16_SSCALED,
	"R16G16_UINT":                FormatR16G16_UINT,
	"R16G16_UNORM":               FormatR16G16_UNORM,
	"R16G16_USCALED":             FormatR16G16_USCALED,
	"R16_SFLOAT":                 FormatR16_SFLOAT,
	"R16_SINT":                   FormatR16_SINT,
	"R16_SNORM":                  FormatR16_SNORM,
	"R16_SSCALED":                FormatR16_SSCALED,
	"R16_UINT":                   FormatR16_UINT,
	"R16_UNORM":                  FormatR16_UNORM,
	"R16_USCALED":                FormatR16_USCALED,
	"R32G32B32A32_SFLOAT":        FormatR32G32B32A32_SFLOAT,
	"R32G32B32A32_SINT":          FormatR32G32B32A32_SINT,
	"R32G32B32A32_UINT":          FormatR32G32B32A32_UINT,
	"R32G32B32_SFLOAT":           FormatR32G32B32_SFLOAT,
	"R32G32B32_SINT":             FormatR32G32B32_SINT,
	"R32G32B32_UINT":             FormatR32G32B32_UINT,
	"R32G32_SFLOAT":              FormatR32G32_SFLOAT,
	"R32G32_SINT":                FormatR32G32_SINT,
	"R32G32_UINT":                FormatR32G32_UINT,
	"R32_SFLOAT":                 FormatR32_SFLOAT,
	"R32_SINT":                   FormatR32_SINT,
	"R32_UINT":                   FormatR32_UINT,
	"R4G4B4A4_UNORM_PACK16":      FormatR4G4B4A4_UNORM_PACK16,
	"R4G4_UNORM_PACK8":           FormatR4G4_UNORM_PACK8,
	"R5G5B5A1_UNORM_PACK16":      FormatR5G5B5A1_UNORM_PACK16,
	"R5G6B5_UNORM_PACK16":        FormatR5G6B5_UNORM_PACK16,
	"R64G64B64A64_SFLOAT":        FormatR64G64B64A64_SFLOAT,
	"R64G64B64A64_SINT":          FormatR64G64B64A64_SINT,
	"R64G64B64A64_UINT":          FormatR64G64B64A64_UINT,
	"R64G64B64_SFLOAT":           FormatR64G64B64_SFLOAT,
	"R64G64B64_SINT":             FormatR64G64B64_SINT,
	"R64G64B64_UINT":             FormatR64G64B64_UINT,
	"R64G64_SFLOAT":              FormatR64G64_SFLOAT,
	"R64G64_SINT":                FormatR64G64_SINT,
	"R64G64_UINT":                FormatR64G64_UINT,
	"R64_SFLOAT":                 FormatR64_SFLOAT,
	"R64_SINT":                   FormatR64_SINT,
	"R64_UINT":                   FormatR64_UINT,
	"R8G8B8A8_SINT":              FormatR8G8B8A8_SINT,
	"R8G8B8A8_SNORM":             FormatR8G8B8A8_SNORM,
	"R8G8B8A8_SRGB":              FormatR8G8B8A8_SRGB,
	"R8G8B8A8_SSCALED":           FormatR8G8B8A8_SSCALED,
	"R8G8B8A8_UINT":              FormatR8G8B8A8_UINT,
	"R8G8B8A8_UNORM":             FormatR8G8B8A8_UNORM,
	"R8G8B8A8_USCALED":           FormatR8G8B8A8_USCALED,
	"R8G8B8_SINT":                FormatR8G8B8_SINT,
	"R8G8B8_SNORM":               FormatR8G8B8_SNORM,
	"R8G8B8_SRGB":                FormatR8G8B8_SRGB,
	"R8G8B8_SSCALED":             FormatR8G8B8_SSCALED,
	"R8G8B8_UINT":                FormatR8G8B8_UINT,
	"R8G8B8_UNORM":               FormatR8G8B8_UNORM,
	"R8G8B8_USCALED":             FormatR8G8B8_USCALED,
	"R8G8_SINT":                  FormatR8G8_SINT,
	"R8G8_SNORM":                 FormatR8G8_SNORM,
	"R8G8_SRGB":                  FormatR8G8_SRGB,
	"R8G8_SSCALED":               FormatR8G8_SSCALED,
	"R8G8_UINT":                  FormatR8G8_UINT,
	"R8G8_UNORM":                 FormatR8G8_UNORM,
	"R8G8_USCALED":               FormatR8G8_USCALED,
	"R8_SINT":                    FormatR8_SINT,
	"R8_SNORM":                   FormatR8_SNORM,
	"R8_SRGB":                    FormatR8_SRGB,
	"R8_SSCALED":                 FormatR8_SSCALED,
	"R8_UINT":                    FormatR8_UINT,
	"R8_UNORM":                   FormatR8_UNORM,
	"R8_USCALED":                 FormatR8_USCALED,
	"S8_UINT":                    FormatS8_UINT,
	"UNDEFINED":                  FormatUndefined,
	"X8_D24_UNORM_PACK32":        FormatX8_D24_UNORM_PACK32,
	"A1R5G5B5_UNORM_PACK16":                      FormatA1R5G5B5_UNORM_PACK16,
	"A2B10G10R10_SINT_PACK32":                    FormatA2B10G10R10_SINT_PACK32,
	"A2B10G10R10_SNORM_PACK32":                   FormatA2B10G10R10_SNORM_PACK32,
	"A2B10G10R10_SSCALED_PACK32":                 FormatA2B10G10R10_SSCALED_PACK32,
	"A2B10G10R10_UINT_PACK32":                    FormatA2B10G10R10_UINT_PACK32,
	"A2B10G10R10_UNORM_PACK32":                   FormatA2B10G10R10_UNORM_PACK32,
	"A2B10G10R10_USCALED_PACK32":                 FormatA2B10G10R10_USCALED_PACK32,
	"A2R10G10B10_SINT_PACK32":                    FormatA2R10G10B10_SINT_PACK32,
	"A2R10G10B10_SNORM_PACK32":                   FormatA2R10G10B10_SNORM_PACK32,
	"A2R10G10B10_SSCALED_PACK32":                 FormatA2R10G10B10_SSCALED_PACK32,
	"A2R10G10B10_UINT_PACK32":                    FormatA2R10G10B10_UINT_PACK32,
	"A2R10G10B10_UNORM_PACK32":                   FormatA2R10G10B10_UNORM_PACK32,
	"A2R10G10B10_USCALED_PACK32":                 FormatA2R10G10B10_USCALED_PACK32,
	"A4B4G4R4_UNORM_PACK16":                      FormatA4B4G4R4_UNORM_PACK16,
	"A4R4G4B4_UNORM_PACK16":                      FormatA4R4G4B4_UNORM_PACK16,
	"A8B8G8R8_SINT_PACK32":                       FormatA8B8G8R8_SINT_PACK32,
	"A8B8G8R8_SNORM_PACK32":                      FormatA8B8G8R8_SNORM_PACK32,
	"A8B8G8R8_SRGB_PACK32":                       FormatA8B8G8R8_SRGB_PACK32,
	"A8B8G8R8_SSCALED_PACK32":                    FormatA8B8G8R8_SSCALED_PACK32,
	"A8B8G8R8_UINT_PACK32":                       FormatA8B8G8R8_UINT_PACK32,
	"A8B8G8R8_UNORM_PACK32":                      FormatA8B8G8R8_UNORM_PACK32,
	"A8B8G8R8_USCALED_PACK32":                    FormatA8B8G8R8_USCALED_PACK32,
	"ASTC_10x10_SFLOAT_BLOCK":                    FormatASTC_10x10_SFLOAT_BLOCK,
	"ASTC_10x10_SRGB_BLOCK":                      FormatASTC_10x10_SRGB_BLOCK,
	"ASTC_10x10_UNORM_BLOCK":                     FormatASTC_10x10_UNORM_BLOCK,
	"ASTC_10x5_SFLOAT_BLOCK":                     FormatASTC_10x5_SFLOAT_BLOCK,
	"ASTC_10x5_SRGB_BLOCK":                       FormatASTC_10x5_SRGB_BLOCK,
	"ASTC_10x5_UNORM_BLOCK":                      FormatASTC_10x5_UNORM_BLOCK,
	"ASTC_10x6_SFLOAT_BLOCK":                     FormatASTC_10x6_SFLOAT_BLOCK,
	"ASTC_10x6_SRGB_BLOCK":                       FormatASTC_10x6_SRGB_BLOCK,
	"ASTC_10x6_UNORM_BLOCK":                      FormatASTC_10x6_UNORM_BLOCK,
	"ASTC_10x8_SFLOAT_BLOCK":                     FormatASTC_10x8_SFLOAT_BLOCK,
	"ASTC_10x8_SRGB_BLOCK":                       FormatASTC_10x8_SRGB_BLOCK,
	"ASTC_10x8_UNORM_BLOCK":                      FormatASTC_10x8_UNORM_BLOCK,
	"ASTC_12x10_SFLOAT_BLOCK":                    FormatASTC_12x10_SFLOAT_BLOCK,
	"ASTC_12x10_SRGB_BLOCK":                      FormatASTC_12x10_SRGB_BLOCK,
	"ASTC_12x10_UNORM_BLOCK":                     FormatASTC_12x10_UNORM_BLOCK,
	"ASTC_12x12_SFLOAT_BLOCK":                    FormatASTC_12x12_SFLOAT_BLOCK,
	"ASTC_12x12_SRGB_BLOCK":                      FormatASTC_12x12_SRGB_BLOCK,
	"ASTC_12x12_UNORM_BLOCK":                     FormatASTC_12x12_UNORM_BLOCK,
	"ASTC_4x4_SFLOAT_BLOCK":                      FormatASTC_4x4_SFLOAT_BLOCK,
	"ASTC_4x4_SRGB_BLOCK":                        FormatASTC_4x4_SRGB_BLOCK,
	"ASTC_4x4_UNORM_BLOCK":                       FormatASTC_4x4_UNORM_BLOCK,
	"ASTC_5x4_SFLOAT_BLOCK":                      FormatASTC_5x4_SFLOAT_BLOCK,
	"ASTC_5x4_SRGB_BLOCK":                        FormatASTC_5x4_SRGB_BLOCK,
	"ASTC_5x4_UNORM_BLOCK":                       FormatASTC_5x4_UNORM_BLOCK,
	"ASTC_5x5_SFLOAT_BLOCK":                      FormatASTC_5x5_SFLOAT_BLOCK,
	"ASTC_5x5_SRGB_BLOCK":                        FormatASTC_5x5_SRGB_BLOCK,
	"ASTC_5x5_UNORM_BLOCK":                       FormatASTC_5x5_UNORM_BLOCK,
	"ASTC_6x5_SFLOAT_BLOCK":                      FormatASTC_6x5_SFLOAT_BLOCK,
	"ASTC_6x5_SRGB_BLOCK":                        FormatASTC_6x5_SRGB_BLOCK,
	"ASTC_6x5_UNORM_BLOCK":                       FormatASTC_6x5_UNORM_BLOCK,
	"ASTC_6x6_SFLOAT_BLOCK":                      FormatASTC_6x6_SFLOAT_BLOCK,
	"ASTC_6x6_SRGB_BLOCK":                        FormatASTC_6x6_SRGB_BLOCK,
	"ASTC_6x6_UNORM_BLOCK":                       FormatASTC_6x6_UNORM_BLOCK,
	"ASTC_8x5_SFLOAT_BLOCK":                      FormatASTC_8x5_SFLOAT_BLOCK,
	"ASTC_8x5_SRGB_BLOCK":                        FormatASTC_8x5_SRGB_BLOCK,
	"ASTC_8x5_UNORM_BLOCK":                       FormatASTC_8x5_UNORM_BLOCK,
	"ASTC_8x6_SFLOAT_BLOCK":                      FormatASTC_8x6_SFLOAT_BLOCK,
	"ASTC_8x6_SRGB_BLOCK":                        FormatASTC_8x6_SRGB_BLOCK,
	"ASTC_8x6_UNORM_BLOCK":                       FormatASTC_8x6_UNORM_BLOCK,
	"ASTC_8x8_SFLOAT_BLOCK":                      FormatASTC_8x8_SFLOAT_BLOCK,
	"ASTC_8x8_SRGB_BLOCK":                        FormatASTC_8x8_SRGB_BLOCK,
	"ASTC_8x8_UNORM_BLOCK":                       FormatASTC_8x8_UNORM_BLOCK,
	"B10G11R11_UFLOAT_PACK32":                    FormatB10G11R11_UFLOAT_PACK32,
	"B10X6G10X6R10X6G10X6_422_UNORM_4PACK16":     FormatB10X6G10X6R10X6G10X6_422_UNORM_4PACK16,
	"B12X4G12X4R12X4G12X4_422_UNORM_4PACK16":     FormatB12X4G12X4R12X4G12X4_422_UNORM_4PACK16,
	"B16G16R16G16_422_UNORM":                     FormatB16G16R16G16_422_UNORM,
	"B4G4R4A4_UNORM_PACK16":                      FormatB4G4R4A4_UNORM_PACK16,
	"B5G5R5A1_UNORM_PACK16":                      FormatB5G5R5A1_UNORM_PACK16,
	"B5G6R5_UNORM_PACK16":                        FormatB5G6R5_UNORM_PACK16,
	"B8G8R8A8_SINT":                              FormatB8G8R8A8_SINT,
	"B8G8R8A8_SNORM":                             FormatB8G8R8A8_SNORM,
	"B8G8R8A8_SRGB":                              FormatB8G8R8A8_SRGB,
	"B8G8R8A8_SSCALED":                           FormatB8G8R8A8_SSCALED,
	"B8G8R8A8_UINT":                              FormatB8G8R8A8_UINT,
	"B8G8R8A8_UNORM":                             FormatB8G8R8A8_UNORM,
	"B8G8R8A8_USCALED":                           FormatB8G8R8A8_USCALED,
	"B8G8R8G8_422_UNORM":                         FormatB8G8R8G8_422_UNORM,
	"B8G8R8_SINT":                                FormatB8G8R8_SINT,
	"B8G8R8_SNORM":                               FormatB8G8R8_SNORM,
	"B8G8R8_SRGB":                                FormatB8G8R8_SRGB,
	"B8G8R8_SSCALED":                             FormatB8G8R8_SSCALED,
	"B8G8R8_UINT":                                FormatB8G8R8_UINT,
	"B8G8R8_UNORM":                               FormatB8G8R8_UNORM,
	"B8G8R8_USCALED":                             FormatB8G8R8_USCALED,
	"BC1_RGBA_SRGB_BLOCK":                        FormatBC1_RGBA_SRGB_BLOCK,
	"BC1_RGBA_UNORM_BLOCK":                       FormatBC1_RGBA_UNORM_BLOCK,
	"BC1_RGB_SRGB_BLOCK":                         FormatBC1_RGB_SRGB_BLOCK,
	"BC1_RGB_UNORM_BLOCK":                        FormatBC1_RGB_UNORM_BLOCK,
	"BC2_SRGB_BLOCK":                             FormatBC2_SRGB_BLOCK,
	"BC2_UNORM_BLOCK":                            FormatBC2_UNORM_BLOCK,
	"BC3_SRGB_BLOCK":                             FormatBC3_SRGB_BLOCK,
	"BC3_UNORM_BLOCK":                            FormatBC3_UNORM_BLOCK,
	"BC4_SNORM_BLOCK":                            FormatBC4_SNORM_BLOCK,
	"BC4_UNORM_BLOCK":                            FormatBC4_UNORM_BLOCK,
	"BC5_SNORM_BLOCK":                            FormatBC5_SNORM_BLOCK,
	"BC5_UNORM_BLOCK":                            FormatBC5_UNORM_BLOCK,
	"BC6H_SFLOAT_BLOCK":                          FormatBC6H_SFLOAT_BLOCK,
	"BC6H_UFLOAT_BLOCK":                          FormatBC6H_UFLOAT_BLOCK,
	"BC7_SRGB_BLOCK":                             FormatBC7_SRGB_BLOCK,
	"BC7_UNORM_BLOCK":                            FormatBC7_UNORM_BLOCK,
	"D16_UNORM":                                  FormatD16_UNORM,
	"D16_UNORM_S8_UINT":                          FormatD16_UNORM_S8_UINT,
	"D24_UNORM_S8_UINT":                          FormatD24_UNORM_S8_UINT,
	"D32_SFLOAT":                                 FormatD32_SFLOAT,
	"D32_SFLOAT_S8_UINT":                         FormatD32_SFLOAT_S8_UINT,
	"E5B9G9R9_UFLOAT_PACK32":                     FormatE5B9G9R9_UFLOAT_PACK32,
	"EAC_R11G11_SNORM_BLOCK":                     FormatEAC_R11G11_SNORM_BLOCK,
	"EAC_R11G11_UNORM_BLOCK":                     FormatEAC_R11G11_UNORM_BLOCK,
	"EAC_R11_SNORM_BLOCK":                        FormatEAC_R11_SNORM_BLOCK,
	"EAC_R11_UNORM_BLOCK":                        FormatEAC_R11_UNORM_BLOCK,
	"ETC2_R8G8B8A1_SRGB_BLOCK":                   FormatETC2_R8G8B8A1_SRGB_BLOCK,
	"ETC2_R8G8B8A1_UNORM_BLOCK":                  FormatETC2_R8G8B8A1_UNORM_BLOCK,
	"ETC2_R8G8B8A8_SRGB_BLOCK":                   FormatETC2_R8G8B8A8_SRGB_BLOCK,
	"ETC2_R8G8B8A8_UNORM_BLOCK":                  FormatETC2_R8G8B8A8_UNORM_BLOCK,
	"ETC2_R8G8B8_SRGB_BLOCK":                     FormatETC2_R8G8B8_SRGB_BLOCK,
	"ETC2_R8G8B8_UNORM_BLOCK":                    FormatETC2_R8G8B8_UNORM_BLOCK,
	"G10X6B10X6G10X6R10X6_422_UNORM_4PACK16":     FormatG10X6B10X6G10X6R10X6_422_UNORM_4PACK16,
	"G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16":  FormatG10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16,
	"G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16":  FormatG10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16,
	"G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16":  FormatG10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16,
	"G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16": FormatG10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16,
	"G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16": FormatG10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16,
	"G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16": FormatG10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16,
	"G12X4B12X4G12X4R12X4_422_UNORM_4PACK16":     FormatG12X4B12X4G12X4R12X4_422_UNORM_4PACK16,
	"G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16":  FormatG12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16,
	"G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16":  FormatG12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16,
	"G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16":  FormatG12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16,
	"G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16": FormatG12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16,
	"G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16": FormatG12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16,
	"G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16": FormatG12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16,
	"G16B16G16R16_422_UNORM":                     FormatG16B16G16R16_422_UNORM,
	"G16_B16R16_2PLANE_420_UNORM":                FormatG16_B16R16_2PLANE_420_UNORM,
	"G16_B16R16_2PLANE_422_UNORM":                FormatG16_B16R16_2PLANE_422_UNORM,
	"G16_B16R16_2PLANE_444_UNORM":                FormatG16_B16R16_2PLANE_444_UNORM,
	"G16_B16_R16_3PLANE_420_UNORM":               FormatG16_B16_R16_3PLANE_420_UNORM,
	"G16_B16_R16_3PLANE_422_UNORM":               FormatG16_B16_R16_3PLANE_422_UNORM,
	"G16_B16_R16_3PLANE_444_UNORM":               FormatG16_B16_R16_3PLANE_444_UNORM,
	"G8B8G8R8_422_UNORM":                         FormatG8B8G8R8_422_UNORM,
	"G8_B8R8_2PLANE_420_UNORM":                   FormatG8_B8R8_2PLANE_420_UNORM,
	"G8_B8R8_2PLANE_422_UNORM":                   FormatG8_B8R8_2PLANE_422_UNORM,
	"G8_B8R8_2PLANE_444_UNORM":                   FormatG8_B8R8_2PLANE_444_UNORM,
	"G8_B8_R8_3PLANE_420_UNORM":                  FormatG8_B8_R8_3PLANE_420_UNORM,
	"G8_B8_R8_3PLANE_422_UNORM":                  FormatG8_B8_R8_3PLANE_422_UNORM,
	"G8_B8_R8_3PLANE_444_UNORM":                  FormatG8_B8_R8_3PLANE_444_UNORM,
	"R10X6G10X6B10X6A10X6_UNORM_4PACK16":         FormatR10X6G10X6B10X6A10X6_UNORM_4PACK16,
	"R10X6G10X6_UNORM_2PACK16":                   FormatR10X6G10X6_UNORM_2PACK16,
	"R10X6_UNORM_PACK16":                         FormatR10X6_UNORM_PACK16,
	"R12X4G12X4B12X4A12X4_UNORM_4PACK16":         FormatR12X4G12X4B12X4A12X4_UNORM_4PACK16,
	"R12X4G12X4_UNORM_2PACK16":                   FormatR12X4G12X4_UNORM_2PACK16,
	"R12X4_UNORM_PACK16":                         FormatR12X4_UNORM_PACK16,
	"R16G16B16A16_SFLOAT":                        FormatR16G16B16A16_SFLOAT,
	"R16G16B16A16_SINT":                          FormatR16G16B16A16_SINT,
	"R16G16B16A16_SNORM":                         FormatR16G16B16A16_SNORM,
	"R16G16B16A16_SSCALED":                       FormatR16G16B16A16_SSCALED,
	"R16G16B16A16_UINT":                          FormatR16G16B16A16_UINT,
	"R16G16B16A16_UNORM":                         FormatR16G16B16A16_UNORM,
	"R16G16B16A16_USCALED":                       FormatR16G16B16A16_USCALED,
	"R16G16B16_SFLOAT":                           FormatR16G16B16_SFLOAT,
	"R16G16B16_SINT":                             FormatR16G16B16_SINT,
	"R16G16B16_SNORM":                            FormatR16G16B16_SNORM,
	"R16G16B16_SSCALED":                          FormatR16G16B16_SSCALED,
	"R16G16B16_UINT":                             FormatR16G16B16_UINT,
	"R16G16B16_UNORM":                            FormatR16G16B16_UNORM,
	"R16G16B16_USCALED":                          FormatR16G16B16_USCALED,
	"R16G16_SFLOAT":                              FormatR16G16_SFLOAT,
	"R16G16_SINT":                                FormatR16G16_SINT,
	"R16G16_SNORM":                               FormatR16G16_SNORM,
	"R16G16_SSCALED":                             FormatR16G16_SSCALED,
	"R16G16_UINT":                                FormatR16G16_UINT,
	"R16G16_UNORM":                               FormatR16G16_UNORM,
	"R16G16_USCALED":                             FormatR16G16_USCALED,
	"R16_SFLOAT":                                 FormatR16_SFLOAT,
	"R16_SINT":                                   FormatR16_SINT,
	"R16_SNORM":                                  FormatR16_SNORM,
	"R16_SSCALED":                                FormatR16_SSCALED,
	"R16_UINT":                                   FormatR16_UINT,
	"R16_UNORM":                                  FormatR16_UNORM,
	"R16_USCALED":                                FormatR16_USCALED,
	"R32G32B32A32_SFLOAT":                        FormatR32G32B32A32_SFLOAT,
	"R32G32B32A32_SINT":                          FormatR32G32B32A32_SINT,
	"R32G32B32A32_UINT":                          FormatR32G32B32A32_UINT,
	"R32G32B32_SFLOAT":                           FormatR32G32B32_SFLOAT,
	"R32G32B32_SINT":                             FormatR32G32B32_SINT,
	"R32G32B32_UINT":                             FormatR32G32B32_UINT,
	"R32G32_SFLOAT":                              FormatR32G32_SFLOAT,
	"R32G32_SINT":                                FormatR32G32_SINT,
	"R32G32_UINT":                                FormatR32G32_UINT,
	"R32_SFLOAT":                                 FormatR32_SFLOAT,
	"R32_SINT":                                   FormatR32_SINT,
	"R32_UINT":                                   FormatR32_UINT,
	"R4G4B4A4_UNORM_PACK16":                      FormatR4G4B4A4_UNORM_PACK16,
	"R4G4_UNORM_PACK8":                           FormatR4G4_UNORM_PACK8,
	"R5G5B5A1_UNORM_PACK16":                      FormatR5G5B5A1_UNORM_PACK16,
	"R5G6B5_UNORM_PACK16":                        FormatR5G6B5_UNORM_PACK16,
	"R64G64B64A64_SFLOAT":                        FormatR64G64B64A64_SFLOAT,
	"R64G64B64A64_SINT":                          FormatR64G64B64A64_SINT,
	"R64G64B64A64_UINT":                          FormatR64G64B64A64_UINT,
	"R64G64B64_SFLOAT":                           FormatR64G64B64_SFLOAT,
	"R64G64B64_SINT":                             FormatR64G64B64_SINT,
	"R64G64B64_UINT":                             FormatR64G64B64_UINT,
	"R64G64_SFLOAT":                              FormatR64G64_SFLOAT,
	"R64G64_SINT":                                FormatR64G64_SINT,
	"R64G64_UINT":                                FormatR64G64_UINT,
	"R64_SFLOAT":                                 FormatR64_SFLOAT,
	"R64_SINT":                                   FormatR64_SINT,
	"R64_UINT":                                   FormatR64_UINT,
	"R8G8B8A8_SINT":                              FormatR8G8B8A8_SINT,
	"R8G8B8A8_SNORM":                             FormatR8G8B8A8_SNORM,
	"R8G8B8A8_SRGB":                              FormatR8G8B8A8_SRGB,
	"R8G8B8A8_SSCALED":                           FormatR8G8B8A8_SSCALED,
	"R8G8B8A8_UINT":                              FormatR8G8B8A8_UINT,
	"R8G8B8A8_UNORM":                             FormatR8G8B8A8_UNORM,
	"R8G8B8A8_USCALED":                           FormatR8G8B8A8_USCALED,
	"R8G8B8_SINT":                                FormatR8G8B8_SINT,
	"R8G8B8_SNORM":                               FormatR8G8B8_SNORM,
	"R8G8B8_SRGB":                                FormatR8G8B8_SRGB,
	"R8G8B8_SSCALED":                             FormatR8G8B8_SSCALED,
	"R8G8B8_UINT":                                FormatR8G8B8_UINT,
	"R8G8B8_UNORM":                               FormatR8G8B8_UNORM,
	"R8G8B8_USCALED":                             FormatR8G8B8_USCALED,
	"R8G8_SINT":                                  FormatR8G8_SINT,
	"R8G8_SNORM":                                 FormatR8G8_SNORM,
	"R8G8_SRGB":                                  FormatR8G8_SRGB,
	"R8G8_SSCALED":                               FormatR8G8_SSCALED,
	"R8G8_UINT":                                  FormatR8G8_UINT,
	"R8G8_UNORM":                                 FormatR8G8_UNORM,
	"R8G8_USCALED":                               FormatR8G8_USCALED,
	"R8_SINT":                                    FormatR8_SINT,
	"R8_SNORM":                                   FormatR8_SNORM,
	"R8_SRGB":                                    FormatR8_SRGB,
	"R8_SSCALED":                                 FormatR8_SSCALED,
	"R8_UINT":                                    FormatR8_UINT,
	"R8_UNORM":                                   FormatR8_UNORM,
	"R8_USCALED":                                 FormatR8_USCALED,
	"S8_UINT":                                    FormatS8_UINT,
	"UNDEFINED":                                  FormatUndefined,
	"X8_D24_UNORM_PACK32":                        FormatX8_D24_UNORM_PACK32,
}

func (format Format) String() string {


@@ 750,6 858,114 @@ func (format Format) String() string {
		return "ASTC_12x12_UNORM_BLOCK"
	case FormatASTC_12x12_SRGB_BLOCK:
		return "ASTC_12x12_SRGB_BLOCK"
	case FormatG8B8G8R8_422_UNORM:
		return "G8B8G8R8_422_UNORM"
	case FormatB8G8R8G8_422_UNORM:
		return "B8G8R8G8_422_UNORM"
	case FormatG8_B8_R8_3PLANE_420_UNORM:
		return "G8_B8_R8_3PLANE_420_UNORM"
	case FormatG8_B8R8_2PLANE_420_UNORM:
		return "G8_B8R8_2PLANE_420_UNORM"
	case FormatG8_B8_R8_3PLANE_422_UNORM:
		return "G8_B8_R8_3PLANE_422_UNORM"
	case FormatG8_B8R8_2PLANE_422_UNORM:
		return "G8_B8R8_2PLANE_422_UNORM"
	case FormatG8_B8_R8_3PLANE_444_UNORM:
		return "G8_B8_R8_3PLANE_444_UNORM"
	case FormatR10X6_UNORM_PACK16:
		return "R10X6_UNORM_PACK16"
	case FormatR10X6G10X6_UNORM_2PACK16:
		return "R10X6G10X6_UNORM_2PACK16"
	case FormatR10X6G10X6B10X6A10X6_UNORM_4PACK16:
		return "R10X6G10X6B10X6A10X6_UNORM_4PACK16"
	case FormatG10X6B10X6G10X6R10X6_422_UNORM_4PACK16:
		return "G10X6B10X6G10X6R10X6_422_UNORM_4PACK16"
	case FormatB10X6G10X6R10X6G10X6_422_UNORM_4PACK16:
		return "B10X6G10X6R10X6G10X6_422_UNORM_4PACK16"
	case FormatG10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16:
		return "G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16"
	case FormatG10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16:
		return "G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16"
	case FormatG10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16:
		return "G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16"
	case FormatG10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16:
		return "G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16"
	case FormatG10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16:
		return "G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16"
	case FormatR12X4_UNORM_PACK16:
		return "R12X4_UNORM_PACK16"
	case FormatR12X4G12X4_UNORM_2PACK16:
		return "R12X4G12X4_UNORM_2PACK16"
	case FormatR12X4G12X4B12X4A12X4_UNORM_4PACK16:
		return "R12X4G12X4B12X4A12X4_UNORM_4PACK16"
	case FormatG12X4B12X4G12X4R12X4_422_UNORM_4PACK16:
		return "G12X4B12X4G12X4R12X4_422_UNORM_4PACK16"
	case FormatB12X4G12X4R12X4G12X4_422_UNORM_4PACK16:
		return "B12X4G12X4R12X4G12X4_422_UNORM_4PACK16"
	case FormatG12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16:
		return "G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16"
	case FormatG12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16:
		return "G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16"
	case FormatG12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16:
		return "G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16"
	case FormatG12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16:
		return "G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16"
	case FormatG12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16:
		return "G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16"
	case FormatG16B16G16R16_422_UNORM:
		return "G16B16G16R16_422_UNORM"
	case FormatB16G16R16G16_422_UNORM:
		return "B16G16R16G16_422_UNORM"
	case FormatG16_B16_R16_3PLANE_420_UNORM:
		return "G16_B16_R16_3PLANE_420_UNORM"
	case FormatG16_B16R16_2PLANE_420_UNORM:
		return "G16_B16R16_2PLANE_420_UNORM"
	case FormatG16_B16_R16_3PLANE_422_UNORM:
		return "G16_B16_R16_3PLANE_422_UNORM"
	case FormatG16_B16R16_2PLANE_422_UNORM:
		return "G16_B16R16_2PLANE_422_UNORM"
	case FormatG16_B16_R16_3PLANE_444_UNORM:
		return "G16_B16_R16_3PLANE_444_UNORM"
	case FormatG8_B8R8_2PLANE_444_UNORM:
		return "G8_B8R8_2PLANE_444_UNORM"
	case FormatG10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16:
		return "G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16"
	case FormatG12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16:
		return "G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16"
	case FormatG16_B16R16_2PLANE_444_UNORM:
		return "G16_B16R16_2PLANE_444_UNORM"
	case FormatA4R4G4B4_UNORM_PACK16:
		return "A4R4G4B4_UNORM_PACK16"
	case FormatA4B4G4R4_UNORM_PACK16:
		return "A4B4G4R4_UNORM_PACK16"
	case FormatASTC_4x4_SFLOAT_BLOCK:
		return "ASTC_4x4_SFLOAT_BLOCK"
	case FormatASTC_5x4_SFLOAT_BLOCK:
		return "ASTC_5x4_SFLOAT_BLOCK"
	case FormatASTC_5x5_SFLOAT_BLOCK:
		return "ASTC_5x5_SFLOAT_BLOCK"
	case FormatASTC_6x5_SFLOAT_BLOCK:
		return "ASTC_6x5_SFLOAT_BLOCK"
	case FormatASTC_6x6_SFLOAT_BLOCK:
		return "ASTC_6x6_SFLOAT_BLOCK"
	case FormatASTC_8x5_SFLOAT_BLOCK:
		return "ASTC_8x5_SFLOAT_BLOCK"
	case FormatASTC_8x6_SFLOAT_BLOCK:
		return "ASTC_8x6_SFLOAT_BLOCK"
	case FormatASTC_8x8_SFLOAT_BLOCK:
		return "ASTC_8x8_SFLOAT_BLOCK"
	case FormatASTC_10x5_SFLOAT_BLOCK:
		return "ASTC_10x5_SFLOAT_BLOCK"
	case FormatASTC_10x6_SFLOAT_BLOCK:
		return "ASTC_10x6_SFLOAT_BLOCK"
	case FormatASTC_10x8_SFLOAT_BLOCK:
		return "ASTC_10x8_SFLOAT_BLOCK"
	case FormatASTC_10x10_SFLOAT_BLOCK:
		return "ASTC_10x10_SFLOAT_BLOCK"
	case FormatASTC_12x10_SFLOAT_BLOCK:
		return "ASTC_12x10_SFLOAT_BLOCK"
	case FormatASTC_12x12_SFLOAT_BLOCK:
		return "ASTC_12x12_SFLOAT_BLOCK"
	default:
		return "unknown"
	}

M vulkan/gen_formats.go => vulkan/gen_formats.go +36 -11
@@ 4,6 4,7 @@ package main

import (
	"encoding/xml"
	"fmt"
	"log"
	"net/http"
	"strings"


@@ 12,15 13,23 @@ import (
)

type registry struct {
	Enums []enums `xml:"enums"`
	Enums []struct {
		Name string `xml:"name,attr"`
		Enum []enum `xml:"enum"`
	} `xml:"enums"`
	Feature []struct {
		Enum []enum `xml:"require>enum"`
	} `xml:"feature"`
}

type enums struct {
	Name string `xml:"name,attr"`
	Enum []struct {
		Name  string `xml:"name,attr"`
		Value string `xml:"value,attr"`
	} `xml:"enum"`
type enum struct {
	Name  string `xml:"name,attr"`
	Value string `xml:"value,attr"`

	// for <feature> and <extension>
	Extends   string `xml:"extends,attr"`
	ExtNumber int    `xml:"extnumber,attr"`
	Offset    int    `xml:"offset,attr"`
}

func main() {


@@ 35,10 44,10 @@ func main() {
		log.Fatalf("failed to decode registry XML: %v", err)
	}

	var formatEnums *enums
	var formatEnums []enum
	for _, enums := range registry.Enums {
		if enums.Name == "VkFormat" {
			formatEnums = &enums
			formatEnums = enums.Enum
			break
		}
	}


@@ 46,6 55,14 @@ func main() {
		log.Fatalf("cannot find VkFormat in registry")
	}

	for _, feat := range registry.Feature {
		for _, enum := range feat.Enum {
			if enum.Extends == "VkFormat" {
				formatEnums = append(formatEnums, enum)
			}
		}
	}

	f := jen.NewFile("vulkan")
	f.HeaderComment("Generated by gen_formats.go - DO NOT EDIT")



@@ 54,14 71,22 @@ func main() {
		cases []jen.Code
	)
	table := make(jen.Dict)
	for _, enum := range formatEnums.Enum {
	for _, enum := range formatEnums {
		name := strings.TrimPrefix(enum.Name, "VK_FORMAT_")
		id := "Format" + name
		if id == "FormatUNDEFINED" {
			id = "FormatUndefined"
		}

		defs = append(defs, jen.Id(id).Id("Format").Op("=").Id(enum.Value))
		value := enum.Value
		if value == "" && enum.ExtNumber != 0 {
			value = fmt.Sprintf("%d", 1000000000+enum.ExtNumber*1000+enum.Offset)
		}
		if value == "" {
			panic(fmt.Errorf("VkFormat enum with no value: %v", enum.Name))
		}

		defs = append(defs, jen.Id(id).Id("Format").Op("=").Id(value))

		cases = append(cases, jen.Case(jen.Id(id)).Block(
			jen.Return(jen.Lit(name)),