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