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