blob: 76503c8c17610ca8489ab1bb458b95c2cf73cf07 [file] [log] [blame]
Jesse Halld27f6aa2015-08-15 17:58:48 -07001// Copyright (c) 2015 The Khronos Group Inc.
2//
3// Permission is hereby granted, free of charge, to any person obtaining a
4// copy of this software and/or associated documentation files (the
5// "Materials"), to deal in the Materials without restriction, including
6// without limitation the rights to use, copy, modify, merge, publish,
7// distribute, sublicense, and/or sell copies of the Materials, and to
8// permit persons to whom the Materials are furnished to do so, subject to
9// the following conditions:
10//
11// The above copyright notice and this permission notice shall be included
12// in all copies or substantial portions of the Materials.
13//
14// THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
17// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
18// CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
19// TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
20// MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
21
22import platform "platform.api"
23
24///////////////
25// Constants //
26///////////////
27
28// API version (major.minor.patch)
Jesse Hall3dd678a2016-01-08 21:52:01 -080029define VERSION_MAJOR 1
Daniel Koch09f7bf92017-10-05 00:26:58 -040030define VERSION_MINOR 1
Jesse Hall49a87a22018-12-19 15:19:56 -080031define VERSION_PATCH 96
Jesse Halld27f6aa2015-08-15 17:58:48 -070032
33// API limits
Jesse Hall65ab5522015-11-30 00:07:16 -080034define VK_MAX_PHYSICAL_DEVICE_NAME_SIZE 256
35define VK_UUID_SIZE 16
36define VK_MAX_EXTENSION_NAME_SIZE 256
37define VK_MAX_DESCRIPTION_SIZE 256
38define VK_MAX_MEMORY_TYPES 32
39define VK_MAX_MEMORY_HEAPS 16 /// The maximum number of unique memory heaps, each of which supporting 1 or more memory types.
Ian Elliott28bd2c32017-10-13 09:21:12 -060040@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -040041define VK_MAX_DEVICE_GROUP_SIZE 32
Jesse Hall8c954d32018-01-17 22:06:20 -080042@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -040043define VK_LUID_SIZE 8
Jesse Hall8c954d32018-01-17 22:06:20 -080044@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -040045define VK_QUEUE_FAMILY_EXTERNAL -2
Jesse Hall8c954d32018-01-17 22:06:20 -080046@extension("VK_EXT_queue_family_foreign")
47define VK_QUEUE_FAMILY_FOREIGN_EXT -3
Jesse Hall2e6853c2018-10-02 14:05:37 -070048@extension("VK_MAX_DRIVER_NAME_SIZE_KHR") // 197
49define VK_MAX_DRIVER_NAME_SIZE_KHR 256
50@extension("VK_MAX_DRIVER_NAME_SIZE_KHR") // 197
51define VK_MAX_DRIVER_INFO_SIZE_KHR 256
Jesse Halld27f6aa2015-08-15 17:58:48 -070052
53// API keywords
54define VK_TRUE 1
55define VK_FALSE 0
Jesse Hall5ae3abb2015-10-08 14:00:22 -070056
57// API keyword, but needs special handling by some templates
58define NULL_HANDLE 0
Jesse Halld27f6aa2015-08-15 17:58:48 -070059
Jesse Halleb02c472017-02-24 15:13:45 -080060// 1
Jesse Hall33faaad2016-01-24 21:00:49 -080061@extension("VK_KHR_surface") define VK_KHR_SURFACE_SPEC_VERSION 25
Jesse Hall3e0dc8f2015-11-30 00:42:57 -080062@extension("VK_KHR_surface") define VK_KHR_SURFACE_EXTENSION_NAME "VK_KHR_surface"
Jesse Hall1356b0d2015-11-23 17:24:58 -080063
Jesse Halleb02c472017-02-24 15:13:45 -080064// 2
Daniel Koch09f7bf92017-10-05 00:26:58 -040065@extension("VK_KHR_swapchain") define VK_KHR_SWAPCHAIN_SPEC_VERSION 70
Jesse Hall3e0dc8f2015-11-30 00:42:57 -080066@extension("VK_KHR_swapchain") define VK_KHR_SWAPCHAIN_EXTENSION_NAME "VK_KHR_swapchain"
Jesse Hall1356b0d2015-11-23 17:24:58 -080067
Jesse Halleb02c472017-02-24 15:13:45 -080068// 3
Jesse Hall543a7ff2016-01-08 16:38:30 -080069@extension("VK_KHR_display") define VK_KHR_DISPLAY_SPEC_VERSION 21
Jesse Hall3e0dc8f2015-11-30 00:42:57 -080070@extension("VK_KHR_display") define VK_KHR_DISPLAY_EXTENSION_NAME "VK_KHR_display"
Jesse Hall1356b0d2015-11-23 17:24:58 -080071
Jesse Halleb02c472017-02-24 15:13:45 -080072// 4
Jesse Hall543a7ff2016-01-08 16:38:30 -080073@extension("VK_KHR_display_swapchain") define VK_KHR_DISPLAY_SWAPCHAIN_SPEC_VERSION 9
Jesse Hall0e74f002015-11-30 11:37:59 -080074@extension("VK_KHR_display_swapchain") define VK_KHR_DISPLAY_SWAPCHAIN_EXTENSION_NAME "VK_KHR_display_swapchain"
Jesse Hall1356b0d2015-11-23 17:24:58 -080075
Jesse Halleb02c472017-02-24 15:13:45 -080076// 5
Jesse Hall543a7ff2016-01-08 16:38:30 -080077@extension("VK_KHR_xlib_surface") define VK_KHR_XLIB_SURFACE_SPEC_VERSION 6
Jesse Hall3e0dc8f2015-11-30 00:42:57 -080078@extension("VK_KHR_xlib_surface") define VK_KHR_XLIB_SURFACE_NAME "VK_KHR_xlib_surface"
Jesse Hall1356b0d2015-11-23 17:24:58 -080079
Jesse Halleb02c472017-02-24 15:13:45 -080080// 6
Jesse Hall543a7ff2016-01-08 16:38:30 -080081@extension("VK_KHR_xcb_surface") define VK_KHR_XCB_SURFACE_SPEC_VERSION 6
Jesse Hall3e0dc8f2015-11-30 00:42:57 -080082@extension("VK_KHR_xcb_surface") define VK_KHR_XCB_SURFACE_NAME "VK_KHR_xcb_surface"
Jesse Hall1356b0d2015-11-23 17:24:58 -080083
Jesse Halleb02c472017-02-24 15:13:45 -080084// 7
Jesse Hallfdc8ab32017-03-10 21:01:57 -080085@extension("VK_KHR_wayland_surface") define VK_KHR_WAYLAND_SURFACE_SPEC_VERSION 6
Jesse Hall3e0dc8f2015-11-30 00:42:57 -080086@extension("VK_KHR_wayland_surface") define VK_KHR_WAYLAND_SURFACE_NAME "VK_KHR_wayland_surface"
Jesse Hall1356b0d2015-11-23 17:24:58 -080087
Jesse Halla363a8e2018-11-05 21:18:00 -070088// 8 - VK_KHR_mir_surface removed
Jesse Hall1356b0d2015-11-23 17:24:58 -080089
Jesse Halleb02c472017-02-24 15:13:45 -080090// 9
Jesse Hall33faaad2016-01-24 21:00:49 -080091@extension("VK_KHR_android_surface") define VK_KHR_ANDROID_SURFACE_SPEC_VERSION 6
Jesse Hall3e0dc8f2015-11-30 00:42:57 -080092@extension("VK_KHR_android_surface") define VK_KHR_ANDROID_SURFACE_NAME "VK_KHR_android_surface"
Jesse Hall1356b0d2015-11-23 17:24:58 -080093
Jesse Halleb02c472017-02-24 15:13:45 -080094// 10
Jesse Hall7ba0ac72017-07-07 17:13:23 -070095@extension("VK_KHR_win32_surface") define VK_KHR_WIN32_SURFACE_SPEC_VERSION 6
Jesse Hall3e0dc8f2015-11-30 00:42:57 -080096@extension("VK_KHR_win32_surface") define VK_KHR_WIN32_SURFACE_NAME "VK_KHR_win32_surface"
Jesse Hall1356b0d2015-11-23 17:24:58 -080097
Jesse Halleb02c472017-02-24 15:13:45 -080098// 11
Yiwei Zhang14f4d422019-04-17 12:24:39 -070099@extension("VK_ANDROID_native_buffer") define VK_ANDROID_NATIVE_BUFFER_SPEC_VERSION 8
Chia-I Wub262ddc2016-03-22 07:38:20 +0800100@extension("VK_ANDROID_native_buffer") define VK_ANDROID_NATIVE_BUFFER_NAME "VK_ANDROID_native_buffer"
101
Jesse Halleb02c472017-02-24 15:13:45 -0800102// 12
Daniel Koch09f7bf92017-10-05 00:26:58 -0400103@extension("VK_EXT_debug_report") define VK_EXT_DEBUG_REPORT_SPEC_VERSION 9
Jesse Hall715b86a2016-01-16 16:34:29 -0800104@extension("VK_EXT_debug_report") define VK_EXT_DEBUG_REPORT_NAME "VK_EXT_debug_report"
105
Jesse Halleb02c472017-02-24 15:13:45 -0800106// 13
Jesse Hall26763382016-05-20 07:13:52 -0700107@extension("VK_NV_glsl_shader") define VK_NV_GLSL_SHADER_SPEC_VERSION 1
108@extension("VK_NV_glsl_shader") define VK_NV_GLSL_SHADER_NAME "VK_NV_glsl_shader"
109
Jesse Hall77726222017-09-19 14:49:27 -0500110// 14
111@extension("VK_EXT_depth_range_unrestricted") define VK_EXT_DEPTH_RANGE_UNRESTRICTED_SPEC_VERSION 1
112@extension("VK_EXT_depth_range_unrestricted") define VK_EXT_DEPTH_RANGE_UNRESTRICTED_NAME "VK_EXT_depth_range_unrestricted"
113
Jesse Halleb02c472017-02-24 15:13:45 -0800114// 15
Jesse Hall26763382016-05-20 07:13:52 -0700115@extension("VK_KHR_sampler_mirror_clamp_to_edge") define VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_SPEC_VERSION 1
116@extension("VK_KHR_sampler_mirror_clamp_to_edge") define VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_NAME "VK_KHR_sampler_mirror_clamp_to_edge"
117
Jesse Halleb02c472017-02-24 15:13:45 -0800118// 16
Jesse Hall26763382016-05-20 07:13:52 -0700119@extension("VK_IMG_filter_cubic") define VK_IMG_FILTER_CUBIC_SPEC_VERSION 1
120@extension("VK_IMG_filter_cubic") define VK_IMG_FILTER_CUBIC_NAME "VK_IMG_filter_cubic"
121
Jesse Halleb02c472017-02-24 15:13:45 -0800122// 19
Jesse Hall26763382016-05-20 07:13:52 -0700123@extension("VK_AMD_rasterization_order") define VK_AMD_RASTERIZATION_ORDER_SPEC_VERSION 1
124@extension("VK_AMD_rasterization_order") define VK_AMD_RASTERIZATION_ORDER_NAME "VK_AMD_rasterization_order"
125
Jesse Halleb02c472017-02-24 15:13:45 -0800126// 21
Jesse Hall56d386a2016-07-26 15:20:40 -0700127@extension("VK_AMD_shader_trinary_minmax") define VK_AMD_SHADER_TRINARY_MINMAX_SPEC_VERSION 1
128@extension("VK_AMD_shader_trinary_minmax") define VK_AMD_SHADER_TRINARY_MINMAX_EXTENSION_NAME "VK_AMD_shader_trinary_minmax"
129
Jesse Halleb02c472017-02-24 15:13:45 -0800130// 22
Jesse Hall56d386a2016-07-26 15:20:40 -0700131@extension("VK_AMD_shader_explicit_vertex_parameter") define VK_AMD_SHADER_EXPLICIT_VERTEX_PARAMETER_SPEC_VERSION 1
132@extension("VK_AMD_shader_explicit_vertex_parameter") define VK_AMD_SHADER_EXPLICIT_VERTEX_PARAMETER_EXTENSION_NAME "VK_AMD_shader_explicit_vertex_parameter"
133
Jesse Halleb02c472017-02-24 15:13:45 -0800134// 23
Jesse Hall8f49fcb2017-03-06 16:02:58 -0800135@extension("VK_EXT_debug_marker") define VK_EXT_DEBUG_MARKER_SPEC_VERSION 4
Jesse Hall26763382016-05-20 07:13:52 -0700136@extension("VK_EXT_debug_marker") define VK_EXT_DEBUG_MARKER_NAME "VK_EXT_debug_marker"
137
Jesse Halleb02c472017-02-24 15:13:45 -0800138// 26
Jesse Hall56d386a2016-07-26 15:20:40 -0700139@extension("VK_AMD_gcn_shader") define VK_AMD_GCN_SHADER_SPEC_VERSION 1
140@extension("VK_AMD_gcn_shader") define VK_AMD_GCN_SHADER_EXTENSION_NAME "VK_AMD_gcn_shader"
141
Jesse Halleb02c472017-02-24 15:13:45 -0800142// 27
Jesse Hall56d386a2016-07-26 15:20:40 -0700143@extension("VK_NV_dedicated_allocation") define VK_NV_DEDICATED_ALLOCATION_SPEC_VERSION 1
144@extension("VK_NV_dedicated_allocation") define VK_NV_DEDICATED_ALLOCATION_EXTENSION_NAME "VK_NV_dedicated_allocation"
145
Jesse Halleb02c472017-02-24 15:13:45 -0800146// 28
Chris Forbes289cb792016-12-30 15:03:55 +1300147@extension("VK_IMG_format_pvrtc") define VK_IMG_FORMAT_PVRTC_SPEC_VERSION 1
148@extension("VK_IMG_format_pvrtc") define VK_IMG_FORMAT_PVRTC_EXTENSION_NAME "VK_IMG_format_pvrtc"
149
Jesse Hallf47e8f82018-10-27 23:41:45 -0700150// 29
151@extension("VK_EXT_transform_feedback") define VK_EXT_TRANSFORM_FEEDBACK_SPEC_VERSION 1
152@extension("VK_EXT_transform_feedback") define VK_EXT_TRANSFORM_FEEDBACK_EXTENSION_NAME "VK_EXT_transform_feedback"
153
Jesse Halleb02c472017-02-24 15:13:45 -0800154// 34
155@extension("VK_AMD_draw_indirect_count") define VK_AMD_DRAW_INDIRECT_COUNT_SPEC_VERSION 1
156@extension("VK_AMD_draw_indirect_count") define VK_AMD_DRAW_INDIRECT_COUNT_EXTENSION_NAME "VK_AMD_draw_indirect_count"
157
158// 36
159@extension("VK_AMD_negative_viewport_height") define VK_AMD_NEGATIVE_VIEWPORT_HEIGHT_SPEC_VERSION 1
160@extension("VK_AMD_negative_viewport_height") define VK_AMD_NEGATIVE_VIEWPORT_HEIGHT_EXTENSION_NAME "VK_AMD_negative_viewport_height"
161
162// 37
163@extension("VK_AMD_gpu_shader_half_float") define VK_AMD_GPU_SHADER_HALF_FLOAT_SPEC_VERSION 1
164@extension("VK_AMD_gpu_shader_half_float") define VK_AMD_GPU_SHADER_HALF_FLOAT_EXTENSION_NAME "VK_AMD_gpu_shader_half_float"
165
166// 38
167@extension("VK_AMD_shader_ballot") define VK_AMD_SHADER_BALLOT_SPEC_VERSION 1
168@extension("VK_AMD_shader_ballot") define VK_AMD_SHADER_BALLOT_EXTENSION_NAME "VK_AMD_shader_ballot"
169
Jesse Hall7ba0ac72017-07-07 17:13:23 -0700170// 42
171@extension("VK_AMD_texture_gather_bias_lod") define VK_AMD_TEXTURE_GATHER_BIAS_LOD_SPEC_VERSION 1
172@extension("VK_AMD_texture_gather_bias_lod") define VK_AMD_TEXTURE_GATHER_BIAS_LOD_EXTENSION_NAME "VK_AMD_texture_gather_bias_lod"
173
Jesse Hall8c954d32018-01-17 22:06:20 -0800174// 43
175@extension("VK_AMD_shader_info") define VK_AMD_SHADER_INFO_SPEC_VERSION 1
176@extension("VK_AMD_shader_info") define VK_AMD_SHADER_INFO_EXTENSION_NAME "VK_AMD_shader_info"
177
178// 47
179@extension("VK_AMD_shader_image_load_store_lod") define VK_AMD_SHADER_IMAGE_LOAD_STORE_LOD_SPEC_VERSION 1
180@extension("VK_AMD_shader_image_load_store_lod") define VK_AMD_SHADER_IMAGE_LOAD_STORE_LOD_EXTENSION_NAME "VK_AMD_shader_image_load_store_lod"
181
Jesse Hallb5297192018-09-22 20:52:13 +0200182// 51
183@extension("VK_NV_corner_sampled_image") define VK_NV_CORNER_SAMPLED_IMAGE_SPEC_VERSION 2
184@extension("VK_NV_corner_sampled_image") define VK_NV_CORNER_SAMPLED_IMAGE_EXTENSION_NAME "VK_NV_corner_sampled_image"
185
Jesse Hallad250842017-03-10 18:35:38 -0800186// 54
Daniel Koch09f7bf92017-10-05 00:26:58 -0400187@extension("VK_KHR_multiview") define VK_KHR_MULTIVIEW_SPEC_VERSION 1
188@extension("VK_KHR_multiview") define VK_KHR_MULTIVIEW_EXTENSION_NAME "VK_KHR_multiview"
Jesse Hallad250842017-03-10 18:35:38 -0800189
Jesse Halleb02c472017-02-24 15:13:45 -0800190// 56
Chris Forbes289cb792016-12-30 15:03:55 +1300191@extension("VK_NV_external_memory_capabilities") define VK_NV_EXTERNAL_MEMORY_CAPABILITIES_SPEC_VERSION 1
192@extension("VK_NV_external_memory_capabilities") define VK_NV_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME "VK_NV_external_memory_capabilities"
193
Jesse Halleb02c472017-02-24 15:13:45 -0800194// 57
Chris Forbes289cb792016-12-30 15:03:55 +1300195@extension("VK_NV_external_memory") define VK_NV_EXTERNAL_MEMORY_SPEC_VERSION 1
196@extension("VK_NV_external_memory") define VK_NV_EXTERNAL_MEMORY_EXTENSION_NAME "VK_NV_external_memory"
197
Jesse Halleb02c472017-02-24 15:13:45 -0800198// 58
Chris Forbes289cb792016-12-30 15:03:55 +1300199@extension("VK_NV_external_memory_win32") define VK_NV_EXTERNAL_MEMORY_WIN32_SPEC_VERSION 1
200@extension("VK_NV_external_memory_win32") define VK_NV_EXTERNAL_MEMORY_WIN32_EXTENSION_NAME "VK_NV_external_memory_win32"
201
Jesse Halleb02c472017-02-24 15:13:45 -0800202// 59
Chris Forbes289cb792016-12-30 15:03:55 +1300203@extension("VK_NV_win32_keyed_mutex") define VK_NV_WIN32_KEYED_MUTEX_SPEC_VERSION 1
204@extension("VK_NV_win32_keyed_mutex") define VK_NV_WIN32_KEYED_MUTEX_EXTENSION_NAME "VK_NV_win32_keyed_mutex"
205
Jesse Hall889cd9a2017-02-25 22:12:23 -0800206// 60
207@extension("VK_KHR_get_physical_device_properties2") define VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_SPEC_VERSION 1
208@extension("VK_KHR_get_physical_device_properties2") define VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME "VK_KHR_get_physical_device_properties2"
209
Jesse Hallad250842017-03-10 18:35:38 -0800210// 61
Daniel Koch09f7bf92017-10-05 00:26:58 -0400211@extension("VK_KHR_device_group") define VK_KHR_DEVICE_GROUP_SPEC_VERSION 3
212@extension("VK_KHR_device_group") define VK_KHR_DEVICE_GROUP_EXTENSION_NAME "VK_KHR_device_group"
Jesse Hallad250842017-03-10 18:35:38 -0800213
Jesse Halleb02c472017-02-24 15:13:45 -0800214// 62
Chris Forbes289cb792016-12-30 15:03:55 +1300215@extension("VK_EXT_validation_flags") define VK_EXT_VALIDATION_FLAGS_SPEC_VERSION 1
216@extension("VK_EXT_validation_flags") define VK_EXT_VALIDATION_FLAGS_EXTENSION_NAME "VK_EXT_validation_flags"
217
Jesse Hall77ad05b2017-03-10 22:02:20 -0800218// 63
219@extension("VK_NN_vi_surface") define VK_NN_VI_SURFACE_SPEC_VERSION 1
220@extension("VK_NN_vi_surface") define VK_NN_VI_SURFACE_EXTENSION_NAME "VK_NN_vi_surface"
221
222// 64
223@extension("VK_KHR_shader_draw_parameters") define VK_KHR_SHADER_DRAW_PARAMETERS_SPEC_VERSION 1
224@extension("VK_KHR_shader_draw_parameters") define VK_KHR_SHADER_DRAW_PARAMETERS_EXTENSION_NAME "VK_KHR_shader_draw_parameters"
225
226// 65
227@extension("VK_EXT_shader_subgroup_ballot") define VK_EXT_SHADER_SUBGROUP_BALLOT_SPEC_VERSION 1
228@extension("VK_EXT_shader_subgroup_ballot") define VK_EXT_SHADER_SUBGROUP_BALLOT_EXTENSION_NAME "VK_EXT_shader_subgroup_ballot"
229
230// 66
231@extension("VK_EXT_shader_subgroup_vote") define VK_EXT_SHADER_SUBGROUP_VOTE_SPEC_VERSION 1
232@extension("VK_EXT_shader_subgroup_vote") define VK_EXT_SHADER_SUBGROUP_VOTE_EXTENSION_NAME "VK_EXT_shader_subgroup_vote"
233
Jesse Hall4af6c462018-09-10 09:04:25 -0700234// 68
235@extension("VK_EXT_astc_decode_mode") define VK_EXT_ASTC_DECODE_MODE_SPEC_VERSION 1
236@extension("VK_EXT_astc_decode_mode") define VK_EXT_ASTC_DECODE_MODE_EXTENSION_NAME "VK_EXT_astc_decode_mode"
237
Jesse Hall77ad05b2017-03-10 22:02:20 -0800238// 70
Jesse Hall72e6a132018-04-06 13:00:44 -0700239@extension("VK_KHR_maintenance1") define VK_KHR_MAINTENANCE1_SPEC_VERSION 2
Jesse Hall77ad05b2017-03-10 22:02:20 -0800240@extension("VK_KHR_maintenance1") define VK_KHR_MAINTENANCE1_EXTENSION_NAME "VK_KHR_maintenance1"
241
Jesse Hallad250842017-03-10 18:35:38 -0800242// 71
Daniel Koch09f7bf92017-10-05 00:26:58 -0400243@extension("VK_KHR_device_group_creation") define VK_KHR_DEVICE_GROUP_CREATION_SPEC_VERSION 1
244@extension("VK_KHR_device_group_creation") define VK_KHR_DEVICE_GROUP_CREATION_EXTENSION_NAME "VK_KHR_device_group_creation"
Jesse Hallad250842017-03-10 18:35:38 -0800245
246// 72
Jesse Hall9492f992017-08-28 12:10:06 -0700247@extension("VK_KHR_external_memory_capabilities") define VK_KHR_EXTERNAL_MEMORY_CAPABILITIES_SPEC_VERSION 1
248@extension("VK_KHR_external_memory_capabilities") define VK_KHR_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME "VK_KHR_external_memory_capabilities"
Jesse Hallad250842017-03-10 18:35:38 -0800249
250// 73
Jesse Hall9492f992017-08-28 12:10:06 -0700251@extension("VK_KHR_external_memory") define VK_KHR_EXTERNAL_MEMORY_SPEC_VERSION 1
252@extension("VK_KHR_external_memory") define VK_KHR_EXTERNAL_MEMORY_EXTENSION_NAME "VK_KHR_external_memory"
Jesse Hallad250842017-03-10 18:35:38 -0800253
254// 74
Jesse Hall9492f992017-08-28 12:10:06 -0700255@extension("VK_KHR_external_memory_win32") define VK_KHR_EXTERNAL_MEMORY_WIN32_SPEC_VERSION 1
256@extension("VK_KHR_external_memory_win32") define VK_KHR_EXTERNAL_MEMORY_WIN32_EXTENSION_NAME "VK_KHR_external_memory_win32"
Jesse Hallad250842017-03-10 18:35:38 -0800257
258// 75
Jesse Hall9492f992017-08-28 12:10:06 -0700259@extension("VK_KHR_external_memory_fd") define VK_KHR_EXTERNAL_MEMORY_FD_SPEC_VERSION 1
260@extension("VK_KHR_external_memory_fd") define VK_KHR_EXTERNAL_MEMORY_FD_EXTENSION_NAME "VK_KHR_external_memory_fd"
Jesse Hallad250842017-03-10 18:35:38 -0800261
262// 76
Jesse Hall9492f992017-08-28 12:10:06 -0700263@extension("VK_KHR_win32_keyed_mutex") define VK_KHR_WIN32_KEYED_MUTEX_SPEC_VERSION 1
264@extension("VK_KHR_win32_keyed_mutex") define VK_KHR_WIN32_KEYED_MUTEX_EXTENSION_NAME "VK_KHR_win32_keyed_mutex"
Jesse Hallad250842017-03-10 18:35:38 -0800265
266// 77
Jesse Hall9492f992017-08-28 12:10:06 -0700267@extension("VK_KHR_external_semaphore_capabilities") define VK_KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_SPEC_VERSION 1
268@extension("VK_KHR_external_semaphore_capabilities") define VK_KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_EXTENSION_NAME "VK_KHR_external_semaphore_capabilities"
Jesse Hallad250842017-03-10 18:35:38 -0800269
270// 78
Jesse Hall9492f992017-08-28 12:10:06 -0700271@extension("VK_KHR_external_semaphore") define VK_KHR_EXTERNAL_SEMAPHORE_SPEC_VERSION 1
272@extension("VK_KHR_external_semaphore") define VK_KHR_EXTERNAL_SEMAPHORE_EXTENSION_NAME "VK_KHR_external_semaphore"
Jesse Hallad250842017-03-10 18:35:38 -0800273
274// 79
Jesse Hall9492f992017-08-28 12:10:06 -0700275@extension("VK_KHR_external_semaphore_win32") define VK_KHR_EXTERNAL_SEMAPHORE_WIN32_SPEC_VERSION 1
276@extension("VK_KHR_external_semaphore_win32") define VK_KHR_EXTERNAL_SEMAPHORE_WIN32_EXTENSION_NAME "VK_KHR_external_semaphore_win32"
Jesse Hallad250842017-03-10 18:35:38 -0800277
278// 80
Jesse Hall9492f992017-08-28 12:10:06 -0700279@extension("VK_KHR_external_semaphore_fd") define VK_KHR_EXTERNAL_SEMAPHORE_FD_SPEC_VERSION 1
280@extension("VK_KHR_external_semaphore_fd") define VK_KHR_EXTERNAL_SEMAPHORE_FD_EXTENSION_NAME "VK_KHR_external_semaphore_fd"
Jesse Hallad250842017-03-10 18:35:38 -0800281
282// 81
Daniel Koch09f7bf92017-10-05 00:26:58 -0400283@extension("VK_KHR_push_descriptor") define VK_KHR_PUSH_DESCRIPTOR_SPEC_VERSION 2
Jesse Hallad250842017-03-10 18:35:38 -0800284@extension("VK_KHR_push_descriptor") define VK_KHR_PUSH_DESCRIPTOR_EXTENSION_NAME "VK_KHR_push_descriptor"
285
Jesse Halla13a3cf2018-07-09 15:51:52 -0700286// 82
287@extension("VK_EXT_conditional_rendering") define VK_EXT_CONDITIONAL_RENDERING_SPEC_VERSION 1
288@extension("VK_EXT_conditional_rendering") define VK_EXT_CONDITIONAL_RENDERING_EXTENSION_NAME "VK_EXT_conditional_rendering"
289
Jesse Halla9d30ff2018-12-04 14:55:50 -0800290// 83
291@extension("VK_KHR_shader_float16_int8") define VK_KHR_SHADER_FLOAT16_INT8_SPEC_VERSION 1
292@extension("VK_KHR_shader_float16_int8") define VK_KHR_SHADER_FLOAT16_INT8_EXTENSION_NAME "VK_KHR_shader_float16_int8"
293
Jesse Hall9492f992017-08-28 12:10:06 -0700294// 84
295@extension("VK_KHR_16bit_storage") define VK_KHR_16BIT_STORAGE_SPEC_VERSION 1
296@extension("VK_KHR_16bit_storage") define VK_KHR_16BIT_STORAGE_EXTENSION_NAME "VK_KHR_16bit_storage"
297
Jesse Hall889cd9a2017-02-25 22:12:23 -0800298// 85
299@extension("VK_KHR_incremental_present") define VK_KHR_INCREMENTAL_PRESENT_SPEC_VERSION 1
Jesse Hallf5ad48b2017-03-20 13:09:19 -0700300@extension("VK_KHR_incremental_present") define VK_KHR_INCREMENTAL_PRESENT_EXTENSION_NAME "VK_KHR_incremental_present"
Jesse Hall889cd9a2017-02-25 22:12:23 -0800301
Jesse Hallad250842017-03-10 18:35:38 -0800302// 86
303@extension("VK_KHR_descriptor_update_template") define VK_KHR_DESCRIPTOR_UPDATE_TEMPLATE_SPEC_VERSION 1
304@extension("VK_KHR_descriptor_update_template") define VK_KHR_DESCRIPTOR_UPDATE_TEMPLATE_EXTENSION_NAME "VK_KHR_descriptor_update_template"
305
Jesse Halleb02c472017-02-24 15:13:45 -0800306// 87
Jesse Hall77726222017-09-19 14:49:27 -0500307@extension("VK_NVX_device_generated_commands") define VK_NVX_DEVICE_GENERATED_COMMANDS_SPEC_VERSION 3
Chris Forbes289cb792016-12-30 15:03:55 +1300308@extension("VK_NVX_device_generated_commands") define VK_NVX_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME "VK_NVX_device_generated_commands"
309
Jesse Hallad250842017-03-10 18:35:38 -0800310// 88
311@extension("VK_NV_clip_space_w_scaling") define VK_NV_CLIP_SPACE_W_SCALING_SPEC_VERSION 1
312@extension("VK_NV_clip_space_w_scaling") define VK_NV_CLIP_SPACE_W_SCALING_EXTENSION_NAME "VK_NV_clip_space_w_scaling"
313
Jesse Hall77ad05b2017-03-10 22:02:20 -0800314// 89
315@extension("VK_EXT_direct_mode_display") define VK_EXT_DIRECT_MODE_DISPLAY_SPEC_VERSION 1
316@extension("VK_EXT_direct_mode_display") define VK_EXT_DIRECT_MODE_DISPLAY_EXTENSION_NAME "VK_EXT_direct_mode_display"
317
318// 90
319@extension("VK_EXT_acquire_xlib_display") define VK_EXT_ACQUIRE_XLIB_DISPLAY_SPEC_VERSION 1
320@extension("VK_EXT_acquire_xlib_display") define VK_EXT_ACQUIRE_XLIB_DISPLAY_EXTENSION_NAME "VK_EXT_acquire_xlib_display"
321
322// 91
323@extension("VK_EXT_display_surface_counter") define VK_EXT_DISPLAY_SURFACE_COUNTER_SPEC_VERSION 1
324@extension("VK_EXT_display_surface_counter") define VK_EXT_DISPLAY_SURFACE_COUNTER_EXTENSION_NAME "VK_EXT_display_surface_counter"
325
326// 92
327@extension("VK_EXT_display_control") define VK_EXT_DISPLAY_CONTROL_SPEC_VERSION 1
328@extension("VK_EXT_display_control") define VK_EXT_DISPLAY_CONTROL_COUNTER_EXTENSION_NAME "VK_EXT_display_control"
329
Jesse Hall889cd9a2017-02-25 22:12:23 -0800330// 93
331@extension("VK_GOOGLE_display_timing") define VK_GOOGLE_DISPLAY_TIMING_SPEC_VERSION 1
Jesse Hallfdc8ab32017-03-10 21:01:57 -0800332@extension("VK_GOOGLE_display_timing") define VK_GOOGLE_DISPLAY_TIMING_EXTENSION_NAME "VK_GOOGLE_display_timing"
Jesse Hall889cd9a2017-02-25 22:12:23 -0800333
Jesse Hallad250842017-03-10 18:35:38 -0800334// 95
335@extension("VK_NV_sample_mask_override_coverage") define VK_NV_SAMPLE_MASK_OVERRIDE_COVERAGE_SPEC_VERSION 1
336@extension("VK_NV_sample_mask_override_coverage") define VK_NV_SAMPLE_MASK_OVERRIDE_COVERAGE_EXTENSION_NAME "VK_NV_sample_mask_override_coverage"
337
338// 96
339@extension("VK_NV_geometry_shader_passthrough") define VK_NV_GEOMETRY_SHADER_PASSTHROUGH_SPEC_VERSION 1
340@extension("VK_NV_geometry_shader_passthrough") define VK_NV_GEOMETRY_SHADER_PASSTHROUGH_EXTENSION_NAME "VK_NV_geometry_shader_passthrough"
341
342// 97
343@extension("VK_NV_viewport_array2") define VK_NV_VIEWPORT_ARRAY2_SPEC_VERSION 1
344@extension("VK_NV_viewport_array2") define VK_NV_VIEWPORT_ARRAY2_EXTENSION_NAME "VK_NV_viewport_array2"
345
346// 98
347@extension("VK_NVX_multiview_per_view_attributes") define VK_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_SPEC_VERSION 1
348@extension("VK_NVX_multiview_per_view_attributes") define VK_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_EXTENSION_NAME "VK_NVX_multiview_per_view_attributes"
349
350// 99
351@extension("VK_NV_viewport_swizzle") define VK_NV_VIEWPORT_SWIZZLE_SPEC_VERSION 1
352@extension("VK_NV_viewport_swizzle") define VK_NV_VIEWPORT_SWIZZLE_EXTENSION_NAME "VK_NV_viewport_swizzle"
353
354// 100
355@extension("VK_EXT_discard_rectangles") define VK_EXT_DISCARD_RECTANGLES_SPEC_VERSION 1
356@extension("VK_EXT_discard_rectangles") define VK_EXT_DISCARD_RECTANGLES_EXTENSION_NAME "VK_EXT_discard_rectangles"
357
Jesse Hall8c954d32018-01-17 22:06:20 -0800358// 102
359@extension("VK_EXT_conservative_rasterization") define VK_EXT_CONSERVATIVE_RASTERIZATION_SPEC_VERSION 1
360@extension("VK_EXT_conservative_rasterization") define VK_EXT_CONSERVATIVE_RASTERIZATION_EXTENSION_NAME "VK_EXT_conservative_rasterization"
361
Jesse Hall77ad05b2017-03-10 22:02:20 -0800362// 105
Jesse Hall77726222017-09-19 14:49:27 -0500363@extension("VK_EXT_swapchain_colorspace") define VK_EXT_SWAPCHAIN_COLORSPACE_SPEC_VERSION 3
Jesse Hallf5ad48b2017-03-20 13:09:19 -0700364@extension("VK_EXT_swapchain_colorspace") define VK_EXT_SWAPCHAIN_COLORSPACE_EXTENSION_NAME "VK_EXT_swapchain_colorspace"
Jesse Hall77ad05b2017-03-10 22:02:20 -0800365
Jesse Hall889cd9a2017-02-25 22:12:23 -0800366// 106
367@extension("VK_EXT_hdr_metadata") define VK_EXT_HDR_METADATA_SPEC_VERSION 1
368@extension("VK_EXT_hdr_metadata") define VK_EXT_HDR_METADATA_EXTENSION_NAME "VK_EXT_hdr_metadata"
369
Jesse Halla13a3cf2018-07-09 15:51:52 -0700370// 110
371@extension("VK_KHR_create_renderpass2") define VK_KHR_CREATE_RENDERPASS2_SPEC_VERSION 1
372@extension("VK_KHR_create_renderpass2") define VK_KHR_CREATE_RENDERPASS2_EXTENSION_NAME "VK_KHR_create_renderpass2"
373
Jesse Hall889cd9a2017-02-25 22:12:23 -0800374// 112
Chris Forbes1d5f68c2017-01-31 10:17:01 +1300375@extension("VK_KHR_shared_presentable_image") define VK_KHR_SHARED_PRESENTABLE_IMAGE_SPEC_VERSION 1
376@extension("VK_KHR_shared_presentable_image") define VK_KHR_SHARED_PRESENTABLE_IMAGE_EXTENSION_NAME "VK_KHR_shared_presentable_image"
Chris Forbes2e12cb82017-01-18 11:45:17 +1300377
Jesse Hall9492f992017-08-28 12:10:06 -0700378// 113
379@extension("VK_KHR_external_fence_capabilities") define VK_KHR_EXTERNAL_FENCE_CAPABILITIES_SPEC_VERSION 1
380@extension("VK_KHR_external_fence_capabilities") define VK_KHR_EXTERNAL_FENCE_CAPABILITIES_EXTENSION_NAME "VK_KHR_external_fence_capabilities"
381
382// 114
383@extension("VK_KHR_external_fence") define VK_KHR_EXTERNAL_FENCE_SPEC_VERSION 1
384@extension("VK_KHR_external_fence") define VK_KHR_EXTERNAL_FENCE_EXTENSION_NAME "VK_KHR_external_fence"
385
386// 115
387@extension("VK_KHR_external_fence_win32") define VK_KHR_EXTERNAL_FENCE_WIN32_SPEC_VERSION 1
388@extension("VK_KHR_external_fence_win32") define VK_KHR_EXTERNAL_FENCE_WIN32_EXTENSION_NAME "VK_KHR_external_fence_win32"
389
390// 116
391@extension("VK_KHR_external_fence_fd") define VK_KHR_EXTERNAL_FENCE_FD_SPEC_VERSION 1
392@extension("VK_KHR_external_fence_fd") define VK_KHR_EXTERNAL_FENCE_FD_EXTENSION_NAME "VK_KHR_external_fence_fd"
393
Jesse Hall076f95d2017-09-20 11:34:47 -0700394// 118
395@extension("VK_KHR_maintenance2") define VK_KHR_MAINTENANCE2_SPEC_VERSION 1
396@extension("VK_KHR_maintenance2") define VK_KHR_MAINTENANCE2_EXTENSION_NAME "VK_KHR_maintenance2"
397
Jesse Hall05556b12017-05-18 17:40:25 -0700398// 120
Chris Forbese2d3ee12017-03-16 16:10:15 +1300399@extension("VK_KHR_get_surface_capabilities2") define VK_KHR_GET_SURFACE_CAPABILITIES_2_SPEC_VERSION 1
400@extension("VK_KHR_get_surface_capabilities2") define VK_KHR_GET_SURFACE_CAPABILITIES_2_EXTENSION_NAME "VK_KHR_get_surface_capabilities2"
401
Jesse Hall9492f992017-08-28 12:10:06 -0700402// 121
403@extension("VK_KHR_variable_pointers") define VK_KHR_VARIABLE_POINTERS_SPEC_VERSION 1
404@extension("VK_KHR_variable_pointers") define VK_KHR_VARIABLE_POINTERS_EXTENSION_NAME "VK_KHR_variable_pointers"
405
Jesse Hall54f8d132018-04-18 08:16:59 -0700406// 122
407@extension("VK_KHR_get_display_properties2") define VK_KHR_GET_DISPLAY_PROPERTIES_2_SPEC_VERSION 1
408@extension("VK_KHR_get_display_properties2") define VK_KHR_GET_DISPLAY_PROPERTIES_2_EXTENSION_NAME "VK_KHR_get_display_properties2"
409
Jesse Hallad250842017-03-10 18:35:38 -0800410// 123
411@extension("VK_MVK_ios_surface") define VK_MVK_IOS_SURFACE_SPEC_VERSION 1
412@extension("VK_MVK_ios_surface") define VK_MVK_IOS_SURFACE_EXTENSION_NAME "VK_MVK_ios_surface"
413
414// 124
415@extension("VK_MVK_macos_surface") define VK_MVK_MACOS_SURFACE_SPEC_VERSION 1
416@extension("VK_MVK_macos_surface") define VK_MVK_MACOS_SURFACE_EXTENSION_NAME "VK_MVK_macos_surface"
417
Jesse Hall8c954d32018-01-17 22:06:20 -0800418// 126
419@extension("VK_EXT_external_memory_dma_buf") define VK_EXT_EXTERNAL_MEMORY_DMA_BUF_SPEC_VERSION 1
420@extension("VK_EXT_external_memory_dma_buf") define VK_EXT_EXTERNAL_MEMORY_DMA_BUF_EXTENSION_NAME "VK_EXT_external_memory_dma_buf"
421
422// 127
423@extension("VK_EXT_queue_family_foreign") define VK_EXT_QUEUE_FAMILY_FOREIGN_SPEC_VERSION 1
424@extension("VK_EXT_queue_family_foreign") define VK_EXT_QUEUE_FAMILY_FOREIGN_EXTENSION_NAME "VK_EXT_queue_family_foreign"
425
Jesse Hall9492f992017-08-28 12:10:06 -0700426// 128
Jesse Hall77726222017-09-19 14:49:27 -0500427@extension("VK_KHR_dedicated_allocation") define VK_KHR_DEDICATED_ALLOCATION_SPEC_VERSION 3
Jesse Hall9492f992017-08-28 12:10:06 -0700428@extension("VK_KHR_dedicated_allocation") define VK_KHR_DEDICATED_ALLOCATION_EXTENSION_NAME "VK_KHR_dedicated_allocation"
429
Jesse Hall8c954d32018-01-17 22:06:20 -0800430// 128
431@extension("VK_EXT_debug_utils") define VK_EXT_DEBUG_UTILS_SPEC_VERSION 1
432@extension("VK_EXT_debug_utils") define VK_EXT_DEBUG_UTILS_EXTENSION_NAME "VK_EXT_debug_utils"
433
Jesse Hall36215a92018-01-18 15:04:37 -0800434// 130
Jesse Hall72e6a132018-04-06 13:00:44 -0700435@extension("VK_ANDROID_external_memory_android_hardware_buffer") define VK_ANDROID_EXTERNAL_MEMORY_ANDROID_HARDWARE_BUFFER_SPEC_VERSION 3
Jesse Hall36215a92018-01-18 15:04:37 -0800436@extension("VK_ANDROID_external_memory_android_hardware_buffer") define VK_ANDROID_EXTERNAL_MEMORY_ANDROID_HARDWARE_BUFFER_EXTENSION_NAME "VK_ANDROID_external_memory_android_hardware_buffer"
437
Jesse Hall7ba0ac72017-07-07 17:13:23 -0700438// 131
439@extension("VK_EXT_sampler_filter_minmax") define VK_EXT_SAMPLER_FILTER_MINMAX_SPEC_VERSION 1
440@extension("VK_EXT_sampler_filter_minmax") define VK_EXT_SAMPLER_FILTER_MINMAX_EXTENSION_NAME "VK_EXT_sampler_filter_minmax"
441
Jesse Hall9492f992017-08-28 12:10:06 -0700442// 132
443@extension("VK_KHR_storage_buffer_storage_class") define VK_KHR_STORAGE_BUFFER_STORAGE_CLASS_SPEC_VERSION 1
444@extension("VK_KHR_storage_buffer_storage_class") define VK_KHR_STORAGE_BUFFER_STORAGE_CLASS_EXTENSION_NAME "VK_KHR_storage_buffer_storage_class"
445
Jesse Hall7ba0ac72017-07-07 17:13:23 -0700446// 133
447@extension("VK_AMD_gpu_shader_int16") define VK_AMD_GPU_SHADER_INT16_SPEC_VERSION 1
448@extension("VK_AMD_gpu_shader_int16") define VK_AMD_GPU_SHADER_INT16_EXTENSION_NAME "VK_AMD_gpu_shader_int16"
449
Jesse Hall77726222017-09-19 14:49:27 -0500450// 137
451@extension("VK_AMD_mixed_attachment_samples") define VK_AMD_MIXED_ATTACHMENT_SAMPLES_SPEC_VERSION 1
452@extension("VK_AMD_mixed_attachment_samples") define VK_AMD_MIXED_ATTACHMENT_SAMPLES_EXTENSION_NAME "VK_AMD_mixed_attachment_samples"
453
454// 138
455@extension("VK_AMD_shader_fragment_mask") define VK_AMD_SHADER_FRAGMENT_MASK_SPEC_VERSION 1
456@extension("VK_AMD_shader_fragment_mask") define VK_AMD_SHADER_FRAGMENT_MASK_EXTENSION_NAME "VK_AMD_shader_fragment_mask"
457
Jesse Hall4af6c462018-09-10 09:04:25 -0700458// 139
459@extension("VK_EXT_inline_uniform_block") define VK_EXT_INLINE_UNIFORM_BLOCK_SPEC_VERSION 1
460@extension("VK_EXT_inline_uniform_block") define VK_EXT_INLINE_UNIFORM_BLOCK_EXTENSION_NAME "VK_EXT_inline_uniform_block"
461
Jesse Hall77726222017-09-19 14:49:27 -0500462// 141
463@extension("VK_EXT_shader_stencil_export") define VK_EXT_SHADER_STENCIL_EXPORT_SPEC_VERSION 1
464@extension("VK_EXT_shader_stencil_export") define VK_EXT_SHADER_STENCIL_EXPORT_EXTENSION_NAME "VK_EXT_shader_stencil_export"
465
466// 144
467@extension("VK_EXT_sample_locations") define VK_EXT_SAMPLE_LOCATIONS_SPEC_VERSION 1
468@extension("VK_EXT_sample_locations") define VK_EXT_SAMPLE_LOCATIONS_EXTENSION_NAME "VK_EXT_sample_locations"
469
470// 145
471@extension("VK_KHR_relaxed_block_layout") define VK_KHR_RELAXED_BLOCK_LAYOUT_SPEC_VERSION 1
472@extension("VK_KHR_relaxed_block_layout") define VK_KHR_RELAXED_BLOCK_LAYOUT_EXTENSION_NAME "VK_KHR_relaxed_block_layout"
473
Jesse Hall9492f992017-08-28 12:10:06 -0700474// 147
475@extension("VK_KHR_get_memory_requirements2") define VK_KHR_GET_MEMORY_REQUIREMENTS2_SPEC_VERSION 1
476@extension("VK_KHR_get_memory_requirements2") define VK_KHR_GET_MEMORY_REQUIREMENTS2_EXTENSION_NAME "VK_KHR_get_memory_requirements2"
477
Jesse Hall076f95d2017-09-20 11:34:47 -0700478// 148
479@extension("VK_KHR_image_format_list") define VK_KHR_IMAGE_FORMAT_LIST_SPEC_VERSION 1
480@extension("VK_KHR_image_format_list") define VK_KHR_IMAGE_FORMAT_LIST_EXTENSION_NAME "VK_KHR_image_format_list"
481
Jesse Hall7ba0ac72017-07-07 17:13:23 -0700482// 149
483@extension("VK_EXT_blend_operation_advanced") define VK_EXT_BLEND_OPERATION_ADVANCED_SPEC_VERSION 2
484@extension("VK_EXT_blend_operation_advanced") define VK_EXT_BLEND_OPERATION_ADVANCED_EXTENSION_NAME "VK_EXT_blend_operation_advanced"
485
486// 150
487@extension("VK_NV_fragment_coverage_to_color") define VK_NV_FRAGMENT_COVERAGE_TO_COLOR_SPEC_VERSION 1
488@extension("VK_NV_fragment_coverage_to_color") define VK_NV_FRAGMENT_COVERAGE_TO_COLOR_EXTENSION_NAME "VK_NV_fragment_coverage_to_color"
489
490// 153
491@extension("VK_NV_framebuffer_mixed_samples") define VK_NV_FRAMEBUFFER_MIXED_SAMPLES_SPEC_VERSION 1
492@extension("VK_NV_framebuffer_mixed_samples") define VK_NV_FRAMEBUFFER_MIXED_SAMPLES_EXTENSION_NAME "VK_NV_framebuffer_mixed_samples"
493
494// 154
495@extension("VK_NV_fill_rectangle") define VK_NV_FILL_RECTANGLE_SPEC_VERSION 1
496@extension("VK_NV_fill_rectangle") define VK_NV_FILL_RECTANGLE_EXTENSION_NAME "VK_NV_fill_rectangle"
497
Jesse Hall77726222017-09-19 14:49:27 -0500498// 156
499@extension("VK_EXT_post_depth_coverage") define VK_EXT_POST_DEPTH_COVERAGE_SPEC_VERSION 1
500@extension("VK_EXT_post_depth_coverage") define VK_EXT_POST_DEPTH_COVERAGE_EXTENSION_NAME "VK_EXT_post_depth_coverage"
501
Jesse Hall076f95d2017-09-20 11:34:47 -0700502// 157
503@extension("VK_KHR_sampler_ycbcr_conversion") define VK_KHR_SAMPLER_YCBCR_CONVERSION_SPEC_VERSION 1
504@extension("VK_KHR_sampler_ycbcr_conversion") define VK_KHR_SAMPLER_YCBCR_CONVERSION_EXTENSION_NAME "VK_KHR_sampler_ycbcr_conversion"
505
506// 158
507@extension("VK_KHR_bind_memory2") define VK_KHR_BIND_MEMORY2_SPEC_VERSION 1
508@extension("VK_KHR_bind_memory2") define VK_KHR_BIND_MEMORY2_EXTENSION_NAME "VK_KHR_bind_memory2"
509
Jesse Hallf47e8f82018-10-27 23:41:45 -0700510// 159
511@extension("VK_EXT_image_drm_format_modifier") define VK_EXT_IMAGE_DRM_FORMAT_MODIFIER_SPEC_VERSION 1
512@extension("VK_EXT_image_drm_format_modifier") define VK_EXT_IMAGE_DRM_FORMAT_MODIFIER_EXTENSION_NAME "VK_EXT_image_drm_format_modifier"
513
Jesse Hall77726222017-09-19 14:49:27 -0500514// 161
515@extension("VK_EXT_validation_cache") define VK_EXT_VALIDATION_CACHE_SPEC_VERSION 1
516@extension("VK_EXT_validation_cache") define VK_EXT_VALIDATION_CACHE_EXTENSION_NAME "VK_EXT_validation_cache"
517
Jesse Hall72e6a132018-04-06 13:00:44 -0700518// 162
519@extension("VK_EXT_descriptor_indexing") define VK_EXT_DESCRIPTOR_INDEXING_SPEC_VERSION 2
520@extension("VK_EXT_descriptor_indexing") define VK_EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME "VK_EXT_descriptor_indexing"
521
Jesse Hallb5297192018-09-22 20:52:13 +0200522// 163
Jesse Hall77726222017-09-19 14:49:27 -0500523@extension("VK_EXT_shader_viewport_index_layer") define VK_EXT_SHADER_VIEWPORT_INDEX_LAYER_SPEC_VERSION 1
524@extension("VK_EXT_shader_viewport_index_layer") define VK_EXT_SHADER_VIEWPORT_INDEX_LAYER_EXTENSION_NAME "VK_EXT_shader_viewport_index_layer"
525
Jesse Hallb5297192018-09-22 20:52:13 +0200526// 165
527@extension("VK_NV_shading_rate_image") define VK_NV_SHADING_RATE_IMAGE_SPEC_VERSION 3
528@extension("VK_NV_shading_rate_image") define VK_NV_SHADING_RATE_IMAGE_EXTENSION_NAME "VK_NV_shading_rate_image"
529
530// 166
Jesse Hallbeea46d2018-12-04 14:38:07 -0800531@extension("VK_NV_ray_tracing") define VK_NV_RAY_TRACING_SPEC_VERSION 3
532@extension("VK_NV_ray_tracing") define VK_NV_RAY_TRACING_EXTENSION_NAME "VK_NV_ray_tracing"
Jesse Hallb5297192018-09-22 20:52:13 +0200533
534// 167
535@extension("VK_NV_representative_fragment_test") define VK_NV_REPRESENTATIVE_FRAGMENT_TEST_SPEC_VERSION 1
536@extension("VK_NV_representative_fragment_test") define VK_NV_REPRESENTATIVE_FRAGMENT_TEST_EXTENSION_NAME "VK_NV_representative_fragment_test"
537
Daniel Koch09f7bf92017-10-05 00:26:58 -0400538// 169
539@extension("VK_KHR_maintenance3") define VK_KHR_MAINTENANCE3_SPEC_VERSION 1
540@extension("VK_KHR_maintenance3") define VK_KHR_MAINTENANCE3_EXTENSION_NAME "VK_KHR_maintenance3"
541
Jesse Hall54f8d132018-04-18 08:16:59 -0700542// 170
543@extension("VK_KHR_draw_indirect_count") define VK_KHR_DRAW_INDIRECT_COUNT_SPEC_VERSION 1
544@extension("VK_KHR_draw_indirect_count") define VK_KHR_DRAW_INDIRECT_COUNT_EXTENSION_NAME "VK_KHR_draw_indirect_count"
545
Jesse Hall8c954d32018-01-17 22:06:20 -0800546// 175
547@extension("VK_EXT_global_priority") define VK_EXT_GLOBAL_PRIORITY_SPEC_VERSION 1
548@extension("VK_EXT_global_priority") define VK_EXT_GLOBAL_PRIORITY_EXTENSION_NAME "VK_EXT_global_priority"
549
Jesse Halla13a3cf2018-07-09 15:51:52 -0700550// 178
551@extension("VK_KHR_8bit_storage") define VK_KHR_8BIT_STORAGE_SPEC_VERSION 1
552@extension("VK_KHR_8bit_storage") define VK_KHR_8BIT_STORAGE_EXTENSION_NAME "VK_KHR_8bit_storage"
553
Jesse Hall8c954d32018-01-17 22:06:20 -0800554// 179
555@extension("VK_EXT_external_memory_host") define VK_EXT_EXTERNAL_MEMORY_HOST_SPEC_VERSION 1
556@extension("VK_EXT_external_memory_host") define VK_EXT_EXTERNAL_MEMORY_HOST_EXTENSION_NAME "VK_EXT_external_memory_host"
557
Jesse Hall72e6a132018-04-06 13:00:44 -0700558// 180
559@extension("VK_AMD_buffer_marker") define VK_AMD_BUFFER_MARKER_SPEC_VERSION 1
560@extension("VK_AMD_buffer_marker") define VK_AMD_BUFFER_MARKER_EXTENSION_NAME "VK_AMD_buffer_marker"
561
Jesse Hall2e6853c2018-10-02 14:05:37 -0700562// 181
563@extension("VK_KHR_shader_atomic_int64") define VK_KHR_SHADER_ATOMIC_INT64_SPEC_VERSION 1
564@extension("VK_KHR_shader_atomic_int64") define VK_KHR_SHADER_ATOMIC_INT64_EXTENSION_NAME "VK_KHR_shader_atomic_int64"
565
Jesse Hall72e6a132018-04-06 13:00:44 -0700566// 186
567@extension("VK_AMD_shader_core_properties") define VK_AMD_SHADER_CORE_PROPERTIES_SPEC_VERSION 1
568@extension("VK_AMD_shader_core_properties") define VK_AMD_SHADER_CORE_PROPERTIES_EXTENSION_NAME "VK_AMD_shader_core_properties"
569
Jesse Halla363a8e2018-11-05 21:18:00 -0700570// 190
571@extension("VK_AMD_memory_overallocation_behavior") define VK_AMD_MEMORY_OVERALLOCATION_BEHAVIOR_SPEC_VERSION 1
572@extension("VK_AMD_memory_overallocation_behavior") define VK_AMD_MEMORY_OVERALLOCATION_BEHAVIOR_EXTENSION_NAME "VK_AMD_memory_overallocation_behavior"
573
Jesse Hall72e6a132018-04-06 13:00:44 -0700574// 191
Jesse Hall4af6c462018-09-10 09:04:25 -0700575@extension("VK_EXT_vertex_attribute_divisor") define VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_SPEC_VERSION 2
576@extension("VK_EXT_vertex_attribute_divisor") define VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_EXTENSION_NAME "VK_EXT_vertex_attribute_divisor"
Jesse Hall72e6a132018-04-06 13:00:44 -0700577
Jesse Hall2e6853c2018-10-02 14:05:37 -0700578// 197
579@extension("VK_KHR_driver_properties") define VK_KHR_DRIVER_PROPERTIES_SPEC_VERSION 1
580@extension("VK_KHR_driver_properties") define VK_KHR_DRIVER_PROPERTIES_EXTENSION_NAME "VK_KHR_driver_properties"
581
Jesse Halla9d30ff2018-12-04 14:55:50 -0800582// 198
583@extension("VK_KHR_shader_float_controls") define VK_KHR_SHADER_FLOAT_CONTROLS_SPEC_VERSION 1
584@extension("VK_KHR_shader_float_controls") define VK_KHR_SHADER_FLOAT_CONTROLS_EXTENSION_NAME "VK_KHR_shader_float_controls"
585
Jesse Hall72e6a132018-04-06 13:00:44 -0700586// 199
587@extension("VK_NV_shader_subgroup_partitioned") define VK_NV_SHADER_SUBGROUP_PARTITIONED_SPEC_VERSION 1
588@extension("VK_NV_shader_subgroup_partitioned") define VK_NV_SHADER_SUBGROUP_PARTITIONED_EXTENSION_NAME "VK_NV_shader_subgroup_partitioned"
589
Jesse Hall48514722018-12-04 14:44:42 -0800590// 201
591@extension("VK_KHR_swapchain_mutable_format") define VK_KHR_SWAPCHAIN_MUTABLE_FORMAT_SPEC_VERSION 1
592@extension("VK_KHR_swapchain_mutable_format") define VK_KHR_SWAPCHAIN_MUTABLE_FORMAT_EXTENSION_NAME "VK_KHR_swapchain_mutable_format"
593
Jesse Hallb5297192018-09-22 20:52:13 +0200594// 202
595@extension("VK_NV_compute_shader_derivatives") define VK_NV_COMPUTE_SHADER_DERIVATIVES_SPEC_VERSION 1
596@extension("VK_NV_compute_shader_derivatives") define VK_NV_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME "VK_NV_compute_shader_derivatives"
597
598// 203
599@extension("VK_NV_mesh_shader") define VK_NV_MESH_SHADER_SPEC_VERSION 1
600@extension("VK_NV_mesh_shader") define VK_NV_MESH_SHADER_EXTENSION_NAME "VK_NV_mesh_shader"
601
602// 204
603@extension("VK_NV_fragment_shader_barycentric") define VK_NV_FRAGMENT_SHADER_BARYCENTRIC_SPEC_VERSION 1
604@extension("VK_NV_fragment_shader_barycentric") define VK_NV_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME "VK_NV_fragment_shader_barycentric"
605
606// 205
607@extension("VK_NV_shader_image_footprint") define VK_NV_SHADER_IMAGE_FOOTPRINT_SPEC_VERSION 1
608@extension("VK_NV_shader_image_footprint") define VK_NV_SHADER_IMAGE_FOOTPRINT_EXTENSION_NAME "VK_NV_shader_image_footprint"
609
610// 206
611@extension("VK_NV_scissor_exclusive") define VK_NV_SCISSOR_EXCLUSIVE_SPEC_VERSION 1
612@extension("VK_NV_scissor_exclusive") define VK_NV_SCISSOR_EXCLUSIVE_EXTENSION_NAME "VK_NV_scissor_exclusive"
613
Jesse Hall115df0c2018-07-30 12:00:59 -0700614// 207
615@extension("VK_NV_device_diagnostic_checkpoints") define VK_NV_DEVICE_DIAGNOSTIC_CHECKPOINTS_SPEC_VERSION 2
616@extension("VK_NV_device_diagnostic_checkpoints") define VK_NV_DEVICE_DIAGNOSTIC_CHECKPOINTS_EXTENSION_NAME "VK_NV_device_diagnostic_checkpoints"
617
Jesse Hall4af6c462018-09-10 09:04:25 -0700618// 212
619@extension("VK_KHR_vulkan_memory_model") define VK_KHR_VULKAN_MEMORY_MODEL_SPEC_VERSION 2
620@extension("VK_KHR_vulkan_memory_model") define VK_KHR_VULKAN_MEMORY_MODEL_EXTENSION_NAME "VK_KHR_vulkan_memory_model"
621
Jesse Hallf47e8f82018-10-27 23:41:45 -0700622// 213
Jesse Hall49a87a22018-12-19 15:19:56 -0800623@extension("VK_EXT_pci_bus_info") define VK_EXT_PCI_BUS_INFO_SPEC_VERSION 2
Jesse Hallf47e8f82018-10-27 23:41:45 -0700624@extension("VK_EXT_pci_bus_info") define VK_EXT_PCI_BUS_INFO_EXENSION_NAME "VK_EXT_pci_bus_info"
625
Jesse Hall497c46f2018-10-08 12:52:48 -0700626// 215
627@extension("VK_FUCHSIA_imagepipe_surface") define VK_FUCHSIA_IMAGEPIPE_SURFACE_SPEC_VERSION 1
628@extension("VK_FUCHSIA_imagepipe_surface") define VK_FUCHSIA_IMAGEPIPE_SURFACE_EXTENSION_NAME "VK_FUCHSIA_imagepipe_surface"
629
Jesse Hall48514722018-12-04 14:44:42 -0800630// 219
631@extension("VK_EXT_fragment_density_map") define VK_EXT_FRAGMENT_DENSITY_MAP_SPEC_VERSION 1
632@extension("VK_EXT_fragment_density_map") define VK_EXT_FRAGMENT_DENSITY_MAP_EXTENSION_NAME "VK_EXT_fragment_density_map"
633
Jesse Hall89bde782018-11-12 08:06:07 -0800634// 222
635@extension("VK_EXT_scalar_block_layout") define VK_EXT_SCALAR_BLOCK_LAYOUT_SPEC_VERSION 1
636@extension("VK_EXT_scalar_block_layout") define VK_EXT_SCALAR_BLOCK_LAYOUT_EXTENSION_NAME "VK_EXT_scalar_block_layout"
637
Jesse Hallf47e8f82018-10-27 23:41:45 -0700638// 224
Jesse Hall49a87a22018-12-19 15:19:56 -0800639@extension("VK_GOOGLE_hlsl_functionality1") define VK_GOOGLE_HLSL_FUNCTIONALITY1_SPEC_VERSION 1
Jesse Hallf47e8f82018-10-27 23:41:45 -0700640@extension("VK_GOOGLE_hlsl_functionality1") define VK_GOOGLE_HLSL_FUNCTIONALITY1_EXTENSION_NAME "VK_GOOGLE_hlsl_functionality1"
641
642// 225
Jesse Hall49a87a22018-12-19 15:19:56 -0800643@extension("VK_GOOGLE_decorate_string") define VK_GOOGLE_DECORATE_STRING_SPEC_VERSION 1
Jesse Hallf47e8f82018-10-27 23:41:45 -0700644@extension("VK_GOOGLE_decorate_string") define VK_GOOGLE_DECORATE_STRING_EXTENSION_NAME "VK_GOOGLE_decorate_string"
645
Jesse Hall89bde782018-11-12 08:06:07 -0800646// 247
647@extension("VK_EXT_separate_stencil_usage") define VK_EXT_SEPARATE_STENCIL_USAGE_SPEC_VERSION 1
648@extension("VK_EXT_separate_stencil_usage") define VK_EXT_SEPARATE_STENCIL_USAGE_EXTENSION_NAME "VK_EXT_separate_stencil_usage"
649
Jesse Halld27f6aa2015-08-15 17:58:48 -0700650/////////////
651// Types //
652/////////////
653
Jesse Hall5ae3abb2015-10-08 14:00:22 -0700654type u32 VkBool32
655type u32 VkFlags
656type u64 VkDeviceSize
657type u32 VkSampleMask
658
Jesse Halld27f6aa2015-08-15 17:58:48 -0700659/// Dispatchable handle types.
660@dispatchHandle type u64 VkInstance
661@dispatchHandle type u64 VkPhysicalDevice
662@dispatchHandle type u64 VkDevice
663@dispatchHandle type u64 VkQueue
Jesse Hall3fbc8562015-11-29 22:10:52 -0800664@dispatchHandle type u64 VkCommandBuffer
Jesse Halld27f6aa2015-08-15 17:58:48 -0700665
666/// Non dispatchable handle types.
667@nonDispatchHandle type u64 VkDeviceMemory
Jesse Hall3fbc8562015-11-29 22:10:52 -0800668@nonDispatchHandle type u64 VkCommandPool
Jesse Halld27f6aa2015-08-15 17:58:48 -0700669@nonDispatchHandle type u64 VkBuffer
670@nonDispatchHandle type u64 VkBufferView
671@nonDispatchHandle type u64 VkImage
672@nonDispatchHandle type u64 VkImageView
Jesse Halld27f6aa2015-08-15 17:58:48 -0700673@nonDispatchHandle type u64 VkShaderModule
Jesse Halld27f6aa2015-08-15 17:58:48 -0700674@nonDispatchHandle type u64 VkPipeline
675@nonDispatchHandle type u64 VkPipelineLayout
676@nonDispatchHandle type u64 VkSampler
677@nonDispatchHandle type u64 VkDescriptorSet
678@nonDispatchHandle type u64 VkDescriptorSetLayout
679@nonDispatchHandle type u64 VkDescriptorPool
Jesse Halld27f6aa2015-08-15 17:58:48 -0700680@nonDispatchHandle type u64 VkFence
681@nonDispatchHandle type u64 VkSemaphore
682@nonDispatchHandle type u64 VkEvent
683@nonDispatchHandle type u64 VkQueryPool
684@nonDispatchHandle type u64 VkFramebuffer
685@nonDispatchHandle type u64 VkRenderPass
686@nonDispatchHandle type u64 VkPipelineCache
Jesse Hall1356b0d2015-11-23 17:24:58 -0800687
Ian Elliott28bd2c32017-10-13 09:21:12 -0600688@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -0400689@nonDispatchHandle type u64 VkSamplerYcbcrConversion
690@nonDispatchHandle type u64 VkDescriptorUpdateTemplate
691
Jesse Hallad250842017-03-10 18:35:38 -0800692// 1
Jesse Hall3e0dc8f2015-11-30 00:42:57 -0800693@extension("VK_KHR_surface") @nonDispatchHandle type u64 VkSurfaceKHR
Jesse Hall1356b0d2015-11-23 17:24:58 -0800694
Jesse Hallad250842017-03-10 18:35:38 -0800695// 2
Jesse Hall3e0dc8f2015-11-30 00:42:57 -0800696@extension("VK_KHR_swapchain") @nonDispatchHandle type u64 VkSwapchainKHR
Jesse Hall1356b0d2015-11-23 17:24:58 -0800697
Jesse Hallad250842017-03-10 18:35:38 -0800698// 3
Jesse Hall3e0dc8f2015-11-30 00:42:57 -0800699@extension("VK_KHR_display") @nonDispatchHandle type u64 VkDisplayKHR
700@extension("VK_KHR_display") @nonDispatchHandle type u64 VkDisplayModeKHR
Jesse Halld27f6aa2015-08-15 17:58:48 -0700701
Jesse Hallad250842017-03-10 18:35:38 -0800702// 12
Jesse Hall715b86a2016-01-16 16:34:29 -0800703@extension("VK_EXT_debug_report") @nonDispatchHandle type u64 VkDebugReportCallbackEXT
704
Jesse Hallad250842017-03-10 18:35:38 -0800705// 86
706@extension("VK_KHR_descriptor_update_template") @nonDispatchHandle type u64 VkDescriptorUpdateTemplateKHR
707
708// 87
Chris Forbes289cb792016-12-30 15:03:55 +1300709@extension("VK_NVX_device_generated_commands") @nonDispatchHandle type u64 VkObjectTableNVX
710@extension("VK_NVX_device_generated_commands") @nonDispatchHandle type u64 VkIndirectCommandsLayoutNVX
711
Jesse Hall8c954d32018-01-17 22:06:20 -0800712// 129
713@extension("VK_EXT_debug_utils") @nonDispatchHandle type u64 VkDebugUtilsMessengerEXT
714
Jesse Hall076f95d2017-09-20 11:34:47 -0700715// 157
716@extension("VK_KHR_sampler_ycbcr_conversion") @nonDispatchHandle type u64 VkSamplerYcbcrConversionKHR
717
Jesse Hall77726222017-09-19 14:49:27 -0500718// 161
719@extension("VK_EXT_validation_cache") @nonDispatchHandle type u64 VkValidationCacheEXT
Jesse Halld27f6aa2015-08-15 17:58:48 -0700720
Jesse Hallb5297192018-09-22 20:52:13 +0200721// 166
Jesse Hallbeea46d2018-12-04 14:38:07 -0800722@extension("VK_NV_ray_tracing") @nonDispatchHandle type u64 VkAccelerationStructureNV
Jesse Hallb5297192018-09-22 20:52:13 +0200723
Jesse Halld27f6aa2015-08-15 17:58:48 -0700724/////////////
725// Enums //
726/////////////
727
728enum VkImageLayout {
729 VK_IMAGE_LAYOUT_UNDEFINED = 0x00000000, /// Implicit layout an image is when its contents are undefined due to various reasons (e.g. right after creation)
730 VK_IMAGE_LAYOUT_GENERAL = 0x00000001, /// General layout when image can be used for any kind of access
731 VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL = 0x00000002, /// Optimal layout when image is only used for color attachment read/write
732 VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL = 0x00000003, /// Optimal layout when image is only used for depth/stencil attachment read/write
733 VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL = 0x00000004, /// Optimal layout when image is used for read only depth/stencil attachment and shader access
734 VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL = 0x00000005, /// Optimal layout when image is used for read only shader access
Jesse Hall3fbc8562015-11-29 22:10:52 -0800735 VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL = 0x00000006, /// Optimal layout when image is used only as source of transfer operations
736 VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL = 0x00000007, /// Optimal layout when image is used only as destination of transfer operations
Jesse Hall5ae3abb2015-10-08 14:00:22 -0700737 VK_IMAGE_LAYOUT_PREINITIALIZED = 0x00000008, /// Initial layout used when the data is populated by the CPU
Jesse Hall1356b0d2015-11-23 17:24:58 -0800738
Ian Elliott28bd2c32017-10-13 09:21:12 -0600739 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -0400740 VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL = 1000117000,
741 VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL = 1000117001,
742
Jesse Hallad250842017-03-10 18:35:38 -0800743 //@extension("VK_KHR_swapchain") // 2
Jesse Hallbd888842015-11-30 21:44:14 -0800744 VK_IMAGE_LAYOUT_PRESENT_SRC_KHR = 1000001002,
Chris Forbesaf3a1112017-01-31 15:37:03 +1300745
Jesse Hall05556b12017-05-18 17:40:25 -0700746 //@extension("VK_KHR_shared_presentable_image") // 112
Chris Forbesaf3a1112017-01-31 15:37:03 +1300747 VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR = 1000111000,
Jesse Hall076f95d2017-09-20 11:34:47 -0700748
749 //@extension("VK_KHR_maintenance2") // 118
750 VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL_KHR = 1000117000,
751 VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL_KHR = 1000117001,
Jesse Hallb5297192018-09-22 20:52:13 +0200752
753 //@extension("VK_NV_shading_rate_image") // 165
754 VK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV = 1000164003,
Jesse Hall48514722018-12-04 14:44:42 -0800755
756 //@extension("VK_EXT_fragment_density_map") // 219
757 VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT = 1000218000,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700758}
759
760enum VkAttachmentLoadOp {
761 VK_ATTACHMENT_LOAD_OP_LOAD = 0x00000000,
762 VK_ATTACHMENT_LOAD_OP_CLEAR = 0x00000001,
763 VK_ATTACHMENT_LOAD_OP_DONT_CARE = 0x00000002,
764}
765
766enum VkAttachmentStoreOp {
767 VK_ATTACHMENT_STORE_OP_STORE = 0x00000000,
768 VK_ATTACHMENT_STORE_OP_DONT_CARE = 0x00000001,
769}
770
771enum VkImageType {
772 VK_IMAGE_TYPE_1D = 0x00000000,
773 VK_IMAGE_TYPE_2D = 0x00000001,
774 VK_IMAGE_TYPE_3D = 0x00000002,
775}
776
777enum VkImageTiling {
Jesse Hallc7467b72015-11-29 21:05:26 -0800778 VK_IMAGE_TILING_OPTIMAL = 0x00000000,
779 VK_IMAGE_TILING_LINEAR = 0x00000001,
Jesse Hallf47e8f82018-10-27 23:41:45 -0700780
781 //@extension("VK_EXT_image_drm_format_modifier") // 159
782 VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT = 1000158000,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700783}
784
785enum VkImageViewType {
786 VK_IMAGE_VIEW_TYPE_1D = 0x00000000,
787 VK_IMAGE_VIEW_TYPE_2D = 0x00000001,
788 VK_IMAGE_VIEW_TYPE_3D = 0x00000002,
789 VK_IMAGE_VIEW_TYPE_CUBE = 0x00000003,
790 VK_IMAGE_VIEW_TYPE_1D_ARRAY = 0x00000004,
791 VK_IMAGE_VIEW_TYPE_2D_ARRAY = 0x00000005,
792 VK_IMAGE_VIEW_TYPE_CUBE_ARRAY = 0x00000006,
793}
794
Jesse Hall3fbc8562015-11-29 22:10:52 -0800795enum VkCommandBufferLevel {
796 VK_COMMAND_BUFFER_LEVEL_PRIMARY = 0x00000000,
797 VK_COMMAND_BUFFER_LEVEL_SECONDARY = 0x00000001,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700798}
799
Jesse Hall65ab5522015-11-30 00:07:16 -0800800enum VkComponentSwizzle {
801 VK_COMPONENT_SWIZZLE_IDENTITY = 0x00000000,
802 VK_COMPONENT_SWIZZLE_ZERO = 0x00000001,
803 VK_COMPONENT_SWIZZLE_ONE = 0x00000002,
804 VK_COMPONENT_SWIZZLE_R = 0x00000003,
805 VK_COMPONENT_SWIZZLE_G = 0x00000004,
806 VK_COMPONENT_SWIZZLE_B = 0x00000005,
807 VK_COMPONENT_SWIZZLE_A = 0x00000006,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700808}
809
810enum VkDescriptorType {
811 VK_DESCRIPTOR_TYPE_SAMPLER = 0x00000000,
812 VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER = 0x00000001,
813 VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE = 0x00000002,
814 VK_DESCRIPTOR_TYPE_STORAGE_IMAGE = 0x00000003,
815 VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER = 0x00000004,
816 VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER = 0x00000005,
817 VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER = 0x00000006,
818 VK_DESCRIPTOR_TYPE_STORAGE_BUFFER = 0x00000007,
819 VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC = 0x00000008,
820 VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC = 0x00000009,
821 VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT = 0x0000000a,
Jesse Hall4af6c462018-09-10 09:04:25 -0700822
823 //@extension("VK_EXT_inline_uniform_block") // 139
824 VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT = 1000138000,
Jesse Hallb5297192018-09-22 20:52:13 +0200825
Jesse Hallbeea46d2018-12-04 14:38:07 -0800826 //@extension("VK_NV_ray_tracing") // 166
Jesse Halla363a8e2018-11-05 21:18:00 -0700827 VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV = 1000165000,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700828}
829
Jesse Halld27f6aa2015-08-15 17:58:48 -0700830enum VkQueryType {
831 VK_QUERY_TYPE_OCCLUSION = 0x00000000,
832 VK_QUERY_TYPE_PIPELINE_STATISTICS = 0x00000001, /// Optional
Jesse Halla3a7a1d2015-11-24 11:37:23 -0800833 VK_QUERY_TYPE_TIMESTAMP = 0x00000002,
Jesse Hallb5297192018-09-22 20:52:13 +0200834
Jesse Hallf47e8f82018-10-27 23:41:45 -0700835 //@extension("VK_EXT_transform_feedback") // 29
836 VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT = 1000028004,
837
Jesse Hallbeea46d2018-12-04 14:38:07 -0800838 //@extension("VK_NV_ray_tracing") // 166
Jesse Halla363a8e2018-11-05 21:18:00 -0700839 VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV = 1000165000,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700840}
841
Jesse Halld27f6aa2015-08-15 17:58:48 -0700842enum VkBorderColor {
843 VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK = 0x00000000,
844 VK_BORDER_COLOR_INT_TRANSPARENT_BLACK = 0x00000001,
845 VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK = 0x00000002,
846 VK_BORDER_COLOR_INT_OPAQUE_BLACK = 0x00000003,
847 VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE = 0x00000004,
848 VK_BORDER_COLOR_INT_OPAQUE_WHITE = 0x00000005,
849}
850
851enum VkPipelineBindPoint {
Jesse Hallc7467b72015-11-29 21:05:26 -0800852 VK_PIPELINE_BIND_POINT_GRAPHICS = 0x00000000,
853 VK_PIPELINE_BIND_POINT_COMPUTE = 0x00000001,
Jesse Hallb5297192018-09-22 20:52:13 +0200854
Jesse Hallbeea46d2018-12-04 14:38:07 -0800855 //@extension("VK_NV_ray_tracing") // 166
Jesse Halla363a8e2018-11-05 21:18:00 -0700856 VK_PIPELINE_BIND_POINT_RAY_TRACING_NV = 1000165000,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700857}
858
859enum VkPrimitiveTopology {
860 VK_PRIMITIVE_TOPOLOGY_POINT_LIST = 0x00000000,
861 VK_PRIMITIVE_TOPOLOGY_LINE_LIST = 0x00000001,
862 VK_PRIMITIVE_TOPOLOGY_LINE_STRIP = 0x00000002,
863 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST = 0x00000003,
864 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP = 0x00000004,
865 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN = 0x00000005,
Jesse Hall3fbc8562015-11-29 22:10:52 -0800866 VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY = 0x00000006,
867 VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY = 0x00000007,
868 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY = 0x00000008,
869 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY = 0x00000009,
Jesse Hall091ed9e2015-11-30 00:55:29 -0800870 VK_PRIMITIVE_TOPOLOGY_PATCH_LIST = 0x0000000a,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700871}
872
873enum VkSharingMode {
874 VK_SHARING_MODE_EXCLUSIVE = 0x00000000,
875 VK_SHARING_MODE_CONCURRENT = 0x00000001,
876}
877
878enum VkIndexType {
879 VK_INDEX_TYPE_UINT16 = 0x00000000,
880 VK_INDEX_TYPE_UINT32 = 0x00000001,
Jesse Halla363a8e2018-11-05 21:18:00 -0700881
Jesse Hallbeea46d2018-12-04 14:38:07 -0800882 //@extension("VK_NV_ray_tracing") // 166
Jesse Halla363a8e2018-11-05 21:18:00 -0700883 VK_INDEX_TYPE_NONE_NV = 1000165000,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700884}
885
Jesse Hall23ff73f2015-11-29 14:36:39 -0800886enum VkFilter {
887 VK_FILTER_NEAREST = 0x00000000,
888 VK_FILTER_LINEAR = 0x00000001,
Jesse Hall26763382016-05-20 07:13:52 -0700889
Jesse Hallad250842017-03-10 18:35:38 -0800890 //@extension("VK_IMG_filter_cubic") // 16
Jesse Hall26763382016-05-20 07:13:52 -0700891 VK_FILTER_CUBIC_IMG = 1000015000,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700892}
893
Jesse Hall23ff73f2015-11-29 14:36:39 -0800894enum VkSamplerMipmapMode {
Jesse Hall23ff73f2015-11-29 14:36:39 -0800895 VK_SAMPLER_MIPMAP_MODE_NEAREST = 0x00000001, /// Choose nearest mip level
896 VK_SAMPLER_MIPMAP_MODE_LINEAR = 0x00000002, /// Linear filter between mip levels
Jesse Halld27f6aa2015-08-15 17:58:48 -0700897}
898
Jesse Hall23ff73f2015-11-29 14:36:39 -0800899enum VkSamplerAddressMode {
Jesse Hallc7467b72015-11-29 21:05:26 -0800900 VK_SAMPLER_ADDRESS_MODE_REPEAT = 0x00000000,
901 VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT = 0x00000001,
902 VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE = 0x00000002,
903 VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER = 0x00000003,
904 VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE = 0x00000004,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700905}
906
907enum VkCompareOp {
908 VK_COMPARE_OP_NEVER = 0x00000000,
909 VK_COMPARE_OP_LESS = 0x00000001,
910 VK_COMPARE_OP_EQUAL = 0x00000002,
Jesse Hall3fbc8562015-11-29 22:10:52 -0800911 VK_COMPARE_OP_LESS_OR_EQUAL = 0x00000003,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700912 VK_COMPARE_OP_GREATER = 0x00000004,
913 VK_COMPARE_OP_NOT_EQUAL = 0x00000005,
Jesse Hall3fbc8562015-11-29 22:10:52 -0800914 VK_COMPARE_OP_GREATER_OR_EQUAL = 0x00000006,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700915 VK_COMPARE_OP_ALWAYS = 0x00000007,
916}
917
Jesse Hall65ab5522015-11-30 00:07:16 -0800918enum VkPolygonMode {
919 VK_POLYGON_MODE_FILL = 0x00000000,
920 VK_POLYGON_MODE_LINE = 0x00000001,
921 VK_POLYGON_MODE_POINT = 0x00000002,
Jesse Hall7ba0ac72017-07-07 17:13:23 -0700922
923 //@extension("VK_NV_fill_rectangle") // 154
924 VK_POLYGON_MODE_FILL_RECTANGLE_NV = 1000153000,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700925}
926
927enum VkFrontFace {
Jesse Hall3fbc8562015-11-29 22:10:52 -0800928 VK_FRONT_FACE_COUNTER_CLOCKWISE = 0x00000000,
929 VK_FRONT_FACE_CLOCKWISE = 0x00000001,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700930}
931
Jesse Hall65ab5522015-11-30 00:07:16 -0800932enum VkBlendFactor {
933 VK_BLEND_FACTOR_ZERO = 0x00000000,
934 VK_BLEND_FACTOR_ONE = 0x00000001,
935 VK_BLEND_FACTOR_SRC_COLOR = 0x00000002,
936 VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR = 0x00000003,
937 VK_BLEND_FACTOR_DST_COLOR = 0x00000004,
938 VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR = 0x00000005,
939 VK_BLEND_FACTOR_SRC_ALPHA = 0x00000006,
940 VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA = 0x00000007,
941 VK_BLEND_FACTOR_DST_ALPHA = 0x00000008,
942 VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA = 0x00000009,
943 VK_BLEND_FACTOR_CONSTANT_COLOR = 0x0000000a,
944 VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR = 0x0000000b,
945 VK_BLEND_FACTOR_CONSTANT_ALPHA = 0x0000000c,
946 VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA = 0x0000000d,
947 VK_BLEND_FACTOR_SRC_ALPHA_SATURATE = 0x0000000e,
948 VK_BLEND_FACTOR_SRC1_COLOR = 0x0000000f,
949 VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR = 0x00000010,
950 VK_BLEND_FACTOR_SRC1_ALPHA = 0x00000011,
951 VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA = 0x00000012,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700952}
953
954enum VkBlendOp {
955 VK_BLEND_OP_ADD = 0x00000000,
956 VK_BLEND_OP_SUBTRACT = 0x00000001,
957 VK_BLEND_OP_REVERSE_SUBTRACT = 0x00000002,
958 VK_BLEND_OP_MIN = 0x00000003,
959 VK_BLEND_OP_MAX = 0x00000004,
Jesse Hall7ba0ac72017-07-07 17:13:23 -0700960
961 //@extension("VK_EXT_blend_operation_advanced") // 149
962 VK_BLEND_OP_ZERO_EXT = 1000148000,
963 VK_BLEND_OP_SRC_EXT = 1000148001,
964 VK_BLEND_OP_DST_EXT = 1000148002,
965 VK_BLEND_OP_SRC_OVER_EXT = 1000148003,
966 VK_BLEND_OP_DST_OVER_EXT = 1000148004,
967 VK_BLEND_OP_SRC_IN_EXT = 1000148005,
968 VK_BLEND_OP_DST_IN_EXT = 1000148006,
969 VK_BLEND_OP_SRC_OUT_EXT = 1000148007,
970 VK_BLEND_OP_DST_OUT_EXT = 1000148008,
971 VK_BLEND_OP_SRC_ATOP_EXT = 1000148009,
972 VK_BLEND_OP_DST_ATOP_EXT = 1000148010,
973 VK_BLEND_OP_XOR_EXT = 1000148011,
974 VK_BLEND_OP_MULTIPLY_EXT = 1000148012,
975 VK_BLEND_OP_SCREEN_EXT = 1000148013,
976 VK_BLEND_OP_OVERLAY_EXT = 1000148014,
977 VK_BLEND_OP_DARKEN_EXT = 1000148015,
978 VK_BLEND_OP_LIGHTEN_EXT = 1000148016,
979 VK_BLEND_OP_COLORDODGE_EXT = 1000148017,
980 VK_BLEND_OP_COLORBURN_EXT = 1000148018,
981 VK_BLEND_OP_HARDLIGHT_EXT = 1000148019,
982 VK_BLEND_OP_SOFTLIGHT_EXT = 1000148020,
983 VK_BLEND_OP_DIFFERENCE_EXT = 1000148021,
984 VK_BLEND_OP_EXCLUSION_EXT = 1000148022,
985 VK_BLEND_OP_INVERT_EXT = 1000148023,
986 VK_BLEND_OP_INVERT_RGB_EXT = 1000148024,
987 VK_BLEND_OP_LINEARDODGE_EXT = 1000148025,
988 VK_BLEND_OP_LINEARBURN_EXT = 1000148026,
989 VK_BLEND_OP_VIVIDLIGHT_EXT = 1000148027,
990 VK_BLEND_OP_LINEARLIGHT_EXT = 1000148028,
991 VK_BLEND_OP_PINLIGHT_EXT = 1000148029,
992 VK_BLEND_OP_HARDMIX_EXT = 1000148030,
993 VK_BLEND_OP_HSL_HUE_EXT = 1000148031,
994 VK_BLEND_OP_HSL_SATURATION_EXT = 1000148032,
995 VK_BLEND_OP_HSL_COLOR_EXT = 1000148033,
996 VK_BLEND_OP_HSL_LUMINOSITY_EXT = 1000148034,
997 VK_BLEND_OP_PLUS_EXT = 1000148035,
998 VK_BLEND_OP_PLUS_CLAMPED_EXT = 1000148036,
999 VK_BLEND_OP_PLUS_CLAMPED_ALPHA_EXT = 1000148037,
1000 VK_BLEND_OP_PLUS_DARKER_EXT = 1000148038,
1001 VK_BLEND_OP_MINUS_EXT = 1000148039,
1002 VK_BLEND_OP_MINUS_CLAMPED_EXT = 1000148040,
1003 VK_BLEND_OP_CONTRAST_EXT = 1000148041,
1004 VK_BLEND_OP_INVERT_OVG_EXT = 1000148042,
1005 VK_BLEND_OP_RED_EXT = 1000148043,
1006 VK_BLEND_OP_GREEN_EXT = 1000148044,
1007 VK_BLEND_OP_BLUE_EXT = 1000148045,
Jesse Halld27f6aa2015-08-15 17:58:48 -07001008}
1009
1010enum VkStencilOp {
1011 VK_STENCIL_OP_KEEP = 0x00000000,
1012 VK_STENCIL_OP_ZERO = 0x00000001,
1013 VK_STENCIL_OP_REPLACE = 0x00000002,
Jesse Hall3fbc8562015-11-29 22:10:52 -08001014 VK_STENCIL_OP_INCREMENT_AND_CLAMP = 0x00000003,
1015 VK_STENCIL_OP_DECREMENT_AND_CLAMP = 0x00000004,
Jesse Halld27f6aa2015-08-15 17:58:48 -07001016 VK_STENCIL_OP_INVERT = 0x00000005,
Jesse Hall3fbc8562015-11-29 22:10:52 -08001017 VK_STENCIL_OP_INCREMENT_AND_WRAP = 0x00000006,
1018 VK_STENCIL_OP_DECREMENT_AND_WRAP = 0x00000007,
Jesse Halld27f6aa2015-08-15 17:58:48 -07001019}
1020
1021enum VkLogicOp {
1022 VK_LOGIC_OP_CLEAR = 0x00000000,
1023 VK_LOGIC_OP_AND = 0x00000001,
1024 VK_LOGIC_OP_AND_REVERSE = 0x00000002,
1025 VK_LOGIC_OP_COPY = 0x00000003,
1026 VK_LOGIC_OP_AND_INVERTED = 0x00000004,
Jesse Hall3fbc8562015-11-29 22:10:52 -08001027 VK_LOGIC_OP_NO_OP = 0x00000005,
Jesse Halld27f6aa2015-08-15 17:58:48 -07001028 VK_LOGIC_OP_XOR = 0x00000006,
1029 VK_LOGIC_OP_OR = 0x00000007,
1030 VK_LOGIC_OP_NOR = 0x00000008,
Jesse Hall3fbc8562015-11-29 22:10:52 -08001031 VK_LOGIC_OP_EQUIVALENT = 0x00000009,
Jesse Halld27f6aa2015-08-15 17:58:48 -07001032 VK_LOGIC_OP_INVERT = 0x0000000a,
1033 VK_LOGIC_OP_OR_REVERSE = 0x0000000b,
1034 VK_LOGIC_OP_COPY_INVERTED = 0x0000000c,
1035 VK_LOGIC_OP_OR_INVERTED = 0x0000000d,
1036 VK_LOGIC_OP_NAND = 0x0000000e,
1037 VK_LOGIC_OP_SET = 0x0000000f,
1038}
1039
Jesse Hall3fbc8562015-11-29 22:10:52 -08001040enum VkSystemAllocationScope {
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08001041 VK_SYSTEM_ALLOCATION_SCOPE_COMMAND = 0x00000000,
Jesse Hall3fbc8562015-11-29 22:10:52 -08001042 VK_SYSTEM_ALLOCATION_SCOPE_OBJECT = 0x00000001,
1043 VK_SYSTEM_ALLOCATION_SCOPE_CACHE = 0x00000002,
1044 VK_SYSTEM_ALLOCATION_SCOPE_DEVICE = 0x00000003,
1045 VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE = 0x00000004,
Jesse Hall03b6fe12015-11-24 12:44:21 -08001046}
1047
Jesse Hall3fbc8562015-11-29 22:10:52 -08001048enum VkInternalAllocationType {
1049 VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE = 0x00000000,
Jesse Halld27f6aa2015-08-15 17:58:48 -07001050}
1051
1052enum VkPhysicalDeviceType {
1053 VK_PHYSICAL_DEVICE_TYPE_OTHER = 0x00000000,
1054 VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU = 0x00000001,
1055 VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU = 0x00000002,
1056 VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU = 0x00000003,
1057 VK_PHYSICAL_DEVICE_TYPE_CPU = 0x00000004,
1058}
1059
Jesse Hall65ab5522015-11-30 00:07:16 -08001060enum VkVertexInputRate {
1061 VK_VERTEX_INPUT_RATE_VERTEX = 0x00000000,
1062 VK_VERTEX_INPUT_RATE_INSTANCE = 0x00000001,
Jesse Halld27f6aa2015-08-15 17:58:48 -07001063}
1064
1065/// Vulkan format definitions
1066enum VkFormat {
Jesse Hallf4ab2b12015-11-30 16:04:55 -08001067 VK_FORMAT_UNDEFINED = 0,
1068 VK_FORMAT_R4G4_UNORM_PACK8 = 1,
1069 VK_FORMAT_R4G4B4A4_UNORM_PACK16 = 2,
1070 VK_FORMAT_B4G4R4A4_UNORM_PACK16 = 3,
1071 VK_FORMAT_R5G6B5_UNORM_PACK16 = 4,
1072 VK_FORMAT_B5G6R5_UNORM_PACK16 = 5,
1073 VK_FORMAT_R5G5B5A1_UNORM_PACK16 = 6,
1074 VK_FORMAT_B5G5R5A1_UNORM_PACK16 = 7,
1075 VK_FORMAT_A1R5G5B5_UNORM_PACK16 = 8,
1076 VK_FORMAT_R8_UNORM = 9,
1077 VK_FORMAT_R8_SNORM = 10,
1078 VK_FORMAT_R8_USCALED = 11,
1079 VK_FORMAT_R8_SSCALED = 12,
1080 VK_FORMAT_R8_UINT = 13,
1081 VK_FORMAT_R8_SINT = 14,
1082 VK_FORMAT_R8_SRGB = 15,
1083 VK_FORMAT_R8G8_UNORM = 16,
1084 VK_FORMAT_R8G8_SNORM = 17,
1085 VK_FORMAT_R8G8_USCALED = 18,
1086 VK_FORMAT_R8G8_SSCALED = 19,
1087 VK_FORMAT_R8G8_UINT = 20,
1088 VK_FORMAT_R8G8_SINT = 21,
1089 VK_FORMAT_R8G8_SRGB = 22,
1090 VK_FORMAT_R8G8B8_UNORM = 23,
1091 VK_FORMAT_R8G8B8_SNORM = 24,
1092 VK_FORMAT_R8G8B8_USCALED = 25,
1093 VK_FORMAT_R8G8B8_SSCALED = 26,
1094 VK_FORMAT_R8G8B8_UINT = 27,
1095 VK_FORMAT_R8G8B8_SINT = 28,
1096 VK_FORMAT_R8G8B8_SRGB = 29,
1097 VK_FORMAT_B8G8R8_UNORM = 30,
1098 VK_FORMAT_B8G8R8_SNORM = 31,
1099 VK_FORMAT_B8G8R8_USCALED = 32,
1100 VK_FORMAT_B8G8R8_SSCALED = 33,
1101 VK_FORMAT_B8G8R8_UINT = 34,
1102 VK_FORMAT_B8G8R8_SINT = 35,
1103 VK_FORMAT_B8G8R8_SRGB = 36,
1104 VK_FORMAT_R8G8B8A8_UNORM = 37,
1105 VK_FORMAT_R8G8B8A8_SNORM = 38,
1106 VK_FORMAT_R8G8B8A8_USCALED = 39,
1107 VK_FORMAT_R8G8B8A8_SSCALED = 40,
1108 VK_FORMAT_R8G8B8A8_UINT = 41,
1109 VK_FORMAT_R8G8B8A8_SINT = 42,
1110 VK_FORMAT_R8G8B8A8_SRGB = 43,
1111 VK_FORMAT_B8G8R8A8_UNORM = 44,
1112 VK_FORMAT_B8G8R8A8_SNORM = 45,
1113 VK_FORMAT_B8G8R8A8_USCALED = 46,
1114 VK_FORMAT_B8G8R8A8_SSCALED = 47,
1115 VK_FORMAT_B8G8R8A8_UINT = 48,
1116 VK_FORMAT_B8G8R8A8_SINT = 49,
1117 VK_FORMAT_B8G8R8A8_SRGB = 50,
1118 VK_FORMAT_A8B8G8R8_UNORM_PACK32 = 51,
1119 VK_FORMAT_A8B8G8R8_SNORM_PACK32 = 52,
1120 VK_FORMAT_A8B8G8R8_USCALED_PACK32 = 53,
1121 VK_FORMAT_A8B8G8R8_SSCALED_PACK32 = 54,
1122 VK_FORMAT_A8B8G8R8_UINT_PACK32 = 55,
1123 VK_FORMAT_A8B8G8R8_SINT_PACK32 = 56,
1124 VK_FORMAT_A8B8G8R8_SRGB_PACK32 = 57,
1125 VK_FORMAT_A2R10G10B10_UNORM_PACK32 = 58,
1126 VK_FORMAT_A2R10G10B10_SNORM_PACK32 = 59,
1127 VK_FORMAT_A2R10G10B10_USCALED_PACK32 = 60,
1128 VK_FORMAT_A2R10G10B10_SSCALED_PACK32 = 61,
1129 VK_FORMAT_A2R10G10B10_UINT_PACK32 = 62,
1130 VK_FORMAT_A2R10G10B10_SINT_PACK32 = 63,
1131 VK_FORMAT_A2B10G10R10_UNORM_PACK32 = 64,
1132 VK_FORMAT_A2B10G10R10_SNORM_PACK32 = 65,
1133 VK_FORMAT_A2B10G10R10_USCALED_PACK32 = 66,
1134 VK_FORMAT_A2B10G10R10_SSCALED_PACK32 = 67,
1135 VK_FORMAT_A2B10G10R10_UINT_PACK32 = 68,
1136 VK_FORMAT_A2B10G10R10_SINT_PACK32 = 69,
1137 VK_FORMAT_R16_UNORM = 70,
1138 VK_FORMAT_R16_SNORM = 71,
1139 VK_FORMAT_R16_USCALED = 72,
1140 VK_FORMAT_R16_SSCALED = 73,
1141 VK_FORMAT_R16_UINT = 74,
1142 VK_FORMAT_R16_SINT = 75,
1143 VK_FORMAT_R16_SFLOAT = 76,
1144 VK_FORMAT_R16G16_UNORM = 77,
1145 VK_FORMAT_R16G16_SNORM = 78,
1146 VK_FORMAT_R16G16_USCALED = 79,
1147 VK_FORMAT_R16G16_SSCALED = 80,
1148 VK_FORMAT_R16G16_UINT = 81,
1149 VK_FORMAT_R16G16_SINT = 82,
1150 VK_FORMAT_R16G16_SFLOAT = 83,
1151 VK_FORMAT_R16G16B16_UNORM = 84,
1152 VK_FORMAT_R16G16B16_SNORM = 85,
1153 VK_FORMAT_R16G16B16_USCALED = 86,
1154 VK_FORMAT_R16G16B16_SSCALED = 87,
1155 VK_FORMAT_R16G16B16_UINT = 88,
1156 VK_FORMAT_R16G16B16_SINT = 89,
1157 VK_FORMAT_R16G16B16_SFLOAT = 90,
1158 VK_FORMAT_R16G16B16A16_UNORM = 91,
1159 VK_FORMAT_R16G16B16A16_SNORM = 92,
1160 VK_FORMAT_R16G16B16A16_USCALED = 93,
1161 VK_FORMAT_R16G16B16A16_SSCALED = 94,
1162 VK_FORMAT_R16G16B16A16_UINT = 95,
1163 VK_FORMAT_R16G16B16A16_SINT = 96,
1164 VK_FORMAT_R16G16B16A16_SFLOAT = 97,
1165 VK_FORMAT_R32_UINT = 98,
1166 VK_FORMAT_R32_SINT = 99,
1167 VK_FORMAT_R32_SFLOAT = 100,
1168 VK_FORMAT_R32G32_UINT = 101,
1169 VK_FORMAT_R32G32_SINT = 102,
1170 VK_FORMAT_R32G32_SFLOAT = 103,
1171 VK_FORMAT_R32G32B32_UINT = 104,
1172 VK_FORMAT_R32G32B32_SINT = 105,
1173 VK_FORMAT_R32G32B32_SFLOAT = 106,
1174 VK_FORMAT_R32G32B32A32_UINT = 107,
1175 VK_FORMAT_R32G32B32A32_SINT = 108,
1176 VK_FORMAT_R32G32B32A32_SFLOAT = 109,
1177 VK_FORMAT_R64_UINT = 110,
1178 VK_FORMAT_R64_SINT = 111,
1179 VK_FORMAT_R64_SFLOAT = 112,
1180 VK_FORMAT_R64G64_UINT = 113,
1181 VK_FORMAT_R64G64_SINT = 114,
1182 VK_FORMAT_R64G64_SFLOAT = 115,
1183 VK_FORMAT_R64G64B64_UINT = 116,
1184 VK_FORMAT_R64G64B64_SINT = 117,
1185 VK_FORMAT_R64G64B64_SFLOAT = 118,
1186 VK_FORMAT_R64G64B64A64_UINT = 119,
1187 VK_FORMAT_R64G64B64A64_SINT = 120,
1188 VK_FORMAT_R64G64B64A64_SFLOAT = 121,
1189 VK_FORMAT_B10G11R11_UFLOAT_PACK32 = 122,
1190 VK_FORMAT_E5B9G9R9_UFLOAT_PACK32 = 123,
1191 VK_FORMAT_D16_UNORM = 124,
1192 VK_FORMAT_X8_D24_UNORM_PACK32 = 125,
1193 VK_FORMAT_D32_SFLOAT = 126,
1194 VK_FORMAT_S8_UINT = 127,
1195 VK_FORMAT_D16_UNORM_S8_UINT = 128,
1196 VK_FORMAT_D24_UNORM_S8_UINT = 129,
1197 VK_FORMAT_D32_SFLOAT_S8_UINT = 130,
1198 VK_FORMAT_BC1_RGB_UNORM_BLOCK = 131,
1199 VK_FORMAT_BC1_RGB_SRGB_BLOCK = 132,
1200 VK_FORMAT_BC1_RGBA_UNORM_BLOCK = 133,
1201 VK_FORMAT_BC1_RGBA_SRGB_BLOCK = 134,
1202 VK_FORMAT_BC2_UNORM_BLOCK = 135,
1203 VK_FORMAT_BC2_SRGB_BLOCK = 136,
1204 VK_FORMAT_BC3_UNORM_BLOCK = 137,
1205 VK_FORMAT_BC3_SRGB_BLOCK = 138,
1206 VK_FORMAT_BC4_UNORM_BLOCK = 139,
1207 VK_FORMAT_BC4_SNORM_BLOCK = 140,
1208 VK_FORMAT_BC5_UNORM_BLOCK = 141,
1209 VK_FORMAT_BC5_SNORM_BLOCK = 142,
1210 VK_FORMAT_BC6H_UFLOAT_BLOCK = 143,
1211 VK_FORMAT_BC6H_SFLOAT_BLOCK = 144,
1212 VK_FORMAT_BC7_UNORM_BLOCK = 145,
1213 VK_FORMAT_BC7_SRGB_BLOCK = 146,
1214 VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK = 147,
1215 VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK = 148,
1216 VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK = 149,
1217 VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK = 150,
1218 VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK = 151,
1219 VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK = 152,
1220 VK_FORMAT_EAC_R11_UNORM_BLOCK = 153,
1221 VK_FORMAT_EAC_R11_SNORM_BLOCK = 154,
1222 VK_FORMAT_EAC_R11G11_UNORM_BLOCK = 155,
1223 VK_FORMAT_EAC_R11G11_SNORM_BLOCK = 156,
1224 VK_FORMAT_ASTC_4x4_UNORM_BLOCK = 157,
1225 VK_FORMAT_ASTC_4x4_SRGB_BLOCK = 158,
1226 VK_FORMAT_ASTC_5x4_UNORM_BLOCK = 159,
1227 VK_FORMAT_ASTC_5x4_SRGB_BLOCK = 160,
1228 VK_FORMAT_ASTC_5x5_UNORM_BLOCK = 161,
1229 VK_FORMAT_ASTC_5x5_SRGB_BLOCK = 162,
1230 VK_FORMAT_ASTC_6x5_UNORM_BLOCK = 163,
1231 VK_FORMAT_ASTC_6x5_SRGB_BLOCK = 164,
1232 VK_FORMAT_ASTC_6x6_UNORM_BLOCK = 165,
1233 VK_FORMAT_ASTC_6x6_SRGB_BLOCK = 166,
1234 VK_FORMAT_ASTC_8x5_UNORM_BLOCK = 167,
1235 VK_FORMAT_ASTC_8x5_SRGB_BLOCK = 168,
1236 VK_FORMAT_ASTC_8x6_UNORM_BLOCK = 169,
1237 VK_FORMAT_ASTC_8x6_SRGB_BLOCK = 170,
1238 VK_FORMAT_ASTC_8x8_UNORM_BLOCK = 171,
1239 VK_FORMAT_ASTC_8x8_SRGB_BLOCK = 172,
1240 VK_FORMAT_ASTC_10x5_UNORM_BLOCK = 173,
1241 VK_FORMAT_ASTC_10x5_SRGB_BLOCK = 174,
1242 VK_FORMAT_ASTC_10x6_UNORM_BLOCK = 175,
1243 VK_FORMAT_ASTC_10x6_SRGB_BLOCK = 176,
1244 VK_FORMAT_ASTC_10x8_UNORM_BLOCK = 177,
1245 VK_FORMAT_ASTC_10x8_SRGB_BLOCK = 178,
1246 VK_FORMAT_ASTC_10x10_UNORM_BLOCK = 179,
1247 VK_FORMAT_ASTC_10x10_SRGB_BLOCK = 180,
1248 VK_FORMAT_ASTC_12x10_UNORM_BLOCK = 181,
1249 VK_FORMAT_ASTC_12x10_SRGB_BLOCK = 182,
1250 VK_FORMAT_ASTC_12x12_UNORM_BLOCK = 183,
1251 VK_FORMAT_ASTC_12x12_SRGB_BLOCK = 184,
Chris Forbes289cb792016-12-30 15:03:55 +13001252
Ian Elliott28bd2c32017-10-13 09:21:12 -06001253 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04001254 VK_FORMAT_G8B8G8R8_422_UNORM = 1000156000,
1255 VK_FORMAT_B8G8R8G8_422_UNORM = 1000156001,
1256 VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM = 1000156002,
1257 VK_FORMAT_G8_B8R8_2PLANE_420_UNORM = 1000156003,
1258 VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM = 1000156004,
1259 VK_FORMAT_G8_B8R8_2PLANE_422_UNORM = 1000156005,
1260 VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM = 1000156006,
1261 VK_FORMAT_R10X6_UNORM_PACK16 = 1000156007,
1262 VK_FORMAT_R10X6G10X6_UNORM_2PACK16 = 1000156008,
1263 VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16 = 1000156009,
1264 VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16 = 1000156010,
1265 VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16 = 1000156011,
1266 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16 = 1000156012,
1267 VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16 = 1000156013,
1268 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16 = 1000156014,
1269 VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16 = 1000156015,
1270 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16 = 1000156016,
1271 VK_FORMAT_R12X4_UNORM_PACK16 = 1000156017,
1272 VK_FORMAT_R12X4G12X4_UNORM_2PACK16 = 1000156018,
1273 VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16 = 1000156019,
1274 VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16 = 1000156020,
1275 VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16 = 1000156021,
1276 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16 = 1000156022,
1277 VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16 = 1000156023,
1278 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16 = 1000156024,
1279 VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16 = 1000156025,
1280 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16 = 1000156026,
1281 VK_FORMAT_G16B16G16R16_422_UNORM = 1000156027,
1282 VK_FORMAT_B16G16R16G16_422_UNORM = 1000156028,
1283 VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM = 1000156029,
1284 VK_FORMAT_G16_B16R16_2PLANE_420_UNORM = 1000156030,
1285 VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM = 1000156031,
1286 VK_FORMAT_G16_B16R16_2PLANE_422_UNORM = 1000156032,
1287 VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM = 1000156033,
1288
Jesse Hallad250842017-03-10 18:35:38 -08001289 //@extension("VK_IMG_format_pvrtc") // 28
Jesse Halleb02c472017-02-24 15:13:45 -08001290 VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG = 1000054000,
1291 VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG = 1000054001,
1292 VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG = 1000054002,
1293 VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG = 1000054003,
1294 VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG = 1000054004,
1295 VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG = 1000054005,
1296 VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG = 1000054006,
1297 VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG = 1000054007,
Jesse Hall076f95d2017-09-20 11:34:47 -07001298
1299 //@extension("VK_KHR_sampler_ycbcr_conversion") // 157
1300 VK_FORMAT_G8B8G8R8_422_UNORM_KHR = 1000156000,
1301 VK_FORMAT_B8G8R8G8_422_UNORM_KHR = 1000156001,
1302 VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM_KHR = 1000156002,
1303 VK_FORMAT_G8_B8R8_2PLANE_420_UNORM_KHR = 1000156003,
1304 VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM_KHR = 1000156004,
1305 VK_FORMAT_G8_B8R8_2PLANE_422_UNORM_KHR = 1000156005,
1306 VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM_KHR = 1000156006,
1307 VK_FORMAT_R10X6_UNORM_PACK16_KHR = 1000156007,
1308 VK_FORMAT_R10X6G10X6_UNORM_2PACK16_KHR = 1000156008,
1309 VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16_KHR = 1000156009,
1310 VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16_KHR = 1000156010,
1311 VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16_KHR = 1000156011,
1312 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16_KHR = 1000156012,
1313 VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16_KHR = 1000156013,
1314 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16_KHR = 1000156014,
1315 VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16_KHR = 1000156015,
1316 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16_KHR = 1000156016,
1317 VK_FORMAT_R12X4_UNORM_PACK16_KHR = 1000156017,
1318 VK_FORMAT_R12X4G12X4_UNORM_2PACK16_KHR = 1000156018,
1319 VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16_KHR = 1000156019,
1320 VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16_KHR = 1000156020,
1321 VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16_KHR = 1000156021,
1322 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16_KHR = 1000156022,
1323 VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16_KHR = 1000156023,
1324 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16_KHR = 1000156024,
1325 VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16_KHR = 1000156025,
1326 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16_KHR = 1000156026,
1327 VK_FORMAT_G16B16G16R16_422_UNORM_KHR = 1000156027,
1328 VK_FORMAT_B16G16R16G16_422_UNORM_KHR = 1000156028,
1329 VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM_KHR = 1000156029,
1330 VK_FORMAT_G16_B16R16_2PLANE_420_UNORM_KHR = 1000156030,
1331 VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM_KHR = 1000156031,
1332 VK_FORMAT_G16_B16R16_2PLANE_422_UNORM_KHR = 1000156032,
1333 VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM_KHR = 1000156033,
Jesse Halld27f6aa2015-08-15 17:58:48 -07001334}
1335
Jesse Halld27f6aa2015-08-15 17:58:48 -07001336/// Structure type enumerant
1337enum VkStructureType {
1338 VK_STRUCTURE_TYPE_APPLICATION_INFO = 0,
Jesse Hallc7467b72015-11-29 21:05:26 -08001339 VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO = 1,
1340 VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO = 2,
1341 VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO = 3,
1342 VK_STRUCTURE_TYPE_SUBMIT_INFO = 4,
Jesse Hallf4ab2b12015-11-30 16:04:55 -08001343 VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO = 5,
Jesse Hallc7467b72015-11-29 21:05:26 -08001344 VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE = 6,
1345 VK_STRUCTURE_TYPE_BIND_SPARSE_INFO = 7,
1346 VK_STRUCTURE_TYPE_FENCE_CREATE_INFO = 8,
1347 VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO = 9,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07001348 VK_STRUCTURE_TYPE_EVENT_CREATE_INFO = 10,
Jesse Hallc7467b72015-11-29 21:05:26 -08001349 VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO = 11,
1350 VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO = 12,
1351 VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO = 13,
1352 VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO = 14,
1353 VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO = 15,
1354 VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO = 16,
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08001355 VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO = 17,
1356 VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO = 18,
1357 VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO = 19,
1358 VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO = 20,
1359 VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO = 21,
1360 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO = 22,
1361 VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO = 23,
1362 VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO = 24,
1363 VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO = 25,
1364 VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO = 26,
1365 VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO = 27,
1366 VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO = 28,
1367 VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO = 29,
1368 VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO = 30,
1369 VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO = 31,
1370 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO = 32,
1371 VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO = 33,
Jesse Hallf4ab2b12015-11-30 16:04:55 -08001372 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO = 34,
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08001373 VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET = 35,
1374 VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET = 36,
1375 VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO = 37,
1376 VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO = 38,
1377 VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO = 39,
Jesse Hallf4ab2b12015-11-30 16:04:55 -08001378 VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO = 40,
Jesse Hall3dd678a2016-01-08 21:52:01 -08001379 VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO = 41,
1380 VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO = 42,
1381 VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO = 43,
1382 VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER = 44,
1383 VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER = 45,
1384 VK_STRUCTURE_TYPE_MEMORY_BARRIER = 46,
1385 VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO = 47,
1386 VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO = 48,
Jesse Hall1356b0d2015-11-23 17:24:58 -08001387
Ian Elliott28bd2c32017-10-13 09:21:12 -06001388 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04001389 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES = 1000094000,
1390 VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO = 1000157000,
1391 VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO = 1000157001,
1392 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES = 1000083000,
1393 VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS = 1000127000,
1394 VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO = 1000127001,
1395 VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO = 1000060000,
1396 VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO = 1000060003,
1397 VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO = 1000060004,
1398 VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO = 1000060005,
1399 VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO = 1000060006,
1400 VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO = 1000060013,
1401 VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO = 1000060014,
1402 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES = 1000070000,
1403 VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO = 1000070001,
1404 VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2 = 1000146000,
1405 VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2 = 1000146001,
1406 VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2 = 1000146002,
1407 VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2 = 1000146003,
1408 VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2 = 1000146004,
1409 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2 = 1000059000,
1410 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2 = 1000059001,
1411 VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2 = 1000059002,
1412 VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2 = 1000059003,
1413 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2 = 1000059004,
1414 VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2 = 1000059005,
1415 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2 = 1000059006,
1416 VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2 = 1000059007,
1417 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2 = 1000059008,
1418 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES = 1000117000,
1419 VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO = 1000117001,
1420 VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO = 1000117002,
1421 VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO = 1000117003,
1422 VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO = 1000053000,
1423 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES = 1000053001,
1424 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES = 1000053002,
1425 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES = 1000120000,
1426 VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO = 1000145000,
1427 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES = 1000145001,
1428 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES = 1000145002,
1429 VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2 = 1000145003,
1430 VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO = 1000156000,
1431 VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO = 1000156001,
1432 VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO = 1000156002,
1433 VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO = 1000156003,
1434 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES = 1000156004,
1435 VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES = 1000156005,
1436 VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO = 1000085000,
1437 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO = 1000071000,
1438 VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES = 1000071001,
1439 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO = 1000071002,
1440 VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES = 1000071003,
1441 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES = 1000071004,
1442 VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO = 1000072000,
1443 VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO = 1000072001,
1444 VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO = 1000072002,
1445 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO = 1000112000,
1446 VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES = 1000112001,
1447 VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO = 1000113000,
1448 VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO = 1000077000,
1449 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO = 1000076000,
1450 VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES = 1000076001,
1451 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES = 1000168000,
1452 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT = 1000168001,
1453 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES = 1000063000,
1454 VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR = 1000060007,
1455
Jesse Hallad250842017-03-10 18:35:38 -08001456 //@extension("VK_KHR_swapchain") // 2
Jesse Hallbd888842015-11-30 21:44:14 -08001457 VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR = 1000001000,
1458 VK_STRUCTURE_TYPE_PRESENT_INFO_KHR = 1000001001,
Daniel Koch09f7bf92017-10-05 00:26:58 -04001459 // added as interaction from VK_KHR_device_group / VK 1.1
1460 VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR = 1000060008,
1461 VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR = 1000060009,
1462 VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR = 1000060010,
1463 VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR = 1000060011,
1464 VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR = 1000060012,
Jesse Hall1356b0d2015-11-23 17:24:58 -08001465
Jesse Hallad250842017-03-10 18:35:38 -08001466 //@extension("VK_KHR_display") // 3
Jesse Hallbd888842015-11-30 21:44:14 -08001467 VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR = 1000002000,
1468 VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR = 1000002001,
Jesse Hall1356b0d2015-11-23 17:24:58 -08001469
Jesse Hallad250842017-03-10 18:35:38 -08001470 //@extension("VK_KHR_display_swapchain") // 4
Jesse Hallbd888842015-11-30 21:44:14 -08001471 VK_STRUCTURE_TYPE_DISPLAY_DISPLAY_PRESENT_INFO_KHR = 1000003000,
Jesse Hallf9fa9a52016-01-08 16:08:51 -08001472
Jesse Hallad250842017-03-10 18:35:38 -08001473 //@extension("VK_KHR_xlib_surface") // 5
Jesse Hallf9fa9a52016-01-08 16:08:51 -08001474 VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR = 1000004000,
1475
Jesse Hallad250842017-03-10 18:35:38 -08001476 //@extension("VK_KHR_xcb_surface") // 6
Jesse Hallf9fa9a52016-01-08 16:08:51 -08001477 VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR = 1000005000,
1478
Jesse Hallad250842017-03-10 18:35:38 -08001479 //@extension("VK_KHR_wayland_surface") // 7
Jesse Hallf9fa9a52016-01-08 16:08:51 -08001480 VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR = 1000006000,
1481
Jesse Hallad250842017-03-10 18:35:38 -08001482 //@extension("VK_KHR_android_surface") // 9
Jesse Hallf9fa9a52016-01-08 16:08:51 -08001483 VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR = 1000008000,
1484
Jesse Hallad250842017-03-10 18:35:38 -08001485 //@extension("VK_KHR_win32_surface") // 10
Jesse Hallf9fa9a52016-01-08 16:08:51 -08001486 VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR = 1000009000,
Jesse Hall543a7ff2016-01-08 16:38:30 -08001487
Jesse Hallad250842017-03-10 18:35:38 -08001488 //@extension("VK_ANDROID_native_buffer") // 11
Chia-I Wub262ddc2016-03-22 07:38:20 +08001489 VK_STRUCTURE_TYPE_NATIVE_BUFFER_ANDROID = 1000010000,
Chris Forbes8e4438b2016-12-07 16:26:49 +13001490 VK_STRUCTURE_TYPE_SWAPCHAIN_IMAGE_CREATE_INFO_ANDROID = 1000010001,
Chris Forbes1d4e5542017-02-15 19:38:50 +13001491 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENTATION_PROPERTIES_ANDROID = 1000010002,
Chia-I Wub262ddc2016-03-22 07:38:20 +08001492
Jesse Hallad250842017-03-10 18:35:38 -08001493 //@extension("VK_EXT_debug_report") // 12
Jesse Hall26763382016-05-20 07:13:52 -07001494 VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT = 1000011000,
1495
Jesse Hallad250842017-03-10 18:35:38 -08001496 //@extension("VK_AMD_rasterization_order") // 19
Jesse Hall26763382016-05-20 07:13:52 -07001497 VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD = 1000018000,
1498
Jesse Hallad250842017-03-10 18:35:38 -08001499 //@extension("VK_EXT_debug_marker") // 23
Jesse Hall26763382016-05-20 07:13:52 -07001500 VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT = 1000022000,
Jesse Hall26763382016-05-20 07:13:52 -07001501 VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT = 1000022001,
Jesse Hall26763382016-05-20 07:13:52 -07001502 VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT = 1000022002,
Jesse Hall56d386a2016-07-26 15:20:40 -07001503
Jesse Hallad250842017-03-10 18:35:38 -08001504 //@extension("VK_NV_dedicated_allocation") // 27
Jesse Hall56d386a2016-07-26 15:20:40 -07001505 VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV = 1000026000,
Jesse Hall56d386a2016-07-26 15:20:40 -07001506 VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV = 1000026001,
Jesse Hall56d386a2016-07-26 15:20:40 -07001507 VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV = 1000026002,
Chris Forbes289cb792016-12-30 15:03:55 +13001508
Jesse Hallf47e8f82018-10-27 23:41:45 -07001509 //@extension("VK_EXT_transform_feedback") // 29
1510 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT = 1000028000,
1511 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT = 1000028001,
1512 VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT = 1000028002,
1513
Jesse Hall7ba0ac72017-07-07 17:13:23 -07001514 //@extension("VK_AMD_texture_gather_bias_lod") // 42
1515 VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD = 1000041000,
1516
Jesse Hallb5297192018-09-22 20:52:13 +02001517 //@extension("VK_NV_corner_sampled_image") // 51
1518 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV = 1000050000,
1519
Daniel Koch09f7bf92017-10-05 00:26:58 -04001520 //@extension("VK_KHR_multiview") // 54
1521 VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO_KHR = 1000053000,
1522 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES_KHR = 1000053001,
1523 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES_KHR = 1000053002,
Jesse Hallad250842017-03-10 18:35:38 -08001524
1525 //@extension("VK_NV_external_memory") // 57
Jesse Halleb02c472017-02-24 15:13:45 -08001526 VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV = 1000056000,
1527 VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV = 1000056001,
Chris Forbes289cb792016-12-30 15:03:55 +13001528
Jesse Hallad250842017-03-10 18:35:38 -08001529 //@extension("VK_NV_external_memory_win32") // 58
Jesse Halleb02c472017-02-24 15:13:45 -08001530 VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV = 1000057000,
1531 VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV = 1000057001,
Chris Forbes289cb792016-12-30 15:03:55 +13001532
Jesse Hallad250842017-03-10 18:35:38 -08001533 //@extension("VK_NV_win32_keyed_mutex") // 59
Chris Forbes289cb792016-12-30 15:03:55 +13001534 VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV = 1000058000,
1535
Jesse Hallad250842017-03-10 18:35:38 -08001536 //@extension("VK_KHR_get_physical_device_properties2") // 60
Jesse Hall889cd9a2017-02-25 22:12:23 -08001537 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2_KHR = 1000059000,
1538 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2_KHR = 1000059001,
1539 VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2_KHR = 1000059002,
1540 VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2_KHR = 1000059003,
1541 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2_KHR = 1000059004,
1542 VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2_KHR = 1000059005,
1543 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2_KHR = 1000059006,
1544 VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2_KHR = 1000059007,
Chris Forbes1194ede2016-12-30 16:29:25 +13001545 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2_KHR = 1000059008,
1546
Daniel Koch09f7bf92017-10-05 00:26:58 -04001547 //@extension("VK_KHR_device_group") // 61
1548 VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO_KHR = 1000060000,
1549 VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO_KHR = 1000060003,
1550 VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO_KHR = 1000060004,
1551 VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO_KHR = 1000060005,
1552 VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO_KHR = 1000060006,
1553 VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR = 1000060007,
1554 // tokens 08-12 are listed with VK_KHR_swapchain
1555 VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO_KHR = 1000060013,
1556 VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO_KHR = 1000060014,
Jesse Hallad250842017-03-10 18:35:38 -08001557
1558 //@extension("VK_EXT_validation_flags") // 62
Jesse Halleb02c472017-02-24 15:13:45 -08001559 VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT = 1000061000,
Chris Forbes289cb792016-12-30 15:03:55 +13001560
Jesse Hallad250842017-03-10 18:35:38 -08001561 //@extension("VK_NN_vi_surface") // 63
Jesse Hall77ad05b2017-03-10 22:02:20 -08001562 VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN = 1000062000,
1563
Jesse Hall4af6c462018-09-10 09:04:25 -07001564 //@extension("VK_EXT_astc_decode_mode") // 68
1565 VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT = 1000067000,
1566 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT = 1000067001,
1567
Daniel Koch09f7bf92017-10-05 00:26:58 -04001568 //@extension("VK_KHR_device_group_creation") // 71
1569 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES_KHR = 1000070000,
1570 VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO_KHR = 1000070001,
Jesse Hallad250842017-03-10 18:35:38 -08001571
Jesse Hall9492f992017-08-28 12:10:06 -07001572 //@extension("VK_KHR_external_memory_capabilities") // 72
1573 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO_KHR = 1000071000,
1574 VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES_KHR = 1000071001,
1575 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO_KHR = 1000071002,
1576 VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES_KHR = 1000071003,
1577 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES_KHR = 1000071004,
Jesse Hallad250842017-03-10 18:35:38 -08001578
Jesse Hall9492f992017-08-28 12:10:06 -07001579 //@extension("VK_KHR_external_memory") // 73
1580 VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO_KHR = 1000072000,
1581 VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_KHR = 1000072001,
1582 VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_KHR = 1000072002,
Jesse Hallad250842017-03-10 18:35:38 -08001583
Jesse Hall9492f992017-08-28 12:10:06 -07001584 //@extension("VK_KHR_external_memory_win32") // 74
1585 VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR = 1000073000,
1586 VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR = 1000073001,
1587 VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR = 1000073002,
Jesse Hallad250842017-03-10 18:35:38 -08001588
Jesse Hall9492f992017-08-28 12:10:06 -07001589 //@extension("VK_KHR_external_memory_fd") // 75
1590 VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR = 1000074000,
1591 VK_STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR = 1000074001,
Jesse Hallad250842017-03-10 18:35:38 -08001592
Jesse Hall9492f992017-08-28 12:10:06 -07001593 //@extension("VK_KHR_win32_keyed_mutex") // 76
1594 VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR = 1000075000,
Jesse Hallad250842017-03-10 18:35:38 -08001595
Jesse Hall9492f992017-08-28 12:10:06 -07001596 //@extension("VK_KHR_external_semaphore_capabilities") // 77
1597 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO_KHR = 1000076000,
1598 VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES_KHR = 1000076001,
Jesse Hallad250842017-03-10 18:35:38 -08001599
Jesse Hall9492f992017-08-28 12:10:06 -07001600 //@extension("VK_KHR_external_semaphore") // 78
1601 VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO_KHR = 1000077000,
Jesse Hallad250842017-03-10 18:35:38 -08001602
Jesse Hall9492f992017-08-28 12:10:06 -07001603 //@extension("VK_KHR_external_semaphore_win32") // 79
1604 VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR = 1000078000,
1605 VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR = 1000078001,
1606 VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR = 1000078002,
Jesse Hallad250842017-03-10 18:35:38 -08001607
Jesse Hall9492f992017-08-28 12:10:06 -07001608 //@extension("VK_KHR_external_semaphore_fd") // 80
1609 VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR = 1000079000,
1610 VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR = 1000079001,
Jesse Hallad250842017-03-10 18:35:38 -08001611
1612 //@extension("VK_KHR_push_descriptor") // 81
1613 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR = 1000080000,
1614
Jesse Hall9492f992017-08-28 12:10:06 -07001615 //@extension("VK_KHR_16bit_storage") // 84
1616 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES_KHR = 1000083000,
1617
Jesse Hallad250842017-03-10 18:35:38 -08001618 //@extension("VK_KHR_incremental_present") // 85
Jesse Hall889cd9a2017-02-25 22:12:23 -08001619 VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR = 1000084000,
Chris Forbes289cb792016-12-30 15:03:55 +13001620
Jesse Halla13a3cf2018-07-09 15:51:52 -07001621 //@extension("VK_EXT_conditional_rendering") // 82
1622 VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT = 1000081000,
1623 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT = 1000081001,
1624 VK_STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT = 1000081002,
1625
Jesse Halla9d30ff2018-12-04 14:55:50 -08001626 //@extension("VK_KHR_shader_float16_int8") // 83
1627 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT16_INT8_FEATURES_KHR = 1000082000,
1628
Jesse Hallad250842017-03-10 18:35:38 -08001629 //@extension("VK_KHR_descriptor_update_template") // 86
1630 VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO_KHR = 1000085000,
1631
1632 //@extension("VK_NVX_device_generated_commands") // 87
Jesse Halleb02c472017-02-24 15:13:45 -08001633 VK_STRUCTURE_TYPE_OBJECT_TABLE_CREATE_INFO_NVX = 1000086000,
1634 VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NVX = 1000086001,
1635 VK_STRUCTURE_TYPE_CMD_PROCESS_COMMANDS_INFO_NVX = 1000086002,
1636 VK_STRUCTURE_TYPE_CMD_RESERVE_SPACE_FOR_COMMANDS_INFO_NVX = 1000086003,
1637 VK_STRUCTURE_TYPE_DEVICE_GENERATED_COMMANDS_LIMITS_NVX = 1000086004,
1638 VK_STRUCTURE_TYPE_DEVICE_GENERATED_COMMANDS_FEATURES_NVX = 1000086005,
Jesse Hall77ad05b2017-03-10 22:02:20 -08001639
Jesse Hallad250842017-03-10 18:35:38 -08001640 //@extension("VK_NV_clip_space_w_scaling") // 88
1641 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV = 1000087000,
1642
1643 //@extension("VK_EXT_display_surface_counter") // 91
Jesse Hall77726222017-09-19 14:49:27 -05001644 VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT = 1000090000,
Jesse Hall77ad05b2017-03-10 22:02:20 -08001645
Jesse Hallad250842017-03-10 18:35:38 -08001646 //@extension("VK_EXT_display_control") // 92
Jesse Hall77ad05b2017-03-10 22:02:20 -08001647 VK_STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT = 1000091000,
1648 VK_STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT = 1000091001,
1649 VK_STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT = 1000091002,
1650 VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT = 1000091003,
Jesse Hallad250842017-03-10 18:35:38 -08001651
1652 //@extension("VK_GOOGLE_display_timing") // 93
1653 VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE = 1000092000,
1654
1655 //@extension("VK_NVX_multiview_per_view_attributes") // 98
1656 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX = 1000097000,
1657
1658 //@extension("VK_NV_viewport_swizzle") // 99
1659 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV = 1000098000,
1660
1661 //@extension("VK_EXT_discard_rectangles") // 100
1662 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT = 1000099000,
1663 VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT = 1000099001,
1664
Jesse Hall8c954d32018-01-17 22:06:20 -08001665 //@extension("VK_EXT_conservative_rasterization") // 102
1666 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT = 1000101000,
1667 VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT = 1000101001,
1668
Jesse Halla13a3cf2018-07-09 15:51:52 -07001669 //@extension("VK_KHR_create_renderpass2") // 110
1670 VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2_KHR = 1000109000,
1671 VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2_KHR = 1000109001,
1672 VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2_KHR = 1000109002,
1673 VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2_KHR = 1000109003,
1674 VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2_KHR = 1000109004,
1675 VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO_KHR = 1000109005,
1676 VK_STRUCTURE_TYPE_SUBPASS_END_INFO_KHR = 1000109006,
1677
Jesse Hallfdc8ab32017-03-10 21:01:57 -08001678 //@extension("VK_EXT_hdr_metadata") // 106
1679 VK_STRUCTURE_TYPE_HDR_METADATA_EXT = 1000105000,
1680
Jesse Hall05556b12017-05-18 17:40:25 -07001681 //@extension("VK_KHR_shared_presentable_image") // 112
Chris Forbese2d3ee12017-03-16 16:10:15 +13001682 VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR = 1000111000,
1683
Jesse Hall9492f992017-08-28 12:10:06 -07001684 //@extension("VK_KHR_external_fence_capabilities") // 113
1685 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO_KHR = 1000112000,
1686 VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES_KHR = 1000112001,
1687
1688 //@extension("VK_KHR_external_fence") // 114
1689 VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO_KHR = 1000113000,
1690
1691 //@extension("VK_KHR_external_fence_win32") // 115
1692 VK_STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR = 1000114000,
1693 VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR = 1000114001,
1694 VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR = 1000114002,
1695
1696 //@extension("VK_KHR_external_fence_fd") // 117
1697 VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR = 1000115000,
1698 VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR = 1000115001,
1699
Jesse Hall076f95d2017-09-20 11:34:47 -07001700 //@extension("VK_KHR_maintenance2") // 118
1701 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES_KHR = 1000117000,
1702 VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO_KHR = 1000117001,
1703 VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO_KHR = 1000117002,
1704 VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO_KHR = 1000117003,
1705
Jesse Hall05556b12017-05-18 17:40:25 -07001706 //@extension("VK_KHR_get_surface_capabilities2") // 120
Chris Forbese2d3ee12017-03-16 16:10:15 +13001707 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR = 1000119000,
1708 VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR = 1000119001,
1709 VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR = 1000119002,
1710
Jesse Hall9492f992017-08-28 12:10:06 -07001711 //@extension("VK_KHR_variable_pointers") // 121
1712 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES_KHR = 1000120000,
1713
Jesse Hall54f8d132018-04-18 08:16:59 -07001714 //@extension("VK_KHR_display_properties2") // 122
1715 VK_STRUCTURE_TYPE_DISPLAY_PROPERTIES_2_KHR = 1000121000,
1716 VK_STRUCTURE_TYPE_DISPLAY_PLANE_PROPERTIES_2_KHR = 1000121001,
1717 VK_STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR = 1000121002,
1718 VK_STRUCTURE_TYPE_DISPLAY_PLANE_INFO_2_KHR = 1000121003,
1719 VK_STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR = 1000121004,
1720
Jesse Hallad250842017-03-10 18:35:38 -08001721 //@extension("VK_MVK_ios_surface") // 123
1722 VK_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK = 1000122000,
1723
1724 //@extension("VK_MVK_macos_surface") // 124
1725 VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK = 1000123000,
Jesse Hall7ba0ac72017-07-07 17:13:23 -07001726
Jesse Hall9492f992017-08-28 12:10:06 -07001727 //@extension("VK_KHR_dedicated_allocation") // 128
1728 VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS_KHR = 1000127000,
1729 VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO_KHR = 1000127001,
1730
Jesse Hall8c954d32018-01-17 22:06:20 -08001731 //@extension("VK_EXT_debug_utils") // 129
1732 VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT = 1000128000,
1733 VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT = 1000128001,
1734 VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT = 1000128002,
1735 VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT = 1000128003,
1736 VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT = 1000128004,
1737
Jesse Hall36215a92018-01-18 15:04:37 -08001738 //@extension("VK_ANDROID_external_memory_android_hardware_buffer") // 130
1739 VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID = 1000129000,
1740 VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID = 1000129001,
1741 VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID = 1000129002,
1742 VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID = 1000129003,
1743 VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID = 1000129004,
1744 VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID = 1000129005,
1745
Jesse Hall7ba0ac72017-07-07 17:13:23 -07001746 //@extension("VK_EXT_sampler_filter_minmax") // 131
1747 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES_EXT = 1000130000,
1748 VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO_EXT = 1000130001,
1749
Jesse Hall4af6c462018-09-10 09:04:25 -07001750 //@extension("VK_EXT_inline_uniform_block") // 139
1751 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT = 1000138000,
1752 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES_EXT = 1000138001,
1753 VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK_EXT = 1000138002,
1754 VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO_EXT = 1000138003,
1755
Jesse Hall77726222017-09-19 14:49:27 -05001756 //@extension("VK_EXT_sample_locations") // 144
1757 VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT = 1000143000,
1758 VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT = 1000143001,
1759 VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT = 1000143002,
1760 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT = 1000143003,
1761 VK_STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT = 1000143004,
1762
Jesse Hall9492f992017-08-28 12:10:06 -07001763 //@extension("VK_KHR_get_memory_requirements2") // 147
1764 VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2_KHR = 1000146000,
1765 VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2_KHR = 1000146001,
1766 VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2_KHR = 1000146002,
1767 VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2_KHR = 1000146003,
1768 VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2_KHR = 1000146004,
1769
Jesse Hall076f95d2017-09-20 11:34:47 -07001770 //@extension("VK_KHR_image_format_list") // 148
1771 VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO_KHR = 1000147000,
1772
Jesse Hall7ba0ac72017-07-07 17:13:23 -07001773 //@extension("VK_EXT_blend_operation_advanced") // 149
1774 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT = 1000148000,
1775 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT = 1000148001,
1776 VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT = 1000148002,
1777
1778 //@extension("VK_NV_fragment_coverage_to_color") // 150
1779 VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV = 1000149000,
1780
Jesse Hall77726222017-09-19 14:49:27 -05001781 //@extension("VK_NV_framebuffer_mixed_samples") // 153
Jesse Hall7ba0ac72017-07-07 17:13:23 -07001782 VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV = 1000152000,
Jesse Hall77726222017-09-19 14:49:27 -05001783
Jesse Hall076f95d2017-09-20 11:34:47 -07001784 //@extension("VK_KHR_sampler_ycbcr_conversion") // 157
1785 VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO_KHR = 1000156000,
1786 VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO_KHR = 1000156001,
1787 VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO_KHR = 1000156002,
1788 VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO_KHR = 1000156003,
1789 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES_KHR = 1000156004,
1790 VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES_KHR = 1000156005,
1791
Jesse Hallf47e8f82018-10-27 23:41:45 -07001792 //@extension("VK_EXT_image_drm_format_modifier") // 159
1793 VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT = 1000158000,
1794 VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT = 1000158001,
1795 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT = 1000158002,
1796 VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT = 1000158003,
1797 VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT = 1000158004,
1798 VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT = 1000158005,
1799
Jesse Hall076f95d2017-09-20 11:34:47 -07001800 //@extension("VK_KHR_bind_memory2") // 158
1801 VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO_KHR = 1000157000,
1802 VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO_KHR = 1000157001,
1803
Jesse Hall77726222017-09-19 14:49:27 -05001804 //@extension("VK_EXT_validation_cache") // 161
1805 VK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT = 1000160000,
1806 VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT = 1000160001,
Daniel Koch09f7bf92017-10-05 00:26:58 -04001807
Jesse Hall72e6a132018-04-06 13:00:44 -07001808 //@extension("VK_EXT_descriptor_indexing") // 162
1809 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO_EXT = 1000161000,
1810 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES_EXT = 1000161001,
1811 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES_EXT = 1000161002,
1812 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO_EXT = 1000161003,
1813 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT_EXT = 1000161004,
1814
Jesse Hallb5297192018-09-22 20:52:13 +02001815 //@extension("VK_NV_shading_rate_image") // 165
1816 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV = 1000164000,
1817 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV = 1000164001,
1818 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV = 1000164002,
1819 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV = 1000164005,
1820
Jesse Hallbeea46d2018-12-04 14:38:07 -08001821 //@extension("VK_NV_ray_tracing") // 166
Jesse Halla363a8e2018-11-05 21:18:00 -07001822 VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_NV = 1000165000,
1823 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV = 1000165001,
1824 VK_STRUCTURE_TYPE_GEOMETRY_NV = 1000165003,
1825 VK_STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NV = 1000165004,
1826 VK_STRUCTURE_TYPE_GEOMETRY_AABB_NV = 1000165005,
1827 VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV = 1000165006,
1828 VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV = 1000165007,
1829 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV = 1000165008,
1830 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV = 1000165009,
1831 VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV = 1000165011,
1832 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_INFO_NV = 1000165012,
Jesse Hallb5297192018-09-22 20:52:13 +02001833
1834 //@extension("VK_NV_representative_fragment_test") // 167
1835 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV = 1000166000,
1836 VK_STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV = 1000166001,
1837
Daniel Koch09f7bf92017-10-05 00:26:58 -04001838 //@extension("VK_KHR_maintenance3") // 169
1839 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES_KHR = 1000168000,
1840 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT_KHR = 1000168001,
Jesse Hall8c954d32018-01-17 22:06:20 -08001841
1842 //@extension("VK_EXT_global_priority") // 175
1843 VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT = 1000174000,
1844
Jesse Halla13a3cf2018-07-09 15:51:52 -07001845 //@extension("VK_KHR_8bit_storage") // 178
1846 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES_KHR = 1000177000,
1847
Jesse Hall8c954d32018-01-17 22:06:20 -08001848 //@extension("VK_EXT_external_memory_host") // 179
1849 VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT = 1000178000,
1850 VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT = 1000178001,
1851 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT = 1000178002,
Jesse Hall72e6a132018-04-06 13:00:44 -07001852
Jesse Hall2e6853c2018-10-02 14:05:37 -07001853 //@extension("VK_KHR_shader_atomic_int64") // 181
1854 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES_KHR = 1000180000,
1855
Jesse Hallf47e8f82018-10-27 23:41:45 -07001856 //@extension("VK_EXT_calibrated_timestamps") // 185
1857 VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT = 1000184000,
1858
Jesse Hall2e6853c2018-10-02 14:05:37 -07001859 //@extension("VK_KHR_driver_properties") // 197
1860 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES_KHR = 1000196000,
1861
Jesse Halla9d30ff2018-12-04 14:55:50 -08001862 //@extension("VK_KHR_shader_float_controls") // 198
1863 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES_KHR = 1000197000,
1864
Jesse Hall72e6a132018-04-06 13:00:44 -07001865 //@extension("VK_AMD_shader_core_properties") // 186
1866 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD = 1000185000,
1867
Jesse Halla363a8e2018-11-05 21:18:00 -07001868 //@extension("VK_AMD_memory_overallocation_behavior") // 190
1869 VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD = 1000189000,
1870
Jesse Hall72e6a132018-04-06 13:00:44 -07001871 //@extension("VK_EXT_vertex_attribute_divisor") // 191
1872 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT = 1000190000,
1873 VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT = 1000190001,
Jesse Hall4af6c462018-09-10 09:04:25 -07001874 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT = 1000190002,
Jesse Hall115df0c2018-07-30 12:00:59 -07001875
1876 //@extension("VK_NV_device_diagnostic_checkpoints") // 207
1877 VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NV = 1000206000,
1878 VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV = 1000206001,
Jesse Hall4af6c462018-09-10 09:04:25 -07001879
1880 //@extension("VK_KHR_vulkan_memory_model") // 212
1881 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES_KHR = 1000211000,
Jesse Hall497c46f2018-10-08 12:52:48 -07001882
Jesse Hallf47e8f82018-10-27 23:41:45 -07001883 //@extension("VK_EXT_pci_bus_info") // 213
Jesse Hall89bde782018-11-12 08:06:07 -08001884 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT = 1000212000,
Jesse Hallf47e8f82018-10-27 23:41:45 -07001885
Jesse Hall497c46f2018-10-08 12:52:48 -07001886 //@extension("VK_FUCHSIA_imagepipe_surface") // 215
1887 VK_STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA = 1000214000,
Jesse Hall89bde782018-11-12 08:06:07 -08001888
Jesse Hall48514722018-12-04 14:44:42 -08001889 //@extension("VK_EXT_fragment_density_map") // 219
1890 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT = 1000218000,
1891 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT = 1000218001,
1892 VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT = 1000218002,
1893
Jesse Hall89bde782018-11-12 08:06:07 -08001894 //@extension("VK_EXT_scalar_block_layout")
1895 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES_EXT = 1000221000,
1896
1897 //@extension("VK_EXT_separate_stencil_usage") // 247
1898 VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO_EXT = 1000246000,
Jesse Halld27f6aa2015-08-15 17:58:48 -07001899}
1900
Jesse Hall65ab5522015-11-30 00:07:16 -08001901enum VkSubpassContents {
1902 VK_SUBPASS_CONTENTS_INLINE = 0x00000000,
1903 VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS = 0x00000001,
Jesse Halld27f6aa2015-08-15 17:58:48 -07001904}
1905
Jesse Hall543a7ff2016-01-08 16:38:30 -08001906enum VkPipelineCacheHeaderVersion {
1907 VK_PIPELINE_CACHE_HEADER_VERSION_ONE = 1,
1908}
1909
Jesse Hallbd888842015-11-30 21:44:14 -08001910@lastUnused(-11)
Jesse Halld27f6aa2015-08-15 17:58:48 -07001911/// Error and return codes
1912enum VkResult {
1913 // Return codes for successful operation execution (positive values)
Jesse Hallbd888842015-11-30 21:44:14 -08001914 VK_SUCCESS = 0,
1915 VK_NOT_READY = 1,
1916 VK_TIMEOUT = 2,
1917 VK_EVENT_SET = 3,
1918 VK_EVENT_RESET = 4,
1919 VK_INCOMPLETE = 5,
Jesse Halld27f6aa2015-08-15 17:58:48 -07001920
Jesse Hallad250842017-03-10 18:35:38 -08001921 //@extension("VK_KHR_swapchain") // 2
Jesse Hallbd888842015-11-30 21:44:14 -08001922 VK_SUBOPTIMAL_KHR = 1000001003,
Jesse Hall1356b0d2015-11-23 17:24:58 -08001923
Jesse Halld27f6aa2015-08-15 17:58:48 -07001924 // Error codes (negative values)
Jesse Hallbd888842015-11-30 21:44:14 -08001925 VK_ERROR_OUT_OF_HOST_MEMORY = 0xFFFFFFFF, // -1
1926 VK_ERROR_OUT_OF_DEVICE_MEMORY = 0xFFFFFFFE, // -2
1927 VK_ERROR_INITIALIZATION_FAILED = 0xFFFFFFFD, // -3
1928 VK_ERROR_DEVICE_LOST = 0xFFFFFFFC, // -4
1929 VK_ERROR_MEMORY_MAP_FAILED = 0xFFFFFFFB, // -5
1930 VK_ERROR_LAYER_NOT_PRESENT = 0xFFFFFFFA, // -6
1931 VK_ERROR_EXTENSION_NOT_PRESENT = 0xFFFFFFF9, // -7
1932 VK_ERROR_FEATURE_NOT_PRESENT = 0xFFFFFFF8, // -8
1933 VK_ERROR_INCOMPATIBLE_DRIVER = 0xFFFFFFF7, // -9
1934 VK_ERROR_TOO_MANY_OBJECTS = 0xFFFFFFF6, // -10
1935 VK_ERROR_FORMAT_NOT_SUPPORTED = 0xFFFFFFF5, // -11
Jesse Hall56d386a2016-07-26 15:20:40 -07001936 VK_ERROR_FRAGMENTED_POOL = 0xFFFFFFF4, // -12
Jesse Hall1356b0d2015-11-23 17:24:58 -08001937
Ian Elliott28bd2c32017-10-13 09:21:12 -06001938 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04001939 VK_ERROR_OUT_OF_POOL_MEMORY = 0xC4642878, // -1000069000
1940 VK_ERROR_INVALID_EXTERNAL_HANDLE = 0xC4641CBD, // -1000072003
1941
Jesse Hallad250842017-03-10 18:35:38 -08001942 //@extension("VK_KHR_surface") // 1
Jesse Hallbd888842015-11-30 21:44:14 -08001943 VK_ERROR_SURFACE_LOST_KHR = 0xC4653600, // -1000000000
Jesse Hallad250842017-03-10 18:35:38 -08001944 VK_ERROR_NATIVE_WINDOW_IN_USE_KHR = 0xC46535FF, // -1000000001
Jesse Halla6429252015-11-29 18:59:42 -08001945
Jesse Hallad250842017-03-10 18:35:38 -08001946 //@extension("VK_KHR_swapchain") // 2
Jesse Hallbd888842015-11-30 21:44:14 -08001947 VK_ERROR_OUT_OF_DATE_KHR = 0xC4653214, // -1000001004
Jesse Hall1356b0d2015-11-23 17:24:58 -08001948
Jesse Hallad250842017-03-10 18:35:38 -08001949 //@extension("VK_KHR_display_swapchain") // 4
Jesse Hallbd888842015-11-30 21:44:14 -08001950 VK_ERROR_INCOMPATIBLE_DISPLAY_KHR = 0xC4652A47, // -1000003001
Jesse Hall1356b0d2015-11-23 17:24:58 -08001951
Jesse Hallad250842017-03-10 18:35:38 -08001952 //@extension("VK_EXT_debug_report") // 12
Jesse Hall543a7ff2016-01-08 16:38:30 -08001953 VK_ERROR_VALIDATION_FAILED_EXT = 0xC4650B07, // -1000011001
Jesse Hall26763382016-05-20 07:13:52 -07001954
Jesse Hallad250842017-03-10 18:35:38 -08001955 //@extension("VK_NV_glsl_shader") // 13
Jesse Hall26763382016-05-20 07:13:52 -07001956 VK_ERROR_INVALID_SHADER_NV = 0xC4650720, // -1000012000
Jesse Hall77ad05b2017-03-10 22:02:20 -08001957
Jesse Hallad250842017-03-10 18:35:38 -08001958 //@extension("VK_KHR_maintenance1") // 70
Jesse Hall77ad05b2017-03-10 22:02:20 -08001959 VK_ERROR_OUT_OF_POOL_MEMORY_KHR = 0xC4642878, // -1000069000
Jesse Hallad250842017-03-10 18:35:38 -08001960
Jesse Hall9492f992017-08-28 12:10:06 -07001961 //@extension("VK_KHR_external_memory") // 73
1962 VK_ERROR_INVALID_EXTERNAL_HANDLE_KHR = 0xC4641CBD, // -1000072003
Jesse Hall72e6a132018-04-06 13:00:44 -07001963
Jesse Hallf47e8f82018-10-27 23:41:45 -07001964 //@extension("VK_EXT_image_drm_format_modifier") // 159
1965 VK_ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT = 0xC462CCD0, // -1000158000
1966
Jesse Hall72e6a132018-04-06 13:00:44 -07001967 //@extension("VK_EXT_descriptor_indexing") // 162
1968 VK_ERROR_FRAGMENTATION_EXT = 0xc462c118, // -1000161000
Jesse Hallf47e8f82018-10-27 23:41:45 -07001969
1970 //@extension("VK_EXT_global_priority") // 175
1971 VK_ERROR_NOT_PERMITTED_EXT = 0xC4628E4F, // -1000174001
Jesse Hall5ae3abb2015-10-08 14:00:22 -07001972}
1973
1974enum VkDynamicState {
1975 VK_DYNAMIC_STATE_VIEWPORT = 0x00000000,
1976 VK_DYNAMIC_STATE_SCISSOR = 0x00000001,
1977 VK_DYNAMIC_STATE_LINE_WIDTH = 0x00000002,
1978 VK_DYNAMIC_STATE_DEPTH_BIAS = 0x00000003,
1979 VK_DYNAMIC_STATE_BLEND_CONSTANTS = 0x00000004,
1980 VK_DYNAMIC_STATE_DEPTH_BOUNDS = 0x00000005,
1981 VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK = 0x00000006,
1982 VK_DYNAMIC_STATE_STENCIL_WRITE_MASK = 0x00000007,
1983 VK_DYNAMIC_STATE_STENCIL_REFERENCE = 0x00000008,
Jesse Hallad250842017-03-10 18:35:38 -08001984
1985 //@extension("VK_NV_clip_space_w_scaling") // 88
1986 VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV = 1000087000,
1987
1988 //@extension("VK_EXT_discard_rectangles") // 100
1989 VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT = 1000099000,
Jesse Hall77726222017-09-19 14:49:27 -05001990
1991 //@extension("VK_EXT_sample_locations") // 144
1992 VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT = 1000143000,
Jesse Hallb5297192018-09-22 20:52:13 +02001993
1994 //@extension("VK_NV_shading_rate_image") // 165
1995 VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV = 1000164004,
1996 VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV = 1000164006,
1997
1998 //@extension("VK_NV_scissor_exclusive") // 206
1999 VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV = 1000205001,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002000}
2001
Jesse Hall05556b12017-05-18 17:40:25 -07002002enum VkObjectType {
2003 VK_OBJECT_TYPE_UNKNOWN = 0,
2004 VK_OBJECT_TYPE_INSTANCE = 1,
2005 VK_OBJECT_TYPE_PHYSICAL_DEVICE = 2,
2006 VK_OBJECT_TYPE_DEVICE = 3,
2007 VK_OBJECT_TYPE_QUEUE = 4,
2008 VK_OBJECT_TYPE_SEMAPHORE = 5,
2009 VK_OBJECT_TYPE_COMMAND_BUFFER = 6,
2010 VK_OBJECT_TYPE_FENCE = 7,
2011 VK_OBJECT_TYPE_DEVICE_MEMORY = 8,
2012 VK_OBJECT_TYPE_BUFFER = 9,
2013 VK_OBJECT_TYPE_IMAGE = 10,
2014 VK_OBJECT_TYPE_EVENT = 11,
2015 VK_OBJECT_TYPE_QUERY_POOL = 12,
2016 VK_OBJECT_TYPE_BUFFER_VIEW = 13,
2017 VK_OBJECT_TYPE_IMAGE_VIEW = 14,
2018 VK_OBJECT_TYPE_SHADER_MODULE = 15,
2019 VK_OBJECT_TYPE_PIPELINE_CACHE = 16,
2020 VK_OBJECT_TYPE_PIPELINE_LAYOUT = 17,
2021 VK_OBJECT_TYPE_RENDER_PASS = 18,
2022 VK_OBJECT_TYPE_PIPELINE = 19,
2023 VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT = 20,
2024 VK_OBJECT_TYPE_SAMPLER = 21,
2025 VK_OBJECT_TYPE_DESCRIPTOR_POOL = 22,
2026 VK_OBJECT_TYPE_DESCRIPTOR_SET = 23,
2027 VK_OBJECT_TYPE_FRAMEBUFFER = 24,
2028 VK_OBJECT_TYPE_COMMAND_POOL = 25,
2029
Ian Elliott28bd2c32017-10-13 09:21:12 -06002030 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04002031 VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION = 1000156000,
2032 VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE = 1000085000,
2033
Jesse Hall05556b12017-05-18 17:40:25 -07002034 //@extension("VK_KHR_surface") // 1
2035 VK_OBJECT_TYPE_SURFACE_KHR = 1000000000,
2036
2037 //@extension("VK_KHR_swapchain") // 2
2038 VK_OBJECT_TYPE_SWAPCHAIN_KHR = 1000001000,
2039
2040 //@extension("VK_KHR_display") // 3
2041 VK_OBJECT_TYPE_DISPLAY_KHR = 1000002000,
2042 VK_OBJECT_TYPE_DISPLAY_MODE_KHR = 1000002001,
2043
2044 //@extension("VK_KHR_debug_report") // 12
2045 VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT = 1000011000,
2046
2047 //@extension("VK_KHR_descriptor_update_template") // 86
2048 VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR = 1000085000,
2049
2050 //@extension("VK_NVX_device_generated_commands") // 87
2051 VK_OBJECT_TYPE_OBJECT_TABLE_NVX = 1000086000,
2052 VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX = 1000086001,
Jesse Hall77726222017-09-19 14:49:27 -05002053
Jesse Hall8c954d32018-01-17 22:06:20 -08002054 //@extension("VK_EXT_debug_utils") // 129
2055 VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT = 1000128000,
2056
Jesse Hall076f95d2017-09-20 11:34:47 -07002057 //@extension("VK_KHR_sampler_ycbcr_conversion") // 157
2058 VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR = 1000156000,
2059
Jesse Hall77726222017-09-19 14:49:27 -05002060 //@extension("VK_EXT_validation_cache") // 161
2061 VK_OBJECT_TYPE_VALIDATION_CACHE_EXT = 1000160000,
Jesse Hallb5297192018-09-22 20:52:13 +02002062
Jesse Hallbeea46d2018-12-04 14:38:07 -08002063 //@extension("VK_NV_ray_tracing") // 166
Jesse Halla363a8e2018-11-05 21:18:00 -07002064 VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV = 1000165000,
Jesse Hall05556b12017-05-18 17:40:25 -07002065}
2066
Daniel Koch09f7bf92017-10-05 00:26:58 -04002067
Ian Elliott28bd2c32017-10-13 09:21:12 -06002068//@vulkan1_1 enums
Daniel Koch09f7bf92017-10-05 00:26:58 -04002069
2070enum VkPointClippingBehavior {
2071 VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES = 0,
2072 VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY = 1,
2073}
2074
2075enum VkTessellationDomainOrigin {
2076 VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT = 0,
2077 VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT = 1,
2078}
2079
2080enum VkSamplerYcbcrModelConversion {
2081 VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY = 0,
2082 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY = 1,
2083 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709 = 2,
2084 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601 = 3,
2085 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020 = 4,
2086}
2087
2088enum VkSamplerYcbcrRange {
2089 VK_SAMPLER_YCBCR_RANGE_ITU_FULL = 0,
2090 VK_SAMPLER_YCBCR_RANGE_ITU_NARROW = 1,
2091}
2092
2093enum VkChromaLocation {
2094 VK_CHROMA_LOCATION_COSITED_EVEN = 0,
2095 VK_CHROMA_LOCATION_MIDPOINT = 1,
2096}
2097
2098enum VkDescriptorUpdateTemplateType {
2099 VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET = 0,
2100 VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR = 1,
2101}
2102
Jesse Halla13a3cf2018-07-09 15:51:52 -07002103enum VkVendorId {
2104 VK_VENDOR_ID_VIV = 0x10001,
2105 VK_VENDOR_ID_VSI = 0x10002,
2106 VK_VENDOR_ID_KAZAN = 0x10003,
2107}
2108
Jesse Hallad250842017-03-10 18:35:38 -08002109@extension("VK_KHR_surface") // 1
Michael Lentine88594d72015-11-12 12:49:45 -08002110enum VkPresentModeKHR {
2111 VK_PRESENT_MODE_IMMEDIATE_KHR = 0x00000000,
2112 VK_PRESENT_MODE_MAILBOX_KHR = 0x00000001,
2113 VK_PRESENT_MODE_FIFO_KHR = 0x00000002,
Jesse Hall03b6fe12015-11-24 12:44:21 -08002114 VK_PRESENT_MODE_FIFO_RELAXED_KHR = 0x00000003,
Jesse Hall77ad05b2017-03-10 22:02:20 -08002115
Jesse Hall05556b12017-05-18 17:40:25 -07002116 //@extension("VK_KHR_shared_presentable_image") // 112
Jesse Hall77ad05b2017-03-10 22:02:20 -08002117 VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR = 1000111000,
2118 VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR = 1000111001,
Michael Lentine88594d72015-11-12 12:49:45 -08002119}
2120
Jesse Hallad250842017-03-10 18:35:38 -08002121@extension("VK_KHR_surface") // 1
Michael Lentine88594d72015-11-12 12:49:45 -08002122enum VkColorSpaceKHR {
Daniel Koch09f7bf92017-10-05 00:26:58 -04002123 VK_COLOR_SPACE_SRGB_NONLINEAR_KHR = 0x00000000,
Jesse Hall77ad05b2017-03-10 22:02:20 -08002124
Jesse Hallf5ad48b2017-03-20 13:09:19 -07002125 //@extension("VK_EXT_swapchain_colorspace") // 105
2126 VK_COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT = 1000104001,
2127 VK_COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT = 1000104002,
2128 VK_COLOR_SPACE_DCI_P3_LINEAR_EXT = 1000104003,
2129 VK_COLOR_SPACE_DCI_P3_NONLINEAR_EXT = 1000104004,
2130 VK_COLOR_SPACE_BT709_LINEAR_EXT = 1000104005,
2131 VK_COLOR_SPACE_BT709_NONLINEAR_EXT = 1000104006,
2132 VK_COLOR_SPACE_BT2020_LINEAR_EXT = 1000104007,
2133 VK_COLOR_SPACE_HDR10_ST2084_EXT = 1000104008,
2134 VK_COLOR_SPACE_DOLBYVISION_EXT = 1000104009,
2135 VK_COLOR_SPACE_HDR10_HLG_EXT = 1000104010,
Courtney Goeltzenleuchter7f558ed2017-01-23 17:15:24 -07002136 VK_COLOR_SPACE_ADOBERGB_LINEAR_EXT = 1000104011,
2137 VK_COLOR_SPACE_ADOBERGB_NONLINEAR_EXT = 1000104012,
Jesse Hallf5ad48b2017-03-20 13:09:19 -07002138 VK_COLOR_SPACE_PASS_THROUGH_EXT = 1000104013,
Jesse Hall77726222017-09-19 14:49:27 -05002139 VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT = 1000104014,
Michael Lentine88594d72015-11-12 12:49:45 -08002140}
Jesse Halld27f6aa2015-08-15 17:58:48 -07002141
Jesse Hallad250842017-03-10 18:35:38 -08002142@extension("VK_EXT_debug_report") // 12
Jesse Hall715b86a2016-01-16 16:34:29 -08002143enum VkDebugReportObjectTypeEXT {
2144 VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT = 0,
2145 VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT = 1,
2146 VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT = 2,
2147 VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT = 3,
2148 VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT = 4,
2149 VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT = 5,
2150 VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT = 6,
2151 VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT = 7,
2152 VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT = 8,
2153 VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT = 9,
2154 VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT = 10,
2155 VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT = 11,
2156 VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT = 12,
2157 VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT = 13,
2158 VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT = 14,
2159 VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT = 15,
2160 VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT = 16,
2161 VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT = 17,
2162 VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT = 18,
2163 VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT = 19,
2164 VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT = 20,
2165 VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT = 21,
2166 VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT = 22,
2167 VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT = 23,
2168 VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT = 24,
2169 VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT = 25,
2170 VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT = 26,
2171 VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT = 27,
Jesse Hall7ba0ac72017-07-07 17:13:23 -07002172 VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT = 28,
Chris Forbes289cb792016-12-30 15:03:55 +13002173 VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT = 29,
2174 VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT = 30,
2175 VK_DEBUG_REPORT_OBJECT_TYPE_OBJECT_TABLE_NVX_EXT = 31,
2176 VK_DEBUG_REPORT_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX_EXT = 32,
Jesse Hallf5ad48b2017-03-20 13:09:19 -07002177
Jesse Hall77726222017-09-19 14:49:27 -05002178 //extension("VK_EXT_validation_cache") // 161
Jesse Hall8c954d32018-01-17 22:06:20 -08002179 VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT = 33,
Jesse Hall77726222017-09-19 14:49:27 -05002180
Jesse Hallf5ad48b2017-03-20 13:09:19 -07002181 //extension("VK_KHR_descriptor_update_template") // 86
2182 VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR_EXT = 1000085000,
Jesse Hall77726222017-09-19 14:49:27 -05002183
Jesse Hall076f95d2017-09-20 11:34:47 -07002184 //@extension("VK_KHR_sampler_ycbcr_conversion") // 157
2185 VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR_EXT = 1000156000,
Jesse Hallb5297192018-09-22 20:52:13 +02002186
Jesse Hallbeea46d2018-12-04 14:38:07 -08002187 //@extension("VK_NV_ray_tracing") // 166
Jesse Halla363a8e2018-11-05 21:18:00 -07002188 VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT = 1000165000,
Jesse Hall715b86a2016-01-16 16:34:29 -08002189}
2190
Jesse Hallad250842017-03-10 18:35:38 -08002191@extension("VK_AMD_rasterization_order") // 19
Jesse Hall26763382016-05-20 07:13:52 -07002192enum VkRasterizationOrderAMD {
2193 VK_RASTERIZATION_ORDER_STRICT_AMD = 0,
2194 VK_RASTERIZATION_ORDER_RELAXED_AMD = 1,
2195}
2196
Jesse Hall8c954d32018-01-17 22:06:20 -08002197@extension("VK_AMD_shader_info") // 43
2198enum VkShaderInfoTypeAMD {
2199 VK_SHADER_INFO_TYPE_STATISTICS_AMD = 0,
2200 VK_SHADER_INFO_TYPE_BINARY_AMD = 1,
2201 VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD = 2,
2202}
2203
Jesse Hallad250842017-03-10 18:35:38 -08002204@extension("VK_EXT_validation_flags") // 62
Chris Forbes289cb792016-12-30 15:03:55 +13002205enum VkValidationCheckEXT {
2206 VK_VALIDATION_CHECK_ALL_EXT = 0,
Jesse Hall7ba0ac72017-07-07 17:13:23 -07002207 VK_VALIDATION_CHECK_SHADERS_EXT = 1,
Chris Forbes289cb792016-12-30 15:03:55 +13002208}
2209
Jesse Hallad250842017-03-10 18:35:38 -08002210@extension("VK_KHR_descriptor_update_template") // 86
2211enum VkDescriptorUpdateTemplateTypeKHR {
2212 VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET_KHR = 0,
2213 VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR = 1,
2214}
2215
2216@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13002217enum VkIndirectCommandsTokenTypeNVX {
Jesse Hall7ba0ac72017-07-07 17:13:23 -07002218 VK_INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NVX = 0,
2219 VK_INDIRECT_COMMANDS_TOKEN_TYPE_DESCRIPTOR_SET_NVX = 1,
2220 VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NVX = 2,
2221 VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NVX = 3,
2222 VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NVX = 4,
2223 VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NVX = 5,
2224 VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NVX = 6,
2225 VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NVX = 7,
Chris Forbes289cb792016-12-30 15:03:55 +13002226}
2227
Jesse Hallad250842017-03-10 18:35:38 -08002228@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13002229enum VkObjectEntryTypeNVX {
Jesse Hall7ba0ac72017-07-07 17:13:23 -07002230 VK_OBJECT_ENTRY_TYPE_DESCRIPTOR_SET_NVX = 0,
2231 VK_OBJECT_ENTRY_TYPE_PIPELINE_NVX = 1,
2232 VK_OBJECT_ENTRY_TYPE_INDEX_BUFFER_NVX = 2,
2233 VK_OBJECT_ENTRY_TYPE_VERTEX_BUFFER_NVX = 3,
2234 VK_OBJECT_ENTRY_TYPE_PUSH_CONSTANT_NVX = 4,
Chris Forbes289cb792016-12-30 15:03:55 +13002235}
Jesse Hall715b86a2016-01-16 16:34:29 -08002236
Jesse Hallad250842017-03-10 18:35:38 -08002237@extension("VK_EXT_display_control") // 92
Jesse Hall77ad05b2017-03-10 22:02:20 -08002238enum VkDisplayPowerStateEXT {
2239 VK_DISPLAY_POWER_STATE_OFF_EXT = 0,
2240 VK_DISPLAY_POWER_STATE_SUSPEND_EXT = 1,
2241 VK_DISPLAY_POWER_STATE_ON_EXT = 2,
2242}
2243
Jesse Hallad250842017-03-10 18:35:38 -08002244@extension("VK_EXT_display_control") // 92
Jesse Hall77ad05b2017-03-10 22:02:20 -08002245enum VkDeviceEventTypeEXT {
2246 VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT = 0,
2247}
2248
Jesse Hallad250842017-03-10 18:35:38 -08002249@extension("VK_EXT_display_control") // 92
Jesse Hall77ad05b2017-03-10 22:02:20 -08002250enum VkDisplayEventTypeEXT {
2251 VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT = 0,
2252}
2253
Jesse Hallad250842017-03-10 18:35:38 -08002254@extension("VK_NV_viewport_swizzle") // 99
2255enum VkViewportCoordinateSwizzleNV {
2256 VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV = 0,
2257 VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV = 1,
2258 VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV = 2,
2259 VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV = 3,
2260 VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV = 4,
2261 VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV = 5,
2262 VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV = 6,
2263 VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV = 7,
2264}
2265
2266@extension("VK_EXT_discard_rectangles") // 100
2267enum VkDiscardRectangleModeEXT {
2268 VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT = 0,
2269 VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT = 1,
2270}
2271
Jesse Hall8c954d32018-01-17 22:06:20 -08002272@extension("VK_EXT_conservative_rasterization") // 102
2273enum VkConservativeRasterizationModeEXT {
2274 VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT = 0,
2275 VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT = 1,
2276 VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT = 2,
2277}
2278
Jesse Hall076f95d2017-09-20 11:34:47 -07002279@extension("VK_KHR_maintenance2") // 118
2280enum VkPointClippingBehaviorKHR {
2281 VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES_KHR = 0,
2282 VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY_KHR = 1,
2283}
2284
2285@extension("VK_KHR_maintenance2") // 118
2286enum VkTessellationDomainOriginKHR {
2287 VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT_KHR = 0,
2288 VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT_KHR = 1,
2289}
2290
Jesse Hall7ba0ac72017-07-07 17:13:23 -07002291@extension("VK_EXT_sampler_filter_minmax") // 131
2292enum VkSamplerReductionModeEXT {
2293 VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_EXT = 0,
2294 VK_SAMPLER_REDUCTION_MODE_MIN_EXT = 1,
2295 VK_SAMPLER_REDUCTION_MODE_MAX_EXT = 2,
2296}
2297
2298@extension("VK_EXT_blend_operation_advanced") // 149
2299enum VkBlendOverlapEXT {
2300 VK_BLEND_OVERLAP_UNCORRELATED_EXT = 0,
2301 VK_BLEND_OVERLAP_DISJOINT_EXT = 1,
2302 VK_BLEND_OVERLAP_CONJOINT_EXT = 2,
2303}
2304
2305@extension("VK_NV_framebuffer_mixed_samples") // 153
2306enum VkCoverageModulationModeNV {
2307 VK_COVERAGE_MODULATION_MODE_NONE_NV = 0,
2308 VK_COVERAGE_MODULATION_MODE_RGB_NV = 1,
2309 VK_COVERAGE_MODULATION_MODE_ALPHA_NV = 2,
2310 VK_COVERAGE_MODULATION_MODE_RGBA_NV = 3,
2311}
2312
Jesse Hall076f95d2017-09-20 11:34:47 -07002313@extension("VK_KHR_sampler_ycbcr_conversion") // 157
2314enum VkSamplerYcbcrModelConversionKHR {
2315 VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY_KHR = 0,
2316 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY_KHR = 1,
2317 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709_KHR = 2,
2318 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601_KHR = 3,
2319 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020_KHR = 4,
2320}
2321
2322@extension("VK_KHR_sampler_ycbcr_conversion") // 157
2323enum VkSamplerYcbcrRangeKHR {
2324 VK_SAMPLER_YCBCR_RANGE_ITU_FULL_KHR = 0,
2325 VK_SAMPLER_YCBCR_RANGE_ITU_NARROW_KHR = 1,
2326}
2327
2328@extension("VK_KHR_sampler_ycbcr_conversion") // 157
2329enum VkChromaLocationKHR {
2330 VK_CHROMA_LOCATION_COSITED_EVEN_KHR = 0,
2331 VK_CHROMA_LOCATION_MIDPOINT_KHR = 1,
2332}
2333
Jesse Hall77726222017-09-19 14:49:27 -05002334@extension("VK_EXT_validation_cache") // 161
2335enum VkValidationCacheHeaderVersionEXT {
2336 VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT = 1,
2337}
2338
Jesse Hallb5297192018-09-22 20:52:13 +02002339@extension("VK_NV_shading_rate_image") // 165
2340enum VkShadingRatePaletteEntryNV {
2341 VK_SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV = 0,
2342 VK_SHADING_RATE_PALETTE_ENTRY_16_INVOCATIONS_PER_PIXEL_NV = 1,
2343 VK_SHADING_RATE_PALETTE_ENTRY_8_INVOCATIONS_PER_PIXEL_NV = 2,
2344 VK_SHADING_RATE_PALETTE_ENTRY_4_INVOCATIONS_PER_PIXEL_NV = 3,
2345 VK_SHADING_RATE_PALETTE_ENTRY_2_INVOCATIONS_PER_PIXEL_NV = 4,
2346 VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_PIXEL_NV = 5,
2347 VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X1_PIXELS_NV = 6,
2348 VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_1X2_PIXELS_NV = 7,
2349 VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X2_PIXELS_NV = 8,
2350 VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X2_PIXELS_NV = 9,
2351 VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X4_PIXELS_NV = 10,
2352 VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV = 11,
2353}
2354
2355@extension("VK_NV_shading_rate_image") // 165
2356enum VkCoarseSampleOrderTypeNV {
2357 VK_COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV = 0,
2358 VK_COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV = 1,
2359 VK_COARSE_SAMPLE_ORDER_TYPE_PIXEL_MAJOR_NV = 2,
2360 VK_COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV = 3,
2361}
2362
Jesse Hallbeea46d2018-12-04 14:38:07 -08002363@extension("VK_NV_ray_tracing") // 166
Jesse Halla363a8e2018-11-05 21:18:00 -07002364enum VkRayTracingShaderGroupTypeNV {
2365 VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_NV = 0,
2366 VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_NV = 1,
2367 VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_NV = 2,
Jesse Hallb5297192018-09-22 20:52:13 +02002368}
2369
Jesse Hallbeea46d2018-12-04 14:38:07 -08002370@extension("VK_NV_ray_tracing") // 166
Jesse Halla363a8e2018-11-05 21:18:00 -07002371enum VkGeometryTypeNV {
2372 VK_GEOMETRY_TYPE_TRIANGLES_NV = 0,
2373 VK_GEOMETRY_TYPE_AABBS_NV = 1,
Jesse Hallb5297192018-09-22 20:52:13 +02002374}
2375
Jesse Hallbeea46d2018-12-04 14:38:07 -08002376@extension("VK_NV_ray_tracing") // 166
Jesse Halla363a8e2018-11-05 21:18:00 -07002377enum VkAccelerationStructureTypeNV {
2378 VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_NV = 0,
2379 VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NV = 1,
2380}
2381
Jesse Hallbeea46d2018-12-04 14:38:07 -08002382@extension("VK_NV_ray_tracing") // 166
Jesse Halla363a8e2018-11-05 21:18:00 -07002383enum VkCopyAccelerationStructureModeNV {
2384 VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_NV = 0,
2385 VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_NV = 1,
2386}
2387
Jesse Hallbeea46d2018-12-04 14:38:07 -08002388@extension("VK_NV_ray_tracing") // 166
Jesse Halla363a8e2018-11-05 21:18:00 -07002389enum VkAccelerationStructureMemoryRequirementsTypeNV {
2390 VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV = 0,
2391 VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_NV = 1,
2392 VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV = 2,
Jesse Hallb5297192018-09-22 20:52:13 +02002393}
2394
Jesse Hall8c954d32018-01-17 22:06:20 -08002395@extension("VK_EXT_global_priority") // 175
2396enum VkQueueGlobalPriorityEXT {
2397 VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT = 128,
2398 VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT = 256,
2399 VK_QUEUE_GLOBAL_PRIORITY_HIGH_EXT = 512,
2400 VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT = 1024,
2401}
2402
Jesse Hallf47e8f82018-10-27 23:41:45 -07002403@extension("VK_EXT_calibrated_timestamps") // 185
2404enum VkTimeDomainEXT {
2405 VK_TIME_DOMAIN_DEVICE_EXT = 0,
2406 VK_TIME_DOMAIN_CLOCK_MONOTONIC_EXT = 1,
2407 VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT = 2,
2408 VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT = 3,
2409}
2410
Jesse Halla363a8e2018-11-05 21:18:00 -07002411@extension("VK_AMD_memory_overallocation_behavior") // 190
2412enum VkMemoryOverallocationBehaviorAMD {
2413 VK_MEMORY_OVERALLOCATION_BEHAVIOR_DEFAULT_AMD = 0,
2414 VK_MEMORY_OVERALLOCATION_BEHAVIOR_ALLOWED_AMD = 1,
2415 VK_MEMORY_OVERALLOCATION_BEHAVIOR_DISALLOWED_AMD = 2,
2416}
2417
Jesse Hall2e6853c2018-10-02 14:05:37 -07002418@extension("VK_KHR_driver_properties") // 197
2419enum VkDriverIdKHR {
2420 VK_DRIVER_ID_AMD_PROPRIETARY_KHR = 1,
2421 VK_DRIVER_ID_AMD_OPEN_SOURCE_KHR = 2,
2422 VK_DRIVER_ID_MESA_RADV_KHR = 3,
2423 VK_DRIVER_ID_NVIDIA_PROPRIETARY_KHR = 4,
2424 VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS_KHR = 5,
2425 VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA_KHR = 6,
2426 VK_DRIVER_ID_IMAGINATION_PROPRIETARY_KHR = 7,
2427 VK_DRIVER_ID_QUALCOMM_PROPRIETARY_KHR = 8,
2428 VK_DRIVER_ID_ARM_PROPRIETARY_KHR = 9,
Jesse Hall89bde782018-11-12 08:06:07 -08002429 VK_DRIVER_ID_GOOGLE_PASTEL_KHR = 10,
Jesse Hall2e6853c2018-10-02 14:05:37 -07002430}
2431
Jesse Halld27f6aa2015-08-15 17:58:48 -07002432/////////////////
2433// Bitfields //
2434/////////////////
2435
Jesse Halld27f6aa2015-08-15 17:58:48 -07002436/// Queue capabilities
Jesse Halld8bade02015-11-24 10:24:18 -08002437type VkFlags VkQueueFlags
2438bitfield VkQueueFlagBits {
Jesse Halld27f6aa2015-08-15 17:58:48 -07002439 VK_QUEUE_GRAPHICS_BIT = 0x00000001, /// Queue supports graphics operations
2440 VK_QUEUE_COMPUTE_BIT = 0x00000002, /// Queue supports compute operations
Jesse Hall65ab5522015-11-30 00:07:16 -08002441 VK_QUEUE_TRANSFER_BIT = 0x00000004, /// Queue supports transfer operations
Jesse Hallb00daad2015-11-29 19:46:20 -08002442 VK_QUEUE_SPARSE_BINDING_BIT = 0x00000008, /// Queue supports sparse resource memory management operations
Daniel Koch09f7bf92017-10-05 00:26:58 -04002443
Ian Elliott28bd2c32017-10-13 09:21:12 -06002444 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04002445 VK_QUEUE_PROTECTED_BIT = 0x00000010,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002446}
2447
2448/// Memory properties passed into vkAllocMemory().
Jesse Halld8bade02015-11-24 10:24:18 -08002449type VkFlags VkMemoryPropertyFlags
2450bitfield VkMemoryPropertyFlagBits {
Jesse Halld1af8122015-11-29 23:50:38 -08002451 VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT = 0x00000001,
2452 VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT = 0x00000002,
2453 VK_MEMORY_PROPERTY_HOST_COHERENT_BIT = 0x00000004,
2454 VK_MEMORY_PROPERTY_HOST_CACHED_BIT = 0x00000008,
2455 VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT = 0x00000010,
Daniel Koch09f7bf92017-10-05 00:26:58 -04002456
Ian Elliott28bd2c32017-10-13 09:21:12 -06002457 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04002458 VK_MEMORY_PROPERTY_PROTECTED_BIT = 0x00000020,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002459}
2460
2461/// Memory heap flags
Jesse Halld8bade02015-11-24 10:24:18 -08002462type VkFlags VkMemoryHeapFlags
2463bitfield VkMemoryHeapFlagBits {
Jesse Halld1af8122015-11-29 23:50:38 -08002464 VK_MEMORY_HEAP_DEVICE_LOCAL_BIT = 0x00000001,
Jesse Hallad250842017-03-10 18:35:38 -08002465
Ian Elliott28bd2c32017-10-13 09:21:12 -06002466 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04002467 VK_MEMORY_HEAP_MULTI_INSTANCE_BIT = 0x00000002,
2468
2469 //@extension("VK_KHR_device_group_creation") // 71
2470 VK_MEMORY_HEAP_MULTI_INSTANCE_BIT_KHR = 0x00000002,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002471}
2472
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08002473/// Access flags
2474type VkFlags VkAccessFlags
2475bitfield VkAccessFlagBits {
2476 VK_ACCESS_INDIRECT_COMMAND_READ_BIT = 0x00000001,
2477 VK_ACCESS_INDEX_READ_BIT = 0x00000002,
2478 VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT = 0x00000004,
2479 VK_ACCESS_UNIFORM_READ_BIT = 0x00000008,
2480 VK_ACCESS_INPUT_ATTACHMENT_READ_BIT = 0x00000010,
2481 VK_ACCESS_SHADER_READ_BIT = 0x00000020,
2482 VK_ACCESS_SHADER_WRITE_BIT = 0x00000040,
2483 VK_ACCESS_COLOR_ATTACHMENT_READ_BIT = 0x00000080,
2484 VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT = 0x00000100,
2485 VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT = 0x00000200,
2486 VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT = 0x00000400,
2487 VK_ACCESS_TRANSFER_READ_BIT = 0x00000800,
2488 VK_ACCESS_TRANSFER_WRITE_BIT = 0x00001000,
2489 VK_ACCESS_HOST_READ_BIT = 0x00002000,
2490 VK_ACCESS_HOST_WRITE_BIT = 0x00004000,
2491 VK_ACCESS_MEMORY_READ_BIT = 0x00008000,
2492 VK_ACCESS_MEMORY_WRITE_BIT = 0x00010000,
Chris Forbes289cb792016-12-30 15:03:55 +13002493
Jesse Hallad250842017-03-10 18:35:38 -08002494 //@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13002495 VK_ACCESS_COMMAND_PROCESS_READ_BIT_NVX = 0x00020000,
Chris Forbes289cb792016-12-30 15:03:55 +13002496 VK_ACCESS_COMMAND_PROCESS_WRITE_BIT_NVX = 0x00040000,
Jesse Hall7ba0ac72017-07-07 17:13:23 -07002497
2498 //@extension("VK_EXT_blend_operation_advanced") // 149
2499 VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT = 0x00080000,
Jesse Halla13a3cf2018-07-09 15:51:52 -07002500
2501 //@extension("VK_EXT_conditional_rendering") // 82
2502 VK_ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT = 0x00100000,
Jesse Hallb5297192018-09-22 20:52:13 +02002503
2504 //@extension("VK_NV_shading_rate_image") // 165
2505 VK_ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV = 0x00800000,
2506
Jesse Hallbeea46d2018-12-04 14:38:07 -08002507 //@extension("VK_NV_ray_tracing") // 166
Jesse Halla363a8e2018-11-05 21:18:00 -07002508 VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_NV = 0x00200000,
2509 VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_NV = 0x00400000,
Jesse Hallf47e8f82018-10-27 23:41:45 -07002510
Jesse Hall48514722018-12-04 14:44:42 -08002511 //@extension("VK_EXT_fragment_density_map") // 219
2512 VK_ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT = 0x01000000,
2513
Jesse Hallf47e8f82018-10-27 23:41:45 -07002514 //@extension("VK_EXT_transform_feedback") // 29
2515 VK_ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT = 0x02000000,
2516 VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT = 0x04000000,
2517 VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT = 0x08000000,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002518}
2519
2520/// Buffer usage flags
Jesse Halld8bade02015-11-24 10:24:18 -08002521type VkFlags VkBufferUsageFlags
2522bitfield VkBufferUsageFlagBits {
Jesse Hall3fbc8562015-11-29 22:10:52 -08002523 VK_BUFFER_USAGE_TRANSFER_SRC_BIT = 0x00000001, /// Can be used as a source of transfer operations
2524 VK_BUFFER_USAGE_TRANSFER_DST_BIT = 0x00000002, /// Can be used as a destination of transfer operations
Jesse Halld27f6aa2015-08-15 17:58:48 -07002525 VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT = 0x00000004, /// Can be used as TBO
2526 VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT = 0x00000008, /// Can be used as IBO
2527 VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT = 0x00000010, /// Can be used as UBO
2528 VK_BUFFER_USAGE_STORAGE_BUFFER_BIT = 0x00000020, /// Can be used as SSBO
2529 VK_BUFFER_USAGE_INDEX_BUFFER_BIT = 0x00000040, /// Can be used as source of fixed function index fetch (index buffer)
2530 VK_BUFFER_USAGE_VERTEX_BUFFER_BIT = 0x00000080, /// Can be used as source of fixed function vertex fetch (VBO)
2531 VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT = 0x00000100, /// Can be the source of indirect parameters (e.g. indirect buffer, parameter buffer)
Jesse Halla13a3cf2018-07-09 15:51:52 -07002532
2533 //@extension("VK_EXT_conditional_rendering") // 82
2534 VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT = 0x00000200,
Jesse Hallb5297192018-09-22 20:52:13 +02002535
Jesse Hallbeea46d2018-12-04 14:38:07 -08002536 //@extension("VK_NV_ray_tracing") // 166
Jesse Halla363a8e2018-11-05 21:18:00 -07002537 VK_BUFFER_USAGE_RAY_TRACING_BIT_NV = 0x00000400,
Jesse Hallf47e8f82018-10-27 23:41:45 -07002538
2539 //@extension("VK_EXT_transform_feedback") // 29
2540 VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT = 0x00000800,
2541 VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT = 0x00001000,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002542}
2543
2544/// Buffer creation flags
Jesse Halld8bade02015-11-24 10:24:18 -08002545type VkFlags VkBufferCreateFlags
2546bitfield VkBufferCreateFlagBits {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07002547 VK_BUFFER_CREATE_SPARSE_BINDING_BIT = 0x00000001, /// Buffer should support sparse backing
Jesse Halld27f6aa2015-08-15 17:58:48 -07002548 VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT = 0x00000002, /// Buffer should support sparse backing with partial residency
2549 VK_BUFFER_CREATE_SPARSE_ALIASED_BIT = 0x00000004, /// Buffer should support constent data access to physical memory blocks mapped into multiple locations of sparse buffers
Daniel Koch09f7bf92017-10-05 00:26:58 -04002550
Ian Elliott28bd2c32017-10-13 09:21:12 -06002551 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04002552 VK_BUFFER_CREATE_PROTECTED_BIT = 0x00000008,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002553}
2554
2555/// Shader stage flags
Jesse Halld8bade02015-11-24 10:24:18 -08002556type VkFlags VkShaderStageFlags
2557bitfield VkShaderStageFlagBits {
Jesse Halld27f6aa2015-08-15 17:58:48 -07002558 VK_SHADER_STAGE_VERTEX_BIT = 0x00000001,
Jesse Hallae38f732015-11-19 21:32:50 -08002559 VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT = 0x00000002,
2560 VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT = 0x00000004,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002561 VK_SHADER_STAGE_GEOMETRY_BIT = 0x00000008,
2562 VK_SHADER_STAGE_FRAGMENT_BIT = 0x00000010,
2563 VK_SHADER_STAGE_COMPUTE_BIT = 0x00000020,
Jesse Hallc7467b72015-11-29 21:05:26 -08002564 VK_SHADER_STAGE_ALL_GRAPHICS = 0x0000001F,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002565
2566 VK_SHADER_STAGE_ALL = 0x7FFFFFFF,
Jesse Hallb5297192018-09-22 20:52:13 +02002567
Jesse Hallbeea46d2018-12-04 14:38:07 -08002568 //@extension("VK_NV_ray_tracing") // 166
Jesse Halla363a8e2018-11-05 21:18:00 -07002569 VK_SHADER_STAGE_RAYGEN_BIT_NV = 0x00000100,
2570 VK_SHADER_STAGE_ANY_HIT_BIT_NV = 0x00000200,
2571 VK_SHADER_STAGE_CLOSEST_HIT_BIT_NV = 0x00000400,
2572 VK_SHADER_STAGE_MISS_BIT_NV = 0x00000800,
2573 VK_SHADER_STAGE_INTERSECTION_BIT_NV = 0x00001000,
2574 VK_SHADER_STAGE_CALLABLE_BIT_NV = 0x00002000,
Jesse Hallb5297192018-09-22 20:52:13 +02002575
2576 //@extension("VK_NV_mesh_shader") // 203
2577 VK_SHADER_STAGE_TASK_BIT_NV = 0x00000040,
2578 VK_SHADER_STAGE_MESH_BIT_NV = 0x00000080,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002579}
2580
Jesse Hallfbf97b02015-11-20 14:17:03 -08002581/// Descriptor pool create flags
Jesse Halld8bade02015-11-24 10:24:18 -08002582type VkFlags VkDescriptorPoolCreateFlags
2583bitfield VkDescriptorPoolCreateFlagBits {
Jesse Hallfbf97b02015-11-20 14:17:03 -08002584 VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT = 0x00000001,
Jesse Hall72e6a132018-04-06 13:00:44 -07002585
2586 //@extension("VK_EXT_descriptor_indexing") // 162
2587 VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT_EXT = 0x00000002,
Jesse Hallfbf97b02015-11-20 14:17:03 -08002588}
2589
2590/// Descriptor pool reset flags
Jesse Halld8bade02015-11-24 10:24:18 -08002591type VkFlags VkDescriptorPoolResetFlags
Jesse Halla6429252015-11-29 18:59:42 -08002592//bitfield VkDescriptorPoolResetFlagBits {
2593//}
Jesse Hallfbf97b02015-11-20 14:17:03 -08002594
Jesse Halld27f6aa2015-08-15 17:58:48 -07002595/// Image usage flags
Jesse Halld8bade02015-11-24 10:24:18 -08002596type VkFlags VkImageUsageFlags
2597bitfield VkImageUsageFlagBits {
Jesse Hall3fbc8562015-11-29 22:10:52 -08002598 VK_IMAGE_USAGE_TRANSFER_SRC_BIT = 0x00000001, /// Can be used as a source of transfer operations
2599 VK_IMAGE_USAGE_TRANSFER_DST_BIT = 0x00000002, /// Can be used as a destination of transfer operations
Jesse Halld27f6aa2015-08-15 17:58:48 -07002600 VK_IMAGE_USAGE_SAMPLED_BIT = 0x00000004, /// Can be sampled from (SAMPLED_IMAGE and COMBINED_IMAGE_SAMPLER descriptor types)
2601 VK_IMAGE_USAGE_STORAGE_BIT = 0x00000008, /// Can be used as storage image (STORAGE_IMAGE descriptor type)
2602 VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT = 0x00000010, /// Can be used as framebuffer color attachment
Jesse Hall5ae3abb2015-10-08 14:00:22 -07002603 VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000020, /// Can be used as framebuffer depth/stencil attachment
Jesse Halld27f6aa2015-08-15 17:58:48 -07002604 VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT = 0x00000040, /// Image data not needed outside of rendering
2605 VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT = 0x00000080, /// Can be used as framebuffer input attachment
Jesse Hallb5297192018-09-22 20:52:13 +02002606
2607 //@extension("VK_NV_shading_rate_image") // 165
2608 VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV = 0x00000100,
Jesse Hall48514722018-12-04 14:44:42 -08002609
2610 //@extension("VK_EXT_fragment_density_map") // 219
2611 VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT = 0x00000200,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002612}
2613
2614/// Image creation flags
Jesse Halld8bade02015-11-24 10:24:18 -08002615type VkFlags VkImageCreateFlags
2616bitfield VkImageCreateFlagBits {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07002617 VK_IMAGE_CREATE_SPARSE_BINDING_BIT = 0x00000001, /// Image should support sparse backing
Jesse Halld27f6aa2015-08-15 17:58:48 -07002618 VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT = 0x00000002, /// Image should support sparse backing with partial residency
2619 VK_IMAGE_CREATE_SPARSE_ALIASED_BIT = 0x00000004, /// Image should support constent data access to physical memory blocks mapped into multiple locations of sparse images
Jesse Hall5ae3abb2015-10-08 14:00:22 -07002620 VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT = 0x00000008, /// Allows image views to have different format than the base image
2621 VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT = 0x00000010, /// Allows creating image views with cube type from the created image
Jesse Hall77ad05b2017-03-10 22:02:20 -08002622
Ian Elliott28bd2c32017-10-13 09:21:12 -06002623 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04002624 VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT = 0x00000020,
Jesse Hall8c954d32018-01-17 22:06:20 -08002625 VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT = 0x00000040,
Daniel Koch09f7bf92017-10-05 00:26:58 -04002626 VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT = 0x00000080,
2627 VK_IMAGE_CREATE_EXTENDED_USAGE_BIT = 0x00000100,
Daniel Koch09f7bf92017-10-05 00:26:58 -04002628 VK_IMAGE_CREATE_DISJOINT_BIT = 0x00000200,
Ian Elliott28bd2c32017-10-13 09:21:12 -06002629 VK_IMAGE_CREATE_ALIAS_BIT = 0x00000400,
2630 VK_IMAGE_CREATE_PROTECTED_BIT = 0x00000800,
Daniel Koch09f7bf92017-10-05 00:26:58 -04002631
Jesse Hallad250842017-03-10 18:35:38 -08002632 //@extension("VK_KHR_maintenance1") // 70
Jesse Hall77ad05b2017-03-10 22:02:20 -08002633 VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT_KHR = 0x00000020,
Jesse Hallad250842017-03-10 18:35:38 -08002634
Daniel Koch09f7bf92017-10-05 00:26:58 -04002635 //@extension("VK_KHR_device_group") // 61
2636 VK_IMAGE_CREATE_BIND_SFR_BIT_KHR = 0x00000040,
Jesse Hall77726222017-09-19 14:49:27 -05002637
Jesse Hall076f95d2017-09-20 11:34:47 -07002638 //@extension("VK_KHR_maintenance2") // 118
2639 VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT_KHR = 0x00000080,
2640 VK_IMAGE_CREATE_EXTENDED_USAGE_BIT_KHR = 0x00000100,
2641
2642 //@extension("VK_KHR_sampler_ycbcr_conversion") // 157
2643 VK_IMAGE_CREATE_DISJOINT_BIT_KHR = 0x00000200,
2644
2645 //@extension("VK_KHR_bind_memory2") // 158
2646 VK_IMAGE_CREATE_ALIAS_BIT_KHR = 0x00000400,
Ian Elliott28bd2c32017-10-13 09:21:12 -06002647
2648 //@extension("VK_EXT_sample_locations") // 144
2649 VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT = 0x00001000,
Jesse Hallb5297192018-09-22 20:52:13 +02002650
2651 //@extension("VK_NV_corner_sampled_image") // 51
2652 VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV = 0x00002000,
Jesse Hall48514722018-12-04 14:44:42 -08002653
2654 //@extension("VK_EXT_fragment_density_map") // 219
2655 VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT = 0x00004000,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002656}
2657
Jesse Hallb00daad2015-11-29 19:46:20 -08002658/// Image view creation flags
Jesse Halld8bade02015-11-24 10:24:18 -08002659type VkFlags VkImageViewCreateFlags
Jesse Hall48514722018-12-04 14:44:42 -08002660bitfield VkImageViewCreateFlagBits {
2661 //@extension("VK_EXT_fragment_density_map") // 219
2662 VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT = 0x00000001,
2663}
Jesse Halld27f6aa2015-08-15 17:58:48 -07002664
2665/// Pipeline creation flags
Jesse Halld8bade02015-11-24 10:24:18 -08002666type VkFlags VkPipelineCreateFlags
2667bitfield VkPipelineCreateFlagBits {
Jesse Halld27f6aa2015-08-15 17:58:48 -07002668 VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT = 0x00000001,
2669 VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT = 0x00000002,
2670 VK_PIPELINE_CREATE_DERIVATIVE_BIT = 0x00000004,
Jesse Hallad250842017-03-10 18:35:38 -08002671
Ian Elliott28bd2c32017-10-13 09:21:12 -06002672 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04002673 VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT = 0x00000008,
2674 VK_PIPELINE_CREATE_DISPATCH_BASE = 0x00000010,
2675
2676 //@extension("VK_KHR_device_group") // 61
2677 VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR = 0x00000008,
2678 VK_PIPELINE_CREATE_DISPATCH_BASE_KHR = 0x00000010,
Jesse Hallb5297192018-09-22 20:52:13 +02002679
Jesse Hallbeea46d2018-12-04 14:38:07 -08002680 //@extension("VK_NV_ray_tracing") // 166
Jesse Halla363a8e2018-11-05 21:18:00 -07002681 VK_PIPELINE_CREATE_DEFER_COMPILE_BIT_NV = 0x00000020,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002682}
2683
Jesse Hall65ab5522015-11-30 00:07:16 -08002684/// Color component flags
2685type VkFlags VkColorComponentFlags
2686bitfield VkColorComponentFlagBits {
2687 VK_COLOR_COMPONENT_R_BIT = 0x00000001,
2688 VK_COLOR_COMPONENT_G_BIT = 0x00000002,
2689 VK_COLOR_COMPONENT_B_BIT = 0x00000004,
2690 VK_COLOR_COMPONENT_A_BIT = 0x00000008,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002691}
2692
2693/// Fence creation flags
Jesse Halld8bade02015-11-24 10:24:18 -08002694type VkFlags VkFenceCreateFlags
2695bitfield VkFenceCreateFlagBits {
Jesse Halld27f6aa2015-08-15 17:58:48 -07002696 VK_FENCE_CREATE_SIGNALED_BIT = 0x00000001,
2697}
2698
2699/// Semaphore creation flags
Jesse Halld8bade02015-11-24 10:24:18 -08002700type VkFlags VkSemaphoreCreateFlags
Jesse Halla6429252015-11-29 18:59:42 -08002701//bitfield VkSemaphoreCreateFlagBits {
2702//}
Jesse Halld27f6aa2015-08-15 17:58:48 -07002703
2704/// Format capability flags
Jesse Halld8bade02015-11-24 10:24:18 -08002705type VkFlags VkFormatFeatureFlags
2706bitfield VkFormatFeatureFlagBits {
Jesse Halld27f6aa2015-08-15 17:58:48 -07002707 VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT = 0x00000001, /// Format can be used for sampled images (SAMPLED_IMAGE and COMBINED_IMAGE_SAMPLER descriptor types)
2708 VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT = 0x00000002, /// Format can be used for storage images (STORAGE_IMAGE descriptor type)
2709 VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT = 0x00000004, /// Format supports atomic operations in case it's used for storage images
2710 VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT = 0x00000008, /// Format can be used for uniform texel buffers (TBOs)
2711 VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT = 0x00000010, /// Format can be used for storage texel buffers (IBOs)
2712 VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT = 0x00000020, /// Format supports atomic operations in case it's used for storage texel buffers
2713 VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT = 0x00000040, /// Format can be used for vertex buffers (VBOs)
2714 VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT = 0x00000080, /// Format can be used for color attachment images
2715 VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT = 0x00000100, /// Format supports blending in case it's used for color attachment images
2716 VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000200, /// Format can be used for depth/stencil attachment images
Jesse Hall3fbc8562015-11-29 22:10:52 -08002717 VK_FORMAT_FEATURE_BLIT_SRC_BIT = 0x00000400, /// Format can be used as the source image of blits with vkCommandBlitImage
2718 VK_FORMAT_FEATURE_BLIT_DST_BIT = 0x00000800, /// Format can be used as the destination image of blits with vkCommandBlitImage
Jesse Hall33faaad2016-01-24 21:00:49 -08002719 VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT = 0x00001000,
Jesse Hall26763382016-05-20 07:13:52 -07002720
Ian Elliott28bd2c32017-10-13 09:21:12 -06002721 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04002722 VK_FORMAT_FEATURE_TRANSFER_SRC_BIT = 0x00004000,
2723 VK_FORMAT_FEATURE_TRANSFER_DST_BIT = 0x00008000,
2724 VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT = 0x00020000,
2725 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT = 0x00040000,
2726 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT = 0x00080000,
2727 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT = 0x00100000,
2728 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT = 0x00200000,
2729 VK_FORMAT_FEATURE_DISJOINT_BIT = 0x00400000,
2730 VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT = 0x00800000,
2731
Jesse Hallad250842017-03-10 18:35:38 -08002732 //@extension("VK_IMG_filter_cubic") // 16
Jesse Hall26763382016-05-20 07:13:52 -07002733 VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG = 0x00002000,
Jesse Hall77ad05b2017-03-10 22:02:20 -08002734
Jesse Hallad250842017-03-10 18:35:38 -08002735 //@extension("VK_KHR_maintenance1") // 70
Jesse Hall77ad05b2017-03-10 22:02:20 -08002736 VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR = 0x00004000,
2737 VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR = 0x00008000,
Jesse Hall7ba0ac72017-07-07 17:13:23 -07002738
2739 //@extension("VK_EXT_sampler_filter_minmax") // 131
2740 VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT_EXT = 0x00010000,
Jesse Hall076f95d2017-09-20 11:34:47 -07002741
2742 //@extension("VK_KHR_sampler_ycbcr_conversion") // 157
2743 VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT_KHR = 0x00020000,
2744 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT_KHR = 0x00040000,
2745 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT_KHR = 0x00080000,
2746 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT_KHR = 0x00100000,
2747 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT_KHR = 0x00200000,
2748 VK_FORMAT_FEATURE_DISJOINT_BIT_KHR = 0x00400000,
2749 VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT_KHR = 0x00800000,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002750}
2751
2752/// Query control flags
Jesse Halld8bade02015-11-24 10:24:18 -08002753type VkFlags VkQueryControlFlags
2754bitfield VkQueryControlFlagBits {
Jesse Hall65ab5522015-11-30 00:07:16 -08002755 VK_QUERY_CONTROL_PRECISE_BIT = 0x00000001,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002756}
2757
2758/// Query result flags
Jesse Halld8bade02015-11-24 10:24:18 -08002759type VkFlags VkQueryResultFlags
2760bitfield VkQueryResultFlagBits {
Jesse Halld27f6aa2015-08-15 17:58:48 -07002761 VK_QUERY_RESULT_64_BIT = 0x00000001, /// Results of the queries are written to the destination buffer as 64-bit values
2762 VK_QUERY_RESULT_WAIT_BIT = 0x00000002, /// Results of the queries are waited on before proceeding with the result copy
2763 VK_QUERY_RESULT_WITH_AVAILABILITY_BIT = 0x00000004, /// Besides the results of the query, the availability of the results is also written
2764 VK_QUERY_RESULT_PARTIAL_BIT = 0x00000008, /// Copy the partial results of the query even if the final results aren't available
2765}
2766
2767/// Shader module creation flags
Jesse Halld8bade02015-11-24 10:24:18 -08002768type VkFlags VkShaderModuleCreateFlags
Jesse Halla6429252015-11-29 18:59:42 -08002769//bitfield VkShaderModuleCreateFlagBits {
2770//}
Jesse Halld27f6aa2015-08-15 17:58:48 -07002771
Jesse Halld27f6aa2015-08-15 17:58:48 -07002772/// Event creation flags
Jesse Halld8bade02015-11-24 10:24:18 -08002773type VkFlags VkEventCreateFlags
Jesse Halla6429252015-11-29 18:59:42 -08002774//bitfield VkEventCreateFlagBits {
2775//}
Jesse Halld27f6aa2015-08-15 17:58:48 -07002776
Jesse Halla15a4bf2015-11-19 22:48:02 -08002777/// Command buffer usage flags
Jesse Hall3fbc8562015-11-29 22:10:52 -08002778type VkFlags VkCommandBufferUsageFlags
2779bitfield VkCommandBufferUsageFlagBits {
2780 VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT = 0x00000001,
2781 VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT = 0x00000002,
2782 VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT = 0x00000004,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002783}
2784
2785/// Pipeline statistics flags
Jesse Halld8bade02015-11-24 10:24:18 -08002786type VkFlags VkQueryPipelineStatisticFlags
2787bitfield VkQueryPipelineStatisticFlagBits {
Jesse Hallae38f732015-11-19 21:32:50 -08002788 VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT = 0x00000001, /// Optional
2789 VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT = 0x00000002, /// Optional
2790 VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT = 0x00000004, /// Optional
2791 VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT = 0x00000008, /// Optional
2792 VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT = 0x00000010, /// Optional
2793 VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT = 0x00000020, /// Optional
2794 VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT = 0x00000040, /// Optional
2795 VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT = 0x00000080, /// Optional
2796 VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT = 0x00000100, /// Optional
2797 VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT = 0x00000200, /// Optional
2798 VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT = 0x00000400, /// Optional
Jesse Halld27f6aa2015-08-15 17:58:48 -07002799}
2800
2801/// Memory mapping flags
Jesse Halld8bade02015-11-24 10:24:18 -08002802type VkFlags VkMemoryMapFlags
Jesse Halla6429252015-11-29 18:59:42 -08002803//bitfield VkMemoryMapFlagBits {
2804//}
Jesse Halld27f6aa2015-08-15 17:58:48 -07002805
2806/// Bitfield of image aspects
Jesse Halld8bade02015-11-24 10:24:18 -08002807type VkFlags VkImageAspectFlags
2808bitfield VkImageAspectFlagBits {
Jesse Halld27f6aa2015-08-15 17:58:48 -07002809 VK_IMAGE_ASPECT_COLOR_BIT = 0x00000001,
2810 VK_IMAGE_ASPECT_DEPTH_BIT = 0x00000002,
2811 VK_IMAGE_ASPECT_STENCIL_BIT = 0x00000004,
2812 VK_IMAGE_ASPECT_METADATA_BIT = 0x00000008,
Jesse Hall076f95d2017-09-20 11:34:47 -07002813
Ian Elliott28bd2c32017-10-13 09:21:12 -06002814 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04002815 VK_IMAGE_ASPECT_PLANE_0_BIT = 0x00000010,
2816 VK_IMAGE_ASPECT_PLANE_1_BIT = 0x00000020,
2817 VK_IMAGE_ASPECT_PLANE_2_BIT = 0x00000040,
2818
Jesse Hall076f95d2017-09-20 11:34:47 -07002819 //@extension("VK_KHR_sampler_ycbcr_conversion") // 157
2820 VK_IMAGE_ASPECT_PLANE_0_BIT_KHR = 0x00000010,
2821 VK_IMAGE_ASPECT_PLANE_1_BIT_KHR = 0x00000020,
2822 VK_IMAGE_ASPECT_PLANE_2_BIT_KHR = 0x00000040,
Jesse Hallf47e8f82018-10-27 23:41:45 -07002823
2824 //@extension("VK_EXT_transform_feedback") // 29
2825 VK_IMAGE_ASPECT_MEMORY_PLANE_0_BIT_EXT = 0x00000080,
2826 VK_IMAGE_ASPECT_MEMORY_PLANE_1_BIT_EXT = 0x00000100,
2827 VK_IMAGE_ASPECT_MEMORY_PLANE_2_BIT_EXT = 0x00000200,
2828 VK_IMAGE_ASPECT_MEMORY_PLANE_3_BIT_EXT = 0x00000400,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002829}
2830
2831/// Sparse memory bind flags
Jesse Halld8bade02015-11-24 10:24:18 -08002832type VkFlags VkSparseMemoryBindFlags
Jesse Hall091ed9e2015-11-30 00:55:29 -08002833bitfield VkSparseMemoryBindFlagBits {
2834 VK_SPARSE_MEMORY_BIND_METADATA_BIT = 0x00000001,
2835}
Jesse Halld27f6aa2015-08-15 17:58:48 -07002836
2837/// Sparse image memory requirements flags
Jesse Halld8bade02015-11-24 10:24:18 -08002838type VkFlags VkSparseImageFormatFlags
2839bitfield VkSparseImageFormatFlagBits {
Jesse Hallb00daad2015-11-29 19:46:20 -08002840 VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT = 0x00000001, /// Image uses a single miptail region for all array slices
2841 VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT = 0x00000002, /// Image requires mip levels to be an exact multiple of the sparse iamge block size for non-mip-tail levels.
2842 VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT = 0x00000004, /// Image uses a non-standard sparse block size
Jesse Halld27f6aa2015-08-15 17:58:48 -07002843}
2844
2845/// Pipeline stages
Jesse Halld8bade02015-11-24 10:24:18 -08002846type VkFlags VkPipelineStageFlags
2847bitfield VkPipelineStageFlagBits {
Jesse Halld27f6aa2015-08-15 17:58:48 -07002848 VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT = 0x00000001, /// Before subsequent commands are processed
2849 VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT = 0x00000002, /// Draw/DispatchIndirect command fetch
2850 VK_PIPELINE_STAGE_VERTEX_INPUT_BIT = 0x00000004, /// Vertex/index fetch
2851 VK_PIPELINE_STAGE_VERTEX_SHADER_BIT = 0x00000008, /// Vertex shading
Jesse Hallae38f732015-11-19 21:32:50 -08002852 VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT = 0x00000010, /// Tessellation control shading
2853 VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT = 0x00000020, /// Tessellation evaluation shading
Jesse Halld27f6aa2015-08-15 17:58:48 -07002854 VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT = 0x00000040, /// Geometry shading
2855 VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT = 0x00000080, /// Fragment shading
2856 VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT = 0x00000100, /// Early fragment (depth/stencil) tests
2857 VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT = 0x00000200, /// Late fragment (depth/stencil) tests
2858 VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT = 0x00000400, /// Color attachment writes
2859 VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT = 0x00000800, /// Compute shading
2860 VK_PIPELINE_STAGE_TRANSFER_BIT = 0x00001000, /// Transfer/copy operations
Jesse Hall543a7ff2016-01-08 16:38:30 -08002861 VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT = 0x00002000,
2862 VK_PIPELINE_STAGE_HOST_BIT = 0x00004000, /// Indicates host (CPU) is a source/sink of the dependency
Jesse Halld27f6aa2015-08-15 17:58:48 -07002863
Jesse Hall543a7ff2016-01-08 16:38:30 -08002864 VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT = 0x00008000, /// All stages of the graphics pipeline
2865 VK_PIPELINE_STAGE_ALL_COMMANDS_BIT = 0x00010000, /// All graphics, compute, copy, and transition commands
Chris Forbes289cb792016-12-30 15:03:55 +13002866
Jesse Hallad250842017-03-10 18:35:38 -08002867 //@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13002868 VK_PIPELINE_STAGE_COMMAND_PROCESS_BIT_NVX = 0x00020000,
Jesse Halla13a3cf2018-07-09 15:51:52 -07002869
2870 //@extension("VK_EXT_conditional_rendering") // 82
2871 VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT = 0x00040000,
Jesse Hallb5297192018-09-22 20:52:13 +02002872
Jesse Hallb5297192018-09-22 20:52:13 +02002873 //@extension("VK_NV_mesh_shader") // 203
2874 VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV = 0x00080000,
2875 VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV = 0x00100000,
Jesse Hallf47e8f82018-10-27 23:41:45 -07002876
Jesse Hall48514722018-12-04 14:44:42 -08002877 //@extension("VK_NV_ray_tracing") // 166
2878 VK_PIPELINE_STAGE_RAY_TRACING_BIT_NV = 0x00200000,
2879
2880 //@extension("VK_NV_shading_rate_image") // 165
2881 VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV = 0x00400000,
2882
2883 //@extension("VK_EXT_fragment_density_map") // 219
2884 VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT = 0x00800000,
2885
Jesse Hallf47e8f82018-10-27 23:41:45 -07002886 //@extension("VK_EXT_transform_feedback") // 29
2887 VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT = 0x01000000,
Jesse Hallbeea46d2018-12-04 14:38:07 -08002888
2889 //@extension("VK_NV_ray_tracing") // 166
2890 VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_NV = 0x02000000,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07002891}
2892
2893/// Render pass attachment description flags
Jesse Halld8bade02015-11-24 10:24:18 -08002894type VkFlags VkAttachmentDescriptionFlags
2895bitfield VkAttachmentDescriptionFlagBits {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07002896 VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT = 0x00000001, /// The attachment may alias physical memory of another attachment in the same renderpass
Jesse Halld27f6aa2015-08-15 17:58:48 -07002897}
2898
2899/// Subpass description flags
Jesse Halld8bade02015-11-24 10:24:18 -08002900type VkFlags VkSubpassDescriptionFlags
2901bitfield VkSubpassDescriptionFlagBits {
Jesse Hallad250842017-03-10 18:35:38 -08002902 //@extension("VK_NVX_multiview_per_view_attributes") // 98
2903 VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX = 0x00000001,
2904 VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX = 0x00000002,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002905}
2906
2907/// Command pool creation flags
Jesse Hall3fbc8562015-11-29 22:10:52 -08002908type VkFlags VkCommandPoolCreateFlags
2909bitfield VkCommandPoolCreateFlagBits {
2910 VK_COMMAND_POOL_CREATE_TRANSIENT_BIT = 0x00000001, /// Command buffers have a short lifetime
2911 VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT = 0x00000002, /// Command buffers may release their memory individually
Daniel Koch09f7bf92017-10-05 00:26:58 -04002912
Ian Elliott28bd2c32017-10-13 09:21:12 -06002913 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04002914 VK_COMMAND_POOL_CREATE_PROTECTED_BIT = 0x00000004,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002915}
2916
2917/// Command pool reset flags
Jesse Hall3fbc8562015-11-29 22:10:52 -08002918type VkFlags VkCommandPoolResetFlags
2919bitfield VkCommandPoolResetFlagBits {
2920 VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT = 0x00000001, /// Release resources owned by the pool
Jesse Halld27f6aa2015-08-15 17:58:48 -07002921}
2922
Jesse Hall3fbc8562015-11-29 22:10:52 -08002923type VkFlags VkCommandBufferResetFlags
2924bitfield VkCommandBufferResetFlagBits {
2925 VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT = 0x00000001, /// Release resources owned by the buffer
Jesse Hall5ae3abb2015-10-08 14:00:22 -07002926}
2927
Jesse Halld8bade02015-11-24 10:24:18 -08002928type VkFlags VkSampleCountFlags
2929bitfield VkSampleCountFlagBits {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07002930 VK_SAMPLE_COUNT_1_BIT = 0x00000001,
2931 VK_SAMPLE_COUNT_2_BIT = 0x00000002,
2932 VK_SAMPLE_COUNT_4_BIT = 0x00000004,
2933 VK_SAMPLE_COUNT_8_BIT = 0x00000008,
2934 VK_SAMPLE_COUNT_16_BIT = 0x00000010,
2935 VK_SAMPLE_COUNT_32_BIT = 0x00000020,
2936 VK_SAMPLE_COUNT_64_BIT = 0x00000040,
2937}
2938
Jesse Halld8bade02015-11-24 10:24:18 -08002939type VkFlags VkStencilFaceFlags
2940bitfield VkStencilFaceFlagBits {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07002941 VK_STENCIL_FACE_FRONT_BIT = 0x00000001, /// Front face
2942 VK_STENCIL_FACE_BACK_BIT = 0x00000002, /// Back face
Jesse Hallc7467b72015-11-29 21:05:26 -08002943 VK_STENCIL_FRONT_AND_BACK = 0x00000003,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002944}
2945
Jesse Halla6429252015-11-29 18:59:42 -08002946/// Instance creation flags
2947type VkFlags VkInstanceCreateFlags
2948//bitfield VkInstanceCreateFlagBits {
2949//}
2950
2951/// Device creation flags
2952type VkFlags VkDeviceCreateFlags
2953//bitfield VkDeviceCreateFlagBits {
2954//}
2955
2956/// Device queue creation flags
2957type VkFlags VkDeviceQueueCreateFlags
Ian Elliott28bd2c32017-10-13 09:21:12 -06002958@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04002959bitfield VkDeviceQueueCreateFlagBits {
2960 VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT = 0x00000001,
2961}
Jesse Halla6429252015-11-29 18:59:42 -08002962
2963/// Query pool creation flags
2964type VkFlags VkQueryPoolCreateFlags
2965//bitfield VkQueryPoolCreateFlagBits {
2966//}
2967
2968/// Buffer view creation flags
2969type VkFlags VkBufferViewCreateFlags
2970//bitfield VkBufferViewCreateFlagBits {
2971//}
2972
2973/// Pipeline cache creation flags
2974type VkFlags VkPipelineCacheCreateFlags
2975//bitfield VkPipelineCacheCreateFlagBits {
2976//}
2977
2978/// Pipeline shader stage creation flags
2979type VkFlags VkPipelineShaderStageCreateFlags
2980//bitfield VkPipelineShaderStageCreateFlagBits {
2981//}
2982
2983/// Descriptor set layout creation flags
2984type VkFlags VkDescriptorSetLayoutCreateFlags
Jesse Hallad250842017-03-10 18:35:38 -08002985bitfield VkDescriptorSetLayoutCreateFlagBits {
2986 //@extension("VK_KHR_push_descriptor") // 81
2987 VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR = 0x00000001,
Jesse Hall72e6a132018-04-06 13:00:44 -07002988
2989 //@extension("VK_EXT_descriptor_indexing") // 162
2990 VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT = 0x00000002,
Jesse Hallad250842017-03-10 18:35:38 -08002991}
Jesse Halla6429252015-11-29 18:59:42 -08002992
2993/// Pipeline vertex input state creation flags
2994type VkFlags VkPipelineVertexInputStateCreateFlags
2995//bitfield VkPipelineVertexInputStateCreateFlagBits {
2996//}
2997
2998/// Pipeline input assembly state creation flags
2999type VkFlags VkPipelineInputAssemblyStateCreateFlags
3000//bitfield VkPipelineInputAssemblyStateCreateFlagBits {
3001//}
3002
3003/// Tessellation state creation flags
3004type VkFlags VkPipelineTessellationStateCreateFlags
3005//bitfield VkPipelineTessellationStateCreateFlagBits {
3006//}
3007
3008/// Viewport state creation flags
3009type VkFlags VkPipelineViewportStateCreateFlags
3010//bitfield VkPipelineViewportStateCreateFlagBits {
3011//}
3012
Jesse Hall3fbc8562015-11-29 22:10:52 -08003013/// Rasterization state creation flags
3014type VkFlags VkPipelineRasterizationStateCreateFlags
3015//bitfield VkPipelineRasterizationStateCreateFlagBits {
Jesse Halla6429252015-11-29 18:59:42 -08003016//}
3017
3018/// Multisample state creation flags
3019type VkFlags VkPipelineMultisampleStateCreateFlags
3020//bitfield VkPipelineMultisampleStateCreateFlagBits {
3021//}
3022
3023/// Color blend state creation flags
3024type VkFlags VkPipelineColorBlendStateCreateFlags
3025//bitfield VkPipelineColorBlendStateCreateFlagBits {
3026//}
3027
3028/// Depth/stencil state creation flags
3029type VkFlags VkPipelineDepthStencilStateCreateFlags
3030//bitfield VkPipelineDepthStencilStateCreateFlagBits {
3031//}
3032
3033/// Dynamic state creation flags
3034type VkFlags VkPipelineDynamicStateCreateFlags
3035//bitfield VkPipelineDynamicStateCreateFlagBits {
3036//}
3037
3038/// Pipeline layout creation flags
3039type VkFlags VkPipelineLayoutCreateFlags
3040//bitfield VkPipelineLayoutCreateFlagBits {
3041//}
3042
3043/// Sampler creation flags
3044type VkFlags VkSamplerCreateFlags
Jesse Hall48514722018-12-04 14:44:42 -08003045bitfield VkSamplerCreateFlagBits {
3046 //@extension("VK_EXT_fragment_density_map") // 219
3047 VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT = 0x00000001,
3048 VK_SAMPLER_CREATE_SUBSAMPLED_COARSE_RECONSTRUCTION_BIT_EXT = 0x00000002,
3049}
Jesse Halla6429252015-11-29 18:59:42 -08003050
3051/// Render pass creation flags
3052type VkFlags VkRenderPassCreateFlags
3053//bitfield VkRenderPassCreateFlagBits {
3054//}
3055
3056/// Framebuffer creation flags
3057type VkFlags VkFramebufferCreateFlags
3058//bitfield VkFramebufferCreateFlagBits {
3059//}
3060
Jesse Halldc6d36c2015-11-29 19:12:15 -08003061/// Dependency flags
3062type VkFlags VkDependencyFlags
3063bitfield VkDependencyFlagBits {
3064 VK_DEPENDENCY_BY_REGION_BIT = 0x00000001,
Jesse Hallad250842017-03-10 18:35:38 -08003065
Ian Elliott28bd2c32017-10-13 09:21:12 -06003066 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04003067 VK_DEPENDENCY_DEVICE_GROUP_BIT = 0x00000004,
3068 VK_DEPENDENCY_VIEW_LOCAL_BIT = 0x00000002,
Jesse Hallad250842017-03-10 18:35:38 -08003069
Daniel Koch09f7bf92017-10-05 00:26:58 -04003070 //@extension("VK_KHR_multiview") // 54
3071 VK_DEPENDENCY_VIEW_LOCAL_BIT_KHR = 0x00000002,
3072
3073 //@extension("VK_KHR_device_group") // 61
3074 VK_DEPENDENCY_DEVICE_GROUP_BIT_KHR = 0x00000004,
Jesse Halldc6d36c2015-11-29 19:12:15 -08003075}
3076
Jesse Hallc7467b72015-11-29 21:05:26 -08003077/// Cull mode flags
3078type VkFlags VkCullModeFlags
3079bitfield VkCullModeFlagBits {
3080 VK_CULL_MODE_NONE = 0x00000000,
3081 VK_CULL_MODE_FRONT_BIT = 0x00000001,
3082 VK_CULL_MODE_BACK_BIT = 0x00000002,
3083 VK_CULL_MODE_FRONT_AND_BACK = 0x00000003,
3084}
3085
Ian Elliott28bd2c32017-10-13 09:21:12 -06003086//@vulkan1_1 flags
Daniel Koch09f7bf92017-10-05 00:26:58 -04003087
3088/// Subgroup feature flags
3089type VkFlags VkSubgroupFeatureFlags
3090bitfield VkSubgroupFeatureFlagBits {
3091 VK_SUBGROUP_FEATURE_BASIC_BIT = 0x00000001,
3092 VK_SUBGROUP_FEATURE_VOTE_BIT = 0x00000002,
3093 VK_SUBGROUP_FEATURE_ARITHMETIC_BIT = 0x00000004,
3094 VK_SUBGROUP_FEATURE_BALLOT_BIT = 0x00000008,
3095 VK_SUBGROUP_FEATURE_SHUFFLE_BIT = 0x00000010,
3096 VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT = 0x00000020,
3097 VK_SUBGROUP_FEATURE_CLUSTERED_BIT = 0x00000040,
3098 VK_SUBGROUP_FEATURE_QUAD_BIT = 0x00000080,
Jesse Hall72e6a132018-04-06 13:00:44 -07003099
3100 //@extension("VK_NV_shader_subgroup_partitioned") // 199
3101 VK_SUBGROUP_FEATURE_PARTITIONED_BIT_NV = 0x00000100,
Daniel Koch09f7bf92017-10-05 00:26:58 -04003102}
3103
3104/// Peer memory feature flags
3105type VkFlags VkPeerMemoryFeatureFlags
3106bitfield VkPeerMemoryFeatureFlagBits {
3107 VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT = 0x00000001,
3108 VK_PEER_MEMORY_FEATURE_COPY_DST_BIT = 0x00000002,
3109 VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT = 0x00000004,
3110 VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT = 0x00000008,
3111}
3112
3113/// Memory allocation flags
3114type VkFlags VkMemoryAllocateFlags
3115bitfield VkMemoryAllocateFlagBits {
3116 VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT = 0x00000001,
3117}
3118
3119type VkFlags VkCommandPoolTrimFlags
3120//bitfield VkCommandPoolTrimFlagBits {
3121//}
3122
3123type VkFlags VkDescriptorUpdateTemplateCreateFlags
3124//bitfield VkDescriptorUpdateTemplateCreateFlagBits {
3125//}
3126
3127/// External memory handle type flags
3128type VkFlags VkExternalMemoryHandleTypeFlags
3129bitfield VkExternalMemoryHandleTypeFlagBits {
3130 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT = 0x00000001,
3131 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT = 0x00000002,
3132 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 0x00000004,
3133 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT = 0x00000008,
3134 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT = 0x00000010,
3135 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT = 0x00000020,
3136 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT = 0x00000040,
Jesse Hall8c954d32018-01-17 22:06:20 -08003137
Jesse Hall8c954d32018-01-17 22:06:20 -08003138 //@extension("VK_EXT_external_memory_host") // 179
Jesse Hall36215a92018-01-18 15:04:37 -08003139 VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT = 0x00000080,
3140 VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT = 0x00000100,
3141
3142 //@extension("VK_EXT_external_memory_dma_buf") // 126
3143 VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT = 0x00000200,
3144
3145 //@extension("VK_ANDROID_external_memory_android_hardware_buffer") // 130
3146 VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID = 0x00000400,
Daniel Koch09f7bf92017-10-05 00:26:58 -04003147}
3148
3149/// External memory feature flags
3150type VkFlags VkExternalMemoryFeatureFlags
3151bitfield VkExternalMemoryFeatureFlagBits {
3152 VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT = 0x00000001,
3153 VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT = 0x00000002,
3154 VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT = 0x00000004,
3155}
3156
3157/// External fence handle type flags
3158type VkFlags VkExternalFenceHandleTypeFlags
3159bitfield VkExternalFenceHandleTypeFlagBits {
3160 VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT = 0x00000001,
3161 VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT = 0x00000002,
3162 VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 0x00000004,
3163 VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT = 0x00000008,
3164}
3165
3166/// External fence feature flags
3167type VkFlags VkExternalFenceFeatureFlags
3168bitfield VkExternalFenceFeatureFlagBits {
3169 VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT = 0x00000001,
3170 VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT = 0x00000002,
3171}
3172
3173/// Fence import flags
3174type VkFlags VkFenceImportFlags
3175bitfield VkFenceImportFlagBits {
3176 VK_FENCE_IMPORT_TEMPORARY_BIT = 0x00000001,
3177}
3178
3179/// Semaphore import flags
3180type VkFlags VkSemaphoreImportFlags
3181bitfield VkSemaphoreImportFlagBits {
3182 VK_SEMAPHORE_IMPORT_TEMPORARY_BIT = 0x00000001,
3183}
3184
3185/// External semaphore handle type flags
3186type VkFlags VkExternalSemaphoreHandleTypeFlags
3187bitfield VkExternalSemaphoreHandleTypeFlagBits {
3188 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT = 0x00000001,
3189 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT = 0x00000002,
3190 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 0x00000004,
3191 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT = 0x00000008,
3192 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT = 0x00000010,
3193}
3194
3195/// External semaphore feature flags
3196type VkFlags VkExternalSemaphoreFeatureFlags
3197bitfield VkExternalSemaphoreFeatureFlagBits {
3198 VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT = 0x00000001,
3199 VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT = 0x00000002,
3200}
3201
Jesse Hallad250842017-03-10 18:35:38 -08003202@extension("VK_KHR_surface") // 1
Jesse Halld8bade02015-11-24 10:24:18 -08003203type VkFlags VkSurfaceTransformFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08003204@extension("VK_KHR_surface") // 1
Jesse Halld8bade02015-11-24 10:24:18 -08003205bitfield VkSurfaceTransformFlagBitsKHR {
Jesse Hallf9fa9a52016-01-08 16:08:51 -08003206 VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR = 0x00000001,
Jesse Hall9ba8bc82015-11-30 16:22:16 -08003207 VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR = 0x00000002,
3208 VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR = 0x00000004,
3209 VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR = 0x00000008,
3210 VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR = 0x00000010,
3211 VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR = 0x00000020,
3212 VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR = 0x00000040,
3213 VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR = 0x00000080,
3214 VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR = 0x00000100,
Michael Lentine88594d72015-11-12 12:49:45 -08003215}
Jesse Halld27f6aa2015-08-15 17:58:48 -07003216
Jesse Hallad250842017-03-10 18:35:38 -08003217@extension("VK_KHR_surface") // 1
Jesse Halla6429252015-11-29 18:59:42 -08003218type VkFlags VkCompositeAlphaFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08003219@extension("VK_KHR_surface") // 1
Jesse Halla6429252015-11-29 18:59:42 -08003220bitfield VkCompositeAlphaFlagBitsKHR {
3221 VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR = 0x00000001,
3222 VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR = 0x00000002,
3223 VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR = 0x00000004,
3224 VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR = 0x00000008,
3225}
3226
Jesse Hallad250842017-03-10 18:35:38 -08003227@extension("VK_KHR_swapchain") // 2
Jesse Hallf4ab2b12015-11-30 16:04:55 -08003228type VkFlags VkSwapchainCreateFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08003229@extension("VK_KHR_swapchain") // 2
3230bitfield VkSwapchainCreateFlagBitsKHR {
Ian Elliott28bd2c32017-10-13 09:21:12 -06003231 //@vulkan1_1
Jesse Hall8c954d32018-01-17 22:06:20 -08003232 VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR = 0x00000001,
Daniel Koch09f7bf92017-10-05 00:26:58 -04003233 VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR = 0x00000002,
Jesse Hall48514722018-12-04 14:44:42 -08003234
3235 //@extension("VK_KHR_swapchain_mutable_format") // 201
3236 VK_SWAPCHAIN_CREATE_MUTABLE_FORMAT_BIT_KHR = 0x00000004,
Daniel Koch09f7bf92017-10-05 00:26:58 -04003237}
3238
Ian Elliott28bd2c32017-10-13 09:21:12 -06003239@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04003240@extension("VK_KHR_swapchain") // 2
3241type VkFlags VkDeviceGroupPresentModeFlagsKHR
Ian Elliott28bd2c32017-10-13 09:21:12 -06003242@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04003243@extension("VK_KHR_swapchain") // 2
3244bitfield VkDeviceGroupPresentModeFlagBitsKHR {
3245 VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR = 0x00000001,
3246 VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR = 0x00000002,
3247 VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR = 0x00000004,
3248 VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR = 0x00000008,
Jesse Hallad250842017-03-10 18:35:38 -08003249}
Jesse Hallf4ab2b12015-11-30 16:04:55 -08003250
Jesse Hallad250842017-03-10 18:35:38 -08003251@extension("VK_KHR_display") // 3
Jesse Halld8bade02015-11-24 10:24:18 -08003252type VkFlags VkDisplayPlaneAlphaFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08003253@extension("VK_KHR_display") // 3
Jesse Halld8bade02015-11-24 10:24:18 -08003254bitfield VkDisplayPlaneAlphaFlagBitsKHR {
Jesse Hallf4ab2b12015-11-30 16:04:55 -08003255 VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR = 0x00000001,
3256 VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR = 0x00000002,
3257 VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR = 0x00000004,
3258 VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR = 0x00000008,
Jesse Hall1356b0d2015-11-23 17:24:58 -08003259}
3260
Jesse Hallad250842017-03-10 18:35:38 -08003261@extension("VK_KHR_display") // 3
Jesse Hallf4ab2b12015-11-30 16:04:55 -08003262type VkFlags VkDisplaySurfaceCreateFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08003263//@extension("VK_KHR_display") // 3
Jesse Hallf4ab2b12015-11-30 16:04:55 -08003264//bitfield VkDisplaySurfaceCreateFlagBitsKHR {
3265//}
3266
Jesse Hallad250842017-03-10 18:35:38 -08003267@extension("VK_KHR_display") // 3
Jesse Hall9ba8bc82015-11-30 16:22:16 -08003268type VkFlags VkDisplayModeCreateFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08003269//@extension("VK_KHR_display") // 3
Jesse Hall9ba8bc82015-11-30 16:22:16 -08003270//bitfield VkDisplayModeCreateFlagBitsKHR {
3271//}
3272
Jesse Hallad250842017-03-10 18:35:38 -08003273@extension("VK_KHR_xlib_surface") // 5
Jesse Hallf9fa9a52016-01-08 16:08:51 -08003274type VkFlags VkXlibSurfaceCreateFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08003275//@extension("VK_KHR_xlib_surface") // 5
Jesse Hallf9fa9a52016-01-08 16:08:51 -08003276//bitfield VkXlibSurfaceCreateFlagBitsKHR {
3277//}
3278
Jesse Hallad250842017-03-10 18:35:38 -08003279@extension("VK_KHR_xcb_surface") // 6
Jesse Hallf9fa9a52016-01-08 16:08:51 -08003280type VkFlags VkXcbSurfaceCreateFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08003281//@extension("VK_KHR_xcb_surface") // 6
Jesse Hallf9fa9a52016-01-08 16:08:51 -08003282//bitfield VkXcbSurfaceCreateFlagBitsKHR {
3283//}
3284
Jesse Hallad250842017-03-10 18:35:38 -08003285@extension("VK_KHR_wayland_surface") // 7
Jesse Hallf9fa9a52016-01-08 16:08:51 -08003286type VkFlags VkWaylandSurfaceCreateFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08003287//@extension("VK_KHR_wayland_surface") // 7
Jesse Hallf9fa9a52016-01-08 16:08:51 -08003288//bitfield VkWaylandSurfaceCreateFlagBitsKHR {
3289//}
3290
Jesse Hallad250842017-03-10 18:35:38 -08003291@extension("VK_KHR_android_surface") // 9
Jesse Hallf9fa9a52016-01-08 16:08:51 -08003292type VkFlags VkAndroidSurfaceCreateFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08003293//@extension("VK_KHR_android_surface") // 9
Jesse Hallf9fa9a52016-01-08 16:08:51 -08003294//bitfield VkAndroidSurfaceCreateFlagBitsKHR {
3295//}
3296
Jesse Hallad250842017-03-10 18:35:38 -08003297@extension("VK_KHR_win32_surface") // 10
Jesse Hallf9fa9a52016-01-08 16:08:51 -08003298type VkFlags VkWin32SurfaceCreateFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08003299//@extension("VK_KHR_win32_surface") // 10
Jesse Hallf9fa9a52016-01-08 16:08:51 -08003300//bitfield VkWin32SurfaceCreateFlagBitsKHR {
3301//}
3302
Jesse Hallad250842017-03-10 18:35:38 -08003303@extension("VK_ANDROID_native_buffer") // 11
Jesse Hall889cd9a2017-02-25 22:12:23 -08003304type VkFlags VkSwapchainImageUsageFlagsANDROID
Jesse Hallad250842017-03-10 18:35:38 -08003305@extension("VK_ANDROID_native_buffer") // 11
Jesse Hall889cd9a2017-02-25 22:12:23 -08003306bitfield VkSwapchainImageUsageFlagBitsANDROID {
3307 VK_SWAPCHAIN_IMAGE_USAGE_FLAGS_SHARED_BIT_ANDROID = 0x00000001,
3308}
3309
Jesse Hallad250842017-03-10 18:35:38 -08003310@extension("VK_EXT_debug_report") // 12
Jesse Hall715b86a2016-01-16 16:34:29 -08003311type VkFlags VkDebugReportFlagsEXT
Jesse Hallad250842017-03-10 18:35:38 -08003312@extension("VK_EXT_debug_report") // 12
Jesse Hall715b86a2016-01-16 16:34:29 -08003313bitfield VkDebugReportFlagBitsEXT {
Jesse Halle2948d82016-02-25 04:19:32 -08003314 VK_DEBUG_REPORT_INFORMATION_BIT_EXT = 0x00000001,
3315 VK_DEBUG_REPORT_WARNING_BIT_EXT = 0x00000002,
3316 VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT = 0x00000004,
Jesse Hall715b86a2016-01-16 16:34:29 -08003317 VK_DEBUG_REPORT_ERROR_BIT_EXT = 0x00000008,
3318 VK_DEBUG_REPORT_DEBUG_BIT_EXT = 0x00000010,
3319}
3320
Jesse Hallf47e8f82018-10-27 23:41:45 -07003321@extension("VK_EXT_transform_feedback") // 29
3322type VkFlags VkPipelineRasterizationStateStreamCreateFlagsEXT
3323//@extension("VK_EXT_transform_feedback") // 29
3324//bitfield VkPipelineRasterizationStateStreamCreateFlagBitsEXT {
3325//}
3326
Jesse Hallad250842017-03-10 18:35:38 -08003327@extension("VK_NV_external_memory_capabilities") // 56
Chris Forbes289cb792016-12-30 15:03:55 +13003328type VkFlags VkExternalMemoryHandleTypeFlagsNV
Jesse Hallad250842017-03-10 18:35:38 -08003329@extension("VK_NV_external_memory_capabilities") // 56
Chris Forbes289cb792016-12-30 15:03:55 +13003330bitfield VkExternalMemoryHandleTypeFlagBitsNV {
Jesse Halleb02c472017-02-24 15:13:45 -08003331 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV = 0x00000001,
3332 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV = 0x00000002,
3333 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV = 0x00000004,
3334 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV = 0x00000008,
Chris Forbes289cb792016-12-30 15:03:55 +13003335}
3336
Jesse Hallad250842017-03-10 18:35:38 -08003337@extension("VK_NV_external_memory_capabilities") // 56
Chris Forbes289cb792016-12-30 15:03:55 +13003338type VkFlags VkExternalMemoryFeatureFlagsNV
Jesse Hallad250842017-03-10 18:35:38 -08003339@extension("VK_NV_external_memory_capabilities") // 56
Chris Forbes289cb792016-12-30 15:03:55 +13003340bitfield VkExternalMemoryFeatureFlagBitsNV {
Jesse Halleb02c472017-02-24 15:13:45 -08003341 VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV = 0x00000001,
3342 VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV = 0x00000002,
3343 VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV = 0x00000004,
Chris Forbes289cb792016-12-30 15:03:55 +13003344}
3345
Daniel Koch09f7bf92017-10-05 00:26:58 -04003346@extension("VK_KHR_device_group") // 61
3347type VkFlags VkPeerMemoryFeatureFlagsKHR
3348@extension("VK_KHR_device_group") // 61
3349bitfield VkPeerMemoryFeatureFlagBitsKHR {
3350 VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT_KHR = 0x00000001,
3351 VK_PEER_MEMORY_FEATURE_COPY_DST_BIT_KHR = 0x00000002,
3352 VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT_KHR = 0x00000004,
3353 VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT_KHR = 0x00000008,
Jesse Hallad250842017-03-10 18:35:38 -08003354}
3355
Daniel Koch09f7bf92017-10-05 00:26:58 -04003356@extension("VK_KHR_device_group") // 61
3357type VkFlags VkMemoryAllocateFlagsKHR
3358@extension("VK_KHR_device_group") // 61
3359bitfield VkMemoryAllocateFlagBitsKHR {
3360 VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT_KHR = 0x00000001,
Jesse Hallad250842017-03-10 18:35:38 -08003361}
3362
3363@extension("VK_NN_vi_surface") // 63
Jesse Hall77ad05b2017-03-10 22:02:20 -08003364type VkFlags VkViSurfaceCreateFlagsNN
Jesse Hallad250842017-03-10 18:35:38 -08003365//@extension("VK_NN_vi_surface") // 63
Jesse Hall77ad05b2017-03-10 22:02:20 -08003366//bitfield VkViSurfaceCreateFlagBitsNN {
3367//}
3368
Jesse Hallad250842017-03-10 18:35:38 -08003369@extension("VK_KHR_maintenance1") // 70
Jesse Hall77ad05b2017-03-10 22:02:20 -08003370type VkFlags VkCommandPoolTrimFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08003371//@extension("VK_KHR_maintenance1") // 70
Jesse Hall77ad05b2017-03-10 22:02:20 -08003372//bitfield VkCommandPoolTrimFlagBitsKHR {
3373//}
3374
Jesse Hall9492f992017-08-28 12:10:06 -07003375@extension("VK_KHR_external_memory_capabilities") // 72
3376type VkFlags VkExternalMemoryHandleTypeFlagsKHR
3377@extension("VK_KHR_external_memory_capabilities") // 72
3378bitfield VkExternalMemoryHandleTypeFlagBitsKHR {
3379 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = 0x00000001,
3380 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = 0x00000002,
3381 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = 0x00000004,
3382 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT_KHR = 0x00000008,
3383 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT_KHR = 0x00000010,
3384 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT_KHR = 0x00000020,
3385 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT_KHR = 0x00000040,
Jesse Hallad250842017-03-10 18:35:38 -08003386}
3387
Jesse Hall9492f992017-08-28 12:10:06 -07003388@extension("VK_KHR_external_memory_capabilities") // 72
3389type VkFlags VkExternalMemoryFeatureFlagsKHR
3390@extension("VK_KHR_external_memory_capabilities") // 72
3391bitfield VkExternalMemoryFeatureFlagBitsKHR {
3392 VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_KHR = 0x00000001,
3393 VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_KHR = 0x00000002,
3394 VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_KHR = 0x00000004,
Jesse Hallad250842017-03-10 18:35:38 -08003395}
3396
Jesse Hall9492f992017-08-28 12:10:06 -07003397@extension("VK_KHR_external_semaphore_capabilities") // 77
3398type VkFlags VkExternalSemaphoreHandleTypeFlagsKHR
3399@extension("VK_KHR_external_semaphore_capabilities") // 77
3400bitfield VkExternalSemaphoreHandleTypeFlagBitsKHR {
3401 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = 0x00000001
3402 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = 0x00000002
3403 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = 0x00000004
3404 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT_KHR = 0x00000008
3405 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_FENCE_FD_BIT_KHR = 0x00000010
Jesse Hallad250842017-03-10 18:35:38 -08003406}
3407
Jesse Hall9492f992017-08-28 12:10:06 -07003408@extension("VK_KHR_external_semaphore_capabilities") // 77
3409type VkFlags VkExternalSemaphoreFeatureFlagsKHR
3410@extension("VK_KHR_external_semaphore_capabilities") // 77
3411bitfield VkExternalSemaphoreFeatureFlagBitsKHR {
3412 VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT_KHR = 0x00000001,
3413 VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT_KHR = 0x00000002,
3414}
3415
3416@extension("VK_KHR_external_semaphore") // 78
3417type VkFlags VkSemaphoreImportFlagsKHR
3418@extension("VK_KHR_external_semaphore") // 78
3419bitfield VkSemaphoreImportFlagBitsKHR {
3420 VK_SEMAPHORE_IMPORT_TEMPORARY_BIT_KHR = 0x00000001,
Jesse Hallad250842017-03-10 18:35:38 -08003421}
3422
Jesse Halla13a3cf2018-07-09 15:51:52 -07003423@extension("VK_EXT_conditional_rendering") // 82
3424type VkFlags VkConditionalRenderingFlagsEXT
3425@extension("VK_EXT_conditional_rendering") // 82
3426bitfield VkConditionalRenderingFlagBitsEXT {
3427 VK_CONDITIONAL_RENDERING_INVERTED_BIT_EXT = 0x00000001,
3428}
3429
Jesse Hallad250842017-03-10 18:35:38 -08003430@extension("VK_KHR_descriptor_update_template") // 86
3431type VkFlags VkDescriptorUpdateTemplateCreateFlagsKHR
3432//@extension("VK_KHR_descriptor_update_template") // 86
3433//bitfield VkDescriptorUpdateTemplateCreateFlagBitsKHR {
3434//}
3435
3436@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13003437type VkFlags VkIndirectCommandsLayoutUsageFlagsNVX
Jesse Hallad250842017-03-10 18:35:38 -08003438@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13003439bitfield VkIndirectCommandsLayoutUsageFlagBitsNVX {
Jesse Halleb02c472017-02-24 15:13:45 -08003440 VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NVX = 0x00000001,
3441 VK_INDIRECT_COMMANDS_LAYOUT_USAGE_SPARSE_SEQUENCES_BIT_NVX = 0x00000002,
3442 VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EMPTY_EXECUTIONS_BIT_NVX = 0x00000004,
3443 VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NVX = 0x00000008,
Chris Forbes289cb792016-12-30 15:03:55 +13003444}
3445
Jesse Hallad250842017-03-10 18:35:38 -08003446@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13003447type VkFlags VkObjectEntryUsageFlagsNVX
Jesse Hallad250842017-03-10 18:35:38 -08003448@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13003449bitfield VkObjectEntryUsageFlagBitsNVX {
Jesse Halleb02c472017-02-24 15:13:45 -08003450 VK_OBJECT_ENTRY_USAGE_GRAPHICS_BIT_NVX = 0x00000001,
3451 VK_OBJECT_ENTRY_USAGE_COMPUTE_BIT_NVX = 0x00000002,
Chris Forbes289cb792016-12-30 15:03:55 +13003452}
3453
Jesse Hallad250842017-03-10 18:35:38 -08003454@extension("VK_EXT_display_surface_counter") // 91
Jesse Hall77ad05b2017-03-10 22:02:20 -08003455type VkFlags VkSurfaceCounterFlagsEXT
Jesse Hallad250842017-03-10 18:35:38 -08003456@extension("VK_EXT_display_surface_counter") // 91
Jesse Hall77ad05b2017-03-10 22:02:20 -08003457bitfield VkSurfaceCounterFlagBitsEXT {
3458 VK_SURFACE_COUNTER_VBLANK_EXT = 0x00000001,
3459}
3460
Jesse Hallad250842017-03-10 18:35:38 -08003461@extension("VK_NV_viewport_swizzle") // 99
3462type VkFlags VkPipelineViewportSwizzleStateCreateFlagsNV
3463//@extension("VK_NV_viewport_swizzle") // 99
3464//bitfield VkPipelineViewportSwizzleStateCreateFlagBitsNV {
3465//}
3466
3467@extension("VK_EXT_discard_rectangles") // 100
3468type VkFlags VkPipelineDiscardRectangleStateCreateFlagsEXT
3469//@extension("VK_EXT_discard_rectangles") // 100
3470//bitfield VkPipelineDiscardRectangleStateCreateFlagBitsEXT {
3471//}
3472
Jesse Hall8c954d32018-01-17 22:06:20 -08003473@extension("VK_EXT_conservative_rasterization") // 102
3474type VkFlags VkPipelineRasterizationConservativeStateCreateFlagsEXT
3475//@extension("VK_EXT_conservative_rasterization") // 102
3476//bitfield VkPipelineRasterizationConservativeStateCreateFlagBitsEXT {
3477//}
3478
Jesse Hall9492f992017-08-28 12:10:06 -07003479@extension("VK_KHR_external_fence_capabilities") // 113
3480type VkFlags VkExternalFenceHandleTypeFlagsKHR
3481@extension("VK_KHR_external_fence_capabilities") // 113
3482bitfield VkExternalFenceHandleTypeFlagBitsKHR {
3483 VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = 0x00000001,
3484 VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = 0x00000002,
3485 VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = 0x00000004,
3486 VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT_KHR = 0x00000008,
3487}
3488
3489@extension("VK_KHR_external_fence_capabilities") // 113
3490type VkFlags VkExternalFenceFeatureFlagsKHR
3491@extension("VK_KHR_external_fence_capabilities") // 113
3492bitfield VkExternalFenceFeatureFlagBitsKHR {
3493 VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT_KHR = 0x00000001,
3494 VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT_KHR = 0x00000002,
3495}
3496
3497@extension("VK_KHR_external_fence") // 114
3498type VkFlags VkFenceImportFlagsKHR
3499@extension("VK_KHR_external_fence") // 114
3500bitfield VkFenceImportFlagBitsKHR {
3501 VK_FENCE_IMPORT_TEMPORARY_BIT_KHR = 0x00000001,
3502}
3503
Jesse Hallad250842017-03-10 18:35:38 -08003504@extension("VK_MVK_ios_surface") // 123
3505type VkFlags VkIOSSurfaceCreateFlagsMVK
3506//@extension("VK_MVK_ios_surface") // 123
3507//bitfield VkIOSSurfaceCreateFlagBitsMVK {
3508//}
3509
3510@extension("VK_MVK_macos_surface") // 124
3511type VkFlags VkMacOSSurfaceCreateFlagsMVK
3512//@extension("VK_MVK_macos_surface") // 124
3513//bitfield VkMacOSSurfaceCreateFlagBitsMVK {
3514//}
3515
Jesse Hall8c954d32018-01-17 22:06:20 -08003516@extension("VK_EXT_debug_utils") // 129
3517type VkFlags VkDebugUtilsMessengerCallbackDataFlagsEXT
3518//@extension("VK_EXT_debug_utils") // 129
3519//bitfield VkDebugUtilsMessengerCallbackDataFlagBitsEXT {
3520//}
3521
3522@extension("VK_EXT_debug_utils") // 129
3523type VkFlags VkDebugUtilsMessengerCreateFlagsEXT
3524//@extension("VK_EXT_debug_utils") // 129
3525//bitfield VkDebugUtilsMessengerCreateFlagBitsEXT {
3526//}
3527
3528@extension("VK_EXT_debug_utils") // 129
3529type VkFlags VkDebugUtilsMessageSeverityFlagsEXT
3530@extension("VK_EXT_debug_utils") // 129
3531bitfield VkDebugUtilsMessageSeverityFlagBitsEXT {
3532 VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT = 0x00000001,
3533 VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT = 0x00000010,
3534 VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT = 0x00000100,
3535 VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT = 0x00001000,
3536}
3537
3538@extension("VK_EXT_debug_utils") // 129
3539type VkFlags VkDebugUtilsMessageTypeFlagsEXT
3540@extension("VK_EXT_debug_utils") // 129
3541bitfield VkDebugUtilsMessageTypeFlagBitsEXT {
3542 VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT = 0x00000001,
3543 VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT = 0x00000002,
3544 VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT = 0x00000004,
3545}
3546
Jesse Hall7ba0ac72017-07-07 17:13:23 -07003547@extension("VK_NV_fragment_coverage_to_color") // 150
3548type VkFlags VkPipelineCoverageToColorStateCreateFlagsNV
3549@extension("VK_NV_fragment_coverage_to_color") // 150
3550//bitfield VkPipelineCoverageToColorStateCreateFlagBitsNV {
3551//}
3552
3553@extension("VK_NV_framebuffer_mixed_samples") // 153
3554type VkFlags VkPipelineCoverageModulationStateCreateFlagsNV
3555@extension("VK_NV_framebuffer_mixed_samples") // 153
3556//bitfield VkPipelineCoverageModulationStateCreateFlagBitsNV {
3557//}
3558
Jesse Hall77726222017-09-19 14:49:27 -05003559@extension("VK_EXT_validation_cache") // 161
3560type VkFlags VkValidationCacheCreateFlagsEXT
3561@extension("VK_EXT_validation_cache") // 161
3562//bitfield VkValidationCacheCreateFlagBitsEXT {
3563//}
3564
Jesse Hall72e6a132018-04-06 13:00:44 -07003565@extension("VK_EXT_descriptor_indexing") // 162
3566type VkFlags VkDescriptorBindingFlagsEXT
3567@extension("VK_EXT_descriptor_indexing") // 162
3568bitfield VkDescriptorBindingFlagBitsEXT {
3569 VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT_EXT = 0x00000001,
3570 VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT_EXT = 0x00000002,
3571 VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT_EXT = 0x00000004,
3572 VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT_EXT = 0x00000008,
3573}
3574
Jesse Hallbeea46d2018-12-04 14:38:07 -08003575@extension("VK_NV_ray_tracing") // 166
Jesse Halla363a8e2018-11-05 21:18:00 -07003576type VkFlags VkGeometryFlagsNV
Jesse Hallbeea46d2018-12-04 14:38:07 -08003577@extension("VK_NV_ray_tracing") // 166
Jesse Halla363a8e2018-11-05 21:18:00 -07003578bitfield VkGeometryFlagBitsNV {
3579 VK_GEOMETRY_OPAQUE_BIT_NV = 0x00000001,
3580 VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_NV = 0x00000002,
Jesse Hallb5297192018-09-22 20:52:13 +02003581}
3582
Jesse Hallbeea46d2018-12-04 14:38:07 -08003583@extension("VK_NV_ray_tracing") // 166
Jesse Halla363a8e2018-11-05 21:18:00 -07003584type VkFlags VkGeometryInstanceFlagsNV
Jesse Hallbeea46d2018-12-04 14:38:07 -08003585@extension("VK_NV_ray_tracing") // 166
Jesse Halla363a8e2018-11-05 21:18:00 -07003586bitfield VkGeometryInstanceFlagBitsNV {
3587 VK_GEOMETRY_INSTANCE_TRIANGLE_CULL_DISABLE_BIT_NV = 0x00000001,
3588 VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_NV = 0x00000002,
3589 VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_NV = 0x00000004,
3590 VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_NV = 0x00000008,
Jesse Hallb5297192018-09-22 20:52:13 +02003591}
3592
Jesse Hallbeea46d2018-12-04 14:38:07 -08003593@extension("VK_NV_ray_tracing") // 166
Jesse Halla363a8e2018-11-05 21:18:00 -07003594type VkFlags VkBuildAccelerationStructureFlagsNV
Jesse Hallbeea46d2018-12-04 14:38:07 -08003595@extension("VK_NV_ray_tracing") // 166
Jesse Halla363a8e2018-11-05 21:18:00 -07003596bitfield VkBuildAccelerationStructureFlagBitsNV {
3597 VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_NV = 0x00000001,
3598 VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_NV = 0x00000002,
3599 VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_NV = 0x00000004,
3600 VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_NV = 0x00000008,
3601 VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_NV = 0x00000010,
Jesse Hallb5297192018-09-22 20:52:13 +02003602}
3603
Jesse Hall497c46f2018-10-08 12:52:48 -07003604@extension("VK_FUCHSIA_imagepipe_surface") // 215
3605type VkFlags VkImagePipeSurfaceCreateFlagsFUCHSIA
3606//@extension("VK_FUCHSIA_imagepipe_surface") // 215
3607//bitfield VkImagePipeSurfaceCreateFlagBitsFUCHSIA {
3608//}
3609
Jesse Halld27f6aa2015-08-15 17:58:48 -07003610//////////////////
3611// Structures //
3612//////////////////
3613
3614class VkOffset2D {
3615 s32 x
3616 s32 y
3617}
3618
3619class VkOffset3D {
3620 s32 x
3621 s32 y
3622 s32 z
3623}
3624
3625class VkExtent2D {
Jesse Hall3dd678a2016-01-08 21:52:01 -08003626 u32 width
3627 u32 height
Jesse Halld27f6aa2015-08-15 17:58:48 -07003628}
3629
3630class VkExtent3D {
Jesse Hall3dd678a2016-01-08 21:52:01 -08003631 u32 width
3632 u32 height
3633 u32 depth
Jesse Halld27f6aa2015-08-15 17:58:48 -07003634}
3635
3636class VkViewport {
Jesse Hall65ab5522015-11-30 00:07:16 -08003637 f32 x
3638 f32 y
Jesse Halld27f6aa2015-08-15 17:58:48 -07003639 f32 width
3640 f32 height
3641 f32 minDepth
3642 f32 maxDepth
3643}
3644
3645class VkRect2D {
3646 VkOffset2D offset
3647 VkExtent2D extent
3648}
3649
Jesse Halla15a4bf2015-11-19 22:48:02 -08003650class VkClearRect {
3651 VkRect2D rect
3652 u32 baseArrayLayer
Jesse Hall3fbc8562015-11-29 22:10:52 -08003653 u32 layerCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07003654}
3655
Jesse Hall65ab5522015-11-30 00:07:16 -08003656class VkComponentMapping {
3657 VkComponentSwizzle r
3658 VkComponentSwizzle g
3659 VkComponentSwizzle b
3660 VkComponentSwizzle a
Jesse Halld27f6aa2015-08-15 17:58:48 -07003661}
3662
3663class VkPhysicalDeviceProperties {
3664 u32 apiVersion
3665 u32 driverVersion
Jesse Hall65ab5522015-11-30 00:07:16 -08003666 u32 vendorID
3667 u32 deviceID
Jesse Halld27f6aa2015-08-15 17:58:48 -07003668 VkPhysicalDeviceType deviceType
Jesse Hall65ab5522015-11-30 00:07:16 -08003669 char[VK_MAX_PHYSICAL_DEVICE_NAME_SIZE] deviceName
3670 u8[VK_UUID_SIZE] pipelineCacheUUID
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003671 VkPhysicalDeviceLimits limits
3672 VkPhysicalDeviceSparseProperties sparseProperties
Jesse Halld27f6aa2015-08-15 17:58:48 -07003673}
3674
3675class VkExtensionProperties {
Jesse Hall65ab5522015-11-30 00:07:16 -08003676 char[VK_MAX_EXTENSION_NAME_SIZE] extensionName /// extension name
Jesse Halld27f6aa2015-08-15 17:58:48 -07003677 u32 specVersion /// version of the extension specification implemented
3678}
3679
3680class VkLayerProperties {
Jesse Hall65ab5522015-11-30 00:07:16 -08003681 char[VK_MAX_EXTENSION_NAME_SIZE] layerName /// layer name
Jesse Hall3fbc8562015-11-29 22:10:52 -08003682 u32 specVersion /// version of the layer specification implemented
3683 u32 implementationVersion /// build or release version of the layer's library
Jesse Hall65ab5522015-11-30 00:07:16 -08003684 char[VK_MAX_DESCRIPTION_SIZE] description /// Free-form description of the layer
Jesse Halld27f6aa2015-08-15 17:58:48 -07003685}
3686
Jesse Halla366a512015-11-19 22:30:07 -08003687class VkSubmitInfo {
Jesse Hall03b6fe12015-11-24 12:44:21 -08003688 VkStructureType sType /// Type of structure. Should be VK_STRUCTURE_TYPE_SUBMIT_INFO
3689 const void* pNext /// Next structure in chain
3690 u32 waitSemaphoreCount
Jesse Halla366a512015-11-19 22:30:07 -08003691 const VkSemaphore* pWaitSemaphores
Jesse Hall543a7ff2016-01-08 16:38:30 -08003692 const VkPipelineStageFlags* pWaitDstStageMask
Jesse Hall03b6fe12015-11-24 12:44:21 -08003693 u32 commandBufferCount
Jesse Hall3fbc8562015-11-29 22:10:52 -08003694 const VkCommandBuffer* pCommandBuffers
Jesse Hall03b6fe12015-11-24 12:44:21 -08003695 u32 signalSemaphoreCount
Jesse Halla366a512015-11-19 22:30:07 -08003696 const VkSemaphore* pSignalSemaphores
3697}
3698
Jesse Halld27f6aa2015-08-15 17:58:48 -07003699class VkApplicationInfo {
3700 VkStructureType sType /// Type of structure. Should be VK_STRUCTURE_TYPE_APPLICATION_INFO
3701 const void* pNext /// Next structure in chain
Jesse Hall3fbc8562015-11-29 22:10:52 -08003702 const char* pApplicationName
3703 u32 applicationVersion
Jesse Halld27f6aa2015-08-15 17:58:48 -07003704 const char* pEngineName
3705 u32 engineVersion
3706 u32 apiVersion
3707}
3708
Jesse Hall3fbc8562015-11-29 22:10:52 -08003709class VkAllocationCallbacks {
Jesse Halld27f6aa2015-08-15 17:58:48 -07003710 void* pUserData
Jesse Hall3fbc8562015-11-29 22:10:52 -08003711 PFN_vkAllocationFunction pfnAllocation
3712 PFN_vkReallocationFunction pfnReallocation
Jesse Halld27f6aa2015-08-15 17:58:48 -07003713 PFN_vkFreeFunction pfnFree
Jesse Hall3fbc8562015-11-29 22:10:52 -08003714 PFN_vkInternalAllocationNotification pfnInternalAllocation
Jesse Hall03b6fe12015-11-24 12:44:21 -08003715 PFN_vkInternalFreeNotification pfnInternalFree
Jesse Halld27f6aa2015-08-15 17:58:48 -07003716}
3717
3718class VkDeviceQueueCreateInfo {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003719 VkStructureType sStype /// Should be VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO
3720 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003721 VkDeviceQueueCreateFlags flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07003722 u32 queueFamilyIndex
Jesse Halldba27f72015-11-30 14:25:46 -08003723 u32 queueCount
Jesse Hallfbf97b02015-11-20 14:17:03 -08003724 const f32* pQueuePriorities
Jesse Halld27f6aa2015-08-15 17:58:48 -07003725}
3726
3727class VkDeviceCreateInfo {
3728 VkStructureType sType /// Should be VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO
3729 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003730 VkDeviceCreateFlags flags
Jesse Halldba27f72015-11-30 14:25:46 -08003731 u32 queueCreateInfoCount
3732 const VkDeviceQueueCreateInfo* pQueueCreateInfos
Jesse Hall3dd678a2016-01-08 21:52:01 -08003733 u32 enabledLayerCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07003734 const char* const* ppEnabledLayerNames /// Ordered list of layer names to be enabled
Jesse Hall3dd678a2016-01-08 21:52:01 -08003735 u32 enabledExtensionCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07003736 const char* const* ppEnabledExtensionNames
3737 const VkPhysicalDeviceFeatures* pEnabledFeatures
Jesse Halld27f6aa2015-08-15 17:58:48 -07003738}
3739
3740class VkInstanceCreateInfo {
3741 VkStructureType sType /// Should be VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO
3742 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003743 VkInstanceCreateFlags flags
Jesse Hall3fbc8562015-11-29 22:10:52 -08003744 const VkApplicationInfo* pApplicationInfo
Jesse Hall3dd678a2016-01-08 21:52:01 -08003745 u32 enabledLayerCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07003746 const char* const* ppEnabledLayerNames /// Ordered list of layer names to be enabled
Jesse Hall3dd678a2016-01-08 21:52:01 -08003747 u32 enabledExtensionCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07003748 const char* const* ppEnabledExtensionNames /// Extension names to be enabled
3749}
3750
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003751class VkQueueFamilyProperties {
Jesse Halld27f6aa2015-08-15 17:58:48 -07003752 VkQueueFlags queueFlags /// Queue flags
3753 u32 queueCount
Jesse Hallacfa5342015-11-19 21:51:33 -08003754 u32 timestampValidBits
Jesse Hall65ab5522015-11-30 00:07:16 -08003755 VkExtent3D minImageTransferGranularity
Jesse Halld27f6aa2015-08-15 17:58:48 -07003756}
3757
3758class VkPhysicalDeviceMemoryProperties {
3759 u32 memoryTypeCount
3760 VkMemoryType[VK_MAX_MEMORY_TYPES] memoryTypes
3761 u32 memoryHeapCount
3762 VkMemoryHeap[VK_MAX_MEMORY_HEAPS] memoryHeaps
3763}
3764
Jesse Hall3fbc8562015-11-29 22:10:52 -08003765class VkMemoryAllocateInfo {
Jesse Hallf4ab2b12015-11-30 16:04:55 -08003766 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO
Jesse Halld27f6aa2015-08-15 17:58:48 -07003767 const void* pNext /// Pointer to next structure
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003768 VkDeviceSize allocationSize /// Size of memory allocation
Jesse Halld27f6aa2015-08-15 17:58:48 -07003769 u32 memoryTypeIndex /// Index of the of the memory type to allocate from
3770}
3771
3772class VkMemoryRequirements {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003773 VkDeviceSize size /// Specified in bytes
3774 VkDeviceSize alignment /// Specified in bytes
Jesse Halld27f6aa2015-08-15 17:58:48 -07003775 u32 memoryTypeBits /// Bitfield of the allowed memory type indices into memoryTypes[] for this object
3776}
3777
3778class VkSparseImageFormatProperties {
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08003779 VkImageAspectFlagBits aspectMask
Jesse Halld27f6aa2015-08-15 17:58:48 -07003780 VkExtent3D imageGranularity
3781 VkSparseImageFormatFlags flags
3782}
3783
3784class VkSparseImageMemoryRequirements {
Jesse Hallb00daad2015-11-29 19:46:20 -08003785 VkSparseImageFormatProperties formatProperties
Jesse Hallf9fa9a52016-01-08 16:08:51 -08003786 u32 imageMipTailFirstLod
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003787 VkDeviceSize imageMipTailSize /// Specified in bytes, must be a multiple of image block size / alignment
3788 VkDeviceSize imageMipTailOffset /// Specified in bytes, must be a multiple of image block size / alignment
3789 VkDeviceSize imageMipTailStride /// Specified in bytes, must be a multiple of image block size / alignment
Jesse Halld27f6aa2015-08-15 17:58:48 -07003790}
3791
3792class VkMemoryType {
3793 VkMemoryPropertyFlags propertyFlags /// Memory properties of this memory type
3794 u32 heapIndex /// Index of the memory heap allocations of this memory type are taken from
3795}
3796
3797class VkMemoryHeap {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003798 VkDeviceSize size /// Available memory in the heap
Jesse Halld27f6aa2015-08-15 17:58:48 -07003799 VkMemoryHeapFlags flags /// Flags for the heap
3800}
3801
3802class VkMappedMemoryRange {
3803 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE
3804 const void* pNext /// Pointer to next structure
Jesse Hall3fbc8562015-11-29 22:10:52 -08003805 VkDeviceMemory memory /// Mapped memory object
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003806 VkDeviceSize offset /// Offset within the mapped memory the range starts from
3807 VkDeviceSize size /// Size of the range within the mapped memory
Jesse Halld27f6aa2015-08-15 17:58:48 -07003808}
3809
3810class VkFormatProperties {
3811 VkFormatFeatureFlags linearTilingFeatures /// Format features in case of linear tiling
3812 VkFormatFeatureFlags optimalTilingFeatures /// Format features in case of optimal tiling
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003813 VkFormatFeatureFlags bufferFeatures /// Format features supported by buffers
Jesse Halld27f6aa2015-08-15 17:58:48 -07003814}
3815
3816class VkImageFormatProperties {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003817 VkExtent3D maxExtent /// max image dimensions for this resource type
3818 u32 maxMipLevels /// max number of mipmap levels for this resource type
Jesse Halla15a4bf2015-11-19 22:48:02 -08003819 u32 maxArrayLayers /// max array layers for this resource type
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003820 VkSampleCountFlags sampleCounts /// supported sample counts for this resource type
3821 VkDeviceSize maxResourceSize /// max size (in bytes) of this resource type
3822}
3823
Jesse Halla15a4bf2015-11-19 22:48:02 -08003824class VkDescriptorImageInfo {
3825 VkSampler sampler
3826 VkImageView imageView
3827 VkImageLayout imageLayout
3828}
3829
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003830class VkDescriptorBufferInfo {
3831 VkBuffer buffer /// Buffer used for this descriptor when the descriptor is UNIFORM_BUFFER[_DYNAMIC]
3832 VkDeviceSize offset /// Base offset from buffer start in bytes to update in the descriptor set.
3833 VkDeviceSize range /// Size in bytes of the buffer resource for this descriptor update.
Jesse Halld27f6aa2015-08-15 17:58:48 -07003834}
3835
Jesse Halld27f6aa2015-08-15 17:58:48 -07003836class VkWriteDescriptorSet {
3837 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET
3838 const void* pNext /// Pointer to next structure
Jesse Hall3fbc8562015-11-29 22:10:52 -08003839 VkDescriptorSet dstSet /// Destination descriptor set
3840 u32 dstBinding /// Binding within the destination descriptor set to write
3841 u32 dstArrayElement /// Array element within the destination binding to write
Jesse Hall03b6fe12015-11-24 12:44:21 -08003842 u32 descriptorCount /// Number of descriptors to write (determines the size of the array pointed by <pDescriptors>)
Jesse Halld27f6aa2015-08-15 17:58:48 -07003843 VkDescriptorType descriptorType /// Descriptor type to write (determines which fields of the array pointed by <pDescriptors> are going to be used)
Jesse Hallfbf97b02015-11-20 14:17:03 -08003844 const VkDescriptorImageInfo* pImageInfo
3845 const VkDescriptorBufferInfo* pBufferInfo
3846 const VkBufferView* pTexelBufferView
Jesse Halld27f6aa2015-08-15 17:58:48 -07003847}
3848
3849class VkCopyDescriptorSet {
3850 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET
3851 const void* pNext /// Pointer to next structure
3852 VkDescriptorSet srcSet /// Source descriptor set
3853 u32 srcBinding /// Binding within the source descriptor set to copy from
3854 u32 srcArrayElement /// Array element within the source binding to copy from
Jesse Hall3fbc8562015-11-29 22:10:52 -08003855 VkDescriptorSet dstSet /// Destination descriptor set
3856 u32 dstBinding /// Binding within the destination descriptor set to copy to
3857 u32 dstArrayElement /// Array element within the destination binding to copy to
Jesse Hall03b6fe12015-11-24 12:44:21 -08003858 u32 descriptorCount /// Number of descriptors to copy
Jesse Halld27f6aa2015-08-15 17:58:48 -07003859}
3860
3861class VkBufferCreateInfo {
3862 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO
3863 const void* pNext /// Pointer to next structure.
Jesse Halla6429252015-11-29 18:59:42 -08003864 VkBufferCreateFlags flags /// Buffer creation flags
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003865 VkDeviceSize size /// Specified in bytes
Jesse Halld27f6aa2015-08-15 17:58:48 -07003866 VkBufferUsageFlags usage /// Buffer usage flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07003867 VkSharingMode sharingMode
Jesse Hall03b6fe12015-11-24 12:44:21 -08003868 u32 queueFamilyIndexCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07003869 const u32* pQueueFamilyIndices
3870}
3871
3872class VkBufferViewCreateInfo {
3873 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO
3874 const void* pNext /// Pointer to next structure.
Jesse Halla6429252015-11-29 18:59:42 -08003875 VkBufferViewCreateFlags flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07003876 VkBuffer buffer
Jesse Halld27f6aa2015-08-15 17:58:48 -07003877 VkFormat format /// Optionally specifies format of elements
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003878 VkDeviceSize offset /// Specified in bytes
3879 VkDeviceSize range /// View size specified in bytes
Jesse Halld27f6aa2015-08-15 17:58:48 -07003880}
3881
3882class VkImageSubresource {
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08003883 VkImageAspectFlagBits aspectMask
Jesse Halld27f6aa2015-08-15 17:58:48 -07003884 u32 mipLevel
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003885 u32 arrayLayer
Jesse Halld27f6aa2015-08-15 17:58:48 -07003886}
3887
3888class VkImageSubresourceRange {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003889 VkImageAspectFlags aspectMask
Jesse Halld27f6aa2015-08-15 17:58:48 -07003890 u32 baseMipLevel
Jesse Hall3fbc8562015-11-29 22:10:52 -08003891 u32 levelCount
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003892 u32 baseArrayLayer
Jesse Hall3fbc8562015-11-29 22:10:52 -08003893 u32 layerCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07003894}
3895
3896class VkMemoryBarrier {
3897 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_MEMORY_BARRIER
3898 const void* pNext /// Pointer to next structure.
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08003899 VkAccessFlags srcAccessMask
3900 VkAccessFlags dstAccessMask
Jesse Halld27f6aa2015-08-15 17:58:48 -07003901}
3902
3903class VkBufferMemoryBarrier {
3904 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER
3905 const void* pNext /// Pointer to next structure.
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08003906 VkAccessFlags srcAccessMask
3907 VkAccessFlags dstAccessMask
Jesse Halld27f6aa2015-08-15 17:58:48 -07003908 u32 srcQueueFamilyIndex /// Queue family to transition ownership from
Jesse Hall3fbc8562015-11-29 22:10:52 -08003909 u32 dstQueueFamilyIndex /// Queue family to transition ownership to
Jesse Halld27f6aa2015-08-15 17:58:48 -07003910 VkBuffer buffer /// Buffer to sync
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003911 VkDeviceSize offset /// Offset within the buffer to sync
3912 VkDeviceSize size /// Amount of bytes to sync
Jesse Halld27f6aa2015-08-15 17:58:48 -07003913}
3914
3915class VkImageMemoryBarrier {
3916 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER
3917 const void* pNext /// Pointer to next structure.
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08003918 VkAccessFlags srcAccessMask
3919 VkAccessFlags dstAccessMask
Jesse Halld27f6aa2015-08-15 17:58:48 -07003920 VkImageLayout oldLayout /// Current layout of the image
3921 VkImageLayout newLayout /// New layout to transition the image to
3922 u32 srcQueueFamilyIndex /// Queue family to transition ownership from
Jesse Hall3fbc8562015-11-29 22:10:52 -08003923 u32 dstQueueFamilyIndex /// Queue family to transition ownership to
Jesse Halld27f6aa2015-08-15 17:58:48 -07003924 VkImage image /// Image to sync
3925 VkImageSubresourceRange subresourceRange /// Subresource range to sync
3926}
3927
3928class VkImageCreateInfo {
3929 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO
3930 const void* pNext /// Pointer to next structure.
Jesse Halla6429252015-11-29 18:59:42 -08003931 VkImageCreateFlags flags /// Image creation flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07003932 VkImageType imageType
3933 VkFormat format
3934 VkExtent3D extent
3935 u32 mipLevels
Jesse Halla15a4bf2015-11-19 22:48:02 -08003936 u32 arrayLayers
Jesse Hall091ed9e2015-11-30 00:55:29 -08003937 VkSampleCountFlagBits samples
Jesse Halld27f6aa2015-08-15 17:58:48 -07003938 VkImageTiling tiling
3939 VkImageUsageFlags usage /// Image usage flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07003940 VkSharingMode sharingMode /// Cross-queue-family sharing mode
Jesse Hall03b6fe12015-11-24 12:44:21 -08003941 u32 queueFamilyIndexCount /// Number of queue families to share across
Jesse Halld27f6aa2015-08-15 17:58:48 -07003942 const u32* pQueueFamilyIndices /// Array of queue family indices to share across
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003943 VkImageLayout initialLayout /// Initial image layout for all subresources
Jesse Halld27f6aa2015-08-15 17:58:48 -07003944}
3945
3946class VkSubresourceLayout {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003947 VkDeviceSize offset /// Specified in bytes
3948 VkDeviceSize size /// Specified in bytes
3949 VkDeviceSize rowPitch /// Specified in bytes
Jesse Hall543a7ff2016-01-08 16:38:30 -08003950 VkDeviceSize arrayPitch /// Specified in bytes
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003951 VkDeviceSize depthPitch /// Specified in bytes
Jesse Halld27f6aa2015-08-15 17:58:48 -07003952}
3953
3954class VkImageViewCreateInfo {
3955 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO
3956 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003957 VkImageViewCreateFlags flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07003958 VkImage image
3959 VkImageViewType viewType
3960 VkFormat format
Jesse Hall65ab5522015-11-30 00:07:16 -08003961 VkComponentMapping components
Jesse Halld27f6aa2015-08-15 17:58:48 -07003962 VkImageSubresourceRange subresourceRange
Jesse Halld27f6aa2015-08-15 17:58:48 -07003963}
3964
3965class VkBufferCopy {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003966 VkDeviceSize srcOffset /// Specified in bytes
Jesse Hall3fbc8562015-11-29 22:10:52 -08003967 VkDeviceSize dstOffset /// Specified in bytes
Jesse Hallb00daad2015-11-29 19:46:20 -08003968 VkDeviceSize size /// Specified in bytes
Jesse Halld27f6aa2015-08-15 17:58:48 -07003969}
3970
Jesse Halla6429252015-11-29 18:59:42 -08003971class VkSparseMemoryBind {
Jesse Hallb00daad2015-11-29 19:46:20 -08003972 VkDeviceSize resourceOffset /// Specified in bytes
3973 VkDeviceSize size /// Specified in bytes
Jesse Hall3fbc8562015-11-29 22:10:52 -08003974 VkDeviceMemory memory
3975 VkDeviceSize memoryOffset /// Specified in bytes
Jesse Halld27f6aa2015-08-15 17:58:48 -07003976 VkSparseMemoryBindFlags flags
3977}
3978
Jesse Halla6429252015-11-29 18:59:42 -08003979class VkSparseImageMemoryBind {
Jesse Halld27f6aa2015-08-15 17:58:48 -07003980 VkImageSubresource subresource
3981 VkOffset3D offset
3982 VkExtent3D extent
Jesse Hall3fbc8562015-11-29 22:10:52 -08003983 VkDeviceMemory memory
3984 VkDeviceSize memoryOffset /// Specified in bytes
Jesse Halld27f6aa2015-08-15 17:58:48 -07003985 VkSparseMemoryBindFlags flags
3986}
3987
Jesse Halla6429252015-11-29 18:59:42 -08003988class VkSparseBufferMemoryBindInfo {
3989 VkBuffer buffer
3990 u32 bindCount
3991 const VkSparseMemoryBind* pBinds
3992}
3993
3994class VkSparseImageOpaqueMemoryBindInfo {
3995 VkImage image
3996 u32 bindCount
3997 const VkSparseMemoryBind* pBinds
3998}
3999
4000class VkSparseImageMemoryBindInfo {
4001 VkImage image
4002 u32 bindCount
4003 const VkSparseMemoryBind* pBinds
4004}
4005
4006class VkBindSparseInfo {
4007 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_BIND_SPARSE_INFO
4008 const void* pNext
4009 u32 waitSemaphoreCount
4010 const VkSemaphore* pWaitSemaphores
4011 u32 numBufferBinds
4012 const VkSparseBufferMemoryBindInfo* pBufferBinds
4013 u32 numImageOpaqueBinds
4014 const VkSparseImageOpaqueMemoryBindInfo* pImageOpaqueBinds
4015 u32 numImageBinds
4016 const VkSparseImageMemoryBindInfo* pImageBinds
4017 u32 signalSemaphoreCount
4018 const VkSemaphore* pSignalSemaphores
4019}
4020
Jesse Hall65ab5522015-11-30 00:07:16 -08004021class VkImageSubresourceLayers {
4022 VkImageAspectFlags aspectMask
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004023 u32 mipLevel
Jesse Halla15a4bf2015-11-19 22:48:02 -08004024 u32 baseArrayLayer
Jesse Hall3fbc8562015-11-29 22:10:52 -08004025 u32 layerCount
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004026}
4027
Jesse Halld27f6aa2015-08-15 17:58:48 -07004028class VkImageCopy {
Jesse Hall65ab5522015-11-30 00:07:16 -08004029 VkImageSubresourceLayers srcSubresource
Jesse Halld27f6aa2015-08-15 17:58:48 -07004030 VkOffset3D srcOffset /// Specified in pixels for both compressed and uncompressed images
Jesse Hall65ab5522015-11-30 00:07:16 -08004031 VkImageSubresourceLayers dstSubresource
Jesse Hall3fbc8562015-11-29 22:10:52 -08004032 VkOffset3D dstOffset /// Specified in pixels for both compressed and uncompressed images
Jesse Halld27f6aa2015-08-15 17:58:48 -07004033 VkExtent3D extent /// Specified in pixels for both compressed and uncompressed images
4034}
4035
4036class VkImageBlit {
Jesse Hall65ab5522015-11-30 00:07:16 -08004037 VkImageSubresourceLayers srcSubresource
Jesse Hall3dd678a2016-01-08 21:52:01 -08004038 VkOffset3D[2] srcOffsets
Jesse Hall65ab5522015-11-30 00:07:16 -08004039 VkImageSubresourceLayers dstSubresource
Jesse Hall3dd678a2016-01-08 21:52:01 -08004040 VkOffset3D[2] dstOffsets
Jesse Halld27f6aa2015-08-15 17:58:48 -07004041}
4042
4043class VkBufferImageCopy {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004044 VkDeviceSize bufferOffset /// Specified in bytes
Jesse Halld27f6aa2015-08-15 17:58:48 -07004045 u32 bufferRowLength /// Specified in texels
4046 u32 bufferImageHeight
Jesse Hall65ab5522015-11-30 00:07:16 -08004047 VkImageSubresourceLayers imageSubresource
Jesse Halld27f6aa2015-08-15 17:58:48 -07004048 VkOffset3D imageOffset /// Specified in pixels for both compressed and uncompressed images
4049 VkExtent3D imageExtent /// Specified in pixels for both compressed and uncompressed images
4050}
4051
4052class VkImageResolve {
Jesse Hall65ab5522015-11-30 00:07:16 -08004053 VkImageSubresourceLayers srcSubresource
Jesse Halld27f6aa2015-08-15 17:58:48 -07004054 VkOffset3D srcOffset
Jesse Hall65ab5522015-11-30 00:07:16 -08004055 VkImageSubresourceLayers dstSubresource
Jesse Hall3fbc8562015-11-29 22:10:52 -08004056 VkOffset3D dstOffset
Jesse Halld27f6aa2015-08-15 17:58:48 -07004057 VkExtent3D extent
4058}
4059
4060class VkShaderModuleCreateInfo {
4061 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO
4062 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08004063 VkShaderModuleCreateFlags flags /// Reserved
Jesse Halld27f6aa2015-08-15 17:58:48 -07004064 platform.size_t codeSize /// Specified in bytes
Jesse Halla9bb62b2015-11-21 19:31:56 -08004065 const u32* pCode /// Binary code of size codeSize
Jesse Halld27f6aa2015-08-15 17:58:48 -07004066}
4067
Jesse Halld27f6aa2015-08-15 17:58:48 -07004068class VkDescriptorSetLayoutBinding {
Jesse Hall091ed9e2015-11-30 00:55:29 -08004069 u32 binding
Jesse Halld27f6aa2015-08-15 17:58:48 -07004070 VkDescriptorType descriptorType /// Type of the descriptors in this binding
Jesse Halldba27f72015-11-30 14:25:46 -08004071 u32 descriptorCount /// Number of descriptors in this binding
Jesse Halld27f6aa2015-08-15 17:58:48 -07004072 VkShaderStageFlags stageFlags /// Shader stages this binding is visible to
4073 const VkSampler* pImmutableSamplers /// Immutable samplers (used if descriptor type is SAMPLER or COMBINED_IMAGE_SAMPLER, is either NULL or contains <count> number of elements)
4074}
4075
4076class VkDescriptorSetLayoutCreateInfo {
4077 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO
4078 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08004079 VkDescriptorSetLayoutCreateFlags flags
Jesse Hall03b6fe12015-11-24 12:44:21 -08004080 u32 bindingCount /// Number of bindings in the descriptor set layout
Jesse Hall543a7ff2016-01-08 16:38:30 -08004081 const VkDescriptorSetLayoutBinding* pBindings /// Array of descriptor set layout bindings
Jesse Halld27f6aa2015-08-15 17:58:48 -07004082}
4083
Jesse Hall65ab5522015-11-30 00:07:16 -08004084class VkDescriptorPoolSize {
Jesse Halld27f6aa2015-08-15 17:58:48 -07004085 VkDescriptorType type
Jesse Hall03b6fe12015-11-24 12:44:21 -08004086 u32 descriptorCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07004087}
4088
4089class VkDescriptorPoolCreateInfo {
4090 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO
4091 const void* pNext /// Pointer to next structure
Jesse Hallfbf97b02015-11-20 14:17:03 -08004092 VkDescriptorPoolCreateFlags flags
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004093 u32 maxSets
Jesse Hall65ab5522015-11-30 00:07:16 -08004094 u32 poolSizeCount
4095 const VkDescriptorPoolSize* pPoolSizes
Jesse Halld27f6aa2015-08-15 17:58:48 -07004096}
4097
Jesse Hall3fbc8562015-11-29 22:10:52 -08004098class VkDescriptorSetAllocateInfo {
Jesse Hallf4ab2b12015-11-30 16:04:55 -08004099 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO
Jesse Hallfbf97b02015-11-20 14:17:03 -08004100 const void* pNext /// Pointer to next structure
4101 VkDescriptorPool descriptorPool
Jesse Hall03b6fe12015-11-24 12:44:21 -08004102 u32 setCount
Jesse Hallfbf97b02015-11-20 14:17:03 -08004103 const VkDescriptorSetLayout* pSetLayouts
4104}
4105
Jesse Halld27f6aa2015-08-15 17:58:48 -07004106class VkSpecializationMapEntry {
Jesse Hall65ab5522015-11-30 00:07:16 -08004107 u32 constantID /// The SpecConstant ID specified in the BIL
Jesse Halld27f6aa2015-08-15 17:58:48 -07004108 u32 offset /// Offset of the value in the data block
Jesse Hallb00daad2015-11-29 19:46:20 -08004109 platform.size_t size /// Size in bytes of the SpecConstant
Jesse Halld27f6aa2015-08-15 17:58:48 -07004110}
4111
4112class VkSpecializationInfo {
4113 u32 mapEntryCount /// Number of entries in the map
Jesse Hallb00daad2015-11-29 19:46:20 -08004114 const VkSpecializationMapEntry* pMapEntries /// Array of map entries
Jesse Halld27f6aa2015-08-15 17:58:48 -07004115 platform.size_t dataSize /// Size in bytes of pData
4116 const void* pData /// Pointer to SpecConstant data
4117}
4118
4119class VkPipelineShaderStageCreateInfo {
4120 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO
4121 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08004122 VkPipelineShaderStageCreateFlags flags
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08004123 VkShaderStageFlagBits stage
4124 VkShaderModule module
4125 const char* pName
Jesse Halld27f6aa2015-08-15 17:58:48 -07004126 const VkSpecializationInfo* pSpecializationInfo
4127}
4128
4129class VkComputePipelineCreateInfo {
4130 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO
4131 const void* pNext /// Pointer to next structure
Jesse Halld27f6aa2015-08-15 17:58:48 -07004132 VkPipelineCreateFlags flags /// Pipeline creation flags
Jesse Halla6429252015-11-29 18:59:42 -08004133 VkPipelineShaderStageCreateInfo stage
Jesse Halld27f6aa2015-08-15 17:58:48 -07004134 VkPipelineLayout layout /// Interface layout of the pipeline
4135 VkPipeline basePipelineHandle /// If VK_PIPELINE_CREATE_DERIVATIVE_BIT is set and this value is nonzero, it specifies the handle of the base pipeline this is a derivative of
4136 s32 basePipelineIndex /// If VK_PIPELINE_CREATE_DERIVATIVE_BIT is set and this value is not -1, it specifies an index into pCreateInfos of the base pipeline this is a derivative of
4137}
4138
4139class VkVertexInputBindingDescription {
Jesse Hallb00daad2015-11-29 19:46:20 -08004140 u32 binding /// Vertex buffer binding id
4141 u32 stride /// Distance between vertices in bytes (0 = no advancement)
Jesse Hall65ab5522015-11-30 00:07:16 -08004142 VkVertexInputRate inputRate /// Rate at which binding is incremented
Jesse Halld27f6aa2015-08-15 17:58:48 -07004143}
4144
4145class VkVertexInputAttributeDescription {
Jesse Hallb00daad2015-11-29 19:46:20 -08004146 u32 location /// location of the shader vertex attrib
4147 u32 binding /// Vertex buffer binding id
4148 VkFormat format /// format of source data
4149 u32 offset /// Offset of first element in bytes from base of vertex
Jesse Halld27f6aa2015-08-15 17:58:48 -07004150}
4151
4152class VkPipelineVertexInputStateCreateInfo {
Jesse Hall03b6fe12015-11-24 12:44:21 -08004153 VkStructureType sType /// Should be VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO
4154 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08004155 VkPipelineVertexInputStateCreateFlags flags
Jesse Hall03b6fe12015-11-24 12:44:21 -08004156 u32 vertexBindingDescriptionCount /// number of bindings
Jesse Halld27f6aa2015-08-15 17:58:48 -07004157 const VkVertexInputBindingDescription* pVertexBindingDescriptions
Jesse Hall03b6fe12015-11-24 12:44:21 -08004158 u32 vertexAttributeDescriptionCount /// number of attributes
Jesse Halld27f6aa2015-08-15 17:58:48 -07004159 const VkVertexInputAttributeDescription* pVertexAttributeDescriptions
4160}
4161
4162class VkPipelineInputAssemblyStateCreateInfo {
4163 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO
4164 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08004165 VkPipelineInputAssemblyStateCreateFlags flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07004166 VkPrimitiveTopology topology
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004167 VkBool32 primitiveRestartEnable
Jesse Halld27f6aa2015-08-15 17:58:48 -07004168}
4169
4170class VkPipelineTessellationStateCreateInfo {
4171 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO
4172 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08004173 VkPipelineTessellationStateCreateFlags flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07004174 u32 patchControlPoints
4175}
4176
4177class VkPipelineViewportStateCreateInfo {
4178 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO
4179 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08004180 VkPipelineViewportStateCreateFlags flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07004181 u32 viewportCount
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004182 const VkViewport* pViewports
4183 u32 scissorCount
4184 const VkRect2D* pScissors
Jesse Halld27f6aa2015-08-15 17:58:48 -07004185}
4186
Jesse Hall3fbc8562015-11-29 22:10:52 -08004187class VkPipelineRasterizationStateCreateInfo {
Jesse Hall65ab5522015-11-30 00:07:16 -08004188 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO
Jesse Halld27f6aa2015-08-15 17:58:48 -07004189 const void* pNext /// Pointer to next structure
Jesse Hall3fbc8562015-11-29 22:10:52 -08004190 VkPipelineRasterizationStateCreateFlags flags
Jesse Hallae38f732015-11-19 21:32:50 -08004191 VkBool32 depthClampEnable
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004192 VkBool32 rasterizerDiscardEnable
Jesse Hall65ab5522015-11-30 00:07:16 -08004193 VkPolygonMode polygonMode /// optional (GL45)
Jesse Hallc7467b72015-11-29 21:05:26 -08004194 VkCullModeFlags cullMode
Jesse Halld27f6aa2015-08-15 17:58:48 -07004195 VkFrontFace frontFace
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004196 VkBool32 depthBiasEnable
Jesse Halla9bb62b2015-11-21 19:31:56 -08004197 f32 depthBiasConstantFactor
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004198 f32 depthBiasClamp
Jesse Halla9bb62b2015-11-21 19:31:56 -08004199 f32 depthBiasSlopeFactor
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004200 f32 lineWidth
Jesse Halld27f6aa2015-08-15 17:58:48 -07004201}
4202
4203class VkPipelineMultisampleStateCreateInfo {
4204 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO
4205 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08004206 VkPipelineMultisampleStateCreateFlags flags
Jesse Hall091ed9e2015-11-30 00:55:29 -08004207 VkSampleCountFlagBits rasterizationSamples /// Number of samples used for rasterization
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004208 VkBool32 sampleShadingEnable /// optional (GL45)
Jesse Halld27f6aa2015-08-15 17:58:48 -07004209 f32 minSampleShading /// optional (GL45)
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004210 const VkSampleMask* pSampleMask
Jesse Hallacfa5342015-11-19 21:51:33 -08004211 VkBool32 alphaToCoverageEnable
4212 VkBool32 alphaToOneEnable
Jesse Halld27f6aa2015-08-15 17:58:48 -07004213}
4214
4215class VkPipelineColorBlendAttachmentState {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004216 VkBool32 blendEnable
Jesse Hall65ab5522015-11-30 00:07:16 -08004217 VkBlendFactor srcColorBlendFactor
4218 VkBlendFactor dstColorBlendFactor
4219 VkBlendOp colorBlendOp
4220 VkBlendFactor srcAlphaBlendFactor
4221 VkBlendFactor dstAlphaBlendFactor
4222 VkBlendOp alphaBlendOp
4223 VkColorComponentFlags colorWriteMask
Jesse Halld27f6aa2015-08-15 17:58:48 -07004224}
4225
4226class VkPipelineColorBlendStateCreateInfo {
4227 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO
4228 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08004229 VkPipelineColorBlendStateCreateFlags flags
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004230 VkBool32 logicOpEnable
Jesse Halld27f6aa2015-08-15 17:58:48 -07004231 VkLogicOp logicOp
4232 u32 attachmentCount /// # of pAttachments
4233 const VkPipelineColorBlendAttachmentState* pAttachments
Jesse Hallb00daad2015-11-29 19:46:20 -08004234 f32[4] blendConstants
Jesse Halld27f6aa2015-08-15 17:58:48 -07004235}
4236
4237class VkStencilOpState {
Jesse Hall65ab5522015-11-30 00:07:16 -08004238 VkStencilOp failOp
4239 VkStencilOp passOp
4240 VkStencilOp depthFailOp
4241 VkCompareOp compareOp
4242 u32 compareMask
4243 u32 writeMask
4244 u32 reference
Jesse Halld27f6aa2015-08-15 17:58:48 -07004245}
4246
4247class VkPipelineDepthStencilStateCreateInfo {
4248 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO
4249 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08004250 VkPipelineDepthStencilStateCreateFlags flags
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004251 VkBool32 depthTestEnable
4252 VkBool32 depthWriteEnable
Jesse Halld27f6aa2015-08-15 17:58:48 -07004253 VkCompareOp depthCompareOp
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004254 VkBool32 depthBoundsTestEnable /// optional (depth_bounds_test)
4255 VkBool32 stencilTestEnable
Jesse Halld27f6aa2015-08-15 17:58:48 -07004256 VkStencilOpState front
4257 VkStencilOpState back
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004258 f32 minDepthBounds
4259 f32 maxDepthBounds
4260}
4261
4262class VkPipelineDynamicStateCreateInfo {
4263 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO
4264 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08004265 VkPipelineDynamicStateCreateFlags flags
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004266 u32 dynamicStateCount
4267 const VkDynamicState* pDynamicStates
Jesse Halld27f6aa2015-08-15 17:58:48 -07004268}
4269
4270class VkGraphicsPipelineCreateInfo {
Jesse Halla6429252015-11-29 18:59:42 -08004271 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO
4272 const void* pNext /// Pointer to next structure
4273 VkPipelineCreateFlags flags /// Pipeline creation flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07004274 u32 stageCount
Jesse Halla6429252015-11-29 18:59:42 -08004275 const VkPipelineShaderStageCreateInfo* pStages /// One entry for each active shader stage
Jesse Halld27f6aa2015-08-15 17:58:48 -07004276 const VkPipelineVertexInputStateCreateInfo* pVertexInputState
4277 const VkPipelineInputAssemblyStateCreateInfo* pInputAssemblyState
4278 const VkPipelineTessellationStateCreateInfo* pTessellationState
4279 const VkPipelineViewportStateCreateInfo* pViewportState
Jesse Hall3fbc8562015-11-29 22:10:52 -08004280 const VkPipelineRasterizationStateCreateInfo* pRasterizationState
Jesse Halld27f6aa2015-08-15 17:58:48 -07004281 const VkPipelineMultisampleStateCreateInfo* pMultisampleState
4282 const VkPipelineDepthStencilStateCreateInfo* pDepthStencilState
4283 const VkPipelineColorBlendStateCreateInfo* pColorBlendState
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004284 const VkPipelineDynamicStateCreateInfo* pDynamicState
Jesse Halla6429252015-11-29 18:59:42 -08004285 VkPipelineLayout layout /// Interface layout of the pipeline
Jesse Halld27f6aa2015-08-15 17:58:48 -07004286 VkRenderPass renderPass
4287 u32 subpass
Jesse Halla6429252015-11-29 18:59:42 -08004288 VkPipeline basePipelineHandle /// If VK_PIPELINE_CREATE_DERIVATIVE_BIT is set and this value is nonzero, it specifies the handle of the base pipeline this is a derivative of
4289 s32 basePipelineIndex /// If VK_PIPELINE_CREATE_DERIVATIVE_BIT is set and this value is not -1, it specifies an index into pCreateInfos of the base pipeline this is a derivative of
Jesse Halld27f6aa2015-08-15 17:58:48 -07004290}
4291
4292class VkPipelineCacheCreateInfo {
Jesse Hallb00daad2015-11-29 19:46:20 -08004293 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO
4294 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08004295 VkPipelineCacheCreateFlags flags
Jesse Hallb00daad2015-11-29 19:46:20 -08004296 platform.size_t initialDataSize /// Size of initial data to populate cache, in bytes
4297 const void* pInitialData /// Initial data to populate cache
Jesse Halld27f6aa2015-08-15 17:58:48 -07004298}
4299
4300class VkPushConstantRange {
4301 VkShaderStageFlags stageFlags /// Which stages use the range
Jesse Hall03b6fe12015-11-24 12:44:21 -08004302 u32 offset /// Start of the range, in bytes
4303 u32 size /// Length of the range, in bytes
Jesse Halld27f6aa2015-08-15 17:58:48 -07004304}
4305
4306class VkPipelineLayoutCreateInfo {
4307 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO
4308 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08004309 VkPipelineLayoutCreateFlags flags
Jesse Hall3dd678a2016-01-08 21:52:01 -08004310 u32 descriptorSetCount /// Number of descriptor sets interfaced by the pipeline
Jesse Halld27f6aa2015-08-15 17:58:48 -07004311 const VkDescriptorSetLayout* pSetLayouts /// Array of <setCount> number of descriptor set layout objects defining the layout of the
4312 u32 pushConstantRangeCount /// Number of push-constant ranges used by the pipeline
4313 const VkPushConstantRange* pPushConstantRanges /// Array of pushConstantRangeCount number of ranges used by various shader stages
4314}
4315
4316class VkSamplerCreateInfo {
4317 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO
4318 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08004319 VkSamplerCreateFlags flags
Jesse Hall23ff73f2015-11-29 14:36:39 -08004320 VkFilter magFilter /// Filter mode for magnification
4321 VkFilter minFilter /// Filter mode for minifiation
4322 VkSamplerMipmapMode mipmapMode /// Mipmap selection mode
4323 VkSamplerAddressMode addressModeU
4324 VkSamplerAddressMode addressModeV
4325 VkSamplerAddressMode addressModeW
Jesse Halld27f6aa2015-08-15 17:58:48 -07004326 f32 mipLodBias
Jesse Hallf9fa9a52016-01-08 16:08:51 -08004327 VkBool32 anisotropyEnable
Jesse Halld27f6aa2015-08-15 17:58:48 -07004328 f32 maxAnisotropy
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004329 VkBool32 compareEnable
Jesse Halld27f6aa2015-08-15 17:58:48 -07004330 VkCompareOp compareOp
4331 f32 minLod
4332 f32 maxLod
4333 VkBorderColor borderColor
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004334 VkBool32 unnormalizedCoordinates
Jesse Halld27f6aa2015-08-15 17:58:48 -07004335}
4336
Jesse Hall3fbc8562015-11-29 22:10:52 -08004337class VkCommandPoolCreateInfo {
4338 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO
Jesse Halld27f6aa2015-08-15 17:58:48 -07004339 const void* pNext /// Pointer to next structure
Jesse Hall3fbc8562015-11-29 22:10:52 -08004340 VkCommandPoolCreateFlags flags /// Command pool creation flags
Jesse Halla6429252015-11-29 18:59:42 -08004341 u32 queueFamilyIndex
Jesse Halld27f6aa2015-08-15 17:58:48 -07004342}
4343
Jesse Hall3fbc8562015-11-29 22:10:52 -08004344class VkCommandBufferAllocateInfo {
Jesse Hallf4ab2b12015-11-30 16:04:55 -08004345 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO
Jesse Halld27f6aa2015-08-15 17:58:48 -07004346 const void* pNext /// Pointer to next structure
Jesse Hall3fbc8562015-11-29 22:10:52 -08004347 VkCommandPool commandPool
4348 VkCommandBufferLevel level
Jesse Hall3dd678a2016-01-08 21:52:01 -08004349 u32 commandBufferCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07004350}
4351
Jesse Hall3dd678a2016-01-08 21:52:01 -08004352class VkCommandBufferInheritanceInfo {
4353 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO
Jesse Halld27f6aa2015-08-15 17:58:48 -07004354 const void* pNext /// Pointer to next structure
Jesse Halld27f6aa2015-08-15 17:58:48 -07004355 VkRenderPass renderPass /// Render pass for secondary command buffers
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004356 u32 subpass
Jesse Halld27f6aa2015-08-15 17:58:48 -07004357 VkFramebuffer framebuffer /// Framebuffer for secondary command buffers
Jesse Hallf4ab2b12015-11-30 16:04:55 -08004358 VkBool32 occlusionQueryEnable
4359 VkQueryControlFlags queryFlags
4360 VkQueryPipelineStatisticFlags pipelineStatistics
Jesse Halld27f6aa2015-08-15 17:58:48 -07004361}
4362
Jesse Hall3dd678a2016-01-08 21:52:01 -08004363class VkCommandBufferBeginInfo {
4364 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO
4365 const void* pNext /// Pointer to next structure
4366 VkCommandBufferUsageFlags flags /// Command buffer usage flags
4367 const VkCommandBufferInheritanceInfo* pInheritanceInfo
4368}
4369
Jesse Halld27f6aa2015-08-15 17:58:48 -07004370class VkRenderPassBeginInfo {
4371 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO
4372 const void* pNext /// Pointer to next structure
4373 VkRenderPass renderPass
4374 VkFramebuffer framebuffer
4375 VkRect2D renderArea
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004376 u32 clearValueCount
4377 const VkClearValue* pClearValues
Jesse Halld27f6aa2015-08-15 17:58:48 -07004378}
4379
4380@union
4381/// Union allowing specification of floating point, integer, or unsigned integer color data. Actual value selected is based on image/attachment being cleared.
4382class VkClearColorValue {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004383 f32[4] float32
4384 s32[4] int32
4385 u32[4] uint32
Jesse Halld27f6aa2015-08-15 17:58:48 -07004386}
4387
4388class VkClearDepthStencilValue {
4389 f32 depth
4390 u32 stencil
4391}
4392
4393@union
4394/// Union allowing specification of color, depth, and stencil color values. Actual value selected is based on attachment being cleared.
4395class VkClearValue {
4396 VkClearColorValue color
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004397 VkClearDepthStencilValue depthStencil
Jesse Halld27f6aa2015-08-15 17:58:48 -07004398}
4399
Jesse Hallae38f732015-11-19 21:32:50 -08004400class VkClearAttachment {
4401 VkImageAspectFlags aspectMask
4402 u32 colorAttachment
4403 VkClearValue clearValue
4404}
4405
Jesse Halld27f6aa2015-08-15 17:58:48 -07004406class VkAttachmentDescription {
Jesse Halla6429252015-11-29 18:59:42 -08004407 VkAttachmentDescriptionFlags flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07004408 VkFormat format
Jesse Hall091ed9e2015-11-30 00:55:29 -08004409 VkSampleCountFlagBits samples
Jesse Halld27f6aa2015-08-15 17:58:48 -07004410 VkAttachmentLoadOp loadOp /// Load op for color or depth data
4411 VkAttachmentStoreOp storeOp /// Store op for color or depth data
4412 VkAttachmentLoadOp stencilLoadOp /// Load op for stencil data
4413 VkAttachmentStoreOp stencilStoreOp /// Store op for stencil data
4414 VkImageLayout initialLayout
4415 VkImageLayout finalLayout
4416}
4417
4418class VkAttachmentReference {
4419 u32 attachment
4420 VkImageLayout layout
4421}
4422
4423class VkSubpassDescription {
Jesse Halld27f6aa2015-08-15 17:58:48 -07004424 VkSubpassDescriptionFlags flags
Jesse Halla6429252015-11-29 18:59:42 -08004425 VkPipelineBindPoint pipelineBindPoint /// Must be VK_PIPELINE_BIND_POINT_GRAPHICS for now
Jesse Hall03b6fe12015-11-24 12:44:21 -08004426 u32 inputAttachmentCount
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004427 const VkAttachmentReference* pInputAttachments
Jesse Hall03b6fe12015-11-24 12:44:21 -08004428 u32 colorAttachmentCount
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004429 const VkAttachmentReference* pColorAttachments
4430 const VkAttachmentReference* pResolveAttachments
Jesse Hallc7467b72015-11-29 21:05:26 -08004431 const VkAttachmentReference* pDepthStencilAttachment
Jesse Hall03b6fe12015-11-24 12:44:21 -08004432 u32 preserveAttachmentCount
Jesse Hall3dd678a2016-01-08 21:52:01 -08004433 const u32* pPreserveAttachments
Jesse Halld27f6aa2015-08-15 17:58:48 -07004434}
4435
4436class VkSubpassDependency {
Jesse Halld27f6aa2015-08-15 17:58:48 -07004437 u32 srcSubpass
Jesse Hall3fbc8562015-11-29 22:10:52 -08004438 u32 dstSubpass
Jesse Halld27f6aa2015-08-15 17:58:48 -07004439 VkPipelineStageFlags srcStageMask
Jesse Hall3fbc8562015-11-29 22:10:52 -08004440 VkPipelineStageFlags dstStageMask
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08004441 VkAccessFlags srcAccessMask
4442 VkAccessFlags dstAccessMask
Jesse Halldc6d36c2015-11-29 19:12:15 -08004443 VkDependencyFlags dependencyFlags
Jesse Halld27f6aa2015-08-15 17:58:48 -07004444}
4445
4446class VkRenderPassCreateInfo {
4447 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO
4448 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08004449 VkRenderPassCreateFlags flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07004450 u32 attachmentCount
4451 const VkAttachmentDescription* pAttachments
4452 u32 subpassCount
4453 const VkSubpassDescription* pSubpasses
4454 u32 dependencyCount
4455 const VkSubpassDependency* pDependencies
4456}
4457
4458class VkEventCreateInfo {
4459 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_EVENT_CREATE_INFO
4460 const void* pNext /// Pointer to next structure
4461 VkEventCreateFlags flags /// Event creation flags
4462}
4463
4464class VkFenceCreateInfo {
4465 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_FENCE_CREATE_INFO
4466 const void* pNext /// Pointer to next structure
4467 VkFenceCreateFlags flags /// Fence creation flags
4468}
4469
4470class VkPhysicalDeviceFeatures {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004471 VkBool32 robustBufferAccess /// out of bounds buffer accesses are well defined
4472 VkBool32 fullDrawIndexUint32 /// full 32-bit range of indices for indexed draw calls
4473 VkBool32 imageCubeArray /// image views which are arrays of cube maps
4474 VkBool32 independentBlend /// blending operations are controlled per-attachment
4475 VkBool32 geometryShader /// geometry stage
4476 VkBool32 tessellationShader /// tessellation control and evaluation stage
4477 VkBool32 sampleRateShading /// per-sample shading and interpolation
Jesse Hall3fbc8562015-11-29 22:10:52 -08004478 VkBool32 dualSrcBlend /// blend operations which take two sources
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004479 VkBool32 logicOp /// logic operations
4480 VkBool32 multiDrawIndirect /// multi draw indirect
Jesse Hall543a7ff2016-01-08 16:38:30 -08004481 VkBool32 drawIndirectFirstInstance
Jesse Hallae38f732015-11-19 21:32:50 -08004482 VkBool32 depthClamp /// depth clamping
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004483 VkBool32 depthBiasClamp /// depth bias clamping
4484 VkBool32 fillModeNonSolid /// point and wireframe fill modes
4485 VkBool32 depthBounds /// depth bounds test
4486 VkBool32 wideLines /// lines with width greater than 1
4487 VkBool32 largePoints /// points with size greater than 1
Jesse Hallfbf97b02015-11-20 14:17:03 -08004488 VkBool32 alphaToOne /// The fragment alpha channel can be forced to maximum representable alpha value
4489 VkBool32 multiViewport
4490 VkBool32 samplerAnisotropy
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004491 VkBool32 textureCompressionETC2 /// ETC texture compression formats
4492 VkBool32 textureCompressionASTC_LDR /// ASTC LDR texture compression formats
4493 VkBool32 textureCompressionBC /// BC1-7 texture compressed formats
Jesse Hall65ab5522015-11-30 00:07:16 -08004494 VkBool32 occlusionQueryPrecise
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004495 VkBool32 pipelineStatisticsQuery /// pipeline statistics query
Jesse Halldc6d36c2015-11-29 19:12:15 -08004496 VkBool32 vertexPipelineStoresAndAtomics
4497 VkBool32 fragmentStoresAndAtomics
4498 VkBool32 shaderTessellationAndGeometryPointSize
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004499 VkBool32 shaderImageGatherExtended /// texture gather with run-time values and independent offsets
4500 VkBool32 shaderStorageImageExtendedFormats /// the extended set of formats can be used for storage images
4501 VkBool32 shaderStorageImageMultisample /// multisample images can be used for storage images
Jesse Halld1af8122015-11-29 23:50:38 -08004502 VkBool32 shaderStorageImageReadWithoutFormat
4503 VkBool32 shaderStorageImageWriteWithoutFormat
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004504 VkBool32 shaderUniformBufferArrayDynamicIndexing /// arrays of uniform buffers can be accessed with dynamically uniform indices
4505 VkBool32 shaderSampledImageArrayDynamicIndexing /// arrays of sampled images can be accessed with dynamically uniform indices
4506 VkBool32 shaderStorageBufferArrayDynamicIndexing /// arrays of storage buffers can be accessed with dynamically uniform indices
4507 VkBool32 shaderStorageImageArrayDynamicIndexing /// arrays of storage images can be accessed with dynamically uniform indices
4508 VkBool32 shaderClipDistance /// clip distance in shaders
4509 VkBool32 shaderCullDistance /// cull distance in shaders
4510 VkBool32 shaderFloat64 /// 64-bit floats (doubles) in shaders
4511 VkBool32 shaderInt64 /// 64-bit integers in shaders
4512 VkBool32 shaderInt16 /// 16-bit integers in shaders
4513 VkBool32 shaderResourceResidency /// shader can use texture operations that return resource residency information (requires sparseNonResident support)
Jesse Hall65ab5522015-11-30 00:07:16 -08004514 VkBool32 shaderResourceMinLod /// shader can use texture operations that specify minimum resource LOD
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004515 VkBool32 sparseBinding /// Sparse resources support: Resource memory can be managed at opaque page level rather than object level
4516 VkBool32 sparseResidencyBuffer /// Sparse resources support: GPU can access partially resident buffers
4517 VkBool32 sparseResidencyImage2D /// Sparse resources support: GPU can access partially resident 2D (non-MSAA non-DepthStencil) images
4518 VkBool32 sparseResidencyImage3D /// Sparse resources support: GPU can access partially resident 3D images
4519 VkBool32 sparseResidency2Samples /// Sparse resources support: GPU can access partially resident MSAA 2D images with 2 samples
4520 VkBool32 sparseResidency4Samples /// Sparse resources support: GPU can access partially resident MSAA 2D images with 4 samples
4521 VkBool32 sparseResidency8Samples /// Sparse resources support: GPU can access partially resident MSAA 2D images with 8 samples
4522 VkBool32 sparseResidency16Samples /// Sparse resources support: GPU can access partially resident MSAA 2D images with 16 samples
4523 VkBool32 sparseResidencyAliased /// Sparse resources support: GPU can correctly access data aliased into multiple locations (opt-in)
Jesse Halld1af8122015-11-29 23:50:38 -08004524 VkBool32 variableMultisampleRate
Jesse Hallf9fa9a52016-01-08 16:08:51 -08004525 VkBool32 inheritedQueries
Jesse Halld27f6aa2015-08-15 17:58:48 -07004526}
4527
4528class VkPhysicalDeviceLimits {
4529 /// resource maximum sizes
4530 u32 maxImageDimension1D /// max 1D image dimension
4531 u32 maxImageDimension2D /// max 2D image dimension
4532 u32 maxImageDimension3D /// max 3D image dimension
4533 u32 maxImageDimensionCube /// max cubemap image dimension
4534 u32 maxImageArrayLayers /// max layers for image arrays
Jesse Hallb00daad2015-11-29 19:46:20 -08004535 u32 maxTexelBufferElements
Jesse Hallfbf97b02015-11-20 14:17:03 -08004536 u32 maxUniformBufferRange /// max uniform buffer size (bytes)
4537 u32 maxStorageBufferRange /// max storage buffer size (bytes)
Jesse Halld27f6aa2015-08-15 17:58:48 -07004538 u32 maxPushConstantsSize /// max size of the push constants pool (bytes)
4539 /// memory limits
4540 u32 maxMemoryAllocationCount /// max number of device memory allocations supported
Jesse Hall091ed9e2015-11-30 00:55:29 -08004541 u32 maxSamplerAllocationCount
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004542 VkDeviceSize bufferImageGranularity /// Granularity (in bytes) at which buffers and images can be bound to adjacent memory for simultaneous usage
4543 VkDeviceSize sparseAddressSpaceSize /// Total address space available for sparse allocations (bytes)
Jesse Halld27f6aa2015-08-15 17:58:48 -07004544 /// descriptor set limits
4545 u32 maxBoundDescriptorSets /// max number of descriptors sets that can be bound to a pipeline
Jesse Halld27f6aa2015-08-15 17:58:48 -07004546 u32 maxPerStageDescriptorSamplers /// max num of samplers allowed per-stage in a descriptor set
4547 u32 maxPerStageDescriptorUniformBuffers /// max num of uniform buffers allowed per-stage in a descriptor set
4548 u32 maxPerStageDescriptorStorageBuffers /// max num of storage buffers allowed per-stage in a descriptor set
4549 u32 maxPerStageDescriptorSampledImages /// max num of sampled images allowed per-stage in a descriptor set
4550 u32 maxPerStageDescriptorStorageImages /// max num of storage images allowed per-stage in a descriptor set
Jesse Halle1b12782015-11-30 11:27:32 -08004551 u32 maxPerStageDescriptorInputAttachments
Jesse Halldba27f72015-11-30 14:25:46 -08004552 u32 maxPerStageResources
Jesse Halld27f6aa2015-08-15 17:58:48 -07004553 u32 maxDescriptorSetSamplers /// max num of samplers allowed in all stages in a descriptor set
4554 u32 maxDescriptorSetUniformBuffers /// max num of uniform buffers allowed in all stages in a descriptor set
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004555 u32 maxDescriptorSetUniformBuffersDynamic /// max num of dynamic uniform buffers allowed in all stages in a descriptor set
Jesse Halld27f6aa2015-08-15 17:58:48 -07004556 u32 maxDescriptorSetStorageBuffers /// max num of storage buffers allowed in all stages in a descriptor set
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004557 u32 maxDescriptorSetStorageBuffersDynamic /// max num of dynamic storage buffers allowed in all stages in a descriptor set
Jesse Halld27f6aa2015-08-15 17:58:48 -07004558 u32 maxDescriptorSetSampledImages /// max num of sampled images allowed in all stages in a descriptor set
4559 u32 maxDescriptorSetStorageImages /// max num of storage images allowed in all stages in a descriptor set
Jesse Halle1b12782015-11-30 11:27:32 -08004560 u32 maxDescriptorSetInputAttachments
Jesse Halld27f6aa2015-08-15 17:58:48 -07004561 /// vertex stage limits
4562 u32 maxVertexInputAttributes /// max num of vertex input attribute slots
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004563 u32 maxVertexInputBindings /// max num of vertex input binding slots
Jesse Halld27f6aa2015-08-15 17:58:48 -07004564 u32 maxVertexInputAttributeOffset /// max vertex input attribute offset added to vertex buffer offset
4565 u32 maxVertexInputBindingStride /// max vertex input binding stride
4566 u32 maxVertexOutputComponents /// max num of output components written by vertex shader
4567 /// tessellation control stage limits
Jesse Hall3fbc8562015-11-29 22:10:52 -08004568 u32 maxTessellationGenerationLevel /// max level supported by tess primitive generator
Jesse Hallae38f732015-11-19 21:32:50 -08004569 u32 maxTessellationPatchSize /// max patch size (vertices)
4570 u32 maxTessellationControlPerVertexInputComponents /// max num of input components per-vertex in TCS
4571 u32 maxTessellationControlPerVertexOutputComponents /// max num of output components per-vertex in TCS
4572 u32 maxTessellationControlPerPatchOutputComponents /// max num of output components per-patch in TCS
4573 u32 maxTessellationControlTotalOutputComponents /// max total num of per-vertex and per-patch output components in TCS
4574 u32 maxTessellationEvaluationInputComponents /// max num of input components per vertex in TES
4575 u32 maxTessellationEvaluationOutputComponents /// max num of output components per vertex in TES
Jesse Halld27f6aa2015-08-15 17:58:48 -07004576 /// geometry stage limits
4577 u32 maxGeometryShaderInvocations /// max invocation count supported in geometry shader
4578 u32 maxGeometryInputComponents /// max num of input components read in geometry stage
4579 u32 maxGeometryOutputComponents /// max num of output components written in geometry stage
4580 u32 maxGeometryOutputVertices /// max num of vertices that can be emitted in geometry stage
4581 u32 maxGeometryTotalOutputComponents /// max total num of components (all vertices) written in geometry stage
4582 /// fragment stage limits
4583 u32 maxFragmentInputComponents /// max num of input compontents read in fragment stage
Jesse Hallfbf97b02015-11-20 14:17:03 -08004584 u32 maxFragmentOutputAttachments /// max num of output attachments written in fragment stage
Jesse Hall3fbc8562015-11-29 22:10:52 -08004585 u32 maxFragmentDualSrcAttachments /// max num of output attachments written when using dual source blending
Jesse Halld27f6aa2015-08-15 17:58:48 -07004586 u32 maxFragmentCombinedOutputResources /// max total num of storage buffers, storage images and output buffers
4587 /// compute stage limits
4588 u32 maxComputeSharedMemorySize /// max total storage size of work group local storage (bytes)
4589 u32[3] maxComputeWorkGroupCount /// max num of compute work groups that may be dispatched by a single command (x,y,z)
4590 u32 maxComputeWorkGroupInvocations /// max total compute invocations in a single local work group
4591 u32[3] maxComputeWorkGroupSize /// max local size of a compute work group (x,y,z)
4592
4593 u32 subPixelPrecisionBits /// num bits of subpixel precision in screen x and y
4594 u32 subTexelPrecisionBits /// num bits of subtexel precision
4595 u32 mipmapPrecisionBits /// num bits of mipmap precision
4596
4597 u32 maxDrawIndexedIndexValue /// max index value for indexed draw calls (for 32-bit indices)
Jesse Halldba27f72015-11-30 14:25:46 -08004598 u32 maxDrawIndirectCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07004599
4600 f32 maxSamplerLodBias /// max absolute sampler level of detail bias
4601 f32 maxSamplerAnisotropy /// max degree of sampler anisotropy
4602
4603 u32 maxViewports /// max number of active viewports
Jesse Halld27f6aa2015-08-15 17:58:48 -07004604 u32[2] maxViewportDimensions /// max viewport dimensions (x,y)
4605 f32[2] viewportBoundsRange /// viewport bounds range (min,max)
4606 u32 viewportSubPixelBits /// num bits of subpixel precision for viewport
4607
Jesse Halldc6d36c2015-11-29 19:12:15 -08004608 platform.size_t minMemoryMapAlignment /// min required alignment of pointers returned by MapMemory (bytes)
4609 VkDeviceSize minTexelBufferOffsetAlignment /// min required alignment for texel buffer offsets (bytes)
4610 VkDeviceSize minUniformBufferOffsetAlignment /// min required alignment for uniform buffer sizes and offsets (bytes)
4611 VkDeviceSize minStorageBufferOffsetAlignment /// min required alignment for storage buffer offsets (bytes)
Jesse Halld27f6aa2015-08-15 17:58:48 -07004612
Jesse Hallfbf97b02015-11-20 14:17:03 -08004613 s32 minTexelOffset /// min texel offset for OpTextureSampleOffset
Jesse Halld27f6aa2015-08-15 17:58:48 -07004614 u32 maxTexelOffset /// max texel offset for OpTextureSampleOffset
Jesse Hallfbf97b02015-11-20 14:17:03 -08004615 s32 minTexelGatherOffset /// min texel offset for OpTextureGatherOffset
Jesse Halld27f6aa2015-08-15 17:58:48 -07004616 u32 maxTexelGatherOffset /// max texel offset for OpTextureGatherOffset
4617 f32 minInterpolationOffset /// furthest negative offset for interpolateAtOffset
4618 f32 maxInterpolationOffset /// furthest positive offset for interpolateAtOffset
4619 u32 subPixelInterpolationOffsetBits /// num of subpixel bits for interpolateAtOffset
4620
4621 u32 maxFramebufferWidth /// max width for a framebuffer
4622 u32 maxFramebufferHeight /// max height for a framebuffer
4623 u32 maxFramebufferLayers /// max layer count for a layered framebuffer
Jesse Hall091ed9e2015-11-30 00:55:29 -08004624 VkSampleCountFlags framebufferColorSampleCounts
4625 VkSampleCountFlags framebufferDepthSampleCounts
4626 VkSampleCountFlags framebufferStencilSampleCounts
4627 VkSampleCountFlags framebufferNoAttachmentSampleCounts
Jesse Halld27f6aa2015-08-15 17:58:48 -07004628 u32 maxColorAttachments /// max num of framebuffer color attachments
4629
Jesse Hall091ed9e2015-11-30 00:55:29 -08004630 VkSampleCountFlags sampledImageColorSampleCounts
4631 VkSampleCountFlags sampledImageIntegerSampleCounts
4632 VkSampleCountFlags sampledImageDepthSampleCounts
4633 VkSampleCountFlags sampledImageStencilSampleCounts
4634 VkSampleCountFlags storageImageSampleCounts
Jesse Halld27f6aa2015-08-15 17:58:48 -07004635 u32 maxSampleMaskWords /// max num of sample mask words
Jesse Hallf9fa9a52016-01-08 16:08:51 -08004636 VkBool32 timestampComputeAndGraphics
Jesse Halld27f6aa2015-08-15 17:58:48 -07004637
Jesse Halla9bb62b2015-11-21 19:31:56 -08004638 f32 timestampPeriod
Jesse Halld27f6aa2015-08-15 17:58:48 -07004639
4640 u32 maxClipDistances /// max number of clip distances
4641 u32 maxCullDistances /// max number of cull distances
4642 u32 maxCombinedClipAndCullDistances /// max combined number of user clipping
4643
Jesse Hallfbf97b02015-11-20 14:17:03 -08004644 u32 discreteQueuePriorities
4645
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004646 f32[2] pointSizeRange /// range (min,max) of supported point sizes
4647 f32[2] lineWidthRange /// range (min,max) of supported line widths
Jesse Halld27f6aa2015-08-15 17:58:48 -07004648 f32 pointSizeGranularity /// granularity of supported point sizes
4649 f32 lineWidthGranularity /// granularity of supported line widths
Jesse Hall03b6fe12015-11-24 12:44:21 -08004650 VkBool32 strictLines
Jesse Hall091ed9e2015-11-30 00:55:29 -08004651 VkBool32 standardSampleLocations
Jesse Halla9bb62b2015-11-21 19:31:56 -08004652
Jesse Hall65ab5522015-11-30 00:07:16 -08004653 VkDeviceSize optimalBufferCopyOffsetAlignment
4654 VkDeviceSize optimalBufferCopyRowPitchAlignment
Jesse Halldba27f72015-11-30 14:25:46 -08004655 VkDeviceSize nonCoherentAtomSize
Jesse Halld27f6aa2015-08-15 17:58:48 -07004656}
4657
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004658class VkPhysicalDeviceSparseProperties {
4659 VkBool32 residencyStandard2DBlockShape /// Sparse resources support: GPU will access all 2D (single sample) sparse resources using the standard block shapes (based on pixel format)
Jesse Hallb00daad2015-11-29 19:46:20 -08004660 VkBool32 residencyStandard2DMultisampleBlockShape /// Sparse resources support: GPU will access all 2D (multisample) sparse resources using the standard block shapes (based on pixel format)
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004661 VkBool32 residencyStandard3DBlockShape /// Sparse resources support: GPU will access all 3D sparse resources using the standard block shapes (based on pixel format)
4662 VkBool32 residencyAlignedMipSize /// Sparse resources support: Images with mip-level dimensions that are NOT a multiple of the block size will be placed in the mip tail
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004663 VkBool32 residencyNonResidentStrict /// Sparse resources support: GPU can safely access non-resident regions of a resource, all reads return as if data is 0, writes are discarded
4664}
4665
Jesse Halld27f6aa2015-08-15 17:58:48 -07004666class VkSemaphoreCreateInfo {
4667 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO
4668 const void* pNext /// Pointer to next structure
4669 VkSemaphoreCreateFlags flags /// Semaphore creation flags
4670}
4671
4672class VkQueryPoolCreateInfo {
4673 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO
4674 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08004675 VkQueryPoolCreateFlags flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07004676 VkQueryType queryType
Jesse Hall3dd678a2016-01-08 21:52:01 -08004677 u32 queryCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07004678 VkQueryPipelineStatisticFlags pipelineStatistics /// Optional
4679}
4680
4681class VkFramebufferCreateInfo {
4682 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO
4683 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08004684 VkFramebufferCreateFlags flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07004685 VkRenderPass renderPass
4686 u32 attachmentCount
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004687 const VkImageView* pAttachments
Jesse Halld27f6aa2015-08-15 17:58:48 -07004688 u32 width
4689 u32 height
4690 u32 layers
4691}
4692
Jesse Hall3fbc8562015-11-29 22:10:52 -08004693class VkDrawIndirectCommand {
Jesse Halld27f6aa2015-08-15 17:58:48 -07004694 u32 vertexCount
4695 u32 instanceCount
4696 u32 firstVertex
4697 u32 firstInstance
4698}
4699
Jesse Hall3fbc8562015-11-29 22:10:52 -08004700class VkDrawIndexedIndirectCommand {
Jesse Halld27f6aa2015-08-15 17:58:48 -07004701 u32 indexCount
4702 u32 instanceCount
4703 u32 firstIndex
4704 s32 vertexOffset
4705 u32 firstInstance
4706}
4707
Jesse Hall3fbc8562015-11-29 22:10:52 -08004708class VkDispatchIndirectCommand {
Jesse Halld27f6aa2015-08-15 17:58:48 -07004709 u32 x
4710 u32 y
4711 u32 z
4712}
4713
Jesse Hall54f8d132018-04-18 08:16:59 -07004714class VkBaseOutStructure {
4715 VkStructureType sType
4716 void* pNext
4717}
4718
4719class VkBaseInStructure {
4720 VkStructureType sType
4721 const void* pNext
4722}
4723
Ian Elliott28bd2c32017-10-13 09:21:12 -06004724//@vulkan1_1 structures
Daniel Koch09f7bf92017-10-05 00:26:58 -04004725
4726class VkPhysicalDeviceSubgroupProperties {
4727 VkStructureType sType
4728 void* pNext
4729 u32 subgroupSize
4730 VkShaderStageFlags supportedStages
4731 VkSubgroupFeatureFlags supportedOperations
4732 VkBool32 quadOperationsInAllStages
4733}
4734
4735class VkBindBufferMemoryInfo {
4736 VkStructureType sType
4737 const void* pNext
4738 VkBuffer buffer
4739 VkDeviceMemory memory
4740 VkDeviceSize memoryOffset
4741}
4742
4743class VkBindImageMemoryInfo {
4744 VkStructureType sType
4745 const void* pNext
4746 VkImage image
4747 VkDeviceMemory memory
4748 VkDeviceSize memoryOffset
4749}
4750
4751class VkPhysicalDevice16BitStorageFeatures {
4752 VkStructureType sType
4753 void* pNext
4754 VkBool32 storageBuffer16BitAccess
4755 VkBool32 uniformAndStorageBuffer16BitAccess
4756 VkBool32 storagePushConstant16
4757 VkBool32 storageInputOutput16
4758}
4759
4760class VkMemoryDedicatedRequirements {
4761 VkStructureType sType
4762 void* pNext
4763 VkBool32 prefersDedicatedAllocation
4764 VkBool32 requiresDedicatedAllocation
4765}
4766
4767class VkMemoryDedicatedAllocateInfo {
4768 VkStructureType sType
4769 const void* pNext
4770 VkImage image
4771 VkBuffer buffer
4772}
4773
4774class VkMemoryAllocateFlagsInfo {
4775 VkStructureType sType
4776 const void* pNext
4777 VkMemoryAllocateFlags flags
4778 u32 deviceMask
4779}
4780
4781class VkDeviceGroupRenderPassBeginInfo {
4782 VkStructureType sType
4783 const void* pNext
4784 u32 deviceMask
4785 u32 deviceRenderAreaCount
4786 const VkRect2D* pDeviceRenderAreas
4787}
4788
4789class VkDeviceGroupCommandBufferBeginInfo {
4790 VkStructureType sType
4791 const void* pNext
4792 u32 deviceMask
4793}
4794
4795class VkDeviceGroupSubmitInfo {
4796 VkStructureType sType
4797 const void* pNext
4798 u32 waitSemaphoreCount
4799 const u32* pWaitSemaphoreDeviceIndices
4800 u32 commandBufferCount
4801 const u32* pCommandBufferDeviceMasks
4802 u32 signalSemaphoreCount
4803 const u32* pSignalSemaphoreDeviceIndices
4804}
4805
4806class VkDeviceGroupBindSparseInfo {
4807 VkStructureType sType
4808 const void* pNext
4809 u32 resourceDeviceIndex
4810 u32 memoryDeviceIndex
4811}
4812
4813class VkBindBufferMemoryDeviceGroupInfo {
4814 VkStructureType sType
4815 const void* pNext
4816 u32 deviceIndexCount
4817 const u32* pDeviceIndices
4818}
4819
4820class VkBindImageMemoryDeviceGroupInfo {
4821 VkStructureType sType
4822 const void* pNext
4823 u32 deviceIndexCount
4824 const u32* pDeviceIndices
Jesse Hall8c954d32018-01-17 22:06:20 -08004825 u32 splitInstanceBindRegionCount
4826 const VkRect2D* pSplitInstanceBindRegions
Daniel Koch09f7bf92017-10-05 00:26:58 -04004827}
4828
4829class VkPhysicalDeviceGroupProperties {
4830 VkStructureType sType
4831 void* pNext
4832 u32 physicalDeviceCount
4833 VkPhysicalDevice[VK_MAX_DEVICE_GROUP_SIZE] physicalDevices
4834 VkBool32 subsetAllocation
4835}
4836
4837class VkDeviceGroupDeviceCreateInfo {
4838 VkStructureType sType
4839 const void* pNext
4840 u32 physicalDeviceCount
4841 const VkPhysicalDevice* pPhysicalDevices
4842}
4843
4844class VkBufferMemoryRequirementsInfo2 {
4845 VkStructureType sType
4846 const void* pNext
4847 VkBuffer buffer
4848}
4849
4850class VkImageMemoryRequirementsInfo2 {
4851 VkStructureType sType
4852 const void* pNext
4853 VkImage image
4854}
4855
4856class VkImageSparseMemoryRequirementsInfo2 {
4857 VkStructureType sType
4858 const void* pNext
4859 VkImage image
4860}
4861
4862class VkMemoryRequirements2 {
4863 VkStructureType sType
4864 void* pNext
4865 VkMemoryRequirements memoryRequirements
4866}
4867
4868class VkSparseImageMemoryRequirements2 {
4869 VkStructureType sType
4870 void* pNext
4871 VkSparseImageMemoryRequirements memoryRequirements
4872}
4873
4874class VkPhysicalDeviceFeatures2 {
4875 VkStructureType sType
4876 void* pNext
4877 VkPhysicalDeviceFeatures features
4878}
4879
4880class VkPhysicalDeviceProperties2 {
4881 VkStructureType sType
4882 void* pNext
4883 VkPhysicalDeviceProperties properties
4884}
4885
4886class VkFormatProperties2 {
4887 VkStructureType sType
4888 void* pNext
4889 VkFormatProperties formatProperties
4890}
4891
4892class VkImageFormatProperties2 {
4893 VkStructureType sType
4894 void* pNext
4895 VkImageFormatProperties imageFormatProperties
4896}
4897
4898class VkPhysicalDeviceImageFormatInfo2 {
4899 VkStructureType sType
4900 const void* pNext
4901 VkFormat format
4902 VkImageType type
4903 VkImageTiling tiling
4904 VkImageUsageFlags usage
4905 VkImageCreateFlags flags
4906}
4907
4908class VkQueueFamilyProperties2 {
4909 VkStructureType sType
4910 void* pNext
4911 VkQueueFamilyProperties queueFamilyProperties
4912}
4913
4914class VkPhysicalDeviceMemoryProperties2 {
4915 VkStructureType sType
4916 void* pNext
4917 VkPhysicalDeviceMemoryProperties memoryProperties
4918}
4919
4920class VkSparseImageFormatProperties2 {
4921 VkStructureType sType
4922 void* pNext
4923 VkSparseImageFormatProperties properties
4924}
4925
4926class VkPhysicalDeviceSparseImageFormatInfo2 {
4927 VkStructureType sType
4928 const void* pNext
4929 VkFormat format
4930 VkImageType type
4931 VkSampleCountFlagBits samples
4932 VkImageUsageFlags usage
4933 VkImageTiling tiling
4934}
4935
4936class VkPhysicalDevicePointClippingProperties {
4937 VkStructureType sType
4938 void* pNext
4939 VkPointClippingBehavior pointClippingBehavior
4940}
4941
4942class VkInputAttachmentAspectReference {
4943 u32 subpass
4944 u32 inputAttachmentIndex
4945 VkImageAspectFlags aspectMask
4946}
4947
4948class VkRenderPassInputAttachmentAspectCreateInfo {
4949 VkStructureType sType
4950 const void* pNext
4951 u32 aspectReferenceCount
4952 const VkInputAttachmentAspectReference* pAspectReferences
4953}
4954
4955class VkImageViewUsageCreateInfo {
4956 VkStructureType sType
4957 const void* pNext
4958 VkImageUsageFlags usage
4959}
4960
4961class VkPipelineTessellationDomainOriginStateCreateInfo {
4962 VkStructureType sType
4963 const void* pNext
4964 VkTessellationDomainOrigin domainOrigin
4965}
4966
4967class VkRenderPassMultiviewCreateInfo {
4968 VkStructureType sType
4969 const void* pNext
4970 u32 subpassCount
4971 const u32* pViewMasks
4972 u32 dependencyCount
4973 const s32* pViewOffsets
4974 u32 correlationMaskCount
4975 const u32* pCorrelationMasks
4976}
4977
4978class VkPhysicalDeviceMultiviewFeatures {
4979 VkStructureType sType
4980 void* pNext
4981 VkBool32 multiview
4982 VkBool32 multiviewGeometryShader
4983 VkBool32 multiviewTessellationShader
4984}
4985
4986class VkPhysicalDeviceMultiviewProperties {
4987 VkStructureType sType
4988 void* pNext
4989 u32 maxMultiviewViewCount
4990 u32 maxMultiviewInstanceIndex
4991}
4992
4993class VkPhysicalDeviceVariablePointerFeatures {
4994 VkStructureType sType
4995 void* pNext
4996 VkBool32 variablePointersStorageBuffer
4997 VkBool32 variablePointers
4998}
4999
5000class VkPhysicalDeviceProtectedMemoryFeatures {
5001 VkStructureType sType
5002 void* pNext
5003 VkBool32 protectedMemory
5004}
5005
5006class VkPhysicalDeviceProtectedMemoryProperties {
5007 VkStructureType sType
5008 void* pNext
5009 VkBool32 protectedNoFault
5010}
5011
5012class VkDeviceQueueInfo2 {
5013 VkStructureType sType
5014 const void* pNext
5015 VkDeviceQueueCreateFlags flags
5016 u32 queueFamilyIndex
5017 u32 queueIndex
5018}
5019
5020class VkProtectedSubmitInfo {
5021 VkStructureType sType
5022 const void* pNext
5023 VkBool32 protectedSubmit
5024}
5025
5026class VkSamplerYcbcrConversionCreateInfo {
5027 VkStructureType sType
5028 const void* pNext
5029 VkFormat format
5030 VkSamplerYcbcrModelConversion ycbcrModel
5031 VkSamplerYcbcrRange ycbcrRange
5032 VkComponentMapping components
5033 VkChromaLocation xChromaOffset
5034 VkChromaLocation yChromaOffset
5035 VkFilter chromaFilter
5036 VkBool32 forceExplicitReconstruction
5037}
5038
5039class VkSamplerYcbcrConversionInfo {
5040 VkStructureType sType
5041 const void* pNext
5042 VkSamplerYcbcrConversion conversion
5043}
5044
5045class VkBindImagePlaneMemoryInfo {
5046 VkStructureType sType
5047 const void* pNext
5048 VkImageAspectFlagBits planeAspect
5049}
5050
5051class VkImagePlaneMemoryRequirementsInfo {
5052 VkStructureType sType
5053 const void* pNext
5054 VkImageAspectFlagBits planeAspect
5055}
5056
5057class VkPhysicalDeviceSamplerYcbcrConversionFeatures {
5058 VkStructureType sType
5059 void* pNext
5060 VkBool32 samplerYcbcrConversion
5061}
5062
5063class VkSamplerYcbcrConversionImageFormatProperties {
5064 VkStructureType sType
5065 void* pNext
5066 u32 combinedImageSamplerDescriptorCount
5067}
5068
5069class VkDescriptorUpdateTemplateEntry {
5070 u32 dstBinding
5071 u32 dstArrayElement
5072 u32 descriptorCount
5073 VkDescriptorType descriptorType
5074 platform.size_t offset
5075 platform.size_t stride
5076}
5077
5078class VkDescriptorUpdateTemplateCreateInfo {
5079 VkStructureType sType
Jesse Hall48514722018-12-04 14:44:42 -08005080 const void* pNext
Daniel Koch09f7bf92017-10-05 00:26:58 -04005081 VkDescriptorUpdateTemplateCreateFlags flags
5082 u32 descriptorUpdateEntryCount
5083 const VkDescriptorUpdateTemplateEntry* pDescriptorUpdateEntries
5084 VkDescriptorUpdateTemplateType templateType
5085 VkDescriptorSetLayout descriptorSetLayout
5086 VkPipelineBindPoint pipelineBindPoint
5087 VkPipelineLayout pipelineLayout
5088 u32 set
5089}
5090
5091class VkExternalMemoryProperties {
5092 VkExternalMemoryFeatureFlags externalMemoryFeatures
5093 VkExternalMemoryHandleTypeFlags exportFromImportedHandleTypes
5094 VkExternalMemoryHandleTypeFlags compatibleHandleTypes
5095}
5096
5097class VkPhysicalDeviceExternalImageFormatInfo {
5098 VkStructureType sType
5099 const void* pNext
5100 VkExternalMemoryHandleTypeFlagBits handleType
5101}
5102
5103class VkExternalImageFormatProperties {
5104 VkStructureType sType
5105 void* pNext
5106 VkExternalMemoryProperties externalMemoryProperties
5107}
5108
5109class VkPhysicalDeviceExternalBufferInfo {
5110 VkStructureType sType
5111 const void* pNext
5112 VkBufferCreateFlags flags
5113 VkBufferUsageFlags usage
5114 VkExternalMemoryHandleTypeFlagBits handleType
5115}
5116
5117class VkExternalBufferProperties {
5118 VkStructureType sType
5119 void* pNext
5120 VkExternalMemoryProperties externalMemoryProperties
5121}
5122
5123class VkPhysicalDeviceIDProperties {
5124 VkStructureType sType
5125 void* pNext
5126 u8[VK_UUID_SIZE] deviceUUID
5127 u8[VK_UUID_SIZE] driverUUID
5128 u8[VK_LUID_SIZE] deviceLUID
5129 u32 deviceNodeMask
5130 VkBool32 deviceLUIDValid
5131}
5132
5133class VkExternalMemoryImageCreateInfo {
5134 VkStructureType sType
5135 const void* pNext
5136 VkExternalMemoryHandleTypeFlags handleTypes
5137}
5138
5139class VkExternalMemoryBufferCreateInfo {
5140 VkStructureType sType
5141 const void* pNext
5142 VkExternalMemoryHandleTypeFlags handleTypes
5143}
5144
5145class VkExportMemoryAllocateInfo {
5146 VkStructureType sType
5147 const void* pNext
5148 VkExternalMemoryHandleTypeFlags handleTypes
5149}
5150
5151class VkPhysicalDeviceExternalFenceInfo {
5152 VkStructureType sType
5153 const void* pNext
5154 VkExternalFenceHandleTypeFlagBits handleType
5155}
5156
5157class VkExternalFenceProperties {
5158 VkStructureType sType
5159 void* pNext
5160 VkExternalFenceHandleTypeFlags exportFromImportedHandleTypes
5161 VkExternalFenceHandleTypeFlags compatibleHandleTypes
5162 VkExternalFenceFeatureFlags externalFenceFeatures
5163}
5164
5165class VkExportFenceCreateInfo {
5166 VkStructureType sType
5167 const void* pNext
5168 VkExternalFenceHandleTypeFlags handleTypes
5169}
5170
5171class VkExportSemaphoreCreateInfo {
5172 VkStructureType sType
5173 const void* pNext
5174 VkExternalSemaphoreHandleTypeFlags handleTypes
5175}
5176
5177class VkPhysicalDeviceExternalSemaphoreInfo {
5178 VkStructureType sType
5179 const void* pNext
5180 VkExternalSemaphoreHandleTypeFlagBits handleType
5181}
5182
5183class VkExternalSemaphoreProperties {
5184 VkStructureType sType
5185 void* pNext
5186 VkExternalSemaphoreHandleTypeFlags exportFromImportedHandleTypes
5187 VkExternalSemaphoreHandleTypeFlags compatibleHandleTypes
5188 VkExternalSemaphoreFeatureFlags externalSemaphoreFeatures
5189}
5190
5191class VkPhysicalDeviceMaintenance3Properties {
5192 VkStructureType sType
5193 void* pNext
5194 u32 maxPerSetDescriptors
5195 VkDeviceSize maxMemoryAllocationSize
5196}
5197
5198class VkDescriptorSetLayoutSupport {
5199 VkStructureType sType
5200 void* pNext
5201 VkBool32 supported
5202}
5203
5204class VkPhysicalDeviceShaderDrawParameterFeatures {
5205 VkStructureType sType
5206 void* pNext
5207 VkBool32 shaderDrawParameters
5208}
5209
5210
Jesse Hallad250842017-03-10 18:35:38 -08005211@extension("VK_KHR_surface") // 1
Jesse Hallb00daad2015-11-29 19:46:20 -08005212class VkSurfaceCapabilitiesKHR {
Jesse Hall1356b0d2015-11-23 17:24:58 -08005213 u32 minImageCount
5214 u32 maxImageCount
5215 VkExtent2D currentExtent
5216 VkExtent2D minImageExtent
5217 VkExtent2D maxImageExtent
Jesse Hallf4ab2b12015-11-30 16:04:55 -08005218 u32 maxImageArrayLayers
Jesse Hall1356b0d2015-11-23 17:24:58 -08005219 VkSurfaceTransformFlagsKHR supportedTransforms
Jesse Hallf4ab2b12015-11-30 16:04:55 -08005220 VkSurfaceTransformFlagBitsKHR currentTransform
Jesse Halla6429252015-11-29 18:59:42 -08005221 VkCompositeAlphaFlagsKHR supportedCompositeAlpha
Jesse Hall1356b0d2015-11-23 17:24:58 -08005222 VkImageUsageFlags supportedUsageFlags
Michael Lentine88594d72015-11-12 12:49:45 -08005223}
5224
Jesse Hallad250842017-03-10 18:35:38 -08005225@extension("VK_KHR_surface") // 1
Michael Lentine88594d72015-11-12 12:49:45 -08005226class VkSurfaceFormatKHR {
Jesse Hall1356b0d2015-11-23 17:24:58 -08005227 VkFormat format
5228 VkColorSpaceKHR colorSpace
Michael Lentine88594d72015-11-12 12:49:45 -08005229}
5230
Jesse Hallad250842017-03-10 18:35:38 -08005231@extension("VK_KHR_swapchain") // 2
Michael Lentine88594d72015-11-12 12:49:45 -08005232class VkSwapchainCreateInfoKHR {
Jesse Hall1356b0d2015-11-23 17:24:58 -08005233 VkStructureType sType
5234 const void* pNext
Jesse Hallf4ab2b12015-11-30 16:04:55 -08005235 VkSwapchainCreateFlagsKHR flags
Jesse Hall1356b0d2015-11-23 17:24:58 -08005236 VkSurfaceKHR surface
5237 u32 minImageCount
5238 VkFormat imageFormat
5239 VkColorSpaceKHR imageColorSpace
5240 VkExtent2D imageExtent
Jesse Hallf4ab2b12015-11-30 16:04:55 -08005241 u32 imageArrayLayers
5242 VkImageUsageFlags imageUsage
Jesse Hall1356b0d2015-11-23 17:24:58 -08005243 VkSharingMode sharingMode
Jesse Hall03b6fe12015-11-24 12:44:21 -08005244 u32 queueFamilyIndexCount
Jesse Hall1356b0d2015-11-23 17:24:58 -08005245 const u32* pQueueFamilyIndices
Jesse Hallf4ab2b12015-11-30 16:04:55 -08005246 VkSurfaceTransformFlagBitsKHR preTransform
5247 VkCompositeAlphaFlagBitsKHR compositeAlpha
Jesse Hall1356b0d2015-11-23 17:24:58 -08005248 VkPresentModeKHR presentMode
Jesse Hall1356b0d2015-11-23 17:24:58 -08005249 VkBool32 clipped
Jesse Hallf4ab2b12015-11-30 16:04:55 -08005250 VkSwapchainKHR oldSwapchain
Michael Lentine88594d72015-11-12 12:49:45 -08005251}
5252
Jesse Hallad250842017-03-10 18:35:38 -08005253@extension("VK_KHR_swapchain") // 2
Michael Lentine88594d72015-11-12 12:49:45 -08005254class VkPresentInfoKHR {
Jesse Hall1356b0d2015-11-23 17:24:58 -08005255 VkStructureType sType
5256 const void* pNext
Jesse Hallb00daad2015-11-29 19:46:20 -08005257 u32 waitSemaphoreCount
5258 const VkSemaphore* pWaitSemaphores
Jesse Hall1356b0d2015-11-23 17:24:58 -08005259 u32 swapchainCount
Jesse Hall03b6fe12015-11-24 12:44:21 -08005260 const VkSwapchainKHR* pSwapchains
Jesse Hallf4ab2b12015-11-30 16:04:55 -08005261 const u32* pImageIndices
Jesse Halle1b12782015-11-30 11:27:32 -08005262 VkResult* pResults
Michael Lentine88594d72015-11-12 12:49:45 -08005263}
5264
Ian Elliott28bd2c32017-10-13 09:21:12 -06005265@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04005266@extension("VK_KHR_swapchain") // 2
5267class VkImageSwapchainCreateInfoKHR {
5268 VkStructureType sType
5269 const void* pNext
5270 VkSwapchainKHR swapchain
5271}
5272
Ian Elliott28bd2c32017-10-13 09:21:12 -06005273@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04005274@extension("VK_KHR_swapchain") // 2
5275class VkBindImageMemorySwapchainInfoKHR {
5276 VkStructureType sType
5277 const void* pNext
5278 VkSwapchainKHR swapchain
5279 u32 imageIndex
5280}
5281
Ian Elliott28bd2c32017-10-13 09:21:12 -06005282@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04005283@extension("VK_KHR_swapchain") // 2
5284class VkAcquireNextImageInfoKHR {
5285 VkStructureType sType
5286 const void* pNext
5287 VkSwapchainKHR swapchain
5288 u64 timeout
5289 VkSemaphore semaphore
5290 VkFence fence
5291 u32 deviceMask
5292}
5293
Ian Elliott28bd2c32017-10-13 09:21:12 -06005294@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04005295@extension("VK_KHR_swapchain") // 2
5296class VkDeviceGroupPresentCapabilitiesKHR {
5297 VkStructureType sType
5298 const void* pNext
5299 u32[VK_MAX_DEVICE_GROUP_SIZE] presentMask
5300 VkDeviceGroupPresentModeFlagsKHR modes
5301}
5302
Ian Elliott28bd2c32017-10-13 09:21:12 -06005303@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04005304@extension("VK_KHR_swapchain") // 2
5305class VkDeviceGroupPresentInfoKHR {
5306 VkStructureType sType
5307 const void* pNext
5308 u32 swapchainCount
5309 const u32* pDeviceMasks
5310 VkDeviceGroupPresentModeFlagBitsKHR mode
5311}
5312
Ian Elliott28bd2c32017-10-13 09:21:12 -06005313@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04005314@extension("VK_KHR_swapchain") // 2
5315class VkDeviceGroupSwapchainCreateInfoKHR {
5316 VkStructureType sType
5317 const void* pNext
5318 VkDeviceGroupPresentModeFlagsKHR modes
5319}
5320
Jesse Hallad250842017-03-10 18:35:38 -08005321@extension("VK_KHR_display") // 3
Jesse Hall1356b0d2015-11-23 17:24:58 -08005322class VkDisplayPropertiesKHR {
5323 VkDisplayKHR display
5324 const char* displayName
5325 VkExtent2D physicalDimensions
5326 VkExtent2D physicalResolution
5327 VkSurfaceTransformFlagsKHR supportedTransforms
Jesse Hall1356b0d2015-11-23 17:24:58 -08005328 VkBool32 planeReorderPossible
Jesse Halla6429252015-11-29 18:59:42 -08005329 VkBool32 persistentContent
Michael Lentine88594d72015-11-12 12:49:45 -08005330}
5331
Jesse Hallad250842017-03-10 18:35:38 -08005332@extension("VK_KHR_display") // 3
Jesse Halla6429252015-11-29 18:59:42 -08005333class VkDisplayModeParametersKHR {
Jesse Hall1356b0d2015-11-23 17:24:58 -08005334 VkExtent2D visibleRegion
Jesse Halla6429252015-11-29 18:59:42 -08005335 u32 refreshRate
Michael Lentine88594d72015-11-12 12:49:45 -08005336}
Jesse Halld27f6aa2015-08-15 17:58:48 -07005337
Jesse Hallad250842017-03-10 18:35:38 -08005338@extension("VK_KHR_display") // 3
Jesse Hall1356b0d2015-11-23 17:24:58 -08005339class VkDisplayModePropertiesKHR {
5340 VkDisplayModeKHR displayMode
Jesse Halla6429252015-11-29 18:59:42 -08005341 VkDisplayModeParametersKHR parameters
Jesse Hall1356b0d2015-11-23 17:24:58 -08005342}
5343
Jesse Hallad250842017-03-10 18:35:38 -08005344@extension("VK_KHR_display") // 3
Jesse Hall1356b0d2015-11-23 17:24:58 -08005345class VkDisplayModeCreateInfoKHR {
5346 VkStructureType sType
5347 const void* pNext
Jesse Hall9ba8bc82015-11-30 16:22:16 -08005348 VkDisplayModeCreateFlagsKHR flags
Jesse Halla6429252015-11-29 18:59:42 -08005349 VkDisplayModeParametersKHR parameters
Jesse Hall1356b0d2015-11-23 17:24:58 -08005350}
5351
Jesse Hallad250842017-03-10 18:35:38 -08005352@extension("VK_KHR_display") // 3
Jesse Hall1356b0d2015-11-23 17:24:58 -08005353class VkDisplayPlanePropertiesKHR {
Jesse Halla6429252015-11-29 18:59:42 -08005354 VkDisplayKHR currentDisplay
5355 u32 currentStackIndex
5356}
5357
Jesse Hallad250842017-03-10 18:35:38 -08005358@extension("VK_KHR_display") // 3
Jesse Halla6429252015-11-29 18:59:42 -08005359class VkDisplayPlaneCapabilitiesKHR {
Jesse Hall1356b0d2015-11-23 17:24:58 -08005360 VkDisplayPlaneAlphaFlagsKHR supportedAlpha
5361 VkOffset2D minSrcPosition
5362 VkOffset2D maxSrcPosition
5363 VkExtent2D minSrcExtent
5364 VkExtent2D maxSrcExtent
5365 VkOffset2D minDstPosition
5366 VkOffset2D maxDstPosition
5367 VkExtent2D minDstExtent
5368 VkExtent2D maxDstExtent
5369}
5370
Jesse Hallad250842017-03-10 18:35:38 -08005371@extension("VK_KHR_display") // 3
Jesse Halla6429252015-11-29 18:59:42 -08005372class VkDisplaySurfaceCreateInfoKHR {
Jesse Hall1356b0d2015-11-23 17:24:58 -08005373 VkStructureType sType
5374 const void* pNext
Jesse Hallf4ab2b12015-11-30 16:04:55 -08005375 VkDisplaySurfaceCreateFlagsKHR flags
Jesse Hall1356b0d2015-11-23 17:24:58 -08005376 VkDisplayModeKHR displayMode
5377 u32 planeIndex
5378 u32 planeStackIndex
Jesse Hallf4ab2b12015-11-30 16:04:55 -08005379 VkSurfaceTransformFlagBitsKHR transform
Jesse Hall1356b0d2015-11-23 17:24:58 -08005380 f32 globalAlpha
Jesse Hallf4ab2b12015-11-30 16:04:55 -08005381 VkDisplayPlaneAlphaFlagBitsKHR alphaMode
5382 VkExtent2D imageExtent
Jesse Hall1356b0d2015-11-23 17:24:58 -08005383}
5384
Jesse Hallad250842017-03-10 18:35:38 -08005385@extension("VK_KHR_display_swapchain") // 4
Jesse Hall1356b0d2015-11-23 17:24:58 -08005386class VkDisplayPresentInfoKHR {
5387 VkStructureType sType
5388 const void* pNext
5389 VkRect2D srcRect
5390 VkRect2D dstRect
Jesse Halla6429252015-11-29 18:59:42 -08005391 VkBool32 persistent
Jesse Hall1356b0d2015-11-23 17:24:58 -08005392}
5393
Jesse Hallad250842017-03-10 18:35:38 -08005394@extension("VK_KHR_xlib_surface") // 5
Jesse Hallf9fa9a52016-01-08 16:08:51 -08005395class VkXlibSurfaceCreateInfoKHR {
5396 VkStructureType sType
5397 const void* pNext
5398 VkXlibSurfaceCreateFlagsKHR flags
5399 platform.Display* dpy
5400 platform.Window window
5401}
5402
Jesse Hallad250842017-03-10 18:35:38 -08005403@extension("VK_KHR_xcb_surface") // 6
Jesse Hallf9fa9a52016-01-08 16:08:51 -08005404class VkXcbSurfaceCreateInfoKHR {
5405 VkStructureType sType
5406 const void* pNext
5407 VkXcbSurfaceCreateFlagsKHR flags
5408 platform.xcb_connection_t* connection
5409 platform.xcb_window_t window
5410}
5411
Jesse Hallad250842017-03-10 18:35:38 -08005412@extension("VK_KHR_wayland_surface") // 7
Jesse Hallf9fa9a52016-01-08 16:08:51 -08005413class VkWaylandSurfaceCreateInfoKHR {
5414 VkStructureType sType
5415 const void* pNext
5416 VkWaylandSurfaceCreateFlagsKHR flags
5417 platform.wl_display* display
5418 platform.wl_surface* surface
5419}
5420
Jesse Hallad250842017-03-10 18:35:38 -08005421@extension("VK_KHR_android_surface") // 9
Jesse Hallf9fa9a52016-01-08 16:08:51 -08005422class VkAndroidSurfaceCreateInfoKHR {
5423 VkStructureType sType
5424 const void* pNext
5425 VkAndroidSurfaceCreateFlagsKHR flags
5426 platform.ANativeWindow* window
5427}
5428
Jesse Hallad250842017-03-10 18:35:38 -08005429@extension("VK_KHR_win32_surface") // 10
Jesse Hallf9fa9a52016-01-08 16:08:51 -08005430class VkWin32SurfaceCreateInfoKHR {
5431 VkStructureType sType
5432 const void* pNext
5433 VkWin32SurfaceCreateFlagsKHR flags
5434 platform.HINSTANCE hinstance
5435 platform.HWND hwnd
5436}
5437
Jesse Hallad250842017-03-10 18:35:38 -08005438@extension("VK_ANDROID_native_buffer") // 11
Jesse Halld1abd742017-02-09 21:45:51 -08005439@internal class Gralloc1Usage {
5440 u64 consumer
5441 u64 producer
5442}
5443
Jesse Hallad250842017-03-10 18:35:38 -08005444@extension("VK_ANDROID_native_buffer") // 11
Chia-I Wub262ddc2016-03-22 07:38:20 +08005445class VkNativeBufferANDROID {
5446 VkStructureType sType
5447 const void* pNext
5448 platform.buffer_handle_t handle
Jesse Halld1abd742017-02-09 21:45:51 -08005449 s32 stride
5450 s32 format
5451 s32 usage
5452 Gralloc1Usage usage2
Chia-I Wub262ddc2016-03-22 07:38:20 +08005453}
5454
Jesse Hallad250842017-03-10 18:35:38 -08005455@extension("VK_ANDROID_native_buffer") // 11
Chris Forbes8e4438b2016-12-07 16:26:49 +13005456class VkSwapchainImageCreateInfoANDROID {
5457 VkStructureType sType
5458 const void* pNext
Chris Forbes134d9582017-01-12 14:26:37 +13005459 VkSwapchainImageUsageFlagsANDROID flags
Chris Forbes48853712017-01-12 14:09:33 +13005460}
Ian Elliott4c8bb2a2016-12-29 11:07:26 -07005461
Jesse Hallad250842017-03-10 18:35:38 -08005462@extension("VK_ANDROID_native_buffer") // 11
Chris Forbes1d4e5542017-02-15 19:38:50 +13005463class VkPhysicalDevicePresentationPropertiesANDROID {
5464 VkStructureType sType
5465 void* pNext
5466 VkBool32 sharedImage
5467}
5468
Jesse Hallad250842017-03-10 18:35:38 -08005469@extension("VK_EXT_debug_report") // 12
Jesse Hall715b86a2016-01-16 16:34:29 -08005470class VkDebugReportCallbackCreateInfoEXT {
5471 VkStructureType sType
5472 const void* pNext
5473 VkDebugReportFlagsEXT flags
5474 PFN_vkDebugReportCallbackEXT pfnCallback
5475 void* pUserData
5476}
5477
Jesse Hallad250842017-03-10 18:35:38 -08005478@extension("VK_AMD_rasterization_order") // 19
Jesse Hall26763382016-05-20 07:13:52 -07005479class VkPipelineRasterizationStateRasterizationOrderAMD {
5480 VkStructureType sType
5481 const void* pNext
5482 VkRasterizationOrderAMD rasterizationOrder
5483}
5484
Jesse Hallad250842017-03-10 18:35:38 -08005485@extension("VK_EXT_debug_marker") // 23
Jesse Hall26763382016-05-20 07:13:52 -07005486class VkDebugMarkerObjectNameInfoEXT {
5487 VkStructureType sType
5488 const void* pNext
5489 VkDebugReportObjectTypeEXT objectType
5490 u64 object
5491 const char* pObjectName
5492}
5493
Jesse Hallad250842017-03-10 18:35:38 -08005494@extension("VK_EXT_debug_marker") // 23
Jesse Hall26763382016-05-20 07:13:52 -07005495class VkDebugMarkerObjectTagInfoEXT {
5496 VkStructureType sType
5497 const void* pNext
5498 VkDebugReportObjectTypeEXT objectType
5499 u64 object
5500 u64 tagName
5501 platform.size_t tagSize
5502 const void* pTag
5503}
5504
Jesse Hallad250842017-03-10 18:35:38 -08005505@extension("VK_EXT_debug_marker") // 23
Jesse Hall26763382016-05-20 07:13:52 -07005506class VkDebugMarkerMarkerInfoEXT {
5507 VkStructureType sType
5508 const void* pNext
5509 const char* pMarkerName
5510 f32[4] color
5511}
5512
Jesse Hallad250842017-03-10 18:35:38 -08005513@extension("VK_NV_dedicated_allocation") // 27
Jesse Hall56d386a2016-07-26 15:20:40 -07005514class VkDedicatedAllocationImageCreateInfoNV {
5515 VkStructureType sType
5516 const void* pNext
5517 VkBool32 dedicatedAllocation
5518}
5519
Jesse Hallad250842017-03-10 18:35:38 -08005520@extension("VK_NV_dedicated_allocation") // 27
Jesse Hall56d386a2016-07-26 15:20:40 -07005521class VkDedicatedAllocationBufferCreateInfoNV {
5522 VkStructureType sType
5523 const void* pNext
5524 VkBool32 dedicatedAllocation
5525}
5526
Jesse Hallad250842017-03-10 18:35:38 -08005527@extension("VK_NV_dedicated_allocation") // 27
Jesse Hall56d386a2016-07-26 15:20:40 -07005528class VkDedicatedAllocationMemoryAllocateInfoNV {
5529 VkStructureType sType
5530 const void* pNext
5531 VkImage image
5532 VkBuffer buffer
5533}
5534
Jesse Hallf47e8f82018-10-27 23:41:45 -07005535@extension("VK_EXT_transform_feedback") // 29
5536class VkPhysicalDeviceTransformFeedbackFeaturesEXT {
5537 VkStructureType sType
5538 void* pNext
5539 VkBool32 transformFeedback
5540 VkBool32 geometryStreams
5541}
5542
5543@extension("VK_EXT_transform_feedback") // 29
5544class VkPhysicalDeviceTransformFeedbackPropertiesEXT {
5545 VkStructureType sType
5546 void* pNext
5547 u32 maxTransformFeedbackStreams
5548 u32 maxTransformFeedbackBuffers
5549 VkDeviceSize maxTransformFeedbackBufferSize
5550 u32 maxTransformFeedbackStreamDataSize
5551 u32 maxTransformFeedbackBufferDataSize
5552 u32 maxTransformFeedbackBufferDataStride
5553 VkBool32 transformFeedbackQueries
5554 VkBool32 transformFeedbackStreamsLinesTriangles
5555 VkBool32 transformFeedbackRasterizationStreamSelect
5556 VkBool32 transformFeedbackDraw
5557}
5558
5559@extension("VK_EXT_transform_feedback") // 29
5560class VkPipelineRasterizationStateStreamCreateInfoEXT {
5561 VkStructureType sType
5562 const void* pNext
5563 VkPipelineRasterizationStateStreamCreateFlagsEXT flags
5564 u32 rasterizationStream
5565}
5566
Jesse Hall7ba0ac72017-07-07 17:13:23 -07005567@extension("VK_AMD_texture_gather_bias_lod") // 42
5568class VkTextureLODGatherFormatPropertiesAMD {
5569 VkStructureType sType
5570 void* pNext
5571 VkBool32 supportsTextureGatherLODBiasAMD
5572}
5573
Jesse Hall8c954d32018-01-17 22:06:20 -08005574@extension("VK_AMD_shader_info") // 43
5575class VkShaderResourceUsageAMD {
5576 u32 numUsedVgprs
5577 u32 numUsedSgprs
5578 u32 ldsSizePerLocalWorkGroup
5579 platform.size_t ldsUsageSizeInBytes
5580 platform.size_t scratchMemUsageInBytes
5581}
5582
5583@extension("VK_AMD_shader_info") // 43
5584class VkShaderStatisticsInfoAMD {
5585 VkShaderStageFlags shaderStageMask
5586 VkShaderResourceUsageAMD resourceUsage
5587 u32 numPhysicalVgprs
5588 u32 numPhysicalSgprs
5589 u32 numAvailableVgprs
5590 u32 numAvailableSgprs
5591 u32[3] computeWorkGroupSize
5592}
5593
Jesse Hallb5297192018-09-22 20:52:13 +02005594@extension("VK_NV_corner_sampled_image") // 51
5595class VkPhysicalDeviceCornerSampledImageFeaturesNV {
5596 VkStructureType sType
5597 void* pNext
5598 VkBool32 cornerSampledImage
5599}
5600
Daniel Koch09f7bf92017-10-05 00:26:58 -04005601@extension("VK_KHR_multiview") // 54
5602class VkRenderPassMultiviewCreateInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005603 VkStructureType sType
5604 const void* pNext
5605 u32 subpassCount
5606 const u32* pViewMasks
5607 u32 dependencyCount
5608 const s32* pViewOffsets
5609 u32 correlationMaskCount
5610 const u32* pCorrelationMasks
5611}
5612
Daniel Koch09f7bf92017-10-05 00:26:58 -04005613@extension("VK_KHR_multiview") // 54
5614class VkPhysicalDeviceMultiviewFeaturesKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005615 VkStructureType sType
5616 void* pNext
5617 VkBool32 multiview
5618 VkBool32 multiviewGeometryShader
5619 VkBool32 multiviewTessellationShader
5620}
5621
Daniel Koch09f7bf92017-10-05 00:26:58 -04005622@extension("VK_KHR_multiview") // 54
5623class VkPhysicalDeviceMultiviewPropertiesKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005624 VkStructureType sType
5625 void* pNext
5626 u32 maxMultiviewViewCount
5627 u32 maxMultiviewInstanceIndex
5628}
5629
5630@extension("VK_NV_external_memory_capabilities") // 56
Jesse Halleb02c472017-02-24 15:13:45 -08005631class VkExternalImageFormatPropertiesNV {
5632 VkImageFormatProperties imageFormatProperties
5633 VkExternalMemoryFeatureFlagsNV externalMemoryFeatures
5634 VkExternalMemoryHandleTypeFlagsNV exportFromImportedHandleTypes
5635 VkExternalMemoryHandleTypeFlagsNV compatibleHandleTypes
5636}
5637
Jesse Hallad250842017-03-10 18:35:38 -08005638@extension("VK_NV_external_memory") // 57
Jesse Halleb02c472017-02-24 15:13:45 -08005639class VkExternalMemoryImageCreateInfoNV {
5640 VkStructureType sType
5641 const void* pNext
5642 VkExternalMemoryHandleTypeFlagsNV handleTypes
5643}
5644
Jesse Hallad250842017-03-10 18:35:38 -08005645@extension("VK_NV_external_memory") // 57
Jesse Halleb02c472017-02-24 15:13:45 -08005646class VkExportMemoryAllocateInfoNV {
5647 VkStructureType sType
5648 const void* pNext
5649 VkExternalMemoryHandleTypeFlagsNV handleTypes
5650}
5651
Jesse Hallad250842017-03-10 18:35:38 -08005652@extension("VK_NV_external_memory_win32") // 58
Jesse Halleb02c472017-02-24 15:13:45 -08005653class VkImportMemoryWin32HandleInfoNV {
5654 VkStructureType sType
5655 const void* pNext
5656 VkExternalMemoryHandleTypeFlagsNV handleType
5657 platform.HANDLE handle
5658}
5659
Jesse Hallad250842017-03-10 18:35:38 -08005660@extension("VK_NV_external_memory_win32") // 58
Jesse Halleb02c472017-02-24 15:13:45 -08005661class VkExportMemoryWin32HandleInfoNV {
5662 VkStructureType sType
5663 const void* pNext
5664 const platform.SECURITY_ATTRIBUTES* pAttributes
5665 platform.DWORD dwAccess
5666}
5667
Jesse Hallad250842017-03-10 18:35:38 -08005668@extension("VK_NV_win32_keyed_mutex") // 59
Jesse Halleb02c472017-02-24 15:13:45 -08005669class VkWin32KeyedMutexAcquireReleaseInfoNV {
5670 VkStructureType sType
5671 const void* pNext
5672 u32 acquireCount
5673 const VkDeviceMemory* pAcquireSyncs
5674 const u64* pAcquireKeys
5675 const u32* pAcquireTimeoutMilliseconds
5676 u32 releaseCount
5677 const VkDeviceMemory* pReleaseSyncs
5678 const u64* pReleaseKeys
5679}
5680
Jesse Hallad250842017-03-10 18:35:38 -08005681@extension("VK_KHR_get_physical_device_properties2") // 60
Chris Forbes1194ede2016-12-30 16:29:25 +13005682class VkPhysicalDeviceFeatures2KHR {
5683 VkStructureType sType
5684 void* pNext
5685 VkPhysicalDeviceFeatures features
5686}
5687
Jesse Hallad250842017-03-10 18:35:38 -08005688@extension("VK_KHR_get_physical_device_properties2") // 60
Chris Forbes1194ede2016-12-30 16:29:25 +13005689class VkPhysicalDeviceProperties2KHR {
5690 VkStructureType sType
5691 void* pNext
5692 VkPhysicalDeviceProperties properties
5693}
5694
Jesse Hallad250842017-03-10 18:35:38 -08005695@extension("VK_KHR_get_physical_device_properties2") // 60
Chris Forbes1194ede2016-12-30 16:29:25 +13005696class VkFormatProperties2KHR {
5697 VkStructureType sType
5698 void* pNext
5699 VkFormatProperties formatProperties
5700}
5701
Jesse Hallad250842017-03-10 18:35:38 -08005702@extension("VK_KHR_get_physical_device_properties2") // 60
Chris Forbes1194ede2016-12-30 16:29:25 +13005703class VkImageFormatProperties2KHR {
5704 VkStructureType sType
5705 void* pNext
5706 VkImageFormatProperties imageFormatProperties
5707}
5708
Jesse Hallad250842017-03-10 18:35:38 -08005709@extension("VK_KHR_get_physical_device_properties2") // 60
Chris Forbes1194ede2016-12-30 16:29:25 +13005710class VkPhysicalDeviceImageFormatInfo2KHR {
5711 VkStructureType sType
5712 const void* pNext
5713 VkFormat format
5714 VkImageType type
5715 VkImageTiling tiling
5716 VkImageUsageFlags usage
5717 VkImageCreateFlags flags
5718}
5719
Jesse Hallad250842017-03-10 18:35:38 -08005720@extension("VK_KHR_get_physical_device_properties2") // 60
Chris Forbes1194ede2016-12-30 16:29:25 +13005721class VkQueueFamilyProperties2KHR {
5722 VkStructureType sType
5723 void* pNext
5724 VkQueueFamilyProperties queueFamilyProperties
5725}
5726
Jesse Hallad250842017-03-10 18:35:38 -08005727@extension("VK_KHR_get_physical_device_properties2") // 60
Chris Forbes1194ede2016-12-30 16:29:25 +13005728class VkPhysicalDeviceMemoryProperties2KHR {
5729 VkStructureType sType
5730 void* pNext
5731 VkPhysicalDeviceMemoryProperties memoryProperties
5732}
5733
Jesse Hallad250842017-03-10 18:35:38 -08005734@extension("VK_KHR_get_physical_device_properties2") // 60
Chris Forbes1194ede2016-12-30 16:29:25 +13005735class VkSparseImageFormatProperties2KHR {
5736 VkStructureType sType
5737 void* pNext
5738 VkSparseImageFormatProperties properties
5739}
5740
Jesse Hallad250842017-03-10 18:35:38 -08005741@extension("VK_KHR_get_physical_device_properties2") // 60
Chris Forbes1194ede2016-12-30 16:29:25 +13005742class VkPhysicalDeviceSparseImageFormatInfo2KHR {
5743 VkStructureType sType
5744 const void* pNext
5745 VkFormat format
5746 VkImageType type
5747 VkSampleCountFlagBits samples
5748 VkImageUsageFlags usage
5749 VkImageTiling tiling
5750}
5751
Daniel Koch09f7bf92017-10-05 00:26:58 -04005752@extension("VK_KHR_device_group") // 61
5753class VkMemoryAllocateFlagsInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005754 VkStructureType sType
5755 const void* pNext
Daniel Koch09f7bf92017-10-05 00:26:58 -04005756 VkMemoryAllocateFlagsKHR flags
Jesse Hallad250842017-03-10 18:35:38 -08005757 u32 deviceMask
5758}
5759
Daniel Koch09f7bf92017-10-05 00:26:58 -04005760@extension("VK_KHR_device_group") // 61
5761class VkBindBufferMemoryDeviceGroupInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005762 VkStructureType sType
5763 const void* pNext
Jesse Hallad250842017-03-10 18:35:38 -08005764 u32 deviceIndexCount
5765 const u32* pDeviceIndices
5766}
5767
Daniel Koch09f7bf92017-10-05 00:26:58 -04005768@extension("VK_KHR_device_group") // 61
5769class VkBindImageMemoryDeviceGroupInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005770 VkStructureType sType
5771 const void* pNext
Jesse Hallad250842017-03-10 18:35:38 -08005772 u32 deviceIndexCount
5773 const u32* pDeviceIndices
5774 u32 SFRRectCount
5775 const VkRect2D* pSFRRects
5776}
5777
Daniel Koch09f7bf92017-10-05 00:26:58 -04005778@extension("VK_KHR_device_group") // 61
5779class VkDeviceGroupRenderPassBeginInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005780 VkStructureType sType
5781 const void* pNext
5782 u32 deviceMask
5783 u32 deviceRenderAreaCount
5784 const VkRect2D* pDeviceRenderAreas
5785}
5786
Daniel Koch09f7bf92017-10-05 00:26:58 -04005787@extension("VK_KHR_device_group") // 61
5788class VkDeviceGroupCommandBufferBeginInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005789 VkStructureType sType
5790 const void* pNext
5791 u32 deviceMask
5792}
5793
Daniel Koch09f7bf92017-10-05 00:26:58 -04005794@extension("VK_KHR_device_group") // 61
5795class VkDeviceGroupSubmitInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005796 VkStructureType sType
5797 const void* pNext
5798 u32 waitSemaphoreCount
5799 const u32* pWaitSemaphoreDeviceIndices
5800 u32 commandBufferCount
5801 const u32* pCommandBufferDeviceMasks
5802 u32 signalSemaphoreCount
5803 const u32* pSignalSemaphoreDeviceIndices
5804}
5805
Daniel Koch09f7bf92017-10-05 00:26:58 -04005806@extension("VK_KHR_device_group") // 61
5807class VkDeviceGroupBindSparseInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005808 VkStructureType sType
5809 const void* pNext
5810 u32 resourceDeviceIndex
5811 u32 memoryDeviceIndex
5812}
5813
Jesse Hallad250842017-03-10 18:35:38 -08005814@extension("VK_EXT_validation_flags") // 62
Chris Forbes289cb792016-12-30 15:03:55 +13005815class VkValidationFlagsEXT {
5816 VkStructureType sType
5817 const void* pNext
5818 u32 disabledValidationCheckCount
Jesse Hall115df0c2018-07-30 12:00:59 -07005819 const VkValidationCheckEXT* pDisabledValidationChecks
Chris Forbes289cb792016-12-30 15:03:55 +13005820}
5821
Jesse Hallad250842017-03-10 18:35:38 -08005822@extension("VK_NN_vi_surface") // 63
Jesse Hall77ad05b2017-03-10 22:02:20 -08005823class VkViSurfaceCreateInfoNN {
5824 VkStructureType sType
5825 const void* pNext
5826 VkViSurfaceCreateFlagsNN flags
5827 void* window
5828}
5829
Jesse Hall4af6c462018-09-10 09:04:25 -07005830@extension("VK_EXT_astc_decode_mode") // 68
5831class VkImageViewASTCDecodeModeEXT {
5832 VkStructureType sType
5833 const void* pNext
5834 VkFormat decodeMode
5835}
5836
5837@extension("VK_EXT_astc_decode_mode") // 68
5838class VkPhysicalDeviceASTCDecodeFeaturesEXT {
5839 VkStructureType sType
5840 void* pNext
5841 VkBool32 decodeModeSharedExponent
5842}
5843
Daniel Koch09f7bf92017-10-05 00:26:58 -04005844@extension("VK_KHR_device_group_creation") // 71
5845class VkPhysicalDeviceGroupPropertiesKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005846 VkStructureType sType
Jesse Hallf5ad48b2017-03-20 13:09:19 -07005847 void* pNext
Jesse Hallad250842017-03-10 18:35:38 -08005848 u32 physicalDeviceCount
Daniel Koch09f7bf92017-10-05 00:26:58 -04005849 VkPhysicalDevice[VK_MAX_DEVICE_GROUP_SIZE] physicalDevices
Jesse Hallad250842017-03-10 18:35:38 -08005850 VkBool32 subsetAllocation
5851}
5852
Daniel Koch09f7bf92017-10-05 00:26:58 -04005853@extension("VK_KHR_device_group_creation") // 71
5854class VkDeviceGroupDeviceCreateInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005855 VkStructureType sType
5856 const void* pNext
5857 u32 physicalDeviceCount
5858 const VkPhysicalDevice* pPhysicalDevices
5859}
5860
Jesse Hall9492f992017-08-28 12:10:06 -07005861@extension("VK_KHR_external_memory_capabilities") // 72
5862class VkExternalMemoryPropertiesKHR {
5863 VkExternalMemoryFeatureFlagsKHR externalMemoryFeatures
5864 VkExternalMemoryHandleTypeFlagsKHR exportFromImportedHandleTypes
5865 VkExternalMemoryHandleTypeFlagsKHR compatibleHandleTypes
Jesse Hallad250842017-03-10 18:35:38 -08005866}
5867
Jesse Hall9492f992017-08-28 12:10:06 -07005868@extension("VK_KHR_external_memory_capabilities") // 72
5869class VkPhysicalDeviceExternalImageFormatInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005870 VkStructureType sType
5871 const void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005872 VkExternalMemoryHandleTypeFlagBitsKHR handleType
Jesse Hallad250842017-03-10 18:35:38 -08005873}
5874
Jesse Hall9492f992017-08-28 12:10:06 -07005875@extension("VK_KHR_external_memory_capabilities") // 72
5876class VkExternalImageFormatPropertiesKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005877 VkStructureType sType
5878 void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005879 VkExternalMemoryPropertiesKHR externalMemoryProperties
Jesse Hallad250842017-03-10 18:35:38 -08005880}
5881
Jesse Hall9492f992017-08-28 12:10:06 -07005882@extension("VK_KHR_external_memory_capabilities") // 72
5883class VkPhysicalDeviceExternalBufferInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005884 VkStructureType sType
5885 const void* pNext
5886 VkBufferCreateFlags flags
5887 VkBufferUsageFlags usage
Jesse Hall9492f992017-08-28 12:10:06 -07005888 VkExternalMemoryHandleTypeFlagBitsKHR handleType
Jesse Hallad250842017-03-10 18:35:38 -08005889}
5890
Jesse Hall9492f992017-08-28 12:10:06 -07005891@extension("VK_KHR_external_memory_capabilities") // 72
5892class VkExternalBufferPropertiesKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005893 VkStructureType sType
5894 void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005895 VkExternalMemoryPropertiesKHR externalMemoryProperties
Jesse Hallad250842017-03-10 18:35:38 -08005896}
5897
Jesse Hall9492f992017-08-28 12:10:06 -07005898@extension("VK_KHR_external_memory_capabilities") // 72
5899class VkPhysicalDeviceIDPropertiesKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005900 VkStructureType sType
5901 void* pNext
5902 u8[VK_UUID_SIZE] deviceUUID
5903 u8[VK_UUID_SIZE] driverUUID
Daniel Koch09f7bf92017-10-05 00:26:58 -04005904 u8[VK_LUID_SIZE] deviceLUID
Jesse Hall9492f992017-08-28 12:10:06 -07005905 u32 deviceNodeMask
Jesse Hallad250842017-03-10 18:35:38 -08005906 VkBool32 deviceLUIDValid
5907}
5908
Jesse Hall9492f992017-08-28 12:10:06 -07005909@extension("VK_KHR_external_memory") // 73
5910class VkExternalMemoryImageCreateInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005911 VkStructureType sType
5912 const void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005913 VkExternalMemoryHandleTypeFlagsKHR handleTypes
Jesse Hallad250842017-03-10 18:35:38 -08005914}
5915
Jesse Hall9492f992017-08-28 12:10:06 -07005916@extension("VK_KHR_external_memory") // 73
5917class VkExternalMemoryBufferCreateInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005918 VkStructureType sType
5919 const void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005920 VkExternalMemoryHandleTypeFlagsKHR handleTypes
Jesse Hallad250842017-03-10 18:35:38 -08005921}
5922
Jesse Hall9492f992017-08-28 12:10:06 -07005923@extension("VK_KHR_external_memory") // 73
5924class VkExportMemoryAllocateInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005925 VkStructureType sType
5926 const void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005927 VkExternalMemoryHandleTypeFlagsKHR handleTypes
Jesse Hallad250842017-03-10 18:35:38 -08005928}
5929
Jesse Hall9492f992017-08-28 12:10:06 -07005930@extension("VK_KHR_external_memory_win32") // 74
5931class VkImportMemoryWin32HandleInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005932 VkStructureType sType
5933 const void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005934 VkExternalMemoryHandleTypeFlagBitsKHR handleType
Jesse Hallad250842017-03-10 18:35:38 -08005935 platform.HANDLE handle
Jesse Hall9492f992017-08-28 12:10:06 -07005936 platform.LPCWSTR name
Jesse Hallad250842017-03-10 18:35:38 -08005937}
5938
Jesse Hall9492f992017-08-28 12:10:06 -07005939@extension("VK_KHR_external_memory_win32") // 74
5940class VkExportMemoryWin32HandleInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005941 VkStructureType sType
5942 const void* pNext
5943 const platform.SECURITY_ATTRIBUTES* pAttributes
5944 platform.DWORD dwAccess
5945 platform.LPCWSTR name
5946}
5947
Jesse Hall9492f992017-08-28 12:10:06 -07005948@extension("VK_KHR_external_memory_win32") // 74
5949class VkMemoryWin32HandlePropertiesKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005950 VkStructureType sType
5951 void* pNext
5952 u32 memoryTypeBits
5953}
5954
Jesse Hall9492f992017-08-28 12:10:06 -07005955@extension("VK_KHR_external_memory_win32") // 74
5956class VkMemoryGetWin32HandleInfoKHR {
5957 VkStructureType sType
5958 void* pNext
5959 VkDeviceMemory memory
5960 VkExternalMemoryHandleTypeFlagBitsKHR handleType
5961}
5962
5963@extension("VK_KHR_external_memory_fd") // 75
5964class VkImportMemoryFdInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005965 VkStructureType sType
5966 const void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005967 VkExternalMemoryHandleTypeFlagBitsKHR handleType
Jesse Hallad250842017-03-10 18:35:38 -08005968 int fd
5969}
5970
Jesse Hall9492f992017-08-28 12:10:06 -07005971@extension("VK_KHR_external_memory_fd") // 75
5972class VkMemoryFdPropertiesKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005973 VkStructureType sType
5974 void* pNext
5975 u32 memoryTypeBits
5976}
5977
Jesse Hall9492f992017-08-28 12:10:06 -07005978@extension("VK_KHR_external_memory_fd") // 75
5979class VkMemoryGetFdInfoKHR {
5980 VkStructureType sType
5981 void* pNext
5982 VkDeviceMemory memory
5983 VkExternalMemoryHandleTypeFlagBitsKHR handleType
5984}
5985
5986@extension("VK_KHR_win32_keyed_mutex") // 76
5987class VkWin32KeyedMutexAcquireReleaseInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005988 VkStructureType sType
5989 const void* pNext
5990 u32 acquireCount
5991 const VkDeviceMemory* pAcquireSyncs
5992 const u64* pAcquireKeys
5993 const u32* pAcquireTimeouts
5994 u32 releaseCount
5995 const VkDeviceMemory* pReleaseSyncs
5996 const u64* pReleaseKeys
5997}
5998
Jesse Hall9492f992017-08-28 12:10:06 -07005999@extension("VK_KHR_external_semaphore_capabilities") // 77
6000class VkPhysicalDeviceExternalSemaphoreInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08006001 VkStructureType sType
6002 const void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07006003 VkExternalSemaphoreHandleTypeFlagBitsKHR handleType
Jesse Hallad250842017-03-10 18:35:38 -08006004}
6005
Jesse Hall9492f992017-08-28 12:10:06 -07006006@extension("VK_KHR_external_semaphore_capabilities") // 77
6007class VkExternalSemaphorePropertiesKHR {
Jesse Hallad250842017-03-10 18:35:38 -08006008 VkStructureType sType
6009 void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07006010 VkExternalSemaphoreHandleTypeFlagsKHR exportFromImportedHandleTypes
6011 VkExternalSemaphoreHandleTypeFlagsKHR compatibleHandleTypes
6012 VkExternalSemaphoreFeatureFlagsKHR externalSemaphoreFeatures
Jesse Hallad250842017-03-10 18:35:38 -08006013}
6014
Jesse Hall9492f992017-08-28 12:10:06 -07006015@extension("VK_KHR_external_semaphore") // 78
6016class VkExportSemaphoreCreateInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08006017 VkStructureType sType
6018 const void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07006019 VkExternalSemaphoreHandleTypeFlagsKHR handleTypes
Jesse Hallad250842017-03-10 18:35:38 -08006020}
6021
Jesse Hall9492f992017-08-28 12:10:06 -07006022@extension("VK_KHR_external_semaphore_win32") // 79
6023class VkImportSemaphoreWin32HandleInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08006024 VkStructureType sType
6025 const void* pNext
6026 VkSemaphore semaphore
Jesse Hall9492f992017-08-28 12:10:06 -07006027 VkSemaphoreImportFlagsKHR flags
6028 VkExternalSemaphoreHandleTypeFlagsKHR handleType
Jesse Hallad250842017-03-10 18:35:38 -08006029 platform.HANDLE handle
Jesse Hall9492f992017-08-28 12:10:06 -07006030 platform.LPCWSTR name
Jesse Hallad250842017-03-10 18:35:38 -08006031}
6032
Jesse Hall9492f992017-08-28 12:10:06 -07006033@extension("VK_KHR_external_semaphore_win32") // 79
6034class VkExportSemaphoreWin32HandleInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08006035 VkStructureType sType
6036 const void* pNext
6037 const platform.SECURITY_ATTRIBUTES* pAttributes
6038 platform.DWORD dwAccess
6039 platform.LPCWSTR name
6040}
6041
Jesse Hall9492f992017-08-28 12:10:06 -07006042@extension("VK_KHR_external_semaphore_win32") // 79
6043class VkD3D12FenceSubmitInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08006044 VkStructureType sType
6045 const void* pNext
6046 u32 waitSemaphoreValuesCount
6047 const u64* pWaitSemaphoreValues
6048 u32 signalSemaphoreValuesCount
6049 const u64* pSignalSemaphoreValues
6050}
6051
Jesse Hall9492f992017-08-28 12:10:06 -07006052@extension("VK_KHR_external_semaphore_win32") // 79
6053class VkSemaphoreGetWin32HandleInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08006054 VkStructureType sType
6055 const void* pNext
6056 VkSemaphore semaphore
Jesse Hall9492f992017-08-28 12:10:06 -07006057 VkExternalSemaphoreHandleTypeFlagBitsKHR handleType
6058}
6059
6060@extension("VK_KHR_external_semaphore_fd") // 80
6061class VkImportSemaphoreFdInfoKHR {
6062 VkStructureType sType
6063 const void* pNext
6064 VkSemaphore semaphore
6065 VkSemaphoreImportFlagsKHR flags
6066 VkExternalSemaphoreHandleTypeFlagBitsKHR handleType
Jesse Hallad250842017-03-10 18:35:38 -08006067 s32 fd
6068}
6069
Jesse Hall9492f992017-08-28 12:10:06 -07006070@extension("VK_KHR_external_semaphore_fd") // 80
6071class VkSemaphoreGetFdInfoKHR {
6072 VkStructureType sType
6073 const void* pNext
6074 VkSemaphore semaphore
6075 VkExternalSemaphoreHandleTypeFlagBitsKHR handleType
6076}
6077
Jesse Hallad250842017-03-10 18:35:38 -08006078@extension("VK_KHR_push_descriptor") // 81
6079class VkPhysicalDevicePushDescriptorPropertiesKHR {
6080 VkStructureType sType
6081 void* pNext
6082 u32 maxPushDescriptors
6083}
6084
Jesse Halla13a3cf2018-07-09 15:51:52 -07006085@extension("VK_EXT_conditional_rendering") // 82
6086class VkConditionalRenderingBeginInfoEXT {
6087 VkStructureType sType
6088 const void* pNext
6089 VkBuffer buffer
6090 VkDeviceSize offset
6091 VkConditionalRenderingFlagsEXT flags
6092}
6093
6094@extension("VK_EXT_conditional_rendering") // 82
6095class VkPhysicalDeviceConditionalRenderingFeaturesEXT {
6096 VkStructureType sType
6097 void* pNext
6098 VkBool32 conditionalRendering
6099 VkBool32 inheritedConditionalRendering
6100}
6101
6102@extension("VK_EXT_conditional_rendering") // 82
6103class VkCommandBufferInheritanceConditionalRenderingInfoEXT {
6104 VkStructureType sType
6105 const void* pNext
6106 VkBool32 conditionalRenderingEnable
6107}
6108
Jesse Halla9d30ff2018-12-04 14:55:50 -08006109@extension("VK_KHR_shader_float16_int8") // 83
6110class VkPhysicalDeviceFloat16Int8FeaturesKHR {
6111 VkStructureType sType
6112 void* pNext
6113 VkBool32 shaderFloat16
6114 VkBool32 shaderInt8
6115}
6116
Jesse Hall9492f992017-08-28 12:10:06 -07006117@extension("VK_KHR_16bit_storage") // 84
6118class VkPhysicalDevice16BitStorageFeaturesKHR {
6119 VkStructureType sType
6120 void* pNext
6121 VkBool32 storageBuffer16BitAccess
6122 VkBool32 uniformAndStorageBuffer16BitAccess
6123 VkBool32 storagePushConstant16
6124 VkBool32 storageInputOutput16
6125}
6126
Jesse Hallad250842017-03-10 18:35:38 -08006127@extension("VK_KHR_incremental_present") // 85
6128class VkRectLayerKHR {
6129 VkOffset2D offset
6130 VkExtent2D extent
6131 u32 layer
6132}
6133
6134@extension("VK_KHR_incremental_present") // 85
6135class VkPresentRegionKHR {
6136 u32 rectangleCount
6137 const VkRectLayerKHR* pRectangles
6138}
6139
6140@extension("VK_KHR_incremental_present") // 85
6141class VkPresentRegionsKHR {
6142 VkStructureType sType
6143 const void* pNext
6144 u32 swapchainCount
6145 const VkPresentRegionKHR* pRegions
6146}
6147
6148@extension("VK_KHR_descriptor_update_template") // 86
6149class VkDescriptorUpdateTemplateEntryKHR {
6150 u32 dstBinding
6151 u32 dstArrayElement
6152 u32 descriptorCount
6153 VkDescriptorType descriptorType
6154 platform.size_t offset
6155 platform.size_t stride
6156}
6157
6158@extension("VK_KHR_descriptor_update_template") // 86
6159class VkDescriptorUpdateTemplateCreateInfoKHR {
6160 VkStructureType sType
6161 void* pNext
6162 VkDescriptorUpdateTemplateCreateFlagsKHR flags
6163 u32 descriptorUpdateEntryCount
6164 const VkDescriptorUpdateTemplateEntryKHR* pDescriptorUpdateEntries
6165 VkDescriptorUpdateTemplateTypeKHR templateType
6166 VkDescriptorSetLayout descriptorSetLayout
6167 VkPipelineBindPoint pipelineBindPoint
6168 VkPipelineLayout pipelineLayout
6169 u32 set
6170}
6171
6172@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13006173class VkDeviceGeneratedCommandsFeaturesNVX {
6174 VkStructureType sType
6175 const void* pNext
6176 VkBool32 computeBindingPointSupport
6177}
6178
Jesse Hallad250842017-03-10 18:35:38 -08006179@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13006180class VkDeviceGeneratedCommandsLimitsNVX {
6181 VkStructureType sType
6182 const void* pNext
6183 u32 maxIndirectCommandsLayoutTokenCount
6184 u32 maxObjectEntryCounts
6185 u32 minSequenceCountBufferOffsetAlignment
6186 u32 minSequenceIndexBufferOffsetAlignment
6187 u32 minCommandsTokenBufferOffsetAlignment
6188}
6189
Jesse Hallad250842017-03-10 18:35:38 -08006190@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13006191class VkIndirectCommandsTokenNVX {
6192 VkIndirectCommandsTokenTypeNVX tokenType
6193 VkBuffer buffer
6194 VkDeviceSize offset
6195}
6196
Jesse Hallad250842017-03-10 18:35:38 -08006197@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13006198class VkIndirectCommandsLayoutTokenNVX {
6199 VkIndirectCommandsTokenTypeNVX tokenType
6200 u32 bindingUnit
6201 u32 dynamicCount
6202 u32 divisor
6203}
6204
Jesse Hallad250842017-03-10 18:35:38 -08006205@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13006206class VkIndirectCommandsLayoutCreateInfoNVX {
6207 VkStructureType sType
6208 const void* pNext
6209 VkPipelineBindPoint pipelineBindPoint
6210 VkIndirectCommandsLayoutUsageFlagsNVX flags
6211 u32 tokenCount
6212 const VkIndirectCommandsLayoutTokenNVX* pTokens
6213}
6214
Jesse Hallad250842017-03-10 18:35:38 -08006215@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13006216class VkCmdProcessCommandsInfoNVX {
6217 VkStructureType sType
6218 const void* pNext
6219 VkObjectTableNVX objectTable
6220 VkIndirectCommandsLayoutNVX indirectCommandsLayout
6221 u32 indirectCommandsTokenCount
6222 const VkIndirectCommandsTokenNVX* pIndirectCommandsTokens
6223 u32 maxSequencesCount
6224 VkCommandBuffer targetCommandBuffer
6225 VkBuffer sequencesCountBuffer
6226 VkDeviceSize sequencesCountOffset
6227 VkBuffer sequencesIndexBuffer
6228 VkDeviceSize sequencesIndexOffset
6229}
6230
Jesse Hallad250842017-03-10 18:35:38 -08006231@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13006232class VkCmdReserveSpaceForCommandsInfoNVX {
6233 VkStructureType sType
6234 const void* pNext
6235 VkObjectTableNVX objectTable
6236 VkIndirectCommandsLayoutNVX indirectCommandsLayout
6237 u32 maxSequencesCount
6238}
6239
Jesse Hallad250842017-03-10 18:35:38 -08006240@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13006241class VkObjectTableCreateInfoNVX {
6242 VkStructureType sType
6243 const void* pNext
6244 u32 objectCount
6245 const VkObjectEntryTypeNVX* pObjectEntryTypes
6246 const u32* pObjectEntryCounts
6247 const VkObjectEntryUsageFlagsNVX* pObjectEntryUsageFlags
6248 u32 maxUniformBuffersPerDescriptor
6249 u32 maxStorageBuffersPerDescriptor
6250 u32 maxStorageImagesPerDescriptor
6251 u32 maxSampledImagesPerDescriptor
6252 u32 maxPipelineLayouts
6253}
6254
Jesse Hallad250842017-03-10 18:35:38 -08006255@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13006256class VkObjectTableEntryNVX {
6257 VkObjectEntryTypeNVX type
6258 VkObjectEntryUsageFlagsNVX flags
6259}
6260
Jesse Hallad250842017-03-10 18:35:38 -08006261@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13006262class VkObjectTablePipelineEntryNVX {
6263 VkObjectEntryTypeNVX type
6264 VkObjectEntryUsageFlagsNVX flags
6265 VkPipeline pipeline
6266}
6267
Jesse Hallad250842017-03-10 18:35:38 -08006268@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13006269class VkObjectTableDescriptorSetEntryNVX {
6270 VkObjectEntryTypeNVX type
6271 VkObjectEntryUsageFlagsNVX flags
6272 VkPipelineLayout pipelineLayout
6273 VkDescriptorSet descriptorSet
6274}
6275
Jesse Hallad250842017-03-10 18:35:38 -08006276@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13006277class VkObjectTableVertexBufferEntryNVX {
6278 VkObjectEntryTypeNVX type
6279 VkObjectEntryUsageFlagsNVX flags
6280 VkBuffer buffer
6281}
6282
Jesse Hallad250842017-03-10 18:35:38 -08006283@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13006284class VkObjectTableIndexBufferEntryNVX {
6285 VkObjectEntryTypeNVX type
6286 VkObjectEntryUsageFlagsNVX flags
6287 VkBuffer buffer
Jesse Hall77ad05b2017-03-10 22:02:20 -08006288 VkIndexType indexType
Chris Forbes289cb792016-12-30 15:03:55 +13006289}
6290
Jesse Hallad250842017-03-10 18:35:38 -08006291@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13006292class VkObjectTablePushConstantEntryNVX {
6293 VkObjectEntryTypeNVX type
6294 VkObjectEntryUsageFlagsNVX flags
6295 VkPipelineLayout pipelineLayout
6296 VkShaderStageFlags stageFlags
6297}
6298
Jesse Hallad250842017-03-10 18:35:38 -08006299@extension("VK_NV_clip_space_w_scaling") // 88
6300class VkViewportWScalingNV {
6301 f32 xcoeff
6302 f32 ycoeff
Jesse Hall889cd9a2017-02-25 22:12:23 -08006303}
6304
Jesse Hallad250842017-03-10 18:35:38 -08006305@extension("VK_NV_clip_space_w_scaling") // 88
6306class VkPipelineViewportWScalingStateCreateInfoNV {
Jesse Hall889cd9a2017-02-25 22:12:23 -08006307 VkStructureType sType
6308 const void* pNext
Jesse Hallad250842017-03-10 18:35:38 -08006309 VkBool32 viewportWScalingEnable
6310 u32 viewportCount
6311 const VkViewportWScalingNV* pViewportWScalings
Jesse Hall889cd9a2017-02-25 22:12:23 -08006312}
6313
Jesse Hallad250842017-03-10 18:35:38 -08006314@extension("VK_EXT_display_surface_counter") // 91
Jesse Hall77ad05b2017-03-10 22:02:20 -08006315class VkSurfaceCapabilities2EXT {
6316 VkStructureType sType
6317 void* pNext
6318 u32 minImageCount
6319 u32 maxImageCount
6320 VkExtent2D currentExtent
6321 VkExtent2D minImageExtent
6322 VkExtent2D maxImageExtent
6323 u32 maxImageArrayLayers
6324 VkSurfaceTransformFlagsKHR supportedTransforms
6325 VkSurfaceTransformFlagBitsKHR currentTransform
6326 VkCompositeAlphaFlagsKHR supportedCompositeAlpha
6327 VkImageUsageFlags supportedUsageFlags
6328 VkSurfaceCounterFlagsEXT supportedSurfaceCounters
6329}
6330
Jesse Hallad250842017-03-10 18:35:38 -08006331@extension("VK_EXT_display_control") // 92
Jesse Hall77ad05b2017-03-10 22:02:20 -08006332class VkDisplayPowerInfoEXT {
6333 VkStructureType sType
6334 const void* pNext
6335 VkDisplayPowerStateEXT powerState
6336}
6337
Jesse Hallad250842017-03-10 18:35:38 -08006338@extension("VK_EXT_display_control") // 92
Jesse Hall77ad05b2017-03-10 22:02:20 -08006339class VkDeviceEventInfoEXT {
6340 VkStructureType sType
6341 const void* pNext
6342 VkDeviceEventTypeEXT deviceEvent
6343}
6344
Jesse Hallad250842017-03-10 18:35:38 -08006345@extension("VK_EXT_display_control") // 92
Jesse Hall77ad05b2017-03-10 22:02:20 -08006346class VkDisplayEventInfoEXT {
6347 VkStructureType sType
6348 const void* pNext
6349 VkDisplayEventTypeEXT displayEvent
6350}
6351
Jesse Hallad250842017-03-10 18:35:38 -08006352@extension("VK_EXT_display_control") // 92
Jesse Hall77ad05b2017-03-10 22:02:20 -08006353class VkSwapchainCounterCreateInfoEXT {
6354 VkStructureType sType
6355 const void* pNext
6356 VkSurfaceCounterFlagsEXT surfaceCounters
6357}
6358
Jesse Hallad250842017-03-10 18:35:38 -08006359@extension("VK_GOOGLE_display_timing") // 93
6360class VkRefreshCycleDurationGOOGLE {
Jesse Hallfdc8ab32017-03-10 21:01:57 -08006361 u64 refreshDuration
Jesse Hallad250842017-03-10 18:35:38 -08006362}
6363
6364@extension("VK_GOOGLE_display_timing") // 93
6365class VkPastPresentationTimingGOOGLE {
Jesse Hallfdc8ab32017-03-10 21:01:57 -08006366 u32 presentID
6367 u64 desiredPresentTime
6368 u64 actualPresentTime
6369 u64 earliestPresentTime
6370 u64 presentMargin
Jesse Hallad250842017-03-10 18:35:38 -08006371}
6372
6373@extension("VK_GOOGLE_display_timing") // 93
6374class VkPresentTimeGOOGLE {
Jesse Hallfdc8ab32017-03-10 21:01:57 -08006375 u32 presentID
6376 u64 desiredPresentTime
Jesse Hallad250842017-03-10 18:35:38 -08006377}
6378
6379@extension("VK_GOOGLE_display_timing") // 93
6380class VkPresentTimesInfoGOOGLE {
Jesse Hallfdc8ab32017-03-10 21:01:57 -08006381 VkStructureType sType
6382 const void* pNext
6383 u32 swapchainCount
6384 const VkPresentTimeGOOGLE* pTimes
Jesse Hallad250842017-03-10 18:35:38 -08006385}
6386
6387@extension("VK_NVX_multiview_per_view_attributes") // 98
6388class VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX {
6389 VkStructureType sType
6390 void* pNext
6391 VkBool32 perViewPositionAllComponents
6392}
6393
6394@extension("VK_NV_viewport_swizzle") // 99
6395class VkViewportSwizzleNV {
6396 VkViewportCoordinateSwizzleNV x
6397 VkViewportCoordinateSwizzleNV y
6398 VkViewportCoordinateSwizzleNV z
6399 VkViewportCoordinateSwizzleNV w
6400}
6401
6402@extension("VK_NV_viewport_swizzle") // 99
6403class VkPipelineViewportSwizzleStateCreateInfoNV {
6404 VkStructureType sType
6405 const void* pNext
6406 VkPipelineViewportSwizzleStateCreateFlagsNV flags
6407 u32 viewportCount
6408 const VkViewportSwizzleNV* pViewportSwizzles
6409}
6410
6411@extension("VK_EXT_discard_rectangles") // 100
6412class VkPhysicalDeviceDiscardRectanglePropertiesEXT {
6413 VkStructureType sType
Jesse Hallf5ad48b2017-03-20 13:09:19 -07006414 void* pNext
Jesse Hallad250842017-03-10 18:35:38 -08006415 u32 maxDiscardRectangles
6416}
6417
6418@extension("VK_EXT_discard_rectangles") // 100
6419class VkPipelineDiscardRectangleStateCreateInfoEXT {
Jesse Hallfdc8ab32017-03-10 21:01:57 -08006420 VkStructureType sType
6421 const void* pNext
6422 VkPipelineDiscardRectangleStateCreateFlagsEXT flags
6423 VkDiscardRectangleModeEXT discardRectangleMode
6424 u32 discardRectangleCount
6425 const VkRect2D* pDiscardRectangles
Jesse Hallad250842017-03-10 18:35:38 -08006426}
6427
Jesse Hall8c954d32018-01-17 22:06:20 -08006428@extension("VK_EXT_conservative_rasterization") // 102
6429class VkPhysicalDeviceConservativeRasterizationPropertiesEXT {
6430 VkStructureType sType
6431 void* pNext
6432 f32 primitiveOverestimationSize
6433 f32 maxExtraPrimitiveOverestimationSize
6434 f32 extraPrimitiveOverestimationSizeGranularity
6435 VkBool32 primitiveUnderestimation
6436 VkBool32 conservativePointAndLineRasterization
6437 VkBool32 degenerateTrianglesRasterized
6438 VkBool32 degenerateLinesRasterized
6439 VkBool32 fullyCoveredFragmentShaderInputVariable
6440 VkBool32 conservativeRasterizationPostDepthCoverage
6441}
6442
6443@extension("VK_EXT_conservative_rasterization") // 102
6444class VkPipelineRasterizationConservativeStateCreateInfoEXT {
6445 VkStructureType sType
6446 const void* pNext
6447 VkPipelineRasterizationConservativeStateCreateFlagsEXT flags
6448 VkConservativeRasterizationModeEXT conservativeRasterizationMode
6449 f32 extraPrimitiveOverestimationSize
6450}
6451
Jesse Hallad250842017-03-10 18:35:38 -08006452@extension("VK_EXT_hdr_metadata") // 106
Courtney Goeltzenleuchterd634c482017-01-05 15:55:31 -07006453class VkXYColorEXT {
Jesse Hallfdc8ab32017-03-10 21:01:57 -08006454 f32 x
6455 f32 y
Courtney Goeltzenleuchterd634c482017-01-05 15:55:31 -07006456}
6457
Jesse Hallad250842017-03-10 18:35:38 -08006458@extension("VK_EXT_hdr_metadata") // 106
Courtney Goeltzenleuchterd634c482017-01-05 15:55:31 -07006459class VkHdrMetadataEXT {
Jesse Hallfdc8ab32017-03-10 21:01:57 -08006460 VkStructureType sType
6461 const void* pNext
6462 VkXYColorEXT displayPrimaryRed
6463 VkXYColorEXT displayPrimaryGreen
6464 VkXYColorEXT displayPrimaryBlue
6465 VkXYColorEXT whitePoint
6466 f32 maxLuminance
6467 f32 minLuminance
6468 f32 maxContentLightLevel
6469 f32 maxFrameAverageLightLevel
Courtney Goeltzenleuchterd634c482017-01-05 15:55:31 -07006470}
6471
Jesse Halla13a3cf2018-07-09 15:51:52 -07006472@extension("VK_KHR_create_renderpass2") // 110
6473class VkAttachmentDescription2KHR {
6474 VkStructureType sType
6475 const void* pNext
6476 VkAttachmentDescriptionFlags flags
6477 VkFormat format
6478 VkSampleCountFlagBits samples
6479 VkAttachmentLoadOp loadOp
6480 VkAttachmentStoreOp storeOp
6481 VkAttachmentLoadOp stencilLoadOp
6482 VkAttachmentStoreOp stencilStoreOp
6483 VkImageLayout initialLayout
6484 VkImageLayout finalLayout
6485}
6486
6487@extension("VK_KHR_create_renderpass2") // 110
6488class VkAttachmentReference2KHR {
6489 VkStructureType sType
6490 const void* pNext
6491 u32 attachment
6492 VkImageLayout layout
6493 VkImageAspectFlags aspectMask
6494}
6495
6496@extension("VK_KHR_create_renderpass2") // 110
6497class VkSubpassDescription2KHR {
6498 VkStructureType sType
6499 const void* pNext
6500 VkSubpassDescriptionFlags flags
6501 VkPipelineBindPoint pipelineBindPoint
6502 u32 viewMask
6503 u32 inputAttachmentCount
6504 const VkAttachmentReference2KHR* pInputAttachments
6505 u32 colorAttachmentCount
6506 const VkAttachmentReference2KHR* pColorAttachments
6507 const VkAttachmentReference2KHR* pResolveAttachments
6508 const VkAttachmentReference2KHR* pDepthStencilAttachment
6509 u32 preserveAttachmentCount
6510 const u32* pPreserveAttachments
6511}
6512
6513@extension("VK_KHR_create_renderpass2") // 110
6514class VkSubpassDependency2KHR {
6515 VkStructureType sType
6516 const void* pNext
6517 u32 srcSubpass
6518 u32 dstSubpass
6519 VkPipelineStageFlags srcStageMask
6520 VkPipelineStageFlags dstStageMask
6521 VkAccessFlags srcAccessMask
6522 VkAccessFlags dstAccessMask
6523 VkDependencyFlags dependencyFlags
6524 s32 viewOffset
6525}
6526
6527@extension("VK_KHR_create_renderpass2") // 110
6528class VkRenderPassCreateInfo2KHR {
6529 VkStructureType sType
6530 const void* pNext
6531 VkRenderPassCreateFlags flags
6532 u32 attachmentCount
6533 const VkAttachmentDescription2KHR* pAttachments
6534 u32 subpassCount
6535 const VkSubpassDescription2KHR* pSubpasses
6536 u32 dependencyCount
6537 const VkSubpassDependency2KHR* pDependencies
6538 u32 correlatedViewMaskCount
6539 const u32* pCorrelatedViewMasks
6540}
6541
6542@extension("VK_KHR_create_renderpass2") // 110
6543class VkSubpassBeginInfoKHR {
6544 VkStructureType sType
6545 const void* pNext
6546 VkSubpassContents contents
6547}
6548
6549@extension("VK_KHR_create_renderpass2") // 110
6550class VkSubpassEndInfoKHR {
6551 VkStructureType sType
6552 const void* pNext
6553}
6554
Jesse Hall05556b12017-05-18 17:40:25 -07006555@extension("VK_KHR_shared_presentable_image") // 112
Chris Forbese2d3ee12017-03-16 16:10:15 +13006556class VkSharedPresentSurfaceCapabilitiesKHR {
6557 VkStructureType sType
6558 const void* pNext
6559 VkImageUsageFlags sharedPresentSupportedUsageFlags
6560}
6561
Jesse Hall9492f992017-08-28 12:10:06 -07006562@extension("VK_KHR_external_fence_capabilities") // 113
6563class VkPhysicalDeviceExternalFenceInfoKHR {
6564 VkStructureType sType
6565 const void* pNext
6566 VkExternalFenceHandleTypeFlagBitsKHR handleType
6567}
6568
6569@extension("VK_KHR_external_fence_capabilities") // 113
6570class VkExternalFencePropertiesKHR {
6571 VkStructureType sType
6572 void* pNext
6573 VkExternalFenceHandleTypeFlagsKHR exportFromImportedHandleTypes
6574 VkExternalFenceHandleTypeFlagsKHR compatibleHandleTypes
6575 VkExternalFenceFeatureFlagsKHR externalFenceFeatures
6576}
6577
6578@extension("VK_KHR_external_fence") // 114
6579class VkExportFenceCreateInfoKHR {
6580 VkStructureType sType
6581 const void* pNext
6582 VkExternalFenceHandleTypeFlagsKHR handleTypes
6583}
6584
6585@extension("VK_KHR_external_fence_win32") // 115
6586class VkImportFenceWin32HandleInfoKHR {
6587 VkStructureType sType
6588 const void* pNext
6589 VkFence fence
6590 VkFenceImportFlagsKHR flags
6591 VkExternalFenceHandleTypeFlagBitsKHR handleType
6592 platform.HANDLE handle
6593 platform.LPCWSTR name
6594}
6595
6596@extension("VK_KHR_external_fence_win32") // 115
6597class VkExportFenceWin32HandleInfoKHR {
6598 VkStructureType sType
6599 const void* pNext
6600 const platform.SECURITY_ATTRIBUTES* pAttributes
6601 platform.DWORD dwAccess
6602 platform.LPCWSTR name
6603}
6604
6605@extension("VK_KHR_external_fence_win32") // 115
6606class VkFenceGetWin32HandleInfoKHR {
6607 VkStructureType sType
6608 const void* pNext
6609 VkFence fence
6610 VkExternalFenceHandleTypeFlagBitsKHR handleType
6611}
6612
6613@extension("VK_KHR_external_fence_fd") // 116
6614class VkImportFenceFdInfoKHR {
6615 VkStructureType sType
6616 const void* pNext
6617 VkFence fence
6618 VkFenceImportFlagsKHR flags
6619 VkExternalFenceHandleTypeFlagBitsKHR handleType
6620 int fd
6621}
6622
6623@extension("VK_KHR_external_fence_fd") // 116
6624class VkFenceGetFdInfoKHR {
6625 VkStructureType sType
6626 const void* pNext
6627 VkFence fence
6628 VkExternalFenceHandleTypeFlagBitsKHR handleType
6629}
6630
Jesse Hall076f95d2017-09-20 11:34:47 -07006631@extension("VK_KHR_maintenance2") // 118
6632class VkPhysicalDevicePointClippingPropertiesKHR {
6633 VkStructureType sType
6634 void* pNext
6635 VkPointClippingBehaviorKHR pointClippingBehavior
6636}
6637
6638@extension("VK_KHR_maintenance2") // 118
6639class VkInputAttachmentAspectReferenceKHR {
6640 u32 subpass
6641 u32 inputAttachmentIndex
6642 VkImageAspectFlags aspectMask
6643}
6644
6645@extension("VK_KHR_maintenance2") // 118
6646class VkRenderPassInputAttachmentAspectCreateInfoKHR {
6647 VkStructureType sType
6648 const void* pNext
6649 u32 aspectReferenceCount
6650 const VkInputAttachmentAspectReferenceKHR* pAspectReferences
6651}
6652
6653@extension("VK_KHR_maintenance2") // 118
6654class VkImageViewUsageCreateInfoKHR {
6655 VkStructureType sType
6656 const void* pNext
6657 VkImageUsageFlags usage
6658}
6659
6660@extension("VK_KHR_maintenance2") // 118
6661class VkPipelineTessellationDomainOriginStateCreateInfoKHR {
6662 VkStructureType sType
6663 const void* pNext
6664 VkTessellationDomainOriginKHR domainOrigin
6665}
6666
Jesse Hall05556b12017-05-18 17:40:25 -07006667@extension("VK_KHR_get_surface_capabilities2") // 120
Chris Forbese2d3ee12017-03-16 16:10:15 +13006668class VkPhysicalDeviceSurfaceInfo2KHR {
6669 VkStructureType sType
6670 const void* pNext
6671 VkSurfaceKHR surface
6672}
6673
Jesse Hall05556b12017-05-18 17:40:25 -07006674@extension("VK_KHR_get_surface_capabilities2") // 120
Chris Forbese2d3ee12017-03-16 16:10:15 +13006675class VkSurfaceCapabilities2KHR {
6676 VkStructureType sType
6677 void* pNext
6678 VkSurfaceCapabilitiesKHR surfaceCapabilities
6679}
6680
Jesse Hall05556b12017-05-18 17:40:25 -07006681@extension("VK_KHR_get_surface_capabilities2") // 120
Chris Forbese2d3ee12017-03-16 16:10:15 +13006682class VkSurfaceFormat2KHR {
6683 VkStructureType sType
6684 void* pNext
6685 VkSurfaceFormatKHR surfaceFormat
6686}
6687
Jesse Hall9492f992017-08-28 12:10:06 -07006688@extension("VK_KHR_variable_pointers") // 121
6689class VkPhysicalDeviceVariablePointerFeaturesKHR {
6690 VkStructureType sType
6691 void* pNext
6692 VkBool32 variablePointersStorageBuffer
6693 VkBool32 variablePointers
6694}
6695
Jesse Hall54f8d132018-04-18 08:16:59 -07006696@extension("VK_KHR_display_properties2") // 122
6697class VkDisplayProperties2KHR {
6698 VkStructureType sType
6699 void* pNext
6700 VkDisplayPropertiesKHR displayProperties
6701}
6702
6703@extension("VK_KHR_display_properties2") // 122
6704class VkDisplayPlaneProperties2KHR {
6705 VkStructureType sType
6706 void* pNext
6707 VkDisplayPlanePropertiesKHR displayPlaneProperties
6708}
6709
6710@extension("VK_KHR_display_properties2") // 122
6711class VkDisplayModeProperties2KHR {
6712 VkStructureType sType
6713 void* pNext
6714 VkDisplayModePropertiesKHR displayModeProperties
6715}
6716
6717@extension("VK_KHR_display_properties2") // 122
6718class VkDisplayPlaneInfo2KHR {
6719 VkStructureType sType
6720 const void* pNext
6721 VkDisplayModeKHR mode
6722 u32 planeIndex
6723}
6724
6725@extension("VK_KHR_display_properties2") // 122
6726class VkDisplayPlaneCapabilities2KHR {
6727 VkStructureType sType
6728 void* pNext
6729 VkDisplayPlaneCapabilitiesKHR capabilities
6730}
6731
Jesse Hallad250842017-03-10 18:35:38 -08006732@extension("VK_MVK_ios_surface") // 123
6733class VkIOSSurfaceCreateInfoMVK {
6734 VkStructureType sType
6735 const void* pNext
6736 VkIOSSurfaceCreateFlagsMVK flags
6737 const void* pView
6738}
6739
6740@extension("VK_MVK_macos_surface") // 124
6741class VkMacOSSurfaceCreateInfoMVK {
6742 VkStructureType sType
6743 const void* pNext
6744 VkMacOSSurfaceCreateFlagsMVK flags
6745 const void* pView
6746}
6747
Jesse Hall9492f992017-08-28 12:10:06 -07006748@extension("VK_KHR_dedicated_allocation") // 128
6749class VkMemoryDedicatedRequirementsKHR {
6750 VkStructureType sType
6751 void* pNext
6752 VkBool32 prefersDedicatedAllocation
6753 VkBool32 requiresDedicatedAllocation
6754}
6755
6756@extension("VK_KHR_dedicated_allocation") // 128
6757class VkMemoryDedicatedAllocateInfoKHR {
6758 VkStructureType sType
6759 const void* pNext
6760 VkImage image
6761 VkBuffer buffer
6762}
6763
Jesse Hall8c954d32018-01-17 22:06:20 -08006764@extension("VK_EXT_debug_utils") // 129
6765class VkDebugUtilsObjectNameInfoEXT {
6766 VkStructureType sType
6767 const void* pNext
6768 VkObjectType objectType
6769 u64 objectHandle
6770 const char* pObjectName
6771}
Jesse Hall72e6a132018-04-06 13:00:44 -07006772
Jesse Hall8c954d32018-01-17 22:06:20 -08006773@extension("VK_EXT_debug_utils") // 129
6774class VkDebugUtilsObjectTagInfoEXT {
6775 VkStructureType sType
6776 const void* pNext
6777 VkObjectType objectType
6778 u64 objectHandle
6779 u64 tagName
6780 platform.size_t tagSize
6781 const void* pTag
6782}
Jesse Hall72e6a132018-04-06 13:00:44 -07006783
Jesse Hall8c954d32018-01-17 22:06:20 -08006784@extension("VK_EXT_debug_utils") // 129
6785class VkDebugUtilsLabelEXT {
6786 VkStructureType sType
6787 const void* pNext
6788 const char* pLabelName
6789 f32[4] color
6790}
6791
6792@extension("VK_EXT_debug_utils") // 129
6793class VkDebugUtilsMessengerCallbackDataEXT {
6794 VkStructureType sType
6795 const void* pNext
6796 VkDebugUtilsMessengerCallbackDataFlagsEXT flags
6797 const char* pMessageIdName
6798 s32 messageIdNumber
6799 const char* pMessage
6800 u32 queueLabelCount
Jesse Halla9d30ff2018-12-04 14:55:50 -08006801 const VkDebugUtilsLabelEXT* pQueueLabels
Jesse Hall8c954d32018-01-17 22:06:20 -08006802 u32 cmdBufLabelCount
Jesse Halla9d30ff2018-12-04 14:55:50 -08006803 const VkDebugUtilsLabelEXT* pCmdBufLabels
Jesse Hall8c954d32018-01-17 22:06:20 -08006804 u32 objectCount
Jesse Halla9d30ff2018-12-04 14:55:50 -08006805 const VkDebugUtilsObjectNameInfoEXT* pObjects
Jesse Hall8c954d32018-01-17 22:06:20 -08006806}
6807
6808@extension("VK_EXT_debug_utils") // 129
6809class VkDebugUtilsMessengerCreateInfoEXT {
6810 VkStructureType sType
6811 const void* pNext
6812 VkDebugUtilsMessengerCreateFlagsEXT flags
6813 VkDebugUtilsMessageSeverityFlagsEXT messageSeverity
Jesse Hallf47e8f82018-10-27 23:41:45 -07006814 VkDebugUtilsMessageTypeFlagsEXT messageTypes
Jesse Hall8c954d32018-01-17 22:06:20 -08006815 PFN_vkDebugUtilsMessengerCallbackEXT pfnUserCallback
6816 void* pUserData
6817}
6818
Jesse Hall36215a92018-01-18 15:04:37 -08006819@extension("VK_ANDROID_external_memory_android_hardware_buffer") // 131
6820class VkAndroidHardwareBufferUsageANDROID {
6821 VkStructureType sType
6822 void* pNext
6823 u64 androidHardwareBufferUsage
6824}
6825
6826@extension("VK_ANDROID_external_memory_android_hardware_buffer") // 130
6827class VkAndroidHardwareBufferPropertiesANDROID {
6828 VkStructureType sType
6829 void* pNext
6830 VkDeviceSize allocationSize
6831 u32 memoryTypeBits
6832}
6833
6834@extension("VK_ANDROID_external_memory_android_hardware_buffer") // 130
6835class VkAndroidHardwareBufferFormatPropertiesANDROID {
6836 VkStructureType sType
6837 void* pNext
6838 VkFormat format
6839 u64 externalFormat
6840 VkFormatFeatureFlags formatFeatures
6841 VkComponentMapping samplerYcbcrConversionComponents
6842 VkSamplerYcbcrModelConversion suggestedYcbcrModel
6843 VkSamplerYcbcrRange suggestedYcbcrRange
6844 VkChromaLocation suggestedXChromaOffset
6845 VkChromaLocation suggestedYChromaOffset
6846}
6847
6848@extension("VK_ANDROID_external_memory_android_hardware_buffer") // 130
6849class VkImportAndroidHardwareBufferInfoANDROID {
6850 VkStructureType sType
6851 const void* pNext
6852 platform.AHardwareBuffer* buffer
6853}
6854
6855@extension("VK_ANDROID_external_memory_android_hardware_buffer") // 130
6856class VkMemoryGetAndroidHardwareBufferInfoANDROID {
6857 VkStructureType sType
6858 const void* pNext
6859 VkDeviceMemory memory
6860}
6861
6862@extension("VK_ANDROID_external_memory_android_hardware_buffer") // 130
6863class VkExternalFormatANDROID {
6864 VkStructureType sType
6865 void* pNext
6866 u64 externalFormat
6867}
6868
Jesse Hall7ba0ac72017-07-07 17:13:23 -07006869@extension("VK_EXT_sampler_filter_minmax") // 131
6870class VkSamplerReductionModeCreateInfoEXT {
6871 VkStructureType sType
6872 const void* pNext
6873 VkSamplerReductionModeEXT reductionMode
6874}
6875
6876@extension("VK_EXT_sampler_filter_minmax") // 131
6877class VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT {
6878 VkStructureType sType
6879 void* pNext
6880 VkBool32 filterMinmaxSingleComponentFormats
6881 VkBool32 filterMinmaxImageComponentMapping
6882}
6883
Jesse Hall4af6c462018-09-10 09:04:25 -07006884@extension("VK_EXT_inline_uniform_block") // 139
6885class VkPhysicalDeviceInlineUniformBlockFeaturesEXT {
6886 VkStructureType sType
6887 void* pNext
6888 VkBool32 inlineUniformBlock
6889 VkBool32 descriptorBindingInlineUniformBlockUpdateAfterBind
6890}
6891
6892@extension("VK_EXT_inline_uniform_block") // 139
6893class VkPhysicalDeviceInlineUniformBlockPropertiesEXT {
6894 VkStructureType sType
6895 void* pNext
6896 u32 maxInlineUniformBlockSize
6897 u32 maxPerStageDescriptorInlineUniformBlocks
6898 u32 maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks
6899 u32 maxDescriptorSetInlineUniformBlocks
6900 u32 maxDescriptorSetUpdateAfterBindInlineUniformBlocks
6901}
6902
6903@extension("VK_EXT_inline_uniform_block") // 139
6904class VkWriteDescriptorSetInlineUniformBlockEXT {
6905 VkStructureType sType
6906 const void* pNext
6907 u32 dataSize
6908 const void* pData
6909}
6910
6911@extension("VK_EXT_inline_uniform_block") // 139
6912class VkDescriptorPoolInlineUniformBlockCreateInfoEXT {
6913 VkStructureType sType
6914 const void* pNext
6915 u32 maxInlineUniformBlockBindings
6916}
6917
Jesse Hall77726222017-09-19 14:49:27 -05006918@extension("VK_EXT_sample_locations") // 144
6919class VkSampleLocationEXT {
6920 f32 x
6921 f32 y
6922}
6923
6924@extension("VK_EXT_sample_locations") // 144
6925class VkSampleLocationsInfoEXT {
6926 VkStructureType sType
6927 const void* pNext
6928 VkSampleCountFlagBits sampleLocationsPerPixel
6929 VkExtent2D sampleLocationGridSize
6930 u32 sampleLocationsCount
6931 const VkSampleLocationEXT* pSampleLocations
6932}
6933
6934@extension("VK_EXT_sample_locations") // 144
6935class VkAttachmentSampleLocationsEXT {
6936 u32 attachmentIndex
6937 VkSampleLocationsInfoEXT sampleLocationsInfo
6938}
6939
6940@extension("VK_EXT_sample_locations") // 144
6941class VkSubpassSampleLocationsEXT {
6942 u32 subpassIndex
6943 VkSampleLocationsInfoEXT sampleLocationsInfo
6944}
6945
6946@extension("VK_EXT_sample_locations") // 144
6947class VkRenderPassSampleLocationsBeginInfoEXT {
6948 VkStructureType sType
6949 const void* pNext
6950 u32 attachmentInitialSampleLocationsCount
6951 const VkAttachmentSampleLocationsEXT* pAttachmentInitialSampleLocations
6952 u32 postSubpassSampleLocationsCount
Jesse Hall8c954d32018-01-17 22:06:20 -08006953 const VkSubpassSampleLocationsEXT* pPostSubpassSampleLocations
Jesse Hall77726222017-09-19 14:49:27 -05006954}
6955
6956@extension("VK_EXT_sample_locations") // 144
6957class VkPipelineSampleLocationsStateCreateInfoEXT {
6958 VkStructureType sType
6959 const void* pNext
6960 VkBool32 sampleLocationsEnable
6961 VkSampleLocationsInfoEXT sampleLocationsInfo
6962}
6963
6964@extension("VK_EXT_sample_locations") // 144
6965class VkPhysicalDeviceSampleLocationsPropertiesEXT {
6966 VkStructureType sType
6967 void* pNext
6968 VkSampleCountFlags sampleLocationSampleCounts
6969 VkExtent2D maxSampleLocationGridSize
6970 f32[2] sampleLocationCoordinateRange
6971 u32 sampleLocationSubPixelBits
6972 VkBool32 variableSampleLocations
6973}
6974
6975@extension("VK_EXT_sample_locations") // 144
6976class VkMultisamplePropertiesEXT {
6977 VkStructureType sType
6978 void* pNext
6979 VkExtent2D maxSampleLocationGridSize
6980}
6981
Jesse Hall9492f992017-08-28 12:10:06 -07006982@extension("VK_KHR_get_memory_requirements2") // 147
6983class VkBufferMemoryRequirementsInfo2KHR {
6984 VkStructureType sType
6985 const void* pNext
6986 VkBuffer buffer
6987}
6988
6989@extension("VK_KHR_get_memory_requirements2") // 147
6990class VkImageMemoryRequirementsInfo2KHR {
6991 VkStructureType sType
6992 const void* pNext
6993 VkImage image
6994}
6995
6996@extension("VK_KHR_get_memory_requirements2") // 147
6997class VkImageSparseMemoryRequirementsInfo2KHR {
6998 VkStructureType sType
6999 const void* pNext
7000 VkImage image
7001}
7002
7003@extension("VK_KHR_get_memory_requirements2") // 147
7004class VkMemoryRequirements2KHR {
7005 VkStructureType sType
7006 void* pNext
7007 VkMemoryRequirements memoryRequirements
7008}
7009
7010@extension("VK_KHR_get_memory_requirements2") // 147
7011class VkSparseImageMemoryRequirements2KHR {
7012 VkStructureType sType
7013 void* pNext
7014 VkSparseImageMemoryRequirements memoryRequirements
7015}
7016
Jesse Hall076f95d2017-09-20 11:34:47 -07007017@extension("VK_KHR_image_format_list") // 148
7018class VkImageFormatListCreateInfoKHR {
7019 VkStructureType sType
7020 const void* pNext
7021 u32 viewFormatCount
7022 const VkFormat* pViewFormats
7023}
7024
Jesse Hall7ba0ac72017-07-07 17:13:23 -07007025@extension("VK_EXT_blend_operation_advanced") // 149
7026class VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT {
7027 VkStructureType sType
7028 void* pNext
7029 VkBool32 advancedBlendCoherentOperations
7030}
7031
7032@extension("VK_EXT_blend_operation_advanced") // 149
7033class VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT {
7034 VkStructureType sType
7035 void* pNext
7036 u32 advancedBlendMaxColorAttachments
7037 VkBool32 advancedBlendIndependentBlend
7038 VkBool32 advancedBlendNonPremultipliedSrcColor
7039 VkBool32 advancedBlendNonPremultipliedDstColor
7040 VkBool32 advancedBlendCorrelatedOverlap
7041 VkBool32 advancedBlendAllOperations
7042}
7043
7044@extension("VK_EXT_blend_operation_advanced") // 149
7045class VkPipelineColorBlendAdvancedStateCreateInfoEXT {
7046 VkStructureType sType
7047 const void* pNext
7048 VkBool32 srcPremultiplied
7049 VkBool32 dstPremultiplied
7050 VkBlendOverlapEXT blendOverlap
7051}
7052
7053@extension("VK_NV_fragment_coverage_to_color") // 150
7054class VkPipelineCoverageToColorStateCreateInfoNV {
7055 VkStructureType sType
7056 const void* pNext
7057 VkPipelineCoverageToColorStateCreateFlagsNV flags
7058 VkBool32 coverageToColorEnable
7059 u32 coverageToColorLocation
7060}
7061
7062@extension("VK_NV_framebuffer_mixed_samples") // 153
7063class VkPipelineCoverageModulationStateCreateInfoNV {
7064 VkStructureType sType
7065 const void* pNext
7066 VkPipelineCoverageModulationStateCreateFlagsNV flags
7067 VkCoverageModulationModeNV coverageModulationMode
7068 VkBool32 coverageModulationTableEnable
7069 u32 coverageModulationTableCount
7070 const f32* pCoverageModulationTable
7071}
7072
Jesse Hall076f95d2017-09-20 11:34:47 -07007073@extension("VK_KHR_sampler_ycbcr_conversion") // 157
7074class VkSamplerYcbcrConversionCreateInfoKHR {
7075 VkStructureType sType
7076 const void* pNext
7077 VkFormat format
7078 VkSamplerYcbcrModelConversionKHR ycbcrModel
7079 VkSamplerYcbcrRangeKHR ycbcrRange
7080 VkComponentMapping components
7081 VkChromaLocationKHR xChromaOffset
7082 VkChromaLocationKHR yChromaOffset
7083 VkFilter chromaFilter
7084 VkBool32 forceExplicitReconstruction
7085}
7086
7087@extension("VK_KHR_sampler_ycbcr_conversion") // 157
7088class VkSamplerYcbcrConversionInfoKHR {
7089 VkStructureType sType
7090 const void* pNext
7091 VkSamplerYcbcrConversionKHR conversion
7092}
7093
7094@extension("VK_KHR_sampler_ycbcr_conversion") // 157
7095class VkBindImagePlaneMemoryInfoKHR {
7096 VkStructureType sType
7097 const void* pNext
7098 VkImageAspectFlagBits planeAspect
7099}
7100
7101@extension("VK_KHR_sampler_ycbcr_conversion") // 157
7102class VkImagePlaneMemoryRequirementsInfoKHR {
7103 VkStructureType sType
7104 const void* pNext
7105 VkImageAspectFlagBits planeAspect
7106}
7107
7108@extension("VK_KHR_sampler_ycbcr_conversion") // 157
7109class VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR {
7110 VkStructureType sType
7111 void* pNext
7112 VkBool32 samplerYcbcrConversion
7113}
7114
7115@extension("VK_KHR_sampler_ycbcr_conversion") // 157
7116class VkSamplerYcbcrConversionImageFormatPropertiesKHR {
7117 VkStructureType sType
7118 void* pNext
7119 u32 combinedImageSamplerDescriptorCount
7120}
7121
7122@extension("VK_KHR_bind_memory2") // 158
7123class VkBindBufferMemoryInfoKHR {
7124 VkStructureType sType
7125 const void* pNext
7126 VkBuffer buffer
7127 VkDeviceMemory memory
7128 VkDeviceSize memoryOffset
7129}
7130
7131@extension("VK_KHR_bind_memory2") // 158
7132class VkBindImageMemoryInfoKHR {
7133 VkStructureType sType
7134 const void* pNext
7135 VkImage image
7136 VkDeviceMemory memory
7137 VkDeviceSize memoryOffset
7138}
7139
Jesse Hallf47e8f82018-10-27 23:41:45 -07007140@extension("VK_EXT_image_drm_format_modifier") // 159
7141class VkDrmFormatModifierPropertiesEXT {
7142 u64 drmFormatModifier
7143 u32 drmFormatModifierPlaneCount
7144 VkFormatFeatureFlags drmFormatModifierTilingFeatures
7145}
7146
7147@extension("VK_EXT_image_drm_format_modifier") // 159
7148class VkDrmFormatModifierPropertiesListEXT {
7149 VkStructureType sType
7150 void* pNext
7151 u32 drmFormatModifierCount
7152 VkDrmFormatModifierPropertiesEXT* pDrmFormatModifierProperties
7153}
7154
7155@extension("VK_EXT_image_drm_format_modifier") // 159
7156class VkPhysicalDeviceImageDrmFormatModifierInfoEXT {
7157 VkStructureType sType
7158 const void* pNext
7159 u64 drmFormatModifier
7160 VkSharingMode sharingMode
7161 u32 queueFamilyIndexCount
7162 const u32* pQueueFamilyIndices
7163}
7164
7165@extension("VK_EXT_image_drm_format_modifier") // 159
7166class VkImageDrmFormatModifierListCreateInfoEXT {
7167 VkStructureType sType
7168 const void* pNext
7169 u32 drmFormatModifierCount
7170 const u64* pDrmFormatModifiers
7171}
7172
7173@extension("VK_EXT_image_drm_format_modifier") // 159
7174class VkImageDrmFormatModifierExplicitCreateInfoEXT {
7175 VkStructureType sType
7176 const void* pNext
7177 u64 drmFormatModifier
7178 u32 drmFormatModifierPlaneCount
7179 const VkSubresourceLayout* pPlaneLayouts
7180}
7181
7182@extension("VK_EXT_image_drm_format_modifier") // 159
7183class VkImageDrmFormatModifierPropertiesEXT {
7184 VkStructureType sType
7185 void* pNext
7186 u64 drmFormatModifier
7187}
7188
Jesse Hall77726222017-09-19 14:49:27 -05007189@extension("VK_EXT_validation_cache") // 161
7190class VkValidationCacheCreateInfoEXT {
7191 VkStructureType sType
7192 const void* pNext
7193 VkValidationCacheCreateFlagsEXT flags
7194 platform.size_t initialDataSize
7195 const void* pInitialData
7196}
7197
7198@extension("VK_EXT_validation_cache") // 161
7199class VkShaderModuleValidationCacheCreateInfoEXT {
7200 VkStructureType sType
7201 const void* pNext
7202 VkValidationCacheEXT validationCache
7203}
7204
Jesse Hall72e6a132018-04-06 13:00:44 -07007205@extension("VK_EXT_descriptor_indexing") // 162
7206class VkDescriptorSetLayoutBindingFlagsCreateInfoEXT {
7207 VkStructureType sType
7208 const void* pNext
7209 u32 bindingCount
7210 const VkDescriptorBindingFlagsEXT* pBindingFlags
7211}
7212
7213@extension("VK_EXT_descriptor_indexing") // 162
7214class VkPhysicalDeviceDescriptorIndexingFeaturesEXT {
7215 VkStructureType sType
7216 void* pNext
7217 VkBool32 shaderInputAttachmentArrayDynamicIndexing
7218 VkBool32 shaderUniformTexelBufferArrayDynamicIndexing
7219 VkBool32 shaderStorageTexelBufferArrayDynamicIndexing
7220 VkBool32 shaderUniformBufferArrayNonUniformIndexing
7221 VkBool32 shaderSampledImageArrayNonUniformIndexing
7222 VkBool32 shaderStorageBufferArrayNonUniformIndexing
7223 VkBool32 shaderStorageImageArrayNonUniformIndexing
7224 VkBool32 shaderInputAttachmentArrayNonUniformIndexing
7225 VkBool32 shaderUniformTexelBufferArrayNonUniformIndexing
7226 VkBool32 shaderStorageTexelBufferArrayNonUniformIndexing
7227 VkBool32 descriptorBindingUniformBufferUpdateAfterBind
7228 VkBool32 descriptorBindingSampledImageUpdateAfterBind
7229 VkBool32 descriptorBindingStorageImageUpdateAfterBind
7230 VkBool32 descriptorBindingStorageBufferUpdateAfterBind
7231 VkBool32 descriptorBindingUniformTexelBufferUpdateAfterBind
7232 VkBool32 descriptorBindingStorageTexelBufferUpdateAfterBind
7233 VkBool32 descriptorBindingUpdateUnusedWhilePending
7234 VkBool32 descriptorBindingPartiallyBound
7235 VkBool32 descriptorBindingVariableDescriptorCount
7236 VkBool32 runtimeDescriptorArray
7237}
7238
7239@extension("VK_EXT_descriptor_indexing") // 162
7240class VkPhysicalDeviceDescriptorIndexingPropertiesEXT {
7241 VkStructureType sType
7242 void* pNext
7243 u32 maxUpdateAfterBindDescriptorsInAllPools
7244 VkBool32 shaderUniformBufferArrayNonUniformIndexingNative
7245 VkBool32 shaderSampledImageArrayNonUniformIndexingNative
7246 VkBool32 shaderStorageBufferArrayNonUniformIndexingNative
7247 VkBool32 shaderStorageImageArrayNonUniformIndexingNative
7248 VkBool32 shaderInputAttachmentArrayNonUniformIndexingNative
7249 VkBool32 robustBufferAccessUpdateAfterBind
7250 VkBool32 quadDivergentImplicitLod
7251 u32 maxPerStageDescriptorUpdateAfterBindSamplers
7252 u32 maxPerStageDescriptorUpdateAfterBindUniformBuffers
7253 u32 maxPerStageDescriptorUpdateAfterBindStorageBuffers
7254 u32 maxPerStageDescriptorUpdateAfterBindSampledImages
7255 u32 maxPerStageDescriptorUpdateAfterBindStorageImages
7256 u32 maxPerStageDescriptorUpdateAfterBindInputAttachments
7257 u32 maxPerStageUpdateAfterBindResources
7258 u32 maxDescriptorSetUpdateAfterBindSamplers
7259 u32 maxDescriptorSetUpdateAfterBindUniformBuffers
7260 u32 maxDescriptorSetUpdateAfterBindUniformBuffersDynamic
7261 u32 maxDescriptorSetUpdateAfterBindStorageBuffers
7262 u32 maxDescriptorSetUpdateAfterBindStorageBuffersDynamic
7263 u32 maxDescriptorSetUpdateAfterBindSampledImages
7264 u32 maxDescriptorSetUpdateAfterBindStorageImages
7265 u32 maxDescriptorSetUpdateAfterBindInputAttachments
7266}
7267
7268@extension("VK_EXT_descriptor_indexing") // 162
7269class VkDescriptorSetVariableDescriptorCountAllocateInfoEXT {
7270 VkStructureType sType
7271 const void* pNext
7272 u32 descriptorSetCount
7273 const u32* pDescriptorCounts
7274}
7275
7276@extension("VK_EXT_descriptor_indexing") // 162
7277class VkDescriptorSetVariableDescriptorCountLayoutSupportEXT {
7278 VkStructureType sType
7279 void* pNext
7280 u32 maxVariableDescriptorCount
7281}
7282
Jesse Hallb5297192018-09-22 20:52:13 +02007283@extension("VK_NV_shading_rate_image") // 165
7284class VkShadingRatePaletteNV {
7285 u32 shadingRatePaletteEntryCount
7286 const VkShadingRatePaletteEntryNV* pShadingRatePaletteEntries
7287}
7288
7289@extension("VK_NV_shading_rate_image") // 165
7290class VkPipelineViewportShadingRateImageStateCreateInfoNV {
7291 VkStructureType sType
7292 const void* pNext
7293 VkBool32 shadingRateImageEnable
7294 u32 viewportCount
7295 const VkShadingRatePaletteNV* pShadingRatePalettes
7296}
7297
7298@extension("VK_NV_shading_rate_image") // 165
7299class VkPhysicalDeviceShadingRateImageFeaturesNV {
7300 VkStructureType sType
7301 void* pNext
7302 VkBool32 shadingRateImage
7303 VkBool32 shadingRateCoarseSampleOrder
7304}
7305
7306@extension("VK_NV_shading_rate_image") // 165
7307class VkPhysicalDeviceShadingRateImagePropertiesNV {
7308 VkStructureType sType
7309 void* pNext
7310 VkExtent2D shadingRateTexelSize
7311 u32 shadingRatePaletteSize
7312 u32 shadingRateMaxCoarseSamples
7313}
7314
7315@extension("VK_NV_shading_rate_image") // 165
7316class VkCoarseSampleLocationNV {
7317 u32 pixelX
7318 u32 pixelY
7319 u32 sample
7320}
7321
7322@extension("VK_NV_shading_rate_image") // 165
7323class VkCoarseSampleOrderCustomNV {
7324 VkShadingRatePaletteEntryNV shadingRate
7325 u32 sampleCount
7326 u32 sampleLocationCount
7327 const VkCoarseSampleLocationNV* pSampleLocations
7328}
7329
7330@extension("VK_NV_shading_rate_image") // 165
7331class VkPipelineViewportCoarseSampleOrderStateCreateInfoNV {
7332 VkStructureType sType
7333 const void* pNext
7334 VkCoarseSampleOrderTypeNV sampleOrderType
7335 u32 customSampleOrderCount
7336 const VkCoarseSampleOrderCustomNV* pCustomSampleOrders
7337}
7338
Jesse Hallbeea46d2018-12-04 14:38:07 -08007339@extension("VK_NV_ray_tracing") // 166
Jesse Halla363a8e2018-11-05 21:18:00 -07007340class VkRayTracingShaderGroupCreateInfoNV {
7341 VkStructureType sType
7342 const void* pNext
7343 VkRayTracingShaderGroupTypeNV type
7344 u32 generalShader
7345 u32 closestHitShader
7346 u32 anyHitShader
7347 u32 intersectionShader
Jesse Hallb5297192018-09-22 20:52:13 +02007348}
7349
Jesse Hallbeea46d2018-12-04 14:38:07 -08007350@extension("VK_NV_ray_tracing") // 166
Jesse Halla363a8e2018-11-05 21:18:00 -07007351class VkRayTracingPipelineCreateInfoNV {
7352 VkStructureType sType
7353 const void* pNext
7354 VkPipelineCreateFlags flags
7355 u32 stageCount
7356 const VkPipelineShaderStageCreateInfo* pStages
7357 u32 groupCount
7358 const VkRayTracingShaderGroupCreateInfoNV* pGroups
7359 u32 maxRecursionDepth
7360 VkPipelineLayout layout
7361 VkPipeline basePipelineHandle
7362 s32 basePipelineIndex
7363}
7364
Jesse Hallbeea46d2018-12-04 14:38:07 -08007365@extension("VK_NV_ray_tracing") // 166
Jesse Halla363a8e2018-11-05 21:18:00 -07007366class VkGeometryTrianglesNV {
Jesse Hallb5297192018-09-22 20:52:13 +02007367 VkStructureType sType
7368 const void* pNext
7369 VkBuffer vertexData
7370 VkDeviceSize vertexOffset
7371 u32 vertexCount
7372 VkDeviceSize vertexStride
7373 VkFormat vertexFormat
7374 VkBuffer indexData
7375 VkDeviceSize indexOffset
7376 u32 indexCount
7377 VkIndexType indexType
7378 VkBuffer transformData
7379 VkDeviceSize transformOffset
7380}
7381
Jesse Hallbeea46d2018-12-04 14:38:07 -08007382@extension("VK_NV_ray_tracing") // 166
Jesse Halla363a8e2018-11-05 21:18:00 -07007383class VkGeometryAABBNV {
Jesse Hallb5297192018-09-22 20:52:13 +02007384 VkStructureType sType
7385 const void* pNext
7386 VkBuffer aabbData
7387 u32 numAABBs
7388 u32 stride
7389 VkDeviceSize offset
7390}
7391
Jesse Hallbeea46d2018-12-04 14:38:07 -08007392@extension("VK_NV_ray_tracing") // 166
Jesse Halla363a8e2018-11-05 21:18:00 -07007393class VkGeometryDataNV {
7394 VkGeometryTrianglesNV triangles
7395 VkGeometryAABBNV aabbs
Jesse Hallb5297192018-09-22 20:52:13 +02007396}
7397
Jesse Hallbeea46d2018-12-04 14:38:07 -08007398@extension("VK_NV_ray_tracing") // 166
Jesse Halla363a8e2018-11-05 21:18:00 -07007399class VkGeometryNV {
Jesse Hallb5297192018-09-22 20:52:13 +02007400 VkStructureType sType
7401 const void* pNext
Jesse Halla363a8e2018-11-05 21:18:00 -07007402 VkGeometryTypeNV geometryType
7403 VkGeometryDataNV geometry
7404 VkGeometryFlagsNV flags
Jesse Hallb5297192018-09-22 20:52:13 +02007405}
7406
Jesse Hallbeea46d2018-12-04 14:38:07 -08007407@extension("VK_NV_ray_tracing") // 166
Jesse Halla363a8e2018-11-05 21:18:00 -07007408class VkAccelerationStructureInfoNV {
Jesse Hallb5297192018-09-22 20:52:13 +02007409 VkStructureType sType
7410 const void* pNext
Jesse Halla363a8e2018-11-05 21:18:00 -07007411 VkAccelerationStructureTypeNV type
7412 VkBuildAccelerationStructureFlagsNV flags
Jesse Hallb5297192018-09-22 20:52:13 +02007413 u32 instanceCount
7414 u32 geometryCount
Jesse Halla363a8e2018-11-05 21:18:00 -07007415 const VkGeometryNV* pGeometries
Jesse Hallb5297192018-09-22 20:52:13 +02007416}
7417
Jesse Hallbeea46d2018-12-04 14:38:07 -08007418@extension("VK_NV_ray_tracing") // 166
Jesse Halla363a8e2018-11-05 21:18:00 -07007419class VkAccelerationStructureCreateInfoNV {
Jesse Hallb5297192018-09-22 20:52:13 +02007420 VkStructureType sType
7421 const void* pNext
Jesse Halla363a8e2018-11-05 21:18:00 -07007422 VkDeviceSize compactedSize
7423 VkAccelerationStructureInfoNV info
7424}
7425
Jesse Hallbeea46d2018-12-04 14:38:07 -08007426@extension("VK_NV_ray_tracing") // 166
Jesse Halla363a8e2018-11-05 21:18:00 -07007427class VkBindAccelerationStructureMemoryInfoNV {
7428 VkStructureType sType
7429 const void* pNext
7430 VkAccelerationStructureNV accelerationStructure
Jesse Hallb5297192018-09-22 20:52:13 +02007431 VkDeviceMemory memory
7432 VkDeviceSize memoryOffset
7433 u32 deviceIndexCount
7434 const u32* pDeviceIndices
7435}
7436
Jesse Hallbeea46d2018-12-04 14:38:07 -08007437@extension("VK_NV_ray_tracing") // 166
Jesse Halla363a8e2018-11-05 21:18:00 -07007438class VkDescriptorAccelerationStructureInfoNV {
Jesse Hallb5297192018-09-22 20:52:13 +02007439 VkStructureType sType
7440 const void* pNext
7441 u32 accelerationStructureCount
Jesse Halla363a8e2018-11-05 21:18:00 -07007442 const VkAccelerationStructureNV* pAccelerationStructures
Jesse Hallb5297192018-09-22 20:52:13 +02007443}
7444
Jesse Hallbeea46d2018-12-04 14:38:07 -08007445@extension("VK_NV_ray_tracing") // 166
Jesse Halla363a8e2018-11-05 21:18:00 -07007446class VkAccelerationStructureMemoryRequirementsInfoNV {
Jesse Hallb5297192018-09-22 20:52:13 +02007447 VkStructureType sType
7448 const void* pNext
Jesse Halla363a8e2018-11-05 21:18:00 -07007449 VkAccelerationStructureMemoryRequirementsTypeNV type
7450 VkAccelerationStructureNV accelerationStructure
Jesse Hallb5297192018-09-22 20:52:13 +02007451}
7452
Jesse Hallbeea46d2018-12-04 14:38:07 -08007453@extension("VK_NV_ray_tracing") // 166
Jesse Halla363a8e2018-11-05 21:18:00 -07007454class VkPhysicalDeviceRaytracingPropertiesNV {
Jesse Hallb5297192018-09-22 20:52:13 +02007455 VkStructureType sType
7456 void* pNext
Jesse Halla363a8e2018-11-05 21:18:00 -07007457 u32 shaderGroupHandleSize
Jesse Hallb5297192018-09-22 20:52:13 +02007458 u32 maxRecursionDepth
Jesse Halla363a8e2018-11-05 21:18:00 -07007459 u32 maxShaderGroupStride
7460 u32 shaderGroupBaseAlignment
7461 u64 maxGeometryCount
7462 u64 maxInstanceCount
7463 u64 maxTriangleCount
7464 u32 maxDescriptorSetAccelerationStructures
Jesse Hallb5297192018-09-22 20:52:13 +02007465}
7466
7467@extension("VK_NV_representative_fragment_test") // 167
7468class VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV {
7469 VkStructureType sType
7470 void* pNext
7471 VkBool32 representativeFragmentTest
7472}
7473
7474@extension("VK_NV_representative_fragment_test") // 167
7475class VkPipelineRepresentativeFragmentTestStateCreateInfoNV {
7476 VkStructureType sType
7477 const void* pNext
7478 VkBool32 representativeFragmentTestEnable
7479}
7480
Daniel Koch09f7bf92017-10-05 00:26:58 -04007481@extension("VK_KHR_maintenance3") // 169
7482class VkPhysicalDeviceMaintenance3PropertiesKHR {
7483 VkStructureType sType
7484 void* pNext
7485 u32 maxPerSetDescriptors
7486 VkDeviceSize maxMemoryAllocationSize
7487}
7488
7489@extension("VK_KHR_maintenance3") // 169
7490class VkDescriptorSetLayoutSupportKHR {
7491 VkStructureType sType
7492 void* pNext
7493 VkBool32 supported
7494}
7495
Jesse Hall8c954d32018-01-17 22:06:20 -08007496@extension("VK_EXT_global_priority") // 175
7497class VkDeviceQueueGlobalPriorityCreateInfoEXT {
7498 VkStructureType sType
7499 const void* pNext
7500 VkQueueGlobalPriorityEXT globalPriority
7501}
7502
Jesse Halla13a3cf2018-07-09 15:51:52 -07007503@extension("VK_KHR_8bit_storage") // 178
7504class VkPhysicalDevice8BitStorageFeaturesKHR {
7505 VkStructureType sType
7506 void* pNext
7507 VkBool32 storageBuffer8BitAccess
7508 VkBool32 uniformAndStorageBuffer8BitAccess
7509 VkBool32 storagePushConstant8
7510}
7511
Jesse Hall8c954d32018-01-17 22:06:20 -08007512@extension("VK_EXT_external_memory_host") // 179
7513class VkImportMemoryHostPointerInfoEXT {
7514 VkStructureType sType
7515 const void* pNext
7516 VkExternalMemoryHandleTypeFlagBits handleType
7517 void* pHostPointer
7518}
7519
7520@extension("VK_EXT_external_memory_host") // 179
7521class VkMemoryHostPointerPropertiesEXT {
7522 VkStructureType sType
7523 void* pNext
7524 u32 memoryTypeBits
7525}
7526
7527@extension("VK_EXT_external_memory_host") // 179
7528class VkPhysicalDeviceExternalMemoryHostPropertiesEXT {
7529 VkStructureType sType
7530 void* pNext
7531 VkDeviceSize minImportedHostPointerAlignment
7532}
7533
Jesse Hall2e6853c2018-10-02 14:05:37 -07007534@extension("VK_KHR_shader_atomic_int64") // 181
7535class VkPhysicalDeviceShaderAtomicInt64FeaturesKHR {
7536 VkStructureType sType
7537 void* pNext
7538 VkBool32 shaderBufferInt64Atomics
7539 VkBool32 shaderSharedInt64Atomics
7540}
7541
Jesse Hallf47e8f82018-10-27 23:41:45 -07007542@extension("VK_EXT_calibrated_timestamps") // 185
7543class VkCalibratedTimestampInfoEXT {
7544 VkStructureType sType
7545 const void* pNext
7546 VkTimeDomainEXT timeDomain
7547}
7548
Jesse Hall72e6a132018-04-06 13:00:44 -07007549@extension("VK_AMD_shader_core_properties") // 186
7550class VkPhysicalDeviceShaderCorePropertiesAMD {
7551 VkStructureType sType
7552 void* pNext
7553 u32 shaderEngineCount
7554 u32 shaderArraysPerEngineCount
7555 u32 computeUnitsPerShaderArray
7556 u32 simdPerComputeUnit
7557 u32 wavefrontsPerSimd
7558 u32 wavefrontSize
7559 u32 sgprsPerSimd
7560 u32 minSgprAllocation
7561 u32 maxSgprAllocation
7562 u32 sgprAllocationGranularity
7563 u32 vgprsPerSimd
7564 u32 minVgprAllocation
7565 u32 maxVgprAllocation
7566 u32 vgprAllocationGranularity
7567}
7568
Jesse Halla363a8e2018-11-05 21:18:00 -07007569@extension("VK_AMD_memory_overallocation_behavior") // 190
7570class VkDeviceMemoryOverallocationCreateInfoAMD {
7571 VkStructureType sType
7572 const void* pNext
7573 VkMemoryOverallocationBehaviorAMD overallocationBehavior
7574}
7575
Jesse Hall72e6a132018-04-06 13:00:44 -07007576@extension("VK_EXT_vertex_attribute_divisor") // 191
7577class VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT {
7578 VkStructureType sType
7579 void* pNext
7580 u32 maxVertexAttribDivisor
7581}
7582
7583@extension("VK_EXT_vertex_attribute_divisor") // 191
7584class VkVertexInputBindingDivisorDescriptionEXT {
7585 u32 binding
7586 u32 divisor
7587}
7588
7589@extension("VK_EXT_vertex_attribute_divisor") // 191
7590class VkPipelineVertexInputDivisorStateCreateInfoEXT {
7591 VkStructureType sType
7592 const void* pNext
7593 u32 vertexBindingDivisorCount
7594 const VkVertexInputBindingDivisorDescriptionEXT* pVertexBindingDivisors
7595}
7596
Jesse Hall4af6c462018-09-10 09:04:25 -07007597@extension("VK_EXT_vertex_attribute_divisor") // 191
7598class VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT {
7599 VkStructureType sType
7600 void* pNext
7601 VkBool32 vertexAttributeInstanceRateDivisor
7602 VkBool32 vertexAttributeInstanceRateZeroDivisor
7603}
7604
Jesse Hall2e6853c2018-10-02 14:05:37 -07007605@extension("VK_KHR_driver_properties") // 197
7606class VkConformanceVersionKHR {
7607 u8 major
7608 u8 minor
7609 u8 subminor
7610 u8 patch
7611}
7612
7613@extension("VK_KHR_driver_properties") // 197
7614class VkPhysicalDeviceDriverPropertiesKHR {
7615 VkStructureType sType
7616 void* pNext
Jesse Hallf47e8f82018-10-27 23:41:45 -07007617 VkDriverIdKHR driverID
Jesse Hall2e6853c2018-10-02 14:05:37 -07007618 char[VK_MAX_DRIVER_NAME_SIZE_KHR] driverName
7619 char[VK_MAX_DRIVER_INFO_SIZE_KHR] driverInfo
7620 VkConformanceVersionKHR conformanceVersion
7621}
7622
Jesse Halla9d30ff2018-12-04 14:55:50 -08007623@extension("VK_KHR_shader_float_controls") // 198
7624class VkPhysicalDeviceFloatControlsPropertiesKHR {
7625 VkStructureType sType
7626 void* pNext
7627 VkBool32 separateDenormSettings
7628 VkBool32 separateRoundingModeSettings
7629 VkBool32 shaderSignedZeroInfNanPreserveFloat16
7630 VkBool32 shaderSignedZeroInfNanPreserveFloat32
7631 VkBool32 shaderSignedZeroInfNanPreserveFloat64
7632 VkBool32 shaderDenormPreserveFloat16
7633 VkBool32 shaderDenormPreserveFloat32
7634 VkBool32 shaderDenormPreserveFloat64
7635 VkBool32 shaderDenormFlushToZeroFloat16
7636 VkBool32 shaderDenormFlushToZeroFloat32
7637 VkBool32 shaderDenormFlushToZeroFloat64
7638 VkBool32 shaderRoundingModeRTEFloat16
7639 VkBool32 shaderRoundingModeRTEFloat32
7640 VkBool32 shaderRoundingModeRTEFloat64
7641 VkBool32 shaderRoundingModeRTZFloat16
7642 VkBool32 shaderRoundingModeRTZFloat32
7643 VkBool32 shaderRoundingModeRTZFloat64
7644}
7645
Jesse Hallb5297192018-09-22 20:52:13 +02007646@extension("VK_NV_compute_shader_derivatives") // 202
7647class VkPhysicalDeviceComputeShaderDerivativesFeaturesNV {
7648 VkStructureType sType
7649 void* pNext
7650 VkBool32 computeDerivativeGroupQuads
7651 VkBool32 computeDerivativeGroupLinear
7652}
7653
7654@extension("VK_NV_mesh_shader") // 203
7655class VkPhysicalDeviceMeshShaderFeaturesNV {
7656 VkStructureType sType
7657 void* pNext
7658 VkBool32 taskShader
7659 VkBool32 meshShader
7660}
7661
7662@extension("VK_NV_mesh_shader") // 203
7663class VkPhysicalDeviceMeshShaderPropertiesNV {
7664 VkStructureType sType
7665 void* pNext
7666 u32 maxDrawMeshTasksCount
7667 u32 maxTaskWorkGroupInvocations
7668 u32[3] maxTaskWorkGroupSize
7669 u32 maxTaskTotalMemorySize
7670 u32 maxTaskOutputCount
7671 u32 maxMeshWorkGroupInvocations
7672 u32[3] maxMeshWorkGroupSize
7673 u32 maxMeshTotalMemorySize
7674 u32 maxMeshOutputVertices
7675 u32 maxMeshOutputPrimitives
7676 u32 maxMeshMultiviewViewCount
7677 u32 meshOutputPerVertexGranularity
7678 u32 meshOutputPerPrimitiveGranularity
7679}
7680
7681@extension("VK_NV_mesh_shader") // 203
7682class VkDrawMeshTasksIndirectCommandNV {
7683 u32 taskCount
7684 u32 firstTask
7685}
7686
7687@extension("VK_NV_fragment_shader_barycentric") // 204
7688class VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV {
7689 VkStructureType sType
7690 void* pNext
7691 VkBool32 fragmentShaderBarycentric
7692}
7693
7694@extension("VK_NV_shader_image_footprint") // 205
7695class VkPhysicalDeviceShaderImageFootprintFeaturesNV {
7696 VkStructureType sType
7697 void* pNext
7698 VkBool32 imageFootprint
7699}
7700
7701@extension("VK_NV_scissor_exclusive") // 206
7702class VkPipelineViewportExclusiveScissorStateCreateInfoNV {
7703 VkStructureType sType
7704 const void* pNext
7705 u32 exclusiveScissorCount
7706 const VkRect2D* pExclusiveScissors
7707}
7708
7709@extension("VK_NV_scissor_exclusive") // 206
7710class VkPhysicalDeviceExclusiveScissorFeaturesNV {
7711 VkStructureType sType
7712 void* pNext
7713 VkBool32 exclusiveScissor
7714}
7715
Jesse Hall115df0c2018-07-30 12:00:59 -07007716@extension("VK_NV_device_diagnostic_checkpoints") // 207
7717class VkQueueFamilyCheckpointPropertiesNV {
7718 VkStructureType sType
7719 void* pNext
7720 VkPipelineStageFlags checkpointExecutionStageMask
7721}
7722
7723@extension("VK_NV_device_diagnostic_checkpoints") // 207
7724class VkCheckpointDataNV {
7725 VkStructureType sType
7726 void* pNext
7727 VkPipelineStageFlagBits stage
7728 void* pCheckpointMarker
7729}
7730
Jesse Hall4af6c462018-09-10 09:04:25 -07007731@extension("VK_KHR_vulkan_memory_model") // 212
7732class VkPhysicalDeviceVulkanMemoryModelFeaturesKHR {
7733 VkStructureType sType
7734 void* pNext
7735 VkBool32 vulkanMemoryModel
7736 VkBool32 vulkanMemoryModelDeviceScope
7737}
7738
Jesse Hallf47e8f82018-10-27 23:41:45 -07007739@extension("VK_EXT_pci_bus_info") // 213
7740class VkPhysicalDevicePCIBusInfoPropertiesEXT {
7741 VkStructureType sType
7742 void* pNext
Jesse Hall49a87a22018-12-19 15:19:56 -08007743 u32 pciDomain
7744 u32 pciBus
7745 u32 pciDevice
7746 u32 pciFunction
Jesse Hallf47e8f82018-10-27 23:41:45 -07007747}
7748
Jesse Hall497c46f2018-10-08 12:52:48 -07007749@extension("VK_FUCHSIA_imagepipe_surface") // 215
7750class VkImagePipeSurfaceCreateInfoFUCHSIA {
7751 VkStructureType sType
7752 const void* pNext
7753 VkImagePipeSurfaceCreateFlagsFUCHSIA flags
7754 platform.zx_handle_t imagePipeHandle
7755}
7756
Jesse Hall48514722018-12-04 14:44:42 -08007757@extension("VK_EXT_fragment_density_map") // 219
7758class VkPhysicalDeviceFragmentDensityMapFeaturesEXT {
7759 VkStructureType sType
7760 void* pNext
7761 VkBool32 fragmentDensityMap
7762 VkBool32 fragmentDensityMapDynamic
7763 VkBool32 fragmentDensityMapNonSubsampledImages
7764}
7765
7766@extension("VK_EXT_fragment_density_map") // 219
7767class VkPhysicalDeviceFragmentDensityMapPropertiesEXT {
7768 VkStructureType sType
7769 void* pNext
7770 VkExtent2D minFragmentDensityTexelSize
7771 VkExtent2D maxFragmentDensityTexelSize
7772 VkBool32 fragmentDensityInvocations
7773}
7774
7775@extension("VK_EXT_fragment_density_map") // 219
7776class VkRenderPassFragmentDensityMapCreateInfoEXT {
7777 VkStructureType sType
7778 const void* pNext
7779 VkAttachmentReference fragmentDensityMapAttachment
7780}
7781
Jesse Hall89bde782018-11-12 08:06:07 -08007782@extension("VK_EXT_scalar_block_layout") // 222
7783class VkPhysicalDeviceScalarBlockLayoutFeaturesEXT {
7784 VkStructureType sType
7785 void* pNext
7786 VkBool32 scalarBlockLayout
7787}
7788
7789@extension("VK_EXT_separate_stencil_usage") // 247
7790class VkImageStencilUsageCreateInfoEXT {
7791 VkStructureType sType
7792 const void* pNext
7793 VkImageUsageFlags stencilUsage
7794}
7795
Daniel Koch09f7bf92017-10-05 00:26:58 -04007796
Jesse Halld27f6aa2015-08-15 17:58:48 -07007797////////////////
7798// Commands //
7799////////////////
7800
7801// Function pointers. TODO: add support for function pointers.
7802
7803@external type void* PFN_vkVoidFunction
7804@pfn cmd void vkVoidFunction() {
7805}
7806
Jesse Hall3fbc8562015-11-29 22:10:52 -08007807@external type void* PFN_vkAllocationFunction
7808@pfn cmd void* vkAllocationFunction(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007809 void* pUserData,
7810 platform.size_t size,
7811 platform.size_t alignment,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007812 VkSystemAllocationScope allocationScope) {
Jesse Hall03b6fe12015-11-24 12:44:21 -08007813 return ?
7814}
7815
Jesse Hall3fbc8562015-11-29 22:10:52 -08007816@external type void* PFN_vkReallocationFunction
7817@pfn cmd void* vkReallocationFunction(
Jesse Hall03b6fe12015-11-24 12:44:21 -08007818 void* pUserData,
7819 void* pOriginal,
7820 platform.size_t size,
7821 platform.size_t alignment,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007822 VkSystemAllocationScope allocationScope) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007823 return ?
7824}
7825
7826@external type void* PFN_vkFreeFunction
7827@pfn cmd void vkFreeFunction(
7828 void* pUserData,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007829 void* pMemory) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007830}
7831
Jesse Hall3fbc8562015-11-29 22:10:52 -08007832@external type void* PFN_vkInternalAllocationNotification
7833@pfn cmd void vkInternalAllocationNotification(
Jesse Hall03b6fe12015-11-24 12:44:21 -08007834 void* pUserData,
7835 platform.size_t size,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007836 VkInternalAllocationType allocationType,
7837 VkSystemAllocationScope allocationScope) {
Jesse Hall03b6fe12015-11-24 12:44:21 -08007838}
7839
7840@external type void* PFN_vkInternalFreeNotification
7841@pfn cmd void vkInternalFreeNotification(
7842 void* pUserData,
7843 platform.size_t size,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007844 VkInternalAllocationType allocationType,
7845 VkSystemAllocationScope allocationScope) {
Jesse Hall03b6fe12015-11-24 12:44:21 -08007846}
Jesse Halld27f6aa2015-08-15 17:58:48 -07007847
7848// Global functions
7849
7850@threadSafety("system")
7851cmd VkResult vkCreateInstance(
7852 const VkInstanceCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007853 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007854 VkInstance* pInstance) {
7855 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO)
7856
7857 instance := ?
7858 pInstance[0] = instance
7859 State.Instances[instance] = new!InstanceObject()
7860
Jesse Hall3dd678a2016-01-08 21:52:01 -08007861 layers := pCreateInfo.ppEnabledLayerNames[0:pCreateInfo.enabledLayerCount]
7862 extensions := pCreateInfo.ppEnabledExtensionNames[0:pCreateInfo.enabledExtensionCount]
Jesse Halld27f6aa2015-08-15 17:58:48 -07007863
7864 return ?
7865}
7866
7867@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007868cmd void vkDestroyInstance(
Jesse Hall03b6fe12015-11-24 12:44:21 -08007869 VkInstance instance,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007870 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007871 instanceObject := GetInstance(instance)
7872
7873 State.Instances[instance] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07007874}
7875
7876@threadSafety("system")
7877cmd VkResult vkEnumeratePhysicalDevices(
7878 VkInstance instance,
7879 u32* pPhysicalDeviceCount,
7880 VkPhysicalDevice* pPhysicalDevices) {
7881 instanceObject := GetInstance(instance)
7882
7883 physicalDeviceCount := as!u32(?)
7884 pPhysicalDeviceCount[0] = physicalDeviceCount
7885 physicalDevices := pPhysicalDevices[0:physicalDeviceCount]
7886
7887 for i in (0 .. physicalDeviceCount) {
7888 physicalDevice := ?
7889 physicalDevices[i] = physicalDevice
7890 if !(physicalDevice in State.PhysicalDevices) {
7891 State.PhysicalDevices[physicalDevice] = new!PhysicalDeviceObject(instance: instance)
7892 }
7893 }
7894
7895 return ?
7896}
7897
7898cmd PFN_vkVoidFunction vkGetDeviceProcAddr(
7899 VkDevice device,
7900 const char* pName) {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007901 if device != NULL_HANDLE {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007902 device := GetDevice(device)
7903 }
7904
7905 return ?
7906}
7907
7908cmd PFN_vkVoidFunction vkGetInstanceProcAddr(
7909 VkInstance instance,
7910 const char* pName) {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007911 if instance != NULL_HANDLE {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007912 instanceObject := GetInstance(instance)
7913 }
7914
7915 return ?
7916}
7917
Jesse Hall606a54e2015-11-19 22:17:28 -08007918cmd void vkGetPhysicalDeviceProperties(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007919 VkPhysicalDevice physicalDevice,
7920 VkPhysicalDeviceProperties* pProperties) {
7921 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
7922
7923 properties := ?
7924 pProperties[0] = properties
Jesse Halld27f6aa2015-08-15 17:58:48 -07007925}
7926
Jesse Hall606a54e2015-11-19 22:17:28 -08007927cmd void vkGetPhysicalDeviceQueueFamilyProperties(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007928 VkPhysicalDevice physicalDevice,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007929 u32* pQueueFamilyPropertyCount,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007930 VkQueueFamilyProperties* pQueueFamilyProperties) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007931 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007932 // TODO: Figure out how to express fetch-count-or-properties
7933 // This version fails 'apic validate' with 'fence not allowed in
7934 // *semantic.Branch'. Other attempts have failed with the same or other
7935 // errors.
7936 // if pQueueFamilyProperties != null {
7937 // queuesProperties := pQueueFamilyProperties[0:pCount[0]]
7938 // for i in (0 .. pCount[0]) {
7939 // queueProperties := as!VkQueueFamilyProperties(?)
7940 // queuesProperties[i] = queueProperties
7941 // }
7942 // } else {
7943 // count := ?
7944 // pCount[0] = count
7945 // }
Jesse Halld27f6aa2015-08-15 17:58:48 -07007946}
7947
Jesse Hall606a54e2015-11-19 22:17:28 -08007948cmd void vkGetPhysicalDeviceMemoryProperties(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007949 VkPhysicalDevice physicalDevice,
7950 VkPhysicalDeviceMemoryProperties* pMemoryProperties) {
7951 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
7952
7953 memoryProperties := ?
7954 pMemoryProperties[0] = memoryProperties
Jesse Halld27f6aa2015-08-15 17:58:48 -07007955}
7956
Jesse Hall606a54e2015-11-19 22:17:28 -08007957cmd void vkGetPhysicalDeviceFeatures(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007958 VkPhysicalDevice physicalDevice,
7959 VkPhysicalDeviceFeatures* pFeatures) {
7960 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
7961
7962 features := ?
7963 pFeatures[0] = features
Jesse Halld27f6aa2015-08-15 17:58:48 -07007964}
7965
Jesse Hall606a54e2015-11-19 22:17:28 -08007966cmd void vkGetPhysicalDeviceFormatProperties(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007967 VkPhysicalDevice physicalDevice,
7968 VkFormat format,
7969 VkFormatProperties* pFormatProperties) {
7970 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
7971
7972 formatProperties := ?
7973 pFormatProperties[0] = formatProperties
Jesse Halld27f6aa2015-08-15 17:58:48 -07007974}
7975
Jesse Halla9e57032015-11-30 01:03:10 -08007976cmd VkResult vkGetPhysicalDeviceImageFormatProperties(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007977 VkPhysicalDevice physicalDevice,
7978 VkFormat format,
7979 VkImageType type,
7980 VkImageTiling tiling,
7981 VkImageUsageFlags usage,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007982 VkImageCreateFlags flags,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007983 VkImageFormatProperties* pImageFormatProperties) {
7984 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
7985
7986 imageFormatProperties := ?
7987 pImageFormatProperties[0] = imageFormatProperties
Jesse Halla9e57032015-11-30 01:03:10 -08007988
7989 return ?
Jesse Halld27f6aa2015-08-15 17:58:48 -07007990}
7991
Jesse Halld27f6aa2015-08-15 17:58:48 -07007992
7993// Device functions
7994
7995@threadSafety("system")
7996cmd VkResult vkCreateDevice(
7997 VkPhysicalDevice physicalDevice,
7998 const VkDeviceCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007999 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008000 VkDevice* pDevice) {
8001 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO)
8002 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
8003
8004 device := ?
8005 pDevice[0] = device
8006 State.Devices[device] = new!DeviceObject(physicalDevice: physicalDevice)
8007
8008 return ?
8009}
8010
8011@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008012cmd void vkDestroyDevice(
Jesse Hall03b6fe12015-11-24 12:44:21 -08008013 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008014 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008015 deviceObject := GetDevice(device)
8016
8017 State.Devices[device] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008018}
8019
8020
8021// Extension discovery functions
8022
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008023cmd VkResult vkEnumerateInstanceLayerProperties(
Jesse Hall03b6fe12015-11-24 12:44:21 -08008024 u32* pPropertyCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008025 VkLayerProperties* pProperties) {
8026 count := as!u32(?)
Jesse Hall03b6fe12015-11-24 12:44:21 -08008027 pPropertyCount[0] = count
Jesse Halld27f6aa2015-08-15 17:58:48 -07008028
8029 properties := pProperties[0:count]
8030 for i in (0 .. count) {
8031 property := ?
8032 properties[i] = property
8033 }
8034
8035 return ?
8036}
8037
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008038cmd VkResult vkEnumerateInstanceExtensionProperties(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008039 const char* pLayerName,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008040 u32* pPropertyCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008041 VkExtensionProperties* pProperties) {
8042 count := as!u32(?)
Jesse Hall03b6fe12015-11-24 12:44:21 -08008043 pPropertyCount[0] = count
Jesse Halld27f6aa2015-08-15 17:58:48 -07008044
8045 properties := pProperties[0:count]
8046 for i in (0 .. count) {
8047 property := ?
8048 properties[i] = property
8049 }
8050
8051 return ?
8052}
8053
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008054cmd VkResult vkEnumerateDeviceLayerProperties(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008055 VkPhysicalDevice physicalDevice,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008056 u32* pPropertyCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008057 VkLayerProperties* pProperties) {
8058 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
8059 count := as!u32(?)
Jesse Hall03b6fe12015-11-24 12:44:21 -08008060 pPropertyCount[0] = count
Jesse Halld27f6aa2015-08-15 17:58:48 -07008061
8062 properties := pProperties[0:count]
8063 for i in (0 .. count) {
8064 property := ?
8065 properties[i] = property
8066 }
8067
8068 return ?
8069}
8070
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008071cmd VkResult vkEnumerateDeviceExtensionProperties(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008072 VkPhysicalDevice physicalDevice,
8073 const char* pLayerName,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008074 u32* pPropertyCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008075 VkExtensionProperties* pProperties) {
8076 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
8077
8078 count := as!u32(?)
Jesse Hall03b6fe12015-11-24 12:44:21 -08008079 pPropertyCount[0] = count
Jesse Halld27f6aa2015-08-15 17:58:48 -07008080
8081 properties := pProperties[0:count]
8082 for i in (0 .. count) {
8083 property := ?
8084 properties[i] = property
8085 }
8086
8087 return ?
8088}
8089
8090
8091// Queue functions
8092
8093@threadSafety("system")
Jesse Hall606a54e2015-11-19 22:17:28 -08008094cmd void vkGetDeviceQueue(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008095 VkDevice device,
8096 u32 queueFamilyIndex,
8097 u32 queueIndex,
8098 VkQueue* pQueue) {
8099 deviceObject := GetDevice(device)
8100
8101 queue := ?
8102 pQueue[0] = queue
8103
8104 if !(queue in State.Queues) {
8105 State.Queues[queue] = new!QueueObject(device: device)
8106 }
Jesse Halld27f6aa2015-08-15 17:58:48 -07008107}
8108
8109@threadSafety("app")
8110cmd VkResult vkQueueSubmit(
8111 VkQueue queue,
Jesse Halla366a512015-11-19 22:30:07 -08008112 u32 submitCount,
Jesse Hallb00daad2015-11-29 19:46:20 -08008113 const VkSubmitInfo* pSubmits,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008114 VkFence fence) {
8115 queueObject := GetQueue(queue)
8116
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008117 if fence != NULL_HANDLE {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008118 fenceObject := GetFence(fence)
8119 assert(fenceObject.device == queueObject.device)
8120 }
8121
Jesse Hall3fbc8562015-11-29 22:10:52 -08008122 // commandBuffers := pcommandBuffers[0:commandBufferCount]
8123 // for i in (0 .. commandBufferCount) {
8124 // commandBuffer := commandBuffers[i]
8125 // commandBufferObject := GetCommandBuffer(commandBuffer)
8126 // assert(commandBufferObject.device == queueObject.device)
Jesse Halla366a512015-11-19 22:30:07 -08008127 //
Jesse Hall3fbc8562015-11-29 22:10:52 -08008128 // validate("QueueCheck", commandBufferObject.queueFlags in queueObject.flags,
8129 // "vkQueueSubmit: enqueued commandBuffer requires missing queue capabilities.")
Jesse Halla366a512015-11-19 22:30:07 -08008130 // }
Jesse Halld27f6aa2015-08-15 17:58:48 -07008131
8132 return ?
8133}
8134
8135@threadSafety("system")
8136cmd VkResult vkQueueWaitIdle(
8137 VkQueue queue) {
8138 queueObject := GetQueue(queue)
8139
8140 return ?
8141}
8142
8143@threadSafety("system")
8144cmd VkResult vkDeviceWaitIdle(
8145 VkDevice device) {
8146 deviceObject := GetDevice(device)
8147
8148 return ?
8149}
8150
8151
8152// Memory functions
8153
8154@threadSafety("system")
Jesse Hall3fbc8562015-11-29 22:10:52 -08008155cmd VkResult vkAllocateMemory(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008156 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008157 const VkMemoryAllocateInfo* pAllocateInfo,
8158 const VkAllocationCallbacks* pAllocator,
8159 VkDeviceMemory* pMemory) {
Jesse Hallf4ab2b12015-11-30 16:04:55 -08008160 assert(pAllocateInfo.sType == VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008161 deviceObject := GetDevice(device)
8162
Jesse Hall3fbc8562015-11-29 22:10:52 -08008163 memory := ?
8164 pMemory[0] = memory
8165 State.DeviceMemories[memory] = new!DeviceMemoryObject(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008166 device: device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008167 allocationSize: pAllocateInfo[0].allocationSize)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008168
8169 return ?
8170}
8171
8172@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008173cmd void vkFreeMemory(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008174 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008175 VkDeviceMemory memory,
8176 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008177 deviceObject := GetDevice(device)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008178 memoryObject := GetDeviceMemory(memory)
8179 assert(memoryObject.device == device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008180
8181 // Check that no objects are still bound before freeing.
Jesse Hall3fbc8562015-11-29 22:10:52 -08008182 validate("MemoryCheck", len(memoryObject.boundObjects) == 0,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008183 "vkFreeMemory: objects still bound")
Jesse Hall3fbc8562015-11-29 22:10:52 -08008184 validate("MemoryCheck", len(memoryObject.boundCommandBuffers) == 0,
8185 "vkFreeMemory: commandBuffers still bound")
8186 State.DeviceMemories[memory] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008187}
8188
8189@threadSafety("app")
8190cmd VkResult vkMapMemory(
8191 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008192 VkDeviceMemory memory,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008193 VkDeviceSize offset,
8194 VkDeviceSize size,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008195 VkMemoryMapFlags flags,
8196 void** ppData) {
8197 deviceObject := GetDevice(device)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008198 memoryObject := GetDeviceMemory(memory)
8199 assert(memoryObject.device == device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008200
8201 assert(flags == as!VkMemoryMapFlags(0))
Jesse Hall3fbc8562015-11-29 22:10:52 -08008202 assert((offset + size) <= memoryObject.allocationSize)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008203
8204 return ?
8205}
8206
8207@threadSafety("app")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008208cmd void vkUnmapMemory(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008209 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008210 VkDeviceMemory memory) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008211 deviceObject := GetDevice(device)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008212 memoryObject := GetDeviceMemory(memory)
8213 assert(memoryObject.device == device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008214}
8215
8216cmd VkResult vkFlushMappedMemoryRanges(
8217 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008218 u32 memoryRangeCount
8219 const VkMappedMemoryRange* pMemoryRanges) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008220 deviceObject := GetDevice(device)
8221
Jesse Hall3fbc8562015-11-29 22:10:52 -08008222 memoryRanges := pMemoryRanges[0:memoryRangeCount]
8223 for i in (0 .. memoryRangeCount) {
8224 memoryRange := memoryRanges[i]
8225 memoryObject := GetDeviceMemory(memoryRange.memory)
8226 assert(memoryObject.device == device)
8227 assert((memoryRange.offset + memoryRange.size) <= memoryObject.allocationSize)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008228 }
8229
8230 return ?
8231}
8232
8233cmd VkResult vkInvalidateMappedMemoryRanges(
8234 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008235 u32 memoryRangeCount,
8236 const VkMappedMemoryRange* pMemoryRanges) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008237 deviceObject := GetDevice(device)
8238
Jesse Hall3fbc8562015-11-29 22:10:52 -08008239 memoryRanges := pMemoryRanges[0:memoryRangeCount]
8240 for i in (0 .. memoryRangeCount) {
8241 memoryRange := memoryRanges[i]
8242 memoryObject := GetDeviceMemory(memoryRange.memory)
8243 assert(memoryObject.device == device)
8244 assert((memoryRange.offset + memoryRange.size) <= memoryObject.allocationSize)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008245 }
8246
8247 return ?
8248}
8249
8250
8251// Memory management API functions
8252
Jesse Hall606a54e2015-11-19 22:17:28 -08008253cmd void vkGetDeviceMemoryCommitment(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008254 VkDevice device,
8255 VkDeviceMemory memory,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008256 VkDeviceSize* pCommittedMemoryInBytes) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008257 deviceObject := GetDevice(device)
8258
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008259 if memory != NULL_HANDLE {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008260 memoryObject := GetDeviceMemory(memory)
8261 assert(memoryObject.device == device)
8262 }
8263
8264 committedMemoryInBytes := ?
8265 pCommittedMemoryInBytes[0] = committedMemoryInBytes
Jesse Halld27f6aa2015-08-15 17:58:48 -07008266}
8267
Jesse Hall606a54e2015-11-19 22:17:28 -08008268cmd void vkGetBufferMemoryRequirements(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008269 VkDevice device,
8270 VkBuffer buffer,
8271 VkMemoryRequirements* pMemoryRequirements) {
8272 deviceObject := GetDevice(device)
8273 bufferObject := GetBuffer(buffer)
8274 assert(bufferObject.device == device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008275}
8276
8277cmd VkResult vkBindBufferMemory(
8278 VkDevice device,
8279 VkBuffer buffer,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008280 VkDeviceMemory memory,
8281 VkDeviceSize memoryOffset) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008282 deviceObject := GetDevice(device)
8283 bufferObject := GetBuffer(buffer)
8284 assert(bufferObject.device == device)
8285
8286 // Unbind buffer from previous memory object, if not VK_NULL_HANDLE.
Jesse Hall3fbc8562015-11-29 22:10:52 -08008287 if bufferObject.memory != NULL_HANDLE {
8288 memoryObject := GetDeviceMemory(bufferObject.memory)
8289 memoryObject.boundObjects[as!u64(buffer)] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008290 }
8291
8292 // Bind buffer to given memory object, if not VK_NULL_HANDLE.
Jesse Hall3fbc8562015-11-29 22:10:52 -08008293 if memory != NULL_HANDLE {
8294 memoryObject := GetDeviceMemory(memory)
8295 assert(memoryObject.device == device)
8296 memoryObject.boundObjects[as!u64(buffer)] = memoryOffset
Jesse Halld27f6aa2015-08-15 17:58:48 -07008297 }
Jesse Hall3fbc8562015-11-29 22:10:52 -08008298 bufferObject.memory = memory
8299 bufferObject.memoryOffset = memoryOffset
Jesse Halld27f6aa2015-08-15 17:58:48 -07008300
8301 return ?
8302}
8303
Jesse Hall606a54e2015-11-19 22:17:28 -08008304cmd void vkGetImageMemoryRequirements(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008305 VkDevice device,
8306 VkImage image,
8307 VkMemoryRequirements* pMemoryRequirements) {
8308 deviceObject := GetDevice(device)
8309 imageObject := GetImage(image)
8310 assert(imageObject.device == device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008311}
8312
8313cmd VkResult vkBindImageMemory(
8314 VkDevice device,
8315 VkImage image,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008316 VkDeviceMemory memory,
8317 VkDeviceSize memoryOffset) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008318 deviceObject := GetDevice(device)
8319 imageObject := GetImage(image)
8320 assert(imageObject.device == device)
8321
8322 // Unbind image from previous memory object, if not VK_NULL_HANDLE.
Jesse Hall3fbc8562015-11-29 22:10:52 -08008323 if imageObject.memory != NULL_HANDLE {
8324 memoryObject := GetDeviceMemory(imageObject.memory)
8325 memoryObject.boundObjects[as!u64(image)] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008326 }
8327
8328 // Bind image to given memory object, if not VK_NULL_HANDLE.
Jesse Hall3fbc8562015-11-29 22:10:52 -08008329 if memory != NULL_HANDLE {
8330 memoryObject := GetDeviceMemory(memory)
8331 assert(memoryObject.device == device)
8332 memoryObject.boundObjects[as!u64(image)] = memoryOffset
Jesse Halld27f6aa2015-08-15 17:58:48 -07008333 }
Jesse Hall3fbc8562015-11-29 22:10:52 -08008334 imageObject.memory = memory
8335 imageObject.memoryOffset = memoryOffset
Jesse Halld27f6aa2015-08-15 17:58:48 -07008336
8337 return ?
8338}
8339
Jesse Hall606a54e2015-11-19 22:17:28 -08008340cmd void vkGetImageSparseMemoryRequirements(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008341 VkDevice device,
8342 VkImage image,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008343 u32* pSparseMemoryRequirementCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008344 VkSparseImageMemoryRequirements* pSparseMemoryRequirements) {
8345 deviceObject := GetDevice(device)
8346 imageObject := GetImage(image)
8347 assert(imageObject.device == device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008348}
8349
Jesse Hall606a54e2015-11-19 22:17:28 -08008350cmd void vkGetPhysicalDeviceSparseImageFormatProperties(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008351 VkPhysicalDevice physicalDevice,
8352 VkFormat format,
8353 VkImageType type,
Jesse Hall091ed9e2015-11-30 00:55:29 -08008354 VkSampleCountFlagBits samples,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008355 VkImageUsageFlags usage,
8356 VkImageTiling tiling,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008357 u32* pPropertyCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008358 VkSparseImageFormatProperties* pProperties) {
8359 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008360}
8361
Jesse Halla6429252015-11-29 18:59:42 -08008362cmd VkResult vkQueueBindSparse(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008363 VkQueue queue,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008364 u32 bindInfoCount,
Jesse Halla6429252015-11-29 18:59:42 -08008365 const VkBindSparseInfo* pBindInfo,
8366 VkFence fence) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008367 queueObject := GetQueue(queue)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008368
8369 return ?
8370}
8371
8372
8373// Fence functions
8374
8375@threadSafety("system")
8376cmd VkResult vkCreateFence(
8377 VkDevice device,
8378 const VkFenceCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008379 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008380 VkFence* pFence) {
8381 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_FENCE_CREATE_INFO)
8382 deviceObject := GetDevice(device)
8383
8384 fence := ?
8385 pFence[0] = fence
8386 State.Fences[fence] = new!FenceObject(
Jesse Halld8bade02015-11-24 10:24:18 -08008387 device: device, signaled: (pCreateInfo.flags == as!VkFenceCreateFlags(VK_FENCE_CREATE_SIGNALED_BIT)))
Jesse Halld27f6aa2015-08-15 17:58:48 -07008388
8389 return ?
8390}
8391
8392@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008393cmd void vkDestroyFence(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008394 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008395 VkFence fence,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008396 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008397 deviceObject := GetDevice(device)
8398 fenceObject := GetFence(fence)
8399 assert(fenceObject.device == device)
8400
8401 State.Fences[fence] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008402}
8403
8404@threadSafety("system")
8405cmd VkResult vkResetFences(
8406 VkDevice device,
8407 u32 fenceCount,
8408 const VkFence* pFences) {
8409 deviceObject := GetDevice(device)
8410
8411 fences := pFences[0:fenceCount]
8412 for i in (0 .. fenceCount) {
8413 fence := fences[i]
8414 fenceObject := GetFence(fence)
8415 assert(fenceObject.device == device)
8416 fenceObject.signaled = false
8417 }
8418
8419 return ?
8420}
8421
8422@threadSafety("system")
8423cmd VkResult vkGetFenceStatus(
8424 VkDevice device,
8425 VkFence fence) {
8426 deviceObject := GetDevice(device)
8427 fenceObject := GetFence(fence)
8428 assert(fenceObject.device == device)
8429
8430 return ?
8431}
8432
8433@threadSafety("system")
8434cmd VkResult vkWaitForFences(
8435 VkDevice device,
8436 u32 fenceCount,
8437 const VkFence* pFences,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008438 VkBool32 waitAll,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008439 u64 timeout) { /// timeout in nanoseconds
8440 deviceObject := GetDevice(device)
8441
8442 fences := pFences[0:fenceCount]
8443 for i in (0 .. fenceCount) {
8444 fence := fences[i]
8445 fenceObject := GetFence(fence)
8446 assert(fenceObject.device == device)
8447 }
8448
8449 return ?
8450}
8451
8452
8453// Queue semaphore functions
8454
8455@threadSafety("system")
8456cmd VkResult vkCreateSemaphore(
8457 VkDevice device,
8458 const VkSemaphoreCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008459 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008460 VkSemaphore* pSemaphore) {
8461 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO)
8462 deviceObject := GetDevice(device)
8463
8464 semaphore := ?
8465 pSemaphore[0] = semaphore
8466 State.Semaphores[semaphore] = new!SemaphoreObject(device: device)
8467
8468 return ?
8469}
8470
8471@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008472cmd void vkDestroySemaphore(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008473 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008474 VkSemaphore semaphore,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008475 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008476 deviceObject := GetDevice(device)
8477 semaphoreObject := GetSemaphore(semaphore)
8478 assert(semaphoreObject.device == device)
8479
8480 State.Semaphores[semaphore] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008481}
8482
Jesse Halld27f6aa2015-08-15 17:58:48 -07008483
8484// Event functions
8485
8486@threadSafety("system")
8487cmd VkResult vkCreateEvent(
8488 VkDevice device,
8489 const VkEventCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008490 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008491 VkEvent* pEvent) {
8492 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_EVENT_CREATE_INFO)
8493 deviceObject := GetDevice(device)
8494
8495 event := ?
8496 pEvent[0] = event
8497 State.Events[event] = new!EventObject(device: device)
8498
8499 return ?
8500}
8501
8502@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008503cmd void vkDestroyEvent(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008504 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008505 VkEvent event,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008506 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008507 deviceObject := GetDevice(device)
8508 eventObject := GetEvent(event)
8509 assert(eventObject.device == device)
8510
8511 State.Events[event] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008512}
8513
8514@threadSafety("system")
8515cmd VkResult vkGetEventStatus(
8516 VkDevice device,
8517 VkEvent event) {
8518 deviceObject := GetDevice(device)
8519 eventObject := GetEvent(event)
8520 assert(eventObject.device == device)
8521
8522 return ?
8523}
8524
8525@threadSafety("system")
8526cmd VkResult vkSetEvent(
8527 VkDevice device,
8528 VkEvent event) {
8529 deviceObject := GetDevice(device)
8530 eventObject := GetEvent(event)
8531 assert(eventObject.device == device)
8532
8533 return ?
8534}
8535
8536@threadSafety("system")
8537cmd VkResult vkResetEvent(
8538 VkDevice device,
8539 VkEvent event) {
8540 deviceObject := GetDevice(device)
8541 eventObject := GetEvent(event)
8542 assert(eventObject.device == device)
8543
8544 return ?
8545}
8546
8547
8548// Query functions
8549
8550@threadSafety("system")
8551cmd VkResult vkCreateQueryPool(
8552 VkDevice device,
8553 const VkQueryPoolCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008554 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008555 VkQueryPool* pQueryPool) {
8556 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO)
8557 deviceObject := GetDevice(device)
8558
8559 queryPool := ?
8560 pQueryPool[0] = queryPool
8561 State.QueryPools[queryPool] = new!QueryPoolObject(device: device)
8562
8563 return ?
8564}
8565
8566@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008567cmd void vkDestroyQueryPool(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008568 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008569 VkQueryPool queryPool,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008570 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008571 deviceObject := GetDevice(device)
8572 queryPoolObject := GetQueryPool(queryPool)
8573 assert(queryPoolObject.device == device)
8574
8575 State.QueryPools[queryPool] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008576}
8577
8578@threadSafety("system")
8579cmd VkResult vkGetQueryPoolResults(
8580 VkDevice device,
8581 VkQueryPool queryPool,
Jesse Hallf9fa9a52016-01-08 16:08:51 -08008582 u32 firstQuery,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008583 u32 queryCount,
Jesse Halla9bb62b2015-11-21 19:31:56 -08008584 platform.size_t dataSize,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008585 void* pData,
Jesse Halla9bb62b2015-11-21 19:31:56 -08008586 VkDeviceSize stride,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008587 VkQueryResultFlags flags) {
8588 deviceObject := GetDevice(device)
8589 queryPoolObject := GetQueryPool(queryPool)
8590 assert(queryPoolObject.device == device)
8591
Jesse Halld27f6aa2015-08-15 17:58:48 -07008592 data := pData[0:dataSize]
8593
8594 return ?
8595}
8596
8597// Buffer functions
8598
8599@threadSafety("system")
8600cmd VkResult vkCreateBuffer(
8601 VkDevice device,
8602 const VkBufferCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008603 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008604 VkBuffer* pBuffer) {
8605 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO)
8606 deviceObject := GetDevice(device)
8607
8608 buffer := ?
8609 pBuffer[0] = buffer
8610 State.Buffers[buffer] = new!BufferObject(device: device)
8611
8612 return ?
8613}
8614
8615@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008616cmd void vkDestroyBuffer(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008617 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008618 VkBuffer buffer,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008619 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008620 deviceObject := GetDevice(device)
8621 bufferObject := GetBuffer(buffer)
8622 assert(bufferObject.device == device)
8623
Jesse Hall3fbc8562015-11-29 22:10:52 -08008624 assert(bufferObject.memory == 0)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008625 State.Buffers[buffer] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008626}
8627
8628
8629// Buffer view functions
8630
8631@threadSafety("system")
8632cmd VkResult vkCreateBufferView(
8633 VkDevice device,
8634 const VkBufferViewCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008635 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008636 VkBufferView* pView) {
8637 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO)
8638 deviceObject := GetDevice(device)
8639
8640 bufferObject := GetBuffer(pCreateInfo.buffer)
8641 assert(bufferObject.device == device)
8642
8643 view := ?
8644 pView[0] = view
8645 State.BufferViews[view] = new!BufferViewObject(device: device, buffer: pCreateInfo.buffer)
8646
8647 return ?
8648}
8649
8650@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008651cmd void vkDestroyBufferView(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008652 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008653 VkBufferView bufferView,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008654 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008655 deviceObject := GetDevice(device)
8656 bufferViewObject := GetBufferView(bufferView)
8657 assert(bufferViewObject.device == device)
8658
8659 State.BufferViews[bufferView] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008660}
8661
8662
8663// Image functions
8664
8665@threadSafety("system")
8666cmd VkResult vkCreateImage(
8667 VkDevice device,
8668 const VkImageCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008669 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008670 VkImage* pImage) {
8671 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO)
8672 deviceObject := GetDevice(device)
8673
8674 image := ?
8675 pImage[0] = image
8676 State.Images[image] = new!ImageObject(device: device)
8677
8678 return ?
8679}
8680
8681@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008682cmd void vkDestroyImage(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008683 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008684 VkImage image,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008685 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008686 deviceObject := GetDevice(device)
8687 imageObject := GetImage(image)
8688 assert(imageObject.device == device)
8689
Jesse Hall3fbc8562015-11-29 22:10:52 -08008690 assert(imageObject.memory == 0)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008691 State.Images[image] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008692}
8693
Jesse Hall606a54e2015-11-19 22:17:28 -08008694cmd void vkGetImageSubresourceLayout(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008695 VkDevice device,
8696 VkImage image,
8697 const VkImageSubresource* pSubresource,
8698 VkSubresourceLayout* pLayout) {
8699 deviceObject := GetDevice(device)
8700 imageObject := GetImage(image)
8701 assert(imageObject.device == device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008702}
8703
8704
8705// Image view functions
8706
8707@threadSafety("system")
8708cmd VkResult vkCreateImageView(
8709 VkDevice device,
8710 const VkImageViewCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008711 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008712 VkImageView* pView) {
8713 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO)
8714 deviceObject := GetDevice(device)
8715
8716 imageObject := GetImage(pCreateInfo.image)
8717 assert(imageObject.device == device)
8718
8719 view := ?
8720 pView[0] = view
8721 State.ImageViews[view] = new!ImageViewObject(device: device, image: pCreateInfo.image)
8722
8723 return ?
8724}
8725
8726@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008727cmd void vkDestroyImageView(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008728 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008729 VkImageView imageView,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008730 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008731 deviceObject := GetDevice(device)
8732 imageViewObject := GetImageView(imageView)
8733 assert(imageViewObject.device == device)
8734
8735 State.ImageViews[imageView] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008736}
8737
8738
8739// Shader functions
8740
8741cmd VkResult vkCreateShaderModule(
8742 VkDevice device,
8743 const VkShaderModuleCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008744 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008745 VkShaderModule* pShaderModule) {
8746 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO)
8747 deviceObject := GetDevice(device)
8748
8749 shaderModule := ?
8750 pShaderModule[0] = shaderModule
8751 State.ShaderModules[shaderModule] = new!ShaderModuleObject(device: device)
8752
8753 return ?
8754}
8755
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008756cmd void vkDestroyShaderModule(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008757 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008758 VkShaderModule shaderModule,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008759 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008760 deviceObject := GetDevice(device)
8761 shaderModuleObject := GetShaderModule(shaderModule)
8762 assert(shaderModuleObject.device == device)
8763
8764 State.ShaderModules[shaderModule] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008765}
8766
Jesse Halld27f6aa2015-08-15 17:58:48 -07008767
8768// Pipeline functions
8769
8770cmd VkResult vkCreatePipelineCache(
8771 VkDevice device,
8772 const VkPipelineCacheCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008773 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008774 VkPipelineCache* pPipelineCache) {
8775 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO)
8776 deviceObject := GetDevice(device)
8777
8778 pipelineCache := ?
8779 pPipelineCache[0] = pipelineCache
8780 State.PipelineCaches[pipelineCache] = new!PipelineCacheObject(device: device)
8781
8782 return ?
8783}
8784
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008785cmd void vkDestroyPipelineCache(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008786 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008787 VkPipelineCache pipelineCache,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008788 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008789 deviceObject := GetDevice(device)
8790 pipelineCacheObject := GetPipelineCache(pipelineCache)
8791 assert(pipelineCacheObject.device == device)
8792
8793 State.PipelineCaches[pipelineCache] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008794}
8795
Jesse Halld27f6aa2015-08-15 17:58:48 -07008796cmd VkResult vkGetPipelineCacheData(
8797 VkDevice device,
8798 VkPipelineCache pipelineCache,
Jesse Halla9bb62b2015-11-21 19:31:56 -08008799 platform.size_t* pDataSize,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008800 void* pData) {
8801 deviceObject := GetDevice(device)
8802 pipelineCacheObject := GetPipelineCache(pipelineCache)
8803 assert(pipelineCacheObject.device == device)
8804
8805 return ?
8806}
8807
8808cmd VkResult vkMergePipelineCaches(
8809 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008810 VkPipelineCache dstCache,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008811 u32 srcCacheCount,
8812 const VkPipelineCache* pSrcCaches) {
8813 deviceObject := GetDevice(device)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008814 dstCacheObject := GetPipelineCache(dstCache)
8815 assert(dstCacheObject.device == device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008816
8817 srcCaches := pSrcCaches[0:srcCacheCount]
8818 for i in (0 .. srcCacheCount) {
8819 srcCache := srcCaches[i]
8820 srcCacheObject := GetPipelineCache(srcCache)
8821 assert(srcCacheObject.device == device)
8822 }
8823
8824 return ?
8825}
8826
8827cmd VkResult vkCreateGraphicsPipelines(
8828 VkDevice device,
8829 VkPipelineCache pipelineCache,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008830 u32 createInfoCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008831 const VkGraphicsPipelineCreateInfo* pCreateInfos,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008832 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008833 VkPipeline* pPipelines) {
8834 deviceObject := GetDevice(device)
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008835 if pipelineCache != NULL_HANDLE {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008836 pipelineCacheObject := GetPipelineCache(pipelineCache)
8837 assert(pipelineCacheObject.device == device)
8838 }
8839
Jesse Hall03b6fe12015-11-24 12:44:21 -08008840 createInfos := pCreateInfos[0:createInfoCount]
8841 pipelines := pPipelines[0:createInfoCount]
8842 for i in (0 .. createInfoCount) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008843 pipeline := ?
8844 pipelines[i] = pipeline
8845 State.Pipelines[pipeline] = new!PipelineObject(device: device)
8846 }
8847
8848 return ?
8849}
8850
8851cmd VkResult vkCreateComputePipelines(
8852 VkDevice device,
8853 VkPipelineCache pipelineCache,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008854 u32 createInfoCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008855 const VkComputePipelineCreateInfo* pCreateInfos,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008856 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008857 VkPipeline* pPipelines) {
8858 deviceObject := GetDevice(device)
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008859 if pipelineCache != NULL_HANDLE {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008860 pipelineCacheObject := GetPipelineCache(pipelineCache)
8861 assert(pipelineCacheObject.device == device)
8862 }
8863
Jesse Hall03b6fe12015-11-24 12:44:21 -08008864 createInfos := pCreateInfos[0:createInfoCount]
8865 pipelines := pPipelines[0:createInfoCount]
8866 for i in (0 .. createInfoCount) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008867 pipeline := ?
8868 pipelines[i] = pipeline
8869 State.Pipelines[pipeline] = new!PipelineObject(device: device)
8870 }
8871
8872 return ?
8873}
8874
8875@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008876cmd void vkDestroyPipeline(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008877 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008878 VkPipeline pipeline,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008879 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008880 deviceObject := GetDevice(device)
8881 pipelineObjects := GetPipeline(pipeline)
8882 assert(pipelineObjects.device == device)
8883
8884 State.Pipelines[pipeline] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008885}
8886
8887
8888// Pipeline layout functions
8889
8890@threadSafety("system")
8891cmd VkResult vkCreatePipelineLayout(
8892 VkDevice device,
8893 const VkPipelineLayoutCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008894 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008895 VkPipelineLayout* pPipelineLayout) {
8896 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO)
8897 deviceObject := GetDevice(device)
8898
8899 pipelineLayout := ?
8900 pPipelineLayout[0] = pipelineLayout
8901 State.PipelineLayouts[pipelineLayout] = new!PipelineLayoutObject(device: device)
8902
8903 return ?
8904}
8905
8906@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008907cmd void vkDestroyPipelineLayout(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008908 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008909 VkPipelineLayout pipelineLayout,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008910 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008911 deviceObject := GetDevice(device)
8912 pipelineLayoutObjects := GetPipelineLayout(pipelineLayout)
8913 assert(pipelineLayoutObjects.device == device)
8914
8915 State.PipelineLayouts[pipelineLayout] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008916}
8917
8918
8919// Sampler functions
8920
8921@threadSafety("system")
8922cmd VkResult vkCreateSampler(
8923 VkDevice device,
8924 const VkSamplerCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008925 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008926 VkSampler* pSampler) {
8927 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO)
8928 deviceObject := GetDevice(device)
8929
8930 sampler := ?
8931 pSampler[0] = sampler
8932 State.Samplers[sampler] = new!SamplerObject(device: device)
8933
8934 return ?
8935}
8936
8937@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008938cmd void vkDestroySampler(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008939 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008940 VkSampler sampler,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008941 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008942 deviceObject := GetDevice(device)
8943 samplerObject := GetSampler(sampler)
8944 assert(samplerObject.device == device)
8945
8946 State.Samplers[sampler] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008947}
8948
8949
8950// Descriptor set functions
8951
8952@threadSafety("system")
8953cmd VkResult vkCreateDescriptorSetLayout(
8954 VkDevice device,
8955 const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008956 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008957 VkDescriptorSetLayout* pSetLayout) {
8958 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO)
8959 deviceObject := GetDevice(device)
8960
8961 setLayout := ?
8962 pSetLayout[0] = setLayout
8963 State.DescriptorSetLayouts[setLayout] = new!DescriptorSetLayoutObject(device: device)
8964
8965 return ?
8966}
8967
8968@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008969cmd void vkDestroyDescriptorSetLayout(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008970 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008971 VkDescriptorSetLayout descriptorSetLayout,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008972 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008973 deviceObject := GetDevice(device)
8974 descriptorSetLayoutObject := GetDescriptorSetLayout(descriptorSetLayout)
8975 assert(descriptorSetLayoutObject.device == device)
8976
8977 State.DescriptorSetLayouts[descriptorSetLayout] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008978}
8979
8980@threadSafety("system")
8981cmd VkResult vkCreateDescriptorPool(
8982 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008983 const VkDescriptorPoolCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008984 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008985 VkDescriptorPool* pDescriptorPool) {
8986 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO)
8987 deviceObject := GetDevice(device)
8988
8989 descriptorPool := ?
8990 pDescriptorPool[0] = descriptorPool
8991 State.DescriptorPools[descriptorPool] = new!DescriptorPoolObject(device: device)
8992
8993 return ?
8994}
8995
8996@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008997cmd void vkDestroyDescriptorPool(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008998 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008999 VkDescriptorPool descriptorPool,
Jesse Hall3fbc8562015-11-29 22:10:52 -08009000 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07009001 deviceObject := GetDevice(device)
9002 descriptorPoolObject := GetDescriptorPool(descriptorPool)
9003 assert(descriptorPoolObject.device == device)
9004
9005 State.DescriptorPools[descriptorPool] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07009006}
9007
9008@threadSafety("app")
9009cmd VkResult vkResetDescriptorPool(
9010 VkDevice device,
Jesse Hallfbf97b02015-11-20 14:17:03 -08009011 VkDescriptorPool descriptorPool,
9012 VkDescriptorPoolResetFlags flags) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07009013 deviceObject := GetDevice(device)
9014 descriptorPoolObject := GetDescriptorPool(descriptorPool)
9015 assert(descriptorPoolObject.device == device)
9016
9017 return ?
9018}
9019
9020@threadSafety("app")
Jesse Hall3fbc8562015-11-29 22:10:52 -08009021cmd VkResult vkAllocateDescriptorSets(
Jesse Halld27f6aa2015-08-15 17:58:48 -07009022 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08009023 const VkDescriptorSetAllocateInfo* pAllocateInfo,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009024 VkDescriptorSet* pDescriptorSets) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07009025 deviceObject := GetDevice(device)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009026 allocInfo := pAllocateInfo[0]
Jesse Hallfbf97b02015-11-20 14:17:03 -08009027 descriptorPoolObject := GetDescriptorPool(allocInfo.descriptorPool)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009028
Jesse Hall03b6fe12015-11-24 12:44:21 -08009029 setLayouts := allocInfo.pSetLayouts[0:allocInfo.setCount]
9030 for i in (0 .. allocInfo.setCount) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07009031 setLayout := setLayouts[i]
9032 setLayoutObject := GetDescriptorSetLayout(setLayout)
9033 assert(setLayoutObject.device == device)
9034 }
9035
Jesse Hall03b6fe12015-11-24 12:44:21 -08009036 descriptorSets := pDescriptorSets[0:allocInfo.setCount]
9037 for i in (0 .. allocInfo.setCount) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07009038 descriptorSet := ?
9039 descriptorSets[i] = descriptorSet
9040 State.DescriptorSets[descriptorSet] = new!DescriptorSetObject(device: device)
9041 }
9042
9043 return ?
9044}
9045
Jesse Hallf09c6b12015-08-15 19:54:28 -07009046cmd VkResult vkFreeDescriptorSets(
9047 VkDevice device,
9048 VkDescriptorPool descriptorPool,
Jesse Hall03b6fe12015-11-24 12:44:21 -08009049 u32 descriptorSetCount,
Jesse Hallf09c6b12015-08-15 19:54:28 -07009050 const VkDescriptorSet* pDescriptorSets) {
9051 deviceObject := GetDevice(device)
9052 descriptorPoolObject := GetDescriptorPool(descriptorPool)
9053
Jesse Hall03b6fe12015-11-24 12:44:21 -08009054 descriptorSets := pDescriptorSets[0:descriptorSetCount]
9055 for i in (0 .. descriptorSetCount) {
Jesse Hallf09c6b12015-08-15 19:54:28 -07009056 descriptorSet := descriptorSets[i]
9057 descriptorSetObject := GetDescriptorSet(descriptorSet)
9058 assert(descriptorSetObject.device == device)
9059 State.DescriptorSets[descriptorSet] = null
9060 }
9061
9062 return ?
9063}
9064
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009065cmd void vkUpdateDescriptorSets(
Jesse Halld27f6aa2015-08-15 17:58:48 -07009066 VkDevice device,
Jesse Hallb00daad2015-11-29 19:46:20 -08009067 u32 descriptorWriteCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009068 const VkWriteDescriptorSet* pDescriptorWrites,
Jesse Hallb00daad2015-11-29 19:46:20 -08009069 u32 descriptorCopyCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009070 const VkCopyDescriptorSet* pDescriptorCopies) {
9071 deviceObject := GetDevice(device)
9072
Jesse Hallb00daad2015-11-29 19:46:20 -08009073 descriptorWrites := pDescriptorWrites[0:descriptorWriteCount]
9074 for i in (0 .. descriptorWriteCount) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07009075 descriptorWrite := descriptorWrites[i]
Jesse Hall3fbc8562015-11-29 22:10:52 -08009076 descriptorWriteObject := GetDescriptorSet(descriptorWrite.dstSet)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009077 assert(descriptorWriteObject.device == device)
9078 }
9079
Jesse Hallb00daad2015-11-29 19:46:20 -08009080 descriptorCopies := pDescriptorCopies[0:descriptorCopyCount]
9081 for i in (0 .. descriptorCopyCount) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07009082 descriptorCopy := descriptorCopies[i]
Jesse Hall3fbc8562015-11-29 22:10:52 -08009083 descriptorCopyObject := GetDescriptorSet(descriptorCopy.dstSet)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009084 assert(descriptorCopyObject.device == device)
9085 }
Jesse Halld27f6aa2015-08-15 17:58:48 -07009086}
9087
9088
9089// Framebuffer functions
9090
9091@threadSafety("system")
9092cmd VkResult vkCreateFramebuffer(
9093 VkDevice device,
9094 const VkFramebufferCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08009095 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009096 VkFramebuffer* pFramebuffer) {
9097 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO)
9098 deviceObject := GetDevice(device)
9099
9100 framebuffer := ?
9101 pFramebuffer[0] = framebuffer
9102 State.Framebuffers[framebuffer] = new!FramebufferObject(device: device)
9103
9104 return ?
9105}
9106
9107@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009108cmd void vkDestroyFramebuffer(
Jesse Halld27f6aa2015-08-15 17:58:48 -07009109 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08009110 VkFramebuffer framebuffer,
Jesse Hall3fbc8562015-11-29 22:10:52 -08009111 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07009112 deviceObject := GetDevice(device)
9113 framebufferObject := GetFramebuffer(framebuffer)
9114 assert(framebufferObject.device == device)
9115
9116 State.Framebuffers[framebuffer] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07009117}
9118
9119
9120// Renderpass functions
9121
9122@threadSafety("system")
9123cmd VkResult vkCreateRenderPass(
9124 VkDevice device,
9125 const VkRenderPassCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08009126 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009127 VkRenderPass* pRenderPass) {
9128 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO)
9129 deviceObject := GetDevice(device)
9130
9131 renderpass := ?
9132 pRenderPass[0] = renderpass
9133 State.RenderPasses[renderpass] = new!RenderPassObject(device: device)
9134
9135 return ?
9136}
9137
9138@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009139cmd void vkDestroyRenderPass(
Jesse Halld27f6aa2015-08-15 17:58:48 -07009140 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08009141 VkRenderPass renderPass,
Jesse Hall3fbc8562015-11-29 22:10:52 -08009142 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07009143 deviceObject := GetDevice(device)
9144 renderPassObject := GetRenderPass(renderPass)
9145 assert(renderPassObject.device == device)
9146
9147 State.RenderPasses[renderPass] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07009148}
9149
Jesse Hall606a54e2015-11-19 22:17:28 -08009150cmd void vkGetRenderAreaGranularity(
Jesse Halld27f6aa2015-08-15 17:58:48 -07009151 VkDevice device,
9152 VkRenderPass renderPass,
9153 VkExtent2D* pGranularity) {
9154 deviceObject := GetDevice(device)
9155 renderPassObject := GetRenderPass(renderPass)
9156
9157 granularity := ?
9158 pGranularity[0] = granularity
Jesse Halld27f6aa2015-08-15 17:58:48 -07009159}
9160
9161// Command pool functions
9162
9163cmd VkResult vkCreateCommandPool(
9164 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08009165 const VkCommandPoolCreateInfo* pCreateInfo,
9166 const VkAllocationCallbacks* pAllocator,
9167 VkCommandPool* pCommandPool) {
9168 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009169 deviceObject := GetDevice(device)
9170
Jesse Hall3fbc8562015-11-29 22:10:52 -08009171 commandPool := ?
9172 pCommandPool[0] = commandPool
9173 State.CommandPools[commandPool] = new!CommandPoolObject(device: device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009174
9175 return ?
9176}
9177
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009178cmd void vkDestroyCommandPool(
Jesse Halld27f6aa2015-08-15 17:58:48 -07009179 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08009180 VkCommandPool commandPool,
9181 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07009182 deviceObject := GetDevice(device)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009183 commandPoolObject := GetCommandPool(commandPool)
9184 assert(commandPoolObject.device == device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009185
Jesse Hall3fbc8562015-11-29 22:10:52 -08009186 State.CommandPools[commandPool] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07009187}
9188
9189cmd VkResult vkResetCommandPool(
9190 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08009191 VkCommandPool commandPool,
9192 VkCommandPoolResetFlags flags) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07009193 deviceObject := GetDevice(device)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009194 commandPoolObject := GetCommandPool(commandPool)
9195 assert(commandPoolObject.device == device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009196
9197 return ?
9198}
9199
9200// Command buffer functions
9201
Jesse Hall3fbc8562015-11-29 22:10:52 -08009202macro void bindCommandBuffer(VkCommandBuffer commandBuffer, any obj, VkDeviceMemory memory) {
9203 memoryObject := GetDeviceMemory(memory)
9204 memoryObject.boundCommandBuffers[commandBuffer] = commandBuffer
Jesse Halld27f6aa2015-08-15 17:58:48 -07009205
Jesse Hall3fbc8562015-11-29 22:10:52 -08009206 commandBufferObject := GetCommandBuffer(commandBuffer)
9207 commandBufferObject.boundObjects[as!u64(obj)] = memory
Jesse Halld27f6aa2015-08-15 17:58:48 -07009208}
9209
Jesse Hall3fbc8562015-11-29 22:10:52 -08009210macro void unbindCommandBuffer(VkCommandBuffer commandBuffer, any obj, VkDeviceMemory memory) {
9211 memoryObject := GetDeviceMemory(memory)
9212 memoryObject.boundCommandBuffers[commandBuffer] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07009213
Jesse Hall3fbc8562015-11-29 22:10:52 -08009214 commandBufferObject := GetCommandBuffer(commandBuffer)
9215 commandBufferObject.boundObjects[as!u64(obj)] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07009216}
9217
9218@threadSafety("system")
Jesse Hall3fbc8562015-11-29 22:10:52 -08009219cmd VkResult vkAllocateCommandBuffers(
Jesse Halld27f6aa2015-08-15 17:58:48 -07009220 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08009221 const VkCommandBufferAllocateInfo* pAllocateInfo,
9222 VkCommandBuffer* pCommandBuffers) {
Jesse Hallf4ab2b12015-11-30 16:04:55 -08009223 assert(pAllocateInfo[0].sType == VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009224
Jesse Hall3dd678a2016-01-08 21:52:01 -08009225 count := pAllocateInfo[0].commandBufferCount
Jesse Hall3fbc8562015-11-29 22:10:52 -08009226 commandBuffers := pCommandBuffers[0:count]
Jesse Hallfbf97b02015-11-20 14:17:03 -08009227 for i in (0 .. count) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009228 commandBuffer := ?
9229 commandBuffers[i] = commandBuffer
9230 State.CommandBuffers[commandBuffer] = new!CommandBufferObject(device: device)
Jesse Hallfbf97b02015-11-20 14:17:03 -08009231 }
Jesse Halld27f6aa2015-08-15 17:58:48 -07009232
9233 return ?
9234}
9235
9236@threadSafety("system")
Jesse Hallfbf97b02015-11-20 14:17:03 -08009237cmd void vkFreeCommandBuffers(
Jesse Halld27f6aa2015-08-15 17:58:48 -07009238 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08009239 VkCommandPool commandPool,
Jesse Hall03b6fe12015-11-24 12:44:21 -08009240 u32 commandBufferCount,
Jesse Hall3fbc8562015-11-29 22:10:52 -08009241 const VkCommandBuffer* pCommandBuffers) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07009242 deviceObject := GetDevice(device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009243
Jesse Hall3fbc8562015-11-29 22:10:52 -08009244 commandBuffers := pCommandBuffers[0:commandBufferCount]
Jesse Hall03b6fe12015-11-24 12:44:21 -08009245 for i in (0 .. commandBufferCount) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009246 commandBufferObject := GetCommandBuffer(commandBuffers[i])
9247 assert(commandBufferObject.device == device)
Jesse Hallfbf97b02015-11-20 14:17:03 -08009248 // TODO: iterate over boundObjects and clear memory bindings
Jesse Hall3fbc8562015-11-29 22:10:52 -08009249 State.CommandBuffers[commandBuffers[i]] = null
Jesse Hallfbf97b02015-11-20 14:17:03 -08009250 }
Jesse Halld27f6aa2015-08-15 17:58:48 -07009251}
9252
9253@threadSafety("app")
9254cmd VkResult vkBeginCommandBuffer(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009255 VkCommandBuffer commandBuffer,
9256 const VkCommandBufferBeginInfo* pBeginInfo) {
9257 assert(pBeginInfo.sType == VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO)
9258 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009259
9260 // TODO: iterate over boundObjects and clear memory bindings
9261
9262 return ?
9263}
9264
9265@threadSafety("app")
9266cmd VkResult vkEndCommandBuffer(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009267 VkCommandBuffer commandBuffer) {
9268 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009269
9270 return ?
9271}
9272
9273@threadSafety("app")
9274cmd VkResult vkResetCommandBuffer(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009275 VkCommandBuffer commandBuffer,
9276 VkCommandBufferResetFlags flags) {
9277 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009278
9279 // TODO: iterate over boundObjects and clear memory bindings
9280
9281 return ?
9282}
9283
9284
9285// Command buffer building functions
9286
9287@threadSafety("app")
9288cmd void vkCmdBindPipeline(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009289 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009290 VkPipelineBindPoint pipelineBindPoint,
9291 VkPipeline pipeline) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009292 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009293 pipelineObject := GetPipeline(pipeline)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009294 assert(commandBufferObject.device == pipelineObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009295
Jesse Halld8bade02015-11-24 10:24:18 -08009296 queue := switch (pipelineBindPoint) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07009297 case VK_PIPELINE_BIND_POINT_COMPUTE: VK_QUEUE_COMPUTE_BIT
9298 case VK_PIPELINE_BIND_POINT_GRAPHICS: VK_QUEUE_GRAPHICS_BIT
9299 }
Jesse Hall3fbc8562015-11-29 22:10:52 -08009300 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, queue)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009301}
9302
9303@threadSafety("app")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009304cmd void vkCmdSetViewport(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009305 VkCommandBuffer commandBuffer,
Jesse Hallf9fa9a52016-01-08 16:08:51 -08009306 u32 firstViewport,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009307 u32 viewportCount,
9308 const VkViewport* pViewports) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009309 commandBufferObject := GetCommandBuffer(commandBuffer)
9310 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009311}
9312
9313@threadSafety("app")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009314cmd void vkCmdSetScissor(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009315 VkCommandBuffer commandBuffer,
Jesse Hallf9fa9a52016-01-08 16:08:51 -08009316 u32 firstScissor,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009317 u32 scissorCount,
9318 const VkRect2D* pScissors) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009319 commandBufferObject := GetCommandBuffer(commandBuffer)
9320 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009321}
9322
9323@threadSafety("app")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009324cmd void vkCmdSetLineWidth(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009325 VkCommandBuffer commandBuffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009326 f32 lineWidth) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009327 commandBufferObject := GetCommandBuffer(commandBuffer)
9328 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009329}
9330
9331@threadSafety("app")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009332cmd void vkCmdSetDepthBias(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009333 VkCommandBuffer commandBuffer,
Jesse Halla9bb62b2015-11-21 19:31:56 -08009334 f32 depthBiasConstantFactor,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009335 f32 depthBiasClamp,
Jesse Halla9bb62b2015-11-21 19:31:56 -08009336 f32 depthBiasSlopeFactor) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009337 commandBufferObject := GetCommandBuffer(commandBuffer)
9338 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009339}
Jesse Halld27f6aa2015-08-15 17:58:48 -07009340
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009341@threadSafety("app")
9342cmd void vkCmdSetBlendConstants(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009343 VkCommandBuffer commandBuffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009344 // TODO(jessehall): apic only supports 'const' on pointer types. Using
9345 // an annotation as a quick hack to pass this to the template without
9346 // having to modify the AST and semantic model.
Jesse Hallb00daad2015-11-29 19:46:20 -08009347 @readonly f32[4] blendConstants) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009348 commandBufferObject := GetCommandBuffer(commandBuffer)
9349 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009350}
9351
9352@threadSafety("app")
9353cmd void vkCmdSetDepthBounds(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009354 VkCommandBuffer commandBuffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009355 f32 minDepthBounds,
9356 f32 maxDepthBounds) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009357 commandBufferObject := GetCommandBuffer(commandBuffer)
9358 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009359}
9360
9361@threadSafety("app")
9362cmd void vkCmdSetStencilCompareMask(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009363 VkCommandBuffer commandBuffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009364 VkStencilFaceFlags faceMask,
Jesse Hall65ab5522015-11-30 00:07:16 -08009365 u32 compareMask) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009366 commandBufferObject := GetCommandBuffer(commandBuffer)
9367 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009368}
9369
9370@threadSafety("app")
9371cmd void vkCmdSetStencilWriteMask(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009372 VkCommandBuffer commandBuffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009373 VkStencilFaceFlags faceMask,
Jesse Hall65ab5522015-11-30 00:07:16 -08009374 u32 writeMask) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009375 commandBufferObject := GetCommandBuffer(commandBuffer)
9376 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009377}
9378
9379@threadSafety("app")
9380cmd void vkCmdSetStencilReference(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009381 VkCommandBuffer commandBuffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009382 VkStencilFaceFlags faceMask,
Jesse Hall65ab5522015-11-30 00:07:16 -08009383 u32 reference) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009384 commandBufferObject := GetCommandBuffer(commandBuffer)
9385 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009386}
9387
9388@threadSafety("app")
9389cmd void vkCmdBindDescriptorSets(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009390 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009391 VkPipelineBindPoint pipelineBindPoint,
9392 VkPipelineLayout layout,
9393 u32 firstSet,
Jesse Hall03b6fe12015-11-24 12:44:21 -08009394 u32 descriptorSetCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009395 const VkDescriptorSet* pDescriptorSets,
9396 u32 dynamicOffsetCount,
9397 const u32* pDynamicOffsets) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009398 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009399
Jesse Hall03b6fe12015-11-24 12:44:21 -08009400 descriptorSets := pDescriptorSets[0:descriptorSetCount]
9401 for i in (0 .. descriptorSetCount) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07009402 descriptorSet := descriptorSets[i]
9403 descriptorSetObject := GetDescriptorSet(descriptorSet)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009404 assert(commandBufferObject.device == descriptorSetObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009405 }
9406
9407 dynamicOffsets := pDynamicOffsets[0:dynamicOffsetCount]
9408 for i in (0 .. dynamicOffsetCount) {
9409 dynamicOffset := dynamicOffsets[i]
9410 }
9411
Jesse Halld8bade02015-11-24 10:24:18 -08009412 queue := switch (pipelineBindPoint) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07009413 case VK_PIPELINE_BIND_POINT_COMPUTE: VK_QUEUE_COMPUTE_BIT
9414 case VK_PIPELINE_BIND_POINT_GRAPHICS: VK_QUEUE_GRAPHICS_BIT
9415 }
Jesse Hall3fbc8562015-11-29 22:10:52 -08009416 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, queue)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009417}
9418
9419@threadSafety("app")
9420cmd void vkCmdBindIndexBuffer(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009421 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009422 VkBuffer buffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009423 VkDeviceSize offset,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009424 VkIndexType indexType) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009425 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009426 bufferObject := GetBuffer(buffer)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009427 assert(commandBufferObject.device == bufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009428
Jesse Hall3fbc8562015-11-29 22:10:52 -08009429 bindCommandBuffer(commandBuffer, buffer, bufferObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009430
Jesse Hall3fbc8562015-11-29 22:10:52 -08009431 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009432}
9433
9434@threadSafety("app")
9435cmd void vkCmdBindVertexBuffers(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009436 VkCommandBuffer commandBuffer,
Jesse Hallf9fa9a52016-01-08 16:08:51 -08009437 u32 firstBinding,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009438 u32 bindingCount,
9439 const VkBuffer* pBuffers,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009440 const VkDeviceSize* pOffsets) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009441 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009442
Jesse Hallf9fa9a52016-01-08 16:08:51 -08009443 // TODO: check if not [firstBinding:firstBinding+bindingCount]
Jesse Halld27f6aa2015-08-15 17:58:48 -07009444 buffers := pBuffers[0:bindingCount]
9445 offsets := pOffsets[0:bindingCount]
9446 for i in (0 .. bindingCount) {
9447 buffer := buffers[i]
9448 offset := offsets[i]
9449 bufferObject := GetBuffer(buffer)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009450 assert(commandBufferObject.device == bufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009451
Jesse Hall3fbc8562015-11-29 22:10:52 -08009452 bindCommandBuffer(commandBuffer, buffer, bufferObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009453 }
9454
Jesse Hall3fbc8562015-11-29 22:10:52 -08009455 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009456}
9457
9458@threadSafety("app")
9459cmd void vkCmdDraw(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009460 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009461 u32 vertexCount,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009462 u32 instanceCount,
9463 u32 firstVertex,
9464 u32 firstInstance) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009465 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009466
Jesse Hall3fbc8562015-11-29 22:10:52 -08009467 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009468}
9469
9470@threadSafety("app")
9471cmd void vkCmdDrawIndexed(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009472 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009473 u32 indexCount,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009474 u32 instanceCount,
9475 u32 firstIndex,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009476 s32 vertexOffset,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009477 u32 firstInstance) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009478 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009479
Jesse Hall3fbc8562015-11-29 22:10:52 -08009480 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009481}
9482
9483@threadSafety("app")
9484cmd void vkCmdDrawIndirect(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009485 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009486 VkBuffer buffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009487 VkDeviceSize offset,
Jesse Hall03b6fe12015-11-24 12:44:21 -08009488 u32 drawCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009489 u32 stride) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009490 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009491 bufferObject := GetBuffer(buffer)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009492 assert(commandBufferObject.device == bufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009493
Jesse Hall3fbc8562015-11-29 22:10:52 -08009494 bindCommandBuffer(commandBuffer, buffer, bufferObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009495
Jesse Hall3fbc8562015-11-29 22:10:52 -08009496 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009497}
9498
9499@threadSafety("app")
9500cmd void vkCmdDrawIndexedIndirect(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009501 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009502 VkBuffer buffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009503 VkDeviceSize offset,
Jesse Hall03b6fe12015-11-24 12:44:21 -08009504 u32 drawCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009505 u32 stride) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009506 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009507 bufferObject := GetBuffer(buffer)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009508 assert(commandBufferObject.device == bufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009509
Jesse Hall3fbc8562015-11-29 22:10:52 -08009510 bindCommandBuffer(commandBuffer, buffer, bufferObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009511
Jesse Hall3fbc8562015-11-29 22:10:52 -08009512 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009513}
9514
9515@threadSafety("app")
9516cmd void vkCmdDispatch(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009517 VkCommandBuffer commandBuffer,
Jesse Hallad250842017-03-10 18:35:38 -08009518 u32 groupCountX,
9519 u32 groupCountY,
9520 u32 groupCountZ) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009521 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009522
Jesse Hall3fbc8562015-11-29 22:10:52 -08009523 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_COMPUTE_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009524}
9525
9526@threadSafety("app")
9527cmd void vkCmdDispatchIndirect(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009528 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009529 VkBuffer buffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009530 VkDeviceSize offset) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009531 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009532 bufferObject := GetBuffer(buffer)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009533 assert(commandBufferObject.device == bufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009534
Jesse Hall3fbc8562015-11-29 22:10:52 -08009535 bindCommandBuffer(commandBuffer, buffer, bufferObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009536
Jesse Hall3fbc8562015-11-29 22:10:52 -08009537 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_COMPUTE_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009538}
9539
9540@threadSafety("app")
9541cmd void vkCmdCopyBuffer(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009542 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009543 VkBuffer srcBuffer,
Jesse Hall3fbc8562015-11-29 22:10:52 -08009544 VkBuffer dstBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009545 u32 regionCount,
9546 const VkBufferCopy* pRegions) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009547 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009548 srcBufferObject := GetBuffer(srcBuffer)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009549 dstBufferObject := GetBuffer(dstBuffer)
9550 assert(commandBufferObject.device == srcBufferObject.device)
9551 assert(commandBufferObject.device == dstBufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009552
9553 regions := pRegions[0:regionCount]
9554 for i in (0 .. regionCount) {
9555 region := regions[i]
9556 }
9557
Jesse Hall3fbc8562015-11-29 22:10:52 -08009558 bindCommandBuffer(commandBuffer, srcBuffer, srcBufferObject.memory)
9559 bindCommandBuffer(commandBuffer, dstBuffer, dstBufferObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009560
Jesse Hall65ab5522015-11-30 00:07:16 -08009561 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_TRANSFER_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009562}
9563
9564@threadSafety("app")
9565cmd void vkCmdCopyImage(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009566 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009567 VkImage srcImage,
9568 VkImageLayout srcImageLayout,
Jesse Hall3fbc8562015-11-29 22:10:52 -08009569 VkImage dstImage,
9570 VkImageLayout dstImageLayout,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009571 u32 regionCount,
9572 const VkImageCopy* pRegions) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009573 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009574 srcImageObject := GetImage(srcImage)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009575 dstImageObject := GetImage(dstImage)
9576 assert(commandBufferObject.device == srcImageObject.device)
9577 assert(commandBufferObject.device == dstImageObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009578
9579 regions := pRegions[0:regionCount]
9580 for i in (0 .. regionCount) {
9581 region := regions[i]
9582 }
9583
Jesse Hall3fbc8562015-11-29 22:10:52 -08009584 bindCommandBuffer(commandBuffer, srcImage, srcImageObject.memory)
9585 bindCommandBuffer(commandBuffer, dstImage, dstImageObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009586
Jesse Hall65ab5522015-11-30 00:07:16 -08009587 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_TRANSFER_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009588}
9589
9590@threadSafety("app")
9591cmd void vkCmdBlitImage(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009592 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009593 VkImage srcImage,
9594 VkImageLayout srcImageLayout,
Jesse Hall3fbc8562015-11-29 22:10:52 -08009595 VkImage dstImage,
9596 VkImageLayout dstImageLayout,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009597 u32 regionCount,
9598 const VkImageBlit* pRegions,
Jesse Hall23ff73f2015-11-29 14:36:39 -08009599 VkFilter filter) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009600 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009601 srcImageObject := GetImage(srcImage)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009602 dstImageObject := GetImage(dstImage)
9603 assert(commandBufferObject.device == srcImageObject.device)
9604 assert(commandBufferObject.device == dstImageObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009605
9606 regions := pRegions[0:regionCount]
9607 for i in (0 .. regionCount) {
9608 region := regions[i]
9609 }
9610
Jesse Hall3fbc8562015-11-29 22:10:52 -08009611 bindCommandBuffer(commandBuffer, srcImage, srcImageObject.memory)
9612 bindCommandBuffer(commandBuffer, dstImage, dstImageObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009613
Jesse Hall3fbc8562015-11-29 22:10:52 -08009614 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009615}
9616
9617@threadSafety("app")
9618cmd void vkCmdCopyBufferToImage(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009619 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009620 VkBuffer srcBuffer,
Jesse Hall3fbc8562015-11-29 22:10:52 -08009621 VkImage dstImage,
9622 VkImageLayout dstImageLayout,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009623 u32 regionCount,
9624 const VkBufferImageCopy* pRegions) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009625 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009626 srcBufferObject := GetBuffer(srcBuffer)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009627 dstImageObject := GetImage(dstImage)
9628 assert(commandBufferObject.device == srcBufferObject.device)
9629 assert(commandBufferObject.device == dstImageObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009630
9631 regions := pRegions[0:regionCount]
9632 for i in (0 .. regionCount) {
9633 region := regions[i]
9634 }
9635
Jesse Hall3fbc8562015-11-29 22:10:52 -08009636 bindCommandBuffer(commandBuffer, srcBuffer, srcBufferObject.memory)
9637 bindCommandBuffer(commandBuffer, dstImage, dstImageObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009638
Jesse Hall65ab5522015-11-30 00:07:16 -08009639 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_TRANSFER_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009640}
9641
9642@threadSafety("app")
9643cmd void vkCmdCopyImageToBuffer(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009644 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009645 VkImage srcImage,
9646 VkImageLayout srcImageLayout,
Jesse Hall3fbc8562015-11-29 22:10:52 -08009647 VkBuffer dstBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009648 u32 regionCount,
9649 const VkBufferImageCopy* pRegions) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009650 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009651 srcImageObject := GetImage(srcImage)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009652 dstBufferObject := GetBuffer(dstBuffer)
9653 assert(commandBufferObject.device == srcImageObject.device)
9654 assert(commandBufferObject.device == dstBufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009655
9656 regions := pRegions[0:regionCount]
9657 for i in (0 .. regionCount) {
9658 region := regions[i]
9659 }
9660
Jesse Hall3fbc8562015-11-29 22:10:52 -08009661 bindCommandBuffer(commandBuffer, srcImage, srcImageObject.memory)
9662 bindCommandBuffer(commandBuffer, dstBuffer, dstBufferObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009663
Jesse Hall65ab5522015-11-30 00:07:16 -08009664 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_TRANSFER_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009665}
9666
9667@threadSafety("app")
9668cmd void vkCmdUpdateBuffer(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009669 VkCommandBuffer commandBuffer,
9670 VkBuffer dstBuffer,
9671 VkDeviceSize dstOffset,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009672 VkDeviceSize dataSize,
Jesse Hall56d386a2016-07-26 15:20:40 -07009673 const void* pData) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009674 commandBufferObject := GetCommandBuffer(commandBuffer)
9675 dstBufferObject := GetBuffer(dstBuffer)
9676 assert(commandBufferObject.device == dstBufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009677
9678 data := pData[0:dataSize]
9679
Jesse Hall3fbc8562015-11-29 22:10:52 -08009680 bindCommandBuffer(commandBuffer, dstBuffer, dstBufferObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009681
Jesse Hall65ab5522015-11-30 00:07:16 -08009682 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_TRANSFER_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009683}
9684
9685@threadSafety("app")
9686cmd void vkCmdFillBuffer(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009687 VkCommandBuffer commandBuffer,
9688 VkBuffer dstBuffer,
9689 VkDeviceSize dstOffset,
Jesse Hallb00daad2015-11-29 19:46:20 -08009690 VkDeviceSize size,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009691 u32 data) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009692 commandBufferObject := GetCommandBuffer(commandBuffer)
9693 dstBufferObject := GetBuffer(dstBuffer)
9694 assert(commandBufferObject.device == dstBufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009695
Jesse Hall65ab5522015-11-30 00:07:16 -08009696 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_TRANSFER_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009697}
9698
9699@threadSafety("app")
9700cmd void vkCmdClearColorImage(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009701 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009702 VkImage image,
9703 VkImageLayout imageLayout,
9704 const VkClearColorValue* pColor,
9705 u32 rangeCount,
9706 const VkImageSubresourceRange* pRanges) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009707 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009708 imageObject := GetImage(image)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009709 assert(commandBufferObject.device == imageObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009710
9711 ranges := pRanges[0:rangeCount]
9712 for i in (0 .. rangeCount) {
9713 range := ranges[i]
9714 }
9715
Jesse Hall3fbc8562015-11-29 22:10:52 -08009716 bindCommandBuffer(commandBuffer, image, imageObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009717
Jesse Hall3fbc8562015-11-29 22:10:52 -08009718 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009719}
9720
9721@threadSafety("app")
9722cmd void vkCmdClearDepthStencilImage(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009723 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009724 VkImage image,
9725 VkImageLayout imageLayout,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009726 const VkClearDepthStencilValue* pDepthStencil,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009727 u32 rangeCount,
9728 const VkImageSubresourceRange* pRanges) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009729 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009730 imageObject := GetImage(image)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009731 assert(commandBufferObject.device == imageObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009732
9733 ranges := pRanges[0:rangeCount]
9734 for i in (0 .. rangeCount) {
9735 range := ranges[i]
9736 }
9737
Jesse Hall3fbc8562015-11-29 22:10:52 -08009738 bindCommandBuffer(commandBuffer, image, imageObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009739
Jesse Hall3fbc8562015-11-29 22:10:52 -08009740 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009741}
9742
9743@threadSafety("app")
Jesse Hallae38f732015-11-19 21:32:50 -08009744cmd void vkCmdClearAttachments(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009745 VkCommandBuffer commandBuffer,
Jesse Hallae38f732015-11-19 21:32:50 -08009746 u32 attachmentCount,
9747 const VkClearAttachment* pAttachments,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009748 u32 rectCount,
Jesse Halla15a4bf2015-11-19 22:48:02 -08009749 const VkClearRect* pRects) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009750 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009751
9752 rects := pRects[0:rectCount]
9753 for i in (0 .. rectCount) {
9754 rect := rects[i]
9755 }
9756
Jesse Hall3fbc8562015-11-29 22:10:52 -08009757 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009758}
9759
9760@threadSafety("app")
9761cmd void vkCmdResolveImage(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009762 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009763 VkImage srcImage,
9764 VkImageLayout srcImageLayout,
Jesse Hall3fbc8562015-11-29 22:10:52 -08009765 VkImage dstImage,
9766 VkImageLayout dstImageLayout,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009767 u32 regionCount,
9768 const VkImageResolve* pRegions) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009769 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009770 srcImageObject := GetImage(srcImage)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009771 dstImageObject := GetImage(dstImage)
9772 assert(commandBufferObject.device == srcImageObject.device)
9773 assert(commandBufferObject.device == dstImageObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009774
9775 regions := pRegions[0:regionCount]
9776 for i in (0 .. regionCount) {
9777 region := regions[i]
9778 }
9779
Jesse Hall3fbc8562015-11-29 22:10:52 -08009780 bindCommandBuffer(commandBuffer, srcImage, srcImageObject.memory)
9781 bindCommandBuffer(commandBuffer, dstImage, dstImageObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009782
Jesse Hall3fbc8562015-11-29 22:10:52 -08009783 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009784}
9785
9786@threadSafety("app")
9787cmd void vkCmdSetEvent(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009788 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009789 VkEvent event,
9790 VkPipelineStageFlags stageMask) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009791 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009792 eventObject := GetEvent(event)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009793 assert(commandBufferObject.device == eventObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009794}
9795
9796@threadSafety("app")
9797cmd void vkCmdResetEvent(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009798 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009799 VkEvent event,
9800 VkPipelineStageFlags stageMask) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009801 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009802 eventObject := GetEvent(event)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009803 assert(commandBufferObject.device == eventObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009804}
9805
9806@threadSafety("app")
9807cmd void vkCmdWaitEvents(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009808 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009809 u32 eventCount,
9810 const VkEvent* pEvents,
9811 VkPipelineStageFlags srcStageMask,
Jesse Hall3fbc8562015-11-29 22:10:52 -08009812 VkPipelineStageFlags dstStageMask,
9813 u32 memoryBarrierCount,
Jesse Hall3dd678a2016-01-08 21:52:01 -08009814 const VkMemoryBarrier* pMemoryBarriers,
9815 u32 bufferMemoryBarrierCount,
9816 const VkBufferMemoryBarrier* pBufferMemoryBarriers,
9817 u32 imageMemoryBarrierCount,
9818 const VkImageMemoryBarrier* pImageMemoryBarriers) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009819 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009820
9821 events := pEvents[0:eventCount]
9822 for i in (0 .. eventCount) {
9823 event := events[i]
9824 eventObject := GetEvent(event)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009825 assert(commandBufferObject.device == eventObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009826 }
9827
Jesse Hall3dd678a2016-01-08 21:52:01 -08009828 memoryBarriers := pMemoryBarriers[0:memoryBarrierCount]
Jesse Hall3fbc8562015-11-29 22:10:52 -08009829 for i in (0 .. memoryBarrierCount) {
Jesse Hall3dd678a2016-01-08 21:52:01 -08009830 memoryBarrier := memoryBarriers[i]
9831 }
9832 bufferMemoryBarriers := pBufferMemoryBarriers[0:bufferMemoryBarrierCount]
9833 for i in (0 .. bufferMemoryBarrierCount) {
9834 bufferMemoryBarrier := bufferMemoryBarriers[i]
9835 bufferObject := GetBuffer(bufferMemoryBarrier.buffer)
9836 assert(bufferObject.device == commandBufferObject.device)
9837 }
9838 imageMemoryBarriers := pImageMemoryBarriers[0:imageMemoryBarrierCount]
9839 for i in (0 .. imageMemoryBarrierCount) {
9840 imageMemoryBarrier := imageMemoryBarriers[i]
9841 imageObject := GetImage(imageMemoryBarrier.image)
9842 assert(imageObject.device == commandBufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009843 }
9844}
9845
9846@threadSafety("app")
9847cmd void vkCmdPipelineBarrier(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009848 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009849 VkPipelineStageFlags srcStageMask,
Jesse Hall3fbc8562015-11-29 22:10:52 -08009850 VkPipelineStageFlags dstStageMask,
Jesse Halldc6d36c2015-11-29 19:12:15 -08009851 VkDependencyFlags dependencyFlags,
Jesse Hall3fbc8562015-11-29 22:10:52 -08009852 u32 memoryBarrierCount,
Jesse Hall3dd678a2016-01-08 21:52:01 -08009853 const VkMemoryBarrier* pMemoryBarriers,
9854 u32 bufferMemoryBarrierCount,
9855 const VkBufferMemoryBarrier* pBufferMemoryBarriers,
9856 u32 imageMemoryBarrierCount,
9857 const VkImageMemoryBarrier* pImageMemoryBarriers) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009858 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009859
Jesse Hall3dd678a2016-01-08 21:52:01 -08009860 memoryBarriers := pMemoryBarriers[0:memoryBarrierCount]
Jesse Hall3fbc8562015-11-29 22:10:52 -08009861 for i in (0 .. memoryBarrierCount) {
Jesse Hall3dd678a2016-01-08 21:52:01 -08009862 memoryBarrier := memoryBarriers[i]
9863 }
9864 bufferMemoryBarriers := pBufferMemoryBarriers[0:bufferMemoryBarrierCount]
9865 for i in (0 .. bufferMemoryBarrierCount) {
9866 bufferMemoryBarrier := bufferMemoryBarriers[i]
9867 bufferObject := GetBuffer(bufferMemoryBarrier.buffer)
9868 assert(bufferObject.device == commandBufferObject.device)
9869 }
9870 imageMemoryBarriers := pImageMemoryBarriers[0:imageMemoryBarrierCount]
9871 for i in (0 .. imageMemoryBarrierCount) {
9872 imageMemoryBarrier := imageMemoryBarriers[i]
9873 imageObject := GetImage(imageMemoryBarrier.image)
9874 assert(imageObject.device == commandBufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009875 }
9876}
9877
9878@threadSafety("app")
9879cmd void vkCmdBeginQuery(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009880 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009881 VkQueryPool queryPool,
Jesse Hall3dd678a2016-01-08 21:52:01 -08009882 u32 query,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009883 VkQueryControlFlags flags) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009884 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009885 queryPoolObject := GetQueryPool(queryPool)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009886 assert(commandBufferObject.device == queryPoolObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009887}
9888
9889@threadSafety("app")
9890cmd void vkCmdEndQuery(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009891 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009892 VkQueryPool queryPool,
Jesse Hall3dd678a2016-01-08 21:52:01 -08009893 u32 query) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009894 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009895 queryPoolObject := GetQueryPool(queryPool)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009896 assert(commandBufferObject.device == queryPoolObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009897}
9898
9899@threadSafety("app")
9900cmd void vkCmdResetQueryPool(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009901 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009902 VkQueryPool queryPool,
Jesse Hallf9fa9a52016-01-08 16:08:51 -08009903 u32 firstQuery,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009904 u32 queryCount) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009905 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009906 queryPoolObject := GetQueryPool(queryPool)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009907 assert(commandBufferObject.device == queryPoolObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009908}
9909
9910@threadSafety("app")
9911cmd void vkCmdWriteTimestamp(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009912 VkCommandBuffer commandBuffer,
Jesse Hall6f39a6d2015-11-24 11:08:36 -08009913 VkPipelineStageFlagBits pipelineStage,
Jesse Halla3a7a1d2015-11-24 11:37:23 -08009914 VkQueryPool queryPool,
Jesse Hall3dd678a2016-01-08 21:52:01 -08009915 u32 query) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009916 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halla3a7a1d2015-11-24 11:37:23 -08009917 queryPoolObject := GetQueryPool(queryPool)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009918 assert(commandBufferObject.device == queryPoolObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009919}
9920
9921@threadSafety("app")
9922cmd void vkCmdCopyQueryPoolResults(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009923 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009924 VkQueryPool queryPool,
Jesse Hallf9fa9a52016-01-08 16:08:51 -08009925 u32 firstQuery,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009926 u32 queryCount,
Jesse Hall3fbc8562015-11-29 22:10:52 -08009927 VkBuffer dstBuffer,
9928 VkDeviceSize dstOffset,
Jesse Halla9bb62b2015-11-21 19:31:56 -08009929 VkDeviceSize stride,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009930 VkQueryResultFlags flags) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009931 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009932 queryPoolObject := GetQueryPool(queryPool)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009933 dstBufferObject := GetBuffer(dstBuffer)
9934 assert(commandBufferObject.device == queryPoolObject.device)
9935 assert(commandBufferObject.device == dstBufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009936}
9937
9938cmd void vkCmdPushConstants(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009939 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009940 VkPipelineLayout layout,
9941 VkShaderStageFlags stageFlags,
Jesse Hall03b6fe12015-11-24 12:44:21 -08009942 u32 offset,
9943 u32 size,
Jesse Hallf4ab2b12015-11-30 16:04:55 -08009944 const void* pValues) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009945 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009946 layoutObject := GetPipelineLayout(layout)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009947 assert(commandBufferObject.device == layoutObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009948}
9949
9950@threadSafety("app")
9951cmd void vkCmdBeginRenderPass(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009952 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009953 const VkRenderPassBeginInfo* pRenderPassBegin,
Jesse Hall65ab5522015-11-30 00:07:16 -08009954 VkSubpassContents contents) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009955 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009956 renderPassObject := GetRenderPass(pRenderPassBegin.renderPass)
9957 framebufferObject := GetFramebuffer(pRenderPassBegin.framebuffer)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009958 assert(commandBufferObject.device == renderPassObject.device)
9959 assert(commandBufferObject.device == framebufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009960
Jesse Hall3fbc8562015-11-29 22:10:52 -08009961 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009962}
9963
9964cmd void vkCmdNextSubpass(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009965 VkCommandBuffer commandBuffer,
Jesse Hall65ab5522015-11-30 00:07:16 -08009966 VkSubpassContents contents) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009967 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009968}
9969
9970@threadSafety("app")
9971cmd void vkCmdEndRenderPass(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009972 VkCommandBuffer commandBuffer) {
9973 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009974
Jesse Hall3fbc8562015-11-29 22:10:52 -08009975 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009976}
9977
9978cmd void vkCmdExecuteCommands(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009979 VkCommandBuffer commandBuffer,
Jesse Hall3dd678a2016-01-08 21:52:01 -08009980 u32 commandBufferCount,
Jesse Hall3fbc8562015-11-29 22:10:52 -08009981 const VkCommandBuffer* pCommandBuffers) {
9982 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009983
Jesse Hall3dd678a2016-01-08 21:52:01 -08009984 commandBuffers := pCommandBuffers[0:commandBufferCount]
9985 for i in (0 .. commandBufferCount) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009986 secondaryCommandBuffer := commandBuffers[i]
9987 secondaryCommandBufferObject := GetCommandBuffer(secondaryCommandBuffer)
9988 assert(commandBufferObject.device == secondaryCommandBufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009989 }
9990}
9991
Ian Elliott28bd2c32017-10-13 09:21:12 -06009992//@vulkan1_1 functions
Daniel Koch09f7bf92017-10-05 00:26:58 -04009993
Ian Elliott28bd2c32017-10-13 09:21:12 -06009994@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009995cmd VkResult vkEnumerateInstanceVersion(
9996 u32* pApiVersion) {
9997 return ?
9998}
9999
Ian Elliott28bd2c32017-10-13 09:21:12 -060010000@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -040010001cmd VkResult vkBindBufferMemory2(
10002 VkDevice device,
10003 u32 bindInfoCount,
10004 const VkBindBufferMemoryInfo* pBindInfos) {
10005 return ?
10006}
10007
Ian Elliott28bd2c32017-10-13 09:21:12 -060010008@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -040010009cmd VkResult vkBindImageMemory2(
10010 VkDevice device,
10011 u32 bindInfoCount,
10012 const VkBindImageMemoryInfo* pBindInfos) {
10013 return ?
10014}
10015
Ian Elliott28bd2c32017-10-13 09:21:12 -060010016@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -040010017cmd void vkGetDeviceGroupPeerMemoryFeatures(
10018 VkDevice device,
10019 u32 heapIndex,
10020 u32 localDeviceIndex,
10021 u32 remoteDeviceIndex,
10022 VkPeerMemoryFeatureFlags* pPeerMemoryFeatures) {
10023}
10024
Ian Elliott28bd2c32017-10-13 09:21:12 -060010025@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -040010026cmd void vkCmdSetDeviceMask(
10027 VkCommandBuffer commandBuffer,
10028 u32 deviceMask) {
10029}
10030
Ian Elliott28bd2c32017-10-13 09:21:12 -060010031@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -040010032cmd void vkCmdDispatchBase(
10033 VkCommandBuffer commandBuffer,
10034 u32 baseGroupX,
10035 u32 baseGroupY,
10036 u32 baseGroupZ,
10037 u32 groupCountX,
10038 u32 groupCountY,
10039 u32 groupCountZ) {
10040}
10041
10042@threadSafety("system")
Ian Elliott28bd2c32017-10-13 09:21:12 -060010043@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -040010044cmd VkResult vkEnumeratePhysicalDeviceGroups(
10045 VkInstance instance,
10046 u32* pPhysicalDeviceGroupCount,
10047 VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties) {
10048 instanceObject := GetInstance(instance)
10049
10050 physicalDeviceGroupCount := as!u32(?)
10051 pPhysicalDeviceGroupCount[0] = physicalDeviceGroupCount
10052 physicalDevices := pPhysicalDeviceGroupProperties[0:physicalDeviceGroupCount]
10053
10054 for i in (0 .. physicalDeviceGroupCount) {
10055 physicalDevice := ?
10056 physicalDevices[i] = physicalDevice
10057 if !(physicalDevice in State.PhysicalDevices) {
10058 State.PhysicalDevices[physicalDevice] = new!PhysicalDeviceObject(instance: instance)
10059 }
10060 }
10061
10062 return ?
10063}
10064
Ian Elliott28bd2c32017-10-13 09:21:12 -060010065@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -040010066cmd void vkGetImageMemoryRequirements2(
10067 VkDevice device,
10068 const VkImageMemoryRequirementsInfo2* pInfo,
10069 VkMemoryRequirements2* pMemoryRequirements) {
10070}
10071
Ian Elliott28bd2c32017-10-13 09:21:12 -060010072@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -040010073cmd void vkGetBufferMemoryRequirements2(
10074 VkDevice device,
10075 const VkBufferMemoryRequirementsInfo2* pInfo,
10076 VkMemoryRequirements2* pMemoryRequirements) {
10077}
10078
Ian Elliott28bd2c32017-10-13 09:21:12 -060010079@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -040010080cmd void vkGetImageSparseMemoryRequirements2(
10081 VkDevice device,
10082 const VkImageSparseMemoryRequirementsInfo2* pInfo,
10083 u32* pSparseMemoryRequirementCount,
10084 VkSparseImageMemoryRequirements2* pSparseMemoryRequirements) {
10085}
10086
Ian Elliott28bd2c32017-10-13 09:21:12 -060010087@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -040010088cmd void vkGetPhysicalDeviceFeatures2(
10089 VkPhysicalDevice physicalDevice,
10090 VkPhysicalDeviceFeatures2* pFeatures) {
10091}
10092
Ian Elliott28bd2c32017-10-13 09:21:12 -060010093@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -040010094cmd void vkGetPhysicalDeviceProperties2(
10095 VkPhysicalDevice physicalDevice,
10096 VkPhysicalDeviceProperties2* pProperties) {
10097}
10098
Ian Elliott28bd2c32017-10-13 09:21:12 -060010099@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -040010100cmd void vkGetPhysicalDeviceFormatProperties2(
10101 VkPhysicalDevice physicalDevice,
10102 VkFormat format,
10103 VkFormatProperties2* pFormatProperties) {
10104}
10105
Ian Elliott28bd2c32017-10-13 09:21:12 -060010106@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -040010107cmd VkResult vkGetPhysicalDeviceImageFormatProperties2(
10108 VkPhysicalDevice physicalDevice,
10109 const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo,
10110 VkImageFormatProperties2* pImageFormatProperties) {
10111 return ?
10112}
10113
Ian Elliott28bd2c32017-10-13 09:21:12 -060010114@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -040010115cmd void vkGetPhysicalDeviceQueueFamilyProperties2(
10116 VkPhysicalDevice physicalDevice,
10117 u32* pQueueFamilyPropertyCount,
10118 VkQueueFamilyProperties2* pQueueFamilyProperties) {
10119}
10120
Ian Elliott28bd2c32017-10-13 09:21:12 -060010121@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -040010122cmd void vkGetPhysicalDeviceMemoryProperties2(
10123 VkPhysicalDevice physicalDevice,
10124 VkPhysicalDeviceMemoryProperties2* pMemoryProperties) {
10125}
10126
Ian Elliott28bd2c32017-10-13 09:21:12 -060010127@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -040010128cmd void vkGetPhysicalDeviceSparseImageFormatProperties2(
10129 VkPhysicalDevice physicalDevice,
10130 const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo,
10131 u32* pPropertyCount,
10132 VkSparseImageFormatProperties2* pProperties) {
10133}
10134
Ian Elliott28bd2c32017-10-13 09:21:12 -060010135@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -040010136cmd void vkTrimCommandPool(
10137 VkDevice device,
10138 VkCommandPool commandPool,
10139 VkCommandPoolTrimFlags flags) {
10140}
10141
10142
Ian Elliott28bd2c32017-10-13 09:21:12 -060010143@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -040010144cmd void vkGetDeviceQueue2(
10145 VkDevice device,
10146 const VkDeviceQueueInfo2* pQueueInfo,
10147 VkQueue* pQueue) {
10148 deviceObject := GetDevice(device)
10149
10150 queue := ?
10151 pQueue[0] = queue
10152
10153 if !(queue in State.Queues) {
10154 State.Queues[queue] = new!QueueObject(device: device)
10155 }
10156}
10157
Ian Elliott28bd2c32017-10-13 09:21:12 -060010158@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -040010159cmd VkResult vkCreateSamplerYcbcrConversion(
10160 VkDevice device,
10161 const VkSamplerYcbcrConversionCreateInfo* pCreateInfo,
10162 const VkAllocationCallbacks* pAllocator,
10163 VkSamplerYcbcrConversion* pYcbcrConversion) {
10164 return ?
10165}
10166
Ian Elliott28bd2c32017-10-13 09:21:12 -060010167@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -040010168cmd void vkDestroySamplerYcbcrConversion(
10169 VkDevice device,
10170 VkSamplerYcbcrConversion ycbcrConversion,
10171 const VkAllocationCallbacks* pAllocator) {
10172}
10173
Ian Elliott28bd2c32017-10-13 09:21:12 -060010174@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -040010175cmd VkResult vkCreateDescriptorUpdateTemplate(
10176 VkDevice device,
10177 const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo,
10178 const VkAllocationCallbacks* pAllocator,
10179 VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate) {
10180 return ?
10181}
10182
Ian Elliott28bd2c32017-10-13 09:21:12 -060010183@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -040010184cmd void vkDestroyDescriptorUpdateTemplate(
10185 VkDevice device,
10186 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
10187 const VkAllocationCallbacks* pAllocator) {
10188}
10189
Ian Elliott28bd2c32017-10-13 09:21:12 -060010190@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -040010191cmd void vkUpdateDescriptorSetWithTemplate(
10192 VkDevice device,
10193 VkDescriptorSet descriptorSet,
10194 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
10195 const void* pData) {
10196}
10197
Ian Elliott28bd2c32017-10-13 09:21:12 -060010198@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -040010199cmd void vkGetPhysicalDeviceExternalBufferProperties(
10200 VkPhysicalDevice physicalDevice,
10201 const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo,
10202 VkExternalBufferProperties* pExternalBufferProperties) {
10203}
10204
Ian Elliott28bd2c32017-10-13 09:21:12 -060010205@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -040010206cmd void vkGetPhysicalDeviceExternalFenceProperties(
10207 VkPhysicalDevice physicalDevice,
10208 const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo,
10209 VkExternalFenceProperties* pExternalFenceProperties) {
10210}
10211
Ian Elliott28bd2c32017-10-13 09:21:12 -060010212@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -040010213cmd void vkGetPhysicalDeviceExternalSemaphoreProperties(
10214 VkPhysicalDevice physicalDevice,
10215 const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo,
10216 VkExternalSemaphoreProperties* pExternalSemaphoreProperties) {
10217}
10218
Ian Elliott28bd2c32017-10-13 09:21:12 -060010219@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -040010220cmd void vkGetDescriptorSetLayoutSupport(
10221 VkDevice device,
10222 const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
10223 VkDescriptorSetLayoutSupport* pSupport) {
10224}
10225
10226
Jesse Hallad250842017-03-10 18:35:38 -080010227@extension("VK_KHR_surface") // 1
Jesse Hall1356b0d2015-11-23 17:24:58 -080010228cmd void vkDestroySurfaceKHR(
10229 VkInstance instance,
Jesse Hall0e74f002015-11-30 11:37:59 -080010230 VkSurfaceKHR surface,
10231 const VkAllocationCallbacks* pAllocator) {
Jesse Hall1356b0d2015-11-23 17:24:58 -080010232 instanceObject := GetInstance(instance)
10233 surfaceObject := GetSurface(surface)
10234 assert(surfaceObject.instance == instance)
Michael Lentine88594d72015-11-12 12:49:45 -080010235
Jesse Hall1356b0d2015-11-23 17:24:58 -080010236 State.Surfaces[surface] = null
Jesse Hall2818f932015-11-19 21:19:17 -080010237}
10238
Jesse Hallad250842017-03-10 18:35:38 -080010239@extension("VK_KHR_surface") // 1
Jesse Halla6429252015-11-29 18:59:42 -080010240cmd VkResult vkGetPhysicalDeviceSurfaceSupportKHR(
Jesse Hall1356b0d2015-11-23 17:24:58 -080010241 VkPhysicalDevice physicalDevice,
10242 u32 queueFamilyIndex,
Jesse Hall1356b0d2015-11-23 17:24:58 -080010243 VkSurfaceKHR surface,
Jesse Hallb00daad2015-11-29 19:46:20 -080010244 VkBool32* pSupported) {
10245 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
Michael Lentine88594d72015-11-12 12:49:45 -080010246
10247 return ?
10248}
10249
Jesse Hallad250842017-03-10 18:35:38 -080010250@extension("VK_KHR_surface") // 1
Jesse Hallb00daad2015-11-29 19:46:20 -080010251cmd VkResult vkGetPhysicalDeviceSurfaceCapabilitiesKHR(
10252 VkPhysicalDevice physicalDevice,
10253 VkSurfaceKHR surface,
10254 VkSurfaceCapabilitiesKHR* pSurfaceCapabilities) {
10255 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
10256
10257 surfaceCapabilities := ?
10258 pSurfaceCapabilities[0] = surfaceCapabilities
10259
10260 return ?
10261}
10262
Jesse Hallad250842017-03-10 18:35:38 -080010263@extension("VK_KHR_surface") // 1
Jesse Hallb00daad2015-11-29 19:46:20 -080010264cmd VkResult vkGetPhysicalDeviceSurfaceFormatsKHR(
10265 VkPhysicalDevice physicalDevice,
Jesse Hall1356b0d2015-11-23 17:24:58 -080010266 VkSurfaceKHR surface,
Jesse Hall03b6fe12015-11-24 12:44:21 -080010267 u32* pSurfaceFormatCount,
Jesse Hall1356b0d2015-11-23 17:24:58 -080010268 VkSurfaceFormatKHR* pSurfaceFormats) {
Jesse Hallb00daad2015-11-29 19:46:20 -080010269 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
Michael Lentine88594d72015-11-12 12:49:45 -080010270
10271 count := as!u32(?)
Jesse Hall03b6fe12015-11-24 12:44:21 -080010272 pSurfaceFormatCount[0] = count
Michael Lentine88594d72015-11-12 12:49:45 -080010273 surfaceFormats := pSurfaceFormats[0:count]
10274
10275 for i in (0 .. count) {
10276 surfaceFormat := ?
10277 surfaceFormats[i] = surfaceFormat
10278 }
10279
10280 return ?
10281}
10282
Jesse Hallad250842017-03-10 18:35:38 -080010283@extension("VK_KHR_surface") // 1
Jesse Hallb00daad2015-11-29 19:46:20 -080010284cmd VkResult vkGetPhysicalDeviceSurfacePresentModesKHR(
10285 VkPhysicalDevice physicalDevice,
Jesse Hall1356b0d2015-11-23 17:24:58 -080010286 VkSurfaceKHR surface,
Jesse Hall03b6fe12015-11-24 12:44:21 -080010287 u32* pPresentModeCount,
Jesse Hall1356b0d2015-11-23 17:24:58 -080010288 VkPresentModeKHR* pPresentModes) {
Jesse Hallb00daad2015-11-29 19:46:20 -080010289 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
Michael Lentine88594d72015-11-12 12:49:45 -080010290
10291 count := as!u32(?)
Jesse Hall03b6fe12015-11-24 12:44:21 -080010292 pPresentModeCount[0] = count
Michael Lentine88594d72015-11-12 12:49:45 -080010293 presentModes := pPresentModes[0:count]
10294
10295 for i in (0 .. count) {
10296 presentMode := ?
10297 presentModes[i] = presentMode
10298 }
10299
10300 return ?
10301}
10302
Jesse Hallad250842017-03-10 18:35:38 -080010303@extension("VK_KHR_swapchain") // 2
Michael Lentine88594d72015-11-12 12:49:45 -080010304cmd VkResult vkCreateSwapchainKHR(
10305 VkDevice device,
10306 const VkSwapchainCreateInfoKHR* pCreateInfo,
Jesse Hall0e74f002015-11-30 11:37:59 -080010307 const VkAllocationCallbacks* pAllocator,
Michael Lentine88594d72015-11-12 12:49:45 -080010308 VkSwapchainKHR* pSwapchain) {
Jesse Hall1356b0d2015-11-23 17:24:58 -080010309 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR)
Michael Lentine88594d72015-11-12 12:49:45 -080010310 deviceObject := GetDevice(device)
10311
10312 swapchain := ?
10313 pSwapchain[0] = swapchain
10314 State.Swapchains[swapchain] = new!SwapchainObject(device: device)
10315
10316 return ?
10317}
10318
Jesse Hallad250842017-03-10 18:35:38 -080010319@extension("VK_KHR_swapchain") // 2
Jesse Hall1356b0d2015-11-23 17:24:58 -080010320cmd void vkDestroySwapchainKHR(
Michael Lentine88594d72015-11-12 12:49:45 -080010321 VkDevice device,
Jesse Hall0e74f002015-11-30 11:37:59 -080010322 VkSwapchainKHR swapchain,
10323 const VkAllocationCallbacks* pAllocator) {
Michael Lentine88594d72015-11-12 12:49:45 -080010324 deviceObject := GetDevice(device)
10325 swapchainObject := GetSwapchain(swapchain)
10326 assert(swapchainObject.device == device)
10327
10328 State.Swapchains[swapchain] = null
Michael Lentine88594d72015-11-12 12:49:45 -080010329}
10330
Jesse Hallad250842017-03-10 18:35:38 -080010331@extension("VK_KHR_swapchain") // 2
Michael Lentine88594d72015-11-12 12:49:45 -080010332cmd VkResult vkGetSwapchainImagesKHR(
10333 VkDevice device,
10334 VkSwapchainKHR swapchain,
Jesse Hall03b6fe12015-11-24 12:44:21 -080010335 u32* pSwapchainImageCount,
Michael Lentine88594d72015-11-12 12:49:45 -080010336 VkImage* pSwapchainImages) {
10337 deviceObject := GetDevice(device)
10338
10339 count := as!u32(?)
Jesse Hall03b6fe12015-11-24 12:44:21 -080010340 pSwapchainImageCount[0] = count
Michael Lentine88594d72015-11-12 12:49:45 -080010341 swapchainImages := pSwapchainImages[0:count]
10342
10343 for i in (0 .. count) {
10344 swapchainImage := ?
10345 swapchainImages[i] = swapchainImage
Jesse Hall1356b0d2015-11-23 17:24:58 -080010346 State.Images[swapchainImage] = new!ImageObject(device: device)
Michael Lentine88594d72015-11-12 12:49:45 -080010347 }
10348
10349 return ?
10350}
10351
Jesse Hallad250842017-03-10 18:35:38 -080010352@extension("VK_KHR_swapchain") // 2
Michael Lentine88594d72015-11-12 12:49:45 -080010353cmd VkResult vkAcquireNextImageKHR(
10354 VkDevice device,
10355 VkSwapchainKHR swapchain,
10356 u64 timeout,
10357 VkSemaphore semaphore,
Jesse Hall1356b0d2015-11-23 17:24:58 -080010358 VkFence fence,
Michael Lentine88594d72015-11-12 12:49:45 -080010359 u32* pImageIndex) {
10360 deviceObject := GetDevice(device)
10361 swapchainObject := GetSwapchain(swapchain)
10362
10363 imageIndex := ?
10364 pImageIndex[0] = imageIndex
10365
10366 return ?
10367}
10368
Jesse Hallad250842017-03-10 18:35:38 -080010369@extension("VK_KHR_swapchain") // 2
Michael Lentine88594d72015-11-12 12:49:45 -080010370cmd VkResult vkQueuePresentKHR(
10371 VkQueue queue,
Jesse Hallf4ab2b12015-11-30 16:04:55 -080010372 const VkPresentInfoKHR* pPresentInfo) {
Michael Lentine88594d72015-11-12 12:49:45 -080010373 queueObject := GetQueue(queue)
10374
10375 presentInfo := ?
10376 pPresentInfo[0] = presentInfo
10377
10378 return ?
10379}
10380
Ian Elliott28bd2c32017-10-13 09:21:12 -060010381@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -040010382@extension("VK_KHR_swapchain") // 2
10383cmd VkResult vkGetDeviceGroupPresentCapabilitiesKHR(
10384 VkDevice device,
10385 VkDeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities) {
10386 return ?
10387}
10388
Ian Elliott28bd2c32017-10-13 09:21:12 -060010389@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -040010390@extension("VK_KHR_swapchain") // 2
10391cmd VkResult vkGetDeviceGroupSurfacePresentModesKHR(
10392 VkDevice device,
10393 VkSurfaceKHR surface,
10394 VkDeviceGroupPresentModeFlagsKHR* pModes) {
10395 return ?
10396}
10397
Ian Elliott28bd2c32017-10-13 09:21:12 -060010398@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -040010399@extension("VK_KHR_swapchain") // 2
10400cmd VkResult vkGetPhysicalDevicePresentRectanglesKHR(
10401 VkPhysicalDevice physicalDevice,
10402 VkSurfaceKHR surface,
10403 u32* pRectCount,
10404 VkRect2D* pRects) {
10405 return ?
10406}
10407
Ian Elliott28bd2c32017-10-13 09:21:12 -060010408@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -040010409@extension("VK_KHR_swapchain") // 2
10410cmd VkResult vkAcquireNextImage2KHR(
10411 VkDevice device,
10412 const VkAcquireNextImageInfoKHR* pAcquireInfo,
10413 u32* pImageIndex) {
10414 return ?
10415}
10416
Jesse Hallad250842017-03-10 18:35:38 -080010417@extension("VK_KHR_display") // 3
Jesse Hall1356b0d2015-11-23 17:24:58 -080010418cmd VkResult vkGetPhysicalDeviceDisplayPropertiesKHR(
10419 VkPhysicalDevice physicalDevice,
Jesse Hall03b6fe12015-11-24 12:44:21 -080010420 u32* pPropertyCount,
Jesse Hall1356b0d2015-11-23 17:24:58 -080010421 VkDisplayPropertiesKHR* pProperties) {
10422 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
10423 return ?
10424}
10425
Jesse Hallad250842017-03-10 18:35:38 -080010426@extension("VK_KHR_display") // 3
Jesse Halla6429252015-11-29 18:59:42 -080010427cmd VkResult vkGetPhysicalDeviceDisplayPlanePropertiesKHR(
10428 VkPhysicalDevice physicalDevice,
10429 u32* pPropertyCount,
10430 VkDisplayPlanePropertiesKHR* pProperties) {
10431 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
10432 return ?
10433}
10434
Jesse Hallad250842017-03-10 18:35:38 -080010435@extension("VK_KHR_display") // 3
Jesse Halla6429252015-11-29 18:59:42 -080010436cmd VkResult vkGetDisplayPlaneSupportedDisplaysKHR(
10437 VkPhysicalDevice physicalDevice,
Jesse Hall3dd678a2016-01-08 21:52:01 -080010438 u32 planeIndex,
Jesse Hallf4ab2b12015-11-30 16:04:55 -080010439 u32* pDisplayCount,
10440 VkDisplayKHR* pDisplays) {
Jesse Halla6429252015-11-29 18:59:42 -080010441 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
10442 return ?
10443}
10444
Jesse Hallad250842017-03-10 18:35:38 -080010445@extension("VK_KHR_display") // 3
Jesse Hall1356b0d2015-11-23 17:24:58 -080010446cmd VkResult vkGetDisplayModePropertiesKHR(
10447 VkPhysicalDevice physicalDevice,
10448 VkDisplayKHR display,
Jesse Hall03b6fe12015-11-24 12:44:21 -080010449 u32* pPropertyCount,
10450 VkDisplayModePropertiesKHR* pProperties) {
Jesse Hall1356b0d2015-11-23 17:24:58 -080010451 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
10452 return ?
10453}
10454
Jesse Hallad250842017-03-10 18:35:38 -080010455@extension("VK_KHR_display") // 3
Jesse Hall1356b0d2015-11-23 17:24:58 -080010456cmd VkResult vkCreateDisplayModeKHR(
10457 VkPhysicalDevice physicalDevice,
10458 VkDisplayKHR display,
10459 const VkDisplayModeCreateInfoKHR* pCreateInfo,
Jesse Hall0e74f002015-11-30 11:37:59 -080010460 const VkAllocationCallbacks* pAllocator,
Jesse Hall1356b0d2015-11-23 17:24:58 -080010461 VkDisplayModeKHR* pMode) {
10462 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
10463 return ?
10464}
10465
Jesse Hallad250842017-03-10 18:35:38 -080010466@extension("VK_KHR_display") // 3
Jesse Halla6429252015-11-29 18:59:42 -080010467cmd VkResult vkGetDisplayPlaneCapabilitiesKHR(
Jesse Hall1356b0d2015-11-23 17:24:58 -080010468 VkPhysicalDevice physicalDevice,
Jesse Hall9ba8bc82015-11-30 16:22:16 -080010469 VkDisplayModeKHR mode,
Jesse Hall1356b0d2015-11-23 17:24:58 -080010470 u32 planeIndex,
Jesse Halla6429252015-11-29 18:59:42 -080010471 VkDisplayPlaneCapabilitiesKHR* pCapabilities) {
Jesse Hall1356b0d2015-11-23 17:24:58 -080010472 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
10473 return ?
10474}
10475
Jesse Hallad250842017-03-10 18:35:38 -080010476@extension("VK_KHR_display") // 3
Jesse Halla6429252015-11-29 18:59:42 -080010477cmd VkResult vkCreateDisplayPlaneSurfaceKHR(
10478 VkInstance instance,
10479 const VkDisplaySurfaceCreateInfoKHR* pCreateInfo,
Jesse Hall0e74f002015-11-30 11:37:59 -080010480 const VkAllocationCallbacks* pAllocator,
Jesse Halla6429252015-11-29 18:59:42 -080010481 VkSurfaceKHR* pSurface) {
10482 return ?
10483}
10484
Jesse Hallad250842017-03-10 18:35:38 -080010485@extension("VK_KHR_display_swapchain") // 4
Jesse Hall9ba8bc82015-11-30 16:22:16 -080010486cmd VkResult vkCreateSharedSwapchainsKHR(
10487 VkDevice device,
10488 u32 swapchainCount,
10489 const VkSwapchainCreateInfoKHR* pCreateInfos,
10490 const VkAllocationCallbacks* pAllocator,
10491 VkSwapchainKHR* pSwapchains) {
10492 return ?
10493}
10494
Jesse Hallad250842017-03-10 18:35:38 -080010495@extension("VK_KHR_xlib_surface") // 5
Jesse Halla6429252015-11-29 18:59:42 -080010496cmd VkResult vkCreateXlibSurfaceKHR(
Jesse Hall1356b0d2015-11-23 17:24:58 -080010497 VkInstance instance,
Jesse Hallf9fa9a52016-01-08 16:08:51 -080010498 const VkXlibSurfaceCreateInfoKHR* pCreateInfo,
Jesse Hall0e74f002015-11-30 11:37:59 -080010499 const VkAllocationCallbacks* pAllocator,
Jesse Hall1356b0d2015-11-23 17:24:58 -080010500 VkSurfaceKHR* pSurface) {
10501 instanceObject := GetInstance(instance)
10502 return ?
10503}
10504
Jesse Hallad250842017-03-10 18:35:38 -080010505@extension("VK_KHR_xlib_surface") // 5
Jesse Halla6429252015-11-29 18:59:42 -080010506cmd VkBool32 vkGetPhysicalDeviceXlibPresentationSupportKHR(
10507 VkPhysicalDevice physicalDevice,
10508 u32 queueFamilyIndex,
10509 platform.Display* dpy,
Jesse Hall65ab5522015-11-30 00:07:16 -080010510 platform.VisualID visualID) {
Jesse Halla6429252015-11-29 18:59:42 -080010511 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
10512 return ?
10513}
10514
Jesse Hallad250842017-03-10 18:35:38 -080010515@extension("VK_KHR_xcb_surface") // 6
Jesse Hallf9fa9a52016-01-08 16:08:51 -080010516cmd VkResult vkCreateXcbSurfaceKHR(
Jesse Hall1356b0d2015-11-23 17:24:58 -080010517 VkInstance instance,
Jesse Hallf9fa9a52016-01-08 16:08:51 -080010518 const VkXcbSurfaceCreateInfoKHR* pCreateInfo,
Jesse Hall0e74f002015-11-30 11:37:59 -080010519 const VkAllocationCallbacks* pAllocator,
Jesse Hall1356b0d2015-11-23 17:24:58 -080010520 VkSurfaceKHR* pSurface) {
10521 instanceObject := GetInstance(instance)
10522 return ?
10523}
10524
Jesse Hallad250842017-03-10 18:35:38 -080010525@extension("VK_KHR_xcb_surface") // 6
Jesse Halla6429252015-11-29 18:59:42 -080010526cmd VkBool32 vkGetPhysicalDeviceXcbPresentationSupportKHR(
10527 VkPhysicalDevice physicalDevice,
10528 u32 queueFamilyIndex,
10529 platform.xcb_connection_t* connection,
10530 platform.xcb_visualid_t visual_id) {
10531 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
10532 return ?
10533}
10534
Jesse Hallad250842017-03-10 18:35:38 -080010535@extension("VK_KHR_wayland_surface") // 7
Jesse Hall1356b0d2015-11-23 17:24:58 -080010536cmd VkResult vkCreateWaylandSurfaceKHR(
10537 VkInstance instance,
Jesse Hallf9fa9a52016-01-08 16:08:51 -080010538 const VkWaylandSurfaceCreateInfoKHR* pCreateInfo,
Jesse Hall0e74f002015-11-30 11:37:59 -080010539 const VkAllocationCallbacks* pAllocator,
Jesse Hall1356b0d2015-11-23 17:24:58 -080010540 VkSurfaceKHR* pSurface) {
10541 instanceObject := GetInstance(instance)
10542 return ?
10543}
10544
Jesse Hallad250842017-03-10 18:35:38 -080010545@extension("VK_KHR_wayland_surface") // 7
Jesse Halla6429252015-11-29 18:59:42 -080010546cmd VkBool32 vkGetPhysicalDeviceWaylandPresentationSupportKHR(
10547 VkPhysicalDevice physicalDevice,
10548 u32 queueFamilyIndex,
10549 platform.wl_display* display) {
10550 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
10551 return ?
10552}
10553
Jesse Hallad250842017-03-10 18:35:38 -080010554@extension("VK_KHR_android_surface") // 9
Jesse Hall1356b0d2015-11-23 17:24:58 -080010555cmd VkResult vkCreateAndroidSurfaceKHR(
10556 VkInstance instance,
Jesse Hallf9fa9a52016-01-08 16:08:51 -080010557 const VkAndroidSurfaceCreateInfoKHR* pCreateInfo,
Jesse Hall0e74f002015-11-30 11:37:59 -080010558 const VkAllocationCallbacks* pAllocator,
Jesse Hall1356b0d2015-11-23 17:24:58 -080010559 VkSurfaceKHR* pSurface) {
10560 instanceObject := GetInstance(instance)
10561 return ?
10562}
10563
Jesse Hallad250842017-03-10 18:35:38 -080010564@extension("VK_KHR_win32_surface") // 10
Jesse Hall1356b0d2015-11-23 17:24:58 -080010565cmd VkResult vkCreateWin32SurfaceKHR(
10566 VkInstance instance,
Jesse Hallf9fa9a52016-01-08 16:08:51 -080010567 const VkWin32SurfaceCreateInfoKHR* pCreateInfo,
Jesse Hall0e74f002015-11-30 11:37:59 -080010568 const VkAllocationCallbacks* pAllocator,
Jesse Hall1356b0d2015-11-23 17:24:58 -080010569 VkSurfaceKHR* pSurface) {
10570 instanceObject := GetInstance(instance)
10571 return ?
10572}
10573
Jesse Hallad250842017-03-10 18:35:38 -080010574@extension("VK_KHR_win32_surface") // 10
Jesse Halla6429252015-11-29 18:59:42 -080010575cmd VkResult vkGetPhysicalDeviceWin32PresentationSupportKHR(
10576 VkPhysicalDevice physicalDevice,
10577 u32 queueFamilyIndex) {
Jesse Halle2948d82016-02-25 04:19:32 -080010578 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
Jesse Halla6429252015-11-29 18:59:42 -080010579 return ?
10580}
10581
Jesse Hallad250842017-03-10 18:35:38 -080010582@extension("VK_ANDROID_native_buffer") // 11
Jesse Halld1abd742017-02-09 21:45:51 -080010583@optional
Chia-I Wub262ddc2016-03-22 07:38:20 +080010584cmd VkResult vkGetSwapchainGrallocUsageANDROID(
10585 VkDevice device,
10586 VkFormat format,
10587 VkImageUsageFlags imageUsage,
Jesse Halld1abd742017-02-09 21:45:51 -080010588 s32* grallocUsage) {
Chia-I Wub262ddc2016-03-22 07:38:20 +080010589 return ?
10590}
10591
Jesse Hallad250842017-03-10 18:35:38 -080010592@extension("VK_ANDROID_native_buffer") // 11
Jesse Halld1abd742017-02-09 21:45:51 -080010593@optional
Chris Forbes8e4438b2016-12-07 16:26:49 +130010594cmd VkResult vkGetSwapchainGrallocUsage2ANDROID(
10595 VkDevice device,
10596 VkFormat format,
10597 VkImageUsageFlags imageUsage,
10598 VkSwapchainImageUsageFlagsANDROID swapchainImageUsage,
Jesse Halld1abd742017-02-09 21:45:51 -080010599 u64* grallocConsumerUsage,
10600 u64* grallocProducerUsage) {
Chris Forbes8e4438b2016-12-07 16:26:49 +130010601 return ?
10602}
10603
Jesse Hallad250842017-03-10 18:35:38 -080010604@extension("VK_ANDROID_native_buffer") // 11
Chia-I Wub262ddc2016-03-22 07:38:20 +080010605cmd VkResult vkAcquireImageANDROID(
10606 VkDevice device,
10607 VkImage image,
10608 int nativeFenceFd,
10609 VkSemaphore semaphore,
10610 VkFence fence) {
10611 return ?
10612}
10613
Jesse Hallad250842017-03-10 18:35:38 -080010614@extension("VK_ANDROID_native_buffer") // 11
Chia-I Wub262ddc2016-03-22 07:38:20 +080010615cmd VkResult vkQueueSignalReleaseImageANDROID(
10616 VkQueue queue,
10617 u32 waitSemaphoreCount,
10618 const VkSemaphore* pWaitSemaphores,
10619 VkImage image,
10620 int* pNativeFenceFd) {
10621 return ?
10622}
10623
Jesse Hallad250842017-03-10 18:35:38 -080010624@extension("VK_EXT_debug_report") // 12
10625@external type void* PFN_vkDebugReportCallbackEXT
10626@extension("VK_EXT_debug_report") // 12
10627@pfn cmd VkBool32 vkDebugReportCallbackEXT(
10628 VkDebugReportFlagsEXT flags,
10629 VkDebugReportObjectTypeEXT objectType,
10630 u64 object,
10631 platform.size_t location,
10632 s32 messageCode,
10633 const char* pLayerPrefix,
10634 const char* pMessage,
10635 void* pUserData) {
10636 return ?
10637}
10638
10639@extension("VK_EXT_debug_report") // 12
10640cmd VkResult vkCreateDebugReportCallbackEXT(
10641 VkInstance instance,
10642 const VkDebugReportCallbackCreateInfoEXT* pCreateInfo,
10643 const VkAllocationCallbacks* pAllocator,
10644 VkDebugReportCallbackEXT* pCallback) {
10645 return ?
10646}
10647
10648@extension("VK_EXT_debug_report") // 12
10649cmd void vkDestroyDebugReportCallbackEXT(
10650 VkInstance instance,
10651 VkDebugReportCallbackEXT callback,
10652 const VkAllocationCallbacks* pAllocator) {
10653}
10654
10655@extension("VK_EXT_debug_report") // 12
10656cmd void vkDebugReportMessageEXT(
10657 VkInstance instance,
10658 VkDebugReportFlagsEXT flags,
10659 VkDebugReportObjectTypeEXT objectType,
10660 u64 object,
10661 platform.size_t location,
10662 s32 messageCode,
10663 const char* pLayerPrefix,
10664 const char* pMessage) {
10665}
10666
10667@extension("VK_EXT_debug_marker") // 23
10668cmd VkResult vkDebugMarkerSetObjectTagEXT(
10669 VkDevice device,
Jesse Hall77726222017-09-19 14:49:27 -050010670 const VkDebugMarkerObjectTagInfoEXT* pTagInfo) {
Jesse Hallad250842017-03-10 18:35:38 -080010671 return ?
10672}
10673
10674@extension("VK_EXT_debug_marker") // 23
10675cmd VkResult vkDebugMarkerSetObjectNameEXT(
10676 VkDevice device,
Jesse Hall77726222017-09-19 14:49:27 -050010677 const VkDebugMarkerObjectNameInfoEXT* pNameInfo) {
Jesse Hallad250842017-03-10 18:35:38 -080010678 return ?
10679}
10680
10681@extension("VK_EXT_debug_marker") // 23
10682cmd void vkCmdDebugMarkerBeginEXT(
10683 VkCommandBuffer commandBuffer,
Jesse Hall77726222017-09-19 14:49:27 -050010684 const VkDebugMarkerMarkerInfoEXT* pMarkerInfo) {
Jesse Hallad250842017-03-10 18:35:38 -080010685}
10686
10687@extension("VK_EXT_debug_marker") // 23
10688cmd void vkCmdDebugMarkerEndEXT(
10689 VkCommandBuffer commandBuffer) {
10690}
10691
10692@extension("VK_EXT_debug_marker") // 23
10693cmd void vkCmdDebugMarkerInsertEXT(
10694 VkCommandBuffer commandBuffer,
Jesse Hall77726222017-09-19 14:49:27 -050010695 const VkDebugMarkerMarkerInfoEXT* pMarkerInfo) {
Jesse Hallad250842017-03-10 18:35:38 -080010696}
10697
Jesse Hallf47e8f82018-10-27 23:41:45 -070010698@extension("VK_EXT_transform_feedback") // 29
10699cmd void vkCmdBindTransformFeedbackBuffersEXT(
10700 VkCommandBuffer commandBuffer,
10701 u32 firstBinding,
10702 u32 bindingCount,
10703 const VkBuffer* pBuffers,
10704 const VkDeviceSize* pOffsets,
10705 const VkDeviceSize* pSizes) {
10706}
10707
10708@extension("VK_EXT_transform_feedback") // 29
10709cmd void vkCmdBeginTransformFeedbackEXT(
10710 VkCommandBuffer commandBuffer,
10711 u32 firstCounterBuffer,
10712 u32 counterBufferCount,
10713 const VkBuffer* pCounterBuffers,
10714 const VkDeviceSize* pCounterBufferOffsets) {
10715}
10716
10717@extension("VK_EXT_transform_feedback") // 29
10718cmd void vkCmdEndTransformFeedbackEXT(
10719 VkCommandBuffer commandBuffer,
10720 u32 firstCounterBuffer,
10721 u32 counterBufferCount,
10722 const VkBuffer* pCounterBuffers,
10723 const VkDeviceSize* pCounterBufferOffsets) {
10724}
10725
10726@extension("VK_EXT_transform_feedback") // 29
10727cmd void vkCmdBeginQueryIndexedEXT(
10728 VkCommandBuffer commandBuffer,
10729 VkQueryPool queryPool,
10730 u32 query,
10731 VkQueryControlFlags flags,
10732 u32 index) {
10733}
10734
10735@extension("VK_EXT_transform_feedback") // 29
10736cmd void vkCmdEndQueryIndexedEXT(
10737 VkCommandBuffer commandBuffer,
10738 VkQueryPool queryPool,
10739 u32 query,
10740 u32 index) {
10741}
10742
10743@extension("VK_EXT_transform_feedback") // 29
10744cmd void vkCmdDrawIndirectByteCountEXT(
10745 VkCommandBuffer commandBuffer,
10746 u32 instanceCount,
10747 u32 firstInstance,
10748 VkBuffer counterBuffer,
10749 VkDeviceSize counterBufferOffset,
10750 u32 counterOffset,
10751 u32 vertexStride) {
10752}
10753
Jesse Hallad250842017-03-10 18:35:38 -080010754@extension("VK_AMD_draw_indirect_count") // 34
10755cmd void vkCmdDrawIndirectCountAMD(
10756 VkCommandBuffer commandBuffer,
10757 VkBuffer buffer,
10758 VkDeviceSize offset,
10759 VkBuffer countBuffer,
10760 VkDeviceSize countBufferOffset,
10761 u32 maxDrawCount,
10762 u32 stride) {
10763}
10764
10765@extension("VK_AMD_draw_indirect_count") // 34
10766cmd void vkCmdDrawIndexedIndirectCountAMD(
10767 VkCommandBuffer commandBuffer,
10768 VkBuffer buffer,
10769 VkDeviceSize offset,
10770 VkBuffer countBuffer,
10771 VkDeviceSize countBufferOffset,
10772 u32 maxDrawCount,
10773 u32 stride) {
10774}
10775
Jesse Hall8c954d32018-01-17 22:06:20 -080010776@extension("VK_AMD_shader_info") // 43
10777cmd VkResult vkGetShaderInfoAMD(
10778 VkDevice device,
10779 VkPipeline pipeline,
10780 VkShaderStageFlagBits shaderStage,
10781 VkShaderInfoTypeAMD infoType,
10782 platform.size_t* pInfoSize,
10783 void* pInfo) {
10784 return ?
10785}
10786
Jesse Hallad250842017-03-10 18:35:38 -080010787@extension("VK_NV_external_memory_capabilities") // 56
10788cmd VkResult vkGetPhysicalDeviceExternalImageFormatPropertiesNV(
10789 VkPhysicalDevice physicalDevice,
10790 VkFormat format,
10791 VkImageType type,
10792 VkImageTiling tiling,
10793 VkImageUsageFlags usage,
10794 VkImageCreateFlags flags,
10795 VkExternalMemoryHandleTypeFlagsNV externalHandleType,
10796 VkExternalImageFormatPropertiesNV* pExternalImageFormatProperties) {
10797 return ?
10798}
10799
10800@extension("VK_NV_external_memory_win32") // 58
10801cmd VkResult vkGetMemoryWin32HandleNV(
10802 VkDevice device,
10803 VkDeviceMemory memory,
10804 VkExternalMemoryHandleTypeFlagsNV handleType,
10805 platform.HANDLE* pHandle) {
10806 return ?
10807}
10808
10809@extension("VK_KHR_get_physical_device_properties2") // 60
10810cmd void vkGetPhysicalDeviceFeatures2KHR(
10811 VkPhysicalDevice physicalDevice,
10812 VkPhysicalDeviceFeatures2KHR* pFeatures) {
10813}
10814
10815@extension("VK_KHR_get_physical_device_properties2") // 60
10816cmd void vkGetPhysicalDeviceProperties2KHR(
10817 VkPhysicalDevice physicalDevice,
10818 VkPhysicalDeviceProperties2KHR* pProperties) {
10819}
10820
10821@extension("VK_KHR_get_physical_device_properties2") // 60
10822cmd void vkGetPhysicalDeviceFormatProperties2KHR(
10823 VkPhysicalDevice physicalDevice,
10824 VkFormat format,
10825 VkFormatProperties2KHR* pFormatProperties) {
10826}
10827
10828@extension("VK_KHR_get_physical_device_properties2") // 60
10829cmd VkResult vkGetPhysicalDeviceImageFormatProperties2KHR(
10830 VkPhysicalDevice physicalDevice,
10831 const VkPhysicalDeviceImageFormatInfo2KHR* pImageFormatInfo,
10832 VkImageFormatProperties2KHR* pImageFormatProperties) {
10833 return ?
10834}
10835
10836@extension("VK_KHR_get_physical_device_properties2") // 60
10837cmd void vkGetPhysicalDeviceQueueFamilyProperties2KHR(
10838 VkPhysicalDevice physicalDevice,
10839 u32* pQueueFamilyPropertyCount,
10840 VkQueueFamilyProperties2KHR* pQueueFamilyProperties) {
10841}
10842
10843@extension("VK_KHR_get_physical_device_properties2") // 60
10844cmd void vkGetPhysicalDeviceMemoryProperties2KHR(
10845 VkPhysicalDevice physicalDevice,
10846 VkPhysicalDeviceMemoryProperties2KHR* pMemoryProperties) {
10847}
10848
10849@extension("VK_KHR_get_physical_device_properties2") // 60
10850cmd void vkGetPhysicalDeviceSparseImageFormatProperties2KHR(
10851 VkPhysicalDevice physicalDevice,
10852 const VkPhysicalDeviceSparseImageFormatInfo2KHR* pFormatInfo,
10853 u32* pPropertyCount,
10854 VkSparseImageFormatProperties2KHR* pProperties) {
10855}
10856
Daniel Koch09f7bf92017-10-05 00:26:58 -040010857@extension("VK_KHR_device_group") // 61
10858cmd void vkGetDeviceGroupPeerMemoryFeaturesKHR(
Jesse Hallad250842017-03-10 18:35:38 -080010859 VkDevice device,
10860 u32 heapIndex,
10861 u32 localDeviceIndex,
10862 u32 remoteDeviceIndex,
Daniel Koch09f7bf92017-10-05 00:26:58 -040010863 VkPeerMemoryFeatureFlagsKHR* pPeerMemoryFeatures) {
Jesse Hallad250842017-03-10 18:35:38 -080010864}
10865
Daniel Koch09f7bf92017-10-05 00:26:58 -040010866@extension("VK_KHR_device_group") // 61
10867cmd void vkCmdSetDeviceMaskKHR(
Jesse Hallad250842017-03-10 18:35:38 -080010868 VkCommandBuffer commandBuffer,
10869 u32 deviceMask) {
10870}
10871
Jesse Hallad250842017-03-10 18:35:38 -080010872
Daniel Koch09f7bf92017-10-05 00:26:58 -040010873@extension("VK_KHR_device_group") // 61
10874cmd void vkCmdDispatchBaseKHR(
Jesse Hallad250842017-03-10 18:35:38 -080010875 VkCommandBuffer commandBuffer,
10876 u32 baseGroupX,
10877 u32 baseGroupY,
10878 u32 baseGroupZ,
10879 u32 groupCountX,
10880 u32 groupCountY,
10881 u32 groupCountZ) {
10882}
10883
Jesse Hallad250842017-03-10 18:35:38 -080010884@extension("VK_NN_vi_surface") // 63
10885cmd VkResult vkCreateViSurfaceNN(
10886 VkInstance instance,
10887 const VkViSurfaceCreateInfoNN* pCreateInfo,
10888 const VkAllocationCallbacks* pAllocator,
10889 VkSurfaceKHR* pSurface) {
10890 return ?
10891}
10892
10893@extension("VK_KHR_maintenance1") // 70
10894cmd void vkTrimCommandPoolKHR(
10895 VkDevice device,
10896 VkCommandPool commandPool,
10897 VkCommandPoolTrimFlagsKHR flags) {
10898}
10899
Daniel Koch09f7bf92017-10-05 00:26:58 -040010900@extension("VK_KHR_device_group_creation") // 71
10901@threadSafety("system")
10902cmd VkResult vkEnumeratePhysicalDeviceGroupsKHR(
Jesse Hallad250842017-03-10 18:35:38 -080010903 VkInstance instance,
10904 u32* pPhysicalDeviceGroupCount,
Daniel Koch09f7bf92017-10-05 00:26:58 -040010905 VkPhysicalDeviceGroupPropertiesKHR* pPhysicalDeviceGroupProperties) {
10906 instanceObject := GetInstance(instance)
10907
10908 physicalDeviceGroupCount := as!u32(?)
10909 pPhysicalDeviceGroupCount[0] = physicalDeviceGroupCount
10910 physicalDevices := pPhysicalDeviceGroupProperties[0:physicalDeviceGroupCount]
10911
10912 for i in (0 .. physicalDeviceGroupCount) {
10913 physicalDevice := ?
10914 physicalDevices[i] = physicalDevice
10915 if !(physicalDevice in State.PhysicalDevices) {
10916 State.PhysicalDevices[physicalDevice] = new!PhysicalDeviceObject(instance: instance)
10917 }
10918 }
10919
Jesse Hallad250842017-03-10 18:35:38 -080010920 return ?
10921}
10922
Jesse Hall9492f992017-08-28 12:10:06 -070010923@extension("VK_KHR_external_memory_capabilities") // 72
10924cmd void vkGetPhysicalDeviceExternalBufferPropertiesKHR(
Jesse Hallad250842017-03-10 18:35:38 -080010925 VkPhysicalDevice physicalDevice,
Jesse Hall9492f992017-08-28 12:10:06 -070010926 const VkPhysicalDeviceExternalBufferInfoKHR* pExternalBufferInfo,
10927 VkExternalBufferPropertiesKHR* pExternalBufferProperties) {
Jesse Hallad250842017-03-10 18:35:38 -080010928}
10929
Jesse Hall9492f992017-08-28 12:10:06 -070010930@extension("VK_KHR_external_memory_win32") // 74
10931cmd VkResult vkGetMemoryWin32HandleKHR(
Jesse Hallad250842017-03-10 18:35:38 -080010932 VkDevice device,
Jesse Hall9492f992017-08-28 12:10:06 -070010933 const VkMemoryGetWin32HandleInfoKHR* pGetWin32HandleInfo,
Jesse Hallad250842017-03-10 18:35:38 -080010934 platform.HANDLE* pHandle) {
10935 return ?
10936}
10937
Jesse Hall9492f992017-08-28 12:10:06 -070010938@extension("VK_KHR_external_memory_win32") // 74
10939cmd VkResult vkGetMemoryWin32HandlePropertiesKHR(
Jesse Hallad250842017-03-10 18:35:38 -080010940 VkDevice device,
Jesse Hall9492f992017-08-28 12:10:06 -070010941 VkExternalMemoryHandleTypeFlagBitsKHR handleType,
Jesse Hallad250842017-03-10 18:35:38 -080010942 platform.HANDLE handle,
Jesse Hall9492f992017-08-28 12:10:06 -070010943 VkMemoryWin32HandlePropertiesKHR* pMemoryWin32HandleProperties) {
Jesse Hallad250842017-03-10 18:35:38 -080010944 return ?
10945}
10946
Jesse Hall9492f992017-08-28 12:10:06 -070010947@extension("VK_KHR_external_memory_fd") // 75
10948cmd VkResult vkGetMemoryFdKHR(
Jesse Hallad250842017-03-10 18:35:38 -080010949 VkDevice device,
Jesse Hall9492f992017-08-28 12:10:06 -070010950 const VkMemoryGetFdInfoKHR* pGetFdInfo,
Jesse Hallad250842017-03-10 18:35:38 -080010951 s32* pFd) {
10952 return ?
10953}
10954
Jesse Hall9492f992017-08-28 12:10:06 -070010955@extension("VK_KHR_external_memory_fd") // 75
10956cmd VkResult vkGetMemoryFdPropertiesKHR(
Jesse Hallad250842017-03-10 18:35:38 -080010957 VkDevice device,
Jesse Hall9492f992017-08-28 12:10:06 -070010958 VkExternalMemoryHandleTypeFlagBitsKHR handleType,
Jesse Hallad250842017-03-10 18:35:38 -080010959 s32 fd,
Jesse Hall9492f992017-08-28 12:10:06 -070010960 VkMemoryFdPropertiesKHR* pMemoryFdProperties) {
Jesse Hallad250842017-03-10 18:35:38 -080010961 return ?
10962}
10963
Jesse Hall9492f992017-08-28 12:10:06 -070010964@extension("VK_KHR_external_semaphore_capabilities") // 77
10965cmd void vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(
Jesse Hallad250842017-03-10 18:35:38 -080010966 VkPhysicalDevice physicalDevice,
Jesse Hall9492f992017-08-28 12:10:06 -070010967 const VkPhysicalDeviceExternalSemaphoreInfoKHR* pExternalSemaphoreInfo,
10968 VkExternalSemaphorePropertiesKHR* pExternalSemaphoreProperties) {
Jesse Hallad250842017-03-10 18:35:38 -080010969}
10970
Jesse Hall9492f992017-08-28 12:10:06 -070010971@extension("VK_KHR_external_semaphore_win32") // 79
10972cmd VkResult vkImportSemaphoreWin32HandleKHR(
Jesse Hallad250842017-03-10 18:35:38 -080010973 VkDevice device,
Jesse Hall9492f992017-08-28 12:10:06 -070010974 const VkImportSemaphoreWin32HandleInfoKHR* pImportSemaphoreWin32HandleInfo) {
Jesse Hallad250842017-03-10 18:35:38 -080010975 return ?
10976}
10977
Jesse Hall9492f992017-08-28 12:10:06 -070010978@extension("VK_KHR_external_semaphore_win32") // 79
10979cmd VkResult vkGetSemaphoreWin32HandleKHR(
Jesse Hallad250842017-03-10 18:35:38 -080010980 VkDevice device,
Jesse Hall9492f992017-08-28 12:10:06 -070010981 const VkSemaphoreGetWin32HandleInfoKHR* pGetWin32HandleInfo,
Jesse Hallad250842017-03-10 18:35:38 -080010982 platform.HANDLE* pHandle) {
10983 return ?
10984}
10985
Jesse Hall9492f992017-08-28 12:10:06 -070010986@extension("VK_KHR_external_semaphore_fd") // 80
10987cmd VkResult vkImportSemaphoreFdKHR(
Jesse Hallad250842017-03-10 18:35:38 -080010988 VkDevice device,
Jesse Hall9492f992017-08-28 12:10:06 -070010989 const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo) {
Jesse Hallad250842017-03-10 18:35:38 -080010990 return ?
10991}
10992
Jesse Hall9492f992017-08-28 12:10:06 -070010993@extension("VK_KHR_external_semaphore_fd") // 80
10994cmd VkResult vkGetSemaphoreFdKHR(
Jesse Hallad250842017-03-10 18:35:38 -080010995 VkDevice device,
Jesse Hall9492f992017-08-28 12:10:06 -070010996 const VkSemaphoreGetFdInfoKHR* pGetFdInfo,
Jesse Hallad250842017-03-10 18:35:38 -080010997 s32* pFd) {
10998 return ?
10999}
11000
11001@extension("VK_KHR_push_descriptor") // 81
11002cmd void vkCmdPushDescriptorSetKHR(
11003 VkCommandBuffer commandBuffer,
11004 VkPipelineBindPoint pipelineBindPoint,
11005 VkPipelineLayout layout,
11006 u32 set,
11007 u32 descriptorWriteCount,
11008 const VkWriteDescriptorSet* pDescriptorWrites) {
11009}
11010
Jesse Halla13a3cf2018-07-09 15:51:52 -070011011@extension("VK_EXT_conditional_rendering") // 82
11012cmd void vkCmdBeginConditionalRenderingEXT(
11013 VkCommandBuffer commandBuffer,
11014 const VkConditionalRenderingBeginInfoEXT* pConditionalRenderingBegin) {
11015}
11016
11017@extension("VK_EXT_conditional_rendering") // 82
11018cmd void vkCmdEndConditionalRenderingEXT(
11019 VkCommandBuffer commandBuffer) {
11020}
11021
Jesse Hallad250842017-03-10 18:35:38 -080011022@extension("VK_KHR_descriptor_update_template") // 86
11023cmd VkResult vkCreateDescriptorUpdateTemplateKHR(
11024 VkDevice device,
11025 const VkDescriptorUpdateTemplateCreateInfoKHR* pCreateInfo,
11026 const VkAllocationCallbacks* pAllocator,
11027 VkDescriptorUpdateTemplateKHR* pDescriptorUpdateTemplate) {
11028 return ?
11029}
11030
11031@extension("VK_KHR_descriptor_update_template") // 86
11032cmd void vkDestroyDescriptorUpdateTemplateKHR(
11033 VkDevice device,
11034 VkDescriptorUpdateTemplateKHR descriptorUpdateTemplate,
11035 const VkAllocationCallbacks* pAllocator) {
11036}
11037
11038@extension("VK_KHR_descriptor_update_template") // 86
11039cmd void vkUpdateDescriptorSetWithTemplateKHR(
11040 VkDevice device,
11041 VkDescriptorSet descriptorSet,
11042 VkDescriptorUpdateTemplateKHR descriptorUpdateTemplate,
11043 const void* pData) {
11044}
11045
11046@extension("VK_KHR_descriptor_update_template") // 86
11047cmd void vkCmdPushDescriptorSetWithTemplateKHR(
11048 VkCommandBuffer commandBuffer,
11049 VkDescriptorUpdateTemplateKHR descriptorUpdateTemplate,
11050 VkPipelineLayout layout,
11051 u32 set,
11052 const void* pData) {
11053}
11054
11055@extension("VK_NVX_device_generated_commands") // 87
11056cmd void vkCmdProcessCommandsNVX(
11057 VkCommandBuffer commandBuffer,
11058 const VkCmdProcessCommandsInfoNVX* pProcessCommandsInfo) {
11059}
11060
11061@extension("VK_NVX_device_generated_commands") // 87
11062cmd void vkCmdReserveSpaceForCommandsNVX(
11063 VkCommandBuffer commandBuffer,
11064 const VkCmdReserveSpaceForCommandsInfoNVX* pReserveSpaceInfo) {
11065}
11066
11067@extension("VK_NVX_device_generated_commands") // 87
11068cmd VkResult vkCreateIndirectCommandsLayoutNVX(
11069 VkDevice device,
11070 const VkIndirectCommandsLayoutCreateInfoNVX* pCreateInfo,
11071 const VkAllocationCallbacks* pAllocator,
11072 VkIndirectCommandsLayoutNVX* pIndirectCommandsLayout) {
11073 return ?
11074}
11075
11076@extension("VK_NVX_device_generated_commands") // 87
11077cmd void vkDestroyIndirectCommandsLayoutNVX(
11078 VkDevice device,
11079 VkIndirectCommandsLayoutNVX indirectCommandsLayout,
11080 const VkAllocationCallbacks* pAllocator) {
11081}
11082
11083@extension("VK_NVX_device_generated_commands") // 87
11084cmd VkResult vkCreateObjectTableNVX(
11085 VkDevice device,
11086 const VkObjectTableCreateInfoNVX* pCreateInfo,
11087 const VkAllocationCallbacks* pAllocator,
11088 VkObjectTableNVX* pObjectTable) {
11089 return ?
11090}
11091
11092@extension("VK_NVX_device_generated_commands") // 87
11093cmd void vkDestroyObjectTableNVX(
11094 VkDevice device,
11095 VkObjectTableNVX objectTable,
11096 const VkAllocationCallbacks* pAllocator) {
11097}
11098
11099@extension("VK_NVX_device_generated_commands") // 87
11100cmd VkResult vkRegisterObjectsNVX(
11101 VkDevice device,
11102 VkObjectTableNVX objectTable,
11103 u32 objectCount,
11104 const VkObjectTableEntryNVX* const* ppObjectTableEntries,
11105 const u32* pObjectIndices) {
11106 return ?
11107}
11108
11109@extension("VK_NVX_device_generated_commands") // 87
11110cmd VkResult vkUnregisterObjectsNVX(
11111 VkDevice device,
11112 VkObjectTableNVX objectTable,
11113 u32 objectCount,
11114 const VkObjectEntryTypeNVX* pObjectEntryTypes,
11115 const u32* pObjectIndices) {
11116 return ?
11117}
11118
11119@extension("VK_NVX_device_generated_commands") // 87
11120cmd void vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX(
11121 VkPhysicalDevice physicalDevice,
11122 VkDeviceGeneratedCommandsFeaturesNVX* pFeatures,
11123 VkDeviceGeneratedCommandsLimitsNVX* pLimits) {
11124}
11125
11126@extension("VK_NV_clip_space_w_scaling") // 88
11127cmd void vkCmdSetViewportWScalingNV(
11128 VkCommandBuffer commandBuffer,
11129 u32 firstViewport,
11130 u32 viewportCount,
11131 const VkViewportWScalingNV* pViewportWScalings) {
11132}
11133
11134@extension("VK_EXT_direct_mode_display") // 89
11135cmd VkResult vkReleaseDisplayEXT(
11136 VkPhysicalDevice physicalDevice,
11137 VkDisplayKHR display) {
11138 return ?
11139}
11140
11141@extension("VK_EXT_acquire_xlib_display") // 90
11142cmd VkResult vkAcquireXlibDisplayEXT(
11143 VkPhysicalDevice physicalDevice,
11144 platform.Display* dpy,
11145 VkDisplayKHR display) {
11146 return ?
11147}
11148
11149@extension("VK_EXT_acquire_xlib_display") // 90
11150cmd VkResult vkGetRandROutputDisplayEXT(
11151 VkPhysicalDevice physicalDevice,
11152 platform.Display* dpy,
11153 platform.RROutput rrOutput,
11154 VkDisplayKHR* pDisplay) {
11155 return ?
11156}
11157
11158@extension("VK_EXT_display_surface_counter") // 91
11159cmd VkResult vkGetPhysicalDeviceSurfaceCapabilities2EXT(
11160 VkPhysicalDevice physicalDevice,
11161 VkSurfaceKHR surface,
11162 VkSurfaceCapabilities2EXT* pSurfaceCapabilities) {
11163 return ?
11164}
11165
11166@extension("VK_EXT_display_control") // 92
11167cmd VkResult vkDisplayPowerControlEXT(
11168 VkDevice device,
11169 VkDisplayKHR display,
11170 const VkDisplayPowerInfoEXT* pDisplayPowerInfo) {
11171 return ?
11172}
11173
11174@extension("VK_EXT_display_control") // 92
11175cmd VkResult vkRegisterDeviceEventEXT(
11176 VkDevice device,
11177 const VkDeviceEventInfoEXT* pDeviceEventInfo,
11178 const VkAllocationCallbacks* pAllocator,
11179 VkFence* pFence) {
11180 return ?
11181}
11182
11183@extension("VK_EXT_display_control") // 92
11184cmd VkResult vkRegisterDisplayEventEXT(
11185 VkDevice device,
11186 VkDisplayKHR display,
11187 const VkDisplayEventInfoEXT* pDisplayEventInfo,
11188 const VkAllocationCallbacks* pAllocator,
11189 VkFence* pFence) {
11190 return ?
11191}
11192
11193@extension("VK_EXT_display_control") // 92
11194cmd VkResult vkGetSwapchainCounterEXT(
11195 VkDevice device,
11196 VkSwapchainKHR swapchain,
11197 VkSurfaceCounterFlagBitsEXT counter,
11198 u64* pCounterValue) {
11199 return ?
11200}
11201
11202@extension("VK_GOOGLE_display_timing") // 93
Ian Elliott4c8bb2a2016-12-29 11:07:26 -070011203cmd VkResult vkGetRefreshCycleDurationGOOGLE(
Jesse Hallfdc8ab32017-03-10 21:01:57 -080011204 VkDevice device,
11205 VkSwapchainKHR swapchain,
11206 VkRefreshCycleDurationGOOGLE* pDisplayTimingProperties) {
Ian Elliott4c8bb2a2016-12-29 11:07:26 -070011207 deviceObject := GetDevice(device)
11208 swapchainObject := GetSwapchain(swapchain)
11209
11210 displayTimingProperties := ?
11211 pDisplayTimingProperties[0] = displayTimingProperties
11212
11213 return ?
11214}
11215
Jesse Hallad250842017-03-10 18:35:38 -080011216@extension("VK_GOOGLE_display_timing") // 93
Ian Elliott4c8bb2a2016-12-29 11:07:26 -070011217cmd VkResult vkGetPastPresentationTimingGOOGLE(
Jesse Hallfdc8ab32017-03-10 21:01:57 -080011218 VkDevice device,
11219 VkSwapchainKHR swapchain,
11220 u32* pPresentationTimingCount,
11221 VkPastPresentationTimingGOOGLE* pPresentationTimings) {
Ian Elliott4c8bb2a2016-12-29 11:07:26 -070011222 return ?
11223}
11224
Jesse Hallad250842017-03-10 18:35:38 -080011225@extension("VK_EXT_discard_rectangles") // 100
11226cmd void vkCmdSetDiscardRectangleEXT(
Jesse Hall26763382016-05-20 07:13:52 -070011227 VkCommandBuffer commandBuffer,
Jesse Hallad250842017-03-10 18:35:38 -080011228 u32 firstDiscardRectangle,
11229 u32 discardRectangleCount,
11230 const VkRect2D* pDiscardRectangles) {
Jesse Hall26763382016-05-20 07:13:52 -070011231}
11232
Jesse Hallad250842017-03-10 18:35:38 -080011233@extension("VK_EXT_hdr_metadata") // 106
Jesse Hall889cd9a2017-02-25 22:12:23 -080011234cmd void vkSetHdrMetadataEXT(
Jesse Hallfdc8ab32017-03-10 21:01:57 -080011235 VkDevice device,
11236 u32 swapchainCount,
11237 const VkSwapchainKHR* pSwapchains,
11238 const VkHdrMetadataEXT* pMetadata) {
Jesse Hall889cd9a2017-02-25 22:12:23 -080011239}
11240
Jesse Halla13a3cf2018-07-09 15:51:52 -070011241@extension("VK_KHR_create_renderpass2") // 110
11242cmd VkResult vkCreateRenderPass2KHR(
11243 VkDevice device,
11244 const VkRenderPassCreateInfo2KHR* pCreateInfo,
11245 const VkAllocationCallbacks* pAllocator,
11246 VkRenderPass* pRenderPass) {
11247 return ?
11248}
11249
11250@extension("VK_KHR_create_renderpass2") // 110
11251cmd void vkCmdBeginRenderPass2KHR(
11252 VkCommandBuffer commandBuffer,
11253 const VkRenderPassBeginInfo* pRenderPassBegin,
11254 const VkSubpassBeginInfoKHR* pSubpassBeginInfo) {
11255}
11256
11257@extension("VK_KHR_create_renderpass2") // 110
11258cmd void vkCmdNextSubpass2KHR(
11259 VkCommandBuffer commandBuffer,
11260 const VkSubpassBeginInfoKHR* pSubpassBeginInfo,
11261 const VkSubpassEndInfoKHR* pSubpassEndInfo) {
11262}
11263
11264@extension("VK_KHR_create_renderpass2") // 110
11265cmd void vkCmdEndRenderPass2KHR(
11266 VkCommandBuffer commandBuffer,
11267 const VkSubpassEndInfoKHR* pSubpassEndInfo) {
11268}
11269
Jesse Hallad250842017-03-10 18:35:38 -080011270@extension("VK_KHR_shared_presentable_image") // 112
Chris Forbes2e12cb82017-01-18 11:45:17 +130011271cmd VkResult vkGetSwapchainStatusKHR(
11272 VkDevice device,
11273 VkSwapchainKHR swapchain) {
11274 return ?
11275}
11276
Jesse Hall9492f992017-08-28 12:10:06 -070011277@extension("VK_KHR_external_fence_capabilities") // 113
11278cmd void vkGetPhysicalDeviceExternalFencePropertiesKHR(
11279 VkPhysicalDevice physicalDevice,
11280 const VkPhysicalDeviceExternalFenceInfoKHR* pExternalFenceInfo,
11281 VkExternalFencePropertiesKHR* pExternalFenceProperties) {
11282}
11283
11284@extension("VK_KHR_external_fence_win32") // 115
11285cmd VkResult vkImportFenceWin32HandleKHR(
11286 VkDevice device,
11287 const VkImportFenceWin32HandleInfoKHR* pImportFenceWin32HandleInfo) {
11288 return ?
11289}
11290
11291@extension("VK_KHR_external_fence_win32") // 115
11292cmd VkResult vkGetFenceWin32HandleKHR(
11293 VkDevice device,
11294 const VkFenceGetWin32HandleInfoKHR* pGetWin32HandleInfo,
11295 platform.HANDLE* pHandle) {
11296 return ?
11297}
11298
11299@extension("VK_KHR_external_fence_fd") // 116
11300cmd VkResult vkImportFenceFdKHR(
11301 VkDevice device,
11302 const VkImportFenceFdInfoKHR* pImportFenceFdInfo) {
11303 return ?
11304}
11305
11306@extension("VK_KHR_external_fence_fd") // 116
11307cmd VkResult vkGetFenceFdKHR(
11308 VkDevice device,
11309 const VkFenceGetFdInfoKHR* pGetFdInfo,
11310 int* pFd) {
11311 return ?
11312}
11313
Jesse Hall05556b12017-05-18 17:40:25 -070011314@extension("VK_KHR_get_surface_capabilities2") // 120
Chris Forbese2d3ee12017-03-16 16:10:15 +130011315cmd VkResult vkGetPhysicalDeviceSurfaceCapabilities2KHR(
11316 VkPhysicalDevice physicalDevice,
11317 const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo,
11318 VkSurfaceCapabilities2KHR* pSurfaceCapabilities) {
11319 return ?
11320}
11321
Jesse Hall05556b12017-05-18 17:40:25 -070011322@extension("VK_KHR_get_surface_capabilities2") // 120
Chris Forbese2d3ee12017-03-16 16:10:15 +130011323cmd VkResult vkGetPhysicalDeviceSurfaceFormats2KHR(
11324 VkPhysicalDevice physicalDevice,
11325 const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo,
11326 u32* pSurfaceFormatCount,
11327 VkSurfaceFormat2KHR* pSurfaceFormats) {
11328 return ?
11329}
11330
Jesse Hall54f8d132018-04-18 08:16:59 -070011331@extension("VK_KHR_display_properties2") // 122
11332cmd VkResult vkGetPhysicalDeviceDisplayProperties2KHR(
11333 VkPhysicalDevice physicalDevice,
11334 u32* pPropertyCount,
11335 VkDisplayProperties2KHR* pProperties) {
11336 return ?
11337}
11338
11339@extension("VK_KHR_display_properties2") // 122
11340cmd VkResult vkGetPhysicalDeviceDisplayPlaneProperties2KHR(
11341 VkPhysicalDevice physicalDevice,
11342 u32* pPropertyCount,
11343 VkDisplayPlaneProperties2KHR* pProperties) {
11344 return ?
11345}
11346
11347@extension("VK_KHR_display_properties2") // 122
11348cmd VkResult vkGetDisplayModeProperties2KHR(
11349 VkPhysicalDevice physicalDevice,
11350 VkDisplayKHR display,
11351 u32* pPropertyCount,
11352 VkDisplayModeProperties2KHR* pProperties) {
11353 return ?
11354}
11355
11356@extension("VK_KHR_display_properties2") // 122
11357cmd VkResult vkGetDisplayPlaneCapabilities2KHR(
11358 VkPhysicalDevice physicalDevice,
11359 const VkDisplayPlaneInfo2KHR* pDisplayPlaneInfo,
11360 VkDisplayPlaneCapabilities2KHR* pCapabilities) {
11361 return ?
11362}
11363
Jesse Hallad250842017-03-10 18:35:38 -080011364@extension("VK_MVK_ios_surface") // 123
11365cmd VkResult vkCreateIOSSurfaceMVK(
11366 VkInstance instance,
11367 const VkIOSSurfaceCreateInfoMVK* pCreateInfo,
11368 const VkAllocationCallbacks* pAllocator,
11369 VkSurfaceKHR* pSurface) {
11370 return ?
11371}
11372
11373@extension("VK_MVK_macos_surface") // 124
11374cmd VkResult vkCreateMacOSSurfaceMVK(
11375 VkInstance instance,
11376 const VkMacOSSurfaceCreateInfoMVK* pCreateInfo,
11377 const VkAllocationCallbacks* pAllocator,
11378 VkSurfaceKHR* pSurface) {
11379 return ?
11380}
11381
Jesse Hall8c954d32018-01-17 22:06:20 -080011382@extension("VK_EXT_debug_utils") // 129
11383@external type void* PFN_vkDebugUtilsMessengerCallbackEXT
11384@extension("VK_EXT_debug_utils") // 129
11385@pfn cmd VkBool32 vkDebugUtilsMessengerCallbackEXT(
11386 VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity,
11387 VkDebugUtilsMessageTypeFlagsEXT messageType,
11388 const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData,
11389 void* pUserData) {
11390 return ?
11391}
11392
11393@extension("VK_EXT_debug_utils") // 129
11394cmd VkResult vkSetDebugUtilsObjectNameEXT(
11395 VkDevice device,
11396 const VkDebugUtilsObjectNameInfoEXT* pNameInfo) {
11397 return ?
11398}
Jesse Hall72e6a132018-04-06 13:00:44 -070011399
Jesse Hall8c954d32018-01-17 22:06:20 -080011400@extension("VK_EXT_debug_utils") // 129
11401cmd VkResult vkSetDebugUtilsObjectTagEXT(
11402 VkDevice device,
11403 const VkDebugUtilsObjectTagInfoEXT* pTagInfo) {
11404 return ?
11405}
Jesse Hall72e6a132018-04-06 13:00:44 -070011406
Jesse Hall8c954d32018-01-17 22:06:20 -080011407@extension("VK_EXT_debug_utils") // 129
11408cmd void vkQueueBeginDebugUtilsLabelEXT(
11409 VkQueue queue,
11410 const VkDebugUtilsLabelEXT* pLabelInfo) {
11411}
Jesse Hall72e6a132018-04-06 13:00:44 -070011412
Jesse Hall8c954d32018-01-17 22:06:20 -080011413@extension("VK_EXT_debug_utils") // 129
11414cmd void vkQueueEndDebugUtilsLabelEXT(VkQueue queue) {
11415}
Jesse Hall72e6a132018-04-06 13:00:44 -070011416
Jesse Hall8c954d32018-01-17 22:06:20 -080011417@extension("VK_EXT_debug_utils") // 129
11418cmd void vkQueueInsertDebugUtilsLabelEXT(
11419 VkQueue queue,
11420 const VkDebugUtilsLabelEXT* pLabelInfo) {
11421}
Jesse Hall72e6a132018-04-06 13:00:44 -070011422
Jesse Hall8c954d32018-01-17 22:06:20 -080011423@extension("VK_EXT_debug_utils") // 129
11424cmd void vkCmdBeginDebugUtilsLabelEXT(
11425 VkCommandBuffer commandBuffer,
11426 const VkDebugUtilsLabelEXT* pLabelInfo) {
11427}
Jesse Hall72e6a132018-04-06 13:00:44 -070011428
Jesse Hall8c954d32018-01-17 22:06:20 -080011429@extension("VK_EXT_debug_utils") // 129
11430cmd void vkCmdEndDebugUtilsLabelEXT(VkCommandBuffer commandBuffer) {
11431}
11432
11433@extension("VK_EXT_debug_utils") // 129
11434cmd void vkCmdInsertDebugUtilsLabelEXT(
11435 VkCommandBuffer commandBuffer,
11436 const VkDebugUtilsLabelEXT* pLabelInfo) {
11437}
11438
11439@extension("VK_EXT_debug_utils") // 129
11440cmd VkResult vkCreateDebugUtilsMessengerEXT(
11441 VkInstance instance,
11442 const VkDebugUtilsMessengerCreateInfoEXT* pCreateInfo,
11443 const VkAllocationCallbacks* pAllocator,
11444 VkDebugUtilsMessengerEXT* pMessenger) {
11445 return ?
11446}
11447
11448@extension("VK_EXT_debug_utils") // 129
11449cmd void vkDestroyDebugUtilsMessengerEXT(
11450 VkInstance instance,
11451 VkDebugUtilsMessengerEXT messenger,
11452 const VkAllocationCallbacks* pAllocator) {
11453}
11454
11455@extension("VK_EXT_debug_utils") // 129
11456cmd void vkSubmitDebugUtilsMessageEXT(
11457 VkInstance instance,
11458 VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity,
11459 VkDebugUtilsMessageTypeFlagsEXT messageTypes,
11460 const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData) {
11461}
11462
Jesse Hall36215a92018-01-18 15:04:37 -080011463@extension("VK_ANDROID_external_memory_android_hardware_buffer") // 130
11464@vulkan1_1 // extension requires 1.1, and should become non-optional when 1.1 does
11465cmd VkResult vkGetAndroidHardwareBufferPropertiesANDROID(
11466 VkDevice device,
11467 const platform.AHardwareBuffer* buffer,
11468 VkAndroidHardwareBufferPropertiesANDROID* pProperties) {
11469 return ?
11470}
11471
11472@extension("VK_ANDROID_external_memory_android_hardware_buffer") // 130
11473@vulkan1_1 // extension requires 1.1, and should become non-optional when 1.1 does
11474cmd VkResult vkGetMemoryAndroidHardwareBufferANDROID(
11475 VkDevice device,
11476 const VkMemoryGetAndroidHardwareBufferInfoANDROID* pInfo,
11477 platform.AHardwareBuffer** pBuffer) {
11478 return ?
11479}
11480
Jesse Hall77726222017-09-19 14:49:27 -050011481@extension("VK_EXT_sample_locations") // 144
11482cmd void vkCmdSetSampleLocationsEXT(
11483 VkCommandBuffer commandBuffer,
11484 const VkSampleLocationsInfoEXT* pSampleLocationsInfo) {
11485}
11486
11487@extension("VK_EXT_sample_locations") // 144
11488cmd void vkGetPhysicalDeviceMultisamplePropertiesEXT(
11489 VkPhysicalDevice physicalDevice,
11490 VkSampleCountFlagBits samples,
11491 VkMultisamplePropertiesEXT* pMultisampleProperties) {
11492}
11493
Jesse Hall9492f992017-08-28 12:10:06 -070011494@extension("VK_KHR_get_memory_requirements2") // 147
11495cmd void vkGetImageMemoryRequirements2KHR(
11496 VkDevice device,
11497 const VkImageMemoryRequirementsInfo2KHR* pInfo,
11498 VkMemoryRequirements2KHR* pMemoryRequirements) {
11499}
11500
11501@extension("VK_KHR_get_memory_requirements2") // 147
11502cmd void vkGetBufferMemoryRequirements2KHR(
11503 VkDevice device,
11504 const VkBufferMemoryRequirementsInfo2KHR* pInfo,
11505 VkMemoryRequirements2KHR* pMemoryRequirements) {
11506}
11507
11508@extension("VK_KHR_get_memory_requirements2") // 147
11509cmd void vkGetImageSparseMemoryRequirements2KHR(
11510 VkDevice device,
11511 const VkImageSparseMemoryRequirementsInfo2KHR* pInfo,
11512 u32* pSparseMemoryRequirementCount,
11513 VkSparseImageMemoryRequirements2KHR* pSparseMemoryRequirements) {
11514}
11515
Jesse Hall076f95d2017-09-20 11:34:47 -070011516@extension("VK_KHR_sampler_ycbcr_conversion") // 157
11517cmd VkResult vkCreateSamplerYcbcrConversionKHR(
11518 VkDevice device,
11519 const VkSamplerYcbcrConversionCreateInfoKHR* pCreateInfo,
11520 const VkAllocationCallbacks* pAllocator,
11521 VkSamplerYcbcrConversionKHR* pYcbcrConversion) {
11522 return ?
11523}
11524
11525@extension("VK_KHR_sampler_ycbcr_conversion") // 157
11526cmd void vkDestroySamplerYcbcrConversionKHR(
11527 VkDevice device,
11528 VkSamplerYcbcrConversionKHR ycbcrConversion,
11529 const VkAllocationCallbacks* pAllocator) {
11530}
11531
11532@extension("VK_KHR_bind_memory2") // 158
11533cmd VkResult vkBindBufferMemory2KHR(
11534 VkDevice device,
11535 u32 bindInfoCount,
11536 const VkBindBufferMemoryInfoKHR* pBindInfos) {
11537 return ?
11538}
11539
11540@extension("VK_KHR_bind_memory2") // 158
11541cmd VkResult vkBindImageMemory2KHR(
11542 VkDevice device,
11543 u32 bindInfoCount,
11544 const VkBindImageMemoryInfoKHR* pBindInfos) {
11545 return ?
11546}
11547
Jesse Hallf47e8f82018-10-27 23:41:45 -070011548@extension("VK_EXT_image_drm_format_modifier") // 159
11549cmd VkResult vkGetImageDrmFormatModifierPropertiesEXT(
11550 VkDevice device,
11551 VkImage image,
11552 VkImageDrmFormatModifierPropertiesEXT* pProperties) {
11553 return ?
11554}
11555
Jesse Hall77726222017-09-19 14:49:27 -050011556@extension("VK_EXT_validation_cache") // 161
11557cmd VkResult vkCreateValidationCacheEXT(
11558 VkDevice device,
11559 const VkValidationCacheCreateInfoEXT* pCreateInfo,
11560 const VkAllocationCallbacks* pAllocator,
11561 VkValidationCacheEXT* pValidationCache) {
11562 return ?
11563}
11564
11565@extension("VK_EXT_validation_cache") // 161
11566cmd void vkDestroyValidationCacheEXT(
11567 VkDevice device,
11568 VkValidationCacheEXT validationCache,
11569 const VkAllocationCallbacks* pAllocator) {
11570}
11571
11572@extension("VK_EXT_validation_cache") // 161
11573cmd VkResult vkMergeValidationCachesEXT(
11574 VkDevice device,
11575 VkValidationCacheEXT dstCache,
11576 u32 srcCacheCount,
11577 const VkValidationCacheEXT* pSrcCaches) {
11578 return ?
11579}
11580
11581@extension("VK_EXT_validation_cache") // 161
11582cmd VkResult vkGetValidationCacheDataEXT(
11583 VkDevice device,
11584 VkValidationCacheEXT validationCache,
11585 platform.size_t* pDataSize,
11586 void* pData) {
11587 return ?
11588}
11589
Jesse Hallb5297192018-09-22 20:52:13 +020011590@extension("VK_NV_shading_rate_image") // 165
11591cmd void vkCmdBindShadingRateImageNV(
11592 VkCommandBuffer commandBuffer,
11593 VkImageView imageView,
11594 VkImageLayout imageLayout) {
11595}
11596
11597@extension("VK_NV_shading_rate_image") // 165
11598cmd void vkCmdSetViewportShadingRatePaletteNV(
11599 VkCommandBuffer commandBuffer,
11600 u32 firstViewport,
11601 u32 viewportCount,
11602 const VkShadingRatePaletteNV* pShadingRatePalettes) {
11603}
11604
11605@extension("VK_NV_shading_rate_image") // 165
11606cmd void vkCmdSetCoarseSampleOrderNV(
11607 VkCommandBuffer commandBuffer,
11608 VkCoarseSampleOrderTypeNV sampleOrderType,
11609 u32 customSampleOrderCount,
11610 const VkCoarseSampleOrderCustomNV* pCustomSampleOrders) {
11611}
11612
Jesse Hallbeea46d2018-12-04 14:38:07 -080011613@extension("VK_NV_ray_tracing") // 166
Jesse Halla363a8e2018-11-05 21:18:00 -070011614cmd VkResult vkCreateAccelerationStructureNV(
Jesse Hallb5297192018-09-22 20:52:13 +020011615 VkDevice device,
Jesse Halla363a8e2018-11-05 21:18:00 -070011616 const VkAccelerationStructureCreateInfoNV* pCreateInfo,
Jesse Hallb5297192018-09-22 20:52:13 +020011617 const VkAllocationCallbacks* pAllocator,
Jesse Halla363a8e2018-11-05 21:18:00 -070011618 VkAccelerationStructureNV* pAccelerationStructure) {
Jesse Hallb5297192018-09-22 20:52:13 +020011619 return ?
11620}
11621
Jesse Hallbeea46d2018-12-04 14:38:07 -080011622@extension("VK_NV_ray_tracing") // 166
Jesse Halla363a8e2018-11-05 21:18:00 -070011623cmd void vkDestroyAccelerationStructureNV(
Jesse Hallb5297192018-09-22 20:52:13 +020011624 VkDevice device,
Jesse Halla363a8e2018-11-05 21:18:00 -070011625 VkAccelerationStructureNV accelerationStructure,
Jesse Hallb5297192018-09-22 20:52:13 +020011626 const VkAllocationCallbacks* pAllocator) {
11627}
11628
Jesse Hallbeea46d2018-12-04 14:38:07 -080011629@extension("VK_NV_ray_tracing") // 166
Jesse Halla363a8e2018-11-05 21:18:00 -070011630cmd void vkGetAccelerationStructureMemoryRequirementsNV(
Jesse Hallb5297192018-09-22 20:52:13 +020011631 VkDevice device,
Jesse Halla363a8e2018-11-05 21:18:00 -070011632 const VkAccelerationStructureMemoryRequirementsInfoNV* pInfo,
Jesse Hallb5297192018-09-22 20:52:13 +020011633 VkMemoryRequirements2KHR* pMemoryRequirements) {
11634}
11635
Jesse Hallbeea46d2018-12-04 14:38:07 -080011636@extension("VK_NV_ray_tracing") // 166
Jesse Halla363a8e2018-11-05 21:18:00 -070011637cmd VkResult vkBindAccelerationStructureMemoryNV(
Jesse Hallb5297192018-09-22 20:52:13 +020011638 VkDevice device,
11639 u32 bindInfoCount,
Jesse Halla363a8e2018-11-05 21:18:00 -070011640 const VkBindAccelerationStructureMemoryInfoNV* pBindInfos) {
Jesse Hallb5297192018-09-22 20:52:13 +020011641 return ?
11642}
11643
Jesse Hallbeea46d2018-12-04 14:38:07 -080011644@extension("VK_NV_ray_tracing") // 166
Jesse Halla363a8e2018-11-05 21:18:00 -070011645cmd void vkCmdBuildAccelerationStructureNV(
Jesse Hall2e6853c2018-10-02 14:05:37 -070011646 VkCommandBuffer commandBuffer,
Jesse Halla363a8e2018-11-05 21:18:00 -070011647 const VkAccelerationStructureInfoNV* pInfo,
Jesse Hall2e6853c2018-10-02 14:05:37 -070011648 VkBuffer instanceData,
11649 VkDeviceSize instanceOffset,
Jesse Hall2e6853c2018-10-02 14:05:37 -070011650 VkBool32 update,
Jesse Halla363a8e2018-11-05 21:18:00 -070011651 VkAccelerationStructureNV dst,
11652 VkAccelerationStructureNV src,
Jesse Hall2e6853c2018-10-02 14:05:37 -070011653 VkBuffer scratch,
11654 VkDeviceSize scratchOffset) {
Jesse Hallb5297192018-09-22 20:52:13 +020011655}
11656
Jesse Hallbeea46d2018-12-04 14:38:07 -080011657@extension("VK_NV_ray_tracing") // 166
Jesse Halla363a8e2018-11-05 21:18:00 -070011658cmd void vkCmdCopyAccelerationStructureNV(
Jesse Hall2e6853c2018-10-02 14:05:37 -070011659 VkCommandBuffer commandBuffer,
Jesse Halla363a8e2018-11-05 21:18:00 -070011660 VkAccelerationStructureNV dst,
11661 VkAccelerationStructureNV src,
11662 VkCopyAccelerationStructureModeNV mode) {
Jesse Hallb5297192018-09-22 20:52:13 +020011663}
11664
Jesse Hallbeea46d2018-12-04 14:38:07 -080011665@extension("VK_NV_ray_tracing") // 166
Jesse Halla363a8e2018-11-05 21:18:00 -070011666cmd void vkCmdTraceRaysNV(
Jesse Hall2e6853c2018-10-02 14:05:37 -070011667 VkCommandBuffer commandBuffer,
11668 VkBuffer raygenShaderBindingTableBuffer,
11669 VkDeviceSize raygenShaderBindingOffset,
11670 VkBuffer missShaderBindingTableBuffer,
11671 VkDeviceSize missShaderBindingOffset,
11672 VkDeviceSize missShaderBindingStride,
11673 VkBuffer hitShaderBindingTableBuffer,
11674 VkDeviceSize hitShaderBindingOffset,
11675 VkDeviceSize hitShaderBindingStride,
Jesse Halla363a8e2018-11-05 21:18:00 -070011676 VkBuffer callableShaderBindingTableBuffer,
11677 VkDeviceSize callableShaderBindingOffset,
11678 VkDeviceSize callableShaderBindingStride,
Jesse Hall2e6853c2018-10-02 14:05:37 -070011679 u32 width,
Jesse Halla363a8e2018-11-05 21:18:00 -070011680 u32 height,
11681 u32 depth) {
Jesse Hallb5297192018-09-22 20:52:13 +020011682}
11683
Jesse Hallbeea46d2018-12-04 14:38:07 -080011684@extension("VK_NV_ray_tracing") // 166
Jesse Halla363a8e2018-11-05 21:18:00 -070011685cmd VkResult vkCreateRaytracingPipelinesNV(
Jesse Hallb5297192018-09-22 20:52:13 +020011686 VkDevice device,
11687 VkPipelineCache pipelineCache,
11688 u32 createInfoCount,
Jesse Halla363a8e2018-11-05 21:18:00 -070011689 const VkRayTracingPipelineCreateInfoNV* pCreateInfos,
Jesse Hallb5297192018-09-22 20:52:13 +020011690 const VkAllocationCallbacks* pAllocator,
11691 VkPipeline* pPipelines) {
11692 return ?
11693}
11694
Jesse Hallbeea46d2018-12-04 14:38:07 -080011695@extension("VK_NV_ray_tracing") // 166
Jesse Halla363a8e2018-11-05 21:18:00 -070011696cmd VkResult vkGetRaytracingShaderHandlesNV(
Jesse Hall2e6853c2018-10-02 14:05:37 -070011697 VkDevice device,
11698 VkPipeline pipeline,
11699 u32 firstGroup,
11700 u32 groupCount,
11701 platform.size_t dataSize,
11702 void* pData) {
Jesse Hallb5297192018-09-22 20:52:13 +020011703 return ?
11704}
11705
Jesse Hallbeea46d2018-12-04 14:38:07 -080011706@extension("VK_NV_ray_tracing") // 166
Jesse Halla363a8e2018-11-05 21:18:00 -070011707cmd VkResult vkGetAccelerationStructureHandleNV(
Jesse Hall2e6853c2018-10-02 14:05:37 -070011708 VkDevice device,
Jesse Halla363a8e2018-11-05 21:18:00 -070011709 VkAccelerationStructureNV accelerationStructure,
Jesse Hall2e6853c2018-10-02 14:05:37 -070011710 platform.size_t dataSize,
11711 void* pData) {
Jesse Hallb5297192018-09-22 20:52:13 +020011712 return ?
11713}
11714
Jesse Hallbeea46d2018-12-04 14:38:07 -080011715@extension("VK_NV_ray_tracing") // 166
Jesse Halla363a8e2018-11-05 21:18:00 -070011716cmd void vkCmdWriteAccelerationStructurePropertiesNV(
Jesse Hall2e6853c2018-10-02 14:05:37 -070011717 VkCommandBuffer commandBuffer,
Jesse Halla363a8e2018-11-05 21:18:00 -070011718 u32 accelerationStructureCount,
11719 const VkAccelerationStructureNV* pAccelerationStructures,
Jesse Hall2e6853c2018-10-02 14:05:37 -070011720 VkQueryType queryType,
11721 VkQueryPool queryPool,
Jesse Halla363a8e2018-11-05 21:18:00 -070011722 u32 firstQuery) {
Jesse Hallb5297192018-09-22 20:52:13 +020011723}
11724
Jesse Hallbeea46d2018-12-04 14:38:07 -080011725@extension("VK_NV_ray_tracing") // 166
Jesse Halla363a8e2018-11-05 21:18:00 -070011726cmd VkResult vkCompileDeferredNV(
Jesse Hall2e6853c2018-10-02 14:05:37 -070011727 VkDevice device,
11728 VkPipeline pipeline,
11729 u32 shader) {
Jesse Hallb5297192018-09-22 20:52:13 +020011730 return ?
11731}
11732
Daniel Koch09f7bf92017-10-05 00:26:58 -040011733@extension("VK_KHR_maintenance3") // 169
11734cmd void vkGetDescriptorSetLayoutSupportKHR(
11735 VkDevice device,
11736 const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
11737 VkDescriptorSetLayoutSupportKHR* pSupport) {
11738}
11739
Jesse Hall54f8d132018-04-18 08:16:59 -070011740@extension("VK_KHR_draw_indirect_count") // 170
11741cmd void vkCmdDrawIndirectCountKHR(
11742 VkCommandBuffer commandBuffer,
11743 VkBuffer buffer,
11744 VkDeviceSize offset,
11745 VkBuffer countBuffer,
11746 VkDeviceSize countBufferOffset,
11747 u32 maxDrawCount,
11748 u32 stride) {
11749}
11750
11751@extension("VK_KHR_draw_indirect_count") // 170
11752cmd void vkCmdDrawIndexedIndirectCountKHR(
11753 VkCommandBuffer commandBuffer,
11754 VkBuffer buffer,
11755 VkDeviceSize offset,
11756 VkBuffer countBuffer,
11757 VkDeviceSize countBufferOffset,
11758 u32 maxDrawCount,
11759 u32 stride) {
11760}
11761
Jesse Hall8c954d32018-01-17 22:06:20 -080011762@extension("VK_EXT_external_memory_host") // 179
11763cmd VkResult vkGetMemoryHostPointerPropertiesEXT(
11764 VkDevice device,
11765 VkExternalMemoryHandleTypeFlagBits handleType,
11766 const void* pHostPointer,
11767 VkMemoryHostPointerPropertiesEXT* pMemoryHostPointerProperties) {
11768 return ?
11769}
11770
Jesse Hall72e6a132018-04-06 13:00:44 -070011771@extension("VK_AMD_buffer_marker") // 180
11772cmd void vkCmdWriteBufferMarkerAMD(
11773 VkCommandBuffer commandBuffer,
11774 VkPipelineStageFlagBits pipelineStage,
11775 VkBuffer dstBuffer,
11776 VkDeviceSize dstOffset,
11777 u32 marker) {
11778}
11779
Jesse Hallf47e8f82018-10-27 23:41:45 -070011780@extension("VK_EXT_calibrated_timestamps") // 185
11781cmd VkResult vkGetPhysicalDeviceCalibrateableTimeDomainsEXT(
11782 VkPhysicalDevice physicalDevice,
11783 u32* pTimeDomainCount,
11784 VkTimeDomainEXT* pTimeDomains) {
11785 return ?
11786}
11787
11788@extension("VK_EXT_calibrated_timestamps") // 185
11789cmd VkResult vkGetCalibratedTimestampsEXT(
11790 VkDevice device,
11791 u32 timestampCount,
11792 const VkCalibratedTimestampInfoEXT* pTimestampInfos,
11793 u64* pTimestamps,
11794 u64* pMaxDeviation) {
11795 return ?
11796}
11797
Jesse Hallb5297192018-09-22 20:52:13 +020011798@extension("VK_NV_mesh_shader") // 203
11799cmd void vkCmdDrawMeshTasksNV(
11800 VkCommandBuffer commandBuffer,
11801 u32 taskCount,
11802 u32 firstTask) {
11803}
11804
11805@extension("VK_NV_mesh_shader") // 203
11806cmd void vkCmdDrawMeshTasksIndirectNV(
11807 VkCommandBuffer commandBuffer,
11808 VkBuffer buffer,
11809 VkDeviceSize offset,
11810 u32 drawCount,
11811 u32 stride) {
11812}
11813
11814@extension("VK_NV_mesh_shader") // 203
11815cmd void vkCmdDrawMeshTasksIndirectCountNV(
11816 VkCommandBuffer commandBuffer,
11817 VkBuffer buffer,
11818 VkDeviceSize offset,
11819 VkBuffer countBuffer,
11820 VkDeviceSize countBufferOffset,
11821 u32 maxDrawCount,
11822 u32 stride) {
11823}
11824
11825@extension("VK_NV_scissor_exclusive") // 206
11826cmd void vkCmdSetExclusiveScissorNV(
11827 VkCommandBuffer commandBuffer,
11828 u32 firstExclusiveScissor,
11829 u32 exclusiveScissorCount,
11830 const VkRect2D* pExclusiveScissors) {
11831}
11832
Jesse Hall115df0c2018-07-30 12:00:59 -070011833@extension("VK_NV_device_diagnostic_checkpoints") // 207
11834cmd void vkCmdSetCheckpointNV(
11835 VkCommandBuffer commandBuffer,
11836 const void* pCheckpointMarker) {
11837}
11838
11839@extension("VK_NV_device_diagnostic_checkpoints") // 207
11840cmd void vkGetQueueCheckpointDataNV(
11841 VkQueue queue,
11842 u32* pCheckpointDataCount,
11843 VkCheckpointDataNV* pCheckpointData) {
11844}
11845
Jesse Hall497c46f2018-10-08 12:52:48 -070011846@extension("VK_FUCHSIA_imagepipe_surface") // 215
11847cmd VkResult vkCreateImagePipeSurfaceFUCHSIA(
11848 VkInstance instance,
11849 const VkImagePipeSurfaceCreateInfoFUCHSIA* pCreateInfo,
11850 const VkAllocationCallbacks* pAllocator,
11851 VkSurfaceKHR* pSurface) {
11852 return ?
11853}
11854
Jesse Hall115df0c2018-07-30 12:00:59 -070011855
Jesse Halld27f6aa2015-08-15 17:58:48 -070011856////////////////
11857// Validation //
11858////////////////
11859
11860extern void validate(string layerName, bool condition, string message)
11861
11862
11863/////////////////////////////
11864// Internal State Tracking //
11865/////////////////////////////
11866
11867StateObject State
11868
11869@internal class StateObject {
11870 // Dispatchable objects.
11871 map!(VkInstance, ref!InstanceObject) Instances
11872 map!(VkPhysicalDevice, ref!PhysicalDeviceObject) PhysicalDevices
11873 map!(VkDevice, ref!DeviceObject) Devices
11874 map!(VkQueue, ref!QueueObject) Queues
Jesse Hall3fbc8562015-11-29 22:10:52 -080011875 map!(VkCommandBuffer, ref!CommandBufferObject) CommandBuffers
Jesse Halld27f6aa2015-08-15 17:58:48 -070011876
11877 // Non-dispatchable objects.
11878 map!(VkDeviceMemory, ref!DeviceMemoryObject) DeviceMemories
11879 map!(VkBuffer, ref!BufferObject) Buffers
11880 map!(VkBufferView, ref!BufferViewObject) BufferViews
11881 map!(VkImage, ref!ImageObject) Images
11882 map!(VkImageView, ref!ImageViewObject) ImageViews
Jesse Halld27f6aa2015-08-15 17:58:48 -070011883 map!(VkShaderModule, ref!ShaderModuleObject) ShaderModules
Jesse Halld27f6aa2015-08-15 17:58:48 -070011884 map!(VkPipeline, ref!PipelineObject) Pipelines
11885 map!(VkPipelineLayout, ref!PipelineLayoutObject) PipelineLayouts
11886 map!(VkSampler, ref!SamplerObject) Samplers
11887 map!(VkDescriptorSet, ref!DescriptorSetObject) DescriptorSets
11888 map!(VkDescriptorSetLayout, ref!DescriptorSetLayoutObject) DescriptorSetLayouts
11889 map!(VkDescriptorPool, ref!DescriptorPoolObject) DescriptorPools
Jesse Halld27f6aa2015-08-15 17:58:48 -070011890 map!(VkFence, ref!FenceObject) Fences
11891 map!(VkSemaphore, ref!SemaphoreObject) Semaphores
11892 map!(VkEvent, ref!EventObject) Events
11893 map!(VkQueryPool, ref!QueryPoolObject) QueryPools
11894 map!(VkFramebuffer, ref!FramebufferObject) Framebuffers
11895 map!(VkRenderPass, ref!RenderPassObject) RenderPasses
11896 map!(VkPipelineCache, ref!PipelineCacheObject) PipelineCaches
Jesse Hall3fbc8562015-11-29 22:10:52 -080011897 map!(VkCommandPool, ref!CommandPoolObject) CommandPools
Jesse Hall1356b0d2015-11-23 17:24:58 -080011898 map!(VkSurfaceKHR, ref!SurfaceObject) Surfaces
Michael Lentine88594d72015-11-12 12:49:45 -080011899 map!(VkSwapchainKHR, ref!SwapchainObject) Swapchains
Jesse Halld27f6aa2015-08-15 17:58:48 -070011900}
11901
11902@internal class InstanceObject {
11903}
11904
11905@internal class PhysicalDeviceObject {
11906 VkInstance instance
11907}
11908
11909@internal class DeviceObject {
11910 VkPhysicalDevice physicalDevice
11911}
11912
11913@internal class QueueObject {
11914 VkDevice device
11915 VkQueueFlags flags
11916}
11917
Jesse Hall3fbc8562015-11-29 22:10:52 -080011918@internal class CommandBufferObject {
Jesse Halld27f6aa2015-08-15 17:58:48 -070011919 VkDevice device
11920 map!(u64, VkDeviceMemory) boundObjects
11921 VkQueueFlags queueFlags
11922}
11923
11924@internal class DeviceMemoryObject {
Jesse Hall3fbc8562015-11-29 22:10:52 -080011925 VkDevice device
11926 VkDeviceSize allocationSize
11927 map!(u64, VkDeviceSize) boundObjects
11928 map!(VkCommandBuffer, VkCommandBuffer) boundCommandBuffers
Jesse Halld27f6aa2015-08-15 17:58:48 -070011929}
11930
11931@internal class BufferObject {
11932 VkDevice device
Jesse Hall3fbc8562015-11-29 22:10:52 -080011933 VkDeviceMemory memory
11934 VkDeviceSize memoryOffset
Jesse Halld27f6aa2015-08-15 17:58:48 -070011935}
11936
11937@internal class BufferViewObject {
11938 VkDevice device
11939 VkBuffer buffer
11940}
11941
11942@internal class ImageObject {
11943 VkDevice device
Jesse Hall3fbc8562015-11-29 22:10:52 -080011944 VkDeviceMemory memory
11945 VkDeviceSize memoryOffset
Jesse Halld27f6aa2015-08-15 17:58:48 -070011946}
11947
11948@internal class ImageViewObject {
11949 VkDevice device
11950 VkImage image
11951}
11952
Jesse Halld27f6aa2015-08-15 17:58:48 -070011953@internal class ShaderObject {
11954 VkDevice device
11955}
11956
11957@internal class ShaderModuleObject {
11958 VkDevice device
11959}
11960
11961@internal class PipelineObject {
11962 VkDevice device
11963}
11964
11965@internal class PipelineLayoutObject {
11966 VkDevice device
11967}
11968
11969@internal class SamplerObject {
11970 VkDevice device
11971}
11972
11973@internal class DescriptorSetObject {
11974 VkDevice device
11975}
11976
11977@internal class DescriptorSetLayoutObject {
11978 VkDevice device
11979}
11980
11981@internal class DescriptorPoolObject {
11982 VkDevice device
11983}
11984
Jesse Halld27f6aa2015-08-15 17:58:48 -070011985@internal class FenceObject {
11986 VkDevice device
11987 bool signaled
11988}
11989
11990@internal class SemaphoreObject {
11991 VkDevice device
11992}
11993
11994@internal class EventObject {
11995 VkDevice device
11996}
11997
11998@internal class QueryPoolObject {
11999 VkDevice device
12000}
12001
12002@internal class FramebufferObject {
12003 VkDevice device
12004}
12005
12006@internal class RenderPassObject {
12007 VkDevice device
12008}
12009
12010@internal class PipelineCacheObject {
12011 VkDevice device
12012}
12013
Jesse Hall3fbc8562015-11-29 22:10:52 -080012014@internal class CommandPoolObject {
Jesse Halld27f6aa2015-08-15 17:58:48 -070012015 VkDevice device
12016}
12017
Jesse Hall1356b0d2015-11-23 17:24:58 -080012018@internal class SurfaceObject {
12019 VkInstance instance
12020}
12021
Michael Lentine88594d72015-11-12 12:49:45 -080012022@internal class SwapchainObject {
12023 VkDevice device
12024}
12025
Jesse Halld27f6aa2015-08-15 17:58:48 -070012026macro ref!InstanceObject GetInstance(VkInstance instance) {
12027 assert(instance in State.Instances)
12028 return State.Instances[instance]
12029}
12030
12031macro ref!PhysicalDeviceObject GetPhysicalDevice(VkPhysicalDevice physicalDevice) {
12032 assert(physicalDevice in State.PhysicalDevices)
12033 return State.PhysicalDevices[physicalDevice]
12034}
12035
12036macro ref!DeviceObject GetDevice(VkDevice device) {
12037 assert(device in State.Devices)
12038 return State.Devices[device]
12039}
12040
12041macro ref!QueueObject GetQueue(VkQueue queue) {
12042 assert(queue in State.Queues)
12043 return State.Queues[queue]
12044}
12045
Jesse Hall3fbc8562015-11-29 22:10:52 -080012046macro ref!CommandBufferObject GetCommandBuffer(VkCommandBuffer commandBuffer) {
12047 assert(commandBuffer in State.CommandBuffers)
12048 return State.CommandBuffers[commandBuffer]
Jesse Halld27f6aa2015-08-15 17:58:48 -070012049}
12050
Jesse Hall3fbc8562015-11-29 22:10:52 -080012051macro ref!DeviceMemoryObject GetDeviceMemory(VkDeviceMemory memory) {
12052 assert(memory in State.DeviceMemories)
12053 return State.DeviceMemories[memory]
Jesse Halld27f6aa2015-08-15 17:58:48 -070012054}
12055
12056macro ref!BufferObject GetBuffer(VkBuffer buffer) {
12057 assert(buffer in State.Buffers)
12058 return State.Buffers[buffer]
12059}
12060
12061macro ref!BufferViewObject GetBufferView(VkBufferView bufferView) {
12062 assert(bufferView in State.BufferViews)
12063 return State.BufferViews[bufferView]
12064}
12065
12066macro ref!ImageObject GetImage(VkImage image) {
12067 assert(image in State.Images)
12068 return State.Images[image]
12069}
12070
12071macro ref!ImageViewObject GetImageView(VkImageView imageView) {
12072 assert(imageView in State.ImageViews)
12073 return State.ImageViews[imageView]
12074}
12075
Jesse Halld27f6aa2015-08-15 17:58:48 -070012076macro ref!ShaderModuleObject GetShaderModule(VkShaderModule shaderModule) {
12077 assert(shaderModule in State.ShaderModules)
12078 return State.ShaderModules[shaderModule]
12079}
12080
12081macro ref!PipelineObject GetPipeline(VkPipeline pipeline) {
12082 assert(pipeline in State.Pipelines)
12083 return State.Pipelines[pipeline]
12084}
12085
12086macro ref!PipelineLayoutObject GetPipelineLayout(VkPipelineLayout pipelineLayout) {
12087 assert(pipelineLayout in State.PipelineLayouts)
12088 return State.PipelineLayouts[pipelineLayout]
12089}
12090
12091macro ref!SamplerObject GetSampler(VkSampler sampler) {
12092 assert(sampler in State.Samplers)
12093 return State.Samplers[sampler]
12094}
12095
12096macro ref!DescriptorSetObject GetDescriptorSet(VkDescriptorSet descriptorSet) {
12097 assert(descriptorSet in State.DescriptorSets)
12098 return State.DescriptorSets[descriptorSet]
12099}
12100
12101macro ref!DescriptorSetLayoutObject GetDescriptorSetLayout(VkDescriptorSetLayout descriptorSetLayout) {
12102 assert(descriptorSetLayout in State.DescriptorSetLayouts)
12103 return State.DescriptorSetLayouts[descriptorSetLayout]
12104}
12105
12106macro ref!DescriptorPoolObject GetDescriptorPool(VkDescriptorPool descriptorPool) {
12107 assert(descriptorPool in State.DescriptorPools)
12108 return State.DescriptorPools[descriptorPool]
12109}
12110
Jesse Halld27f6aa2015-08-15 17:58:48 -070012111macro ref!FenceObject GetFence(VkFence fence) {
12112 assert(fence in State.Fences)
12113 return State.Fences[fence]
12114}
12115
12116macro ref!SemaphoreObject GetSemaphore(VkSemaphore semaphore) {
12117 assert(semaphore in State.Semaphores)
12118 return State.Semaphores[semaphore]
12119}
12120
12121macro ref!EventObject GetEvent(VkEvent event) {
12122 assert(event in State.Events)
12123 return State.Events[event]
12124}
12125
12126macro ref!QueryPoolObject GetQueryPool(VkQueryPool queryPool) {
12127 assert(queryPool in State.QueryPools)
12128 return State.QueryPools[queryPool]
12129}
12130
12131macro ref!FramebufferObject GetFramebuffer(VkFramebuffer framebuffer) {
12132 assert(framebuffer in State.Framebuffers)
12133 return State.Framebuffers[framebuffer]
12134}
12135
12136macro ref!RenderPassObject GetRenderPass(VkRenderPass renderPass) {
12137 assert(renderPass in State.RenderPasses)
12138 return State.RenderPasses[renderPass]
12139}
12140
12141macro ref!PipelineCacheObject GetPipelineCache(VkPipelineCache pipelineCache) {
12142 assert(pipelineCache in State.PipelineCaches)
12143 return State.PipelineCaches[pipelineCache]
12144}
12145
Jesse Hall3fbc8562015-11-29 22:10:52 -080012146macro ref!CommandPoolObject GetCommandPool(VkCommandPool commandPool) {
12147 assert(commandPool in State.CommandPools)
12148 return State.CommandPools[commandPool]
Jesse Hallf09c6b12015-08-15 19:54:28 -070012149}
Michael Lentine88594d72015-11-12 12:49:45 -080012150
Jesse Hall1356b0d2015-11-23 17:24:58 -080012151macro ref!SurfaceObject GetSurface(VkSurfaceKHR surface) {
12152 assert(surface in State.Surfaces)
12153 return State.Surfaces[surface]
12154}
12155
Michael Lentine88594d72015-11-12 12:49:45 -080012156macro ref!SwapchainObject GetSwapchain(VkSwapchainKHR swapchain) {
12157 assert(swapchain in State.Swapchains)
12158 return State.Swapchains[swapchain]
12159}
Jesse Halld8bade02015-11-24 10:24:18 -080012160
12161macro VkQueueFlags AddQueueFlag(VkQueueFlags flags, VkQueueFlagBits bit) {
12162 return as!VkQueueFlags(as!u32(flags) | as!u32(bit))
12163}