Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
godotengine
GitHub Repository: godotengine/godot
Path: blob/master/thirdparty/libktx/lib/vkformat_check.c
9903 views
1
2
/***************************** Do not edit. *****************************
3
Automatically generated from vulkan_core.h version 287 by mkvkformatfiles.
4
*************************************************************************/
5
6
/*
7
** Copyright 2015-2024 The Khronos Group Inc.
8
**
9
** SPDX-License-Identifier: Apache-2.0
10
*/
11
12
// clang-format off: CI is complicated if formatting checks on generated files are enforced.
13
#include <stdint.h>
14
#include <stdbool.h>
15
16
#include "vkformat_enum.h"
17
18
bool
19
isProhibitedFormat(VkFormat format)
20
{
21
switch (format) {
22
case VK_FORMAT_R8_USCALED:
23
case VK_FORMAT_R8_SSCALED:
24
case VK_FORMAT_R8G8_USCALED:
25
case VK_FORMAT_R8G8_SSCALED:
26
case VK_FORMAT_R8G8B8_USCALED:
27
case VK_FORMAT_R8G8B8_SSCALED:
28
case VK_FORMAT_B8G8R8_USCALED:
29
case VK_FORMAT_B8G8R8_SSCALED:
30
case VK_FORMAT_R8G8B8A8_USCALED:
31
case VK_FORMAT_R8G8B8A8_SSCALED:
32
case VK_FORMAT_B8G8R8A8_USCALED:
33
case VK_FORMAT_B8G8R8A8_SSCALED:
34
case VK_FORMAT_A8B8G8R8_USCALED_PACK32:
35
case VK_FORMAT_A8B8G8R8_SSCALED_PACK32:
36
case VK_FORMAT_A2R10G10B10_USCALED_PACK32:
37
case VK_FORMAT_A2R10G10B10_SSCALED_PACK32:
38
case VK_FORMAT_A2B10G10R10_USCALED_PACK32:
39
case VK_FORMAT_A2B10G10R10_SSCALED_PACK32:
40
case VK_FORMAT_R16_USCALED:
41
case VK_FORMAT_R16_SSCALED:
42
case VK_FORMAT_R16G16_USCALED:
43
case VK_FORMAT_R16G16_SSCALED:
44
case VK_FORMAT_R16G16B16_USCALED:
45
case VK_FORMAT_R16G16B16_SSCALED:
46
case VK_FORMAT_R16G16B16A16_USCALED:
47
case VK_FORMAT_R16G16B16A16_SSCALED:
48
case VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM:
49
case VK_FORMAT_G8_B8R8_2PLANE_420_UNORM:
50
case VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM:
51
case VK_FORMAT_G8_B8R8_2PLANE_422_UNORM:
52
case VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM:
53
case VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16:
54
case VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16:
55
case VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16:
56
case VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16:
57
case VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16:
58
case VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16:
59
case VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16:
60
case VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16:
61
case VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16:
62
case VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16:
63
case VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM:
64
case VK_FORMAT_G16_B16R16_2PLANE_420_UNORM:
65
case VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM:
66
case VK_FORMAT_G16_B16R16_2PLANE_422_UNORM:
67
case VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM:
68
case VK_FORMAT_G8_B8R8_2PLANE_444_UNORM:
69
case VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16:
70
case VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16:
71
case VK_FORMAT_G16_B16R16_2PLANE_444_UNORM:
72
return true;
73
default:
74
return false;
75
}
76
}
77
78
bool
79
isSrgbFormat(VkFormat format)
80
{
81
switch(format) {
82
case VK_FORMAT_R8_SRGB:
83
case VK_FORMAT_R8G8_SRGB:
84
case VK_FORMAT_R8G8B8_SRGB:
85
case VK_FORMAT_B8G8R8_SRGB:
86
case VK_FORMAT_R8G8B8A8_SRGB:
87
case VK_FORMAT_B8G8R8A8_SRGB:
88
case VK_FORMAT_A8B8G8R8_SRGB_PACK32:
89
case VK_FORMAT_BC1_RGB_SRGB_BLOCK:
90
case VK_FORMAT_BC1_RGBA_SRGB_BLOCK:
91
case VK_FORMAT_BC2_SRGB_BLOCK:
92
case VK_FORMAT_BC3_SRGB_BLOCK:
93
case VK_FORMAT_BC7_SRGB_BLOCK:
94
case VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK:
95
case VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK:
96
case VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK:
97
case VK_FORMAT_ASTC_4x4_SRGB_BLOCK:
98
case VK_FORMAT_ASTC_5x4_SRGB_BLOCK:
99
case VK_FORMAT_ASTC_5x5_SRGB_BLOCK:
100
case VK_FORMAT_ASTC_6x5_SRGB_BLOCK:
101
case VK_FORMAT_ASTC_6x6_SRGB_BLOCK:
102
case VK_FORMAT_ASTC_8x5_SRGB_BLOCK:
103
case VK_FORMAT_ASTC_8x6_SRGB_BLOCK:
104
case VK_FORMAT_ASTC_8x8_SRGB_BLOCK:
105
case VK_FORMAT_ASTC_10x5_SRGB_BLOCK:
106
case VK_FORMAT_ASTC_10x6_SRGB_BLOCK:
107
case VK_FORMAT_ASTC_10x8_SRGB_BLOCK:
108
case VK_FORMAT_ASTC_10x10_SRGB_BLOCK:
109
case VK_FORMAT_ASTC_12x10_SRGB_BLOCK:
110
case VK_FORMAT_ASTC_12x12_SRGB_BLOCK:
111
case VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG:
112
case VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG:
113
case VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG:
114
case VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG:
115
case VK_FORMAT_ASTC_3x3x3_SRGB_BLOCK_EXT:
116
case VK_FORMAT_ASTC_4x3x3_SRGB_BLOCK_EXT:
117
case VK_FORMAT_ASTC_4x4x3_SRGB_BLOCK_EXT:
118
case VK_FORMAT_ASTC_4x4x4_SRGB_BLOCK_EXT:
119
case VK_FORMAT_ASTC_5x4x4_SRGB_BLOCK_EXT:
120
case VK_FORMAT_ASTC_5x5x4_SRGB_BLOCK_EXT:
121
case VK_FORMAT_ASTC_5x5x5_SRGB_BLOCK_EXT:
122
case VK_FORMAT_ASTC_6x5x5_SRGB_BLOCK_EXT:
123
case VK_FORMAT_ASTC_6x6x5_SRGB_BLOCK_EXT:
124
case VK_FORMAT_ASTC_6x6x6_SRGB_BLOCK_EXT:
125
return true;
126
default:
127
return false;
128
}
129
}
130
131
bool
132
isValidFormat(VkFormat format)
133
{
134
// On MSVC VkFormat can be a signed integer
135
if ((uint32_t) format <= VK_FORMAT_MAX_STANDARD_ENUM)
136
return true;
137
else switch(format) {
138
case VK_FORMAT_G8B8G8R8_422_UNORM:
139
case VK_FORMAT_B8G8R8G8_422_UNORM:
140
case VK_FORMAT_R10X6_UNORM_PACK16:
141
case VK_FORMAT_R10X6G10X6_UNORM_2PACK16:
142
case VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16:
143
case VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16:
144
case VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16:
145
case VK_FORMAT_R12X4_UNORM_PACK16:
146
case VK_FORMAT_R12X4G12X4_UNORM_2PACK16:
147
case VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16:
148
case VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16:
149
case VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16:
150
case VK_FORMAT_G16B16G16R16_422_UNORM:
151
case VK_FORMAT_B16G16R16G16_422_UNORM:
152
case VK_FORMAT_A4R4G4B4_UNORM_PACK16:
153
case VK_FORMAT_A4B4G4R4_UNORM_PACK16:
154
case VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK:
155
case VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK:
156
case VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK:
157
case VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK:
158
case VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK:
159
case VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK:
160
case VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK:
161
case VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK:
162
case VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK:
163
case VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK:
164
case VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK:
165
case VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK:
166
case VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK:
167
case VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK:
168
case VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG:
169
case VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG:
170
case VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG:
171
case VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG:
172
case VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG:
173
case VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG:
174
case VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG:
175
case VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG:
176
case VK_FORMAT_ASTC_3x3x3_UNORM_BLOCK_EXT:
177
case VK_FORMAT_ASTC_3x3x3_SRGB_BLOCK_EXT:
178
case VK_FORMAT_ASTC_3x3x3_SFLOAT_BLOCK_EXT:
179
case VK_FORMAT_ASTC_4x3x3_UNORM_BLOCK_EXT:
180
case VK_FORMAT_ASTC_4x3x3_SRGB_BLOCK_EXT:
181
case VK_FORMAT_ASTC_4x3x3_SFLOAT_BLOCK_EXT:
182
case VK_FORMAT_ASTC_4x4x3_UNORM_BLOCK_EXT:
183
case VK_FORMAT_ASTC_4x4x3_SRGB_BLOCK_EXT:
184
case VK_FORMAT_ASTC_4x4x3_SFLOAT_BLOCK_EXT:
185
case VK_FORMAT_ASTC_4x4x4_UNORM_BLOCK_EXT:
186
case VK_FORMAT_ASTC_4x4x4_SRGB_BLOCK_EXT:
187
case VK_FORMAT_ASTC_4x4x4_SFLOAT_BLOCK_EXT:
188
case VK_FORMAT_ASTC_5x4x4_UNORM_BLOCK_EXT:
189
case VK_FORMAT_ASTC_5x4x4_SRGB_BLOCK_EXT:
190
case VK_FORMAT_ASTC_5x4x4_SFLOAT_BLOCK_EXT:
191
case VK_FORMAT_ASTC_5x5x4_UNORM_BLOCK_EXT:
192
case VK_FORMAT_ASTC_5x5x4_SRGB_BLOCK_EXT:
193
case VK_FORMAT_ASTC_5x5x4_SFLOAT_BLOCK_EXT:
194
case VK_FORMAT_ASTC_5x5x5_UNORM_BLOCK_EXT:
195
case VK_FORMAT_ASTC_5x5x5_SRGB_BLOCK_EXT:
196
case VK_FORMAT_ASTC_5x5x5_SFLOAT_BLOCK_EXT:
197
case VK_FORMAT_ASTC_6x5x5_UNORM_BLOCK_EXT:
198
case VK_FORMAT_ASTC_6x5x5_SRGB_BLOCK_EXT:
199
case VK_FORMAT_ASTC_6x5x5_SFLOAT_BLOCK_EXT:
200
case VK_FORMAT_ASTC_6x6x5_UNORM_BLOCK_EXT:
201
case VK_FORMAT_ASTC_6x6x5_SRGB_BLOCK_EXT:
202
case VK_FORMAT_ASTC_6x6x5_SFLOAT_BLOCK_EXT:
203
case VK_FORMAT_ASTC_6x6x6_UNORM_BLOCK_EXT:
204
case VK_FORMAT_ASTC_6x6x6_SRGB_BLOCK_EXT:
205
case VK_FORMAT_ASTC_6x6x6_SFLOAT_BLOCK_EXT:
206
case VK_FORMAT_R16G16_SFIXED5_NV:
207
case VK_FORMAT_A1B5G5R5_UNORM_PACK16_KHR:
208
case VK_FORMAT_A8_UNORM_KHR:
209
return true;
210
default:
211
return false;
212
}
213
}
214
215
// clang-format on
216
217