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