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