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