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