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