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