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