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