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