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