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