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