Merge vk-gl-cts/dev/VK_KHR_fragment_shader_barycentric into vk-gl-cts/main
[platform/upstream/VK-GL-CTS.git] / external / vulkancts / framework / vulkan / generated / vulkan / vkVulkan_c.inl
1 /* WARNING: This is auto-generated file. Do not modify, since changes will
2  * be lost! Modify the generating script instead.
3  * This file was generated by /scripts/gen_framework_c.py
4  */
5
6 #ifndef VULKAN_VIDEO_CODECS_COMMON_H_
7 #define VULKAN_VIDEO_CODECS_COMMON_H_ 1
8
9 /*
10 ** Copyright 2015-2022 The Khronos Group Inc.
11 **
12 ** SPDX-License-Identifier: Apache-2.0
13 */
14
15 /*
16 ** This header is generated from the Khronos Vulkan XML API Registry.
17 **
18 */
19
20
21 #ifdef __cplusplus
22 extern "C" {
23 #endif
24
25
26
27 #define vulkan_video_codecs_common 1
28 #define VK_MAKE_VIDEO_STD_VERSION(major, minor, patch) \
29     ((((deUint32)(major)) << 22) | (((deUint32)(minor)) << 12) | ((deUint32)(patch)))
30
31
32 #ifdef __cplusplus
33 }
34 #endif
35
36 #endif
37 #ifndef VULKAN_VIDEO_CODEC_H264STD_H_
38 #define VULKAN_VIDEO_CODEC_H264STD_H_ 1
39
40 /*
41 ** Copyright 2015-2022 The Khronos Group Inc.
42 **
43 ** SPDX-License-Identifier: Apache-2.0
44 */
45
46 /*
47 ** This header is generated from the Khronos Vulkan XML API Registry.
48 **
49 */
50
51
52 #ifdef __cplusplus
53 extern "C" {
54 #endif
55
56
57
58 #define vulkan_video_codec_h264std 1
59 #include <stdint.h>
60 #define STD_VIDEO_H264_CPB_CNT_LIST_SIZE  32
61 #define STD_VIDEO_H264_SCALING_LIST_4X4_NUM_LISTS 6
62 #define STD_VIDEO_H264_SCALING_LIST_4X4_NUM_ELEMENTS 16
63 #define STD_VIDEO_H264_SCALING_LIST_8X8_NUM_LISTS 2
64 #define STD_VIDEO_H264_SCALING_LIST_8X8_NUM_ELEMENTS 64
65 #define STD_VIDEO_H264_MAX_NUM_LIST_REF   32
66 #define STD_VIDEO_H264_MAX_CHROMA_PLANES  2
67
68 typedef enum StdVideoH264ChromaFormatIdc {
69     STD_VIDEO_H264_CHROMA_FORMAT_IDC_MONOCHROME = 0,
70     STD_VIDEO_H264_CHROMA_FORMAT_IDC_420 = 1,
71     STD_VIDEO_H264_CHROMA_FORMAT_IDC_422 = 2,
72     STD_VIDEO_H264_CHROMA_FORMAT_IDC_444 = 3,
73     STD_VIDEO_H264_CHROMA_FORMAT_IDC_INVALID = 0x7FFFFFFF,
74     STD_VIDEO_H264_CHROMA_FORMAT_IDC_MAX_ENUM = 0x7FFFFFFF
75 } StdVideoH264ChromaFormatIdc;
76
77 typedef enum StdVideoH264ProfileIdc {
78     STD_VIDEO_H264_PROFILE_IDC_BASELINE = 66,
79     STD_VIDEO_H264_PROFILE_IDC_MAIN = 77,
80     STD_VIDEO_H264_PROFILE_IDC_HIGH = 100,
81     STD_VIDEO_H264_PROFILE_IDC_HIGH_444_PREDICTIVE = 244,
82     STD_VIDEO_H264_PROFILE_IDC_INVALID = 0x7FFFFFFF,
83     STD_VIDEO_H264_PROFILE_IDC_MAX_ENUM = 0x7FFFFFFF
84 } StdVideoH264ProfileIdc;
85
86 typedef enum StdVideoH264Level {
87     STD_VIDEO_H264_LEVEL_1_0 = 0,
88     STD_VIDEO_H264_LEVEL_1_1 = 1,
89     STD_VIDEO_H264_LEVEL_1_2 = 2,
90     STD_VIDEO_H264_LEVEL_1_3 = 3,
91     STD_VIDEO_H264_LEVEL_2_0 = 4,
92     STD_VIDEO_H264_LEVEL_2_1 = 5,
93     STD_VIDEO_H264_LEVEL_2_2 = 6,
94     STD_VIDEO_H264_LEVEL_3_0 = 7,
95     STD_VIDEO_H264_LEVEL_3_1 = 8,
96     STD_VIDEO_H264_LEVEL_3_2 = 9,
97     STD_VIDEO_H264_LEVEL_4_0 = 10,
98     STD_VIDEO_H264_LEVEL_4_1 = 11,
99     STD_VIDEO_H264_LEVEL_4_2 = 12,
100     STD_VIDEO_H264_LEVEL_5_0 = 13,
101     STD_VIDEO_H264_LEVEL_5_1 = 14,
102     STD_VIDEO_H264_LEVEL_5_2 = 15,
103     STD_VIDEO_H264_LEVEL_6_0 = 16,
104     STD_VIDEO_H264_LEVEL_6_1 = 17,
105     STD_VIDEO_H264_LEVEL_6_2 = 18,
106     STD_VIDEO_H264_LEVEL_INVALID = 0x7FFFFFFF,
107     STD_VIDEO_H264_LEVEL_MAX_ENUM = 0x7FFFFFFF
108 } StdVideoH264Level;
109
110 typedef enum StdVideoH264PocType {
111     STD_VIDEO_H264_POC_TYPE_0 = 0,
112     STD_VIDEO_H264_POC_TYPE_1 = 1,
113     STD_VIDEO_H264_POC_TYPE_2 = 2,
114     STD_VIDEO_H264_POC_TYPE_INVALID = 0x7FFFFFFF,
115     STD_VIDEO_H264_POC_TYPE_MAX_ENUM = 0x7FFFFFFF
116 } StdVideoH264PocType;
117
118 typedef enum StdVideoH264AspectRatioIdc {
119     STD_VIDEO_H264_ASPECT_RATIO_IDC_UNSPECIFIED = 0,
120     STD_VIDEO_H264_ASPECT_RATIO_IDC_SQUARE = 1,
121     STD_VIDEO_H264_ASPECT_RATIO_IDC_12_11 = 2,
122     STD_VIDEO_H264_ASPECT_RATIO_IDC_10_11 = 3,
123     STD_VIDEO_H264_ASPECT_RATIO_IDC_16_11 = 4,
124     STD_VIDEO_H264_ASPECT_RATIO_IDC_40_33 = 5,
125     STD_VIDEO_H264_ASPECT_RATIO_IDC_24_11 = 6,
126     STD_VIDEO_H264_ASPECT_RATIO_IDC_20_11 = 7,
127     STD_VIDEO_H264_ASPECT_RATIO_IDC_32_11 = 8,
128     STD_VIDEO_H264_ASPECT_RATIO_IDC_80_33 = 9,
129     STD_VIDEO_H264_ASPECT_RATIO_IDC_18_11 = 10,
130     STD_VIDEO_H264_ASPECT_RATIO_IDC_15_11 = 11,
131     STD_VIDEO_H264_ASPECT_RATIO_IDC_64_33 = 12,
132     STD_VIDEO_H264_ASPECT_RATIO_IDC_160_99 = 13,
133     STD_VIDEO_H264_ASPECT_RATIO_IDC_4_3 = 14,
134     STD_VIDEO_H264_ASPECT_RATIO_IDC_3_2 = 15,
135     STD_VIDEO_H264_ASPECT_RATIO_IDC_2_1 = 16,
136     STD_VIDEO_H264_ASPECT_RATIO_IDC_EXTENDED_SAR = 255,
137     STD_VIDEO_H264_ASPECT_RATIO_IDC_INVALID = 0x7FFFFFFF,
138     STD_VIDEO_H264_ASPECT_RATIO_IDC_MAX_ENUM = 0x7FFFFFFF
139 } StdVideoH264AspectRatioIdc;
140
141 typedef enum StdVideoH264WeightedBipredIdc {
142     STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_DEFAULT = 0,
143     STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_EXPLICIT = 1,
144     STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_IMPLICIT = 2,
145     STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_INVALID = 0x7FFFFFFF,
146     STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_MAX_ENUM = 0x7FFFFFFF
147 } StdVideoH264WeightedBipredIdc;
148
149 typedef enum StdVideoH264ModificationOfPicNumsIdc {
150     STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_SHORT_TERM_SUBTRACT = 0,
151     STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_SHORT_TERM_ADD = 1,
152     STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_LONG_TERM = 2,
153     STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_END = 3,
154     STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_INVALID = 0x7FFFFFFF,
155     STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_MAX_ENUM = 0x7FFFFFFF
156 } StdVideoH264ModificationOfPicNumsIdc;
157
158 typedef enum StdVideoH264MemMgmtControlOp {
159     STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_END = 0,
160     STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_UNMARK_SHORT_TERM = 1,
161     STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_UNMARK_LONG_TERM = 2,
162     STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_MARK_LONG_TERM = 3,
163     STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_SET_MAX_LONG_TERM_INDEX = 4,
164     STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_UNMARK_ALL = 5,
165     STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_MARK_CURRENT_AS_LONG_TERM = 6,
166     STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_INVALID = 0x7FFFFFFF,
167     STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_MAX_ENUM = 0x7FFFFFFF
168 } StdVideoH264MemMgmtControlOp;
169
170 typedef enum StdVideoH264CabacInitIdc {
171     STD_VIDEO_H264_CABAC_INIT_IDC_0 = 0,
172     STD_VIDEO_H264_CABAC_INIT_IDC_1 = 1,
173     STD_VIDEO_H264_CABAC_INIT_IDC_2 = 2,
174     STD_VIDEO_H264_CABAC_INIT_IDC_INVALID = 0x7FFFFFFF,
175     STD_VIDEO_H264_CABAC_INIT_IDC_MAX_ENUM = 0x7FFFFFFF
176 } StdVideoH264CabacInitIdc;
177
178 typedef enum StdVideoH264DisableDeblockingFilterIdc {
179     STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_DISABLED = 0,
180     STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_ENABLED = 1,
181     STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_PARTIAL = 2,
182     STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_INVALID = 0x7FFFFFFF,
183     STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_MAX_ENUM = 0x7FFFFFFF
184 } StdVideoH264DisableDeblockingFilterIdc;
185
186 typedef enum StdVideoH264SliceType {
187     STD_VIDEO_H264_SLICE_TYPE_P = 0,
188     STD_VIDEO_H264_SLICE_TYPE_B = 1,
189     STD_VIDEO_H264_SLICE_TYPE_I = 2,
190     STD_VIDEO_H264_SLICE_TYPE_INVALID = 0x7FFFFFFF,
191     STD_VIDEO_H264_SLICE_TYPE_MAX_ENUM = 0x7FFFFFFF
192 } StdVideoH264SliceType;
193
194 typedef enum StdVideoH264PictureType {
195     STD_VIDEO_H264_PICTURE_TYPE_P = 0,
196     STD_VIDEO_H264_PICTURE_TYPE_B = 1,
197     STD_VIDEO_H264_PICTURE_TYPE_I = 2,
198     STD_VIDEO_H264_PICTURE_TYPE_IDR = 5,
199     STD_VIDEO_H264_PICTURE_TYPE_INVALID = 0x7FFFFFFF,
200     STD_VIDEO_H264_PICTURE_TYPE_MAX_ENUM = 0x7FFFFFFF
201 } StdVideoH264PictureType;
202
203 typedef enum StdVideoH264NonVclNaluType {
204     STD_VIDEO_H264_NON_VCL_NALU_TYPE_SPS = 0,
205     STD_VIDEO_H264_NON_VCL_NALU_TYPE_PPS = 1,
206     STD_VIDEO_H264_NON_VCL_NALU_TYPE_AUD = 2,
207     STD_VIDEO_H264_NON_VCL_NALU_TYPE_PREFIX = 3,
208     STD_VIDEO_H264_NON_VCL_NALU_TYPE_END_OF_SEQUENCE = 4,
209     STD_VIDEO_H264_NON_VCL_NALU_TYPE_END_OF_STREAM = 5,
210     STD_VIDEO_H264_NON_VCL_NALU_TYPE_PRECODED = 6,
211     STD_VIDEO_H264_NON_VCL_NALU_TYPE_INVALID = 0x7FFFFFFF,
212     STD_VIDEO_H264_NON_VCL_NALU_TYPE_MAX_ENUM = 0x7FFFFFFF
213 } StdVideoH264NonVclNaluType;
214 typedef struct StdVideoH264SpsVuiFlags {
215     deUint32    aspect_ratio_info_present_flag : 1;
216     deUint32    overscan_info_present_flag : 1;
217     deUint32    overscan_appropriate_flag : 1;
218     deUint32    video_signal_type_present_flag : 1;
219     deUint32    video_full_range_flag : 1;
220     deUint32    color_description_present_flag : 1;
221     deUint32    chroma_loc_info_present_flag : 1;
222     deUint32    timing_info_present_flag : 1;
223     deUint32    fixed_frame_rate_flag : 1;
224     deUint32    bitstream_restriction_flag : 1;
225     deUint32    nal_hrd_parameters_present_flag : 1;
226     deUint32    vcl_hrd_parameters_present_flag : 1;
227 } StdVideoH264SpsVuiFlags;
228
229 typedef struct StdVideoH264HrdParameters {
230     deUint8     cpb_cnt_minus1;
231     deUint8     bit_rate_scale;
232     deUint8     cpb_size_scale;
233     deUint32    bit_rate_value_minus1[STD_VIDEO_H264_CPB_CNT_LIST_SIZE];
234     deUint32    cpb_size_value_minus1[STD_VIDEO_H264_CPB_CNT_LIST_SIZE];
235     deUint8     cbr_flag[STD_VIDEO_H264_CPB_CNT_LIST_SIZE];
236     deUint32    initial_cpb_removal_delay_length_minus1;
237     deUint32    cpb_removal_delay_length_minus1;
238     deUint32    dpb_output_delay_length_minus1;
239     deUint32    time_offset_length;
240 } StdVideoH264HrdParameters;
241
242 typedef struct StdVideoH264SequenceParameterSetVui {
243     StdVideoH264SpsVuiFlags             flags;
244     StdVideoH264AspectRatioIdc          aspect_ratio_idc;
245     deUint16                            sar_width;
246     deUint16                            sar_height;
247     deUint8                             video_format;
248     deUint8                             color_primaries;
249     deUint8                             transfer_characteristics;
250     deUint8                             matrix_coefficients;
251     deUint32                            num_units_in_tick;
252     deUint32                            time_scale;
253     const StdVideoH264HrdParameters*    pHrdParameters;
254     deUint8                             max_num_reorder_frames;
255     deUint8                             max_dec_frame_buffering;
256 } StdVideoH264SequenceParameterSetVui;
257
258 typedef struct StdVideoH264SpsFlags {
259     deUint32    constraint_set0_flag : 1;
260     deUint32    constraint_set1_flag : 1;
261     deUint32    constraint_set2_flag : 1;
262     deUint32    constraint_set3_flag : 1;
263     deUint32    constraint_set4_flag : 1;
264     deUint32    constraint_set5_flag : 1;
265     deUint32    direct_8x8_inference_flag : 1;
266     deUint32    mb_adaptive_frame_field_flag : 1;
267     deUint32    frame_mbs_only_flag : 1;
268     deUint32    delta_pic_order_always_zero_flag : 1;
269     deUint32    separate_colour_plane_flag : 1;
270     deUint32    gaps_in_frame_num_value_allowed_flag : 1;
271     deUint32    qpprime_y_zero_transform_bypass_flag : 1;
272     deUint32    frame_cropping_flag : 1;
273     deUint32    seq_scaling_matrix_present_flag : 1;
274     deUint32    vui_parameters_present_flag : 1;
275 } StdVideoH264SpsFlags;
276
277 typedef struct StdVideoH264ScalingLists {
278     deUint8    scaling_list_present_mask;
279     deUint8    use_default_scaling_matrix_mask;
280     deUint8    ScalingList4x4[STD_VIDEO_H264_SCALING_LIST_4X4_NUM_LISTS][STD_VIDEO_H264_SCALING_LIST_4X4_NUM_ELEMENTS];
281     deUint8    ScalingList8x8[STD_VIDEO_H264_SCALING_LIST_8X8_NUM_LISTS][STD_VIDEO_H264_SCALING_LIST_8X8_NUM_ELEMENTS];
282 } StdVideoH264ScalingLists;
283
284 typedef struct StdVideoH264SequenceParameterSet {
285     StdVideoH264SpsFlags                          flags;
286     StdVideoH264ProfileIdc                        profile_idc;
287     StdVideoH264Level                             level_idc;
288     deUint8                                       seq_parameter_set_id;
289     StdVideoH264ChromaFormatIdc                   chroma_format_idc;
290     deUint8                                       bit_depth_luma_minus8;
291     deUint8                                       bit_depth_chroma_minus8;
292     deUint8                                       log2_max_frame_num_minus4;
293     StdVideoH264PocType                           pic_order_cnt_type;
294     deUint8                                       log2_max_pic_order_cnt_lsb_minus4;
295     deInt32                                       offset_for_non_ref_pic;
296     deInt32                                       offset_for_top_to_bottom_field;
297     deUint8                                       num_ref_frames_in_pic_order_cnt_cycle;
298     deUint8                                       max_num_ref_frames;
299     deUint32                                      pic_width_in_mbs_minus1;
300     deUint32                                      pic_height_in_map_units_minus1;
301     deUint32                                      frame_crop_left_offset;
302     deUint32                                      frame_crop_right_offset;
303     deUint32                                      frame_crop_top_offset;
304     deUint32                                      frame_crop_bottom_offset;
305     const deInt32*                                pOffsetForRefFrame;
306     const StdVideoH264ScalingLists*               pScalingLists;
307     const StdVideoH264SequenceParameterSetVui*    pSequenceParameterSetVui;
308 } StdVideoH264SequenceParameterSet;
309
310 typedef struct StdVideoH264PpsFlags {
311     deUint32    transform_8x8_mode_flag : 1;
312     deUint32    redundant_pic_cnt_present_flag : 1;
313     deUint32    constrained_intra_pred_flag : 1;
314     deUint32    deblocking_filter_control_present_flag : 1;
315     deUint32    weighted_bipred_idc_flag : 1;
316     deUint32    weighted_pred_flag : 1;
317     deUint32    pic_order_present_flag : 1;
318     deUint32    entropy_coding_mode_flag : 1;
319     deUint32    pic_scaling_matrix_present_flag : 1;
320 } StdVideoH264PpsFlags;
321
322 typedef struct StdVideoH264PictureParameterSet {
323     StdVideoH264PpsFlags               flags;
324     deUint8                            seq_parameter_set_id;
325     deUint8                            pic_parameter_set_id;
326     deUint8                            num_ref_idx_l0_default_active_minus1;
327     deUint8                            num_ref_idx_l1_default_active_minus1;
328     StdVideoH264WeightedBipredIdc      weighted_bipred_idc;
329     deInt8                             pic_init_qp_minus26;
330     deInt8                             pic_init_qs_minus26;
331     deInt8                             chroma_qp_index_offset;
332     deInt8                             second_chroma_qp_index_offset;
333     const StdVideoH264ScalingLists*    pScalingLists;
334 } StdVideoH264PictureParameterSet;
335
336
337 #ifdef __cplusplus
338 }
339 #endif
340
341 #endif
342 #ifndef VULKAN_VIDEO_CODEC_H264STD_ENCODE_H_
343 #define VULKAN_VIDEO_CODEC_H264STD_ENCODE_H_ 1
344
345 /*
346 ** Copyright 2015-2022 The Khronos Group Inc.
347 **
348 ** SPDX-License-Identifier: Apache-2.0
349 */
350
351 /*
352 ** This header is generated from the Khronos Vulkan XML API Registry.
353 **
354 */
355
356
357 #ifdef __cplusplus
358 extern "C" {
359 #endif
360
361
362
363 #define vulkan_video_codec_h264std_encode 1
364 // Vulkan 0.9 provisional Vulkan video H.264 encode std specification version number
365 #define VK_STD_VULKAN_VIDEO_CODEC_H264_ENCODE_API_VERSION_0_9_6 VK_MAKE_VIDEO_STD_VERSION(0, 9, 6) // Patch version should always be set to 0
366
367 #define VK_STD_VULKAN_VIDEO_CODEC_H264_ENCODE_SPEC_VERSION VK_STD_VULKAN_VIDEO_CODEC_H264_ENCODE_API_VERSION_0_9_6
368 #define VK_STD_VULKAN_VIDEO_CODEC_H264_ENCODE_EXTENSION_NAME "VK_STD_vulkan_video_codec_h264_encode"
369 typedef struct StdVideoEncodeH264WeightTableFlags {
370     deUint32    luma_weight_l0_flag;
371     deUint32    chroma_weight_l0_flag;
372     deUint32    luma_weight_l1_flag;
373     deUint32    chroma_weight_l1_flag;
374 } StdVideoEncodeH264WeightTableFlags;
375
376 typedef struct StdVideoEncodeH264WeightTable {
377     StdVideoEncodeH264WeightTableFlags    flags;
378     deUint8                               luma_log2_weight_denom;
379     deUint8                               chroma_log2_weight_denom;
380     deInt8                                luma_weight_l0[STD_VIDEO_H264_MAX_NUM_LIST_REF];
381     deInt8                                luma_offset_l0[STD_VIDEO_H264_MAX_NUM_LIST_REF];
382     deInt8                                chroma_weight_l0[STD_VIDEO_H264_MAX_NUM_LIST_REF][STD_VIDEO_H264_MAX_CHROMA_PLANES];
383     deInt8                                chroma_offset_l0[STD_VIDEO_H264_MAX_NUM_LIST_REF][STD_VIDEO_H264_MAX_CHROMA_PLANES];
384     deInt8                                luma_weight_l1[STD_VIDEO_H264_MAX_NUM_LIST_REF];
385     deInt8                                luma_offset_l1[STD_VIDEO_H264_MAX_NUM_LIST_REF];
386     deInt8                                chroma_weight_l1[STD_VIDEO_H264_MAX_NUM_LIST_REF][STD_VIDEO_H264_MAX_CHROMA_PLANES];
387     deInt8                                chroma_offset_l1[STD_VIDEO_H264_MAX_NUM_LIST_REF][STD_VIDEO_H264_MAX_CHROMA_PLANES];
388 } StdVideoEncodeH264WeightTable;
389
390 typedef struct StdVideoEncodeH264SliceHeaderFlags {
391     deUint32    direct_spatial_mv_pred_flag : 1;
392     deUint32    num_ref_idx_active_override_flag : 1;
393     deUint32    no_output_of_prior_pics_flag : 1;
394     deUint32    adaptive_ref_pic_marking_mode_flag : 1;
395     deUint32    no_prior_references_available_flag : 1;
396 } StdVideoEncodeH264SliceHeaderFlags;
397
398 typedef struct StdVideoEncodeH264PictureInfoFlags {
399     deUint32    idr_flag : 1;
400     deUint32    is_reference_flag : 1;
401     deUint32    used_for_long_term_reference : 1;
402 } StdVideoEncodeH264PictureInfoFlags;
403
404 typedef struct StdVideoEncodeH264ReferenceInfoFlags {
405     deUint32    used_for_long_term_reference : 1;
406 } StdVideoEncodeH264ReferenceInfoFlags;
407
408 typedef struct StdVideoEncodeH264RefMgmtFlags {
409     deUint32    ref_pic_list_modification_l0_flag : 1;
410     deUint32    ref_pic_list_modification_l1_flag : 1;
411 } StdVideoEncodeH264RefMgmtFlags;
412
413 typedef struct StdVideoEncodeH264RefListModEntry {
414     StdVideoH264ModificationOfPicNumsIdc    modification_of_pic_nums_idc;
415     deUint16                                abs_diff_pic_num_minus1;
416     deUint16                                long_term_pic_num;
417 } StdVideoEncodeH264RefListModEntry;
418
419 typedef struct StdVideoEncodeH264RefPicMarkingEntry {
420     StdVideoH264MemMgmtControlOp    operation;
421     deUint16                        difference_of_pic_nums_minus1;
422     deUint16                        long_term_pic_num;
423     deUint16                        long_term_frame_idx;
424     deUint16                        max_long_term_frame_idx_plus1;
425 } StdVideoEncodeH264RefPicMarkingEntry;
426
427 typedef struct StdVideoEncodeH264RefMemMgmtCtrlOperations {
428     StdVideoEncodeH264RefMgmtFlags                 flags;
429     deUint8                                        refList0ModOpCount;
430     const StdVideoEncodeH264RefListModEntry*       pRefList0ModOperations;
431     deUint8                                        refList1ModOpCount;
432     const StdVideoEncodeH264RefListModEntry*       pRefList1ModOperations;
433     deUint8                                        refPicMarkingOpCount;
434     const StdVideoEncodeH264RefPicMarkingEntry*    pRefPicMarkingOperations;
435 } StdVideoEncodeH264RefMemMgmtCtrlOperations;
436
437 typedef struct StdVideoEncodeH264PictureInfo {
438     StdVideoEncodeH264PictureInfoFlags    flags;
439     deUint8                               seq_parameter_set_id;
440     deUint8                               pic_parameter_set_id;
441     StdVideoH264PictureType               pictureType;
442     deUint32                              frame_num;
443     deInt32                               PicOrderCnt;
444 } StdVideoEncodeH264PictureInfo;
445
446 typedef struct StdVideoEncodeH264ReferenceInfo {
447     StdVideoEncodeH264ReferenceInfoFlags    flags;
448     deUint32                                FrameNum;
449     deInt32                                 PicOrderCnt;
450     deUint16                                long_term_pic_num;
451     deUint16                                long_term_frame_idx;
452 } StdVideoEncodeH264ReferenceInfo;
453
454 typedef struct StdVideoEncodeH264SliceHeader {
455     StdVideoEncodeH264SliceHeaderFlags        flags;
456     deUint32                                  first_mb_in_slice;
457     StdVideoH264SliceType                     slice_type;
458     deUint16                                  idr_pic_id;
459     deUint8                                   num_ref_idx_l0_active_minus1;
460     deUint8                                   num_ref_idx_l1_active_minus1;
461     StdVideoH264CabacInitIdc                  cabac_init_idc;
462     StdVideoH264DisableDeblockingFilterIdc    disable_deblocking_filter_idc;
463     deInt8                                    slice_alpha_c0_offset_div2;
464     deInt8                                    slice_beta_offset_div2;
465     const StdVideoEncodeH264WeightTable*      pWeightTable;
466 } StdVideoEncodeH264SliceHeader;
467
468
469 #ifdef __cplusplus
470 }
471 #endif
472
473 #endif
474 #ifndef VULKAN_VIDEO_CODEC_H265STD_H_
475 #define VULKAN_VIDEO_CODEC_H265STD_H_ 1
476
477 /*
478 ** Copyright 2015-2022 The Khronos Group Inc.
479 **
480 ** SPDX-License-Identifier: Apache-2.0
481 */
482
483 /*
484 ** This header is generated from the Khronos Vulkan XML API Registry.
485 **
486 */
487
488
489 #ifdef __cplusplus
490 extern "C" {
491 #endif
492
493
494
495 #define vulkan_video_codec_h265std 1
496 #define STD_VIDEO_H265_SUBLAYERS_MINUS1_LIST_SIZE 7
497 #define STD_VIDEO_H265_CPB_CNT_LIST_SIZE  32
498 #define STD_VIDEO_H265_SCALING_LIST_4X4_NUM_LISTS 6
499 #define STD_VIDEO_H265_SCALING_LIST_4X4_NUM_ELEMENTS 16
500 #define STD_VIDEO_H265_SCALING_LIST_8X8_NUM_LISTS 6
501 #define STD_VIDEO_H265_SCALING_LIST_8X8_NUM_ELEMENTS 64
502 #define STD_VIDEO_H265_SCALING_LIST_16X16_NUM_LISTS 6
503 #define STD_VIDEO_H265_SCALING_LIST_16X16_NUM_ELEMENTS 64
504 #define STD_VIDEO_H265_SCALING_LIST_32X32_NUM_LISTS 2
505 #define STD_VIDEO_H265_SCALING_LIST_32X32_NUM_ELEMENTS 64
506 #define STD_VIDEO_H265_PREDICTOR_PALETTE_COMPONENTS_LIST_SIZE 3
507 #define STD_VIDEO_H265_PREDICTOR_PALETTE_COMP_ENTRIES_LIST_SIZE 128
508 #define STD_VIDEO_H265_CHROMA_QP_OFFSET_TILE_COLS_LIST_SIZE 19
509 #define STD_VIDEO_H265_CHROMA_QP_OFFSET_TILE_ROWS_LIST_SIZE 21
510 #define STD_VIDEO_H265_CHROMA_QP_OFFSET_LIST_SIZE 6
511 #define STD_VIDEO_H265_MAX_NUM_LIST_REF   15
512 #define STD_VIDEO_H265_MAX_CHROMA_PLANES  2
513
514 typedef enum StdVideoH265ChromaFormatIdc {
515     STD_VIDEO_H265_CHROMA_FORMAT_IDC_MONOCHROME = 0,
516     STD_VIDEO_H265_CHROMA_FORMAT_IDC_420 = 1,
517     STD_VIDEO_H265_CHROMA_FORMAT_IDC_422 = 2,
518     STD_VIDEO_H265_CHROMA_FORMAT_IDC_444 = 3,
519     STD_VIDEO_H265_CHROMA_FORMAT_IDC_INVALID = 0x7FFFFFFF,
520     STD_VIDEO_H265_CHROMA_FORMAT_IDC_MAX_ENUM = 0x7FFFFFFF
521 } StdVideoH265ChromaFormatIdc;
522
523 typedef enum StdVideoH265ProfileIdc {
524     STD_VIDEO_H265_PROFILE_IDC_MAIN = 1,
525     STD_VIDEO_H265_PROFILE_IDC_MAIN_10 = 2,
526     STD_VIDEO_H265_PROFILE_IDC_MAIN_STILL_PICTURE = 3,
527     STD_VIDEO_H265_PROFILE_IDC_FORMAT_RANGE_EXTENSIONS = 4,
528     STD_VIDEO_H265_PROFILE_IDC_SCC_EXTENSIONS = 9,
529     STD_VIDEO_H265_PROFILE_IDC_INVALID = 0x7FFFFFFF,
530     STD_VIDEO_H265_PROFILE_IDC_MAX_ENUM = 0x7FFFFFFF
531 } StdVideoH265ProfileIdc;
532
533 typedef enum StdVideoH265Level {
534     STD_VIDEO_H265_LEVEL_1_0 = 0,
535     STD_VIDEO_H265_LEVEL_2_0 = 1,
536     STD_VIDEO_H265_LEVEL_2_1 = 2,
537     STD_VIDEO_H265_LEVEL_3_0 = 3,
538     STD_VIDEO_H265_LEVEL_3_1 = 4,
539     STD_VIDEO_H265_LEVEL_4_0 = 5,
540     STD_VIDEO_H265_LEVEL_4_1 = 6,
541     STD_VIDEO_H265_LEVEL_5_0 = 7,
542     STD_VIDEO_H265_LEVEL_5_1 = 8,
543     STD_VIDEO_H265_LEVEL_5_2 = 9,
544     STD_VIDEO_H265_LEVEL_6_0 = 10,
545     STD_VIDEO_H265_LEVEL_6_1 = 11,
546     STD_VIDEO_H265_LEVEL_6_2 = 12,
547     STD_VIDEO_H265_LEVEL_INVALID = 0x7FFFFFFF,
548     STD_VIDEO_H265_LEVEL_MAX_ENUM = 0x7FFFFFFF
549 } StdVideoH265Level;
550
551 typedef enum StdVideoH265SliceType {
552     STD_VIDEO_H265_SLICE_TYPE_B = 0,
553     STD_VIDEO_H265_SLICE_TYPE_P = 1,
554     STD_VIDEO_H265_SLICE_TYPE_I = 2,
555     STD_VIDEO_H265_SLICE_TYPE_INVALID = 0x7FFFFFFF,
556     STD_VIDEO_H265_SLICE_TYPE_MAX_ENUM = 0x7FFFFFFF
557 } StdVideoH265SliceType;
558
559 typedef enum StdVideoH265PictureType {
560     STD_VIDEO_H265_PICTURE_TYPE_P = 0,
561     STD_VIDEO_H265_PICTURE_TYPE_B = 1,
562     STD_VIDEO_H265_PICTURE_TYPE_I = 2,
563     STD_VIDEO_H265_PICTURE_TYPE_IDR = 3,
564     STD_VIDEO_H265_PICTURE_TYPE_INVALID = 0x7FFFFFFF,
565     STD_VIDEO_H265_PICTURE_TYPE_MAX_ENUM = 0x7FFFFFFF
566 } StdVideoH265PictureType;
567 typedef struct StdVideoH265DecPicBufMgr {
568     deUint32    max_latency_increase_plus1[STD_VIDEO_H265_SUBLAYERS_MINUS1_LIST_SIZE];
569     deUint8     max_dec_pic_buffering_minus1[STD_VIDEO_H265_SUBLAYERS_MINUS1_LIST_SIZE];
570     deUint8     max_num_reorder_pics[STD_VIDEO_H265_SUBLAYERS_MINUS1_LIST_SIZE];
571 } StdVideoH265DecPicBufMgr;
572
573 typedef struct StdVideoH265SubLayerHrdParameters {
574     deUint32    bit_rate_value_minus1[STD_VIDEO_H265_CPB_CNT_LIST_SIZE];
575     deUint32    cpb_size_value_minus1[STD_VIDEO_H265_CPB_CNT_LIST_SIZE];
576     deUint32    cpb_size_du_value_minus1[STD_VIDEO_H265_CPB_CNT_LIST_SIZE];
577     deUint32    bit_rate_du_value_minus1[STD_VIDEO_H265_CPB_CNT_LIST_SIZE];
578     deUint32    cbr_flag;
579 } StdVideoH265SubLayerHrdParameters;
580
581 typedef struct StdVideoH265HrdFlags {
582     deUint32    nal_hrd_parameters_present_flag : 1;
583     deUint32    vcl_hrd_parameters_present_flag : 1;
584     deUint32    sub_pic_hrd_params_present_flag : 1;
585     deUint32    sub_pic_cpb_params_in_pic_timing_sei_flag : 1;
586     deUint32    fixed_pic_rate_general_flag : 8;
587     deUint32    fixed_pic_rate_within_cvs_flag : 8;
588     deUint32    low_delay_hrd_flag : 8;
589 } StdVideoH265HrdFlags;
590
591 typedef struct StdVideoH265HrdParameters {
592     StdVideoH265HrdFlags                        flags;
593     deUint8                                     tick_divisor_minus2;
594     deUint8                                     du_cpb_removal_delay_increment_length_minus1;
595     deUint8                                     dpb_output_delay_du_length_minus1;
596     deUint8                                     bit_rate_scale;
597     deUint8                                     cpb_size_scale;
598     deUint8                                     cpb_size_du_scale;
599     deUint8                                     initial_cpb_removal_delay_length_minus1;
600     deUint8                                     au_cpb_removal_delay_length_minus1;
601     deUint8                                     dpb_output_delay_length_minus1;
602     deUint8                                     cpb_cnt_minus1[STD_VIDEO_H265_SUBLAYERS_MINUS1_LIST_SIZE];
603     deUint16                                    elemental_duration_in_tc_minus1[STD_VIDEO_H265_SUBLAYERS_MINUS1_LIST_SIZE];
604     const StdVideoH265SubLayerHrdParameters*    pSubLayerHrdParametersNal[STD_VIDEO_H265_SUBLAYERS_MINUS1_LIST_SIZE];
605     const StdVideoH265SubLayerHrdParameters*    pSubLayerHrdParametersVcl[STD_VIDEO_H265_SUBLAYERS_MINUS1_LIST_SIZE];
606 } StdVideoH265HrdParameters;
607
608 typedef struct StdVideoH265VpsFlags {
609     deUint32    vps_temporal_id_nesting_flag : 1;
610     deUint32    vps_sub_layer_ordering_info_present_flag : 1;
611     deUint32    vps_timing_info_present_flag : 1;
612     deUint32    vps_poc_proportional_to_timing_flag : 1;
613 } StdVideoH265VpsFlags;
614
615 typedef struct StdVideoH265VideoParameterSet {
616     StdVideoH265VpsFlags                flags;
617     deUint8                             vps_video_parameter_set_id;
618     deUint8                             vps_max_sub_layers_minus1;
619     deUint32                            vps_num_units_in_tick;
620     deUint32                            vps_time_scale;
621     deUint32                            vps_num_ticks_poc_diff_one_minus1;
622     const StdVideoH265DecPicBufMgr*     pDecPicBufMgr;
623     const StdVideoH265HrdParameters*    pHrdParameters;
624 } StdVideoH265VideoParameterSet;
625
626 typedef struct StdVideoH265ScalingLists {
627     deUint8    ScalingList4x4[STD_VIDEO_H265_SCALING_LIST_4X4_NUM_LISTS][STD_VIDEO_H265_SCALING_LIST_4X4_NUM_ELEMENTS];
628     deUint8    ScalingList8x8[STD_VIDEO_H265_SCALING_LIST_8X8_NUM_LISTS][STD_VIDEO_H265_SCALING_LIST_8X8_NUM_ELEMENTS];
629     deUint8    ScalingList16x16[STD_VIDEO_H265_SCALING_LIST_16X16_NUM_LISTS][STD_VIDEO_H265_SCALING_LIST_16X16_NUM_ELEMENTS];
630     deUint8    ScalingList32x32[STD_VIDEO_H265_SCALING_LIST_32X32_NUM_LISTS][STD_VIDEO_H265_SCALING_LIST_32X32_NUM_ELEMENTS];
631     deUint8    ScalingListDCCoef16x16[STD_VIDEO_H265_SCALING_LIST_16X16_NUM_LISTS];
632     deUint8    ScalingListDCCoef32x32[STD_VIDEO_H265_SCALING_LIST_32X32_NUM_LISTS];
633 } StdVideoH265ScalingLists;
634
635 typedef struct StdVideoH265SpsVuiFlags {
636     deUint32    aspect_ratio_info_present_flag : 1;
637     deUint32    overscan_info_present_flag : 1;
638     deUint32    overscan_appropriate_flag : 1;
639     deUint32    video_signal_type_present_flag : 1;
640     deUint32    video_full_range_flag : 1;
641     deUint32    colour_description_present_flag : 1;
642     deUint32    chroma_loc_info_present_flag : 1;
643     deUint32    neutral_chroma_indication_flag : 1;
644     deUint32    field_seq_flag : 1;
645     deUint32    frame_field_info_present_flag : 1;
646     deUint32    default_display_window_flag : 1;
647     deUint32    vui_timing_info_present_flag : 1;
648     deUint32    vui_poc_proportional_to_timing_flag : 1;
649     deUint32    vui_hrd_parameters_present_flag : 1;
650     deUint32    bitstream_restriction_flag : 1;
651     deUint32    tiles_fixed_structure_flag : 1;
652     deUint32    motion_vectors_over_pic_boundaries_flag : 1;
653     deUint32    restricted_ref_pic_lists_flag : 1;
654 } StdVideoH265SpsVuiFlags;
655
656 typedef struct StdVideoH265SequenceParameterSetVui {
657     StdVideoH265SpsVuiFlags             flags;
658     deUint8                             aspect_ratio_idc;
659     deUint16                            sar_width;
660     deUint16                            sar_height;
661     deUint8                             video_format;
662     deUint8                             colour_primaries;
663     deUint8                             transfer_characteristics;
664     deUint8                             matrix_coeffs;
665     deUint8                             chroma_sample_loc_type_top_field;
666     deUint8                             chroma_sample_loc_type_bottom_field;
667     deUint16                            def_disp_win_left_offset;
668     deUint16                            def_disp_win_right_offset;
669     deUint16                            def_disp_win_top_offset;
670     deUint16                            def_disp_win_bottom_offset;
671     deUint32                            vui_num_units_in_tick;
672     deUint32                            vui_time_scale;
673     deUint32                            vui_num_ticks_poc_diff_one_minus1;
674     const StdVideoH265HrdParameters*    pHrdParameters;
675     deUint16                            min_spatial_segmentation_idc;
676     deUint8                             max_bytes_per_pic_denom;
677     deUint8                             max_bits_per_min_cu_denom;
678     deUint8                             log2_max_mv_length_horizontal;
679     deUint8                             log2_max_mv_length_vertical;
680 } StdVideoH265SequenceParameterSetVui;
681
682 typedef struct StdVideoH265PredictorPaletteEntries {
683     deUint16    PredictorPaletteEntries[STD_VIDEO_H265_PREDICTOR_PALETTE_COMPONENTS_LIST_SIZE][STD_VIDEO_H265_PREDICTOR_PALETTE_COMP_ENTRIES_LIST_SIZE];
684 } StdVideoH265PredictorPaletteEntries;
685
686 typedef struct StdVideoH265SpsFlags {
687     deUint32    sps_temporal_id_nesting_flag : 1;
688     deUint32    separate_colour_plane_flag : 1;
689     deUint32    scaling_list_enabled_flag : 1;
690     deUint32    sps_scaling_list_data_present_flag : 1;
691     deUint32    amp_enabled_flag : 1;
692     deUint32    sample_adaptive_offset_enabled_flag : 1;
693     deUint32    pcm_enabled_flag : 1;
694     deUint32    pcm_loop_filter_disabled_flag : 1;
695     deUint32    long_term_ref_pics_present_flag : 1;
696     deUint32    sps_temporal_mvp_enabled_flag : 1;
697     deUint32    strong_intra_smoothing_enabled_flag : 1;
698     deUint32    vui_parameters_present_flag : 1;
699     deUint32    sps_extension_present_flag : 1;
700     deUint32    sps_range_extension_flag : 1;
701     deUint32    transform_skip_rotation_enabled_flag : 1;
702     deUint32    transform_skip_context_enabled_flag : 1;
703     deUint32    implicit_rdpcm_enabled_flag : 1;
704     deUint32    explicit_rdpcm_enabled_flag : 1;
705     deUint32    extended_precision_processing_flag : 1;
706     deUint32    intra_smoothing_disabled_flag : 1;
707     deUint32    high_precision_offsets_enabled_flag : 1;
708     deUint32    persistent_rice_adaptation_enabled_flag : 1;
709     deUint32    cabac_bypass_alignment_enabled_flag : 1;
710     deUint32    sps_scc_extension_flag : 1;
711     deUint32    sps_curr_pic_ref_enabled_flag : 1;
712     deUint32    palette_mode_enabled_flag : 1;
713     deUint32    sps_palette_predictor_initializer_present_flag : 1;
714     deUint32    intra_boundary_filtering_disabled_flag : 1;
715 } StdVideoH265SpsFlags;
716
717 typedef struct StdVideoH265SequenceParameterSet {
718     StdVideoH265SpsFlags                          flags;
719     StdVideoH265ProfileIdc                        profile_idc;
720     StdVideoH265Level                             level_idc;
721     deUint32                                      pic_width_in_luma_samples;
722     deUint32                                      pic_height_in_luma_samples;
723     deUint8                                       sps_video_parameter_set_id;
724     deUint8                                       sps_max_sub_layers_minus1;
725     deUint8                                       sps_seq_parameter_set_id;
726     deUint8                                       chroma_format_idc;
727     deUint8                                       bit_depth_luma_minus8;
728     deUint8                                       bit_depth_chroma_minus8;
729     deUint8                                       log2_max_pic_order_cnt_lsb_minus4;
730     deUint8                                       log2_min_luma_coding_block_size_minus3;
731     deUint8                                       log2_diff_max_min_luma_coding_block_size;
732     deUint8                                       log2_min_luma_transform_block_size_minus2;
733     deUint8                                       log2_diff_max_min_luma_transform_block_size;
734     deUint8                                       max_transform_hierarchy_depth_inter;
735     deUint8                                       max_transform_hierarchy_depth_intra;
736     deUint8                                       num_short_term_ref_pic_sets;
737     deUint8                                       num_long_term_ref_pics_sps;
738     deUint8                                       pcm_sample_bit_depth_luma_minus1;
739     deUint8                                       pcm_sample_bit_depth_chroma_minus1;
740     deUint8                                       log2_min_pcm_luma_coding_block_size_minus3;
741     deUint8                                       log2_diff_max_min_pcm_luma_coding_block_size;
742     deUint32                                      conf_win_left_offset;
743     deUint32                                      conf_win_right_offset;
744     deUint32                                      conf_win_top_offset;
745     deUint32                                      conf_win_bottom_offset;
746     const StdVideoH265DecPicBufMgr*               pDecPicBufMgr;
747     const StdVideoH265ScalingLists*               pScalingLists;
748     const StdVideoH265SequenceParameterSetVui*    pSequenceParameterSetVui;
749     deUint8                                       palette_max_size;
750     deUint8                                       delta_palette_max_predictor_size;
751     deUint8                                       motion_vector_resolution_control_idc;
752     deUint8                                       sps_num_palette_predictor_initializer_minus1;
753     const StdVideoH265PredictorPaletteEntries*    pPredictorPaletteEntries;
754 } StdVideoH265SequenceParameterSet;
755
756 typedef struct StdVideoH265PpsFlags {
757     deUint32    dependent_slice_segments_enabled_flag : 1;
758     deUint32    output_flag_present_flag : 1;
759     deUint32    sign_data_hiding_enabled_flag : 1;
760     deUint32    cabac_init_present_flag : 1;
761     deUint32    constrained_intra_pred_flag : 1;
762     deUint32    transform_skip_enabled_flag : 1;
763     deUint32    cu_qp_delta_enabled_flag : 1;
764     deUint32    pps_slice_chroma_qp_offsets_present_flag : 1;
765     deUint32    weighted_pred_flag : 1;
766     deUint32    weighted_bipred_flag : 1;
767     deUint32    transquant_bypass_enabled_flag : 1;
768     deUint32    tiles_enabled_flag : 1;
769     deUint32    entropy_coding_sync_enabled_flag : 1;
770     deUint32    uniform_spacing_flag : 1;
771     deUint32    loop_filter_across_tiles_enabled_flag : 1;
772     deUint32    pps_loop_filter_across_slices_enabled_flag : 1;
773     deUint32    deblocking_filter_control_present_flag : 1;
774     deUint32    deblocking_filter_override_enabled_flag : 1;
775     deUint32    pps_deblocking_filter_disabled_flag : 1;
776     deUint32    pps_scaling_list_data_present_flag : 1;
777     deUint32    lists_modification_present_flag : 1;
778     deUint32    slice_segment_header_extension_present_flag : 1;
779     deUint32    pps_extension_present_flag : 1;
780     deUint32    cross_component_prediction_enabled_flag : 1;
781     deUint32    chroma_qp_offset_list_enabled_flag : 1;
782     deUint32    pps_curr_pic_ref_enabled_flag : 1;
783     deUint32    residual_adaptive_colour_transform_enabled_flag : 1;
784     deUint32    pps_slice_act_qp_offsets_present_flag : 1;
785     deUint32    pps_palette_predictor_initializer_present_flag : 1;
786     deUint32    monochrome_palette_flag : 1;
787     deUint32    pps_range_extension_flag : 1;
788 } StdVideoH265PpsFlags;
789
790 typedef struct StdVideoH265PictureParameterSet {
791     StdVideoH265PpsFlags                          flags;
792     deUint8                                       pps_pic_parameter_set_id;
793     deUint8                                       pps_seq_parameter_set_id;
794     deUint8                                       num_extra_slice_header_bits;
795     deUint8                                       num_ref_idx_l0_default_active_minus1;
796     deUint8                                       num_ref_idx_l1_default_active_minus1;
797     deInt8                                        init_qp_minus26;
798     deUint8                                       diff_cu_qp_delta_depth;
799     deInt8                                        pps_cb_qp_offset;
800     deInt8                                        pps_cr_qp_offset;
801     deUint8                                       num_tile_columns_minus1;
802     deUint8                                       num_tile_rows_minus1;
803     deUint16                                      column_width_minus1[STD_VIDEO_H265_CHROMA_QP_OFFSET_TILE_COLS_LIST_SIZE];
804     deUint16                                      row_height_minus1[STD_VIDEO_H265_CHROMA_QP_OFFSET_TILE_ROWS_LIST_SIZE];
805     deInt8                                        pps_beta_offset_div2;
806     deInt8                                        pps_tc_offset_div2;
807     deUint8                                       log2_parallel_merge_level_minus2;
808     const StdVideoH265ScalingLists*               pScalingLists;
809     deUint8                                       log2_max_transform_skip_block_size_minus2;
810     deUint8                                       diff_cu_chroma_qp_offset_depth;
811     deUint8                                       chroma_qp_offset_list_len_minus1;
812     deInt8                                        cb_qp_offset_list[STD_VIDEO_H265_CHROMA_QP_OFFSET_LIST_SIZE];
813     deInt8                                        cr_qp_offset_list[STD_VIDEO_H265_CHROMA_QP_OFFSET_LIST_SIZE];
814     deUint8                                       log2_sao_offset_scale_luma;
815     deUint8                                       log2_sao_offset_scale_chroma;
816     deInt8                                        pps_act_y_qp_offset_plus5;
817     deInt8                                        pps_act_cb_qp_offset_plus5;
818     deInt8                                        pps_act_cr_qp_offset_plus5;
819     deUint8                                       pps_num_palette_predictor_initializer;
820     deUint8                                       luma_bit_depth_entry_minus8;
821     deUint8                                       chroma_bit_depth_entry_minus8;
822     const StdVideoH265PredictorPaletteEntries*    pPredictorPaletteEntries;
823 } StdVideoH265PictureParameterSet;
824
825
826 #ifdef __cplusplus
827 }
828 #endif
829
830 #endif
831 #ifndef VULKAN_VIDEO_CODEC_H264STD_DECODE_H_
832 #define VULKAN_VIDEO_CODEC_H264STD_DECODE_H_ 1
833
834 /*
835 ** Copyright 2015-2022 The Khronos Group Inc.
836 **
837 ** SPDX-License-Identifier: Apache-2.0
838 */
839
840 /*
841 ** This header is generated from the Khronos Vulkan XML API Registry.
842 **
843 */
844
845
846 #ifdef __cplusplus
847 extern "C" {
848 #endif
849
850
851
852 #define vulkan_video_codec_h264std_decode 1
853 // Vulkan 0.9 provisional Vulkan video H.264 decode std specification version number
854 #define VK_STD_VULKAN_VIDEO_CODEC_H264_DECODE_API_VERSION_0_9_6 VK_MAKE_VIDEO_STD_VERSION(0, 9, 6) // Patch version should always be set to 0
855
856 #define STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_LIST_SIZE 2
857 #define STD_VIDEO_DECODE_H264_MVC_REF_LIST_SIZE 15
858 #define VK_STD_VULKAN_VIDEO_CODEC_H264_DECODE_SPEC_VERSION VK_STD_VULKAN_VIDEO_CODEC_H264_DECODE_API_VERSION_0_9_6
859 #define VK_STD_VULKAN_VIDEO_CODEC_H264_DECODE_EXTENSION_NAME "VK_STD_vulkan_video_codec_h264_decode"
860
861 typedef enum StdVideoDecodeH264FieldOrderCount {
862     STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_TOP = 0,
863     STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_BOTTOM = 1,
864     STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_INVALID = 0x7FFFFFFF,
865     STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_MAX_ENUM = 0x7FFFFFFF
866 } StdVideoDecodeH264FieldOrderCount;
867 typedef struct StdVideoDecodeH264PictureInfoFlags {
868     deUint32    field_pic_flag : 1;
869     deUint32    is_intra : 1;
870     deUint32    IdrPicFlag : 1;
871     deUint32    bottom_field_flag : 1;
872     deUint32    is_reference : 1;
873     deUint32    complementary_field_pair : 1;
874 } StdVideoDecodeH264PictureInfoFlags;
875
876 typedef struct StdVideoDecodeH264PictureInfo {
877     StdVideoDecodeH264PictureInfoFlags    flags;
878     deUint8                               seq_parameter_set_id;
879     deUint8                               pic_parameter_set_id;
880     deUint16                              reserved;
881     deUint16                              frame_num;
882     deUint16                              idr_pic_id;
883     deInt32                               PicOrderCnt[STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_LIST_SIZE];
884 } StdVideoDecodeH264PictureInfo;
885
886 typedef struct StdVideoDecodeH264ReferenceInfoFlags {
887     deUint32    top_field_flag : 1;
888     deUint32    bottom_field_flag : 1;
889     deUint32    used_for_long_term_reference : 1;
890     deUint32    is_non_existing : 1;
891 } StdVideoDecodeH264ReferenceInfoFlags;
892
893 typedef struct StdVideoDecodeH264ReferenceInfo {
894     StdVideoDecodeH264ReferenceInfoFlags    flags;
895     deUint16                                FrameNum;
896     deUint16                                reserved;
897     deInt32                                 PicOrderCnt[2];
898 } StdVideoDecodeH264ReferenceInfo;
899
900 typedef struct StdVideoDecodeH264MvcElementFlags {
901     deUint32    non_idr : 1;
902     deUint32    anchor_pic : 1;
903     deUint32    inter_view : 1;
904 } StdVideoDecodeH264MvcElementFlags;
905
906 typedef struct StdVideoDecodeH264MvcElement {
907     StdVideoDecodeH264MvcElementFlags    flags;
908     deUint16                             viewOrderIndex;
909     deUint16                             viewId;
910     deUint16                             temporalId;
911     deUint16                             priorityId;
912     deUint16                             numOfAnchorRefsInL0;
913     deUint16                             viewIdOfAnchorRefsInL0[STD_VIDEO_DECODE_H264_MVC_REF_LIST_SIZE];
914     deUint16                             numOfAnchorRefsInL1;
915     deUint16                             viewIdOfAnchorRefsInL1[STD_VIDEO_DECODE_H264_MVC_REF_LIST_SIZE];
916     deUint16                             numOfNonAnchorRefsInL0;
917     deUint16                             viewIdOfNonAnchorRefsInL0[STD_VIDEO_DECODE_H264_MVC_REF_LIST_SIZE];
918     deUint16                             numOfNonAnchorRefsInL1;
919     deUint16                             viewIdOfNonAnchorRefsInL1[STD_VIDEO_DECODE_H264_MVC_REF_LIST_SIZE];
920 } StdVideoDecodeH264MvcElement;
921
922 typedef struct StdVideoDecodeH264Mvc {
923     deUint32                               viewId0;
924     deUint32                               mvcElementCount;
925     const StdVideoDecodeH264MvcElement*    pMvcElements;
926 } StdVideoDecodeH264Mvc;
927
928
929 #ifdef __cplusplus
930 }
931 #endif
932
933 #endif
934 #ifndef VULKAN_VIDEO_CODEC_H265STD_DECODE_H_
935 #define VULKAN_VIDEO_CODEC_H265STD_DECODE_H_ 1
936
937 /*
938 ** Copyright 2015-2022 The Khronos Group Inc.
939 **
940 ** SPDX-License-Identifier: Apache-2.0
941 */
942
943 /*
944 ** This header is generated from the Khronos Vulkan XML API Registry.
945 **
946 */
947
948
949 #ifdef __cplusplus
950 extern "C" {
951 #endif
952
953
954
955 #define vulkan_video_codec_h265std_decode 1
956 // Vulkan 0.9 provisional Vulkan video H.265 decode std specification version number
957 #define VK_STD_VULKAN_VIDEO_CODEC_H265_DECODE_API_VERSION_0_9_7 VK_MAKE_VIDEO_STD_VERSION(0, 9, 7) // Patch version should always be set to 0
958
959 #define STD_VIDEO_DECODE_H265_REF_PIC_SET_LIST_SIZE 8
960 #define VK_STD_VULKAN_VIDEO_CODEC_H265_DECODE_SPEC_VERSION VK_STD_VULKAN_VIDEO_CODEC_H265_DECODE_API_VERSION_0_9_7
961 #define VK_STD_VULKAN_VIDEO_CODEC_H265_DECODE_EXTENSION_NAME "VK_STD_vulkan_video_codec_h265_decode"
962 typedef struct StdVideoDecodeH265PictureInfoFlags {
963     deUint32    IrapPicFlag : 1;
964     deUint32    IdrPicFlag  : 1;
965     deUint32    IsReference : 1;
966     deUint32    short_term_ref_pic_set_sps_flag : 1;
967 } StdVideoDecodeH265PictureInfoFlags;
968
969 typedef struct StdVideoDecodeH265PictureInfo {
970     StdVideoDecodeH265PictureInfoFlags    flags;
971     deUint8                               sps_video_parameter_set_id;
972     deUint8                               pps_seq_parameter_set_id;
973     deUint8                               pps_pic_parameter_set_id;
974     deUint8                               num_short_term_ref_pic_sets;
975     deInt32                               PicOrderCntVal;
976     deUint16                              NumBitsForSTRefPicSetInSlice;
977     deUint8                               NumDeltaPocsOfRefRpsIdx;
978     deUint8                               RefPicSetStCurrBefore[STD_VIDEO_DECODE_H265_REF_PIC_SET_LIST_SIZE];
979     deUint8                               RefPicSetStCurrAfter[STD_VIDEO_DECODE_H265_REF_PIC_SET_LIST_SIZE];
980     deUint8                               RefPicSetLtCurr[STD_VIDEO_DECODE_H265_REF_PIC_SET_LIST_SIZE];
981 } StdVideoDecodeH265PictureInfo;
982
983 typedef struct StdVideoDecodeH265ReferenceInfoFlags {
984     deUint32    used_for_long_term_reference : 1;
985     deUint32    unused_for_reference : 1;
986     deUint32    is_non_existing : 1;
987 } StdVideoDecodeH265ReferenceInfoFlags;
988
989 typedef struct StdVideoDecodeH265ReferenceInfo {
990     StdVideoDecodeH265ReferenceInfoFlags    flags;
991     deInt32                                 PicOrderCntVal;
992 } StdVideoDecodeH265ReferenceInfo;
993
994
995 #ifdef __cplusplus
996 }
997 #endif
998
999 #endif
1000 #ifndef VULKAN_CORE_H_
1001 #define VULKAN_CORE_H_ 1
1002
1003 /*
1004 ** Copyright 2015-2022 The Khronos Group Inc.
1005 **
1006 ** SPDX-License-Identifier: Apache-2.0
1007 */
1008
1009 /*
1010 ** This header is generated from the Khronos Vulkan XML API Registry.
1011 **
1012 */
1013
1014
1015 #ifdef __cplusplus
1016 extern "C" {
1017 #endif
1018
1019
1020
1021 #define VK_VERSION_1_0 1
1022
1023
1024 #define VK_DEFINE_HANDLE(object) typedef struct object##_T* object;
1025
1026
1027 #ifndef VK_USE_64_BIT_PTR_DEFINES
1028     #if defined(__LP64__) || defined(_WIN64) || (defined(__x86_64__) && !defined(__ILP32__) ) || defined(_M_X64) || defined(__ia64) || defined (_M_IA64) || defined(__aarch64__) || defined(__powerpc64__)
1029         #define VK_USE_64_BIT_PTR_DEFINES 1
1030     #else
1031         #define VK_USE_64_BIT_PTR_DEFINES 0
1032     #endif
1033 #endif
1034
1035
1036 #ifndef VK_DEFINE_NON_DISPATCHABLE_HANDLE
1037     #if (VK_USE_64_BIT_PTR_DEFINES==1)
1038         #if (defined(__cplusplus) && (__cplusplus >= 201103L)) || (defined(_MSVC_LANG) && (_MSVC_LANG >= 201103L))
1039             #define VK_NULL_HANDLE nullptr
1040         #else
1041             #define VK_NULL_HANDLE ((void*)0)
1042         #endif
1043     #else
1044         #define VK_NULL_HANDLE 0ULL
1045     #endif
1046 #endif
1047 #ifndef VK_NULL_HANDLE
1048     #define VK_NULL_HANDLE 0
1049 #endif
1050
1051
1052 #ifndef VK_DEFINE_NON_DISPATCHABLE_HANDLE
1053     #if (VK_USE_64_BIT_PTR_DEFINES==1)
1054         #define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef struct object##_T *object;
1055     #else
1056         #define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef deUint64 object;
1057     #endif
1058 #endif
1059
1060 // DEPRECATED: This define is deprecated. VK_MAKE_API_VERSION should be used instead.
1061 #define VK_MAKE_VERSION(major, minor, patch) \
1062     ((((deUint32)(major)) << 22) | (((deUint32)(minor)) << 12) | ((deUint32)(patch)))
1063
1064 // DEPRECATED: This define has been removed. Specific version defines (e.g. VK_API_VERSION_1_0), or the VK_MAKE_VERSION macro, should be used instead.
1065 //#define VK_API_VERSION VK_MAKE_VERSION(1, 0, 0) // Patch version should always be set to 0
1066
1067 #define VK_MAKE_API_VERSION(variant, major, minor, patch) \
1068     ((((deUint32)(variant)) << 29) | (((deUint32)(major)) << 22) | (((deUint32)(minor)) << 12) | ((deUint32)(patch)))
1069
1070 // Vulkan 1.0 version number
1071 #define VK_API_VERSION_1_0 VK_MAKE_API_VERSION(0, 1, 0, 0)// Patch version should always be set to 0
1072
1073 // Version of this file
1074 #define VK_HEADER_VERSION 215
1075
1076 // Complete version of this file
1077 #define VK_HEADER_VERSION_COMPLETE VK_MAKE_API_VERSION(0, 1, 3, VK_HEADER_VERSION)
1078
1079 // DEPRECATED: This define is deprecated. VK_API_VERSION_MAJOR should be used instead.
1080 #define VK_VERSION_MAJOR(version) ((deUint32)(version) >> 22)
1081
1082 // DEPRECATED: This define is deprecated. VK_API_VERSION_MINOR should be used instead.
1083 #define VK_VERSION_MINOR(version) (((deUint32)(version) >> 12) & 0x3FFU)
1084
1085 // DEPRECATED: This define is deprecated. VK_API_VERSION_PATCH should be used instead.
1086 #define VK_VERSION_PATCH(version) ((deUint32)(version) & 0xFFFU)
1087
1088 #define VK_API_VERSION_VARIANT(version) ((deUint32)(version) >> 29)
1089 #define VK_API_VERSION_MAJOR(version) (((deUint32)(version) >> 22) & 0x7FU)
1090 #define VK_API_VERSION_MINOR(version) (((deUint32)(version) >> 12) & 0x3FFU)
1091 #define VK_API_VERSION_PATCH(version) ((deUint32)(version) & 0xFFFU)
1092 typedef deUint32 VkBool32;
1093 typedef deUint64 VkDeviceAddress;
1094 typedef deUint64 VkDeviceSize;
1095 typedef deUint32 VkFlags;
1096 typedef deUint32 VkSampleMask;
1097 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkBuffer)
1098 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkImage)
1099 VK_DEFINE_HANDLE(VkInstance)
1100 VK_DEFINE_HANDLE(VkPhysicalDevice)
1101 VK_DEFINE_HANDLE(VkDevice)
1102 VK_DEFINE_HANDLE(VkQueue)
1103 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSemaphore)
1104 VK_DEFINE_HANDLE(VkCommandBuffer)
1105 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkFence)
1106 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDeviceMemory)
1107 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkEvent)
1108 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkQueryPool)
1109 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkBufferView)
1110 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkImageView)
1111 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkShaderModule)
1112 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipelineCache)
1113 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipelineLayout)
1114 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipeline)
1115 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkRenderPass)
1116 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorSetLayout)
1117 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSampler)
1118 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorSet)
1119 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorPool)
1120 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkFramebuffer)
1121 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkCommandPool)
1122 #define VK_ATTACHMENT_UNUSED              (~0U)
1123 #define VK_FALSE                          0U
1124 #define VK_LOD_CLAMP_NONE                 1000.0F
1125 #define VK_QUEUE_FAMILY_IGNORED           (~0U)
1126 #define VK_REMAINING_ARRAY_LAYERS         (~0U)
1127 #define VK_REMAINING_MIP_LEVELS           (~0U)
1128 #define VK_SUBPASS_EXTERNAL               (~0U)
1129 #define VK_TRUE                           1U
1130 #define VK_WHOLE_SIZE                     (~0ULL)
1131 #define VK_MAX_MEMORY_TYPES               32U
1132 #define VK_MAX_PHYSICAL_DEVICE_NAME_SIZE  256U
1133 #define VK_UUID_SIZE                      16U
1134 #define VK_MAX_EXTENSION_NAME_SIZE        256U
1135 #define VK_MAX_DESCRIPTION_SIZE           256U
1136 #define VK_MAX_MEMORY_HEAPS               16U
1137
1138 typedef enum VkResult {
1139     VK_SUCCESS = 0,
1140     VK_NOT_READY = 1,
1141     VK_TIMEOUT = 2,
1142     VK_EVENT_SET = 3,
1143     VK_EVENT_RESET = 4,
1144     VK_INCOMPLETE = 5,
1145     VK_ERROR_OUT_OF_HOST_MEMORY = -1,
1146     VK_ERROR_OUT_OF_DEVICE_MEMORY = -2,
1147     VK_ERROR_INITIALIZATION_FAILED = -3,
1148     VK_ERROR_DEVICE_LOST = -4,
1149     VK_ERROR_MEMORY_MAP_FAILED = -5,
1150     VK_ERROR_LAYER_NOT_PRESENT = -6,
1151     VK_ERROR_EXTENSION_NOT_PRESENT = -7,
1152     VK_ERROR_FEATURE_NOT_PRESENT = -8,
1153     VK_ERROR_INCOMPATIBLE_DRIVER = -9,
1154     VK_ERROR_TOO_MANY_OBJECTS = -10,
1155     VK_ERROR_FORMAT_NOT_SUPPORTED = -11,
1156     VK_ERROR_FRAGMENTED_POOL = -12,
1157     VK_ERROR_UNKNOWN = -13,
1158     VK_ERROR_OUT_OF_POOL_MEMORY = -1000069000,
1159     VK_ERROR_INVALID_EXTERNAL_HANDLE = -1000072003,
1160     VK_ERROR_FRAGMENTATION = -1000161000,
1161     VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS = -1000257000,
1162     VK_PIPELINE_COMPILE_REQUIRED = 1000297000,
1163     VK_ERROR_SURFACE_LOST_KHR = -1000000000,
1164     VK_ERROR_NATIVE_WINDOW_IN_USE_KHR = -1000000001,
1165     VK_SUBOPTIMAL_KHR = 1000001003,
1166     VK_ERROR_OUT_OF_DATE_KHR = -1000001004,
1167     VK_ERROR_INCOMPATIBLE_DISPLAY_KHR = -1000003001,
1168     VK_ERROR_VALIDATION_FAILED_EXT = -1000011001,
1169     VK_ERROR_INVALID_SHADER_NV = -1000012000,
1170     VK_ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT = -1000158000,
1171     VK_ERROR_NOT_PERMITTED_KHR = -1000174001,
1172     VK_ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT = -1000255000,
1173     VK_THREAD_IDLE_KHR = 1000268000,
1174     VK_THREAD_DONE_KHR = 1000268001,
1175     VK_OPERATION_DEFERRED_KHR = 1000268002,
1176     VK_OPERATION_NOT_DEFERRED_KHR = 1000268003,
1177     VK_ERROR_COMPRESSION_EXHAUSTED_EXT = -1000338000,
1178     VK_ERROR_OUT_OF_POOL_MEMORY_KHR = VK_ERROR_OUT_OF_POOL_MEMORY,
1179     VK_ERROR_INVALID_EXTERNAL_HANDLE_KHR = VK_ERROR_INVALID_EXTERNAL_HANDLE,
1180     VK_ERROR_FRAGMENTATION_EXT = VK_ERROR_FRAGMENTATION,
1181     VK_ERROR_NOT_PERMITTED_EXT = VK_ERROR_NOT_PERMITTED_KHR,
1182     VK_ERROR_INVALID_DEVICE_ADDRESS_EXT = VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS,
1183     VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS_KHR = VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS,
1184     VK_PIPELINE_COMPILE_REQUIRED_EXT = VK_PIPELINE_COMPILE_REQUIRED,
1185     VK_ERROR_PIPELINE_COMPILE_REQUIRED_EXT = VK_PIPELINE_COMPILE_REQUIRED,
1186     VK_RESULT_MAX_ENUM = 0x7FFFFFFF
1187 } VkResult;
1188
1189 typedef enum VkStructureType {
1190     VK_STRUCTURE_TYPE_APPLICATION_INFO = 0,
1191     VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO = 1,
1192     VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO = 2,
1193     VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO = 3,
1194     VK_STRUCTURE_TYPE_SUBMIT_INFO = 4,
1195     VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO = 5,
1196     VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE = 6,
1197     VK_STRUCTURE_TYPE_BIND_SPARSE_INFO = 7,
1198     VK_STRUCTURE_TYPE_FENCE_CREATE_INFO = 8,
1199     VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO = 9,
1200     VK_STRUCTURE_TYPE_EVENT_CREATE_INFO = 10,
1201     VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO = 11,
1202     VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO = 12,
1203     VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO = 13,
1204     VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO = 14,
1205     VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO = 15,
1206     VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO = 16,
1207     VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO = 17,
1208     VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO = 18,
1209     VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO = 19,
1210     VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO = 20,
1211     VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO = 21,
1212     VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO = 22,
1213     VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO = 23,
1214     VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO = 24,
1215     VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO = 25,
1216     VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO = 26,
1217     VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO = 27,
1218     VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO = 28,
1219     VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO = 29,
1220     VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO = 30,
1221     VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO = 31,
1222     VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO = 32,
1223     VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO = 33,
1224     VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO = 34,
1225     VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET = 35,
1226     VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET = 36,
1227     VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO = 37,
1228     VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO = 38,
1229     VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO = 39,
1230     VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO = 40,
1231     VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO = 41,
1232     VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO = 42,
1233     VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO = 43,
1234     VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER = 44,
1235     VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER = 45,
1236     VK_STRUCTURE_TYPE_MEMORY_BARRIER = 46,
1237     VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO = 47,
1238     VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO = 48,
1239     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES = 1000094000,
1240     VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO = 1000157000,
1241     VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO = 1000157001,
1242     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES = 1000083000,
1243     VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS = 1000127000,
1244     VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO = 1000127001,
1245     VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO = 1000060000,
1246     VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO = 1000060003,
1247     VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO = 1000060004,
1248     VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO = 1000060005,
1249     VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO = 1000060006,
1250     VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO = 1000060013,
1251     VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO = 1000060014,
1252     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES = 1000070000,
1253     VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO = 1000070001,
1254     VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2 = 1000146000,
1255     VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2 = 1000146001,
1256     VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2 = 1000146002,
1257     VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2 = 1000146003,
1258     VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2 = 1000146004,
1259     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2 = 1000059000,
1260     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2 = 1000059001,
1261     VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2 = 1000059002,
1262     VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2 = 1000059003,
1263     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2 = 1000059004,
1264     VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2 = 1000059005,
1265     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2 = 1000059006,
1266     VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2 = 1000059007,
1267     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2 = 1000059008,
1268     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES = 1000117000,
1269     VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO = 1000117001,
1270     VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO = 1000117002,
1271     VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO = 1000117003,
1272     VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO = 1000053000,
1273     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES = 1000053001,
1274     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES = 1000053002,
1275     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES = 1000120000,
1276     VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO = 1000145000,
1277     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES = 1000145001,
1278     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES = 1000145002,
1279     VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2 = 1000145003,
1280     VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO = 1000156000,
1281     VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO = 1000156001,
1282     VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO = 1000156002,
1283     VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO = 1000156003,
1284     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES = 1000156004,
1285     VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES = 1000156005,
1286     VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO = 1000085000,
1287     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO = 1000071000,
1288     VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES = 1000071001,
1289     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO = 1000071002,
1290     VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES = 1000071003,
1291     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES = 1000071004,
1292     VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO = 1000072000,
1293     VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO = 1000072001,
1294     VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO = 1000072002,
1295     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO = 1000112000,
1296     VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES = 1000112001,
1297     VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO = 1000113000,
1298     VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO = 1000077000,
1299     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO = 1000076000,
1300     VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES = 1000076001,
1301     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES = 1000168000,
1302     VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT = 1000168001,
1303     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES = 1000063000,
1304     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES = 49,
1305     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES = 50,
1306     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES = 51,
1307     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES = 52,
1308     VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO = 1000147000,
1309     VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2 = 1000109000,
1310     VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2 = 1000109001,
1311     VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2 = 1000109002,
1312     VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2 = 1000109003,
1313     VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2 = 1000109004,
1314     VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO = 1000109005,
1315     VK_STRUCTURE_TYPE_SUBPASS_END_INFO = 1000109006,
1316     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES = 1000177000,
1317     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES = 1000196000,
1318     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES = 1000180000,
1319     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES = 1000082000,
1320     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES = 1000197000,
1321     VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO = 1000161000,
1322     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES = 1000161001,
1323     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES = 1000161002,
1324     VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO = 1000161003,
1325     VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT = 1000161004,
1326     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES = 1000199000,
1327     VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE = 1000199001,
1328     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES = 1000221000,
1329     VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO = 1000246000,
1330     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES = 1000130000,
1331     VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO = 1000130001,
1332     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES = 1000211000,
1333     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES = 1000108000,
1334     VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO = 1000108001,
1335     VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO = 1000108002,
1336     VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO = 1000108003,
1337     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES = 1000253000,
1338     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES = 1000175000,
1339     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES = 1000241000,
1340     VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT = 1000241001,
1341     VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT = 1000241002,
1342     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES = 1000261000,
1343     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES = 1000207000,
1344     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES = 1000207001,
1345     VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO = 1000207002,
1346     VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO = 1000207003,
1347     VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO = 1000207004,
1348     VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO = 1000207005,
1349     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES = 1000257000,
1350     VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO = 1000244001,
1351     VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO = 1000257002,
1352     VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO = 1000257003,
1353     VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO = 1000257004,
1354     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES = 53,
1355     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES = 54,
1356     VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO = 1000192000,
1357     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES = 1000215000,
1358     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES = 1000245000,
1359     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES = 1000276000,
1360     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES = 1000295000,
1361     VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO = 1000295001,
1362     VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO = 1000295002,
1363     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES = 1000297000,
1364     VK_STRUCTURE_TYPE_MEMORY_BARRIER_2 = 1000314000,
1365     VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2 = 1000314001,
1366     VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2 = 1000314002,
1367     VK_STRUCTURE_TYPE_DEPENDENCY_INFO = 1000314003,
1368     VK_STRUCTURE_TYPE_SUBMIT_INFO_2 = 1000314004,
1369     VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO = 1000314005,
1370     VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO = 1000314006,
1371     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES = 1000314007,
1372     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES = 1000325000,
1373     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES = 1000335000,
1374     VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2 = 1000337000,
1375     VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2 = 1000337001,
1376     VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2 = 1000337002,
1377     VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2 = 1000337003,
1378     VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2 = 1000337004,
1379     VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2 = 1000337005,
1380     VK_STRUCTURE_TYPE_BUFFER_COPY_2 = 1000337006,
1381     VK_STRUCTURE_TYPE_IMAGE_COPY_2 = 1000337007,
1382     VK_STRUCTURE_TYPE_IMAGE_BLIT_2 = 1000337008,
1383     VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2 = 1000337009,
1384     VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2 = 1000337010,
1385     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES = 1000225000,
1386     VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO = 1000225001,
1387     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES = 1000225002,
1388     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES = 1000138000,
1389     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES = 1000138001,
1390     VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK = 1000138002,
1391     VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO = 1000138003,
1392     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES = 1000066000,
1393     VK_STRUCTURE_TYPE_RENDERING_INFO = 1000044000,
1394     VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO = 1000044001,
1395     VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO = 1000044002,
1396     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES = 1000044003,
1397     VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO = 1000044004,
1398     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES = 1000280000,
1399     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES = 1000280001,
1400     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES = 1000281001,
1401     VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3 = 1000360000,
1402     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES = 1000413000,
1403     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES = 1000413001,
1404     VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS = 1000413002,
1405     VK_STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS = 1000413003,
1406     VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR = 1000001000,
1407     VK_STRUCTURE_TYPE_PRESENT_INFO_KHR = 1000001001,
1408     VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR = 1000060007,
1409     VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR = 1000060008,
1410     VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR = 1000060009,
1411     VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR = 1000060010,
1412     VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR = 1000060011,
1413     VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR = 1000060012,
1414     VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR = 1000002000,
1415     VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR = 1000002001,
1416     VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR = 1000003000,
1417     VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR = 1000004000,
1418     VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR = 1000005000,
1419     VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR = 1000006000,
1420     VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR = 1000008000,
1421     VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR = 1000009000,
1422     VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT = 1000011000,
1423     VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD = 1000018000,
1424     VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT = 1000022000,
1425     VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT = 1000022001,
1426     VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT = 1000022002,
1427 #ifdef VK_ENABLE_BETA_EXTENSIONS
1428     VK_STRUCTURE_TYPE_VIDEO_PROFILE_KHR = 1000023000,
1429 #endif
1430 #ifdef VK_ENABLE_BETA_EXTENSIONS
1431     VK_STRUCTURE_TYPE_VIDEO_CAPABILITIES_KHR = 1000023001,
1432 #endif
1433 #ifdef VK_ENABLE_BETA_EXTENSIONS
1434     VK_STRUCTURE_TYPE_VIDEO_PICTURE_RESOURCE_KHR = 1000023002,
1435 #endif
1436 #ifdef VK_ENABLE_BETA_EXTENSIONS
1437     VK_STRUCTURE_TYPE_VIDEO_GET_MEMORY_PROPERTIES_KHR = 1000023003,
1438 #endif
1439 #ifdef VK_ENABLE_BETA_EXTENSIONS
1440     VK_STRUCTURE_TYPE_VIDEO_BIND_MEMORY_KHR = 1000023004,
1441 #endif
1442 #ifdef VK_ENABLE_BETA_EXTENSIONS
1443     VK_STRUCTURE_TYPE_VIDEO_SESSION_CREATE_INFO_KHR = 1000023005,
1444 #endif
1445 #ifdef VK_ENABLE_BETA_EXTENSIONS
1446     VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000023006,
1447 #endif
1448 #ifdef VK_ENABLE_BETA_EXTENSIONS
1449     VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_UPDATE_INFO_KHR = 1000023007,
1450 #endif
1451 #ifdef VK_ENABLE_BETA_EXTENSIONS
1452     VK_STRUCTURE_TYPE_VIDEO_BEGIN_CODING_INFO_KHR = 1000023008,
1453 #endif
1454 #ifdef VK_ENABLE_BETA_EXTENSIONS
1455     VK_STRUCTURE_TYPE_VIDEO_END_CODING_INFO_KHR = 1000023009,
1456 #endif
1457 #ifdef VK_ENABLE_BETA_EXTENSIONS
1458     VK_STRUCTURE_TYPE_VIDEO_CODING_CONTROL_INFO_KHR = 1000023010,
1459 #endif
1460 #ifdef VK_ENABLE_BETA_EXTENSIONS
1461     VK_STRUCTURE_TYPE_VIDEO_REFERENCE_SLOT_KHR = 1000023011,
1462 #endif
1463 #ifdef VK_ENABLE_BETA_EXTENSIONS
1464     VK_STRUCTURE_TYPE_VIDEO_QUEUE_FAMILY_PROPERTIES_2_KHR = 1000023012,
1465 #endif
1466 #ifdef VK_ENABLE_BETA_EXTENSIONS
1467     VK_STRUCTURE_TYPE_VIDEO_PROFILES_KHR = 1000023013,
1468 #endif
1469 #ifdef VK_ENABLE_BETA_EXTENSIONS
1470     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_FORMAT_INFO_KHR = 1000023014,
1471 #endif
1472 #ifdef VK_ENABLE_BETA_EXTENSIONS
1473     VK_STRUCTURE_TYPE_VIDEO_FORMAT_PROPERTIES_KHR = 1000023015,
1474 #endif
1475 #ifdef VK_ENABLE_BETA_EXTENSIONS
1476     VK_STRUCTURE_TYPE_QUEUE_FAMILY_QUERY_RESULT_STATUS_PROPERTIES_2_KHR = 1000023016,
1477 #endif
1478 #ifdef VK_ENABLE_BETA_EXTENSIONS
1479     VK_STRUCTURE_TYPE_VIDEO_DECODE_INFO_KHR = 1000024000,
1480 #endif
1481 #ifdef VK_ENABLE_BETA_EXTENSIONS
1482     VK_STRUCTURE_TYPE_VIDEO_DECODE_CAPABILITIES_KHR = 1000024001,
1483 #endif
1484     VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV = 1000026000,
1485     VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV = 1000026001,
1486     VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV = 1000026002,
1487     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT = 1000028000,
1488     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT = 1000028001,
1489     VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT = 1000028002,
1490     VK_STRUCTURE_TYPE_CU_MODULE_CREATE_INFO_NVX = 1000029000,
1491     VK_STRUCTURE_TYPE_CU_FUNCTION_CREATE_INFO_NVX = 1000029001,
1492     VK_STRUCTURE_TYPE_CU_LAUNCH_INFO_NVX = 1000029002,
1493     VK_STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX = 1000030000,
1494     VK_STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX = 1000030001,
1495 #ifdef VK_ENABLE_BETA_EXTENSIONS
1496     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_CAPABILITIES_EXT = 1000038000,
1497 #endif
1498 #ifdef VK_ENABLE_BETA_EXTENSIONS
1499     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT = 1000038001,
1500 #endif
1501 #ifdef VK_ENABLE_BETA_EXTENSIONS
1502     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT = 1000038002,
1503 #endif
1504 #ifdef VK_ENABLE_BETA_EXTENSIONS
1505     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_VCL_FRAME_INFO_EXT = 1000038003,
1506 #endif
1507 #ifdef VK_ENABLE_BETA_EXTENSIONS
1508     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_DPB_SLOT_INFO_EXT = 1000038004,
1509 #endif
1510 #ifdef VK_ENABLE_BETA_EXTENSIONS
1511     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_NALU_SLICE_EXT = 1000038005,
1512 #endif
1513 #ifdef VK_ENABLE_BETA_EXTENSIONS
1514     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_EMIT_PICTURE_PARAMETERS_EXT = 1000038006,
1515 #endif
1516 #ifdef VK_ENABLE_BETA_EXTENSIONS
1517     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PROFILE_EXT = 1000038007,
1518 #endif
1519 #ifdef VK_ENABLE_BETA_EXTENSIONS
1520     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_INFO_EXT = 1000038008,
1521 #endif
1522 #ifdef VK_ENABLE_BETA_EXTENSIONS
1523     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_LAYER_INFO_EXT = 1000038009,
1524 #endif
1525 #ifdef VK_ENABLE_BETA_EXTENSIONS
1526     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_REFERENCE_LISTS_EXT = 1000038010,
1527 #endif
1528 #ifdef VK_ENABLE_BETA_EXTENSIONS
1529     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_CAPABILITIES_EXT = 1000039000,
1530 #endif
1531 #ifdef VK_ENABLE_BETA_EXTENSIONS
1532     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_CREATE_INFO_EXT = 1000039001,
1533 #endif
1534 #ifdef VK_ENABLE_BETA_EXTENSIONS
1535     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_ADD_INFO_EXT = 1000039002,
1536 #endif
1537 #ifdef VK_ENABLE_BETA_EXTENSIONS
1538     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_VCL_FRAME_INFO_EXT = 1000039003,
1539 #endif
1540 #ifdef VK_ENABLE_BETA_EXTENSIONS
1541     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_DPB_SLOT_INFO_EXT = 1000039004,
1542 #endif
1543 #ifdef VK_ENABLE_BETA_EXTENSIONS
1544     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_NALU_SLICE_SEGMENT_EXT = 1000039005,
1545 #endif
1546 #ifdef VK_ENABLE_BETA_EXTENSIONS
1547     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_EMIT_PICTURE_PARAMETERS_EXT = 1000039006,
1548 #endif
1549 #ifdef VK_ENABLE_BETA_EXTENSIONS
1550     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PROFILE_EXT = 1000039007,
1551 #endif
1552 #ifdef VK_ENABLE_BETA_EXTENSIONS
1553     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_REFERENCE_LISTS_EXT = 1000039008,
1554 #endif
1555 #ifdef VK_ENABLE_BETA_EXTENSIONS
1556     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_INFO_EXT = 1000039009,
1557 #endif
1558 #ifdef VK_ENABLE_BETA_EXTENSIONS
1559     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_LAYER_INFO_EXT = 1000039010,
1560 #endif
1561 #ifdef VK_ENABLE_BETA_EXTENSIONS
1562     VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_CAPABILITIES_EXT = 1000040000,
1563 #endif
1564 #ifdef VK_ENABLE_BETA_EXTENSIONS
1565     VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PICTURE_INFO_EXT = 1000040001,
1566 #endif
1567 #ifdef VK_ENABLE_BETA_EXTENSIONS
1568     VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_MVC_EXT = 1000040002,
1569 #endif
1570 #ifdef VK_ENABLE_BETA_EXTENSIONS
1571     VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PROFILE_EXT = 1000040003,
1572 #endif
1573 #ifdef VK_ENABLE_BETA_EXTENSIONS
1574     VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT = 1000040004,
1575 #endif
1576 #ifdef VK_ENABLE_BETA_EXTENSIONS
1577     VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT = 1000040005,
1578 #endif
1579 #ifdef VK_ENABLE_BETA_EXTENSIONS
1580     VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_DPB_SLOT_INFO_EXT = 1000040006,
1581 #endif
1582     VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD = 1000041000,
1583     VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR = 1000044006,
1584     VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT = 1000044007,
1585     VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD = 1000044008,
1586     VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX = 1000044009,
1587     VK_STRUCTURE_TYPE_STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP = 1000049000,
1588     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV = 1000050000,
1589     VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV = 1000056000,
1590     VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV = 1000056001,
1591     VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV = 1000057000,
1592     VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV = 1000057001,
1593     VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV = 1000058000,
1594     VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT = 1000061000,
1595     VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN = 1000062000,
1596     VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT = 1000067000,
1597     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT = 1000067001,
1598     VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR = 1000073000,
1599     VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR = 1000073001,
1600     VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR = 1000073002,
1601     VK_STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR = 1000073003,
1602     VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR = 1000074000,
1603     VK_STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR = 1000074001,
1604     VK_STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR = 1000074002,
1605     VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR = 1000075000,
1606     VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR = 1000078000,
1607     VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR = 1000078001,
1608     VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR = 1000078002,
1609     VK_STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR = 1000078003,
1610     VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR = 1000079000,
1611     VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR = 1000079001,
1612     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR = 1000080000,
1613     VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT = 1000081000,
1614     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT = 1000081001,
1615     VK_STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT = 1000081002,
1616     VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR = 1000084000,
1617     VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV = 1000087000,
1618     VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT = 1000090000,
1619     VK_STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT = 1000091000,
1620     VK_STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT = 1000091001,
1621     VK_STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT = 1000091002,
1622     VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT = 1000091003,
1623     VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE = 1000092000,
1624     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX = 1000097000,
1625     VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV = 1000098000,
1626     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT = 1000099000,
1627     VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT = 1000099001,
1628     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT = 1000101000,
1629     VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT = 1000101001,
1630     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT = 1000102000,
1631     VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT = 1000102001,
1632     VK_STRUCTURE_TYPE_HDR_METADATA_EXT = 1000105000,
1633     VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR = 1000111000,
1634     VK_STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR = 1000114000,
1635     VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR = 1000114001,
1636     VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR = 1000114002,
1637     VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR = 1000115000,
1638     VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR = 1000115001,
1639     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR = 1000116000,
1640     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR = 1000116001,
1641     VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR = 1000116002,
1642     VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR = 1000116003,
1643     VK_STRUCTURE_TYPE_ACQUIRE_PROFILING_LOCK_INFO_KHR = 1000116004,
1644     VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_KHR = 1000116005,
1645     VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_DESCRIPTION_KHR = 1000116006,
1646     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR = 1000119000,
1647     VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR = 1000119001,
1648     VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR = 1000119002,
1649     VK_STRUCTURE_TYPE_DISPLAY_PROPERTIES_2_KHR = 1000121000,
1650     VK_STRUCTURE_TYPE_DISPLAY_PLANE_PROPERTIES_2_KHR = 1000121001,
1651     VK_STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR = 1000121002,
1652     VK_STRUCTURE_TYPE_DISPLAY_PLANE_INFO_2_KHR = 1000121003,
1653     VK_STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR = 1000121004,
1654     VK_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK = 1000122000,
1655     VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK = 1000123000,
1656     VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT = 1000128000,
1657     VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT = 1000128001,
1658     VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT = 1000128002,
1659     VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT = 1000128003,
1660     VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT = 1000128004,
1661     VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID = 1000129000,
1662     VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID = 1000129001,
1663     VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID = 1000129002,
1664     VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID = 1000129003,
1665     VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID = 1000129004,
1666     VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID = 1000129005,
1667     VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_2_ANDROID = 1000129006,
1668     VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT = 1000143000,
1669     VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT = 1000143001,
1670     VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT = 1000143002,
1671     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT = 1000143003,
1672     VK_STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT = 1000143004,
1673     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT = 1000148000,
1674     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT = 1000148001,
1675     VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT = 1000148002,
1676     VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV = 1000149000,
1677     VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR = 1000150007,
1678     VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR = 1000150000,
1679     VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR = 1000150002,
1680     VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHR = 1000150003,
1681     VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR = 1000150004,
1682     VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR = 1000150005,
1683     VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHR = 1000150006,
1684     VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_VERSION_INFO_KHR = 1000150009,
1685     VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_INFO_KHR = 1000150010,
1686     VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR = 1000150011,
1687     VK_STRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR = 1000150012,
1688     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR = 1000150013,
1689     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR = 1000150014,
1690     VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHR = 1000150017,
1691     VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_SIZES_INFO_KHR = 1000150020,
1692     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR = 1000347000,
1693     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR = 1000347001,
1694     VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_KHR = 1000150015,
1695     VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR = 1000150016,
1696     VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_INTERFACE_CREATE_INFO_KHR = 1000150018,
1697     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR = 1000348013,
1698     VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV = 1000152000,
1699     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV = 1000154000,
1700     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV = 1000154001,
1701     VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT = 1000158000,
1702     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT = 1000158002,
1703     VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT = 1000158003,
1704     VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT = 1000158004,
1705     VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT = 1000158005,
1706     VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT = 1000158006,
1707     VK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT = 1000160000,
1708     VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT = 1000160001,
1709 #ifdef VK_ENABLE_BETA_EXTENSIONS
1710     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR = 1000163000,
1711 #endif
1712 #ifdef VK_ENABLE_BETA_EXTENSIONS
1713     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR = 1000163001,
1714 #endif
1715     VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV = 1000164000,
1716     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV = 1000164001,
1717     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV = 1000164002,
1718     VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV = 1000164005,
1719     VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_NV = 1000165000,
1720     VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV = 1000165001,
1721     VK_STRUCTURE_TYPE_GEOMETRY_NV = 1000165003,
1722     VK_STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NV = 1000165004,
1723     VK_STRUCTURE_TYPE_GEOMETRY_AABB_NV = 1000165005,
1724     VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV = 1000165006,
1725     VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV = 1000165007,
1726     VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV = 1000165008,
1727     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV = 1000165009,
1728     VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV = 1000165011,
1729     VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_INFO_NV = 1000165012,
1730     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV = 1000166000,
1731     VK_STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV = 1000166001,
1732     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT = 1000170000,
1733     VK_STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT = 1000170001,
1734     VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT = 1000178000,
1735     VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT = 1000178001,
1736     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT = 1000178002,
1737     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR = 1000181000,
1738     VK_STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD = 1000183000,
1739     VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT = 1000184000,
1740     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD = 1000185000,
1741 #ifdef VK_ENABLE_BETA_EXTENSIONS
1742     VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_CAPABILITIES_EXT = 1000187000,
1743 #endif
1744 #ifdef VK_ENABLE_BETA_EXTENSIONS
1745     VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_CREATE_INFO_EXT = 1000187001,
1746 #endif
1747 #ifdef VK_ENABLE_BETA_EXTENSIONS
1748     VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_ADD_INFO_EXT = 1000187002,
1749 #endif
1750 #ifdef VK_ENABLE_BETA_EXTENSIONS
1751     VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PROFILE_EXT = 1000187003,
1752 #endif
1753 #ifdef VK_ENABLE_BETA_EXTENSIONS
1754     VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PICTURE_INFO_EXT = 1000187004,
1755 #endif
1756 #ifdef VK_ENABLE_BETA_EXTENSIONS
1757     VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_DPB_SLOT_INFO_EXT = 1000187005,
1758 #endif
1759     VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR = 1000174000,
1760     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR = 1000388000,
1761     VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR = 1000388001,
1762     VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD = 1000189000,
1763     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT = 1000190000,
1764     VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT = 1000190001,
1765     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT = 1000190002,
1766     VK_STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP = 1000191000,
1767     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV = 1000201000,
1768     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV = 1000202000,
1769     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV = 1000202001,
1770     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV = 1000204000,
1771     VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV = 1000205000,
1772     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV = 1000205002,
1773     VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NV = 1000206000,
1774     VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV = 1000206001,
1775     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL = 1000209000,
1776     VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL = 1000210000,
1777     VK_STRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTEL = 1000210001,
1778     VK_STRUCTURE_TYPE_PERFORMANCE_MARKER_INFO_INTEL = 1000210002,
1779     VK_STRUCTURE_TYPE_PERFORMANCE_STREAM_MARKER_INFO_INTEL = 1000210003,
1780     VK_STRUCTURE_TYPE_PERFORMANCE_OVERRIDE_INFO_INTEL = 1000210004,
1781     VK_STRUCTURE_TYPE_PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL = 1000210005,
1782     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT = 1000212000,
1783     VK_STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD = 1000213000,
1784     VK_STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD = 1000213001,
1785     VK_STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA = 1000214000,
1786     VK_STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT = 1000217000,
1787     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT = 1000218000,
1788     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT = 1000218001,
1789     VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT = 1000218002,
1790     VK_STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR = 1000226000,
1791     VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR = 1000226001,
1792     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR = 1000226002,
1793     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR = 1000226003,
1794     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR = 1000226004,
1795     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD = 1000227000,
1796     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD = 1000229000,
1797     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT = 1000234000,
1798     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT = 1000237000,
1799     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT = 1000238000,
1800     VK_STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT = 1000238001,
1801     VK_STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR = 1000239000,
1802     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV = 1000240000,
1803     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT = 1000244000,
1804     VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT = 1000244002,
1805     VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT = 1000247000,
1806     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR = 1000248000,
1807     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV = 1000249000,
1808     VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV = 1000249001,
1809     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV = 1000249002,
1810     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV = 1000250000,
1811     VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV = 1000250001,
1812     VK_STRUCTURE_TYPE_FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV = 1000250002,
1813     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT = 1000251000,
1814     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT = 1000252000,
1815     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT = 1000254000,
1816     VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT = 1000254001,
1817     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT = 1000254002,
1818     VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT = 1000255000,
1819     VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT = 1000255002,
1820     VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT = 1000255001,
1821     VK_STRUCTURE_TYPE_HEADLESS_SURFACE_CREATE_INFO_EXT = 1000256000,
1822     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT = 1000259000,
1823     VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT = 1000259001,
1824     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT = 1000259002,
1825     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT = 1000260000,
1826     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT = 1000265000,
1827     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT = 1000267000,
1828     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR = 1000269000,
1829     VK_STRUCTURE_TYPE_PIPELINE_INFO_KHR = 1000269001,
1830     VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_PROPERTIES_KHR = 1000269002,
1831     VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHR = 1000269003,
1832     VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR = 1000269004,
1833     VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR = 1000269005,
1834     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT = 1000273000,
1835     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV = 1000277000,
1836     VK_STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV = 1000277001,
1837     VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV = 1000277002,
1838     VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_NV = 1000277003,
1839     VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV = 1000277004,
1840     VK_STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_NV = 1000277005,
1841     VK_STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV = 1000277006,
1842     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV = 1000277007,
1843     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV = 1000278000,
1844     VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV = 1000278001,
1845     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT = 1000281000,
1846     VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM = 1000282000,
1847     VK_STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM = 1000282001,
1848     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT = 1000284000,
1849     VK_STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT = 1000284001,
1850     VK_STRUCTURE_TYPE_DEVICE_MEMORY_REPORT_CALLBACK_DATA_EXT = 1000284002,
1851     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT = 1000286000,
1852     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT = 1000286001,
1853     VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT = 1000287000,
1854     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT = 1000287001,
1855     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT = 1000287002,
1856     VK_STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR = 1000290000,
1857     VK_STRUCTURE_TYPE_PRESENT_ID_KHR = 1000294000,
1858     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR = 1000294001,
1859 #ifdef VK_ENABLE_BETA_EXTENSIONS
1860     VK_STRUCTURE_TYPE_VIDEO_ENCODE_INFO_KHR = 1000299000,
1861 #endif
1862 #ifdef VK_ENABLE_BETA_EXTENSIONS
1863     VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_INFO_KHR = 1000299001,
1864 #endif
1865 #ifdef VK_ENABLE_BETA_EXTENSIONS
1866     VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_LAYER_INFO_KHR = 1000299002,
1867 #endif
1868 #ifdef VK_ENABLE_BETA_EXTENSIONS
1869     VK_STRUCTURE_TYPE_VIDEO_ENCODE_CAPABILITIES_KHR = 1000299003,
1870 #endif
1871     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV = 1000300000,
1872     VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV = 1000300001,
1873     VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV = 1000314008,
1874     VK_STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV = 1000314009,
1875     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT = 1000320000,
1876     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT = 1000320001,
1877     VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT = 1000320002,
1878     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_FEATURES_AMD = 1000321000,
1879     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR = 1000203000,
1880     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR = 1000322000,
1881     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR = 1000323000,
1882     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV = 1000326000,
1883     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV = 1000326001,
1884     VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV = 1000326002,
1885     VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV = 1000327000,
1886     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV = 1000327001,
1887     VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MOTION_INFO_NV = 1000327002,
1888     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT = 1000330000,
1889     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT = 1000332000,
1890     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT = 1000332001,
1891     VK_STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM = 1000333000,
1892     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR = 1000336000,
1893     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT = 1000338000,
1894     VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_CONTROL_EXT = 1000338001,
1895     VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_EXT = 1000338002,
1896     VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_EXT = 1000338003,
1897     VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT = 1000338004,
1898     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT = 1000340000,
1899     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_ARM = 1000342000,
1900     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT = 1000344000,
1901     VK_STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT = 1000346000,
1902     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE = 1000351000,
1903     VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE = 1000351002,
1904     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT = 1000352000,
1905     VK_STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT = 1000352001,
1906     VK_STRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT = 1000352002,
1907     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT = 1000353000,
1908     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT = 1000355000,
1909     VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLIP_CONTROL_CREATE_INFO_EXT = 1000355001,
1910     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT = 1000356000,
1911     VK_STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA = 1000364000,
1912     VK_STRUCTURE_TYPE_MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA = 1000364001,
1913     VK_STRUCTURE_TYPE_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA = 1000364002,
1914     VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA = 1000365000,
1915     VK_STRUCTURE_TYPE_SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA = 1000365001,
1916     VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CREATE_INFO_FUCHSIA = 1000366000,
1917     VK_STRUCTURE_TYPE_IMPORT_MEMORY_BUFFER_COLLECTION_FUCHSIA = 1000366001,
1918     VK_STRUCTURE_TYPE_BUFFER_COLLECTION_IMAGE_CREATE_INFO_FUCHSIA = 1000366002,
1919     VK_STRUCTURE_TYPE_BUFFER_COLLECTION_PROPERTIES_FUCHSIA = 1000366003,
1920     VK_STRUCTURE_TYPE_BUFFER_CONSTRAINTS_INFO_FUCHSIA = 1000366004,
1921     VK_STRUCTURE_TYPE_BUFFER_COLLECTION_BUFFER_CREATE_INFO_FUCHSIA = 1000366005,
1922     VK_STRUCTURE_TYPE_IMAGE_CONSTRAINTS_INFO_FUCHSIA = 1000366006,
1923     VK_STRUCTURE_TYPE_IMAGE_FORMAT_CONSTRAINTS_INFO_FUCHSIA = 1000366007,
1924     VK_STRUCTURE_TYPE_SYSMEM_COLOR_SPACE_FUCHSIA = 1000366008,
1925     VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CONSTRAINTS_INFO_FUCHSIA = 1000366009,
1926     VK_STRUCTURE_TYPE_SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI = 1000369000,
1927     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI = 1000369001,
1928     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI = 1000369002,
1929     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI = 1000370000,
1930     VK_STRUCTURE_TYPE_MEMORY_GET_REMOTE_ADDRESS_INFO_NV = 1000371000,
1931     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV = 1000371001,
1932     VK_STRUCTURE_TYPE_PIPELINE_PROPERTIES_IDENTIFIER_EXT = 1000372000,
1933     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT = 1000372001,
1934     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT = 1000377000,
1935     VK_STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX = 1000378000,
1936     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT = 1000381000,
1937     VK_STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT = 1000381001,
1938     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT = 1000382000,
1939     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR = 1000386000,
1940     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT = 1000391000,
1941     VK_STRUCTURE_TYPE_IMAGE_VIEW_MIN_LOD_CREATE_INFO_EXT = 1000391001,
1942     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT = 1000392000,
1943     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT = 1000392001,
1944     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT = 1000393000,
1945     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT = 1000411000,
1946     VK_STRUCTURE_TYPE_SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT = 1000411001,
1947     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT = 1000412000,
1948     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_SET_HOST_MAPPING_FEATURES_VALVE = 1000420000,
1949     VK_STRUCTURE_TYPE_DESCRIPTOR_SET_BINDING_REFERENCE_VALVE = 1000420001,
1950     VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_HOST_MAPPING_INFO_VALVE = 1000420002,
1951     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM = 1000425000,
1952     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_QCOM = 1000425001,
1953     VK_STRUCTURE_TYPE_SUBPASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_QCOM = 1000425002,
1954     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV = 1000430000,
1955     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT = 1000437000,
1956     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT = 1000458000,
1957     VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_CONTROL_EXT = 1000458001,
1958     VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_FEEDBACK_INFO_EXT = 1000458002,
1959     VK_STRUCTURE_TYPE_RENDER_PASS_SUBPASS_FEEDBACK_INFO_EXT = 1000458003,
1960     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES,
1961     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES,
1962     VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT,
1963     VK_STRUCTURE_TYPE_RENDERING_INFO_KHR = VK_STRUCTURE_TYPE_RENDERING_INFO,
1964     VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO_KHR = VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO,
1965     VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO,
1966     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES,
1967     VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO_KHR = VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO,
1968     VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_NV = VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD,
1969     VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO,
1970     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES,
1971     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES,
1972     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2,
1973     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2,
1974     VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2,
1975     VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2,
1976     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2,
1977     VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2,
1978     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2,
1979     VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2,
1980     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2,
1981     VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO_KHR = VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO,
1982     VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO,
1983     VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO,
1984     VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO,
1985     VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO,
1986     VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO_KHR = VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO,
1987     VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO_KHR = VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO,
1988     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES,
1989     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES,
1990     VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO,
1991     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO,
1992     VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES_KHR = VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES,
1993     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO,
1994     VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES_KHR = VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES,
1995     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES,
1996     VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO,
1997     VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO,
1998     VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_KHR = VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO,
1999     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO,
2000     VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES_KHR = VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES,
2001     VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO,
2002     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES,
2003     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT16_INT8_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES,
2004     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES,
2005     VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO,
2006     VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES2_EXT = VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT,
2007     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES,
2008     VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO,
2009     VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO_KHR = VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO,
2010     VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO_KHR = VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO,
2011     VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2_KHR = VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2,
2012     VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2_KHR = VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2,
2013     VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2_KHR = VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2,
2014     VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2_KHR = VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2,
2015     VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2_KHR = VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2,
2016     VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO_KHR = VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO,
2017     VK_STRUCTURE_TYPE_SUBPASS_END_INFO_KHR = VK_STRUCTURE_TYPE_SUBPASS_END_INFO,
2018     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO,
2019     VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES_KHR = VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES,
2020     VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO,
2021     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES,
2022     VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO,
2023     VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO,
2024     VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO,
2025     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES,
2026     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES_KHR,
2027     VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS_KHR = VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS,
2028     VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO_KHR = VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO,
2029     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES,
2030     VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO,
2031     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES,
2032     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES,
2033     VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK_EXT = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK,
2034     VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO,
2035     VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2_KHR = VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2,
2036     VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2_KHR = VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2,
2037     VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2_KHR = VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2,
2038     VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2_KHR = VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2,
2039     VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2_KHR = VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2,
2040     VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO,
2041     VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO,
2042     VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO_KHR = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO,
2043     VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO_KHR = VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO,
2044     VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO_KHR = VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO,
2045     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES,
2046     VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES_KHR = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES,
2047     VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO_KHR = VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO,
2048     VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO_KHR = VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO,
2049     VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO,
2050     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES,
2051     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES,
2052     VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO_EXT = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO,
2053     VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT_EXT = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT,
2054     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES,
2055     VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT_KHR = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT,
2056     VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR,
2057     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES,
2058     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES,
2059     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES,
2060     VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO,
2061     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES,
2062     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES,
2063     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES,
2064     VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE_KHR = VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE,
2065     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR,
2066     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES,
2067     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES,
2068     VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO,
2069     VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO_KHR = VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO,
2070     VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO_KHR = VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO,
2071     VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO_KHR = VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO,
2072     VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO_INTEL = VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL,
2073     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES,
2074     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES,
2075     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES,
2076     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES,
2077     VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO,
2078     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES,
2079     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES,
2080     VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT_KHR = VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT,
2081     VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT_KHR = VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT,
2082     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_ADDRESS_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT,
2083     VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO_EXT = VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO,
2084     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES,
2085     VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO,
2086     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES,
2087     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES,
2088     VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO_KHR = VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO,
2089     VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO,
2090     VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO_KHR = VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO,
2091     VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO,
2092     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES,
2093     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES,
2094     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES,
2095     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES,
2096     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES,
2097     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES,
2098     VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO,
2099     VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO,
2100     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES,
2101     VK_STRUCTURE_TYPE_MEMORY_BARRIER_2_KHR = VK_STRUCTURE_TYPE_MEMORY_BARRIER_2,
2102     VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2_KHR = VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2,
2103     VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2_KHR = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2,
2104     VK_STRUCTURE_TYPE_DEPENDENCY_INFO_KHR = VK_STRUCTURE_TYPE_DEPENDENCY_INFO,
2105     VK_STRUCTURE_TYPE_SUBMIT_INFO_2_KHR = VK_STRUCTURE_TYPE_SUBMIT_INFO_2,
2106     VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO_KHR = VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO,
2107     VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO_KHR = VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO,
2108     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES,
2109     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES,
2110     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES,
2111     VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2_KHR = VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2,
2112     VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2_KHR = VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2,
2113     VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2_KHR = VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2,
2114     VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2_KHR = VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2,
2115     VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2_KHR = VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2,
2116     VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2_KHR = VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2,
2117     VK_STRUCTURE_TYPE_BUFFER_COPY_2_KHR = VK_STRUCTURE_TYPE_BUFFER_COPY_2,
2118     VK_STRUCTURE_TYPE_IMAGE_COPY_2_KHR = VK_STRUCTURE_TYPE_IMAGE_COPY_2,
2119     VK_STRUCTURE_TYPE_IMAGE_BLIT_2_KHR = VK_STRUCTURE_TYPE_IMAGE_BLIT_2,
2120     VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2_KHR = VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2,
2121     VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2_KHR = VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2,
2122     VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3_KHR = VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3,
2123     VK_STRUCTURE_TYPE_PIPELINE_INFO_EXT = VK_STRUCTURE_TYPE_PIPELINE_INFO_KHR,
2124     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR,
2125     VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_EXT = VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR,
2126     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES,
2127     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES,
2128     VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS_KHR = VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS,
2129     VK_STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS_KHR = VK_STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS,
2130     VK_STRUCTURE_TYPE_MAX_ENUM = 0x7FFFFFFF
2131 } VkStructureType;
2132
2133 typedef enum VkPipelineCacheHeaderVersion {
2134     VK_PIPELINE_CACHE_HEADER_VERSION_ONE = 1,
2135     VK_PIPELINE_CACHE_HEADER_VERSION_MAX_ENUM = 0x7FFFFFFF
2136 } VkPipelineCacheHeaderVersion;
2137
2138 typedef enum VkImageLayout {
2139     VK_IMAGE_LAYOUT_UNDEFINED = 0,
2140     VK_IMAGE_LAYOUT_GENERAL = 1,
2141     VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL = 2,
2142     VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL = 3,
2143     VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL = 4,
2144     VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL = 5,
2145     VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL = 6,
2146     VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL = 7,
2147     VK_IMAGE_LAYOUT_PREINITIALIZED = 8,
2148     VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL = 1000117000,
2149     VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL = 1000117001,
2150     VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL = 1000241000,
2151     VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL = 1000241001,
2152     VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL = 1000241002,
2153     VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL = 1000241003,
2154     VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL = 1000314000,
2155     VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL = 1000314001,
2156     VK_IMAGE_LAYOUT_PRESENT_SRC_KHR = 1000001002,
2157 #ifdef VK_ENABLE_BETA_EXTENSIONS
2158     VK_IMAGE_LAYOUT_VIDEO_DECODE_DST_KHR = 1000024000,
2159 #endif
2160 #ifdef VK_ENABLE_BETA_EXTENSIONS
2161     VK_IMAGE_LAYOUT_VIDEO_DECODE_SRC_KHR = 1000024001,
2162 #endif
2163 #ifdef VK_ENABLE_BETA_EXTENSIONS
2164     VK_IMAGE_LAYOUT_VIDEO_DECODE_DPB_KHR = 1000024002,
2165 #endif
2166     VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR = 1000111000,
2167     VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT = 1000218000,
2168     VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR = 1000164003,
2169 #ifdef VK_ENABLE_BETA_EXTENSIONS
2170     VK_IMAGE_LAYOUT_VIDEO_ENCODE_DST_KHR = 1000299000,
2171 #endif
2172 #ifdef VK_ENABLE_BETA_EXTENSIONS
2173     VK_IMAGE_LAYOUT_VIDEO_ENCODE_SRC_KHR = 1000299001,
2174 #endif
2175 #ifdef VK_ENABLE_BETA_EXTENSIONS
2176     VK_IMAGE_LAYOUT_VIDEO_ENCODE_DPB_KHR = 1000299002,
2177 #endif
2178     VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL_KHR = VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL,
2179     VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL_KHR = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL,
2180     VK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV = VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR,
2181     VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL_KHR = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL,
2182     VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL_KHR = VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL,
2183     VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL_KHR = VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL,
2184     VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL_KHR = VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL,
2185     VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR = VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL,
2186     VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR = VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL,
2187     VK_IMAGE_LAYOUT_MAX_ENUM = 0x7FFFFFFF
2188 } VkImageLayout;
2189
2190 typedef enum VkObjectType {
2191     VK_OBJECT_TYPE_UNKNOWN = 0,
2192     VK_OBJECT_TYPE_INSTANCE = 1,
2193     VK_OBJECT_TYPE_PHYSICAL_DEVICE = 2,
2194     VK_OBJECT_TYPE_DEVICE = 3,
2195     VK_OBJECT_TYPE_QUEUE = 4,
2196     VK_OBJECT_TYPE_SEMAPHORE = 5,
2197     VK_OBJECT_TYPE_COMMAND_BUFFER = 6,
2198     VK_OBJECT_TYPE_FENCE = 7,
2199     VK_OBJECT_TYPE_DEVICE_MEMORY = 8,
2200     VK_OBJECT_TYPE_BUFFER = 9,
2201     VK_OBJECT_TYPE_IMAGE = 10,
2202     VK_OBJECT_TYPE_EVENT = 11,
2203     VK_OBJECT_TYPE_QUERY_POOL = 12,
2204     VK_OBJECT_TYPE_BUFFER_VIEW = 13,
2205     VK_OBJECT_TYPE_IMAGE_VIEW = 14,
2206     VK_OBJECT_TYPE_SHADER_MODULE = 15,
2207     VK_OBJECT_TYPE_PIPELINE_CACHE = 16,
2208     VK_OBJECT_TYPE_PIPELINE_LAYOUT = 17,
2209     VK_OBJECT_TYPE_RENDER_PASS = 18,
2210     VK_OBJECT_TYPE_PIPELINE = 19,
2211     VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT = 20,
2212     VK_OBJECT_TYPE_SAMPLER = 21,
2213     VK_OBJECT_TYPE_DESCRIPTOR_POOL = 22,
2214     VK_OBJECT_TYPE_DESCRIPTOR_SET = 23,
2215     VK_OBJECT_TYPE_FRAMEBUFFER = 24,
2216     VK_OBJECT_TYPE_COMMAND_POOL = 25,
2217     VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION = 1000156000,
2218     VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE = 1000085000,
2219     VK_OBJECT_TYPE_PRIVATE_DATA_SLOT = 1000295000,
2220     VK_OBJECT_TYPE_SURFACE_KHR = 1000000000,
2221     VK_OBJECT_TYPE_SWAPCHAIN_KHR = 1000001000,
2222     VK_OBJECT_TYPE_DISPLAY_KHR = 1000002000,
2223     VK_OBJECT_TYPE_DISPLAY_MODE_KHR = 1000002001,
2224     VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT = 1000011000,
2225 #ifdef VK_ENABLE_BETA_EXTENSIONS
2226     VK_OBJECT_TYPE_VIDEO_SESSION_KHR = 1000023000,
2227 #endif
2228 #ifdef VK_ENABLE_BETA_EXTENSIONS
2229     VK_OBJECT_TYPE_VIDEO_SESSION_PARAMETERS_KHR = 1000023001,
2230 #endif
2231     VK_OBJECT_TYPE_CU_MODULE_NVX = 1000029000,
2232     VK_OBJECT_TYPE_CU_FUNCTION_NVX = 1000029001,
2233     VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT = 1000128000,
2234     VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR = 1000150000,
2235     VK_OBJECT_TYPE_VALIDATION_CACHE_EXT = 1000160000,
2236     VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV = 1000165000,
2237     VK_OBJECT_TYPE_PERFORMANCE_CONFIGURATION_INTEL = 1000210000,
2238     VK_OBJECT_TYPE_DEFERRED_OPERATION_KHR = 1000268000,
2239     VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NV = 1000277000,
2240     VK_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA = 1000366000,
2241     VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR = VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE,
2242     VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR = VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION,
2243     VK_OBJECT_TYPE_PRIVATE_DATA_SLOT_EXT = VK_OBJECT_TYPE_PRIVATE_DATA_SLOT,
2244     VK_OBJECT_TYPE_MAX_ENUM = 0x7FFFFFFF
2245 } VkObjectType;
2246
2247 typedef enum VkVendorId {
2248     VK_VENDOR_ID_VIV = 0x10001,
2249     VK_VENDOR_ID_VSI = 0x10002,
2250     VK_VENDOR_ID_KAZAN = 0x10003,
2251     VK_VENDOR_ID_CODEPLAY = 0x10004,
2252     VK_VENDOR_ID_MESA = 0x10005,
2253     VK_VENDOR_ID_POCL = 0x10006,
2254     VK_VENDOR_ID_MAX_ENUM = 0x7FFFFFFF
2255 } VkVendorId;
2256
2257 typedef enum VkSystemAllocationScope {
2258     VK_SYSTEM_ALLOCATION_SCOPE_COMMAND = 0,
2259     VK_SYSTEM_ALLOCATION_SCOPE_OBJECT = 1,
2260     VK_SYSTEM_ALLOCATION_SCOPE_CACHE = 2,
2261     VK_SYSTEM_ALLOCATION_SCOPE_DEVICE = 3,
2262     VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE = 4,
2263     VK_SYSTEM_ALLOCATION_SCOPE_MAX_ENUM = 0x7FFFFFFF
2264 } VkSystemAllocationScope;
2265
2266 typedef enum VkInternalAllocationType {
2267     VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE = 0,
2268     VK_INTERNAL_ALLOCATION_TYPE_MAX_ENUM = 0x7FFFFFFF
2269 } VkInternalAllocationType;
2270
2271 typedef enum VkFormat {
2272     VK_FORMAT_UNDEFINED = 0,
2273     VK_FORMAT_R4G4_UNORM_PACK8 = 1,
2274     VK_FORMAT_R4G4B4A4_UNORM_PACK16 = 2,
2275     VK_FORMAT_B4G4R4A4_UNORM_PACK16 = 3,
2276     VK_FORMAT_R5G6B5_UNORM_PACK16 = 4,
2277     VK_FORMAT_B5G6R5_UNORM_PACK16 = 5,
2278     VK_FORMAT_R5G5B5A1_UNORM_PACK16 = 6,
2279     VK_FORMAT_B5G5R5A1_UNORM_PACK16 = 7,
2280     VK_FORMAT_A1R5G5B5_UNORM_PACK16 = 8,
2281     VK_FORMAT_R8_UNORM = 9,
2282     VK_FORMAT_R8_SNORM = 10,
2283     VK_FORMAT_R8_USCALED = 11,
2284     VK_FORMAT_R8_SSCALED = 12,
2285     VK_FORMAT_R8_UINT = 13,
2286     VK_FORMAT_R8_SINT = 14,
2287     VK_FORMAT_R8_SRGB = 15,
2288     VK_FORMAT_R8G8_UNORM = 16,
2289     VK_FORMAT_R8G8_SNORM = 17,
2290     VK_FORMAT_R8G8_USCALED = 18,
2291     VK_FORMAT_R8G8_SSCALED = 19,
2292     VK_FORMAT_R8G8_UINT = 20,
2293     VK_FORMAT_R8G8_SINT = 21,
2294     VK_FORMAT_R8G8_SRGB = 22,
2295     VK_FORMAT_R8G8B8_UNORM = 23,
2296     VK_FORMAT_R8G8B8_SNORM = 24,
2297     VK_FORMAT_R8G8B8_USCALED = 25,
2298     VK_FORMAT_R8G8B8_SSCALED = 26,
2299     VK_FORMAT_R8G8B8_UINT = 27,
2300     VK_FORMAT_R8G8B8_SINT = 28,
2301     VK_FORMAT_R8G8B8_SRGB = 29,
2302     VK_FORMAT_B8G8R8_UNORM = 30,
2303     VK_FORMAT_B8G8R8_SNORM = 31,
2304     VK_FORMAT_B8G8R8_USCALED = 32,
2305     VK_FORMAT_B8G8R8_SSCALED = 33,
2306     VK_FORMAT_B8G8R8_UINT = 34,
2307     VK_FORMAT_B8G8R8_SINT = 35,
2308     VK_FORMAT_B8G8R8_SRGB = 36,
2309     VK_FORMAT_R8G8B8A8_UNORM = 37,
2310     VK_FORMAT_R8G8B8A8_SNORM = 38,
2311     VK_FORMAT_R8G8B8A8_USCALED = 39,
2312     VK_FORMAT_R8G8B8A8_SSCALED = 40,
2313     VK_FORMAT_R8G8B8A8_UINT = 41,
2314     VK_FORMAT_R8G8B8A8_SINT = 42,
2315     VK_FORMAT_R8G8B8A8_SRGB = 43,
2316     VK_FORMAT_B8G8R8A8_UNORM = 44,
2317     VK_FORMAT_B8G8R8A8_SNORM = 45,
2318     VK_FORMAT_B8G8R8A8_USCALED = 46,
2319     VK_FORMAT_B8G8R8A8_SSCALED = 47,
2320     VK_FORMAT_B8G8R8A8_UINT = 48,
2321     VK_FORMAT_B8G8R8A8_SINT = 49,
2322     VK_FORMAT_B8G8R8A8_SRGB = 50,
2323     VK_FORMAT_A8B8G8R8_UNORM_PACK32 = 51,
2324     VK_FORMAT_A8B8G8R8_SNORM_PACK32 = 52,
2325     VK_FORMAT_A8B8G8R8_USCALED_PACK32 = 53,
2326     VK_FORMAT_A8B8G8R8_SSCALED_PACK32 = 54,
2327     VK_FORMAT_A8B8G8R8_UINT_PACK32 = 55,
2328     VK_FORMAT_A8B8G8R8_SINT_PACK32 = 56,
2329     VK_FORMAT_A8B8G8R8_SRGB_PACK32 = 57,
2330     VK_FORMAT_A2R10G10B10_UNORM_PACK32 = 58,
2331     VK_FORMAT_A2R10G10B10_SNORM_PACK32 = 59,
2332     VK_FORMAT_A2R10G10B10_USCALED_PACK32 = 60,
2333     VK_FORMAT_A2R10G10B10_SSCALED_PACK32 = 61,
2334     VK_FORMAT_A2R10G10B10_UINT_PACK32 = 62,
2335     VK_FORMAT_A2R10G10B10_SINT_PACK32 = 63,
2336     VK_FORMAT_A2B10G10R10_UNORM_PACK32 = 64,
2337     VK_FORMAT_A2B10G10R10_SNORM_PACK32 = 65,
2338     VK_FORMAT_A2B10G10R10_USCALED_PACK32 = 66,
2339     VK_FORMAT_A2B10G10R10_SSCALED_PACK32 = 67,
2340     VK_FORMAT_A2B10G10R10_UINT_PACK32 = 68,
2341     VK_FORMAT_A2B10G10R10_SINT_PACK32 = 69,
2342     VK_FORMAT_R16_UNORM = 70,
2343     VK_FORMAT_R16_SNORM = 71,
2344     VK_FORMAT_R16_USCALED = 72,
2345     VK_FORMAT_R16_SSCALED = 73,
2346     VK_FORMAT_R16_UINT = 74,
2347     VK_FORMAT_R16_SINT = 75,
2348     VK_FORMAT_R16_SFLOAT = 76,
2349     VK_FORMAT_R16G16_UNORM = 77,
2350     VK_FORMAT_R16G16_SNORM = 78,
2351     VK_FORMAT_R16G16_USCALED = 79,
2352     VK_FORMAT_R16G16_SSCALED = 80,
2353     VK_FORMAT_R16G16_UINT = 81,
2354     VK_FORMAT_R16G16_SINT = 82,
2355     VK_FORMAT_R16G16_SFLOAT = 83,
2356     VK_FORMAT_R16G16B16_UNORM = 84,
2357     VK_FORMAT_R16G16B16_SNORM = 85,
2358     VK_FORMAT_R16G16B16_USCALED = 86,
2359     VK_FORMAT_R16G16B16_SSCALED = 87,
2360     VK_FORMAT_R16G16B16_UINT = 88,
2361     VK_FORMAT_R16G16B16_SINT = 89,
2362     VK_FORMAT_R16G16B16_SFLOAT = 90,
2363     VK_FORMAT_R16G16B16A16_UNORM = 91,
2364     VK_FORMAT_R16G16B16A16_SNORM = 92,
2365     VK_FORMAT_R16G16B16A16_USCALED = 93,
2366     VK_FORMAT_R16G16B16A16_SSCALED = 94,
2367     VK_FORMAT_R16G16B16A16_UINT = 95,
2368     VK_FORMAT_R16G16B16A16_SINT = 96,
2369     VK_FORMAT_R16G16B16A16_SFLOAT = 97,
2370     VK_FORMAT_R32_UINT = 98,
2371     VK_FORMAT_R32_SINT = 99,
2372     VK_FORMAT_R32_SFLOAT = 100,
2373     VK_FORMAT_R32G32_UINT = 101,
2374     VK_FORMAT_R32G32_SINT = 102,
2375     VK_FORMAT_R32G32_SFLOAT = 103,
2376     VK_FORMAT_R32G32B32_UINT = 104,
2377     VK_FORMAT_R32G32B32_SINT = 105,
2378     VK_FORMAT_R32G32B32_SFLOAT = 106,
2379     VK_FORMAT_R32G32B32A32_UINT = 107,
2380     VK_FORMAT_R32G32B32A32_SINT = 108,
2381     VK_FORMAT_R32G32B32A32_SFLOAT = 109,
2382     VK_FORMAT_R64_UINT = 110,
2383     VK_FORMAT_R64_SINT = 111,
2384     VK_FORMAT_R64_SFLOAT = 112,
2385     VK_FORMAT_R64G64_UINT = 113,
2386     VK_FORMAT_R64G64_SINT = 114,
2387     VK_FORMAT_R64G64_SFLOAT = 115,
2388     VK_FORMAT_R64G64B64_UINT = 116,
2389     VK_FORMAT_R64G64B64_SINT = 117,
2390     VK_FORMAT_R64G64B64_SFLOAT = 118,
2391     VK_FORMAT_R64G64B64A64_UINT = 119,
2392     VK_FORMAT_R64G64B64A64_SINT = 120,
2393     VK_FORMAT_R64G64B64A64_SFLOAT = 121,
2394     VK_FORMAT_B10G11R11_UFLOAT_PACK32 = 122,
2395     VK_FORMAT_E5B9G9R9_UFLOAT_PACK32 = 123,
2396     VK_FORMAT_D16_UNORM = 124,
2397     VK_FORMAT_X8_D24_UNORM_PACK32 = 125,
2398     VK_FORMAT_D32_SFLOAT = 126,
2399     VK_FORMAT_S8_UINT = 127,
2400     VK_FORMAT_D16_UNORM_S8_UINT = 128,
2401     VK_FORMAT_D24_UNORM_S8_UINT = 129,
2402     VK_FORMAT_D32_SFLOAT_S8_UINT = 130,
2403     VK_FORMAT_BC1_RGB_UNORM_BLOCK = 131,
2404     VK_FORMAT_BC1_RGB_SRGB_BLOCK = 132,
2405     VK_FORMAT_BC1_RGBA_UNORM_BLOCK = 133,
2406     VK_FORMAT_BC1_RGBA_SRGB_BLOCK = 134,
2407     VK_FORMAT_BC2_UNORM_BLOCK = 135,
2408     VK_FORMAT_BC2_SRGB_BLOCK = 136,
2409     VK_FORMAT_BC3_UNORM_BLOCK = 137,
2410     VK_FORMAT_BC3_SRGB_BLOCK = 138,
2411     VK_FORMAT_BC4_UNORM_BLOCK = 139,
2412     VK_FORMAT_BC4_SNORM_BLOCK = 140,
2413     VK_FORMAT_BC5_UNORM_BLOCK = 141,
2414     VK_FORMAT_BC5_SNORM_BLOCK = 142,
2415     VK_FORMAT_BC6H_UFLOAT_BLOCK = 143,
2416     VK_FORMAT_BC6H_SFLOAT_BLOCK = 144,
2417     VK_FORMAT_BC7_UNORM_BLOCK = 145,
2418     VK_FORMAT_BC7_SRGB_BLOCK = 146,
2419     VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK = 147,
2420     VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK = 148,
2421     VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK = 149,
2422     VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK = 150,
2423     VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK = 151,
2424     VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK = 152,
2425     VK_FORMAT_EAC_R11_UNORM_BLOCK = 153,
2426     VK_FORMAT_EAC_R11_SNORM_BLOCK = 154,
2427     VK_FORMAT_EAC_R11G11_UNORM_BLOCK = 155,
2428     VK_FORMAT_EAC_R11G11_SNORM_BLOCK = 156,
2429     VK_FORMAT_ASTC_4x4_UNORM_BLOCK = 157,
2430     VK_FORMAT_ASTC_4x4_SRGB_BLOCK = 158,
2431     VK_FORMAT_ASTC_5x4_UNORM_BLOCK = 159,
2432     VK_FORMAT_ASTC_5x4_SRGB_BLOCK = 160,
2433     VK_FORMAT_ASTC_5x5_UNORM_BLOCK = 161,
2434     VK_FORMAT_ASTC_5x5_SRGB_BLOCK = 162,
2435     VK_FORMAT_ASTC_6x5_UNORM_BLOCK = 163,
2436     VK_FORMAT_ASTC_6x5_SRGB_BLOCK = 164,
2437     VK_FORMAT_ASTC_6x6_UNORM_BLOCK = 165,
2438     VK_FORMAT_ASTC_6x6_SRGB_BLOCK = 166,
2439     VK_FORMAT_ASTC_8x5_UNORM_BLOCK = 167,
2440     VK_FORMAT_ASTC_8x5_SRGB_BLOCK = 168,
2441     VK_FORMAT_ASTC_8x6_UNORM_BLOCK = 169,
2442     VK_FORMAT_ASTC_8x6_SRGB_BLOCK = 170,
2443     VK_FORMAT_ASTC_8x8_UNORM_BLOCK = 171,
2444     VK_FORMAT_ASTC_8x8_SRGB_BLOCK = 172,
2445     VK_FORMAT_ASTC_10x5_UNORM_BLOCK = 173,
2446     VK_FORMAT_ASTC_10x5_SRGB_BLOCK = 174,
2447     VK_FORMAT_ASTC_10x6_UNORM_BLOCK = 175,
2448     VK_FORMAT_ASTC_10x6_SRGB_BLOCK = 176,
2449     VK_FORMAT_ASTC_10x8_UNORM_BLOCK = 177,
2450     VK_FORMAT_ASTC_10x8_SRGB_BLOCK = 178,
2451     VK_FORMAT_ASTC_10x10_UNORM_BLOCK = 179,
2452     VK_FORMAT_ASTC_10x10_SRGB_BLOCK = 180,
2453     VK_FORMAT_ASTC_12x10_UNORM_BLOCK = 181,
2454     VK_FORMAT_ASTC_12x10_SRGB_BLOCK = 182,
2455     VK_FORMAT_ASTC_12x12_UNORM_BLOCK = 183,
2456     VK_FORMAT_ASTC_12x12_SRGB_BLOCK = 184,
2457     VK_FORMAT_G8B8G8R8_422_UNORM = 1000156000,
2458     VK_FORMAT_B8G8R8G8_422_UNORM = 1000156001,
2459     VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM = 1000156002,
2460     VK_FORMAT_G8_B8R8_2PLANE_420_UNORM = 1000156003,
2461     VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM = 1000156004,
2462     VK_FORMAT_G8_B8R8_2PLANE_422_UNORM = 1000156005,
2463     VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM = 1000156006,
2464     VK_FORMAT_R10X6_UNORM_PACK16 = 1000156007,
2465     VK_FORMAT_R10X6G10X6_UNORM_2PACK16 = 1000156008,
2466     VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16 = 1000156009,
2467     VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16 = 1000156010,
2468     VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16 = 1000156011,
2469     VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16 = 1000156012,
2470     VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16 = 1000156013,
2471     VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16 = 1000156014,
2472     VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16 = 1000156015,
2473     VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16 = 1000156016,
2474     VK_FORMAT_R12X4_UNORM_PACK16 = 1000156017,
2475     VK_FORMAT_R12X4G12X4_UNORM_2PACK16 = 1000156018,
2476     VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16 = 1000156019,
2477     VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16 = 1000156020,
2478     VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16 = 1000156021,
2479     VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16 = 1000156022,
2480     VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16 = 1000156023,
2481     VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16 = 1000156024,
2482     VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16 = 1000156025,
2483     VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16 = 1000156026,
2484     VK_FORMAT_G16B16G16R16_422_UNORM = 1000156027,
2485     VK_FORMAT_B16G16R16G16_422_UNORM = 1000156028,
2486     VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM = 1000156029,
2487     VK_FORMAT_G16_B16R16_2PLANE_420_UNORM = 1000156030,
2488     VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM = 1000156031,
2489     VK_FORMAT_G16_B16R16_2PLANE_422_UNORM = 1000156032,
2490     VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM = 1000156033,
2491     VK_FORMAT_G8_B8R8_2PLANE_444_UNORM = 1000330000,
2492     VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16 = 1000330001,
2493     VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16 = 1000330002,
2494     VK_FORMAT_G16_B16R16_2PLANE_444_UNORM = 1000330003,
2495     VK_FORMAT_A4R4G4B4_UNORM_PACK16 = 1000340000,
2496     VK_FORMAT_A4B4G4R4_UNORM_PACK16 = 1000340001,
2497     VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK = 1000066000,
2498     VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK = 1000066001,
2499     VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK = 1000066002,
2500     VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK = 1000066003,
2501     VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK = 1000066004,
2502     VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK = 1000066005,
2503     VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK = 1000066006,
2504     VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK = 1000066007,
2505     VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK = 1000066008,
2506     VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK = 1000066009,
2507     VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK = 1000066010,
2508     VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK = 1000066011,
2509     VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK = 1000066012,
2510     VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK = 1000066013,
2511     VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG = 1000054000,
2512     VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG = 1000054001,
2513     VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG = 1000054002,
2514     VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG = 1000054003,
2515     VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG = 1000054004,
2516     VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG = 1000054005,
2517     VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG = 1000054006,
2518     VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG = 1000054007,
2519     VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK,
2520     VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK,
2521     VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK,
2522     VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK,
2523     VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK,
2524     VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK,
2525     VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK,
2526     VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK,
2527     VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK,
2528     VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK,
2529     VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK,
2530     VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK,
2531     VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK,
2532     VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK,
2533     VK_FORMAT_G8B8G8R8_422_UNORM_KHR = VK_FORMAT_G8B8G8R8_422_UNORM,
2534     VK_FORMAT_B8G8R8G8_422_UNORM_KHR = VK_FORMAT_B8G8R8G8_422_UNORM,
2535     VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM_KHR = VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM,
2536     VK_FORMAT_G8_B8R8_2PLANE_420_UNORM_KHR = VK_FORMAT_G8_B8R8_2PLANE_420_UNORM,
2537     VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM_KHR = VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM,
2538     VK_FORMAT_G8_B8R8_2PLANE_422_UNORM_KHR = VK_FORMAT_G8_B8R8_2PLANE_422_UNORM,
2539     VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM_KHR = VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM,
2540     VK_FORMAT_R10X6_UNORM_PACK16_KHR = VK_FORMAT_R10X6_UNORM_PACK16,
2541     VK_FORMAT_R10X6G10X6_UNORM_2PACK16_KHR = VK_FORMAT_R10X6G10X6_UNORM_2PACK16,
2542     VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16_KHR = VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16,
2543     VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16_KHR = VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16,
2544     VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16_KHR = VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16,
2545     VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16_KHR = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16,
2546     VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16_KHR = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16,
2547     VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16_KHR = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16,
2548     VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16_KHR = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16,
2549     VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16_KHR = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16,
2550     VK_FORMAT_R12X4_UNORM_PACK16_KHR = VK_FORMAT_R12X4_UNORM_PACK16,
2551     VK_FORMAT_R12X4G12X4_UNORM_2PACK16_KHR = VK_FORMAT_R12X4G12X4_UNORM_2PACK16,
2552     VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16_KHR = VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16,
2553     VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16_KHR = VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16,
2554     VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16_KHR = VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16,
2555     VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16_KHR = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16,
2556     VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16_KHR = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16,
2557     VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16_KHR = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16,
2558     VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16_KHR = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16,
2559     VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16_KHR = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16,
2560     VK_FORMAT_G16B16G16R16_422_UNORM_KHR = VK_FORMAT_G16B16G16R16_422_UNORM,
2561     VK_FORMAT_B16G16R16G16_422_UNORM_KHR = VK_FORMAT_B16G16R16G16_422_UNORM,
2562     VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM_KHR = VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM,
2563     VK_FORMAT_G16_B16R16_2PLANE_420_UNORM_KHR = VK_FORMAT_G16_B16R16_2PLANE_420_UNORM,
2564     VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM_KHR = VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM,
2565     VK_FORMAT_G16_B16R16_2PLANE_422_UNORM_KHR = VK_FORMAT_G16_B16R16_2PLANE_422_UNORM,
2566     VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM_KHR = VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM,
2567     VK_FORMAT_G8_B8R8_2PLANE_444_UNORM_EXT = VK_FORMAT_G8_B8R8_2PLANE_444_UNORM,
2568     VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16_EXT = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16,
2569     VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16_EXT = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16,
2570     VK_FORMAT_G16_B16R16_2PLANE_444_UNORM_EXT = VK_FORMAT_G16_B16R16_2PLANE_444_UNORM,
2571     VK_FORMAT_A4R4G4B4_UNORM_PACK16_EXT = VK_FORMAT_A4R4G4B4_UNORM_PACK16,
2572     VK_FORMAT_A4B4G4R4_UNORM_PACK16_EXT = VK_FORMAT_A4B4G4R4_UNORM_PACK16,
2573     VK_FORMAT_MAX_ENUM = 0x7FFFFFFF
2574 } VkFormat;
2575
2576 typedef enum VkImageTiling {
2577     VK_IMAGE_TILING_OPTIMAL = 0,
2578     VK_IMAGE_TILING_LINEAR = 1,
2579     VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT = 1000158000,
2580     VK_IMAGE_TILING_MAX_ENUM = 0x7FFFFFFF
2581 } VkImageTiling;
2582
2583 typedef enum VkImageType {
2584     VK_IMAGE_TYPE_1D = 0,
2585     VK_IMAGE_TYPE_2D = 1,
2586     VK_IMAGE_TYPE_3D = 2,
2587     VK_IMAGE_TYPE_MAX_ENUM = 0x7FFFFFFF
2588 } VkImageType;
2589
2590 typedef enum VkPhysicalDeviceType {
2591     VK_PHYSICAL_DEVICE_TYPE_OTHER = 0,
2592     VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU = 1,
2593     VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU = 2,
2594     VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU = 3,
2595     VK_PHYSICAL_DEVICE_TYPE_CPU = 4,
2596     VK_PHYSICAL_DEVICE_TYPE_MAX_ENUM = 0x7FFFFFFF
2597 } VkPhysicalDeviceType;
2598
2599 typedef enum VkQueryType {
2600     VK_QUERY_TYPE_OCCLUSION = 0,
2601     VK_QUERY_TYPE_PIPELINE_STATISTICS = 1,
2602     VK_QUERY_TYPE_TIMESTAMP = 2,
2603 #ifdef VK_ENABLE_BETA_EXTENSIONS
2604     VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR = 1000023000,
2605 #endif
2606     VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT = 1000028004,
2607     VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR = 1000116000,
2608     VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR = 1000150000,
2609     VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR = 1000150001,
2610     VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV = 1000165000,
2611     VK_QUERY_TYPE_PERFORMANCE_QUERY_INTEL = 1000210000,
2612 #ifdef VK_ENABLE_BETA_EXTENSIONS
2613     VK_QUERY_TYPE_VIDEO_ENCODE_BITSTREAM_BUFFER_RANGE_KHR = 1000299000,
2614 #endif
2615     VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT = 1000382000,
2616     VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_BOTTOM_LEVEL_POINTERS_KHR = 1000386000,
2617     VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SIZE_KHR = 1000386001,
2618     VK_QUERY_TYPE_MAX_ENUM = 0x7FFFFFFF
2619 } VkQueryType;
2620
2621 typedef enum VkSharingMode {
2622     VK_SHARING_MODE_EXCLUSIVE = 0,
2623     VK_SHARING_MODE_CONCURRENT = 1,
2624     VK_SHARING_MODE_MAX_ENUM = 0x7FFFFFFF
2625 } VkSharingMode;
2626
2627 typedef enum VkComponentSwizzle {
2628     VK_COMPONENT_SWIZZLE_IDENTITY = 0,
2629     VK_COMPONENT_SWIZZLE_ZERO = 1,
2630     VK_COMPONENT_SWIZZLE_ONE = 2,
2631     VK_COMPONENT_SWIZZLE_R = 3,
2632     VK_COMPONENT_SWIZZLE_G = 4,
2633     VK_COMPONENT_SWIZZLE_B = 5,
2634     VK_COMPONENT_SWIZZLE_A = 6,
2635     VK_COMPONENT_SWIZZLE_MAX_ENUM = 0x7FFFFFFF
2636 } VkComponentSwizzle;
2637
2638 typedef enum VkImageViewType {
2639     VK_IMAGE_VIEW_TYPE_1D = 0,
2640     VK_IMAGE_VIEW_TYPE_2D = 1,
2641     VK_IMAGE_VIEW_TYPE_3D = 2,
2642     VK_IMAGE_VIEW_TYPE_CUBE = 3,
2643     VK_IMAGE_VIEW_TYPE_1D_ARRAY = 4,
2644     VK_IMAGE_VIEW_TYPE_2D_ARRAY = 5,
2645     VK_IMAGE_VIEW_TYPE_CUBE_ARRAY = 6,
2646     VK_IMAGE_VIEW_TYPE_MAX_ENUM = 0x7FFFFFFF
2647 } VkImageViewType;
2648
2649 typedef enum VkBlendFactor {
2650     VK_BLEND_FACTOR_ZERO = 0,
2651     VK_BLEND_FACTOR_ONE = 1,
2652     VK_BLEND_FACTOR_SRC_COLOR = 2,
2653     VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR = 3,
2654     VK_BLEND_FACTOR_DST_COLOR = 4,
2655     VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR = 5,
2656     VK_BLEND_FACTOR_SRC_ALPHA = 6,
2657     VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA = 7,
2658     VK_BLEND_FACTOR_DST_ALPHA = 8,
2659     VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA = 9,
2660     VK_BLEND_FACTOR_CONSTANT_COLOR = 10,
2661     VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR = 11,
2662     VK_BLEND_FACTOR_CONSTANT_ALPHA = 12,
2663     VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA = 13,
2664     VK_BLEND_FACTOR_SRC_ALPHA_SATURATE = 14,
2665     VK_BLEND_FACTOR_SRC1_COLOR = 15,
2666     VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR = 16,
2667     VK_BLEND_FACTOR_SRC1_ALPHA = 17,
2668     VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA = 18,
2669     VK_BLEND_FACTOR_MAX_ENUM = 0x7FFFFFFF
2670 } VkBlendFactor;
2671
2672 typedef enum VkBlendOp {
2673     VK_BLEND_OP_ADD = 0,
2674     VK_BLEND_OP_SUBTRACT = 1,
2675     VK_BLEND_OP_REVERSE_SUBTRACT = 2,
2676     VK_BLEND_OP_MIN = 3,
2677     VK_BLEND_OP_MAX = 4,
2678     VK_BLEND_OP_ZERO_EXT = 1000148000,
2679     VK_BLEND_OP_SRC_EXT = 1000148001,
2680     VK_BLEND_OP_DST_EXT = 1000148002,
2681     VK_BLEND_OP_SRC_OVER_EXT = 1000148003,
2682     VK_BLEND_OP_DST_OVER_EXT = 1000148004,
2683     VK_BLEND_OP_SRC_IN_EXT = 1000148005,
2684     VK_BLEND_OP_DST_IN_EXT = 1000148006,
2685     VK_BLEND_OP_SRC_OUT_EXT = 1000148007,
2686     VK_BLEND_OP_DST_OUT_EXT = 1000148008,
2687     VK_BLEND_OP_SRC_ATOP_EXT = 1000148009,
2688     VK_BLEND_OP_DST_ATOP_EXT = 1000148010,
2689     VK_BLEND_OP_XOR_EXT = 1000148011,
2690     VK_BLEND_OP_MULTIPLY_EXT = 1000148012,
2691     VK_BLEND_OP_SCREEN_EXT = 1000148013,
2692     VK_BLEND_OP_OVERLAY_EXT = 1000148014,
2693     VK_BLEND_OP_DARKEN_EXT = 1000148015,
2694     VK_BLEND_OP_LIGHTEN_EXT = 1000148016,
2695     VK_BLEND_OP_COLORDODGE_EXT = 1000148017,
2696     VK_BLEND_OP_COLORBURN_EXT = 1000148018,
2697     VK_BLEND_OP_HARDLIGHT_EXT = 1000148019,
2698     VK_BLEND_OP_SOFTLIGHT_EXT = 1000148020,
2699     VK_BLEND_OP_DIFFERENCE_EXT = 1000148021,
2700     VK_BLEND_OP_EXCLUSION_EXT = 1000148022,
2701     VK_BLEND_OP_INVERT_EXT = 1000148023,
2702     VK_BLEND_OP_INVERT_RGB_EXT = 1000148024,
2703     VK_BLEND_OP_LINEARDODGE_EXT = 1000148025,
2704     VK_BLEND_OP_LINEARBURN_EXT = 1000148026,
2705     VK_BLEND_OP_VIVIDLIGHT_EXT = 1000148027,
2706     VK_BLEND_OP_LINEARLIGHT_EXT = 1000148028,
2707     VK_BLEND_OP_PINLIGHT_EXT = 1000148029,
2708     VK_BLEND_OP_HARDMIX_EXT = 1000148030,
2709     VK_BLEND_OP_HSL_HUE_EXT = 1000148031,
2710     VK_BLEND_OP_HSL_SATURATION_EXT = 1000148032,
2711     VK_BLEND_OP_HSL_COLOR_EXT = 1000148033,
2712     VK_BLEND_OP_HSL_LUMINOSITY_EXT = 1000148034,
2713     VK_BLEND_OP_PLUS_EXT = 1000148035,
2714     VK_BLEND_OP_PLUS_CLAMPED_EXT = 1000148036,
2715     VK_BLEND_OP_PLUS_CLAMPED_ALPHA_EXT = 1000148037,
2716     VK_BLEND_OP_PLUS_DARKER_EXT = 1000148038,
2717     VK_BLEND_OP_MINUS_EXT = 1000148039,
2718     VK_BLEND_OP_MINUS_CLAMPED_EXT = 1000148040,
2719     VK_BLEND_OP_CONTRAST_EXT = 1000148041,
2720     VK_BLEND_OP_INVERT_OVG_EXT = 1000148042,
2721     VK_BLEND_OP_RED_EXT = 1000148043,
2722     VK_BLEND_OP_GREEN_EXT = 1000148044,
2723     VK_BLEND_OP_BLUE_EXT = 1000148045,
2724     VK_BLEND_OP_MAX_ENUM = 0x7FFFFFFF
2725 } VkBlendOp;
2726
2727 typedef enum VkCompareOp {
2728     VK_COMPARE_OP_NEVER = 0,
2729     VK_COMPARE_OP_LESS = 1,
2730     VK_COMPARE_OP_EQUAL = 2,
2731     VK_COMPARE_OP_LESS_OR_EQUAL = 3,
2732     VK_COMPARE_OP_GREATER = 4,
2733     VK_COMPARE_OP_NOT_EQUAL = 5,
2734     VK_COMPARE_OP_GREATER_OR_EQUAL = 6,
2735     VK_COMPARE_OP_ALWAYS = 7,
2736     VK_COMPARE_OP_MAX_ENUM = 0x7FFFFFFF
2737 } VkCompareOp;
2738
2739 typedef enum VkDynamicState {
2740     VK_DYNAMIC_STATE_VIEWPORT = 0,
2741     VK_DYNAMIC_STATE_SCISSOR = 1,
2742     VK_DYNAMIC_STATE_LINE_WIDTH = 2,
2743     VK_DYNAMIC_STATE_DEPTH_BIAS = 3,
2744     VK_DYNAMIC_STATE_BLEND_CONSTANTS = 4,
2745     VK_DYNAMIC_STATE_DEPTH_BOUNDS = 5,
2746     VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK = 6,
2747     VK_DYNAMIC_STATE_STENCIL_WRITE_MASK = 7,
2748     VK_DYNAMIC_STATE_STENCIL_REFERENCE = 8,
2749     VK_DYNAMIC_STATE_CULL_MODE = 1000267000,
2750     VK_DYNAMIC_STATE_FRONT_FACE = 1000267001,
2751     VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY = 1000267002,
2752     VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT = 1000267003,
2753     VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT = 1000267004,
2754     VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE = 1000267005,
2755     VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE = 1000267006,
2756     VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE = 1000267007,
2757     VK_DYNAMIC_STATE_DEPTH_COMPARE_OP = 1000267008,
2758     VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE = 1000267009,
2759     VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE = 1000267010,
2760     VK_DYNAMIC_STATE_STENCIL_OP = 1000267011,
2761     VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE = 1000377001,
2762     VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE = 1000377002,
2763     VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE = 1000377004,
2764     VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV = 1000087000,
2765     VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT = 1000099000,
2766     VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT = 1000143000,
2767     VK_DYNAMIC_STATE_RAY_TRACING_PIPELINE_STACK_SIZE_KHR = 1000347000,
2768     VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV = 1000164004,
2769     VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV = 1000164006,
2770     VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV = 1000205001,
2771     VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR = 1000226000,
2772     VK_DYNAMIC_STATE_LINE_STIPPLE_EXT = 1000259000,
2773     VK_DYNAMIC_STATE_VERTEX_INPUT_EXT = 1000352000,
2774     VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT = 1000377000,
2775     VK_DYNAMIC_STATE_LOGIC_OP_EXT = 1000377003,
2776     VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT = 1000381000,
2777     VK_DYNAMIC_STATE_CULL_MODE_EXT = VK_DYNAMIC_STATE_CULL_MODE,
2778     VK_DYNAMIC_STATE_FRONT_FACE_EXT = VK_DYNAMIC_STATE_FRONT_FACE,
2779     VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT = VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY,
2780     VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT = VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT,
2781     VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT = VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT,
2782     VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT = VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE,
2783     VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE_EXT = VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE,
2784     VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE_EXT = VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE,
2785     VK_DYNAMIC_STATE_DEPTH_COMPARE_OP_EXT = VK_DYNAMIC_STATE_DEPTH_COMPARE_OP,
2786     VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE_EXT = VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE,
2787     VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE_EXT = VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE,
2788     VK_DYNAMIC_STATE_STENCIL_OP_EXT = VK_DYNAMIC_STATE_STENCIL_OP,
2789     VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT = VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE,
2790     VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE_EXT = VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE,
2791     VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT = VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE,
2792     VK_DYNAMIC_STATE_MAX_ENUM = 0x7FFFFFFF
2793 } VkDynamicState;
2794
2795 typedef enum VkFrontFace {
2796     VK_FRONT_FACE_COUNTER_CLOCKWISE = 0,
2797     VK_FRONT_FACE_CLOCKWISE = 1,
2798     VK_FRONT_FACE_MAX_ENUM = 0x7FFFFFFF
2799 } VkFrontFace;
2800
2801 typedef enum VkVertexInputRate {
2802     VK_VERTEX_INPUT_RATE_VERTEX = 0,
2803     VK_VERTEX_INPUT_RATE_INSTANCE = 1,
2804     VK_VERTEX_INPUT_RATE_MAX_ENUM = 0x7FFFFFFF
2805 } VkVertexInputRate;
2806
2807 typedef enum VkPrimitiveTopology {
2808     VK_PRIMITIVE_TOPOLOGY_POINT_LIST = 0,
2809     VK_PRIMITIVE_TOPOLOGY_LINE_LIST = 1,
2810     VK_PRIMITIVE_TOPOLOGY_LINE_STRIP = 2,
2811     VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST = 3,
2812     VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP = 4,
2813     VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN = 5,
2814     VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY = 6,
2815     VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY = 7,
2816     VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY = 8,
2817     VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY = 9,
2818     VK_PRIMITIVE_TOPOLOGY_PATCH_LIST = 10,
2819     VK_PRIMITIVE_TOPOLOGY_MAX_ENUM = 0x7FFFFFFF
2820 } VkPrimitiveTopology;
2821
2822 typedef enum VkPolygonMode {
2823     VK_POLYGON_MODE_FILL = 0,
2824     VK_POLYGON_MODE_LINE = 1,
2825     VK_POLYGON_MODE_POINT = 2,
2826     VK_POLYGON_MODE_FILL_RECTANGLE_NV = 1000153000,
2827     VK_POLYGON_MODE_MAX_ENUM = 0x7FFFFFFF
2828 } VkPolygonMode;
2829
2830 typedef enum VkStencilOp {
2831     VK_STENCIL_OP_KEEP = 0,
2832     VK_STENCIL_OP_ZERO = 1,
2833     VK_STENCIL_OP_REPLACE = 2,
2834     VK_STENCIL_OP_INCREMENT_AND_CLAMP = 3,
2835     VK_STENCIL_OP_DECREMENT_AND_CLAMP = 4,
2836     VK_STENCIL_OP_INVERT = 5,
2837     VK_STENCIL_OP_INCREMENT_AND_WRAP = 6,
2838     VK_STENCIL_OP_DECREMENT_AND_WRAP = 7,
2839     VK_STENCIL_OP_MAX_ENUM = 0x7FFFFFFF
2840 } VkStencilOp;
2841
2842 typedef enum VkLogicOp {
2843     VK_LOGIC_OP_CLEAR = 0,
2844     VK_LOGIC_OP_AND = 1,
2845     VK_LOGIC_OP_AND_REVERSE = 2,
2846     VK_LOGIC_OP_COPY = 3,
2847     VK_LOGIC_OP_AND_INVERTED = 4,
2848     VK_LOGIC_OP_NO_OP = 5,
2849     VK_LOGIC_OP_XOR = 6,
2850     VK_LOGIC_OP_OR = 7,
2851     VK_LOGIC_OP_NOR = 8,
2852     VK_LOGIC_OP_EQUIVALENT = 9,
2853     VK_LOGIC_OP_INVERT = 10,
2854     VK_LOGIC_OP_OR_REVERSE = 11,
2855     VK_LOGIC_OP_COPY_INVERTED = 12,
2856     VK_LOGIC_OP_OR_INVERTED = 13,
2857     VK_LOGIC_OP_NAND = 14,
2858     VK_LOGIC_OP_SET = 15,
2859     VK_LOGIC_OP_MAX_ENUM = 0x7FFFFFFF
2860 } VkLogicOp;
2861
2862 typedef enum VkBorderColor {
2863     VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK = 0,
2864     VK_BORDER_COLOR_INT_TRANSPARENT_BLACK = 1,
2865     VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK = 2,
2866     VK_BORDER_COLOR_INT_OPAQUE_BLACK = 3,
2867     VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE = 4,
2868     VK_BORDER_COLOR_INT_OPAQUE_WHITE = 5,
2869     VK_BORDER_COLOR_FLOAT_CUSTOM_EXT = 1000287003,
2870     VK_BORDER_COLOR_INT_CUSTOM_EXT = 1000287004,
2871     VK_BORDER_COLOR_MAX_ENUM = 0x7FFFFFFF
2872 } VkBorderColor;
2873
2874 typedef enum VkFilter {
2875     VK_FILTER_NEAREST = 0,
2876     VK_FILTER_LINEAR = 1,
2877     VK_FILTER_CUBIC_IMG = 1000015000,
2878     VK_FILTER_CUBIC_EXT = VK_FILTER_CUBIC_IMG,
2879     VK_FILTER_MAX_ENUM = 0x7FFFFFFF
2880 } VkFilter;
2881
2882 typedef enum VkSamplerAddressMode {
2883     VK_SAMPLER_ADDRESS_MODE_REPEAT = 0,
2884     VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT = 1,
2885     VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE = 2,
2886     VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER = 3,
2887     VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE = 4,
2888     VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE_KHR = VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE,
2889     VK_SAMPLER_ADDRESS_MODE_MAX_ENUM = 0x7FFFFFFF
2890 } VkSamplerAddressMode;
2891
2892 typedef enum VkSamplerMipmapMode {
2893     VK_SAMPLER_MIPMAP_MODE_NEAREST = 0,
2894     VK_SAMPLER_MIPMAP_MODE_LINEAR = 1,
2895     VK_SAMPLER_MIPMAP_MODE_MAX_ENUM = 0x7FFFFFFF
2896 } VkSamplerMipmapMode;
2897
2898 typedef enum VkDescriptorType {
2899     VK_DESCRIPTOR_TYPE_SAMPLER = 0,
2900     VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER = 1,
2901     VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE = 2,
2902     VK_DESCRIPTOR_TYPE_STORAGE_IMAGE = 3,
2903     VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER = 4,
2904     VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER = 5,
2905     VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER = 6,
2906     VK_DESCRIPTOR_TYPE_STORAGE_BUFFER = 7,
2907     VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC = 8,
2908     VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC = 9,
2909     VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT = 10,
2910     VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK = 1000138000,
2911     VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR = 1000150000,
2912     VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV = 1000165000,
2913     VK_DESCRIPTOR_TYPE_MUTABLE_VALVE = 1000351000,
2914     VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT = VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK,
2915     VK_DESCRIPTOR_TYPE_MAX_ENUM = 0x7FFFFFFF
2916 } VkDescriptorType;
2917
2918 typedef enum VkAttachmentLoadOp {
2919     VK_ATTACHMENT_LOAD_OP_LOAD = 0,
2920     VK_ATTACHMENT_LOAD_OP_CLEAR = 1,
2921     VK_ATTACHMENT_LOAD_OP_DONT_CARE = 2,
2922     VK_ATTACHMENT_LOAD_OP_NONE_EXT = 1000400000,
2923     VK_ATTACHMENT_LOAD_OP_MAX_ENUM = 0x7FFFFFFF
2924 } VkAttachmentLoadOp;
2925
2926 typedef enum VkAttachmentStoreOp {
2927     VK_ATTACHMENT_STORE_OP_STORE = 0,
2928     VK_ATTACHMENT_STORE_OP_DONT_CARE = 1,
2929     VK_ATTACHMENT_STORE_OP_NONE = 1000301000,
2930     VK_ATTACHMENT_STORE_OP_NONE_KHR = VK_ATTACHMENT_STORE_OP_NONE,
2931     VK_ATTACHMENT_STORE_OP_NONE_QCOM = VK_ATTACHMENT_STORE_OP_NONE,
2932     VK_ATTACHMENT_STORE_OP_NONE_EXT = VK_ATTACHMENT_STORE_OP_NONE,
2933     VK_ATTACHMENT_STORE_OP_MAX_ENUM = 0x7FFFFFFF
2934 } VkAttachmentStoreOp;
2935
2936 typedef enum VkPipelineBindPoint {
2937     VK_PIPELINE_BIND_POINT_GRAPHICS = 0,
2938     VK_PIPELINE_BIND_POINT_COMPUTE = 1,
2939     VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR = 1000165000,
2940     VK_PIPELINE_BIND_POINT_SUBPASS_SHADING_HUAWEI = 1000369003,
2941     VK_PIPELINE_BIND_POINT_RAY_TRACING_NV = VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR,
2942     VK_PIPELINE_BIND_POINT_MAX_ENUM = 0x7FFFFFFF
2943 } VkPipelineBindPoint;
2944
2945 typedef enum VkCommandBufferLevel {
2946     VK_COMMAND_BUFFER_LEVEL_PRIMARY = 0,
2947     VK_COMMAND_BUFFER_LEVEL_SECONDARY = 1,
2948     VK_COMMAND_BUFFER_LEVEL_MAX_ENUM = 0x7FFFFFFF
2949 } VkCommandBufferLevel;
2950
2951 typedef enum VkIndexType {
2952     VK_INDEX_TYPE_UINT16 = 0,
2953     VK_INDEX_TYPE_UINT32 = 1,
2954     VK_INDEX_TYPE_NONE_KHR = 1000165000,
2955     VK_INDEX_TYPE_UINT8_EXT = 1000265000,
2956     VK_INDEX_TYPE_NONE_NV = VK_INDEX_TYPE_NONE_KHR,
2957     VK_INDEX_TYPE_MAX_ENUM = 0x7FFFFFFF
2958 } VkIndexType;
2959
2960 typedef enum VkSubpassContents {
2961     VK_SUBPASS_CONTENTS_INLINE = 0,
2962     VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS = 1,
2963     VK_SUBPASS_CONTENTS_MAX_ENUM = 0x7FFFFFFF
2964 } VkSubpassContents;
2965
2966 typedef enum VkAccessFlagBits {
2967     VK_ACCESS_INDIRECT_COMMAND_READ_BIT = 0x00000001,
2968     VK_ACCESS_INDEX_READ_BIT = 0x00000002,
2969     VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT = 0x00000004,
2970     VK_ACCESS_UNIFORM_READ_BIT = 0x00000008,
2971     VK_ACCESS_INPUT_ATTACHMENT_READ_BIT = 0x00000010,
2972     VK_ACCESS_SHADER_READ_BIT = 0x00000020,
2973     VK_ACCESS_SHADER_WRITE_BIT = 0x00000040,
2974     VK_ACCESS_COLOR_ATTACHMENT_READ_BIT = 0x00000080,
2975     VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT = 0x00000100,
2976     VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT = 0x00000200,
2977     VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT = 0x00000400,
2978     VK_ACCESS_TRANSFER_READ_BIT = 0x00000800,
2979     VK_ACCESS_TRANSFER_WRITE_BIT = 0x00001000,
2980     VK_ACCESS_HOST_READ_BIT = 0x00002000,
2981     VK_ACCESS_HOST_WRITE_BIT = 0x00004000,
2982     VK_ACCESS_MEMORY_READ_BIT = 0x00008000,
2983     VK_ACCESS_MEMORY_WRITE_BIT = 0x00010000,
2984     VK_ACCESS_NONE = 0,
2985     VK_ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT = 0x02000000,
2986     VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT = 0x04000000,
2987     VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT = 0x08000000,
2988     VK_ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT = 0x00100000,
2989     VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT = 0x00080000,
2990     VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR = 0x00200000,
2991     VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR = 0x00400000,
2992     VK_ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT = 0x01000000,
2993     VK_ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR = 0x00800000,
2994     VK_ACCESS_COMMAND_PREPROCESS_READ_BIT_NV = 0x00020000,
2995     VK_ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV = 0x00040000,
2996     VK_ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV = VK_ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR,
2997     VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_NV = VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR,
2998     VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_NV = VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR,
2999     VK_ACCESS_NONE_KHR = VK_ACCESS_NONE,
3000     VK_ACCESS_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3001 } VkAccessFlagBits;
3002 typedef VkFlags VkAccessFlags;
3003
3004 typedef enum VkImageAspectFlagBits {
3005     VK_IMAGE_ASPECT_COLOR_BIT = 0x00000001,
3006     VK_IMAGE_ASPECT_DEPTH_BIT = 0x00000002,
3007     VK_IMAGE_ASPECT_STENCIL_BIT = 0x00000004,
3008     VK_IMAGE_ASPECT_METADATA_BIT = 0x00000008,
3009     VK_IMAGE_ASPECT_PLANE_0_BIT = 0x00000010,
3010     VK_IMAGE_ASPECT_PLANE_1_BIT = 0x00000020,
3011     VK_IMAGE_ASPECT_PLANE_2_BIT = 0x00000040,
3012     VK_IMAGE_ASPECT_NONE = 0,
3013     VK_IMAGE_ASPECT_MEMORY_PLANE_0_BIT_EXT = 0x00000080,
3014     VK_IMAGE_ASPECT_MEMORY_PLANE_1_BIT_EXT = 0x00000100,
3015     VK_IMAGE_ASPECT_MEMORY_PLANE_2_BIT_EXT = 0x00000200,
3016     VK_IMAGE_ASPECT_MEMORY_PLANE_3_BIT_EXT = 0x00000400,
3017     VK_IMAGE_ASPECT_PLANE_0_BIT_KHR = VK_IMAGE_ASPECT_PLANE_0_BIT,
3018     VK_IMAGE_ASPECT_PLANE_1_BIT_KHR = VK_IMAGE_ASPECT_PLANE_1_BIT,
3019     VK_IMAGE_ASPECT_PLANE_2_BIT_KHR = VK_IMAGE_ASPECT_PLANE_2_BIT,
3020     VK_IMAGE_ASPECT_NONE_KHR = VK_IMAGE_ASPECT_NONE,
3021     VK_IMAGE_ASPECT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3022 } VkImageAspectFlagBits;
3023 typedef VkFlags VkImageAspectFlags;
3024
3025 typedef enum VkFormatFeatureFlagBits {
3026     VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT = 0x00000001,
3027     VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT = 0x00000002,
3028     VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT = 0x00000004,
3029     VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT = 0x00000008,
3030     VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT = 0x00000010,
3031     VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT = 0x00000020,
3032     VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT = 0x00000040,
3033     VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT = 0x00000080,
3034     VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT = 0x00000100,
3035     VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000200,
3036     VK_FORMAT_FEATURE_BLIT_SRC_BIT = 0x00000400,
3037     VK_FORMAT_FEATURE_BLIT_DST_BIT = 0x00000800,
3038     VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT = 0x00001000,
3039     VK_FORMAT_FEATURE_TRANSFER_SRC_BIT = 0x00004000,
3040     VK_FORMAT_FEATURE_TRANSFER_DST_BIT = 0x00008000,
3041     VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT = 0x00020000,
3042     VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT = 0x00040000,
3043     VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT = 0x00080000,
3044     VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT = 0x00100000,
3045     VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT = 0x00200000,
3046     VK_FORMAT_FEATURE_DISJOINT_BIT = 0x00400000,
3047     VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT = 0x00800000,
3048     VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT = 0x00010000,
3049     VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG = 0x00002000,
3050 #ifdef VK_ENABLE_BETA_EXTENSIONS
3051     VK_FORMAT_FEATURE_VIDEO_DECODE_OUTPUT_BIT_KHR = 0x02000000,
3052 #endif
3053 #ifdef VK_ENABLE_BETA_EXTENSIONS
3054     VK_FORMAT_FEATURE_VIDEO_DECODE_DPB_BIT_KHR = 0x04000000,
3055 #endif
3056     VK_FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR = 0x20000000,
3057     VK_FORMAT_FEATURE_FRAGMENT_DENSITY_MAP_BIT_EXT = 0x01000000,
3058     VK_FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x40000000,
3059 #ifdef VK_ENABLE_BETA_EXTENSIONS
3060     VK_FORMAT_FEATURE_VIDEO_ENCODE_INPUT_BIT_KHR = 0x08000000,
3061 #endif
3062 #ifdef VK_ENABLE_BETA_EXTENSIONS
3063     VK_FORMAT_FEATURE_VIDEO_ENCODE_DPB_BIT_KHR = 0x10000000,
3064 #endif
3065     VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR = VK_FORMAT_FEATURE_TRANSFER_SRC_BIT,
3066     VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR = VK_FORMAT_FEATURE_TRANSFER_DST_BIT,
3067     VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT_EXT = VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT,
3068     VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT_KHR = VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT,
3069     VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT_KHR = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT,
3070     VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT_KHR = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT,
3071     VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT_KHR = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT,
3072     VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT_KHR = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT,
3073     VK_FORMAT_FEATURE_DISJOINT_BIT_KHR = VK_FORMAT_FEATURE_DISJOINT_BIT,
3074     VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT_KHR = VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT,
3075     VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT = VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG,
3076     VK_FORMAT_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3077 } VkFormatFeatureFlagBits;
3078 typedef VkFlags VkFormatFeatureFlags;
3079
3080 typedef enum VkImageCreateFlagBits {
3081     VK_IMAGE_CREATE_SPARSE_BINDING_BIT = 0x00000001,
3082     VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT = 0x00000002,
3083     VK_IMAGE_CREATE_SPARSE_ALIASED_BIT = 0x00000004,
3084     VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT = 0x00000008,
3085     VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT = 0x00000010,
3086     VK_IMAGE_CREATE_ALIAS_BIT = 0x00000400,
3087     VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT = 0x00000040,
3088     VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT = 0x00000020,
3089     VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT = 0x00000080,
3090     VK_IMAGE_CREATE_EXTENDED_USAGE_BIT = 0x00000100,
3091     VK_IMAGE_CREATE_PROTECTED_BIT = 0x00000800,
3092     VK_IMAGE_CREATE_DISJOINT_BIT = 0x00000200,
3093     VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV = 0x00002000,
3094     VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT = 0x00001000,
3095     VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT = 0x00004000,
3096     VK_IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT = 0x00020000,
3097     VK_IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM = 0x00008000,
3098     VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR = VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT,
3099     VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT_KHR = VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT,
3100     VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT_KHR = VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT,
3101     VK_IMAGE_CREATE_EXTENDED_USAGE_BIT_KHR = VK_IMAGE_CREATE_EXTENDED_USAGE_BIT,
3102     VK_IMAGE_CREATE_DISJOINT_BIT_KHR = VK_IMAGE_CREATE_DISJOINT_BIT,
3103     VK_IMAGE_CREATE_ALIAS_BIT_KHR = VK_IMAGE_CREATE_ALIAS_BIT,
3104     VK_IMAGE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3105 } VkImageCreateFlagBits;
3106 typedef VkFlags VkImageCreateFlags;
3107
3108 typedef enum VkSampleCountFlagBits {
3109     VK_SAMPLE_COUNT_1_BIT = 0x00000001,
3110     VK_SAMPLE_COUNT_2_BIT = 0x00000002,
3111     VK_SAMPLE_COUNT_4_BIT = 0x00000004,
3112     VK_SAMPLE_COUNT_8_BIT = 0x00000008,
3113     VK_SAMPLE_COUNT_16_BIT = 0x00000010,
3114     VK_SAMPLE_COUNT_32_BIT = 0x00000020,
3115     VK_SAMPLE_COUNT_64_BIT = 0x00000040,
3116     VK_SAMPLE_COUNT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3117 } VkSampleCountFlagBits;
3118 typedef VkFlags VkSampleCountFlags;
3119
3120 typedef enum VkImageUsageFlagBits {
3121     VK_IMAGE_USAGE_TRANSFER_SRC_BIT = 0x00000001,
3122     VK_IMAGE_USAGE_TRANSFER_DST_BIT = 0x00000002,
3123     VK_IMAGE_USAGE_SAMPLED_BIT = 0x00000004,
3124     VK_IMAGE_USAGE_STORAGE_BIT = 0x00000008,
3125     VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT = 0x00000010,
3126     VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000020,
3127     VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT = 0x00000040,
3128     VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT = 0x00000080,
3129 #ifdef VK_ENABLE_BETA_EXTENSIONS
3130     VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR = 0x00000400,
3131 #endif
3132 #ifdef VK_ENABLE_BETA_EXTENSIONS
3133     VK_IMAGE_USAGE_VIDEO_DECODE_SRC_BIT_KHR = 0x00000800,
3134 #endif
3135 #ifdef VK_ENABLE_BETA_EXTENSIONS
3136     VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR = 0x00001000,
3137 #endif
3138     VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT = 0x00000200,
3139     VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x00000100,
3140 #ifdef VK_ENABLE_BETA_EXTENSIONS
3141     VK_IMAGE_USAGE_VIDEO_ENCODE_DST_BIT_KHR = 0x00002000,
3142 #endif
3143 #ifdef VK_ENABLE_BETA_EXTENSIONS
3144     VK_IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR = 0x00004000,
3145 #endif
3146 #ifdef VK_ENABLE_BETA_EXTENSIONS
3147     VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR = 0x00008000,
3148 #endif
3149     VK_IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI = 0x00040000,
3150     VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV = VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,
3151     VK_IMAGE_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3152 } VkImageUsageFlagBits;
3153 typedef VkFlags VkImageUsageFlags;
3154
3155 typedef enum VkInstanceCreateFlagBits {
3156     VK_INSTANCE_CREATE_ENUMERATE_PORTABILITY_BIT_KHR = 0x00000001,
3157     VK_INSTANCE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3158 } VkInstanceCreateFlagBits;
3159 typedef VkFlags VkInstanceCreateFlags;
3160
3161 typedef enum VkMemoryHeapFlagBits {
3162     VK_MEMORY_HEAP_DEVICE_LOCAL_BIT = 0x00000001,
3163     VK_MEMORY_HEAP_MULTI_INSTANCE_BIT = 0x00000002,
3164     VK_MEMORY_HEAP_MULTI_INSTANCE_BIT_KHR = VK_MEMORY_HEAP_MULTI_INSTANCE_BIT,
3165     VK_MEMORY_HEAP_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3166 } VkMemoryHeapFlagBits;
3167 typedef VkFlags VkMemoryHeapFlags;
3168
3169 typedef enum VkMemoryPropertyFlagBits {
3170     VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT = 0x00000001,
3171     VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT = 0x00000002,
3172     VK_MEMORY_PROPERTY_HOST_COHERENT_BIT = 0x00000004,
3173     VK_MEMORY_PROPERTY_HOST_CACHED_BIT = 0x00000008,
3174     VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT = 0x00000010,
3175     VK_MEMORY_PROPERTY_PROTECTED_BIT = 0x00000020,
3176     VK_MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD = 0x00000040,
3177     VK_MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD = 0x00000080,
3178     VK_MEMORY_PROPERTY_RDMA_CAPABLE_BIT_NV = 0x00000100,
3179     VK_MEMORY_PROPERTY_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3180 } VkMemoryPropertyFlagBits;
3181 typedef VkFlags VkMemoryPropertyFlags;
3182
3183 typedef enum VkQueueFlagBits {
3184     VK_QUEUE_GRAPHICS_BIT = 0x00000001,
3185     VK_QUEUE_COMPUTE_BIT = 0x00000002,
3186     VK_QUEUE_TRANSFER_BIT = 0x00000004,
3187     VK_QUEUE_SPARSE_BINDING_BIT = 0x00000008,
3188     VK_QUEUE_PROTECTED_BIT = 0x00000010,
3189 #ifdef VK_ENABLE_BETA_EXTENSIONS
3190     VK_QUEUE_VIDEO_DECODE_BIT_KHR = 0x00000020,
3191 #endif
3192 #ifdef VK_ENABLE_BETA_EXTENSIONS
3193     VK_QUEUE_VIDEO_ENCODE_BIT_KHR = 0x00000040,
3194 #endif
3195     VK_QUEUE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3196 } VkQueueFlagBits;
3197 typedef VkFlags VkQueueFlags;
3198 typedef VkFlags VkDeviceCreateFlags;
3199
3200 typedef enum VkDeviceQueueCreateFlagBits {
3201     VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT = 0x00000001,
3202     VK_DEVICE_QUEUE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3203 } VkDeviceQueueCreateFlagBits;
3204 typedef VkFlags VkDeviceQueueCreateFlags;
3205
3206 typedef enum VkPipelineStageFlagBits {
3207     VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT = 0x00000001,
3208     VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT = 0x00000002,
3209     VK_PIPELINE_STAGE_VERTEX_INPUT_BIT = 0x00000004,
3210     VK_PIPELINE_STAGE_VERTEX_SHADER_BIT = 0x00000008,
3211     VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT = 0x00000010,
3212     VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT = 0x00000020,
3213     VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT = 0x00000040,
3214     VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT = 0x00000080,
3215     VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT = 0x00000100,
3216     VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT = 0x00000200,
3217     VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT = 0x00000400,
3218     VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT = 0x00000800,
3219     VK_PIPELINE_STAGE_TRANSFER_BIT = 0x00001000,
3220     VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT = 0x00002000,
3221     VK_PIPELINE_STAGE_HOST_BIT = 0x00004000,
3222     VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT = 0x00008000,
3223     VK_PIPELINE_STAGE_ALL_COMMANDS_BIT = 0x00010000,
3224     VK_PIPELINE_STAGE_NONE = 0,
3225     VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT = 0x01000000,
3226     VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT = 0x00040000,
3227     VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR = 0x02000000,
3228     VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR = 0x00200000,
3229     VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV = 0x00080000,
3230     VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV = 0x00100000,
3231     VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT = 0x00800000,
3232     VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x00400000,
3233     VK_PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV = 0x00020000,
3234     VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV = VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,
3235     VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_NV = VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR,
3236     VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_NV = VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR,
3237     VK_PIPELINE_STAGE_NONE_KHR = VK_PIPELINE_STAGE_NONE,
3238     VK_PIPELINE_STAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3239 } VkPipelineStageFlagBits;
3240 typedef VkFlags VkPipelineStageFlags;
3241 typedef VkFlags VkMemoryMapFlags;
3242
3243 typedef enum VkSparseMemoryBindFlagBits {
3244     VK_SPARSE_MEMORY_BIND_METADATA_BIT = 0x00000001,
3245     VK_SPARSE_MEMORY_BIND_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3246 } VkSparseMemoryBindFlagBits;
3247 typedef VkFlags VkSparseMemoryBindFlags;
3248
3249 typedef enum VkSparseImageFormatFlagBits {
3250     VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT = 0x00000001,
3251     VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT = 0x00000002,
3252     VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT = 0x00000004,
3253     VK_SPARSE_IMAGE_FORMAT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3254 } VkSparseImageFormatFlagBits;
3255 typedef VkFlags VkSparseImageFormatFlags;
3256
3257 typedef enum VkFenceCreateFlagBits {
3258     VK_FENCE_CREATE_SIGNALED_BIT = 0x00000001,
3259     VK_FENCE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3260 } VkFenceCreateFlagBits;
3261 typedef VkFlags VkFenceCreateFlags;
3262 typedef VkFlags VkSemaphoreCreateFlags;
3263
3264 typedef enum VkEventCreateFlagBits {
3265     VK_EVENT_CREATE_DEVICE_ONLY_BIT = 0x00000001,
3266     VK_EVENT_CREATE_DEVICE_ONLY_BIT_KHR = VK_EVENT_CREATE_DEVICE_ONLY_BIT,
3267     VK_EVENT_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3268 } VkEventCreateFlagBits;
3269 typedef VkFlags VkEventCreateFlags;
3270
3271 typedef enum VkQueryPipelineStatisticFlagBits {
3272     VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT = 0x00000001,
3273     VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT = 0x00000002,
3274     VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT = 0x00000004,
3275     VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT = 0x00000008,
3276     VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT = 0x00000010,
3277     VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT = 0x00000020,
3278     VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT = 0x00000040,
3279     VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT = 0x00000080,
3280     VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT = 0x00000100,
3281     VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT = 0x00000200,
3282     VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT = 0x00000400,
3283     VK_QUERY_PIPELINE_STATISTIC_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3284 } VkQueryPipelineStatisticFlagBits;
3285 typedef VkFlags VkQueryPipelineStatisticFlags;
3286 typedef VkFlags VkQueryPoolCreateFlags;
3287
3288 typedef enum VkQueryResultFlagBits {
3289     VK_QUERY_RESULT_64_BIT = 0x00000001,
3290     VK_QUERY_RESULT_WAIT_BIT = 0x00000002,
3291     VK_QUERY_RESULT_WITH_AVAILABILITY_BIT = 0x00000004,
3292     VK_QUERY_RESULT_PARTIAL_BIT = 0x00000008,
3293 #ifdef VK_ENABLE_BETA_EXTENSIONS
3294     VK_QUERY_RESULT_WITH_STATUS_BIT_KHR = 0x00000010,
3295 #endif
3296     VK_QUERY_RESULT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3297 } VkQueryResultFlagBits;
3298 typedef VkFlags VkQueryResultFlags;
3299
3300 typedef enum VkBufferCreateFlagBits {
3301     VK_BUFFER_CREATE_SPARSE_BINDING_BIT = 0x00000001,
3302     VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT = 0x00000002,
3303     VK_BUFFER_CREATE_SPARSE_ALIASED_BIT = 0x00000004,
3304     VK_BUFFER_CREATE_PROTECTED_BIT = 0x00000008,
3305     VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT = 0x00000010,
3306     VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT = VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT,
3307     VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR = VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT,
3308     VK_BUFFER_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3309 } VkBufferCreateFlagBits;
3310 typedef VkFlags VkBufferCreateFlags;
3311
3312 typedef enum VkBufferUsageFlagBits {
3313     VK_BUFFER_USAGE_TRANSFER_SRC_BIT = 0x00000001,
3314     VK_BUFFER_USAGE_TRANSFER_DST_BIT = 0x00000002,
3315     VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT = 0x00000004,
3316     VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT = 0x00000008,
3317     VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT = 0x00000010,
3318     VK_BUFFER_USAGE_STORAGE_BUFFER_BIT = 0x00000020,
3319     VK_BUFFER_USAGE_INDEX_BUFFER_BIT = 0x00000040,
3320     VK_BUFFER_USAGE_VERTEX_BUFFER_BIT = 0x00000080,
3321     VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT = 0x00000100,
3322     VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT = 0x00020000,
3323 #ifdef VK_ENABLE_BETA_EXTENSIONS
3324     VK_BUFFER_USAGE_VIDEO_DECODE_SRC_BIT_KHR = 0x00002000,
3325 #endif
3326 #ifdef VK_ENABLE_BETA_EXTENSIONS
3327     VK_BUFFER_USAGE_VIDEO_DECODE_DST_BIT_KHR = 0x00004000,
3328 #endif
3329     VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT = 0x00000800,
3330     VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT = 0x00001000,
3331     VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT = 0x00000200,
3332     VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR = 0x00080000,
3333     VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR = 0x00100000,
3334     VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR = 0x00000400,
3335 #ifdef VK_ENABLE_BETA_EXTENSIONS
3336     VK_BUFFER_USAGE_VIDEO_ENCODE_DST_BIT_KHR = 0x00008000,
3337 #endif
3338 #ifdef VK_ENABLE_BETA_EXTENSIONS
3339     VK_BUFFER_USAGE_VIDEO_ENCODE_SRC_BIT_KHR = 0x00010000,
3340 #endif
3341     VK_BUFFER_USAGE_RAY_TRACING_BIT_NV = VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR,
3342     VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_EXT = VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT,
3343     VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_KHR = VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT,
3344     VK_BUFFER_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3345 } VkBufferUsageFlagBits;
3346 typedef VkFlags VkBufferUsageFlags;
3347 typedef VkFlags VkBufferViewCreateFlags;
3348
3349 typedef enum VkImageViewCreateFlagBits {
3350     VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT = 0x00000001,
3351     VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT = 0x00000002,
3352     VK_IMAGE_VIEW_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3353 } VkImageViewCreateFlagBits;
3354 typedef VkFlags VkImageViewCreateFlags;
3355 typedef VkFlags VkShaderModuleCreateFlags;
3356
3357 typedef enum VkPipelineCacheCreateFlagBits {
3358     VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT = 0x00000001,
3359     VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT_EXT = VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT,
3360     VK_PIPELINE_CACHE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3361 } VkPipelineCacheCreateFlagBits;
3362 typedef VkFlags VkPipelineCacheCreateFlags;
3363
3364 typedef enum VkColorComponentFlagBits {
3365     VK_COLOR_COMPONENT_R_BIT = 0x00000001,
3366     VK_COLOR_COMPONENT_G_BIT = 0x00000002,
3367     VK_COLOR_COMPONENT_B_BIT = 0x00000004,
3368     VK_COLOR_COMPONENT_A_BIT = 0x00000008,
3369     VK_COLOR_COMPONENT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3370 } VkColorComponentFlagBits;
3371 typedef VkFlags VkColorComponentFlags;
3372
3373 typedef enum VkPipelineCreateFlagBits {
3374     VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT = 0x00000001,
3375     VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT = 0x00000002,
3376     VK_PIPELINE_CREATE_DERIVATIVE_BIT = 0x00000004,
3377     VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT = 0x00000008,
3378     VK_PIPELINE_CREATE_DISPATCH_BASE_BIT = 0x00000010,
3379     VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT = 0x00000100,
3380     VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT = 0x00000200,
3381     VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x00200000,
3382     VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT = 0x00400000,
3383     VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR = 0x00004000,
3384     VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR = 0x00008000,
3385     VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR = 0x00010000,
3386     VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR = 0x00020000,
3387     VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR = 0x00001000,
3388     VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR = 0x00002000,
3389     VK_PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR = 0x00080000,
3390     VK_PIPELINE_CREATE_DEFER_COMPILE_BIT_NV = 0x00000020,
3391     VK_PIPELINE_CREATE_CAPTURE_STATISTICS_BIT_KHR = 0x00000040,
3392     VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR = 0x00000080,
3393     VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV = 0x00040000,
3394     VK_PIPELINE_CREATE_LIBRARY_BIT_KHR = 0x00000800,
3395     VK_PIPELINE_CREATE_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT = 0x00800000,
3396     VK_PIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXT = 0x00000400,
3397     VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV = 0x00100000,
3398     VK_PIPELINE_CREATE_DISPATCH_BASE = VK_PIPELINE_CREATE_DISPATCH_BASE_BIT,
3399     VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,
3400     VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT = VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT,
3401     VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR = VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT,
3402     VK_PIPELINE_CREATE_DISPATCH_BASE_KHR = VK_PIPELINE_CREATE_DISPATCH_BASE,
3403     VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_EXT = VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT,
3404     VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT_EXT = VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT,
3405     VK_PIPELINE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3406 } VkPipelineCreateFlagBits;
3407 typedef VkFlags VkPipelineCreateFlags;
3408
3409 typedef enum VkPipelineShaderStageCreateFlagBits {
3410     VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT = 0x00000001,
3411     VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT = 0x00000002,
3412     VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT = VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT,
3413     VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT = VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT,
3414     VK_PIPELINE_SHADER_STAGE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3415 } VkPipelineShaderStageCreateFlagBits;
3416 typedef VkFlags VkPipelineShaderStageCreateFlags;
3417
3418 typedef enum VkShaderStageFlagBits {
3419     VK_SHADER_STAGE_VERTEX_BIT = 0x00000001,
3420     VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT = 0x00000002,
3421     VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT = 0x00000004,
3422     VK_SHADER_STAGE_GEOMETRY_BIT = 0x00000008,
3423     VK_SHADER_STAGE_FRAGMENT_BIT = 0x00000010,
3424     VK_SHADER_STAGE_COMPUTE_BIT = 0x00000020,
3425     VK_SHADER_STAGE_ALL_GRAPHICS = 0x0000001F,
3426     VK_SHADER_STAGE_ALL = 0x7FFFFFFF,
3427     VK_SHADER_STAGE_RAYGEN_BIT_KHR = 0x00000100,
3428     VK_SHADER_STAGE_ANY_HIT_BIT_KHR = 0x00000200,
3429     VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR = 0x00000400,
3430     VK_SHADER_STAGE_MISS_BIT_KHR = 0x00000800,
3431     VK_SHADER_STAGE_INTERSECTION_BIT_KHR = 0x00001000,
3432     VK_SHADER_STAGE_CALLABLE_BIT_KHR = 0x00002000,
3433     VK_SHADER_STAGE_TASK_BIT_NV = 0x00000040,
3434     VK_SHADER_STAGE_MESH_BIT_NV = 0x00000080,
3435     VK_SHADER_STAGE_SUBPASS_SHADING_BIT_HUAWEI = 0x00004000,
3436     VK_SHADER_STAGE_RAYGEN_BIT_NV = VK_SHADER_STAGE_RAYGEN_BIT_KHR,
3437     VK_SHADER_STAGE_ANY_HIT_BIT_NV = VK_SHADER_STAGE_ANY_HIT_BIT_KHR,
3438     VK_SHADER_STAGE_CLOSEST_HIT_BIT_NV = VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR,
3439     VK_SHADER_STAGE_MISS_BIT_NV = VK_SHADER_STAGE_MISS_BIT_KHR,
3440     VK_SHADER_STAGE_INTERSECTION_BIT_NV = VK_SHADER_STAGE_INTERSECTION_BIT_KHR,
3441     VK_SHADER_STAGE_CALLABLE_BIT_NV = VK_SHADER_STAGE_CALLABLE_BIT_KHR,
3442     VK_SHADER_STAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3443 } VkShaderStageFlagBits;
3444
3445 typedef enum VkCullModeFlagBits {
3446     VK_CULL_MODE_NONE = 0,
3447     VK_CULL_MODE_FRONT_BIT = 0x00000001,
3448     VK_CULL_MODE_BACK_BIT = 0x00000002,
3449     VK_CULL_MODE_FRONT_AND_BACK = 0x00000003,
3450     VK_CULL_MODE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3451 } VkCullModeFlagBits;
3452 typedef VkFlags VkCullModeFlags;
3453 typedef VkFlags VkPipelineVertexInputStateCreateFlags;
3454 typedef VkFlags VkPipelineInputAssemblyStateCreateFlags;
3455 typedef VkFlags VkPipelineTessellationStateCreateFlags;
3456 typedef VkFlags VkPipelineViewportStateCreateFlags;
3457 typedef VkFlags VkPipelineRasterizationStateCreateFlags;
3458 typedef VkFlags VkPipelineMultisampleStateCreateFlags;
3459
3460 typedef enum VkPipelineDepthStencilStateCreateFlagBits {
3461     VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM = 0x00000001,
3462     VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM = 0x00000002,
3463     VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3464 } VkPipelineDepthStencilStateCreateFlagBits;
3465 typedef VkFlags VkPipelineDepthStencilStateCreateFlags;
3466
3467 typedef enum VkPipelineColorBlendStateCreateFlagBits {
3468     VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_ARM = 0x00000001,
3469     VK_PIPELINE_COLOR_BLEND_STATE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3470 } VkPipelineColorBlendStateCreateFlagBits;
3471 typedef VkFlags VkPipelineColorBlendStateCreateFlags;
3472 typedef VkFlags VkPipelineDynamicStateCreateFlags;
3473
3474 typedef enum VkPipelineLayoutCreateFlagBits {
3475     VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT = 0x00000002,
3476     VK_PIPELINE_LAYOUT_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3477 } VkPipelineLayoutCreateFlagBits;
3478 typedef VkFlags VkPipelineLayoutCreateFlags;
3479 typedef VkFlags VkShaderStageFlags;
3480
3481 typedef enum VkSamplerCreateFlagBits {
3482     VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT = 0x00000001,
3483     VK_SAMPLER_CREATE_SUBSAMPLED_COARSE_RECONSTRUCTION_BIT_EXT = 0x00000002,
3484     VK_SAMPLER_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3485 } VkSamplerCreateFlagBits;
3486 typedef VkFlags VkSamplerCreateFlags;
3487
3488 typedef enum VkDescriptorPoolCreateFlagBits {
3489     VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT = 0x00000001,
3490     VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT = 0x00000002,
3491     VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_VALVE = 0x00000004,
3492     VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT_EXT = VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT,
3493     VK_DESCRIPTOR_POOL_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3494 } VkDescriptorPoolCreateFlagBits;
3495 typedef VkFlags VkDescriptorPoolCreateFlags;
3496 typedef VkFlags VkDescriptorPoolResetFlags;
3497
3498 typedef enum VkDescriptorSetLayoutCreateFlagBits {
3499     VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT = 0x00000002,
3500     VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR = 0x00000001,
3501     VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_VALVE = 0x00000004,
3502     VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT = VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT,
3503     VK_DESCRIPTOR_SET_LAYOUT_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3504 } VkDescriptorSetLayoutCreateFlagBits;
3505 typedef VkFlags VkDescriptorSetLayoutCreateFlags;
3506
3507 typedef enum VkAttachmentDescriptionFlagBits {
3508     VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT = 0x00000001,
3509     VK_ATTACHMENT_DESCRIPTION_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3510 } VkAttachmentDescriptionFlagBits;
3511 typedef VkFlags VkAttachmentDescriptionFlags;
3512
3513 typedef enum VkDependencyFlagBits {
3514     VK_DEPENDENCY_BY_REGION_BIT = 0x00000001,
3515     VK_DEPENDENCY_DEVICE_GROUP_BIT = 0x00000004,
3516     VK_DEPENDENCY_VIEW_LOCAL_BIT = 0x00000002,
3517     VK_DEPENDENCY_VIEW_LOCAL_BIT_KHR = VK_DEPENDENCY_VIEW_LOCAL_BIT,
3518     VK_DEPENDENCY_DEVICE_GROUP_BIT_KHR = VK_DEPENDENCY_DEVICE_GROUP_BIT,
3519     VK_DEPENDENCY_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3520 } VkDependencyFlagBits;
3521 typedef VkFlags VkDependencyFlags;
3522
3523 typedef enum VkFramebufferCreateFlagBits {
3524     VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT = 0x00000001,
3525     VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT_KHR = VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT,
3526     VK_FRAMEBUFFER_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3527 } VkFramebufferCreateFlagBits;
3528 typedef VkFlags VkFramebufferCreateFlags;
3529
3530 typedef enum VkRenderPassCreateFlagBits {
3531     VK_RENDER_PASS_CREATE_TRANSFORM_BIT_QCOM = 0x00000002,
3532     VK_RENDER_PASS_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3533 } VkRenderPassCreateFlagBits;
3534 typedef VkFlags VkRenderPassCreateFlags;
3535
3536 typedef enum VkSubpassDescriptionFlagBits {
3537     VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX = 0x00000001,
3538     VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX = 0x00000002,
3539     VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM = 0x00000004,
3540     VK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM = 0x00000008,
3541     VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_ARM = 0x00000010,
3542     VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM = 0x00000020,
3543     VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM = 0x00000040,
3544     VK_SUBPASS_DESCRIPTION_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3545 } VkSubpassDescriptionFlagBits;
3546 typedef VkFlags VkSubpassDescriptionFlags;
3547
3548 typedef enum VkCommandPoolCreateFlagBits {
3549     VK_COMMAND_POOL_CREATE_TRANSIENT_BIT = 0x00000001,
3550     VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT = 0x00000002,
3551     VK_COMMAND_POOL_CREATE_PROTECTED_BIT = 0x00000004,
3552     VK_COMMAND_POOL_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3553 } VkCommandPoolCreateFlagBits;
3554 typedef VkFlags VkCommandPoolCreateFlags;
3555
3556 typedef enum VkCommandPoolResetFlagBits {
3557     VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT = 0x00000001,
3558     VK_COMMAND_POOL_RESET_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3559 } VkCommandPoolResetFlagBits;
3560 typedef VkFlags VkCommandPoolResetFlags;
3561
3562 typedef enum VkCommandBufferUsageFlagBits {
3563     VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT = 0x00000001,
3564     VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT = 0x00000002,
3565     VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT = 0x00000004,
3566     VK_COMMAND_BUFFER_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3567 } VkCommandBufferUsageFlagBits;
3568 typedef VkFlags VkCommandBufferUsageFlags;
3569
3570 typedef enum VkQueryControlFlagBits {
3571     VK_QUERY_CONTROL_PRECISE_BIT = 0x00000001,
3572     VK_QUERY_CONTROL_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3573 } VkQueryControlFlagBits;
3574 typedef VkFlags VkQueryControlFlags;
3575
3576 typedef enum VkCommandBufferResetFlagBits {
3577     VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT = 0x00000001,
3578     VK_COMMAND_BUFFER_RESET_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3579 } VkCommandBufferResetFlagBits;
3580 typedef VkFlags VkCommandBufferResetFlags;
3581
3582 typedef enum VkStencilFaceFlagBits {
3583     VK_STENCIL_FACE_FRONT_BIT = 0x00000001,
3584     VK_STENCIL_FACE_BACK_BIT = 0x00000002,
3585     VK_STENCIL_FACE_FRONT_AND_BACK = 0x00000003,
3586     VK_STENCIL_FRONT_AND_BACK = VK_STENCIL_FACE_FRONT_AND_BACK,
3587     VK_STENCIL_FACE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3588 } VkStencilFaceFlagBits;
3589 typedef VkFlags VkStencilFaceFlags;
3590 typedef struct VkExtent2D {
3591     deUint32    width;
3592     deUint32    height;
3593 } VkExtent2D;
3594
3595 typedef struct VkExtent3D {
3596     deUint32    width;
3597     deUint32    height;
3598     deUint32    depth;
3599 } VkExtent3D;
3600
3601 typedef struct VkOffset2D {
3602     deInt32    x;
3603     deInt32    y;
3604 } VkOffset2D;
3605
3606 typedef struct VkOffset3D {
3607     deInt32    x;
3608     deInt32    y;
3609     deInt32    z;
3610 } VkOffset3D;
3611
3612 typedef struct VkRect2D {
3613     VkOffset2D    offset;
3614     VkExtent2D    extent;
3615 } VkRect2D;
3616
3617 typedef struct VkBaseInStructure {
3618     VkStructureType                    sType;
3619     const struct VkBaseInStructure*    pNext;
3620 } VkBaseInStructure;
3621
3622 typedef struct VkBaseOutStructure {
3623     VkStructureType               sType;
3624     struct VkBaseOutStructure*    pNext;
3625 } VkBaseOutStructure;
3626
3627 typedef struct VkBufferMemoryBarrier {
3628     VkStructureType    sType;
3629     const void*        pNext;
3630     VkAccessFlags      srcAccessMask;
3631     VkAccessFlags      dstAccessMask;
3632     deUint32           srcQueueFamilyIndex;
3633     deUint32           dstQueueFamilyIndex;
3634     VkBuffer           buffer;
3635     VkDeviceSize       offset;
3636     VkDeviceSize       size;
3637 } VkBufferMemoryBarrier;
3638
3639 typedef struct VkDispatchIndirectCommand {
3640     deUint32    x;
3641     deUint32    y;
3642     deUint32    z;
3643 } VkDispatchIndirectCommand;
3644
3645 typedef struct VkDrawIndexedIndirectCommand {
3646     deUint32    indexCount;
3647     deUint32    instanceCount;
3648     deUint32    firstIndex;
3649     deInt32     vertexOffset;
3650     deUint32    firstInstance;
3651 } VkDrawIndexedIndirectCommand;
3652
3653 typedef struct VkDrawIndirectCommand {
3654     deUint32    vertexCount;
3655     deUint32    instanceCount;
3656     deUint32    firstVertex;
3657     deUint32    firstInstance;
3658 } VkDrawIndirectCommand;
3659
3660 typedef struct VkImageSubresourceRange {
3661     VkImageAspectFlags    aspectMask;
3662     deUint32              baseMipLevel;
3663     deUint32              levelCount;
3664     deUint32              baseArrayLayer;
3665     deUint32              layerCount;
3666 } VkImageSubresourceRange;
3667
3668 typedef struct VkImageMemoryBarrier {
3669     VkStructureType            sType;
3670     const void*                pNext;
3671     VkAccessFlags              srcAccessMask;
3672     VkAccessFlags              dstAccessMask;
3673     VkImageLayout              oldLayout;
3674     VkImageLayout              newLayout;
3675     deUint32                   srcQueueFamilyIndex;
3676     deUint32                   dstQueueFamilyIndex;
3677     VkImage                    image;
3678     VkImageSubresourceRange    subresourceRange;
3679 } VkImageMemoryBarrier;
3680
3681 typedef struct VkMemoryBarrier {
3682     VkStructureType    sType;
3683     const void*        pNext;
3684     VkAccessFlags      srcAccessMask;
3685     VkAccessFlags      dstAccessMask;
3686 } VkMemoryBarrier;
3687
3688 typedef struct VkPipelineCacheHeaderVersionOne {
3689     deUint32                        headerSize;
3690     VkPipelineCacheHeaderVersion    headerVersion;
3691     deUint32                        vendorID;
3692     deUint32                        deviceID;
3693     deUint8                         pipelineCacheUUID[VK_UUID_SIZE];
3694 } VkPipelineCacheHeaderVersionOne;
3695
3696 typedef void* (VKAPI_PTR *PFN_vkAllocationFunction)(
3697     void*                                       pUserData,
3698     deUintptr                                      size,
3699     deUintptr                                      alignment,
3700     VkSystemAllocationScope                     allocationScope);
3701
3702 typedef void (VKAPI_PTR *PFN_vkFreeFunction)(
3703     void*                                       pUserData,
3704     void*                                       pMemory);
3705
3706 typedef void (VKAPI_PTR *PFN_vkInternalAllocationNotification)(
3707     void*                                       pUserData,
3708     deUintptr                                      size,
3709     VkInternalAllocationType                    allocationType,
3710     VkSystemAllocationScope                     allocationScope);
3711
3712 typedef void (VKAPI_PTR *PFN_vkInternalFreeNotification)(
3713     void*                                       pUserData,
3714     deUintptr                                      size,
3715     VkInternalAllocationType                    allocationType,
3716     VkSystemAllocationScope                     allocationScope);
3717
3718 typedef void* (VKAPI_PTR *PFN_vkReallocationFunction)(
3719     void*                                       pUserData,
3720     void*                                       pOriginal,
3721     deUintptr                                      size,
3722     deUintptr                                      alignment,
3723     VkSystemAllocationScope                     allocationScope);
3724
3725 typedef void (VKAPI_PTR *PFN_vkVoidFunction)(void);
3726 typedef struct VkAllocationCallbacks {
3727     void*                                   pUserData;
3728     PFN_vkAllocationFunction                pfnAllocation;
3729     PFN_vkReallocationFunction              pfnReallocation;
3730     PFN_vkFreeFunction                      pfnFree;
3731     PFN_vkInternalAllocationNotification    pfnInternalAllocation;
3732     PFN_vkInternalFreeNotification          pfnInternalFree;
3733 } VkAllocationCallbacks;
3734
3735 typedef struct VkApplicationInfo {
3736     VkStructureType    sType;
3737     const void*        pNext;
3738     const char*        pApplicationName;
3739     deUint32           applicationVersion;
3740     const char*        pEngineName;
3741     deUint32           engineVersion;
3742     deUint32           apiVersion;
3743 } VkApplicationInfo;
3744
3745 typedef struct VkFormatProperties {
3746     VkFormatFeatureFlags    linearTilingFeatures;
3747     VkFormatFeatureFlags    optimalTilingFeatures;
3748     VkFormatFeatureFlags    bufferFeatures;
3749 } VkFormatProperties;
3750
3751 typedef struct VkImageFormatProperties {
3752     VkExtent3D            maxExtent;
3753     deUint32              maxMipLevels;
3754     deUint32              maxArrayLayers;
3755     VkSampleCountFlags    sampleCounts;
3756     VkDeviceSize          maxResourceSize;
3757 } VkImageFormatProperties;
3758
3759 typedef struct VkInstanceCreateInfo {
3760     VkStructureType             sType;
3761     const void*                 pNext;
3762     VkInstanceCreateFlags       flags;
3763     const VkApplicationInfo*    pApplicationInfo;
3764     deUint32                    enabledLayerCount;
3765     const char* const*          ppEnabledLayerNames;
3766     deUint32                    enabledExtensionCount;
3767     const char* const*          ppEnabledExtensionNames;
3768 } VkInstanceCreateInfo;
3769
3770 typedef struct VkMemoryHeap {
3771     VkDeviceSize         size;
3772     VkMemoryHeapFlags    flags;
3773 } VkMemoryHeap;
3774
3775 typedef struct VkMemoryType {
3776     VkMemoryPropertyFlags    propertyFlags;
3777     deUint32                 heapIndex;
3778 } VkMemoryType;
3779
3780 typedef struct VkPhysicalDeviceFeatures {
3781     VkBool32    robustBufferAccess;
3782     VkBool32    fullDrawIndexUint32;
3783     VkBool32    imageCubeArray;
3784     VkBool32    independentBlend;
3785     VkBool32    geometryShader;
3786     VkBool32    tessellationShader;
3787     VkBool32    sampleRateShading;
3788     VkBool32    dualSrcBlend;
3789     VkBool32    logicOp;
3790     VkBool32    multiDrawIndirect;
3791     VkBool32    drawIndirectFirstInstance;
3792     VkBool32    depthClamp;
3793     VkBool32    depthBiasClamp;
3794     VkBool32    fillModeNonSolid;
3795     VkBool32    depthBounds;
3796     VkBool32    wideLines;
3797     VkBool32    largePoints;
3798     VkBool32    alphaToOne;
3799     VkBool32    multiViewport;
3800     VkBool32    samplerAnisotropy;
3801     VkBool32    textureCompressionETC2;
3802     VkBool32    textureCompressionASTC_LDR;
3803     VkBool32    textureCompressionBC;
3804     VkBool32    occlusionQueryPrecise;
3805     VkBool32    pipelineStatisticsQuery;
3806     VkBool32    vertexPipelineStoresAndAtomics;
3807     VkBool32    fragmentStoresAndAtomics;
3808     VkBool32    shaderTessellationAndGeometryPointSize;
3809     VkBool32    shaderImageGatherExtended;
3810     VkBool32    shaderStorageImageExtendedFormats;
3811     VkBool32    shaderStorageImageMultisample;
3812     VkBool32    shaderStorageImageReadWithoutFormat;
3813     VkBool32    shaderStorageImageWriteWithoutFormat;
3814     VkBool32    shaderUniformBufferArrayDynamicIndexing;
3815     VkBool32    shaderSampledImageArrayDynamicIndexing;
3816     VkBool32    shaderStorageBufferArrayDynamicIndexing;
3817     VkBool32    shaderStorageImageArrayDynamicIndexing;
3818     VkBool32    shaderClipDistance;
3819     VkBool32    shaderCullDistance;
3820     VkBool32    shaderFloat64;
3821     VkBool32    shaderInt64;
3822     VkBool32    shaderInt16;
3823     VkBool32    shaderResourceResidency;
3824     VkBool32    shaderResourceMinLod;
3825     VkBool32    sparseBinding;
3826     VkBool32    sparseResidencyBuffer;
3827     VkBool32    sparseResidencyImage2D;
3828     VkBool32    sparseResidencyImage3D;
3829     VkBool32    sparseResidency2Samples;
3830     VkBool32    sparseResidency4Samples;
3831     VkBool32    sparseResidency8Samples;
3832     VkBool32    sparseResidency16Samples;
3833     VkBool32    sparseResidencyAliased;
3834     VkBool32    variableMultisampleRate;
3835     VkBool32    inheritedQueries;
3836 } VkPhysicalDeviceFeatures;
3837
3838 typedef struct VkPhysicalDeviceLimits {
3839     deUint32              maxImageDimension1D;
3840     deUint32              maxImageDimension2D;
3841     deUint32              maxImageDimension3D;
3842     deUint32              maxImageDimensionCube;
3843     deUint32              maxImageArrayLayers;
3844     deUint32              maxTexelBufferElements;
3845     deUint32              maxUniformBufferRange;
3846     deUint32              maxStorageBufferRange;
3847     deUint32              maxPushConstantsSize;
3848     deUint32              maxMemoryAllocationCount;
3849     deUint32              maxSamplerAllocationCount;
3850     VkDeviceSize          bufferImageGranularity;
3851     VkDeviceSize          sparseAddressSpaceSize;
3852     deUint32              maxBoundDescriptorSets;
3853     deUint32              maxPerStageDescriptorSamplers;
3854     deUint32              maxPerStageDescriptorUniformBuffers;
3855     deUint32              maxPerStageDescriptorStorageBuffers;
3856     deUint32              maxPerStageDescriptorSampledImages;
3857     deUint32              maxPerStageDescriptorStorageImages;
3858     deUint32              maxPerStageDescriptorInputAttachments;
3859     deUint32              maxPerStageResources;
3860     deUint32              maxDescriptorSetSamplers;
3861     deUint32              maxDescriptorSetUniformBuffers;
3862     deUint32              maxDescriptorSetUniformBuffersDynamic;
3863     deUint32              maxDescriptorSetStorageBuffers;
3864     deUint32              maxDescriptorSetStorageBuffersDynamic;
3865     deUint32              maxDescriptorSetSampledImages;
3866     deUint32              maxDescriptorSetStorageImages;
3867     deUint32              maxDescriptorSetInputAttachments;
3868     deUint32              maxVertexInputAttributes;
3869     deUint32              maxVertexInputBindings;
3870     deUint32              maxVertexInputAttributeOffset;
3871     deUint32              maxVertexInputBindingStride;
3872     deUint32              maxVertexOutputComponents;
3873     deUint32              maxTessellationGenerationLevel;
3874     deUint32              maxTessellationPatchSize;
3875     deUint32              maxTessellationControlPerVertexInputComponents;
3876     deUint32              maxTessellationControlPerVertexOutputComponents;
3877     deUint32              maxTessellationControlPerPatchOutputComponents;
3878     deUint32              maxTessellationControlTotalOutputComponents;
3879     deUint32              maxTessellationEvaluationInputComponents;
3880     deUint32              maxTessellationEvaluationOutputComponents;
3881     deUint32              maxGeometryShaderInvocations;
3882     deUint32              maxGeometryInputComponents;
3883     deUint32              maxGeometryOutputComponents;
3884     deUint32              maxGeometryOutputVertices;
3885     deUint32              maxGeometryTotalOutputComponents;
3886     deUint32              maxFragmentInputComponents;
3887     deUint32              maxFragmentOutputAttachments;
3888     deUint32              maxFragmentDualSrcAttachments;
3889     deUint32              maxFragmentCombinedOutputResources;
3890     deUint32              maxComputeSharedMemorySize;
3891     deUint32              maxComputeWorkGroupCount[3];
3892     deUint32              maxComputeWorkGroupInvocations;
3893     deUint32              maxComputeWorkGroupSize[3];
3894     deUint32              subPixelPrecisionBits;
3895     deUint32              subTexelPrecisionBits;
3896     deUint32              mipmapPrecisionBits;
3897     deUint32              maxDrawIndexedIndexValue;
3898     deUint32              maxDrawIndirectCount;
3899     float                 maxSamplerLodBias;
3900     float                 maxSamplerAnisotropy;
3901     deUint32              maxViewports;
3902     deUint32              maxViewportDimensions[2];
3903     float                 viewportBoundsRange[2];
3904     deUint32              viewportSubPixelBits;
3905     deUintptr                minMemoryMapAlignment;
3906     VkDeviceSize          minTexelBufferOffsetAlignment;
3907     VkDeviceSize          minUniformBufferOffsetAlignment;
3908     VkDeviceSize          minStorageBufferOffsetAlignment;
3909     deInt32               minTexelOffset;
3910     deUint32              maxTexelOffset;
3911     deInt32               minTexelGatherOffset;
3912     deUint32              maxTexelGatherOffset;
3913     float                 minInterpolationOffset;
3914     float                 maxInterpolationOffset;
3915     deUint32              subPixelInterpolationOffsetBits;
3916     deUint32              maxFramebufferWidth;
3917     deUint32              maxFramebufferHeight;
3918     deUint32              maxFramebufferLayers;
3919     VkSampleCountFlags    framebufferColorSampleCounts;
3920     VkSampleCountFlags    framebufferDepthSampleCounts;
3921     VkSampleCountFlags    framebufferStencilSampleCounts;
3922     VkSampleCountFlags    framebufferNoAttachmentsSampleCounts;
3923     deUint32              maxColorAttachments;
3924     VkSampleCountFlags    sampledImageColorSampleCounts;
3925     VkSampleCountFlags    sampledImageIntegerSampleCounts;
3926     VkSampleCountFlags    sampledImageDepthSampleCounts;
3927     VkSampleCountFlags    sampledImageStencilSampleCounts;
3928     VkSampleCountFlags    storageImageSampleCounts;
3929     deUint32              maxSampleMaskWords;
3930     VkBool32              timestampComputeAndGraphics;
3931     float                 timestampPeriod;
3932     deUint32              maxClipDistances;
3933     deUint32              maxCullDistances;
3934     deUint32              maxCombinedClipAndCullDistances;
3935     deUint32              discreteQueuePriorities;
3936     float                 pointSizeRange[2];
3937     float                 lineWidthRange[2];
3938     float                 pointSizeGranularity;
3939     float                 lineWidthGranularity;
3940     VkBool32              strictLines;
3941     VkBool32              standardSampleLocations;
3942     VkDeviceSize          optimalBufferCopyOffsetAlignment;
3943     VkDeviceSize          optimalBufferCopyRowPitchAlignment;
3944     VkDeviceSize          nonCoherentAtomSize;
3945 } VkPhysicalDeviceLimits;
3946
3947 typedef struct VkPhysicalDeviceMemoryProperties {
3948     deUint32        memoryTypeCount;
3949     VkMemoryType    memoryTypes[VK_MAX_MEMORY_TYPES];
3950     deUint32        memoryHeapCount;
3951     VkMemoryHeap    memoryHeaps[VK_MAX_MEMORY_HEAPS];
3952 } VkPhysicalDeviceMemoryProperties;
3953
3954 typedef struct VkPhysicalDeviceSparseProperties {
3955     VkBool32    residencyStandard2DBlockShape;
3956     VkBool32    residencyStandard2DMultisampleBlockShape;
3957     VkBool32    residencyStandard3DBlockShape;
3958     VkBool32    residencyAlignedMipSize;
3959     VkBool32    residencyNonResidentStrict;
3960 } VkPhysicalDeviceSparseProperties;
3961
3962 typedef struct VkPhysicalDeviceProperties {
3963     deUint32                            apiVersion;
3964     deUint32                            driverVersion;
3965     deUint32                            vendorID;
3966     deUint32                            deviceID;
3967     VkPhysicalDeviceType                deviceType;
3968     char                                deviceName[VK_MAX_PHYSICAL_DEVICE_NAME_SIZE];
3969     deUint8                             pipelineCacheUUID[VK_UUID_SIZE];
3970     VkPhysicalDeviceLimits              limits;
3971     VkPhysicalDeviceSparseProperties    sparseProperties;
3972 } VkPhysicalDeviceProperties;
3973
3974 typedef struct VkQueueFamilyProperties {
3975     VkQueueFlags    queueFlags;
3976     deUint32        queueCount;
3977     deUint32        timestampValidBits;
3978     VkExtent3D      minImageTransferGranularity;
3979 } VkQueueFamilyProperties;
3980
3981 typedef struct VkDeviceQueueCreateInfo {
3982     VkStructureType             sType;
3983     const void*                 pNext;
3984     VkDeviceQueueCreateFlags    flags;
3985     deUint32                    queueFamilyIndex;
3986     deUint32                    queueCount;
3987     const float*                pQueuePriorities;
3988 } VkDeviceQueueCreateInfo;
3989
3990 typedef struct VkDeviceCreateInfo {
3991     VkStructureType                    sType;
3992     const void*                        pNext;
3993     VkDeviceCreateFlags                flags;
3994     deUint32                           queueCreateInfoCount;
3995     const VkDeviceQueueCreateInfo*     pQueueCreateInfos;
3996     deUint32                           enabledLayerCount;
3997     const char* const*                 ppEnabledLayerNames;
3998     deUint32                           enabledExtensionCount;
3999     const char* const*                 ppEnabledExtensionNames;
4000     const VkPhysicalDeviceFeatures*    pEnabledFeatures;
4001 } VkDeviceCreateInfo;
4002
4003 typedef struct VkExtensionProperties {
4004     char        extensionName[VK_MAX_EXTENSION_NAME_SIZE];
4005     deUint32    specVersion;
4006 } VkExtensionProperties;
4007
4008 typedef struct VkLayerProperties {
4009     char        layerName[VK_MAX_EXTENSION_NAME_SIZE];
4010     deUint32    specVersion;
4011     deUint32    implementationVersion;
4012     char        description[VK_MAX_DESCRIPTION_SIZE];
4013 } VkLayerProperties;
4014
4015 typedef struct VkSubmitInfo {
4016     VkStructureType                sType;
4017     const void*                    pNext;
4018     deUint32                       waitSemaphoreCount;
4019     const VkSemaphore*             pWaitSemaphores;
4020     const VkPipelineStageFlags*    pWaitDstStageMask;
4021     deUint32                       commandBufferCount;
4022     const VkCommandBuffer*         pCommandBuffers;
4023     deUint32                       signalSemaphoreCount;
4024     const VkSemaphore*             pSignalSemaphores;
4025 } VkSubmitInfo;
4026
4027 typedef struct VkMappedMemoryRange {
4028     VkStructureType    sType;
4029     const void*        pNext;
4030     VkDeviceMemory     memory;
4031     VkDeviceSize       offset;
4032     VkDeviceSize       size;
4033 } VkMappedMemoryRange;
4034
4035 typedef struct VkMemoryAllocateInfo {
4036     VkStructureType    sType;
4037     const void*        pNext;
4038     VkDeviceSize       allocationSize;
4039     deUint32           memoryTypeIndex;
4040 } VkMemoryAllocateInfo;
4041
4042 typedef struct VkMemoryRequirements {
4043     VkDeviceSize    size;
4044     VkDeviceSize    alignment;
4045     deUint32        memoryTypeBits;
4046 } VkMemoryRequirements;
4047
4048 typedef struct VkSparseMemoryBind {
4049     VkDeviceSize               resourceOffset;
4050     VkDeviceSize               size;
4051     VkDeviceMemory             memory;
4052     VkDeviceSize               memoryOffset;
4053     VkSparseMemoryBindFlags    flags;
4054 } VkSparseMemoryBind;
4055
4056 typedef struct VkSparseBufferMemoryBindInfo {
4057     VkBuffer                     buffer;
4058     deUint32                     bindCount;
4059     const VkSparseMemoryBind*    pBinds;
4060 } VkSparseBufferMemoryBindInfo;
4061
4062 typedef struct VkSparseImageOpaqueMemoryBindInfo {
4063     VkImage                      image;
4064     deUint32                     bindCount;
4065     const VkSparseMemoryBind*    pBinds;
4066 } VkSparseImageOpaqueMemoryBindInfo;
4067
4068 typedef struct VkImageSubresource {
4069     VkImageAspectFlags    aspectMask;
4070     deUint32              mipLevel;
4071     deUint32              arrayLayer;
4072 } VkImageSubresource;
4073
4074 typedef struct VkSparseImageMemoryBind {
4075     VkImageSubresource         subresource;
4076     VkOffset3D                 offset;
4077     VkExtent3D                 extent;
4078     VkDeviceMemory             memory;
4079     VkDeviceSize               memoryOffset;
4080     VkSparseMemoryBindFlags    flags;
4081 } VkSparseImageMemoryBind;
4082
4083 typedef struct VkSparseImageMemoryBindInfo {
4084     VkImage                           image;
4085     deUint32                          bindCount;
4086     const VkSparseImageMemoryBind*    pBinds;
4087 } VkSparseImageMemoryBindInfo;
4088
4089 typedef struct VkBindSparseInfo {
4090     VkStructureType                             sType;
4091     const void*                                 pNext;
4092     deUint32                                    waitSemaphoreCount;
4093     const VkSemaphore*                          pWaitSemaphores;
4094     deUint32                                    bufferBindCount;
4095     const VkSparseBufferMemoryBindInfo*         pBufferBinds;
4096     deUint32                                    imageOpaqueBindCount;
4097     const VkSparseImageOpaqueMemoryBindInfo*    pImageOpaqueBinds;
4098     deUint32                                    imageBindCount;
4099     const VkSparseImageMemoryBindInfo*          pImageBinds;
4100     deUint32                                    signalSemaphoreCount;
4101     const VkSemaphore*                          pSignalSemaphores;
4102 } VkBindSparseInfo;
4103
4104 typedef struct VkSparseImageFormatProperties {
4105     VkImageAspectFlags          aspectMask;
4106     VkExtent3D                  imageGranularity;
4107     VkSparseImageFormatFlags    flags;
4108 } VkSparseImageFormatProperties;
4109
4110 typedef struct VkSparseImageMemoryRequirements {
4111     VkSparseImageFormatProperties    formatProperties;
4112     deUint32                         imageMipTailFirstLod;
4113     VkDeviceSize                     imageMipTailSize;
4114     VkDeviceSize                     imageMipTailOffset;
4115     VkDeviceSize                     imageMipTailStride;
4116 } VkSparseImageMemoryRequirements;
4117
4118 typedef struct VkFenceCreateInfo {
4119     VkStructureType       sType;
4120     const void*           pNext;
4121     VkFenceCreateFlags    flags;
4122 } VkFenceCreateInfo;
4123
4124 typedef struct VkSemaphoreCreateInfo {
4125     VkStructureType           sType;
4126     const void*               pNext;
4127     VkSemaphoreCreateFlags    flags;
4128 } VkSemaphoreCreateInfo;
4129
4130 typedef struct VkEventCreateInfo {
4131     VkStructureType       sType;
4132     const void*           pNext;
4133     VkEventCreateFlags    flags;
4134 } VkEventCreateInfo;
4135
4136 typedef struct VkQueryPoolCreateInfo {
4137     VkStructureType                  sType;
4138     const void*                      pNext;
4139     VkQueryPoolCreateFlags           flags;
4140     VkQueryType                      queryType;
4141     deUint32                         queryCount;
4142     VkQueryPipelineStatisticFlags    pipelineStatistics;
4143 } VkQueryPoolCreateInfo;
4144
4145 typedef struct VkBufferCreateInfo {
4146     VkStructureType        sType;
4147     const void*            pNext;
4148     VkBufferCreateFlags    flags;
4149     VkDeviceSize           size;
4150     VkBufferUsageFlags     usage;
4151     VkSharingMode          sharingMode;
4152     deUint32               queueFamilyIndexCount;
4153     const deUint32*        pQueueFamilyIndices;
4154 } VkBufferCreateInfo;
4155
4156 typedef struct VkBufferViewCreateInfo {
4157     VkStructureType            sType;
4158     const void*                pNext;
4159     VkBufferViewCreateFlags    flags;
4160     VkBuffer                   buffer;
4161     VkFormat                   format;
4162     VkDeviceSize               offset;
4163     VkDeviceSize               range;
4164 } VkBufferViewCreateInfo;
4165
4166 typedef struct VkImageCreateInfo {
4167     VkStructureType          sType;
4168     const void*              pNext;
4169     VkImageCreateFlags       flags;
4170     VkImageType              imageType;
4171     VkFormat                 format;
4172     VkExtent3D               extent;
4173     deUint32                 mipLevels;
4174     deUint32                 arrayLayers;
4175     VkSampleCountFlagBits    samples;
4176     VkImageTiling            tiling;
4177     VkImageUsageFlags        usage;
4178     VkSharingMode            sharingMode;
4179     deUint32                 queueFamilyIndexCount;
4180     const deUint32*          pQueueFamilyIndices;
4181     VkImageLayout            initialLayout;
4182 } VkImageCreateInfo;
4183
4184 typedef struct VkSubresourceLayout {
4185     VkDeviceSize    offset;
4186     VkDeviceSize    size;
4187     VkDeviceSize    rowPitch;
4188     VkDeviceSize    arrayPitch;
4189     VkDeviceSize    depthPitch;
4190 } VkSubresourceLayout;
4191
4192 typedef struct VkComponentMapping {
4193     VkComponentSwizzle    r;
4194     VkComponentSwizzle    g;
4195     VkComponentSwizzle    b;
4196     VkComponentSwizzle    a;
4197 } VkComponentMapping;
4198
4199 typedef struct VkImageViewCreateInfo {
4200     VkStructureType            sType;
4201     const void*                pNext;
4202     VkImageViewCreateFlags     flags;
4203     VkImage                    image;
4204     VkImageViewType            viewType;
4205     VkFormat                   format;
4206     VkComponentMapping         components;
4207     VkImageSubresourceRange    subresourceRange;
4208 } VkImageViewCreateInfo;
4209
4210 typedef struct VkShaderModuleCreateInfo {
4211     VkStructureType              sType;
4212     const void*                  pNext;
4213     VkShaderModuleCreateFlags    flags;
4214     deUintptr                       codeSize;
4215     const deUint32*              pCode;
4216 } VkShaderModuleCreateInfo;
4217
4218 typedef struct VkPipelineCacheCreateInfo {
4219     VkStructureType               sType;
4220     const void*                   pNext;
4221     VkPipelineCacheCreateFlags    flags;
4222     deUintptr                        initialDataSize;
4223     const void*                   pInitialData;
4224 } VkPipelineCacheCreateInfo;
4225
4226 typedef struct VkSpecializationMapEntry {
4227     deUint32    constantID;
4228     deUint32    offset;
4229     deUintptr      size;
4230 } VkSpecializationMapEntry;
4231
4232 typedef struct VkSpecializationInfo {
4233     deUint32                           mapEntryCount;
4234     const VkSpecializationMapEntry*    pMapEntries;
4235     deUintptr                             dataSize;
4236     const void*                        pData;
4237 } VkSpecializationInfo;
4238
4239 typedef struct VkPipelineShaderStageCreateInfo {
4240     VkStructureType                     sType;
4241     const void*                         pNext;
4242     VkPipelineShaderStageCreateFlags    flags;
4243     VkShaderStageFlagBits               stage;
4244     VkShaderModule                      module;
4245     const char*                         pName;
4246     const VkSpecializationInfo*         pSpecializationInfo;
4247 } VkPipelineShaderStageCreateInfo;
4248
4249 typedef struct VkComputePipelineCreateInfo {
4250     VkStructureType                    sType;
4251     const void*                        pNext;
4252     VkPipelineCreateFlags              flags;
4253     VkPipelineShaderStageCreateInfo    stage;
4254     VkPipelineLayout                   layout;
4255     VkPipeline                         basePipelineHandle;
4256     deInt32                            basePipelineIndex;
4257 } VkComputePipelineCreateInfo;
4258
4259 typedef struct VkVertexInputBindingDescription {
4260     deUint32             binding;
4261     deUint32             stride;
4262     VkVertexInputRate    inputRate;
4263 } VkVertexInputBindingDescription;
4264
4265 typedef struct VkVertexInputAttributeDescription {
4266     deUint32    location;
4267     deUint32    binding;
4268     VkFormat    format;
4269     deUint32    offset;
4270 } VkVertexInputAttributeDescription;
4271
4272 typedef struct VkPipelineVertexInputStateCreateInfo {
4273     VkStructureType                             sType;
4274     const void*                                 pNext;
4275     VkPipelineVertexInputStateCreateFlags       flags;
4276     deUint32                                    vertexBindingDescriptionCount;
4277     const VkVertexInputBindingDescription*      pVertexBindingDescriptions;
4278     deUint32                                    vertexAttributeDescriptionCount;
4279     const VkVertexInputAttributeDescription*    pVertexAttributeDescriptions;
4280 } VkPipelineVertexInputStateCreateInfo;
4281
4282 typedef struct VkPipelineInputAssemblyStateCreateInfo {
4283     VkStructureType                            sType;
4284     const void*                                pNext;
4285     VkPipelineInputAssemblyStateCreateFlags    flags;
4286     VkPrimitiveTopology                        topology;
4287     VkBool32                                   primitiveRestartEnable;
4288 } VkPipelineInputAssemblyStateCreateInfo;
4289
4290 typedef struct VkPipelineTessellationStateCreateInfo {
4291     VkStructureType                           sType;
4292     const void*                               pNext;
4293     VkPipelineTessellationStateCreateFlags    flags;
4294     deUint32                                  patchControlPoints;
4295 } VkPipelineTessellationStateCreateInfo;
4296
4297 typedef struct VkViewport {
4298     float    x;
4299     float    y;
4300     float    width;
4301     float    height;
4302     float    minDepth;
4303     float    maxDepth;
4304 } VkViewport;
4305
4306 typedef struct VkPipelineViewportStateCreateInfo {
4307     VkStructureType                       sType;
4308     const void*                           pNext;
4309     VkPipelineViewportStateCreateFlags    flags;
4310     deUint32                              viewportCount;
4311     const VkViewport*                     pViewports;
4312     deUint32                              scissorCount;
4313     const VkRect2D*                       pScissors;
4314 } VkPipelineViewportStateCreateInfo;
4315
4316 typedef struct VkPipelineRasterizationStateCreateInfo {
4317     VkStructureType                            sType;
4318     const void*                                pNext;
4319     VkPipelineRasterizationStateCreateFlags    flags;
4320     VkBool32                                   depthClampEnable;
4321     VkBool32                                   rasterizerDiscardEnable;
4322     VkPolygonMode                              polygonMode;
4323     VkCullModeFlags                            cullMode;
4324     VkFrontFace                                frontFace;
4325     VkBool32                                   depthBiasEnable;
4326     float                                      depthBiasConstantFactor;
4327     float                                      depthBiasClamp;
4328     float                                      depthBiasSlopeFactor;
4329     float                                      lineWidth;
4330 } VkPipelineRasterizationStateCreateInfo;
4331
4332 typedef struct VkPipelineMultisampleStateCreateInfo {
4333     VkStructureType                          sType;
4334     const void*                              pNext;
4335     VkPipelineMultisampleStateCreateFlags    flags;
4336     VkSampleCountFlagBits                    rasterizationSamples;
4337     VkBool32                                 sampleShadingEnable;
4338     float                                    minSampleShading;
4339     const VkSampleMask*                      pSampleMask;
4340     VkBool32                                 alphaToCoverageEnable;
4341     VkBool32                                 alphaToOneEnable;
4342 } VkPipelineMultisampleStateCreateInfo;
4343
4344 typedef struct VkStencilOpState {
4345     VkStencilOp    failOp;
4346     VkStencilOp    passOp;
4347     VkStencilOp    depthFailOp;
4348     VkCompareOp    compareOp;
4349     deUint32       compareMask;
4350     deUint32       writeMask;
4351     deUint32       reference;
4352 } VkStencilOpState;
4353
4354 typedef struct VkPipelineDepthStencilStateCreateInfo {
4355     VkStructureType                           sType;
4356     const void*                               pNext;
4357     VkPipelineDepthStencilStateCreateFlags    flags;
4358     VkBool32                                  depthTestEnable;
4359     VkBool32                                  depthWriteEnable;
4360     VkCompareOp                               depthCompareOp;
4361     VkBool32                                  depthBoundsTestEnable;
4362     VkBool32                                  stencilTestEnable;
4363     VkStencilOpState                          front;
4364     VkStencilOpState                          back;
4365     float                                     minDepthBounds;
4366     float                                     maxDepthBounds;
4367 } VkPipelineDepthStencilStateCreateInfo;
4368
4369 typedef struct VkPipelineColorBlendAttachmentState {
4370     VkBool32                 blendEnable;
4371     VkBlendFactor            srcColorBlendFactor;
4372     VkBlendFactor            dstColorBlendFactor;
4373     VkBlendOp                colorBlendOp;
4374     VkBlendFactor            srcAlphaBlendFactor;
4375     VkBlendFactor            dstAlphaBlendFactor;
4376     VkBlendOp                alphaBlendOp;
4377     VkColorComponentFlags    colorWriteMask;
4378 } VkPipelineColorBlendAttachmentState;
4379
4380 typedef struct VkPipelineColorBlendStateCreateInfo {
4381     VkStructureType                               sType;
4382     const void*                                   pNext;
4383     VkPipelineColorBlendStateCreateFlags          flags;
4384     VkBool32                                      logicOpEnable;
4385     VkLogicOp                                     logicOp;
4386     deUint32                                      attachmentCount;
4387     const VkPipelineColorBlendAttachmentState*    pAttachments;
4388     float                                         blendConstants[4];
4389 } VkPipelineColorBlendStateCreateInfo;
4390
4391 typedef struct VkPipelineDynamicStateCreateInfo {
4392     VkStructureType                      sType;
4393     const void*                          pNext;
4394     VkPipelineDynamicStateCreateFlags    flags;
4395     deUint32                             dynamicStateCount;
4396     const VkDynamicState*                pDynamicStates;
4397 } VkPipelineDynamicStateCreateInfo;
4398
4399 typedef struct VkGraphicsPipelineCreateInfo {
4400     VkStructureType                                  sType;
4401     const void*                                      pNext;
4402     VkPipelineCreateFlags                            flags;
4403     deUint32                                         stageCount;
4404     const VkPipelineShaderStageCreateInfo*           pStages;
4405     const VkPipelineVertexInputStateCreateInfo*      pVertexInputState;
4406     const VkPipelineInputAssemblyStateCreateInfo*    pInputAssemblyState;
4407     const VkPipelineTessellationStateCreateInfo*     pTessellationState;
4408     const VkPipelineViewportStateCreateInfo*         pViewportState;
4409     const VkPipelineRasterizationStateCreateInfo*    pRasterizationState;
4410     const VkPipelineMultisampleStateCreateInfo*      pMultisampleState;
4411     const VkPipelineDepthStencilStateCreateInfo*     pDepthStencilState;
4412     const VkPipelineColorBlendStateCreateInfo*       pColorBlendState;
4413     const VkPipelineDynamicStateCreateInfo*          pDynamicState;
4414     VkPipelineLayout                                 layout;
4415     VkRenderPass                                     renderPass;
4416     deUint32                                         subpass;
4417     VkPipeline                                       basePipelineHandle;
4418     deInt32                                          basePipelineIndex;
4419 } VkGraphicsPipelineCreateInfo;
4420
4421 typedef struct VkPushConstantRange {
4422     VkShaderStageFlags    stageFlags;
4423     deUint32              offset;
4424     deUint32              size;
4425 } VkPushConstantRange;
4426
4427 typedef struct VkPipelineLayoutCreateInfo {
4428     VkStructureType                 sType;
4429     const void*                     pNext;
4430     VkPipelineLayoutCreateFlags     flags;
4431     deUint32                        setLayoutCount;
4432     const VkDescriptorSetLayout*    pSetLayouts;
4433     deUint32                        pushConstantRangeCount;
4434     const VkPushConstantRange*      pPushConstantRanges;
4435 } VkPipelineLayoutCreateInfo;
4436
4437 typedef struct VkSamplerCreateInfo {
4438     VkStructureType         sType;
4439     const void*             pNext;
4440     VkSamplerCreateFlags    flags;
4441     VkFilter                magFilter;
4442     VkFilter                minFilter;
4443     VkSamplerMipmapMode     mipmapMode;
4444     VkSamplerAddressMode    addressModeU;
4445     VkSamplerAddressMode    addressModeV;
4446     VkSamplerAddressMode    addressModeW;
4447     float                   mipLodBias;
4448     VkBool32                anisotropyEnable;
4449     float                   maxAnisotropy;
4450     VkBool32                compareEnable;
4451     VkCompareOp             compareOp;
4452     float                   minLod;
4453     float                   maxLod;
4454     VkBorderColor           borderColor;
4455     VkBool32                unnormalizedCoordinates;
4456 } VkSamplerCreateInfo;
4457
4458 typedef struct VkCopyDescriptorSet {
4459     VkStructureType    sType;
4460     const void*        pNext;
4461     VkDescriptorSet    srcSet;
4462     deUint32           srcBinding;
4463     deUint32           srcArrayElement;
4464     VkDescriptorSet    dstSet;
4465     deUint32           dstBinding;
4466     deUint32           dstArrayElement;
4467     deUint32           descriptorCount;
4468 } VkCopyDescriptorSet;
4469
4470 typedef struct VkDescriptorBufferInfo {
4471     VkBuffer        buffer;
4472     VkDeviceSize    offset;
4473     VkDeviceSize    range;
4474 } VkDescriptorBufferInfo;
4475
4476 typedef struct VkDescriptorImageInfo {
4477     VkSampler        sampler;
4478     VkImageView      imageView;
4479     VkImageLayout    imageLayout;
4480 } VkDescriptorImageInfo;
4481
4482 typedef struct VkDescriptorPoolSize {
4483     VkDescriptorType    type;
4484     deUint32            descriptorCount;
4485 } VkDescriptorPoolSize;
4486
4487 typedef struct VkDescriptorPoolCreateInfo {
4488     VkStructureType                sType;
4489     const void*                    pNext;
4490     VkDescriptorPoolCreateFlags    flags;
4491     deUint32                       maxSets;
4492     deUint32                       poolSizeCount;
4493     const VkDescriptorPoolSize*    pPoolSizes;
4494 } VkDescriptorPoolCreateInfo;
4495
4496 typedef struct VkDescriptorSetAllocateInfo {
4497     VkStructureType                 sType;
4498     const void*                     pNext;
4499     VkDescriptorPool                descriptorPool;
4500     deUint32                        descriptorSetCount;
4501     const VkDescriptorSetLayout*    pSetLayouts;
4502 } VkDescriptorSetAllocateInfo;
4503
4504 typedef struct VkDescriptorSetLayoutBinding {
4505     deUint32              binding;
4506     VkDescriptorType      descriptorType;
4507     deUint32              descriptorCount;
4508     VkShaderStageFlags    stageFlags;
4509     const VkSampler*      pImmutableSamplers;
4510 } VkDescriptorSetLayoutBinding;
4511
4512 typedef struct VkDescriptorSetLayoutCreateInfo {
4513     VkStructureType                        sType;
4514     const void*                            pNext;
4515     VkDescriptorSetLayoutCreateFlags       flags;
4516     deUint32                               bindingCount;
4517     const VkDescriptorSetLayoutBinding*    pBindings;
4518 } VkDescriptorSetLayoutCreateInfo;
4519
4520 typedef struct VkWriteDescriptorSet {
4521     VkStructureType                  sType;
4522     const void*                      pNext;
4523     VkDescriptorSet                  dstSet;
4524     deUint32                         dstBinding;
4525     deUint32                         dstArrayElement;
4526     deUint32                         descriptorCount;
4527     VkDescriptorType                 descriptorType;
4528     const VkDescriptorImageInfo*     pImageInfo;
4529     const VkDescriptorBufferInfo*    pBufferInfo;
4530     const VkBufferView*              pTexelBufferView;
4531 } VkWriteDescriptorSet;
4532
4533 typedef struct VkAttachmentDescription {
4534     VkAttachmentDescriptionFlags    flags;
4535     VkFormat                        format;
4536     VkSampleCountFlagBits           samples;
4537     VkAttachmentLoadOp              loadOp;
4538     VkAttachmentStoreOp             storeOp;
4539     VkAttachmentLoadOp              stencilLoadOp;
4540     VkAttachmentStoreOp             stencilStoreOp;
4541     VkImageLayout                   initialLayout;
4542     VkImageLayout                   finalLayout;
4543 } VkAttachmentDescription;
4544
4545 typedef struct VkAttachmentReference {
4546     deUint32         attachment;
4547     VkImageLayout    layout;
4548 } VkAttachmentReference;
4549
4550 typedef struct VkFramebufferCreateInfo {
4551     VkStructureType             sType;
4552     const void*                 pNext;
4553     VkFramebufferCreateFlags    flags;
4554     VkRenderPass                renderPass;
4555     deUint32                    attachmentCount;
4556     const VkImageView*          pAttachments;
4557     deUint32                    width;
4558     deUint32                    height;
4559     deUint32                    layers;
4560 } VkFramebufferCreateInfo;
4561
4562 typedef struct VkSubpassDescription {
4563     VkSubpassDescriptionFlags       flags;
4564     VkPipelineBindPoint             pipelineBindPoint;
4565     deUint32                        inputAttachmentCount;
4566     const VkAttachmentReference*    pInputAttachments;
4567     deUint32                        colorAttachmentCount;
4568     const VkAttachmentReference*    pColorAttachments;
4569     const VkAttachmentReference*    pResolveAttachments;
4570     const VkAttachmentReference*    pDepthStencilAttachment;
4571     deUint32                        preserveAttachmentCount;
4572     const deUint32*                 pPreserveAttachments;
4573 } VkSubpassDescription;
4574
4575 typedef struct VkSubpassDependency {
4576     deUint32                srcSubpass;
4577     deUint32                dstSubpass;
4578     VkPipelineStageFlags    srcStageMask;
4579     VkPipelineStageFlags    dstStageMask;
4580     VkAccessFlags           srcAccessMask;
4581     VkAccessFlags           dstAccessMask;
4582     VkDependencyFlags       dependencyFlags;
4583 } VkSubpassDependency;
4584
4585 typedef struct VkRenderPassCreateInfo {
4586     VkStructureType                   sType;
4587     const void*                       pNext;
4588     VkRenderPassCreateFlags           flags;
4589     deUint32                          attachmentCount;
4590     const VkAttachmentDescription*    pAttachments;
4591     deUint32                          subpassCount;
4592     const VkSubpassDescription*       pSubpasses;
4593     deUint32                          dependencyCount;
4594     const VkSubpassDependency*        pDependencies;
4595 } VkRenderPassCreateInfo;
4596
4597 typedef struct VkCommandPoolCreateInfo {
4598     VkStructureType             sType;
4599     const void*                 pNext;
4600     VkCommandPoolCreateFlags    flags;
4601     deUint32                    queueFamilyIndex;
4602 } VkCommandPoolCreateInfo;
4603
4604 typedef struct VkCommandBufferAllocateInfo {
4605     VkStructureType         sType;
4606     const void*             pNext;
4607     VkCommandPool           commandPool;
4608     VkCommandBufferLevel    level;
4609     deUint32                commandBufferCount;
4610 } VkCommandBufferAllocateInfo;
4611
4612 typedef struct VkCommandBufferInheritanceInfo {
4613     VkStructureType                  sType;
4614     const void*                      pNext;
4615     VkRenderPass                     renderPass;
4616     deUint32                         subpass;
4617     VkFramebuffer                    framebuffer;
4618     VkBool32                         occlusionQueryEnable;
4619     VkQueryControlFlags              queryFlags;
4620     VkQueryPipelineStatisticFlags    pipelineStatistics;
4621 } VkCommandBufferInheritanceInfo;
4622
4623 typedef struct VkCommandBufferBeginInfo {
4624     VkStructureType                          sType;
4625     const void*                              pNext;
4626     VkCommandBufferUsageFlags                flags;
4627     const VkCommandBufferInheritanceInfo*    pInheritanceInfo;
4628 } VkCommandBufferBeginInfo;
4629
4630 typedef struct VkBufferCopy {
4631     VkDeviceSize    srcOffset;
4632     VkDeviceSize    dstOffset;
4633     VkDeviceSize    size;
4634 } VkBufferCopy;
4635
4636 typedef struct VkImageSubresourceLayers {
4637     VkImageAspectFlags    aspectMask;
4638     deUint32              mipLevel;
4639     deUint32              baseArrayLayer;
4640     deUint32              layerCount;
4641 } VkImageSubresourceLayers;
4642
4643 typedef struct VkBufferImageCopy {
4644     VkDeviceSize                bufferOffset;
4645     deUint32                    bufferRowLength;
4646     deUint32                    bufferImageHeight;
4647     VkImageSubresourceLayers    imageSubresource;
4648     VkOffset3D                  imageOffset;
4649     VkExtent3D                  imageExtent;
4650 } VkBufferImageCopy;
4651
4652 typedef union VkClearColorValue {
4653     float       float32[4];
4654     deInt32     int32[4];
4655     deUint32    uint32[4];
4656 } VkClearColorValue;
4657
4658 typedef struct VkClearDepthStencilValue {
4659     float       depth;
4660     deUint32    stencil;
4661 } VkClearDepthStencilValue;
4662
4663 typedef union VkClearValue {
4664     VkClearColorValue           color;
4665     VkClearDepthStencilValue    depthStencil;
4666 } VkClearValue;
4667
4668 typedef struct VkClearAttachment {
4669     VkImageAspectFlags    aspectMask;
4670     deUint32              colorAttachment;
4671     VkClearValue          clearValue;
4672 } VkClearAttachment;
4673
4674 typedef struct VkClearRect {
4675     VkRect2D    rect;
4676     deUint32    baseArrayLayer;
4677     deUint32    layerCount;
4678 } VkClearRect;
4679
4680 typedef struct VkImageBlit {
4681     VkImageSubresourceLayers    srcSubresource;
4682     VkOffset3D                  srcOffsets[2];
4683     VkImageSubresourceLayers    dstSubresource;
4684     VkOffset3D                  dstOffsets[2];
4685 } VkImageBlit;
4686
4687 typedef struct VkImageCopy {
4688     VkImageSubresourceLayers    srcSubresource;
4689     VkOffset3D                  srcOffset;
4690     VkImageSubresourceLayers    dstSubresource;
4691     VkOffset3D                  dstOffset;
4692     VkExtent3D                  extent;
4693 } VkImageCopy;
4694
4695 typedef struct VkImageResolve {
4696     VkImageSubresourceLayers    srcSubresource;
4697     VkOffset3D                  srcOffset;
4698     VkImageSubresourceLayers    dstSubresource;
4699     VkOffset3D                  dstOffset;
4700     VkExtent3D                  extent;
4701 } VkImageResolve;
4702
4703 typedef struct VkRenderPassBeginInfo {
4704     VkStructureType        sType;
4705     const void*            pNext;
4706     VkRenderPass           renderPass;
4707     VkFramebuffer          framebuffer;
4708     VkRect2D               renderArea;
4709     deUint32               clearValueCount;
4710     const VkClearValue*    pClearValues;
4711 } VkRenderPassBeginInfo;
4712
4713 typedef VkResult (VKAPI_PTR *PFN_vkCreateInstance)(const VkInstanceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkInstance* pInstance);
4714 typedef void (VKAPI_PTR *PFN_vkDestroyInstance)(VkInstance instance, const VkAllocationCallbacks* pAllocator);
4715 typedef VkResult (VKAPI_PTR *PFN_vkEnumeratePhysicalDevices)(VkInstance instance, deUint32* pPhysicalDeviceCount, VkPhysicalDevice* pPhysicalDevices);
4716 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFeatures)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures* pFeatures);
4717 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties* pFormatProperties);
4718 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceImageFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkImageFormatProperties* pImageFormatProperties);
4719 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceProperties)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties* pProperties);
4720 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceQueueFamilyProperties)(VkPhysicalDevice physicalDevice, deUint32* pQueueFamilyPropertyCount, VkQueueFamilyProperties* pQueueFamilyProperties);
4721 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceMemoryProperties)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties* pMemoryProperties);
4722 typedef PFN_vkVoidFunction (VKAPI_PTR *PFN_vkGetInstanceProcAddr)(VkInstance instance, const char* pName);
4723 typedef PFN_vkVoidFunction (VKAPI_PTR *PFN_vkGetDeviceProcAddr)(VkDevice device, const char* pName);
4724 typedef VkResult (VKAPI_PTR *PFN_vkCreateDevice)(VkPhysicalDevice physicalDevice, const VkDeviceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDevice* pDevice);
4725 typedef void (VKAPI_PTR *PFN_vkDestroyDevice)(VkDevice device, const VkAllocationCallbacks* pAllocator);
4726 typedef VkResult (VKAPI_PTR *PFN_vkEnumerateInstanceExtensionProperties)(const char* pLayerName, deUint32* pPropertyCount, VkExtensionProperties* pProperties);
4727 typedef VkResult (VKAPI_PTR *PFN_vkEnumerateDeviceExtensionProperties)(VkPhysicalDevice physicalDevice, const char* pLayerName, deUint32* pPropertyCount, VkExtensionProperties* pProperties);
4728 typedef VkResult (VKAPI_PTR *PFN_vkEnumerateInstanceLayerProperties)(deUint32* pPropertyCount, VkLayerProperties* pProperties);
4729 typedef VkResult (VKAPI_PTR *PFN_vkEnumerateDeviceLayerProperties)(VkPhysicalDevice physicalDevice, deUint32* pPropertyCount, VkLayerProperties* pProperties);
4730 typedef void (VKAPI_PTR *PFN_vkGetDeviceQueue)(VkDevice device, deUint32 queueFamilyIndex, deUint32 queueIndex, VkQueue* pQueue);
4731 typedef VkResult (VKAPI_PTR *PFN_vkQueueSubmit)(VkQueue queue, deUint32 submitCount, const VkSubmitInfo* pSubmits, VkFence fence);
4732 typedef VkResult (VKAPI_PTR *PFN_vkQueueWaitIdle)(VkQueue queue);
4733 typedef VkResult (VKAPI_PTR *PFN_vkDeviceWaitIdle)(VkDevice device);
4734 typedef VkResult (VKAPI_PTR *PFN_vkAllocateMemory)(VkDevice device, const VkMemoryAllocateInfo* pAllocateInfo, const VkAllocationCallbacks* pAllocator, VkDeviceMemory* pMemory);
4735 typedef void (VKAPI_PTR *PFN_vkFreeMemory)(VkDevice device, VkDeviceMemory memory, const VkAllocationCallbacks* pAllocator);
4736 typedef VkResult (VKAPI_PTR *PFN_vkMapMemory)(VkDevice device, VkDeviceMemory memory, VkDeviceSize offset, VkDeviceSize size, VkMemoryMapFlags flags, void** ppData);
4737 typedef void (VKAPI_PTR *PFN_vkUnmapMemory)(VkDevice device, VkDeviceMemory memory);
4738 typedef VkResult (VKAPI_PTR *PFN_vkFlushMappedMemoryRanges)(VkDevice device, deUint32 memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges);
4739 typedef VkResult (VKAPI_PTR *PFN_vkInvalidateMappedMemoryRanges)(VkDevice device, deUint32 memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges);
4740 typedef void (VKAPI_PTR *PFN_vkGetDeviceMemoryCommitment)(VkDevice device, VkDeviceMemory memory, VkDeviceSize* pCommittedMemoryInBytes);
4741 typedef VkResult (VKAPI_PTR *PFN_vkBindBufferMemory)(VkDevice device, VkBuffer buffer, VkDeviceMemory memory, VkDeviceSize memoryOffset);
4742 typedef VkResult (VKAPI_PTR *PFN_vkBindImageMemory)(VkDevice device, VkImage image, VkDeviceMemory memory, VkDeviceSize memoryOffset);
4743 typedef void (VKAPI_PTR *PFN_vkGetBufferMemoryRequirements)(VkDevice device, VkBuffer buffer, VkMemoryRequirements* pMemoryRequirements);
4744 typedef void (VKAPI_PTR *PFN_vkGetImageMemoryRequirements)(VkDevice device, VkImage image, VkMemoryRequirements* pMemoryRequirements);
4745 typedef void (VKAPI_PTR *PFN_vkGetImageSparseMemoryRequirements)(VkDevice device, VkImage image, deUint32* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements* pSparseMemoryRequirements);
4746 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceSparseImageFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkSampleCountFlagBits samples, VkImageUsageFlags usage, VkImageTiling tiling, deUint32* pPropertyCount, VkSparseImageFormatProperties* pProperties);
4747 typedef VkResult (VKAPI_PTR *PFN_vkQueueBindSparse)(VkQueue queue, deUint32 bindInfoCount, const VkBindSparseInfo* pBindInfo, VkFence fence);
4748 typedef VkResult (VKAPI_PTR *PFN_vkCreateFence)(VkDevice device, const VkFenceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence);
4749 typedef void (VKAPI_PTR *PFN_vkDestroyFence)(VkDevice device, VkFence fence, const VkAllocationCallbacks* pAllocator);
4750 typedef VkResult (VKAPI_PTR *PFN_vkResetFences)(VkDevice device, deUint32 fenceCount, const VkFence* pFences);
4751 typedef VkResult (VKAPI_PTR *PFN_vkGetFenceStatus)(VkDevice device, VkFence fence);
4752 typedef VkResult (VKAPI_PTR *PFN_vkWaitForFences)(VkDevice device, deUint32 fenceCount, const VkFence* pFences, VkBool32 waitAll, deUint64 timeout);
4753 typedef VkResult (VKAPI_PTR *PFN_vkCreateSemaphore)(VkDevice device, const VkSemaphoreCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSemaphore* pSemaphore);
4754 typedef void (VKAPI_PTR *PFN_vkDestroySemaphore)(VkDevice device, VkSemaphore semaphore, const VkAllocationCallbacks* pAllocator);
4755 typedef VkResult (VKAPI_PTR *PFN_vkCreateEvent)(VkDevice device, const VkEventCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkEvent* pEvent);
4756 typedef void (VKAPI_PTR *PFN_vkDestroyEvent)(VkDevice device, VkEvent event, const VkAllocationCallbacks* pAllocator);
4757 typedef VkResult (VKAPI_PTR *PFN_vkGetEventStatus)(VkDevice device, VkEvent event);
4758 typedef VkResult (VKAPI_PTR *PFN_vkSetEvent)(VkDevice device, VkEvent event);
4759 typedef VkResult (VKAPI_PTR *PFN_vkResetEvent)(VkDevice device, VkEvent event);
4760 typedef VkResult (VKAPI_PTR *PFN_vkCreateQueryPool)(VkDevice device, const VkQueryPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkQueryPool* pQueryPool);
4761 typedef void (VKAPI_PTR *PFN_vkDestroyQueryPool)(VkDevice device, VkQueryPool queryPool, const VkAllocationCallbacks* pAllocator);
4762 typedef VkResult (VKAPI_PTR *PFN_vkGetQueryPoolResults)(VkDevice device, VkQueryPool queryPool, deUint32 firstQuery, deUint32 queryCount, deUintptr dataSize, void* pData, VkDeviceSize stride, VkQueryResultFlags flags);
4763 typedef VkResult (VKAPI_PTR *PFN_vkCreateBuffer)(VkDevice device, const VkBufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBuffer* pBuffer);
4764 typedef void (VKAPI_PTR *PFN_vkDestroyBuffer)(VkDevice device, VkBuffer buffer, const VkAllocationCallbacks* pAllocator);
4765 typedef VkResult (VKAPI_PTR *PFN_vkCreateBufferView)(VkDevice device, const VkBufferViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBufferView* pView);
4766 typedef void (VKAPI_PTR *PFN_vkDestroyBufferView)(VkDevice device, VkBufferView bufferView, const VkAllocationCallbacks* pAllocator);
4767 typedef VkResult (VKAPI_PTR *PFN_vkCreateImage)(VkDevice device, const VkImageCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImage* pImage);
4768 typedef void (VKAPI_PTR *PFN_vkDestroyImage)(VkDevice device, VkImage image, const VkAllocationCallbacks* pAllocator);
4769 typedef void (VKAPI_PTR *PFN_vkGetImageSubresourceLayout)(VkDevice device, VkImage image, const VkImageSubresource* pSubresource, VkSubresourceLayout* pLayout);
4770 typedef VkResult (VKAPI_PTR *PFN_vkCreateImageView)(VkDevice device, const VkImageViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImageView* pView);
4771 typedef void (VKAPI_PTR *PFN_vkDestroyImageView)(VkDevice device, VkImageView imageView, const VkAllocationCallbacks* pAllocator);
4772 typedef VkResult (VKAPI_PTR *PFN_vkCreateShaderModule)(VkDevice device, const VkShaderModuleCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkShaderModule* pShaderModule);
4773 typedef void (VKAPI_PTR *PFN_vkDestroyShaderModule)(VkDevice device, VkShaderModule shaderModule, const VkAllocationCallbacks* pAllocator);
4774 typedef VkResult (VKAPI_PTR *PFN_vkCreatePipelineCache)(VkDevice device, const VkPipelineCacheCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineCache* pPipelineCache);
4775 typedef void (VKAPI_PTR *PFN_vkDestroyPipelineCache)(VkDevice device, VkPipelineCache pipelineCache, const VkAllocationCallbacks* pAllocator);
4776 typedef VkResult (VKAPI_PTR *PFN_vkGetPipelineCacheData)(VkDevice device, VkPipelineCache pipelineCache, deUintptr* pDataSize, void* pData);
4777 typedef VkResult (VKAPI_PTR *PFN_vkMergePipelineCaches)(VkDevice device, VkPipelineCache dstCache, deUint32 srcCacheCount, const VkPipelineCache* pSrcCaches);
4778 typedef VkResult (VKAPI_PTR *PFN_vkCreateGraphicsPipelines)(VkDevice device, VkPipelineCache pipelineCache, deUint32 createInfoCount, const VkGraphicsPipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines);
4779 typedef VkResult (VKAPI_PTR *PFN_vkCreateComputePipelines)(VkDevice device, VkPipelineCache pipelineCache, deUint32 createInfoCount, const VkComputePipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines);
4780 typedef void (VKAPI_PTR *PFN_vkDestroyPipeline)(VkDevice device, VkPipeline pipeline, const VkAllocationCallbacks* pAllocator);
4781 typedef VkResult (VKAPI_PTR *PFN_vkCreatePipelineLayout)(VkDevice device, const VkPipelineLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineLayout* pPipelineLayout);
4782 typedef void (VKAPI_PTR *PFN_vkDestroyPipelineLayout)(VkDevice device, VkPipelineLayout pipelineLayout, const VkAllocationCallbacks* pAllocator);
4783 typedef VkResult (VKAPI_PTR *PFN_vkCreateSampler)(VkDevice device, const VkSamplerCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSampler* pSampler);
4784 typedef void (VKAPI_PTR *PFN_vkDestroySampler)(VkDevice device, VkSampler sampler, const VkAllocationCallbacks* pAllocator);
4785 typedef VkResult (VKAPI_PTR *PFN_vkCreateDescriptorSetLayout)(VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorSetLayout* pSetLayout);
4786 typedef void (VKAPI_PTR *PFN_vkDestroyDescriptorSetLayout)(VkDevice device, VkDescriptorSetLayout descriptorSetLayout, const VkAllocationCallbacks* pAllocator);
4787 typedef VkResult (VKAPI_PTR *PFN_vkCreateDescriptorPool)(VkDevice device, const VkDescriptorPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorPool* pDescriptorPool);
4788 typedef void (VKAPI_PTR *PFN_vkDestroyDescriptorPool)(VkDevice device, VkDescriptorPool descriptorPool, const VkAllocationCallbacks* pAllocator);
4789 typedef VkResult (VKAPI_PTR *PFN_vkResetDescriptorPool)(VkDevice device, VkDescriptorPool descriptorPool, VkDescriptorPoolResetFlags flags);
4790 typedef VkResult (VKAPI_PTR *PFN_vkAllocateDescriptorSets)(VkDevice device, const VkDescriptorSetAllocateInfo* pAllocateInfo, VkDescriptorSet* pDescriptorSets);
4791 typedef VkResult (VKAPI_PTR *PFN_vkFreeDescriptorSets)(VkDevice device, VkDescriptorPool descriptorPool, deUint32 descriptorSetCount, const VkDescriptorSet* pDescriptorSets);
4792 typedef void (VKAPI_PTR *PFN_vkUpdateDescriptorSets)(VkDevice device, deUint32 descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites, deUint32 descriptorCopyCount, const VkCopyDescriptorSet* pDescriptorCopies);
4793 typedef VkResult (VKAPI_PTR *PFN_vkCreateFramebuffer)(VkDevice device, const VkFramebufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFramebuffer* pFramebuffer);
4794 typedef void (VKAPI_PTR *PFN_vkDestroyFramebuffer)(VkDevice device, VkFramebuffer framebuffer, const VkAllocationCallbacks* pAllocator);
4795 typedef VkResult (VKAPI_PTR *PFN_vkCreateRenderPass)(VkDevice device, const VkRenderPassCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass);
4796 typedef void (VKAPI_PTR *PFN_vkDestroyRenderPass)(VkDevice device, VkRenderPass renderPass, const VkAllocationCallbacks* pAllocator);
4797 typedef void (VKAPI_PTR *PFN_vkGetRenderAreaGranularity)(VkDevice device, VkRenderPass renderPass, VkExtent2D* pGranularity);
4798 typedef VkResult (VKAPI_PTR *PFN_vkCreateCommandPool)(VkDevice device, const VkCommandPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCommandPool* pCommandPool);
4799 typedef void (VKAPI_PTR *PFN_vkDestroyCommandPool)(VkDevice device, VkCommandPool commandPool, const VkAllocationCallbacks* pAllocator);
4800 typedef VkResult (VKAPI_PTR *PFN_vkResetCommandPool)(VkDevice device, VkCommandPool commandPool, VkCommandPoolResetFlags flags);
4801 typedef VkResult (VKAPI_PTR *PFN_vkAllocateCommandBuffers)(VkDevice device, const VkCommandBufferAllocateInfo* pAllocateInfo, VkCommandBuffer* pCommandBuffers);
4802 typedef void (VKAPI_PTR *PFN_vkFreeCommandBuffers)(VkDevice device, VkCommandPool commandPool, deUint32 commandBufferCount, const VkCommandBuffer* pCommandBuffers);
4803 typedef VkResult (VKAPI_PTR *PFN_vkBeginCommandBuffer)(VkCommandBuffer commandBuffer, const VkCommandBufferBeginInfo* pBeginInfo);
4804 typedef VkResult (VKAPI_PTR *PFN_vkEndCommandBuffer)(VkCommandBuffer commandBuffer);
4805 typedef VkResult (VKAPI_PTR *PFN_vkResetCommandBuffer)(VkCommandBuffer commandBuffer, VkCommandBufferResetFlags flags);
4806 typedef void (VKAPI_PTR *PFN_vkCmdBindPipeline)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline);
4807 typedef void (VKAPI_PTR *PFN_vkCmdSetViewport)(VkCommandBuffer commandBuffer, deUint32 firstViewport, deUint32 viewportCount, const VkViewport* pViewports);
4808 typedef void (VKAPI_PTR *PFN_vkCmdSetScissor)(VkCommandBuffer commandBuffer, deUint32 firstScissor, deUint32 scissorCount, const VkRect2D* pScissors);
4809 typedef void (VKAPI_PTR *PFN_vkCmdSetLineWidth)(VkCommandBuffer commandBuffer, float lineWidth);
4810 typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBias)(VkCommandBuffer commandBuffer, float depthBiasConstantFactor, float depthBiasClamp, float depthBiasSlopeFactor);
4811 typedef void (VKAPI_PTR *PFN_vkCmdSetBlendConstants)(VkCommandBuffer commandBuffer, const float blendConstants[4]);
4812 typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBounds)(VkCommandBuffer commandBuffer, float minDepthBounds, float maxDepthBounds);
4813 typedef void (VKAPI_PTR *PFN_vkCmdSetStencilCompareMask)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, deUint32 compareMask);
4814 typedef void (VKAPI_PTR *PFN_vkCmdSetStencilWriteMask)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, deUint32 writeMask);
4815 typedef void (VKAPI_PTR *PFN_vkCmdSetStencilReference)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, deUint32 reference);
4816 typedef void (VKAPI_PTR *PFN_vkCmdBindDescriptorSets)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, deUint32 firstSet, deUint32 descriptorSetCount, const VkDescriptorSet* pDescriptorSets, deUint32 dynamicOffsetCount, const deUint32* pDynamicOffsets);
4817 typedef void (VKAPI_PTR *PFN_vkCmdBindIndexBuffer)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkIndexType indexType);
4818 typedef void (VKAPI_PTR *PFN_vkCmdBindVertexBuffers)(VkCommandBuffer commandBuffer, deUint32 firstBinding, deUint32 bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets);
4819 typedef void (VKAPI_PTR *PFN_vkCmdDraw)(VkCommandBuffer commandBuffer, deUint32 vertexCount, deUint32 instanceCount, deUint32 firstVertex, deUint32 firstInstance);
4820 typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexed)(VkCommandBuffer commandBuffer, deUint32 indexCount, deUint32 instanceCount, deUint32 firstIndex, deInt32 vertexOffset, deUint32 firstInstance);
4821 typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirect)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, deUint32 drawCount, deUint32 stride);
4822 typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexedIndirect)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, deUint32 drawCount, deUint32 stride);
4823 typedef void (VKAPI_PTR *PFN_vkCmdDispatch)(VkCommandBuffer commandBuffer, deUint32 groupCountX, deUint32 groupCountY, deUint32 groupCountZ);
4824 typedef void (VKAPI_PTR *PFN_vkCmdDispatchIndirect)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset);
4825 typedef void (VKAPI_PTR *PFN_vkCmdCopyBuffer)(VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkBuffer dstBuffer, deUint32 regionCount, const VkBufferCopy* pRegions);
4826 typedef void (VKAPI_PTR *PFN_vkCmdCopyImage)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, deUint32 regionCount, const VkImageCopy* pRegions);
4827 typedef void (VKAPI_PTR *PFN_vkCmdBlitImage)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, deUint32 regionCount, const VkImageBlit* pRegions, VkFilter filter);
4828 typedef void (VKAPI_PTR *PFN_vkCmdCopyBufferToImage)(VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkImage dstImage, VkImageLayout dstImageLayout, deUint32 regionCount, const VkBufferImageCopy* pRegions);
4829 typedef void (VKAPI_PTR *PFN_vkCmdCopyImageToBuffer)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkBuffer dstBuffer, deUint32 regionCount, const VkBufferImageCopy* pRegions);
4830 typedef void (VKAPI_PTR *PFN_vkCmdUpdateBuffer)(VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize dataSize, const void* pData);
4831 typedef void (VKAPI_PTR *PFN_vkCmdFillBuffer)(VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize size, deUint32 data);
4832 typedef void (VKAPI_PTR *PFN_vkCmdClearColorImage)(VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearColorValue* pColor, deUint32 rangeCount, const VkImageSubresourceRange* pRanges);
4833 typedef void (VKAPI_PTR *PFN_vkCmdClearDepthStencilImage)(VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearDepthStencilValue* pDepthStencil, deUint32 rangeCount, const VkImageSubresourceRange* pRanges);
4834 typedef void (VKAPI_PTR *PFN_vkCmdClearAttachments)(VkCommandBuffer commandBuffer, deUint32 attachmentCount, const VkClearAttachment* pAttachments, deUint32 rectCount, const VkClearRect* pRects);
4835 typedef void (VKAPI_PTR *PFN_vkCmdResolveImage)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, deUint32 regionCount, const VkImageResolve* pRegions);
4836 typedef void (VKAPI_PTR *PFN_vkCmdSetEvent)(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask);
4837 typedef void (VKAPI_PTR *PFN_vkCmdResetEvent)(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask);
4838 typedef void (VKAPI_PTR *PFN_vkCmdWaitEvents)(VkCommandBuffer commandBuffer, deUint32 eventCount, const VkEvent* pEvents, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, deUint32 memoryBarrierCount, const VkMemoryBarrier* pMemoryBarriers, deUint32 bufferMemoryBarrierCount, const VkBufferMemoryBarrier* pBufferMemoryBarriers, deUint32 imageMemoryBarrierCount, const VkImageMemoryBarrier* pImageMemoryBarriers);
4839 typedef void (VKAPI_PTR *PFN_vkCmdPipelineBarrier)(VkCommandBuffer commandBuffer, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, VkDependencyFlags dependencyFlags, deUint32 memoryBarrierCount, const VkMemoryBarrier* pMemoryBarriers, deUint32 bufferMemoryBarrierCount, const VkBufferMemoryBarrier* pBufferMemoryBarriers, deUint32 imageMemoryBarrierCount, const VkImageMemoryBarrier* pImageMemoryBarriers);
4840 typedef void (VKAPI_PTR *PFN_vkCmdBeginQuery)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, deUint32 query, VkQueryControlFlags flags);
4841 typedef void (VKAPI_PTR *PFN_vkCmdEndQuery)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, deUint32 query);
4842 typedef void (VKAPI_PTR *PFN_vkCmdResetQueryPool)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, deUint32 firstQuery, deUint32 queryCount);
4843 typedef void (VKAPI_PTR *PFN_vkCmdWriteTimestamp)(VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkQueryPool queryPool, deUint32 query);
4844 typedef void (VKAPI_PTR *PFN_vkCmdCopyQueryPoolResults)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, deUint32 firstQuery, deUint32 queryCount, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize stride, VkQueryResultFlags flags);
4845 typedef void (VKAPI_PTR *PFN_vkCmdPushConstants)(VkCommandBuffer commandBuffer, VkPipelineLayout layout, VkShaderStageFlags stageFlags, deUint32 offset, deUint32 size, const void* pValues);
4846 typedef void (VKAPI_PTR *PFN_vkCmdBeginRenderPass)(VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, VkSubpassContents contents);
4847 typedef void (VKAPI_PTR *PFN_vkCmdNextSubpass)(VkCommandBuffer commandBuffer, VkSubpassContents contents);
4848 typedef void (VKAPI_PTR *PFN_vkCmdEndRenderPass)(VkCommandBuffer commandBuffer);
4849 typedef void (VKAPI_PTR *PFN_vkCmdExecuteCommands)(VkCommandBuffer commandBuffer, deUint32 commandBufferCount, const VkCommandBuffer* pCommandBuffers);
4850
4851 #ifndef VK_NO_PROTOTYPES
4852 VKAPI_ATTR VkResult VKAPI_CALL vkCreateInstance(
4853     const VkInstanceCreateInfo*                 pCreateInfo,
4854     const VkAllocationCallbacks*                pAllocator,
4855     VkInstance*                                 pInstance);
4856
4857 VKAPI_ATTR void VKAPI_CALL vkDestroyInstance(
4858     VkInstance                                  instance,
4859     const VkAllocationCallbacks*                pAllocator);
4860
4861 VKAPI_ATTR VkResult VKAPI_CALL vkEnumeratePhysicalDevices(
4862     VkInstance                                  instance,
4863     deUint32*                                   pPhysicalDeviceCount,
4864     VkPhysicalDevice*                           pPhysicalDevices);
4865
4866 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFeatures(
4867     VkPhysicalDevice                            physicalDevice,
4868     VkPhysicalDeviceFeatures*                   pFeatures);
4869
4870 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFormatProperties(
4871     VkPhysicalDevice                            physicalDevice,
4872     VkFormat                                    format,
4873     VkFormatProperties*                         pFormatProperties);
4874
4875 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceImageFormatProperties(
4876     VkPhysicalDevice                            physicalDevice,
4877     VkFormat                                    format,
4878     VkImageType                                 type,
4879     VkImageTiling                               tiling,
4880     VkImageUsageFlags                           usage,
4881     VkImageCreateFlags                          flags,
4882     VkImageFormatProperties*                    pImageFormatProperties);
4883
4884 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceProperties(
4885     VkPhysicalDevice                            physicalDevice,
4886     VkPhysicalDeviceProperties*                 pProperties);
4887
4888 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceQueueFamilyProperties(
4889     VkPhysicalDevice                            physicalDevice,
4890     deUint32*                                   pQueueFamilyPropertyCount,
4891     VkQueueFamilyProperties*                    pQueueFamilyProperties);
4892
4893 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceMemoryProperties(
4894     VkPhysicalDevice                            physicalDevice,
4895     VkPhysicalDeviceMemoryProperties*           pMemoryProperties);
4896
4897 VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL vkGetInstanceProcAddr(
4898     VkInstance                                  instance,
4899     const char*                                 pName);
4900
4901 VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL vkGetDeviceProcAddr(
4902     VkDevice                                    device,
4903     const char*                                 pName);
4904
4905 VKAPI_ATTR VkResult VKAPI_CALL vkCreateDevice(
4906     VkPhysicalDevice                            physicalDevice,
4907     const VkDeviceCreateInfo*                   pCreateInfo,
4908     const VkAllocationCallbacks*                pAllocator,
4909     VkDevice*                                   pDevice);
4910
4911 VKAPI_ATTR void VKAPI_CALL vkDestroyDevice(
4912     VkDevice                                    device,
4913     const VkAllocationCallbacks*                pAllocator);
4914
4915 VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateInstanceExtensionProperties(
4916     const char*                                 pLayerName,
4917     deUint32*                                   pPropertyCount,
4918     VkExtensionProperties*                      pProperties);
4919
4920 VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateDeviceExtensionProperties(
4921     VkPhysicalDevice                            physicalDevice,
4922     const char*                                 pLayerName,
4923     deUint32*                                   pPropertyCount,
4924     VkExtensionProperties*                      pProperties);
4925
4926 VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateInstanceLayerProperties(
4927     deUint32*                                   pPropertyCount,
4928     VkLayerProperties*                          pProperties);
4929
4930 VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateDeviceLayerProperties(
4931     VkPhysicalDevice                            physicalDevice,
4932     deUint32*                                   pPropertyCount,
4933     VkLayerProperties*                          pProperties);
4934
4935 VKAPI_ATTR void VKAPI_CALL vkGetDeviceQueue(
4936     VkDevice                                    device,
4937     deUint32                                    queueFamilyIndex,
4938     deUint32                                    queueIndex,
4939     VkQueue*                                    pQueue);
4940
4941 VKAPI_ATTR VkResult VKAPI_CALL vkQueueSubmit(
4942     VkQueue                                     queue,
4943     deUint32                                    submitCount,
4944     const VkSubmitInfo*                         pSubmits,
4945     VkFence                                     fence);
4946
4947 VKAPI_ATTR VkResult VKAPI_CALL vkQueueWaitIdle(
4948     VkQueue                                     queue);
4949
4950 VKAPI_ATTR VkResult VKAPI_CALL vkDeviceWaitIdle(
4951     VkDevice                                    device);
4952
4953 VKAPI_ATTR VkResult VKAPI_CALL vkAllocateMemory(
4954     VkDevice                                    device,
4955     const VkMemoryAllocateInfo*                 pAllocateInfo,
4956     const VkAllocationCallbacks*                pAllocator,
4957     VkDeviceMemory*                             pMemory);
4958
4959 VKAPI_ATTR void VKAPI_CALL vkFreeMemory(
4960     VkDevice                                    device,
4961     VkDeviceMemory                              memory,
4962     const VkAllocationCallbacks*                pAllocator);
4963
4964 VKAPI_ATTR VkResult VKAPI_CALL vkMapMemory(
4965     VkDevice                                    device,
4966     VkDeviceMemory                              memory,
4967     VkDeviceSize                                offset,
4968     VkDeviceSize                                size,
4969     VkMemoryMapFlags                            flags,
4970     void**                                      ppData);
4971
4972 VKAPI_ATTR void VKAPI_CALL vkUnmapMemory(
4973     VkDevice                                    device,
4974     VkDeviceMemory                              memory);
4975
4976 VKAPI_ATTR VkResult VKAPI_CALL vkFlushMappedMemoryRanges(
4977     VkDevice                                    device,
4978     deUint32                                    memoryRangeCount,
4979     const VkMappedMemoryRange*                  pMemoryRanges);
4980
4981 VKAPI_ATTR VkResult VKAPI_CALL vkInvalidateMappedMemoryRanges(
4982     VkDevice                                    device,
4983     deUint32                                    memoryRangeCount,
4984     const VkMappedMemoryRange*                  pMemoryRanges);
4985
4986 VKAPI_ATTR void VKAPI_CALL vkGetDeviceMemoryCommitment(
4987     VkDevice                                    device,
4988     VkDeviceMemory                              memory,
4989     VkDeviceSize*                               pCommittedMemoryInBytes);
4990
4991 VKAPI_ATTR VkResult VKAPI_CALL vkBindBufferMemory(
4992     VkDevice                                    device,
4993     VkBuffer                                    buffer,
4994     VkDeviceMemory                              memory,
4995     VkDeviceSize                                memoryOffset);
4996
4997 VKAPI_ATTR VkResult VKAPI_CALL vkBindImageMemory(
4998     VkDevice                                    device,
4999     VkImage                                     image,
5000     VkDeviceMemory                              memory,
5001     VkDeviceSize                                memoryOffset);
5002
5003 VKAPI_ATTR void VKAPI_CALL vkGetBufferMemoryRequirements(
5004     VkDevice                                    device,
5005     VkBuffer                                    buffer,
5006     VkMemoryRequirements*                       pMemoryRequirements);
5007
5008 VKAPI_ATTR void VKAPI_CALL vkGetImageMemoryRequirements(
5009     VkDevice                                    device,
5010     VkImage                                     image,
5011     VkMemoryRequirements*                       pMemoryRequirements);
5012
5013 VKAPI_ATTR void VKAPI_CALL vkGetImageSparseMemoryRequirements(
5014     VkDevice                                    device,
5015     VkImage                                     image,
5016     deUint32*                                   pSparseMemoryRequirementCount,
5017     VkSparseImageMemoryRequirements*            pSparseMemoryRequirements);
5018
5019 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceSparseImageFormatProperties(
5020     VkPhysicalDevice                            physicalDevice,
5021     VkFormat                                    format,
5022     VkImageType                                 type,
5023     VkSampleCountFlagBits                       samples,
5024     VkImageUsageFlags                           usage,
5025     VkImageTiling                               tiling,
5026     deUint32*                                   pPropertyCount,
5027     VkSparseImageFormatProperties*              pProperties);
5028
5029 VKAPI_ATTR VkResult VKAPI_CALL vkQueueBindSparse(
5030     VkQueue                                     queue,
5031     deUint32                                    bindInfoCount,
5032     const VkBindSparseInfo*                     pBindInfo,
5033     VkFence                                     fence);
5034
5035 VKAPI_ATTR VkResult VKAPI_CALL vkCreateFence(
5036     VkDevice                                    device,
5037     const VkFenceCreateInfo*                    pCreateInfo,
5038     const VkAllocationCallbacks*                pAllocator,
5039     VkFence*                                    pFence);
5040
5041 VKAPI_ATTR void VKAPI_CALL vkDestroyFence(
5042     VkDevice                                    device,
5043     VkFence                                     fence,
5044     const VkAllocationCallbacks*                pAllocator);
5045
5046 VKAPI_ATTR VkResult VKAPI_CALL vkResetFences(
5047     VkDevice                                    device,
5048     deUint32                                    fenceCount,
5049     const VkFence*                              pFences);
5050
5051 VKAPI_ATTR VkResult VKAPI_CALL vkGetFenceStatus(
5052     VkDevice                                    device,
5053     VkFence                                     fence);
5054
5055 VKAPI_ATTR VkResult VKAPI_CALL vkWaitForFences(
5056     VkDevice                                    device,
5057     deUint32                                    fenceCount,
5058     const VkFence*                              pFences,
5059     VkBool32                                    waitAll,
5060     deUint64                                    timeout);
5061
5062 VKAPI_ATTR VkResult VKAPI_CALL vkCreateSemaphore(
5063     VkDevice                                    device,
5064     const VkSemaphoreCreateInfo*                pCreateInfo,
5065     const VkAllocationCallbacks*                pAllocator,
5066     VkSemaphore*                                pSemaphore);
5067
5068 VKAPI_ATTR void VKAPI_CALL vkDestroySemaphore(
5069     VkDevice                                    device,
5070     VkSemaphore                                 semaphore,
5071     const VkAllocationCallbacks*                pAllocator);
5072
5073 VKAPI_ATTR VkResult VKAPI_CALL vkCreateEvent(
5074     VkDevice                                    device,
5075     const VkEventCreateInfo*                    pCreateInfo,
5076     const VkAllocationCallbacks*                pAllocator,
5077     VkEvent*                                    pEvent);
5078
5079 VKAPI_ATTR void VKAPI_CALL vkDestroyEvent(
5080     VkDevice                                    device,
5081     VkEvent                                     event,
5082     const VkAllocationCallbacks*                pAllocator);
5083
5084 VKAPI_ATTR VkResult VKAPI_CALL vkGetEventStatus(
5085     VkDevice                                    device,
5086     VkEvent                                     event);
5087
5088 VKAPI_ATTR VkResult VKAPI_CALL vkSetEvent(
5089     VkDevice                                    device,
5090     VkEvent                                     event);
5091
5092 VKAPI_ATTR VkResult VKAPI_CALL vkResetEvent(
5093     VkDevice                                    device,
5094     VkEvent                                     event);
5095
5096 VKAPI_ATTR VkResult VKAPI_CALL vkCreateQueryPool(
5097     VkDevice                                    device,
5098     const VkQueryPoolCreateInfo*                pCreateInfo,
5099     const VkAllocationCallbacks*                pAllocator,
5100     VkQueryPool*                                pQueryPool);
5101
5102 VKAPI_ATTR void VKAPI_CALL vkDestroyQueryPool(
5103     VkDevice                                    device,
5104     VkQueryPool                                 queryPool,
5105     const VkAllocationCallbacks*                pAllocator);
5106
5107 VKAPI_ATTR VkResult VKAPI_CALL vkGetQueryPoolResults(
5108     VkDevice                                    device,
5109     VkQueryPool                                 queryPool,
5110     deUint32                                    firstQuery,
5111     deUint32                                    queryCount,
5112     deUintptr                                      dataSize,
5113     void*                                       pData,
5114     VkDeviceSize                                stride,
5115     VkQueryResultFlags                          flags);
5116
5117 VKAPI_ATTR VkResult VKAPI_CALL vkCreateBuffer(
5118     VkDevice                                    device,
5119     const VkBufferCreateInfo*                   pCreateInfo,
5120     const VkAllocationCallbacks*                pAllocator,
5121     VkBuffer*                                   pBuffer);
5122
5123 VKAPI_ATTR void VKAPI_CALL vkDestroyBuffer(
5124     VkDevice                                    device,
5125     VkBuffer                                    buffer,
5126     const VkAllocationCallbacks*                pAllocator);
5127
5128 VKAPI_ATTR VkResult VKAPI_CALL vkCreateBufferView(
5129     VkDevice                                    device,
5130     const VkBufferViewCreateInfo*               pCreateInfo,
5131     const VkAllocationCallbacks*                pAllocator,
5132     VkBufferView*                               pView);
5133
5134 VKAPI_ATTR void VKAPI_CALL vkDestroyBufferView(
5135     VkDevice                                    device,
5136     VkBufferView                                bufferView,
5137     const VkAllocationCallbacks*                pAllocator);
5138
5139 VKAPI_ATTR VkResult VKAPI_CALL vkCreateImage(
5140     VkDevice                                    device,
5141     const VkImageCreateInfo*                    pCreateInfo,
5142     const VkAllocationCallbacks*                pAllocator,
5143     VkImage*                                    pImage);
5144
5145 VKAPI_ATTR void VKAPI_CALL vkDestroyImage(
5146     VkDevice                                    device,
5147     VkImage                                     image,
5148     const VkAllocationCallbacks*                pAllocator);
5149
5150 VKAPI_ATTR void VKAPI_CALL vkGetImageSubresourceLayout(
5151     VkDevice                                    device,
5152     VkImage                                     image,
5153     const VkImageSubresource*                   pSubresource,
5154     VkSubresourceLayout*                        pLayout);
5155
5156 VKAPI_ATTR VkResult VKAPI_CALL vkCreateImageView(
5157     VkDevice                                    device,
5158     const VkImageViewCreateInfo*                pCreateInfo,
5159     const VkAllocationCallbacks*                pAllocator,
5160     VkImageView*                                pView);
5161
5162 VKAPI_ATTR void VKAPI_CALL vkDestroyImageView(
5163     VkDevice                                    device,
5164     VkImageView                                 imageView,
5165     const VkAllocationCallbacks*                pAllocator);
5166
5167 VKAPI_ATTR VkResult VKAPI_CALL vkCreateShaderModule(
5168     VkDevice                                    device,
5169     const VkShaderModuleCreateInfo*             pCreateInfo,
5170     const VkAllocationCallbacks*                pAllocator,
5171     VkShaderModule*                             pShaderModule);
5172
5173 VKAPI_ATTR void VKAPI_CALL vkDestroyShaderModule(
5174     VkDevice                                    device,
5175     VkShaderModule                              shaderModule,
5176     const VkAllocationCallbacks*                pAllocator);
5177
5178 VKAPI_ATTR VkResult VKAPI_CALL vkCreatePipelineCache(
5179     VkDevice                                    device,
5180     const VkPipelineCacheCreateInfo*            pCreateInfo,
5181     const VkAllocationCallbacks*                pAllocator,
5182     VkPipelineCache*                            pPipelineCache);
5183
5184 VKAPI_ATTR void VKAPI_CALL vkDestroyPipelineCache(
5185     VkDevice                                    device,
5186     VkPipelineCache                             pipelineCache,
5187     const VkAllocationCallbacks*                pAllocator);
5188
5189 VKAPI_ATTR VkResult VKAPI_CALL vkGetPipelineCacheData(
5190     VkDevice                                    device,
5191     VkPipelineCache                             pipelineCache,
5192     deUintptr*                                     pDataSize,
5193     void*                                       pData);
5194
5195 VKAPI_ATTR VkResult VKAPI_CALL vkMergePipelineCaches(
5196     VkDevice                                    device,
5197     VkPipelineCache                             dstCache,
5198     deUint32                                    srcCacheCount,
5199     const VkPipelineCache*                      pSrcCaches);
5200
5201 VKAPI_ATTR VkResult VKAPI_CALL vkCreateGraphicsPipelines(
5202     VkDevice                                    device,
5203     VkPipelineCache                             pipelineCache,
5204     deUint32                                    createInfoCount,
5205     const VkGraphicsPipelineCreateInfo*         pCreateInfos,
5206     const VkAllocationCallbacks*                pAllocator,
5207     VkPipeline*                                 pPipelines);
5208
5209 VKAPI_ATTR VkResult VKAPI_CALL vkCreateComputePipelines(
5210     VkDevice                                    device,
5211     VkPipelineCache                             pipelineCache,
5212     deUint32                                    createInfoCount,
5213     const VkComputePipelineCreateInfo*          pCreateInfos,
5214     const VkAllocationCallbacks*                pAllocator,
5215     VkPipeline*                                 pPipelines);
5216
5217 VKAPI_ATTR void VKAPI_CALL vkDestroyPipeline(
5218     VkDevice                                    device,
5219     VkPipeline                                  pipeline,
5220     const VkAllocationCallbacks*                pAllocator);
5221
5222 VKAPI_ATTR VkResult VKAPI_CALL vkCreatePipelineLayout(
5223     VkDevice                                    device,
5224     const VkPipelineLayoutCreateInfo*           pCreateInfo,
5225     const VkAllocationCallbacks*                pAllocator,
5226     VkPipelineLayout*                           pPipelineLayout);
5227
5228 VKAPI_ATTR void VKAPI_CALL vkDestroyPipelineLayout(
5229     VkDevice                                    device,
5230     VkPipelineLayout                            pipelineLayout,
5231     const VkAllocationCallbacks*                pAllocator);
5232
5233 VKAPI_ATTR VkResult VKAPI_CALL vkCreateSampler(
5234     VkDevice                                    device,
5235     const VkSamplerCreateInfo*                  pCreateInfo,
5236     const VkAllocationCallbacks*                pAllocator,
5237     VkSampler*                                  pSampler);
5238
5239 VKAPI_ATTR void VKAPI_CALL vkDestroySampler(
5240     VkDevice                                    device,
5241     VkSampler                                   sampler,
5242     const VkAllocationCallbacks*                pAllocator);
5243
5244 VKAPI_ATTR VkResult VKAPI_CALL vkCreateDescriptorSetLayout(
5245     VkDevice                                    device,
5246     const VkDescriptorSetLayoutCreateInfo*      pCreateInfo,
5247     const VkAllocationCallbacks*                pAllocator,
5248     VkDescriptorSetLayout*                      pSetLayout);
5249
5250 VKAPI_ATTR void VKAPI_CALL vkDestroyDescriptorSetLayout(
5251     VkDevice                                    device,
5252     VkDescriptorSetLayout                       descriptorSetLayout,
5253     const VkAllocationCallbacks*                pAllocator);
5254
5255 VKAPI_ATTR VkResult VKAPI_CALL vkCreateDescriptorPool(
5256     VkDevice                                    device,
5257     const VkDescriptorPoolCreateInfo*           pCreateInfo,
5258     const VkAllocationCallbacks*                pAllocator,
5259     VkDescriptorPool*                           pDescriptorPool);
5260
5261 VKAPI_ATTR void VKAPI_CALL vkDestroyDescriptorPool(
5262     VkDevice                                    device,
5263     VkDescriptorPool                            descriptorPool,
5264     const VkAllocationCallbacks*                pAllocator);
5265
5266 VKAPI_ATTR VkResult VKAPI_CALL vkResetDescriptorPool(
5267     VkDevice                                    device,
5268     VkDescriptorPool                            descriptorPool,
5269     VkDescriptorPoolResetFlags                  flags);
5270
5271 VKAPI_ATTR VkResult VKAPI_CALL vkAllocateDescriptorSets(
5272     VkDevice                                    device,
5273     const VkDescriptorSetAllocateInfo*          pAllocateInfo,
5274     VkDescriptorSet*                            pDescriptorSets);
5275
5276 VKAPI_ATTR VkResult VKAPI_CALL vkFreeDescriptorSets(
5277     VkDevice                                    device,
5278     VkDescriptorPool                            descriptorPool,
5279     deUint32                                    descriptorSetCount,
5280     const VkDescriptorSet*                      pDescriptorSets);
5281
5282 VKAPI_ATTR void VKAPI_CALL vkUpdateDescriptorSets(
5283     VkDevice                                    device,
5284     deUint32                                    descriptorWriteCount,
5285     const VkWriteDescriptorSet*                 pDescriptorWrites,
5286     deUint32                                    descriptorCopyCount,
5287     const VkCopyDescriptorSet*                  pDescriptorCopies);
5288
5289 VKAPI_ATTR VkResult VKAPI_CALL vkCreateFramebuffer(
5290     VkDevice                                    device,
5291     const VkFramebufferCreateInfo*              pCreateInfo,
5292     const VkAllocationCallbacks*                pAllocator,
5293     VkFramebuffer*                              pFramebuffer);
5294
5295 VKAPI_ATTR void VKAPI_CALL vkDestroyFramebuffer(
5296     VkDevice                                    device,
5297     VkFramebuffer                               framebuffer,
5298     const VkAllocationCallbacks*                pAllocator);
5299
5300 VKAPI_ATTR VkResult VKAPI_CALL vkCreateRenderPass(
5301     VkDevice                                    device,
5302     const VkRenderPassCreateInfo*               pCreateInfo,
5303     const VkAllocationCallbacks*                pAllocator,
5304     VkRenderPass*                               pRenderPass);
5305
5306 VKAPI_ATTR void VKAPI_CALL vkDestroyRenderPass(
5307     VkDevice                                    device,
5308     VkRenderPass                                renderPass,
5309     const VkAllocationCallbacks*                pAllocator);
5310
5311 VKAPI_ATTR void VKAPI_CALL vkGetRenderAreaGranularity(
5312     VkDevice                                    device,
5313     VkRenderPass                                renderPass,
5314     VkExtent2D*                                 pGranularity);
5315
5316 VKAPI_ATTR VkResult VKAPI_CALL vkCreateCommandPool(
5317     VkDevice                                    device,
5318     const VkCommandPoolCreateInfo*              pCreateInfo,
5319     const VkAllocationCallbacks*                pAllocator,
5320     VkCommandPool*                              pCommandPool);
5321
5322 VKAPI_ATTR void VKAPI_CALL vkDestroyCommandPool(
5323     VkDevice                                    device,
5324     VkCommandPool                               commandPool,
5325     const VkAllocationCallbacks*                pAllocator);
5326
5327 VKAPI_ATTR VkResult VKAPI_CALL vkResetCommandPool(
5328     VkDevice                                    device,
5329     VkCommandPool                               commandPool,
5330     VkCommandPoolResetFlags                     flags);
5331
5332 VKAPI_ATTR VkResult VKAPI_CALL vkAllocateCommandBuffers(
5333     VkDevice                                    device,
5334     const VkCommandBufferAllocateInfo*          pAllocateInfo,
5335     VkCommandBuffer*                            pCommandBuffers);
5336
5337 VKAPI_ATTR void VKAPI_CALL vkFreeCommandBuffers(
5338     VkDevice                                    device,
5339     VkCommandPool                               commandPool,
5340     deUint32                                    commandBufferCount,
5341     const VkCommandBuffer*                      pCommandBuffers);
5342
5343 VKAPI_ATTR VkResult VKAPI_CALL vkBeginCommandBuffer(
5344     VkCommandBuffer                             commandBuffer,
5345     const VkCommandBufferBeginInfo*             pBeginInfo);
5346
5347 VKAPI_ATTR VkResult VKAPI_CALL vkEndCommandBuffer(
5348     VkCommandBuffer                             commandBuffer);
5349
5350 VKAPI_ATTR VkResult VKAPI_CALL vkResetCommandBuffer(
5351     VkCommandBuffer                             commandBuffer,
5352     VkCommandBufferResetFlags                   flags);
5353
5354 VKAPI_ATTR void VKAPI_CALL vkCmdBindPipeline(
5355     VkCommandBuffer                             commandBuffer,
5356     VkPipelineBindPoint                         pipelineBindPoint,
5357     VkPipeline                                  pipeline);
5358
5359 VKAPI_ATTR void VKAPI_CALL vkCmdSetViewport(
5360     VkCommandBuffer                             commandBuffer,
5361     deUint32                                    firstViewport,
5362     deUint32                                    viewportCount,
5363     const VkViewport*                           pViewports);
5364
5365 VKAPI_ATTR void VKAPI_CALL vkCmdSetScissor(
5366     VkCommandBuffer                             commandBuffer,
5367     deUint32                                    firstScissor,
5368     deUint32                                    scissorCount,
5369     const VkRect2D*                             pScissors);
5370
5371 VKAPI_ATTR void VKAPI_CALL vkCmdSetLineWidth(
5372     VkCommandBuffer                             commandBuffer,
5373     float                                       lineWidth);
5374
5375 VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBias(
5376     VkCommandBuffer                             commandBuffer,
5377     float                                       depthBiasConstantFactor,
5378     float                                       depthBiasClamp,
5379     float                                       depthBiasSlopeFactor);
5380
5381 VKAPI_ATTR void VKAPI_CALL vkCmdSetBlendConstants(
5382     VkCommandBuffer                             commandBuffer,
5383     const float                                 blendConstants[4]);
5384
5385 VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBounds(
5386     VkCommandBuffer                             commandBuffer,
5387     float                                       minDepthBounds,
5388     float                                       maxDepthBounds);
5389
5390 VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilCompareMask(
5391     VkCommandBuffer                             commandBuffer,
5392     VkStencilFaceFlags                          faceMask,
5393     deUint32                                    compareMask);
5394
5395 VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilWriteMask(
5396     VkCommandBuffer                             commandBuffer,
5397     VkStencilFaceFlags                          faceMask,
5398     deUint32                                    writeMask);
5399
5400 VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilReference(
5401     VkCommandBuffer                             commandBuffer,
5402     VkStencilFaceFlags                          faceMask,
5403     deUint32                                    reference);
5404
5405 VKAPI_ATTR void VKAPI_CALL vkCmdBindDescriptorSets(
5406     VkCommandBuffer                             commandBuffer,
5407     VkPipelineBindPoint                         pipelineBindPoint,
5408     VkPipelineLayout                            layout,
5409     deUint32                                    firstSet,
5410     deUint32                                    descriptorSetCount,
5411     const VkDescriptorSet*                      pDescriptorSets,
5412     deUint32                                    dynamicOffsetCount,
5413     const deUint32*                             pDynamicOffsets);
5414
5415 VKAPI_ATTR void VKAPI_CALL vkCmdBindIndexBuffer(
5416     VkCommandBuffer                             commandBuffer,
5417     VkBuffer                                    buffer,
5418     VkDeviceSize                                offset,
5419     VkIndexType                                 indexType);
5420
5421 VKAPI_ATTR void VKAPI_CALL vkCmdBindVertexBuffers(
5422     VkCommandBuffer                             commandBuffer,
5423     deUint32                                    firstBinding,
5424     deUint32                                    bindingCount,
5425     const VkBuffer*                             pBuffers,
5426     const VkDeviceSize*                         pOffsets);
5427
5428 VKAPI_ATTR void VKAPI_CALL vkCmdDraw(
5429     VkCommandBuffer                             commandBuffer,
5430     deUint32                                    vertexCount,
5431     deUint32                                    instanceCount,
5432     deUint32                                    firstVertex,
5433     deUint32                                    firstInstance);
5434
5435 VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexed(
5436     VkCommandBuffer                             commandBuffer,
5437     deUint32                                    indexCount,
5438     deUint32                                    instanceCount,
5439     deUint32                                    firstIndex,
5440     deInt32                                     vertexOffset,
5441     deUint32                                    firstInstance);
5442
5443 VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirect(
5444     VkCommandBuffer                             commandBuffer,
5445     VkBuffer                                    buffer,
5446     VkDeviceSize                                offset,
5447     deUint32                                    drawCount,
5448     deUint32                                    stride);
5449
5450 VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexedIndirect(
5451     VkCommandBuffer                             commandBuffer,
5452     VkBuffer                                    buffer,
5453     VkDeviceSize                                offset,
5454     deUint32                                    drawCount,
5455     deUint32                                    stride);
5456
5457 VKAPI_ATTR void VKAPI_CALL vkCmdDispatch(
5458     VkCommandBuffer                             commandBuffer,
5459     deUint32                                    groupCountX,
5460     deUint32                                    groupCountY,
5461     deUint32                                    groupCountZ);
5462
5463 VKAPI_ATTR void VKAPI_CALL vkCmdDispatchIndirect(
5464     VkCommandBuffer                             commandBuffer,
5465     VkBuffer                                    buffer,
5466     VkDeviceSize                                offset);
5467
5468 VKAPI_ATTR void VKAPI_CALL vkCmdCopyBuffer(
5469     VkCommandBuffer                             commandBuffer,
5470     VkBuffer                                    srcBuffer,
5471     VkBuffer                                    dstBuffer,
5472     deUint32                                    regionCount,
5473     const VkBufferCopy*                         pRegions);
5474
5475 VKAPI_ATTR void VKAPI_CALL vkCmdCopyImage(
5476     VkCommandBuffer                             commandBuffer,
5477     VkImage                                     srcImage,
5478     VkImageLayout                               srcImageLayout,
5479     VkImage                                     dstImage,
5480     VkImageLayout                               dstImageLayout,
5481     deUint32                                    regionCount,
5482     const VkImageCopy*                          pRegions);
5483
5484 VKAPI_ATTR void VKAPI_CALL vkCmdBlitImage(
5485     VkCommandBuffer                             commandBuffer,
5486     VkImage                                     srcImage,
5487     VkImageLayout                               srcImageLayout,
5488     VkImage                                     dstImage,
5489     VkImageLayout                               dstImageLayout,
5490     deUint32                                    regionCount,
5491     const VkImageBlit*                          pRegions,
5492     VkFilter                                    filter);
5493
5494 VKAPI_ATTR void VKAPI_CALL vkCmdCopyBufferToImage(
5495     VkCommandBuffer                             commandBuffer,
5496     VkBuffer                                    srcBuffer,
5497     VkImage                                     dstImage,
5498     VkImageLayout                               dstImageLayout,
5499     deUint32                                    regionCount,
5500     const VkBufferImageCopy*                    pRegions);
5501
5502 VKAPI_ATTR void VKAPI_CALL vkCmdCopyImageToBuffer(
5503     VkCommandBuffer                             commandBuffer,
5504     VkImage                                     srcImage,
5505     VkImageLayout                               srcImageLayout,
5506     VkBuffer                                    dstBuffer,
5507     deUint32                                    regionCount,
5508     const VkBufferImageCopy*                    pRegions);
5509
5510 VKAPI_ATTR void VKAPI_CALL vkCmdUpdateBuffer(
5511     VkCommandBuffer                             commandBuffer,
5512     VkBuffer                                    dstBuffer,
5513     VkDeviceSize                                dstOffset,
5514     VkDeviceSize                                dataSize,
5515     const void*                                 pData);
5516
5517 VKAPI_ATTR void VKAPI_CALL vkCmdFillBuffer(
5518     VkCommandBuffer                             commandBuffer,
5519     VkBuffer                                    dstBuffer,
5520     VkDeviceSize                                dstOffset,
5521     VkDeviceSize                                size,
5522     deUint32                                    data);
5523
5524 VKAPI_ATTR void VKAPI_CALL vkCmdClearColorImage(
5525     VkCommandBuffer                             commandBuffer,
5526     VkImage                                     image,
5527     VkImageLayout                               imageLayout,
5528     const VkClearColorValue*                    pColor,
5529     deUint32                                    rangeCount,
5530     const VkImageSubresourceRange*              pRanges);
5531
5532 VKAPI_ATTR void VKAPI_CALL vkCmdClearDepthStencilImage(
5533     VkCommandBuffer                             commandBuffer,
5534     VkImage                                     image,
5535     VkImageLayout                               imageLayout,
5536     const VkClearDepthStencilValue*             pDepthStencil,
5537     deUint32                                    rangeCount,
5538     const VkImageSubresourceRange*              pRanges);
5539
5540 VKAPI_ATTR void VKAPI_CALL vkCmdClearAttachments(
5541     VkCommandBuffer                             commandBuffer,
5542     deUint32                                    attachmentCount,
5543     const VkClearAttachment*                    pAttachments,
5544     deUint32                                    rectCount,
5545     const VkClearRect*                          pRects);
5546
5547 VKAPI_ATTR void VKAPI_CALL vkCmdResolveImage(
5548     VkCommandBuffer                             commandBuffer,
5549     VkImage                                     srcImage,
5550     VkImageLayout                               srcImageLayout,
5551     VkImage                                     dstImage,
5552     VkImageLayout                               dstImageLayout,
5553     deUint32                                    regionCount,
5554     const VkImageResolve*                       pRegions);
5555
5556 VKAPI_ATTR void VKAPI_CALL vkCmdSetEvent(
5557     VkCommandBuffer                             commandBuffer,
5558     VkEvent                                     event,
5559     VkPipelineStageFlags                        stageMask);
5560
5561 VKAPI_ATTR void VKAPI_CALL vkCmdResetEvent(
5562     VkCommandBuffer                             commandBuffer,
5563     VkEvent                                     event,
5564     VkPipelineStageFlags                        stageMask);
5565
5566 VKAPI_ATTR void VKAPI_CALL vkCmdWaitEvents(
5567     VkCommandBuffer                             commandBuffer,
5568     deUint32                                    eventCount,
5569     const VkEvent*                              pEvents,
5570     VkPipelineStageFlags                        srcStageMask,
5571     VkPipelineStageFlags                        dstStageMask,
5572     deUint32                                    memoryBarrierCount,
5573     const VkMemoryBarrier*                      pMemoryBarriers,
5574     deUint32                                    bufferMemoryBarrierCount,
5575     const VkBufferMemoryBarrier*                pBufferMemoryBarriers,
5576     deUint32                                    imageMemoryBarrierCount,
5577     const VkImageMemoryBarrier*                 pImageMemoryBarriers);
5578
5579 VKAPI_ATTR void VKAPI_CALL vkCmdPipelineBarrier(
5580     VkCommandBuffer                             commandBuffer,
5581     VkPipelineStageFlags                        srcStageMask,
5582     VkPipelineStageFlags                        dstStageMask,
5583     VkDependencyFlags                           dependencyFlags,
5584     deUint32                                    memoryBarrierCount,
5585     const VkMemoryBarrier*                      pMemoryBarriers,
5586     deUint32                                    bufferMemoryBarrierCount,
5587     const VkBufferMemoryBarrier*                pBufferMemoryBarriers,
5588     deUint32                                    imageMemoryBarrierCount,
5589     const VkImageMemoryBarrier*                 pImageMemoryBarriers);
5590
5591 VKAPI_ATTR void VKAPI_CALL vkCmdBeginQuery(
5592     VkCommandBuffer                             commandBuffer,
5593     VkQueryPool                                 queryPool,
5594     deUint32                                    query,
5595     VkQueryControlFlags                         flags);
5596
5597 VKAPI_ATTR void VKAPI_CALL vkCmdEndQuery(
5598     VkCommandBuffer                             commandBuffer,
5599     VkQueryPool                                 queryPool,
5600     deUint32                                    query);
5601
5602 VKAPI_ATTR void VKAPI_CALL vkCmdResetQueryPool(
5603     VkCommandBuffer                             commandBuffer,
5604     VkQueryPool                                 queryPool,
5605     deUint32                                    firstQuery,
5606     deUint32                                    queryCount);
5607
5608 VKAPI_ATTR void VKAPI_CALL vkCmdWriteTimestamp(
5609     VkCommandBuffer                             commandBuffer,
5610     VkPipelineStageFlagBits                     pipelineStage,
5611     VkQueryPool                                 queryPool,
5612     deUint32                                    query);
5613
5614 VKAPI_ATTR void VKAPI_CALL vkCmdCopyQueryPoolResults(
5615     VkCommandBuffer                             commandBuffer,
5616     VkQueryPool                                 queryPool,
5617     deUint32                                    firstQuery,
5618     deUint32                                    queryCount,
5619     VkBuffer                                    dstBuffer,
5620     VkDeviceSize                                dstOffset,
5621     VkDeviceSize                                stride,
5622     VkQueryResultFlags                          flags);
5623
5624 VKAPI_ATTR void VKAPI_CALL vkCmdPushConstants(
5625     VkCommandBuffer                             commandBuffer,
5626     VkPipelineLayout                            layout,
5627     VkShaderStageFlags                          stageFlags,
5628     deUint32                                    offset,
5629     deUint32                                    size,
5630     const void*                                 pValues);
5631
5632 VKAPI_ATTR void VKAPI_CALL vkCmdBeginRenderPass(
5633     VkCommandBuffer                             commandBuffer,
5634     const VkRenderPassBeginInfo*                pRenderPassBegin,
5635     VkSubpassContents                           contents);
5636
5637 VKAPI_ATTR void VKAPI_CALL vkCmdNextSubpass(
5638     VkCommandBuffer                             commandBuffer,
5639     VkSubpassContents                           contents);
5640
5641 VKAPI_ATTR void VKAPI_CALL vkCmdEndRenderPass(
5642     VkCommandBuffer                             commandBuffer);
5643
5644 VKAPI_ATTR void VKAPI_CALL vkCmdExecuteCommands(
5645     VkCommandBuffer                             commandBuffer,
5646     deUint32                                    commandBufferCount,
5647     const VkCommandBuffer*                      pCommandBuffers);
5648 #endif
5649
5650
5651 #define VK_VERSION_1_1 1
5652 // Vulkan 1.1 version number
5653 #define VK_API_VERSION_1_1 VK_MAKE_API_VERSION(0, 1, 1, 0)// Patch version should always be set to 0
5654
5655 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSamplerYcbcrConversion)
5656 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorUpdateTemplate)
5657 #define VK_MAX_DEVICE_GROUP_SIZE          32U
5658 #define VK_LUID_SIZE                      8U
5659 #define VK_QUEUE_FAMILY_EXTERNAL          (~1U)
5660
5661 typedef enum VkPointClippingBehavior {
5662     VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES = 0,
5663     VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY = 1,
5664     VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES_KHR = VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES,
5665     VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY_KHR = VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY,
5666     VK_POINT_CLIPPING_BEHAVIOR_MAX_ENUM = 0x7FFFFFFF
5667 } VkPointClippingBehavior;
5668
5669 typedef enum VkTessellationDomainOrigin {
5670     VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT = 0,
5671     VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT = 1,
5672     VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT_KHR = VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT,
5673     VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT_KHR = VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT,
5674     VK_TESSELLATION_DOMAIN_ORIGIN_MAX_ENUM = 0x7FFFFFFF
5675 } VkTessellationDomainOrigin;
5676
5677 typedef enum VkSamplerYcbcrModelConversion {
5678     VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY = 0,
5679     VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY = 1,
5680     VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709 = 2,
5681     VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601 = 3,
5682     VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020 = 4,
5683     VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY,
5684     VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY,
5685     VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709,
5686     VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601,
5687     VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020,
5688     VK_SAMPLER_YCBCR_MODEL_CONVERSION_MAX_ENUM = 0x7FFFFFFF
5689 } VkSamplerYcbcrModelConversion;
5690
5691 typedef enum VkSamplerYcbcrRange {
5692     VK_SAMPLER_YCBCR_RANGE_ITU_FULL = 0,
5693     VK_SAMPLER_YCBCR_RANGE_ITU_NARROW = 1,
5694     VK_SAMPLER_YCBCR_RANGE_ITU_FULL_KHR = VK_SAMPLER_YCBCR_RANGE_ITU_FULL,
5695     VK_SAMPLER_YCBCR_RANGE_ITU_NARROW_KHR = VK_SAMPLER_YCBCR_RANGE_ITU_NARROW,
5696     VK_SAMPLER_YCBCR_RANGE_MAX_ENUM = 0x7FFFFFFF
5697 } VkSamplerYcbcrRange;
5698
5699 typedef enum VkChromaLocation {
5700     VK_CHROMA_LOCATION_COSITED_EVEN = 0,
5701     VK_CHROMA_LOCATION_MIDPOINT = 1,
5702     VK_CHROMA_LOCATION_COSITED_EVEN_KHR = VK_CHROMA_LOCATION_COSITED_EVEN,
5703     VK_CHROMA_LOCATION_MIDPOINT_KHR = VK_CHROMA_LOCATION_MIDPOINT,
5704     VK_CHROMA_LOCATION_MAX_ENUM = 0x7FFFFFFF
5705 } VkChromaLocation;
5706
5707 typedef enum VkDescriptorUpdateTemplateType {
5708     VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET = 0,
5709     VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR = 1,
5710     VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET_KHR = VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET,
5711     VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_MAX_ENUM = 0x7FFFFFFF
5712 } VkDescriptorUpdateTemplateType;
5713
5714 typedef enum VkSubgroupFeatureFlagBits {
5715     VK_SUBGROUP_FEATURE_BASIC_BIT = 0x00000001,
5716     VK_SUBGROUP_FEATURE_VOTE_BIT = 0x00000002,
5717     VK_SUBGROUP_FEATURE_ARITHMETIC_BIT = 0x00000004,
5718     VK_SUBGROUP_FEATURE_BALLOT_BIT = 0x00000008,
5719     VK_SUBGROUP_FEATURE_SHUFFLE_BIT = 0x00000010,
5720     VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT = 0x00000020,
5721     VK_SUBGROUP_FEATURE_CLUSTERED_BIT = 0x00000040,
5722     VK_SUBGROUP_FEATURE_QUAD_BIT = 0x00000080,
5723     VK_SUBGROUP_FEATURE_PARTITIONED_BIT_NV = 0x00000100,
5724     VK_SUBGROUP_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
5725 } VkSubgroupFeatureFlagBits;
5726 typedef VkFlags VkSubgroupFeatureFlags;
5727
5728 typedef enum VkPeerMemoryFeatureFlagBits {
5729     VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT = 0x00000001,
5730     VK_PEER_MEMORY_FEATURE_COPY_DST_BIT = 0x00000002,
5731     VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT = 0x00000004,
5732     VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT = 0x00000008,
5733     VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT_KHR = VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT,
5734     VK_PEER_MEMORY_FEATURE_COPY_DST_BIT_KHR = VK_PEER_MEMORY_FEATURE_COPY_DST_BIT,
5735     VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT_KHR = VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT,
5736     VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT_KHR = VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT,
5737     VK_PEER_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
5738 } VkPeerMemoryFeatureFlagBits;
5739 typedef VkFlags VkPeerMemoryFeatureFlags;
5740
5741 typedef enum VkMemoryAllocateFlagBits {
5742     VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT = 0x00000001,
5743     VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT = 0x00000002,
5744     VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT = 0x00000004,
5745     VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT_KHR = VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT,
5746     VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT_KHR = VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT,
5747     VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR = VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT,
5748     VK_MEMORY_ALLOCATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
5749 } VkMemoryAllocateFlagBits;
5750 typedef VkFlags VkMemoryAllocateFlags;
5751 typedef VkFlags VkCommandPoolTrimFlags;
5752 typedef VkFlags VkDescriptorUpdateTemplateCreateFlags;
5753
5754 typedef enum VkExternalMemoryHandleTypeFlagBits {
5755     VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT = 0x00000001,
5756     VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT = 0x00000002,
5757     VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 0x00000004,
5758     VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT = 0x00000008,
5759     VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT = 0x00000010,
5760     VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT = 0x00000020,
5761     VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT = 0x00000040,
5762     VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT = 0x00000200,
5763     VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID = 0x00000400,
5764     VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT = 0x00000080,
5765     VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT = 0x00000100,
5766     VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA = 0x00000800,
5767     VK_EXTERNAL_MEMORY_HANDLE_TYPE_RDMA_ADDRESS_BIT_NV = 0x00001000,
5768     VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT,
5769     VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT,
5770     VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,
5771     VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT,
5772     VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT,
5773     VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT,
5774     VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT,
5775     VK_EXTERNAL_MEMORY_HANDLE_TYPE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
5776 } VkExternalMemoryHandleTypeFlagBits;
5777 typedef VkFlags VkExternalMemoryHandleTypeFlags;
5778
5779 typedef enum VkExternalMemoryFeatureFlagBits {
5780     VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT = 0x00000001,
5781     VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT = 0x00000002,
5782     VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT = 0x00000004,
5783     VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_KHR = VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT,
5784     VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_KHR = VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT,
5785     VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_KHR = VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT,
5786     VK_EXTERNAL_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
5787 } VkExternalMemoryFeatureFlagBits;
5788 typedef VkFlags VkExternalMemoryFeatureFlags;
5789
5790 typedef enum VkExternalFenceHandleTypeFlagBits {
5791     VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT = 0x00000001,
5792     VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT = 0x00000002,
5793     VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 0x00000004,
5794     VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT = 0x00000008,
5795     VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT,
5796     VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT,
5797     VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,
5798     VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT_KHR = VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT,
5799     VK_EXTERNAL_FENCE_HANDLE_TYPE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
5800 } VkExternalFenceHandleTypeFlagBits;
5801 typedef VkFlags VkExternalFenceHandleTypeFlags;
5802
5803 typedef enum VkExternalFenceFeatureFlagBits {
5804     VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT = 0x00000001,
5805     VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT = 0x00000002,
5806     VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT_KHR = VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT,
5807     VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT_KHR = VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT,
5808     VK_EXTERNAL_FENCE_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
5809 } VkExternalFenceFeatureFlagBits;
5810 typedef VkFlags VkExternalFenceFeatureFlags;
5811
5812 typedef enum VkFenceImportFlagBits {
5813     VK_FENCE_IMPORT_TEMPORARY_BIT = 0x00000001,
5814     VK_FENCE_IMPORT_TEMPORARY_BIT_KHR = VK_FENCE_IMPORT_TEMPORARY_BIT,
5815     VK_FENCE_IMPORT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
5816 } VkFenceImportFlagBits;
5817 typedef VkFlags VkFenceImportFlags;
5818
5819 typedef enum VkSemaphoreImportFlagBits {
5820     VK_SEMAPHORE_IMPORT_TEMPORARY_BIT = 0x00000001,
5821     VK_SEMAPHORE_IMPORT_TEMPORARY_BIT_KHR = VK_SEMAPHORE_IMPORT_TEMPORARY_BIT,
5822     VK_SEMAPHORE_IMPORT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
5823 } VkSemaphoreImportFlagBits;
5824 typedef VkFlags VkSemaphoreImportFlags;
5825
5826 typedef enum VkExternalSemaphoreHandleTypeFlagBits {
5827     VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT = 0x00000001,
5828     VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT = 0x00000002,
5829     VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 0x00000004,
5830     VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT = 0x00000008,
5831     VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT = 0x00000010,
5832     VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_ZIRCON_EVENT_BIT_FUCHSIA = 0x00000080,
5833     VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D11_FENCE_BIT = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT,
5834     VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT,
5835     VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT,
5836     VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,
5837     VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT_KHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT,
5838     VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT_KHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT,
5839     VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
5840 } VkExternalSemaphoreHandleTypeFlagBits;
5841 typedef VkFlags VkExternalSemaphoreHandleTypeFlags;
5842
5843 typedef enum VkExternalSemaphoreFeatureFlagBits {
5844     VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT = 0x00000001,
5845     VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT = 0x00000002,
5846     VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT_KHR = VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT,
5847     VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT_KHR = VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT,
5848     VK_EXTERNAL_SEMAPHORE_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
5849 } VkExternalSemaphoreFeatureFlagBits;
5850 typedef VkFlags VkExternalSemaphoreFeatureFlags;
5851 typedef struct VkPhysicalDeviceSubgroupProperties {
5852     VkStructureType           sType;
5853     void*                     pNext;
5854     deUint32                  subgroupSize;
5855     VkShaderStageFlags        supportedStages;
5856     VkSubgroupFeatureFlags    supportedOperations;
5857     VkBool32                  quadOperationsInAllStages;
5858 } VkPhysicalDeviceSubgroupProperties;
5859
5860 typedef struct VkBindBufferMemoryInfo {
5861     VkStructureType    sType;
5862     const void*        pNext;
5863     VkBuffer           buffer;
5864     VkDeviceMemory     memory;
5865     VkDeviceSize       memoryOffset;
5866 } VkBindBufferMemoryInfo;
5867
5868 typedef struct VkBindImageMemoryInfo {
5869     VkStructureType    sType;
5870     const void*        pNext;
5871     VkImage            image;
5872     VkDeviceMemory     memory;
5873     VkDeviceSize       memoryOffset;
5874 } VkBindImageMemoryInfo;
5875
5876 typedef struct VkPhysicalDevice16BitStorageFeatures {
5877     VkStructureType    sType;
5878     void*              pNext;
5879     VkBool32           storageBuffer16BitAccess;
5880     VkBool32           uniformAndStorageBuffer16BitAccess;
5881     VkBool32           storagePushConstant16;
5882     VkBool32           storageInputOutput16;
5883 } VkPhysicalDevice16BitStorageFeatures;
5884
5885 typedef struct VkMemoryDedicatedRequirements {
5886     VkStructureType    sType;
5887     void*              pNext;
5888     VkBool32           prefersDedicatedAllocation;
5889     VkBool32           requiresDedicatedAllocation;
5890 } VkMemoryDedicatedRequirements;
5891
5892 typedef struct VkMemoryDedicatedAllocateInfo {
5893     VkStructureType    sType;
5894     const void*        pNext;
5895     VkImage            image;
5896     VkBuffer           buffer;
5897 } VkMemoryDedicatedAllocateInfo;
5898
5899 typedef struct VkMemoryAllocateFlagsInfo {
5900     VkStructureType          sType;
5901     const void*              pNext;
5902     VkMemoryAllocateFlags    flags;
5903     deUint32                 deviceMask;
5904 } VkMemoryAllocateFlagsInfo;
5905
5906 typedef struct VkDeviceGroupRenderPassBeginInfo {
5907     VkStructureType    sType;
5908     const void*        pNext;
5909     deUint32           deviceMask;
5910     deUint32           deviceRenderAreaCount;
5911     const VkRect2D*    pDeviceRenderAreas;
5912 } VkDeviceGroupRenderPassBeginInfo;
5913
5914 typedef struct VkDeviceGroupCommandBufferBeginInfo {
5915     VkStructureType    sType;
5916     const void*        pNext;
5917     deUint32           deviceMask;
5918 } VkDeviceGroupCommandBufferBeginInfo;
5919
5920 typedef struct VkDeviceGroupSubmitInfo {
5921     VkStructureType    sType;
5922     const void*        pNext;
5923     deUint32           waitSemaphoreCount;
5924     const deUint32*    pWaitSemaphoreDeviceIndices;
5925     deUint32           commandBufferCount;
5926     const deUint32*    pCommandBufferDeviceMasks;
5927     deUint32           signalSemaphoreCount;
5928     const deUint32*    pSignalSemaphoreDeviceIndices;
5929 } VkDeviceGroupSubmitInfo;
5930
5931 typedef struct VkDeviceGroupBindSparseInfo {
5932     VkStructureType    sType;
5933     const void*        pNext;
5934     deUint32           resourceDeviceIndex;
5935     deUint32           memoryDeviceIndex;
5936 } VkDeviceGroupBindSparseInfo;
5937
5938 typedef struct VkBindBufferMemoryDeviceGroupInfo {
5939     VkStructureType    sType;
5940     const void*        pNext;
5941     deUint32           deviceIndexCount;
5942     const deUint32*    pDeviceIndices;
5943 } VkBindBufferMemoryDeviceGroupInfo;
5944
5945 typedef struct VkBindImageMemoryDeviceGroupInfo {
5946     VkStructureType    sType;
5947     const void*        pNext;
5948     deUint32           deviceIndexCount;
5949     const deUint32*    pDeviceIndices;
5950     deUint32           splitInstanceBindRegionCount;
5951     const VkRect2D*    pSplitInstanceBindRegions;
5952 } VkBindImageMemoryDeviceGroupInfo;
5953
5954 typedef struct VkPhysicalDeviceGroupProperties {
5955     VkStructureType     sType;
5956     void*               pNext;
5957     deUint32            physicalDeviceCount;
5958     VkPhysicalDevice    physicalDevices[VK_MAX_DEVICE_GROUP_SIZE];
5959     VkBool32            subsetAllocation;
5960 } VkPhysicalDeviceGroupProperties;
5961
5962 typedef struct VkDeviceGroupDeviceCreateInfo {
5963     VkStructureType            sType;
5964     const void*                pNext;
5965     deUint32                   physicalDeviceCount;
5966     const VkPhysicalDevice*    pPhysicalDevices;
5967 } VkDeviceGroupDeviceCreateInfo;
5968
5969 typedef struct VkBufferMemoryRequirementsInfo2 {
5970     VkStructureType    sType;
5971     const void*        pNext;
5972     VkBuffer           buffer;
5973 } VkBufferMemoryRequirementsInfo2;
5974
5975 typedef struct VkImageMemoryRequirementsInfo2 {
5976     VkStructureType    sType;
5977     const void*        pNext;
5978     VkImage            image;
5979 } VkImageMemoryRequirementsInfo2;
5980
5981 typedef struct VkImageSparseMemoryRequirementsInfo2 {
5982     VkStructureType    sType;
5983     const void*        pNext;
5984     VkImage            image;
5985 } VkImageSparseMemoryRequirementsInfo2;
5986
5987 typedef struct VkMemoryRequirements2 {
5988     VkStructureType         sType;
5989     void*                   pNext;
5990     VkMemoryRequirements    memoryRequirements;
5991 } VkMemoryRequirements2;
5992
5993 typedef struct VkSparseImageMemoryRequirements2 {
5994     VkStructureType                    sType;
5995     void*                              pNext;
5996     VkSparseImageMemoryRequirements    memoryRequirements;
5997 } VkSparseImageMemoryRequirements2;
5998
5999 typedef struct VkPhysicalDeviceFeatures2 {
6000     VkStructureType             sType;
6001     void*                       pNext;
6002     VkPhysicalDeviceFeatures    features;
6003 } VkPhysicalDeviceFeatures2;
6004
6005 typedef struct VkPhysicalDeviceProperties2 {
6006     VkStructureType               sType;
6007     void*                         pNext;
6008     VkPhysicalDeviceProperties    properties;
6009 } VkPhysicalDeviceProperties2;
6010
6011 typedef struct VkFormatProperties2 {
6012     VkStructureType       sType;
6013     void*                 pNext;
6014     VkFormatProperties    formatProperties;
6015 } VkFormatProperties2;
6016
6017 typedef struct VkImageFormatProperties2 {
6018     VkStructureType            sType;
6019     void*                      pNext;
6020     VkImageFormatProperties    imageFormatProperties;
6021 } VkImageFormatProperties2;
6022
6023 typedef struct VkPhysicalDeviceImageFormatInfo2 {
6024     VkStructureType       sType;
6025     const void*           pNext;
6026     VkFormat              format;
6027     VkImageType           type;
6028     VkImageTiling         tiling;
6029     VkImageUsageFlags     usage;
6030     VkImageCreateFlags    flags;
6031 } VkPhysicalDeviceImageFormatInfo2;
6032
6033 typedef struct VkQueueFamilyProperties2 {
6034     VkStructureType            sType;
6035     void*                      pNext;
6036     VkQueueFamilyProperties    queueFamilyProperties;
6037 } VkQueueFamilyProperties2;
6038
6039 typedef struct VkPhysicalDeviceMemoryProperties2 {
6040     VkStructureType                     sType;
6041     void*                               pNext;
6042     VkPhysicalDeviceMemoryProperties    memoryProperties;
6043 } VkPhysicalDeviceMemoryProperties2;
6044
6045 typedef struct VkSparseImageFormatProperties2 {
6046     VkStructureType                  sType;
6047     void*                            pNext;
6048     VkSparseImageFormatProperties    properties;
6049 } VkSparseImageFormatProperties2;
6050
6051 typedef struct VkPhysicalDeviceSparseImageFormatInfo2 {
6052     VkStructureType          sType;
6053     const void*              pNext;
6054     VkFormat                 format;
6055     VkImageType              type;
6056     VkSampleCountFlagBits    samples;
6057     VkImageUsageFlags        usage;
6058     VkImageTiling            tiling;
6059 } VkPhysicalDeviceSparseImageFormatInfo2;
6060
6061 typedef struct VkPhysicalDevicePointClippingProperties {
6062     VkStructureType            sType;
6063     void*                      pNext;
6064     VkPointClippingBehavior    pointClippingBehavior;
6065 } VkPhysicalDevicePointClippingProperties;
6066
6067 typedef struct VkInputAttachmentAspectReference {
6068     deUint32              subpass;
6069     deUint32              inputAttachmentIndex;
6070     VkImageAspectFlags    aspectMask;
6071 } VkInputAttachmentAspectReference;
6072
6073 typedef struct VkRenderPassInputAttachmentAspectCreateInfo {
6074     VkStructureType                            sType;
6075     const void*                                pNext;
6076     deUint32                                   aspectReferenceCount;
6077     const VkInputAttachmentAspectReference*    pAspectReferences;
6078 } VkRenderPassInputAttachmentAspectCreateInfo;
6079
6080 typedef struct VkImageViewUsageCreateInfo {
6081     VkStructureType      sType;
6082     const void*          pNext;
6083     VkImageUsageFlags    usage;
6084 } VkImageViewUsageCreateInfo;
6085
6086 typedef struct VkPipelineTessellationDomainOriginStateCreateInfo {
6087     VkStructureType               sType;
6088     const void*                   pNext;
6089     VkTessellationDomainOrigin    domainOrigin;
6090 } VkPipelineTessellationDomainOriginStateCreateInfo;
6091
6092 typedef struct VkRenderPassMultiviewCreateInfo {
6093     VkStructureType    sType;
6094     const void*        pNext;
6095     deUint32           subpassCount;
6096     const deUint32*    pViewMasks;
6097     deUint32           dependencyCount;
6098     const deInt32*     pViewOffsets;
6099     deUint32           correlationMaskCount;
6100     const deUint32*    pCorrelationMasks;
6101 } VkRenderPassMultiviewCreateInfo;
6102
6103 typedef struct VkPhysicalDeviceMultiviewFeatures {
6104     VkStructureType    sType;
6105     void*              pNext;
6106     VkBool32           multiview;
6107     VkBool32           multiviewGeometryShader;
6108     VkBool32           multiviewTessellationShader;
6109 } VkPhysicalDeviceMultiviewFeatures;
6110
6111 typedef struct VkPhysicalDeviceMultiviewProperties {
6112     VkStructureType    sType;
6113     void*              pNext;
6114     deUint32           maxMultiviewViewCount;
6115     deUint32           maxMultiviewInstanceIndex;
6116 } VkPhysicalDeviceMultiviewProperties;
6117
6118 typedef struct VkPhysicalDeviceVariablePointersFeatures {
6119     VkStructureType    sType;
6120     void*              pNext;
6121     VkBool32           variablePointersStorageBuffer;
6122     VkBool32           variablePointers;
6123 } VkPhysicalDeviceVariablePointersFeatures;
6124
6125 typedef VkPhysicalDeviceVariablePointersFeatures VkPhysicalDeviceVariablePointerFeatures;
6126
6127 typedef struct VkPhysicalDeviceProtectedMemoryFeatures {
6128     VkStructureType    sType;
6129     void*              pNext;
6130     VkBool32           protectedMemory;
6131 } VkPhysicalDeviceProtectedMemoryFeatures;
6132
6133 typedef struct VkPhysicalDeviceProtectedMemoryProperties {
6134     VkStructureType    sType;
6135     void*              pNext;
6136     VkBool32           protectedNoFault;
6137 } VkPhysicalDeviceProtectedMemoryProperties;
6138
6139 typedef struct VkDeviceQueueInfo2 {
6140     VkStructureType             sType;
6141     const void*                 pNext;
6142     VkDeviceQueueCreateFlags    flags;
6143     deUint32                    queueFamilyIndex;
6144     deUint32                    queueIndex;
6145 } VkDeviceQueueInfo2;
6146
6147 typedef struct VkProtectedSubmitInfo {
6148     VkStructureType    sType;
6149     const void*        pNext;
6150     VkBool32           protectedSubmit;
6151 } VkProtectedSubmitInfo;
6152
6153 typedef struct VkSamplerYcbcrConversionCreateInfo {
6154     VkStructureType                  sType;
6155     const void*                      pNext;
6156     VkFormat                         format;
6157     VkSamplerYcbcrModelConversion    ycbcrModel;
6158     VkSamplerYcbcrRange              ycbcrRange;
6159     VkComponentMapping               components;
6160     VkChromaLocation                 xChromaOffset;
6161     VkChromaLocation                 yChromaOffset;
6162     VkFilter                         chromaFilter;
6163     VkBool32                         forceExplicitReconstruction;
6164 } VkSamplerYcbcrConversionCreateInfo;
6165
6166 typedef struct VkSamplerYcbcrConversionInfo {
6167     VkStructureType             sType;
6168     const void*                 pNext;
6169     VkSamplerYcbcrConversion    conversion;
6170 } VkSamplerYcbcrConversionInfo;
6171
6172 typedef struct VkBindImagePlaneMemoryInfo {
6173     VkStructureType          sType;
6174     const void*              pNext;
6175     VkImageAspectFlagBits    planeAspect;
6176 } VkBindImagePlaneMemoryInfo;
6177
6178 typedef struct VkImagePlaneMemoryRequirementsInfo {
6179     VkStructureType          sType;
6180     const void*              pNext;
6181     VkImageAspectFlagBits    planeAspect;
6182 } VkImagePlaneMemoryRequirementsInfo;
6183
6184 typedef struct VkPhysicalDeviceSamplerYcbcrConversionFeatures {
6185     VkStructureType    sType;
6186     void*              pNext;
6187     VkBool32           samplerYcbcrConversion;
6188 } VkPhysicalDeviceSamplerYcbcrConversionFeatures;
6189
6190 typedef struct VkSamplerYcbcrConversionImageFormatProperties {
6191     VkStructureType    sType;
6192     void*              pNext;
6193     deUint32           combinedImageSamplerDescriptorCount;
6194 } VkSamplerYcbcrConversionImageFormatProperties;
6195
6196 typedef struct VkDescriptorUpdateTemplateEntry {
6197     deUint32            dstBinding;
6198     deUint32            dstArrayElement;
6199     deUint32            descriptorCount;
6200     VkDescriptorType    descriptorType;
6201     deUintptr              offset;
6202     deUintptr              stride;
6203 } VkDescriptorUpdateTemplateEntry;
6204
6205 typedef struct VkDescriptorUpdateTemplateCreateInfo {
6206     VkStructureType                           sType;
6207     const void*                               pNext;
6208     VkDescriptorUpdateTemplateCreateFlags     flags;
6209     deUint32                                  descriptorUpdateEntryCount;
6210     const VkDescriptorUpdateTemplateEntry*    pDescriptorUpdateEntries;
6211     VkDescriptorUpdateTemplateType            templateType;
6212     VkDescriptorSetLayout                     descriptorSetLayout;
6213     VkPipelineBindPoint                       pipelineBindPoint;
6214     VkPipelineLayout                          pipelineLayout;
6215     deUint32                                  set;
6216 } VkDescriptorUpdateTemplateCreateInfo;
6217
6218 typedef struct VkExternalMemoryProperties {
6219     VkExternalMemoryFeatureFlags       externalMemoryFeatures;
6220     VkExternalMemoryHandleTypeFlags    exportFromImportedHandleTypes;
6221     VkExternalMemoryHandleTypeFlags    compatibleHandleTypes;
6222 } VkExternalMemoryProperties;
6223
6224 typedef struct VkPhysicalDeviceExternalImageFormatInfo {
6225     VkStructureType                       sType;
6226     const void*                           pNext;
6227     VkExternalMemoryHandleTypeFlagBits    handleType;
6228 } VkPhysicalDeviceExternalImageFormatInfo;
6229
6230 typedef struct VkExternalImageFormatProperties {
6231     VkStructureType               sType;
6232     void*                         pNext;
6233     VkExternalMemoryProperties    externalMemoryProperties;
6234 } VkExternalImageFormatProperties;
6235
6236 typedef struct VkPhysicalDeviceExternalBufferInfo {
6237     VkStructureType                       sType;
6238     const void*                           pNext;
6239     VkBufferCreateFlags                   flags;
6240     VkBufferUsageFlags                    usage;
6241     VkExternalMemoryHandleTypeFlagBits    handleType;
6242 } VkPhysicalDeviceExternalBufferInfo;
6243
6244 typedef struct VkExternalBufferProperties {
6245     VkStructureType               sType;
6246     void*                         pNext;
6247     VkExternalMemoryProperties    externalMemoryProperties;
6248 } VkExternalBufferProperties;
6249
6250 typedef struct VkPhysicalDeviceIDProperties {
6251     VkStructureType    sType;
6252     void*              pNext;
6253     deUint8            deviceUUID[VK_UUID_SIZE];
6254     deUint8            driverUUID[VK_UUID_SIZE];
6255     deUint8            deviceLUID[VK_LUID_SIZE];
6256     deUint32           deviceNodeMask;
6257     VkBool32           deviceLUIDValid;
6258 } VkPhysicalDeviceIDProperties;
6259
6260 typedef struct VkExternalMemoryImageCreateInfo {
6261     VkStructureType                    sType;
6262     const void*                        pNext;
6263     VkExternalMemoryHandleTypeFlags    handleTypes;
6264 } VkExternalMemoryImageCreateInfo;
6265
6266 typedef struct VkExternalMemoryBufferCreateInfo {
6267     VkStructureType                    sType;
6268     const void*                        pNext;
6269     VkExternalMemoryHandleTypeFlags    handleTypes;
6270 } VkExternalMemoryBufferCreateInfo;
6271
6272 typedef struct VkExportMemoryAllocateInfo {
6273     VkStructureType                    sType;
6274     const void*                        pNext;
6275     VkExternalMemoryHandleTypeFlags    handleTypes;
6276 } VkExportMemoryAllocateInfo;
6277
6278 typedef struct VkPhysicalDeviceExternalFenceInfo {
6279     VkStructureType                      sType;
6280     const void*                          pNext;
6281     VkExternalFenceHandleTypeFlagBits    handleType;
6282 } VkPhysicalDeviceExternalFenceInfo;
6283
6284 typedef struct VkExternalFenceProperties {
6285     VkStructureType                   sType;
6286     void*                             pNext;
6287     VkExternalFenceHandleTypeFlags    exportFromImportedHandleTypes;
6288     VkExternalFenceHandleTypeFlags    compatibleHandleTypes;
6289     VkExternalFenceFeatureFlags       externalFenceFeatures;
6290 } VkExternalFenceProperties;
6291
6292 typedef struct VkExportFenceCreateInfo {
6293     VkStructureType                   sType;
6294     const void*                       pNext;
6295     VkExternalFenceHandleTypeFlags    handleTypes;
6296 } VkExportFenceCreateInfo;
6297
6298 typedef struct VkExportSemaphoreCreateInfo {
6299     VkStructureType                       sType;
6300     const void*                           pNext;
6301     VkExternalSemaphoreHandleTypeFlags    handleTypes;
6302 } VkExportSemaphoreCreateInfo;
6303
6304 typedef struct VkPhysicalDeviceExternalSemaphoreInfo {
6305     VkStructureType                          sType;
6306     const void*                              pNext;
6307     VkExternalSemaphoreHandleTypeFlagBits    handleType;
6308 } VkPhysicalDeviceExternalSemaphoreInfo;
6309
6310 typedef struct VkExternalSemaphoreProperties {
6311     VkStructureType                       sType;
6312     void*                                 pNext;
6313     VkExternalSemaphoreHandleTypeFlags    exportFromImportedHandleTypes;
6314     VkExternalSemaphoreHandleTypeFlags    compatibleHandleTypes;
6315     VkExternalSemaphoreFeatureFlags       externalSemaphoreFeatures;
6316 } VkExternalSemaphoreProperties;
6317
6318 typedef struct VkPhysicalDeviceMaintenance3Properties {
6319     VkStructureType    sType;
6320     void*              pNext;
6321     deUint32           maxPerSetDescriptors;
6322     VkDeviceSize       maxMemoryAllocationSize;
6323 } VkPhysicalDeviceMaintenance3Properties;
6324
6325 typedef struct VkDescriptorSetLayoutSupport {
6326     VkStructureType    sType;
6327     void*              pNext;
6328     VkBool32           supported;
6329 } VkDescriptorSetLayoutSupport;
6330
6331 typedef struct VkPhysicalDeviceShaderDrawParametersFeatures {
6332     VkStructureType    sType;
6333     void*              pNext;
6334     VkBool32           shaderDrawParameters;
6335 } VkPhysicalDeviceShaderDrawParametersFeatures;
6336
6337 typedef VkPhysicalDeviceShaderDrawParametersFeatures VkPhysicalDeviceShaderDrawParameterFeatures;
6338
6339 typedef VkResult (VKAPI_PTR *PFN_vkEnumerateInstanceVersion)(deUint32* pApiVersion);
6340 typedef VkResult (VKAPI_PTR *PFN_vkBindBufferMemory2)(VkDevice device, deUint32 bindInfoCount, const VkBindBufferMemoryInfo* pBindInfos);
6341 typedef VkResult (VKAPI_PTR *PFN_vkBindImageMemory2)(VkDevice device, deUint32 bindInfoCount, const VkBindImageMemoryInfo* pBindInfos);
6342 typedef void (VKAPI_PTR *PFN_vkGetDeviceGroupPeerMemoryFeatures)(VkDevice device, deUint32 heapIndex, deUint32 localDeviceIndex, deUint32 remoteDeviceIndex, VkPeerMemoryFeatureFlags* pPeerMemoryFeatures);
6343 typedef void (VKAPI_PTR *PFN_vkCmdSetDeviceMask)(VkCommandBuffer commandBuffer, deUint32 deviceMask);
6344 typedef void (VKAPI_PTR *PFN_vkCmdDispatchBase)(VkCommandBuffer commandBuffer, deUint32 baseGroupX, deUint32 baseGroupY, deUint32 baseGroupZ, deUint32 groupCountX, deUint32 groupCountY, deUint32 groupCountZ);
6345 typedef VkResult (VKAPI_PTR *PFN_vkEnumeratePhysicalDeviceGroups)(VkInstance instance, deUint32* pPhysicalDeviceGroupCount, VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties);
6346 typedef void (VKAPI_PTR *PFN_vkGetImageMemoryRequirements2)(VkDevice device, const VkImageMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements);
6347 typedef void (VKAPI_PTR *PFN_vkGetBufferMemoryRequirements2)(VkDevice device, const VkBufferMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements);
6348 typedef void (VKAPI_PTR *PFN_vkGetImageSparseMemoryRequirements2)(VkDevice device, const VkImageSparseMemoryRequirementsInfo2* pInfo, deUint32* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements);
6349 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFeatures2)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures2* pFeatures);
6350 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceProperties2)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties2* pProperties);
6351 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFormatProperties2)(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties2* pFormatProperties);
6352 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceImageFormatProperties2)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo, VkImageFormatProperties2* pImageFormatProperties);
6353 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceQueueFamilyProperties2)(VkPhysicalDevice physicalDevice, deUint32* pQueueFamilyPropertyCount, VkQueueFamilyProperties2* pQueueFamilyProperties);
6354 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceMemoryProperties2)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties2* pMemoryProperties);
6355 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceSparseImageFormatProperties2)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo, deUint32* pPropertyCount, VkSparseImageFormatProperties2* pProperties);
6356 typedef void (VKAPI_PTR *PFN_vkTrimCommandPool)(VkDevice device, VkCommandPool commandPool, VkCommandPoolTrimFlags flags);
6357 typedef void (VKAPI_PTR *PFN_vkGetDeviceQueue2)(VkDevice device, const VkDeviceQueueInfo2* pQueueInfo, VkQueue* pQueue);
6358 typedef VkResult (VKAPI_PTR *PFN_vkCreateSamplerYcbcrConversion)(VkDevice device, const VkSamplerYcbcrConversionCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSamplerYcbcrConversion* pYcbcrConversion);
6359 typedef void (VKAPI_PTR *PFN_vkDestroySamplerYcbcrConversion)(VkDevice device, VkSamplerYcbcrConversion ycbcrConversion, const VkAllocationCallbacks* pAllocator);
6360 typedef VkResult (VKAPI_PTR *PFN_vkCreateDescriptorUpdateTemplate)(VkDevice device, const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate);
6361 typedef void (VKAPI_PTR *PFN_vkDestroyDescriptorUpdateTemplate)(VkDevice device, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const VkAllocationCallbacks* pAllocator);
6362 typedef void (VKAPI_PTR *PFN_vkUpdateDescriptorSetWithTemplate)(VkDevice device, VkDescriptorSet descriptorSet, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const void* pData);
6363 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalBufferProperties)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo, VkExternalBufferProperties* pExternalBufferProperties);
6364 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalFenceProperties)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo, VkExternalFenceProperties* pExternalFenceProperties);
6365 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalSemaphoreProperties)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, VkExternalSemaphoreProperties* pExternalSemaphoreProperties);
6366 typedef void (VKAPI_PTR *PFN_vkGetDescriptorSetLayoutSupport)(VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, VkDescriptorSetLayoutSupport* pSupport);
6367
6368 #ifndef VK_NO_PROTOTYPES
6369 VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateInstanceVersion(
6370     deUint32*                                   pApiVersion);
6371
6372 VKAPI_ATTR VkResult VKAPI_CALL vkBindBufferMemory2(
6373     VkDevice                                    device,
6374     deUint32                                    bindInfoCount,
6375     const VkBindBufferMemoryInfo*               pBindInfos);
6376
6377 VKAPI_ATTR VkResult VKAPI_CALL vkBindImageMemory2(
6378     VkDevice                                    device,
6379     deUint32                                    bindInfoCount,
6380     const VkBindImageMemoryInfo*                pBindInfos);
6381
6382 VKAPI_ATTR void VKAPI_CALL vkGetDeviceGroupPeerMemoryFeatures(
6383     VkDevice                                    device,
6384     deUint32                                    heapIndex,
6385     deUint32                                    localDeviceIndex,
6386     deUint32                                    remoteDeviceIndex,
6387     VkPeerMemoryFeatureFlags*                   pPeerMemoryFeatures);
6388
6389 VKAPI_ATTR void VKAPI_CALL vkCmdSetDeviceMask(
6390     VkCommandBuffer                             commandBuffer,
6391     deUint32                                    deviceMask);
6392
6393 VKAPI_ATTR void VKAPI_CALL vkCmdDispatchBase(
6394     VkCommandBuffer                             commandBuffer,
6395     deUint32                                    baseGroupX,
6396     deUint32                                    baseGroupY,
6397     deUint32                                    baseGroupZ,
6398     deUint32                                    groupCountX,
6399     deUint32                                    groupCountY,
6400     deUint32                                    groupCountZ);
6401
6402 VKAPI_ATTR VkResult VKAPI_CALL vkEnumeratePhysicalDeviceGroups(
6403     VkInstance                                  instance,
6404     deUint32*                                   pPhysicalDeviceGroupCount,
6405     VkPhysicalDeviceGroupProperties*            pPhysicalDeviceGroupProperties);
6406
6407 VKAPI_ATTR void VKAPI_CALL vkGetImageMemoryRequirements2(
6408     VkDevice                                    device,
6409     const VkImageMemoryRequirementsInfo2*       pInfo,
6410     VkMemoryRequirements2*                      pMemoryRequirements);
6411
6412 VKAPI_ATTR void VKAPI_CALL vkGetBufferMemoryRequirements2(
6413     VkDevice                                    device,
6414     const VkBufferMemoryRequirementsInfo2*      pInfo,
6415     VkMemoryRequirements2*                      pMemoryRequirements);
6416
6417 VKAPI_ATTR void VKAPI_CALL vkGetImageSparseMemoryRequirements2(
6418     VkDevice                                    device,
6419     const VkImageSparseMemoryRequirementsInfo2* pInfo,
6420     deUint32*                                   pSparseMemoryRequirementCount,
6421     VkSparseImageMemoryRequirements2*           pSparseMemoryRequirements);
6422
6423 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFeatures2(
6424     VkPhysicalDevice                            physicalDevice,
6425     VkPhysicalDeviceFeatures2*                  pFeatures);
6426
6427 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceProperties2(
6428     VkPhysicalDevice                            physicalDevice,
6429     VkPhysicalDeviceProperties2*                pProperties);
6430
6431 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFormatProperties2(
6432     VkPhysicalDevice                            physicalDevice,
6433     VkFormat                                    format,
6434     VkFormatProperties2*                        pFormatProperties);
6435
6436 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceImageFormatProperties2(
6437     VkPhysicalDevice                            physicalDevice,
6438     const VkPhysicalDeviceImageFormatInfo2*     pImageFormatInfo,
6439     VkImageFormatProperties2*                   pImageFormatProperties);
6440
6441 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceQueueFamilyProperties2(
6442     VkPhysicalDevice                            physicalDevice,
6443     deUint32*                                   pQueueFamilyPropertyCount,
6444     VkQueueFamilyProperties2*                   pQueueFamilyProperties);
6445
6446 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceMemoryProperties2(
6447     VkPhysicalDevice                            physicalDevice,
6448     VkPhysicalDeviceMemoryProperties2*          pMemoryProperties);
6449
6450 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceSparseImageFormatProperties2(
6451     VkPhysicalDevice                            physicalDevice,
6452     const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo,
6453     deUint32*                                   pPropertyCount,
6454     VkSparseImageFormatProperties2*             pProperties);
6455
6456 VKAPI_ATTR void VKAPI_CALL vkTrimCommandPool(
6457     VkDevice                                    device,
6458     VkCommandPool                               commandPool,
6459     VkCommandPoolTrimFlags                      flags);
6460
6461 VKAPI_ATTR void VKAPI_CALL vkGetDeviceQueue2(
6462     VkDevice                                    device,
6463     const VkDeviceQueueInfo2*                   pQueueInfo,
6464     VkQueue*                                    pQueue);
6465
6466 VKAPI_ATTR VkResult VKAPI_CALL vkCreateSamplerYcbcrConversion(
6467     VkDevice                                    device,
6468     const VkSamplerYcbcrConversionCreateInfo*   pCreateInfo,
6469     const VkAllocationCallbacks*                pAllocator,
6470     VkSamplerYcbcrConversion*                   pYcbcrConversion);
6471
6472 VKAPI_ATTR void VKAPI_CALL vkDestroySamplerYcbcrConversion(
6473     VkDevice                                    device,
6474     VkSamplerYcbcrConversion                    ycbcrConversion,
6475     const VkAllocationCallbacks*                pAllocator);
6476
6477 VKAPI_ATTR VkResult VKAPI_CALL vkCreateDescriptorUpdateTemplate(
6478     VkDevice                                    device,
6479     const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo,
6480     const VkAllocationCallbacks*                pAllocator,
6481     VkDescriptorUpdateTemplate*                 pDescriptorUpdateTemplate);
6482
6483 VKAPI_ATTR void VKAPI_CALL vkDestroyDescriptorUpdateTemplate(
6484     VkDevice                                    device,
6485     VkDescriptorUpdateTemplate                  descriptorUpdateTemplate,
6486     const VkAllocationCallbacks*                pAllocator);
6487
6488 VKAPI_ATTR void VKAPI_CALL vkUpdateDescriptorSetWithTemplate(
6489     VkDevice                                    device,
6490     VkDescriptorSet                             descriptorSet,
6491     VkDescriptorUpdateTemplate                  descriptorUpdateTemplate,
6492     const void*                                 pData);
6493
6494 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalBufferProperties(
6495     VkPhysicalDevice                            physicalDevice,
6496     const VkPhysicalDeviceExternalBufferInfo*   pExternalBufferInfo,
6497     VkExternalBufferProperties*                 pExternalBufferProperties);
6498
6499 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalFenceProperties(
6500     VkPhysicalDevice                            physicalDevice,
6501     const VkPhysicalDeviceExternalFenceInfo*    pExternalFenceInfo,
6502     VkExternalFenceProperties*                  pExternalFenceProperties);
6503
6504 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalSemaphoreProperties(
6505     VkPhysicalDevice                            physicalDevice,
6506     const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo,
6507     VkExternalSemaphoreProperties*              pExternalSemaphoreProperties);
6508
6509 VKAPI_ATTR void VKAPI_CALL vkGetDescriptorSetLayoutSupport(
6510     VkDevice                                    device,
6511     const VkDescriptorSetLayoutCreateInfo*      pCreateInfo,
6512     VkDescriptorSetLayoutSupport*               pSupport);
6513 #endif
6514
6515
6516 #define VK_VERSION_1_2 1
6517 // Vulkan 1.2 version number
6518 #define VK_API_VERSION_1_2 VK_MAKE_API_VERSION(0, 1, 2, 0)// Patch version should always be set to 0
6519
6520 #define VK_MAX_DRIVER_NAME_SIZE           256U
6521 #define VK_MAX_DRIVER_INFO_SIZE           256U
6522
6523 typedef enum VkDriverId {
6524     VK_DRIVER_ID_AMD_PROPRIETARY = 1,
6525     VK_DRIVER_ID_AMD_OPEN_SOURCE = 2,
6526     VK_DRIVER_ID_MESA_RADV = 3,
6527     VK_DRIVER_ID_NVIDIA_PROPRIETARY = 4,
6528     VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS = 5,
6529     VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA = 6,
6530     VK_DRIVER_ID_IMAGINATION_PROPRIETARY = 7,
6531     VK_DRIVER_ID_QUALCOMM_PROPRIETARY = 8,
6532     VK_DRIVER_ID_ARM_PROPRIETARY = 9,
6533     VK_DRIVER_ID_GOOGLE_SWIFTSHADER = 10,
6534     VK_DRIVER_ID_GGP_PROPRIETARY = 11,
6535     VK_DRIVER_ID_BROADCOM_PROPRIETARY = 12,
6536     VK_DRIVER_ID_MESA_LLVMPIPE = 13,
6537     VK_DRIVER_ID_MOLTENVK = 14,
6538     VK_DRIVER_ID_COREAVI_PROPRIETARY = 15,
6539     VK_DRIVER_ID_JUICE_PROPRIETARY = 16,
6540     VK_DRIVER_ID_VERISILICON_PROPRIETARY = 17,
6541     VK_DRIVER_ID_MESA_TURNIP = 18,
6542     VK_DRIVER_ID_MESA_V3DV = 19,
6543     VK_DRIVER_ID_MESA_PANVK = 20,
6544     VK_DRIVER_ID_SAMSUNG_PROPRIETARY = 21,
6545     VK_DRIVER_ID_MESA_VENUS = 22,
6546     VK_DRIVER_ID_AMD_PROPRIETARY_KHR = VK_DRIVER_ID_AMD_PROPRIETARY,
6547     VK_DRIVER_ID_AMD_OPEN_SOURCE_KHR = VK_DRIVER_ID_AMD_OPEN_SOURCE,
6548     VK_DRIVER_ID_MESA_RADV_KHR = VK_DRIVER_ID_MESA_RADV,
6549     VK_DRIVER_ID_NVIDIA_PROPRIETARY_KHR = VK_DRIVER_ID_NVIDIA_PROPRIETARY,
6550     VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS_KHR = VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS,
6551     VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA_KHR = VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA,
6552     VK_DRIVER_ID_IMAGINATION_PROPRIETARY_KHR = VK_DRIVER_ID_IMAGINATION_PROPRIETARY,
6553     VK_DRIVER_ID_QUALCOMM_PROPRIETARY_KHR = VK_DRIVER_ID_QUALCOMM_PROPRIETARY,
6554     VK_DRIVER_ID_ARM_PROPRIETARY_KHR = VK_DRIVER_ID_ARM_PROPRIETARY,
6555     VK_DRIVER_ID_GOOGLE_SWIFTSHADER_KHR = VK_DRIVER_ID_GOOGLE_SWIFTSHADER,
6556     VK_DRIVER_ID_GGP_PROPRIETARY_KHR = VK_DRIVER_ID_GGP_PROPRIETARY,
6557     VK_DRIVER_ID_BROADCOM_PROPRIETARY_KHR = VK_DRIVER_ID_BROADCOM_PROPRIETARY,
6558     VK_DRIVER_ID_MAX_ENUM = 0x7FFFFFFF
6559 } VkDriverId;
6560
6561 typedef enum VkShaderFloatControlsIndependence {
6562     VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY = 0,
6563     VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL = 1,
6564     VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE = 2,
6565     VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY_KHR = VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY,
6566     VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL_KHR = VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL,
6567     VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE_KHR = VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE,
6568     VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_MAX_ENUM = 0x7FFFFFFF
6569 } VkShaderFloatControlsIndependence;
6570
6571 typedef enum VkSamplerReductionMode {
6572     VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE = 0,
6573     VK_SAMPLER_REDUCTION_MODE_MIN = 1,
6574     VK_SAMPLER_REDUCTION_MODE_MAX = 2,
6575     VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_EXT = VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE,
6576     VK_SAMPLER_REDUCTION_MODE_MIN_EXT = VK_SAMPLER_REDUCTION_MODE_MIN,
6577     VK_SAMPLER_REDUCTION_MODE_MAX_EXT = VK_SAMPLER_REDUCTION_MODE_MAX,
6578     VK_SAMPLER_REDUCTION_MODE_MAX_ENUM = 0x7FFFFFFF
6579 } VkSamplerReductionMode;
6580
6581 typedef enum VkSemaphoreType {
6582     VK_SEMAPHORE_TYPE_BINARY = 0,
6583     VK_SEMAPHORE_TYPE_TIMELINE = 1,
6584     VK_SEMAPHORE_TYPE_BINARY_KHR = VK_SEMAPHORE_TYPE_BINARY,
6585     VK_SEMAPHORE_TYPE_TIMELINE_KHR = VK_SEMAPHORE_TYPE_TIMELINE,
6586     VK_SEMAPHORE_TYPE_MAX_ENUM = 0x7FFFFFFF
6587 } VkSemaphoreType;
6588
6589 typedef enum VkResolveModeFlagBits {
6590     VK_RESOLVE_MODE_NONE = 0,
6591     VK_RESOLVE_MODE_SAMPLE_ZERO_BIT = 0x00000001,
6592     VK_RESOLVE_MODE_AVERAGE_BIT = 0x00000002,
6593     VK_RESOLVE_MODE_MIN_BIT = 0x00000004,
6594     VK_RESOLVE_MODE_MAX_BIT = 0x00000008,
6595     VK_RESOLVE_MODE_NONE_KHR = VK_RESOLVE_MODE_NONE,
6596     VK_RESOLVE_MODE_SAMPLE_ZERO_BIT_KHR = VK_RESOLVE_MODE_SAMPLE_ZERO_BIT,
6597     VK_RESOLVE_MODE_AVERAGE_BIT_KHR = VK_RESOLVE_MODE_AVERAGE_BIT,
6598     VK_RESOLVE_MODE_MIN_BIT_KHR = VK_RESOLVE_MODE_MIN_BIT,
6599     VK_RESOLVE_MODE_MAX_BIT_KHR = VK_RESOLVE_MODE_MAX_BIT,
6600     VK_RESOLVE_MODE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
6601 } VkResolveModeFlagBits;
6602 typedef VkFlags VkResolveModeFlags;
6603
6604 typedef enum VkDescriptorBindingFlagBits {
6605     VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT = 0x00000001,
6606     VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT = 0x00000002,
6607     VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT = 0x00000004,
6608     VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT = 0x00000008,
6609     VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT_EXT = VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT,
6610     VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT_EXT = VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT,
6611     VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT_EXT = VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT,
6612     VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT_EXT = VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT,
6613     VK_DESCRIPTOR_BINDING_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
6614 } VkDescriptorBindingFlagBits;
6615 typedef VkFlags VkDescriptorBindingFlags;
6616
6617 typedef enum VkSemaphoreWaitFlagBits {
6618     VK_SEMAPHORE_WAIT_ANY_BIT = 0x00000001,
6619     VK_SEMAPHORE_WAIT_ANY_BIT_KHR = VK_SEMAPHORE_WAIT_ANY_BIT,
6620     VK_SEMAPHORE_WAIT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
6621 } VkSemaphoreWaitFlagBits;
6622 typedef VkFlags VkSemaphoreWaitFlags;
6623 typedef struct VkPhysicalDeviceVulkan11Features {
6624     VkStructureType    sType;
6625     void*              pNext;
6626     VkBool32           storageBuffer16BitAccess;
6627     VkBool32           uniformAndStorageBuffer16BitAccess;
6628     VkBool32           storagePushConstant16;
6629     VkBool32           storageInputOutput16;
6630     VkBool32           multiview;
6631     VkBool32           multiviewGeometryShader;
6632     VkBool32           multiviewTessellationShader;
6633     VkBool32           variablePointersStorageBuffer;
6634     VkBool32           variablePointers;
6635     VkBool32           protectedMemory;
6636     VkBool32           samplerYcbcrConversion;
6637     VkBool32           shaderDrawParameters;
6638 } VkPhysicalDeviceVulkan11Features;
6639
6640 typedef struct VkPhysicalDeviceVulkan11Properties {
6641     VkStructureType            sType;
6642     void*                      pNext;
6643     deUint8                    deviceUUID[VK_UUID_SIZE];
6644     deUint8                    driverUUID[VK_UUID_SIZE];
6645     deUint8                    deviceLUID[VK_LUID_SIZE];
6646     deUint32                   deviceNodeMask;
6647     VkBool32                   deviceLUIDValid;
6648     deUint32                   subgroupSize;
6649     VkShaderStageFlags         subgroupSupportedStages;
6650     VkSubgroupFeatureFlags     subgroupSupportedOperations;
6651     VkBool32                   subgroupQuadOperationsInAllStages;
6652     VkPointClippingBehavior    pointClippingBehavior;
6653     deUint32                   maxMultiviewViewCount;
6654     deUint32                   maxMultiviewInstanceIndex;
6655     VkBool32                   protectedNoFault;
6656     deUint32                   maxPerSetDescriptors;
6657     VkDeviceSize               maxMemoryAllocationSize;
6658 } VkPhysicalDeviceVulkan11Properties;
6659
6660 typedef struct VkPhysicalDeviceVulkan12Features {
6661     VkStructureType    sType;
6662     void*              pNext;
6663     VkBool32           samplerMirrorClampToEdge;
6664     VkBool32           drawIndirectCount;
6665     VkBool32           storageBuffer8BitAccess;
6666     VkBool32           uniformAndStorageBuffer8BitAccess;
6667     VkBool32           storagePushConstant8;
6668     VkBool32           shaderBufferInt64Atomics;
6669     VkBool32           shaderSharedInt64Atomics;
6670     VkBool32           shaderFloat16;
6671     VkBool32           shaderInt8;
6672     VkBool32           descriptorIndexing;
6673     VkBool32           shaderInputAttachmentArrayDynamicIndexing;
6674     VkBool32           shaderUniformTexelBufferArrayDynamicIndexing;
6675     VkBool32           shaderStorageTexelBufferArrayDynamicIndexing;
6676     VkBool32           shaderUniformBufferArrayNonUniformIndexing;
6677     VkBool32           shaderSampledImageArrayNonUniformIndexing;
6678     VkBool32           shaderStorageBufferArrayNonUniformIndexing;
6679     VkBool32           shaderStorageImageArrayNonUniformIndexing;
6680     VkBool32           shaderInputAttachmentArrayNonUniformIndexing;
6681     VkBool32           shaderUniformTexelBufferArrayNonUniformIndexing;
6682     VkBool32           shaderStorageTexelBufferArrayNonUniformIndexing;
6683     VkBool32           descriptorBindingUniformBufferUpdateAfterBind;
6684     VkBool32           descriptorBindingSampledImageUpdateAfterBind;
6685     VkBool32           descriptorBindingStorageImageUpdateAfterBind;
6686     VkBool32           descriptorBindingStorageBufferUpdateAfterBind;
6687     VkBool32           descriptorBindingUniformTexelBufferUpdateAfterBind;
6688     VkBool32           descriptorBindingStorageTexelBufferUpdateAfterBind;
6689     VkBool32           descriptorBindingUpdateUnusedWhilePending;
6690     VkBool32           descriptorBindingPartiallyBound;
6691     VkBool32           descriptorBindingVariableDescriptorCount;
6692     VkBool32           runtimeDescriptorArray;
6693     VkBool32           samplerFilterMinmax;
6694     VkBool32           scalarBlockLayout;
6695     VkBool32           imagelessFramebuffer;
6696     VkBool32           uniformBufferStandardLayout;
6697     VkBool32           shaderSubgroupExtendedTypes;
6698     VkBool32           separateDepthStencilLayouts;
6699     VkBool32           hostQueryReset;
6700     VkBool32           timelineSemaphore;
6701     VkBool32           bufferDeviceAddress;
6702     VkBool32           bufferDeviceAddressCaptureReplay;
6703     VkBool32           bufferDeviceAddressMultiDevice;
6704     VkBool32           vulkanMemoryModel;
6705     VkBool32           vulkanMemoryModelDeviceScope;
6706     VkBool32           vulkanMemoryModelAvailabilityVisibilityChains;
6707     VkBool32           shaderOutputViewportIndex;
6708     VkBool32           shaderOutputLayer;
6709     VkBool32           subgroupBroadcastDynamicId;
6710 } VkPhysicalDeviceVulkan12Features;
6711
6712 typedef struct VkConformanceVersion {
6713     deUint8    major;
6714     deUint8    minor;
6715     deUint8    subminor;
6716     deUint8    patch;
6717 } VkConformanceVersion;
6718
6719 typedef struct VkPhysicalDeviceVulkan12Properties {
6720     VkStructureType                      sType;
6721     void*                                pNext;
6722     VkDriverId                           driverID;
6723     char                                 driverName[VK_MAX_DRIVER_NAME_SIZE];
6724     char                                 driverInfo[VK_MAX_DRIVER_INFO_SIZE];
6725     VkConformanceVersion                 conformanceVersion;
6726     VkShaderFloatControlsIndependence    denormBehaviorIndependence;
6727     VkShaderFloatControlsIndependence    roundingModeIndependence;
6728     VkBool32                             shaderSignedZeroInfNanPreserveFloat16;
6729     VkBool32                             shaderSignedZeroInfNanPreserveFloat32;
6730     VkBool32                             shaderSignedZeroInfNanPreserveFloat64;
6731     VkBool32                             shaderDenormPreserveFloat16;
6732     VkBool32                             shaderDenormPreserveFloat32;
6733     VkBool32                             shaderDenormPreserveFloat64;
6734     VkBool32                             shaderDenormFlushToZeroFloat16;
6735     VkBool32                             shaderDenormFlushToZeroFloat32;
6736     VkBool32                             shaderDenormFlushToZeroFloat64;
6737     VkBool32                             shaderRoundingModeRTEFloat16;
6738     VkBool32                             shaderRoundingModeRTEFloat32;
6739     VkBool32                             shaderRoundingModeRTEFloat64;
6740     VkBool32                             shaderRoundingModeRTZFloat16;
6741     VkBool32                             shaderRoundingModeRTZFloat32;
6742     VkBool32                             shaderRoundingModeRTZFloat64;
6743     deUint32                             maxUpdateAfterBindDescriptorsInAllPools;
6744     VkBool32                             shaderUniformBufferArrayNonUniformIndexingNative;
6745     VkBool32                             shaderSampledImageArrayNonUniformIndexingNative;
6746     VkBool32                             shaderStorageBufferArrayNonUniformIndexingNative;
6747     VkBool32                             shaderStorageImageArrayNonUniformIndexingNative;
6748     VkBool32                             shaderInputAttachmentArrayNonUniformIndexingNative;
6749     VkBool32                             robustBufferAccessUpdateAfterBind;
6750     VkBool32                             quadDivergentImplicitLod;
6751     deUint32                             maxPerStageDescriptorUpdateAfterBindSamplers;
6752     deUint32                             maxPerStageDescriptorUpdateAfterBindUniformBuffers;
6753     deUint32                             maxPerStageDescriptorUpdateAfterBindStorageBuffers;
6754     deUint32                             maxPerStageDescriptorUpdateAfterBindSampledImages;
6755     deUint32                             maxPerStageDescriptorUpdateAfterBindStorageImages;
6756     deUint32                             maxPerStageDescriptorUpdateAfterBindInputAttachments;
6757     deUint32                             maxPerStageUpdateAfterBindResources;
6758     deUint32                             maxDescriptorSetUpdateAfterBindSamplers;
6759     deUint32                             maxDescriptorSetUpdateAfterBindUniformBuffers;
6760     deUint32                             maxDescriptorSetUpdateAfterBindUniformBuffersDynamic;
6761     deUint32                             maxDescriptorSetUpdateAfterBindStorageBuffers;
6762     deUint32                             maxDescriptorSetUpdateAfterBindStorageBuffersDynamic;
6763     deUint32                             maxDescriptorSetUpdateAfterBindSampledImages;
6764     deUint32                             maxDescriptorSetUpdateAfterBindStorageImages;
6765     deUint32                             maxDescriptorSetUpdateAfterBindInputAttachments;
6766     VkResolveModeFlags                   supportedDepthResolveModes;
6767     VkResolveModeFlags                   supportedStencilResolveModes;
6768     VkBool32                             independentResolveNone;
6769     VkBool32                             independentResolve;
6770     VkBool32                             filterMinmaxSingleComponentFormats;
6771     VkBool32                             filterMinmaxImageComponentMapping;
6772     deUint64                             maxTimelineSemaphoreValueDifference;
6773     VkSampleCountFlags                   framebufferIntegerColorSampleCounts;
6774 } VkPhysicalDeviceVulkan12Properties;
6775
6776 typedef struct VkImageFormatListCreateInfo {
6777     VkStructureType    sType;
6778     const void*        pNext;
6779     deUint32           viewFormatCount;
6780     const VkFormat*    pViewFormats;
6781 } VkImageFormatListCreateInfo;
6782
6783 typedef struct VkAttachmentDescription2 {
6784     VkStructureType                 sType;
6785     const void*                     pNext;
6786     VkAttachmentDescriptionFlags    flags;
6787     VkFormat                        format;
6788     VkSampleCountFlagBits           samples;
6789     VkAttachmentLoadOp              loadOp;
6790     VkAttachmentStoreOp             storeOp;
6791     VkAttachmentLoadOp              stencilLoadOp;
6792     VkAttachmentStoreOp             stencilStoreOp;
6793     VkImageLayout                   initialLayout;
6794     VkImageLayout                   finalLayout;
6795 } VkAttachmentDescription2;
6796
6797 typedef struct VkAttachmentReference2 {
6798     VkStructureType       sType;
6799     const void*           pNext;
6800     deUint32              attachment;
6801     VkImageLayout         layout;
6802     VkImageAspectFlags    aspectMask;
6803 } VkAttachmentReference2;
6804
6805 typedef struct VkSubpassDescription2 {
6806     VkStructureType                  sType;
6807     const void*                      pNext;
6808     VkSubpassDescriptionFlags        flags;
6809     VkPipelineBindPoint              pipelineBindPoint;
6810     deUint32                         viewMask;
6811     deUint32                         inputAttachmentCount;
6812     const VkAttachmentReference2*    pInputAttachments;
6813     deUint32                         colorAttachmentCount;
6814     const VkAttachmentReference2*    pColorAttachments;
6815     const VkAttachmentReference2*    pResolveAttachments;
6816     const VkAttachmentReference2*    pDepthStencilAttachment;
6817     deUint32                         preserveAttachmentCount;
6818     const deUint32*                  pPreserveAttachments;
6819 } VkSubpassDescription2;
6820
6821 typedef struct VkSubpassDependency2 {
6822     VkStructureType         sType;
6823     const void*             pNext;
6824     deUint32                srcSubpass;
6825     deUint32                dstSubpass;
6826     VkPipelineStageFlags    srcStageMask;
6827     VkPipelineStageFlags    dstStageMask;
6828     VkAccessFlags           srcAccessMask;
6829     VkAccessFlags           dstAccessMask;
6830     VkDependencyFlags       dependencyFlags;
6831     deInt32                 viewOffset;
6832 } VkSubpassDependency2;
6833
6834 typedef struct VkRenderPassCreateInfo2 {
6835     VkStructureType                    sType;
6836     const void*                        pNext;
6837     VkRenderPassCreateFlags            flags;
6838     deUint32                           attachmentCount;
6839     const VkAttachmentDescription2*    pAttachments;
6840     deUint32                           subpassCount;
6841     const VkSubpassDescription2*       pSubpasses;
6842     deUint32                           dependencyCount;
6843     const VkSubpassDependency2*        pDependencies;
6844     deUint32                           correlatedViewMaskCount;
6845     const deUint32*                    pCorrelatedViewMasks;
6846 } VkRenderPassCreateInfo2;
6847
6848 typedef struct VkSubpassBeginInfo {
6849     VkStructureType      sType;
6850     const void*          pNext;
6851     VkSubpassContents    contents;
6852 } VkSubpassBeginInfo;
6853
6854 typedef struct VkSubpassEndInfo {
6855     VkStructureType    sType;
6856     const void*        pNext;
6857 } VkSubpassEndInfo;
6858
6859 typedef struct VkPhysicalDevice8BitStorageFeatures {
6860     VkStructureType    sType;
6861     void*              pNext;
6862     VkBool32           storageBuffer8BitAccess;
6863     VkBool32           uniformAndStorageBuffer8BitAccess;
6864     VkBool32           storagePushConstant8;
6865 } VkPhysicalDevice8BitStorageFeatures;
6866
6867 typedef struct VkPhysicalDeviceDriverProperties {
6868     VkStructureType         sType;
6869     void*                   pNext;
6870     VkDriverId              driverID;
6871     char                    driverName[VK_MAX_DRIVER_NAME_SIZE];
6872     char                    driverInfo[VK_MAX_DRIVER_INFO_SIZE];
6873     VkConformanceVersion    conformanceVersion;
6874 } VkPhysicalDeviceDriverProperties;
6875
6876 typedef struct VkPhysicalDeviceShaderAtomicInt64Features {
6877     VkStructureType    sType;
6878     void*              pNext;
6879     VkBool32           shaderBufferInt64Atomics;
6880     VkBool32           shaderSharedInt64Atomics;
6881 } VkPhysicalDeviceShaderAtomicInt64Features;
6882
6883 typedef struct VkPhysicalDeviceShaderFloat16Int8Features {
6884     VkStructureType    sType;
6885     void*              pNext;
6886     VkBool32           shaderFloat16;
6887     VkBool32           shaderInt8;
6888 } VkPhysicalDeviceShaderFloat16Int8Features;
6889
6890 typedef struct VkPhysicalDeviceFloatControlsProperties {
6891     VkStructureType                      sType;
6892     void*                                pNext;
6893     VkShaderFloatControlsIndependence    denormBehaviorIndependence;
6894     VkShaderFloatControlsIndependence    roundingModeIndependence;
6895     VkBool32                             shaderSignedZeroInfNanPreserveFloat16;
6896     VkBool32                             shaderSignedZeroInfNanPreserveFloat32;
6897     VkBool32                             shaderSignedZeroInfNanPreserveFloat64;
6898     VkBool32                             shaderDenormPreserveFloat16;
6899     VkBool32                             shaderDenormPreserveFloat32;
6900     VkBool32                             shaderDenormPreserveFloat64;
6901     VkBool32                             shaderDenormFlushToZeroFloat16;
6902     VkBool32                             shaderDenormFlushToZeroFloat32;
6903     VkBool32                             shaderDenormFlushToZeroFloat64;
6904     VkBool32                             shaderRoundingModeRTEFloat16;
6905     VkBool32                             shaderRoundingModeRTEFloat32;
6906     VkBool32                             shaderRoundingModeRTEFloat64;
6907     VkBool32                             shaderRoundingModeRTZFloat16;
6908     VkBool32                             shaderRoundingModeRTZFloat32;
6909     VkBool32                             shaderRoundingModeRTZFloat64;
6910 } VkPhysicalDeviceFloatControlsProperties;
6911
6912 typedef struct VkDescriptorSetLayoutBindingFlagsCreateInfo {
6913     VkStructureType                    sType;
6914     const void*                        pNext;
6915     deUint32                           bindingCount;
6916     const VkDescriptorBindingFlags*    pBindingFlags;
6917 } VkDescriptorSetLayoutBindingFlagsCreateInfo;
6918
6919 typedef struct VkPhysicalDeviceDescriptorIndexingFeatures {
6920     VkStructureType    sType;
6921     void*              pNext;
6922     VkBool32           shaderInputAttachmentArrayDynamicIndexing;
6923     VkBool32           shaderUniformTexelBufferArrayDynamicIndexing;
6924     VkBool32           shaderStorageTexelBufferArrayDynamicIndexing;
6925     VkBool32           shaderUniformBufferArrayNonUniformIndexing;
6926     VkBool32           shaderSampledImageArrayNonUniformIndexing;
6927     VkBool32           shaderStorageBufferArrayNonUniformIndexing;
6928     VkBool32           shaderStorageImageArrayNonUniformIndexing;
6929     VkBool32           shaderInputAttachmentArrayNonUniformIndexing;
6930     VkBool32           shaderUniformTexelBufferArrayNonUniformIndexing;
6931     VkBool32           shaderStorageTexelBufferArrayNonUniformIndexing;
6932     VkBool32           descriptorBindingUniformBufferUpdateAfterBind;
6933     VkBool32           descriptorBindingSampledImageUpdateAfterBind;
6934     VkBool32           descriptorBindingStorageImageUpdateAfterBind;
6935     VkBool32           descriptorBindingStorageBufferUpdateAfterBind;
6936     VkBool32           descriptorBindingUniformTexelBufferUpdateAfterBind;
6937     VkBool32           descriptorBindingStorageTexelBufferUpdateAfterBind;
6938     VkBool32           descriptorBindingUpdateUnusedWhilePending;
6939     VkBool32           descriptorBindingPartiallyBound;
6940     VkBool32           descriptorBindingVariableDescriptorCount;
6941     VkBool32           runtimeDescriptorArray;
6942 } VkPhysicalDeviceDescriptorIndexingFeatures;
6943
6944 typedef struct VkPhysicalDeviceDescriptorIndexingProperties {
6945     VkStructureType    sType;
6946     void*              pNext;
6947     deUint32           maxUpdateAfterBindDescriptorsInAllPools;
6948     VkBool32           shaderUniformBufferArrayNonUniformIndexingNative;
6949     VkBool32           shaderSampledImageArrayNonUniformIndexingNative;
6950     VkBool32           shaderStorageBufferArrayNonUniformIndexingNative;
6951     VkBool32           shaderStorageImageArrayNonUniformIndexingNative;
6952     VkBool32           shaderInputAttachmentArrayNonUniformIndexingNative;
6953     VkBool32           robustBufferAccessUpdateAfterBind;
6954     VkBool32           quadDivergentImplicitLod;
6955     deUint32           maxPerStageDescriptorUpdateAfterBindSamplers;
6956     deUint32           maxPerStageDescriptorUpdateAfterBindUniformBuffers;
6957     deUint32           maxPerStageDescriptorUpdateAfterBindStorageBuffers;
6958     deUint32           maxPerStageDescriptorUpdateAfterBindSampledImages;
6959     deUint32           maxPerStageDescriptorUpdateAfterBindStorageImages;
6960     deUint32           maxPerStageDescriptorUpdateAfterBindInputAttachments;
6961     deUint32           maxPerStageUpdateAfterBindResources;
6962     deUint32           maxDescriptorSetUpdateAfterBindSamplers;
6963     deUint32           maxDescriptorSetUpdateAfterBindUniformBuffers;
6964     deUint32           maxDescriptorSetUpdateAfterBindUniformBuffersDynamic;
6965     deUint32           maxDescriptorSetUpdateAfterBindStorageBuffers;
6966     deUint32           maxDescriptorSetUpdateAfterBindStorageBuffersDynamic;
6967     deUint32           maxDescriptorSetUpdateAfterBindSampledImages;
6968     deUint32           maxDescriptorSetUpdateAfterBindStorageImages;
6969     deUint32           maxDescriptorSetUpdateAfterBindInputAttachments;
6970 } VkPhysicalDeviceDescriptorIndexingProperties;
6971
6972 typedef struct VkDescriptorSetVariableDescriptorCountAllocateInfo {
6973     VkStructureType    sType;
6974     const void*        pNext;
6975     deUint32           descriptorSetCount;
6976     const deUint32*    pDescriptorCounts;
6977 } VkDescriptorSetVariableDescriptorCountAllocateInfo;
6978
6979 typedef struct VkDescriptorSetVariableDescriptorCountLayoutSupport {
6980     VkStructureType    sType;
6981     void*              pNext;
6982     deUint32           maxVariableDescriptorCount;
6983 } VkDescriptorSetVariableDescriptorCountLayoutSupport;
6984
6985 typedef struct VkSubpassDescriptionDepthStencilResolve {
6986     VkStructureType                  sType;
6987     const void*                      pNext;
6988     VkResolveModeFlagBits            depthResolveMode;
6989     VkResolveModeFlagBits            stencilResolveMode;
6990     const VkAttachmentReference2*    pDepthStencilResolveAttachment;
6991 } VkSubpassDescriptionDepthStencilResolve;
6992
6993 typedef struct VkPhysicalDeviceDepthStencilResolveProperties {
6994     VkStructureType       sType;
6995     void*                 pNext;
6996     VkResolveModeFlags    supportedDepthResolveModes;
6997     VkResolveModeFlags    supportedStencilResolveModes;
6998     VkBool32              independentResolveNone;
6999     VkBool32              independentResolve;
7000 } VkPhysicalDeviceDepthStencilResolveProperties;
7001
7002 typedef struct VkPhysicalDeviceScalarBlockLayoutFeatures {
7003     VkStructureType    sType;
7004     void*              pNext;
7005     VkBool32           scalarBlockLayout;
7006 } VkPhysicalDeviceScalarBlockLayoutFeatures;
7007
7008 typedef struct VkImageStencilUsageCreateInfo {
7009     VkStructureType      sType;
7010     const void*          pNext;
7011     VkImageUsageFlags    stencilUsage;
7012 } VkImageStencilUsageCreateInfo;
7013
7014 typedef struct VkSamplerReductionModeCreateInfo {
7015     VkStructureType           sType;
7016     const void*               pNext;
7017     VkSamplerReductionMode    reductionMode;
7018 } VkSamplerReductionModeCreateInfo;
7019
7020 typedef struct VkPhysicalDeviceSamplerFilterMinmaxProperties {
7021     VkStructureType    sType;
7022     void*              pNext;
7023     VkBool32           filterMinmaxSingleComponentFormats;
7024     VkBool32           filterMinmaxImageComponentMapping;
7025 } VkPhysicalDeviceSamplerFilterMinmaxProperties;
7026
7027 typedef struct VkPhysicalDeviceVulkanMemoryModelFeatures {
7028     VkStructureType    sType;
7029     void*              pNext;
7030     VkBool32           vulkanMemoryModel;
7031     VkBool32           vulkanMemoryModelDeviceScope;
7032     VkBool32           vulkanMemoryModelAvailabilityVisibilityChains;
7033 } VkPhysicalDeviceVulkanMemoryModelFeatures;
7034
7035 typedef struct VkPhysicalDeviceImagelessFramebufferFeatures {
7036     VkStructureType    sType;
7037     void*              pNext;
7038     VkBool32           imagelessFramebuffer;
7039 } VkPhysicalDeviceImagelessFramebufferFeatures;
7040
7041 typedef struct VkFramebufferAttachmentImageInfo {
7042     VkStructureType       sType;
7043     const void*           pNext;
7044     VkImageCreateFlags    flags;
7045     VkImageUsageFlags     usage;
7046     deUint32              width;
7047     deUint32              height;
7048     deUint32              layerCount;
7049     deUint32              viewFormatCount;
7050     const VkFormat*       pViewFormats;
7051 } VkFramebufferAttachmentImageInfo;
7052
7053 typedef struct VkFramebufferAttachmentsCreateInfo {
7054     VkStructureType                            sType;
7055     const void*                                pNext;
7056     deUint32                                   attachmentImageInfoCount;
7057     const VkFramebufferAttachmentImageInfo*    pAttachmentImageInfos;
7058 } VkFramebufferAttachmentsCreateInfo;
7059
7060 typedef struct VkRenderPassAttachmentBeginInfo {
7061     VkStructureType       sType;
7062     const void*           pNext;
7063     deUint32              attachmentCount;
7064     const VkImageView*    pAttachments;
7065 } VkRenderPassAttachmentBeginInfo;
7066
7067 typedef struct VkPhysicalDeviceUniformBufferStandardLayoutFeatures {
7068     VkStructureType    sType;
7069     void*              pNext;
7070     VkBool32           uniformBufferStandardLayout;
7071 } VkPhysicalDeviceUniformBufferStandardLayoutFeatures;
7072
7073 typedef struct VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures {
7074     VkStructureType    sType;
7075     void*              pNext;
7076     VkBool32           shaderSubgroupExtendedTypes;
7077 } VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures;
7078
7079 typedef struct VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures {
7080     VkStructureType    sType;
7081     void*              pNext;
7082     VkBool32           separateDepthStencilLayouts;
7083 } VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures;
7084
7085 typedef struct VkAttachmentReferenceStencilLayout {
7086     VkStructureType    sType;
7087     void*              pNext;
7088     VkImageLayout      stencilLayout;
7089 } VkAttachmentReferenceStencilLayout;
7090
7091 typedef struct VkAttachmentDescriptionStencilLayout {
7092     VkStructureType    sType;
7093     void*              pNext;
7094     VkImageLayout      stencilInitialLayout;
7095     VkImageLayout      stencilFinalLayout;
7096 } VkAttachmentDescriptionStencilLayout;
7097
7098 typedef struct VkPhysicalDeviceHostQueryResetFeatures {
7099     VkStructureType    sType;
7100     void*              pNext;
7101     VkBool32           hostQueryReset;
7102 } VkPhysicalDeviceHostQueryResetFeatures;
7103
7104 typedef struct VkPhysicalDeviceTimelineSemaphoreFeatures {
7105     VkStructureType    sType;
7106     void*              pNext;
7107     VkBool32           timelineSemaphore;
7108 } VkPhysicalDeviceTimelineSemaphoreFeatures;
7109
7110 typedef struct VkPhysicalDeviceTimelineSemaphoreProperties {
7111     VkStructureType    sType;
7112     void*              pNext;
7113     deUint64           maxTimelineSemaphoreValueDifference;
7114 } VkPhysicalDeviceTimelineSemaphoreProperties;
7115
7116 typedef struct VkSemaphoreTypeCreateInfo {
7117     VkStructureType    sType;
7118     const void*        pNext;
7119     VkSemaphoreType    semaphoreType;
7120     deUint64           initialValue;
7121 } VkSemaphoreTypeCreateInfo;
7122
7123 typedef struct VkTimelineSemaphoreSubmitInfo {
7124     VkStructureType    sType;
7125     const void*        pNext;
7126     deUint32           waitSemaphoreValueCount;
7127     const deUint64*    pWaitSemaphoreValues;
7128     deUint32           signalSemaphoreValueCount;
7129     const deUint64*    pSignalSemaphoreValues;
7130 } VkTimelineSemaphoreSubmitInfo;
7131
7132 typedef struct VkSemaphoreWaitInfo {
7133     VkStructureType         sType;
7134     const void*             pNext;
7135     VkSemaphoreWaitFlags    flags;
7136     deUint32                semaphoreCount;
7137     const VkSemaphore*      pSemaphores;
7138     const deUint64*         pValues;
7139 } VkSemaphoreWaitInfo;
7140
7141 typedef struct VkSemaphoreSignalInfo {
7142     VkStructureType    sType;
7143     const void*        pNext;
7144     VkSemaphore        semaphore;
7145     deUint64           value;
7146 } VkSemaphoreSignalInfo;
7147
7148 typedef struct VkPhysicalDeviceBufferDeviceAddressFeatures {
7149     VkStructureType    sType;
7150     void*              pNext;
7151     VkBool32           bufferDeviceAddress;
7152     VkBool32           bufferDeviceAddressCaptureReplay;
7153     VkBool32           bufferDeviceAddressMultiDevice;
7154 } VkPhysicalDeviceBufferDeviceAddressFeatures;
7155
7156 typedef struct VkBufferDeviceAddressInfo {
7157     VkStructureType    sType;
7158     const void*        pNext;
7159     VkBuffer           buffer;
7160 } VkBufferDeviceAddressInfo;
7161
7162 typedef struct VkBufferOpaqueCaptureAddressCreateInfo {
7163     VkStructureType    sType;
7164     const void*        pNext;
7165     deUint64           opaqueCaptureAddress;
7166 } VkBufferOpaqueCaptureAddressCreateInfo;
7167
7168 typedef struct VkMemoryOpaqueCaptureAddressAllocateInfo {
7169     VkStructureType    sType;
7170     const void*        pNext;
7171     deUint64           opaqueCaptureAddress;
7172 } VkMemoryOpaqueCaptureAddressAllocateInfo;
7173
7174 typedef struct VkDeviceMemoryOpaqueCaptureAddressInfo {
7175     VkStructureType    sType;
7176     const void*        pNext;
7177     VkDeviceMemory     memory;
7178 } VkDeviceMemoryOpaqueCaptureAddressInfo;
7179
7180 typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirectCount)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, deUint32 maxDrawCount, deUint32 stride);
7181 typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexedIndirectCount)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, deUint32 maxDrawCount, deUint32 stride);
7182 typedef VkResult (VKAPI_PTR *PFN_vkCreateRenderPass2)(VkDevice device, const VkRenderPassCreateInfo2* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass);
7183 typedef void (VKAPI_PTR *PFN_vkCmdBeginRenderPass2)(VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo*      pRenderPassBegin, const VkSubpassBeginInfo*      pSubpassBeginInfo);
7184 typedef void (VKAPI_PTR *PFN_vkCmdNextSubpass2)(VkCommandBuffer commandBuffer, const VkSubpassBeginInfo*      pSubpassBeginInfo, const VkSubpassEndInfo*        pSubpassEndInfo);
7185 typedef void (VKAPI_PTR *PFN_vkCmdEndRenderPass2)(VkCommandBuffer commandBuffer, const VkSubpassEndInfo*        pSubpassEndInfo);
7186 typedef void (VKAPI_PTR *PFN_vkResetQueryPool)(VkDevice device, VkQueryPool queryPool, deUint32 firstQuery, deUint32 queryCount);
7187 typedef VkResult (VKAPI_PTR *PFN_vkGetSemaphoreCounterValue)(VkDevice device, VkSemaphore semaphore, deUint64* pValue);
7188 typedef VkResult (VKAPI_PTR *PFN_vkWaitSemaphores)(VkDevice device, const VkSemaphoreWaitInfo* pWaitInfo, deUint64 timeout);
7189 typedef VkResult (VKAPI_PTR *PFN_vkSignalSemaphore)(VkDevice device, const VkSemaphoreSignalInfo* pSignalInfo);
7190 typedef VkDeviceAddress (VKAPI_PTR *PFN_vkGetBufferDeviceAddress)(VkDevice device, const VkBufferDeviceAddressInfo* pInfo);
7191 typedef deUint64 (VKAPI_PTR *PFN_vkGetBufferOpaqueCaptureAddress)(VkDevice device, const VkBufferDeviceAddressInfo* pInfo);
7192 typedef deUint64 (VKAPI_PTR *PFN_vkGetDeviceMemoryOpaqueCaptureAddress)(VkDevice device, const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo);
7193
7194 #ifndef VK_NO_PROTOTYPES
7195 VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirectCount(
7196     VkCommandBuffer                             commandBuffer,
7197     VkBuffer                                    buffer,
7198     VkDeviceSize                                offset,
7199     VkBuffer                                    countBuffer,
7200     VkDeviceSize                                countBufferOffset,
7201     deUint32                                    maxDrawCount,
7202     deUint32                                    stride);
7203
7204 VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexedIndirectCount(
7205     VkCommandBuffer                             commandBuffer,
7206     VkBuffer                                    buffer,
7207     VkDeviceSize                                offset,
7208     VkBuffer                                    countBuffer,
7209     VkDeviceSize                                countBufferOffset,
7210     deUint32                                    maxDrawCount,
7211     deUint32                                    stride);
7212
7213 VKAPI_ATTR VkResult VKAPI_CALL vkCreateRenderPass2(
7214     VkDevice                                    device,
7215     const VkRenderPassCreateInfo2*              pCreateInfo,
7216     const VkAllocationCallbacks*                pAllocator,
7217     VkRenderPass*                               pRenderPass);
7218
7219 VKAPI_ATTR void VKAPI_CALL vkCmdBeginRenderPass2(
7220     VkCommandBuffer                             commandBuffer,
7221     const VkRenderPassBeginInfo*                pRenderPassBegin,
7222     const VkSubpassBeginInfo*                   pSubpassBeginInfo);
7223
7224 VKAPI_ATTR void VKAPI_CALL vkCmdNextSubpass2(
7225     VkCommandBuffer                             commandBuffer,
7226     const VkSubpassBeginInfo*                   pSubpassBeginInfo,
7227     const VkSubpassEndInfo*                     pSubpassEndInfo);
7228
7229 VKAPI_ATTR void VKAPI_CALL vkCmdEndRenderPass2(
7230     VkCommandBuffer                             commandBuffer,
7231     const VkSubpassEndInfo*                     pSubpassEndInfo);
7232
7233 VKAPI_ATTR void VKAPI_CALL vkResetQueryPool(
7234     VkDevice                                    device,
7235     VkQueryPool                                 queryPool,
7236     deUint32                                    firstQuery,
7237     deUint32                                    queryCount);
7238
7239 VKAPI_ATTR VkResult VKAPI_CALL vkGetSemaphoreCounterValue(
7240     VkDevice                                    device,
7241     VkSemaphore                                 semaphore,
7242     deUint64*                                   pValue);
7243
7244 VKAPI_ATTR VkResult VKAPI_CALL vkWaitSemaphores(
7245     VkDevice                                    device,
7246     const VkSemaphoreWaitInfo*                  pWaitInfo,
7247     deUint64                                    timeout);
7248
7249 VKAPI_ATTR VkResult VKAPI_CALL vkSignalSemaphore(
7250     VkDevice                                    device,
7251     const VkSemaphoreSignalInfo*                pSignalInfo);
7252
7253 VKAPI_ATTR VkDeviceAddress VKAPI_CALL vkGetBufferDeviceAddress(
7254     VkDevice                                    device,
7255     const VkBufferDeviceAddressInfo*            pInfo);
7256
7257 VKAPI_ATTR deUint64 VKAPI_CALL vkGetBufferOpaqueCaptureAddress(
7258     VkDevice                                    device,
7259     const VkBufferDeviceAddressInfo*            pInfo);
7260
7261 VKAPI_ATTR deUint64 VKAPI_CALL vkGetDeviceMemoryOpaqueCaptureAddress(
7262     VkDevice                                    device,
7263     const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo);
7264 #endif
7265
7266
7267 #define VK_VERSION_1_3 1
7268 // Vulkan 1.3 version number
7269 #define VK_API_VERSION_1_3 VK_MAKE_API_VERSION(0, 1, 3, 0)// Patch version should always be set to 0
7270
7271 typedef deUint64 VkFlags64;
7272 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPrivateDataSlot)
7273
7274 typedef enum VkPipelineCreationFeedbackFlagBits {
7275     VK_PIPELINE_CREATION_FEEDBACK_VALID_BIT = 0x00000001,
7276     VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT = 0x00000002,
7277     VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT = 0x00000004,
7278     VK_PIPELINE_CREATION_FEEDBACK_VALID_BIT_EXT = VK_PIPELINE_CREATION_FEEDBACK_VALID_BIT,
7279     VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT_EXT = VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT,
7280     VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT_EXT = VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT,
7281     VK_PIPELINE_CREATION_FEEDBACK_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
7282 } VkPipelineCreationFeedbackFlagBits;
7283 typedef VkFlags VkPipelineCreationFeedbackFlags;
7284
7285 typedef enum VkToolPurposeFlagBits {
7286     VK_TOOL_PURPOSE_VALIDATION_BIT = 0x00000001,
7287     VK_TOOL_PURPOSE_PROFILING_BIT = 0x00000002,
7288     VK_TOOL_PURPOSE_TRACING_BIT = 0x00000004,
7289     VK_TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT = 0x00000008,
7290     VK_TOOL_PURPOSE_MODIFYING_FEATURES_BIT = 0x00000010,
7291     VK_TOOL_PURPOSE_DEBUG_REPORTING_BIT_EXT = 0x00000020,
7292     VK_TOOL_PURPOSE_DEBUG_MARKERS_BIT_EXT = 0x00000040,
7293     VK_TOOL_PURPOSE_VALIDATION_BIT_EXT = VK_TOOL_PURPOSE_VALIDATION_BIT,
7294     VK_TOOL_PURPOSE_PROFILING_BIT_EXT = VK_TOOL_PURPOSE_PROFILING_BIT,
7295     VK_TOOL_PURPOSE_TRACING_BIT_EXT = VK_TOOL_PURPOSE_TRACING_BIT,
7296     VK_TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT_EXT = VK_TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT,
7297     VK_TOOL_PURPOSE_MODIFYING_FEATURES_BIT_EXT = VK_TOOL_PURPOSE_MODIFYING_FEATURES_BIT,
7298     VK_TOOL_PURPOSE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
7299 } VkToolPurposeFlagBits;
7300 typedef VkFlags VkToolPurposeFlags;
7301 typedef VkFlags VkPrivateDataSlotCreateFlags;
7302 typedef VkFlags64 VkPipelineStageFlags2;
7303
7304 // Flag bits for VkPipelineStageFlagBits2
7305 typedef VkFlags64 VkPipelineStageFlagBits2;
7306 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_NONE = 0ULL;
7307 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_NONE_KHR = 0ULL;
7308 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT = 0x00000001ULL;
7309 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT_KHR = 0x00000001ULL;
7310 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT = 0x00000002ULL;
7311 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR = 0x00000002ULL;
7312 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT = 0x00000004ULL;
7313 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT_KHR = 0x00000004ULL;
7314 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT = 0x00000008ULL;
7315 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT_KHR = 0x00000008ULL;
7316 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT = 0x00000010ULL;
7317 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT_KHR = 0x00000010ULL;
7318 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT = 0x00000020ULL;
7319 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT_KHR = 0x00000020ULL;
7320 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT = 0x00000040ULL;
7321 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT_KHR = 0x00000040ULL;
7322 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT = 0x00000080ULL;
7323 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT_KHR = 0x00000080ULL;
7324 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT = 0x00000100ULL;
7325 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR = 0x00000100ULL;
7326 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT = 0x00000200ULL;
7327 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR = 0x00000200ULL;
7328 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT = 0x00000400ULL;
7329 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR = 0x00000400ULL;
7330 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT = 0x00000800ULL;
7331 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT_KHR = 0x00000800ULL;
7332 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT = 0x00001000ULL;
7333 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT_KHR = 0x00001000ULL;
7334 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TRANSFER_BIT = 0x00001000ULL;
7335 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TRANSFER_BIT_KHR = 0x00001000ULL;
7336 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT = 0x00002000ULL;
7337 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT_KHR = 0x00002000ULL;
7338 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_HOST_BIT = 0x00004000ULL;
7339 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_HOST_BIT_KHR = 0x00004000ULL;
7340 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT = 0x00008000ULL;
7341 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR = 0x00008000ULL;
7342 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT = 0x00010000ULL;
7343 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR = 0x00010000ULL;
7344 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COPY_BIT = 0x100000000ULL;
7345 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COPY_BIT_KHR = 0x100000000ULL;
7346 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_RESOLVE_BIT = 0x200000000ULL;
7347 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_RESOLVE_BIT_KHR = 0x200000000ULL;
7348 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_BLIT_BIT = 0x400000000ULL;
7349 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_BLIT_BIT_KHR = 0x400000000ULL;
7350 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_CLEAR_BIT = 0x800000000ULL;
7351 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_CLEAR_BIT_KHR = 0x800000000ULL;
7352 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT = 0x1000000000ULL;
7353 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT_KHR = 0x1000000000ULL;
7354 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT = 0x2000000000ULL;
7355 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT_KHR = 0x2000000000ULL;
7356 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT = 0x4000000000ULL;
7357 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT_KHR = 0x4000000000ULL;
7358 #ifdef VK_ENABLE_BETA_EXTENSIONS
7359 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR = 0x04000000ULL;
7360 #endif
7361 #ifdef VK_ENABLE_BETA_EXTENSIONS
7362 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR = 0x08000000ULL;
7363 #endif
7364 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT = 0x01000000ULL;
7365 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT = 0x00040000ULL;
7366 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV = 0x00020000ULL;
7367 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x00400000ULL;
7368 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV = 0x00400000ULL;
7369 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR = 0x02000000ULL;
7370 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR = 0x00200000ULL;
7371 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_NV = 0x00200000ULL;
7372 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_NV = 0x02000000ULL;
7373 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT = 0x00800000ULL;
7374 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_NV = 0x00080000ULL;
7375 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_NV = 0x00100000ULL;
7376 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI = 0x8000000000ULL;
7377 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI = 0x10000000000ULL;
7378 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR = 0x10000000ULL;
7379
7380 typedef VkFlags64 VkAccessFlags2;
7381
7382 // Flag bits for VkAccessFlagBits2
7383 typedef VkFlags64 VkAccessFlagBits2;
7384 static const VkAccessFlagBits2 VK_ACCESS_2_NONE = 0ULL;
7385 static const VkAccessFlagBits2 VK_ACCESS_2_NONE_KHR = 0ULL;
7386 static const VkAccessFlagBits2 VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT = 0x00000001ULL;
7387 static const VkAccessFlagBits2 VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT_KHR = 0x00000001ULL;
7388 static const VkAccessFlagBits2 VK_ACCESS_2_INDEX_READ_BIT = 0x00000002ULL;
7389 static const VkAccessFlagBits2 VK_ACCESS_2_INDEX_READ_BIT_KHR = 0x00000002ULL;
7390 static const VkAccessFlagBits2 VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT = 0x00000004ULL;
7391 static const VkAccessFlagBits2 VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT_KHR = 0x00000004ULL;
7392 static const VkAccessFlagBits2 VK_ACCESS_2_UNIFORM_READ_BIT = 0x00000008ULL;
7393 static const VkAccessFlagBits2 VK_ACCESS_2_UNIFORM_READ_BIT_KHR = 0x00000008ULL;
7394 static const VkAccessFlagBits2 VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT = 0x00000010ULL;
7395 static const VkAccessFlagBits2 VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT_KHR = 0x00000010ULL;
7396 static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_READ_BIT = 0x00000020ULL;
7397 static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_READ_BIT_KHR = 0x00000020ULL;
7398 static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_WRITE_BIT = 0x00000040ULL;
7399 static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_WRITE_BIT_KHR = 0x00000040ULL;
7400 static const VkAccessFlagBits2 VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT = 0x00000080ULL;
7401 static const VkAccessFlagBits2 VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT_KHR = 0x00000080ULL;
7402 static const VkAccessFlagBits2 VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT = 0x00000100ULL;
7403 static const VkAccessFlagBits2 VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT_KHR = 0x00000100ULL;
7404 static const VkAccessFlagBits2 VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT = 0x00000200ULL;
7405 static const VkAccessFlagBits2 VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT_KHR = 0x00000200ULL;
7406 static const VkAccessFlagBits2 VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT = 0x00000400ULL;
7407 static const VkAccessFlagBits2 VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT_KHR = 0x00000400ULL;
7408 static const VkAccessFlagBits2 VK_ACCESS_2_TRANSFER_READ_BIT = 0x00000800ULL;
7409 static const VkAccessFlagBits2 VK_ACCESS_2_TRANSFER_READ_BIT_KHR = 0x00000800ULL;
7410 static const VkAccessFlagBits2 VK_ACCESS_2_TRANSFER_WRITE_BIT = 0x00001000ULL;
7411 static const VkAccessFlagBits2 VK_ACCESS_2_TRANSFER_WRITE_BIT_KHR = 0x00001000ULL;
7412 static const VkAccessFlagBits2 VK_ACCESS_2_HOST_READ_BIT = 0x00002000ULL;
7413 static const VkAccessFlagBits2 VK_ACCESS_2_HOST_READ_BIT_KHR = 0x00002000ULL;
7414 static const VkAccessFlagBits2 VK_ACCESS_2_HOST_WRITE_BIT = 0x00004000ULL;
7415 static const VkAccessFlagBits2 VK_ACCESS_2_HOST_WRITE_BIT_KHR = 0x00004000ULL;
7416 static const VkAccessFlagBits2 VK_ACCESS_2_MEMORY_READ_BIT = 0x00008000ULL;
7417 static const VkAccessFlagBits2 VK_ACCESS_2_MEMORY_READ_BIT_KHR = 0x00008000ULL;
7418 static const VkAccessFlagBits2 VK_ACCESS_2_MEMORY_WRITE_BIT = 0x00010000ULL;
7419 static const VkAccessFlagBits2 VK_ACCESS_2_MEMORY_WRITE_BIT_KHR = 0x00010000ULL;
7420 static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_SAMPLED_READ_BIT = 0x100000000ULL;
7421 static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_SAMPLED_READ_BIT_KHR = 0x100000000ULL;
7422 static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_STORAGE_READ_BIT = 0x200000000ULL;
7423 static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_STORAGE_READ_BIT_KHR = 0x200000000ULL;
7424 static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT = 0x400000000ULL;
7425 static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT_KHR = 0x400000000ULL;
7426 #ifdef VK_ENABLE_BETA_EXTENSIONS
7427 static const VkAccessFlagBits2 VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR = 0x800000000ULL;
7428 #endif
7429 #ifdef VK_ENABLE_BETA_EXTENSIONS
7430 static const VkAccessFlagBits2 VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR = 0x1000000000ULL;
7431 #endif
7432 #ifdef VK_ENABLE_BETA_EXTENSIONS
7433 static const VkAccessFlagBits2 VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR = 0x2000000000ULL;
7434 #endif
7435 #ifdef VK_ENABLE_BETA_EXTENSIONS
7436 static const VkAccessFlagBits2 VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR = 0x4000000000ULL;
7437 #endif
7438 static const VkAccessFlagBits2 VK_ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT = 0x02000000ULL;
7439 static const VkAccessFlagBits2 VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT = 0x04000000ULL;
7440 static const VkAccessFlagBits2 VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT = 0x08000000ULL;
7441 static const VkAccessFlagBits2 VK_ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT = 0x00100000ULL;
7442 static const VkAccessFlagBits2 VK_ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV = 0x00020000ULL;
7443 static const VkAccessFlagBits2 VK_ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV = 0x00040000ULL;
7444 static const VkAccessFlagBits2 VK_ACCESS_2_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR = 0x00800000ULL;
7445 static const VkAccessFlagBits2 VK_ACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV = 0x00800000ULL;
7446 static const VkAccessFlagBits2 VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR = 0x00200000ULL;
7447 static const VkAccessFlagBits2 VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR = 0x00400000ULL;
7448 static const VkAccessFlagBits2 VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_NV = 0x00200000ULL;
7449 static const VkAccessFlagBits2 VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_NV = 0x00400000ULL;
7450 static const VkAccessFlagBits2 VK_ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT = 0x01000000ULL;
7451 static const VkAccessFlagBits2 VK_ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT = 0x00080000ULL;
7452 static const VkAccessFlagBits2 VK_ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI = 0x8000000000ULL;
7453 static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_BINDING_TABLE_READ_BIT_KHR = 0x10000000000ULL;
7454
7455
7456 typedef enum VkSubmitFlagBits {
7457     VK_SUBMIT_PROTECTED_BIT = 0x00000001,
7458     VK_SUBMIT_PROTECTED_BIT_KHR = VK_SUBMIT_PROTECTED_BIT,
7459     VK_SUBMIT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
7460 } VkSubmitFlagBits;
7461 typedef VkFlags VkSubmitFlags;
7462
7463 typedef enum VkRenderingFlagBits {
7464     VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT = 0x00000001,
7465     VK_RENDERING_SUSPENDING_BIT = 0x00000002,
7466     VK_RENDERING_RESUMING_BIT = 0x00000004,
7467     VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT_KHR = VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT,
7468     VK_RENDERING_SUSPENDING_BIT_KHR = VK_RENDERING_SUSPENDING_BIT,
7469     VK_RENDERING_RESUMING_BIT_KHR = VK_RENDERING_RESUMING_BIT,
7470     VK_RENDERING_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
7471 } VkRenderingFlagBits;
7472 typedef VkFlags VkRenderingFlags;
7473 typedef VkFlags64 VkFormatFeatureFlags2;
7474
7475 // Flag bits for VkFormatFeatureFlagBits2
7476 typedef VkFlags64 VkFormatFeatureFlagBits2;
7477 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT = 0x00000001ULL;
7478 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT_KHR = 0x00000001ULL;
7479 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_IMAGE_BIT = 0x00000002ULL;
7480 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_IMAGE_BIT_KHR = 0x00000002ULL;
7481 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_IMAGE_ATOMIC_BIT = 0x00000004ULL;
7482 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_IMAGE_ATOMIC_BIT_KHR = 0x00000004ULL;
7483 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_UNIFORM_TEXEL_BUFFER_BIT = 0x00000008ULL;
7484 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_UNIFORM_TEXEL_BUFFER_BIT_KHR = 0x00000008ULL;
7485 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_BIT = 0x00000010ULL;
7486 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_BIT_KHR = 0x00000010ULL;
7487 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_ATOMIC_BIT = 0x00000020ULL;
7488 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_ATOMIC_BIT_KHR = 0x00000020ULL;
7489 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VERTEX_BUFFER_BIT = 0x00000040ULL;
7490 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VERTEX_BUFFER_BIT_KHR = 0x00000040ULL;
7491 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BIT = 0x00000080ULL;
7492 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BIT_KHR = 0x00000080ULL;
7493 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BLEND_BIT = 0x00000100ULL;
7494 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BLEND_BIT_KHR = 0x00000100ULL;
7495 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000200ULL;
7496 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_DEPTH_STENCIL_ATTACHMENT_BIT_KHR = 0x00000200ULL;
7497 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_BLIT_SRC_BIT = 0x00000400ULL;
7498 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_BLIT_SRC_BIT_KHR = 0x00000400ULL;
7499 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_BLIT_DST_BIT = 0x00000800ULL;
7500 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_BLIT_DST_BIT_KHR = 0x00000800ULL;
7501 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_LINEAR_BIT = 0x00001000ULL;
7502 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_LINEAR_BIT_KHR = 0x00001000ULL;
7503 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_CUBIC_BIT = 0x00002000ULL;
7504 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT = 0x00002000ULL;
7505 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_TRANSFER_SRC_BIT = 0x00004000ULL;
7506 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_TRANSFER_SRC_BIT_KHR = 0x00004000ULL;
7507 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_TRANSFER_DST_BIT = 0x00008000ULL;
7508 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_TRANSFER_DST_BIT_KHR = 0x00008000ULL;
7509 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_MINMAX_BIT = 0x00010000ULL;
7510 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_MINMAX_BIT_KHR = 0x00010000ULL;
7511 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_MIDPOINT_CHROMA_SAMPLES_BIT = 0x00020000ULL;
7512 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_MIDPOINT_CHROMA_SAMPLES_BIT_KHR = 0x00020000ULL;
7513 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT = 0x00040000ULL;
7514 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT_KHR = 0x00040000ULL;
7515 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT = 0x00080000ULL;
7516 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT_KHR = 0x00080000ULL;
7517 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT = 0x00100000ULL;
7518 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT_KHR = 0x00100000ULL;
7519 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT = 0x00200000ULL;
7520 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT_KHR = 0x00200000ULL;
7521 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_DISJOINT_BIT = 0x00400000ULL;
7522 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_DISJOINT_BIT_KHR = 0x00400000ULL;
7523 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_COSITED_CHROMA_SAMPLES_BIT = 0x00800000ULL;
7524 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_COSITED_CHROMA_SAMPLES_BIT_KHR = 0x00800000ULL;
7525 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT = 0x80000000ULL;
7526 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT_KHR = 0x80000000ULL;
7527 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT = 0x100000000ULL;
7528 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT_KHR = 0x100000000ULL;
7529 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT = 0x200000000ULL;
7530 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT_KHR = 0x200000000ULL;
7531 #ifdef VK_ENABLE_BETA_EXTENSIONS
7532 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VIDEO_DECODE_OUTPUT_BIT_KHR = 0x02000000ULL;
7533 #endif
7534 #ifdef VK_ENABLE_BETA_EXTENSIONS
7535 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VIDEO_DECODE_DPB_BIT_KHR = 0x04000000ULL;
7536 #endif
7537 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR = 0x20000000ULL;
7538 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_FRAGMENT_DENSITY_MAP_BIT_EXT = 0x01000000ULL;
7539 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x40000000ULL;
7540 #ifdef VK_ENABLE_BETA_EXTENSIONS
7541 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VIDEO_ENCODE_INPUT_BIT_KHR = 0x08000000ULL;
7542 #endif
7543 #ifdef VK_ENABLE_BETA_EXTENSIONS
7544 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VIDEO_ENCODE_DPB_BIT_KHR = 0x10000000ULL;
7545 #endif
7546 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV = 0x4000000000ULL;
7547
7548 typedef struct VkPhysicalDeviceVulkan13Features {
7549     VkStructureType    sType;
7550     void*              pNext;
7551     VkBool32           robustImageAccess;
7552     VkBool32           inlineUniformBlock;
7553     VkBool32           descriptorBindingInlineUniformBlockUpdateAfterBind;
7554     VkBool32           pipelineCreationCacheControl;
7555     VkBool32           privateData;
7556     VkBool32           shaderDemoteToHelperInvocation;
7557     VkBool32           shaderTerminateInvocation;
7558     VkBool32           subgroupSizeControl;
7559     VkBool32           computeFullSubgroups;
7560     VkBool32           synchronization2;
7561     VkBool32           textureCompressionASTC_HDR;
7562     VkBool32           shaderZeroInitializeWorkgroupMemory;
7563     VkBool32           dynamicRendering;
7564     VkBool32           shaderIntegerDotProduct;
7565     VkBool32           maintenance4;
7566 } VkPhysicalDeviceVulkan13Features;
7567
7568 typedef struct VkPhysicalDeviceVulkan13Properties {
7569     VkStructureType       sType;
7570     void*                 pNext;
7571     deUint32              minSubgroupSize;
7572     deUint32              maxSubgroupSize;
7573     deUint32              maxComputeWorkgroupSubgroups;
7574     VkShaderStageFlags    requiredSubgroupSizeStages;
7575     deUint32              maxInlineUniformBlockSize;
7576     deUint32              maxPerStageDescriptorInlineUniformBlocks;
7577     deUint32              maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks;
7578     deUint32              maxDescriptorSetInlineUniformBlocks;
7579     deUint32              maxDescriptorSetUpdateAfterBindInlineUniformBlocks;
7580     deUint32              maxInlineUniformTotalSize;
7581     VkBool32              integerDotProduct8BitUnsignedAccelerated;
7582     VkBool32              integerDotProduct8BitSignedAccelerated;
7583     VkBool32              integerDotProduct8BitMixedSignednessAccelerated;
7584     VkBool32              integerDotProduct4x8BitPackedUnsignedAccelerated;
7585     VkBool32              integerDotProduct4x8BitPackedSignedAccelerated;
7586     VkBool32              integerDotProduct4x8BitPackedMixedSignednessAccelerated;
7587     VkBool32              integerDotProduct16BitUnsignedAccelerated;
7588     VkBool32              integerDotProduct16BitSignedAccelerated;
7589     VkBool32              integerDotProduct16BitMixedSignednessAccelerated;
7590     VkBool32              integerDotProduct32BitUnsignedAccelerated;
7591     VkBool32              integerDotProduct32BitSignedAccelerated;
7592     VkBool32              integerDotProduct32BitMixedSignednessAccelerated;
7593     VkBool32              integerDotProduct64BitUnsignedAccelerated;
7594     VkBool32              integerDotProduct64BitSignedAccelerated;
7595     VkBool32              integerDotProduct64BitMixedSignednessAccelerated;
7596     VkBool32              integerDotProductAccumulatingSaturating8BitUnsignedAccelerated;
7597     VkBool32              integerDotProductAccumulatingSaturating8BitSignedAccelerated;
7598     VkBool32              integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated;
7599     VkBool32              integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated;
7600     VkBool32              integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated;
7601     VkBool32              integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated;
7602     VkBool32              integerDotProductAccumulatingSaturating16BitUnsignedAccelerated;
7603     VkBool32              integerDotProductAccumulatingSaturating16BitSignedAccelerated;
7604     VkBool32              integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated;
7605     VkBool32              integerDotProductAccumulatingSaturating32BitUnsignedAccelerated;
7606     VkBool32              integerDotProductAccumulatingSaturating32BitSignedAccelerated;
7607     VkBool32              integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated;
7608     VkBool32              integerDotProductAccumulatingSaturating64BitUnsignedAccelerated;
7609     VkBool32              integerDotProductAccumulatingSaturating64BitSignedAccelerated;
7610     VkBool32              integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated;
7611     VkDeviceSize          storageTexelBufferOffsetAlignmentBytes;
7612     VkBool32              storageTexelBufferOffsetSingleTexelAlignment;
7613     VkDeviceSize          uniformTexelBufferOffsetAlignmentBytes;
7614     VkBool32              uniformTexelBufferOffsetSingleTexelAlignment;
7615     VkDeviceSize          maxBufferSize;
7616 } VkPhysicalDeviceVulkan13Properties;
7617
7618 typedef struct VkPipelineCreationFeedback {
7619     VkPipelineCreationFeedbackFlags    flags;
7620     deUint64                           duration;
7621 } VkPipelineCreationFeedback;
7622
7623 typedef struct VkPipelineCreationFeedbackCreateInfo {
7624     VkStructureType                sType;
7625     const void*                    pNext;
7626     VkPipelineCreationFeedback*    pPipelineCreationFeedback;
7627     deUint32                       pipelineStageCreationFeedbackCount;
7628     VkPipelineCreationFeedback*    pPipelineStageCreationFeedbacks;
7629 } VkPipelineCreationFeedbackCreateInfo;
7630
7631 typedef struct VkPhysicalDeviceShaderTerminateInvocationFeatures {
7632     VkStructureType    sType;
7633     void*              pNext;
7634     VkBool32           shaderTerminateInvocation;
7635 } VkPhysicalDeviceShaderTerminateInvocationFeatures;
7636
7637 typedef struct VkPhysicalDeviceToolProperties {
7638     VkStructureType       sType;
7639     void*                 pNext;
7640     char                  name[VK_MAX_EXTENSION_NAME_SIZE];
7641     char                  version[VK_MAX_EXTENSION_NAME_SIZE];
7642     VkToolPurposeFlags    purposes;
7643     char                  description[VK_MAX_DESCRIPTION_SIZE];
7644     char                  layer[VK_MAX_EXTENSION_NAME_SIZE];
7645 } VkPhysicalDeviceToolProperties;
7646
7647 typedef struct VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures {
7648     VkStructureType    sType;
7649     void*              pNext;
7650     VkBool32           shaderDemoteToHelperInvocation;
7651 } VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures;
7652
7653 typedef struct VkPhysicalDevicePrivateDataFeatures {
7654     VkStructureType    sType;
7655     void*              pNext;
7656     VkBool32           privateData;
7657 } VkPhysicalDevicePrivateDataFeatures;
7658
7659 typedef struct VkDevicePrivateDataCreateInfo {
7660     VkStructureType    sType;
7661     const void*        pNext;
7662     deUint32           privateDataSlotRequestCount;
7663 } VkDevicePrivateDataCreateInfo;
7664
7665 typedef struct VkPrivateDataSlotCreateInfo {
7666     VkStructureType                 sType;
7667     const void*                     pNext;
7668     VkPrivateDataSlotCreateFlags    flags;
7669 } VkPrivateDataSlotCreateInfo;
7670
7671 typedef struct VkPhysicalDevicePipelineCreationCacheControlFeatures {
7672     VkStructureType    sType;
7673     void*              pNext;
7674     VkBool32           pipelineCreationCacheControl;
7675 } VkPhysicalDevicePipelineCreationCacheControlFeatures;
7676
7677 typedef struct VkMemoryBarrier2 {
7678     VkStructureType          sType;
7679     const void*              pNext;
7680     VkPipelineStageFlags2    srcStageMask;
7681     VkAccessFlags2           srcAccessMask;
7682     VkPipelineStageFlags2    dstStageMask;
7683     VkAccessFlags2           dstAccessMask;
7684 } VkMemoryBarrier2;
7685
7686 typedef struct VkBufferMemoryBarrier2 {
7687     VkStructureType          sType;
7688     const void*              pNext;
7689     VkPipelineStageFlags2    srcStageMask;
7690     VkAccessFlags2           srcAccessMask;
7691     VkPipelineStageFlags2    dstStageMask;
7692     VkAccessFlags2           dstAccessMask;
7693     deUint32                 srcQueueFamilyIndex;
7694     deUint32                 dstQueueFamilyIndex;
7695     VkBuffer                 buffer;
7696     VkDeviceSize             offset;
7697     VkDeviceSize             size;
7698 } VkBufferMemoryBarrier2;
7699
7700 typedef struct VkImageMemoryBarrier2 {
7701     VkStructureType            sType;
7702     const void*                pNext;
7703     VkPipelineStageFlags2      srcStageMask;
7704     VkAccessFlags2             srcAccessMask;
7705     VkPipelineStageFlags2      dstStageMask;
7706     VkAccessFlags2             dstAccessMask;
7707     VkImageLayout              oldLayout;
7708     VkImageLayout              newLayout;
7709     deUint32                   srcQueueFamilyIndex;
7710     deUint32                   dstQueueFamilyIndex;
7711     VkImage                    image;
7712     VkImageSubresourceRange    subresourceRange;
7713 } VkImageMemoryBarrier2;
7714
7715 typedef struct VkDependencyInfo {
7716     VkStructureType                  sType;
7717     const void*                      pNext;
7718     VkDependencyFlags                dependencyFlags;
7719     deUint32                         memoryBarrierCount;
7720     const VkMemoryBarrier2*          pMemoryBarriers;
7721     deUint32                         bufferMemoryBarrierCount;
7722     const VkBufferMemoryBarrier2*    pBufferMemoryBarriers;
7723     deUint32                         imageMemoryBarrierCount;
7724     const VkImageMemoryBarrier2*     pImageMemoryBarriers;
7725 } VkDependencyInfo;
7726
7727 typedef struct VkSemaphoreSubmitInfo {
7728     VkStructureType          sType;
7729     const void*              pNext;
7730     VkSemaphore              semaphore;
7731     deUint64                 value;
7732     VkPipelineStageFlags2    stageMask;
7733     deUint32                 deviceIndex;
7734 } VkSemaphoreSubmitInfo;
7735
7736 typedef struct VkCommandBufferSubmitInfo {
7737     VkStructureType    sType;
7738     const void*        pNext;
7739     VkCommandBuffer    commandBuffer;
7740     deUint32           deviceMask;
7741 } VkCommandBufferSubmitInfo;
7742
7743 typedef struct VkSubmitInfo2 {
7744     VkStructureType                     sType;
7745     const void*                         pNext;
7746     VkSubmitFlags                       flags;
7747     deUint32                            waitSemaphoreInfoCount;
7748     const VkSemaphoreSubmitInfo*        pWaitSemaphoreInfos;
7749     deUint32                            commandBufferInfoCount;
7750     const VkCommandBufferSubmitInfo*    pCommandBufferInfos;
7751     deUint32                            signalSemaphoreInfoCount;
7752     const VkSemaphoreSubmitInfo*        pSignalSemaphoreInfos;
7753 } VkSubmitInfo2;
7754
7755 typedef struct VkPhysicalDeviceSynchronization2Features {
7756     VkStructureType    sType;
7757     void*              pNext;
7758     VkBool32           synchronization2;
7759 } VkPhysicalDeviceSynchronization2Features;
7760
7761 typedef struct VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures {
7762     VkStructureType    sType;
7763     void*              pNext;
7764     VkBool32           shaderZeroInitializeWorkgroupMemory;
7765 } VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures;
7766
7767 typedef struct VkPhysicalDeviceImageRobustnessFeatures {
7768     VkStructureType    sType;
7769     void*              pNext;
7770     VkBool32           robustImageAccess;
7771 } VkPhysicalDeviceImageRobustnessFeatures;
7772
7773 typedef struct VkBufferCopy2 {
7774     VkStructureType    sType;
7775     const void*        pNext;
7776     VkDeviceSize       srcOffset;
7777     VkDeviceSize       dstOffset;
7778     VkDeviceSize       size;
7779 } VkBufferCopy2;
7780
7781 typedef struct VkCopyBufferInfo2 {
7782     VkStructureType         sType;
7783     const void*             pNext;
7784     VkBuffer                srcBuffer;
7785     VkBuffer                dstBuffer;
7786     deUint32                regionCount;
7787     const VkBufferCopy2*    pRegions;
7788 } VkCopyBufferInfo2;
7789
7790 typedef struct VkImageCopy2 {
7791     VkStructureType             sType;
7792     const void*                 pNext;
7793     VkImageSubresourceLayers    srcSubresource;
7794     VkOffset3D                  srcOffset;
7795     VkImageSubresourceLayers    dstSubresource;
7796     VkOffset3D                  dstOffset;
7797     VkExtent3D                  extent;
7798 } VkImageCopy2;
7799
7800 typedef struct VkCopyImageInfo2 {
7801     VkStructureType        sType;
7802     const void*            pNext;
7803     VkImage                srcImage;
7804     VkImageLayout          srcImageLayout;
7805     VkImage                dstImage;
7806     VkImageLayout          dstImageLayout;
7807     deUint32               regionCount;
7808     const VkImageCopy2*    pRegions;
7809 } VkCopyImageInfo2;
7810
7811 typedef struct VkBufferImageCopy2 {
7812     VkStructureType             sType;
7813     const void*                 pNext;
7814     VkDeviceSize                bufferOffset;
7815     deUint32                    bufferRowLength;
7816     deUint32                    bufferImageHeight;
7817     VkImageSubresourceLayers    imageSubresource;
7818     VkOffset3D                  imageOffset;
7819     VkExtent3D                  imageExtent;
7820 } VkBufferImageCopy2;
7821
7822 typedef struct VkCopyBufferToImageInfo2 {
7823     VkStructureType              sType;
7824     const void*                  pNext;
7825     VkBuffer                     srcBuffer;
7826     VkImage                      dstImage;
7827     VkImageLayout                dstImageLayout;
7828     deUint32                     regionCount;
7829     const VkBufferImageCopy2*    pRegions;
7830 } VkCopyBufferToImageInfo2;
7831
7832 typedef struct VkCopyImageToBufferInfo2 {
7833     VkStructureType              sType;
7834     const void*                  pNext;
7835     VkImage                      srcImage;
7836     VkImageLayout                srcImageLayout;
7837     VkBuffer                     dstBuffer;
7838     deUint32                     regionCount;
7839     const VkBufferImageCopy2*    pRegions;
7840 } VkCopyImageToBufferInfo2;
7841
7842 typedef struct VkImageBlit2 {
7843     VkStructureType             sType;
7844     const void*                 pNext;
7845     VkImageSubresourceLayers    srcSubresource;
7846     VkOffset3D                  srcOffsets[2];
7847     VkImageSubresourceLayers    dstSubresource;
7848     VkOffset3D                  dstOffsets[2];
7849 } VkImageBlit2;
7850
7851 typedef struct VkBlitImageInfo2 {
7852     VkStructureType        sType;
7853     const void*            pNext;
7854     VkImage                srcImage;
7855     VkImageLayout          srcImageLayout;
7856     VkImage                dstImage;
7857     VkImageLayout          dstImageLayout;
7858     deUint32               regionCount;
7859     const VkImageBlit2*    pRegions;
7860     VkFilter               filter;
7861 } VkBlitImageInfo2;
7862
7863 typedef struct VkImageResolve2 {
7864     VkStructureType             sType;
7865     const void*                 pNext;
7866     VkImageSubresourceLayers    srcSubresource;
7867     VkOffset3D                  srcOffset;
7868     VkImageSubresourceLayers    dstSubresource;
7869     VkOffset3D                  dstOffset;
7870     VkExtent3D                  extent;
7871 } VkImageResolve2;
7872
7873 typedef struct VkResolveImageInfo2 {
7874     VkStructureType           sType;
7875     const void*               pNext;
7876     VkImage                   srcImage;
7877     VkImageLayout             srcImageLayout;
7878     VkImage                   dstImage;
7879     VkImageLayout             dstImageLayout;
7880     deUint32                  regionCount;
7881     const VkImageResolve2*    pRegions;
7882 } VkResolveImageInfo2;
7883
7884 typedef struct VkPhysicalDeviceSubgroupSizeControlFeatures {
7885     VkStructureType    sType;
7886     void*              pNext;
7887     VkBool32           subgroupSizeControl;
7888     VkBool32           computeFullSubgroups;
7889 } VkPhysicalDeviceSubgroupSizeControlFeatures;
7890
7891 typedef struct VkPhysicalDeviceSubgroupSizeControlProperties {
7892     VkStructureType       sType;
7893     void*                 pNext;
7894     deUint32              minSubgroupSize;
7895     deUint32              maxSubgroupSize;
7896     deUint32              maxComputeWorkgroupSubgroups;
7897     VkShaderStageFlags    requiredSubgroupSizeStages;
7898 } VkPhysicalDeviceSubgroupSizeControlProperties;
7899
7900 typedef struct VkPipelineShaderStageRequiredSubgroupSizeCreateInfo {
7901     VkStructureType    sType;
7902     void*              pNext;
7903     deUint32           requiredSubgroupSize;
7904 } VkPipelineShaderStageRequiredSubgroupSizeCreateInfo;
7905
7906 typedef struct VkPhysicalDeviceInlineUniformBlockFeatures {
7907     VkStructureType    sType;
7908     void*              pNext;
7909     VkBool32           inlineUniformBlock;
7910     VkBool32           descriptorBindingInlineUniformBlockUpdateAfterBind;
7911 } VkPhysicalDeviceInlineUniformBlockFeatures;
7912
7913 typedef struct VkPhysicalDeviceInlineUniformBlockProperties {
7914     VkStructureType    sType;
7915     void*              pNext;
7916     deUint32           maxInlineUniformBlockSize;
7917     deUint32           maxPerStageDescriptorInlineUniformBlocks;
7918     deUint32           maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks;
7919     deUint32           maxDescriptorSetInlineUniformBlocks;
7920     deUint32           maxDescriptorSetUpdateAfterBindInlineUniformBlocks;
7921 } VkPhysicalDeviceInlineUniformBlockProperties;
7922
7923 typedef struct VkWriteDescriptorSetInlineUniformBlock {
7924     VkStructureType    sType;
7925     const void*        pNext;
7926     deUint32           dataSize;
7927     const void*        pData;
7928 } VkWriteDescriptorSetInlineUniformBlock;
7929
7930 typedef struct VkDescriptorPoolInlineUniformBlockCreateInfo {
7931     VkStructureType    sType;
7932     const void*        pNext;
7933     deUint32           maxInlineUniformBlockBindings;
7934 } VkDescriptorPoolInlineUniformBlockCreateInfo;
7935
7936 typedef struct VkPhysicalDeviceTextureCompressionASTCHDRFeatures {
7937     VkStructureType    sType;
7938     void*              pNext;
7939     VkBool32           textureCompressionASTC_HDR;
7940 } VkPhysicalDeviceTextureCompressionASTCHDRFeatures;
7941
7942 typedef struct VkRenderingAttachmentInfo {
7943     VkStructureType          sType;
7944     const void*              pNext;
7945     VkImageView              imageView;
7946     VkImageLayout            imageLayout;
7947     VkResolveModeFlagBits    resolveMode;
7948     VkImageView              resolveImageView;
7949     VkImageLayout            resolveImageLayout;
7950     VkAttachmentLoadOp       loadOp;
7951     VkAttachmentStoreOp      storeOp;
7952     VkClearValue             clearValue;
7953 } VkRenderingAttachmentInfo;
7954
7955 typedef struct VkRenderingInfo {
7956     VkStructureType                     sType;
7957     const void*                         pNext;
7958     VkRenderingFlags                    flags;
7959     VkRect2D                            renderArea;
7960     deUint32                            layerCount;
7961     deUint32                            viewMask;
7962     deUint32                            colorAttachmentCount;
7963     const VkRenderingAttachmentInfo*    pColorAttachments;
7964     const VkRenderingAttachmentInfo*    pDepthAttachment;
7965     const VkRenderingAttachmentInfo*    pStencilAttachment;
7966 } VkRenderingInfo;
7967
7968 typedef struct VkPipelineRenderingCreateInfo {
7969     VkStructureType    sType;
7970     const void*        pNext;
7971     deUint32           viewMask;
7972     deUint32           colorAttachmentCount;
7973     const VkFormat*    pColorAttachmentFormats;
7974     VkFormat           depthAttachmentFormat;
7975     VkFormat           stencilAttachmentFormat;
7976 } VkPipelineRenderingCreateInfo;
7977
7978 typedef struct VkPhysicalDeviceDynamicRenderingFeatures {
7979     VkStructureType    sType;
7980     void*              pNext;
7981     VkBool32           dynamicRendering;
7982 } VkPhysicalDeviceDynamicRenderingFeatures;
7983
7984 typedef struct VkCommandBufferInheritanceRenderingInfo {
7985     VkStructureType          sType;
7986     const void*              pNext;
7987     VkRenderingFlags         flags;
7988     deUint32                 viewMask;
7989     deUint32                 colorAttachmentCount;
7990     const VkFormat*          pColorAttachmentFormats;
7991     VkFormat                 depthAttachmentFormat;
7992     VkFormat                 stencilAttachmentFormat;
7993     VkSampleCountFlagBits    rasterizationSamples;
7994 } VkCommandBufferInheritanceRenderingInfo;
7995
7996 typedef struct VkPhysicalDeviceShaderIntegerDotProductFeatures {
7997     VkStructureType    sType;
7998     void*              pNext;
7999     VkBool32           shaderIntegerDotProduct;
8000 } VkPhysicalDeviceShaderIntegerDotProductFeatures;
8001
8002 typedef struct VkPhysicalDeviceShaderIntegerDotProductProperties {
8003     VkStructureType    sType;
8004     void*              pNext;
8005     VkBool32           integerDotProduct8BitUnsignedAccelerated;
8006     VkBool32           integerDotProduct8BitSignedAccelerated;
8007     VkBool32           integerDotProduct8BitMixedSignednessAccelerated;
8008     VkBool32           integerDotProduct4x8BitPackedUnsignedAccelerated;
8009     VkBool32           integerDotProduct4x8BitPackedSignedAccelerated;
8010     VkBool32           integerDotProduct4x8BitPackedMixedSignednessAccelerated;
8011     VkBool32           integerDotProduct16BitUnsignedAccelerated;
8012     VkBool32           integerDotProduct16BitSignedAccelerated;
8013     VkBool32           integerDotProduct16BitMixedSignednessAccelerated;
8014     VkBool32           integerDotProduct32BitUnsignedAccelerated;
8015     VkBool32           integerDotProduct32BitSignedAccelerated;
8016     VkBool32           integerDotProduct32BitMixedSignednessAccelerated;
8017     VkBool32           integerDotProduct64BitUnsignedAccelerated;
8018     VkBool32           integerDotProduct64BitSignedAccelerated;
8019     VkBool32           integerDotProduct64BitMixedSignednessAccelerated;
8020     VkBool32           integerDotProductAccumulatingSaturating8BitUnsignedAccelerated;
8021     VkBool32           integerDotProductAccumulatingSaturating8BitSignedAccelerated;
8022     VkBool32           integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated;
8023     VkBool32           integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated;
8024     VkBool32           integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated;
8025     VkBool32           integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated;
8026     VkBool32           integerDotProductAccumulatingSaturating16BitUnsignedAccelerated;
8027     VkBool32           integerDotProductAccumulatingSaturating16BitSignedAccelerated;
8028     VkBool32           integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated;
8029     VkBool32           integerDotProductAccumulatingSaturating32BitUnsignedAccelerated;
8030     VkBool32           integerDotProductAccumulatingSaturating32BitSignedAccelerated;
8031     VkBool32           integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated;
8032     VkBool32           integerDotProductAccumulatingSaturating64BitUnsignedAccelerated;
8033     VkBool32           integerDotProductAccumulatingSaturating64BitSignedAccelerated;
8034     VkBool32           integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated;
8035 } VkPhysicalDeviceShaderIntegerDotProductProperties;
8036
8037 typedef struct VkPhysicalDeviceTexelBufferAlignmentProperties {
8038     VkStructureType    sType;
8039     void*              pNext;
8040     VkDeviceSize       storageTexelBufferOffsetAlignmentBytes;
8041     VkBool32           storageTexelBufferOffsetSingleTexelAlignment;
8042     VkDeviceSize       uniformTexelBufferOffsetAlignmentBytes;
8043     VkBool32           uniformTexelBufferOffsetSingleTexelAlignment;
8044 } VkPhysicalDeviceTexelBufferAlignmentProperties;
8045
8046 typedef struct VkFormatProperties3 {
8047     VkStructureType          sType;
8048     void*                    pNext;
8049     VkFormatFeatureFlags2    linearTilingFeatures;
8050     VkFormatFeatureFlags2    optimalTilingFeatures;
8051     VkFormatFeatureFlags2    bufferFeatures;
8052 } VkFormatProperties3;
8053
8054 typedef struct VkPhysicalDeviceMaintenance4Features {
8055     VkStructureType    sType;
8056     void*              pNext;
8057     VkBool32           maintenance4;
8058 } VkPhysicalDeviceMaintenance4Features;
8059
8060 typedef struct VkPhysicalDeviceMaintenance4Properties {
8061     VkStructureType    sType;
8062     void*              pNext;
8063     VkDeviceSize       maxBufferSize;
8064 } VkPhysicalDeviceMaintenance4Properties;
8065
8066 typedef struct VkDeviceBufferMemoryRequirements {
8067     VkStructureType              sType;
8068     const void*                  pNext;
8069     const VkBufferCreateInfo*    pCreateInfo;
8070 } VkDeviceBufferMemoryRequirements;
8071
8072 typedef struct VkDeviceImageMemoryRequirements {
8073     VkStructureType             sType;
8074     const void*                 pNext;
8075     const VkImageCreateInfo*    pCreateInfo;
8076     VkImageAspectFlagBits       planeAspect;
8077 } VkDeviceImageMemoryRequirements;
8078
8079 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceToolProperties)(VkPhysicalDevice physicalDevice, deUint32* pToolCount, VkPhysicalDeviceToolProperties* pToolProperties);
8080 typedef VkResult (VKAPI_PTR *PFN_vkCreatePrivateDataSlot)(VkDevice device, const VkPrivateDataSlotCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPrivateDataSlot* pPrivateDataSlot);
8081 typedef void (VKAPI_PTR *PFN_vkDestroyPrivateDataSlot)(VkDevice device, VkPrivateDataSlot privateDataSlot, const VkAllocationCallbacks* pAllocator);
8082 typedef VkResult (VKAPI_PTR *PFN_vkSetPrivateData)(VkDevice device, VkObjectType objectType, deUint64 objectHandle, VkPrivateDataSlot privateDataSlot, deUint64 data);
8083 typedef void (VKAPI_PTR *PFN_vkGetPrivateData)(VkDevice device, VkObjectType objectType, deUint64 objectHandle, VkPrivateDataSlot privateDataSlot, deUint64* pData);
8084 typedef void (VKAPI_PTR *PFN_vkCmdSetEvent2)(VkCommandBuffer                   commandBuffer, VkEvent                                             event, const VkDependencyInfo*                             pDependencyInfo);
8085 typedef void (VKAPI_PTR *PFN_vkCmdResetEvent2)(VkCommandBuffer                   commandBuffer, VkEvent                                             event, VkPipelineStageFlags2               stageMask);
8086 typedef void (VKAPI_PTR *PFN_vkCmdWaitEvents2)(VkCommandBuffer                   commandBuffer, deUint32                                            eventCount, const VkEvent*                     pEvents, const VkDependencyInfo*            pDependencyInfos);
8087 typedef void (VKAPI_PTR *PFN_vkCmdPipelineBarrier2)(VkCommandBuffer                   commandBuffer, const VkDependencyInfo*                             pDependencyInfo);
8088 typedef void (VKAPI_PTR *PFN_vkCmdWriteTimestamp2)(VkCommandBuffer                   commandBuffer, VkPipelineStageFlags2               stage, VkQueryPool                                         queryPool, deUint32                                            query);
8089 typedef VkResult (VKAPI_PTR *PFN_vkQueueSubmit2)(VkQueue                           queue, deUint32                            submitCount, const VkSubmitInfo2*              pSubmits, VkFence           fence);
8090 typedef void (VKAPI_PTR *PFN_vkCmdCopyBuffer2)(VkCommandBuffer commandBuffer, const VkCopyBufferInfo2* pCopyBufferInfo);
8091 typedef void (VKAPI_PTR *PFN_vkCmdCopyImage2)(VkCommandBuffer commandBuffer, const VkCopyImageInfo2* pCopyImageInfo);
8092 typedef void (VKAPI_PTR *PFN_vkCmdCopyBufferToImage2)(VkCommandBuffer commandBuffer, const VkCopyBufferToImageInfo2* pCopyBufferToImageInfo);
8093 typedef void (VKAPI_PTR *PFN_vkCmdCopyImageToBuffer2)(VkCommandBuffer commandBuffer, const VkCopyImageToBufferInfo2* pCopyImageToBufferInfo);
8094 typedef void (VKAPI_PTR *PFN_vkCmdBlitImage2)(VkCommandBuffer commandBuffer, const VkBlitImageInfo2* pBlitImageInfo);
8095 typedef void (VKAPI_PTR *PFN_vkCmdResolveImage2)(VkCommandBuffer commandBuffer, const VkResolveImageInfo2* pResolveImageInfo);
8096 typedef void (VKAPI_PTR *PFN_vkCmdBeginRendering)(VkCommandBuffer                   commandBuffer, const VkRenderingInfo*                              pRenderingInfo);
8097 typedef void (VKAPI_PTR *PFN_vkCmdEndRendering)(VkCommandBuffer                   commandBuffer);
8098 typedef void (VKAPI_PTR *PFN_vkCmdSetCullMode)(VkCommandBuffer commandBuffer, VkCullModeFlags cullMode);
8099 typedef void (VKAPI_PTR *PFN_vkCmdSetFrontFace)(VkCommandBuffer commandBuffer, VkFrontFace frontFace);
8100 typedef void (VKAPI_PTR *PFN_vkCmdSetPrimitiveTopology)(VkCommandBuffer commandBuffer, VkPrimitiveTopology primitiveTopology);
8101 typedef void (VKAPI_PTR *PFN_vkCmdSetViewportWithCount)(VkCommandBuffer commandBuffer, deUint32 viewportCount, const VkViewport* pViewports);
8102 typedef void (VKAPI_PTR *PFN_vkCmdSetScissorWithCount)(VkCommandBuffer commandBuffer, deUint32 scissorCount, const VkRect2D* pScissors);
8103 typedef void (VKAPI_PTR *PFN_vkCmdBindVertexBuffers2)(VkCommandBuffer commandBuffer, deUint32 firstBinding, deUint32 bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets, const VkDeviceSize* pSizes, const VkDeviceSize* pStrides);
8104 typedef void (VKAPI_PTR *PFN_vkCmdSetDepthTestEnable)(VkCommandBuffer commandBuffer, VkBool32 depthTestEnable);
8105 typedef void (VKAPI_PTR *PFN_vkCmdSetDepthWriteEnable)(VkCommandBuffer commandBuffer, VkBool32 depthWriteEnable);
8106 typedef void (VKAPI_PTR *PFN_vkCmdSetDepthCompareOp)(VkCommandBuffer commandBuffer, VkCompareOp depthCompareOp);
8107 typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBoundsTestEnable)(VkCommandBuffer commandBuffer, VkBool32 depthBoundsTestEnable);
8108 typedef void (VKAPI_PTR *PFN_vkCmdSetStencilTestEnable)(VkCommandBuffer commandBuffer, VkBool32 stencilTestEnable);
8109 typedef void (VKAPI_PTR *PFN_vkCmdSetStencilOp)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, VkStencilOp failOp, VkStencilOp passOp, VkStencilOp depthFailOp, VkCompareOp compareOp);
8110 typedef void (VKAPI_PTR *PFN_vkCmdSetRasterizerDiscardEnable)(VkCommandBuffer commandBuffer, VkBool32 rasterizerDiscardEnable);
8111 typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBiasEnable)(VkCommandBuffer commandBuffer, VkBool32 depthBiasEnable);
8112 typedef void (VKAPI_PTR *PFN_vkCmdSetPrimitiveRestartEnable)(VkCommandBuffer commandBuffer, VkBool32 primitiveRestartEnable);
8113 typedef void (VKAPI_PTR *PFN_vkGetDeviceBufferMemoryRequirements)(VkDevice device, const VkDeviceBufferMemoryRequirements* pInfo, VkMemoryRequirements2* pMemoryRequirements);
8114 typedef void (VKAPI_PTR *PFN_vkGetDeviceImageMemoryRequirements)(VkDevice device, const VkDeviceImageMemoryRequirements* pInfo, VkMemoryRequirements2* pMemoryRequirements);
8115 typedef void (VKAPI_PTR *PFN_vkGetDeviceImageSparseMemoryRequirements)(VkDevice device, const VkDeviceImageMemoryRequirements* pInfo, deUint32* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements);
8116
8117 #ifndef VK_NO_PROTOTYPES
8118 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceToolProperties(
8119     VkPhysicalDevice                            physicalDevice,
8120     deUint32*                                   pToolCount,
8121     VkPhysicalDeviceToolProperties*             pToolProperties);
8122
8123 VKAPI_ATTR VkResult VKAPI_CALL vkCreatePrivateDataSlot(
8124     VkDevice                                    device,
8125     const VkPrivateDataSlotCreateInfo*          pCreateInfo,
8126     const VkAllocationCallbacks*                pAllocator,
8127     VkPrivateDataSlot*                          pPrivateDataSlot);
8128
8129 VKAPI_ATTR void VKAPI_CALL vkDestroyPrivateDataSlot(
8130     VkDevice                                    device,
8131     VkPrivateDataSlot                           privateDataSlot,
8132     const VkAllocationCallbacks*                pAllocator);
8133
8134 VKAPI_ATTR VkResult VKAPI_CALL vkSetPrivateData(
8135     VkDevice                                    device,
8136     VkObjectType                                objectType,
8137     deUint64                                    objectHandle,
8138     VkPrivateDataSlot                           privateDataSlot,
8139     deUint64                                    data);
8140
8141 VKAPI_ATTR void VKAPI_CALL vkGetPrivateData(
8142     VkDevice                                    device,
8143     VkObjectType                                objectType,
8144     deUint64                                    objectHandle,
8145     VkPrivateDataSlot                           privateDataSlot,
8146     deUint64*                                   pData);
8147
8148 VKAPI_ATTR void VKAPI_CALL vkCmdSetEvent2(
8149     VkCommandBuffer                             commandBuffer,
8150     VkEvent                                     event,
8151     const VkDependencyInfo*                     pDependencyInfo);
8152
8153 VKAPI_ATTR void VKAPI_CALL vkCmdResetEvent2(
8154     VkCommandBuffer                             commandBuffer,
8155     VkEvent                                     event,
8156     VkPipelineStageFlags2                       stageMask);
8157
8158 VKAPI_ATTR void VKAPI_CALL vkCmdWaitEvents2(
8159     VkCommandBuffer                             commandBuffer,
8160     deUint32                                    eventCount,
8161     const VkEvent*                              pEvents,
8162     const VkDependencyInfo*                     pDependencyInfos);
8163
8164 VKAPI_ATTR void VKAPI_CALL vkCmdPipelineBarrier2(
8165     VkCommandBuffer                             commandBuffer,
8166     const VkDependencyInfo*                     pDependencyInfo);
8167
8168 VKAPI_ATTR void VKAPI_CALL vkCmdWriteTimestamp2(
8169     VkCommandBuffer                             commandBuffer,
8170     VkPipelineStageFlags2                       stage,
8171     VkQueryPool                                 queryPool,
8172     deUint32                                    query);
8173
8174 VKAPI_ATTR VkResult VKAPI_CALL vkQueueSubmit2(
8175     VkQueue                                     queue,
8176     deUint32                                    submitCount,
8177     const VkSubmitInfo2*                        pSubmits,
8178     VkFence                                     fence);
8179
8180 VKAPI_ATTR void VKAPI_CALL vkCmdCopyBuffer2(
8181     VkCommandBuffer                             commandBuffer,
8182     const VkCopyBufferInfo2*                    pCopyBufferInfo);
8183
8184 VKAPI_ATTR void VKAPI_CALL vkCmdCopyImage2(
8185     VkCommandBuffer                             commandBuffer,
8186     const VkCopyImageInfo2*                     pCopyImageInfo);
8187
8188 VKAPI_ATTR void VKAPI_CALL vkCmdCopyBufferToImage2(
8189     VkCommandBuffer                             commandBuffer,
8190     const VkCopyBufferToImageInfo2*             pCopyBufferToImageInfo);
8191
8192 VKAPI_ATTR void VKAPI_CALL vkCmdCopyImageToBuffer2(
8193     VkCommandBuffer                             commandBuffer,
8194     const VkCopyImageToBufferInfo2*             pCopyImageToBufferInfo);
8195
8196 VKAPI_ATTR void VKAPI_CALL vkCmdBlitImage2(
8197     VkCommandBuffer                             commandBuffer,
8198     const VkBlitImageInfo2*                     pBlitImageInfo);
8199
8200 VKAPI_ATTR void VKAPI_CALL vkCmdResolveImage2(
8201     VkCommandBuffer                             commandBuffer,
8202     const VkResolveImageInfo2*                  pResolveImageInfo);
8203
8204 VKAPI_ATTR void VKAPI_CALL vkCmdBeginRendering(
8205     VkCommandBuffer                             commandBuffer,
8206     const VkRenderingInfo*                      pRenderingInfo);
8207
8208 VKAPI_ATTR void VKAPI_CALL vkCmdEndRendering(
8209     VkCommandBuffer                             commandBuffer);
8210
8211 VKAPI_ATTR void VKAPI_CALL vkCmdSetCullMode(
8212     VkCommandBuffer                             commandBuffer,
8213     VkCullModeFlags                             cullMode);
8214
8215 VKAPI_ATTR void VKAPI_CALL vkCmdSetFrontFace(
8216     VkCommandBuffer                             commandBuffer,
8217     VkFrontFace                                 frontFace);
8218
8219 VKAPI_ATTR void VKAPI_CALL vkCmdSetPrimitiveTopology(
8220     VkCommandBuffer                             commandBuffer,
8221     VkPrimitiveTopology                         primitiveTopology);
8222
8223 VKAPI_ATTR void VKAPI_CALL vkCmdSetViewportWithCount(
8224     VkCommandBuffer                             commandBuffer,
8225     deUint32                                    viewportCount,
8226     const VkViewport*                           pViewports);
8227
8228 VKAPI_ATTR void VKAPI_CALL vkCmdSetScissorWithCount(
8229     VkCommandBuffer                             commandBuffer,
8230     deUint32                                    scissorCount,
8231     const VkRect2D*                             pScissors);
8232
8233 VKAPI_ATTR void VKAPI_CALL vkCmdBindVertexBuffers2(
8234     VkCommandBuffer                             commandBuffer,
8235     deUint32                                    firstBinding,
8236     deUint32                                    bindingCount,
8237     const VkBuffer*                             pBuffers,
8238     const VkDeviceSize*                         pOffsets,
8239     const VkDeviceSize*                         pSizes,
8240     const VkDeviceSize*                         pStrides);
8241
8242 VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthTestEnable(
8243     VkCommandBuffer                             commandBuffer,
8244     VkBool32                                    depthTestEnable);
8245
8246 VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthWriteEnable(
8247     VkCommandBuffer                             commandBuffer,
8248     VkBool32                                    depthWriteEnable);
8249
8250 VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthCompareOp(
8251     VkCommandBuffer                             commandBuffer,
8252     VkCompareOp                                 depthCompareOp);
8253
8254 VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBoundsTestEnable(
8255     VkCommandBuffer                             commandBuffer,
8256     VkBool32                                    depthBoundsTestEnable);
8257
8258 VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilTestEnable(
8259     VkCommandBuffer                             commandBuffer,
8260     VkBool32                                    stencilTestEnable);
8261
8262 VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilOp(
8263     VkCommandBuffer                             commandBuffer,
8264     VkStencilFaceFlags                          faceMask,
8265     VkStencilOp                                 failOp,
8266     VkStencilOp                                 passOp,
8267     VkStencilOp                                 depthFailOp,
8268     VkCompareOp                                 compareOp);
8269
8270 VKAPI_ATTR void VKAPI_CALL vkCmdSetRasterizerDiscardEnable(
8271     VkCommandBuffer                             commandBuffer,
8272     VkBool32                                    rasterizerDiscardEnable);
8273
8274 VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBiasEnable(
8275     VkCommandBuffer                             commandBuffer,
8276     VkBool32                                    depthBiasEnable);
8277
8278 VKAPI_ATTR void VKAPI_CALL vkCmdSetPrimitiveRestartEnable(
8279     VkCommandBuffer                             commandBuffer,
8280     VkBool32                                    primitiveRestartEnable);
8281
8282 VKAPI_ATTR void VKAPI_CALL vkGetDeviceBufferMemoryRequirements(
8283     VkDevice                                    device,
8284     const VkDeviceBufferMemoryRequirements*     pInfo,
8285     VkMemoryRequirements2*                      pMemoryRequirements);
8286
8287 VKAPI_ATTR void VKAPI_CALL vkGetDeviceImageMemoryRequirements(
8288     VkDevice                                    device,
8289     const VkDeviceImageMemoryRequirements*      pInfo,
8290     VkMemoryRequirements2*                      pMemoryRequirements);
8291
8292 VKAPI_ATTR void VKAPI_CALL vkGetDeviceImageSparseMemoryRequirements(
8293     VkDevice                                    device,
8294     const VkDeviceImageMemoryRequirements*      pInfo,
8295     deUint32*                                   pSparseMemoryRequirementCount,
8296     VkSparseImageMemoryRequirements2*           pSparseMemoryRequirements);
8297 #endif
8298
8299
8300 #define VK_KHR_surface 1
8301 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSurfaceKHR)
8302 #define VK_KHR_SURFACE_SPEC_VERSION       25
8303 #define VK_KHR_SURFACE_EXTENSION_NAME     "VK_KHR_surface"
8304
8305 typedef enum VkPresentModeKHR {
8306     VK_PRESENT_MODE_IMMEDIATE_KHR = 0,
8307     VK_PRESENT_MODE_MAILBOX_KHR = 1,
8308     VK_PRESENT_MODE_FIFO_KHR = 2,
8309     VK_PRESENT_MODE_FIFO_RELAXED_KHR = 3,
8310     VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR = 1000111000,
8311     VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR = 1000111001,
8312     VK_PRESENT_MODE_MAX_ENUM_KHR = 0x7FFFFFFF
8313 } VkPresentModeKHR;
8314
8315 typedef enum VkColorSpaceKHR {
8316     VK_COLOR_SPACE_SRGB_NONLINEAR_KHR = 0,
8317     VK_COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT = 1000104001,
8318     VK_COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT = 1000104002,
8319     VK_COLOR_SPACE_DISPLAY_P3_LINEAR_EXT = 1000104003,
8320     VK_COLOR_SPACE_DCI_P3_NONLINEAR_EXT = 1000104004,
8321     VK_COLOR_SPACE_BT709_LINEAR_EXT = 1000104005,
8322     VK_COLOR_SPACE_BT709_NONLINEAR_EXT = 1000104006,
8323     VK_COLOR_SPACE_BT2020_LINEAR_EXT = 1000104007,
8324     VK_COLOR_SPACE_HDR10_ST2084_EXT = 1000104008,
8325     VK_COLOR_SPACE_DOLBYVISION_EXT = 1000104009,
8326     VK_COLOR_SPACE_HDR10_HLG_EXT = 1000104010,
8327     VK_COLOR_SPACE_ADOBERGB_LINEAR_EXT = 1000104011,
8328     VK_COLOR_SPACE_ADOBERGB_NONLINEAR_EXT = 1000104012,
8329     VK_COLOR_SPACE_PASS_THROUGH_EXT = 1000104013,
8330     VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT = 1000104014,
8331     VK_COLOR_SPACE_DISPLAY_NATIVE_AMD = 1000213000,
8332     VK_COLORSPACE_SRGB_NONLINEAR_KHR = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR,
8333     VK_COLOR_SPACE_DCI_P3_LINEAR_EXT = VK_COLOR_SPACE_DISPLAY_P3_LINEAR_EXT,
8334     VK_COLOR_SPACE_MAX_ENUM_KHR = 0x7FFFFFFF
8335 } VkColorSpaceKHR;
8336
8337 typedef enum VkSurfaceTransformFlagBitsKHR {
8338     VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR = 0x00000001,
8339     VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR = 0x00000002,
8340     VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR = 0x00000004,
8341     VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR = 0x00000008,
8342     VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR = 0x00000010,
8343     VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR = 0x00000020,
8344     VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR = 0x00000040,
8345     VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR = 0x00000080,
8346     VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR = 0x00000100,
8347     VK_SURFACE_TRANSFORM_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
8348 } VkSurfaceTransformFlagBitsKHR;
8349
8350 typedef enum VkCompositeAlphaFlagBitsKHR {
8351     VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR = 0x00000001,
8352     VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR = 0x00000002,
8353     VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR = 0x00000004,
8354     VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR = 0x00000008,
8355     VK_COMPOSITE_ALPHA_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
8356 } VkCompositeAlphaFlagBitsKHR;
8357 typedef VkFlags VkCompositeAlphaFlagsKHR;
8358 typedef VkFlags VkSurfaceTransformFlagsKHR;
8359 typedef struct VkSurfaceCapabilitiesKHR {
8360     deUint32                         minImageCount;
8361     deUint32                         maxImageCount;
8362     VkExtent2D                       currentExtent;
8363     VkExtent2D                       minImageExtent;
8364     VkExtent2D                       maxImageExtent;
8365     deUint32                         maxImageArrayLayers;
8366     VkSurfaceTransformFlagsKHR       supportedTransforms;
8367     VkSurfaceTransformFlagBitsKHR    currentTransform;
8368     VkCompositeAlphaFlagsKHR         supportedCompositeAlpha;
8369     VkImageUsageFlags                supportedUsageFlags;
8370 } VkSurfaceCapabilitiesKHR;
8371
8372 typedef struct VkSurfaceFormatKHR {
8373     VkFormat           format;
8374     VkColorSpaceKHR    colorSpace;
8375 } VkSurfaceFormatKHR;
8376
8377 typedef void (VKAPI_PTR *PFN_vkDestroySurfaceKHR)(VkInstance instance, VkSurfaceKHR surface, const VkAllocationCallbacks* pAllocator);
8378 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceSupportKHR)(VkPhysicalDevice physicalDevice, deUint32 queueFamilyIndex, VkSurfaceKHR surface, VkBool32* pSupported);
8379 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilitiesKHR* pSurfaceCapabilities);
8380 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceFormatsKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, deUint32* pSurfaceFormatCount, VkSurfaceFormatKHR* pSurfaceFormats);
8381 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfacePresentModesKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, deUint32* pPresentModeCount, VkPresentModeKHR* pPresentModes);
8382
8383 #ifndef VK_NO_PROTOTYPES
8384 VKAPI_ATTR void VKAPI_CALL vkDestroySurfaceKHR(
8385     VkInstance                                  instance,
8386     VkSurfaceKHR                                surface,
8387     const VkAllocationCallbacks*                pAllocator);
8388
8389 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceSupportKHR(
8390     VkPhysicalDevice                            physicalDevice,
8391     deUint32                                    queueFamilyIndex,
8392     VkSurfaceKHR                                surface,
8393     VkBool32*                                   pSupported);
8394
8395 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceCapabilitiesKHR(
8396     VkPhysicalDevice                            physicalDevice,
8397     VkSurfaceKHR                                surface,
8398     VkSurfaceCapabilitiesKHR*                   pSurfaceCapabilities);
8399
8400 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceFormatsKHR(
8401     VkPhysicalDevice                            physicalDevice,
8402     VkSurfaceKHR                                surface,
8403     deUint32*                                   pSurfaceFormatCount,
8404     VkSurfaceFormatKHR*                         pSurfaceFormats);
8405
8406 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfacePresentModesKHR(
8407     VkPhysicalDevice                            physicalDevice,
8408     VkSurfaceKHR                                surface,
8409     deUint32*                                   pPresentModeCount,
8410     VkPresentModeKHR*                           pPresentModes);
8411 #endif
8412
8413
8414 #define VK_KHR_swapchain 1
8415 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSwapchainKHR)
8416 #define VK_KHR_SWAPCHAIN_SPEC_VERSION     70
8417 #define VK_KHR_SWAPCHAIN_EXTENSION_NAME   "VK_KHR_swapchain"
8418
8419 typedef enum VkSwapchainCreateFlagBitsKHR {
8420     VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR = 0x00000001,
8421     VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR = 0x00000002,
8422     VK_SWAPCHAIN_CREATE_MUTABLE_FORMAT_BIT_KHR = 0x00000004,
8423     VK_SWAPCHAIN_CREATE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
8424 } VkSwapchainCreateFlagBitsKHR;
8425 typedef VkFlags VkSwapchainCreateFlagsKHR;
8426
8427 typedef enum VkDeviceGroupPresentModeFlagBitsKHR {
8428     VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR = 0x00000001,
8429     VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR = 0x00000002,
8430     VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR = 0x00000004,
8431     VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR = 0x00000008,
8432     VK_DEVICE_GROUP_PRESENT_MODE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
8433 } VkDeviceGroupPresentModeFlagBitsKHR;
8434 typedef VkFlags VkDeviceGroupPresentModeFlagsKHR;
8435 typedef struct VkSwapchainCreateInfoKHR {
8436     VkStructureType                  sType;
8437     const void*                      pNext;
8438     VkSwapchainCreateFlagsKHR        flags;
8439     VkSurfaceKHR                     surface;
8440     deUint32                         minImageCount;
8441     VkFormat                         imageFormat;
8442     VkColorSpaceKHR                  imageColorSpace;
8443     VkExtent2D                       imageExtent;
8444     deUint32                         imageArrayLayers;
8445     VkImageUsageFlags                imageUsage;
8446     VkSharingMode                    imageSharingMode;
8447     deUint32                         queueFamilyIndexCount;
8448     const deUint32*                  pQueueFamilyIndices;
8449     VkSurfaceTransformFlagBitsKHR    preTransform;
8450     VkCompositeAlphaFlagBitsKHR      compositeAlpha;
8451     VkPresentModeKHR                 presentMode;
8452     VkBool32                         clipped;
8453     VkSwapchainKHR                   oldSwapchain;
8454 } VkSwapchainCreateInfoKHR;
8455
8456 typedef struct VkPresentInfoKHR {
8457     VkStructureType          sType;
8458     const void*              pNext;
8459     deUint32                 waitSemaphoreCount;
8460     const VkSemaphore*       pWaitSemaphores;
8461     deUint32                 swapchainCount;
8462     const VkSwapchainKHR*    pSwapchains;
8463     const deUint32*          pImageIndices;
8464     VkResult*                pResults;
8465 } VkPresentInfoKHR;
8466
8467 typedef struct VkImageSwapchainCreateInfoKHR {
8468     VkStructureType    sType;
8469     const void*        pNext;
8470     VkSwapchainKHR     swapchain;
8471 } VkImageSwapchainCreateInfoKHR;
8472
8473 typedef struct VkBindImageMemorySwapchainInfoKHR {
8474     VkStructureType    sType;
8475     const void*        pNext;
8476     VkSwapchainKHR     swapchain;
8477     deUint32           imageIndex;
8478 } VkBindImageMemorySwapchainInfoKHR;
8479
8480 typedef struct VkAcquireNextImageInfoKHR {
8481     VkStructureType    sType;
8482     const void*        pNext;
8483     VkSwapchainKHR     swapchain;
8484     deUint64           timeout;
8485     VkSemaphore        semaphore;
8486     VkFence            fence;
8487     deUint32           deviceMask;
8488 } VkAcquireNextImageInfoKHR;
8489
8490 typedef struct VkDeviceGroupPresentCapabilitiesKHR {
8491     VkStructureType                     sType;
8492     void*                               pNext;
8493     deUint32                            presentMask[VK_MAX_DEVICE_GROUP_SIZE];
8494     VkDeviceGroupPresentModeFlagsKHR    modes;
8495 } VkDeviceGroupPresentCapabilitiesKHR;
8496
8497 typedef struct VkDeviceGroupPresentInfoKHR {
8498     VkStructureType                        sType;
8499     const void*                            pNext;
8500     deUint32                               swapchainCount;
8501     const deUint32*                        pDeviceMasks;
8502     VkDeviceGroupPresentModeFlagBitsKHR    mode;
8503 } VkDeviceGroupPresentInfoKHR;
8504
8505 typedef struct VkDeviceGroupSwapchainCreateInfoKHR {
8506     VkStructureType                     sType;
8507     const void*                         pNext;
8508     VkDeviceGroupPresentModeFlagsKHR    modes;
8509 } VkDeviceGroupSwapchainCreateInfoKHR;
8510
8511 typedef VkResult (VKAPI_PTR *PFN_vkCreateSwapchainKHR)(VkDevice device, const VkSwapchainCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchain);
8512 typedef void (VKAPI_PTR *PFN_vkDestroySwapchainKHR)(VkDevice device, VkSwapchainKHR swapchain, const VkAllocationCallbacks* pAllocator);
8513 typedef VkResult (VKAPI_PTR *PFN_vkGetSwapchainImagesKHR)(VkDevice device, VkSwapchainKHR swapchain, deUint32* pSwapchainImageCount, VkImage* pSwapchainImages);
8514 typedef VkResult (VKAPI_PTR *PFN_vkAcquireNextImageKHR)(VkDevice device, VkSwapchainKHR swapchain, deUint64 timeout, VkSemaphore semaphore, VkFence fence, deUint32* pImageIndex);
8515 typedef VkResult (VKAPI_PTR *PFN_vkQueuePresentKHR)(VkQueue queue, const VkPresentInfoKHR* pPresentInfo);
8516 typedef VkResult (VKAPI_PTR *PFN_vkGetDeviceGroupPresentCapabilitiesKHR)(VkDevice device, VkDeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities);
8517 typedef VkResult (VKAPI_PTR *PFN_vkGetDeviceGroupSurfacePresentModesKHR)(VkDevice device, VkSurfaceKHR surface, VkDeviceGroupPresentModeFlagsKHR* pModes);
8518 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDevicePresentRectanglesKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, deUint32* pRectCount, VkRect2D* pRects);
8519 typedef VkResult (VKAPI_PTR *PFN_vkAcquireNextImage2KHR)(VkDevice device, const VkAcquireNextImageInfoKHR* pAcquireInfo, deUint32* pImageIndex);
8520
8521 #ifndef VK_NO_PROTOTYPES
8522 VKAPI_ATTR VkResult VKAPI_CALL vkCreateSwapchainKHR(
8523     VkDevice                                    device,
8524     const VkSwapchainCreateInfoKHR*             pCreateInfo,
8525     const VkAllocationCallbacks*                pAllocator,
8526     VkSwapchainKHR*                             pSwapchain);
8527
8528 VKAPI_ATTR void VKAPI_CALL vkDestroySwapchainKHR(
8529     VkDevice                                    device,
8530     VkSwapchainKHR                              swapchain,
8531     const VkAllocationCallbacks*                pAllocator);
8532
8533 VKAPI_ATTR VkResult VKAPI_CALL vkGetSwapchainImagesKHR(
8534     VkDevice                                    device,
8535     VkSwapchainKHR                              swapchain,
8536     deUint32*                                   pSwapchainImageCount,
8537     VkImage*                                    pSwapchainImages);
8538
8539 VKAPI_ATTR VkResult VKAPI_CALL vkAcquireNextImageKHR(
8540     VkDevice                                    device,
8541     VkSwapchainKHR                              swapchain,
8542     deUint64                                    timeout,
8543     VkSemaphore                                 semaphore,
8544     VkFence                                     fence,
8545     deUint32*                                   pImageIndex);
8546
8547 VKAPI_ATTR VkResult VKAPI_CALL vkQueuePresentKHR(
8548     VkQueue                                     queue,
8549     const VkPresentInfoKHR*                     pPresentInfo);
8550
8551 VKAPI_ATTR VkResult VKAPI_CALL vkGetDeviceGroupPresentCapabilitiesKHR(
8552     VkDevice                                    device,
8553     VkDeviceGroupPresentCapabilitiesKHR*        pDeviceGroupPresentCapabilities);
8554
8555 VKAPI_ATTR VkResult VKAPI_CALL vkGetDeviceGroupSurfacePresentModesKHR(
8556     VkDevice                                    device,
8557     VkSurfaceKHR                                surface,
8558     VkDeviceGroupPresentModeFlagsKHR*           pModes);
8559
8560 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDevicePresentRectanglesKHR(
8561     VkPhysicalDevice                            physicalDevice,
8562     VkSurfaceKHR                                surface,
8563     deUint32*                                   pRectCount,
8564     VkRect2D*                                   pRects);
8565
8566 VKAPI_ATTR VkResult VKAPI_CALL vkAcquireNextImage2KHR(
8567     VkDevice                                    device,
8568     const VkAcquireNextImageInfoKHR*            pAcquireInfo,
8569     deUint32*                                   pImageIndex);
8570 #endif
8571
8572
8573 #define VK_KHR_display 1
8574 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDisplayKHR)
8575 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDisplayModeKHR)
8576 #define VK_KHR_DISPLAY_SPEC_VERSION       23
8577 #define VK_KHR_DISPLAY_EXTENSION_NAME     "VK_KHR_display"
8578 typedef VkFlags VkDisplayModeCreateFlagsKHR;
8579
8580 typedef enum VkDisplayPlaneAlphaFlagBitsKHR {
8581     VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR = 0x00000001,
8582     VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR = 0x00000002,
8583     VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR = 0x00000004,
8584     VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR = 0x00000008,
8585     VK_DISPLAY_PLANE_ALPHA_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
8586 } VkDisplayPlaneAlphaFlagBitsKHR;
8587 typedef VkFlags VkDisplayPlaneAlphaFlagsKHR;
8588 typedef VkFlags VkDisplaySurfaceCreateFlagsKHR;
8589 typedef struct VkDisplayModeParametersKHR {
8590     VkExtent2D    visibleRegion;
8591     deUint32      refreshRate;
8592 } VkDisplayModeParametersKHR;
8593
8594 typedef struct VkDisplayModeCreateInfoKHR {
8595     VkStructureType                sType;
8596     const void*                    pNext;
8597     VkDisplayModeCreateFlagsKHR    flags;
8598     VkDisplayModeParametersKHR     parameters;
8599 } VkDisplayModeCreateInfoKHR;
8600
8601 typedef struct VkDisplayModePropertiesKHR {
8602     VkDisplayModeKHR              displayMode;
8603     VkDisplayModeParametersKHR    parameters;
8604 } VkDisplayModePropertiesKHR;
8605
8606 typedef struct VkDisplayPlaneCapabilitiesKHR {
8607     VkDisplayPlaneAlphaFlagsKHR    supportedAlpha;
8608     VkOffset2D                     minSrcPosition;
8609     VkOffset2D                     maxSrcPosition;
8610     VkExtent2D                     minSrcExtent;
8611     VkExtent2D                     maxSrcExtent;
8612     VkOffset2D                     minDstPosition;
8613     VkOffset2D                     maxDstPosition;
8614     VkExtent2D                     minDstExtent;
8615     VkExtent2D                     maxDstExtent;
8616 } VkDisplayPlaneCapabilitiesKHR;
8617
8618 typedef struct VkDisplayPlanePropertiesKHR {
8619     VkDisplayKHR    currentDisplay;
8620     deUint32        currentStackIndex;
8621 } VkDisplayPlanePropertiesKHR;
8622
8623 typedef struct VkDisplayPropertiesKHR {
8624     VkDisplayKHR                  display;
8625     const char*                   displayName;
8626     VkExtent2D                    physicalDimensions;
8627     VkExtent2D                    physicalResolution;
8628     VkSurfaceTransformFlagsKHR    supportedTransforms;
8629     VkBool32                      planeReorderPossible;
8630     VkBool32                      persistentContent;
8631 } VkDisplayPropertiesKHR;
8632
8633 typedef struct VkDisplaySurfaceCreateInfoKHR {
8634     VkStructureType                   sType;
8635     const void*                       pNext;
8636     VkDisplaySurfaceCreateFlagsKHR    flags;
8637     VkDisplayModeKHR                  displayMode;
8638     deUint32                          planeIndex;
8639     deUint32                          planeStackIndex;
8640     VkSurfaceTransformFlagBitsKHR     transform;
8641     float                             globalAlpha;
8642     VkDisplayPlaneAlphaFlagBitsKHR    alphaMode;
8643     VkExtent2D                        imageExtent;
8644 } VkDisplaySurfaceCreateInfoKHR;
8645
8646 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceDisplayPropertiesKHR)(VkPhysicalDevice physicalDevice, deUint32* pPropertyCount, VkDisplayPropertiesKHR* pProperties);
8647 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR)(VkPhysicalDevice physicalDevice, deUint32* pPropertyCount, VkDisplayPlanePropertiesKHR* pProperties);
8648 typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayPlaneSupportedDisplaysKHR)(VkPhysicalDevice physicalDevice, deUint32 planeIndex, deUint32* pDisplayCount, VkDisplayKHR* pDisplays);
8649 typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayModePropertiesKHR)(VkPhysicalDevice physicalDevice, VkDisplayKHR display, deUint32* pPropertyCount, VkDisplayModePropertiesKHR* pProperties);
8650 typedef VkResult (VKAPI_PTR *PFN_vkCreateDisplayModeKHR)(VkPhysicalDevice physicalDevice, VkDisplayKHR display, const VkDisplayModeCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDisplayModeKHR* pMode);
8651 typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayPlaneCapabilitiesKHR)(VkPhysicalDevice physicalDevice, VkDisplayModeKHR mode, deUint32 planeIndex, VkDisplayPlaneCapabilitiesKHR* pCapabilities);
8652 typedef VkResult (VKAPI_PTR *PFN_vkCreateDisplayPlaneSurfaceKHR)(VkInstance instance, const VkDisplaySurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
8653
8654 #ifndef VK_NO_PROTOTYPES
8655 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceDisplayPropertiesKHR(
8656     VkPhysicalDevice                            physicalDevice,
8657     deUint32*                                   pPropertyCount,
8658     VkDisplayPropertiesKHR*                     pProperties);
8659
8660 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceDisplayPlanePropertiesKHR(
8661     VkPhysicalDevice                            physicalDevice,
8662     deUint32*                                   pPropertyCount,
8663     VkDisplayPlanePropertiesKHR*                pProperties);
8664
8665 VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayPlaneSupportedDisplaysKHR(
8666     VkPhysicalDevice                            physicalDevice,
8667     deUint32                                    planeIndex,
8668     deUint32*                                   pDisplayCount,
8669     VkDisplayKHR*                               pDisplays);
8670
8671 VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayModePropertiesKHR(
8672     VkPhysicalDevice                            physicalDevice,
8673     VkDisplayKHR                                display,
8674     deUint32*                                   pPropertyCount,
8675     VkDisplayModePropertiesKHR*                 pProperties);
8676
8677 VKAPI_ATTR VkResult VKAPI_CALL vkCreateDisplayModeKHR(
8678     VkPhysicalDevice                            physicalDevice,
8679     VkDisplayKHR                                display,
8680     const VkDisplayModeCreateInfoKHR*           pCreateInfo,
8681     const VkAllocationCallbacks*                pAllocator,
8682     VkDisplayModeKHR*                           pMode);
8683
8684 VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayPlaneCapabilitiesKHR(
8685     VkPhysicalDevice                            physicalDevice,
8686     VkDisplayModeKHR                            mode,
8687     deUint32                                    planeIndex,
8688     VkDisplayPlaneCapabilitiesKHR*              pCapabilities);
8689
8690 VKAPI_ATTR VkResult VKAPI_CALL vkCreateDisplayPlaneSurfaceKHR(
8691     VkInstance                                  instance,
8692     const VkDisplaySurfaceCreateInfoKHR*        pCreateInfo,
8693     const VkAllocationCallbacks*                pAllocator,
8694     VkSurfaceKHR*                               pSurface);
8695 #endif
8696
8697
8698 #define VK_KHR_display_swapchain 1
8699 #define VK_KHR_DISPLAY_SWAPCHAIN_SPEC_VERSION 10
8700 #define VK_KHR_DISPLAY_SWAPCHAIN_EXTENSION_NAME "VK_KHR_display_swapchain"
8701 typedef struct VkDisplayPresentInfoKHR {
8702     VkStructureType    sType;
8703     const void*        pNext;
8704     VkRect2D           srcRect;
8705     VkRect2D           dstRect;
8706     VkBool32           persistent;
8707 } VkDisplayPresentInfoKHR;
8708
8709 typedef VkResult (VKAPI_PTR *PFN_vkCreateSharedSwapchainsKHR)(VkDevice device, deUint32 swapchainCount, const VkSwapchainCreateInfoKHR* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchains);
8710
8711 #ifndef VK_NO_PROTOTYPES
8712 VKAPI_ATTR VkResult VKAPI_CALL vkCreateSharedSwapchainsKHR(
8713     VkDevice                                    device,
8714     deUint32                                    swapchainCount,
8715     const VkSwapchainCreateInfoKHR*             pCreateInfos,
8716     const VkAllocationCallbacks*                pAllocator,
8717     VkSwapchainKHR*                             pSwapchains);
8718 #endif
8719
8720
8721 #define VK_KHR_sampler_mirror_clamp_to_edge 1
8722 #define VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_SPEC_VERSION 3
8723 #define VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_EXTENSION_NAME "VK_KHR_sampler_mirror_clamp_to_edge"
8724
8725
8726 #define VK_KHR_dynamic_rendering 1
8727 #define VK_KHR_DYNAMIC_RENDERING_SPEC_VERSION 1
8728 #define VK_KHR_DYNAMIC_RENDERING_EXTENSION_NAME "VK_KHR_dynamic_rendering"
8729 typedef VkRenderingFlags VkRenderingFlagsKHR;
8730
8731 typedef VkRenderingFlagBits VkRenderingFlagBitsKHR;
8732
8733 typedef VkRenderingInfo VkRenderingInfoKHR;
8734
8735 typedef VkRenderingAttachmentInfo VkRenderingAttachmentInfoKHR;
8736
8737 typedef VkPipelineRenderingCreateInfo VkPipelineRenderingCreateInfoKHR;
8738
8739 typedef VkPhysicalDeviceDynamicRenderingFeatures VkPhysicalDeviceDynamicRenderingFeaturesKHR;
8740
8741 typedef VkCommandBufferInheritanceRenderingInfo VkCommandBufferInheritanceRenderingInfoKHR;
8742
8743 typedef struct VkRenderingFragmentShadingRateAttachmentInfoKHR {
8744     VkStructureType    sType;
8745     const void*        pNext;
8746     VkImageView        imageView;
8747     VkImageLayout      imageLayout;
8748     VkExtent2D         shadingRateAttachmentTexelSize;
8749 } VkRenderingFragmentShadingRateAttachmentInfoKHR;
8750
8751 typedef struct VkRenderingFragmentDensityMapAttachmentInfoEXT {
8752     VkStructureType    sType;
8753     const void*        pNext;
8754     VkImageView        imageView;
8755     VkImageLayout      imageLayout;
8756 } VkRenderingFragmentDensityMapAttachmentInfoEXT;
8757
8758 typedef struct VkAttachmentSampleCountInfoAMD {
8759     VkStructureType                 sType;
8760     const void*                     pNext;
8761     deUint32                        colorAttachmentCount;
8762     const VkSampleCountFlagBits*    pColorAttachmentSamples;
8763     VkSampleCountFlagBits           depthStencilAttachmentSamples;
8764 } VkAttachmentSampleCountInfoAMD;
8765
8766 typedef VkAttachmentSampleCountInfoAMD VkAttachmentSampleCountInfoNV;
8767
8768 typedef struct VkMultiviewPerViewAttributesInfoNVX {
8769     VkStructureType    sType;
8770     const void*        pNext;
8771     VkBool32           perViewAttributes;
8772     VkBool32           perViewAttributesPositionXOnly;
8773 } VkMultiviewPerViewAttributesInfoNVX;
8774
8775 typedef void (VKAPI_PTR *PFN_vkCmdBeginRenderingKHR)(VkCommandBuffer                   commandBuffer, const VkRenderingInfo*                              pRenderingInfo);
8776 typedef void (VKAPI_PTR *PFN_vkCmdEndRenderingKHR)(VkCommandBuffer                   commandBuffer);
8777
8778 #ifndef VK_NO_PROTOTYPES
8779 VKAPI_ATTR void VKAPI_CALL vkCmdBeginRenderingKHR(
8780     VkCommandBuffer                             commandBuffer,
8781     const VkRenderingInfo*                      pRenderingInfo);
8782
8783 VKAPI_ATTR void VKAPI_CALL vkCmdEndRenderingKHR(
8784     VkCommandBuffer                             commandBuffer);
8785 #endif
8786
8787
8788 #define VK_KHR_multiview 1
8789 #define VK_KHR_MULTIVIEW_SPEC_VERSION     1
8790 #define VK_KHR_MULTIVIEW_EXTENSION_NAME   "VK_KHR_multiview"
8791 typedef VkRenderPassMultiviewCreateInfo VkRenderPassMultiviewCreateInfoKHR;
8792
8793 typedef VkPhysicalDeviceMultiviewFeatures VkPhysicalDeviceMultiviewFeaturesKHR;
8794
8795 typedef VkPhysicalDeviceMultiviewProperties VkPhysicalDeviceMultiviewPropertiesKHR;
8796
8797
8798
8799 #define VK_KHR_get_physical_device_properties2 1
8800 #define VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_SPEC_VERSION 2
8801 #define VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME "VK_KHR_get_physical_device_properties2"
8802 typedef VkPhysicalDeviceFeatures2 VkPhysicalDeviceFeatures2KHR;
8803
8804 typedef VkPhysicalDeviceProperties2 VkPhysicalDeviceProperties2KHR;
8805
8806 typedef VkFormatProperties2 VkFormatProperties2KHR;
8807
8808 typedef VkImageFormatProperties2 VkImageFormatProperties2KHR;
8809
8810 typedef VkPhysicalDeviceImageFormatInfo2 VkPhysicalDeviceImageFormatInfo2KHR;
8811
8812 typedef VkQueueFamilyProperties2 VkQueueFamilyProperties2KHR;
8813
8814 typedef VkPhysicalDeviceMemoryProperties2 VkPhysicalDeviceMemoryProperties2KHR;
8815
8816 typedef VkSparseImageFormatProperties2 VkSparseImageFormatProperties2KHR;
8817
8818 typedef VkPhysicalDeviceSparseImageFormatInfo2 VkPhysicalDeviceSparseImageFormatInfo2KHR;
8819
8820 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFeatures2KHR)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures2* pFeatures);
8821 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceProperties2KHR)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties2* pProperties);
8822 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFormatProperties2KHR)(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties2* pFormatProperties);
8823 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceImageFormatProperties2KHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo, VkImageFormatProperties2* pImageFormatProperties);
8824 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR)(VkPhysicalDevice physicalDevice, deUint32* pQueueFamilyPropertyCount, VkQueueFamilyProperties2* pQueueFamilyProperties);
8825 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceMemoryProperties2KHR)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties2* pMemoryProperties);
8826 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo, deUint32* pPropertyCount, VkSparseImageFormatProperties2* pProperties);
8827
8828 #ifndef VK_NO_PROTOTYPES
8829 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFeatures2KHR(
8830     VkPhysicalDevice                            physicalDevice,
8831     VkPhysicalDeviceFeatures2*                  pFeatures);
8832
8833 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceProperties2KHR(
8834     VkPhysicalDevice                            physicalDevice,
8835     VkPhysicalDeviceProperties2*                pProperties);
8836
8837 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFormatProperties2KHR(
8838     VkPhysicalDevice                            physicalDevice,
8839     VkFormat                                    format,
8840     VkFormatProperties2*                        pFormatProperties);
8841
8842 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceImageFormatProperties2KHR(
8843     VkPhysicalDevice                            physicalDevice,
8844     const VkPhysicalDeviceImageFormatInfo2*     pImageFormatInfo,
8845     VkImageFormatProperties2*                   pImageFormatProperties);
8846
8847 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceQueueFamilyProperties2KHR(
8848     VkPhysicalDevice                            physicalDevice,
8849     deUint32*                                   pQueueFamilyPropertyCount,
8850     VkQueueFamilyProperties2*                   pQueueFamilyProperties);
8851
8852 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceMemoryProperties2KHR(
8853     VkPhysicalDevice                            physicalDevice,
8854     VkPhysicalDeviceMemoryProperties2*          pMemoryProperties);
8855
8856 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceSparseImageFormatProperties2KHR(
8857     VkPhysicalDevice                            physicalDevice,
8858     const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo,
8859     deUint32*                                   pPropertyCount,
8860     VkSparseImageFormatProperties2*             pProperties);
8861 #endif
8862
8863
8864 #define VK_KHR_device_group 1
8865 #define VK_KHR_DEVICE_GROUP_SPEC_VERSION  4
8866 #define VK_KHR_DEVICE_GROUP_EXTENSION_NAME "VK_KHR_device_group"
8867 typedef VkPeerMemoryFeatureFlags VkPeerMemoryFeatureFlagsKHR;
8868
8869 typedef VkPeerMemoryFeatureFlagBits VkPeerMemoryFeatureFlagBitsKHR;
8870
8871 typedef VkMemoryAllocateFlags VkMemoryAllocateFlagsKHR;
8872
8873 typedef VkMemoryAllocateFlagBits VkMemoryAllocateFlagBitsKHR;
8874
8875 typedef VkMemoryAllocateFlagsInfo VkMemoryAllocateFlagsInfoKHR;
8876
8877 typedef VkDeviceGroupRenderPassBeginInfo VkDeviceGroupRenderPassBeginInfoKHR;
8878
8879 typedef VkDeviceGroupCommandBufferBeginInfo VkDeviceGroupCommandBufferBeginInfoKHR;
8880
8881 typedef VkDeviceGroupSubmitInfo VkDeviceGroupSubmitInfoKHR;
8882
8883 typedef VkDeviceGroupBindSparseInfo VkDeviceGroupBindSparseInfoKHR;
8884
8885 typedef VkBindBufferMemoryDeviceGroupInfo VkBindBufferMemoryDeviceGroupInfoKHR;
8886
8887 typedef VkBindImageMemoryDeviceGroupInfo VkBindImageMemoryDeviceGroupInfoKHR;
8888
8889 typedef void (VKAPI_PTR *PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR)(VkDevice device, deUint32 heapIndex, deUint32 localDeviceIndex, deUint32 remoteDeviceIndex, VkPeerMemoryFeatureFlags* pPeerMemoryFeatures);
8890 typedef void (VKAPI_PTR *PFN_vkCmdSetDeviceMaskKHR)(VkCommandBuffer commandBuffer, deUint32 deviceMask);
8891 typedef void (VKAPI_PTR *PFN_vkCmdDispatchBaseKHR)(VkCommandBuffer commandBuffer, deUint32 baseGroupX, deUint32 baseGroupY, deUint32 baseGroupZ, deUint32 groupCountX, deUint32 groupCountY, deUint32 groupCountZ);
8892
8893 #ifndef VK_NO_PROTOTYPES
8894 VKAPI_ATTR void VKAPI_CALL vkGetDeviceGroupPeerMemoryFeaturesKHR(
8895     VkDevice                                    device,
8896     deUint32                                    heapIndex,
8897     deUint32                                    localDeviceIndex,
8898     deUint32                                    remoteDeviceIndex,
8899     VkPeerMemoryFeatureFlags*                   pPeerMemoryFeatures);
8900
8901 VKAPI_ATTR void VKAPI_CALL vkCmdSetDeviceMaskKHR(
8902     VkCommandBuffer                             commandBuffer,
8903     deUint32                                    deviceMask);
8904
8905 VKAPI_ATTR void VKAPI_CALL vkCmdDispatchBaseKHR(
8906     VkCommandBuffer                             commandBuffer,
8907     deUint32                                    baseGroupX,
8908     deUint32                                    baseGroupY,
8909     deUint32                                    baseGroupZ,
8910     deUint32                                    groupCountX,
8911     deUint32                                    groupCountY,
8912     deUint32                                    groupCountZ);
8913 #endif
8914
8915
8916 #define VK_KHR_shader_draw_parameters 1
8917 #define VK_KHR_SHADER_DRAW_PARAMETERS_SPEC_VERSION 1
8918 #define VK_KHR_SHADER_DRAW_PARAMETERS_EXTENSION_NAME "VK_KHR_shader_draw_parameters"
8919
8920
8921 #define VK_KHR_maintenance1 1
8922 #define VK_KHR_MAINTENANCE_1_SPEC_VERSION 2
8923 #define VK_KHR_MAINTENANCE_1_EXTENSION_NAME "VK_KHR_maintenance1"
8924 #define VK_KHR_MAINTENANCE1_SPEC_VERSION  VK_KHR_MAINTENANCE_1_SPEC_VERSION
8925 #define VK_KHR_MAINTENANCE1_EXTENSION_NAME VK_KHR_MAINTENANCE_1_EXTENSION_NAME
8926 typedef VkCommandPoolTrimFlags VkCommandPoolTrimFlagsKHR;
8927
8928 typedef void (VKAPI_PTR *PFN_vkTrimCommandPoolKHR)(VkDevice device, VkCommandPool commandPool, VkCommandPoolTrimFlags flags);
8929
8930 #ifndef VK_NO_PROTOTYPES
8931 VKAPI_ATTR void VKAPI_CALL vkTrimCommandPoolKHR(
8932     VkDevice                                    device,
8933     VkCommandPool                               commandPool,
8934     VkCommandPoolTrimFlags                      flags);
8935 #endif
8936
8937
8938 #define VK_KHR_device_group_creation 1
8939 #define VK_KHR_DEVICE_GROUP_CREATION_SPEC_VERSION 1
8940 #define VK_KHR_DEVICE_GROUP_CREATION_EXTENSION_NAME "VK_KHR_device_group_creation"
8941 #define VK_MAX_DEVICE_GROUP_SIZE_KHR      VK_MAX_DEVICE_GROUP_SIZE
8942 typedef VkPhysicalDeviceGroupProperties VkPhysicalDeviceGroupPropertiesKHR;
8943
8944 typedef VkDeviceGroupDeviceCreateInfo VkDeviceGroupDeviceCreateInfoKHR;
8945
8946 typedef VkResult (VKAPI_PTR *PFN_vkEnumeratePhysicalDeviceGroupsKHR)(VkInstance instance, deUint32* pPhysicalDeviceGroupCount, VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties);
8947
8948 #ifndef VK_NO_PROTOTYPES
8949 VKAPI_ATTR VkResult VKAPI_CALL vkEnumeratePhysicalDeviceGroupsKHR(
8950     VkInstance                                  instance,
8951     deUint32*                                   pPhysicalDeviceGroupCount,
8952     VkPhysicalDeviceGroupProperties*            pPhysicalDeviceGroupProperties);
8953 #endif
8954
8955
8956 #define VK_KHR_external_memory_capabilities 1
8957 #define VK_KHR_EXTERNAL_MEMORY_CAPABILITIES_SPEC_VERSION 1
8958 #define VK_KHR_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME "VK_KHR_external_memory_capabilities"
8959 #define VK_LUID_SIZE_KHR                  VK_LUID_SIZE
8960 typedef VkExternalMemoryHandleTypeFlags VkExternalMemoryHandleTypeFlagsKHR;
8961
8962 typedef VkExternalMemoryHandleTypeFlagBits VkExternalMemoryHandleTypeFlagBitsKHR;
8963
8964 typedef VkExternalMemoryFeatureFlags VkExternalMemoryFeatureFlagsKHR;
8965
8966 typedef VkExternalMemoryFeatureFlagBits VkExternalMemoryFeatureFlagBitsKHR;
8967
8968 typedef VkExternalMemoryProperties VkExternalMemoryPropertiesKHR;
8969
8970 typedef VkPhysicalDeviceExternalImageFormatInfo VkPhysicalDeviceExternalImageFormatInfoKHR;
8971
8972 typedef VkExternalImageFormatProperties VkExternalImageFormatPropertiesKHR;
8973
8974 typedef VkPhysicalDeviceExternalBufferInfo VkPhysicalDeviceExternalBufferInfoKHR;
8975
8976 typedef VkExternalBufferProperties VkExternalBufferPropertiesKHR;
8977
8978 typedef VkPhysicalDeviceIDProperties VkPhysicalDeviceIDPropertiesKHR;
8979
8980 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo, VkExternalBufferProperties* pExternalBufferProperties);
8981
8982 #ifndef VK_NO_PROTOTYPES
8983 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalBufferPropertiesKHR(
8984     VkPhysicalDevice                            physicalDevice,
8985     const VkPhysicalDeviceExternalBufferInfo*   pExternalBufferInfo,
8986     VkExternalBufferProperties*                 pExternalBufferProperties);
8987 #endif
8988
8989
8990 #define VK_KHR_external_memory 1
8991 #define VK_KHR_EXTERNAL_MEMORY_SPEC_VERSION 1
8992 #define VK_KHR_EXTERNAL_MEMORY_EXTENSION_NAME "VK_KHR_external_memory"
8993 #define VK_QUEUE_FAMILY_EXTERNAL_KHR      VK_QUEUE_FAMILY_EXTERNAL
8994 typedef VkExternalMemoryImageCreateInfo VkExternalMemoryImageCreateInfoKHR;
8995
8996 typedef VkExternalMemoryBufferCreateInfo VkExternalMemoryBufferCreateInfoKHR;
8997
8998 typedef VkExportMemoryAllocateInfo VkExportMemoryAllocateInfoKHR;
8999
9000
9001
9002 #define VK_KHR_external_memory_fd 1
9003 #define VK_KHR_EXTERNAL_MEMORY_FD_SPEC_VERSION 1
9004 #define VK_KHR_EXTERNAL_MEMORY_FD_EXTENSION_NAME "VK_KHR_external_memory_fd"
9005 typedef struct VkImportMemoryFdInfoKHR {
9006     VkStructureType                       sType;
9007     const void*                           pNext;
9008     VkExternalMemoryHandleTypeFlagBits    handleType;
9009     int                                   fd;
9010 } VkImportMemoryFdInfoKHR;
9011
9012 typedef struct VkMemoryFdPropertiesKHR {
9013     VkStructureType    sType;
9014     void*              pNext;
9015     deUint32           memoryTypeBits;
9016 } VkMemoryFdPropertiesKHR;
9017
9018 typedef struct VkMemoryGetFdInfoKHR {
9019     VkStructureType                       sType;
9020     const void*                           pNext;
9021     VkDeviceMemory                        memory;
9022     VkExternalMemoryHandleTypeFlagBits    handleType;
9023 } VkMemoryGetFdInfoKHR;
9024
9025 typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryFdKHR)(VkDevice device, const VkMemoryGetFdInfoKHR* pGetFdInfo, int* pFd);
9026 typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryFdPropertiesKHR)(VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, int fd, VkMemoryFdPropertiesKHR* pMemoryFdProperties);
9027
9028 #ifndef VK_NO_PROTOTYPES
9029 VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryFdKHR(
9030     VkDevice                                    device,
9031     const VkMemoryGetFdInfoKHR*                 pGetFdInfo,
9032     int*                                        pFd);
9033
9034 VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryFdPropertiesKHR(
9035     VkDevice                                    device,
9036     VkExternalMemoryHandleTypeFlagBits          handleType,
9037     int                                         fd,
9038     VkMemoryFdPropertiesKHR*                    pMemoryFdProperties);
9039 #endif
9040
9041
9042 #define VK_KHR_external_semaphore_capabilities 1
9043 #define VK_KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_SPEC_VERSION 1
9044 #define VK_KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_EXTENSION_NAME "VK_KHR_external_semaphore_capabilities"
9045 typedef VkExternalSemaphoreHandleTypeFlags VkExternalSemaphoreHandleTypeFlagsKHR;
9046
9047 typedef VkExternalSemaphoreHandleTypeFlagBits VkExternalSemaphoreHandleTypeFlagBitsKHR;
9048
9049 typedef VkExternalSemaphoreFeatureFlags VkExternalSemaphoreFeatureFlagsKHR;
9050
9051 typedef VkExternalSemaphoreFeatureFlagBits VkExternalSemaphoreFeatureFlagBitsKHR;
9052
9053 typedef VkPhysicalDeviceExternalSemaphoreInfo VkPhysicalDeviceExternalSemaphoreInfoKHR;
9054
9055 typedef VkExternalSemaphoreProperties VkExternalSemaphorePropertiesKHR;
9056
9057 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, VkExternalSemaphoreProperties* pExternalSemaphoreProperties);
9058
9059 #ifndef VK_NO_PROTOTYPES
9060 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(
9061     VkPhysicalDevice                            physicalDevice,
9062     const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo,
9063     VkExternalSemaphoreProperties*              pExternalSemaphoreProperties);
9064 #endif
9065
9066
9067 #define VK_KHR_external_semaphore 1
9068 #define VK_KHR_EXTERNAL_SEMAPHORE_SPEC_VERSION 1
9069 #define VK_KHR_EXTERNAL_SEMAPHORE_EXTENSION_NAME "VK_KHR_external_semaphore"
9070 typedef VkSemaphoreImportFlags VkSemaphoreImportFlagsKHR;
9071
9072 typedef VkSemaphoreImportFlagBits VkSemaphoreImportFlagBitsKHR;
9073
9074 typedef VkExportSemaphoreCreateInfo VkExportSemaphoreCreateInfoKHR;
9075
9076
9077
9078 #define VK_KHR_external_semaphore_fd 1
9079 #define VK_KHR_EXTERNAL_SEMAPHORE_FD_SPEC_VERSION 1
9080 #define VK_KHR_EXTERNAL_SEMAPHORE_FD_EXTENSION_NAME "VK_KHR_external_semaphore_fd"
9081 typedef struct VkImportSemaphoreFdInfoKHR {
9082     VkStructureType                          sType;
9083     const void*                              pNext;
9084     VkSemaphore                              semaphore;
9085     VkSemaphoreImportFlags                   flags;
9086     VkExternalSemaphoreHandleTypeFlagBits    handleType;
9087     int                                      fd;
9088 } VkImportSemaphoreFdInfoKHR;
9089
9090 typedef struct VkSemaphoreGetFdInfoKHR {
9091     VkStructureType                          sType;
9092     const void*                              pNext;
9093     VkSemaphore                              semaphore;
9094     VkExternalSemaphoreHandleTypeFlagBits    handleType;
9095 } VkSemaphoreGetFdInfoKHR;
9096
9097 typedef VkResult (VKAPI_PTR *PFN_vkImportSemaphoreFdKHR)(VkDevice device, const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo);
9098 typedef VkResult (VKAPI_PTR *PFN_vkGetSemaphoreFdKHR)(VkDevice device, const VkSemaphoreGetFdInfoKHR* pGetFdInfo, int* pFd);
9099
9100 #ifndef VK_NO_PROTOTYPES
9101 VKAPI_ATTR VkResult VKAPI_CALL vkImportSemaphoreFdKHR(
9102     VkDevice                                    device,
9103     const VkImportSemaphoreFdInfoKHR*           pImportSemaphoreFdInfo);
9104
9105 VKAPI_ATTR VkResult VKAPI_CALL vkGetSemaphoreFdKHR(
9106     VkDevice                                    device,
9107     const VkSemaphoreGetFdInfoKHR*              pGetFdInfo,
9108     int*                                        pFd);
9109 #endif
9110
9111
9112 #define VK_KHR_push_descriptor 1
9113 #define VK_KHR_PUSH_DESCRIPTOR_SPEC_VERSION 2
9114 #define VK_KHR_PUSH_DESCRIPTOR_EXTENSION_NAME "VK_KHR_push_descriptor"
9115 typedef struct VkPhysicalDevicePushDescriptorPropertiesKHR {
9116     VkStructureType    sType;
9117     void*              pNext;
9118     deUint32           maxPushDescriptors;
9119 } VkPhysicalDevicePushDescriptorPropertiesKHR;
9120
9121 typedef void (VKAPI_PTR *PFN_vkCmdPushDescriptorSetKHR)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, deUint32 set, deUint32 descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites);
9122 typedef void (VKAPI_PTR *PFN_vkCmdPushDescriptorSetWithTemplateKHR)(VkCommandBuffer commandBuffer, VkDescriptorUpdateTemplate descriptorUpdateTemplate, VkPipelineLayout layout, deUint32 set, const void* pData);
9123
9124 #ifndef VK_NO_PROTOTYPES
9125 VKAPI_ATTR void VKAPI_CALL vkCmdPushDescriptorSetKHR(
9126     VkCommandBuffer                             commandBuffer,
9127     VkPipelineBindPoint                         pipelineBindPoint,
9128     VkPipelineLayout                            layout,
9129     deUint32                                    set,
9130     deUint32                                    descriptorWriteCount,
9131     const VkWriteDescriptorSet*                 pDescriptorWrites);
9132
9133 VKAPI_ATTR void VKAPI_CALL vkCmdPushDescriptorSetWithTemplateKHR(
9134     VkCommandBuffer                             commandBuffer,
9135     VkDescriptorUpdateTemplate                  descriptorUpdateTemplate,
9136     VkPipelineLayout                            layout,
9137     deUint32                                    set,
9138     const void*                                 pData);
9139 #endif
9140
9141
9142 #define VK_KHR_shader_float16_int8 1
9143 #define VK_KHR_SHADER_FLOAT16_INT8_SPEC_VERSION 1
9144 #define VK_KHR_SHADER_FLOAT16_INT8_EXTENSION_NAME "VK_KHR_shader_float16_int8"
9145 typedef VkPhysicalDeviceShaderFloat16Int8Features VkPhysicalDeviceShaderFloat16Int8FeaturesKHR;
9146
9147 typedef VkPhysicalDeviceShaderFloat16Int8Features VkPhysicalDeviceFloat16Int8FeaturesKHR;
9148
9149
9150
9151 #define VK_KHR_16bit_storage 1
9152 #define VK_KHR_16BIT_STORAGE_SPEC_VERSION 1
9153 #define VK_KHR_16BIT_STORAGE_EXTENSION_NAME "VK_KHR_16bit_storage"
9154 typedef VkPhysicalDevice16BitStorageFeatures VkPhysicalDevice16BitStorageFeaturesKHR;
9155
9156
9157
9158 #define VK_KHR_incremental_present 1
9159 #define VK_KHR_INCREMENTAL_PRESENT_SPEC_VERSION 2
9160 #define VK_KHR_INCREMENTAL_PRESENT_EXTENSION_NAME "VK_KHR_incremental_present"
9161 typedef struct VkRectLayerKHR {
9162     VkOffset2D    offset;
9163     VkExtent2D    extent;
9164     deUint32      layer;
9165 } VkRectLayerKHR;
9166
9167 typedef struct VkPresentRegionKHR {
9168     deUint32                 rectangleCount;
9169     const VkRectLayerKHR*    pRectangles;
9170 } VkPresentRegionKHR;
9171
9172 typedef struct VkPresentRegionsKHR {
9173     VkStructureType              sType;
9174     const void*                  pNext;
9175     deUint32                     swapchainCount;
9176     const VkPresentRegionKHR*    pRegions;
9177 } VkPresentRegionsKHR;
9178
9179
9180
9181 #define VK_KHR_descriptor_update_template 1
9182 typedef VkDescriptorUpdateTemplate VkDescriptorUpdateTemplateKHR;
9183
9184 #define VK_KHR_DESCRIPTOR_UPDATE_TEMPLATE_SPEC_VERSION 1
9185 #define VK_KHR_DESCRIPTOR_UPDATE_TEMPLATE_EXTENSION_NAME "VK_KHR_descriptor_update_template"
9186 typedef VkDescriptorUpdateTemplateType VkDescriptorUpdateTemplateTypeKHR;
9187
9188 typedef VkDescriptorUpdateTemplateCreateFlags VkDescriptorUpdateTemplateCreateFlagsKHR;
9189
9190 typedef VkDescriptorUpdateTemplateEntry VkDescriptorUpdateTemplateEntryKHR;
9191
9192 typedef VkDescriptorUpdateTemplateCreateInfo VkDescriptorUpdateTemplateCreateInfoKHR;
9193
9194 typedef VkResult (VKAPI_PTR *PFN_vkCreateDescriptorUpdateTemplateKHR)(VkDevice device, const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate);
9195 typedef void (VKAPI_PTR *PFN_vkDestroyDescriptorUpdateTemplateKHR)(VkDevice device, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const VkAllocationCallbacks* pAllocator);
9196 typedef void (VKAPI_PTR *PFN_vkUpdateDescriptorSetWithTemplateKHR)(VkDevice device, VkDescriptorSet descriptorSet, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const void* pData);
9197
9198 #ifndef VK_NO_PROTOTYPES
9199 VKAPI_ATTR VkResult VKAPI_CALL vkCreateDescriptorUpdateTemplateKHR(
9200     VkDevice                                    device,
9201     const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo,
9202     const VkAllocationCallbacks*                pAllocator,
9203     VkDescriptorUpdateTemplate*                 pDescriptorUpdateTemplate);
9204
9205 VKAPI_ATTR void VKAPI_CALL vkDestroyDescriptorUpdateTemplateKHR(
9206     VkDevice                                    device,
9207     VkDescriptorUpdateTemplate                  descriptorUpdateTemplate,
9208     const VkAllocationCallbacks*                pAllocator);
9209
9210 VKAPI_ATTR void VKAPI_CALL vkUpdateDescriptorSetWithTemplateKHR(
9211     VkDevice                                    device,
9212     VkDescriptorSet                             descriptorSet,
9213     VkDescriptorUpdateTemplate                  descriptorUpdateTemplate,
9214     const void*                                 pData);
9215 #endif
9216
9217
9218 #define VK_KHR_imageless_framebuffer 1
9219 #define VK_KHR_IMAGELESS_FRAMEBUFFER_SPEC_VERSION 1
9220 #define VK_KHR_IMAGELESS_FRAMEBUFFER_EXTENSION_NAME "VK_KHR_imageless_framebuffer"
9221 typedef VkPhysicalDeviceImagelessFramebufferFeatures VkPhysicalDeviceImagelessFramebufferFeaturesKHR;
9222
9223 typedef VkFramebufferAttachmentsCreateInfo VkFramebufferAttachmentsCreateInfoKHR;
9224
9225 typedef VkFramebufferAttachmentImageInfo VkFramebufferAttachmentImageInfoKHR;
9226
9227 typedef VkRenderPassAttachmentBeginInfo VkRenderPassAttachmentBeginInfoKHR;
9228
9229
9230
9231 #define VK_KHR_create_renderpass2 1
9232 #define VK_KHR_CREATE_RENDERPASS_2_SPEC_VERSION 1
9233 #define VK_KHR_CREATE_RENDERPASS_2_EXTENSION_NAME "VK_KHR_create_renderpass2"
9234 typedef VkRenderPassCreateInfo2 VkRenderPassCreateInfo2KHR;
9235
9236 typedef VkAttachmentDescription2 VkAttachmentDescription2KHR;
9237
9238 typedef VkAttachmentReference2 VkAttachmentReference2KHR;
9239
9240 typedef VkSubpassDescription2 VkSubpassDescription2KHR;
9241
9242 typedef VkSubpassDependency2 VkSubpassDependency2KHR;
9243
9244 typedef VkSubpassBeginInfo VkSubpassBeginInfoKHR;
9245
9246 typedef VkSubpassEndInfo VkSubpassEndInfoKHR;
9247
9248 typedef VkResult (VKAPI_PTR *PFN_vkCreateRenderPass2KHR)(VkDevice device, const VkRenderPassCreateInfo2* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass);
9249 typedef void (VKAPI_PTR *PFN_vkCmdBeginRenderPass2KHR)(VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo*      pRenderPassBegin, const VkSubpassBeginInfo*      pSubpassBeginInfo);
9250 typedef void (VKAPI_PTR *PFN_vkCmdNextSubpass2KHR)(VkCommandBuffer commandBuffer, const VkSubpassBeginInfo*      pSubpassBeginInfo, const VkSubpassEndInfo*        pSubpassEndInfo);
9251 typedef void (VKAPI_PTR *PFN_vkCmdEndRenderPass2KHR)(VkCommandBuffer commandBuffer, const VkSubpassEndInfo*        pSubpassEndInfo);
9252
9253 #ifndef VK_NO_PROTOTYPES
9254 VKAPI_ATTR VkResult VKAPI_CALL vkCreateRenderPass2KHR(
9255     VkDevice                                    device,
9256     const VkRenderPassCreateInfo2*              pCreateInfo,
9257     const VkAllocationCallbacks*                pAllocator,
9258     VkRenderPass*                               pRenderPass);
9259
9260 VKAPI_ATTR void VKAPI_CALL vkCmdBeginRenderPass2KHR(
9261     VkCommandBuffer                             commandBuffer,
9262     const VkRenderPassBeginInfo*                pRenderPassBegin,
9263     const VkSubpassBeginInfo*                   pSubpassBeginInfo);
9264
9265 VKAPI_ATTR void VKAPI_CALL vkCmdNextSubpass2KHR(
9266     VkCommandBuffer                             commandBuffer,
9267     const VkSubpassBeginInfo*                   pSubpassBeginInfo,
9268     const VkSubpassEndInfo*                     pSubpassEndInfo);
9269
9270 VKAPI_ATTR void VKAPI_CALL vkCmdEndRenderPass2KHR(
9271     VkCommandBuffer                             commandBuffer,
9272     const VkSubpassEndInfo*                     pSubpassEndInfo);
9273 #endif
9274
9275
9276 #define VK_KHR_shared_presentable_image 1
9277 #define VK_KHR_SHARED_PRESENTABLE_IMAGE_SPEC_VERSION 1
9278 #define VK_KHR_SHARED_PRESENTABLE_IMAGE_EXTENSION_NAME "VK_KHR_shared_presentable_image"
9279 typedef struct VkSharedPresentSurfaceCapabilitiesKHR {
9280     VkStructureType      sType;
9281     void*                pNext;
9282     VkImageUsageFlags    sharedPresentSupportedUsageFlags;
9283 } VkSharedPresentSurfaceCapabilitiesKHR;
9284
9285 typedef VkResult (VKAPI_PTR *PFN_vkGetSwapchainStatusKHR)(VkDevice device, VkSwapchainKHR swapchain);
9286
9287 #ifndef VK_NO_PROTOTYPES
9288 VKAPI_ATTR VkResult VKAPI_CALL vkGetSwapchainStatusKHR(
9289     VkDevice                                    device,
9290     VkSwapchainKHR                              swapchain);
9291 #endif
9292
9293
9294 #define VK_KHR_external_fence_capabilities 1
9295 #define VK_KHR_EXTERNAL_FENCE_CAPABILITIES_SPEC_VERSION 1
9296 #define VK_KHR_EXTERNAL_FENCE_CAPABILITIES_EXTENSION_NAME "VK_KHR_external_fence_capabilities"
9297 typedef VkExternalFenceHandleTypeFlags VkExternalFenceHandleTypeFlagsKHR;
9298
9299 typedef VkExternalFenceHandleTypeFlagBits VkExternalFenceHandleTypeFlagBitsKHR;
9300
9301 typedef VkExternalFenceFeatureFlags VkExternalFenceFeatureFlagsKHR;
9302
9303 typedef VkExternalFenceFeatureFlagBits VkExternalFenceFeatureFlagBitsKHR;
9304
9305 typedef VkPhysicalDeviceExternalFenceInfo VkPhysicalDeviceExternalFenceInfoKHR;
9306
9307 typedef VkExternalFenceProperties VkExternalFencePropertiesKHR;
9308
9309 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo, VkExternalFenceProperties* pExternalFenceProperties);
9310
9311 #ifndef VK_NO_PROTOTYPES
9312 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalFencePropertiesKHR(
9313     VkPhysicalDevice                            physicalDevice,
9314     const VkPhysicalDeviceExternalFenceInfo*    pExternalFenceInfo,
9315     VkExternalFenceProperties*                  pExternalFenceProperties);
9316 #endif
9317
9318
9319 #define VK_KHR_external_fence 1
9320 #define VK_KHR_EXTERNAL_FENCE_SPEC_VERSION 1
9321 #define VK_KHR_EXTERNAL_FENCE_EXTENSION_NAME "VK_KHR_external_fence"
9322 typedef VkFenceImportFlags VkFenceImportFlagsKHR;
9323
9324 typedef VkFenceImportFlagBits VkFenceImportFlagBitsKHR;
9325
9326 typedef VkExportFenceCreateInfo VkExportFenceCreateInfoKHR;
9327
9328
9329
9330 #define VK_KHR_external_fence_fd 1
9331 #define VK_KHR_EXTERNAL_FENCE_FD_SPEC_VERSION 1
9332 #define VK_KHR_EXTERNAL_FENCE_FD_EXTENSION_NAME "VK_KHR_external_fence_fd"
9333 typedef struct VkImportFenceFdInfoKHR {
9334     VkStructureType                      sType;
9335     const void*                          pNext;
9336     VkFence                              fence;
9337     VkFenceImportFlags                   flags;
9338     VkExternalFenceHandleTypeFlagBits    handleType;
9339     int                                  fd;
9340 } VkImportFenceFdInfoKHR;
9341
9342 typedef struct VkFenceGetFdInfoKHR {
9343     VkStructureType                      sType;
9344     const void*                          pNext;
9345     VkFence                              fence;
9346     VkExternalFenceHandleTypeFlagBits    handleType;
9347 } VkFenceGetFdInfoKHR;
9348
9349 typedef VkResult (VKAPI_PTR *PFN_vkImportFenceFdKHR)(VkDevice device, const VkImportFenceFdInfoKHR* pImportFenceFdInfo);
9350 typedef VkResult (VKAPI_PTR *PFN_vkGetFenceFdKHR)(VkDevice device, const VkFenceGetFdInfoKHR* pGetFdInfo, int* pFd);
9351
9352 #ifndef VK_NO_PROTOTYPES
9353 VKAPI_ATTR VkResult VKAPI_CALL vkImportFenceFdKHR(
9354     VkDevice                                    device,
9355     const VkImportFenceFdInfoKHR*               pImportFenceFdInfo);
9356
9357 VKAPI_ATTR VkResult VKAPI_CALL vkGetFenceFdKHR(
9358     VkDevice                                    device,
9359     const VkFenceGetFdInfoKHR*                  pGetFdInfo,
9360     int*                                        pFd);
9361 #endif
9362
9363
9364 #define VK_KHR_performance_query 1
9365 #define VK_KHR_PERFORMANCE_QUERY_SPEC_VERSION 1
9366 #define VK_KHR_PERFORMANCE_QUERY_EXTENSION_NAME "VK_KHR_performance_query"
9367
9368 typedef enum VkPerformanceCounterUnitKHR {
9369     VK_PERFORMANCE_COUNTER_UNIT_GENERIC_KHR = 0,
9370     VK_PERFORMANCE_COUNTER_UNIT_PERCENTAGE_KHR = 1,
9371     VK_PERFORMANCE_COUNTER_UNIT_NANOSECONDS_KHR = 2,
9372     VK_PERFORMANCE_COUNTER_UNIT_BYTES_KHR = 3,
9373     VK_PERFORMANCE_COUNTER_UNIT_BYTES_PER_SECOND_KHR = 4,
9374     VK_PERFORMANCE_COUNTER_UNIT_KELVIN_KHR = 5,
9375     VK_PERFORMANCE_COUNTER_UNIT_WATTS_KHR = 6,
9376     VK_PERFORMANCE_COUNTER_UNIT_VOLTS_KHR = 7,
9377     VK_PERFORMANCE_COUNTER_UNIT_AMPS_KHR = 8,
9378     VK_PERFORMANCE_COUNTER_UNIT_HERTZ_KHR = 9,
9379     VK_PERFORMANCE_COUNTER_UNIT_CYCLES_KHR = 10,
9380     VK_PERFORMANCE_COUNTER_UNIT_MAX_ENUM_KHR = 0x7FFFFFFF
9381 } VkPerformanceCounterUnitKHR;
9382
9383 typedef enum VkPerformanceCounterScopeKHR {
9384     VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR = 0,
9385     VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR = 1,
9386     VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_KHR = 2,
9387     VK_QUERY_SCOPE_COMMAND_BUFFER_KHR = VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR,
9388     VK_QUERY_SCOPE_RENDER_PASS_KHR = VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR,
9389     VK_QUERY_SCOPE_COMMAND_KHR = VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_KHR,
9390     VK_PERFORMANCE_COUNTER_SCOPE_MAX_ENUM_KHR = 0x7FFFFFFF
9391 } VkPerformanceCounterScopeKHR;
9392
9393 typedef enum VkPerformanceCounterStorageKHR {
9394     VK_PERFORMANCE_COUNTER_STORAGE_INT32_KHR = 0,
9395     VK_PERFORMANCE_COUNTER_STORAGE_INT64_KHR = 1,
9396     VK_PERFORMANCE_COUNTER_STORAGE_UINT32_KHR = 2,
9397     VK_PERFORMANCE_COUNTER_STORAGE_UINT64_KHR = 3,
9398     VK_PERFORMANCE_COUNTER_STORAGE_FLOAT32_KHR = 4,
9399     VK_PERFORMANCE_COUNTER_STORAGE_FLOAT64_KHR = 5,
9400     VK_PERFORMANCE_COUNTER_STORAGE_MAX_ENUM_KHR = 0x7FFFFFFF
9401 } VkPerformanceCounterStorageKHR;
9402
9403 typedef enum VkPerformanceCounterDescriptionFlagBitsKHR {
9404     VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_BIT_KHR = 0x00000001,
9405     VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_BIT_KHR = 0x00000002,
9406     VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_KHR = VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_BIT_KHR,
9407     VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_KHR = VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_BIT_KHR,
9408     VK_PERFORMANCE_COUNTER_DESCRIPTION_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
9409 } VkPerformanceCounterDescriptionFlagBitsKHR;
9410 typedef VkFlags VkPerformanceCounterDescriptionFlagsKHR;
9411
9412 typedef enum VkAcquireProfilingLockFlagBitsKHR {
9413     VK_ACQUIRE_PROFILING_LOCK_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
9414 } VkAcquireProfilingLockFlagBitsKHR;
9415 typedef VkFlags VkAcquireProfilingLockFlagsKHR;
9416 typedef struct VkPhysicalDevicePerformanceQueryFeaturesKHR {
9417     VkStructureType    sType;
9418     void*              pNext;
9419     VkBool32           performanceCounterQueryPools;
9420     VkBool32           performanceCounterMultipleQueryPools;
9421 } VkPhysicalDevicePerformanceQueryFeaturesKHR;
9422
9423 typedef struct VkPhysicalDevicePerformanceQueryPropertiesKHR {
9424     VkStructureType    sType;
9425     void*              pNext;
9426     VkBool32           allowCommandBufferQueryCopies;
9427 } VkPhysicalDevicePerformanceQueryPropertiesKHR;
9428
9429 typedef struct VkPerformanceCounterKHR {
9430     VkStructureType                   sType;
9431     void*                             pNext;
9432     VkPerformanceCounterUnitKHR       unit;
9433     VkPerformanceCounterScopeKHR      scope;
9434     VkPerformanceCounterStorageKHR    storage;
9435     deUint8                           uuid[VK_UUID_SIZE];
9436 } VkPerformanceCounterKHR;
9437
9438 typedef struct VkPerformanceCounterDescriptionKHR {
9439     VkStructureType                            sType;
9440     void*                                      pNext;
9441     VkPerformanceCounterDescriptionFlagsKHR    flags;
9442     char                                       name[VK_MAX_DESCRIPTION_SIZE];
9443     char                                       category[VK_MAX_DESCRIPTION_SIZE];
9444     char                                       description[VK_MAX_DESCRIPTION_SIZE];
9445 } VkPerformanceCounterDescriptionKHR;
9446
9447 typedef struct VkQueryPoolPerformanceCreateInfoKHR {
9448     VkStructureType    sType;
9449     const void*        pNext;
9450     deUint32           queueFamilyIndex;
9451     deUint32           counterIndexCount;
9452     const deUint32*    pCounterIndices;
9453 } VkQueryPoolPerformanceCreateInfoKHR;
9454
9455 typedef union VkPerformanceCounterResultKHR {
9456     deInt32     int32;
9457     deInt64     int64;
9458     deUint32    uint32;
9459     deUint64    uint64;
9460     float       float32;
9461     double      float64;
9462 } VkPerformanceCounterResultKHR;
9463
9464 typedef struct VkAcquireProfilingLockInfoKHR {
9465     VkStructureType                   sType;
9466     const void*                       pNext;
9467     VkAcquireProfilingLockFlagsKHR    flags;
9468     deUint64                          timeout;
9469 } VkAcquireProfilingLockInfoKHR;
9470
9471 typedef struct VkPerformanceQuerySubmitInfoKHR {
9472     VkStructureType    sType;
9473     const void*        pNext;
9474     deUint32           counterPassIndex;
9475 } VkPerformanceQuerySubmitInfoKHR;
9476
9477 typedef VkResult (VKAPI_PTR *PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR)(VkPhysicalDevice physicalDevice, deUint32 queueFamilyIndex, deUint32* pCounterCount, VkPerformanceCounterKHR* pCounters, VkPerformanceCounterDescriptionKHR* pCounterDescriptions);
9478 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR)(VkPhysicalDevice physicalDevice, const VkQueryPoolPerformanceCreateInfoKHR* pPerformanceQueryCreateInfo, deUint32* pNumPasses);
9479 typedef VkResult (VKAPI_PTR *PFN_vkAcquireProfilingLockKHR)(VkDevice device, const VkAcquireProfilingLockInfoKHR* pInfo);
9480 typedef void (VKAPI_PTR *PFN_vkReleaseProfilingLockKHR)(VkDevice device);
9481
9482 #ifndef VK_NO_PROTOTYPES
9483 VKAPI_ATTR VkResult VKAPI_CALL vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(
9484     VkPhysicalDevice                            physicalDevice,
9485     deUint32                                    queueFamilyIndex,
9486     deUint32*                                   pCounterCount,
9487     VkPerformanceCounterKHR*                    pCounters,
9488     VkPerformanceCounterDescriptionKHR*         pCounterDescriptions);
9489
9490 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(
9491     VkPhysicalDevice                            physicalDevice,
9492     const VkQueryPoolPerformanceCreateInfoKHR*  pPerformanceQueryCreateInfo,
9493     deUint32*                                   pNumPasses);
9494
9495 VKAPI_ATTR VkResult VKAPI_CALL vkAcquireProfilingLockKHR(
9496     VkDevice                                    device,
9497     const VkAcquireProfilingLockInfoKHR*        pInfo);
9498
9499 VKAPI_ATTR void VKAPI_CALL vkReleaseProfilingLockKHR(
9500     VkDevice                                    device);
9501 #endif
9502
9503
9504 #define VK_KHR_maintenance2 1
9505 #define VK_KHR_MAINTENANCE_2_SPEC_VERSION 1
9506 #define VK_KHR_MAINTENANCE_2_EXTENSION_NAME "VK_KHR_maintenance2"
9507 #define VK_KHR_MAINTENANCE2_SPEC_VERSION  VK_KHR_MAINTENANCE_2_SPEC_VERSION
9508 #define VK_KHR_MAINTENANCE2_EXTENSION_NAME VK_KHR_MAINTENANCE_2_EXTENSION_NAME
9509 typedef VkPointClippingBehavior VkPointClippingBehaviorKHR;
9510
9511 typedef VkTessellationDomainOrigin VkTessellationDomainOriginKHR;
9512
9513 typedef VkPhysicalDevicePointClippingProperties VkPhysicalDevicePointClippingPropertiesKHR;
9514
9515 typedef VkRenderPassInputAttachmentAspectCreateInfo VkRenderPassInputAttachmentAspectCreateInfoKHR;
9516
9517 typedef VkInputAttachmentAspectReference VkInputAttachmentAspectReferenceKHR;
9518
9519 typedef VkImageViewUsageCreateInfo VkImageViewUsageCreateInfoKHR;
9520
9521 typedef VkPipelineTessellationDomainOriginStateCreateInfo VkPipelineTessellationDomainOriginStateCreateInfoKHR;
9522
9523
9524
9525 #define VK_KHR_get_surface_capabilities2 1
9526 #define VK_KHR_GET_SURFACE_CAPABILITIES_2_SPEC_VERSION 1
9527 #define VK_KHR_GET_SURFACE_CAPABILITIES_2_EXTENSION_NAME "VK_KHR_get_surface_capabilities2"
9528 typedef struct VkPhysicalDeviceSurfaceInfo2KHR {
9529     VkStructureType    sType;
9530     const void*        pNext;
9531     VkSurfaceKHR       surface;
9532 } VkPhysicalDeviceSurfaceInfo2KHR;
9533
9534 typedef struct VkSurfaceCapabilities2KHR {
9535     VkStructureType             sType;
9536     void*                       pNext;
9537     VkSurfaceCapabilitiesKHR    surfaceCapabilities;
9538 } VkSurfaceCapabilities2KHR;
9539
9540 typedef struct VkSurfaceFormat2KHR {
9541     VkStructureType       sType;
9542     void*                 pNext;
9543     VkSurfaceFormatKHR    surfaceFormat;
9544 } VkSurfaceFormat2KHR;
9545
9546 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, VkSurfaceCapabilities2KHR* pSurfaceCapabilities);
9547 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceFormats2KHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, deUint32* pSurfaceFormatCount, VkSurfaceFormat2KHR* pSurfaceFormats);
9548
9549 #ifndef VK_NO_PROTOTYPES
9550 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceCapabilities2KHR(
9551     VkPhysicalDevice                            physicalDevice,
9552     const VkPhysicalDeviceSurfaceInfo2KHR*      pSurfaceInfo,
9553     VkSurfaceCapabilities2KHR*                  pSurfaceCapabilities);
9554
9555 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceFormats2KHR(
9556     VkPhysicalDevice                            physicalDevice,
9557     const VkPhysicalDeviceSurfaceInfo2KHR*      pSurfaceInfo,
9558     deUint32*                                   pSurfaceFormatCount,
9559     VkSurfaceFormat2KHR*                        pSurfaceFormats);
9560 #endif
9561
9562
9563 #define VK_KHR_variable_pointers 1
9564 #define VK_KHR_VARIABLE_POINTERS_SPEC_VERSION 1
9565 #define VK_KHR_VARIABLE_POINTERS_EXTENSION_NAME "VK_KHR_variable_pointers"
9566 typedef VkPhysicalDeviceVariablePointersFeatures VkPhysicalDeviceVariablePointerFeaturesKHR;
9567
9568 typedef VkPhysicalDeviceVariablePointersFeatures VkPhysicalDeviceVariablePointersFeaturesKHR;
9569
9570
9571
9572 #define VK_KHR_get_display_properties2 1
9573 #define VK_KHR_GET_DISPLAY_PROPERTIES_2_SPEC_VERSION 1
9574 #define VK_KHR_GET_DISPLAY_PROPERTIES_2_EXTENSION_NAME "VK_KHR_get_display_properties2"
9575 typedef struct VkDisplayProperties2KHR {
9576     VkStructureType           sType;
9577     void*                     pNext;
9578     VkDisplayPropertiesKHR    displayProperties;
9579 } VkDisplayProperties2KHR;
9580
9581 typedef struct VkDisplayPlaneProperties2KHR {
9582     VkStructureType                sType;
9583     void*                          pNext;
9584     VkDisplayPlanePropertiesKHR    displayPlaneProperties;
9585 } VkDisplayPlaneProperties2KHR;
9586
9587 typedef struct VkDisplayModeProperties2KHR {
9588     VkStructureType               sType;
9589     void*                         pNext;
9590     VkDisplayModePropertiesKHR    displayModeProperties;
9591 } VkDisplayModeProperties2KHR;
9592
9593 typedef struct VkDisplayPlaneInfo2KHR {
9594     VkStructureType     sType;
9595     const void*         pNext;
9596     VkDisplayModeKHR    mode;
9597     deUint32            planeIndex;
9598 } VkDisplayPlaneInfo2KHR;
9599
9600 typedef struct VkDisplayPlaneCapabilities2KHR {
9601     VkStructureType                  sType;
9602     void*                            pNext;
9603     VkDisplayPlaneCapabilitiesKHR    capabilities;
9604 } VkDisplayPlaneCapabilities2KHR;
9605
9606 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceDisplayProperties2KHR)(VkPhysicalDevice physicalDevice, deUint32* pPropertyCount, VkDisplayProperties2KHR* pProperties);
9607 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR)(VkPhysicalDevice physicalDevice, deUint32* pPropertyCount, VkDisplayPlaneProperties2KHR* pProperties);
9608 typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayModeProperties2KHR)(VkPhysicalDevice physicalDevice, VkDisplayKHR display, deUint32* pPropertyCount, VkDisplayModeProperties2KHR* pProperties);
9609 typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayPlaneCapabilities2KHR)(VkPhysicalDevice physicalDevice, const VkDisplayPlaneInfo2KHR* pDisplayPlaneInfo, VkDisplayPlaneCapabilities2KHR* pCapabilities);
9610
9611 #ifndef VK_NO_PROTOTYPES
9612 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceDisplayProperties2KHR(
9613     VkPhysicalDevice                            physicalDevice,
9614     deUint32*                                   pPropertyCount,
9615     VkDisplayProperties2KHR*                    pProperties);
9616
9617 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceDisplayPlaneProperties2KHR(
9618     VkPhysicalDevice                            physicalDevice,
9619     deUint32*                                   pPropertyCount,
9620     VkDisplayPlaneProperties2KHR*               pProperties);
9621
9622 VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayModeProperties2KHR(
9623     VkPhysicalDevice                            physicalDevice,
9624     VkDisplayKHR                                display,
9625     deUint32*                                   pPropertyCount,
9626     VkDisplayModeProperties2KHR*                pProperties);
9627
9628 VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayPlaneCapabilities2KHR(
9629     VkPhysicalDevice                            physicalDevice,
9630     const VkDisplayPlaneInfo2KHR*               pDisplayPlaneInfo,
9631     VkDisplayPlaneCapabilities2KHR*             pCapabilities);
9632 #endif
9633
9634
9635 #define VK_KHR_dedicated_allocation 1
9636 #define VK_KHR_DEDICATED_ALLOCATION_SPEC_VERSION 3
9637 #define VK_KHR_DEDICATED_ALLOCATION_EXTENSION_NAME "VK_KHR_dedicated_allocation"
9638 typedef VkMemoryDedicatedRequirements VkMemoryDedicatedRequirementsKHR;
9639
9640 typedef VkMemoryDedicatedAllocateInfo VkMemoryDedicatedAllocateInfoKHR;
9641
9642
9643
9644 #define VK_KHR_storage_buffer_storage_class 1
9645 #define VK_KHR_STORAGE_BUFFER_STORAGE_CLASS_SPEC_VERSION 1
9646 #define VK_KHR_STORAGE_BUFFER_STORAGE_CLASS_EXTENSION_NAME "VK_KHR_storage_buffer_storage_class"
9647
9648
9649 #define VK_KHR_relaxed_block_layout 1
9650 #define VK_KHR_RELAXED_BLOCK_LAYOUT_SPEC_VERSION 1
9651 #define VK_KHR_RELAXED_BLOCK_LAYOUT_EXTENSION_NAME "VK_KHR_relaxed_block_layout"
9652
9653
9654 #define VK_KHR_get_memory_requirements2 1
9655 #define VK_KHR_GET_MEMORY_REQUIREMENTS_2_SPEC_VERSION 1
9656 #define VK_KHR_GET_MEMORY_REQUIREMENTS_2_EXTENSION_NAME "VK_KHR_get_memory_requirements2"
9657 typedef VkBufferMemoryRequirementsInfo2 VkBufferMemoryRequirementsInfo2KHR;
9658
9659 typedef VkImageMemoryRequirementsInfo2 VkImageMemoryRequirementsInfo2KHR;
9660
9661 typedef VkImageSparseMemoryRequirementsInfo2 VkImageSparseMemoryRequirementsInfo2KHR;
9662
9663 typedef VkMemoryRequirements2 VkMemoryRequirements2KHR;
9664
9665 typedef VkSparseImageMemoryRequirements2 VkSparseImageMemoryRequirements2KHR;
9666
9667 typedef void (VKAPI_PTR *PFN_vkGetImageMemoryRequirements2KHR)(VkDevice device, const VkImageMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements);
9668 typedef void (VKAPI_PTR *PFN_vkGetBufferMemoryRequirements2KHR)(VkDevice device, const VkBufferMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements);
9669 typedef void (VKAPI_PTR *PFN_vkGetImageSparseMemoryRequirements2KHR)(VkDevice device, const VkImageSparseMemoryRequirementsInfo2* pInfo, deUint32* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements);
9670
9671 #ifndef VK_NO_PROTOTYPES
9672 VKAPI_ATTR void VKAPI_CALL vkGetImageMemoryRequirements2KHR(
9673     VkDevice                                    device,
9674     const VkImageMemoryRequirementsInfo2*       pInfo,
9675     VkMemoryRequirements2*                      pMemoryRequirements);
9676
9677 VKAPI_ATTR void VKAPI_CALL vkGetBufferMemoryRequirements2KHR(
9678     VkDevice                                    device,
9679     const VkBufferMemoryRequirementsInfo2*      pInfo,
9680     VkMemoryRequirements2*                      pMemoryRequirements);
9681
9682 VKAPI_ATTR void VKAPI_CALL vkGetImageSparseMemoryRequirements2KHR(
9683     VkDevice                                    device,
9684     const VkImageSparseMemoryRequirementsInfo2* pInfo,
9685     deUint32*                                   pSparseMemoryRequirementCount,
9686     VkSparseImageMemoryRequirements2*           pSparseMemoryRequirements);
9687 #endif
9688
9689
9690 #define VK_KHR_image_format_list 1
9691 #define VK_KHR_IMAGE_FORMAT_LIST_SPEC_VERSION 1
9692 #define VK_KHR_IMAGE_FORMAT_LIST_EXTENSION_NAME "VK_KHR_image_format_list"
9693 typedef VkImageFormatListCreateInfo VkImageFormatListCreateInfoKHR;
9694
9695
9696
9697 #define VK_KHR_sampler_ycbcr_conversion 1
9698 typedef VkSamplerYcbcrConversion VkSamplerYcbcrConversionKHR;
9699
9700 #define VK_KHR_SAMPLER_YCBCR_CONVERSION_SPEC_VERSION 14
9701 #define VK_KHR_SAMPLER_YCBCR_CONVERSION_EXTENSION_NAME "VK_KHR_sampler_ycbcr_conversion"
9702 typedef VkSamplerYcbcrModelConversion VkSamplerYcbcrModelConversionKHR;
9703
9704 typedef VkSamplerYcbcrRange VkSamplerYcbcrRangeKHR;
9705
9706 typedef VkChromaLocation VkChromaLocationKHR;
9707
9708 typedef VkSamplerYcbcrConversionCreateInfo VkSamplerYcbcrConversionCreateInfoKHR;
9709
9710 typedef VkSamplerYcbcrConversionInfo VkSamplerYcbcrConversionInfoKHR;
9711
9712 typedef VkBindImagePlaneMemoryInfo VkBindImagePlaneMemoryInfoKHR;
9713
9714 typedef VkImagePlaneMemoryRequirementsInfo VkImagePlaneMemoryRequirementsInfoKHR;
9715
9716 typedef VkPhysicalDeviceSamplerYcbcrConversionFeatures VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR;
9717
9718 typedef VkSamplerYcbcrConversionImageFormatProperties VkSamplerYcbcrConversionImageFormatPropertiesKHR;
9719
9720 typedef VkResult (VKAPI_PTR *PFN_vkCreateSamplerYcbcrConversionKHR)(VkDevice device, const VkSamplerYcbcrConversionCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSamplerYcbcrConversion* pYcbcrConversion);
9721 typedef void (VKAPI_PTR *PFN_vkDestroySamplerYcbcrConversionKHR)(VkDevice device, VkSamplerYcbcrConversion ycbcrConversion, const VkAllocationCallbacks* pAllocator);
9722
9723 #ifndef VK_NO_PROTOTYPES
9724 VKAPI_ATTR VkResult VKAPI_CALL vkCreateSamplerYcbcrConversionKHR(
9725     VkDevice                                    device,
9726     const VkSamplerYcbcrConversionCreateInfo*   pCreateInfo,
9727     const VkAllocationCallbacks*                pAllocator,
9728     VkSamplerYcbcrConversion*                   pYcbcrConversion);
9729
9730 VKAPI_ATTR void VKAPI_CALL vkDestroySamplerYcbcrConversionKHR(
9731     VkDevice                                    device,
9732     VkSamplerYcbcrConversion                    ycbcrConversion,
9733     const VkAllocationCallbacks*                pAllocator);
9734 #endif
9735
9736
9737 #define VK_KHR_bind_memory2 1
9738 #define VK_KHR_BIND_MEMORY_2_SPEC_VERSION 1
9739 #define VK_KHR_BIND_MEMORY_2_EXTENSION_NAME "VK_KHR_bind_memory2"
9740 typedef VkBindBufferMemoryInfo VkBindBufferMemoryInfoKHR;
9741
9742 typedef VkBindImageMemoryInfo VkBindImageMemoryInfoKHR;
9743
9744 typedef VkResult (VKAPI_PTR *PFN_vkBindBufferMemory2KHR)(VkDevice device, deUint32 bindInfoCount, const VkBindBufferMemoryInfo* pBindInfos);
9745 typedef VkResult (VKAPI_PTR *PFN_vkBindImageMemory2KHR)(VkDevice device, deUint32 bindInfoCount, const VkBindImageMemoryInfo* pBindInfos);
9746
9747 #ifndef VK_NO_PROTOTYPES
9748 VKAPI_ATTR VkResult VKAPI_CALL vkBindBufferMemory2KHR(
9749     VkDevice                                    device,
9750     deUint32                                    bindInfoCount,
9751     const VkBindBufferMemoryInfo*               pBindInfos);
9752
9753 VKAPI_ATTR VkResult VKAPI_CALL vkBindImageMemory2KHR(
9754     VkDevice                                    device,
9755     deUint32                                    bindInfoCount,
9756     const VkBindImageMemoryInfo*                pBindInfos);
9757 #endif
9758
9759
9760 #define VK_KHR_maintenance3 1
9761 #define VK_KHR_MAINTENANCE_3_SPEC_VERSION 1
9762 #define VK_KHR_MAINTENANCE_3_EXTENSION_NAME "VK_KHR_maintenance3"
9763 #define VK_KHR_MAINTENANCE3_SPEC_VERSION  VK_KHR_MAINTENANCE_3_SPEC_VERSION
9764 #define VK_KHR_MAINTENANCE3_EXTENSION_NAME VK_KHR_MAINTENANCE_3_EXTENSION_NAME
9765 typedef VkPhysicalDeviceMaintenance3Properties VkPhysicalDeviceMaintenance3PropertiesKHR;
9766
9767 typedef VkDescriptorSetLayoutSupport VkDescriptorSetLayoutSupportKHR;
9768
9769 typedef void (VKAPI_PTR *PFN_vkGetDescriptorSetLayoutSupportKHR)(VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, VkDescriptorSetLayoutSupport* pSupport);
9770
9771 #ifndef VK_NO_PROTOTYPES
9772 VKAPI_ATTR void VKAPI_CALL vkGetDescriptorSetLayoutSupportKHR(
9773     VkDevice                                    device,
9774     const VkDescriptorSetLayoutCreateInfo*      pCreateInfo,
9775     VkDescriptorSetLayoutSupport*               pSupport);
9776 #endif
9777
9778
9779 #define VK_KHR_draw_indirect_count 1
9780 #define VK_KHR_DRAW_INDIRECT_COUNT_SPEC_VERSION 1
9781 #define VK_KHR_DRAW_INDIRECT_COUNT_EXTENSION_NAME "VK_KHR_draw_indirect_count"
9782 typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirectCountKHR)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, deUint32 maxDrawCount, deUint32 stride);
9783 typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexedIndirectCountKHR)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, deUint32 maxDrawCount, deUint32 stride);
9784
9785 #ifndef VK_NO_PROTOTYPES
9786 VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirectCountKHR(
9787     VkCommandBuffer                             commandBuffer,
9788     VkBuffer                                    buffer,
9789     VkDeviceSize                                offset,
9790     VkBuffer                                    countBuffer,
9791     VkDeviceSize                                countBufferOffset,
9792     deUint32                                    maxDrawCount,
9793     deUint32                                    stride);
9794
9795 VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexedIndirectCountKHR(
9796     VkCommandBuffer                             commandBuffer,
9797     VkBuffer                                    buffer,
9798     VkDeviceSize                                offset,
9799     VkBuffer                                    countBuffer,
9800     VkDeviceSize                                countBufferOffset,
9801     deUint32                                    maxDrawCount,
9802     deUint32                                    stride);
9803 #endif
9804
9805
9806 #define VK_KHR_shader_subgroup_extended_types 1
9807 #define VK_KHR_SHADER_SUBGROUP_EXTENDED_TYPES_SPEC_VERSION 1
9808 #define VK_KHR_SHADER_SUBGROUP_EXTENDED_TYPES_EXTENSION_NAME "VK_KHR_shader_subgroup_extended_types"
9809 typedef VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures VkPhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR;
9810
9811
9812
9813 #define VK_KHR_8bit_storage 1
9814 #define VK_KHR_8BIT_STORAGE_SPEC_VERSION  1
9815 #define VK_KHR_8BIT_STORAGE_EXTENSION_NAME "VK_KHR_8bit_storage"
9816 typedef VkPhysicalDevice8BitStorageFeatures VkPhysicalDevice8BitStorageFeaturesKHR;
9817
9818
9819
9820 #define VK_KHR_shader_atomic_int64 1
9821 #define VK_KHR_SHADER_ATOMIC_INT64_SPEC_VERSION 1
9822 #define VK_KHR_SHADER_ATOMIC_INT64_EXTENSION_NAME "VK_KHR_shader_atomic_int64"
9823 typedef VkPhysicalDeviceShaderAtomicInt64Features VkPhysicalDeviceShaderAtomicInt64FeaturesKHR;
9824
9825
9826
9827 #define VK_KHR_shader_clock 1
9828 #define VK_KHR_SHADER_CLOCK_SPEC_VERSION  1
9829 #define VK_KHR_SHADER_CLOCK_EXTENSION_NAME "VK_KHR_shader_clock"
9830 typedef struct VkPhysicalDeviceShaderClockFeaturesKHR {
9831     VkStructureType    sType;
9832     void*              pNext;
9833     VkBool32           shaderSubgroupClock;
9834     VkBool32           shaderDeviceClock;
9835 } VkPhysicalDeviceShaderClockFeaturesKHR;
9836
9837
9838
9839 #define VK_KHR_global_priority 1
9840 #define VK_MAX_GLOBAL_PRIORITY_SIZE_KHR   16U
9841 #define VK_KHR_GLOBAL_PRIORITY_SPEC_VERSION 1
9842 #define VK_KHR_GLOBAL_PRIORITY_EXTENSION_NAME "VK_KHR_global_priority"
9843
9844 typedef enum VkQueueGlobalPriorityKHR {
9845     VK_QUEUE_GLOBAL_PRIORITY_LOW_KHR = 128,
9846     VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_KHR = 256,
9847     VK_QUEUE_GLOBAL_PRIORITY_HIGH_KHR = 512,
9848     VK_QUEUE_GLOBAL_PRIORITY_REALTIME_KHR = 1024,
9849     VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT = VK_QUEUE_GLOBAL_PRIORITY_LOW_KHR,
9850     VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT = VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_KHR,
9851     VK_QUEUE_GLOBAL_PRIORITY_HIGH_EXT = VK_QUEUE_GLOBAL_PRIORITY_HIGH_KHR,
9852     VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT = VK_QUEUE_GLOBAL_PRIORITY_REALTIME_KHR,
9853     VK_QUEUE_GLOBAL_PRIORITY_MAX_ENUM_KHR = 0x7FFFFFFF
9854 } VkQueueGlobalPriorityKHR;
9855 typedef struct VkDeviceQueueGlobalPriorityCreateInfoKHR {
9856     VkStructureType             sType;
9857     const void*                 pNext;
9858     VkQueueGlobalPriorityKHR    globalPriority;
9859 } VkDeviceQueueGlobalPriorityCreateInfoKHR;
9860
9861 typedef struct VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR {
9862     VkStructureType    sType;
9863     void*              pNext;
9864     VkBool32           globalPriorityQuery;
9865 } VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR;
9866
9867 typedef struct VkQueueFamilyGlobalPriorityPropertiesKHR {
9868     VkStructureType             sType;
9869     void*                       pNext;
9870     deUint32                    priorityCount;
9871     VkQueueGlobalPriorityKHR    priorities[VK_MAX_GLOBAL_PRIORITY_SIZE_KHR];
9872 } VkQueueFamilyGlobalPriorityPropertiesKHR;
9873
9874
9875
9876 #define VK_KHR_driver_properties 1
9877 #define VK_KHR_DRIVER_PROPERTIES_SPEC_VERSION 1
9878 #define VK_KHR_DRIVER_PROPERTIES_EXTENSION_NAME "VK_KHR_driver_properties"
9879 #define VK_MAX_DRIVER_NAME_SIZE_KHR       VK_MAX_DRIVER_NAME_SIZE
9880 #define VK_MAX_DRIVER_INFO_SIZE_KHR       VK_MAX_DRIVER_INFO_SIZE
9881 typedef VkDriverId VkDriverIdKHR;
9882
9883 typedef VkConformanceVersion VkConformanceVersionKHR;
9884
9885 typedef VkPhysicalDeviceDriverProperties VkPhysicalDeviceDriverPropertiesKHR;
9886
9887
9888
9889 #define VK_KHR_shader_float_controls 1
9890 #define VK_KHR_SHADER_FLOAT_CONTROLS_SPEC_VERSION 4
9891 #define VK_KHR_SHADER_FLOAT_CONTROLS_EXTENSION_NAME "VK_KHR_shader_float_controls"
9892 typedef VkShaderFloatControlsIndependence VkShaderFloatControlsIndependenceKHR;
9893
9894 typedef VkPhysicalDeviceFloatControlsProperties VkPhysicalDeviceFloatControlsPropertiesKHR;
9895
9896
9897
9898 #define VK_KHR_depth_stencil_resolve 1
9899 #define VK_KHR_DEPTH_STENCIL_RESOLVE_SPEC_VERSION 1
9900 #define VK_KHR_DEPTH_STENCIL_RESOLVE_EXTENSION_NAME "VK_KHR_depth_stencil_resolve"
9901 typedef VkResolveModeFlagBits VkResolveModeFlagBitsKHR;
9902
9903 typedef VkResolveModeFlags VkResolveModeFlagsKHR;
9904
9905 typedef VkSubpassDescriptionDepthStencilResolve VkSubpassDescriptionDepthStencilResolveKHR;
9906
9907 typedef VkPhysicalDeviceDepthStencilResolveProperties VkPhysicalDeviceDepthStencilResolvePropertiesKHR;
9908
9909
9910
9911 #define VK_KHR_swapchain_mutable_format 1
9912 #define VK_KHR_SWAPCHAIN_MUTABLE_FORMAT_SPEC_VERSION 1
9913 #define VK_KHR_SWAPCHAIN_MUTABLE_FORMAT_EXTENSION_NAME "VK_KHR_swapchain_mutable_format"
9914
9915
9916 #define VK_KHR_timeline_semaphore 1
9917 #define VK_KHR_TIMELINE_SEMAPHORE_SPEC_VERSION 2
9918 #define VK_KHR_TIMELINE_SEMAPHORE_EXTENSION_NAME "VK_KHR_timeline_semaphore"
9919 typedef VkSemaphoreType VkSemaphoreTypeKHR;
9920
9921 typedef VkSemaphoreWaitFlagBits VkSemaphoreWaitFlagBitsKHR;
9922
9923 typedef VkSemaphoreWaitFlags VkSemaphoreWaitFlagsKHR;
9924
9925 typedef VkPhysicalDeviceTimelineSemaphoreFeatures VkPhysicalDeviceTimelineSemaphoreFeaturesKHR;
9926
9927 typedef VkPhysicalDeviceTimelineSemaphoreProperties VkPhysicalDeviceTimelineSemaphorePropertiesKHR;
9928
9929 typedef VkSemaphoreTypeCreateInfo VkSemaphoreTypeCreateInfoKHR;
9930
9931 typedef VkTimelineSemaphoreSubmitInfo VkTimelineSemaphoreSubmitInfoKHR;
9932
9933 typedef VkSemaphoreWaitInfo VkSemaphoreWaitInfoKHR;
9934
9935 typedef VkSemaphoreSignalInfo VkSemaphoreSignalInfoKHR;
9936
9937 typedef VkResult (VKAPI_PTR *PFN_vkGetSemaphoreCounterValueKHR)(VkDevice device, VkSemaphore semaphore, deUint64* pValue);
9938 typedef VkResult (VKAPI_PTR *PFN_vkWaitSemaphoresKHR)(VkDevice device, const VkSemaphoreWaitInfo* pWaitInfo, deUint64 timeout);
9939 typedef VkResult (VKAPI_PTR *PFN_vkSignalSemaphoreKHR)(VkDevice device, const VkSemaphoreSignalInfo* pSignalInfo);
9940
9941 #ifndef VK_NO_PROTOTYPES
9942 VKAPI_ATTR VkResult VKAPI_CALL vkGetSemaphoreCounterValueKHR(
9943     VkDevice                                    device,
9944     VkSemaphore                                 semaphore,
9945     deUint64*                                   pValue);
9946
9947 VKAPI_ATTR VkResult VKAPI_CALL vkWaitSemaphoresKHR(
9948     VkDevice                                    device,
9949     const VkSemaphoreWaitInfo*                  pWaitInfo,
9950     deUint64                                    timeout);
9951
9952 VKAPI_ATTR VkResult VKAPI_CALL vkSignalSemaphoreKHR(
9953     VkDevice                                    device,
9954     const VkSemaphoreSignalInfo*                pSignalInfo);
9955 #endif
9956
9957
9958 #define VK_KHR_vulkan_memory_model 1
9959 #define VK_KHR_VULKAN_MEMORY_MODEL_SPEC_VERSION 3
9960 #define VK_KHR_VULKAN_MEMORY_MODEL_EXTENSION_NAME "VK_KHR_vulkan_memory_model"
9961 typedef VkPhysicalDeviceVulkanMemoryModelFeatures VkPhysicalDeviceVulkanMemoryModelFeaturesKHR;
9962
9963
9964
9965 #define VK_KHR_shader_terminate_invocation 1
9966 #define VK_KHR_SHADER_TERMINATE_INVOCATION_SPEC_VERSION 1
9967 #define VK_KHR_SHADER_TERMINATE_INVOCATION_EXTENSION_NAME "VK_KHR_shader_terminate_invocation"
9968 typedef VkPhysicalDeviceShaderTerminateInvocationFeatures VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR;
9969
9970
9971
9972 #define VK_KHR_fragment_shading_rate 1
9973 #define VK_KHR_FRAGMENT_SHADING_RATE_SPEC_VERSION 2
9974 #define VK_KHR_FRAGMENT_SHADING_RATE_EXTENSION_NAME "VK_KHR_fragment_shading_rate"
9975
9976 typedef enum VkFragmentShadingRateCombinerOpKHR {
9977     VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR = 0,
9978     VK_FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR = 1,
9979     VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MIN_KHR = 2,
9980     VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_KHR = 3,
9981     VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MUL_KHR = 4,
9982     VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_ENUM_KHR = 0x7FFFFFFF
9983 } VkFragmentShadingRateCombinerOpKHR;
9984 typedef struct VkFragmentShadingRateAttachmentInfoKHR {
9985     VkStructureType                  sType;
9986     const void*                      pNext;
9987     const VkAttachmentReference2*    pFragmentShadingRateAttachment;
9988     VkExtent2D                       shadingRateAttachmentTexelSize;
9989 } VkFragmentShadingRateAttachmentInfoKHR;
9990
9991 typedef struct VkPipelineFragmentShadingRateStateCreateInfoKHR {
9992     VkStructureType                       sType;
9993     const void*                           pNext;
9994     VkExtent2D                            fragmentSize;
9995     VkFragmentShadingRateCombinerOpKHR    combinerOps[2];
9996 } VkPipelineFragmentShadingRateStateCreateInfoKHR;
9997
9998 typedef struct VkPhysicalDeviceFragmentShadingRateFeaturesKHR {
9999     VkStructureType    sType;
10000     void*              pNext;
10001     VkBool32           pipelineFragmentShadingRate;
10002     VkBool32           primitiveFragmentShadingRate;
10003     VkBool32           attachmentFragmentShadingRate;
10004 } VkPhysicalDeviceFragmentShadingRateFeaturesKHR;
10005
10006 typedef struct VkPhysicalDeviceFragmentShadingRatePropertiesKHR {
10007     VkStructureType          sType;
10008     void*                    pNext;
10009     VkExtent2D               minFragmentShadingRateAttachmentTexelSize;
10010     VkExtent2D               maxFragmentShadingRateAttachmentTexelSize;
10011     deUint32                 maxFragmentShadingRateAttachmentTexelSizeAspectRatio;
10012     VkBool32                 primitiveFragmentShadingRateWithMultipleViewports;
10013     VkBool32                 layeredShadingRateAttachments;
10014     VkBool32                 fragmentShadingRateNonTrivialCombinerOps;
10015     VkExtent2D               maxFragmentSize;
10016     deUint32                 maxFragmentSizeAspectRatio;
10017     deUint32                 maxFragmentShadingRateCoverageSamples;
10018     VkSampleCountFlagBits    maxFragmentShadingRateRasterizationSamples;
10019     VkBool32                 fragmentShadingRateWithShaderDepthStencilWrites;
10020     VkBool32                 fragmentShadingRateWithSampleMask;
10021     VkBool32                 fragmentShadingRateWithShaderSampleMask;
10022     VkBool32                 fragmentShadingRateWithConservativeRasterization;
10023     VkBool32                 fragmentShadingRateWithFragmentShaderInterlock;
10024     VkBool32                 fragmentShadingRateWithCustomSampleLocations;
10025     VkBool32                 fragmentShadingRateStrictMultiplyCombiner;
10026 } VkPhysicalDeviceFragmentShadingRatePropertiesKHR;
10027
10028 typedef struct VkPhysicalDeviceFragmentShadingRateKHR {
10029     VkStructureType       sType;
10030     void*                 pNext;
10031     VkSampleCountFlags    sampleCounts;
10032     VkExtent2D            fragmentSize;
10033 } VkPhysicalDeviceFragmentShadingRateKHR;
10034
10035 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR)(VkPhysicalDevice physicalDevice, deUint32* pFragmentShadingRateCount, VkPhysicalDeviceFragmentShadingRateKHR* pFragmentShadingRates);
10036 typedef void (VKAPI_PTR *PFN_vkCmdSetFragmentShadingRateKHR)(VkCommandBuffer           commandBuffer, const VkExtent2D*                           pFragmentSize, const VkFragmentShadingRateCombinerOpKHR    combinerOps[2]);
10037
10038 #ifndef VK_NO_PROTOTYPES
10039 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceFragmentShadingRatesKHR(
10040     VkPhysicalDevice                            physicalDevice,
10041     deUint32*                                   pFragmentShadingRateCount,
10042     VkPhysicalDeviceFragmentShadingRateKHR*     pFragmentShadingRates);
10043
10044 VKAPI_ATTR void VKAPI_CALL vkCmdSetFragmentShadingRateKHR(
10045     VkCommandBuffer                             commandBuffer,
10046     const VkExtent2D*                           pFragmentSize,
10047     const VkFragmentShadingRateCombinerOpKHR    combinerOps[2]);
10048 #endif
10049
10050
10051 #define VK_KHR_spirv_1_4 1
10052 #define VK_KHR_SPIRV_1_4_SPEC_VERSION     1
10053 #define VK_KHR_SPIRV_1_4_EXTENSION_NAME   "VK_KHR_spirv_1_4"
10054
10055
10056 #define VK_KHR_surface_protected_capabilities 1
10057 #define VK_KHR_SURFACE_PROTECTED_CAPABILITIES_SPEC_VERSION 1
10058 #define VK_KHR_SURFACE_PROTECTED_CAPABILITIES_EXTENSION_NAME "VK_KHR_surface_protected_capabilities"
10059 typedef struct VkSurfaceProtectedCapabilitiesKHR {
10060     VkStructureType    sType;
10061     const void*        pNext;
10062     VkBool32           supportsProtected;
10063 } VkSurfaceProtectedCapabilitiesKHR;
10064
10065
10066
10067 #define VK_KHR_separate_depth_stencil_layouts 1
10068 #define VK_KHR_SEPARATE_DEPTH_STENCIL_LAYOUTS_SPEC_VERSION 1
10069 #define VK_KHR_SEPARATE_DEPTH_STENCIL_LAYOUTS_EXTENSION_NAME "VK_KHR_separate_depth_stencil_layouts"
10070 typedef VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures VkPhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR;
10071
10072 typedef VkAttachmentReferenceStencilLayout VkAttachmentReferenceStencilLayoutKHR;
10073
10074 typedef VkAttachmentDescriptionStencilLayout VkAttachmentDescriptionStencilLayoutKHR;
10075
10076
10077
10078 #define VK_KHR_present_wait 1
10079 #define VK_KHR_PRESENT_WAIT_SPEC_VERSION  1
10080 #define VK_KHR_PRESENT_WAIT_EXTENSION_NAME "VK_KHR_present_wait"
10081 typedef struct VkPhysicalDevicePresentWaitFeaturesKHR {
10082     VkStructureType    sType;
10083     void*              pNext;
10084     VkBool32           presentWait;
10085 } VkPhysicalDevicePresentWaitFeaturesKHR;
10086
10087 typedef VkResult (VKAPI_PTR *PFN_vkWaitForPresentKHR)(VkDevice device, VkSwapchainKHR swapchain, deUint64 presentId, deUint64 timeout);
10088
10089 #ifndef VK_NO_PROTOTYPES
10090 VKAPI_ATTR VkResult VKAPI_CALL vkWaitForPresentKHR(
10091     VkDevice                                    device,
10092     VkSwapchainKHR                              swapchain,
10093     deUint64                                    presentId,
10094     deUint64                                    timeout);
10095 #endif
10096
10097
10098 #define VK_KHR_uniform_buffer_standard_layout 1
10099 #define VK_KHR_UNIFORM_BUFFER_STANDARD_LAYOUT_SPEC_VERSION 1
10100 #define VK_KHR_UNIFORM_BUFFER_STANDARD_LAYOUT_EXTENSION_NAME "VK_KHR_uniform_buffer_standard_layout"
10101 typedef VkPhysicalDeviceUniformBufferStandardLayoutFeatures VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR;
10102
10103
10104
10105 #define VK_KHR_buffer_device_address 1
10106 #define VK_KHR_BUFFER_DEVICE_ADDRESS_SPEC_VERSION 1
10107 #define VK_KHR_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME "VK_KHR_buffer_device_address"
10108 typedef VkPhysicalDeviceBufferDeviceAddressFeatures VkPhysicalDeviceBufferDeviceAddressFeaturesKHR;
10109
10110 typedef VkBufferDeviceAddressInfo VkBufferDeviceAddressInfoKHR;
10111
10112 typedef VkBufferOpaqueCaptureAddressCreateInfo VkBufferOpaqueCaptureAddressCreateInfoKHR;
10113
10114 typedef VkMemoryOpaqueCaptureAddressAllocateInfo VkMemoryOpaqueCaptureAddressAllocateInfoKHR;
10115
10116 typedef VkDeviceMemoryOpaqueCaptureAddressInfo VkDeviceMemoryOpaqueCaptureAddressInfoKHR;
10117
10118 typedef VkDeviceAddress (VKAPI_PTR *PFN_vkGetBufferDeviceAddressKHR)(VkDevice device, const VkBufferDeviceAddressInfo* pInfo);
10119 typedef deUint64 (VKAPI_PTR *PFN_vkGetBufferOpaqueCaptureAddressKHR)(VkDevice device, const VkBufferDeviceAddressInfo* pInfo);
10120 typedef deUint64 (VKAPI_PTR *PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR)(VkDevice device, const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo);
10121
10122 #ifndef VK_NO_PROTOTYPES
10123 VKAPI_ATTR VkDeviceAddress VKAPI_CALL vkGetBufferDeviceAddressKHR(
10124     VkDevice                                    device,
10125     const VkBufferDeviceAddressInfo*            pInfo);
10126
10127 VKAPI_ATTR deUint64 VKAPI_CALL vkGetBufferOpaqueCaptureAddressKHR(
10128     VkDevice                                    device,
10129     const VkBufferDeviceAddressInfo*            pInfo);
10130
10131 VKAPI_ATTR deUint64 VKAPI_CALL vkGetDeviceMemoryOpaqueCaptureAddressKHR(
10132     VkDevice                                    device,
10133     const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo);
10134 #endif
10135
10136
10137 #define VK_KHR_deferred_host_operations 1
10138 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDeferredOperationKHR)
10139 #define VK_KHR_DEFERRED_HOST_OPERATIONS_SPEC_VERSION 4
10140 #define VK_KHR_DEFERRED_HOST_OPERATIONS_EXTENSION_NAME "VK_KHR_deferred_host_operations"
10141 typedef VkResult (VKAPI_PTR *PFN_vkCreateDeferredOperationKHR)(VkDevice device, const VkAllocationCallbacks* pAllocator, VkDeferredOperationKHR* pDeferredOperation);
10142 typedef void (VKAPI_PTR *PFN_vkDestroyDeferredOperationKHR)(VkDevice device, VkDeferredOperationKHR operation, const VkAllocationCallbacks* pAllocator);
10143 typedef deUint32 (VKAPI_PTR *PFN_vkGetDeferredOperationMaxConcurrencyKHR)(VkDevice device, VkDeferredOperationKHR operation);
10144 typedef VkResult (VKAPI_PTR *PFN_vkGetDeferredOperationResultKHR)(VkDevice device, VkDeferredOperationKHR operation);
10145 typedef VkResult (VKAPI_PTR *PFN_vkDeferredOperationJoinKHR)(VkDevice device, VkDeferredOperationKHR operation);
10146
10147 #ifndef VK_NO_PROTOTYPES
10148 VKAPI_ATTR VkResult VKAPI_CALL vkCreateDeferredOperationKHR(
10149     VkDevice                                    device,
10150     const VkAllocationCallbacks*                pAllocator,
10151     VkDeferredOperationKHR*                     pDeferredOperation);
10152
10153 VKAPI_ATTR void VKAPI_CALL vkDestroyDeferredOperationKHR(
10154     VkDevice                                    device,
10155     VkDeferredOperationKHR                      operation,
10156     const VkAllocationCallbacks*                pAllocator);
10157
10158 VKAPI_ATTR deUint32 VKAPI_CALL vkGetDeferredOperationMaxConcurrencyKHR(
10159     VkDevice                                    device,
10160     VkDeferredOperationKHR                      operation);
10161
10162 VKAPI_ATTR VkResult VKAPI_CALL vkGetDeferredOperationResultKHR(
10163     VkDevice                                    device,
10164     VkDeferredOperationKHR                      operation);
10165
10166 VKAPI_ATTR VkResult VKAPI_CALL vkDeferredOperationJoinKHR(
10167     VkDevice                                    device,
10168     VkDeferredOperationKHR                      operation);
10169 #endif
10170
10171
10172 #define VK_KHR_pipeline_executable_properties 1
10173 #define VK_KHR_PIPELINE_EXECUTABLE_PROPERTIES_SPEC_VERSION 1
10174 #define VK_KHR_PIPELINE_EXECUTABLE_PROPERTIES_EXTENSION_NAME "VK_KHR_pipeline_executable_properties"
10175
10176 typedef enum VkPipelineExecutableStatisticFormatKHR {
10177     VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_BOOL32_KHR = 0,
10178     VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_INT64_KHR = 1,
10179     VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_UINT64_KHR = 2,
10180     VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_FLOAT64_KHR = 3,
10181     VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_MAX_ENUM_KHR = 0x7FFFFFFF
10182 } VkPipelineExecutableStatisticFormatKHR;
10183 typedef struct VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR {
10184     VkStructureType    sType;
10185     void*              pNext;
10186     VkBool32           pipelineExecutableInfo;
10187 } VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR;
10188
10189 typedef struct VkPipelineInfoKHR {
10190     VkStructureType    sType;
10191     const void*        pNext;
10192     VkPipeline         pipeline;
10193 } VkPipelineInfoKHR;
10194
10195 typedef struct VkPipelineExecutablePropertiesKHR {
10196     VkStructureType       sType;
10197     void*                 pNext;
10198     VkShaderStageFlags    stages;
10199     char                  name[VK_MAX_DESCRIPTION_SIZE];
10200     char                  description[VK_MAX_DESCRIPTION_SIZE];
10201     deUint32              subgroupSize;
10202 } VkPipelineExecutablePropertiesKHR;
10203
10204 typedef struct VkPipelineExecutableInfoKHR {
10205     VkStructureType    sType;
10206     const void*        pNext;
10207     VkPipeline         pipeline;
10208     deUint32           executableIndex;
10209 } VkPipelineExecutableInfoKHR;
10210
10211 typedef union VkPipelineExecutableStatisticValueKHR {
10212     VkBool32    b32;
10213     deInt64     i64;
10214     deUint64    u64;
10215     double      f64;
10216 } VkPipelineExecutableStatisticValueKHR;
10217
10218 typedef struct VkPipelineExecutableStatisticKHR {
10219     VkStructureType                           sType;
10220     void*                                     pNext;
10221     char                                      name[VK_MAX_DESCRIPTION_SIZE];
10222     char                                      description[VK_MAX_DESCRIPTION_SIZE];
10223     VkPipelineExecutableStatisticFormatKHR    format;
10224     VkPipelineExecutableStatisticValueKHR     value;
10225 } VkPipelineExecutableStatisticKHR;
10226
10227 typedef struct VkPipelineExecutableInternalRepresentationKHR {
10228     VkStructureType    sType;
10229     void*              pNext;
10230     char               name[VK_MAX_DESCRIPTION_SIZE];
10231     char               description[VK_MAX_DESCRIPTION_SIZE];
10232     VkBool32           isText;
10233     deUintptr             dataSize;
10234     void*              pData;
10235 } VkPipelineExecutableInternalRepresentationKHR;
10236
10237 typedef VkResult (VKAPI_PTR *PFN_vkGetPipelineExecutablePropertiesKHR)(VkDevice                        device, const VkPipelineInfoKHR*        pPipelineInfo, deUint32* pExecutableCount, VkPipelineExecutablePropertiesKHR* pProperties);
10238 typedef VkResult (VKAPI_PTR *PFN_vkGetPipelineExecutableStatisticsKHR)(VkDevice                        device, const VkPipelineExecutableInfoKHR*  pExecutableInfo, deUint32* pStatisticCount, VkPipelineExecutableStatisticKHR* pStatistics);
10239 typedef VkResult (VKAPI_PTR *PFN_vkGetPipelineExecutableInternalRepresentationsKHR)(VkDevice                        device, const VkPipelineExecutableInfoKHR*  pExecutableInfo, deUint32* pInternalRepresentationCount, VkPipelineExecutableInternalRepresentationKHR* pInternalRepresentations);
10240
10241 #ifndef VK_NO_PROTOTYPES
10242 VKAPI_ATTR VkResult VKAPI_CALL vkGetPipelineExecutablePropertiesKHR(
10243     VkDevice                                    device,
10244     const VkPipelineInfoKHR*                    pPipelineInfo,
10245     deUint32*                                   pExecutableCount,
10246     VkPipelineExecutablePropertiesKHR*          pProperties);
10247
10248 VKAPI_ATTR VkResult VKAPI_CALL vkGetPipelineExecutableStatisticsKHR(
10249     VkDevice                                    device,
10250     const VkPipelineExecutableInfoKHR*          pExecutableInfo,
10251     deUint32*                                   pStatisticCount,
10252     VkPipelineExecutableStatisticKHR*           pStatistics);
10253
10254 VKAPI_ATTR VkResult VKAPI_CALL vkGetPipelineExecutableInternalRepresentationsKHR(
10255     VkDevice                                    device,
10256     const VkPipelineExecutableInfoKHR*          pExecutableInfo,
10257     deUint32*                                   pInternalRepresentationCount,
10258     VkPipelineExecutableInternalRepresentationKHR* pInternalRepresentations);
10259 #endif
10260
10261
10262 #define VK_KHR_shader_integer_dot_product 1
10263 #define VK_KHR_SHADER_INTEGER_DOT_PRODUCT_SPEC_VERSION 1
10264 #define VK_KHR_SHADER_INTEGER_DOT_PRODUCT_EXTENSION_NAME "VK_KHR_shader_integer_dot_product"
10265 typedef VkPhysicalDeviceShaderIntegerDotProductFeatures VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR;
10266
10267 typedef VkPhysicalDeviceShaderIntegerDotProductProperties VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR;
10268
10269
10270
10271 #define VK_KHR_pipeline_library 1
10272 #define VK_KHR_PIPELINE_LIBRARY_SPEC_VERSION 1
10273 #define VK_KHR_PIPELINE_LIBRARY_EXTENSION_NAME "VK_KHR_pipeline_library"
10274 typedef struct VkPipelineLibraryCreateInfoKHR {
10275     VkStructureType      sType;
10276     const void*          pNext;
10277     deUint32             libraryCount;
10278     const VkPipeline*    pLibraries;
10279 } VkPipelineLibraryCreateInfoKHR;
10280
10281
10282
10283 #define VK_KHR_shader_non_semantic_info 1
10284 #define VK_KHR_SHADER_NON_SEMANTIC_INFO_SPEC_VERSION 1
10285 #define VK_KHR_SHADER_NON_SEMANTIC_INFO_EXTENSION_NAME "VK_KHR_shader_non_semantic_info"
10286
10287
10288 #define VK_KHR_present_id 1
10289 #define VK_KHR_PRESENT_ID_SPEC_VERSION    1
10290 #define VK_KHR_PRESENT_ID_EXTENSION_NAME  "VK_KHR_present_id"
10291 typedef struct VkPresentIdKHR {
10292     VkStructureType    sType;
10293     const void*        pNext;
10294     deUint32           swapchainCount;
10295     const deUint64*    pPresentIds;
10296 } VkPresentIdKHR;
10297
10298 typedef struct VkPhysicalDevicePresentIdFeaturesKHR {
10299     VkStructureType    sType;
10300     void*              pNext;
10301     VkBool32           presentId;
10302 } VkPhysicalDevicePresentIdFeaturesKHR;
10303
10304
10305
10306 #define VK_KHR_synchronization2 1
10307 #define VK_KHR_SYNCHRONIZATION_2_SPEC_VERSION 1
10308 #define VK_KHR_SYNCHRONIZATION_2_EXTENSION_NAME "VK_KHR_synchronization2"
10309 typedef VkPipelineStageFlags2 VkPipelineStageFlags2KHR;
10310
10311 typedef VkPipelineStageFlagBits2 VkPipelineStageFlagBits2KHR;
10312
10313 typedef VkAccessFlags2 VkAccessFlags2KHR;
10314
10315 typedef VkAccessFlagBits2 VkAccessFlagBits2KHR;
10316
10317 typedef VkSubmitFlagBits VkSubmitFlagBitsKHR;
10318
10319 typedef VkSubmitFlags VkSubmitFlagsKHR;
10320
10321 typedef VkMemoryBarrier2 VkMemoryBarrier2KHR;
10322
10323 typedef VkBufferMemoryBarrier2 VkBufferMemoryBarrier2KHR;
10324
10325 typedef VkImageMemoryBarrier2 VkImageMemoryBarrier2KHR;
10326
10327 typedef VkDependencyInfo VkDependencyInfoKHR;
10328
10329 typedef VkSubmitInfo2 VkSubmitInfo2KHR;
10330
10331 typedef VkSemaphoreSubmitInfo VkSemaphoreSubmitInfoKHR;
10332
10333 typedef VkCommandBufferSubmitInfo VkCommandBufferSubmitInfoKHR;
10334
10335 typedef VkPhysicalDeviceSynchronization2Features VkPhysicalDeviceSynchronization2FeaturesKHR;
10336
10337 typedef struct VkQueueFamilyCheckpointProperties2NV {
10338     VkStructureType          sType;
10339     void*                    pNext;
10340     VkPipelineStageFlags2    checkpointExecutionStageMask;
10341 } VkQueueFamilyCheckpointProperties2NV;
10342
10343 typedef struct VkCheckpointData2NV {
10344     VkStructureType          sType;
10345     void*                    pNext;
10346     VkPipelineStageFlags2    stage;
10347     void*                    pCheckpointMarker;
10348 } VkCheckpointData2NV;
10349
10350 typedef void (VKAPI_PTR *PFN_vkCmdSetEvent2KHR)(VkCommandBuffer                   commandBuffer, VkEvent                                             event, const VkDependencyInfo*                             pDependencyInfo);
10351 typedef void (VKAPI_PTR *PFN_vkCmdResetEvent2KHR)(VkCommandBuffer                   commandBuffer, VkEvent                                             event, VkPipelineStageFlags2               stageMask);
10352 typedef void (VKAPI_PTR *PFN_vkCmdWaitEvents2KHR)(VkCommandBuffer                   commandBuffer, deUint32                                            eventCount, const VkEvent*                     pEvents, const VkDependencyInfo*            pDependencyInfos);
10353 typedef void (VKAPI_PTR *PFN_vkCmdPipelineBarrier2KHR)(VkCommandBuffer                   commandBuffer, const VkDependencyInfo*                             pDependencyInfo);
10354 typedef void (VKAPI_PTR *PFN_vkCmdWriteTimestamp2KHR)(VkCommandBuffer                   commandBuffer, VkPipelineStageFlags2               stage, VkQueryPool                                         queryPool, deUint32                                            query);
10355 typedef VkResult (VKAPI_PTR *PFN_vkQueueSubmit2KHR)(VkQueue                           queue, deUint32                            submitCount, const VkSubmitInfo2*              pSubmits, VkFence           fence);
10356 typedef void (VKAPI_PTR *PFN_vkCmdWriteBufferMarker2AMD)(VkCommandBuffer                   commandBuffer, VkPipelineStageFlags2               stage, VkBuffer                                            dstBuffer, VkDeviceSize                                        dstOffset, deUint32                                            marker);
10357 typedef void (VKAPI_PTR *PFN_vkGetQueueCheckpointData2NV)(VkQueue queue, deUint32* pCheckpointDataCount, VkCheckpointData2NV* pCheckpointData);
10358
10359 #ifndef VK_NO_PROTOTYPES
10360 VKAPI_ATTR void VKAPI_CALL vkCmdSetEvent2KHR(
10361     VkCommandBuffer                             commandBuffer,
10362     VkEvent                                     event,
10363     const VkDependencyInfo*                     pDependencyInfo);
10364
10365 VKAPI_ATTR void VKAPI_CALL vkCmdResetEvent2KHR(
10366     VkCommandBuffer                             commandBuffer,
10367     VkEvent                                     event,
10368     VkPipelineStageFlags2                       stageMask);
10369
10370 VKAPI_ATTR void VKAPI_CALL vkCmdWaitEvents2KHR(
10371     VkCommandBuffer                             commandBuffer,
10372     deUint32                                    eventCount,
10373     const VkEvent*                              pEvents,
10374     const VkDependencyInfo*                     pDependencyInfos);
10375
10376 VKAPI_ATTR void VKAPI_CALL vkCmdPipelineBarrier2KHR(
10377     VkCommandBuffer                             commandBuffer,
10378     const VkDependencyInfo*                     pDependencyInfo);
10379
10380 VKAPI_ATTR void VKAPI_CALL vkCmdWriteTimestamp2KHR(
10381     VkCommandBuffer                             commandBuffer,
10382     VkPipelineStageFlags2                       stage,
10383     VkQueryPool                                 queryPool,
10384     deUint32                                    query);
10385
10386 VKAPI_ATTR VkResult VKAPI_CALL vkQueueSubmit2KHR(
10387     VkQueue                                     queue,
10388     deUint32                                    submitCount,
10389     const VkSubmitInfo2*                        pSubmits,
10390     VkFence                                     fence);
10391
10392 VKAPI_ATTR void VKAPI_CALL vkCmdWriteBufferMarker2AMD(
10393     VkCommandBuffer                             commandBuffer,
10394     VkPipelineStageFlags2                       stage,
10395     VkBuffer                                    dstBuffer,
10396     VkDeviceSize                                dstOffset,
10397     deUint32                                    marker);
10398
10399 VKAPI_ATTR void VKAPI_CALL vkGetQueueCheckpointData2NV(
10400     VkQueue                                     queue,
10401     deUint32*                                   pCheckpointDataCount,
10402     VkCheckpointData2NV*                        pCheckpointData);
10403 #endif
10404
10405
10406 #define VK_KHR_fragment_shader_barycentric 1
10407 #define VK_KHR_FRAGMENT_SHADER_BARYCENTRIC_SPEC_VERSION 1
10408 #define VK_KHR_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME "VK_KHR_fragment_shader_barycentric"
10409 typedef struct VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR {
10410     VkStructureType    sType;
10411     void*              pNext;
10412     VkBool32           fragmentShaderBarycentric;
10413 } VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR;
10414
10415 typedef struct VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR {
10416     VkStructureType    sType;
10417     void*              pNext;
10418     VkBool32           triStripVertexOrderIndependentOfProvokingVertex;
10419 } VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR;
10420
10421
10422
10423 #define VK_KHR_shader_subgroup_uniform_control_flow 1
10424 #define VK_KHR_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_SPEC_VERSION 1
10425 #define VK_KHR_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_EXTENSION_NAME "VK_KHR_shader_subgroup_uniform_control_flow"
10426 typedef struct VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR {
10427     VkStructureType    sType;
10428     void*              pNext;
10429     VkBool32           shaderSubgroupUniformControlFlow;
10430 } VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR;
10431
10432
10433
10434 #define VK_KHR_zero_initialize_workgroup_memory 1
10435 #define VK_KHR_ZERO_INITIALIZE_WORKGROUP_MEMORY_SPEC_VERSION 1
10436 #define VK_KHR_ZERO_INITIALIZE_WORKGROUP_MEMORY_EXTENSION_NAME "VK_KHR_zero_initialize_workgroup_memory"
10437 typedef VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR;
10438
10439
10440
10441 #define VK_KHR_workgroup_memory_explicit_layout 1
10442 #define VK_KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_SPEC_VERSION 1
10443 #define VK_KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_EXTENSION_NAME "VK_KHR_workgroup_memory_explicit_layout"
10444 typedef struct VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR {
10445     VkStructureType    sType;
10446     void*              pNext;
10447     VkBool32           workgroupMemoryExplicitLayout;
10448     VkBool32           workgroupMemoryExplicitLayoutScalarBlockLayout;
10449     VkBool32           workgroupMemoryExplicitLayout8BitAccess;
10450     VkBool32           workgroupMemoryExplicitLayout16BitAccess;
10451 } VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR;
10452
10453
10454
10455 #define VK_KHR_copy_commands2 1
10456 #define VK_KHR_COPY_COMMANDS_2_SPEC_VERSION 1
10457 #define VK_KHR_COPY_COMMANDS_2_EXTENSION_NAME "VK_KHR_copy_commands2"
10458 typedef VkCopyBufferInfo2 VkCopyBufferInfo2KHR;
10459
10460 typedef VkCopyImageInfo2 VkCopyImageInfo2KHR;
10461
10462 typedef VkCopyBufferToImageInfo2 VkCopyBufferToImageInfo2KHR;
10463
10464 typedef VkCopyImageToBufferInfo2 VkCopyImageToBufferInfo2KHR;
10465
10466 typedef VkBlitImageInfo2 VkBlitImageInfo2KHR;
10467
10468 typedef VkResolveImageInfo2 VkResolveImageInfo2KHR;
10469
10470 typedef VkBufferCopy2 VkBufferCopy2KHR;
10471
10472 typedef VkImageCopy2 VkImageCopy2KHR;
10473
10474 typedef VkImageBlit2 VkImageBlit2KHR;
10475
10476 typedef VkBufferImageCopy2 VkBufferImageCopy2KHR;
10477
10478 typedef VkImageResolve2 VkImageResolve2KHR;
10479
10480 typedef void (VKAPI_PTR *PFN_vkCmdCopyBuffer2KHR)(VkCommandBuffer commandBuffer, const VkCopyBufferInfo2* pCopyBufferInfo);
10481 typedef void (VKAPI_PTR *PFN_vkCmdCopyImage2KHR)(VkCommandBuffer commandBuffer, const VkCopyImageInfo2* pCopyImageInfo);
10482 typedef void (VKAPI_PTR *PFN_vkCmdCopyBufferToImage2KHR)(VkCommandBuffer commandBuffer, const VkCopyBufferToImageInfo2* pCopyBufferToImageInfo);
10483 typedef void (VKAPI_PTR *PFN_vkCmdCopyImageToBuffer2KHR)(VkCommandBuffer commandBuffer, const VkCopyImageToBufferInfo2* pCopyImageToBufferInfo);
10484 typedef void (VKAPI_PTR *PFN_vkCmdBlitImage2KHR)(VkCommandBuffer commandBuffer, const VkBlitImageInfo2* pBlitImageInfo);
10485 typedef void (VKAPI_PTR *PFN_vkCmdResolveImage2KHR)(VkCommandBuffer commandBuffer, const VkResolveImageInfo2* pResolveImageInfo);
10486
10487 #ifndef VK_NO_PROTOTYPES
10488 VKAPI_ATTR void VKAPI_CALL vkCmdCopyBuffer2KHR(
10489     VkCommandBuffer                             commandBuffer,
10490     const VkCopyBufferInfo2*                    pCopyBufferInfo);
10491
10492 VKAPI_ATTR void VKAPI_CALL vkCmdCopyImage2KHR(
10493     VkCommandBuffer                             commandBuffer,
10494     const VkCopyImageInfo2*                     pCopyImageInfo);
10495
10496 VKAPI_ATTR void VKAPI_CALL vkCmdCopyBufferToImage2KHR(
10497     VkCommandBuffer                             commandBuffer,
10498     const VkCopyBufferToImageInfo2*             pCopyBufferToImageInfo);
10499
10500 VKAPI_ATTR void VKAPI_CALL vkCmdCopyImageToBuffer2KHR(
10501     VkCommandBuffer                             commandBuffer,
10502     const VkCopyImageToBufferInfo2*             pCopyImageToBufferInfo);
10503
10504 VKAPI_ATTR void VKAPI_CALL vkCmdBlitImage2KHR(
10505     VkCommandBuffer                             commandBuffer,
10506     const VkBlitImageInfo2*                     pBlitImageInfo);
10507
10508 VKAPI_ATTR void VKAPI_CALL vkCmdResolveImage2KHR(
10509     VkCommandBuffer                             commandBuffer,
10510     const VkResolveImageInfo2*                  pResolveImageInfo);
10511 #endif
10512
10513
10514 #define VK_KHR_format_feature_flags2 1
10515 #define VK_KHR_FORMAT_FEATURE_FLAGS_2_SPEC_VERSION 1
10516 #define VK_KHR_FORMAT_FEATURE_FLAGS_2_EXTENSION_NAME "VK_KHR_format_feature_flags2"
10517 typedef VkFormatFeatureFlags2 VkFormatFeatureFlags2KHR;
10518
10519 typedef VkFormatFeatureFlagBits2 VkFormatFeatureFlagBits2KHR;
10520
10521 typedef VkFormatProperties3 VkFormatProperties3KHR;
10522
10523
10524
10525 #define VK_KHR_ray_tracing_maintenance1 1
10526 #define VK_KHR_RAY_TRACING_MAINTENANCE_1_SPEC_VERSION 1
10527 #define VK_KHR_RAY_TRACING_MAINTENANCE_1_EXTENSION_NAME "VK_KHR_ray_tracing_maintenance1"
10528 typedef struct VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR {
10529     VkStructureType    sType;
10530     void*              pNext;
10531     VkBool32           rayTracingMaintenance1;
10532     VkBool32           rayTracingPipelineTraceRaysIndirect2;
10533 } VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR;
10534
10535 typedef struct VkTraceRaysIndirectCommand2KHR {
10536     VkDeviceAddress    raygenShaderRecordAddress;
10537     VkDeviceSize       raygenShaderRecordSize;
10538     VkDeviceAddress    missShaderBindingTableAddress;
10539     VkDeviceSize       missShaderBindingTableSize;
10540     VkDeviceSize       missShaderBindingTableStride;
10541     VkDeviceAddress    hitShaderBindingTableAddress;
10542     VkDeviceSize       hitShaderBindingTableSize;
10543     VkDeviceSize       hitShaderBindingTableStride;
10544     VkDeviceAddress    callableShaderBindingTableAddress;
10545     VkDeviceSize       callableShaderBindingTableSize;
10546     VkDeviceSize       callableShaderBindingTableStride;
10547     deUint32           width;
10548     deUint32           height;
10549     deUint32           depth;
10550 } VkTraceRaysIndirectCommand2KHR;
10551
10552 typedef void (VKAPI_PTR *PFN_vkCmdTraceRaysIndirect2KHR)(VkCommandBuffer commandBuffer, VkDeviceAddress indirectDeviceAddress);
10553
10554 #ifndef VK_NO_PROTOTYPES
10555 VKAPI_ATTR void VKAPI_CALL vkCmdTraceRaysIndirect2KHR(
10556     VkCommandBuffer                             commandBuffer,
10557     VkDeviceAddress                             indirectDeviceAddress);
10558 #endif
10559
10560
10561 #define VK_KHR_portability_enumeration 1
10562 #define VK_KHR_PORTABILITY_ENUMERATION_SPEC_VERSION 1
10563 #define VK_KHR_PORTABILITY_ENUMERATION_EXTENSION_NAME "VK_KHR_portability_enumeration"
10564
10565
10566 #define VK_KHR_maintenance4 1
10567 #define VK_KHR_MAINTENANCE_4_SPEC_VERSION 2
10568 #define VK_KHR_MAINTENANCE_4_EXTENSION_NAME "VK_KHR_maintenance4"
10569 typedef VkPhysicalDeviceMaintenance4Features VkPhysicalDeviceMaintenance4FeaturesKHR;
10570
10571 typedef VkPhysicalDeviceMaintenance4Properties VkPhysicalDeviceMaintenance4PropertiesKHR;
10572
10573 typedef VkDeviceBufferMemoryRequirements VkDeviceBufferMemoryRequirementsKHR;
10574
10575 typedef VkDeviceImageMemoryRequirements VkDeviceImageMemoryRequirementsKHR;
10576
10577 typedef void (VKAPI_PTR *PFN_vkGetDeviceBufferMemoryRequirementsKHR)(VkDevice device, const VkDeviceBufferMemoryRequirements* pInfo, VkMemoryRequirements2* pMemoryRequirements);
10578 typedef void (VKAPI_PTR *PFN_vkGetDeviceImageMemoryRequirementsKHR)(VkDevice device, const VkDeviceImageMemoryRequirements* pInfo, VkMemoryRequirements2* pMemoryRequirements);
10579 typedef void (VKAPI_PTR *PFN_vkGetDeviceImageSparseMemoryRequirementsKHR)(VkDevice device, const VkDeviceImageMemoryRequirements* pInfo, deUint32* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements);
10580
10581 #ifndef VK_NO_PROTOTYPES
10582 VKAPI_ATTR void VKAPI_CALL vkGetDeviceBufferMemoryRequirementsKHR(
10583     VkDevice                                    device,
10584     const VkDeviceBufferMemoryRequirements*     pInfo,
10585     VkMemoryRequirements2*                      pMemoryRequirements);
10586
10587 VKAPI_ATTR void VKAPI_CALL vkGetDeviceImageMemoryRequirementsKHR(
10588     VkDevice                                    device,
10589     const VkDeviceImageMemoryRequirements*      pInfo,
10590     VkMemoryRequirements2*                      pMemoryRequirements);
10591
10592 VKAPI_ATTR void VKAPI_CALL vkGetDeviceImageSparseMemoryRequirementsKHR(
10593     VkDevice                                    device,
10594     const VkDeviceImageMemoryRequirements*      pInfo,
10595     deUint32*                                   pSparseMemoryRequirementCount,
10596     VkSparseImageMemoryRequirements2*           pSparseMemoryRequirements);
10597 #endif
10598
10599
10600 #define VK_EXT_debug_report 1
10601 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDebugReportCallbackEXT)
10602 #define VK_EXT_DEBUG_REPORT_SPEC_VERSION  10
10603 #define VK_EXT_DEBUG_REPORT_EXTENSION_NAME "VK_EXT_debug_report"
10604
10605 typedef enum VkDebugReportObjectTypeEXT {
10606     VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT = 0,
10607     VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT = 1,
10608     VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT = 2,
10609     VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT = 3,
10610     VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT = 4,
10611     VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT = 5,
10612     VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT = 6,
10613     VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT = 7,
10614     VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT = 8,
10615     VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT = 9,
10616     VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT = 10,
10617     VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT = 11,
10618     VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT = 12,
10619     VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT = 13,
10620     VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT = 14,
10621     VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT = 15,
10622     VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT = 16,
10623     VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT = 17,
10624     VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT = 18,
10625     VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT = 19,
10626     VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT = 20,
10627     VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT = 21,
10628     VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT = 22,
10629     VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT = 23,
10630     VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT = 24,
10631     VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT = 25,
10632     VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT = 26,
10633     VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT = 27,
10634     VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT = 28,
10635     VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT = 29,
10636     VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT = 30,
10637     VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT = 33,
10638     VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT = 1000156000,
10639     VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT = 1000085000,
10640     VK_DEBUG_REPORT_OBJECT_TYPE_CU_MODULE_NVX_EXT = 1000029000,
10641     VK_DEBUG_REPORT_OBJECT_TYPE_CU_FUNCTION_NVX_EXT = 1000029001,
10642     VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT = 1000150000,
10643     VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT = 1000165000,
10644     VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA_EXT = 1000366000,
10645     VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT,
10646     VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT,
10647     VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT,
10648     VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT,
10649     VK_DEBUG_REPORT_OBJECT_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
10650 } VkDebugReportObjectTypeEXT;
10651
10652 typedef enum VkDebugReportFlagBitsEXT {
10653     VK_DEBUG_REPORT_INFORMATION_BIT_EXT = 0x00000001,
10654     VK_DEBUG_REPORT_WARNING_BIT_EXT = 0x00000002,
10655     VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT = 0x00000004,
10656     VK_DEBUG_REPORT_ERROR_BIT_EXT = 0x00000008,
10657     VK_DEBUG_REPORT_DEBUG_BIT_EXT = 0x00000010,
10658     VK_DEBUG_REPORT_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
10659 } VkDebugReportFlagBitsEXT;
10660 typedef VkFlags VkDebugReportFlagsEXT;
10661 typedef VkBool32 (VKAPI_PTR *PFN_vkDebugReportCallbackEXT)(
10662     VkDebugReportFlagsEXT                       flags,
10663     VkDebugReportObjectTypeEXT                  objectType,
10664     deUint64                                    object,
10665     deUintptr                                      location,
10666     deInt32                                     messageCode,
10667     const char*                                 pLayerPrefix,
10668     const char*                                 pMessage,
10669     void*                                       pUserData);
10670
10671 typedef struct VkDebugReportCallbackCreateInfoEXT {
10672     VkStructureType                 sType;
10673     const void*                     pNext;
10674     VkDebugReportFlagsEXT           flags;
10675     PFN_vkDebugReportCallbackEXT    pfnCallback;
10676     void*                           pUserData;
10677 } VkDebugReportCallbackCreateInfoEXT;
10678
10679 typedef VkResult (VKAPI_PTR *PFN_vkCreateDebugReportCallbackEXT)(VkInstance instance, const VkDebugReportCallbackCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDebugReportCallbackEXT* pCallback);
10680 typedef void (VKAPI_PTR *PFN_vkDestroyDebugReportCallbackEXT)(VkInstance instance, VkDebugReportCallbackEXT callback, const VkAllocationCallbacks* pAllocator);
10681 typedef void (VKAPI_PTR *PFN_vkDebugReportMessageEXT)(VkInstance instance, VkDebugReportFlagsEXT flags, VkDebugReportObjectTypeEXT objectType, deUint64 object, deUintptr location, deInt32 messageCode, const char* pLayerPrefix, const char* pMessage);
10682
10683 #ifndef VK_NO_PROTOTYPES
10684 VKAPI_ATTR VkResult VKAPI_CALL vkCreateDebugReportCallbackEXT(
10685     VkInstance                                  instance,
10686     const VkDebugReportCallbackCreateInfoEXT*   pCreateInfo,
10687     const VkAllocationCallbacks*                pAllocator,
10688     VkDebugReportCallbackEXT*                   pCallback);
10689
10690 VKAPI_ATTR void VKAPI_CALL vkDestroyDebugReportCallbackEXT(
10691     VkInstance                                  instance,
10692     VkDebugReportCallbackEXT                    callback,
10693     const VkAllocationCallbacks*                pAllocator);
10694
10695 VKAPI_ATTR void VKAPI_CALL vkDebugReportMessageEXT(
10696     VkInstance                                  instance,
10697     VkDebugReportFlagsEXT                       flags,
10698     VkDebugReportObjectTypeEXT                  objectType,
10699     deUint64                                    object,
10700     deUintptr                                      location,
10701     deInt32                                     messageCode,
10702     const char*                                 pLayerPrefix,
10703     const char*                                 pMessage);
10704 #endif
10705
10706
10707 #define VK_NV_glsl_shader 1
10708 #define VK_NV_GLSL_SHADER_SPEC_VERSION    1
10709 #define VK_NV_GLSL_SHADER_EXTENSION_NAME  "VK_NV_glsl_shader"
10710
10711
10712 #define VK_EXT_depth_range_unrestricted 1
10713 #define VK_EXT_DEPTH_RANGE_UNRESTRICTED_SPEC_VERSION 1
10714 #define VK_EXT_DEPTH_RANGE_UNRESTRICTED_EXTENSION_NAME "VK_EXT_depth_range_unrestricted"
10715
10716
10717 #define VK_IMG_filter_cubic 1
10718 #define VK_IMG_FILTER_CUBIC_SPEC_VERSION  1
10719 #define VK_IMG_FILTER_CUBIC_EXTENSION_NAME "VK_IMG_filter_cubic"
10720
10721
10722 #define VK_AMD_rasterization_order 1
10723 #define VK_AMD_RASTERIZATION_ORDER_SPEC_VERSION 1
10724 #define VK_AMD_RASTERIZATION_ORDER_EXTENSION_NAME "VK_AMD_rasterization_order"
10725
10726 typedef enum VkRasterizationOrderAMD {
10727     VK_RASTERIZATION_ORDER_STRICT_AMD = 0,
10728     VK_RASTERIZATION_ORDER_RELAXED_AMD = 1,
10729     VK_RASTERIZATION_ORDER_MAX_ENUM_AMD = 0x7FFFFFFF
10730 } VkRasterizationOrderAMD;
10731 typedef struct VkPipelineRasterizationStateRasterizationOrderAMD {
10732     VkStructureType            sType;
10733     const void*                pNext;
10734     VkRasterizationOrderAMD    rasterizationOrder;
10735 } VkPipelineRasterizationStateRasterizationOrderAMD;
10736
10737
10738
10739 #define VK_AMD_shader_trinary_minmax 1
10740 #define VK_AMD_SHADER_TRINARY_MINMAX_SPEC_VERSION 1
10741 #define VK_AMD_SHADER_TRINARY_MINMAX_EXTENSION_NAME "VK_AMD_shader_trinary_minmax"
10742
10743
10744 #define VK_AMD_shader_explicit_vertex_parameter 1
10745 #define VK_AMD_SHADER_EXPLICIT_VERTEX_PARAMETER_SPEC_VERSION 1
10746 #define VK_AMD_SHADER_EXPLICIT_VERTEX_PARAMETER_EXTENSION_NAME "VK_AMD_shader_explicit_vertex_parameter"
10747
10748
10749 #define VK_EXT_debug_marker 1
10750 #define VK_EXT_DEBUG_MARKER_SPEC_VERSION  4
10751 #define VK_EXT_DEBUG_MARKER_EXTENSION_NAME "VK_EXT_debug_marker"
10752 typedef struct VkDebugMarkerObjectNameInfoEXT {
10753     VkStructureType               sType;
10754     const void*                   pNext;
10755     VkDebugReportObjectTypeEXT    objectType;
10756     deUint64                      object;
10757     const char*                   pObjectName;
10758 } VkDebugMarkerObjectNameInfoEXT;
10759
10760 typedef struct VkDebugMarkerObjectTagInfoEXT {
10761     VkStructureType               sType;
10762     const void*                   pNext;
10763     VkDebugReportObjectTypeEXT    objectType;
10764     deUint64                      object;
10765     deUint64                      tagName;
10766     deUintptr                        tagSize;
10767     const void*                   pTag;
10768 } VkDebugMarkerObjectTagInfoEXT;
10769
10770 typedef struct VkDebugMarkerMarkerInfoEXT {
10771     VkStructureType    sType;
10772     const void*        pNext;
10773     const char*        pMarkerName;
10774     float              color[4];
10775 } VkDebugMarkerMarkerInfoEXT;
10776
10777 typedef VkResult (VKAPI_PTR *PFN_vkDebugMarkerSetObjectTagEXT)(VkDevice device, const VkDebugMarkerObjectTagInfoEXT* pTagInfo);
10778 typedef VkResult (VKAPI_PTR *PFN_vkDebugMarkerSetObjectNameEXT)(VkDevice device, const VkDebugMarkerObjectNameInfoEXT* pNameInfo);
10779 typedef void (VKAPI_PTR *PFN_vkCmdDebugMarkerBeginEXT)(VkCommandBuffer commandBuffer, const VkDebugMarkerMarkerInfoEXT* pMarkerInfo);
10780 typedef void (VKAPI_PTR *PFN_vkCmdDebugMarkerEndEXT)(VkCommandBuffer commandBuffer);
10781 typedef void (VKAPI_PTR *PFN_vkCmdDebugMarkerInsertEXT)(VkCommandBuffer commandBuffer, const VkDebugMarkerMarkerInfoEXT* pMarkerInfo);
10782
10783 #ifndef VK_NO_PROTOTYPES
10784 VKAPI_ATTR VkResult VKAPI_CALL vkDebugMarkerSetObjectTagEXT(
10785     VkDevice                                    device,
10786     const VkDebugMarkerObjectTagInfoEXT*        pTagInfo);
10787
10788 VKAPI_ATTR VkResult VKAPI_CALL vkDebugMarkerSetObjectNameEXT(
10789     VkDevice                                    device,
10790     const VkDebugMarkerObjectNameInfoEXT*       pNameInfo);
10791
10792 VKAPI_ATTR void VKAPI_CALL vkCmdDebugMarkerBeginEXT(
10793     VkCommandBuffer                             commandBuffer,
10794     const VkDebugMarkerMarkerInfoEXT*           pMarkerInfo);
10795
10796 VKAPI_ATTR void VKAPI_CALL vkCmdDebugMarkerEndEXT(
10797     VkCommandBuffer                             commandBuffer);
10798
10799 VKAPI_ATTR void VKAPI_CALL vkCmdDebugMarkerInsertEXT(
10800     VkCommandBuffer                             commandBuffer,
10801     const VkDebugMarkerMarkerInfoEXT*           pMarkerInfo);
10802 #endif
10803
10804
10805 #define VK_AMD_gcn_shader 1
10806 #define VK_AMD_GCN_SHADER_SPEC_VERSION    1
10807 #define VK_AMD_GCN_SHADER_EXTENSION_NAME  "VK_AMD_gcn_shader"
10808
10809
10810 #define VK_NV_dedicated_allocation 1
10811 #define VK_NV_DEDICATED_ALLOCATION_SPEC_VERSION 1
10812 #define VK_NV_DEDICATED_ALLOCATION_EXTENSION_NAME "VK_NV_dedicated_allocation"
10813 typedef struct VkDedicatedAllocationImageCreateInfoNV {
10814     VkStructureType    sType;
10815     const void*        pNext;
10816     VkBool32           dedicatedAllocation;
10817 } VkDedicatedAllocationImageCreateInfoNV;
10818
10819 typedef struct VkDedicatedAllocationBufferCreateInfoNV {
10820     VkStructureType    sType;
10821     const void*        pNext;
10822     VkBool32           dedicatedAllocation;
10823 } VkDedicatedAllocationBufferCreateInfoNV;
10824
10825 typedef struct VkDedicatedAllocationMemoryAllocateInfoNV {
10826     VkStructureType    sType;
10827     const void*        pNext;
10828     VkImage            image;
10829     VkBuffer           buffer;
10830 } VkDedicatedAllocationMemoryAllocateInfoNV;
10831
10832
10833
10834 #define VK_EXT_transform_feedback 1
10835 #define VK_EXT_TRANSFORM_FEEDBACK_SPEC_VERSION 1
10836 #define VK_EXT_TRANSFORM_FEEDBACK_EXTENSION_NAME "VK_EXT_transform_feedback"
10837 typedef VkFlags VkPipelineRasterizationStateStreamCreateFlagsEXT;
10838 typedef struct VkPhysicalDeviceTransformFeedbackFeaturesEXT {
10839     VkStructureType    sType;
10840     void*              pNext;
10841     VkBool32           transformFeedback;
10842     VkBool32           geometryStreams;
10843 } VkPhysicalDeviceTransformFeedbackFeaturesEXT;
10844
10845 typedef struct VkPhysicalDeviceTransformFeedbackPropertiesEXT {
10846     VkStructureType    sType;
10847     void*              pNext;
10848     deUint32           maxTransformFeedbackStreams;
10849     deUint32           maxTransformFeedbackBuffers;
10850     VkDeviceSize       maxTransformFeedbackBufferSize;
10851     deUint32           maxTransformFeedbackStreamDataSize;
10852     deUint32           maxTransformFeedbackBufferDataSize;
10853     deUint32           maxTransformFeedbackBufferDataStride;
10854     VkBool32           transformFeedbackQueries;
10855     VkBool32           transformFeedbackStreamsLinesTriangles;
10856     VkBool32           transformFeedbackRasterizationStreamSelect;
10857     VkBool32           transformFeedbackDraw;
10858 } VkPhysicalDeviceTransformFeedbackPropertiesEXT;
10859
10860 typedef struct VkPipelineRasterizationStateStreamCreateInfoEXT {
10861     VkStructureType                                     sType;
10862     const void*                                         pNext;
10863     VkPipelineRasterizationStateStreamCreateFlagsEXT    flags;
10864     deUint32                                            rasterizationStream;
10865 } VkPipelineRasterizationStateStreamCreateInfoEXT;
10866
10867 typedef void (VKAPI_PTR *PFN_vkCmdBindTransformFeedbackBuffersEXT)(VkCommandBuffer commandBuffer, deUint32 firstBinding, deUint32 bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets, const VkDeviceSize* pSizes);
10868 typedef void (VKAPI_PTR *PFN_vkCmdBeginTransformFeedbackEXT)(VkCommandBuffer commandBuffer, deUint32 firstCounterBuffer, deUint32 counterBufferCount, const VkBuffer* pCounterBuffers, const VkDeviceSize* pCounterBufferOffsets);
10869 typedef void (VKAPI_PTR *PFN_vkCmdEndTransformFeedbackEXT)(VkCommandBuffer commandBuffer, deUint32 firstCounterBuffer, deUint32 counterBufferCount, const VkBuffer* pCounterBuffers, const VkDeviceSize* pCounterBufferOffsets);
10870 typedef void (VKAPI_PTR *PFN_vkCmdBeginQueryIndexedEXT)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, deUint32 query, VkQueryControlFlags flags, deUint32 index);
10871 typedef void (VKAPI_PTR *PFN_vkCmdEndQueryIndexedEXT)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, deUint32 query, deUint32 index);
10872 typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirectByteCountEXT)(VkCommandBuffer commandBuffer, deUint32 instanceCount, deUint32 firstInstance, VkBuffer counterBuffer, VkDeviceSize counterBufferOffset, deUint32 counterOffset, deUint32 vertexStride);
10873
10874 #ifndef VK_NO_PROTOTYPES
10875 VKAPI_ATTR void VKAPI_CALL vkCmdBindTransformFeedbackBuffersEXT(
10876     VkCommandBuffer                             commandBuffer,
10877     deUint32                                    firstBinding,
10878     deUint32                                    bindingCount,
10879     const VkBuffer*                             pBuffers,
10880     const VkDeviceSize*                         pOffsets,
10881     const VkDeviceSize*                         pSizes);
10882
10883 VKAPI_ATTR void VKAPI_CALL vkCmdBeginTransformFeedbackEXT(
10884     VkCommandBuffer                             commandBuffer,
10885     deUint32                                    firstCounterBuffer,
10886     deUint32                                    counterBufferCount,
10887     const VkBuffer*                             pCounterBuffers,
10888     const VkDeviceSize*                         pCounterBufferOffsets);
10889
10890 VKAPI_ATTR void VKAPI_CALL vkCmdEndTransformFeedbackEXT(
10891     VkCommandBuffer                             commandBuffer,
10892     deUint32                                    firstCounterBuffer,
10893     deUint32                                    counterBufferCount,
10894     const VkBuffer*                             pCounterBuffers,
10895     const VkDeviceSize*                         pCounterBufferOffsets);
10896
10897 VKAPI_ATTR void VKAPI_CALL vkCmdBeginQueryIndexedEXT(
10898     VkCommandBuffer                             commandBuffer,
10899     VkQueryPool                                 queryPool,
10900     deUint32                                    query,
10901     VkQueryControlFlags                         flags,
10902     deUint32                                    index);
10903
10904 VKAPI_ATTR void VKAPI_CALL vkCmdEndQueryIndexedEXT(
10905     VkCommandBuffer                             commandBuffer,
10906     VkQueryPool                                 queryPool,
10907     deUint32                                    query,
10908     deUint32                                    index);
10909
10910 VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirectByteCountEXT(
10911     VkCommandBuffer                             commandBuffer,
10912     deUint32                                    instanceCount,
10913     deUint32                                    firstInstance,
10914     VkBuffer                                    counterBuffer,
10915     VkDeviceSize                                counterBufferOffset,
10916     deUint32                                    counterOffset,
10917     deUint32                                    vertexStride);
10918 #endif
10919
10920
10921 #define VK_NVX_binary_import 1
10922 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkCuModuleNVX)
10923 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkCuFunctionNVX)
10924 #define VK_NVX_BINARY_IMPORT_SPEC_VERSION 1
10925 #define VK_NVX_BINARY_IMPORT_EXTENSION_NAME "VK_NVX_binary_import"
10926 typedef struct VkCuModuleCreateInfoNVX {
10927     VkStructureType    sType;
10928     const void*        pNext;
10929     deUintptr             dataSize;
10930     const void*        pData;
10931 } VkCuModuleCreateInfoNVX;
10932
10933 typedef struct VkCuFunctionCreateInfoNVX {
10934     VkStructureType    sType;
10935     const void*        pNext;
10936     VkCuModuleNVX      module;
10937     const char*        pName;
10938 } VkCuFunctionCreateInfoNVX;
10939
10940 typedef struct VkCuLaunchInfoNVX {
10941     VkStructureType        sType;
10942     const void*            pNext;
10943     VkCuFunctionNVX        function;
10944     deUint32               gridDimX;
10945     deUint32               gridDimY;
10946     deUint32               gridDimZ;
10947     deUint32               blockDimX;
10948     deUint32               blockDimY;
10949     deUint32               blockDimZ;
10950     deUint32               sharedMemBytes;
10951     deUintptr                 paramCount;
10952     const void* const *    pParams;
10953     deUintptr                 extraCount;
10954     const void* const *    pExtras;
10955 } VkCuLaunchInfoNVX;
10956
10957 typedef VkResult (VKAPI_PTR *PFN_vkCreateCuModuleNVX)(VkDevice device, const VkCuModuleCreateInfoNVX* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCuModuleNVX* pModule);
10958 typedef VkResult (VKAPI_PTR *PFN_vkCreateCuFunctionNVX)(VkDevice device, const VkCuFunctionCreateInfoNVX* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCuFunctionNVX* pFunction);
10959 typedef void (VKAPI_PTR *PFN_vkDestroyCuModuleNVX)(VkDevice device, VkCuModuleNVX module, const VkAllocationCallbacks* pAllocator);
10960 typedef void (VKAPI_PTR *PFN_vkDestroyCuFunctionNVX)(VkDevice device, VkCuFunctionNVX function, const VkAllocationCallbacks* pAllocator);
10961 typedef void (VKAPI_PTR *PFN_vkCmdCuLaunchKernelNVX)(VkCommandBuffer commandBuffer, const VkCuLaunchInfoNVX* pLaunchInfo);
10962
10963 #ifndef VK_NO_PROTOTYPES
10964 VKAPI_ATTR VkResult VKAPI_CALL vkCreateCuModuleNVX(
10965     VkDevice                                    device,
10966     const VkCuModuleCreateInfoNVX*              pCreateInfo,
10967     const VkAllocationCallbacks*                pAllocator,
10968     VkCuModuleNVX*                              pModule);
10969
10970 VKAPI_ATTR VkResult VKAPI_CALL vkCreateCuFunctionNVX(
10971     VkDevice                                    device,
10972     const VkCuFunctionCreateInfoNVX*            pCreateInfo,
10973     const VkAllocationCallbacks*                pAllocator,
10974     VkCuFunctionNVX*                            pFunction);
10975
10976 VKAPI_ATTR void VKAPI_CALL vkDestroyCuModuleNVX(
10977     VkDevice                                    device,
10978     VkCuModuleNVX                               module,
10979     const VkAllocationCallbacks*                pAllocator);
10980
10981 VKAPI_ATTR void VKAPI_CALL vkDestroyCuFunctionNVX(
10982     VkDevice                                    device,
10983     VkCuFunctionNVX                             function,
10984     const VkAllocationCallbacks*                pAllocator);
10985
10986 VKAPI_ATTR void VKAPI_CALL vkCmdCuLaunchKernelNVX(
10987     VkCommandBuffer                             commandBuffer,
10988     const VkCuLaunchInfoNVX*                    pLaunchInfo);
10989 #endif
10990
10991
10992 #define VK_NVX_image_view_handle 1
10993 #define VK_NVX_IMAGE_VIEW_HANDLE_SPEC_VERSION 2
10994 #define VK_NVX_IMAGE_VIEW_HANDLE_EXTENSION_NAME "VK_NVX_image_view_handle"
10995 typedef struct VkImageViewHandleInfoNVX {
10996     VkStructureType     sType;
10997     const void*         pNext;
10998     VkImageView         imageView;
10999     VkDescriptorType    descriptorType;
11000     VkSampler           sampler;
11001 } VkImageViewHandleInfoNVX;
11002
11003 typedef struct VkImageViewAddressPropertiesNVX {
11004     VkStructureType    sType;
11005     void*              pNext;
11006     VkDeviceAddress    deviceAddress;
11007     VkDeviceSize       size;
11008 } VkImageViewAddressPropertiesNVX;
11009
11010 typedef deUint32 (VKAPI_PTR *PFN_vkGetImageViewHandleNVX)(VkDevice device, const VkImageViewHandleInfoNVX* pInfo);
11011 typedef VkResult (VKAPI_PTR *PFN_vkGetImageViewAddressNVX)(VkDevice device, VkImageView imageView, VkImageViewAddressPropertiesNVX* pProperties);
11012
11013 #ifndef VK_NO_PROTOTYPES
11014 VKAPI_ATTR deUint32 VKAPI_CALL vkGetImageViewHandleNVX(
11015     VkDevice                                    device,
11016     const VkImageViewHandleInfoNVX*             pInfo);
11017
11018 VKAPI_ATTR VkResult VKAPI_CALL vkGetImageViewAddressNVX(
11019     VkDevice                                    device,
11020     VkImageView                                 imageView,
11021     VkImageViewAddressPropertiesNVX*            pProperties);
11022 #endif
11023
11024
11025 #define VK_AMD_draw_indirect_count 1
11026 #define VK_AMD_DRAW_INDIRECT_COUNT_SPEC_VERSION 2
11027 #define VK_AMD_DRAW_INDIRECT_COUNT_EXTENSION_NAME "VK_AMD_draw_indirect_count"
11028 typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirectCountAMD)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, deUint32 maxDrawCount, deUint32 stride);
11029 typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexedIndirectCountAMD)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, deUint32 maxDrawCount, deUint32 stride);
11030
11031 #ifndef VK_NO_PROTOTYPES
11032 VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirectCountAMD(
11033     VkCommandBuffer                             commandBuffer,
11034     VkBuffer                                    buffer,
11035     VkDeviceSize                                offset,
11036     VkBuffer                                    countBuffer,
11037     VkDeviceSize                                countBufferOffset,
11038     deUint32                                    maxDrawCount,
11039     deUint32                                    stride);
11040
11041 VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexedIndirectCountAMD(
11042     VkCommandBuffer                             commandBuffer,
11043     VkBuffer                                    buffer,
11044     VkDeviceSize                                offset,
11045     VkBuffer                                    countBuffer,
11046     VkDeviceSize                                countBufferOffset,
11047     deUint32                                    maxDrawCount,
11048     deUint32                                    stride);
11049 #endif
11050
11051
11052 #define VK_AMD_negative_viewport_height 1
11053 #define VK_AMD_NEGATIVE_VIEWPORT_HEIGHT_SPEC_VERSION 1
11054 #define VK_AMD_NEGATIVE_VIEWPORT_HEIGHT_EXTENSION_NAME "VK_AMD_negative_viewport_height"
11055
11056
11057 #define VK_AMD_gpu_shader_half_float 1
11058 #define VK_AMD_GPU_SHADER_HALF_FLOAT_SPEC_VERSION 2
11059 #define VK_AMD_GPU_SHADER_HALF_FLOAT_EXTENSION_NAME "VK_AMD_gpu_shader_half_float"
11060
11061
11062 #define VK_AMD_shader_ballot 1
11063 #define VK_AMD_SHADER_BALLOT_SPEC_VERSION 1
11064 #define VK_AMD_SHADER_BALLOT_EXTENSION_NAME "VK_AMD_shader_ballot"
11065
11066
11067 #define VK_AMD_texture_gather_bias_lod 1
11068 #define VK_AMD_TEXTURE_GATHER_BIAS_LOD_SPEC_VERSION 1
11069 #define VK_AMD_TEXTURE_GATHER_BIAS_LOD_EXTENSION_NAME "VK_AMD_texture_gather_bias_lod"
11070 typedef struct VkTextureLODGatherFormatPropertiesAMD {
11071     VkStructureType    sType;
11072     void*              pNext;
11073     VkBool32           supportsTextureGatherLODBiasAMD;
11074 } VkTextureLODGatherFormatPropertiesAMD;
11075
11076
11077
11078 #define VK_AMD_shader_info 1
11079 #define VK_AMD_SHADER_INFO_SPEC_VERSION   1
11080 #define VK_AMD_SHADER_INFO_EXTENSION_NAME "VK_AMD_shader_info"
11081
11082 typedef enum VkShaderInfoTypeAMD {
11083     VK_SHADER_INFO_TYPE_STATISTICS_AMD = 0,
11084     VK_SHADER_INFO_TYPE_BINARY_AMD = 1,
11085     VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD = 2,
11086     VK_SHADER_INFO_TYPE_MAX_ENUM_AMD = 0x7FFFFFFF
11087 } VkShaderInfoTypeAMD;
11088 typedef struct VkShaderResourceUsageAMD {
11089     deUint32    numUsedVgprs;
11090     deUint32    numUsedSgprs;
11091     deUint32    ldsSizePerLocalWorkGroup;
11092     deUintptr      ldsUsageSizeInBytes;
11093     deUintptr      scratchMemUsageInBytes;
11094 } VkShaderResourceUsageAMD;
11095
11096 typedef struct VkShaderStatisticsInfoAMD {
11097     VkShaderStageFlags          shaderStageMask;
11098     VkShaderResourceUsageAMD    resourceUsage;
11099     deUint32                    numPhysicalVgprs;
11100     deUint32                    numPhysicalSgprs;
11101     deUint32                    numAvailableVgprs;
11102     deUint32                    numAvailableSgprs;
11103     deUint32                    computeWorkGroupSize[3];
11104 } VkShaderStatisticsInfoAMD;
11105
11106 typedef VkResult (VKAPI_PTR *PFN_vkGetShaderInfoAMD)(VkDevice device, VkPipeline pipeline, VkShaderStageFlagBits shaderStage, VkShaderInfoTypeAMD infoType, deUintptr* pInfoSize, void* pInfo);
11107
11108 #ifndef VK_NO_PROTOTYPES
11109 VKAPI_ATTR VkResult VKAPI_CALL vkGetShaderInfoAMD(
11110     VkDevice                                    device,
11111     VkPipeline                                  pipeline,
11112     VkShaderStageFlagBits                       shaderStage,
11113     VkShaderInfoTypeAMD                         infoType,
11114     deUintptr*                                     pInfoSize,
11115     void*                                       pInfo);
11116 #endif
11117
11118
11119 #define VK_AMD_shader_image_load_store_lod 1
11120 #define VK_AMD_SHADER_IMAGE_LOAD_STORE_LOD_SPEC_VERSION 1
11121 #define VK_AMD_SHADER_IMAGE_LOAD_STORE_LOD_EXTENSION_NAME "VK_AMD_shader_image_load_store_lod"
11122
11123
11124 #define VK_NV_corner_sampled_image 1
11125 #define VK_NV_CORNER_SAMPLED_IMAGE_SPEC_VERSION 2
11126 #define VK_NV_CORNER_SAMPLED_IMAGE_EXTENSION_NAME "VK_NV_corner_sampled_image"
11127 typedef struct VkPhysicalDeviceCornerSampledImageFeaturesNV {
11128     VkStructureType    sType;
11129     void*              pNext;
11130     VkBool32           cornerSampledImage;
11131 } VkPhysicalDeviceCornerSampledImageFeaturesNV;
11132
11133
11134
11135 #define VK_IMG_format_pvrtc 1
11136 #define VK_IMG_FORMAT_PVRTC_SPEC_VERSION  1
11137 #define VK_IMG_FORMAT_PVRTC_EXTENSION_NAME "VK_IMG_format_pvrtc"
11138
11139
11140 #define VK_NV_external_memory_capabilities 1
11141 #define VK_NV_EXTERNAL_MEMORY_CAPABILITIES_SPEC_VERSION 1
11142 #define VK_NV_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME "VK_NV_external_memory_capabilities"
11143
11144 typedef enum VkExternalMemoryHandleTypeFlagBitsNV {
11145     VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV = 0x00000001,
11146     VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV = 0x00000002,
11147     VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV = 0x00000004,
11148     VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV = 0x00000008,
11149     VK_EXTERNAL_MEMORY_HANDLE_TYPE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
11150 } VkExternalMemoryHandleTypeFlagBitsNV;
11151 typedef VkFlags VkExternalMemoryHandleTypeFlagsNV;
11152
11153 typedef enum VkExternalMemoryFeatureFlagBitsNV {
11154     VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV = 0x00000001,
11155     VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV = 0x00000002,
11156     VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV = 0x00000004,
11157     VK_EXTERNAL_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
11158 } VkExternalMemoryFeatureFlagBitsNV;
11159 typedef VkFlags VkExternalMemoryFeatureFlagsNV;
11160 typedef struct VkExternalImageFormatPropertiesNV {
11161     VkImageFormatProperties              imageFormatProperties;
11162     VkExternalMemoryFeatureFlagsNV       externalMemoryFeatures;
11163     VkExternalMemoryHandleTypeFlagsNV    exportFromImportedHandleTypes;
11164     VkExternalMemoryHandleTypeFlagsNV    compatibleHandleTypes;
11165 } VkExternalImageFormatPropertiesNV;
11166
11167 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV)(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkExternalMemoryHandleTypeFlagsNV externalHandleType, VkExternalImageFormatPropertiesNV* pExternalImageFormatProperties);
11168
11169 #ifndef VK_NO_PROTOTYPES
11170 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceExternalImageFormatPropertiesNV(
11171     VkPhysicalDevice                            physicalDevice,
11172     VkFormat                                    format,
11173     VkImageType                                 type,
11174     VkImageTiling                               tiling,
11175     VkImageUsageFlags                           usage,
11176     VkImageCreateFlags                          flags,
11177     VkExternalMemoryHandleTypeFlagsNV           externalHandleType,
11178     VkExternalImageFormatPropertiesNV*          pExternalImageFormatProperties);
11179 #endif
11180
11181
11182 #define VK_NV_external_memory 1
11183 #define VK_NV_EXTERNAL_MEMORY_SPEC_VERSION 1
11184 #define VK_NV_EXTERNAL_MEMORY_EXTENSION_NAME "VK_NV_external_memory"
11185 typedef struct VkExternalMemoryImageCreateInfoNV {
11186     VkStructureType                      sType;
11187     const void*                          pNext;
11188     VkExternalMemoryHandleTypeFlagsNV    handleTypes;
11189 } VkExternalMemoryImageCreateInfoNV;
11190
11191 typedef struct VkExportMemoryAllocateInfoNV {
11192     VkStructureType                      sType;
11193     const void*                          pNext;
11194     VkExternalMemoryHandleTypeFlagsNV    handleTypes;
11195 } VkExportMemoryAllocateInfoNV;
11196
11197
11198
11199 #define VK_EXT_validation_flags 1
11200 #define VK_EXT_VALIDATION_FLAGS_SPEC_VERSION 2
11201 #define VK_EXT_VALIDATION_FLAGS_EXTENSION_NAME "VK_EXT_validation_flags"
11202
11203 typedef enum VkValidationCheckEXT {
11204     VK_VALIDATION_CHECK_ALL_EXT = 0,
11205     VK_VALIDATION_CHECK_SHADERS_EXT = 1,
11206     VK_VALIDATION_CHECK_MAX_ENUM_EXT = 0x7FFFFFFF
11207 } VkValidationCheckEXT;
11208 typedef struct VkValidationFlagsEXT {
11209     VkStructureType                sType;
11210     const void*                    pNext;
11211     deUint32                       disabledValidationCheckCount;
11212     const VkValidationCheckEXT*    pDisabledValidationChecks;
11213 } VkValidationFlagsEXT;
11214
11215
11216
11217 #define VK_EXT_shader_subgroup_ballot 1
11218 #define VK_EXT_SHADER_SUBGROUP_BALLOT_SPEC_VERSION 1
11219 #define VK_EXT_SHADER_SUBGROUP_BALLOT_EXTENSION_NAME "VK_EXT_shader_subgroup_ballot"
11220
11221
11222 #define VK_EXT_shader_subgroup_vote 1
11223 #define VK_EXT_SHADER_SUBGROUP_VOTE_SPEC_VERSION 1
11224 #define VK_EXT_SHADER_SUBGROUP_VOTE_EXTENSION_NAME "VK_EXT_shader_subgroup_vote"
11225
11226
11227 #define VK_EXT_texture_compression_astc_hdr 1
11228 #define VK_EXT_TEXTURE_COMPRESSION_ASTC_HDR_SPEC_VERSION 1
11229 #define VK_EXT_TEXTURE_COMPRESSION_ASTC_HDR_EXTENSION_NAME "VK_EXT_texture_compression_astc_hdr"
11230 typedef VkPhysicalDeviceTextureCompressionASTCHDRFeatures VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT;
11231
11232
11233
11234 #define VK_EXT_astc_decode_mode 1
11235 #define VK_EXT_ASTC_DECODE_MODE_SPEC_VERSION 1
11236 #define VK_EXT_ASTC_DECODE_MODE_EXTENSION_NAME "VK_EXT_astc_decode_mode"
11237 typedef struct VkImageViewASTCDecodeModeEXT {
11238     VkStructureType    sType;
11239     const void*        pNext;
11240     VkFormat           decodeMode;
11241 } VkImageViewASTCDecodeModeEXT;
11242
11243 typedef struct VkPhysicalDeviceASTCDecodeFeaturesEXT {
11244     VkStructureType    sType;
11245     void*              pNext;
11246     VkBool32           decodeModeSharedExponent;
11247 } VkPhysicalDeviceASTCDecodeFeaturesEXT;
11248
11249
11250
11251 #define VK_EXT_conditional_rendering 1
11252 #define VK_EXT_CONDITIONAL_RENDERING_SPEC_VERSION 2
11253 #define VK_EXT_CONDITIONAL_RENDERING_EXTENSION_NAME "VK_EXT_conditional_rendering"
11254
11255 typedef enum VkConditionalRenderingFlagBitsEXT {
11256     VK_CONDITIONAL_RENDERING_INVERTED_BIT_EXT = 0x00000001,
11257     VK_CONDITIONAL_RENDERING_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
11258 } VkConditionalRenderingFlagBitsEXT;
11259 typedef VkFlags VkConditionalRenderingFlagsEXT;
11260 typedef struct VkConditionalRenderingBeginInfoEXT {
11261     VkStructureType                   sType;
11262     const void*                       pNext;
11263     VkBuffer                          buffer;
11264     VkDeviceSize                      offset;
11265     VkConditionalRenderingFlagsEXT    flags;
11266 } VkConditionalRenderingBeginInfoEXT;
11267
11268 typedef struct VkPhysicalDeviceConditionalRenderingFeaturesEXT {
11269     VkStructureType    sType;
11270     void*              pNext;
11271     VkBool32           conditionalRendering;
11272     VkBool32           inheritedConditionalRendering;
11273 } VkPhysicalDeviceConditionalRenderingFeaturesEXT;
11274
11275 typedef struct VkCommandBufferInheritanceConditionalRenderingInfoEXT {
11276     VkStructureType    sType;
11277     const void*        pNext;
11278     VkBool32           conditionalRenderingEnable;
11279 } VkCommandBufferInheritanceConditionalRenderingInfoEXT;
11280
11281 typedef void (VKAPI_PTR *PFN_vkCmdBeginConditionalRenderingEXT)(VkCommandBuffer commandBuffer, const VkConditionalRenderingBeginInfoEXT* pConditionalRenderingBegin);
11282 typedef void (VKAPI_PTR *PFN_vkCmdEndConditionalRenderingEXT)(VkCommandBuffer commandBuffer);
11283
11284 #ifndef VK_NO_PROTOTYPES
11285 VKAPI_ATTR void VKAPI_CALL vkCmdBeginConditionalRenderingEXT(
11286     VkCommandBuffer                             commandBuffer,
11287     const VkConditionalRenderingBeginInfoEXT*   pConditionalRenderingBegin);
11288
11289 VKAPI_ATTR void VKAPI_CALL vkCmdEndConditionalRenderingEXT(
11290     VkCommandBuffer                             commandBuffer);
11291 #endif
11292
11293
11294 #define VK_NV_clip_space_w_scaling 1
11295 #define VK_NV_CLIP_SPACE_W_SCALING_SPEC_VERSION 1
11296 #define VK_NV_CLIP_SPACE_W_SCALING_EXTENSION_NAME "VK_NV_clip_space_w_scaling"
11297 typedef struct VkViewportWScalingNV {
11298     float    xcoeff;
11299     float    ycoeff;
11300 } VkViewportWScalingNV;
11301
11302 typedef struct VkPipelineViewportWScalingStateCreateInfoNV {
11303     VkStructureType                sType;
11304     const void*                    pNext;
11305     VkBool32                       viewportWScalingEnable;
11306     deUint32                       viewportCount;
11307     const VkViewportWScalingNV*    pViewportWScalings;
11308 } VkPipelineViewportWScalingStateCreateInfoNV;
11309
11310 typedef void (VKAPI_PTR *PFN_vkCmdSetViewportWScalingNV)(VkCommandBuffer commandBuffer, deUint32 firstViewport, deUint32 viewportCount, const VkViewportWScalingNV* pViewportWScalings);
11311
11312 #ifndef VK_NO_PROTOTYPES
11313 VKAPI_ATTR void VKAPI_CALL vkCmdSetViewportWScalingNV(
11314     VkCommandBuffer                             commandBuffer,
11315     deUint32                                    firstViewport,
11316     deUint32                                    viewportCount,
11317     const VkViewportWScalingNV*                 pViewportWScalings);
11318 #endif
11319
11320
11321 #define VK_EXT_direct_mode_display 1
11322 #define VK_EXT_DIRECT_MODE_DISPLAY_SPEC_VERSION 1
11323 #define VK_EXT_DIRECT_MODE_DISPLAY_EXTENSION_NAME "VK_EXT_direct_mode_display"
11324 typedef VkResult (VKAPI_PTR *PFN_vkReleaseDisplayEXT)(VkPhysicalDevice physicalDevice, VkDisplayKHR display);
11325
11326 #ifndef VK_NO_PROTOTYPES
11327 VKAPI_ATTR VkResult VKAPI_CALL vkReleaseDisplayEXT(
11328     VkPhysicalDevice                            physicalDevice,
11329     VkDisplayKHR                                display);
11330 #endif
11331
11332
11333 #define VK_EXT_display_surface_counter 1
11334 #define VK_EXT_DISPLAY_SURFACE_COUNTER_SPEC_VERSION 1
11335 #define VK_EXT_DISPLAY_SURFACE_COUNTER_EXTENSION_NAME "VK_EXT_display_surface_counter"
11336
11337 typedef enum VkSurfaceCounterFlagBitsEXT {
11338     VK_SURFACE_COUNTER_VBLANK_BIT_EXT = 0x00000001,
11339     VK_SURFACE_COUNTER_VBLANK_EXT = VK_SURFACE_COUNTER_VBLANK_BIT_EXT,
11340     VK_SURFACE_COUNTER_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
11341 } VkSurfaceCounterFlagBitsEXT;
11342 typedef VkFlags VkSurfaceCounterFlagsEXT;
11343 typedef struct VkSurfaceCapabilities2EXT {
11344     VkStructureType                  sType;
11345     void*                            pNext;
11346     deUint32                         minImageCount;
11347     deUint32                         maxImageCount;
11348     VkExtent2D                       currentExtent;
11349     VkExtent2D                       minImageExtent;
11350     VkExtent2D                       maxImageExtent;
11351     deUint32                         maxImageArrayLayers;
11352     VkSurfaceTransformFlagsKHR       supportedTransforms;
11353     VkSurfaceTransformFlagBitsKHR    currentTransform;
11354     VkCompositeAlphaFlagsKHR         supportedCompositeAlpha;
11355     VkImageUsageFlags                supportedUsageFlags;
11356     VkSurfaceCounterFlagsEXT         supportedSurfaceCounters;
11357 } VkSurfaceCapabilities2EXT;
11358
11359 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilities2EXT* pSurfaceCapabilities);
11360
11361 #ifndef VK_NO_PROTOTYPES
11362 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceCapabilities2EXT(
11363     VkPhysicalDevice                            physicalDevice,
11364     VkSurfaceKHR                                surface,
11365     VkSurfaceCapabilities2EXT*                  pSurfaceCapabilities);
11366 #endif
11367
11368
11369 #define VK_EXT_display_control 1
11370 #define VK_EXT_DISPLAY_CONTROL_SPEC_VERSION 1
11371 #define VK_EXT_DISPLAY_CONTROL_EXTENSION_NAME "VK_EXT_display_control"
11372
11373 typedef enum VkDisplayPowerStateEXT {
11374     VK_DISPLAY_POWER_STATE_OFF_EXT = 0,
11375     VK_DISPLAY_POWER_STATE_SUSPEND_EXT = 1,
11376     VK_DISPLAY_POWER_STATE_ON_EXT = 2,
11377     VK_DISPLAY_POWER_STATE_MAX_ENUM_EXT = 0x7FFFFFFF
11378 } VkDisplayPowerStateEXT;
11379
11380 typedef enum VkDeviceEventTypeEXT {
11381     VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT = 0,
11382     VK_DEVICE_EVENT_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
11383 } VkDeviceEventTypeEXT;
11384
11385 typedef enum VkDisplayEventTypeEXT {
11386     VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT = 0,
11387     VK_DISPLAY_EVENT_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
11388 } VkDisplayEventTypeEXT;
11389 typedef struct VkDisplayPowerInfoEXT {
11390     VkStructureType           sType;
11391     const void*               pNext;
11392     VkDisplayPowerStateEXT    powerState;
11393 } VkDisplayPowerInfoEXT;
11394
11395 typedef struct VkDeviceEventInfoEXT {
11396     VkStructureType         sType;
11397     const void*             pNext;
11398     VkDeviceEventTypeEXT    deviceEvent;
11399 } VkDeviceEventInfoEXT;
11400
11401 typedef struct VkDisplayEventInfoEXT {
11402     VkStructureType          sType;
11403     const void*              pNext;
11404     VkDisplayEventTypeEXT    displayEvent;
11405 } VkDisplayEventInfoEXT;
11406
11407 typedef struct VkSwapchainCounterCreateInfoEXT {
11408     VkStructureType             sType;
11409     const void*                 pNext;
11410     VkSurfaceCounterFlagsEXT    surfaceCounters;
11411 } VkSwapchainCounterCreateInfoEXT;
11412
11413 typedef VkResult (VKAPI_PTR *PFN_vkDisplayPowerControlEXT)(VkDevice device, VkDisplayKHR display, const VkDisplayPowerInfoEXT* pDisplayPowerInfo);
11414 typedef VkResult (VKAPI_PTR *PFN_vkRegisterDeviceEventEXT)(VkDevice device, const VkDeviceEventInfoEXT* pDeviceEventInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence);
11415 typedef VkResult (VKAPI_PTR *PFN_vkRegisterDisplayEventEXT)(VkDevice device, VkDisplayKHR display, const VkDisplayEventInfoEXT* pDisplayEventInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence);
11416 typedef VkResult (VKAPI_PTR *PFN_vkGetSwapchainCounterEXT)(VkDevice device, VkSwapchainKHR swapchain, VkSurfaceCounterFlagBitsEXT counter, deUint64* pCounterValue);
11417
11418 #ifndef VK_NO_PROTOTYPES
11419 VKAPI_ATTR VkResult VKAPI_CALL vkDisplayPowerControlEXT(
11420     VkDevice                                    device,
11421     VkDisplayKHR                                display,
11422     const VkDisplayPowerInfoEXT*                pDisplayPowerInfo);
11423
11424 VKAPI_ATTR VkResult VKAPI_CALL vkRegisterDeviceEventEXT(
11425     VkDevice                                    device,
11426     const VkDeviceEventInfoEXT*                 pDeviceEventInfo,
11427     const VkAllocationCallbacks*                pAllocator,
11428     VkFence*                                    pFence);
11429
11430 VKAPI_ATTR VkResult VKAPI_CALL vkRegisterDisplayEventEXT(
11431     VkDevice                                    device,
11432     VkDisplayKHR                                display,
11433     const VkDisplayEventInfoEXT*                pDisplayEventInfo,
11434     const VkAllocationCallbacks*                pAllocator,
11435     VkFence*                                    pFence);
11436
11437 VKAPI_ATTR VkResult VKAPI_CALL vkGetSwapchainCounterEXT(
11438     VkDevice                                    device,
11439     VkSwapchainKHR                              swapchain,
11440     VkSurfaceCounterFlagBitsEXT                 counter,
11441     deUint64*                                   pCounterValue);
11442 #endif
11443
11444
11445 #define VK_GOOGLE_display_timing 1
11446 #define VK_GOOGLE_DISPLAY_TIMING_SPEC_VERSION 1
11447 #define VK_GOOGLE_DISPLAY_TIMING_EXTENSION_NAME "VK_GOOGLE_display_timing"
11448 typedef struct VkRefreshCycleDurationGOOGLE {
11449     deUint64    refreshDuration;
11450 } VkRefreshCycleDurationGOOGLE;
11451
11452 typedef struct VkPastPresentationTimingGOOGLE {
11453     deUint32    presentID;
11454     deUint64    desiredPresentTime;
11455     deUint64    actualPresentTime;
11456     deUint64    earliestPresentTime;
11457     deUint64    presentMargin;
11458 } VkPastPresentationTimingGOOGLE;
11459
11460 typedef struct VkPresentTimeGOOGLE {
11461     deUint32    presentID;
11462     deUint64    desiredPresentTime;
11463 } VkPresentTimeGOOGLE;
11464
11465 typedef struct VkPresentTimesInfoGOOGLE {
11466     VkStructureType               sType;
11467     const void*                   pNext;
11468     deUint32                      swapchainCount;
11469     const VkPresentTimeGOOGLE*    pTimes;
11470 } VkPresentTimesInfoGOOGLE;
11471
11472 typedef VkResult (VKAPI_PTR *PFN_vkGetRefreshCycleDurationGOOGLE)(VkDevice device, VkSwapchainKHR swapchain, VkRefreshCycleDurationGOOGLE* pDisplayTimingProperties);
11473 typedef VkResult (VKAPI_PTR *PFN_vkGetPastPresentationTimingGOOGLE)(VkDevice device, VkSwapchainKHR swapchain, deUint32* pPresentationTimingCount, VkPastPresentationTimingGOOGLE* pPresentationTimings);
11474
11475 #ifndef VK_NO_PROTOTYPES
11476 VKAPI_ATTR VkResult VKAPI_CALL vkGetRefreshCycleDurationGOOGLE(
11477     VkDevice                                    device,
11478     VkSwapchainKHR                              swapchain,
11479     VkRefreshCycleDurationGOOGLE*               pDisplayTimingProperties);
11480
11481 VKAPI_ATTR VkResult VKAPI_CALL vkGetPastPresentationTimingGOOGLE(
11482     VkDevice                                    device,
11483     VkSwapchainKHR                              swapchain,
11484     deUint32*                                   pPresentationTimingCount,
11485     VkPastPresentationTimingGOOGLE*             pPresentationTimings);
11486 #endif
11487
11488
11489 #define VK_NV_sample_mask_override_coverage 1
11490 #define VK_NV_SAMPLE_MASK_OVERRIDE_COVERAGE_SPEC_VERSION 1
11491 #define VK_NV_SAMPLE_MASK_OVERRIDE_COVERAGE_EXTENSION_NAME "VK_NV_sample_mask_override_coverage"
11492
11493
11494 #define VK_NV_geometry_shader_passthrough 1
11495 #define VK_NV_GEOMETRY_SHADER_PASSTHROUGH_SPEC_VERSION 1
11496 #define VK_NV_GEOMETRY_SHADER_PASSTHROUGH_EXTENSION_NAME "VK_NV_geometry_shader_passthrough"
11497
11498
11499 #define VK_NV_viewport_array2 1
11500 #define VK_NV_VIEWPORT_ARRAY_2_SPEC_VERSION 1
11501 #define VK_NV_VIEWPORT_ARRAY_2_EXTENSION_NAME "VK_NV_viewport_array2"
11502 #define VK_NV_VIEWPORT_ARRAY2_SPEC_VERSION VK_NV_VIEWPORT_ARRAY_2_SPEC_VERSION
11503 #define VK_NV_VIEWPORT_ARRAY2_EXTENSION_NAME VK_NV_VIEWPORT_ARRAY_2_EXTENSION_NAME
11504
11505
11506 #define VK_NVX_multiview_per_view_attributes 1
11507 #define VK_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_SPEC_VERSION 1
11508 #define VK_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_EXTENSION_NAME "VK_NVX_multiview_per_view_attributes"
11509 typedef struct VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX {
11510     VkStructureType    sType;
11511     void*              pNext;
11512     VkBool32           perViewPositionAllComponents;
11513 } VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX;
11514
11515
11516
11517 #define VK_NV_viewport_swizzle 1
11518 #define VK_NV_VIEWPORT_SWIZZLE_SPEC_VERSION 1
11519 #define VK_NV_VIEWPORT_SWIZZLE_EXTENSION_NAME "VK_NV_viewport_swizzle"
11520
11521 typedef enum VkViewportCoordinateSwizzleNV {
11522     VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV = 0,
11523     VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV = 1,
11524     VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV = 2,
11525     VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV = 3,
11526     VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV = 4,
11527     VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV = 5,
11528     VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV = 6,
11529     VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV = 7,
11530     VK_VIEWPORT_COORDINATE_SWIZZLE_MAX_ENUM_NV = 0x7FFFFFFF
11531 } VkViewportCoordinateSwizzleNV;
11532 typedef VkFlags VkPipelineViewportSwizzleStateCreateFlagsNV;
11533 typedef struct VkViewportSwizzleNV {
11534     VkViewportCoordinateSwizzleNV    x;
11535     VkViewportCoordinateSwizzleNV    y;
11536     VkViewportCoordinateSwizzleNV    z;
11537     VkViewportCoordinateSwizzleNV    w;
11538 } VkViewportSwizzleNV;
11539
11540 typedef struct VkPipelineViewportSwizzleStateCreateInfoNV {
11541     VkStructureType                                sType;
11542     const void*                                    pNext;
11543     VkPipelineViewportSwizzleStateCreateFlagsNV    flags;
11544     deUint32                                       viewportCount;
11545     const VkViewportSwizzleNV*                     pViewportSwizzles;
11546 } VkPipelineViewportSwizzleStateCreateInfoNV;
11547
11548
11549
11550 #define VK_EXT_discard_rectangles 1
11551 #define VK_EXT_DISCARD_RECTANGLES_SPEC_VERSION 1
11552 #define VK_EXT_DISCARD_RECTANGLES_EXTENSION_NAME "VK_EXT_discard_rectangles"
11553
11554 typedef enum VkDiscardRectangleModeEXT {
11555     VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT = 0,
11556     VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT = 1,
11557     VK_DISCARD_RECTANGLE_MODE_MAX_ENUM_EXT = 0x7FFFFFFF
11558 } VkDiscardRectangleModeEXT;
11559 typedef VkFlags VkPipelineDiscardRectangleStateCreateFlagsEXT;
11560 typedef struct VkPhysicalDeviceDiscardRectanglePropertiesEXT {
11561     VkStructureType    sType;
11562     void*              pNext;
11563     deUint32           maxDiscardRectangles;
11564 } VkPhysicalDeviceDiscardRectanglePropertiesEXT;
11565
11566 typedef struct VkPipelineDiscardRectangleStateCreateInfoEXT {
11567     VkStructureType                                  sType;
11568     const void*                                      pNext;
11569     VkPipelineDiscardRectangleStateCreateFlagsEXT    flags;
11570     VkDiscardRectangleModeEXT                        discardRectangleMode;
11571     deUint32                                         discardRectangleCount;
11572     const VkRect2D*                                  pDiscardRectangles;
11573 } VkPipelineDiscardRectangleStateCreateInfoEXT;
11574
11575 typedef void (VKAPI_PTR *PFN_vkCmdSetDiscardRectangleEXT)(VkCommandBuffer commandBuffer, deUint32 firstDiscardRectangle, deUint32 discardRectangleCount, const VkRect2D* pDiscardRectangles);
11576
11577 #ifndef VK_NO_PROTOTYPES
11578 VKAPI_ATTR void VKAPI_CALL vkCmdSetDiscardRectangleEXT(
11579     VkCommandBuffer                             commandBuffer,
11580     deUint32                                    firstDiscardRectangle,
11581     deUint32                                    discardRectangleCount,
11582     const VkRect2D*                             pDiscardRectangles);
11583 #endif
11584
11585
11586 #define VK_EXT_conservative_rasterization 1
11587 #define VK_EXT_CONSERVATIVE_RASTERIZATION_SPEC_VERSION 1
11588 #define VK_EXT_CONSERVATIVE_RASTERIZATION_EXTENSION_NAME "VK_EXT_conservative_rasterization"
11589
11590 typedef enum VkConservativeRasterizationModeEXT {
11591     VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT = 0,
11592     VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT = 1,
11593     VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT = 2,
11594     VK_CONSERVATIVE_RASTERIZATION_MODE_MAX_ENUM_EXT = 0x7FFFFFFF
11595 } VkConservativeRasterizationModeEXT;
11596 typedef VkFlags VkPipelineRasterizationConservativeStateCreateFlagsEXT;
11597 typedef struct VkPhysicalDeviceConservativeRasterizationPropertiesEXT {
11598     VkStructureType    sType;
11599     void*              pNext;
11600     float              primitiveOverestimationSize;
11601     float              maxExtraPrimitiveOverestimationSize;
11602     float              extraPrimitiveOverestimationSizeGranularity;
11603     VkBool32           primitiveUnderestimation;
11604     VkBool32           conservativePointAndLineRasterization;
11605     VkBool32           degenerateTrianglesRasterized;
11606     VkBool32           degenerateLinesRasterized;
11607     VkBool32           fullyCoveredFragmentShaderInputVariable;
11608     VkBool32           conservativeRasterizationPostDepthCoverage;
11609 } VkPhysicalDeviceConservativeRasterizationPropertiesEXT;
11610
11611 typedef struct VkPipelineRasterizationConservativeStateCreateInfoEXT {
11612     VkStructureType                                           sType;
11613     const void*                                               pNext;
11614     VkPipelineRasterizationConservativeStateCreateFlagsEXT    flags;
11615     VkConservativeRasterizationModeEXT                        conservativeRasterizationMode;
11616     float                                                     extraPrimitiveOverestimationSize;
11617 } VkPipelineRasterizationConservativeStateCreateInfoEXT;
11618
11619
11620
11621 #define VK_EXT_depth_clip_enable 1
11622 #define VK_EXT_DEPTH_CLIP_ENABLE_SPEC_VERSION 1
11623 #define VK_EXT_DEPTH_CLIP_ENABLE_EXTENSION_NAME "VK_EXT_depth_clip_enable"
11624 typedef VkFlags VkPipelineRasterizationDepthClipStateCreateFlagsEXT;
11625 typedef struct VkPhysicalDeviceDepthClipEnableFeaturesEXT {
11626     VkStructureType    sType;
11627     void*              pNext;
11628     VkBool32           depthClipEnable;
11629 } VkPhysicalDeviceDepthClipEnableFeaturesEXT;
11630
11631 typedef struct VkPipelineRasterizationDepthClipStateCreateInfoEXT {
11632     VkStructureType                                        sType;
11633     const void*                                            pNext;
11634     VkPipelineRasterizationDepthClipStateCreateFlagsEXT    flags;
11635     VkBool32                                               depthClipEnable;
11636 } VkPipelineRasterizationDepthClipStateCreateInfoEXT;
11637
11638
11639
11640 #define VK_EXT_swapchain_colorspace 1
11641 #define VK_EXT_SWAPCHAIN_COLOR_SPACE_SPEC_VERSION 4
11642 #define VK_EXT_SWAPCHAIN_COLOR_SPACE_EXTENSION_NAME "VK_EXT_swapchain_colorspace"
11643
11644
11645 #define VK_EXT_hdr_metadata 1
11646 #define VK_EXT_HDR_METADATA_SPEC_VERSION  2
11647 #define VK_EXT_HDR_METADATA_EXTENSION_NAME "VK_EXT_hdr_metadata"
11648 typedef struct VkXYColorEXT {
11649     float    x;
11650     float    y;
11651 } VkXYColorEXT;
11652
11653 typedef struct VkHdrMetadataEXT {
11654     VkStructureType    sType;
11655     const void*        pNext;
11656     VkXYColorEXT       displayPrimaryRed;
11657     VkXYColorEXT       displayPrimaryGreen;
11658     VkXYColorEXT       displayPrimaryBlue;
11659     VkXYColorEXT       whitePoint;
11660     float              maxLuminance;
11661     float              minLuminance;
11662     float              maxContentLightLevel;
11663     float              maxFrameAverageLightLevel;
11664 } VkHdrMetadataEXT;
11665
11666 typedef void (VKAPI_PTR *PFN_vkSetHdrMetadataEXT)(VkDevice device, deUint32 swapchainCount, const VkSwapchainKHR* pSwapchains, const VkHdrMetadataEXT* pMetadata);
11667
11668 #ifndef VK_NO_PROTOTYPES
11669 VKAPI_ATTR void VKAPI_CALL vkSetHdrMetadataEXT(
11670     VkDevice                                    device,
11671     deUint32                                    swapchainCount,
11672     const VkSwapchainKHR*                       pSwapchains,
11673     const VkHdrMetadataEXT*                     pMetadata);
11674 #endif
11675
11676
11677 #define VK_EXT_external_memory_dma_buf 1
11678 #define VK_EXT_EXTERNAL_MEMORY_DMA_BUF_SPEC_VERSION 1
11679 #define VK_EXT_EXTERNAL_MEMORY_DMA_BUF_EXTENSION_NAME "VK_EXT_external_memory_dma_buf"
11680
11681
11682 #define VK_EXT_queue_family_foreign 1
11683 #define VK_EXT_QUEUE_FAMILY_FOREIGN_SPEC_VERSION 1
11684 #define VK_EXT_QUEUE_FAMILY_FOREIGN_EXTENSION_NAME "VK_EXT_queue_family_foreign"
11685 #define VK_QUEUE_FAMILY_FOREIGN_EXT       (~2U)
11686
11687
11688 #define VK_EXT_debug_utils 1
11689 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDebugUtilsMessengerEXT)
11690 #define VK_EXT_DEBUG_UTILS_SPEC_VERSION   2
11691 #define VK_EXT_DEBUG_UTILS_EXTENSION_NAME "VK_EXT_debug_utils"
11692 typedef VkFlags VkDebugUtilsMessengerCallbackDataFlagsEXT;
11693
11694 typedef enum VkDebugUtilsMessageSeverityFlagBitsEXT {
11695     VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT = 0x00000001,
11696     VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT = 0x00000010,
11697     VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT = 0x00000100,
11698     VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT = 0x00001000,
11699     VK_DEBUG_UTILS_MESSAGE_SEVERITY_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
11700 } VkDebugUtilsMessageSeverityFlagBitsEXT;
11701
11702 typedef enum VkDebugUtilsMessageTypeFlagBitsEXT {
11703     VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT = 0x00000001,
11704     VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT = 0x00000002,
11705     VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT = 0x00000004,
11706     VK_DEBUG_UTILS_MESSAGE_TYPE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
11707 } VkDebugUtilsMessageTypeFlagBitsEXT;
11708 typedef VkFlags VkDebugUtilsMessageTypeFlagsEXT;
11709 typedef VkFlags VkDebugUtilsMessageSeverityFlagsEXT;
11710 typedef VkFlags VkDebugUtilsMessengerCreateFlagsEXT;
11711 typedef struct VkDebugUtilsLabelEXT {
11712     VkStructureType    sType;
11713     const void*        pNext;
11714     const char*        pLabelName;
11715     float              color[4];
11716 } VkDebugUtilsLabelEXT;
11717
11718 typedef struct VkDebugUtilsObjectNameInfoEXT {
11719     VkStructureType    sType;
11720     const void*        pNext;
11721     VkObjectType       objectType;
11722     deUint64           objectHandle;
11723     const char*        pObjectName;
11724 } VkDebugUtilsObjectNameInfoEXT;
11725
11726 typedef struct VkDebugUtilsMessengerCallbackDataEXT {
11727     VkStructureType                              sType;
11728     const void*                                  pNext;
11729     VkDebugUtilsMessengerCallbackDataFlagsEXT    flags;
11730     const char*                                  pMessageIdName;
11731     deInt32                                      messageIdNumber;
11732     const char*                                  pMessage;
11733     deUint32                                     queueLabelCount;
11734     const VkDebugUtilsLabelEXT*                  pQueueLabels;
11735     deUint32                                     cmdBufLabelCount;
11736     const VkDebugUtilsLabelEXT*                  pCmdBufLabels;
11737     deUint32                                     objectCount;
11738     const VkDebugUtilsObjectNameInfoEXT*         pObjects;
11739 } VkDebugUtilsMessengerCallbackDataEXT;
11740
11741 typedef VkBool32 (VKAPI_PTR *PFN_vkDebugUtilsMessengerCallbackEXT)(
11742     VkDebugUtilsMessageSeverityFlagBitsEXT           messageSeverity,
11743     VkDebugUtilsMessageTypeFlagsEXT                  messageTypes,
11744     const VkDebugUtilsMessengerCallbackDataEXT*      pCallbackData,
11745     void*                                            pUserData);
11746
11747 typedef struct VkDebugUtilsMessengerCreateInfoEXT {
11748     VkStructureType                         sType;
11749     const void*                             pNext;
11750     VkDebugUtilsMessengerCreateFlagsEXT     flags;
11751     VkDebugUtilsMessageSeverityFlagsEXT     messageSeverity;
11752     VkDebugUtilsMessageTypeFlagsEXT         messageType;
11753     PFN_vkDebugUtilsMessengerCallbackEXT    pfnUserCallback;
11754     void*                                   pUserData;
11755 } VkDebugUtilsMessengerCreateInfoEXT;
11756
11757 typedef struct VkDebugUtilsObjectTagInfoEXT {
11758     VkStructureType    sType;
11759     const void*        pNext;
11760     VkObjectType       objectType;
11761     deUint64           objectHandle;
11762     deUint64           tagName;
11763     deUintptr             tagSize;
11764     const void*        pTag;
11765 } VkDebugUtilsObjectTagInfoEXT;
11766
11767 typedef VkResult (VKAPI_PTR *PFN_vkSetDebugUtilsObjectNameEXT)(VkDevice device, const VkDebugUtilsObjectNameInfoEXT* pNameInfo);
11768 typedef VkResult (VKAPI_PTR *PFN_vkSetDebugUtilsObjectTagEXT)(VkDevice device, const VkDebugUtilsObjectTagInfoEXT* pTagInfo);
11769 typedef void (VKAPI_PTR *PFN_vkQueueBeginDebugUtilsLabelEXT)(VkQueue queue, const VkDebugUtilsLabelEXT* pLabelInfo);
11770 typedef void (VKAPI_PTR *PFN_vkQueueEndDebugUtilsLabelEXT)(VkQueue queue);
11771 typedef void (VKAPI_PTR *PFN_vkQueueInsertDebugUtilsLabelEXT)(VkQueue queue, const VkDebugUtilsLabelEXT* pLabelInfo);
11772 typedef void (VKAPI_PTR *PFN_vkCmdBeginDebugUtilsLabelEXT)(VkCommandBuffer commandBuffer, const VkDebugUtilsLabelEXT* pLabelInfo);
11773 typedef void (VKAPI_PTR *PFN_vkCmdEndDebugUtilsLabelEXT)(VkCommandBuffer commandBuffer);
11774 typedef void (VKAPI_PTR *PFN_vkCmdInsertDebugUtilsLabelEXT)(VkCommandBuffer commandBuffer, const VkDebugUtilsLabelEXT* pLabelInfo);
11775 typedef VkResult (VKAPI_PTR *PFN_vkCreateDebugUtilsMessengerEXT)(VkInstance instance, const VkDebugUtilsMessengerCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDebugUtilsMessengerEXT* pMessenger);
11776 typedef void (VKAPI_PTR *PFN_vkDestroyDebugUtilsMessengerEXT)(VkInstance instance, VkDebugUtilsMessengerEXT messenger, const VkAllocationCallbacks* pAllocator);
11777 typedef void (VKAPI_PTR *PFN_vkSubmitDebugUtilsMessageEXT)(VkInstance instance, VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity, VkDebugUtilsMessageTypeFlagsEXT messageTypes, const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData);
11778
11779 #ifndef VK_NO_PROTOTYPES
11780 VKAPI_ATTR VkResult VKAPI_CALL vkSetDebugUtilsObjectNameEXT(
11781     VkDevice                                    device,
11782     const VkDebugUtilsObjectNameInfoEXT*        pNameInfo);
11783
11784 VKAPI_ATTR VkResult VKAPI_CALL vkSetDebugUtilsObjectTagEXT(
11785     VkDevice                                    device,
11786     const VkDebugUtilsObjectTagInfoEXT*         pTagInfo);
11787
11788 VKAPI_ATTR void VKAPI_CALL vkQueueBeginDebugUtilsLabelEXT(
11789     VkQueue                                     queue,
11790     const VkDebugUtilsLabelEXT*                 pLabelInfo);
11791
11792 VKAPI_ATTR void VKAPI_CALL vkQueueEndDebugUtilsLabelEXT(
11793     VkQueue                                     queue);
11794
11795 VKAPI_ATTR void VKAPI_CALL vkQueueInsertDebugUtilsLabelEXT(
11796     VkQueue                                     queue,
11797     const VkDebugUtilsLabelEXT*                 pLabelInfo);
11798
11799 VKAPI_ATTR void VKAPI_CALL vkCmdBeginDebugUtilsLabelEXT(
11800     VkCommandBuffer                             commandBuffer,
11801     const VkDebugUtilsLabelEXT*                 pLabelInfo);
11802
11803 VKAPI_ATTR void VKAPI_CALL vkCmdEndDebugUtilsLabelEXT(
11804     VkCommandBuffer                             commandBuffer);
11805
11806 VKAPI_ATTR void VKAPI_CALL vkCmdInsertDebugUtilsLabelEXT(
11807     VkCommandBuffer                             commandBuffer,
11808     const VkDebugUtilsLabelEXT*                 pLabelInfo);
11809
11810 VKAPI_ATTR VkResult VKAPI_CALL vkCreateDebugUtilsMessengerEXT(
11811     VkInstance                                  instance,
11812     const VkDebugUtilsMessengerCreateInfoEXT*   pCreateInfo,
11813     const VkAllocationCallbacks*                pAllocator,
11814     VkDebugUtilsMessengerEXT*                   pMessenger);
11815
11816 VKAPI_ATTR void VKAPI_CALL vkDestroyDebugUtilsMessengerEXT(
11817     VkInstance                                  instance,
11818     VkDebugUtilsMessengerEXT                    messenger,
11819     const VkAllocationCallbacks*                pAllocator);
11820
11821 VKAPI_ATTR void VKAPI_CALL vkSubmitDebugUtilsMessageEXT(
11822     VkInstance                                  instance,
11823     VkDebugUtilsMessageSeverityFlagBitsEXT      messageSeverity,
11824     VkDebugUtilsMessageTypeFlagsEXT             messageTypes,
11825     const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData);
11826 #endif
11827
11828
11829 #define VK_EXT_sampler_filter_minmax 1
11830 #define VK_EXT_SAMPLER_FILTER_MINMAX_SPEC_VERSION 2
11831 #define VK_EXT_SAMPLER_FILTER_MINMAX_EXTENSION_NAME "VK_EXT_sampler_filter_minmax"
11832 typedef VkSamplerReductionMode VkSamplerReductionModeEXT;
11833
11834 typedef VkSamplerReductionModeCreateInfo VkSamplerReductionModeCreateInfoEXT;
11835
11836 typedef VkPhysicalDeviceSamplerFilterMinmaxProperties VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT;
11837
11838
11839
11840 #define VK_AMD_gpu_shader_int16 1
11841 #define VK_AMD_GPU_SHADER_INT16_SPEC_VERSION 2
11842 #define VK_AMD_GPU_SHADER_INT16_EXTENSION_NAME "VK_AMD_gpu_shader_int16"
11843
11844
11845 #define VK_AMD_mixed_attachment_samples 1
11846 #define VK_AMD_MIXED_ATTACHMENT_SAMPLES_SPEC_VERSION 1
11847 #define VK_AMD_MIXED_ATTACHMENT_SAMPLES_EXTENSION_NAME "VK_AMD_mixed_attachment_samples"
11848
11849
11850 #define VK_AMD_shader_fragment_mask 1
11851 #define VK_AMD_SHADER_FRAGMENT_MASK_SPEC_VERSION 1
11852 #define VK_AMD_SHADER_FRAGMENT_MASK_EXTENSION_NAME "VK_AMD_shader_fragment_mask"
11853
11854
11855 #define VK_EXT_inline_uniform_block 1
11856 #define VK_EXT_INLINE_UNIFORM_BLOCK_SPEC_VERSION 1
11857 #define VK_EXT_INLINE_UNIFORM_BLOCK_EXTENSION_NAME "VK_EXT_inline_uniform_block"
11858 typedef VkPhysicalDeviceInlineUniformBlockFeatures VkPhysicalDeviceInlineUniformBlockFeaturesEXT;
11859
11860 typedef VkPhysicalDeviceInlineUniformBlockProperties VkPhysicalDeviceInlineUniformBlockPropertiesEXT;
11861
11862 typedef VkWriteDescriptorSetInlineUniformBlock VkWriteDescriptorSetInlineUniformBlockEXT;
11863
11864 typedef VkDescriptorPoolInlineUniformBlockCreateInfo VkDescriptorPoolInlineUniformBlockCreateInfoEXT;
11865
11866
11867
11868 #define VK_EXT_shader_stencil_export 1
11869 #define VK_EXT_SHADER_STENCIL_EXPORT_SPEC_VERSION 1
11870 #define VK_EXT_SHADER_STENCIL_EXPORT_EXTENSION_NAME "VK_EXT_shader_stencil_export"
11871
11872
11873 #define VK_EXT_sample_locations 1
11874 #define VK_EXT_SAMPLE_LOCATIONS_SPEC_VERSION 1
11875 #define VK_EXT_SAMPLE_LOCATIONS_EXTENSION_NAME "VK_EXT_sample_locations"
11876 typedef struct VkSampleLocationEXT {
11877     float    x;
11878     float    y;
11879 } VkSampleLocationEXT;
11880
11881 typedef struct VkSampleLocationsInfoEXT {
11882     VkStructureType               sType;
11883     const void*                   pNext;
11884     VkSampleCountFlagBits         sampleLocationsPerPixel;
11885     VkExtent2D                    sampleLocationGridSize;
11886     deUint32                      sampleLocationsCount;
11887     const VkSampleLocationEXT*    pSampleLocations;
11888 } VkSampleLocationsInfoEXT;
11889
11890 typedef struct VkAttachmentSampleLocationsEXT {
11891     deUint32                    attachmentIndex;
11892     VkSampleLocationsInfoEXT    sampleLocationsInfo;
11893 } VkAttachmentSampleLocationsEXT;
11894
11895 typedef struct VkSubpassSampleLocationsEXT {
11896     deUint32                    subpassIndex;
11897     VkSampleLocationsInfoEXT    sampleLocationsInfo;
11898 } VkSubpassSampleLocationsEXT;
11899
11900 typedef struct VkRenderPassSampleLocationsBeginInfoEXT {
11901     VkStructureType                          sType;
11902     const void*                              pNext;
11903     deUint32                                 attachmentInitialSampleLocationsCount;
11904     const VkAttachmentSampleLocationsEXT*    pAttachmentInitialSampleLocations;
11905     deUint32                                 postSubpassSampleLocationsCount;
11906     const VkSubpassSampleLocationsEXT*       pPostSubpassSampleLocations;
11907 } VkRenderPassSampleLocationsBeginInfoEXT;
11908
11909 typedef struct VkPipelineSampleLocationsStateCreateInfoEXT {
11910     VkStructureType             sType;
11911     const void*                 pNext;
11912     VkBool32                    sampleLocationsEnable;
11913     VkSampleLocationsInfoEXT    sampleLocationsInfo;
11914 } VkPipelineSampleLocationsStateCreateInfoEXT;
11915
11916 typedef struct VkPhysicalDeviceSampleLocationsPropertiesEXT {
11917     VkStructureType       sType;
11918     void*                 pNext;
11919     VkSampleCountFlags    sampleLocationSampleCounts;
11920     VkExtent2D            maxSampleLocationGridSize;
11921     float                 sampleLocationCoordinateRange[2];
11922     deUint32              sampleLocationSubPixelBits;
11923     VkBool32              variableSampleLocations;
11924 } VkPhysicalDeviceSampleLocationsPropertiesEXT;
11925
11926 typedef struct VkMultisamplePropertiesEXT {
11927     VkStructureType    sType;
11928     void*              pNext;
11929     VkExtent2D         maxSampleLocationGridSize;
11930 } VkMultisamplePropertiesEXT;
11931
11932 typedef void (VKAPI_PTR *PFN_vkCmdSetSampleLocationsEXT)(VkCommandBuffer commandBuffer, const VkSampleLocationsInfoEXT* pSampleLocationsInfo);
11933 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT)(VkPhysicalDevice physicalDevice, VkSampleCountFlagBits samples, VkMultisamplePropertiesEXT* pMultisampleProperties);
11934
11935 #ifndef VK_NO_PROTOTYPES
11936 VKAPI_ATTR void VKAPI_CALL vkCmdSetSampleLocationsEXT(
11937     VkCommandBuffer                             commandBuffer,
11938     const VkSampleLocationsInfoEXT*             pSampleLocationsInfo);
11939
11940 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceMultisamplePropertiesEXT(
11941     VkPhysicalDevice                            physicalDevice,
11942     VkSampleCountFlagBits                       samples,
11943     VkMultisamplePropertiesEXT*                 pMultisampleProperties);
11944 #endif
11945
11946
11947 #define VK_EXT_blend_operation_advanced 1
11948 #define VK_EXT_BLEND_OPERATION_ADVANCED_SPEC_VERSION 2
11949 #define VK_EXT_BLEND_OPERATION_ADVANCED_EXTENSION_NAME "VK_EXT_blend_operation_advanced"
11950
11951 typedef enum VkBlendOverlapEXT {
11952     VK_BLEND_OVERLAP_UNCORRELATED_EXT = 0,
11953     VK_BLEND_OVERLAP_DISJOINT_EXT = 1,
11954     VK_BLEND_OVERLAP_CONJOINT_EXT = 2,
11955     VK_BLEND_OVERLAP_MAX_ENUM_EXT = 0x7FFFFFFF
11956 } VkBlendOverlapEXT;
11957 typedef struct VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT {
11958     VkStructureType    sType;
11959     void*              pNext;
11960     VkBool32           advancedBlendCoherentOperations;
11961 } VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT;
11962
11963 typedef struct VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT {
11964     VkStructureType    sType;
11965     void*              pNext;
11966     deUint32           advancedBlendMaxColorAttachments;
11967     VkBool32           advancedBlendIndependentBlend;
11968     VkBool32           advancedBlendNonPremultipliedSrcColor;
11969     VkBool32           advancedBlendNonPremultipliedDstColor;
11970     VkBool32           advancedBlendCorrelatedOverlap;
11971     VkBool32           advancedBlendAllOperations;
11972 } VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT;
11973
11974 typedef struct VkPipelineColorBlendAdvancedStateCreateInfoEXT {
11975     VkStructureType      sType;
11976     const void*          pNext;
11977     VkBool32             srcPremultiplied;
11978     VkBool32             dstPremultiplied;
11979     VkBlendOverlapEXT    blendOverlap;
11980 } VkPipelineColorBlendAdvancedStateCreateInfoEXT;
11981
11982
11983
11984 #define VK_NV_fragment_coverage_to_color 1
11985 #define VK_NV_FRAGMENT_COVERAGE_TO_COLOR_SPEC_VERSION 1
11986 #define VK_NV_FRAGMENT_COVERAGE_TO_COLOR_EXTENSION_NAME "VK_NV_fragment_coverage_to_color"
11987 typedef VkFlags VkPipelineCoverageToColorStateCreateFlagsNV;
11988 typedef struct VkPipelineCoverageToColorStateCreateInfoNV {
11989     VkStructureType                                sType;
11990     const void*                                    pNext;
11991     VkPipelineCoverageToColorStateCreateFlagsNV    flags;
11992     VkBool32                                       coverageToColorEnable;
11993     deUint32                                       coverageToColorLocation;
11994 } VkPipelineCoverageToColorStateCreateInfoNV;
11995
11996
11997
11998 #define VK_NV_framebuffer_mixed_samples 1
11999 #define VK_NV_FRAMEBUFFER_MIXED_SAMPLES_SPEC_VERSION 1
12000 #define VK_NV_FRAMEBUFFER_MIXED_SAMPLES_EXTENSION_NAME "VK_NV_framebuffer_mixed_samples"
12001
12002 typedef enum VkCoverageModulationModeNV {
12003     VK_COVERAGE_MODULATION_MODE_NONE_NV = 0,
12004     VK_COVERAGE_MODULATION_MODE_RGB_NV = 1,
12005     VK_COVERAGE_MODULATION_MODE_ALPHA_NV = 2,
12006     VK_COVERAGE_MODULATION_MODE_RGBA_NV = 3,
12007     VK_COVERAGE_MODULATION_MODE_MAX_ENUM_NV = 0x7FFFFFFF
12008 } VkCoverageModulationModeNV;
12009 typedef VkFlags VkPipelineCoverageModulationStateCreateFlagsNV;
12010 typedef struct VkPipelineCoverageModulationStateCreateInfoNV {
12011     VkStructureType                                   sType;
12012     const void*                                       pNext;
12013     VkPipelineCoverageModulationStateCreateFlagsNV    flags;
12014     VkCoverageModulationModeNV                        coverageModulationMode;
12015     VkBool32                                          coverageModulationTableEnable;
12016     deUint32                                          coverageModulationTableCount;
12017     const float*                                      pCoverageModulationTable;
12018 } VkPipelineCoverageModulationStateCreateInfoNV;
12019
12020
12021
12022 #define VK_NV_fill_rectangle 1
12023 #define VK_NV_FILL_RECTANGLE_SPEC_VERSION 1
12024 #define VK_NV_FILL_RECTANGLE_EXTENSION_NAME "VK_NV_fill_rectangle"
12025
12026
12027 #define VK_NV_shader_sm_builtins 1
12028 #define VK_NV_SHADER_SM_BUILTINS_SPEC_VERSION 1
12029 #define VK_NV_SHADER_SM_BUILTINS_EXTENSION_NAME "VK_NV_shader_sm_builtins"
12030 typedef struct VkPhysicalDeviceShaderSMBuiltinsPropertiesNV {
12031     VkStructureType    sType;
12032     void*              pNext;
12033     deUint32           shaderSMCount;
12034     deUint32           shaderWarpsPerSM;
12035 } VkPhysicalDeviceShaderSMBuiltinsPropertiesNV;
12036
12037 typedef struct VkPhysicalDeviceShaderSMBuiltinsFeaturesNV {
12038     VkStructureType    sType;
12039     void*              pNext;
12040     VkBool32           shaderSMBuiltins;
12041 } VkPhysicalDeviceShaderSMBuiltinsFeaturesNV;
12042
12043
12044
12045 #define VK_EXT_post_depth_coverage 1
12046 #define VK_EXT_POST_DEPTH_COVERAGE_SPEC_VERSION 1
12047 #define VK_EXT_POST_DEPTH_COVERAGE_EXTENSION_NAME "VK_EXT_post_depth_coverage"
12048
12049
12050 #define VK_EXT_image_drm_format_modifier 1
12051 #define VK_EXT_IMAGE_DRM_FORMAT_MODIFIER_SPEC_VERSION 2
12052 #define VK_EXT_IMAGE_DRM_FORMAT_MODIFIER_EXTENSION_NAME "VK_EXT_image_drm_format_modifier"
12053 typedef struct VkDrmFormatModifierPropertiesEXT {
12054     deUint64                drmFormatModifier;
12055     deUint32                drmFormatModifierPlaneCount;
12056     VkFormatFeatureFlags    drmFormatModifierTilingFeatures;
12057 } VkDrmFormatModifierPropertiesEXT;
12058
12059 typedef struct VkDrmFormatModifierPropertiesListEXT {
12060     VkStructureType                      sType;
12061     void*                                pNext;
12062     deUint32                             drmFormatModifierCount;
12063     VkDrmFormatModifierPropertiesEXT*    pDrmFormatModifierProperties;
12064 } VkDrmFormatModifierPropertiesListEXT;
12065
12066 typedef struct VkPhysicalDeviceImageDrmFormatModifierInfoEXT {
12067     VkStructureType    sType;
12068     const void*        pNext;
12069     deUint64           drmFormatModifier;
12070     VkSharingMode      sharingMode;
12071     deUint32           queueFamilyIndexCount;
12072     const deUint32*    pQueueFamilyIndices;
12073 } VkPhysicalDeviceImageDrmFormatModifierInfoEXT;
12074
12075 typedef struct VkImageDrmFormatModifierListCreateInfoEXT {
12076     VkStructureType    sType;
12077     const void*        pNext;
12078     deUint32           drmFormatModifierCount;
12079     const deUint64*    pDrmFormatModifiers;
12080 } VkImageDrmFormatModifierListCreateInfoEXT;
12081
12082 typedef struct VkImageDrmFormatModifierExplicitCreateInfoEXT {
12083     VkStructureType               sType;
12084     const void*                   pNext;
12085     deUint64                      drmFormatModifier;
12086     deUint32                      drmFormatModifierPlaneCount;
12087     const VkSubresourceLayout*    pPlaneLayouts;
12088 } VkImageDrmFormatModifierExplicitCreateInfoEXT;
12089
12090 typedef struct VkImageDrmFormatModifierPropertiesEXT {
12091     VkStructureType    sType;
12092     void*              pNext;
12093     deUint64           drmFormatModifier;
12094 } VkImageDrmFormatModifierPropertiesEXT;
12095
12096 typedef struct VkDrmFormatModifierProperties2EXT {
12097     deUint64                 drmFormatModifier;
12098     deUint32                 drmFormatModifierPlaneCount;
12099     VkFormatFeatureFlags2    drmFormatModifierTilingFeatures;
12100 } VkDrmFormatModifierProperties2EXT;
12101
12102 typedef struct VkDrmFormatModifierPropertiesList2EXT {
12103     VkStructureType                       sType;
12104     void*                                 pNext;
12105     deUint32                              drmFormatModifierCount;
12106     VkDrmFormatModifierProperties2EXT*    pDrmFormatModifierProperties;
12107 } VkDrmFormatModifierPropertiesList2EXT;
12108
12109 typedef VkResult (VKAPI_PTR *PFN_vkGetImageDrmFormatModifierPropertiesEXT)(VkDevice device, VkImage image, VkImageDrmFormatModifierPropertiesEXT* pProperties);
12110
12111 #ifndef VK_NO_PROTOTYPES
12112 VKAPI_ATTR VkResult VKAPI_CALL vkGetImageDrmFormatModifierPropertiesEXT(
12113     VkDevice                                    device,
12114     VkImage                                     image,
12115     VkImageDrmFormatModifierPropertiesEXT*      pProperties);
12116 #endif
12117
12118
12119 #define VK_EXT_validation_cache 1
12120 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkValidationCacheEXT)
12121 #define VK_EXT_VALIDATION_CACHE_SPEC_VERSION 1
12122 #define VK_EXT_VALIDATION_CACHE_EXTENSION_NAME "VK_EXT_validation_cache"
12123
12124 typedef enum VkValidationCacheHeaderVersionEXT {
12125     VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT = 1,
12126     VK_VALIDATION_CACHE_HEADER_VERSION_MAX_ENUM_EXT = 0x7FFFFFFF
12127 } VkValidationCacheHeaderVersionEXT;
12128 typedef VkFlags VkValidationCacheCreateFlagsEXT;
12129 typedef struct VkValidationCacheCreateInfoEXT {
12130     VkStructureType                    sType;
12131     const void*                        pNext;
12132     VkValidationCacheCreateFlagsEXT    flags;
12133     deUintptr                             initialDataSize;
12134     const void*                        pInitialData;
12135 } VkValidationCacheCreateInfoEXT;
12136
12137 typedef struct VkShaderModuleValidationCacheCreateInfoEXT {
12138     VkStructureType         sType;
12139     const void*             pNext;
12140     VkValidationCacheEXT    validationCache;
12141 } VkShaderModuleValidationCacheCreateInfoEXT;
12142
12143 typedef VkResult (VKAPI_PTR *PFN_vkCreateValidationCacheEXT)(VkDevice device, const VkValidationCacheCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkValidationCacheEXT* pValidationCache);
12144 typedef void (VKAPI_PTR *PFN_vkDestroyValidationCacheEXT)(VkDevice device, VkValidationCacheEXT validationCache, const VkAllocationCallbacks* pAllocator);
12145 typedef VkResult (VKAPI_PTR *PFN_vkMergeValidationCachesEXT)(VkDevice device, VkValidationCacheEXT dstCache, deUint32 srcCacheCount, const VkValidationCacheEXT* pSrcCaches);
12146 typedef VkResult (VKAPI_PTR *PFN_vkGetValidationCacheDataEXT)(VkDevice device, VkValidationCacheEXT validationCache, deUintptr* pDataSize, void* pData);
12147
12148 #ifndef VK_NO_PROTOTYPES
12149 VKAPI_ATTR VkResult VKAPI_CALL vkCreateValidationCacheEXT(
12150     VkDevice                                    device,
12151     const VkValidationCacheCreateInfoEXT*       pCreateInfo,
12152     const VkAllocationCallbacks*                pAllocator,
12153     VkValidationCacheEXT*                       pValidationCache);
12154
12155 VKAPI_ATTR void VKAPI_CALL vkDestroyValidationCacheEXT(
12156     VkDevice                                    device,
12157     VkValidationCacheEXT                        validationCache,
12158     const VkAllocationCallbacks*                pAllocator);
12159
12160 VKAPI_ATTR VkResult VKAPI_CALL vkMergeValidationCachesEXT(
12161     VkDevice                                    device,
12162     VkValidationCacheEXT                        dstCache,
12163     deUint32                                    srcCacheCount,
12164     const VkValidationCacheEXT*                 pSrcCaches);
12165
12166 VKAPI_ATTR VkResult VKAPI_CALL vkGetValidationCacheDataEXT(
12167     VkDevice                                    device,
12168     VkValidationCacheEXT                        validationCache,
12169     deUintptr*                                     pDataSize,
12170     void*                                       pData);
12171 #endif
12172
12173
12174 #define VK_EXT_descriptor_indexing 1
12175 #define VK_EXT_DESCRIPTOR_INDEXING_SPEC_VERSION 2
12176 #define VK_EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME "VK_EXT_descriptor_indexing"
12177 typedef VkDescriptorBindingFlagBits VkDescriptorBindingFlagBitsEXT;
12178
12179 typedef VkDescriptorBindingFlags VkDescriptorBindingFlagsEXT;
12180
12181 typedef VkDescriptorSetLayoutBindingFlagsCreateInfo VkDescriptorSetLayoutBindingFlagsCreateInfoEXT;
12182
12183 typedef VkPhysicalDeviceDescriptorIndexingFeatures VkPhysicalDeviceDescriptorIndexingFeaturesEXT;
12184
12185 typedef VkPhysicalDeviceDescriptorIndexingProperties VkPhysicalDeviceDescriptorIndexingPropertiesEXT;
12186
12187 typedef VkDescriptorSetVariableDescriptorCountAllocateInfo VkDescriptorSetVariableDescriptorCountAllocateInfoEXT;
12188
12189 typedef VkDescriptorSetVariableDescriptorCountLayoutSupport VkDescriptorSetVariableDescriptorCountLayoutSupportEXT;
12190
12191
12192
12193 #define VK_EXT_shader_viewport_index_layer 1
12194 #define VK_EXT_SHADER_VIEWPORT_INDEX_LAYER_SPEC_VERSION 1
12195 #define VK_EXT_SHADER_VIEWPORT_INDEX_LAYER_EXTENSION_NAME "VK_EXT_shader_viewport_index_layer"
12196
12197
12198 #define VK_NV_shading_rate_image 1
12199 #define VK_NV_SHADING_RATE_IMAGE_SPEC_VERSION 3
12200 #define VK_NV_SHADING_RATE_IMAGE_EXTENSION_NAME "VK_NV_shading_rate_image"
12201
12202 typedef enum VkShadingRatePaletteEntryNV {
12203     VK_SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV = 0,
12204     VK_SHADING_RATE_PALETTE_ENTRY_16_INVOCATIONS_PER_PIXEL_NV = 1,
12205     VK_SHADING_RATE_PALETTE_ENTRY_8_INVOCATIONS_PER_PIXEL_NV = 2,
12206     VK_SHADING_RATE_PALETTE_ENTRY_4_INVOCATIONS_PER_PIXEL_NV = 3,
12207     VK_SHADING_RATE_PALETTE_ENTRY_2_INVOCATIONS_PER_PIXEL_NV = 4,
12208     VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_PIXEL_NV = 5,
12209     VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X1_PIXELS_NV = 6,
12210     VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_1X2_PIXELS_NV = 7,
12211     VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X2_PIXELS_NV = 8,
12212     VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X2_PIXELS_NV = 9,
12213     VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X4_PIXELS_NV = 10,
12214     VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV = 11,
12215     VK_SHADING_RATE_PALETTE_ENTRY_MAX_ENUM_NV = 0x7FFFFFFF
12216 } VkShadingRatePaletteEntryNV;
12217
12218 typedef enum VkCoarseSampleOrderTypeNV {
12219     VK_COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV = 0,
12220     VK_COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV = 1,
12221     VK_COARSE_SAMPLE_ORDER_TYPE_PIXEL_MAJOR_NV = 2,
12222     VK_COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV = 3,
12223     VK_COARSE_SAMPLE_ORDER_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
12224 } VkCoarseSampleOrderTypeNV;
12225 typedef struct VkShadingRatePaletteNV {
12226     deUint32                              shadingRatePaletteEntryCount;
12227     const VkShadingRatePaletteEntryNV*    pShadingRatePaletteEntries;
12228 } VkShadingRatePaletteNV;
12229
12230 typedef struct VkPipelineViewportShadingRateImageStateCreateInfoNV {
12231     VkStructureType                  sType;
12232     const void*                      pNext;
12233     VkBool32                         shadingRateImageEnable;
12234     deUint32                         viewportCount;
12235     const VkShadingRatePaletteNV*    pShadingRatePalettes;
12236 } VkPipelineViewportShadingRateImageStateCreateInfoNV;
12237
12238 typedef struct VkPhysicalDeviceShadingRateImageFeaturesNV {
12239     VkStructureType    sType;
12240     void*              pNext;
12241     VkBool32           shadingRateImage;
12242     VkBool32           shadingRateCoarseSampleOrder;
12243 } VkPhysicalDeviceShadingRateImageFeaturesNV;
12244
12245 typedef struct VkPhysicalDeviceShadingRateImagePropertiesNV {
12246     VkStructureType    sType;
12247     void*              pNext;
12248     VkExtent2D         shadingRateTexelSize;
12249     deUint32           shadingRatePaletteSize;
12250     deUint32           shadingRateMaxCoarseSamples;
12251 } VkPhysicalDeviceShadingRateImagePropertiesNV;
12252
12253 typedef struct VkCoarseSampleLocationNV {
12254     deUint32    pixelX;
12255     deUint32    pixelY;
12256     deUint32    sample;
12257 } VkCoarseSampleLocationNV;
12258
12259 typedef struct VkCoarseSampleOrderCustomNV {
12260     VkShadingRatePaletteEntryNV        shadingRate;
12261     deUint32                           sampleCount;
12262     deUint32                           sampleLocationCount;
12263     const VkCoarseSampleLocationNV*    pSampleLocations;
12264 } VkCoarseSampleOrderCustomNV;
12265
12266 typedef struct VkPipelineViewportCoarseSampleOrderStateCreateInfoNV {
12267     VkStructureType                       sType;
12268     const void*                           pNext;
12269     VkCoarseSampleOrderTypeNV             sampleOrderType;
12270     deUint32                              customSampleOrderCount;
12271     const VkCoarseSampleOrderCustomNV*    pCustomSampleOrders;
12272 } VkPipelineViewportCoarseSampleOrderStateCreateInfoNV;
12273
12274 typedef void (VKAPI_PTR *PFN_vkCmdBindShadingRateImageNV)(VkCommandBuffer commandBuffer, VkImageView imageView, VkImageLayout imageLayout);
12275 typedef void (VKAPI_PTR *PFN_vkCmdSetViewportShadingRatePaletteNV)(VkCommandBuffer commandBuffer, deUint32 firstViewport, deUint32 viewportCount, const VkShadingRatePaletteNV* pShadingRatePalettes);
12276 typedef void (VKAPI_PTR *PFN_vkCmdSetCoarseSampleOrderNV)(VkCommandBuffer commandBuffer, VkCoarseSampleOrderTypeNV sampleOrderType, deUint32 customSampleOrderCount, const VkCoarseSampleOrderCustomNV* pCustomSampleOrders);
12277
12278 #ifndef VK_NO_PROTOTYPES
12279 VKAPI_ATTR void VKAPI_CALL vkCmdBindShadingRateImageNV(
12280     VkCommandBuffer                             commandBuffer,
12281     VkImageView                                 imageView,
12282     VkImageLayout                               imageLayout);
12283
12284 VKAPI_ATTR void VKAPI_CALL vkCmdSetViewportShadingRatePaletteNV(
12285     VkCommandBuffer                             commandBuffer,
12286     deUint32                                    firstViewport,
12287     deUint32                                    viewportCount,
12288     const VkShadingRatePaletteNV*               pShadingRatePalettes);
12289
12290 VKAPI_ATTR void VKAPI_CALL vkCmdSetCoarseSampleOrderNV(
12291     VkCommandBuffer                             commandBuffer,
12292     VkCoarseSampleOrderTypeNV                   sampleOrderType,
12293     deUint32                                    customSampleOrderCount,
12294     const VkCoarseSampleOrderCustomNV*          pCustomSampleOrders);
12295 #endif
12296
12297
12298 #define VK_NV_ray_tracing 1
12299 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkAccelerationStructureNV)
12300 #define VK_NV_RAY_TRACING_SPEC_VERSION    3
12301 #define VK_NV_RAY_TRACING_EXTENSION_NAME  "VK_NV_ray_tracing"
12302 #define VK_SHADER_UNUSED_KHR              (~0U)
12303 #define VK_SHADER_UNUSED_NV               VK_SHADER_UNUSED_KHR
12304
12305 typedef enum VkRayTracingShaderGroupTypeKHR {
12306     VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR = 0,
12307     VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR = 1,
12308     VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR = 2,
12309     VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_NV = VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR,
12310     VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_NV = VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR,
12311     VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_NV = VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR,
12312     VK_RAY_TRACING_SHADER_GROUP_TYPE_MAX_ENUM_KHR = 0x7FFFFFFF
12313 } VkRayTracingShaderGroupTypeKHR;
12314 typedef VkRayTracingShaderGroupTypeKHR VkRayTracingShaderGroupTypeNV;
12315
12316
12317 typedef enum VkGeometryTypeKHR {
12318     VK_GEOMETRY_TYPE_TRIANGLES_KHR = 0,
12319     VK_GEOMETRY_TYPE_AABBS_KHR = 1,
12320     VK_GEOMETRY_TYPE_INSTANCES_KHR = 2,
12321     VK_GEOMETRY_TYPE_TRIANGLES_NV = VK_GEOMETRY_TYPE_TRIANGLES_KHR,
12322     VK_GEOMETRY_TYPE_AABBS_NV = VK_GEOMETRY_TYPE_AABBS_KHR,
12323     VK_GEOMETRY_TYPE_MAX_ENUM_KHR = 0x7FFFFFFF
12324 } VkGeometryTypeKHR;
12325 typedef VkGeometryTypeKHR VkGeometryTypeNV;
12326
12327
12328 typedef enum VkAccelerationStructureTypeKHR {
12329     VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR = 0,
12330     VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR = 1,
12331     VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR = 2,
12332     VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_NV = VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR,
12333     VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NV = VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR,
12334     VK_ACCELERATION_STRUCTURE_TYPE_MAX_ENUM_KHR = 0x7FFFFFFF
12335 } VkAccelerationStructureTypeKHR;
12336 typedef VkAccelerationStructureTypeKHR VkAccelerationStructureTypeNV;
12337
12338
12339 typedef enum VkCopyAccelerationStructureModeKHR {
12340     VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR = 0,
12341     VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR = 1,
12342     VK_COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR = 2,
12343     VK_COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR = 3,
12344     VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_NV = VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR,
12345     VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_NV = VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR,
12346     VK_COPY_ACCELERATION_STRUCTURE_MODE_MAX_ENUM_KHR = 0x7FFFFFFF
12347 } VkCopyAccelerationStructureModeKHR;
12348 typedef VkCopyAccelerationStructureModeKHR VkCopyAccelerationStructureModeNV;
12349
12350
12351 typedef enum VkAccelerationStructureMemoryRequirementsTypeNV {
12352     VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV = 0,
12353     VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_NV = 1,
12354     VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV = 2,
12355     VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
12356 } VkAccelerationStructureMemoryRequirementsTypeNV;
12357
12358 typedef enum VkGeometryFlagBitsKHR {
12359     VK_GEOMETRY_OPAQUE_BIT_KHR = 0x00000001,
12360     VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR = 0x00000002,
12361     VK_GEOMETRY_OPAQUE_BIT_NV = VK_GEOMETRY_OPAQUE_BIT_KHR,
12362     VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_NV = VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR,
12363     VK_GEOMETRY_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
12364 } VkGeometryFlagBitsKHR;
12365 typedef VkFlags VkGeometryFlagsKHR;
12366 typedef VkGeometryFlagsKHR VkGeometryFlagsNV;
12367
12368 typedef VkGeometryFlagBitsKHR VkGeometryFlagBitsNV;
12369
12370
12371 typedef enum VkGeometryInstanceFlagBitsKHR {
12372     VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR = 0x00000001,
12373     VK_GEOMETRY_INSTANCE_TRIANGLE_FLIP_FACING_BIT_KHR = 0x00000002,
12374     VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR = 0x00000004,
12375     VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR = 0x00000008,
12376     VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR = VK_GEOMETRY_INSTANCE_TRIANGLE_FLIP_FACING_BIT_KHR,
12377     VK_GEOMETRY_INSTANCE_TRIANGLE_CULL_DISABLE_BIT_NV = VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR,
12378     VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_NV = VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR,
12379     VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_NV = VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR,
12380     VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_NV = VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR,
12381     VK_GEOMETRY_INSTANCE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
12382 } VkGeometryInstanceFlagBitsKHR;
12383 typedef VkFlags VkGeometryInstanceFlagsKHR;
12384 typedef VkGeometryInstanceFlagsKHR VkGeometryInstanceFlagsNV;
12385
12386 typedef VkGeometryInstanceFlagBitsKHR VkGeometryInstanceFlagBitsNV;
12387
12388
12389 typedef enum VkBuildAccelerationStructureFlagBitsKHR {
12390     VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR = 0x00000001,
12391     VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR = 0x00000002,
12392     VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR = 0x00000004,
12393     VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR = 0x00000008,
12394     VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR = 0x00000010,
12395     VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV = 0x00000020,
12396     VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_NV = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR,
12397     VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_NV = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR,
12398     VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_NV = VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR,
12399     VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_NV = VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR,
12400     VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_NV = VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR,
12401     VK_BUILD_ACCELERATION_STRUCTURE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
12402 } VkBuildAccelerationStructureFlagBitsKHR;
12403 typedef VkFlags VkBuildAccelerationStructureFlagsKHR;
12404 typedef VkBuildAccelerationStructureFlagsKHR VkBuildAccelerationStructureFlagsNV;
12405
12406 typedef VkBuildAccelerationStructureFlagBitsKHR VkBuildAccelerationStructureFlagBitsNV;
12407
12408 typedef struct VkRayTracingShaderGroupCreateInfoNV {
12409     VkStructureType                   sType;
12410     const void*                       pNext;
12411     VkRayTracingShaderGroupTypeKHR    type;
12412     deUint32                          generalShader;
12413     deUint32                          closestHitShader;
12414     deUint32                          anyHitShader;
12415     deUint32                          intersectionShader;
12416 } VkRayTracingShaderGroupCreateInfoNV;
12417
12418 typedef struct VkRayTracingPipelineCreateInfoNV {
12419     VkStructureType                               sType;
12420     const void*                                   pNext;
12421     VkPipelineCreateFlags                         flags;
12422     deUint32                                      stageCount;
12423     const VkPipelineShaderStageCreateInfo*        pStages;
12424     deUint32                                      groupCount;
12425     const VkRayTracingShaderGroupCreateInfoNV*    pGroups;
12426     deUint32                                      maxRecursionDepth;
12427     VkPipelineLayout                              layout;
12428     VkPipeline                                    basePipelineHandle;
12429     deInt32                                       basePipelineIndex;
12430 } VkRayTracingPipelineCreateInfoNV;
12431
12432 typedef struct VkGeometryTrianglesNV {
12433     VkStructureType    sType;
12434     const void*        pNext;
12435     VkBuffer           vertexData;
12436     VkDeviceSize       vertexOffset;
12437     deUint32           vertexCount;
12438     VkDeviceSize       vertexStride;
12439     VkFormat           vertexFormat;
12440     VkBuffer           indexData;
12441     VkDeviceSize       indexOffset;
12442     deUint32           indexCount;
12443     VkIndexType        indexType;
12444     VkBuffer           transformData;
12445     VkDeviceSize       transformOffset;
12446 } VkGeometryTrianglesNV;
12447
12448 typedef struct VkGeometryAABBNV {
12449     VkStructureType    sType;
12450     const void*        pNext;
12451     VkBuffer           aabbData;
12452     deUint32           numAABBs;
12453     deUint32           stride;
12454     VkDeviceSize       offset;
12455 } VkGeometryAABBNV;
12456
12457 typedef struct VkGeometryDataNV {
12458     VkGeometryTrianglesNV    triangles;
12459     VkGeometryAABBNV         aabbs;
12460 } VkGeometryDataNV;
12461
12462 typedef struct VkGeometryNV {
12463     VkStructureType       sType;
12464     const void*           pNext;
12465     VkGeometryTypeKHR     geometryType;
12466     VkGeometryDataNV      geometry;
12467     VkGeometryFlagsKHR    flags;
12468 } VkGeometryNV;
12469
12470 typedef struct VkAccelerationStructureInfoNV {
12471     VkStructureType                        sType;
12472     const void*                            pNext;
12473     VkAccelerationStructureTypeNV          type;
12474     VkBuildAccelerationStructureFlagsNV    flags;
12475     deUint32                               instanceCount;
12476     deUint32                               geometryCount;
12477     const VkGeometryNV*                    pGeometries;
12478 } VkAccelerationStructureInfoNV;
12479
12480 typedef struct VkAccelerationStructureCreateInfoNV {
12481     VkStructureType                  sType;
12482     const void*                      pNext;
12483     VkDeviceSize                     compactedSize;
12484     VkAccelerationStructureInfoNV    info;
12485 } VkAccelerationStructureCreateInfoNV;
12486
12487 typedef struct VkBindAccelerationStructureMemoryInfoNV {
12488     VkStructureType              sType;
12489     const void*                  pNext;
12490     VkAccelerationStructureNV    accelerationStructure;
12491     VkDeviceMemory               memory;
12492     VkDeviceSize                 memoryOffset;
12493     deUint32                     deviceIndexCount;
12494     const deUint32*              pDeviceIndices;
12495 } VkBindAccelerationStructureMemoryInfoNV;
12496
12497 typedef struct VkWriteDescriptorSetAccelerationStructureNV {
12498     VkStructureType                     sType;
12499     const void*                         pNext;
12500     deUint32                            accelerationStructureCount;
12501     const VkAccelerationStructureNV*    pAccelerationStructures;
12502 } VkWriteDescriptorSetAccelerationStructureNV;
12503
12504 typedef struct VkAccelerationStructureMemoryRequirementsInfoNV {
12505     VkStructureType                                    sType;
12506     const void*                                        pNext;
12507     VkAccelerationStructureMemoryRequirementsTypeNV    type;
12508     VkAccelerationStructureNV                          accelerationStructure;
12509 } VkAccelerationStructureMemoryRequirementsInfoNV;
12510
12511 typedef struct VkPhysicalDeviceRayTracingPropertiesNV {
12512     VkStructureType    sType;
12513     void*              pNext;
12514     deUint32           shaderGroupHandleSize;
12515     deUint32           maxRecursionDepth;
12516     deUint32           maxShaderGroupStride;
12517     deUint32           shaderGroupBaseAlignment;
12518     deUint64           maxGeometryCount;
12519     deUint64           maxInstanceCount;
12520     deUint64           maxTriangleCount;
12521     deUint32           maxDescriptorSetAccelerationStructures;
12522 } VkPhysicalDeviceRayTracingPropertiesNV;
12523
12524 typedef struct VkTransformMatrixKHR {
12525     float    matrix[3][4];
12526 } VkTransformMatrixKHR;
12527
12528 typedef VkTransformMatrixKHR VkTransformMatrixNV;
12529
12530 typedef struct VkAabbPositionsKHR {
12531     float    minX;
12532     float    minY;
12533     float    minZ;
12534     float    maxX;
12535     float    maxY;
12536     float    maxZ;
12537 } VkAabbPositionsKHR;
12538
12539 typedef VkAabbPositionsKHR VkAabbPositionsNV;
12540
12541 typedef struct VkAccelerationStructureInstanceKHR {
12542     VkTransformMatrixKHR          transform;
12543     deUint32                      instanceCustomIndex:24;
12544     deUint32                      mask:8;
12545     deUint32                      instanceShaderBindingTableRecordOffset:24;
12546     VkGeometryInstanceFlagsKHR    flags:8;
12547     deUint64                      accelerationStructureReference;
12548 } VkAccelerationStructureInstanceKHR;
12549
12550 typedef VkAccelerationStructureInstanceKHR VkAccelerationStructureInstanceNV;
12551
12552 typedef VkResult (VKAPI_PTR *PFN_vkCreateAccelerationStructureNV)(VkDevice device, const VkAccelerationStructureCreateInfoNV* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkAccelerationStructureNV* pAccelerationStructure);
12553 typedef void (VKAPI_PTR *PFN_vkDestroyAccelerationStructureNV)(VkDevice device, VkAccelerationStructureNV accelerationStructure, const VkAllocationCallbacks* pAllocator);
12554 typedef void (VKAPI_PTR *PFN_vkGetAccelerationStructureMemoryRequirementsNV)(VkDevice device, const VkAccelerationStructureMemoryRequirementsInfoNV* pInfo, VkMemoryRequirements2KHR* pMemoryRequirements);
12555 typedef VkResult (VKAPI_PTR *PFN_vkBindAccelerationStructureMemoryNV)(VkDevice device, deUint32 bindInfoCount, const VkBindAccelerationStructureMemoryInfoNV* pBindInfos);
12556 typedef void (VKAPI_PTR *PFN_vkCmdBuildAccelerationStructureNV)(VkCommandBuffer commandBuffer, const VkAccelerationStructureInfoNV* pInfo, VkBuffer instanceData, VkDeviceSize instanceOffset, VkBool32 update, VkAccelerationStructureNV dst, VkAccelerationStructureNV src, VkBuffer scratch, VkDeviceSize scratchOffset);
12557 typedef void (VKAPI_PTR *PFN_vkCmdCopyAccelerationStructureNV)(VkCommandBuffer commandBuffer, VkAccelerationStructureNV dst, VkAccelerationStructureNV src, VkCopyAccelerationStructureModeKHR mode);
12558 typedef void (VKAPI_PTR *PFN_vkCmdTraceRaysNV)(VkCommandBuffer commandBuffer, VkBuffer raygenShaderBindingTableBuffer, VkDeviceSize raygenShaderBindingOffset, VkBuffer missShaderBindingTableBuffer, VkDeviceSize missShaderBindingOffset, VkDeviceSize missShaderBindingStride, VkBuffer hitShaderBindingTableBuffer, VkDeviceSize hitShaderBindingOffset, VkDeviceSize hitShaderBindingStride, VkBuffer callableShaderBindingTableBuffer, VkDeviceSize callableShaderBindingOffset, VkDeviceSize callableShaderBindingStride, deUint32 width, deUint32 height, deUint32 depth);
12559 typedef VkResult (VKAPI_PTR *PFN_vkCreateRayTracingPipelinesNV)(VkDevice device, VkPipelineCache pipelineCache, deUint32 createInfoCount, const VkRayTracingPipelineCreateInfoNV* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines);
12560 typedef VkResult (VKAPI_PTR *PFN_vkGetRayTracingShaderGroupHandlesKHR)(VkDevice device, VkPipeline pipeline, deUint32 firstGroup, deUint32 groupCount, deUintptr dataSize, void* pData);
12561 typedef VkResult (VKAPI_PTR *PFN_vkGetRayTracingShaderGroupHandlesNV)(VkDevice device, VkPipeline pipeline, deUint32 firstGroup, deUint32 groupCount, deUintptr dataSize, void* pData);
12562 typedef VkResult (VKAPI_PTR *PFN_vkGetAccelerationStructureHandleNV)(VkDevice device, VkAccelerationStructureNV accelerationStructure, deUintptr dataSize, void* pData);
12563 typedef void (VKAPI_PTR *PFN_vkCmdWriteAccelerationStructuresPropertiesNV)(VkCommandBuffer commandBuffer, deUint32 accelerationStructureCount, const VkAccelerationStructureNV* pAccelerationStructures, VkQueryType queryType, VkQueryPool queryPool, deUint32 firstQuery);
12564 typedef VkResult (VKAPI_PTR *PFN_vkCompileDeferredNV)(VkDevice device, VkPipeline pipeline, deUint32 shader);
12565
12566 #ifndef VK_NO_PROTOTYPES
12567 VKAPI_ATTR VkResult VKAPI_CALL vkCreateAccelerationStructureNV(
12568     VkDevice                                    device,
12569     const VkAccelerationStructureCreateInfoNV*  pCreateInfo,
12570     const VkAllocationCallbacks*                pAllocator,
12571     VkAccelerationStructureNV*                  pAccelerationStructure);
12572
12573 VKAPI_ATTR void VKAPI_CALL vkDestroyAccelerationStructureNV(
12574     VkDevice                                    device,
12575     VkAccelerationStructureNV                   accelerationStructure,
12576     const VkAllocationCallbacks*                pAllocator);
12577
12578 VKAPI_ATTR void VKAPI_CALL vkGetAccelerationStructureMemoryRequirementsNV(
12579     VkDevice                                    device,
12580     const VkAccelerationStructureMemoryRequirementsInfoNV* pInfo,
12581     VkMemoryRequirements2KHR*                   pMemoryRequirements);
12582
12583 VKAPI_ATTR VkResult VKAPI_CALL vkBindAccelerationStructureMemoryNV(
12584     VkDevice                                    device,
12585     deUint32                                    bindInfoCount,
12586     const VkBindAccelerationStructureMemoryInfoNV* pBindInfos);
12587
12588 VKAPI_ATTR void VKAPI_CALL vkCmdBuildAccelerationStructureNV(
12589     VkCommandBuffer                             commandBuffer,
12590     const VkAccelerationStructureInfoNV*        pInfo,
12591     VkBuffer                                    instanceData,
12592     VkDeviceSize                                instanceOffset,
12593     VkBool32                                    update,
12594     VkAccelerationStructureNV                   dst,
12595     VkAccelerationStructureNV                   src,
12596     VkBuffer                                    scratch,
12597     VkDeviceSize                                scratchOffset);
12598
12599 VKAPI_ATTR void VKAPI_CALL vkCmdCopyAccelerationStructureNV(
12600     VkCommandBuffer                             commandBuffer,
12601     VkAccelerationStructureNV                   dst,
12602     VkAccelerationStructureNV                   src,
12603     VkCopyAccelerationStructureModeKHR          mode);
12604
12605 VKAPI_ATTR void VKAPI_CALL vkCmdTraceRaysNV(
12606     VkCommandBuffer                             commandBuffer,
12607     VkBuffer                                    raygenShaderBindingTableBuffer,
12608     VkDeviceSize                                raygenShaderBindingOffset,
12609     VkBuffer                                    missShaderBindingTableBuffer,
12610     VkDeviceSize                                missShaderBindingOffset,
12611     VkDeviceSize                                missShaderBindingStride,
12612     VkBuffer                                    hitShaderBindingTableBuffer,
12613     VkDeviceSize                                hitShaderBindingOffset,
12614     VkDeviceSize                                hitShaderBindingStride,
12615     VkBuffer                                    callableShaderBindingTableBuffer,
12616     VkDeviceSize                                callableShaderBindingOffset,
12617     VkDeviceSize                                callableShaderBindingStride,
12618     deUint32                                    width,
12619     deUint32                                    height,
12620     deUint32                                    depth);
12621
12622 VKAPI_ATTR VkResult VKAPI_CALL vkCreateRayTracingPipelinesNV(
12623     VkDevice                                    device,
12624     VkPipelineCache                             pipelineCache,
12625     deUint32                                    createInfoCount,
12626     const VkRayTracingPipelineCreateInfoNV*     pCreateInfos,
12627     const VkAllocationCallbacks*                pAllocator,
12628     VkPipeline*                                 pPipelines);
12629
12630 VKAPI_ATTR VkResult VKAPI_CALL vkGetRayTracingShaderGroupHandlesKHR(
12631     VkDevice                                    device,
12632     VkPipeline                                  pipeline,
12633     deUint32                                    firstGroup,
12634     deUint32                                    groupCount,
12635     deUintptr                                      dataSize,
12636     void*                                       pData);
12637
12638 VKAPI_ATTR VkResult VKAPI_CALL vkGetRayTracingShaderGroupHandlesNV(
12639     VkDevice                                    device,
12640     VkPipeline                                  pipeline,
12641     deUint32                                    firstGroup,
12642     deUint32                                    groupCount,
12643     deUintptr                                      dataSize,
12644     void*                                       pData);
12645
12646 VKAPI_ATTR VkResult VKAPI_CALL vkGetAccelerationStructureHandleNV(
12647     VkDevice                                    device,
12648     VkAccelerationStructureNV                   accelerationStructure,
12649     deUintptr                                      dataSize,
12650     void*                                       pData);
12651
12652 VKAPI_ATTR void VKAPI_CALL vkCmdWriteAccelerationStructuresPropertiesNV(
12653     VkCommandBuffer                             commandBuffer,
12654     deUint32                                    accelerationStructureCount,
12655     const VkAccelerationStructureNV*            pAccelerationStructures,
12656     VkQueryType                                 queryType,
12657     VkQueryPool                                 queryPool,
12658     deUint32                                    firstQuery);
12659
12660 VKAPI_ATTR VkResult VKAPI_CALL vkCompileDeferredNV(
12661     VkDevice                                    device,
12662     VkPipeline                                  pipeline,
12663     deUint32                                    shader);
12664 #endif
12665
12666
12667 #define VK_NV_representative_fragment_test 1
12668 #define VK_NV_REPRESENTATIVE_FRAGMENT_TEST_SPEC_VERSION 2
12669 #define VK_NV_REPRESENTATIVE_FRAGMENT_TEST_EXTENSION_NAME "VK_NV_representative_fragment_test"
12670 typedef struct VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV {
12671     VkStructureType    sType;
12672     void*              pNext;
12673     VkBool32           representativeFragmentTest;
12674 } VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV;
12675
12676 typedef struct VkPipelineRepresentativeFragmentTestStateCreateInfoNV {
12677     VkStructureType    sType;
12678     const void*        pNext;
12679     VkBool32           representativeFragmentTestEnable;
12680 } VkPipelineRepresentativeFragmentTestStateCreateInfoNV;
12681
12682
12683
12684 #define VK_EXT_filter_cubic 1
12685 #define VK_EXT_FILTER_CUBIC_SPEC_VERSION  3
12686 #define VK_EXT_FILTER_CUBIC_EXTENSION_NAME "VK_EXT_filter_cubic"
12687 typedef struct VkPhysicalDeviceImageViewImageFormatInfoEXT {
12688     VkStructureType    sType;
12689     void*              pNext;
12690     VkImageViewType    imageViewType;
12691 } VkPhysicalDeviceImageViewImageFormatInfoEXT;
12692
12693 typedef struct VkFilterCubicImageViewImageFormatPropertiesEXT {
12694     VkStructureType    sType;
12695     void*              pNext;
12696     VkBool32           filterCubic;
12697     VkBool32           filterCubicMinmax;
12698 } VkFilterCubicImageViewImageFormatPropertiesEXT;
12699
12700
12701
12702 #define VK_QCOM_render_pass_shader_resolve 1
12703 #define VK_QCOM_RENDER_PASS_SHADER_RESOLVE_SPEC_VERSION 4
12704 #define VK_QCOM_RENDER_PASS_SHADER_RESOLVE_EXTENSION_NAME "VK_QCOM_render_pass_shader_resolve"
12705
12706
12707 #define VK_EXT_global_priority 1
12708 #define VK_EXT_GLOBAL_PRIORITY_SPEC_VERSION 2
12709 #define VK_EXT_GLOBAL_PRIORITY_EXTENSION_NAME "VK_EXT_global_priority"
12710 typedef VkQueueGlobalPriorityKHR VkQueueGlobalPriorityEXT;
12711
12712 typedef VkDeviceQueueGlobalPriorityCreateInfoKHR VkDeviceQueueGlobalPriorityCreateInfoEXT;
12713
12714
12715
12716 #define VK_EXT_external_memory_host 1
12717 #define VK_EXT_EXTERNAL_MEMORY_HOST_SPEC_VERSION 1
12718 #define VK_EXT_EXTERNAL_MEMORY_HOST_EXTENSION_NAME "VK_EXT_external_memory_host"
12719 typedef struct VkImportMemoryHostPointerInfoEXT {
12720     VkStructureType                       sType;
12721     const void*                           pNext;
12722     VkExternalMemoryHandleTypeFlagBits    handleType;
12723     void*                                 pHostPointer;
12724 } VkImportMemoryHostPointerInfoEXT;
12725
12726 typedef struct VkMemoryHostPointerPropertiesEXT {
12727     VkStructureType    sType;
12728     void*              pNext;
12729     deUint32           memoryTypeBits;
12730 } VkMemoryHostPointerPropertiesEXT;
12731
12732 typedef struct VkPhysicalDeviceExternalMemoryHostPropertiesEXT {
12733     VkStructureType    sType;
12734     void*              pNext;
12735     VkDeviceSize       minImportedHostPointerAlignment;
12736 } VkPhysicalDeviceExternalMemoryHostPropertiesEXT;
12737
12738 typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryHostPointerPropertiesEXT)(VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, const void* pHostPointer, VkMemoryHostPointerPropertiesEXT* pMemoryHostPointerProperties);
12739
12740 #ifndef VK_NO_PROTOTYPES
12741 VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryHostPointerPropertiesEXT(
12742     VkDevice                                    device,
12743     VkExternalMemoryHandleTypeFlagBits          handleType,
12744     const void*                                 pHostPointer,
12745     VkMemoryHostPointerPropertiesEXT*           pMemoryHostPointerProperties);
12746 #endif
12747
12748
12749 #define VK_AMD_buffer_marker 1
12750 #define VK_AMD_BUFFER_MARKER_SPEC_VERSION 1
12751 #define VK_AMD_BUFFER_MARKER_EXTENSION_NAME "VK_AMD_buffer_marker"
12752 typedef void (VKAPI_PTR *PFN_vkCmdWriteBufferMarkerAMD)(VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkBuffer dstBuffer, VkDeviceSize dstOffset, deUint32 marker);
12753
12754 #ifndef VK_NO_PROTOTYPES
12755 VKAPI_ATTR void VKAPI_CALL vkCmdWriteBufferMarkerAMD(
12756     VkCommandBuffer                             commandBuffer,
12757     VkPipelineStageFlagBits                     pipelineStage,
12758     VkBuffer                                    dstBuffer,
12759     VkDeviceSize                                dstOffset,
12760     deUint32                                    marker);
12761 #endif
12762
12763
12764 #define VK_AMD_pipeline_compiler_control 1
12765 #define VK_AMD_PIPELINE_COMPILER_CONTROL_SPEC_VERSION 1
12766 #define VK_AMD_PIPELINE_COMPILER_CONTROL_EXTENSION_NAME "VK_AMD_pipeline_compiler_control"
12767
12768 typedef enum VkPipelineCompilerControlFlagBitsAMD {
12769     VK_PIPELINE_COMPILER_CONTROL_FLAG_BITS_MAX_ENUM_AMD = 0x7FFFFFFF
12770 } VkPipelineCompilerControlFlagBitsAMD;
12771 typedef VkFlags VkPipelineCompilerControlFlagsAMD;
12772 typedef struct VkPipelineCompilerControlCreateInfoAMD {
12773     VkStructureType                      sType;
12774     const void*                          pNext;
12775     VkPipelineCompilerControlFlagsAMD    compilerControlFlags;
12776 } VkPipelineCompilerControlCreateInfoAMD;
12777
12778
12779
12780 #define VK_EXT_calibrated_timestamps 1
12781 #define VK_EXT_CALIBRATED_TIMESTAMPS_SPEC_VERSION 2
12782 #define VK_EXT_CALIBRATED_TIMESTAMPS_EXTENSION_NAME "VK_EXT_calibrated_timestamps"
12783
12784 typedef enum VkTimeDomainEXT {
12785     VK_TIME_DOMAIN_DEVICE_EXT = 0,
12786     VK_TIME_DOMAIN_CLOCK_MONOTONIC_EXT = 1,
12787     VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT = 2,
12788     VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT = 3,
12789     VK_TIME_DOMAIN_MAX_ENUM_EXT = 0x7FFFFFFF
12790 } VkTimeDomainEXT;
12791 typedef struct VkCalibratedTimestampInfoEXT {
12792     VkStructureType    sType;
12793     const void*        pNext;
12794     VkTimeDomainEXT    timeDomain;
12795 } VkCalibratedTimestampInfoEXT;
12796
12797 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT)(VkPhysicalDevice physicalDevice, deUint32* pTimeDomainCount, VkTimeDomainEXT* pTimeDomains);
12798 typedef VkResult (VKAPI_PTR *PFN_vkGetCalibratedTimestampsEXT)(VkDevice device, deUint32 timestampCount, const VkCalibratedTimestampInfoEXT* pTimestampInfos, deUint64* pTimestamps, deUint64* pMaxDeviation);
12799
12800 #ifndef VK_NO_PROTOTYPES
12801 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceCalibrateableTimeDomainsEXT(
12802     VkPhysicalDevice                            physicalDevice,
12803     deUint32*                                   pTimeDomainCount,
12804     VkTimeDomainEXT*                            pTimeDomains);
12805
12806 VKAPI_ATTR VkResult VKAPI_CALL vkGetCalibratedTimestampsEXT(
12807     VkDevice                                    device,
12808     deUint32                                    timestampCount,
12809     const VkCalibratedTimestampInfoEXT*         pTimestampInfos,
12810     deUint64*                                   pTimestamps,
12811     deUint64*                                   pMaxDeviation);
12812 #endif
12813
12814
12815 #define VK_AMD_shader_core_properties 1
12816 #define VK_AMD_SHADER_CORE_PROPERTIES_SPEC_VERSION 2
12817 #define VK_AMD_SHADER_CORE_PROPERTIES_EXTENSION_NAME "VK_AMD_shader_core_properties"
12818 typedef struct VkPhysicalDeviceShaderCorePropertiesAMD {
12819     VkStructureType    sType;
12820     void*              pNext;
12821     deUint32           shaderEngineCount;
12822     deUint32           shaderArraysPerEngineCount;
12823     deUint32           computeUnitsPerShaderArray;
12824     deUint32           simdPerComputeUnit;
12825     deUint32           wavefrontsPerSimd;
12826     deUint32           wavefrontSize;
12827     deUint32           sgprsPerSimd;
12828     deUint32           minSgprAllocation;
12829     deUint32           maxSgprAllocation;
12830     deUint32           sgprAllocationGranularity;
12831     deUint32           vgprsPerSimd;
12832     deUint32           minVgprAllocation;
12833     deUint32           maxVgprAllocation;
12834     deUint32           vgprAllocationGranularity;
12835 } VkPhysicalDeviceShaderCorePropertiesAMD;
12836
12837
12838
12839 #define VK_AMD_memory_overallocation_behavior 1
12840 #define VK_AMD_MEMORY_OVERALLOCATION_BEHAVIOR_SPEC_VERSION 1
12841 #define VK_AMD_MEMORY_OVERALLOCATION_BEHAVIOR_EXTENSION_NAME "VK_AMD_memory_overallocation_behavior"
12842
12843 typedef enum VkMemoryOverallocationBehaviorAMD {
12844     VK_MEMORY_OVERALLOCATION_BEHAVIOR_DEFAULT_AMD = 0,
12845     VK_MEMORY_OVERALLOCATION_BEHAVIOR_ALLOWED_AMD = 1,
12846     VK_MEMORY_OVERALLOCATION_BEHAVIOR_DISALLOWED_AMD = 2,
12847     VK_MEMORY_OVERALLOCATION_BEHAVIOR_MAX_ENUM_AMD = 0x7FFFFFFF
12848 } VkMemoryOverallocationBehaviorAMD;
12849 typedef struct VkDeviceMemoryOverallocationCreateInfoAMD {
12850     VkStructureType                      sType;
12851     const void*                          pNext;
12852     VkMemoryOverallocationBehaviorAMD    overallocationBehavior;
12853 } VkDeviceMemoryOverallocationCreateInfoAMD;
12854
12855
12856
12857 #define VK_EXT_vertex_attribute_divisor 1
12858 #define VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_SPEC_VERSION 3
12859 #define VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_EXTENSION_NAME "VK_EXT_vertex_attribute_divisor"
12860 typedef struct VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT {
12861     VkStructureType    sType;
12862     void*              pNext;
12863     deUint32           maxVertexAttribDivisor;
12864 } VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT;
12865
12866 typedef struct VkVertexInputBindingDivisorDescriptionEXT {
12867     deUint32    binding;
12868     deUint32    divisor;
12869 } VkVertexInputBindingDivisorDescriptionEXT;
12870
12871 typedef struct VkPipelineVertexInputDivisorStateCreateInfoEXT {
12872     VkStructureType                                     sType;
12873     const void*                                         pNext;
12874     deUint32                                            vertexBindingDivisorCount;
12875     const VkVertexInputBindingDivisorDescriptionEXT*    pVertexBindingDivisors;
12876 } VkPipelineVertexInputDivisorStateCreateInfoEXT;
12877
12878 typedef struct VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT {
12879     VkStructureType    sType;
12880     void*              pNext;
12881     VkBool32           vertexAttributeInstanceRateDivisor;
12882     VkBool32           vertexAttributeInstanceRateZeroDivisor;
12883 } VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT;
12884
12885
12886
12887 #define VK_EXT_pipeline_creation_feedback 1
12888 #define VK_EXT_PIPELINE_CREATION_FEEDBACK_SPEC_VERSION 1
12889 #define VK_EXT_PIPELINE_CREATION_FEEDBACK_EXTENSION_NAME "VK_EXT_pipeline_creation_feedback"
12890 typedef VkPipelineCreationFeedbackFlagBits VkPipelineCreationFeedbackFlagBitsEXT;
12891
12892 typedef VkPipelineCreationFeedbackFlags VkPipelineCreationFeedbackFlagsEXT;
12893
12894 typedef VkPipelineCreationFeedbackCreateInfo VkPipelineCreationFeedbackCreateInfoEXT;
12895
12896 typedef VkPipelineCreationFeedback VkPipelineCreationFeedbackEXT;
12897
12898
12899
12900 #define VK_NV_shader_subgroup_partitioned 1
12901 #define VK_NV_SHADER_SUBGROUP_PARTITIONED_SPEC_VERSION 1
12902 #define VK_NV_SHADER_SUBGROUP_PARTITIONED_EXTENSION_NAME "VK_NV_shader_subgroup_partitioned"
12903
12904
12905 #define VK_NV_compute_shader_derivatives 1
12906 #define VK_NV_COMPUTE_SHADER_DERIVATIVES_SPEC_VERSION 1
12907 #define VK_NV_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME "VK_NV_compute_shader_derivatives"
12908 typedef struct VkPhysicalDeviceComputeShaderDerivativesFeaturesNV {
12909     VkStructureType    sType;
12910     void*              pNext;
12911     VkBool32           computeDerivativeGroupQuads;
12912     VkBool32           computeDerivativeGroupLinear;
12913 } VkPhysicalDeviceComputeShaderDerivativesFeaturesNV;
12914
12915
12916
12917 #define VK_NV_mesh_shader 1
12918 #define VK_NV_MESH_SHADER_SPEC_VERSION    1
12919 #define VK_NV_MESH_SHADER_EXTENSION_NAME  "VK_NV_mesh_shader"
12920 typedef struct VkPhysicalDeviceMeshShaderFeaturesNV {
12921     VkStructureType    sType;
12922     void*              pNext;
12923     VkBool32           taskShader;
12924     VkBool32           meshShader;
12925 } VkPhysicalDeviceMeshShaderFeaturesNV;
12926
12927 typedef struct VkPhysicalDeviceMeshShaderPropertiesNV {
12928     VkStructureType    sType;
12929     void*              pNext;
12930     deUint32           maxDrawMeshTasksCount;
12931     deUint32           maxTaskWorkGroupInvocations;
12932     deUint32           maxTaskWorkGroupSize[3];
12933     deUint32           maxTaskTotalMemorySize;
12934     deUint32           maxTaskOutputCount;
12935     deUint32           maxMeshWorkGroupInvocations;
12936     deUint32           maxMeshWorkGroupSize[3];
12937     deUint32           maxMeshTotalMemorySize;
12938     deUint32           maxMeshOutputVertices;
12939     deUint32           maxMeshOutputPrimitives;
12940     deUint32           maxMeshMultiviewViewCount;
12941     deUint32           meshOutputPerVertexGranularity;
12942     deUint32           meshOutputPerPrimitiveGranularity;
12943 } VkPhysicalDeviceMeshShaderPropertiesNV;
12944
12945 typedef struct VkDrawMeshTasksIndirectCommandNV {
12946     deUint32    taskCount;
12947     deUint32    firstTask;
12948 } VkDrawMeshTasksIndirectCommandNV;
12949
12950 typedef void (VKAPI_PTR *PFN_vkCmdDrawMeshTasksNV)(VkCommandBuffer commandBuffer, deUint32 taskCount, deUint32 firstTask);
12951 typedef void (VKAPI_PTR *PFN_vkCmdDrawMeshTasksIndirectNV)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, deUint32 drawCount, deUint32 stride);
12952 typedef void (VKAPI_PTR *PFN_vkCmdDrawMeshTasksIndirectCountNV)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, deUint32 maxDrawCount, deUint32 stride);
12953
12954 #ifndef VK_NO_PROTOTYPES
12955 VKAPI_ATTR void VKAPI_CALL vkCmdDrawMeshTasksNV(
12956     VkCommandBuffer                             commandBuffer,
12957     deUint32                                    taskCount,
12958     deUint32                                    firstTask);
12959
12960 VKAPI_ATTR void VKAPI_CALL vkCmdDrawMeshTasksIndirectNV(
12961     VkCommandBuffer                             commandBuffer,
12962     VkBuffer                                    buffer,
12963     VkDeviceSize                                offset,
12964     deUint32                                    drawCount,
12965     deUint32                                    stride);
12966
12967 VKAPI_ATTR void VKAPI_CALL vkCmdDrawMeshTasksIndirectCountNV(
12968     VkCommandBuffer                             commandBuffer,
12969     VkBuffer                                    buffer,
12970     VkDeviceSize                                offset,
12971     VkBuffer                                    countBuffer,
12972     VkDeviceSize                                countBufferOffset,
12973     deUint32                                    maxDrawCount,
12974     deUint32                                    stride);
12975 #endif
12976
12977
12978 #define VK_NV_fragment_shader_barycentric 1
12979 #define VK_NV_FRAGMENT_SHADER_BARYCENTRIC_SPEC_VERSION 1
12980 #define VK_NV_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME "VK_NV_fragment_shader_barycentric"
12981 typedef VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV;
12982
12983
12984
12985 #define VK_NV_shader_image_footprint 1
12986 #define VK_NV_SHADER_IMAGE_FOOTPRINT_SPEC_VERSION 2
12987 #define VK_NV_SHADER_IMAGE_FOOTPRINT_EXTENSION_NAME "VK_NV_shader_image_footprint"
12988 typedef struct VkPhysicalDeviceShaderImageFootprintFeaturesNV {
12989     VkStructureType    sType;
12990     void*              pNext;
12991     VkBool32           imageFootprint;
12992 } VkPhysicalDeviceShaderImageFootprintFeaturesNV;
12993
12994
12995
12996 #define VK_NV_scissor_exclusive 1
12997 #define VK_NV_SCISSOR_EXCLUSIVE_SPEC_VERSION 1
12998 #define VK_NV_SCISSOR_EXCLUSIVE_EXTENSION_NAME "VK_NV_scissor_exclusive"
12999 typedef struct VkPipelineViewportExclusiveScissorStateCreateInfoNV {
13000     VkStructureType    sType;
13001     const void*        pNext;
13002     deUint32           exclusiveScissorCount;
13003     const VkRect2D*    pExclusiveScissors;
13004 } VkPipelineViewportExclusiveScissorStateCreateInfoNV;
13005
13006 typedef struct VkPhysicalDeviceExclusiveScissorFeaturesNV {
13007     VkStructureType    sType;
13008     void*              pNext;
13009     VkBool32           exclusiveScissor;
13010 } VkPhysicalDeviceExclusiveScissorFeaturesNV;
13011
13012 typedef void (VKAPI_PTR *PFN_vkCmdSetExclusiveScissorNV)(VkCommandBuffer commandBuffer, deUint32 firstExclusiveScissor, deUint32 exclusiveScissorCount, const VkRect2D* pExclusiveScissors);
13013
13014 #ifndef VK_NO_PROTOTYPES
13015 VKAPI_ATTR void VKAPI_CALL vkCmdSetExclusiveScissorNV(
13016     VkCommandBuffer                             commandBuffer,
13017     deUint32                                    firstExclusiveScissor,
13018     deUint32                                    exclusiveScissorCount,
13019     const VkRect2D*                             pExclusiveScissors);
13020 #endif
13021
13022
13023 #define VK_NV_device_diagnostic_checkpoints 1
13024 #define VK_NV_DEVICE_DIAGNOSTIC_CHECKPOINTS_SPEC_VERSION 2
13025 #define VK_NV_DEVICE_DIAGNOSTIC_CHECKPOINTS_EXTENSION_NAME "VK_NV_device_diagnostic_checkpoints"
13026 typedef struct VkQueueFamilyCheckpointPropertiesNV {
13027     VkStructureType         sType;
13028     void*                   pNext;
13029     VkPipelineStageFlags    checkpointExecutionStageMask;
13030 } VkQueueFamilyCheckpointPropertiesNV;
13031
13032 typedef struct VkCheckpointDataNV {
13033     VkStructureType            sType;
13034     void*                      pNext;
13035     VkPipelineStageFlagBits    stage;
13036     void*                      pCheckpointMarker;
13037 } VkCheckpointDataNV;
13038
13039 typedef void (VKAPI_PTR *PFN_vkCmdSetCheckpointNV)(VkCommandBuffer commandBuffer, const void* pCheckpointMarker);
13040 typedef void (VKAPI_PTR *PFN_vkGetQueueCheckpointDataNV)(VkQueue queue, deUint32* pCheckpointDataCount, VkCheckpointDataNV* pCheckpointData);
13041
13042 #ifndef VK_NO_PROTOTYPES
13043 VKAPI_ATTR void VKAPI_CALL vkCmdSetCheckpointNV(
13044     VkCommandBuffer                             commandBuffer,
13045     const void*                                 pCheckpointMarker);
13046
13047 VKAPI_ATTR void VKAPI_CALL vkGetQueueCheckpointDataNV(
13048     VkQueue                                     queue,
13049     deUint32*                                   pCheckpointDataCount,
13050     VkCheckpointDataNV*                         pCheckpointData);
13051 #endif
13052
13053
13054 #define VK_INTEL_shader_integer_functions2 1
13055 #define VK_INTEL_SHADER_INTEGER_FUNCTIONS_2_SPEC_VERSION 1
13056 #define VK_INTEL_SHADER_INTEGER_FUNCTIONS_2_EXTENSION_NAME "VK_INTEL_shader_integer_functions2"
13057 typedef struct VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL {
13058     VkStructureType    sType;
13059     void*              pNext;
13060     VkBool32           shaderIntegerFunctions2;
13061 } VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL;
13062
13063
13064
13065 #define VK_INTEL_performance_query 1
13066 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPerformanceConfigurationINTEL)
13067 #define VK_INTEL_PERFORMANCE_QUERY_SPEC_VERSION 2
13068 #define VK_INTEL_PERFORMANCE_QUERY_EXTENSION_NAME "VK_INTEL_performance_query"
13069
13070 typedef enum VkPerformanceConfigurationTypeINTEL {
13071     VK_PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL = 0,
13072     VK_PERFORMANCE_CONFIGURATION_TYPE_MAX_ENUM_INTEL = 0x7FFFFFFF
13073 } VkPerformanceConfigurationTypeINTEL;
13074
13075 typedef enum VkQueryPoolSamplingModeINTEL {
13076     VK_QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL = 0,
13077     VK_QUERY_POOL_SAMPLING_MODE_MAX_ENUM_INTEL = 0x7FFFFFFF
13078 } VkQueryPoolSamplingModeINTEL;
13079
13080 typedef enum VkPerformanceOverrideTypeINTEL {
13081     VK_PERFORMANCE_OVERRIDE_TYPE_NULL_HARDWARE_INTEL = 0,
13082     VK_PERFORMANCE_OVERRIDE_TYPE_FLUSH_GPU_CACHES_INTEL = 1,
13083     VK_PERFORMANCE_OVERRIDE_TYPE_MAX_ENUM_INTEL = 0x7FFFFFFF
13084 } VkPerformanceOverrideTypeINTEL;
13085
13086 typedef enum VkPerformanceParameterTypeINTEL {
13087     VK_PERFORMANCE_PARAMETER_TYPE_HW_COUNTERS_SUPPORTED_INTEL = 0,
13088     VK_PERFORMANCE_PARAMETER_TYPE_STREAM_MARKER_VALID_BITS_INTEL = 1,
13089     VK_PERFORMANCE_PARAMETER_TYPE_MAX_ENUM_INTEL = 0x7FFFFFFF
13090 } VkPerformanceParameterTypeINTEL;
13091
13092 typedef enum VkPerformanceValueTypeINTEL {
13093     VK_PERFORMANCE_VALUE_TYPE_UINT32_INTEL = 0,
13094     VK_PERFORMANCE_VALUE_TYPE_UINT64_INTEL = 1,
13095     VK_PERFORMANCE_VALUE_TYPE_FLOAT_INTEL = 2,
13096     VK_PERFORMANCE_VALUE_TYPE_BOOL_INTEL = 3,
13097     VK_PERFORMANCE_VALUE_TYPE_STRING_INTEL = 4,
13098     VK_PERFORMANCE_VALUE_TYPE_MAX_ENUM_INTEL = 0x7FFFFFFF
13099 } VkPerformanceValueTypeINTEL;
13100 typedef union VkPerformanceValueDataINTEL {
13101     deUint32       value32;
13102     deUint64       value64;
13103     float          valueFloat;
13104     VkBool32       valueBool;
13105     const char*    valueString;
13106 } VkPerformanceValueDataINTEL;
13107
13108 typedef struct VkPerformanceValueINTEL {
13109     VkPerformanceValueTypeINTEL    type;
13110     VkPerformanceValueDataINTEL    data;
13111 } VkPerformanceValueINTEL;
13112
13113 typedef struct VkInitializePerformanceApiInfoINTEL {
13114     VkStructureType    sType;
13115     const void*        pNext;
13116     void*              pUserData;
13117 } VkInitializePerformanceApiInfoINTEL;
13118
13119 typedef struct VkQueryPoolPerformanceQueryCreateInfoINTEL {
13120     VkStructureType                 sType;
13121     const void*                     pNext;
13122     VkQueryPoolSamplingModeINTEL    performanceCountersSampling;
13123 } VkQueryPoolPerformanceQueryCreateInfoINTEL;
13124
13125 typedef VkQueryPoolPerformanceQueryCreateInfoINTEL VkQueryPoolCreateInfoINTEL;
13126
13127 typedef struct VkPerformanceMarkerInfoINTEL {
13128     VkStructureType    sType;
13129     const void*        pNext;
13130     deUint64           marker;
13131 } VkPerformanceMarkerInfoINTEL;
13132
13133 typedef struct VkPerformanceStreamMarkerInfoINTEL {
13134     VkStructureType    sType;
13135     const void*        pNext;
13136     deUint32           marker;
13137 } VkPerformanceStreamMarkerInfoINTEL;
13138
13139 typedef struct VkPerformanceOverrideInfoINTEL {
13140     VkStructureType                   sType;
13141     const void*                       pNext;
13142     VkPerformanceOverrideTypeINTEL    type;
13143     VkBool32                          enable;
13144     deUint64                          parameter;
13145 } VkPerformanceOverrideInfoINTEL;
13146
13147 typedef struct VkPerformanceConfigurationAcquireInfoINTEL {
13148     VkStructureType                        sType;
13149     const void*                            pNext;
13150     VkPerformanceConfigurationTypeINTEL    type;
13151 } VkPerformanceConfigurationAcquireInfoINTEL;
13152
13153 typedef VkResult (VKAPI_PTR *PFN_vkInitializePerformanceApiINTEL)(VkDevice device, const VkInitializePerformanceApiInfoINTEL* pInitializeInfo);
13154 typedef void (VKAPI_PTR *PFN_vkUninitializePerformanceApiINTEL)(VkDevice device);
13155 typedef VkResult (VKAPI_PTR *PFN_vkCmdSetPerformanceMarkerINTEL)(VkCommandBuffer commandBuffer, const VkPerformanceMarkerInfoINTEL* pMarkerInfo);
13156 typedef VkResult (VKAPI_PTR *PFN_vkCmdSetPerformanceStreamMarkerINTEL)(VkCommandBuffer commandBuffer, const VkPerformanceStreamMarkerInfoINTEL* pMarkerInfo);
13157 typedef VkResult (VKAPI_PTR *PFN_vkCmdSetPerformanceOverrideINTEL)(VkCommandBuffer commandBuffer, const VkPerformanceOverrideInfoINTEL* pOverrideInfo);
13158 typedef VkResult (VKAPI_PTR *PFN_vkAcquirePerformanceConfigurationINTEL)(VkDevice device, const VkPerformanceConfigurationAcquireInfoINTEL* pAcquireInfo, VkPerformanceConfigurationINTEL* pConfiguration);
13159 typedef VkResult (VKAPI_PTR *PFN_vkReleasePerformanceConfigurationINTEL)(VkDevice device, VkPerformanceConfigurationINTEL configuration);
13160 typedef VkResult (VKAPI_PTR *PFN_vkQueueSetPerformanceConfigurationINTEL)(VkQueue queue, VkPerformanceConfigurationINTEL configuration);
13161 typedef VkResult (VKAPI_PTR *PFN_vkGetPerformanceParameterINTEL)(VkDevice device, VkPerformanceParameterTypeINTEL parameter, VkPerformanceValueINTEL* pValue);
13162
13163 #ifndef VK_NO_PROTOTYPES
13164 VKAPI_ATTR VkResult VKAPI_CALL vkInitializePerformanceApiINTEL(
13165     VkDevice                                    device,
13166     const VkInitializePerformanceApiInfoINTEL*  pInitializeInfo);
13167
13168 VKAPI_ATTR void VKAPI_CALL vkUninitializePerformanceApiINTEL(
13169     VkDevice                                    device);
13170
13171 VKAPI_ATTR VkResult VKAPI_CALL vkCmdSetPerformanceMarkerINTEL(
13172     VkCommandBuffer                             commandBuffer,
13173     const VkPerformanceMarkerInfoINTEL*         pMarkerInfo);
13174
13175 VKAPI_ATTR VkResult VKAPI_CALL vkCmdSetPerformanceStreamMarkerINTEL(
13176     VkCommandBuffer                             commandBuffer,
13177     const VkPerformanceStreamMarkerInfoINTEL*   pMarkerInfo);
13178
13179 VKAPI_ATTR VkResult VKAPI_CALL vkCmdSetPerformanceOverrideINTEL(
13180     VkCommandBuffer                             commandBuffer,
13181     const VkPerformanceOverrideInfoINTEL*       pOverrideInfo);
13182
13183 VKAPI_ATTR VkResult VKAPI_CALL vkAcquirePerformanceConfigurationINTEL(
13184     VkDevice                                    device,
13185     const VkPerformanceConfigurationAcquireInfoINTEL* pAcquireInfo,
13186     VkPerformanceConfigurationINTEL*            pConfiguration);
13187
13188 VKAPI_ATTR VkResult VKAPI_CALL vkReleasePerformanceConfigurationINTEL(
13189     VkDevice                                    device,
13190     VkPerformanceConfigurationINTEL             configuration);
13191
13192 VKAPI_ATTR VkResult VKAPI_CALL vkQueueSetPerformanceConfigurationINTEL(
13193     VkQueue                                     queue,
13194     VkPerformanceConfigurationINTEL             configuration);
13195
13196 VKAPI_ATTR VkResult VKAPI_CALL vkGetPerformanceParameterINTEL(
13197     VkDevice                                    device,
13198     VkPerformanceParameterTypeINTEL             parameter,
13199     VkPerformanceValueINTEL*                    pValue);
13200 #endif
13201
13202
13203 #define VK_EXT_pci_bus_info 1
13204 #define VK_EXT_PCI_BUS_INFO_SPEC_VERSION  2
13205 #define VK_EXT_PCI_BUS_INFO_EXTENSION_NAME "VK_EXT_pci_bus_info"
13206 typedef struct VkPhysicalDevicePCIBusInfoPropertiesEXT {
13207     VkStructureType    sType;
13208     void*              pNext;
13209     deUint32           pciDomain;
13210     deUint32           pciBus;
13211     deUint32           pciDevice;
13212     deUint32           pciFunction;
13213 } VkPhysicalDevicePCIBusInfoPropertiesEXT;
13214
13215
13216
13217 #define VK_AMD_display_native_hdr 1
13218 #define VK_AMD_DISPLAY_NATIVE_HDR_SPEC_VERSION 1
13219 #define VK_AMD_DISPLAY_NATIVE_HDR_EXTENSION_NAME "VK_AMD_display_native_hdr"
13220 typedef struct VkDisplayNativeHdrSurfaceCapabilitiesAMD {
13221     VkStructureType    sType;
13222     void*              pNext;
13223     VkBool32           localDimmingSupport;
13224 } VkDisplayNativeHdrSurfaceCapabilitiesAMD;
13225
13226 typedef struct VkSwapchainDisplayNativeHdrCreateInfoAMD {
13227     VkStructureType    sType;
13228     const void*        pNext;
13229     VkBool32           localDimmingEnable;
13230 } VkSwapchainDisplayNativeHdrCreateInfoAMD;
13231
13232 typedef void (VKAPI_PTR *PFN_vkSetLocalDimmingAMD)(VkDevice device, VkSwapchainKHR swapChain, VkBool32 localDimmingEnable);
13233
13234 #ifndef VK_NO_PROTOTYPES
13235 VKAPI_ATTR void VKAPI_CALL vkSetLocalDimmingAMD(
13236     VkDevice                                    device,
13237     VkSwapchainKHR                              swapChain,
13238     VkBool32                                    localDimmingEnable);
13239 #endif
13240
13241
13242 #define VK_EXT_fragment_density_map 1
13243 #define VK_EXT_FRAGMENT_DENSITY_MAP_SPEC_VERSION 2
13244 #define VK_EXT_FRAGMENT_DENSITY_MAP_EXTENSION_NAME "VK_EXT_fragment_density_map"
13245 typedef struct VkPhysicalDeviceFragmentDensityMapFeaturesEXT {
13246     VkStructureType    sType;
13247     void*              pNext;
13248     VkBool32           fragmentDensityMap;
13249     VkBool32           fragmentDensityMapDynamic;
13250     VkBool32           fragmentDensityMapNonSubsampledImages;
13251 } VkPhysicalDeviceFragmentDensityMapFeaturesEXT;
13252
13253 typedef struct VkPhysicalDeviceFragmentDensityMapPropertiesEXT {
13254     VkStructureType    sType;
13255     void*              pNext;
13256     VkExtent2D         minFragmentDensityTexelSize;
13257     VkExtent2D         maxFragmentDensityTexelSize;
13258     VkBool32           fragmentDensityInvocations;
13259 } VkPhysicalDeviceFragmentDensityMapPropertiesEXT;
13260
13261 typedef struct VkRenderPassFragmentDensityMapCreateInfoEXT {
13262     VkStructureType          sType;
13263     const void*              pNext;
13264     VkAttachmentReference    fragmentDensityMapAttachment;
13265 } VkRenderPassFragmentDensityMapCreateInfoEXT;
13266
13267
13268
13269 #define VK_EXT_scalar_block_layout 1
13270 #define VK_EXT_SCALAR_BLOCK_LAYOUT_SPEC_VERSION 1
13271 #define VK_EXT_SCALAR_BLOCK_LAYOUT_EXTENSION_NAME "VK_EXT_scalar_block_layout"
13272 typedef VkPhysicalDeviceScalarBlockLayoutFeatures VkPhysicalDeviceScalarBlockLayoutFeaturesEXT;
13273
13274
13275
13276 #define VK_GOOGLE_hlsl_functionality1 1
13277 #define VK_GOOGLE_HLSL_FUNCTIONALITY_1_SPEC_VERSION 1
13278 #define VK_GOOGLE_HLSL_FUNCTIONALITY_1_EXTENSION_NAME "VK_GOOGLE_hlsl_functionality1"
13279 #define VK_GOOGLE_HLSL_FUNCTIONALITY1_SPEC_VERSION VK_GOOGLE_HLSL_FUNCTIONALITY_1_SPEC_VERSION
13280 #define VK_GOOGLE_HLSL_FUNCTIONALITY1_EXTENSION_NAME VK_GOOGLE_HLSL_FUNCTIONALITY_1_EXTENSION_NAME
13281
13282
13283 #define VK_GOOGLE_decorate_string 1
13284 #define VK_GOOGLE_DECORATE_STRING_SPEC_VERSION 1
13285 #define VK_GOOGLE_DECORATE_STRING_EXTENSION_NAME "VK_GOOGLE_decorate_string"
13286
13287
13288 #define VK_EXT_subgroup_size_control 1
13289 #define VK_EXT_SUBGROUP_SIZE_CONTROL_SPEC_VERSION 2
13290 #define VK_EXT_SUBGROUP_SIZE_CONTROL_EXTENSION_NAME "VK_EXT_subgroup_size_control"
13291 typedef VkPhysicalDeviceSubgroupSizeControlFeatures VkPhysicalDeviceSubgroupSizeControlFeaturesEXT;
13292
13293 typedef VkPhysicalDeviceSubgroupSizeControlProperties VkPhysicalDeviceSubgroupSizeControlPropertiesEXT;
13294
13295 typedef VkPipelineShaderStageRequiredSubgroupSizeCreateInfo VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT;
13296
13297
13298
13299 #define VK_AMD_shader_core_properties2 1
13300 #define VK_AMD_SHADER_CORE_PROPERTIES_2_SPEC_VERSION 1
13301 #define VK_AMD_SHADER_CORE_PROPERTIES_2_EXTENSION_NAME "VK_AMD_shader_core_properties2"
13302
13303 typedef enum VkShaderCorePropertiesFlagBitsAMD {
13304     VK_SHADER_CORE_PROPERTIES_FLAG_BITS_MAX_ENUM_AMD = 0x7FFFFFFF
13305 } VkShaderCorePropertiesFlagBitsAMD;
13306 typedef VkFlags VkShaderCorePropertiesFlagsAMD;
13307 typedef struct VkPhysicalDeviceShaderCoreProperties2AMD {
13308     VkStructureType                   sType;
13309     void*                             pNext;
13310     VkShaderCorePropertiesFlagsAMD    shaderCoreFeatures;
13311     deUint32                          activeComputeUnitCount;
13312 } VkPhysicalDeviceShaderCoreProperties2AMD;
13313
13314
13315
13316 #define VK_AMD_device_coherent_memory 1
13317 #define VK_AMD_DEVICE_COHERENT_MEMORY_SPEC_VERSION 1
13318 #define VK_AMD_DEVICE_COHERENT_MEMORY_EXTENSION_NAME "VK_AMD_device_coherent_memory"
13319 typedef struct VkPhysicalDeviceCoherentMemoryFeaturesAMD {
13320     VkStructureType    sType;
13321     void*              pNext;
13322     VkBool32           deviceCoherentMemory;
13323 } VkPhysicalDeviceCoherentMemoryFeaturesAMD;
13324
13325
13326
13327 #define VK_EXT_shader_image_atomic_int64 1
13328 #define VK_EXT_SHADER_IMAGE_ATOMIC_INT64_SPEC_VERSION 1
13329 #define VK_EXT_SHADER_IMAGE_ATOMIC_INT64_EXTENSION_NAME "VK_EXT_shader_image_atomic_int64"
13330 typedef struct VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT {
13331     VkStructureType    sType;
13332     void*              pNext;
13333     VkBool32           shaderImageInt64Atomics;
13334     VkBool32           sparseImageInt64Atomics;
13335 } VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT;
13336
13337
13338
13339 #define VK_EXT_memory_budget 1
13340 #define VK_EXT_MEMORY_BUDGET_SPEC_VERSION 1
13341 #define VK_EXT_MEMORY_BUDGET_EXTENSION_NAME "VK_EXT_memory_budget"
13342 typedef struct VkPhysicalDeviceMemoryBudgetPropertiesEXT {
13343     VkStructureType    sType;
13344     void*              pNext;
13345     VkDeviceSize       heapBudget[VK_MAX_MEMORY_HEAPS];
13346     VkDeviceSize       heapUsage[VK_MAX_MEMORY_HEAPS];
13347 } VkPhysicalDeviceMemoryBudgetPropertiesEXT;
13348
13349
13350
13351 #define VK_EXT_memory_priority 1
13352 #define VK_EXT_MEMORY_PRIORITY_SPEC_VERSION 1
13353 #define VK_EXT_MEMORY_PRIORITY_EXTENSION_NAME "VK_EXT_memory_priority"
13354 typedef struct VkPhysicalDeviceMemoryPriorityFeaturesEXT {
13355     VkStructureType    sType;
13356     void*              pNext;
13357     VkBool32           memoryPriority;
13358 } VkPhysicalDeviceMemoryPriorityFeaturesEXT;
13359
13360 typedef struct VkMemoryPriorityAllocateInfoEXT {
13361     VkStructureType    sType;
13362     const void*        pNext;
13363     float              priority;
13364 } VkMemoryPriorityAllocateInfoEXT;
13365
13366
13367
13368 #define VK_NV_dedicated_allocation_image_aliasing 1
13369 #define VK_NV_DEDICATED_ALLOCATION_IMAGE_ALIASING_SPEC_VERSION 1
13370 #define VK_NV_DEDICATED_ALLOCATION_IMAGE_ALIASING_EXTENSION_NAME "VK_NV_dedicated_allocation_image_aliasing"
13371 typedef struct VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV {
13372     VkStructureType    sType;
13373     void*              pNext;
13374     VkBool32           dedicatedAllocationImageAliasing;
13375 } VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV;
13376
13377
13378
13379 #define VK_EXT_buffer_device_address 1
13380 #define VK_EXT_BUFFER_DEVICE_ADDRESS_SPEC_VERSION 2
13381 #define VK_EXT_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME "VK_EXT_buffer_device_address"
13382 typedef struct VkPhysicalDeviceBufferDeviceAddressFeaturesEXT {
13383     VkStructureType    sType;
13384     void*              pNext;
13385     VkBool32           bufferDeviceAddress;
13386     VkBool32           bufferDeviceAddressCaptureReplay;
13387     VkBool32           bufferDeviceAddressMultiDevice;
13388 } VkPhysicalDeviceBufferDeviceAddressFeaturesEXT;
13389
13390 typedef VkPhysicalDeviceBufferDeviceAddressFeaturesEXT VkPhysicalDeviceBufferAddressFeaturesEXT;
13391
13392 typedef VkBufferDeviceAddressInfo VkBufferDeviceAddressInfoEXT;
13393
13394 typedef struct VkBufferDeviceAddressCreateInfoEXT {
13395     VkStructureType    sType;
13396     const void*        pNext;
13397     VkDeviceAddress    deviceAddress;
13398 } VkBufferDeviceAddressCreateInfoEXT;
13399
13400 typedef VkDeviceAddress (VKAPI_PTR *PFN_vkGetBufferDeviceAddressEXT)(VkDevice device, const VkBufferDeviceAddressInfo* pInfo);
13401
13402 #ifndef VK_NO_PROTOTYPES
13403 VKAPI_ATTR VkDeviceAddress VKAPI_CALL vkGetBufferDeviceAddressEXT(
13404     VkDevice                                    device,
13405     const VkBufferDeviceAddressInfo*            pInfo);
13406 #endif
13407
13408
13409 #define VK_EXT_tooling_info 1
13410 #define VK_EXT_TOOLING_INFO_SPEC_VERSION  1
13411 #define VK_EXT_TOOLING_INFO_EXTENSION_NAME "VK_EXT_tooling_info"
13412 typedef VkToolPurposeFlagBits VkToolPurposeFlagBitsEXT;
13413
13414 typedef VkToolPurposeFlags VkToolPurposeFlagsEXT;
13415
13416 typedef VkPhysicalDeviceToolProperties VkPhysicalDeviceToolPropertiesEXT;
13417
13418 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceToolPropertiesEXT)(VkPhysicalDevice physicalDevice, deUint32* pToolCount, VkPhysicalDeviceToolProperties* pToolProperties);
13419
13420 #ifndef VK_NO_PROTOTYPES
13421 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceToolPropertiesEXT(
13422     VkPhysicalDevice                            physicalDevice,
13423     deUint32*                                   pToolCount,
13424     VkPhysicalDeviceToolProperties*             pToolProperties);
13425 #endif
13426
13427
13428 #define VK_EXT_separate_stencil_usage 1
13429 #define VK_EXT_SEPARATE_STENCIL_USAGE_SPEC_VERSION 1
13430 #define VK_EXT_SEPARATE_STENCIL_USAGE_EXTENSION_NAME "VK_EXT_separate_stencil_usage"
13431 typedef VkImageStencilUsageCreateInfo VkImageStencilUsageCreateInfoEXT;
13432
13433
13434
13435 #define VK_EXT_validation_features 1
13436 #define VK_EXT_VALIDATION_FEATURES_SPEC_VERSION 5
13437 #define VK_EXT_VALIDATION_FEATURES_EXTENSION_NAME "VK_EXT_validation_features"
13438
13439 typedef enum VkValidationFeatureEnableEXT {
13440     VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT = 0,
13441     VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT = 1,
13442     VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT = 2,
13443     VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT = 3,
13444     VK_VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT = 4,
13445     VK_VALIDATION_FEATURE_ENABLE_MAX_ENUM_EXT = 0x7FFFFFFF
13446 } VkValidationFeatureEnableEXT;
13447
13448 typedef enum VkValidationFeatureDisableEXT {
13449     VK_VALIDATION_FEATURE_DISABLE_ALL_EXT = 0,
13450     VK_VALIDATION_FEATURE_DISABLE_SHADERS_EXT = 1,
13451     VK_VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT = 2,
13452     VK_VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT = 3,
13453     VK_VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT = 4,
13454     VK_VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT = 5,
13455     VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT = 6,
13456     VK_VALIDATION_FEATURE_DISABLE_SHADER_VALIDATION_CACHE_EXT = 7,
13457     VK_VALIDATION_FEATURE_DISABLE_MAX_ENUM_EXT = 0x7FFFFFFF
13458 } VkValidationFeatureDisableEXT;
13459 typedef struct VkValidationFeaturesEXT {
13460     VkStructureType                         sType;
13461     const void*                             pNext;
13462     deUint32                                enabledValidationFeatureCount;
13463     const VkValidationFeatureEnableEXT*     pEnabledValidationFeatures;
13464     deUint32                                disabledValidationFeatureCount;
13465     const VkValidationFeatureDisableEXT*    pDisabledValidationFeatures;
13466 } VkValidationFeaturesEXT;
13467
13468
13469
13470 #define VK_NV_cooperative_matrix 1
13471 #define VK_NV_COOPERATIVE_MATRIX_SPEC_VERSION 1
13472 #define VK_NV_COOPERATIVE_MATRIX_EXTENSION_NAME "VK_NV_cooperative_matrix"
13473
13474 typedef enum VkComponentTypeNV {
13475     VK_COMPONENT_TYPE_FLOAT16_NV = 0,
13476     VK_COMPONENT_TYPE_FLOAT32_NV = 1,
13477     VK_COMPONENT_TYPE_FLOAT64_NV = 2,
13478     VK_COMPONENT_TYPE_SINT8_NV = 3,
13479     VK_COMPONENT_TYPE_SINT16_NV = 4,
13480     VK_COMPONENT_TYPE_SINT32_NV = 5,
13481     VK_COMPONENT_TYPE_SINT64_NV = 6,
13482     VK_COMPONENT_TYPE_UINT8_NV = 7,
13483     VK_COMPONENT_TYPE_UINT16_NV = 8,
13484     VK_COMPONENT_TYPE_UINT32_NV = 9,
13485     VK_COMPONENT_TYPE_UINT64_NV = 10,
13486     VK_COMPONENT_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
13487 } VkComponentTypeNV;
13488
13489 typedef enum VkScopeNV {
13490     VK_SCOPE_DEVICE_NV = 1,
13491     VK_SCOPE_WORKGROUP_NV = 2,
13492     VK_SCOPE_SUBGROUP_NV = 3,
13493     VK_SCOPE_QUEUE_FAMILY_NV = 5,
13494     VK_SCOPE_MAX_ENUM_NV = 0x7FFFFFFF
13495 } VkScopeNV;
13496 typedef struct VkCooperativeMatrixPropertiesNV {
13497     VkStructureType      sType;
13498     void*                pNext;
13499     deUint32             MSize;
13500     deUint32             NSize;
13501     deUint32             KSize;
13502     VkComponentTypeNV    AType;
13503     VkComponentTypeNV    BType;
13504     VkComponentTypeNV    CType;
13505     VkComponentTypeNV    DType;
13506     VkScopeNV            scope;
13507 } VkCooperativeMatrixPropertiesNV;
13508
13509 typedef struct VkPhysicalDeviceCooperativeMatrixFeaturesNV {
13510     VkStructureType    sType;
13511     void*              pNext;
13512     VkBool32           cooperativeMatrix;
13513     VkBool32           cooperativeMatrixRobustBufferAccess;
13514 } VkPhysicalDeviceCooperativeMatrixFeaturesNV;
13515
13516 typedef struct VkPhysicalDeviceCooperativeMatrixPropertiesNV {
13517     VkStructureType       sType;
13518     void*                 pNext;
13519     VkShaderStageFlags    cooperativeMatrixSupportedStages;
13520 } VkPhysicalDeviceCooperativeMatrixPropertiesNV;
13521
13522 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV)(VkPhysicalDevice physicalDevice, deUint32* pPropertyCount, VkCooperativeMatrixPropertiesNV* pProperties);
13523
13524 #ifndef VK_NO_PROTOTYPES
13525 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceCooperativeMatrixPropertiesNV(
13526     VkPhysicalDevice                            physicalDevice,
13527     deUint32*                                   pPropertyCount,
13528     VkCooperativeMatrixPropertiesNV*            pProperties);
13529 #endif
13530
13531
13532 #define VK_NV_coverage_reduction_mode 1
13533 #define VK_NV_COVERAGE_REDUCTION_MODE_SPEC_VERSION 1
13534 #define VK_NV_COVERAGE_REDUCTION_MODE_EXTENSION_NAME "VK_NV_coverage_reduction_mode"
13535
13536 typedef enum VkCoverageReductionModeNV {
13537     VK_COVERAGE_REDUCTION_MODE_MERGE_NV = 0,
13538     VK_COVERAGE_REDUCTION_MODE_TRUNCATE_NV = 1,
13539     VK_COVERAGE_REDUCTION_MODE_MAX_ENUM_NV = 0x7FFFFFFF
13540 } VkCoverageReductionModeNV;
13541 typedef VkFlags VkPipelineCoverageReductionStateCreateFlagsNV;
13542 typedef struct VkPhysicalDeviceCoverageReductionModeFeaturesNV {
13543     VkStructureType    sType;
13544     void*              pNext;
13545     VkBool32           coverageReductionMode;
13546 } VkPhysicalDeviceCoverageReductionModeFeaturesNV;
13547
13548 typedef struct VkPipelineCoverageReductionStateCreateInfoNV {
13549     VkStructureType                                  sType;
13550     const void*                                      pNext;
13551     VkPipelineCoverageReductionStateCreateFlagsNV    flags;
13552     VkCoverageReductionModeNV                        coverageReductionMode;
13553 } VkPipelineCoverageReductionStateCreateInfoNV;
13554
13555 typedef struct VkFramebufferMixedSamplesCombinationNV {
13556     VkStructureType              sType;
13557     void*                        pNext;
13558     VkCoverageReductionModeNV    coverageReductionMode;
13559     VkSampleCountFlagBits        rasterizationSamples;
13560     VkSampleCountFlags           depthStencilSamples;
13561     VkSampleCountFlags           colorSamples;
13562 } VkFramebufferMixedSamplesCombinationNV;
13563
13564 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV)(VkPhysicalDevice physicalDevice, deUint32* pCombinationCount, VkFramebufferMixedSamplesCombinationNV* pCombinations);
13565
13566 #ifndef VK_NO_PROTOTYPES
13567 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(
13568     VkPhysicalDevice                            physicalDevice,
13569     deUint32*                                   pCombinationCount,
13570     VkFramebufferMixedSamplesCombinationNV*     pCombinations);
13571 #endif
13572
13573
13574 #define VK_EXT_fragment_shader_interlock 1
13575 #define VK_EXT_FRAGMENT_SHADER_INTERLOCK_SPEC_VERSION 1
13576 #define VK_EXT_FRAGMENT_SHADER_INTERLOCK_EXTENSION_NAME "VK_EXT_fragment_shader_interlock"
13577 typedef struct VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT {
13578     VkStructureType    sType;
13579     void*              pNext;
13580     VkBool32           fragmentShaderSampleInterlock;
13581     VkBool32           fragmentShaderPixelInterlock;
13582     VkBool32           fragmentShaderShadingRateInterlock;
13583 } VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT;
13584
13585
13586
13587 #define VK_EXT_ycbcr_image_arrays 1
13588 #define VK_EXT_YCBCR_IMAGE_ARRAYS_SPEC_VERSION 1
13589 #define VK_EXT_YCBCR_IMAGE_ARRAYS_EXTENSION_NAME "VK_EXT_ycbcr_image_arrays"
13590 typedef struct VkPhysicalDeviceYcbcrImageArraysFeaturesEXT {
13591     VkStructureType    sType;
13592     void*              pNext;
13593     VkBool32           ycbcrImageArrays;
13594 } VkPhysicalDeviceYcbcrImageArraysFeaturesEXT;
13595
13596
13597
13598 #define VK_EXT_provoking_vertex 1
13599 #define VK_EXT_PROVOKING_VERTEX_SPEC_VERSION 1
13600 #define VK_EXT_PROVOKING_VERTEX_EXTENSION_NAME "VK_EXT_provoking_vertex"
13601
13602 typedef enum VkProvokingVertexModeEXT {
13603     VK_PROVOKING_VERTEX_MODE_FIRST_VERTEX_EXT = 0,
13604     VK_PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT = 1,
13605     VK_PROVOKING_VERTEX_MODE_MAX_ENUM_EXT = 0x7FFFFFFF
13606 } VkProvokingVertexModeEXT;
13607 typedef struct VkPhysicalDeviceProvokingVertexFeaturesEXT {
13608     VkStructureType    sType;
13609     void*              pNext;
13610     VkBool32           provokingVertexLast;
13611     VkBool32           transformFeedbackPreservesProvokingVertex;
13612 } VkPhysicalDeviceProvokingVertexFeaturesEXT;
13613
13614 typedef struct VkPhysicalDeviceProvokingVertexPropertiesEXT {
13615     VkStructureType    sType;
13616     void*              pNext;
13617     VkBool32           provokingVertexModePerPipeline;
13618     VkBool32           transformFeedbackPreservesTriangleFanProvokingVertex;
13619 } VkPhysicalDeviceProvokingVertexPropertiesEXT;
13620
13621 typedef struct VkPipelineRasterizationProvokingVertexStateCreateInfoEXT {
13622     VkStructureType             sType;
13623     const void*                 pNext;
13624     VkProvokingVertexModeEXT    provokingVertexMode;
13625 } VkPipelineRasterizationProvokingVertexStateCreateInfoEXT;
13626
13627
13628
13629 #define VK_EXT_headless_surface 1
13630 #define VK_EXT_HEADLESS_SURFACE_SPEC_VERSION 1
13631 #define VK_EXT_HEADLESS_SURFACE_EXTENSION_NAME "VK_EXT_headless_surface"
13632 typedef VkFlags VkHeadlessSurfaceCreateFlagsEXT;
13633 typedef struct VkHeadlessSurfaceCreateInfoEXT {
13634     VkStructureType                    sType;
13635     const void*                        pNext;
13636     VkHeadlessSurfaceCreateFlagsEXT    flags;
13637 } VkHeadlessSurfaceCreateInfoEXT;
13638
13639 typedef VkResult (VKAPI_PTR *PFN_vkCreateHeadlessSurfaceEXT)(VkInstance instance, const VkHeadlessSurfaceCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
13640
13641 #ifndef VK_NO_PROTOTYPES
13642 VKAPI_ATTR VkResult VKAPI_CALL vkCreateHeadlessSurfaceEXT(
13643     VkInstance                                  instance,
13644     const VkHeadlessSurfaceCreateInfoEXT*       pCreateInfo,
13645     const VkAllocationCallbacks*                pAllocator,
13646     VkSurfaceKHR*                               pSurface);
13647 #endif
13648
13649
13650 #define VK_EXT_line_rasterization 1
13651 #define VK_EXT_LINE_RASTERIZATION_SPEC_VERSION 1
13652 #define VK_EXT_LINE_RASTERIZATION_EXTENSION_NAME "VK_EXT_line_rasterization"
13653
13654 typedef enum VkLineRasterizationModeEXT {
13655     VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT = 0,
13656     VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT = 1,
13657     VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT = 2,
13658     VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT = 3,
13659     VK_LINE_RASTERIZATION_MODE_MAX_ENUM_EXT = 0x7FFFFFFF
13660 } VkLineRasterizationModeEXT;
13661 typedef struct VkPhysicalDeviceLineRasterizationFeaturesEXT {
13662     VkStructureType    sType;
13663     void*              pNext;
13664     VkBool32           rectangularLines;
13665     VkBool32           bresenhamLines;
13666     VkBool32           smoothLines;
13667     VkBool32           stippledRectangularLines;
13668     VkBool32           stippledBresenhamLines;
13669     VkBool32           stippledSmoothLines;
13670 } VkPhysicalDeviceLineRasterizationFeaturesEXT;
13671
13672 typedef struct VkPhysicalDeviceLineRasterizationPropertiesEXT {
13673     VkStructureType    sType;
13674     void*              pNext;
13675     deUint32           lineSubPixelPrecisionBits;
13676 } VkPhysicalDeviceLineRasterizationPropertiesEXT;
13677
13678 typedef struct VkPipelineRasterizationLineStateCreateInfoEXT {
13679     VkStructureType               sType;
13680     const void*                   pNext;
13681     VkLineRasterizationModeEXT    lineRasterizationMode;
13682     VkBool32                      stippledLineEnable;
13683     deUint32                      lineStippleFactor;
13684     deUint16                      lineStipplePattern;
13685 } VkPipelineRasterizationLineStateCreateInfoEXT;
13686
13687 typedef void (VKAPI_PTR *PFN_vkCmdSetLineStippleEXT)(VkCommandBuffer commandBuffer, deUint32 lineStippleFactor, deUint16 lineStipplePattern);
13688
13689 #ifndef VK_NO_PROTOTYPES
13690 VKAPI_ATTR void VKAPI_CALL vkCmdSetLineStippleEXT(
13691     VkCommandBuffer                             commandBuffer,
13692     deUint32                                    lineStippleFactor,
13693     deUint16                                    lineStipplePattern);
13694 #endif
13695
13696
13697 #define VK_EXT_shader_atomic_float 1
13698 #define VK_EXT_SHADER_ATOMIC_FLOAT_SPEC_VERSION 1
13699 #define VK_EXT_SHADER_ATOMIC_FLOAT_EXTENSION_NAME "VK_EXT_shader_atomic_float"
13700 typedef struct VkPhysicalDeviceShaderAtomicFloatFeaturesEXT {
13701     VkStructureType    sType;
13702     void*              pNext;
13703     VkBool32           shaderBufferFloat32Atomics;
13704     VkBool32           shaderBufferFloat32AtomicAdd;
13705     VkBool32           shaderBufferFloat64Atomics;
13706     VkBool32           shaderBufferFloat64AtomicAdd;
13707     VkBool32           shaderSharedFloat32Atomics;
13708     VkBool32           shaderSharedFloat32AtomicAdd;
13709     VkBool32           shaderSharedFloat64Atomics;
13710     VkBool32           shaderSharedFloat64AtomicAdd;
13711     VkBool32           shaderImageFloat32Atomics;
13712     VkBool32           shaderImageFloat32AtomicAdd;
13713     VkBool32           sparseImageFloat32Atomics;
13714     VkBool32           sparseImageFloat32AtomicAdd;
13715 } VkPhysicalDeviceShaderAtomicFloatFeaturesEXT;
13716
13717
13718
13719 #define VK_EXT_host_query_reset 1
13720 #define VK_EXT_HOST_QUERY_RESET_SPEC_VERSION 1
13721 #define VK_EXT_HOST_QUERY_RESET_EXTENSION_NAME "VK_EXT_host_query_reset"
13722 typedef VkPhysicalDeviceHostQueryResetFeatures VkPhysicalDeviceHostQueryResetFeaturesEXT;
13723
13724 typedef void (VKAPI_PTR *PFN_vkResetQueryPoolEXT)(VkDevice device, VkQueryPool queryPool, deUint32 firstQuery, deUint32 queryCount);
13725
13726 #ifndef VK_NO_PROTOTYPES
13727 VKAPI_ATTR void VKAPI_CALL vkResetQueryPoolEXT(
13728     VkDevice                                    device,
13729     VkQueryPool                                 queryPool,
13730     deUint32                                    firstQuery,
13731     deUint32                                    queryCount);
13732 #endif
13733
13734
13735 #define VK_EXT_index_type_uint8 1
13736 #define VK_EXT_INDEX_TYPE_UINT8_SPEC_VERSION 1
13737 #define VK_EXT_INDEX_TYPE_UINT8_EXTENSION_NAME "VK_EXT_index_type_uint8"
13738 typedef struct VkPhysicalDeviceIndexTypeUint8FeaturesEXT {
13739     VkStructureType    sType;
13740     void*              pNext;
13741     VkBool32           indexTypeUint8;
13742 } VkPhysicalDeviceIndexTypeUint8FeaturesEXT;
13743
13744
13745
13746 #define VK_EXT_extended_dynamic_state 1
13747 #define VK_EXT_EXTENDED_DYNAMIC_STATE_SPEC_VERSION 1
13748 #define VK_EXT_EXTENDED_DYNAMIC_STATE_EXTENSION_NAME "VK_EXT_extended_dynamic_state"
13749 typedef struct VkPhysicalDeviceExtendedDynamicStateFeaturesEXT {
13750     VkStructureType    sType;
13751     void*              pNext;
13752     VkBool32           extendedDynamicState;
13753 } VkPhysicalDeviceExtendedDynamicStateFeaturesEXT;
13754
13755 typedef void (VKAPI_PTR *PFN_vkCmdSetCullModeEXT)(VkCommandBuffer commandBuffer, VkCullModeFlags cullMode);
13756 typedef void (VKAPI_PTR *PFN_vkCmdSetFrontFaceEXT)(VkCommandBuffer commandBuffer, VkFrontFace frontFace);
13757 typedef void (VKAPI_PTR *PFN_vkCmdSetPrimitiveTopologyEXT)(VkCommandBuffer commandBuffer, VkPrimitiveTopology primitiveTopology);
13758 typedef void (VKAPI_PTR *PFN_vkCmdSetViewportWithCountEXT)(VkCommandBuffer commandBuffer, deUint32 viewportCount, const VkViewport* pViewports);
13759 typedef void (VKAPI_PTR *PFN_vkCmdSetScissorWithCountEXT)(VkCommandBuffer commandBuffer, deUint32 scissorCount, const VkRect2D* pScissors);
13760 typedef void (VKAPI_PTR *PFN_vkCmdBindVertexBuffers2EXT)(VkCommandBuffer commandBuffer, deUint32 firstBinding, deUint32 bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets, const VkDeviceSize* pSizes, const VkDeviceSize* pStrides);
13761 typedef void (VKAPI_PTR *PFN_vkCmdSetDepthTestEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 depthTestEnable);
13762 typedef void (VKAPI_PTR *PFN_vkCmdSetDepthWriteEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 depthWriteEnable);
13763 typedef void (VKAPI_PTR *PFN_vkCmdSetDepthCompareOpEXT)(VkCommandBuffer commandBuffer, VkCompareOp depthCompareOp);
13764 typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBoundsTestEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 depthBoundsTestEnable);
13765 typedef void (VKAPI_PTR *PFN_vkCmdSetStencilTestEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 stencilTestEnable);
13766 typedef void (VKAPI_PTR *PFN_vkCmdSetStencilOpEXT)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, VkStencilOp failOp, VkStencilOp passOp, VkStencilOp depthFailOp, VkCompareOp compareOp);
13767
13768 #ifndef VK_NO_PROTOTYPES
13769 VKAPI_ATTR void VKAPI_CALL vkCmdSetCullModeEXT(
13770     VkCommandBuffer                             commandBuffer,
13771     VkCullModeFlags                             cullMode);
13772
13773 VKAPI_ATTR void VKAPI_CALL vkCmdSetFrontFaceEXT(
13774     VkCommandBuffer                             commandBuffer,
13775     VkFrontFace                                 frontFace);
13776
13777 VKAPI_ATTR void VKAPI_CALL vkCmdSetPrimitiveTopologyEXT(
13778     VkCommandBuffer                             commandBuffer,
13779     VkPrimitiveTopology                         primitiveTopology);
13780
13781 VKAPI_ATTR void VKAPI_CALL vkCmdSetViewportWithCountEXT(
13782     VkCommandBuffer                             commandBuffer,
13783     deUint32                                    viewportCount,
13784     const VkViewport*                           pViewports);
13785
13786 VKAPI_ATTR void VKAPI_CALL vkCmdSetScissorWithCountEXT(
13787     VkCommandBuffer                             commandBuffer,
13788     deUint32                                    scissorCount,
13789     const VkRect2D*                             pScissors);
13790
13791 VKAPI_ATTR void VKAPI_CALL vkCmdBindVertexBuffers2EXT(
13792     VkCommandBuffer                             commandBuffer,
13793     deUint32                                    firstBinding,
13794     deUint32                                    bindingCount,
13795     const VkBuffer*                             pBuffers,
13796     const VkDeviceSize*                         pOffsets,
13797     const VkDeviceSize*                         pSizes,
13798     const VkDeviceSize*                         pStrides);
13799
13800 VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthTestEnableEXT(
13801     VkCommandBuffer                             commandBuffer,
13802     VkBool32                                    depthTestEnable);
13803
13804 VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthWriteEnableEXT(
13805     VkCommandBuffer                             commandBuffer,
13806     VkBool32                                    depthWriteEnable);
13807
13808 VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthCompareOpEXT(
13809     VkCommandBuffer                             commandBuffer,
13810     VkCompareOp                                 depthCompareOp);
13811
13812 VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBoundsTestEnableEXT(
13813     VkCommandBuffer                             commandBuffer,
13814     VkBool32                                    depthBoundsTestEnable);
13815
13816 VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilTestEnableEXT(
13817     VkCommandBuffer                             commandBuffer,
13818     VkBool32                                    stencilTestEnable);
13819
13820 VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilOpEXT(
13821     VkCommandBuffer                             commandBuffer,
13822     VkStencilFaceFlags                          faceMask,
13823     VkStencilOp                                 failOp,
13824     VkStencilOp                                 passOp,
13825     VkStencilOp                                 depthFailOp,
13826     VkCompareOp                                 compareOp);
13827 #endif
13828
13829
13830 #define VK_EXT_shader_atomic_float2 1
13831 #define VK_EXT_SHADER_ATOMIC_FLOAT_2_SPEC_VERSION 1
13832 #define VK_EXT_SHADER_ATOMIC_FLOAT_2_EXTENSION_NAME "VK_EXT_shader_atomic_float2"
13833 typedef struct VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT {
13834     VkStructureType    sType;
13835     void*              pNext;
13836     VkBool32           shaderBufferFloat16Atomics;
13837     VkBool32           shaderBufferFloat16AtomicAdd;
13838     VkBool32           shaderBufferFloat16AtomicMinMax;
13839     VkBool32           shaderBufferFloat32AtomicMinMax;
13840     VkBool32           shaderBufferFloat64AtomicMinMax;
13841     VkBool32           shaderSharedFloat16Atomics;
13842     VkBool32           shaderSharedFloat16AtomicAdd;
13843     VkBool32           shaderSharedFloat16AtomicMinMax;
13844     VkBool32           shaderSharedFloat32AtomicMinMax;
13845     VkBool32           shaderSharedFloat64AtomicMinMax;
13846     VkBool32           shaderImageFloat32AtomicMinMax;
13847     VkBool32           sparseImageFloat32AtomicMinMax;
13848 } VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT;
13849
13850
13851
13852 #define VK_EXT_shader_demote_to_helper_invocation 1
13853 #define VK_EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_SPEC_VERSION 1
13854 #define VK_EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_EXTENSION_NAME "VK_EXT_shader_demote_to_helper_invocation"
13855 typedef VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT;
13856
13857
13858
13859 #define VK_NV_device_generated_commands 1
13860 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkIndirectCommandsLayoutNV)
13861 #define VK_NV_DEVICE_GENERATED_COMMANDS_SPEC_VERSION 3
13862 #define VK_NV_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME "VK_NV_device_generated_commands"
13863
13864 typedef enum VkIndirectCommandsTokenTypeNV {
13865     VK_INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV = 0,
13866     VK_INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV = 1,
13867     VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NV = 2,
13868     VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NV = 3,
13869     VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV = 4,
13870     VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV = 5,
13871     VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV = 6,
13872     VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV = 7,
13873     VK_INDIRECT_COMMANDS_TOKEN_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
13874 } VkIndirectCommandsTokenTypeNV;
13875
13876 typedef enum VkIndirectStateFlagBitsNV {
13877     VK_INDIRECT_STATE_FLAG_FRONTFACE_BIT_NV = 0x00000001,
13878     VK_INDIRECT_STATE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
13879 } VkIndirectStateFlagBitsNV;
13880 typedef VkFlags VkIndirectStateFlagsNV;
13881
13882 typedef enum VkIndirectCommandsLayoutUsageFlagBitsNV {
13883     VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_NV = 0x00000001,
13884     VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NV = 0x00000002,
13885     VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NV = 0x00000004,
13886     VK_INDIRECT_COMMANDS_LAYOUT_USAGE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
13887 } VkIndirectCommandsLayoutUsageFlagBitsNV;
13888 typedef VkFlags VkIndirectCommandsLayoutUsageFlagsNV;
13889 typedef struct VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV {
13890     VkStructureType    sType;
13891     void*              pNext;
13892     deUint32           maxGraphicsShaderGroupCount;
13893     deUint32           maxIndirectSequenceCount;
13894     deUint32           maxIndirectCommandsTokenCount;
13895     deUint32           maxIndirectCommandsStreamCount;
13896     deUint32           maxIndirectCommandsTokenOffset;
13897     deUint32           maxIndirectCommandsStreamStride;
13898     deUint32           minSequencesCountBufferOffsetAlignment;
13899     deUint32           minSequencesIndexBufferOffsetAlignment;
13900     deUint32           minIndirectCommandsBufferOffsetAlignment;
13901 } VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV;
13902
13903 typedef struct VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV {
13904     VkStructureType    sType;
13905     void*              pNext;
13906     VkBool32           deviceGeneratedCommands;
13907 } VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV;
13908
13909 typedef struct VkGraphicsShaderGroupCreateInfoNV {
13910     VkStructureType                                 sType;
13911     const void*                                     pNext;
13912     deUint32                                        stageCount;
13913     const VkPipelineShaderStageCreateInfo*          pStages;
13914     const VkPipelineVertexInputStateCreateInfo*     pVertexInputState;
13915     const VkPipelineTessellationStateCreateInfo*    pTessellationState;
13916 } VkGraphicsShaderGroupCreateInfoNV;
13917
13918 typedef struct VkGraphicsPipelineShaderGroupsCreateInfoNV {
13919     VkStructureType                             sType;
13920     const void*                                 pNext;
13921     deUint32                                    groupCount;
13922     const VkGraphicsShaderGroupCreateInfoNV*    pGroups;
13923     deUint32                                    pipelineCount;
13924     const VkPipeline*                           pPipelines;
13925 } VkGraphicsPipelineShaderGroupsCreateInfoNV;
13926
13927 typedef struct VkBindShaderGroupIndirectCommandNV {
13928     deUint32    groupIndex;
13929 } VkBindShaderGroupIndirectCommandNV;
13930
13931 typedef struct VkBindIndexBufferIndirectCommandNV {
13932     VkDeviceAddress    bufferAddress;
13933     deUint32           size;
13934     VkIndexType        indexType;
13935 } VkBindIndexBufferIndirectCommandNV;
13936
13937 typedef struct VkBindVertexBufferIndirectCommandNV {
13938     VkDeviceAddress    bufferAddress;
13939     deUint32           size;
13940     deUint32           stride;
13941 } VkBindVertexBufferIndirectCommandNV;
13942
13943 typedef struct VkSetStateFlagsIndirectCommandNV {
13944     deUint32    data;
13945 } VkSetStateFlagsIndirectCommandNV;
13946
13947 typedef struct VkIndirectCommandsStreamNV {
13948     VkBuffer        buffer;
13949     VkDeviceSize    offset;
13950 } VkIndirectCommandsStreamNV;
13951
13952 typedef struct VkIndirectCommandsLayoutTokenNV {
13953     VkStructureType                  sType;
13954     const void*                      pNext;
13955     VkIndirectCommandsTokenTypeNV    tokenType;
13956     deUint32                         stream;
13957     deUint32                         offset;
13958     deUint32                         vertexBindingUnit;
13959     VkBool32                         vertexDynamicStride;
13960     VkPipelineLayout                 pushconstantPipelineLayout;
13961     VkShaderStageFlags               pushconstantShaderStageFlags;
13962     deUint32                         pushconstantOffset;
13963     deUint32                         pushconstantSize;
13964     VkIndirectStateFlagsNV           indirectStateFlags;
13965     deUint32                         indexTypeCount;
13966     const VkIndexType*               pIndexTypes;
13967     const deUint32*                  pIndexTypeValues;
13968 } VkIndirectCommandsLayoutTokenNV;
13969
13970 typedef struct VkIndirectCommandsLayoutCreateInfoNV {
13971     VkStructureType                           sType;
13972     const void*                               pNext;
13973     VkIndirectCommandsLayoutUsageFlagsNV      flags;
13974     VkPipelineBindPoint                       pipelineBindPoint;
13975     deUint32                                  tokenCount;
13976     const VkIndirectCommandsLayoutTokenNV*    pTokens;
13977     deUint32                                  streamCount;
13978     const deUint32*                           pStreamStrides;
13979 } VkIndirectCommandsLayoutCreateInfoNV;
13980
13981 typedef struct VkGeneratedCommandsInfoNV {
13982     VkStructureType                      sType;
13983     const void*                          pNext;
13984     VkPipelineBindPoint                  pipelineBindPoint;
13985     VkPipeline                           pipeline;
13986     VkIndirectCommandsLayoutNV           indirectCommandsLayout;
13987     deUint32                             streamCount;
13988     const VkIndirectCommandsStreamNV*    pStreams;
13989     deUint32                             sequencesCount;
13990     VkBuffer                             preprocessBuffer;
13991     VkDeviceSize                         preprocessOffset;
13992     VkDeviceSize                         preprocessSize;
13993     VkBuffer                             sequencesCountBuffer;
13994     VkDeviceSize                         sequencesCountOffset;
13995     VkBuffer                             sequencesIndexBuffer;
13996     VkDeviceSize                         sequencesIndexOffset;
13997 } VkGeneratedCommandsInfoNV;
13998
13999 typedef struct VkGeneratedCommandsMemoryRequirementsInfoNV {
14000     VkStructureType               sType;
14001     const void*                   pNext;
14002     VkPipelineBindPoint           pipelineBindPoint;
14003     VkPipeline                    pipeline;
14004     VkIndirectCommandsLayoutNV    indirectCommandsLayout;
14005     deUint32                      maxSequencesCount;
14006 } VkGeneratedCommandsMemoryRequirementsInfoNV;
14007
14008 typedef void (VKAPI_PTR *PFN_vkGetGeneratedCommandsMemoryRequirementsNV)(VkDevice device, const VkGeneratedCommandsMemoryRequirementsInfoNV* pInfo, VkMemoryRequirements2* pMemoryRequirements);
14009 typedef void (VKAPI_PTR *PFN_vkCmdPreprocessGeneratedCommandsNV)(VkCommandBuffer commandBuffer, const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo);
14010 typedef void (VKAPI_PTR *PFN_vkCmdExecuteGeneratedCommandsNV)(VkCommandBuffer commandBuffer, VkBool32 isPreprocessed, const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo);
14011 typedef void (VKAPI_PTR *PFN_vkCmdBindPipelineShaderGroupNV)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline, deUint32 groupIndex);
14012 typedef VkResult (VKAPI_PTR *PFN_vkCreateIndirectCommandsLayoutNV)(VkDevice device, const VkIndirectCommandsLayoutCreateInfoNV* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkIndirectCommandsLayoutNV* pIndirectCommandsLayout);
14013 typedef void (VKAPI_PTR *PFN_vkDestroyIndirectCommandsLayoutNV)(VkDevice device, VkIndirectCommandsLayoutNV indirectCommandsLayout, const VkAllocationCallbacks* pAllocator);
14014
14015 #ifndef VK_NO_PROTOTYPES
14016 VKAPI_ATTR void VKAPI_CALL vkGetGeneratedCommandsMemoryRequirementsNV(
14017     VkDevice                                    device,
14018     const VkGeneratedCommandsMemoryRequirementsInfoNV* pInfo,
14019     VkMemoryRequirements2*                      pMemoryRequirements);
14020
14021 VKAPI_ATTR void VKAPI_CALL vkCmdPreprocessGeneratedCommandsNV(
14022     VkCommandBuffer                             commandBuffer,
14023     const VkGeneratedCommandsInfoNV*            pGeneratedCommandsInfo);
14024
14025 VKAPI_ATTR void VKAPI_CALL vkCmdExecuteGeneratedCommandsNV(
14026     VkCommandBuffer                             commandBuffer,
14027     VkBool32                                    isPreprocessed,
14028     const VkGeneratedCommandsInfoNV*            pGeneratedCommandsInfo);
14029
14030 VKAPI_ATTR void VKAPI_CALL vkCmdBindPipelineShaderGroupNV(
14031     VkCommandBuffer                             commandBuffer,
14032     VkPipelineBindPoint                         pipelineBindPoint,
14033     VkPipeline                                  pipeline,
14034     deUint32                                    groupIndex);
14035
14036 VKAPI_ATTR VkResult VKAPI_CALL vkCreateIndirectCommandsLayoutNV(
14037     VkDevice                                    device,
14038     const VkIndirectCommandsLayoutCreateInfoNV* pCreateInfo,
14039     const VkAllocationCallbacks*                pAllocator,
14040     VkIndirectCommandsLayoutNV*                 pIndirectCommandsLayout);
14041
14042 VKAPI_ATTR void VKAPI_CALL vkDestroyIndirectCommandsLayoutNV(
14043     VkDevice                                    device,
14044     VkIndirectCommandsLayoutNV                  indirectCommandsLayout,
14045     const VkAllocationCallbacks*                pAllocator);
14046 #endif
14047
14048
14049 #define VK_NV_inherited_viewport_scissor 1
14050 #define VK_NV_INHERITED_VIEWPORT_SCISSOR_SPEC_VERSION 1
14051 #define VK_NV_INHERITED_VIEWPORT_SCISSOR_EXTENSION_NAME "VK_NV_inherited_viewport_scissor"
14052 typedef struct VkPhysicalDeviceInheritedViewportScissorFeaturesNV {
14053     VkStructureType    sType;
14054     void*              pNext;
14055     VkBool32           inheritedViewportScissor2D;
14056 } VkPhysicalDeviceInheritedViewportScissorFeaturesNV;
14057
14058 typedef struct VkCommandBufferInheritanceViewportScissorInfoNV {
14059     VkStructureType      sType;
14060     const void*          pNext;
14061     VkBool32             viewportScissor2D;
14062     deUint32             viewportDepthCount;
14063     const VkViewport*    pViewportDepths;
14064 } VkCommandBufferInheritanceViewportScissorInfoNV;
14065
14066
14067
14068 #define VK_EXT_texel_buffer_alignment 1
14069 #define VK_EXT_TEXEL_BUFFER_ALIGNMENT_SPEC_VERSION 1
14070 #define VK_EXT_TEXEL_BUFFER_ALIGNMENT_EXTENSION_NAME "VK_EXT_texel_buffer_alignment"
14071 typedef struct VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT {
14072     VkStructureType    sType;
14073     void*              pNext;
14074     VkBool32           texelBufferAlignment;
14075 } VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT;
14076
14077 typedef VkPhysicalDeviceTexelBufferAlignmentProperties VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT;
14078
14079
14080
14081 #define VK_QCOM_render_pass_transform 1
14082 #define VK_QCOM_RENDER_PASS_TRANSFORM_SPEC_VERSION 2
14083 #define VK_QCOM_RENDER_PASS_TRANSFORM_EXTENSION_NAME "VK_QCOM_render_pass_transform"
14084 typedef struct VkRenderPassTransformBeginInfoQCOM {
14085     VkStructureType                  sType;
14086     void*                            pNext;
14087     VkSurfaceTransformFlagBitsKHR    transform;
14088 } VkRenderPassTransformBeginInfoQCOM;
14089
14090 typedef struct VkCommandBufferInheritanceRenderPassTransformInfoQCOM {
14091     VkStructureType                  sType;
14092     void*                            pNext;
14093     VkSurfaceTransformFlagBitsKHR    transform;
14094     VkRect2D                         renderArea;
14095 } VkCommandBufferInheritanceRenderPassTransformInfoQCOM;
14096
14097
14098
14099 #define VK_EXT_device_memory_report 1
14100 #define VK_EXT_DEVICE_MEMORY_REPORT_SPEC_VERSION 2
14101 #define VK_EXT_DEVICE_MEMORY_REPORT_EXTENSION_NAME "VK_EXT_device_memory_report"
14102
14103 typedef enum VkDeviceMemoryReportEventTypeEXT {
14104     VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATE_EXT = 0,
14105     VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_FREE_EXT = 1,
14106     VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_IMPORT_EXT = 2,
14107     VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_UNIMPORT_EXT = 3,
14108     VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATION_FAILED_EXT = 4,
14109     VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
14110 } VkDeviceMemoryReportEventTypeEXT;
14111 typedef VkFlags VkDeviceMemoryReportFlagsEXT;
14112 typedef struct VkPhysicalDeviceDeviceMemoryReportFeaturesEXT {
14113     VkStructureType    sType;
14114     void*              pNext;
14115     VkBool32           deviceMemoryReport;
14116 } VkPhysicalDeviceDeviceMemoryReportFeaturesEXT;
14117
14118 typedef struct VkDeviceMemoryReportCallbackDataEXT {
14119     VkStructureType                     sType;
14120     void*                               pNext;
14121     VkDeviceMemoryReportFlagsEXT        flags;
14122     VkDeviceMemoryReportEventTypeEXT    type;
14123     deUint64                            memoryObjectId;
14124     VkDeviceSize                        size;
14125     VkObjectType                        objectType;
14126     deUint64                            objectHandle;
14127     deUint32                            heapIndex;
14128 } VkDeviceMemoryReportCallbackDataEXT;
14129
14130 typedef void (VKAPI_PTR *PFN_vkDeviceMemoryReportCallbackEXT)(
14131     const VkDeviceMemoryReportCallbackDataEXT*  pCallbackData,
14132     void*                                       pUserData);
14133
14134 typedef struct VkDeviceDeviceMemoryReportCreateInfoEXT {
14135     VkStructureType                        sType;
14136     const void*                            pNext;
14137     VkDeviceMemoryReportFlagsEXT           flags;
14138     PFN_vkDeviceMemoryReportCallbackEXT    pfnUserCallback;
14139     void*                                  pUserData;
14140 } VkDeviceDeviceMemoryReportCreateInfoEXT;
14141
14142
14143
14144 #define VK_EXT_acquire_drm_display 1
14145 #define VK_EXT_ACQUIRE_DRM_DISPLAY_SPEC_VERSION 1
14146 #define VK_EXT_ACQUIRE_DRM_DISPLAY_EXTENSION_NAME "VK_EXT_acquire_drm_display"
14147 typedef VkResult (VKAPI_PTR *PFN_vkAcquireDrmDisplayEXT)(VkPhysicalDevice physicalDevice, deInt32 drmFd, VkDisplayKHR display);
14148 typedef VkResult (VKAPI_PTR *PFN_vkGetDrmDisplayEXT)(VkPhysicalDevice physicalDevice, deInt32 drmFd, deUint32 connectorId, VkDisplayKHR* display);
14149
14150 #ifndef VK_NO_PROTOTYPES
14151 VKAPI_ATTR VkResult VKAPI_CALL vkAcquireDrmDisplayEXT(
14152     VkPhysicalDevice                            physicalDevice,
14153     deInt32                                     drmFd,
14154     VkDisplayKHR                                display);
14155
14156 VKAPI_ATTR VkResult VKAPI_CALL vkGetDrmDisplayEXT(
14157     VkPhysicalDevice                            physicalDevice,
14158     deInt32                                     drmFd,
14159     deUint32                                    connectorId,
14160     VkDisplayKHR*                               display);
14161 #endif
14162
14163
14164 #define VK_EXT_robustness2 1
14165 #define VK_EXT_ROBUSTNESS_2_SPEC_VERSION  1
14166 #define VK_EXT_ROBUSTNESS_2_EXTENSION_NAME "VK_EXT_robustness2"
14167 typedef struct VkPhysicalDeviceRobustness2FeaturesEXT {
14168     VkStructureType    sType;
14169     void*              pNext;
14170     VkBool32           robustBufferAccess2;
14171     VkBool32           robustImageAccess2;
14172     VkBool32           nullDescriptor;
14173 } VkPhysicalDeviceRobustness2FeaturesEXT;
14174
14175 typedef struct VkPhysicalDeviceRobustness2PropertiesEXT {
14176     VkStructureType    sType;
14177     void*              pNext;
14178     VkDeviceSize       robustStorageBufferAccessSizeAlignment;
14179     VkDeviceSize       robustUniformBufferAccessSizeAlignment;
14180 } VkPhysicalDeviceRobustness2PropertiesEXT;
14181
14182
14183
14184 #define VK_EXT_custom_border_color 1
14185 #define VK_EXT_CUSTOM_BORDER_COLOR_SPEC_VERSION 12
14186 #define VK_EXT_CUSTOM_BORDER_COLOR_EXTENSION_NAME "VK_EXT_custom_border_color"
14187 typedef struct VkSamplerCustomBorderColorCreateInfoEXT {
14188     VkStructureType      sType;
14189     const void*          pNext;
14190     VkClearColorValue    customBorderColor;
14191     VkFormat             format;
14192 } VkSamplerCustomBorderColorCreateInfoEXT;
14193
14194 typedef struct VkPhysicalDeviceCustomBorderColorPropertiesEXT {
14195     VkStructureType    sType;
14196     void*              pNext;
14197     deUint32           maxCustomBorderColorSamplers;
14198 } VkPhysicalDeviceCustomBorderColorPropertiesEXT;
14199
14200 typedef struct VkPhysicalDeviceCustomBorderColorFeaturesEXT {
14201     VkStructureType    sType;
14202     void*              pNext;
14203     VkBool32           customBorderColors;
14204     VkBool32           customBorderColorWithoutFormat;
14205 } VkPhysicalDeviceCustomBorderColorFeaturesEXT;
14206
14207
14208
14209 #define VK_GOOGLE_user_type 1
14210 #define VK_GOOGLE_USER_TYPE_SPEC_VERSION  1
14211 #define VK_GOOGLE_USER_TYPE_EXTENSION_NAME "VK_GOOGLE_user_type"
14212
14213
14214 #define VK_EXT_private_data 1
14215 typedef VkPrivateDataSlot VkPrivateDataSlotEXT;
14216
14217 #define VK_EXT_PRIVATE_DATA_SPEC_VERSION  1
14218 #define VK_EXT_PRIVATE_DATA_EXTENSION_NAME "VK_EXT_private_data"
14219 typedef VkPrivateDataSlotCreateFlags VkPrivateDataSlotCreateFlagsEXT;
14220
14221 typedef VkPhysicalDevicePrivateDataFeatures VkPhysicalDevicePrivateDataFeaturesEXT;
14222
14223 typedef VkDevicePrivateDataCreateInfo VkDevicePrivateDataCreateInfoEXT;
14224
14225 typedef VkPrivateDataSlotCreateInfo VkPrivateDataSlotCreateInfoEXT;
14226
14227 typedef VkResult (VKAPI_PTR *PFN_vkCreatePrivateDataSlotEXT)(VkDevice device, const VkPrivateDataSlotCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPrivateDataSlot* pPrivateDataSlot);
14228 typedef void (VKAPI_PTR *PFN_vkDestroyPrivateDataSlotEXT)(VkDevice device, VkPrivateDataSlot privateDataSlot, const VkAllocationCallbacks* pAllocator);
14229 typedef VkResult (VKAPI_PTR *PFN_vkSetPrivateDataEXT)(VkDevice device, VkObjectType objectType, deUint64 objectHandle, VkPrivateDataSlot privateDataSlot, deUint64 data);
14230 typedef void (VKAPI_PTR *PFN_vkGetPrivateDataEXT)(VkDevice device, VkObjectType objectType, deUint64 objectHandle, VkPrivateDataSlot privateDataSlot, deUint64* pData);
14231
14232 #ifndef VK_NO_PROTOTYPES
14233 VKAPI_ATTR VkResult VKAPI_CALL vkCreatePrivateDataSlotEXT(
14234     VkDevice                                    device,
14235     const VkPrivateDataSlotCreateInfo*          pCreateInfo,
14236     const VkAllocationCallbacks*                pAllocator,
14237     VkPrivateDataSlot*                          pPrivateDataSlot);
14238
14239 VKAPI_ATTR void VKAPI_CALL vkDestroyPrivateDataSlotEXT(
14240     VkDevice                                    device,
14241     VkPrivateDataSlot                           privateDataSlot,
14242     const VkAllocationCallbacks*                pAllocator);
14243
14244 VKAPI_ATTR VkResult VKAPI_CALL vkSetPrivateDataEXT(
14245     VkDevice                                    device,
14246     VkObjectType                                objectType,
14247     deUint64                                    objectHandle,
14248     VkPrivateDataSlot                           privateDataSlot,
14249     deUint64                                    data);
14250
14251 VKAPI_ATTR void VKAPI_CALL vkGetPrivateDataEXT(
14252     VkDevice                                    device,
14253     VkObjectType                                objectType,
14254     deUint64                                    objectHandle,
14255     VkPrivateDataSlot                           privateDataSlot,
14256     deUint64*                                   pData);
14257 #endif
14258
14259
14260 #define VK_EXT_pipeline_creation_cache_control 1
14261 #define VK_EXT_PIPELINE_CREATION_CACHE_CONTROL_SPEC_VERSION 3
14262 #define VK_EXT_PIPELINE_CREATION_CACHE_CONTROL_EXTENSION_NAME "VK_EXT_pipeline_creation_cache_control"
14263 typedef VkPhysicalDevicePipelineCreationCacheControlFeatures VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT;
14264
14265
14266
14267 #define VK_NV_device_diagnostics_config 1
14268 #define VK_NV_DEVICE_DIAGNOSTICS_CONFIG_SPEC_VERSION 2
14269 #define VK_NV_DEVICE_DIAGNOSTICS_CONFIG_EXTENSION_NAME "VK_NV_device_diagnostics_config"
14270
14271 typedef enum VkDeviceDiagnosticsConfigFlagBitsNV {
14272     VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_DEBUG_INFO_BIT_NV = 0x00000001,
14273     VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_RESOURCE_TRACKING_BIT_NV = 0x00000002,
14274     VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_AUTOMATIC_CHECKPOINTS_BIT_NV = 0x00000004,
14275     VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_ERROR_REPORTING_BIT_NV = 0x00000008,
14276     VK_DEVICE_DIAGNOSTICS_CONFIG_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
14277 } VkDeviceDiagnosticsConfigFlagBitsNV;
14278 typedef VkFlags VkDeviceDiagnosticsConfigFlagsNV;
14279 typedef struct VkPhysicalDeviceDiagnosticsConfigFeaturesNV {
14280     VkStructureType    sType;
14281     void*              pNext;
14282     VkBool32           diagnosticsConfig;
14283 } VkPhysicalDeviceDiagnosticsConfigFeaturesNV;
14284
14285 typedef struct VkDeviceDiagnosticsConfigCreateInfoNV {
14286     VkStructureType                     sType;
14287     const void*                         pNext;
14288     VkDeviceDiagnosticsConfigFlagsNV    flags;
14289 } VkDeviceDiagnosticsConfigCreateInfoNV;
14290
14291
14292
14293 #define VK_QCOM_render_pass_store_ops 1
14294 #define VK_QCOM_RENDER_PASS_STORE_OPS_SPEC_VERSION 2
14295 #define VK_QCOM_RENDER_PASS_STORE_OPS_EXTENSION_NAME "VK_QCOM_render_pass_store_ops"
14296
14297
14298 #define VK_EXT_graphics_pipeline_library 1
14299 #define VK_EXT_GRAPHICS_PIPELINE_LIBRARY_SPEC_VERSION 1
14300 #define VK_EXT_GRAPHICS_PIPELINE_LIBRARY_EXTENSION_NAME "VK_EXT_graphics_pipeline_library"
14301
14302 typedef enum VkGraphicsPipelineLibraryFlagBitsEXT {
14303     VK_GRAPHICS_PIPELINE_LIBRARY_VERTEX_INPUT_INTERFACE_BIT_EXT = 0x00000001,
14304     VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT = 0x00000002,
14305     VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT = 0x00000004,
14306     VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT = 0x00000008,
14307     VK_GRAPHICS_PIPELINE_LIBRARY_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
14308 } VkGraphicsPipelineLibraryFlagBitsEXT;
14309 typedef VkFlags VkGraphicsPipelineLibraryFlagsEXT;
14310 typedef struct VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT {
14311     VkStructureType    sType;
14312     void*              pNext;
14313     VkBool32           graphicsPipelineLibrary;
14314 } VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT;
14315
14316 typedef struct VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT {
14317     VkStructureType    sType;
14318     void*              pNext;
14319     VkBool32           graphicsPipelineLibraryFastLinking;
14320     VkBool32           graphicsPipelineLibraryIndependentInterpolationDecoration;
14321 } VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT;
14322
14323 typedef struct VkGraphicsPipelineLibraryCreateInfoEXT {
14324     VkStructureType                      sType;
14325     void*                                pNext;
14326     VkGraphicsPipelineLibraryFlagsEXT    flags;
14327 } VkGraphicsPipelineLibraryCreateInfoEXT;
14328
14329
14330
14331 #define VK_AMD_shader_early_and_late_fragment_tests 1
14332 #define VK_AMD_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_SPEC_VERSION 1
14333 #define VK_AMD_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_EXTENSION_NAME "VK_AMD_shader_early_and_late_fragment_tests"
14334 typedef struct VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD {
14335     VkStructureType    sType;
14336     void*              pNext;
14337     VkBool32           shaderEarlyAndLateFragmentTests;
14338 } VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD;
14339
14340
14341
14342 #define VK_NV_fragment_shading_rate_enums 1
14343 #define VK_NV_FRAGMENT_SHADING_RATE_ENUMS_SPEC_VERSION 1
14344 #define VK_NV_FRAGMENT_SHADING_RATE_ENUMS_EXTENSION_NAME "VK_NV_fragment_shading_rate_enums"
14345
14346 typedef enum VkFragmentShadingRateTypeNV {
14347     VK_FRAGMENT_SHADING_RATE_TYPE_FRAGMENT_SIZE_NV = 0,
14348     VK_FRAGMENT_SHADING_RATE_TYPE_ENUMS_NV = 1,
14349     VK_FRAGMENT_SHADING_RATE_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
14350 } VkFragmentShadingRateTypeNV;
14351
14352 typedef enum VkFragmentShadingRateNV {
14353     VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV = 0,
14354     VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_1X2_PIXELS_NV = 1,
14355     VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X1_PIXELS_NV = 4,
14356     VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X2_PIXELS_NV = 5,
14357     VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X4_PIXELS_NV = 6,
14358     VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X2_PIXELS_NV = 9,
14359     VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X4_PIXELS_NV = 10,
14360     VK_FRAGMENT_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV = 11,
14361     VK_FRAGMENT_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV = 12,
14362     VK_FRAGMENT_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV = 13,
14363     VK_FRAGMENT_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV = 14,
14364     VK_FRAGMENT_SHADING_RATE_NO_INVOCATIONS_NV = 15,
14365     VK_FRAGMENT_SHADING_RATE_MAX_ENUM_NV = 0x7FFFFFFF
14366 } VkFragmentShadingRateNV;
14367 typedef struct VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV {
14368     VkStructureType    sType;
14369     void*              pNext;
14370     VkBool32           fragmentShadingRateEnums;
14371     VkBool32           supersampleFragmentShadingRates;
14372     VkBool32           noInvocationFragmentShadingRates;
14373 } VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV;
14374
14375 typedef struct VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV {
14376     VkStructureType          sType;
14377     void*                    pNext;
14378     VkSampleCountFlagBits    maxFragmentShadingRateInvocationCount;
14379 } VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV;
14380
14381 typedef struct VkPipelineFragmentShadingRateEnumStateCreateInfoNV {
14382     VkStructureType                       sType;
14383     const void*                           pNext;
14384     VkFragmentShadingRateTypeNV           shadingRateType;
14385     VkFragmentShadingRateNV               shadingRate;
14386     VkFragmentShadingRateCombinerOpKHR    combinerOps[2];
14387 } VkPipelineFragmentShadingRateEnumStateCreateInfoNV;
14388
14389 typedef void (VKAPI_PTR *PFN_vkCmdSetFragmentShadingRateEnumNV)(VkCommandBuffer           commandBuffer, VkFragmentShadingRateNV                     shadingRate, const VkFragmentShadingRateCombinerOpKHR    combinerOps[2]);
14390
14391 #ifndef VK_NO_PROTOTYPES
14392 VKAPI_ATTR void VKAPI_CALL vkCmdSetFragmentShadingRateEnumNV(
14393     VkCommandBuffer                             commandBuffer,
14394     VkFragmentShadingRateNV                     shadingRate,
14395     const VkFragmentShadingRateCombinerOpKHR    combinerOps[2]);
14396 #endif
14397
14398
14399 #define VK_NV_ray_tracing_motion_blur 1
14400 #define VK_NV_RAY_TRACING_MOTION_BLUR_SPEC_VERSION 1
14401 #define VK_NV_RAY_TRACING_MOTION_BLUR_EXTENSION_NAME "VK_NV_ray_tracing_motion_blur"
14402
14403 typedef enum VkAccelerationStructureMotionInstanceTypeNV {
14404     VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_STATIC_NV = 0,
14405     VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MATRIX_MOTION_NV = 1,
14406     VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_SRT_MOTION_NV = 2,
14407     VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
14408 } VkAccelerationStructureMotionInstanceTypeNV;
14409 typedef VkFlags VkAccelerationStructureMotionInfoFlagsNV;
14410 typedef VkFlags VkAccelerationStructureMotionInstanceFlagsNV;
14411 typedef union VkDeviceOrHostAddressConstKHR {
14412     VkDeviceAddress    deviceAddress;
14413     const void*        hostAddress;
14414 } VkDeviceOrHostAddressConstKHR;
14415
14416 typedef struct VkAccelerationStructureGeometryMotionTrianglesDataNV {
14417     VkStructureType                  sType;
14418     const void*                      pNext;
14419     VkDeviceOrHostAddressConstKHR    vertexData;
14420 } VkAccelerationStructureGeometryMotionTrianglesDataNV;
14421
14422 typedef struct VkAccelerationStructureMotionInfoNV {
14423     VkStructureType                             sType;
14424     const void*                                 pNext;
14425     deUint32                                    maxInstances;
14426     VkAccelerationStructureMotionInfoFlagsNV    flags;
14427 } VkAccelerationStructureMotionInfoNV;
14428
14429 typedef struct VkAccelerationStructureMatrixMotionInstanceNV {
14430     VkTransformMatrixKHR          transformT0;
14431     VkTransformMatrixKHR          transformT1;
14432     deUint32                      instanceCustomIndex:24;
14433     deUint32                      mask:8;
14434     deUint32                      instanceShaderBindingTableRecordOffset:24;
14435     VkGeometryInstanceFlagsKHR    flags:8;
14436     deUint64                      accelerationStructureReference;
14437 } VkAccelerationStructureMatrixMotionInstanceNV;
14438
14439 typedef struct VkSRTDataNV {
14440     float    sx;
14441     float    a;
14442     float    b;
14443     float    pvx;
14444     float    sy;
14445     float    c;
14446     float    pvy;
14447     float    sz;
14448     float    pvz;
14449     float    qx;
14450     float    qy;
14451     float    qz;
14452     float    qw;
14453     float    tx;
14454     float    ty;
14455     float    tz;
14456 } VkSRTDataNV;
14457
14458 typedef struct VkAccelerationStructureSRTMotionInstanceNV {
14459     VkSRTDataNV                   transformT0;
14460     VkSRTDataNV                   transformT1;
14461     deUint32                      instanceCustomIndex:24;
14462     deUint32                      mask:8;
14463     deUint32                      instanceShaderBindingTableRecordOffset:24;
14464     VkGeometryInstanceFlagsKHR    flags:8;
14465     deUint64                      accelerationStructureReference;
14466 } VkAccelerationStructureSRTMotionInstanceNV;
14467
14468 typedef union VkAccelerationStructureMotionInstanceDataNV {
14469     VkAccelerationStructureInstanceKHR               staticInstance;
14470     VkAccelerationStructureMatrixMotionInstanceNV    matrixMotionInstance;
14471     VkAccelerationStructureSRTMotionInstanceNV       srtMotionInstance;
14472 } VkAccelerationStructureMotionInstanceDataNV;
14473
14474 typedef struct VkAccelerationStructureMotionInstanceNV {
14475     VkAccelerationStructureMotionInstanceTypeNV     type;
14476     VkAccelerationStructureMotionInstanceFlagsNV    flags;
14477     VkAccelerationStructureMotionInstanceDataNV     data;
14478 } VkAccelerationStructureMotionInstanceNV;
14479
14480 typedef struct VkPhysicalDeviceRayTracingMotionBlurFeaturesNV {
14481     VkStructureType    sType;
14482     void*              pNext;
14483     VkBool32           rayTracingMotionBlur;
14484     VkBool32           rayTracingMotionBlurPipelineTraceRaysIndirect;
14485 } VkPhysicalDeviceRayTracingMotionBlurFeaturesNV;
14486
14487
14488
14489 #define VK_EXT_ycbcr_2plane_444_formats 1
14490 #define VK_EXT_YCBCR_2PLANE_444_FORMATS_SPEC_VERSION 1
14491 #define VK_EXT_YCBCR_2PLANE_444_FORMATS_EXTENSION_NAME "VK_EXT_ycbcr_2plane_444_formats"
14492 typedef struct VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT {
14493     VkStructureType    sType;
14494     void*              pNext;
14495     VkBool32           ycbcr2plane444Formats;
14496 } VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT;
14497
14498
14499
14500 #define VK_EXT_fragment_density_map2 1
14501 #define VK_EXT_FRAGMENT_DENSITY_MAP_2_SPEC_VERSION 1
14502 #define VK_EXT_FRAGMENT_DENSITY_MAP_2_EXTENSION_NAME "VK_EXT_fragment_density_map2"
14503 typedef struct VkPhysicalDeviceFragmentDensityMap2FeaturesEXT {
14504     VkStructureType    sType;
14505     void*              pNext;
14506     VkBool32           fragmentDensityMapDeferred;
14507 } VkPhysicalDeviceFragmentDensityMap2FeaturesEXT;
14508
14509 typedef struct VkPhysicalDeviceFragmentDensityMap2PropertiesEXT {
14510     VkStructureType    sType;
14511     void*              pNext;
14512     VkBool32           subsampledLoads;
14513     VkBool32           subsampledCoarseReconstructionEarlyAccess;
14514     deUint32           maxSubsampledArrayLayers;
14515     deUint32           maxDescriptorSetSubsampledSamplers;
14516 } VkPhysicalDeviceFragmentDensityMap2PropertiesEXT;
14517
14518
14519
14520 #define VK_QCOM_rotated_copy_commands 1
14521 #define VK_QCOM_ROTATED_COPY_COMMANDS_SPEC_VERSION 1
14522 #define VK_QCOM_ROTATED_COPY_COMMANDS_EXTENSION_NAME "VK_QCOM_rotated_copy_commands"
14523 typedef struct VkCopyCommandTransformInfoQCOM {
14524     VkStructureType                  sType;
14525     const void*                      pNext;
14526     VkSurfaceTransformFlagBitsKHR    transform;
14527 } VkCopyCommandTransformInfoQCOM;
14528
14529
14530
14531 #define VK_EXT_image_robustness 1
14532 #define VK_EXT_IMAGE_ROBUSTNESS_SPEC_VERSION 1
14533 #define VK_EXT_IMAGE_ROBUSTNESS_EXTENSION_NAME "VK_EXT_image_robustness"
14534 typedef VkPhysicalDeviceImageRobustnessFeatures VkPhysicalDeviceImageRobustnessFeaturesEXT;
14535
14536
14537
14538 #define VK_EXT_image_compression_control 1
14539 #define VK_EXT_IMAGE_COMPRESSION_CONTROL_SPEC_VERSION 1
14540 #define VK_EXT_IMAGE_COMPRESSION_CONTROL_EXTENSION_NAME "VK_EXT_image_compression_control"
14541
14542 typedef enum VkImageCompressionFlagBitsEXT {
14543     VK_IMAGE_COMPRESSION_DEFAULT_EXT = 0,
14544     VK_IMAGE_COMPRESSION_FIXED_RATE_DEFAULT_EXT = 0x00000001,
14545     VK_IMAGE_COMPRESSION_FIXED_RATE_EXPLICIT_EXT = 0x00000002,
14546     VK_IMAGE_COMPRESSION_DISABLED_EXT = 0x00000004,
14547     VK_IMAGE_COMPRESSION_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
14548 } VkImageCompressionFlagBitsEXT;
14549 typedef VkFlags VkImageCompressionFlagsEXT;
14550
14551 typedef enum VkImageCompressionFixedRateFlagBitsEXT {
14552     VK_IMAGE_COMPRESSION_FIXED_RATE_NONE_EXT = 0,
14553     VK_IMAGE_COMPRESSION_FIXED_RATE_1BPC_BIT_EXT = 0x00000001,
14554     VK_IMAGE_COMPRESSION_FIXED_RATE_2BPC_BIT_EXT = 0x00000002,
14555     VK_IMAGE_COMPRESSION_FIXED_RATE_3BPC_BIT_EXT = 0x00000004,
14556     VK_IMAGE_COMPRESSION_FIXED_RATE_4BPC_BIT_EXT = 0x00000008,
14557     VK_IMAGE_COMPRESSION_FIXED_RATE_5BPC_BIT_EXT = 0x00000010,
14558     VK_IMAGE_COMPRESSION_FIXED_RATE_6BPC_BIT_EXT = 0x00000020,
14559     VK_IMAGE_COMPRESSION_FIXED_RATE_7BPC_BIT_EXT = 0x00000040,
14560     VK_IMAGE_COMPRESSION_FIXED_RATE_8BPC_BIT_EXT = 0x00000080,
14561     VK_IMAGE_COMPRESSION_FIXED_RATE_9BPC_BIT_EXT = 0x00000100,
14562     VK_IMAGE_COMPRESSION_FIXED_RATE_10BPC_BIT_EXT = 0x00000200,
14563     VK_IMAGE_COMPRESSION_FIXED_RATE_11BPC_BIT_EXT = 0x00000400,
14564     VK_IMAGE_COMPRESSION_FIXED_RATE_12BPC_BIT_EXT = 0x00000800,
14565     VK_IMAGE_COMPRESSION_FIXED_RATE_13BPC_BIT_EXT = 0x00001000,
14566     VK_IMAGE_COMPRESSION_FIXED_RATE_14BPC_BIT_EXT = 0x00002000,
14567     VK_IMAGE_COMPRESSION_FIXED_RATE_15BPC_BIT_EXT = 0x00004000,
14568     VK_IMAGE_COMPRESSION_FIXED_RATE_16BPC_BIT_EXT = 0x00008000,
14569     VK_IMAGE_COMPRESSION_FIXED_RATE_17BPC_BIT_EXT = 0x00010000,
14570     VK_IMAGE_COMPRESSION_FIXED_RATE_18BPC_BIT_EXT = 0x00020000,
14571     VK_IMAGE_COMPRESSION_FIXED_RATE_19BPC_BIT_EXT = 0x00040000,
14572     VK_IMAGE_COMPRESSION_FIXED_RATE_20BPC_BIT_EXT = 0x00080000,
14573     VK_IMAGE_COMPRESSION_FIXED_RATE_21BPC_BIT_EXT = 0x00100000,
14574     VK_IMAGE_COMPRESSION_FIXED_RATE_22BPC_BIT_EXT = 0x00200000,
14575     VK_IMAGE_COMPRESSION_FIXED_RATE_23BPC_BIT_EXT = 0x00400000,
14576     VK_IMAGE_COMPRESSION_FIXED_RATE_24BPC_BIT_EXT = 0x00800000,
14577     VK_IMAGE_COMPRESSION_FIXED_RATE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
14578 } VkImageCompressionFixedRateFlagBitsEXT;
14579 typedef VkFlags VkImageCompressionFixedRateFlagsEXT;
14580 typedef struct VkPhysicalDeviceImageCompressionControlFeaturesEXT {
14581     VkStructureType    sType;
14582     void*              pNext;
14583     VkBool32           imageCompressionControl;
14584 } VkPhysicalDeviceImageCompressionControlFeaturesEXT;
14585
14586 typedef struct VkImageCompressionControlEXT {
14587     VkStructureType                         sType;
14588     const void*                             pNext;
14589     VkImageCompressionFlagsEXT              flags;
14590     deUint32                                compressionControlPlaneCount;
14591     VkImageCompressionFixedRateFlagsEXT*    pFixedRateFlags;
14592 } VkImageCompressionControlEXT;
14593
14594 typedef struct VkSubresourceLayout2EXT {
14595     VkStructureType        sType;
14596     void*                  pNext;
14597     VkSubresourceLayout    subresourceLayout;
14598 } VkSubresourceLayout2EXT;
14599
14600 typedef struct VkImageSubresource2EXT {
14601     VkStructureType       sType;
14602     void*                 pNext;
14603     VkImageSubresource    imageSubresource;
14604 } VkImageSubresource2EXT;
14605
14606 typedef struct VkImageCompressionPropertiesEXT {
14607     VkStructureType                        sType;
14608     void*                                  pNext;
14609     VkImageCompressionFlagsEXT             imageCompressionFlags;
14610     VkImageCompressionFixedRateFlagsEXT    imageCompressionFixedRateFlags;
14611 } VkImageCompressionPropertiesEXT;
14612
14613 typedef void (VKAPI_PTR *PFN_vkGetImageSubresourceLayout2EXT)(VkDevice device, VkImage image, const VkImageSubresource2EXT* pSubresource, VkSubresourceLayout2EXT* pLayout);
14614
14615 #ifndef VK_NO_PROTOTYPES
14616 VKAPI_ATTR void VKAPI_CALL vkGetImageSubresourceLayout2EXT(
14617     VkDevice                                    device,
14618     VkImage                                     image,
14619     const VkImageSubresource2EXT*               pSubresource,
14620     VkSubresourceLayout2EXT*                    pLayout);
14621 #endif
14622
14623
14624 #define VK_EXT_4444_formats 1
14625 #define VK_EXT_4444_FORMATS_SPEC_VERSION  1
14626 #define VK_EXT_4444_FORMATS_EXTENSION_NAME "VK_EXT_4444_formats"
14627 typedef struct VkPhysicalDevice4444FormatsFeaturesEXT {
14628     VkStructureType    sType;
14629     void*              pNext;
14630     VkBool32           formatA4R4G4B4;
14631     VkBool32           formatA4B4G4R4;
14632 } VkPhysicalDevice4444FormatsFeaturesEXT;
14633
14634
14635
14636 #define VK_ARM_rasterization_order_attachment_access 1
14637 #define VK_ARM_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_SPEC_VERSION 1
14638 #define VK_ARM_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_EXTENSION_NAME "VK_ARM_rasterization_order_attachment_access"
14639 typedef struct VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM {
14640     VkStructureType    sType;
14641     void*              pNext;
14642     VkBool32           rasterizationOrderColorAttachmentAccess;
14643     VkBool32           rasterizationOrderDepthAttachmentAccess;
14644     VkBool32           rasterizationOrderStencilAttachmentAccess;
14645 } VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM;
14646
14647
14648
14649 #define VK_EXT_rgba10x6_formats 1
14650 #define VK_EXT_RGBA10X6_FORMATS_SPEC_VERSION 1
14651 #define VK_EXT_RGBA10X6_FORMATS_EXTENSION_NAME "VK_EXT_rgba10x6_formats"
14652 typedef struct VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT {
14653     VkStructureType    sType;
14654     void*              pNext;
14655     VkBool32           formatRgba10x6WithoutYCbCrSampler;
14656 } VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT;
14657
14658
14659
14660 #define VK_NV_acquire_winrt_display 1
14661 #define VK_NV_ACQUIRE_WINRT_DISPLAY_SPEC_VERSION 1
14662 #define VK_NV_ACQUIRE_WINRT_DISPLAY_EXTENSION_NAME "VK_NV_acquire_winrt_display"
14663 typedef VkResult (VKAPI_PTR *PFN_vkAcquireWinrtDisplayNV)(VkPhysicalDevice physicalDevice, VkDisplayKHR display);
14664 typedef VkResult (VKAPI_PTR *PFN_vkGetWinrtDisplayNV)(VkPhysicalDevice physicalDevice, deUint32 deviceRelativeId, VkDisplayKHR* pDisplay);
14665
14666 #ifndef VK_NO_PROTOTYPES
14667 VKAPI_ATTR VkResult VKAPI_CALL vkAcquireWinrtDisplayNV(
14668     VkPhysicalDevice                            physicalDevice,
14669     VkDisplayKHR                                display);
14670
14671 VKAPI_ATTR VkResult VKAPI_CALL vkGetWinrtDisplayNV(
14672     VkPhysicalDevice                            physicalDevice,
14673     deUint32                                    deviceRelativeId,
14674     VkDisplayKHR*                               pDisplay);
14675 #endif
14676
14677
14678 #define VK_VALVE_mutable_descriptor_type 1
14679 #define VK_VALVE_MUTABLE_DESCRIPTOR_TYPE_SPEC_VERSION 1
14680 #define VK_VALVE_MUTABLE_DESCRIPTOR_TYPE_EXTENSION_NAME "VK_VALVE_mutable_descriptor_type"
14681 typedef struct VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE {
14682     VkStructureType    sType;
14683     void*              pNext;
14684     VkBool32           mutableDescriptorType;
14685 } VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE;
14686
14687 typedef struct VkMutableDescriptorTypeListVALVE {
14688     deUint32                   descriptorTypeCount;
14689     const VkDescriptorType*    pDescriptorTypes;
14690 } VkMutableDescriptorTypeListVALVE;
14691
14692 typedef struct VkMutableDescriptorTypeCreateInfoVALVE {
14693     VkStructureType                            sType;
14694     const void*                                pNext;
14695     deUint32                                   mutableDescriptorTypeListCount;
14696     const VkMutableDescriptorTypeListVALVE*    pMutableDescriptorTypeLists;
14697 } VkMutableDescriptorTypeCreateInfoVALVE;
14698
14699
14700
14701 #define VK_EXT_vertex_input_dynamic_state 1
14702 #define VK_EXT_VERTEX_INPUT_DYNAMIC_STATE_SPEC_VERSION 2
14703 #define VK_EXT_VERTEX_INPUT_DYNAMIC_STATE_EXTENSION_NAME "VK_EXT_vertex_input_dynamic_state"
14704 typedef struct VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT {
14705     VkStructureType    sType;
14706     void*              pNext;
14707     VkBool32           vertexInputDynamicState;
14708 } VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT;
14709
14710 typedef struct VkVertexInputBindingDescription2EXT {
14711     VkStructureType      sType;
14712     void*                pNext;
14713     deUint32             binding;
14714     deUint32             stride;
14715     VkVertexInputRate    inputRate;
14716     deUint32             divisor;
14717 } VkVertexInputBindingDescription2EXT;
14718
14719 typedef struct VkVertexInputAttributeDescription2EXT {
14720     VkStructureType    sType;
14721     void*              pNext;
14722     deUint32           location;
14723     deUint32           binding;
14724     VkFormat           format;
14725     deUint32           offset;
14726 } VkVertexInputAttributeDescription2EXT;
14727
14728 typedef void (VKAPI_PTR *PFN_vkCmdSetVertexInputEXT)(VkCommandBuffer commandBuffer, deUint32 vertexBindingDescriptionCount, const VkVertexInputBindingDescription2EXT* pVertexBindingDescriptions, deUint32 vertexAttributeDescriptionCount, const VkVertexInputAttributeDescription2EXT* pVertexAttributeDescriptions);
14729
14730 #ifndef VK_NO_PROTOTYPES
14731 VKAPI_ATTR void VKAPI_CALL vkCmdSetVertexInputEXT(
14732     VkCommandBuffer                             commandBuffer,
14733     deUint32                                    vertexBindingDescriptionCount,
14734     const VkVertexInputBindingDescription2EXT*  pVertexBindingDescriptions,
14735     deUint32                                    vertexAttributeDescriptionCount,
14736     const VkVertexInputAttributeDescription2EXT* pVertexAttributeDescriptions);
14737 #endif
14738
14739
14740 #define VK_EXT_physical_device_drm 1
14741 #define VK_EXT_PHYSICAL_DEVICE_DRM_SPEC_VERSION 1
14742 #define VK_EXT_PHYSICAL_DEVICE_DRM_EXTENSION_NAME "VK_EXT_physical_device_drm"
14743 typedef struct VkPhysicalDeviceDrmPropertiesEXT {
14744     VkStructureType    sType;
14745     void*              pNext;
14746     VkBool32           hasPrimary;
14747     VkBool32           hasRender;
14748     deInt64            primaryMajor;
14749     deInt64            primaryMinor;
14750     deInt64            renderMajor;
14751     deInt64            renderMinor;
14752 } VkPhysicalDeviceDrmPropertiesEXT;
14753
14754
14755
14756 #define VK_EXT_depth_clip_control 1
14757 #define VK_EXT_DEPTH_CLIP_CONTROL_SPEC_VERSION 1
14758 #define VK_EXT_DEPTH_CLIP_CONTROL_EXTENSION_NAME "VK_EXT_depth_clip_control"
14759 typedef struct VkPhysicalDeviceDepthClipControlFeaturesEXT {
14760     VkStructureType    sType;
14761     void*              pNext;
14762     VkBool32           depthClipControl;
14763 } VkPhysicalDeviceDepthClipControlFeaturesEXT;
14764
14765 typedef struct VkPipelineViewportDepthClipControlCreateInfoEXT {
14766     VkStructureType    sType;
14767     const void*        pNext;
14768     VkBool32           negativeOneToOne;
14769 } VkPipelineViewportDepthClipControlCreateInfoEXT;
14770
14771
14772
14773 #define VK_EXT_primitive_topology_list_restart 1
14774 #define VK_EXT_PRIMITIVE_TOPOLOGY_LIST_RESTART_SPEC_VERSION 1
14775 #define VK_EXT_PRIMITIVE_TOPOLOGY_LIST_RESTART_EXTENSION_NAME "VK_EXT_primitive_topology_list_restart"
14776 typedef struct VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT {
14777     VkStructureType    sType;
14778     void*              pNext;
14779     VkBool32           primitiveTopologyListRestart;
14780     VkBool32           primitiveTopologyPatchListRestart;
14781 } VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT;
14782
14783
14784
14785 #define VK_HUAWEI_subpass_shading 1
14786 #define VK_HUAWEI_SUBPASS_SHADING_SPEC_VERSION 2
14787 #define VK_HUAWEI_SUBPASS_SHADING_EXTENSION_NAME "VK_HUAWEI_subpass_shading"
14788 typedef struct VkSubpassShadingPipelineCreateInfoHUAWEI {
14789     VkStructureType    sType;
14790     void*              pNext;
14791     VkRenderPass       renderPass;
14792     deUint32           subpass;
14793 } VkSubpassShadingPipelineCreateInfoHUAWEI;
14794
14795 typedef struct VkPhysicalDeviceSubpassShadingFeaturesHUAWEI {
14796     VkStructureType    sType;
14797     void*              pNext;
14798     VkBool32           subpassShading;
14799 } VkPhysicalDeviceSubpassShadingFeaturesHUAWEI;
14800
14801 typedef struct VkPhysicalDeviceSubpassShadingPropertiesHUAWEI {
14802     VkStructureType    sType;
14803     void*              pNext;
14804     deUint32           maxSubpassShadingWorkgroupSizeAspectRatio;
14805 } VkPhysicalDeviceSubpassShadingPropertiesHUAWEI;
14806
14807 typedef VkResult (VKAPI_PTR *PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI)(VkDevice device, VkRenderPass renderpass, VkExtent2D* pMaxWorkgroupSize);
14808 typedef void (VKAPI_PTR *PFN_vkCmdSubpassShadingHUAWEI)(VkCommandBuffer commandBuffer);
14809
14810 #ifndef VK_NO_PROTOTYPES
14811 VKAPI_ATTR VkResult VKAPI_CALL vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI(
14812     VkDevice                                    device,
14813     VkRenderPass                                renderpass,
14814     VkExtent2D*                                 pMaxWorkgroupSize);
14815
14816 VKAPI_ATTR void VKAPI_CALL vkCmdSubpassShadingHUAWEI(
14817     VkCommandBuffer                             commandBuffer);
14818 #endif
14819
14820
14821 #define VK_HUAWEI_invocation_mask 1
14822 #define VK_HUAWEI_INVOCATION_MASK_SPEC_VERSION 1
14823 #define VK_HUAWEI_INVOCATION_MASK_EXTENSION_NAME "VK_HUAWEI_invocation_mask"
14824 typedef struct VkPhysicalDeviceInvocationMaskFeaturesHUAWEI {
14825     VkStructureType    sType;
14826     void*              pNext;
14827     VkBool32           invocationMask;
14828 } VkPhysicalDeviceInvocationMaskFeaturesHUAWEI;
14829
14830 typedef void (VKAPI_PTR *PFN_vkCmdBindInvocationMaskHUAWEI)(VkCommandBuffer commandBuffer, VkImageView imageView, VkImageLayout imageLayout);
14831
14832 #ifndef VK_NO_PROTOTYPES
14833 VKAPI_ATTR void VKAPI_CALL vkCmdBindInvocationMaskHUAWEI(
14834     VkCommandBuffer                             commandBuffer,
14835     VkImageView                                 imageView,
14836     VkImageLayout                               imageLayout);
14837 #endif
14838
14839
14840 #define VK_NV_external_memory_rdma 1
14841 typedef void* VkRemoteAddressNV;
14842 #define VK_NV_EXTERNAL_MEMORY_RDMA_SPEC_VERSION 1
14843 #define VK_NV_EXTERNAL_MEMORY_RDMA_EXTENSION_NAME "VK_NV_external_memory_rdma"
14844 typedef struct VkMemoryGetRemoteAddressInfoNV {
14845     VkStructureType                       sType;
14846     const void*                           pNext;
14847     VkDeviceMemory                        memory;
14848     VkExternalMemoryHandleTypeFlagBits    handleType;
14849 } VkMemoryGetRemoteAddressInfoNV;
14850
14851 typedef struct VkPhysicalDeviceExternalMemoryRDMAFeaturesNV {
14852     VkStructureType    sType;
14853     void*              pNext;
14854     VkBool32           externalMemoryRDMA;
14855 } VkPhysicalDeviceExternalMemoryRDMAFeaturesNV;
14856
14857 typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryRemoteAddressNV)(VkDevice device, const VkMemoryGetRemoteAddressInfoNV* pMemoryGetRemoteAddressInfo, VkRemoteAddressNV* pAddress);
14858
14859 #ifndef VK_NO_PROTOTYPES
14860 VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryRemoteAddressNV(
14861     VkDevice                                    device,
14862     const VkMemoryGetRemoteAddressInfoNV*       pMemoryGetRemoteAddressInfo,
14863     VkRemoteAddressNV*                          pAddress);
14864 #endif
14865
14866
14867 #define VK_EXT_pipeline_properties 1
14868 #define VK_EXT_PIPELINE_PROPERTIES_SPEC_VERSION 1
14869 #define VK_EXT_PIPELINE_PROPERTIES_EXTENSION_NAME "VK_EXT_pipeline_properties"
14870 typedef VkPipelineInfoKHR VkPipelineInfoEXT;
14871
14872 typedef struct VkPipelinePropertiesIdentifierEXT {
14873     VkStructureType    sType;
14874     void*              pNext;
14875     deUint8            pipelineIdentifier[VK_UUID_SIZE];
14876 } VkPipelinePropertiesIdentifierEXT;
14877
14878 typedef struct VkPhysicalDevicePipelinePropertiesFeaturesEXT {
14879     VkStructureType    sType;
14880     void*              pNext;
14881     VkBool32           pipelinePropertiesIdentifier;
14882 } VkPhysicalDevicePipelinePropertiesFeaturesEXT;
14883
14884 typedef VkResult (VKAPI_PTR *PFN_vkGetPipelinePropertiesEXT)(VkDevice device, const VkPipelineInfoEXT* pPipelineInfo, VkBaseOutStructure* pPipelineProperties);
14885
14886 #ifndef VK_NO_PROTOTYPES
14887 VKAPI_ATTR VkResult VKAPI_CALL vkGetPipelinePropertiesEXT(
14888     VkDevice                                    device,
14889     const VkPipelineInfoEXT*                    pPipelineInfo,
14890     VkBaseOutStructure*                         pPipelineProperties);
14891 #endif
14892
14893
14894 #define VK_EXT_extended_dynamic_state2 1
14895 #define VK_EXT_EXTENDED_DYNAMIC_STATE_2_SPEC_VERSION 1
14896 #define VK_EXT_EXTENDED_DYNAMIC_STATE_2_EXTENSION_NAME "VK_EXT_extended_dynamic_state2"
14897 typedef struct VkPhysicalDeviceExtendedDynamicState2FeaturesEXT {
14898     VkStructureType    sType;
14899     void*              pNext;
14900     VkBool32           extendedDynamicState2;
14901     VkBool32           extendedDynamicState2LogicOp;
14902     VkBool32           extendedDynamicState2PatchControlPoints;
14903 } VkPhysicalDeviceExtendedDynamicState2FeaturesEXT;
14904
14905 typedef void (VKAPI_PTR *PFN_vkCmdSetPatchControlPointsEXT)(VkCommandBuffer commandBuffer, deUint32 patchControlPoints);
14906 typedef void (VKAPI_PTR *PFN_vkCmdSetRasterizerDiscardEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 rasterizerDiscardEnable);
14907 typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBiasEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 depthBiasEnable);
14908 typedef void (VKAPI_PTR *PFN_vkCmdSetLogicOpEXT)(VkCommandBuffer commandBuffer, VkLogicOp logicOp);
14909 typedef void (VKAPI_PTR *PFN_vkCmdSetPrimitiveRestartEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 primitiveRestartEnable);
14910
14911 #ifndef VK_NO_PROTOTYPES
14912 VKAPI_ATTR void VKAPI_CALL vkCmdSetPatchControlPointsEXT(
14913     VkCommandBuffer                             commandBuffer,
14914     deUint32                                    patchControlPoints);
14915
14916 VKAPI_ATTR void VKAPI_CALL vkCmdSetRasterizerDiscardEnableEXT(
14917     VkCommandBuffer                             commandBuffer,
14918     VkBool32                                    rasterizerDiscardEnable);
14919
14920 VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBiasEnableEXT(
14921     VkCommandBuffer                             commandBuffer,
14922     VkBool32                                    depthBiasEnable);
14923
14924 VKAPI_ATTR void VKAPI_CALL vkCmdSetLogicOpEXT(
14925     VkCommandBuffer                             commandBuffer,
14926     VkLogicOp                                   logicOp);
14927
14928 VKAPI_ATTR void VKAPI_CALL vkCmdSetPrimitiveRestartEnableEXT(
14929     VkCommandBuffer                             commandBuffer,
14930     VkBool32                                    primitiveRestartEnable);
14931 #endif
14932
14933
14934 #define VK_EXT_color_write_enable 1
14935 #define VK_EXT_COLOR_WRITE_ENABLE_SPEC_VERSION 1
14936 #define VK_EXT_COLOR_WRITE_ENABLE_EXTENSION_NAME "VK_EXT_color_write_enable"
14937 typedef struct VkPhysicalDeviceColorWriteEnableFeaturesEXT {
14938     VkStructureType    sType;
14939     void*              pNext;
14940     VkBool32           colorWriteEnable;
14941 } VkPhysicalDeviceColorWriteEnableFeaturesEXT;
14942
14943 typedef struct VkPipelineColorWriteCreateInfoEXT {
14944     VkStructureType    sType;
14945     const void*        pNext;
14946     deUint32           attachmentCount;
14947     const VkBool32*    pColorWriteEnables;
14948 } VkPipelineColorWriteCreateInfoEXT;
14949
14950 typedef void                                    (VKAPI_PTR *PFN_vkCmdSetColorWriteEnableEXT)(VkCommandBuffer       commandBuffer, deUint32                                attachmentCount, const VkBool32*   pColorWriteEnables);
14951
14952 #ifndef VK_NO_PROTOTYPES
14953 VKAPI_ATTR void                                    VKAPI_CALL vkCmdSetColorWriteEnableEXT(
14954     VkCommandBuffer                             commandBuffer,
14955     deUint32                                    attachmentCount,
14956     const VkBool32*                             pColorWriteEnables);
14957 #endif
14958
14959
14960 #define VK_EXT_primitives_generated_query 1
14961 #define VK_EXT_PRIMITIVES_GENERATED_QUERY_SPEC_VERSION 1
14962 #define VK_EXT_PRIMITIVES_GENERATED_QUERY_EXTENSION_NAME "VK_EXT_primitives_generated_query"
14963 typedef struct VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT {
14964     VkStructureType    sType;
14965     void*              pNext;
14966     VkBool32           primitivesGeneratedQuery;
14967     VkBool32           primitivesGeneratedQueryWithRasterizerDiscard;
14968     VkBool32           primitivesGeneratedQueryWithNonZeroStreams;
14969 } VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT;
14970
14971
14972
14973 #define VK_EXT_global_priority_query 1
14974 #define VK_EXT_GLOBAL_PRIORITY_QUERY_SPEC_VERSION 1
14975 #define VK_EXT_GLOBAL_PRIORITY_QUERY_EXTENSION_NAME "VK_EXT_global_priority_query"
14976 #define VK_MAX_GLOBAL_PRIORITY_SIZE_EXT   VK_MAX_GLOBAL_PRIORITY_SIZE_KHR
14977 typedef VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT;
14978
14979 typedef VkQueueFamilyGlobalPriorityPropertiesKHR VkQueueFamilyGlobalPriorityPropertiesEXT;
14980
14981
14982
14983 #define VK_EXT_image_view_min_lod 1
14984 #define VK_EXT_IMAGE_VIEW_MIN_LOD_SPEC_VERSION 1
14985 #define VK_EXT_IMAGE_VIEW_MIN_LOD_EXTENSION_NAME "VK_EXT_image_view_min_lod"
14986 typedef struct VkPhysicalDeviceImageViewMinLodFeaturesEXT {
14987     VkStructureType    sType;
14988     void*              pNext;
14989     VkBool32           minLod;
14990 } VkPhysicalDeviceImageViewMinLodFeaturesEXT;
14991
14992 typedef struct VkImageViewMinLodCreateInfoEXT {
14993     VkStructureType    sType;
14994     const void*        pNext;
14995     float              minLod;
14996 } VkImageViewMinLodCreateInfoEXT;
14997
14998
14999
15000 #define VK_EXT_multi_draw 1
15001 #define VK_EXT_MULTI_DRAW_SPEC_VERSION    1
15002 #define VK_EXT_MULTI_DRAW_EXTENSION_NAME  "VK_EXT_multi_draw"
15003 typedef struct VkPhysicalDeviceMultiDrawFeaturesEXT {
15004     VkStructureType    sType;
15005     void*              pNext;
15006     VkBool32           multiDraw;
15007 } VkPhysicalDeviceMultiDrawFeaturesEXT;
15008
15009 typedef struct VkPhysicalDeviceMultiDrawPropertiesEXT {
15010     VkStructureType    sType;
15011     void*              pNext;
15012     deUint32           maxMultiDrawCount;
15013 } VkPhysicalDeviceMultiDrawPropertiesEXT;
15014
15015 typedef struct VkMultiDrawInfoEXT {
15016     deUint32    firstVertex;
15017     deUint32    vertexCount;
15018 } VkMultiDrawInfoEXT;
15019
15020 typedef struct VkMultiDrawIndexedInfoEXT {
15021     deUint32    firstIndex;
15022     deUint32    indexCount;
15023     deInt32     vertexOffset;
15024 } VkMultiDrawIndexedInfoEXT;
15025
15026 typedef void (VKAPI_PTR *PFN_vkCmdDrawMultiEXT)(VkCommandBuffer commandBuffer, deUint32 drawCount, const VkMultiDrawInfoEXT* pVertexInfo, deUint32 instanceCount, deUint32 firstInstance, deUint32 stride);
15027 typedef void (VKAPI_PTR *PFN_vkCmdDrawMultiIndexedEXT)(VkCommandBuffer commandBuffer, deUint32 drawCount, const VkMultiDrawIndexedInfoEXT* pIndexInfo, deUint32 instanceCount, deUint32 firstInstance, deUint32 stride, const deInt32* pVertexOffset);
15028
15029 #ifndef VK_NO_PROTOTYPES
15030 VKAPI_ATTR void VKAPI_CALL vkCmdDrawMultiEXT(
15031     VkCommandBuffer                             commandBuffer,
15032     deUint32                                    drawCount,
15033     const VkMultiDrawInfoEXT*                   pVertexInfo,
15034     deUint32                                    instanceCount,
15035     deUint32                                    firstInstance,
15036     deUint32                                    stride);
15037
15038 VKAPI_ATTR void VKAPI_CALL vkCmdDrawMultiIndexedEXT(
15039     VkCommandBuffer                             commandBuffer,
15040     deUint32                                    drawCount,
15041     const VkMultiDrawIndexedInfoEXT*            pIndexInfo,
15042     deUint32                                    instanceCount,
15043     deUint32                                    firstInstance,
15044     deUint32                                    stride,
15045     const deInt32*                              pVertexOffset);
15046 #endif
15047
15048
15049 #define VK_EXT_image_2d_view_of_3d 1
15050 #define VK_EXT_IMAGE_2D_VIEW_OF_3D_SPEC_VERSION 1
15051 #define VK_EXT_IMAGE_2D_VIEW_OF_3D_EXTENSION_NAME "VK_EXT_image_2d_view_of_3d"
15052 typedef struct VkPhysicalDeviceImage2DViewOf3DFeaturesEXT {
15053     VkStructureType    sType;
15054     void*              pNext;
15055     VkBool32           image2DViewOf3D;
15056     VkBool32           sampler2DViewOf3D;
15057 } VkPhysicalDeviceImage2DViewOf3DFeaturesEXT;
15058
15059
15060
15061 #define VK_EXT_load_store_op_none 1
15062 #define VK_EXT_LOAD_STORE_OP_NONE_SPEC_VERSION 1
15063 #define VK_EXT_LOAD_STORE_OP_NONE_EXTENSION_NAME "VK_EXT_load_store_op_none"
15064
15065
15066 #define VK_EXT_border_color_swizzle 1
15067 #define VK_EXT_BORDER_COLOR_SWIZZLE_SPEC_VERSION 1
15068 #define VK_EXT_BORDER_COLOR_SWIZZLE_EXTENSION_NAME "VK_EXT_border_color_swizzle"
15069 typedef struct VkPhysicalDeviceBorderColorSwizzleFeaturesEXT {
15070     VkStructureType    sType;
15071     void*              pNext;
15072     VkBool32           borderColorSwizzle;
15073     VkBool32           borderColorSwizzleFromImage;
15074 } VkPhysicalDeviceBorderColorSwizzleFeaturesEXT;
15075
15076 typedef struct VkSamplerBorderColorComponentMappingCreateInfoEXT {
15077     VkStructureType       sType;
15078     const void*           pNext;
15079     VkComponentMapping    components;
15080     VkBool32              srgb;
15081 } VkSamplerBorderColorComponentMappingCreateInfoEXT;
15082
15083
15084
15085 #define VK_EXT_pageable_device_local_memory 1
15086 #define VK_EXT_PAGEABLE_DEVICE_LOCAL_MEMORY_SPEC_VERSION 1
15087 #define VK_EXT_PAGEABLE_DEVICE_LOCAL_MEMORY_EXTENSION_NAME "VK_EXT_pageable_device_local_memory"
15088 typedef struct VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT {
15089     VkStructureType    sType;
15090     void*              pNext;
15091     VkBool32           pageableDeviceLocalMemory;
15092 } VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT;
15093
15094 typedef void (VKAPI_PTR *PFN_vkSetDeviceMemoryPriorityEXT)(VkDevice       device, VkDeviceMemory memory, float          priority);
15095
15096 #ifndef VK_NO_PROTOTYPES
15097 VKAPI_ATTR void VKAPI_CALL vkSetDeviceMemoryPriorityEXT(
15098     VkDevice                                    device,
15099     VkDeviceMemory                              memory,
15100     float                                       priority);
15101 #endif
15102
15103
15104 #define VK_VALVE_descriptor_set_host_mapping 1
15105 #define VK_VALVE_DESCRIPTOR_SET_HOST_MAPPING_SPEC_VERSION 1
15106 #define VK_VALVE_DESCRIPTOR_SET_HOST_MAPPING_EXTENSION_NAME "VK_VALVE_descriptor_set_host_mapping"
15107 typedef struct VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE {
15108     VkStructureType    sType;
15109     void*              pNext;
15110     VkBool32           descriptorSetHostMapping;
15111 } VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE;
15112
15113 typedef struct VkDescriptorSetBindingReferenceVALVE {
15114     VkStructureType          sType;
15115     const void*              pNext;
15116     VkDescriptorSetLayout    descriptorSetLayout;
15117     deUint32                 binding;
15118 } VkDescriptorSetBindingReferenceVALVE;
15119
15120 typedef struct VkDescriptorSetLayoutHostMappingInfoVALVE {
15121     VkStructureType    sType;
15122     void*              pNext;
15123     deUintptr             descriptorOffset;
15124     deUint32           descriptorSize;
15125 } VkDescriptorSetLayoutHostMappingInfoVALVE;
15126
15127 typedef void (VKAPI_PTR *PFN_vkGetDescriptorSetLayoutHostMappingInfoVALVE)(VkDevice device, const VkDescriptorSetBindingReferenceVALVE* pBindingReference, VkDescriptorSetLayoutHostMappingInfoVALVE* pHostMapping);
15128 typedef void (VKAPI_PTR *PFN_vkGetDescriptorSetHostMappingVALVE)(VkDevice device, VkDescriptorSet descriptorSet, void** ppData);
15129
15130 #ifndef VK_NO_PROTOTYPES
15131 VKAPI_ATTR void VKAPI_CALL vkGetDescriptorSetLayoutHostMappingInfoVALVE(
15132     VkDevice                                    device,
15133     const VkDescriptorSetBindingReferenceVALVE* pBindingReference,
15134     VkDescriptorSetLayoutHostMappingInfoVALVE*  pHostMapping);
15135
15136 VKAPI_ATTR void VKAPI_CALL vkGetDescriptorSetHostMappingVALVE(
15137     VkDevice                                    device,
15138     VkDescriptorSet                             descriptorSet,
15139     void**                                      ppData);
15140 #endif
15141
15142
15143 #define VK_QCOM_fragment_density_map_offset 1
15144 #define VK_QCOM_FRAGMENT_DENSITY_MAP_OFFSET_SPEC_VERSION 1
15145 #define VK_QCOM_FRAGMENT_DENSITY_MAP_OFFSET_EXTENSION_NAME "VK_QCOM_fragment_density_map_offset"
15146 typedef struct VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM {
15147     VkStructureType    sType;
15148     void*              pNext;
15149     VkBool32           fragmentDensityMapOffset;
15150 } VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM;
15151
15152 typedef struct VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM {
15153     VkStructureType    sType;
15154     void*              pNext;
15155     VkExtent2D         fragmentDensityOffsetGranularity;
15156 } VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM;
15157
15158 typedef struct VkSubpassFragmentDensityMapOffsetEndInfoQCOM {
15159     VkStructureType      sType;
15160     const void*          pNext;
15161     deUint32             fragmentDensityOffsetCount;
15162     const VkOffset2D*    pFragmentDensityOffsets;
15163 } VkSubpassFragmentDensityMapOffsetEndInfoQCOM;
15164
15165
15166
15167 #define VK_NV_linear_color_attachment 1
15168 #define VK_NV_LINEAR_COLOR_ATTACHMENT_SPEC_VERSION 1
15169 #define VK_NV_LINEAR_COLOR_ATTACHMENT_EXTENSION_NAME "VK_NV_linear_color_attachment"
15170 typedef struct VkPhysicalDeviceLinearColorAttachmentFeaturesNV {
15171     VkStructureType    sType;
15172     void*              pNext;
15173     VkBool32           linearColorAttachment;
15174 } VkPhysicalDeviceLinearColorAttachmentFeaturesNV;
15175
15176
15177
15178 #define VK_GOOGLE_surfaceless_query 1
15179 #define VK_GOOGLE_SURFACELESS_QUERY_SPEC_VERSION 1
15180 #define VK_GOOGLE_SURFACELESS_QUERY_EXTENSION_NAME "VK_GOOGLE_surfaceless_query"
15181
15182
15183 #define VK_EXT_image_compression_control_swapchain 1
15184 #define VK_EXT_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_SPEC_VERSION 1
15185 #define VK_EXT_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_EXTENSION_NAME "VK_EXT_image_compression_control_swapchain"
15186 typedef struct VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT {
15187     VkStructureType    sType;
15188     void*              pNext;
15189     VkBool32           imageCompressionControlSwapchain;
15190 } VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT;
15191
15192
15193
15194 #define VK_EXT_subpass_merge_feedback 1
15195 #define VK_EXT_SUBPASS_MERGE_FEEDBACK_SPEC_VERSION 1
15196 #define VK_EXT_SUBPASS_MERGE_FEEDBACK_EXTENSION_NAME "VK_EXT_subpass_merge_feedback"
15197
15198 typedef enum VkSubpassMergeStatusEXT {
15199     VK_SUBPASS_MERGE_STATUS_MERGED_EXT = 0,
15200     VK_SUBPASS_MERGE_STATUS_DISALLOWED_EXT = 1,
15201     VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SIDE_EFFECTS_EXT = 2,
15202     VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SAMPLES_MISMATCH_EXT = 3,
15203     VK_SUBPASS_MERGE_STATUS_NOT_MERGED_VIEWS_MISMATCH_EXT = 4,
15204     VK_SUBPASS_MERGE_STATUS_NOT_MERGED_ALIASING_EXT = 5,
15205     VK_SUBPASS_MERGE_STATUS_NOT_MERGED_DEPENDENCIES_EXT = 6,
15206     VK_SUBPASS_MERGE_STATUS_NOT_MERGED_INCOMPATIBLE_INPUT_ATTACHMENT_EXT = 7,
15207     VK_SUBPASS_MERGE_STATUS_NOT_MERGED_TOO_MANY_ATTACHMENTS_EXT = 8,
15208     VK_SUBPASS_MERGE_STATUS_NOT_MERGED_INSUFFICIENT_STORAGE_EXT = 9,
15209     VK_SUBPASS_MERGE_STATUS_NOT_MERGED_DEPTH_STENCIL_COUNT_EXT = 10,
15210     VK_SUBPASS_MERGE_STATUS_NOT_MERGED_RESOLVE_ATTACHMENT_REUSE_EXT = 11,
15211     VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SINGLE_SUBPASS_EXT = 12,
15212     VK_SUBPASS_MERGE_STATUS_NOT_MERGED_UNSPECIFIED_EXT = 13,
15213     VK_SUBPASS_MERGE_STATUS_MAX_ENUM_EXT = 0x7FFFFFFF
15214 } VkSubpassMergeStatusEXT;
15215 typedef struct VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT {
15216     VkStructureType    sType;
15217     void*              pNext;
15218     VkBool32           subpassMergeFeedback;
15219 } VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT;
15220
15221 typedef struct VkRenderPassCreationControlEXT {
15222     VkStructureType    sType;
15223     const void*        pNext;
15224     VkBool32           disallowMerging;
15225 } VkRenderPassCreationControlEXT;
15226
15227 typedef struct VkRenderPassCreationFeedbackInfoEXT {
15228     VkStructureType    sType;
15229     const void*        pNext;
15230     deUint32           postMergeSubpassCount;
15231 } VkRenderPassCreationFeedbackInfoEXT;
15232
15233 typedef struct VkRenderPassSubpassFeedbackInfoEXT {
15234     VkStructureType            sType;
15235     const void*                pNext;
15236     VkSubpassMergeStatusEXT    subpassMergeStatus;
15237     char                       description[VK_MAX_DESCRIPTION_SIZE];
15238     deUint32                   postMergeIndex;
15239 } VkRenderPassSubpassFeedbackInfoEXT;
15240
15241
15242
15243 #define VK_KHR_acceleration_structure 1
15244 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkAccelerationStructureKHR)
15245 #define VK_KHR_ACCELERATION_STRUCTURE_SPEC_VERSION 13
15246 #define VK_KHR_ACCELERATION_STRUCTURE_EXTENSION_NAME "VK_KHR_acceleration_structure"
15247
15248 typedef enum VkBuildAccelerationStructureModeKHR {
15249     VK_BUILD_ACCELERATION_STRUCTURE_MODE_BUILD_KHR = 0,
15250     VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR = 1,
15251     VK_BUILD_ACCELERATION_STRUCTURE_MODE_MAX_ENUM_KHR = 0x7FFFFFFF
15252 } VkBuildAccelerationStructureModeKHR;
15253
15254 typedef enum VkAccelerationStructureBuildTypeKHR {
15255     VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_KHR = 0,
15256     VK_ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR = 1,
15257     VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_OR_DEVICE_KHR = 2,
15258     VK_ACCELERATION_STRUCTURE_BUILD_TYPE_MAX_ENUM_KHR = 0x7FFFFFFF
15259 } VkAccelerationStructureBuildTypeKHR;
15260
15261 typedef enum VkAccelerationStructureCompatibilityKHR {
15262     VK_ACCELERATION_STRUCTURE_COMPATIBILITY_COMPATIBLE_KHR = 0,
15263     VK_ACCELERATION_STRUCTURE_COMPATIBILITY_INCOMPATIBLE_KHR = 1,
15264     VK_ACCELERATION_STRUCTURE_COMPATIBILITY_MAX_ENUM_KHR = 0x7FFFFFFF
15265 } VkAccelerationStructureCompatibilityKHR;
15266
15267 typedef enum VkAccelerationStructureCreateFlagBitsKHR {
15268     VK_ACCELERATION_STRUCTURE_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR = 0x00000001,
15269     VK_ACCELERATION_STRUCTURE_CREATE_MOTION_BIT_NV = 0x00000004,
15270     VK_ACCELERATION_STRUCTURE_CREATE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
15271 } VkAccelerationStructureCreateFlagBitsKHR;
15272 typedef VkFlags VkAccelerationStructureCreateFlagsKHR;
15273 typedef union VkDeviceOrHostAddressKHR {
15274     VkDeviceAddress    deviceAddress;
15275     void*              hostAddress;
15276 } VkDeviceOrHostAddressKHR;
15277
15278 typedef struct VkAccelerationStructureBuildRangeInfoKHR {
15279     deUint32    primitiveCount;
15280     deUint32    primitiveOffset;
15281     deUint32    firstVertex;
15282     deUint32    transformOffset;
15283 } VkAccelerationStructureBuildRangeInfoKHR;
15284
15285 typedef struct VkAccelerationStructureGeometryTrianglesDataKHR {
15286     VkStructureType                  sType;
15287     const void*                      pNext;
15288     VkFormat                         vertexFormat;
15289     VkDeviceOrHostAddressConstKHR    vertexData;
15290     VkDeviceSize                     vertexStride;
15291     deUint32                         maxVertex;
15292     VkIndexType                      indexType;
15293     VkDeviceOrHostAddressConstKHR    indexData;
15294     VkDeviceOrHostAddressConstKHR    transformData;
15295 } VkAccelerationStructureGeometryTrianglesDataKHR;
15296
15297 typedef struct VkAccelerationStructureGeometryAabbsDataKHR {
15298     VkStructureType                  sType;
15299     const void*                      pNext;
15300     VkDeviceOrHostAddressConstKHR    data;
15301     VkDeviceSize                     stride;
15302 } VkAccelerationStructureGeometryAabbsDataKHR;
15303
15304 typedef struct VkAccelerationStructureGeometryInstancesDataKHR {
15305     VkStructureType                  sType;
15306     const void*                      pNext;
15307     VkBool32                         arrayOfPointers;
15308     VkDeviceOrHostAddressConstKHR    data;
15309 } VkAccelerationStructureGeometryInstancesDataKHR;
15310
15311 typedef union VkAccelerationStructureGeometryDataKHR {
15312     VkAccelerationStructureGeometryTrianglesDataKHR    triangles;
15313     VkAccelerationStructureGeometryAabbsDataKHR        aabbs;
15314     VkAccelerationStructureGeometryInstancesDataKHR    instances;
15315 } VkAccelerationStructureGeometryDataKHR;
15316
15317 typedef struct VkAccelerationStructureGeometryKHR {
15318     VkStructureType                           sType;
15319     const void*                               pNext;
15320     VkGeometryTypeKHR                         geometryType;
15321     VkAccelerationStructureGeometryDataKHR    geometry;
15322     VkGeometryFlagsKHR                        flags;
15323 } VkAccelerationStructureGeometryKHR;
15324
15325 typedef struct VkAccelerationStructureBuildGeometryInfoKHR {
15326     VkStructureType                                     sType;
15327     const void*                                         pNext;
15328     VkAccelerationStructureTypeKHR                      type;
15329     VkBuildAccelerationStructureFlagsKHR                flags;
15330     VkBuildAccelerationStructureModeKHR                 mode;
15331     VkAccelerationStructureKHR                          srcAccelerationStructure;
15332     VkAccelerationStructureKHR                          dstAccelerationStructure;
15333     deUint32                                            geometryCount;
15334     const VkAccelerationStructureGeometryKHR*           pGeometries;
15335     const VkAccelerationStructureGeometryKHR* const*    ppGeometries;
15336     VkDeviceOrHostAddressKHR                            scratchData;
15337 } VkAccelerationStructureBuildGeometryInfoKHR;
15338
15339 typedef struct VkAccelerationStructureCreateInfoKHR {
15340     VkStructureType                          sType;
15341     const void*                              pNext;
15342     VkAccelerationStructureCreateFlagsKHR    createFlags;
15343     VkBuffer                                 buffer;
15344     VkDeviceSize                             offset;
15345     VkDeviceSize                             size;
15346     VkAccelerationStructureTypeKHR           type;
15347     VkDeviceAddress                          deviceAddress;
15348 } VkAccelerationStructureCreateInfoKHR;
15349
15350 typedef struct VkWriteDescriptorSetAccelerationStructureKHR {
15351     VkStructureType                      sType;
15352     const void*                          pNext;
15353     deUint32                             accelerationStructureCount;
15354     const VkAccelerationStructureKHR*    pAccelerationStructures;
15355 } VkWriteDescriptorSetAccelerationStructureKHR;
15356
15357 typedef struct VkPhysicalDeviceAccelerationStructureFeaturesKHR {
15358     VkStructureType    sType;
15359     void*              pNext;
15360     VkBool32           accelerationStructure;
15361     VkBool32           accelerationStructureCaptureReplay;
15362     VkBool32           accelerationStructureIndirectBuild;
15363     VkBool32           accelerationStructureHostCommands;
15364     VkBool32           descriptorBindingAccelerationStructureUpdateAfterBind;
15365 } VkPhysicalDeviceAccelerationStructureFeaturesKHR;
15366
15367 typedef struct VkPhysicalDeviceAccelerationStructurePropertiesKHR {
15368     VkStructureType    sType;
15369     void*              pNext;
15370     deUint64           maxGeometryCount;
15371     deUint64           maxInstanceCount;
15372     deUint64           maxPrimitiveCount;
15373     deUint32           maxPerStageDescriptorAccelerationStructures;
15374     deUint32           maxPerStageDescriptorUpdateAfterBindAccelerationStructures;
15375     deUint32           maxDescriptorSetAccelerationStructures;
15376     deUint32           maxDescriptorSetUpdateAfterBindAccelerationStructures;
15377     deUint32           minAccelerationStructureScratchOffsetAlignment;
15378 } VkPhysicalDeviceAccelerationStructurePropertiesKHR;
15379
15380 typedef struct VkAccelerationStructureDeviceAddressInfoKHR {
15381     VkStructureType               sType;
15382     const void*                   pNext;
15383     VkAccelerationStructureKHR    accelerationStructure;
15384 } VkAccelerationStructureDeviceAddressInfoKHR;
15385
15386 typedef struct VkAccelerationStructureVersionInfoKHR {
15387     VkStructureType    sType;
15388     const void*        pNext;
15389     const deUint8*     pVersionData;
15390 } VkAccelerationStructureVersionInfoKHR;
15391
15392 typedef struct VkCopyAccelerationStructureToMemoryInfoKHR {
15393     VkStructureType                       sType;
15394     const void*                           pNext;
15395     VkAccelerationStructureKHR            src;
15396     VkDeviceOrHostAddressKHR              dst;
15397     VkCopyAccelerationStructureModeKHR    mode;
15398 } VkCopyAccelerationStructureToMemoryInfoKHR;
15399
15400 typedef struct VkCopyMemoryToAccelerationStructureInfoKHR {
15401     VkStructureType                       sType;
15402     const void*                           pNext;
15403     VkDeviceOrHostAddressConstKHR         src;
15404     VkAccelerationStructureKHR            dst;
15405     VkCopyAccelerationStructureModeKHR    mode;
15406 } VkCopyMemoryToAccelerationStructureInfoKHR;
15407
15408 typedef struct VkCopyAccelerationStructureInfoKHR {
15409     VkStructureType                       sType;
15410     const void*                           pNext;
15411     VkAccelerationStructureKHR            src;
15412     VkAccelerationStructureKHR            dst;
15413     VkCopyAccelerationStructureModeKHR    mode;
15414 } VkCopyAccelerationStructureInfoKHR;
15415
15416 typedef struct VkAccelerationStructureBuildSizesInfoKHR {
15417     VkStructureType    sType;
15418     const void*        pNext;
15419     VkDeviceSize       accelerationStructureSize;
15420     VkDeviceSize       updateScratchSize;
15421     VkDeviceSize       buildScratchSize;
15422 } VkAccelerationStructureBuildSizesInfoKHR;
15423
15424 typedef VkResult (VKAPI_PTR *PFN_vkCreateAccelerationStructureKHR)(VkDevice                                           device, const VkAccelerationStructureCreateInfoKHR*        pCreateInfo, const VkAllocationCallbacks*       pAllocator, VkAccelerationStructureKHR*                        pAccelerationStructure);
15425 typedef void (VKAPI_PTR *PFN_vkDestroyAccelerationStructureKHR)(VkDevice device, VkAccelerationStructureKHR accelerationStructure, const VkAllocationCallbacks* pAllocator);
15426 typedef void (VKAPI_PTR *PFN_vkCmdBuildAccelerationStructuresKHR)(VkCommandBuffer                                    commandBuffer, deUint32 infoCount, const VkAccelerationStructureBuildGeometryInfoKHR* pInfos, const VkAccelerationStructureBuildRangeInfoKHR* const* ppBuildRangeInfos);
15427 typedef void (VKAPI_PTR *PFN_vkCmdBuildAccelerationStructuresIndirectKHR)(VkCommandBuffer                  commandBuffer, deUint32                                           infoCount, const VkAccelerationStructureBuildGeometryInfoKHR* pInfos, const VkDeviceAddress*             pIndirectDeviceAddresses, const deUint32*                    pIndirectStrides, const deUint32* const*             ppMaxPrimitiveCounts);
15428 typedef VkResult (VKAPI_PTR *PFN_vkBuildAccelerationStructuresKHR)(VkDevice                                           device, VkDeferredOperationKHR deferredOperation, deUint32 infoCount, const VkAccelerationStructureBuildGeometryInfoKHR* pInfos, const VkAccelerationStructureBuildRangeInfoKHR* const* ppBuildRangeInfos);
15429 typedef VkResult (VKAPI_PTR *PFN_vkCopyAccelerationStructureKHR)(VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyAccelerationStructureInfoKHR* pInfo);
15430 typedef VkResult (VKAPI_PTR *PFN_vkCopyAccelerationStructureToMemoryKHR)(VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo);
15431 typedef VkResult (VKAPI_PTR *PFN_vkCopyMemoryToAccelerationStructureKHR)(VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo);
15432 typedef VkResult (VKAPI_PTR *PFN_vkWriteAccelerationStructuresPropertiesKHR)(VkDevice device, deUint32 accelerationStructureCount, const VkAccelerationStructureKHR* pAccelerationStructures, VkQueryType  queryType, deUintptr       dataSize, void* pData, deUintptr stride);
15433 typedef void (VKAPI_PTR *PFN_vkCmdCopyAccelerationStructureKHR)(VkCommandBuffer commandBuffer, const VkCopyAccelerationStructureInfoKHR* pInfo);
15434 typedef void (VKAPI_PTR *PFN_vkCmdCopyAccelerationStructureToMemoryKHR)(VkCommandBuffer commandBuffer, const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo);
15435 typedef void (VKAPI_PTR *PFN_vkCmdCopyMemoryToAccelerationStructureKHR)(VkCommandBuffer commandBuffer, const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo);
15436 typedef VkDeviceAddress (VKAPI_PTR *PFN_vkGetAccelerationStructureDeviceAddressKHR)(VkDevice device, const VkAccelerationStructureDeviceAddressInfoKHR* pInfo);
15437 typedef void (VKAPI_PTR *PFN_vkCmdWriteAccelerationStructuresPropertiesKHR)(VkCommandBuffer commandBuffer, deUint32 accelerationStructureCount, const VkAccelerationStructureKHR* pAccelerationStructures, VkQueryType queryType, VkQueryPool queryPool, deUint32 firstQuery);
15438 typedef void (VKAPI_PTR *PFN_vkGetDeviceAccelerationStructureCompatibilityKHR)(VkDevice device, const VkAccelerationStructureVersionInfoKHR* pVersionInfo, VkAccelerationStructureCompatibilityKHR* pCompatibility);
15439 typedef void (VKAPI_PTR *PFN_vkGetAccelerationStructureBuildSizesKHR)(VkDevice                                            device, VkAccelerationStructureBuildTypeKHR                 buildType, const VkAccelerationStructureBuildGeometryInfoKHR*  pBuildInfo, const deUint32*  pMaxPrimitiveCounts, VkAccelerationStructureBuildSizesInfoKHR*           pSizeInfo);
15440
15441 #ifndef VK_NO_PROTOTYPES
15442 VKAPI_ATTR VkResult VKAPI_CALL vkCreateAccelerationStructureKHR(
15443     VkDevice                                    device,
15444     const VkAccelerationStructureCreateInfoKHR* pCreateInfo,
15445     const VkAllocationCallbacks*                pAllocator,
15446     VkAccelerationStructureKHR*                 pAccelerationStructure);
15447
15448 VKAPI_ATTR void VKAPI_CALL vkDestroyAccelerationStructureKHR(
15449     VkDevice                                    device,
15450     VkAccelerationStructureKHR                  accelerationStructure,
15451     const VkAllocationCallbacks*                pAllocator);
15452
15453 VKAPI_ATTR void VKAPI_CALL vkCmdBuildAccelerationStructuresKHR(
15454     VkCommandBuffer                             commandBuffer,
15455     deUint32                                    infoCount,
15456     const VkAccelerationStructureBuildGeometryInfoKHR* pInfos,
15457     const VkAccelerationStructureBuildRangeInfoKHR* const* ppBuildRangeInfos);
15458
15459 VKAPI_ATTR void VKAPI_CALL vkCmdBuildAccelerationStructuresIndirectKHR(
15460     VkCommandBuffer                             commandBuffer,
15461     deUint32                                    infoCount,
15462     const VkAccelerationStructureBuildGeometryInfoKHR* pInfos,
15463     const VkDeviceAddress*                      pIndirectDeviceAddresses,
15464     const deUint32*                             pIndirectStrides,
15465     const deUint32* const*                      ppMaxPrimitiveCounts);
15466
15467 VKAPI_ATTR VkResult VKAPI_CALL vkBuildAccelerationStructuresKHR(
15468     VkDevice                                    device,
15469     VkDeferredOperationKHR                      deferredOperation,
15470     deUint32                                    infoCount,
15471     const VkAccelerationStructureBuildGeometryInfoKHR* pInfos,
15472     const VkAccelerationStructureBuildRangeInfoKHR* const* ppBuildRangeInfos);
15473
15474 VKAPI_ATTR VkResult VKAPI_CALL vkCopyAccelerationStructureKHR(
15475     VkDevice                                    device,
15476     VkDeferredOperationKHR                      deferredOperation,
15477     const VkCopyAccelerationStructureInfoKHR*   pInfo);
15478
15479 VKAPI_ATTR VkResult VKAPI_CALL vkCopyAccelerationStructureToMemoryKHR(
15480     VkDevice                                    device,
15481     VkDeferredOperationKHR                      deferredOperation,
15482     const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo);
15483
15484 VKAPI_ATTR VkResult VKAPI_CALL vkCopyMemoryToAccelerationStructureKHR(
15485     VkDevice                                    device,
15486     VkDeferredOperationKHR                      deferredOperation,
15487     const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo);
15488
15489 VKAPI_ATTR VkResult VKAPI_CALL vkWriteAccelerationStructuresPropertiesKHR(
15490     VkDevice                                    device,
15491     deUint32                                    accelerationStructureCount,
15492     const VkAccelerationStructureKHR*           pAccelerationStructures,
15493     VkQueryType                                 queryType,
15494     deUintptr                                      dataSize,
15495     void*                                       pData,
15496     deUintptr                                      stride);
15497
15498 VKAPI_ATTR void VKAPI_CALL vkCmdCopyAccelerationStructureKHR(
15499     VkCommandBuffer                             commandBuffer,
15500     const VkCopyAccelerationStructureInfoKHR*   pInfo);
15501
15502 VKAPI_ATTR void VKAPI_CALL vkCmdCopyAccelerationStructureToMemoryKHR(
15503     VkCommandBuffer                             commandBuffer,
15504     const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo);
15505
15506 VKAPI_ATTR void VKAPI_CALL vkCmdCopyMemoryToAccelerationStructureKHR(
15507     VkCommandBuffer                             commandBuffer,
15508     const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo);
15509
15510 VKAPI_ATTR VkDeviceAddress VKAPI_CALL vkGetAccelerationStructureDeviceAddressKHR(
15511     VkDevice                                    device,
15512     const VkAccelerationStructureDeviceAddressInfoKHR* pInfo);
15513
15514 VKAPI_ATTR void VKAPI_CALL vkCmdWriteAccelerationStructuresPropertiesKHR(
15515     VkCommandBuffer                             commandBuffer,
15516     deUint32                                    accelerationStructureCount,
15517     const VkAccelerationStructureKHR*           pAccelerationStructures,
15518     VkQueryType                                 queryType,
15519     VkQueryPool                                 queryPool,
15520     deUint32                                    firstQuery);
15521
15522 VKAPI_ATTR void VKAPI_CALL vkGetDeviceAccelerationStructureCompatibilityKHR(
15523     VkDevice                                    device,
15524     const VkAccelerationStructureVersionInfoKHR* pVersionInfo,
15525     VkAccelerationStructureCompatibilityKHR*    pCompatibility);
15526
15527 VKAPI_ATTR void VKAPI_CALL vkGetAccelerationStructureBuildSizesKHR(
15528     VkDevice                                    device,
15529     VkAccelerationStructureBuildTypeKHR         buildType,
15530     const VkAccelerationStructureBuildGeometryInfoKHR* pBuildInfo,
15531     const deUint32*                             pMaxPrimitiveCounts,
15532     VkAccelerationStructureBuildSizesInfoKHR*   pSizeInfo);
15533 #endif
15534
15535
15536 #define VK_KHR_ray_tracing_pipeline 1
15537 #define VK_KHR_RAY_TRACING_PIPELINE_SPEC_VERSION 1
15538 #define VK_KHR_RAY_TRACING_PIPELINE_EXTENSION_NAME "VK_KHR_ray_tracing_pipeline"
15539
15540 typedef enum VkShaderGroupShaderKHR {
15541     VK_SHADER_GROUP_SHADER_GENERAL_KHR = 0,
15542     VK_SHADER_GROUP_SHADER_CLOSEST_HIT_KHR = 1,
15543     VK_SHADER_GROUP_SHADER_ANY_HIT_KHR = 2,
15544     VK_SHADER_GROUP_SHADER_INTERSECTION_KHR = 3,
15545     VK_SHADER_GROUP_SHADER_MAX_ENUM_KHR = 0x7FFFFFFF
15546 } VkShaderGroupShaderKHR;
15547 typedef struct VkRayTracingShaderGroupCreateInfoKHR {
15548     VkStructureType                   sType;
15549     const void*                       pNext;
15550     VkRayTracingShaderGroupTypeKHR    type;
15551     deUint32                          generalShader;
15552     deUint32                          closestHitShader;
15553     deUint32                          anyHitShader;
15554     deUint32                          intersectionShader;
15555     const void*                       pShaderGroupCaptureReplayHandle;
15556 } VkRayTracingShaderGroupCreateInfoKHR;
15557
15558 typedef struct VkRayTracingPipelineInterfaceCreateInfoKHR {
15559     VkStructureType    sType;
15560     const void*        pNext;
15561     deUint32           maxPipelineRayPayloadSize;
15562     deUint32           maxPipelineRayHitAttributeSize;
15563 } VkRayTracingPipelineInterfaceCreateInfoKHR;
15564
15565 typedef struct VkRayTracingPipelineCreateInfoKHR {
15566     VkStructureType                                      sType;
15567     const void*                                          pNext;
15568     VkPipelineCreateFlags                                flags;
15569     deUint32                                             stageCount;
15570     const VkPipelineShaderStageCreateInfo*               pStages;
15571     deUint32                                             groupCount;
15572     const VkRayTracingShaderGroupCreateInfoKHR*          pGroups;
15573     deUint32                                             maxPipelineRayRecursionDepth;
15574     const VkPipelineLibraryCreateInfoKHR*                pLibraryInfo;
15575     const VkRayTracingPipelineInterfaceCreateInfoKHR*    pLibraryInterface;
15576     const VkPipelineDynamicStateCreateInfo*              pDynamicState;
15577     VkPipelineLayout                                     layout;
15578     VkPipeline                                           basePipelineHandle;
15579     deInt32                                              basePipelineIndex;
15580 } VkRayTracingPipelineCreateInfoKHR;
15581
15582 typedef struct VkPhysicalDeviceRayTracingPipelineFeaturesKHR {
15583     VkStructureType    sType;
15584     void*              pNext;
15585     VkBool32           rayTracingPipeline;
15586     VkBool32           rayTracingPipelineShaderGroupHandleCaptureReplay;
15587     VkBool32           rayTracingPipelineShaderGroupHandleCaptureReplayMixed;
15588     VkBool32           rayTracingPipelineTraceRaysIndirect;
15589     VkBool32           rayTraversalPrimitiveCulling;
15590 } VkPhysicalDeviceRayTracingPipelineFeaturesKHR;
15591
15592 typedef struct VkPhysicalDeviceRayTracingPipelinePropertiesKHR {
15593     VkStructureType    sType;
15594     void*              pNext;
15595     deUint32           shaderGroupHandleSize;
15596     deUint32           maxRayRecursionDepth;
15597     deUint32           maxShaderGroupStride;
15598     deUint32           shaderGroupBaseAlignment;
15599     deUint32           shaderGroupHandleCaptureReplaySize;
15600     deUint32           maxRayDispatchInvocationCount;
15601     deUint32           shaderGroupHandleAlignment;
15602     deUint32           maxRayHitAttributeSize;
15603 } VkPhysicalDeviceRayTracingPipelinePropertiesKHR;
15604
15605 typedef struct VkStridedDeviceAddressRegionKHR {
15606     VkDeviceAddress    deviceAddress;
15607     VkDeviceSize       stride;
15608     VkDeviceSize       size;
15609 } VkStridedDeviceAddressRegionKHR;
15610
15611 typedef struct VkTraceRaysIndirectCommandKHR {
15612     deUint32    width;
15613     deUint32    height;
15614     deUint32    depth;
15615 } VkTraceRaysIndirectCommandKHR;
15616
15617 typedef void (VKAPI_PTR *PFN_vkCmdTraceRaysKHR)(VkCommandBuffer commandBuffer, const VkStridedDeviceAddressRegionKHR* pRaygenShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pMissShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pHitShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pCallableShaderBindingTable, deUint32 width, deUint32 height, deUint32 depth);
15618 typedef VkResult (VKAPI_PTR *PFN_vkCreateRayTracingPipelinesKHR)(VkDevice device, VkDeferredOperationKHR deferredOperation, VkPipelineCache pipelineCache, deUint32 createInfoCount, const VkRayTracingPipelineCreateInfoKHR* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines);
15619 typedef VkResult (VKAPI_PTR *PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR)(VkDevice device, VkPipeline pipeline, deUint32 firstGroup, deUint32 groupCount, deUintptr dataSize, void* pData);
15620 typedef void (VKAPI_PTR *PFN_vkCmdTraceRaysIndirectKHR)(VkCommandBuffer commandBuffer, const VkStridedDeviceAddressRegionKHR* pRaygenShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pMissShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pHitShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pCallableShaderBindingTable, VkDeviceAddress indirectDeviceAddress);
15621 typedef VkDeviceSize (VKAPI_PTR *PFN_vkGetRayTracingShaderGroupStackSizeKHR)(VkDevice device, VkPipeline pipeline, deUint32 group, VkShaderGroupShaderKHR groupShader);
15622 typedef void (VKAPI_PTR *PFN_vkCmdSetRayTracingPipelineStackSizeKHR)(VkCommandBuffer commandBuffer, deUint32 pipelineStackSize);
15623
15624 #ifndef VK_NO_PROTOTYPES
15625 VKAPI_ATTR void VKAPI_CALL vkCmdTraceRaysKHR(
15626     VkCommandBuffer                             commandBuffer,
15627     const VkStridedDeviceAddressRegionKHR*      pRaygenShaderBindingTable,
15628     const VkStridedDeviceAddressRegionKHR*      pMissShaderBindingTable,
15629     const VkStridedDeviceAddressRegionKHR*      pHitShaderBindingTable,
15630     const VkStridedDeviceAddressRegionKHR*      pCallableShaderBindingTable,
15631     deUint32                                    width,
15632     deUint32                                    height,
15633     deUint32                                    depth);
15634
15635 VKAPI_ATTR VkResult VKAPI_CALL vkCreateRayTracingPipelinesKHR(
15636     VkDevice                                    device,
15637     VkDeferredOperationKHR                      deferredOperation,
15638     VkPipelineCache                             pipelineCache,
15639     deUint32                                    createInfoCount,
15640     const VkRayTracingPipelineCreateInfoKHR*    pCreateInfos,
15641     const VkAllocationCallbacks*                pAllocator,
15642     VkPipeline*                                 pPipelines);
15643
15644 VKAPI_ATTR VkResult VKAPI_CALL vkGetRayTracingCaptureReplayShaderGroupHandlesKHR(
15645     VkDevice                                    device,
15646     VkPipeline                                  pipeline,
15647     deUint32                                    firstGroup,
15648     deUint32                                    groupCount,
15649     deUintptr                                      dataSize,
15650     void*                                       pData);
15651
15652 VKAPI_ATTR void VKAPI_CALL vkCmdTraceRaysIndirectKHR(
15653     VkCommandBuffer                             commandBuffer,
15654     const VkStridedDeviceAddressRegionKHR*      pRaygenShaderBindingTable,
15655     const VkStridedDeviceAddressRegionKHR*      pMissShaderBindingTable,
15656     const VkStridedDeviceAddressRegionKHR*      pHitShaderBindingTable,
15657     const VkStridedDeviceAddressRegionKHR*      pCallableShaderBindingTable,
15658     VkDeviceAddress                             indirectDeviceAddress);
15659
15660 VKAPI_ATTR VkDeviceSize VKAPI_CALL vkGetRayTracingShaderGroupStackSizeKHR(
15661     VkDevice                                    device,
15662     VkPipeline                                  pipeline,
15663     deUint32                                    group,
15664     VkShaderGroupShaderKHR                      groupShader);
15665
15666 VKAPI_ATTR void VKAPI_CALL vkCmdSetRayTracingPipelineStackSizeKHR(
15667     VkCommandBuffer                             commandBuffer,
15668     deUint32                                    pipelineStackSize);
15669 #endif
15670
15671
15672 #define VK_KHR_ray_query 1
15673 #define VK_KHR_RAY_QUERY_SPEC_VERSION     1
15674 #define VK_KHR_RAY_QUERY_EXTENSION_NAME   "VK_KHR_ray_query"
15675 typedef struct VkPhysicalDeviceRayQueryFeaturesKHR {
15676     VkStructureType    sType;
15677     void*              pNext;
15678     VkBool32           rayQuery;
15679 } VkPhysicalDeviceRayQueryFeaturesKHR;
15680
15681
15682 #ifdef __cplusplus
15683 }
15684 #endif
15685
15686 #endif
15687