blob: e6e550a460e9aa4ffe5b270c0f8c18949ab11c1c [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 Kochf25f5bb2017-10-05 00:26:58 -040030define VERSION_MINOR 1
Jesse Hall35b4de12018-01-17 22:06:20 -080031define VERSION_PATCH 68
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 Elliottcd8ad332017-10-13 09:21:12 -060040@vulkan1_1
Daniel Kochf25f5bb2017-10-05 00:26:58 -040041define VK_MAX_DEVICE_GROUP_SIZE 32
Jesse Hall35b4de12018-01-17 22:06:20 -080042@vulkan1_1
Daniel Kochf25f5bb2017-10-05 00:26:58 -040043define VK_LUID_SIZE 8
Jesse Hall35b4de12018-01-17 22:06:20 -080044@vulkan1_1
Daniel Kochf25f5bb2017-10-05 00:26:58 -040045define VK_QUEUE_FAMILY_EXTERNAL -2
Jesse Hall35b4de12018-01-17 22:06:20 -080046@extension("VK_EXT_queue_family_foreign")
47define VK_QUEUE_FAMILY_FOREIGN_EXT -3
Jesse Halld27f6aa2015-08-15 17:58:48 -070048
49// API keywords
50define VK_TRUE 1
51define VK_FALSE 0
Jesse Hall5ae3abb2015-10-08 14:00:22 -070052
53// API keyword, but needs special handling by some templates
54define NULL_HANDLE 0
Jesse Halld27f6aa2015-08-15 17:58:48 -070055
Jesse Halleb02c472017-02-24 15:13:45 -080056// 1
Jesse Hall33faaad2016-01-24 21:00:49 -080057@extension("VK_KHR_surface") define VK_KHR_SURFACE_SPEC_VERSION 25
Jesse Hall3e0dc8f2015-11-30 00:42:57 -080058@extension("VK_KHR_surface") define VK_KHR_SURFACE_EXTENSION_NAME "VK_KHR_surface"
Jesse Hall1356b0d2015-11-23 17:24:58 -080059
Jesse Halleb02c472017-02-24 15:13:45 -080060// 2
Daniel Kochf25f5bb2017-10-05 00:26:58 -040061@extension("VK_KHR_swapchain") define VK_KHR_SWAPCHAIN_SPEC_VERSION 70
Jesse Hall3e0dc8f2015-11-30 00:42:57 -080062@extension("VK_KHR_swapchain") define VK_KHR_SWAPCHAIN_EXTENSION_NAME "VK_KHR_swapchain"
Jesse Hall1356b0d2015-11-23 17:24:58 -080063
Jesse Halleb02c472017-02-24 15:13:45 -080064// 3
Jesse Hall543a7ff2016-01-08 16:38:30 -080065@extension("VK_KHR_display") define VK_KHR_DISPLAY_SPEC_VERSION 21
Jesse Hall3e0dc8f2015-11-30 00:42:57 -080066@extension("VK_KHR_display") define VK_KHR_DISPLAY_EXTENSION_NAME "VK_KHR_display"
Jesse Hall1356b0d2015-11-23 17:24:58 -080067
Jesse Halleb02c472017-02-24 15:13:45 -080068// 4
Jesse Hall543a7ff2016-01-08 16:38:30 -080069@extension("VK_KHR_display_swapchain") define VK_KHR_DISPLAY_SWAPCHAIN_SPEC_VERSION 9
Jesse Hall0e74f002015-11-30 11:37:59 -080070@extension("VK_KHR_display_swapchain") define VK_KHR_DISPLAY_SWAPCHAIN_EXTENSION_NAME "VK_KHR_display_swapchain"
Jesse Hall1356b0d2015-11-23 17:24:58 -080071
Jesse Halleb02c472017-02-24 15:13:45 -080072// 5
Jesse Hall543a7ff2016-01-08 16:38:30 -080073@extension("VK_KHR_xlib_surface") define VK_KHR_XLIB_SURFACE_SPEC_VERSION 6
Jesse Hall3e0dc8f2015-11-30 00:42:57 -080074@extension("VK_KHR_xlib_surface") define VK_KHR_XLIB_SURFACE_NAME "VK_KHR_xlib_surface"
Jesse Hall1356b0d2015-11-23 17:24:58 -080075
Jesse Halleb02c472017-02-24 15:13:45 -080076// 6
Jesse Hall543a7ff2016-01-08 16:38:30 -080077@extension("VK_KHR_xcb_surface") define VK_KHR_XCB_SURFACE_SPEC_VERSION 6
Jesse Hall3e0dc8f2015-11-30 00:42:57 -080078@extension("VK_KHR_xcb_surface") define VK_KHR_XCB_SURFACE_NAME "VK_KHR_xcb_surface"
Jesse Hall1356b0d2015-11-23 17:24:58 -080079
Jesse Halleb02c472017-02-24 15:13:45 -080080// 7
Jesse Hallfdc8ab32017-03-10 21:01:57 -080081@extension("VK_KHR_wayland_surface") define VK_KHR_WAYLAND_SURFACE_SPEC_VERSION 6
Jesse Hall3e0dc8f2015-11-30 00:42:57 -080082@extension("VK_KHR_wayland_surface") define VK_KHR_WAYLAND_SURFACE_NAME "VK_KHR_wayland_surface"
Jesse Hall1356b0d2015-11-23 17:24:58 -080083
Jesse Halleb02c472017-02-24 15:13:45 -080084// 8
Jesse Hall543a7ff2016-01-08 16:38:30 -080085@extension("VK_KHR_mir_surface") define VK_KHR_MIR_SURFACE_SPEC_VERSION 4
Jesse Hall3e0dc8f2015-11-30 00:42:57 -080086@extension("VK_KHR_mir_surface") define VK_KHR_MIR_SURFACE_NAME "VK_KHR_mir_surface"
Jesse Hall1356b0d2015-11-23 17:24:58 -080087
Jesse Halleb02c472017-02-24 15:13:45 -080088// 9
Jesse Hall33faaad2016-01-24 21:00:49 -080089@extension("VK_KHR_android_surface") define VK_KHR_ANDROID_SURFACE_SPEC_VERSION 6
Jesse Hall3e0dc8f2015-11-30 00:42:57 -080090@extension("VK_KHR_android_surface") define VK_KHR_ANDROID_SURFACE_NAME "VK_KHR_android_surface"
Jesse Hall1356b0d2015-11-23 17:24:58 -080091
Jesse Halleb02c472017-02-24 15:13:45 -080092// 10
Jesse Hall7ba0ac72017-07-07 17:13:23 -070093@extension("VK_KHR_win32_surface") define VK_KHR_WIN32_SURFACE_SPEC_VERSION 6
Jesse Hall3e0dc8f2015-11-30 00:42:57 -080094@extension("VK_KHR_win32_surface") define VK_KHR_WIN32_SURFACE_NAME "VK_KHR_win32_surface"
Jesse Hall1356b0d2015-11-23 17:24:58 -080095
Jesse Halleb02c472017-02-24 15:13:45 -080096// 11
Chris Forbes1d4e5542017-02-15 19:38:50 +130097@extension("VK_ANDROID_native_buffer") define VK_ANDROID_NATIVE_BUFFER_SPEC_VERSION 7
Chia-I Wub262ddc2016-03-22 07:38:20 +080098@extension("VK_ANDROID_native_buffer") define VK_ANDROID_NATIVE_BUFFER_NAME "VK_ANDROID_native_buffer"
99
Jesse Halleb02c472017-02-24 15:13:45 -0800100// 12
Daniel Kochf25f5bb2017-10-05 00:26:58 -0400101@extension("VK_EXT_debug_report") define VK_EXT_DEBUG_REPORT_SPEC_VERSION 9
Jesse Hall715b86a2016-01-16 16:34:29 -0800102@extension("VK_EXT_debug_report") define VK_EXT_DEBUG_REPORT_NAME "VK_EXT_debug_report"
103
Jesse Halleb02c472017-02-24 15:13:45 -0800104// 13
Jesse Hall26763382016-05-20 07:13:52 -0700105@extension("VK_NV_glsl_shader") define VK_NV_GLSL_SHADER_SPEC_VERSION 1
106@extension("VK_NV_glsl_shader") define VK_NV_GLSL_SHADER_NAME "VK_NV_glsl_shader"
107
Jesse Hall77726222017-09-19 14:49:27 -0500108// 14
109@extension("VK_EXT_depth_range_unrestricted") define VK_EXT_DEPTH_RANGE_UNRESTRICTED_SPEC_VERSION 1
110@extension("VK_EXT_depth_range_unrestricted") define VK_EXT_DEPTH_RANGE_UNRESTRICTED_NAME "VK_EXT_depth_range_unrestricted"
111
Jesse Halleb02c472017-02-24 15:13:45 -0800112// 15
Jesse Hall26763382016-05-20 07:13:52 -0700113@extension("VK_KHR_sampler_mirror_clamp_to_edge") define VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_SPEC_VERSION 1
114@extension("VK_KHR_sampler_mirror_clamp_to_edge") define VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_NAME "VK_KHR_sampler_mirror_clamp_to_edge"
115
Jesse Halleb02c472017-02-24 15:13:45 -0800116// 16
Jesse Hall26763382016-05-20 07:13:52 -0700117@extension("VK_IMG_filter_cubic") define VK_IMG_FILTER_CUBIC_SPEC_VERSION 1
118@extension("VK_IMG_filter_cubic") define VK_IMG_FILTER_CUBIC_NAME "VK_IMG_filter_cubic"
119
Jesse Halleb02c472017-02-24 15:13:45 -0800120// 19
Jesse Hall26763382016-05-20 07:13:52 -0700121@extension("VK_AMD_rasterization_order") define VK_AMD_RASTERIZATION_ORDER_SPEC_VERSION 1
122@extension("VK_AMD_rasterization_order") define VK_AMD_RASTERIZATION_ORDER_NAME "VK_AMD_rasterization_order"
123
Jesse Halleb02c472017-02-24 15:13:45 -0800124// 21
Jesse Hall56d386a2016-07-26 15:20:40 -0700125@extension("VK_AMD_shader_trinary_minmax") define VK_AMD_SHADER_TRINARY_MINMAX_SPEC_VERSION 1
126@extension("VK_AMD_shader_trinary_minmax") define VK_AMD_SHADER_TRINARY_MINMAX_EXTENSION_NAME "VK_AMD_shader_trinary_minmax"
127
Jesse Halleb02c472017-02-24 15:13:45 -0800128// 22
Jesse Hall56d386a2016-07-26 15:20:40 -0700129@extension("VK_AMD_shader_explicit_vertex_parameter") define VK_AMD_SHADER_EXPLICIT_VERTEX_PARAMETER_SPEC_VERSION 1
130@extension("VK_AMD_shader_explicit_vertex_parameter") define VK_AMD_SHADER_EXPLICIT_VERTEX_PARAMETER_EXTENSION_NAME "VK_AMD_shader_explicit_vertex_parameter"
131
Jesse Halleb02c472017-02-24 15:13:45 -0800132// 23
Jesse Hall8f49fcb2017-03-06 16:02:58 -0800133@extension("VK_EXT_debug_marker") define VK_EXT_DEBUG_MARKER_SPEC_VERSION 4
Jesse Hall26763382016-05-20 07:13:52 -0700134@extension("VK_EXT_debug_marker") define VK_EXT_DEBUG_MARKER_NAME "VK_EXT_debug_marker"
135
Jesse Halleb02c472017-02-24 15:13:45 -0800136// 26
Jesse Hall56d386a2016-07-26 15:20:40 -0700137@extension("VK_AMD_gcn_shader") define VK_AMD_GCN_SHADER_SPEC_VERSION 1
138@extension("VK_AMD_gcn_shader") define VK_AMD_GCN_SHADER_EXTENSION_NAME "VK_AMD_gcn_shader"
139
Jesse Halleb02c472017-02-24 15:13:45 -0800140// 27
Jesse Hall56d386a2016-07-26 15:20:40 -0700141@extension("VK_NV_dedicated_allocation") define VK_NV_DEDICATED_ALLOCATION_SPEC_VERSION 1
142@extension("VK_NV_dedicated_allocation") define VK_NV_DEDICATED_ALLOCATION_EXTENSION_NAME "VK_NV_dedicated_allocation"
143
Jesse Halleb02c472017-02-24 15:13:45 -0800144// 28
Chris Forbes289cb792016-12-30 15:03:55 +1300145@extension("VK_IMG_format_pvrtc") define VK_IMG_FORMAT_PVRTC_SPEC_VERSION 1
146@extension("VK_IMG_format_pvrtc") define VK_IMG_FORMAT_PVRTC_EXTENSION_NAME "VK_IMG_format_pvrtc"
147
Jesse Halleb02c472017-02-24 15:13:45 -0800148// 34
149@extension("VK_AMD_draw_indirect_count") define VK_AMD_DRAW_INDIRECT_COUNT_SPEC_VERSION 1
150@extension("VK_AMD_draw_indirect_count") define VK_AMD_DRAW_INDIRECT_COUNT_EXTENSION_NAME "VK_AMD_draw_indirect_count"
151
152// 36
153@extension("VK_AMD_negative_viewport_height") define VK_AMD_NEGATIVE_VIEWPORT_HEIGHT_SPEC_VERSION 1
154@extension("VK_AMD_negative_viewport_height") define VK_AMD_NEGATIVE_VIEWPORT_HEIGHT_EXTENSION_NAME "VK_AMD_negative_viewport_height"
155
156// 37
157@extension("VK_AMD_gpu_shader_half_float") define VK_AMD_GPU_SHADER_HALF_FLOAT_SPEC_VERSION 1
158@extension("VK_AMD_gpu_shader_half_float") define VK_AMD_GPU_SHADER_HALF_FLOAT_EXTENSION_NAME "VK_AMD_gpu_shader_half_float"
159
160// 38
161@extension("VK_AMD_shader_ballot") define VK_AMD_SHADER_BALLOT_SPEC_VERSION 1
162@extension("VK_AMD_shader_ballot") define VK_AMD_SHADER_BALLOT_EXTENSION_NAME "VK_AMD_shader_ballot"
163
Jesse Hall7ba0ac72017-07-07 17:13:23 -0700164// 42
165@extension("VK_AMD_texture_gather_bias_lod") define VK_AMD_TEXTURE_GATHER_BIAS_LOD_SPEC_VERSION 1
166@extension("VK_AMD_texture_gather_bias_lod") define VK_AMD_TEXTURE_GATHER_BIAS_LOD_EXTENSION_NAME "VK_AMD_texture_gather_bias_lod"
167
Jesse Hall35b4de12018-01-17 22:06:20 -0800168// 43
169@extension("VK_AMD_shader_info") define VK_AMD_SHADER_INFO_SPEC_VERSION 1
170@extension("VK_AMD_shader_info") define VK_AMD_SHADER_INFO_EXTENSION_NAME "VK_AMD_shader_info"
171
172// 47
173@extension("VK_AMD_shader_image_load_store_lod") define VK_AMD_SHADER_IMAGE_LOAD_STORE_LOD_SPEC_VERSION 1
174@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"
175
Jesse Hallad250842017-03-10 18:35:38 -0800176// 54
Daniel Kochf25f5bb2017-10-05 00:26:58 -0400177@extension("VK_KHR_multiview") define VK_KHR_MULTIVIEW_SPEC_VERSION 1
178@extension("VK_KHR_multiview") define VK_KHR_MULTIVIEW_EXTENSION_NAME "VK_KHR_multiview"
Jesse Hallad250842017-03-10 18:35:38 -0800179
Jesse Halleb02c472017-02-24 15:13:45 -0800180// 56
Chris Forbes289cb792016-12-30 15:03:55 +1300181@extension("VK_NV_external_memory_capabilities") define VK_NV_EXTERNAL_MEMORY_CAPABILITIES_SPEC_VERSION 1
182@extension("VK_NV_external_memory_capabilities") define VK_NV_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME "VK_NV_external_memory_capabilities"
183
Jesse Halleb02c472017-02-24 15:13:45 -0800184// 57
Chris Forbes289cb792016-12-30 15:03:55 +1300185@extension("VK_NV_external_memory") define VK_NV_EXTERNAL_MEMORY_SPEC_VERSION 1
186@extension("VK_NV_external_memory") define VK_NV_EXTERNAL_MEMORY_EXTENSION_NAME "VK_NV_external_memory"
187
Jesse Halleb02c472017-02-24 15:13:45 -0800188// 58
Chris Forbes289cb792016-12-30 15:03:55 +1300189@extension("VK_NV_external_memory_win32") define VK_NV_EXTERNAL_MEMORY_WIN32_SPEC_VERSION 1
190@extension("VK_NV_external_memory_win32") define VK_NV_EXTERNAL_MEMORY_WIN32_EXTENSION_NAME "VK_NV_external_memory_win32"
191
Jesse Halleb02c472017-02-24 15:13:45 -0800192// 59
Chris Forbes289cb792016-12-30 15:03:55 +1300193@extension("VK_NV_win32_keyed_mutex") define VK_NV_WIN32_KEYED_MUTEX_SPEC_VERSION 1
194@extension("VK_NV_win32_keyed_mutex") define VK_NV_WIN32_KEYED_MUTEX_EXTENSION_NAME "VK_NV_win32_keyed_mutex"
195
Jesse Hall889cd9a2017-02-25 22:12:23 -0800196// 60
197@extension("VK_KHR_get_physical_device_properties2") define VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_SPEC_VERSION 1
198@extension("VK_KHR_get_physical_device_properties2") define VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME "VK_KHR_get_physical_device_properties2"
199
Jesse Hallad250842017-03-10 18:35:38 -0800200// 61
Daniel Kochf25f5bb2017-10-05 00:26:58 -0400201@extension("VK_KHR_device_group") define VK_KHR_DEVICE_GROUP_SPEC_VERSION 3
202@extension("VK_KHR_device_group") define VK_KHR_DEVICE_GROUP_EXTENSION_NAME "VK_KHR_device_group"
Jesse Hallad250842017-03-10 18:35:38 -0800203
Jesse Halleb02c472017-02-24 15:13:45 -0800204// 62
Chris Forbes289cb792016-12-30 15:03:55 +1300205@extension("VK_EXT_validation_flags") define VK_EXT_VALIDATION_FLAGS_SPEC_VERSION 1
206@extension("VK_EXT_validation_flags") define VK_EXT_VALIDATION_FLAGS_EXTENSION_NAME "VK_EXT_validation_flags"
207
Jesse Hall77ad05b2017-03-10 22:02:20 -0800208// 63
209@extension("VK_NN_vi_surface") define VK_NN_VI_SURFACE_SPEC_VERSION 1
210@extension("VK_NN_vi_surface") define VK_NN_VI_SURFACE_EXTENSION_NAME "VK_NN_vi_surface"
211
212// 64
213@extension("VK_KHR_shader_draw_parameters") define VK_KHR_SHADER_DRAW_PARAMETERS_SPEC_VERSION 1
214@extension("VK_KHR_shader_draw_parameters") define VK_KHR_SHADER_DRAW_PARAMETERS_EXTENSION_NAME "VK_KHR_shader_draw_parameters"
215
216// 65
217@extension("VK_EXT_shader_subgroup_ballot") define VK_EXT_SHADER_SUBGROUP_BALLOT_SPEC_VERSION 1
218@extension("VK_EXT_shader_subgroup_ballot") define VK_EXT_SHADER_SUBGROUP_BALLOT_EXTENSION_NAME "VK_EXT_shader_subgroup_ballot"
219
220// 66
221@extension("VK_EXT_shader_subgroup_vote") define VK_EXT_SHADER_SUBGROUP_VOTE_SPEC_VERSION 1
222@extension("VK_EXT_shader_subgroup_vote") define VK_EXT_SHADER_SUBGROUP_VOTE_EXTENSION_NAME "VK_EXT_shader_subgroup_vote"
223
224// 70
225@extension("VK_KHR_maintenance1") define VK_KHR_MAINTENANCE1_SPEC_VERSION 1
226@extension("VK_KHR_maintenance1") define VK_KHR_MAINTENANCE1_EXTENSION_NAME "VK_KHR_maintenance1"
227
Jesse Hallad250842017-03-10 18:35:38 -0800228// 71
Daniel Kochf25f5bb2017-10-05 00:26:58 -0400229@extension("VK_KHR_device_group_creation") define VK_KHR_DEVICE_GROUP_CREATION_SPEC_VERSION 1
230@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 -0800231
232// 72
Jesse Hall9492f992017-08-28 12:10:06 -0700233@extension("VK_KHR_external_memory_capabilities") define VK_KHR_EXTERNAL_MEMORY_CAPABILITIES_SPEC_VERSION 1
234@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 -0800235
236// 73
Jesse Hall9492f992017-08-28 12:10:06 -0700237@extension("VK_KHR_external_memory") define VK_KHR_EXTERNAL_MEMORY_SPEC_VERSION 1
238@extension("VK_KHR_external_memory") define VK_KHR_EXTERNAL_MEMORY_EXTENSION_NAME "VK_KHR_external_memory"
Jesse Hallad250842017-03-10 18:35:38 -0800239
240// 74
Jesse Hall9492f992017-08-28 12:10:06 -0700241@extension("VK_KHR_external_memory_win32") define VK_KHR_EXTERNAL_MEMORY_WIN32_SPEC_VERSION 1
242@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 -0800243
244// 75
Jesse Hall9492f992017-08-28 12:10:06 -0700245@extension("VK_KHR_external_memory_fd") define VK_KHR_EXTERNAL_MEMORY_FD_SPEC_VERSION 1
246@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 -0800247
248// 76
Jesse Hall9492f992017-08-28 12:10:06 -0700249@extension("VK_KHR_win32_keyed_mutex") define VK_KHR_WIN32_KEYED_MUTEX_SPEC_VERSION 1
250@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 -0800251
252// 77
Jesse Hall9492f992017-08-28 12:10:06 -0700253@extension("VK_KHR_external_semaphore_capabilities") define VK_KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_SPEC_VERSION 1
254@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 -0800255
256// 78
Jesse Hall9492f992017-08-28 12:10:06 -0700257@extension("VK_KHR_external_semaphore") define VK_KHR_EXTERNAL_SEMAPHORE_SPEC_VERSION 1
258@extension("VK_KHR_external_semaphore") define VK_KHR_EXTERNAL_SEMAPHORE_EXTENSION_NAME "VK_KHR_external_semaphore"
Jesse Hallad250842017-03-10 18:35:38 -0800259
260// 79
Jesse Hall9492f992017-08-28 12:10:06 -0700261@extension("VK_KHR_external_semaphore_win32") define VK_KHR_EXTERNAL_SEMAPHORE_WIN32_SPEC_VERSION 1
262@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 -0800263
264// 80
Jesse Hall9492f992017-08-28 12:10:06 -0700265@extension("VK_KHR_external_semaphore_fd") define VK_KHR_EXTERNAL_SEMAPHORE_FD_SPEC_VERSION 1
266@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 -0800267
268// 81
Daniel Kochf25f5bb2017-10-05 00:26:58 -0400269@extension("VK_KHR_push_descriptor") define VK_KHR_PUSH_DESCRIPTOR_SPEC_VERSION 2
Jesse Hallad250842017-03-10 18:35:38 -0800270@extension("VK_KHR_push_descriptor") define VK_KHR_PUSH_DESCRIPTOR_EXTENSION_NAME "VK_KHR_push_descriptor"
271
Jesse Hall9492f992017-08-28 12:10:06 -0700272// 84
273@extension("VK_KHR_16bit_storage") define VK_KHR_16BIT_STORAGE_SPEC_VERSION 1
274@extension("VK_KHR_16bit_storage") define VK_KHR_16BIT_STORAGE_EXTENSION_NAME "VK_KHR_16bit_storage"
275
Jesse Hall889cd9a2017-02-25 22:12:23 -0800276// 85
277@extension("VK_KHR_incremental_present") define VK_KHR_INCREMENTAL_PRESENT_SPEC_VERSION 1
Jesse Hallf5ad48b2017-03-20 13:09:19 -0700278@extension("VK_KHR_incremental_present") define VK_KHR_INCREMENTAL_PRESENT_EXTENSION_NAME "VK_KHR_incremental_present"
Jesse Hall889cd9a2017-02-25 22:12:23 -0800279
Jesse Hallad250842017-03-10 18:35:38 -0800280// 86
281@extension("VK_KHR_descriptor_update_template") define VK_KHR_DESCRIPTOR_UPDATE_TEMPLATE_SPEC_VERSION 1
282@extension("VK_KHR_descriptor_update_template") define VK_KHR_DESCRIPTOR_UPDATE_TEMPLATE_EXTENSION_NAME "VK_KHR_descriptor_update_template"
283
Jesse Halleb02c472017-02-24 15:13:45 -0800284// 87
Jesse Hall77726222017-09-19 14:49:27 -0500285@extension("VK_NVX_device_generated_commands") define VK_NVX_DEVICE_GENERATED_COMMANDS_SPEC_VERSION 3
Chris Forbes289cb792016-12-30 15:03:55 +1300286@extension("VK_NVX_device_generated_commands") define VK_NVX_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME "VK_NVX_device_generated_commands"
287
Jesse Hallad250842017-03-10 18:35:38 -0800288// 88
289@extension("VK_NV_clip_space_w_scaling") define VK_NV_CLIP_SPACE_W_SCALING_SPEC_VERSION 1
290@extension("VK_NV_clip_space_w_scaling") define VK_NV_CLIP_SPACE_W_SCALING_EXTENSION_NAME "VK_NV_clip_space_w_scaling"
291
Jesse Hall77ad05b2017-03-10 22:02:20 -0800292// 89
293@extension("VK_EXT_direct_mode_display") define VK_EXT_DIRECT_MODE_DISPLAY_SPEC_VERSION 1
294@extension("VK_EXT_direct_mode_display") define VK_EXT_DIRECT_MODE_DISPLAY_EXTENSION_NAME "VK_EXT_direct_mode_display"
295
296// 90
297@extension("VK_EXT_acquire_xlib_display") define VK_EXT_ACQUIRE_XLIB_DISPLAY_SPEC_VERSION 1
298@extension("VK_EXT_acquire_xlib_display") define VK_EXT_ACQUIRE_XLIB_DISPLAY_EXTENSION_NAME "VK_EXT_acquire_xlib_display"
299
300// 91
301@extension("VK_EXT_display_surface_counter") define VK_EXT_DISPLAY_SURFACE_COUNTER_SPEC_VERSION 1
302@extension("VK_EXT_display_surface_counter") define VK_EXT_DISPLAY_SURFACE_COUNTER_EXTENSION_NAME "VK_EXT_display_surface_counter"
303
304// 92
305@extension("VK_EXT_display_control") define VK_EXT_DISPLAY_CONTROL_SPEC_VERSION 1
306@extension("VK_EXT_display_control") define VK_EXT_DISPLAY_CONTROL_COUNTER_EXTENSION_NAME "VK_EXT_display_control"
307
Jesse Hall889cd9a2017-02-25 22:12:23 -0800308// 93
309@extension("VK_GOOGLE_display_timing") define VK_GOOGLE_DISPLAY_TIMING_SPEC_VERSION 1
Jesse Hallfdc8ab32017-03-10 21:01:57 -0800310@extension("VK_GOOGLE_display_timing") define VK_GOOGLE_DISPLAY_TIMING_EXTENSION_NAME "VK_GOOGLE_display_timing"
Jesse Hall889cd9a2017-02-25 22:12:23 -0800311
Jesse Hallad250842017-03-10 18:35:38 -0800312// 95
313@extension("VK_NV_sample_mask_override_coverage") define VK_NV_SAMPLE_MASK_OVERRIDE_COVERAGE_SPEC_VERSION 1
314@extension("VK_NV_sample_mask_override_coverage") define VK_NV_SAMPLE_MASK_OVERRIDE_COVERAGE_EXTENSION_NAME "VK_NV_sample_mask_override_coverage"
315
316// 96
317@extension("VK_NV_geometry_shader_passthrough") define VK_NV_GEOMETRY_SHADER_PASSTHROUGH_SPEC_VERSION 1
318@extension("VK_NV_geometry_shader_passthrough") define VK_NV_GEOMETRY_SHADER_PASSTHROUGH_EXTENSION_NAME "VK_NV_geometry_shader_passthrough"
319
320// 97
321@extension("VK_NV_viewport_array2") define VK_NV_VIEWPORT_ARRAY2_SPEC_VERSION 1
322@extension("VK_NV_viewport_array2") define VK_NV_VIEWPORT_ARRAY2_EXTENSION_NAME "VK_NV_viewport_array2"
323
324// 98
325@extension("VK_NVX_multiview_per_view_attributes") define VK_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_SPEC_VERSION 1
326@extension("VK_NVX_multiview_per_view_attributes") define VK_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_EXTENSION_NAME "VK_NVX_multiview_per_view_attributes"
327
328// 99
329@extension("VK_NV_viewport_swizzle") define VK_NV_VIEWPORT_SWIZZLE_SPEC_VERSION 1
330@extension("VK_NV_viewport_swizzle") define VK_NV_VIEWPORT_SWIZZLE_EXTENSION_NAME "VK_NV_viewport_swizzle"
331
332// 100
333@extension("VK_EXT_discard_rectangles") define VK_EXT_DISCARD_RECTANGLES_SPEC_VERSION 1
334@extension("VK_EXT_discard_rectangles") define VK_EXT_DISCARD_RECTANGLES_EXTENSION_NAME "VK_EXT_discard_rectangles"
335
Jesse Hall35b4de12018-01-17 22:06:20 -0800336// 102
337@extension("VK_EXT_conservative_rasterization") define VK_EXT_CONSERVATIVE_RASTERIZATION_SPEC_VERSION 1
338@extension("VK_EXT_conservative_rasterization") define VK_EXT_CONSERVATIVE_RASTERIZATION_EXTENSION_NAME "VK_EXT_conservative_rasterization"
339
Jesse Hall77ad05b2017-03-10 22:02:20 -0800340// 105
Jesse Hall77726222017-09-19 14:49:27 -0500341@extension("VK_EXT_swapchain_colorspace") define VK_EXT_SWAPCHAIN_COLORSPACE_SPEC_VERSION 3
Jesse Hallf5ad48b2017-03-20 13:09:19 -0700342@extension("VK_EXT_swapchain_colorspace") define VK_EXT_SWAPCHAIN_COLORSPACE_EXTENSION_NAME "VK_EXT_swapchain_colorspace"
Jesse Hall77ad05b2017-03-10 22:02:20 -0800343
Jesse Hall889cd9a2017-02-25 22:12:23 -0800344// 106
345@extension("VK_EXT_hdr_metadata") define VK_EXT_HDR_METADATA_SPEC_VERSION 1
346@extension("VK_EXT_hdr_metadata") define VK_EXT_HDR_METADATA_EXTENSION_NAME "VK_EXT_hdr_metadata"
347
348// 112
Chris Forbes1d5f68c2017-01-31 10:17:01 +1300349@extension("VK_KHR_shared_presentable_image") define VK_KHR_SHARED_PRESENTABLE_IMAGE_SPEC_VERSION 1
350@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 +1300351
Jesse Hall9492f992017-08-28 12:10:06 -0700352// 113
353@extension("VK_KHR_external_fence_capabilities") define VK_KHR_EXTERNAL_FENCE_CAPABILITIES_SPEC_VERSION 1
354@extension("VK_KHR_external_fence_capabilities") define VK_KHR_EXTERNAL_FENCE_CAPABILITIES_EXTENSION_NAME "VK_KHR_external_fence_capabilities"
355
356// 114
357@extension("VK_KHR_external_fence") define VK_KHR_EXTERNAL_FENCE_SPEC_VERSION 1
358@extension("VK_KHR_external_fence") define VK_KHR_EXTERNAL_FENCE_EXTENSION_NAME "VK_KHR_external_fence"
359
360// 115
361@extension("VK_KHR_external_fence_win32") define VK_KHR_EXTERNAL_FENCE_WIN32_SPEC_VERSION 1
362@extension("VK_KHR_external_fence_win32") define VK_KHR_EXTERNAL_FENCE_WIN32_EXTENSION_NAME "VK_KHR_external_fence_win32"
363
364// 116
365@extension("VK_KHR_external_fence_fd") define VK_KHR_EXTERNAL_FENCE_FD_SPEC_VERSION 1
366@extension("VK_KHR_external_fence_fd") define VK_KHR_EXTERNAL_FENCE_FD_EXTENSION_NAME "VK_KHR_external_fence_fd"
367
Jesse Hall076f95d2017-09-20 11:34:47 -0700368// 118
369@extension("VK_KHR_maintenance2") define VK_KHR_MAINTENANCE2_SPEC_VERSION 1
370@extension("VK_KHR_maintenance2") define VK_KHR_MAINTENANCE2_EXTENSION_NAME "VK_KHR_maintenance2"
371
Jesse Hall05556b12017-05-18 17:40:25 -0700372// 120
Chris Forbese2d3ee12017-03-16 16:10:15 +1300373@extension("VK_KHR_get_surface_capabilities2") define VK_KHR_GET_SURFACE_CAPABILITIES_2_SPEC_VERSION 1
374@extension("VK_KHR_get_surface_capabilities2") define VK_KHR_GET_SURFACE_CAPABILITIES_2_EXTENSION_NAME "VK_KHR_get_surface_capabilities2"
375
Jesse Hall9492f992017-08-28 12:10:06 -0700376// 121
377@extension("VK_KHR_variable_pointers") define VK_KHR_VARIABLE_POINTERS_SPEC_VERSION 1
378@extension("VK_KHR_variable_pointers") define VK_KHR_VARIABLE_POINTERS_EXTENSION_NAME "VK_KHR_variable_pointers"
379
Jesse Hallad250842017-03-10 18:35:38 -0800380// 123
381@extension("VK_MVK_ios_surface") define VK_MVK_IOS_SURFACE_SPEC_VERSION 1
382@extension("VK_MVK_ios_surface") define VK_MVK_IOS_SURFACE_EXTENSION_NAME "VK_MVK_ios_surface"
383
384// 124
385@extension("VK_MVK_macos_surface") define VK_MVK_MACOS_SURFACE_SPEC_VERSION 1
386@extension("VK_MVK_macos_surface") define VK_MVK_MACOS_SURFACE_EXTENSION_NAME "VK_MVK_macos_surface"
387
Jesse Hall35b4de12018-01-17 22:06:20 -0800388// 126
389@extension("VK_EXT_external_memory_dma_buf") define VK_EXT_EXTERNAL_MEMORY_DMA_BUF_SPEC_VERSION 1
390@extension("VK_EXT_external_memory_dma_buf") define VK_EXT_EXTERNAL_MEMORY_DMA_BUF_EXTENSION_NAME "VK_EXT_external_memory_dma_buf"
391
392// 127
393@extension("VK_EXT_queue_family_foreign") define VK_EXT_QUEUE_FAMILY_FOREIGN_SPEC_VERSION 1
394@extension("VK_EXT_queue_family_foreign") define VK_EXT_QUEUE_FAMILY_FOREIGN_EXTENSION_NAME "VK_EXT_queue_family_foreign"
395
Jesse Hall9492f992017-08-28 12:10:06 -0700396// 128
Jesse Hall77726222017-09-19 14:49:27 -0500397@extension("VK_KHR_dedicated_allocation") define VK_KHR_DEDICATED_ALLOCATION_SPEC_VERSION 3
Jesse Hall9492f992017-08-28 12:10:06 -0700398@extension("VK_KHR_dedicated_allocation") define VK_KHR_DEDICATED_ALLOCATION_EXTENSION_NAME "VK_KHR_dedicated_allocation"
399
Jesse Hall35b4de12018-01-17 22:06:20 -0800400// 128
401@extension("VK_EXT_debug_utils") define VK_EXT_DEBUG_UTILS_SPEC_VERSION 1
402@extension("VK_EXT_debug_utils") define VK_EXT_DEBUG_UTILS_EXTENSION_NAME "VK_EXT_debug_utils"
403
Jesse Hall7ba0ac72017-07-07 17:13:23 -0700404// 131
405@extension("VK_EXT_sampler_filter_minmax") define VK_EXT_SAMPLER_FILTER_MINMAX_SPEC_VERSION 1
406@extension("VK_EXT_sampler_filter_minmax") define VK_EXT_SAMPLER_FILTER_MINMAX_EXTENSION_NAME "VK_EXT_sampler_filter_minmax"
407
Jesse Hall9492f992017-08-28 12:10:06 -0700408// 132
409@extension("VK_KHR_storage_buffer_storage_class") define VK_KHR_STORAGE_BUFFER_STORAGE_CLASS_SPEC_VERSION 1
410@extension("VK_KHR_storage_buffer_storage_class") define VK_KHR_STORAGE_BUFFER_STORAGE_CLASS_EXTENSION_NAME "VK_KHR_storage_buffer_storage_class"
411
Jesse Hall7ba0ac72017-07-07 17:13:23 -0700412// 133
413@extension("VK_AMD_gpu_shader_int16") define VK_AMD_GPU_SHADER_INT16_SPEC_VERSION 1
414@extension("VK_AMD_gpu_shader_int16") define VK_AMD_GPU_SHADER_INT16_EXTENSION_NAME "VK_AMD_gpu_shader_int16"
415
Jesse Hall77726222017-09-19 14:49:27 -0500416// 137
417@extension("VK_AMD_mixed_attachment_samples") define VK_AMD_MIXED_ATTACHMENT_SAMPLES_SPEC_VERSION 1
418@extension("VK_AMD_mixed_attachment_samples") define VK_AMD_MIXED_ATTACHMENT_SAMPLES_EXTENSION_NAME "VK_AMD_mixed_attachment_samples"
419
420// 138
421@extension("VK_AMD_shader_fragment_mask") define VK_AMD_SHADER_FRAGMENT_MASK_SPEC_VERSION 1
422@extension("VK_AMD_shader_fragment_mask") define VK_AMD_SHADER_FRAGMENT_MASK_EXTENSION_NAME "VK_AMD_shader_fragment_mask"
423
424// 141
425@extension("VK_EXT_shader_stencil_export") define VK_EXT_SHADER_STENCIL_EXPORT_SPEC_VERSION 1
426@extension("VK_EXT_shader_stencil_export") define VK_EXT_SHADER_STENCIL_EXPORT_EXTENSION_NAME "VK_EXT_shader_stencil_export"
427
428// 144
429@extension("VK_EXT_sample_locations") define VK_EXT_SAMPLE_LOCATIONS_SPEC_VERSION 1
430@extension("VK_EXT_sample_locations") define VK_EXT_SAMPLE_LOCATIONS_EXTENSION_NAME "VK_EXT_sample_locations"
431
432// 145
433@extension("VK_KHR_relaxed_block_layout") define VK_KHR_RELAXED_BLOCK_LAYOUT_SPEC_VERSION 1
434@extension("VK_KHR_relaxed_block_layout") define VK_KHR_RELAXED_BLOCK_LAYOUT_EXTENSION_NAME "VK_KHR_relaxed_block_layout"
435
Jesse Hall9492f992017-08-28 12:10:06 -0700436// 147
437@extension("VK_KHR_get_memory_requirements2") define VK_KHR_GET_MEMORY_REQUIREMENTS2_SPEC_VERSION 1
438@extension("VK_KHR_get_memory_requirements2") define VK_KHR_GET_MEMORY_REQUIREMENTS2_EXTENSION_NAME "VK_KHR_get_memory_requirements2"
439
Jesse Hall076f95d2017-09-20 11:34:47 -0700440// 148
441@extension("VK_KHR_image_format_list") define VK_KHR_IMAGE_FORMAT_LIST_SPEC_VERSION 1
442@extension("VK_KHR_image_format_list") define VK_KHR_IMAGE_FORMAT_LIST_EXTENSION_NAME "VK_KHR_image_format_list"
443
Jesse Hall7ba0ac72017-07-07 17:13:23 -0700444// 149
445@extension("VK_EXT_blend_operation_advanced") define VK_EXT_BLEND_OPERATION_ADVANCED_SPEC_VERSION 2
446@extension("VK_EXT_blend_operation_advanced") define VK_EXT_BLEND_OPERATION_ADVANCED_EXTENSION_NAME "VK_EXT_blend_operation_advanced"
447
448// 150
449@extension("VK_NV_fragment_coverage_to_color") define VK_NV_FRAGMENT_COVERAGE_TO_COLOR_SPEC_VERSION 1
450@extension("VK_NV_fragment_coverage_to_color") define VK_NV_FRAGMENT_COVERAGE_TO_COLOR_EXTENSION_NAME "VK_NV_fragment_coverage_to_color"
451
452// 153
453@extension("VK_NV_framebuffer_mixed_samples") define VK_NV_FRAMEBUFFER_MIXED_SAMPLES_SPEC_VERSION 1
454@extension("VK_NV_framebuffer_mixed_samples") define VK_NV_FRAMEBUFFER_MIXED_SAMPLES_EXTENSION_NAME "VK_NV_framebuffer_mixed_samples"
455
456// 154
457@extension("VK_NV_fill_rectangle") define VK_NV_FILL_RECTANGLE_SPEC_VERSION 1
458@extension("VK_NV_fill_rectangle") define VK_NV_FILL_RECTANGLE_EXTENSION_NAME "VK_NV_fill_rectangle"
459
Jesse Hall77726222017-09-19 14:49:27 -0500460// 156
461@extension("VK_EXT_post_depth_coverage") define VK_EXT_POST_DEPTH_COVERAGE_SPEC_VERSION 1
462@extension("VK_EXT_post_depth_coverage") define VK_EXT_POST_DEPTH_COVERAGE_EXTENSION_NAME "VK_EXT_post_depth_coverage"
463
Jesse Hall076f95d2017-09-20 11:34:47 -0700464// 157
465@extension("VK_KHR_sampler_ycbcr_conversion") define VK_KHR_SAMPLER_YCBCR_CONVERSION_SPEC_VERSION 1
466@extension("VK_KHR_sampler_ycbcr_conversion") define VK_KHR_SAMPLER_YCBCR_CONVERSION_EXTENSION_NAME "VK_KHR_sampler_ycbcr_conversion"
467
468// 158
469@extension("VK_KHR_bind_memory2") define VK_KHR_BIND_MEMORY2_SPEC_VERSION 1
470@extension("VK_KHR_bind_memory2") define VK_KHR_BIND_MEMORY2_EXTENSION_NAME "VK_KHR_bind_memory2"
471
Jesse Hall77726222017-09-19 14:49:27 -0500472// 161
473@extension("VK_EXT_validation_cache") define VK_EXT_VALIDATION_CACHE_SPEC_VERSION 1
474@extension("VK_EXT_validation_cache") define VK_EXT_VALIDATION_CACHE_EXTENSION_NAME "VK_EXT_validation_cache"
475
476// 165
477@extension("VK_EXT_shader_viewport_index_layer") define VK_EXT_SHADER_VIEWPORT_INDEX_LAYER_SPEC_VERSION 1
478@extension("VK_EXT_shader_viewport_index_layer") define VK_EXT_SHADER_VIEWPORT_INDEX_LAYER_EXTENSION_NAME "VK_EXT_shader_viewport_index_layer"
479
Daniel Kochf25f5bb2017-10-05 00:26:58 -0400480// 169
481@extension("VK_KHR_maintenance3") define VK_KHR_MAINTENANCE3_SPEC_VERSION 1
482@extension("VK_KHR_maintenance3") define VK_KHR_MAINTENANCE3_EXTENSION_NAME "VK_KHR_maintenance3"
483
Jesse Hall35b4de12018-01-17 22:06:20 -0800484// 175
485@extension("VK_EXT_global_priority") define VK_EXT_GLOBAL_PRIORITY_SPEC_VERSION 1
486@extension("VK_EXT_global_priority") define VK_EXT_GLOBAL_PRIORITY_EXTENSION_NAME "VK_EXT_global_priority"
487
488// 179
489@extension("VK_EXT_external_memory_host") define VK_EXT_EXTERNAL_MEMORY_HOST_SPEC_VERSION 1
490@extension("VK_EXT_external_memory_host") define VK_EXT_EXTERNAL_MEMORY_HOST_EXTENSION_NAME "VK_EXT_external_memory_host"
491
Jesse Halld27f6aa2015-08-15 17:58:48 -0700492/////////////
493// Types //
494/////////////
495
Jesse Hall5ae3abb2015-10-08 14:00:22 -0700496type u32 VkBool32
497type u32 VkFlags
498type u64 VkDeviceSize
499type u32 VkSampleMask
500
Jesse Halld27f6aa2015-08-15 17:58:48 -0700501/// Dispatchable handle types.
502@dispatchHandle type u64 VkInstance
503@dispatchHandle type u64 VkPhysicalDevice
504@dispatchHandle type u64 VkDevice
505@dispatchHandle type u64 VkQueue
Jesse Hall3fbc8562015-11-29 22:10:52 -0800506@dispatchHandle type u64 VkCommandBuffer
Jesse Halld27f6aa2015-08-15 17:58:48 -0700507
508/// Non dispatchable handle types.
509@nonDispatchHandle type u64 VkDeviceMemory
Jesse Hall3fbc8562015-11-29 22:10:52 -0800510@nonDispatchHandle type u64 VkCommandPool
Jesse Halld27f6aa2015-08-15 17:58:48 -0700511@nonDispatchHandle type u64 VkBuffer
512@nonDispatchHandle type u64 VkBufferView
513@nonDispatchHandle type u64 VkImage
514@nonDispatchHandle type u64 VkImageView
Jesse Halld27f6aa2015-08-15 17:58:48 -0700515@nonDispatchHandle type u64 VkShaderModule
Jesse Halld27f6aa2015-08-15 17:58:48 -0700516@nonDispatchHandle type u64 VkPipeline
517@nonDispatchHandle type u64 VkPipelineLayout
518@nonDispatchHandle type u64 VkSampler
519@nonDispatchHandle type u64 VkDescriptorSet
520@nonDispatchHandle type u64 VkDescriptorSetLayout
521@nonDispatchHandle type u64 VkDescriptorPool
Jesse Halld27f6aa2015-08-15 17:58:48 -0700522@nonDispatchHandle type u64 VkFence
523@nonDispatchHandle type u64 VkSemaphore
524@nonDispatchHandle type u64 VkEvent
525@nonDispatchHandle type u64 VkQueryPool
526@nonDispatchHandle type u64 VkFramebuffer
527@nonDispatchHandle type u64 VkRenderPass
528@nonDispatchHandle type u64 VkPipelineCache
Jesse Hall1356b0d2015-11-23 17:24:58 -0800529
Ian Elliottcd8ad332017-10-13 09:21:12 -0600530@vulkan1_1
Daniel Kochf25f5bb2017-10-05 00:26:58 -0400531@nonDispatchHandle type u64 VkSamplerYcbcrConversion
532@nonDispatchHandle type u64 VkDescriptorUpdateTemplate
533
Jesse Hallad250842017-03-10 18:35:38 -0800534// 1
Jesse Hall3e0dc8f2015-11-30 00:42:57 -0800535@extension("VK_KHR_surface") @nonDispatchHandle type u64 VkSurfaceKHR
Jesse Hall1356b0d2015-11-23 17:24:58 -0800536
Jesse Hallad250842017-03-10 18:35:38 -0800537// 2
Jesse Hall3e0dc8f2015-11-30 00:42:57 -0800538@extension("VK_KHR_swapchain") @nonDispatchHandle type u64 VkSwapchainKHR
Jesse Hall1356b0d2015-11-23 17:24:58 -0800539
Jesse Hallad250842017-03-10 18:35:38 -0800540// 3
Jesse Hall3e0dc8f2015-11-30 00:42:57 -0800541@extension("VK_KHR_display") @nonDispatchHandle type u64 VkDisplayKHR
542@extension("VK_KHR_display") @nonDispatchHandle type u64 VkDisplayModeKHR
Jesse Halld27f6aa2015-08-15 17:58:48 -0700543
Jesse Hallad250842017-03-10 18:35:38 -0800544// 12
Jesse Hall715b86a2016-01-16 16:34:29 -0800545@extension("VK_EXT_debug_report") @nonDispatchHandle type u64 VkDebugReportCallbackEXT
546
Jesse Hallad250842017-03-10 18:35:38 -0800547// 86
548@extension("VK_KHR_descriptor_update_template") @nonDispatchHandle type u64 VkDescriptorUpdateTemplateKHR
549
550// 87
Chris Forbes289cb792016-12-30 15:03:55 +1300551@extension("VK_NVX_device_generated_commands") @nonDispatchHandle type u64 VkObjectTableNVX
552@extension("VK_NVX_device_generated_commands") @nonDispatchHandle type u64 VkIndirectCommandsLayoutNVX
553
Jesse Hall35b4de12018-01-17 22:06:20 -0800554// 129
555@extension("VK_EXT_debug_utils") @nonDispatchHandle type u64 VkDebugUtilsMessengerEXT
556
Jesse Hall076f95d2017-09-20 11:34:47 -0700557// 157
558@extension("VK_KHR_sampler_ycbcr_conversion") @nonDispatchHandle type u64 VkSamplerYcbcrConversionKHR
559
Jesse Hall77726222017-09-19 14:49:27 -0500560// 161
561@extension("VK_EXT_validation_cache") @nonDispatchHandle type u64 VkValidationCacheEXT
Jesse Halld27f6aa2015-08-15 17:58:48 -0700562
563/////////////
564// Enums //
565/////////////
566
567enum VkImageLayout {
568 VK_IMAGE_LAYOUT_UNDEFINED = 0x00000000, /// Implicit layout an image is when its contents are undefined due to various reasons (e.g. right after creation)
569 VK_IMAGE_LAYOUT_GENERAL = 0x00000001, /// General layout when image can be used for any kind of access
570 VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL = 0x00000002, /// Optimal layout when image is only used for color attachment read/write
571 VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL = 0x00000003, /// Optimal layout when image is only used for depth/stencil attachment read/write
572 VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL = 0x00000004, /// Optimal layout when image is used for read only depth/stencil attachment and shader access
573 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 -0800574 VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL = 0x00000006, /// Optimal layout when image is used only as source of transfer operations
575 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 -0700576 VK_IMAGE_LAYOUT_PREINITIALIZED = 0x00000008, /// Initial layout used when the data is populated by the CPU
Jesse Hall1356b0d2015-11-23 17:24:58 -0800577
Ian Elliottcd8ad332017-10-13 09:21:12 -0600578 //@vulkan1_1
Daniel Kochf25f5bb2017-10-05 00:26:58 -0400579 VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL = 1000117000,
580 VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL = 1000117001,
581
Jesse Hallad250842017-03-10 18:35:38 -0800582 //@extension("VK_KHR_swapchain") // 2
Jesse Hallbd888842015-11-30 21:44:14 -0800583 VK_IMAGE_LAYOUT_PRESENT_SRC_KHR = 1000001002,
Chris Forbesaf3a1112017-01-31 15:37:03 +1300584
Jesse Hall05556b12017-05-18 17:40:25 -0700585 //@extension("VK_KHR_shared_presentable_image") // 112
Chris Forbesaf3a1112017-01-31 15:37:03 +1300586 VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR = 1000111000,
Jesse Hall076f95d2017-09-20 11:34:47 -0700587
588 //@extension("VK_KHR_maintenance2") // 118
589 VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL_KHR = 1000117000,
590 VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL_KHR = 1000117001,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700591}
592
593enum VkAttachmentLoadOp {
594 VK_ATTACHMENT_LOAD_OP_LOAD = 0x00000000,
595 VK_ATTACHMENT_LOAD_OP_CLEAR = 0x00000001,
596 VK_ATTACHMENT_LOAD_OP_DONT_CARE = 0x00000002,
597}
598
599enum VkAttachmentStoreOp {
600 VK_ATTACHMENT_STORE_OP_STORE = 0x00000000,
601 VK_ATTACHMENT_STORE_OP_DONT_CARE = 0x00000001,
602}
603
604enum VkImageType {
605 VK_IMAGE_TYPE_1D = 0x00000000,
606 VK_IMAGE_TYPE_2D = 0x00000001,
607 VK_IMAGE_TYPE_3D = 0x00000002,
608}
609
610enum VkImageTiling {
Jesse Hallc7467b72015-11-29 21:05:26 -0800611 VK_IMAGE_TILING_OPTIMAL = 0x00000000,
612 VK_IMAGE_TILING_LINEAR = 0x00000001,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700613}
614
615enum VkImageViewType {
616 VK_IMAGE_VIEW_TYPE_1D = 0x00000000,
617 VK_IMAGE_VIEW_TYPE_2D = 0x00000001,
618 VK_IMAGE_VIEW_TYPE_3D = 0x00000002,
619 VK_IMAGE_VIEW_TYPE_CUBE = 0x00000003,
620 VK_IMAGE_VIEW_TYPE_1D_ARRAY = 0x00000004,
621 VK_IMAGE_VIEW_TYPE_2D_ARRAY = 0x00000005,
622 VK_IMAGE_VIEW_TYPE_CUBE_ARRAY = 0x00000006,
623}
624
Jesse Hall3fbc8562015-11-29 22:10:52 -0800625enum VkCommandBufferLevel {
626 VK_COMMAND_BUFFER_LEVEL_PRIMARY = 0x00000000,
627 VK_COMMAND_BUFFER_LEVEL_SECONDARY = 0x00000001,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700628}
629
Jesse Hall65ab5522015-11-30 00:07:16 -0800630enum VkComponentSwizzle {
631 VK_COMPONENT_SWIZZLE_IDENTITY = 0x00000000,
632 VK_COMPONENT_SWIZZLE_ZERO = 0x00000001,
633 VK_COMPONENT_SWIZZLE_ONE = 0x00000002,
634 VK_COMPONENT_SWIZZLE_R = 0x00000003,
635 VK_COMPONENT_SWIZZLE_G = 0x00000004,
636 VK_COMPONENT_SWIZZLE_B = 0x00000005,
637 VK_COMPONENT_SWIZZLE_A = 0x00000006,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700638}
639
640enum VkDescriptorType {
641 VK_DESCRIPTOR_TYPE_SAMPLER = 0x00000000,
642 VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER = 0x00000001,
643 VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE = 0x00000002,
644 VK_DESCRIPTOR_TYPE_STORAGE_IMAGE = 0x00000003,
645 VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER = 0x00000004,
646 VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER = 0x00000005,
647 VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER = 0x00000006,
648 VK_DESCRIPTOR_TYPE_STORAGE_BUFFER = 0x00000007,
649 VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC = 0x00000008,
650 VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC = 0x00000009,
651 VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT = 0x0000000a,
652}
653
Jesse Halld27f6aa2015-08-15 17:58:48 -0700654enum VkQueryType {
655 VK_QUERY_TYPE_OCCLUSION = 0x00000000,
656 VK_QUERY_TYPE_PIPELINE_STATISTICS = 0x00000001, /// Optional
Jesse Halla3a7a1d2015-11-24 11:37:23 -0800657 VK_QUERY_TYPE_TIMESTAMP = 0x00000002,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700658}
659
Jesse Halld27f6aa2015-08-15 17:58:48 -0700660enum VkBorderColor {
661 VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK = 0x00000000,
662 VK_BORDER_COLOR_INT_TRANSPARENT_BLACK = 0x00000001,
663 VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK = 0x00000002,
664 VK_BORDER_COLOR_INT_OPAQUE_BLACK = 0x00000003,
665 VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE = 0x00000004,
666 VK_BORDER_COLOR_INT_OPAQUE_WHITE = 0x00000005,
667}
668
669enum VkPipelineBindPoint {
Jesse Hallc7467b72015-11-29 21:05:26 -0800670 VK_PIPELINE_BIND_POINT_GRAPHICS = 0x00000000,
671 VK_PIPELINE_BIND_POINT_COMPUTE = 0x00000001,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700672}
673
674enum VkPrimitiveTopology {
675 VK_PRIMITIVE_TOPOLOGY_POINT_LIST = 0x00000000,
676 VK_PRIMITIVE_TOPOLOGY_LINE_LIST = 0x00000001,
677 VK_PRIMITIVE_TOPOLOGY_LINE_STRIP = 0x00000002,
678 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST = 0x00000003,
679 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP = 0x00000004,
680 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN = 0x00000005,
Jesse Hall3fbc8562015-11-29 22:10:52 -0800681 VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY = 0x00000006,
682 VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY = 0x00000007,
683 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY = 0x00000008,
684 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY = 0x00000009,
Jesse Hall091ed9e2015-11-30 00:55:29 -0800685 VK_PRIMITIVE_TOPOLOGY_PATCH_LIST = 0x0000000a,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700686}
687
688enum VkSharingMode {
689 VK_SHARING_MODE_EXCLUSIVE = 0x00000000,
690 VK_SHARING_MODE_CONCURRENT = 0x00000001,
691}
692
693enum VkIndexType {
694 VK_INDEX_TYPE_UINT16 = 0x00000000,
695 VK_INDEX_TYPE_UINT32 = 0x00000001,
696}
697
Jesse Hall23ff73f2015-11-29 14:36:39 -0800698enum VkFilter {
699 VK_FILTER_NEAREST = 0x00000000,
700 VK_FILTER_LINEAR = 0x00000001,
Jesse Hall26763382016-05-20 07:13:52 -0700701
Jesse Hallad250842017-03-10 18:35:38 -0800702 //@extension("VK_IMG_filter_cubic") // 16
Jesse Hall26763382016-05-20 07:13:52 -0700703 VK_FILTER_CUBIC_IMG = 1000015000,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700704}
705
Jesse Hall23ff73f2015-11-29 14:36:39 -0800706enum VkSamplerMipmapMode {
Jesse Hall23ff73f2015-11-29 14:36:39 -0800707 VK_SAMPLER_MIPMAP_MODE_NEAREST = 0x00000001, /// Choose nearest mip level
708 VK_SAMPLER_MIPMAP_MODE_LINEAR = 0x00000002, /// Linear filter between mip levels
Jesse Halld27f6aa2015-08-15 17:58:48 -0700709}
710
Jesse Hall23ff73f2015-11-29 14:36:39 -0800711enum VkSamplerAddressMode {
Jesse Hallc7467b72015-11-29 21:05:26 -0800712 VK_SAMPLER_ADDRESS_MODE_REPEAT = 0x00000000,
713 VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT = 0x00000001,
714 VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE = 0x00000002,
715 VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER = 0x00000003,
716 VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE = 0x00000004,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700717}
718
719enum VkCompareOp {
720 VK_COMPARE_OP_NEVER = 0x00000000,
721 VK_COMPARE_OP_LESS = 0x00000001,
722 VK_COMPARE_OP_EQUAL = 0x00000002,
Jesse Hall3fbc8562015-11-29 22:10:52 -0800723 VK_COMPARE_OP_LESS_OR_EQUAL = 0x00000003,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700724 VK_COMPARE_OP_GREATER = 0x00000004,
725 VK_COMPARE_OP_NOT_EQUAL = 0x00000005,
Jesse Hall3fbc8562015-11-29 22:10:52 -0800726 VK_COMPARE_OP_GREATER_OR_EQUAL = 0x00000006,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700727 VK_COMPARE_OP_ALWAYS = 0x00000007,
728}
729
Jesse Hall65ab5522015-11-30 00:07:16 -0800730enum VkPolygonMode {
731 VK_POLYGON_MODE_FILL = 0x00000000,
732 VK_POLYGON_MODE_LINE = 0x00000001,
733 VK_POLYGON_MODE_POINT = 0x00000002,
Jesse Hall7ba0ac72017-07-07 17:13:23 -0700734
735 //@extension("VK_NV_fill_rectangle") // 154
736 VK_POLYGON_MODE_FILL_RECTANGLE_NV = 1000153000,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700737}
738
739enum VkFrontFace {
Jesse Hall3fbc8562015-11-29 22:10:52 -0800740 VK_FRONT_FACE_COUNTER_CLOCKWISE = 0x00000000,
741 VK_FRONT_FACE_CLOCKWISE = 0x00000001,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700742}
743
Jesse Hall65ab5522015-11-30 00:07:16 -0800744enum VkBlendFactor {
745 VK_BLEND_FACTOR_ZERO = 0x00000000,
746 VK_BLEND_FACTOR_ONE = 0x00000001,
747 VK_BLEND_FACTOR_SRC_COLOR = 0x00000002,
748 VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR = 0x00000003,
749 VK_BLEND_FACTOR_DST_COLOR = 0x00000004,
750 VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR = 0x00000005,
751 VK_BLEND_FACTOR_SRC_ALPHA = 0x00000006,
752 VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA = 0x00000007,
753 VK_BLEND_FACTOR_DST_ALPHA = 0x00000008,
754 VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA = 0x00000009,
755 VK_BLEND_FACTOR_CONSTANT_COLOR = 0x0000000a,
756 VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR = 0x0000000b,
757 VK_BLEND_FACTOR_CONSTANT_ALPHA = 0x0000000c,
758 VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA = 0x0000000d,
759 VK_BLEND_FACTOR_SRC_ALPHA_SATURATE = 0x0000000e,
760 VK_BLEND_FACTOR_SRC1_COLOR = 0x0000000f,
761 VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR = 0x00000010,
762 VK_BLEND_FACTOR_SRC1_ALPHA = 0x00000011,
763 VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA = 0x00000012,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700764}
765
766enum VkBlendOp {
767 VK_BLEND_OP_ADD = 0x00000000,
768 VK_BLEND_OP_SUBTRACT = 0x00000001,
769 VK_BLEND_OP_REVERSE_SUBTRACT = 0x00000002,
770 VK_BLEND_OP_MIN = 0x00000003,
771 VK_BLEND_OP_MAX = 0x00000004,
Jesse Hall7ba0ac72017-07-07 17:13:23 -0700772
773 //@extension("VK_EXT_blend_operation_advanced") // 149
774 VK_BLEND_OP_ZERO_EXT = 1000148000,
775 VK_BLEND_OP_SRC_EXT = 1000148001,
776 VK_BLEND_OP_DST_EXT = 1000148002,
777 VK_BLEND_OP_SRC_OVER_EXT = 1000148003,
778 VK_BLEND_OP_DST_OVER_EXT = 1000148004,
779 VK_BLEND_OP_SRC_IN_EXT = 1000148005,
780 VK_BLEND_OP_DST_IN_EXT = 1000148006,
781 VK_BLEND_OP_SRC_OUT_EXT = 1000148007,
782 VK_BLEND_OP_DST_OUT_EXT = 1000148008,
783 VK_BLEND_OP_SRC_ATOP_EXT = 1000148009,
784 VK_BLEND_OP_DST_ATOP_EXT = 1000148010,
785 VK_BLEND_OP_XOR_EXT = 1000148011,
786 VK_BLEND_OP_MULTIPLY_EXT = 1000148012,
787 VK_BLEND_OP_SCREEN_EXT = 1000148013,
788 VK_BLEND_OP_OVERLAY_EXT = 1000148014,
789 VK_BLEND_OP_DARKEN_EXT = 1000148015,
790 VK_BLEND_OP_LIGHTEN_EXT = 1000148016,
791 VK_BLEND_OP_COLORDODGE_EXT = 1000148017,
792 VK_BLEND_OP_COLORBURN_EXT = 1000148018,
793 VK_BLEND_OP_HARDLIGHT_EXT = 1000148019,
794 VK_BLEND_OP_SOFTLIGHT_EXT = 1000148020,
795 VK_BLEND_OP_DIFFERENCE_EXT = 1000148021,
796 VK_BLEND_OP_EXCLUSION_EXT = 1000148022,
797 VK_BLEND_OP_INVERT_EXT = 1000148023,
798 VK_BLEND_OP_INVERT_RGB_EXT = 1000148024,
799 VK_BLEND_OP_LINEARDODGE_EXT = 1000148025,
800 VK_BLEND_OP_LINEARBURN_EXT = 1000148026,
801 VK_BLEND_OP_VIVIDLIGHT_EXT = 1000148027,
802 VK_BLEND_OP_LINEARLIGHT_EXT = 1000148028,
803 VK_BLEND_OP_PINLIGHT_EXT = 1000148029,
804 VK_BLEND_OP_HARDMIX_EXT = 1000148030,
805 VK_BLEND_OP_HSL_HUE_EXT = 1000148031,
806 VK_BLEND_OP_HSL_SATURATION_EXT = 1000148032,
807 VK_BLEND_OP_HSL_COLOR_EXT = 1000148033,
808 VK_BLEND_OP_HSL_LUMINOSITY_EXT = 1000148034,
809 VK_BLEND_OP_PLUS_EXT = 1000148035,
810 VK_BLEND_OP_PLUS_CLAMPED_EXT = 1000148036,
811 VK_BLEND_OP_PLUS_CLAMPED_ALPHA_EXT = 1000148037,
812 VK_BLEND_OP_PLUS_DARKER_EXT = 1000148038,
813 VK_BLEND_OP_MINUS_EXT = 1000148039,
814 VK_BLEND_OP_MINUS_CLAMPED_EXT = 1000148040,
815 VK_BLEND_OP_CONTRAST_EXT = 1000148041,
816 VK_BLEND_OP_INVERT_OVG_EXT = 1000148042,
817 VK_BLEND_OP_RED_EXT = 1000148043,
818 VK_BLEND_OP_GREEN_EXT = 1000148044,
819 VK_BLEND_OP_BLUE_EXT = 1000148045,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700820}
821
822enum VkStencilOp {
823 VK_STENCIL_OP_KEEP = 0x00000000,
824 VK_STENCIL_OP_ZERO = 0x00000001,
825 VK_STENCIL_OP_REPLACE = 0x00000002,
Jesse Hall3fbc8562015-11-29 22:10:52 -0800826 VK_STENCIL_OP_INCREMENT_AND_CLAMP = 0x00000003,
827 VK_STENCIL_OP_DECREMENT_AND_CLAMP = 0x00000004,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700828 VK_STENCIL_OP_INVERT = 0x00000005,
Jesse Hall3fbc8562015-11-29 22:10:52 -0800829 VK_STENCIL_OP_INCREMENT_AND_WRAP = 0x00000006,
830 VK_STENCIL_OP_DECREMENT_AND_WRAP = 0x00000007,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700831}
832
833enum VkLogicOp {
834 VK_LOGIC_OP_CLEAR = 0x00000000,
835 VK_LOGIC_OP_AND = 0x00000001,
836 VK_LOGIC_OP_AND_REVERSE = 0x00000002,
837 VK_LOGIC_OP_COPY = 0x00000003,
838 VK_LOGIC_OP_AND_INVERTED = 0x00000004,
Jesse Hall3fbc8562015-11-29 22:10:52 -0800839 VK_LOGIC_OP_NO_OP = 0x00000005,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700840 VK_LOGIC_OP_XOR = 0x00000006,
841 VK_LOGIC_OP_OR = 0x00000007,
842 VK_LOGIC_OP_NOR = 0x00000008,
Jesse Hall3fbc8562015-11-29 22:10:52 -0800843 VK_LOGIC_OP_EQUIVALENT = 0x00000009,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700844 VK_LOGIC_OP_INVERT = 0x0000000a,
845 VK_LOGIC_OP_OR_REVERSE = 0x0000000b,
846 VK_LOGIC_OP_COPY_INVERTED = 0x0000000c,
847 VK_LOGIC_OP_OR_INVERTED = 0x0000000d,
848 VK_LOGIC_OP_NAND = 0x0000000e,
849 VK_LOGIC_OP_SET = 0x0000000f,
850}
851
Jesse Hall3fbc8562015-11-29 22:10:52 -0800852enum VkSystemAllocationScope {
Jesse Hall3e0dc8f2015-11-30 00:42:57 -0800853 VK_SYSTEM_ALLOCATION_SCOPE_COMMAND = 0x00000000,
Jesse Hall3fbc8562015-11-29 22:10:52 -0800854 VK_SYSTEM_ALLOCATION_SCOPE_OBJECT = 0x00000001,
855 VK_SYSTEM_ALLOCATION_SCOPE_CACHE = 0x00000002,
856 VK_SYSTEM_ALLOCATION_SCOPE_DEVICE = 0x00000003,
857 VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE = 0x00000004,
Jesse Hall03b6fe12015-11-24 12:44:21 -0800858}
859
Jesse Hall3fbc8562015-11-29 22:10:52 -0800860enum VkInternalAllocationType {
861 VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE = 0x00000000,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700862}
863
864enum VkPhysicalDeviceType {
865 VK_PHYSICAL_DEVICE_TYPE_OTHER = 0x00000000,
866 VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU = 0x00000001,
867 VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU = 0x00000002,
868 VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU = 0x00000003,
869 VK_PHYSICAL_DEVICE_TYPE_CPU = 0x00000004,
870}
871
Jesse Hall65ab5522015-11-30 00:07:16 -0800872enum VkVertexInputRate {
873 VK_VERTEX_INPUT_RATE_VERTEX = 0x00000000,
874 VK_VERTEX_INPUT_RATE_INSTANCE = 0x00000001,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700875}
876
877/// Vulkan format definitions
878enum VkFormat {
Jesse Hallf4ab2b12015-11-30 16:04:55 -0800879 VK_FORMAT_UNDEFINED = 0,
880 VK_FORMAT_R4G4_UNORM_PACK8 = 1,
881 VK_FORMAT_R4G4B4A4_UNORM_PACK16 = 2,
882 VK_FORMAT_B4G4R4A4_UNORM_PACK16 = 3,
883 VK_FORMAT_R5G6B5_UNORM_PACK16 = 4,
884 VK_FORMAT_B5G6R5_UNORM_PACK16 = 5,
885 VK_FORMAT_R5G5B5A1_UNORM_PACK16 = 6,
886 VK_FORMAT_B5G5R5A1_UNORM_PACK16 = 7,
887 VK_FORMAT_A1R5G5B5_UNORM_PACK16 = 8,
888 VK_FORMAT_R8_UNORM = 9,
889 VK_FORMAT_R8_SNORM = 10,
890 VK_FORMAT_R8_USCALED = 11,
891 VK_FORMAT_R8_SSCALED = 12,
892 VK_FORMAT_R8_UINT = 13,
893 VK_FORMAT_R8_SINT = 14,
894 VK_FORMAT_R8_SRGB = 15,
895 VK_FORMAT_R8G8_UNORM = 16,
896 VK_FORMAT_R8G8_SNORM = 17,
897 VK_FORMAT_R8G8_USCALED = 18,
898 VK_FORMAT_R8G8_SSCALED = 19,
899 VK_FORMAT_R8G8_UINT = 20,
900 VK_FORMAT_R8G8_SINT = 21,
901 VK_FORMAT_R8G8_SRGB = 22,
902 VK_FORMAT_R8G8B8_UNORM = 23,
903 VK_FORMAT_R8G8B8_SNORM = 24,
904 VK_FORMAT_R8G8B8_USCALED = 25,
905 VK_FORMAT_R8G8B8_SSCALED = 26,
906 VK_FORMAT_R8G8B8_UINT = 27,
907 VK_FORMAT_R8G8B8_SINT = 28,
908 VK_FORMAT_R8G8B8_SRGB = 29,
909 VK_FORMAT_B8G8R8_UNORM = 30,
910 VK_FORMAT_B8G8R8_SNORM = 31,
911 VK_FORMAT_B8G8R8_USCALED = 32,
912 VK_FORMAT_B8G8R8_SSCALED = 33,
913 VK_FORMAT_B8G8R8_UINT = 34,
914 VK_FORMAT_B8G8R8_SINT = 35,
915 VK_FORMAT_B8G8R8_SRGB = 36,
916 VK_FORMAT_R8G8B8A8_UNORM = 37,
917 VK_FORMAT_R8G8B8A8_SNORM = 38,
918 VK_FORMAT_R8G8B8A8_USCALED = 39,
919 VK_FORMAT_R8G8B8A8_SSCALED = 40,
920 VK_FORMAT_R8G8B8A8_UINT = 41,
921 VK_FORMAT_R8G8B8A8_SINT = 42,
922 VK_FORMAT_R8G8B8A8_SRGB = 43,
923 VK_FORMAT_B8G8R8A8_UNORM = 44,
924 VK_FORMAT_B8G8R8A8_SNORM = 45,
925 VK_FORMAT_B8G8R8A8_USCALED = 46,
926 VK_FORMAT_B8G8R8A8_SSCALED = 47,
927 VK_FORMAT_B8G8R8A8_UINT = 48,
928 VK_FORMAT_B8G8R8A8_SINT = 49,
929 VK_FORMAT_B8G8R8A8_SRGB = 50,
930 VK_FORMAT_A8B8G8R8_UNORM_PACK32 = 51,
931 VK_FORMAT_A8B8G8R8_SNORM_PACK32 = 52,
932 VK_FORMAT_A8B8G8R8_USCALED_PACK32 = 53,
933 VK_FORMAT_A8B8G8R8_SSCALED_PACK32 = 54,
934 VK_FORMAT_A8B8G8R8_UINT_PACK32 = 55,
935 VK_FORMAT_A8B8G8R8_SINT_PACK32 = 56,
936 VK_FORMAT_A8B8G8R8_SRGB_PACK32 = 57,
937 VK_FORMAT_A2R10G10B10_UNORM_PACK32 = 58,
938 VK_FORMAT_A2R10G10B10_SNORM_PACK32 = 59,
939 VK_FORMAT_A2R10G10B10_USCALED_PACK32 = 60,
940 VK_FORMAT_A2R10G10B10_SSCALED_PACK32 = 61,
941 VK_FORMAT_A2R10G10B10_UINT_PACK32 = 62,
942 VK_FORMAT_A2R10G10B10_SINT_PACK32 = 63,
943 VK_FORMAT_A2B10G10R10_UNORM_PACK32 = 64,
944 VK_FORMAT_A2B10G10R10_SNORM_PACK32 = 65,
945 VK_FORMAT_A2B10G10R10_USCALED_PACK32 = 66,
946 VK_FORMAT_A2B10G10R10_SSCALED_PACK32 = 67,
947 VK_FORMAT_A2B10G10R10_UINT_PACK32 = 68,
948 VK_FORMAT_A2B10G10R10_SINT_PACK32 = 69,
949 VK_FORMAT_R16_UNORM = 70,
950 VK_FORMAT_R16_SNORM = 71,
951 VK_FORMAT_R16_USCALED = 72,
952 VK_FORMAT_R16_SSCALED = 73,
953 VK_FORMAT_R16_UINT = 74,
954 VK_FORMAT_R16_SINT = 75,
955 VK_FORMAT_R16_SFLOAT = 76,
956 VK_FORMAT_R16G16_UNORM = 77,
957 VK_FORMAT_R16G16_SNORM = 78,
958 VK_FORMAT_R16G16_USCALED = 79,
959 VK_FORMAT_R16G16_SSCALED = 80,
960 VK_FORMAT_R16G16_UINT = 81,
961 VK_FORMAT_R16G16_SINT = 82,
962 VK_FORMAT_R16G16_SFLOAT = 83,
963 VK_FORMAT_R16G16B16_UNORM = 84,
964 VK_FORMAT_R16G16B16_SNORM = 85,
965 VK_FORMAT_R16G16B16_USCALED = 86,
966 VK_FORMAT_R16G16B16_SSCALED = 87,
967 VK_FORMAT_R16G16B16_UINT = 88,
968 VK_FORMAT_R16G16B16_SINT = 89,
969 VK_FORMAT_R16G16B16_SFLOAT = 90,
970 VK_FORMAT_R16G16B16A16_UNORM = 91,
971 VK_FORMAT_R16G16B16A16_SNORM = 92,
972 VK_FORMAT_R16G16B16A16_USCALED = 93,
973 VK_FORMAT_R16G16B16A16_SSCALED = 94,
974 VK_FORMAT_R16G16B16A16_UINT = 95,
975 VK_FORMAT_R16G16B16A16_SINT = 96,
976 VK_FORMAT_R16G16B16A16_SFLOAT = 97,
977 VK_FORMAT_R32_UINT = 98,
978 VK_FORMAT_R32_SINT = 99,
979 VK_FORMAT_R32_SFLOAT = 100,
980 VK_FORMAT_R32G32_UINT = 101,
981 VK_FORMAT_R32G32_SINT = 102,
982 VK_FORMAT_R32G32_SFLOAT = 103,
983 VK_FORMAT_R32G32B32_UINT = 104,
984 VK_FORMAT_R32G32B32_SINT = 105,
985 VK_FORMAT_R32G32B32_SFLOAT = 106,
986 VK_FORMAT_R32G32B32A32_UINT = 107,
987 VK_FORMAT_R32G32B32A32_SINT = 108,
988 VK_FORMAT_R32G32B32A32_SFLOAT = 109,
989 VK_FORMAT_R64_UINT = 110,
990 VK_FORMAT_R64_SINT = 111,
991 VK_FORMAT_R64_SFLOAT = 112,
992 VK_FORMAT_R64G64_UINT = 113,
993 VK_FORMAT_R64G64_SINT = 114,
994 VK_FORMAT_R64G64_SFLOAT = 115,
995 VK_FORMAT_R64G64B64_UINT = 116,
996 VK_FORMAT_R64G64B64_SINT = 117,
997 VK_FORMAT_R64G64B64_SFLOAT = 118,
998 VK_FORMAT_R64G64B64A64_UINT = 119,
999 VK_FORMAT_R64G64B64A64_SINT = 120,
1000 VK_FORMAT_R64G64B64A64_SFLOAT = 121,
1001 VK_FORMAT_B10G11R11_UFLOAT_PACK32 = 122,
1002 VK_FORMAT_E5B9G9R9_UFLOAT_PACK32 = 123,
1003 VK_FORMAT_D16_UNORM = 124,
1004 VK_FORMAT_X8_D24_UNORM_PACK32 = 125,
1005 VK_FORMAT_D32_SFLOAT = 126,
1006 VK_FORMAT_S8_UINT = 127,
1007 VK_FORMAT_D16_UNORM_S8_UINT = 128,
1008 VK_FORMAT_D24_UNORM_S8_UINT = 129,
1009 VK_FORMAT_D32_SFLOAT_S8_UINT = 130,
1010 VK_FORMAT_BC1_RGB_UNORM_BLOCK = 131,
1011 VK_FORMAT_BC1_RGB_SRGB_BLOCK = 132,
1012 VK_FORMAT_BC1_RGBA_UNORM_BLOCK = 133,
1013 VK_FORMAT_BC1_RGBA_SRGB_BLOCK = 134,
1014 VK_FORMAT_BC2_UNORM_BLOCK = 135,
1015 VK_FORMAT_BC2_SRGB_BLOCK = 136,
1016 VK_FORMAT_BC3_UNORM_BLOCK = 137,
1017 VK_FORMAT_BC3_SRGB_BLOCK = 138,
1018 VK_FORMAT_BC4_UNORM_BLOCK = 139,
1019 VK_FORMAT_BC4_SNORM_BLOCK = 140,
1020 VK_FORMAT_BC5_UNORM_BLOCK = 141,
1021 VK_FORMAT_BC5_SNORM_BLOCK = 142,
1022 VK_FORMAT_BC6H_UFLOAT_BLOCK = 143,
1023 VK_FORMAT_BC6H_SFLOAT_BLOCK = 144,
1024 VK_FORMAT_BC7_UNORM_BLOCK = 145,
1025 VK_FORMAT_BC7_SRGB_BLOCK = 146,
1026 VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK = 147,
1027 VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK = 148,
1028 VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK = 149,
1029 VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK = 150,
1030 VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK = 151,
1031 VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK = 152,
1032 VK_FORMAT_EAC_R11_UNORM_BLOCK = 153,
1033 VK_FORMAT_EAC_R11_SNORM_BLOCK = 154,
1034 VK_FORMAT_EAC_R11G11_UNORM_BLOCK = 155,
1035 VK_FORMAT_EAC_R11G11_SNORM_BLOCK = 156,
1036 VK_FORMAT_ASTC_4x4_UNORM_BLOCK = 157,
1037 VK_FORMAT_ASTC_4x4_SRGB_BLOCK = 158,
1038 VK_FORMAT_ASTC_5x4_UNORM_BLOCK = 159,
1039 VK_FORMAT_ASTC_5x4_SRGB_BLOCK = 160,
1040 VK_FORMAT_ASTC_5x5_UNORM_BLOCK = 161,
1041 VK_FORMAT_ASTC_5x5_SRGB_BLOCK = 162,
1042 VK_FORMAT_ASTC_6x5_UNORM_BLOCK = 163,
1043 VK_FORMAT_ASTC_6x5_SRGB_BLOCK = 164,
1044 VK_FORMAT_ASTC_6x6_UNORM_BLOCK = 165,
1045 VK_FORMAT_ASTC_6x6_SRGB_BLOCK = 166,
1046 VK_FORMAT_ASTC_8x5_UNORM_BLOCK = 167,
1047 VK_FORMAT_ASTC_8x5_SRGB_BLOCK = 168,
1048 VK_FORMAT_ASTC_8x6_UNORM_BLOCK = 169,
1049 VK_FORMAT_ASTC_8x6_SRGB_BLOCK = 170,
1050 VK_FORMAT_ASTC_8x8_UNORM_BLOCK = 171,
1051 VK_FORMAT_ASTC_8x8_SRGB_BLOCK = 172,
1052 VK_FORMAT_ASTC_10x5_UNORM_BLOCK = 173,
1053 VK_FORMAT_ASTC_10x5_SRGB_BLOCK = 174,
1054 VK_FORMAT_ASTC_10x6_UNORM_BLOCK = 175,
1055 VK_FORMAT_ASTC_10x6_SRGB_BLOCK = 176,
1056 VK_FORMAT_ASTC_10x8_UNORM_BLOCK = 177,
1057 VK_FORMAT_ASTC_10x8_SRGB_BLOCK = 178,
1058 VK_FORMAT_ASTC_10x10_UNORM_BLOCK = 179,
1059 VK_FORMAT_ASTC_10x10_SRGB_BLOCK = 180,
1060 VK_FORMAT_ASTC_12x10_UNORM_BLOCK = 181,
1061 VK_FORMAT_ASTC_12x10_SRGB_BLOCK = 182,
1062 VK_FORMAT_ASTC_12x12_UNORM_BLOCK = 183,
1063 VK_FORMAT_ASTC_12x12_SRGB_BLOCK = 184,
Chris Forbes289cb792016-12-30 15:03:55 +13001064
Ian Elliottcd8ad332017-10-13 09:21:12 -06001065 //@vulkan1_1
Daniel Kochf25f5bb2017-10-05 00:26:58 -04001066 VK_FORMAT_G8B8G8R8_422_UNORM = 1000156000,
1067 VK_FORMAT_B8G8R8G8_422_UNORM = 1000156001,
1068 VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM = 1000156002,
1069 VK_FORMAT_G8_B8R8_2PLANE_420_UNORM = 1000156003,
1070 VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM = 1000156004,
1071 VK_FORMAT_G8_B8R8_2PLANE_422_UNORM = 1000156005,
1072 VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM = 1000156006,
1073 VK_FORMAT_R10X6_UNORM_PACK16 = 1000156007,
1074 VK_FORMAT_R10X6G10X6_UNORM_2PACK16 = 1000156008,
1075 VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16 = 1000156009,
1076 VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16 = 1000156010,
1077 VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16 = 1000156011,
1078 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16 = 1000156012,
1079 VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16 = 1000156013,
1080 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16 = 1000156014,
1081 VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16 = 1000156015,
1082 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16 = 1000156016,
1083 VK_FORMAT_R12X4_UNORM_PACK16 = 1000156017,
1084 VK_FORMAT_R12X4G12X4_UNORM_2PACK16 = 1000156018,
1085 VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16 = 1000156019,
1086 VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16 = 1000156020,
1087 VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16 = 1000156021,
1088 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16 = 1000156022,
1089 VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16 = 1000156023,
1090 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16 = 1000156024,
1091 VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16 = 1000156025,
1092 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16 = 1000156026,
1093 VK_FORMAT_G16B16G16R16_422_UNORM = 1000156027,
1094 VK_FORMAT_B16G16R16G16_422_UNORM = 1000156028,
1095 VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM = 1000156029,
1096 VK_FORMAT_G16_B16R16_2PLANE_420_UNORM = 1000156030,
1097 VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM = 1000156031,
1098 VK_FORMAT_G16_B16R16_2PLANE_422_UNORM = 1000156032,
1099 VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM = 1000156033,
1100
Jesse Hallad250842017-03-10 18:35:38 -08001101 //@extension("VK_IMG_format_pvrtc") // 28
Jesse Halleb02c472017-02-24 15:13:45 -08001102 VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG = 1000054000,
1103 VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG = 1000054001,
1104 VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG = 1000054002,
1105 VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG = 1000054003,
1106 VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG = 1000054004,
1107 VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG = 1000054005,
1108 VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG = 1000054006,
1109 VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG = 1000054007,
Jesse Hall076f95d2017-09-20 11:34:47 -07001110
1111 //@extension("VK_KHR_sampler_ycbcr_conversion") // 157
1112 VK_FORMAT_G8B8G8R8_422_UNORM_KHR = 1000156000,
1113 VK_FORMAT_B8G8R8G8_422_UNORM_KHR = 1000156001,
1114 VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM_KHR = 1000156002,
1115 VK_FORMAT_G8_B8R8_2PLANE_420_UNORM_KHR = 1000156003,
1116 VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM_KHR = 1000156004,
1117 VK_FORMAT_G8_B8R8_2PLANE_422_UNORM_KHR = 1000156005,
1118 VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM_KHR = 1000156006,
1119 VK_FORMAT_R10X6_UNORM_PACK16_KHR = 1000156007,
1120 VK_FORMAT_R10X6G10X6_UNORM_2PACK16_KHR = 1000156008,
1121 VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16_KHR = 1000156009,
1122 VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16_KHR = 1000156010,
1123 VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16_KHR = 1000156011,
1124 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16_KHR = 1000156012,
1125 VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16_KHR = 1000156013,
1126 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16_KHR = 1000156014,
1127 VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16_KHR = 1000156015,
1128 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16_KHR = 1000156016,
1129 VK_FORMAT_R12X4_UNORM_PACK16_KHR = 1000156017,
1130 VK_FORMAT_R12X4G12X4_UNORM_2PACK16_KHR = 1000156018,
1131 VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16_KHR = 1000156019,
1132 VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16_KHR = 1000156020,
1133 VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16_KHR = 1000156021,
1134 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16_KHR = 1000156022,
1135 VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16_KHR = 1000156023,
1136 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16_KHR = 1000156024,
1137 VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16_KHR = 1000156025,
1138 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16_KHR = 1000156026,
1139 VK_FORMAT_G16B16G16R16_422_UNORM_KHR = 1000156027,
1140 VK_FORMAT_B16G16R16G16_422_UNORM_KHR = 1000156028,
1141 VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM_KHR = 1000156029,
1142 VK_FORMAT_G16_B16R16_2PLANE_420_UNORM_KHR = 1000156030,
1143 VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM_KHR = 1000156031,
1144 VK_FORMAT_G16_B16R16_2PLANE_422_UNORM_KHR = 1000156032,
1145 VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM_KHR = 1000156033,
Jesse Halld27f6aa2015-08-15 17:58:48 -07001146}
1147
Jesse Halld27f6aa2015-08-15 17:58:48 -07001148/// Structure type enumerant
1149enum VkStructureType {
1150 VK_STRUCTURE_TYPE_APPLICATION_INFO = 0,
Jesse Hallc7467b72015-11-29 21:05:26 -08001151 VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO = 1,
1152 VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO = 2,
1153 VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO = 3,
1154 VK_STRUCTURE_TYPE_SUBMIT_INFO = 4,
Jesse Hallf4ab2b12015-11-30 16:04:55 -08001155 VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO = 5,
Jesse Hallc7467b72015-11-29 21:05:26 -08001156 VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE = 6,
1157 VK_STRUCTURE_TYPE_BIND_SPARSE_INFO = 7,
1158 VK_STRUCTURE_TYPE_FENCE_CREATE_INFO = 8,
1159 VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO = 9,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07001160 VK_STRUCTURE_TYPE_EVENT_CREATE_INFO = 10,
Jesse Hallc7467b72015-11-29 21:05:26 -08001161 VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO = 11,
1162 VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO = 12,
1163 VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO = 13,
1164 VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO = 14,
1165 VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO = 15,
1166 VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO = 16,
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08001167 VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO = 17,
1168 VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO = 18,
1169 VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO = 19,
1170 VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO = 20,
1171 VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO = 21,
1172 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO = 22,
1173 VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO = 23,
1174 VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO = 24,
1175 VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO = 25,
1176 VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO = 26,
1177 VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO = 27,
1178 VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO = 28,
1179 VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO = 29,
1180 VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO = 30,
1181 VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO = 31,
1182 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO = 32,
1183 VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO = 33,
Jesse Hallf4ab2b12015-11-30 16:04:55 -08001184 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO = 34,
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08001185 VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET = 35,
1186 VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET = 36,
1187 VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO = 37,
1188 VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO = 38,
1189 VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO = 39,
Jesse Hallf4ab2b12015-11-30 16:04:55 -08001190 VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO = 40,
Jesse Hall3dd678a2016-01-08 21:52:01 -08001191 VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO = 41,
1192 VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO = 42,
1193 VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO = 43,
1194 VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER = 44,
1195 VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER = 45,
1196 VK_STRUCTURE_TYPE_MEMORY_BARRIER = 46,
1197 VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO = 47,
1198 VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO = 48,
Jesse Hall1356b0d2015-11-23 17:24:58 -08001199
Ian Elliottcd8ad332017-10-13 09:21:12 -06001200 //@vulkan1_1
Daniel Kochf25f5bb2017-10-05 00:26:58 -04001201 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES = 1000094000,
1202 VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO = 1000157000,
1203 VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO = 1000157001,
1204 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES = 1000083000,
1205 VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS = 1000127000,
1206 VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO = 1000127001,
1207 VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO = 1000060000,
1208 VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO = 1000060003,
1209 VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO = 1000060004,
1210 VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO = 1000060005,
1211 VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO = 1000060006,
1212 VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO = 1000060013,
1213 VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO = 1000060014,
1214 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES = 1000070000,
1215 VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO = 1000070001,
1216 VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2 = 1000146000,
1217 VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2 = 1000146001,
1218 VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2 = 1000146002,
1219 VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2 = 1000146003,
1220 VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2 = 1000146004,
1221 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2 = 1000059000,
1222 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2 = 1000059001,
1223 VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2 = 1000059002,
1224 VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2 = 1000059003,
1225 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2 = 1000059004,
1226 VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2 = 1000059005,
1227 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2 = 1000059006,
1228 VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2 = 1000059007,
1229 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2 = 1000059008,
1230 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES = 1000117000,
1231 VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO = 1000117001,
1232 VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO = 1000117002,
1233 VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO = 1000117003,
1234 VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO = 1000053000,
1235 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES = 1000053001,
1236 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES = 1000053002,
1237 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES = 1000120000,
1238 VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO = 1000145000,
1239 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES = 1000145001,
1240 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES = 1000145002,
1241 VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2 = 1000145003,
1242 VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO = 1000156000,
1243 VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO = 1000156001,
1244 VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO = 1000156002,
1245 VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO = 1000156003,
1246 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES = 1000156004,
1247 VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES = 1000156005,
1248 VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO = 1000085000,
1249 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO = 1000071000,
1250 VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES = 1000071001,
1251 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO = 1000071002,
1252 VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES = 1000071003,
1253 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES = 1000071004,
1254 VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO = 1000072000,
1255 VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO = 1000072001,
1256 VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO = 1000072002,
1257 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO = 1000112000,
1258 VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES = 1000112001,
1259 VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO = 1000113000,
1260 VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO = 1000077000,
1261 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO = 1000076000,
1262 VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES = 1000076001,
1263 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES = 1000168000,
1264 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT = 1000168001,
1265 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES = 1000063000,
1266 VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR = 1000060007,
1267
Jesse Hallad250842017-03-10 18:35:38 -08001268 //@extension("VK_KHR_swapchain") // 2
Jesse Hallbd888842015-11-30 21:44:14 -08001269 VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR = 1000001000,
1270 VK_STRUCTURE_TYPE_PRESENT_INFO_KHR = 1000001001,
Daniel Kochf25f5bb2017-10-05 00:26:58 -04001271 // added as interaction from VK_KHR_device_group / VK 1.1
1272 VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR = 1000060008,
1273 VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR = 1000060009,
1274 VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR = 1000060010,
1275 VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR = 1000060011,
1276 VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR = 1000060012,
Jesse Hall1356b0d2015-11-23 17:24:58 -08001277
Jesse Hallad250842017-03-10 18:35:38 -08001278 //@extension("VK_KHR_display") // 3
Jesse Hallbd888842015-11-30 21:44:14 -08001279 VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR = 1000002000,
1280 VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR = 1000002001,
Jesse Hall1356b0d2015-11-23 17:24:58 -08001281
Jesse Hallad250842017-03-10 18:35:38 -08001282 //@extension("VK_KHR_display_swapchain") // 4
Jesse Hallbd888842015-11-30 21:44:14 -08001283 VK_STRUCTURE_TYPE_DISPLAY_DISPLAY_PRESENT_INFO_KHR = 1000003000,
Jesse Hallf9fa9a52016-01-08 16:08:51 -08001284
Jesse Hallad250842017-03-10 18:35:38 -08001285 //@extension("VK_KHR_xlib_surface") // 5
Jesse Hallf9fa9a52016-01-08 16:08:51 -08001286 VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR = 1000004000,
1287
Jesse Hallad250842017-03-10 18:35:38 -08001288 //@extension("VK_KHR_xcb_surface") // 6
Jesse Hallf9fa9a52016-01-08 16:08:51 -08001289 VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR = 1000005000,
1290
Jesse Hallad250842017-03-10 18:35:38 -08001291 //@extension("VK_KHR_wayland_surface") // 7
Jesse Hallf9fa9a52016-01-08 16:08:51 -08001292 VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR = 1000006000,
1293
Jesse Hallad250842017-03-10 18:35:38 -08001294 //@extension("VK_KHR_mir_surface") // 8
Jesse Hallf9fa9a52016-01-08 16:08:51 -08001295 VK_STRUCTURE_TYPE_MIR_SURFACE_CREATE_INFO_KHR = 1000007000,
1296
Jesse Hallad250842017-03-10 18:35:38 -08001297 //@extension("VK_KHR_android_surface") // 9
Jesse Hallf9fa9a52016-01-08 16:08:51 -08001298 VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR = 1000008000,
1299
Jesse Hallad250842017-03-10 18:35:38 -08001300 //@extension("VK_KHR_win32_surface") // 10
Jesse Hallf9fa9a52016-01-08 16:08:51 -08001301 VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR = 1000009000,
Jesse Hall543a7ff2016-01-08 16:38:30 -08001302
Jesse Hallad250842017-03-10 18:35:38 -08001303 //@extension("VK_ANDROID_native_buffer") // 11
Chia-I Wub262ddc2016-03-22 07:38:20 +08001304 VK_STRUCTURE_TYPE_NATIVE_BUFFER_ANDROID = 1000010000,
Chris Forbes8e4438b2016-12-07 16:26:49 +13001305 VK_STRUCTURE_TYPE_SWAPCHAIN_IMAGE_CREATE_INFO_ANDROID = 1000010001,
Chris Forbes1d4e5542017-02-15 19:38:50 +13001306 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENTATION_PROPERTIES_ANDROID = 1000010002,
Chia-I Wub262ddc2016-03-22 07:38:20 +08001307
Jesse Hallad250842017-03-10 18:35:38 -08001308 //@extension("VK_EXT_debug_report") // 12
Jesse Hall26763382016-05-20 07:13:52 -07001309 VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT = 1000011000,
1310
Jesse Hallad250842017-03-10 18:35:38 -08001311 //@extension("VK_AMD_rasterization_order") // 19
Jesse Hall26763382016-05-20 07:13:52 -07001312 VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD = 1000018000,
1313
Jesse Hallad250842017-03-10 18:35:38 -08001314 //@extension("VK_EXT_debug_marker") // 23
Jesse Hall26763382016-05-20 07:13:52 -07001315 VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT = 1000022000,
Jesse Hall26763382016-05-20 07:13:52 -07001316 VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT = 1000022001,
Jesse Hall26763382016-05-20 07:13:52 -07001317 VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT = 1000022002,
Jesse Hall56d386a2016-07-26 15:20:40 -07001318
Jesse Hallad250842017-03-10 18:35:38 -08001319 //@extension("VK_NV_dedicated_allocation") // 27
Jesse Hall56d386a2016-07-26 15:20:40 -07001320 VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV = 1000026000,
Jesse Hall56d386a2016-07-26 15:20:40 -07001321 VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV = 1000026001,
Jesse Hall56d386a2016-07-26 15:20:40 -07001322 VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV = 1000026002,
Chris Forbes289cb792016-12-30 15:03:55 +13001323
Jesse Hall7ba0ac72017-07-07 17:13:23 -07001324 //@extension("VK_AMD_texture_gather_bias_lod") // 42
1325 VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD = 1000041000,
1326
Daniel Kochf25f5bb2017-10-05 00:26:58 -04001327 //@extension("VK_KHR_multiview") // 54
1328 VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO_KHR = 1000053000,
1329 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES_KHR = 1000053001,
1330 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES_KHR = 1000053002,
Jesse Hallad250842017-03-10 18:35:38 -08001331
1332 //@extension("VK_NV_external_memory") // 57
Jesse Halleb02c472017-02-24 15:13:45 -08001333 VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV = 1000056000,
1334 VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV = 1000056001,
Chris Forbes289cb792016-12-30 15:03:55 +13001335
Jesse Hallad250842017-03-10 18:35:38 -08001336 //@extension("VK_NV_external_memory_win32") // 58
Jesse Halleb02c472017-02-24 15:13:45 -08001337 VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV = 1000057000,
1338 VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV = 1000057001,
Chris Forbes289cb792016-12-30 15:03:55 +13001339
Jesse Hallad250842017-03-10 18:35:38 -08001340 //@extension("VK_NV_win32_keyed_mutex") // 59
Chris Forbes289cb792016-12-30 15:03:55 +13001341 VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV = 1000058000,
1342
Jesse Hallad250842017-03-10 18:35:38 -08001343 //@extension("VK_KHR_get_physical_device_properties2") // 60
Jesse Hall889cd9a2017-02-25 22:12:23 -08001344 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2_KHR = 1000059000,
1345 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2_KHR = 1000059001,
1346 VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2_KHR = 1000059002,
1347 VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2_KHR = 1000059003,
1348 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2_KHR = 1000059004,
1349 VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2_KHR = 1000059005,
1350 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2_KHR = 1000059006,
1351 VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2_KHR = 1000059007,
Chris Forbes1194ede2016-12-30 16:29:25 +13001352 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2_KHR = 1000059008,
1353
Daniel Kochf25f5bb2017-10-05 00:26:58 -04001354 //@extension("VK_KHR_device_group") // 61
1355 VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO_KHR = 1000060000,
1356 VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO_KHR = 1000060003,
1357 VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO_KHR = 1000060004,
1358 VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO_KHR = 1000060005,
1359 VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO_KHR = 1000060006,
1360 VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR = 1000060007,
1361 // tokens 08-12 are listed with VK_KHR_swapchain
1362 VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO_KHR = 1000060013,
1363 VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO_KHR = 1000060014,
Jesse Hallad250842017-03-10 18:35:38 -08001364
1365 //@extension("VK_EXT_validation_flags") // 62
Jesse Halleb02c472017-02-24 15:13:45 -08001366 VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT = 1000061000,
Chris Forbes289cb792016-12-30 15:03:55 +13001367
Jesse Hallad250842017-03-10 18:35:38 -08001368 //@extension("VK_NN_vi_surface") // 63
Jesse Hall77ad05b2017-03-10 22:02:20 -08001369 VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN = 1000062000,
1370
Daniel Kochf25f5bb2017-10-05 00:26:58 -04001371 //@extension("VK_KHR_device_group_creation") // 71
1372 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES_KHR = 1000070000,
1373 VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO_KHR = 1000070001,
Jesse Hallad250842017-03-10 18:35:38 -08001374
Jesse Hall9492f992017-08-28 12:10:06 -07001375 //@extension("VK_KHR_external_memory_capabilities") // 72
1376 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO_KHR = 1000071000,
1377 VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES_KHR = 1000071001,
1378 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO_KHR = 1000071002,
1379 VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES_KHR = 1000071003,
1380 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES_KHR = 1000071004,
Jesse Hallad250842017-03-10 18:35:38 -08001381
Jesse Hall9492f992017-08-28 12:10:06 -07001382 //@extension("VK_KHR_external_memory") // 73
1383 VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO_KHR = 1000072000,
1384 VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_KHR = 1000072001,
1385 VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_KHR = 1000072002,
Jesse Hallad250842017-03-10 18:35:38 -08001386
Jesse Hall9492f992017-08-28 12:10:06 -07001387 //@extension("VK_KHR_external_memory_win32") // 74
1388 VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR = 1000073000,
1389 VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR = 1000073001,
1390 VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR = 1000073002,
Jesse Hallad250842017-03-10 18:35:38 -08001391
Jesse Hall9492f992017-08-28 12:10:06 -07001392 //@extension("VK_KHR_external_memory_fd") // 75
1393 VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR = 1000074000,
1394 VK_STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR = 1000074001,
Jesse Hallad250842017-03-10 18:35:38 -08001395
Jesse Hall9492f992017-08-28 12:10:06 -07001396 //@extension("VK_KHR_win32_keyed_mutex") // 76
1397 VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR = 1000075000,
Jesse Hallad250842017-03-10 18:35:38 -08001398
Jesse Hall9492f992017-08-28 12:10:06 -07001399 //@extension("VK_KHR_external_semaphore_capabilities") // 77
1400 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO_KHR = 1000076000,
1401 VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES_KHR = 1000076001,
Jesse Hallad250842017-03-10 18:35:38 -08001402
Jesse Hall9492f992017-08-28 12:10:06 -07001403 //@extension("VK_KHR_external_semaphore") // 78
1404 VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO_KHR = 1000077000,
Jesse Hallad250842017-03-10 18:35:38 -08001405
Jesse Hall9492f992017-08-28 12:10:06 -07001406 //@extension("VK_KHR_external_semaphore_win32") // 79
1407 VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR = 1000078000,
1408 VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR = 1000078001,
1409 VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR = 1000078002,
Jesse Hallad250842017-03-10 18:35:38 -08001410
Jesse Hall9492f992017-08-28 12:10:06 -07001411 //@extension("VK_KHR_external_semaphore_fd") // 80
1412 VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR = 1000079000,
1413 VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR = 1000079001,
Jesse Hallad250842017-03-10 18:35:38 -08001414
1415 //@extension("VK_KHR_push_descriptor") // 81
1416 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR = 1000080000,
1417
Jesse Hall9492f992017-08-28 12:10:06 -07001418 //@extension("VK_KHR_16bit_storage") // 84
1419 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES_KHR = 1000083000,
1420
Jesse Hallad250842017-03-10 18:35:38 -08001421 //@extension("VK_KHR_incremental_present") // 85
Jesse Hall889cd9a2017-02-25 22:12:23 -08001422 VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR = 1000084000,
Chris Forbes289cb792016-12-30 15:03:55 +13001423
Jesse Hallad250842017-03-10 18:35:38 -08001424 //@extension("VK_KHR_descriptor_update_template") // 86
1425 VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO_KHR = 1000085000,
1426
1427 //@extension("VK_NVX_device_generated_commands") // 87
Jesse Halleb02c472017-02-24 15:13:45 -08001428 VK_STRUCTURE_TYPE_OBJECT_TABLE_CREATE_INFO_NVX = 1000086000,
1429 VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NVX = 1000086001,
1430 VK_STRUCTURE_TYPE_CMD_PROCESS_COMMANDS_INFO_NVX = 1000086002,
1431 VK_STRUCTURE_TYPE_CMD_RESERVE_SPACE_FOR_COMMANDS_INFO_NVX = 1000086003,
1432 VK_STRUCTURE_TYPE_DEVICE_GENERATED_COMMANDS_LIMITS_NVX = 1000086004,
1433 VK_STRUCTURE_TYPE_DEVICE_GENERATED_COMMANDS_FEATURES_NVX = 1000086005,
Jesse Hall77ad05b2017-03-10 22:02:20 -08001434
Jesse Hallad250842017-03-10 18:35:38 -08001435 //@extension("VK_NV_clip_space_w_scaling") // 88
1436 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV = 1000087000,
1437
1438 //@extension("VK_EXT_display_surface_counter") // 91
Jesse Hall77726222017-09-19 14:49:27 -05001439 VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT = 1000090000,
Jesse Hall77ad05b2017-03-10 22:02:20 -08001440
Jesse Hallad250842017-03-10 18:35:38 -08001441 //@extension("VK_EXT_display_control") // 92
Jesse Hall77ad05b2017-03-10 22:02:20 -08001442 VK_STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT = 1000091000,
1443 VK_STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT = 1000091001,
1444 VK_STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT = 1000091002,
1445 VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT = 1000091003,
Jesse Hallad250842017-03-10 18:35:38 -08001446
1447 //@extension("VK_GOOGLE_display_timing") // 93
1448 VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE = 1000092000,
1449
1450 //@extension("VK_NVX_multiview_per_view_attributes") // 98
1451 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX = 1000097000,
1452
1453 //@extension("VK_NV_viewport_swizzle") // 99
1454 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV = 1000098000,
1455
1456 //@extension("VK_EXT_discard_rectangles") // 100
1457 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT = 1000099000,
1458 VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT = 1000099001,
1459
Jesse Hall35b4de12018-01-17 22:06:20 -08001460 //@extension("VK_EXT_conservative_rasterization") // 102
1461 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT = 1000101000,
1462 VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT = 1000101001,
1463
Jesse Hallfdc8ab32017-03-10 21:01:57 -08001464 //@extension("VK_EXT_hdr_metadata") // 106
1465 VK_STRUCTURE_TYPE_HDR_METADATA_EXT = 1000105000,
1466
Jesse Hall05556b12017-05-18 17:40:25 -07001467 //@extension("VK_KHR_shared_presentable_image") // 112
Chris Forbese2d3ee12017-03-16 16:10:15 +13001468 VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR = 1000111000,
1469
Jesse Hall9492f992017-08-28 12:10:06 -07001470 //@extension("VK_KHR_external_fence_capabilities") // 113
1471 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO_KHR = 1000112000,
1472 VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES_KHR = 1000112001,
1473
1474 //@extension("VK_KHR_external_fence") // 114
1475 VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO_KHR = 1000113000,
1476
1477 //@extension("VK_KHR_external_fence_win32") // 115
1478 VK_STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR = 1000114000,
1479 VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR = 1000114001,
1480 VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR = 1000114002,
1481
1482 //@extension("VK_KHR_external_fence_fd") // 117
1483 VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR = 1000115000,
1484 VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR = 1000115001,
1485
Jesse Hall076f95d2017-09-20 11:34:47 -07001486 //@extension("VK_KHR_maintenance2") // 118
1487 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES_KHR = 1000117000,
1488 VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO_KHR = 1000117001,
1489 VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO_KHR = 1000117002,
1490 VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO_KHR = 1000117003,
1491
Jesse Hall05556b12017-05-18 17:40:25 -07001492 //@extension("VK_KHR_get_surface_capabilities2") // 120
Chris Forbese2d3ee12017-03-16 16:10:15 +13001493 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR = 1000119000,
1494 VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR = 1000119001,
1495 VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR = 1000119002,
1496
Jesse Hall9492f992017-08-28 12:10:06 -07001497 //@extension("VK_KHR_variable_pointers") // 121
1498 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES_KHR = 1000120000,
1499
Jesse Hallad250842017-03-10 18:35:38 -08001500 //@extension("VK_MVK_ios_surface") // 123
1501 VK_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK = 1000122000,
1502
1503 //@extension("VK_MVK_macos_surface") // 124
1504 VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK = 1000123000,
Jesse Hall7ba0ac72017-07-07 17:13:23 -07001505
Jesse Hall9492f992017-08-28 12:10:06 -07001506 //@extension("VK_KHR_dedicated_allocation") // 128
1507 VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS_KHR = 1000127000,
1508 VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO_KHR = 1000127001,
1509
Jesse Hall35b4de12018-01-17 22:06:20 -08001510 //@extension("VK_EXT_debug_utils") // 129
1511 VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT = 1000128000,
1512 VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT = 1000128001,
1513 VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT = 1000128002,
1514 VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT = 1000128003,
1515 VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT = 1000128004,
1516
Jesse Hall7ba0ac72017-07-07 17:13:23 -07001517 //@extension("VK_EXT_sampler_filter_minmax") // 131
1518 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES_EXT = 1000130000,
1519 VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO_EXT = 1000130001,
1520
Jesse Hall77726222017-09-19 14:49:27 -05001521 //@extension("VK_EXT_sample_locations") // 144
1522 VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT = 1000143000,
1523 VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT = 1000143001,
1524 VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT = 1000143002,
1525 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT = 1000143003,
1526 VK_STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT = 1000143004,
1527
Jesse Hall9492f992017-08-28 12:10:06 -07001528 //@extension("VK_KHR_get_memory_requirements2") // 147
1529 VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2_KHR = 1000146000,
1530 VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2_KHR = 1000146001,
1531 VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2_KHR = 1000146002,
1532 VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2_KHR = 1000146003,
1533 VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2_KHR = 1000146004,
1534
Jesse Hall076f95d2017-09-20 11:34:47 -07001535 //@extension("VK_KHR_image_format_list") // 148
1536 VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO_KHR = 1000147000,
1537
Jesse Hall7ba0ac72017-07-07 17:13:23 -07001538 //@extension("VK_EXT_blend_operation_advanced") // 149
1539 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT = 1000148000,
1540 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT = 1000148001,
1541 VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT = 1000148002,
1542
1543 //@extension("VK_NV_fragment_coverage_to_color") // 150
1544 VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV = 1000149000,
1545
Jesse Hall77726222017-09-19 14:49:27 -05001546 //@extension("VK_NV_framebuffer_mixed_samples") // 153
Jesse Hall7ba0ac72017-07-07 17:13:23 -07001547 VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV = 1000152000,
Jesse Hall77726222017-09-19 14:49:27 -05001548
Jesse Hall076f95d2017-09-20 11:34:47 -07001549 //@extension("VK_KHR_sampler_ycbcr_conversion") // 157
1550 VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO_KHR = 1000156000,
1551 VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO_KHR = 1000156001,
1552 VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO_KHR = 1000156002,
1553 VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO_KHR = 1000156003,
1554 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES_KHR = 1000156004,
1555 VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES_KHR = 1000156005,
1556
1557 //@extension("VK_KHR_bind_memory2") // 158
1558 VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO_KHR = 1000157000,
1559 VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO_KHR = 1000157001,
1560
Jesse Hall77726222017-09-19 14:49:27 -05001561 //@extension("VK_EXT_validation_cache") // 161
1562 VK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT = 1000160000,
1563 VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT = 1000160001,
Daniel Kochf25f5bb2017-10-05 00:26:58 -04001564
1565 //@extension("VK_KHR_maintenance3") // 169
1566 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES_KHR = 1000168000,
1567 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT_KHR = 1000168001,
Jesse Hall35b4de12018-01-17 22:06:20 -08001568
1569 //@extension("VK_EXT_global_priority") // 175
1570 VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT = 1000174000,
1571
1572 //@extension("VK_EXT_external_memory_host") // 179
1573 VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT = 1000178000,
1574 VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT = 1000178001,
1575 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT = 1000178002,
Jesse Halld27f6aa2015-08-15 17:58:48 -07001576}
1577
Jesse Hall65ab5522015-11-30 00:07:16 -08001578enum VkSubpassContents {
1579 VK_SUBPASS_CONTENTS_INLINE = 0x00000000,
1580 VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS = 0x00000001,
Jesse Halld27f6aa2015-08-15 17:58:48 -07001581}
1582
Jesse Hall543a7ff2016-01-08 16:38:30 -08001583enum VkPipelineCacheHeaderVersion {
1584 VK_PIPELINE_CACHE_HEADER_VERSION_ONE = 1,
1585}
1586
Jesse Hallbd888842015-11-30 21:44:14 -08001587@lastUnused(-11)
Jesse Halld27f6aa2015-08-15 17:58:48 -07001588/// Error and return codes
1589enum VkResult {
1590 // Return codes for successful operation execution (positive values)
Jesse Hallbd888842015-11-30 21:44:14 -08001591 VK_SUCCESS = 0,
1592 VK_NOT_READY = 1,
1593 VK_TIMEOUT = 2,
1594 VK_EVENT_SET = 3,
1595 VK_EVENT_RESET = 4,
1596 VK_INCOMPLETE = 5,
Jesse Halld27f6aa2015-08-15 17:58:48 -07001597
Jesse Hallad250842017-03-10 18:35:38 -08001598 //@extension("VK_KHR_swapchain") // 2
Jesse Hallbd888842015-11-30 21:44:14 -08001599 VK_SUBOPTIMAL_KHR = 1000001003,
Jesse Hall1356b0d2015-11-23 17:24:58 -08001600
Jesse Halld27f6aa2015-08-15 17:58:48 -07001601 // Error codes (negative values)
Jesse Hallbd888842015-11-30 21:44:14 -08001602 VK_ERROR_OUT_OF_HOST_MEMORY = 0xFFFFFFFF, // -1
1603 VK_ERROR_OUT_OF_DEVICE_MEMORY = 0xFFFFFFFE, // -2
1604 VK_ERROR_INITIALIZATION_FAILED = 0xFFFFFFFD, // -3
1605 VK_ERROR_DEVICE_LOST = 0xFFFFFFFC, // -4
1606 VK_ERROR_MEMORY_MAP_FAILED = 0xFFFFFFFB, // -5
1607 VK_ERROR_LAYER_NOT_PRESENT = 0xFFFFFFFA, // -6
1608 VK_ERROR_EXTENSION_NOT_PRESENT = 0xFFFFFFF9, // -7
1609 VK_ERROR_FEATURE_NOT_PRESENT = 0xFFFFFFF8, // -8
1610 VK_ERROR_INCOMPATIBLE_DRIVER = 0xFFFFFFF7, // -9
1611 VK_ERROR_TOO_MANY_OBJECTS = 0xFFFFFFF6, // -10
1612 VK_ERROR_FORMAT_NOT_SUPPORTED = 0xFFFFFFF5, // -11
Jesse Hall56d386a2016-07-26 15:20:40 -07001613 VK_ERROR_FRAGMENTED_POOL = 0xFFFFFFF4, // -12
Jesse Hall1356b0d2015-11-23 17:24:58 -08001614
Ian Elliottcd8ad332017-10-13 09:21:12 -06001615 //@vulkan1_1
Daniel Kochf25f5bb2017-10-05 00:26:58 -04001616 VK_ERROR_OUT_OF_POOL_MEMORY = 0xC4642878, // -1000069000
1617 VK_ERROR_INVALID_EXTERNAL_HANDLE = 0xC4641CBD, // -1000072003
1618
Jesse Hallad250842017-03-10 18:35:38 -08001619 //@extension("VK_KHR_surface") // 1
Jesse Hallbd888842015-11-30 21:44:14 -08001620 VK_ERROR_SURFACE_LOST_KHR = 0xC4653600, // -1000000000
Jesse Hallad250842017-03-10 18:35:38 -08001621 VK_ERROR_NATIVE_WINDOW_IN_USE_KHR = 0xC46535FF, // -1000000001
Jesse Halla6429252015-11-29 18:59:42 -08001622
Jesse Hallad250842017-03-10 18:35:38 -08001623 //@extension("VK_KHR_swapchain") // 2
Jesse Hallbd888842015-11-30 21:44:14 -08001624 VK_ERROR_OUT_OF_DATE_KHR = 0xC4653214, // -1000001004
Jesse Hall1356b0d2015-11-23 17:24:58 -08001625
Jesse Hallad250842017-03-10 18:35:38 -08001626 //@extension("VK_KHR_display_swapchain") // 4
Jesse Hallbd888842015-11-30 21:44:14 -08001627 VK_ERROR_INCOMPATIBLE_DISPLAY_KHR = 0xC4652A47, // -1000003001
Jesse Hall1356b0d2015-11-23 17:24:58 -08001628
Jesse Hallad250842017-03-10 18:35:38 -08001629 //@extension("VK_EXT_debug_report") // 12
Jesse Hall543a7ff2016-01-08 16:38:30 -08001630 VK_ERROR_VALIDATION_FAILED_EXT = 0xC4650B07, // -1000011001
Jesse Hall26763382016-05-20 07:13:52 -07001631
Jesse Hallad250842017-03-10 18:35:38 -08001632 //@extension("VK_NV_glsl_shader") // 13
Jesse Hall26763382016-05-20 07:13:52 -07001633 VK_ERROR_INVALID_SHADER_NV = 0xC4650720, // -1000012000
Jesse Hall77ad05b2017-03-10 22:02:20 -08001634
Jesse Hallad250842017-03-10 18:35:38 -08001635 //@extension("VK_KHR_maintenance1") // 70
Jesse Hall77ad05b2017-03-10 22:02:20 -08001636 VK_ERROR_OUT_OF_POOL_MEMORY_KHR = 0xC4642878, // -1000069000
Jesse Hallad250842017-03-10 18:35:38 -08001637
Jesse Hall35b4de12018-01-17 22:06:20 -08001638 //@extension("VK_EXT_global_priority") // 175
1639 VK_ERROR_NOT_PERMITTED_EXT = 0xC4628E4F, // -1000174001
1640
Jesse Hall9492f992017-08-28 12:10:06 -07001641 //@extension("VK_KHR_external_memory") // 73
1642 VK_ERROR_INVALID_EXTERNAL_HANDLE_KHR = 0xC4641CBD, // -1000072003
Jesse Hall5ae3abb2015-10-08 14:00:22 -07001643}
1644
1645enum VkDynamicState {
1646 VK_DYNAMIC_STATE_VIEWPORT = 0x00000000,
1647 VK_DYNAMIC_STATE_SCISSOR = 0x00000001,
1648 VK_DYNAMIC_STATE_LINE_WIDTH = 0x00000002,
1649 VK_DYNAMIC_STATE_DEPTH_BIAS = 0x00000003,
1650 VK_DYNAMIC_STATE_BLEND_CONSTANTS = 0x00000004,
1651 VK_DYNAMIC_STATE_DEPTH_BOUNDS = 0x00000005,
1652 VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK = 0x00000006,
1653 VK_DYNAMIC_STATE_STENCIL_WRITE_MASK = 0x00000007,
1654 VK_DYNAMIC_STATE_STENCIL_REFERENCE = 0x00000008,
Jesse Hallad250842017-03-10 18:35:38 -08001655
1656 //@extension("VK_NV_clip_space_w_scaling") // 88
1657 VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV = 1000087000,
1658
1659 //@extension("VK_EXT_discard_rectangles") // 100
1660 VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT = 1000099000,
Jesse Hall77726222017-09-19 14:49:27 -05001661
1662 //@extension("VK_EXT_sample_locations") // 144
1663 VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT = 1000143000,
Jesse Halld27f6aa2015-08-15 17:58:48 -07001664}
1665
Jesse Hall05556b12017-05-18 17:40:25 -07001666enum VkObjectType {
1667 VK_OBJECT_TYPE_UNKNOWN = 0,
1668 VK_OBJECT_TYPE_INSTANCE = 1,
1669 VK_OBJECT_TYPE_PHYSICAL_DEVICE = 2,
1670 VK_OBJECT_TYPE_DEVICE = 3,
1671 VK_OBJECT_TYPE_QUEUE = 4,
1672 VK_OBJECT_TYPE_SEMAPHORE = 5,
1673 VK_OBJECT_TYPE_COMMAND_BUFFER = 6,
1674 VK_OBJECT_TYPE_FENCE = 7,
1675 VK_OBJECT_TYPE_DEVICE_MEMORY = 8,
1676 VK_OBJECT_TYPE_BUFFER = 9,
1677 VK_OBJECT_TYPE_IMAGE = 10,
1678 VK_OBJECT_TYPE_EVENT = 11,
1679 VK_OBJECT_TYPE_QUERY_POOL = 12,
1680 VK_OBJECT_TYPE_BUFFER_VIEW = 13,
1681 VK_OBJECT_TYPE_IMAGE_VIEW = 14,
1682 VK_OBJECT_TYPE_SHADER_MODULE = 15,
1683 VK_OBJECT_TYPE_PIPELINE_CACHE = 16,
1684 VK_OBJECT_TYPE_PIPELINE_LAYOUT = 17,
1685 VK_OBJECT_TYPE_RENDER_PASS = 18,
1686 VK_OBJECT_TYPE_PIPELINE = 19,
1687 VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT = 20,
1688 VK_OBJECT_TYPE_SAMPLER = 21,
1689 VK_OBJECT_TYPE_DESCRIPTOR_POOL = 22,
1690 VK_OBJECT_TYPE_DESCRIPTOR_SET = 23,
1691 VK_OBJECT_TYPE_FRAMEBUFFER = 24,
1692 VK_OBJECT_TYPE_COMMAND_POOL = 25,
1693
Ian Elliottcd8ad332017-10-13 09:21:12 -06001694 //@vulkan1_1
Daniel Kochf25f5bb2017-10-05 00:26:58 -04001695 VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION = 1000156000,
1696 VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE = 1000085000,
1697
Jesse Hall05556b12017-05-18 17:40:25 -07001698 //@extension("VK_KHR_surface") // 1
1699 VK_OBJECT_TYPE_SURFACE_KHR = 1000000000,
1700
1701 //@extension("VK_KHR_swapchain") // 2
1702 VK_OBJECT_TYPE_SWAPCHAIN_KHR = 1000001000,
1703
1704 //@extension("VK_KHR_display") // 3
1705 VK_OBJECT_TYPE_DISPLAY_KHR = 1000002000,
1706 VK_OBJECT_TYPE_DISPLAY_MODE_KHR = 1000002001,
1707
1708 //@extension("VK_KHR_debug_report") // 12
1709 VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT = 1000011000,
1710
1711 //@extension("VK_KHR_descriptor_update_template") // 86
1712 VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR = 1000085000,
1713
1714 //@extension("VK_NVX_device_generated_commands") // 87
1715 VK_OBJECT_TYPE_OBJECT_TABLE_NVX = 1000086000,
1716 VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX = 1000086001,
Jesse Hall77726222017-09-19 14:49:27 -05001717
Jesse Hall35b4de12018-01-17 22:06:20 -08001718 //@extension("VK_EXT_debug_utils") // 129
1719 VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT = 1000128000,
1720
Jesse Hall076f95d2017-09-20 11:34:47 -07001721 //@extension("VK_KHR_sampler_ycbcr_conversion") // 157
1722 VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR = 1000156000,
1723
Jesse Hall77726222017-09-19 14:49:27 -05001724 //@extension("VK_EXT_validation_cache") // 161
1725 VK_OBJECT_TYPE_VALIDATION_CACHE_EXT = 1000160000,
Jesse Hall05556b12017-05-18 17:40:25 -07001726}
1727
Daniel Kochf25f5bb2017-10-05 00:26:58 -04001728
Ian Elliottcd8ad332017-10-13 09:21:12 -06001729//@vulkan1_1 enums
Daniel Kochf25f5bb2017-10-05 00:26:58 -04001730
1731enum VkPointClippingBehavior {
1732 VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES = 0,
1733 VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY = 1,
1734}
1735
1736enum VkTessellationDomainOrigin {
1737 VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT = 0,
1738 VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT = 1,
1739}
1740
1741enum VkSamplerYcbcrModelConversion {
1742 VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY = 0,
1743 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY = 1,
1744 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709 = 2,
1745 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601 = 3,
1746 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020 = 4,
1747}
1748
1749enum VkSamplerYcbcrRange {
1750 VK_SAMPLER_YCBCR_RANGE_ITU_FULL = 0,
1751 VK_SAMPLER_YCBCR_RANGE_ITU_NARROW = 1,
1752}
1753
1754enum VkChromaLocation {
1755 VK_CHROMA_LOCATION_COSITED_EVEN = 0,
1756 VK_CHROMA_LOCATION_MIDPOINT = 1,
1757}
1758
1759enum VkDescriptorUpdateTemplateType {
1760 VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET = 0,
1761 VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR = 1,
1762}
1763
Jesse Hallad250842017-03-10 18:35:38 -08001764@extension("VK_KHR_surface") // 1
Michael Lentine88594d72015-11-12 12:49:45 -08001765enum VkPresentModeKHR {
1766 VK_PRESENT_MODE_IMMEDIATE_KHR = 0x00000000,
1767 VK_PRESENT_MODE_MAILBOX_KHR = 0x00000001,
1768 VK_PRESENT_MODE_FIFO_KHR = 0x00000002,
Jesse Hall03b6fe12015-11-24 12:44:21 -08001769 VK_PRESENT_MODE_FIFO_RELAXED_KHR = 0x00000003,
Jesse Hall77ad05b2017-03-10 22:02:20 -08001770
Jesse Hall05556b12017-05-18 17:40:25 -07001771 //@extension("VK_KHR_shared_presentable_image") // 112
Jesse Hall77ad05b2017-03-10 22:02:20 -08001772 VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR = 1000111000,
1773 VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR = 1000111001,
Michael Lentine88594d72015-11-12 12:49:45 -08001774}
1775
Jesse Hallad250842017-03-10 18:35:38 -08001776@extension("VK_KHR_surface") // 1
Michael Lentine88594d72015-11-12 12:49:45 -08001777enum VkColorSpaceKHR {
Daniel Kochf25f5bb2017-10-05 00:26:58 -04001778 VK_COLOR_SPACE_SRGB_NONLINEAR_KHR = 0x00000000,
Jesse Hall77ad05b2017-03-10 22:02:20 -08001779
Jesse Hallf5ad48b2017-03-20 13:09:19 -07001780 //@extension("VK_EXT_swapchain_colorspace") // 105
1781 VK_COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT = 1000104001,
1782 VK_COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT = 1000104002,
1783 VK_COLOR_SPACE_DCI_P3_LINEAR_EXT = 1000104003,
1784 VK_COLOR_SPACE_DCI_P3_NONLINEAR_EXT = 1000104004,
1785 VK_COLOR_SPACE_BT709_LINEAR_EXT = 1000104005,
1786 VK_COLOR_SPACE_BT709_NONLINEAR_EXT = 1000104006,
1787 VK_COLOR_SPACE_BT2020_LINEAR_EXT = 1000104007,
1788 VK_COLOR_SPACE_HDR10_ST2084_EXT = 1000104008,
1789 VK_COLOR_SPACE_DOLBYVISION_EXT = 1000104009,
1790 VK_COLOR_SPACE_HDR10_HLG_EXT = 1000104010,
Courtney Goeltzenleuchter7f558ed2017-01-23 17:15:24 -07001791 VK_COLOR_SPACE_ADOBERGB_LINEAR_EXT = 1000104011,
1792 VK_COLOR_SPACE_ADOBERGB_NONLINEAR_EXT = 1000104012,
Jesse Hallf5ad48b2017-03-20 13:09:19 -07001793 VK_COLOR_SPACE_PASS_THROUGH_EXT = 1000104013,
Jesse Hall77726222017-09-19 14:49:27 -05001794 VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT = 1000104014,
Michael Lentine88594d72015-11-12 12:49:45 -08001795}
Jesse Halld27f6aa2015-08-15 17:58:48 -07001796
Jesse Hallad250842017-03-10 18:35:38 -08001797@extension("VK_EXT_debug_report") // 12
Jesse Hall715b86a2016-01-16 16:34:29 -08001798enum VkDebugReportObjectTypeEXT {
1799 VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT = 0,
1800 VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT = 1,
1801 VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT = 2,
1802 VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT = 3,
1803 VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT = 4,
1804 VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT = 5,
1805 VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT = 6,
1806 VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT = 7,
1807 VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT = 8,
1808 VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT = 9,
1809 VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT = 10,
1810 VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT = 11,
1811 VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT = 12,
1812 VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT = 13,
1813 VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT = 14,
1814 VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT = 15,
1815 VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT = 16,
1816 VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT = 17,
1817 VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT = 18,
1818 VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT = 19,
1819 VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT = 20,
1820 VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT = 21,
1821 VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT = 22,
1822 VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT = 23,
1823 VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT = 24,
1824 VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT = 25,
1825 VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT = 26,
1826 VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT = 27,
Jesse Hall7ba0ac72017-07-07 17:13:23 -07001827 VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT = 28,
Chris Forbes289cb792016-12-30 15:03:55 +13001828 VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT = 29,
1829 VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT = 30,
1830 VK_DEBUG_REPORT_OBJECT_TYPE_OBJECT_TABLE_NVX_EXT = 31,
1831 VK_DEBUG_REPORT_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX_EXT = 32,
Jesse Hallf5ad48b2017-03-20 13:09:19 -07001832
Jesse Hall77726222017-09-19 14:49:27 -05001833 //extension("VK_EXT_validation_cache") // 161
Jesse Hall35b4de12018-01-17 22:06:20 -08001834 VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT = 33,
Jesse Hall77726222017-09-19 14:49:27 -05001835
Jesse Hallf5ad48b2017-03-20 13:09:19 -07001836 //extension("VK_KHR_descriptor_update_template") // 86
1837 VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR_EXT = 1000085000,
Jesse Hall77726222017-09-19 14:49:27 -05001838
Jesse Hall076f95d2017-09-20 11:34:47 -07001839 //@extension("VK_KHR_sampler_ycbcr_conversion") // 157
1840 VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR_EXT = 1000156000,
Jesse Hall715b86a2016-01-16 16:34:29 -08001841}
1842
Jesse Hallad250842017-03-10 18:35:38 -08001843@extension("VK_AMD_rasterization_order") // 19
Jesse Hall26763382016-05-20 07:13:52 -07001844enum VkRasterizationOrderAMD {
1845 VK_RASTERIZATION_ORDER_STRICT_AMD = 0,
1846 VK_RASTERIZATION_ORDER_RELAXED_AMD = 1,
1847}
1848
Jesse Hall35b4de12018-01-17 22:06:20 -08001849@extension("VK_AMD_shader_info") // 43
1850enum VkShaderInfoTypeAMD {
1851 VK_SHADER_INFO_TYPE_STATISTICS_AMD = 0,
1852 VK_SHADER_INFO_TYPE_BINARY_AMD = 1,
1853 VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD = 2,
1854}
1855
Jesse Hallad250842017-03-10 18:35:38 -08001856@extension("VK_EXT_validation_flags") // 62
Chris Forbes289cb792016-12-30 15:03:55 +13001857enum VkValidationCheckEXT {
1858 VK_VALIDATION_CHECK_ALL_EXT = 0,
Jesse Hall7ba0ac72017-07-07 17:13:23 -07001859 VK_VALIDATION_CHECK_SHADERS_EXT = 1,
Chris Forbes289cb792016-12-30 15:03:55 +13001860}
1861
Jesse Hallad250842017-03-10 18:35:38 -08001862@extension("VK_KHR_descriptor_update_template") // 86
1863enum VkDescriptorUpdateTemplateTypeKHR {
1864 VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET_KHR = 0,
1865 VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR = 1,
1866}
1867
1868@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13001869enum VkIndirectCommandsTokenTypeNVX {
Jesse Hall7ba0ac72017-07-07 17:13:23 -07001870 VK_INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NVX = 0,
1871 VK_INDIRECT_COMMANDS_TOKEN_TYPE_DESCRIPTOR_SET_NVX = 1,
1872 VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NVX = 2,
1873 VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NVX = 3,
1874 VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NVX = 4,
1875 VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NVX = 5,
1876 VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NVX = 6,
1877 VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NVX = 7,
Chris Forbes289cb792016-12-30 15:03:55 +13001878}
1879
Jesse Hallad250842017-03-10 18:35:38 -08001880@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13001881enum VkObjectEntryTypeNVX {
Jesse Hall7ba0ac72017-07-07 17:13:23 -07001882 VK_OBJECT_ENTRY_TYPE_DESCRIPTOR_SET_NVX = 0,
1883 VK_OBJECT_ENTRY_TYPE_PIPELINE_NVX = 1,
1884 VK_OBJECT_ENTRY_TYPE_INDEX_BUFFER_NVX = 2,
1885 VK_OBJECT_ENTRY_TYPE_VERTEX_BUFFER_NVX = 3,
1886 VK_OBJECT_ENTRY_TYPE_PUSH_CONSTANT_NVX = 4,
Chris Forbes289cb792016-12-30 15:03:55 +13001887}
Jesse Hall715b86a2016-01-16 16:34:29 -08001888
Jesse Hallad250842017-03-10 18:35:38 -08001889@extension("VK_EXT_display_control") // 92
Jesse Hall77ad05b2017-03-10 22:02:20 -08001890enum VkDisplayPowerStateEXT {
1891 VK_DISPLAY_POWER_STATE_OFF_EXT = 0,
1892 VK_DISPLAY_POWER_STATE_SUSPEND_EXT = 1,
1893 VK_DISPLAY_POWER_STATE_ON_EXT = 2,
1894}
1895
Jesse Hallad250842017-03-10 18:35:38 -08001896@extension("VK_EXT_display_control") // 92
Jesse Hall77ad05b2017-03-10 22:02:20 -08001897enum VkDeviceEventTypeEXT {
1898 VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT = 0,
1899}
1900
Jesse Hallad250842017-03-10 18:35:38 -08001901@extension("VK_EXT_display_control") // 92
Jesse Hall77ad05b2017-03-10 22:02:20 -08001902enum VkDisplayEventTypeEXT {
1903 VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT = 0,
1904}
1905
Jesse Hallad250842017-03-10 18:35:38 -08001906@extension("VK_NV_viewport_swizzle") // 99
1907enum VkViewportCoordinateSwizzleNV {
1908 VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV = 0,
1909 VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV = 1,
1910 VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV = 2,
1911 VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV = 3,
1912 VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV = 4,
1913 VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV = 5,
1914 VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV = 6,
1915 VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV = 7,
1916}
1917
1918@extension("VK_EXT_discard_rectangles") // 100
1919enum VkDiscardRectangleModeEXT {
1920 VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT = 0,
1921 VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT = 1,
1922}
1923
Jesse Hall35b4de12018-01-17 22:06:20 -08001924@extension("VK_EXT_conservative_rasterization") // 102
1925enum VkConservativeRasterizationModeEXT {
1926 VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT = 0,
1927 VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT = 1,
1928 VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT = 2,
1929}
1930
Jesse Hall076f95d2017-09-20 11:34:47 -07001931@extension("VK_KHR_maintenance2") // 118
1932enum VkPointClippingBehaviorKHR {
1933 VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES_KHR = 0,
1934 VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY_KHR = 1,
1935}
1936
1937@extension("VK_KHR_maintenance2") // 118
1938enum VkTessellationDomainOriginKHR {
1939 VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT_KHR = 0,
1940 VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT_KHR = 1,
1941}
1942
Jesse Hall7ba0ac72017-07-07 17:13:23 -07001943@extension("VK_EXT_sampler_filter_minmax") // 131
1944enum VkSamplerReductionModeEXT {
1945 VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_EXT = 0,
1946 VK_SAMPLER_REDUCTION_MODE_MIN_EXT = 1,
1947 VK_SAMPLER_REDUCTION_MODE_MAX_EXT = 2,
1948}
1949
1950@extension("VK_EXT_blend_operation_advanced") // 149
1951enum VkBlendOverlapEXT {
1952 VK_BLEND_OVERLAP_UNCORRELATED_EXT = 0,
1953 VK_BLEND_OVERLAP_DISJOINT_EXT = 1,
1954 VK_BLEND_OVERLAP_CONJOINT_EXT = 2,
1955}
1956
1957@extension("VK_NV_framebuffer_mixed_samples") // 153
1958enum VkCoverageModulationModeNV {
1959 VK_COVERAGE_MODULATION_MODE_NONE_NV = 0,
1960 VK_COVERAGE_MODULATION_MODE_RGB_NV = 1,
1961 VK_COVERAGE_MODULATION_MODE_ALPHA_NV = 2,
1962 VK_COVERAGE_MODULATION_MODE_RGBA_NV = 3,
1963}
1964
Jesse Hall076f95d2017-09-20 11:34:47 -07001965@extension("VK_KHR_sampler_ycbcr_conversion") // 157
1966enum VkSamplerYcbcrModelConversionKHR {
1967 VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY_KHR = 0,
1968 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY_KHR = 1,
1969 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709_KHR = 2,
1970 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601_KHR = 3,
1971 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020_KHR = 4,
1972}
1973
1974@extension("VK_KHR_sampler_ycbcr_conversion") // 157
1975enum VkSamplerYcbcrRangeKHR {
1976 VK_SAMPLER_YCBCR_RANGE_ITU_FULL_KHR = 0,
1977 VK_SAMPLER_YCBCR_RANGE_ITU_NARROW_KHR = 1,
1978}
1979
1980@extension("VK_KHR_sampler_ycbcr_conversion") // 157
1981enum VkChromaLocationKHR {
1982 VK_CHROMA_LOCATION_COSITED_EVEN_KHR = 0,
1983 VK_CHROMA_LOCATION_MIDPOINT_KHR = 1,
1984}
1985
Jesse Hall77726222017-09-19 14:49:27 -05001986@extension("VK_EXT_validation_cache") // 161
1987enum VkValidationCacheHeaderVersionEXT {
1988 VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT = 1,
1989}
1990
Jesse Hall35b4de12018-01-17 22:06:20 -08001991@extension("VK_EXT_global_priority") // 175
1992enum VkQueueGlobalPriorityEXT {
1993 VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT = 128,
1994 VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT = 256,
1995 VK_QUEUE_GLOBAL_PRIORITY_HIGH_EXT = 512,
1996 VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT = 1024,
1997}
1998
Jesse Halld27f6aa2015-08-15 17:58:48 -07001999/////////////////
2000// Bitfields //
2001/////////////////
2002
Jesse Halld27f6aa2015-08-15 17:58:48 -07002003/// Queue capabilities
Jesse Halld8bade02015-11-24 10:24:18 -08002004type VkFlags VkQueueFlags
2005bitfield VkQueueFlagBits {
Jesse Halld27f6aa2015-08-15 17:58:48 -07002006 VK_QUEUE_GRAPHICS_BIT = 0x00000001, /// Queue supports graphics operations
2007 VK_QUEUE_COMPUTE_BIT = 0x00000002, /// Queue supports compute operations
Jesse Hall65ab5522015-11-30 00:07:16 -08002008 VK_QUEUE_TRANSFER_BIT = 0x00000004, /// Queue supports transfer operations
Jesse Hallb00daad2015-11-29 19:46:20 -08002009 VK_QUEUE_SPARSE_BINDING_BIT = 0x00000008, /// Queue supports sparse resource memory management operations
Daniel Kochf25f5bb2017-10-05 00:26:58 -04002010
Ian Elliottcd8ad332017-10-13 09:21:12 -06002011 //@vulkan1_1
Daniel Kochf25f5bb2017-10-05 00:26:58 -04002012 VK_QUEUE_PROTECTED_BIT = 0x00000010,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002013}
2014
2015/// Memory properties passed into vkAllocMemory().
Jesse Halld8bade02015-11-24 10:24:18 -08002016type VkFlags VkMemoryPropertyFlags
2017bitfield VkMemoryPropertyFlagBits {
Jesse Halld1af8122015-11-29 23:50:38 -08002018 VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT = 0x00000001,
2019 VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT = 0x00000002,
2020 VK_MEMORY_PROPERTY_HOST_COHERENT_BIT = 0x00000004,
2021 VK_MEMORY_PROPERTY_HOST_CACHED_BIT = 0x00000008,
2022 VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT = 0x00000010,
Daniel Kochf25f5bb2017-10-05 00:26:58 -04002023
Ian Elliottcd8ad332017-10-13 09:21:12 -06002024 //@vulkan1_1
Daniel Kochf25f5bb2017-10-05 00:26:58 -04002025 VK_MEMORY_PROPERTY_PROTECTED_BIT = 0x00000020,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002026}
2027
2028/// Memory heap flags
Jesse Halld8bade02015-11-24 10:24:18 -08002029type VkFlags VkMemoryHeapFlags
2030bitfield VkMemoryHeapFlagBits {
Jesse Halld1af8122015-11-29 23:50:38 -08002031 VK_MEMORY_HEAP_DEVICE_LOCAL_BIT = 0x00000001,
Jesse Hallad250842017-03-10 18:35:38 -08002032
Ian Elliottcd8ad332017-10-13 09:21:12 -06002033 //@vulkan1_1
Daniel Kochf25f5bb2017-10-05 00:26:58 -04002034 VK_MEMORY_HEAP_MULTI_INSTANCE_BIT = 0x00000002,
2035
2036 //@extension("VK_KHR_device_group_creation") // 71
2037 VK_MEMORY_HEAP_MULTI_INSTANCE_BIT_KHR = 0x00000002,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002038}
2039
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08002040/// Access flags
2041type VkFlags VkAccessFlags
2042bitfield VkAccessFlagBits {
2043 VK_ACCESS_INDIRECT_COMMAND_READ_BIT = 0x00000001,
2044 VK_ACCESS_INDEX_READ_BIT = 0x00000002,
2045 VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT = 0x00000004,
2046 VK_ACCESS_UNIFORM_READ_BIT = 0x00000008,
2047 VK_ACCESS_INPUT_ATTACHMENT_READ_BIT = 0x00000010,
2048 VK_ACCESS_SHADER_READ_BIT = 0x00000020,
2049 VK_ACCESS_SHADER_WRITE_BIT = 0x00000040,
2050 VK_ACCESS_COLOR_ATTACHMENT_READ_BIT = 0x00000080,
2051 VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT = 0x00000100,
2052 VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT = 0x00000200,
2053 VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT = 0x00000400,
2054 VK_ACCESS_TRANSFER_READ_BIT = 0x00000800,
2055 VK_ACCESS_TRANSFER_WRITE_BIT = 0x00001000,
2056 VK_ACCESS_HOST_READ_BIT = 0x00002000,
2057 VK_ACCESS_HOST_WRITE_BIT = 0x00004000,
2058 VK_ACCESS_MEMORY_READ_BIT = 0x00008000,
2059 VK_ACCESS_MEMORY_WRITE_BIT = 0x00010000,
Chris Forbes289cb792016-12-30 15:03:55 +13002060
Jesse Hallad250842017-03-10 18:35:38 -08002061 //@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13002062 VK_ACCESS_COMMAND_PROCESS_READ_BIT_NVX = 0x00020000,
Chris Forbes289cb792016-12-30 15:03:55 +13002063 VK_ACCESS_COMMAND_PROCESS_WRITE_BIT_NVX = 0x00040000,
Jesse Hall7ba0ac72017-07-07 17:13:23 -07002064
2065 //@extension("VK_EXT_blend_operation_advanced") // 149
2066 VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT = 0x00080000,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002067}
2068
2069/// Buffer usage flags
Jesse Halld8bade02015-11-24 10:24:18 -08002070type VkFlags VkBufferUsageFlags
2071bitfield VkBufferUsageFlagBits {
Jesse Hall3fbc8562015-11-29 22:10:52 -08002072 VK_BUFFER_USAGE_TRANSFER_SRC_BIT = 0x00000001, /// Can be used as a source of transfer operations
2073 VK_BUFFER_USAGE_TRANSFER_DST_BIT = 0x00000002, /// Can be used as a destination of transfer operations
Jesse Halld27f6aa2015-08-15 17:58:48 -07002074 VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT = 0x00000004, /// Can be used as TBO
2075 VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT = 0x00000008, /// Can be used as IBO
2076 VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT = 0x00000010, /// Can be used as UBO
2077 VK_BUFFER_USAGE_STORAGE_BUFFER_BIT = 0x00000020, /// Can be used as SSBO
2078 VK_BUFFER_USAGE_INDEX_BUFFER_BIT = 0x00000040, /// Can be used as source of fixed function index fetch (index buffer)
2079 VK_BUFFER_USAGE_VERTEX_BUFFER_BIT = 0x00000080, /// Can be used as source of fixed function vertex fetch (VBO)
2080 VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT = 0x00000100, /// Can be the source of indirect parameters (e.g. indirect buffer, parameter buffer)
2081}
2082
2083/// Buffer creation flags
Jesse Halld8bade02015-11-24 10:24:18 -08002084type VkFlags VkBufferCreateFlags
2085bitfield VkBufferCreateFlagBits {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07002086 VK_BUFFER_CREATE_SPARSE_BINDING_BIT = 0x00000001, /// Buffer should support sparse backing
Jesse Halld27f6aa2015-08-15 17:58:48 -07002087 VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT = 0x00000002, /// Buffer should support sparse backing with partial residency
2088 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 Kochf25f5bb2017-10-05 00:26:58 -04002089
Ian Elliottcd8ad332017-10-13 09:21:12 -06002090 //@vulkan1_1
Daniel Kochf25f5bb2017-10-05 00:26:58 -04002091 VK_BUFFER_CREATE_PROTECTED_BIT = 0x00000008,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002092}
2093
2094/// Shader stage flags
Jesse Halld8bade02015-11-24 10:24:18 -08002095type VkFlags VkShaderStageFlags
2096bitfield VkShaderStageFlagBits {
Jesse Halld27f6aa2015-08-15 17:58:48 -07002097 VK_SHADER_STAGE_VERTEX_BIT = 0x00000001,
Jesse Hallae38f732015-11-19 21:32:50 -08002098 VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT = 0x00000002,
2099 VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT = 0x00000004,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002100 VK_SHADER_STAGE_GEOMETRY_BIT = 0x00000008,
2101 VK_SHADER_STAGE_FRAGMENT_BIT = 0x00000010,
2102 VK_SHADER_STAGE_COMPUTE_BIT = 0x00000020,
Jesse Hallc7467b72015-11-29 21:05:26 -08002103 VK_SHADER_STAGE_ALL_GRAPHICS = 0x0000001F,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002104
2105 VK_SHADER_STAGE_ALL = 0x7FFFFFFF,
2106}
2107
Jesse Hallfbf97b02015-11-20 14:17:03 -08002108/// Descriptor pool create flags
Jesse Halld8bade02015-11-24 10:24:18 -08002109type VkFlags VkDescriptorPoolCreateFlags
2110bitfield VkDescriptorPoolCreateFlagBits {
Jesse Hallfbf97b02015-11-20 14:17:03 -08002111 VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT = 0x00000001,
2112}
2113
2114/// Descriptor pool reset flags
Jesse Halld8bade02015-11-24 10:24:18 -08002115type VkFlags VkDescriptorPoolResetFlags
Jesse Halla6429252015-11-29 18:59:42 -08002116//bitfield VkDescriptorPoolResetFlagBits {
2117//}
Jesse Hallfbf97b02015-11-20 14:17:03 -08002118
Jesse Halld27f6aa2015-08-15 17:58:48 -07002119/// Image usage flags
Jesse Halld8bade02015-11-24 10:24:18 -08002120type VkFlags VkImageUsageFlags
2121bitfield VkImageUsageFlagBits {
Jesse Hall3fbc8562015-11-29 22:10:52 -08002122 VK_IMAGE_USAGE_TRANSFER_SRC_BIT = 0x00000001, /// Can be used as a source of transfer operations
2123 VK_IMAGE_USAGE_TRANSFER_DST_BIT = 0x00000002, /// Can be used as a destination of transfer operations
Jesse Halld27f6aa2015-08-15 17:58:48 -07002124 VK_IMAGE_USAGE_SAMPLED_BIT = 0x00000004, /// Can be sampled from (SAMPLED_IMAGE and COMBINED_IMAGE_SAMPLER descriptor types)
2125 VK_IMAGE_USAGE_STORAGE_BIT = 0x00000008, /// Can be used as storage image (STORAGE_IMAGE descriptor type)
2126 VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT = 0x00000010, /// Can be used as framebuffer color attachment
Jesse Hall5ae3abb2015-10-08 14:00:22 -07002127 VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000020, /// Can be used as framebuffer depth/stencil attachment
Jesse Halld27f6aa2015-08-15 17:58:48 -07002128 VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT = 0x00000040, /// Image data not needed outside of rendering
2129 VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT = 0x00000080, /// Can be used as framebuffer input attachment
2130}
2131
2132/// Image creation flags
Jesse Halld8bade02015-11-24 10:24:18 -08002133type VkFlags VkImageCreateFlags
2134bitfield VkImageCreateFlagBits {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07002135 VK_IMAGE_CREATE_SPARSE_BINDING_BIT = 0x00000001, /// Image should support sparse backing
Jesse Halld27f6aa2015-08-15 17:58:48 -07002136 VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT = 0x00000002, /// Image should support sparse backing with partial residency
2137 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 -07002138 VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT = 0x00000008, /// Allows image views to have different format than the base image
2139 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 -08002140
Ian Elliottcd8ad332017-10-13 09:21:12 -06002141 //@vulkan1_1
Daniel Kochf25f5bb2017-10-05 00:26:58 -04002142 VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT = 0x00000020,
Jesse Hall35b4de12018-01-17 22:06:20 -08002143 VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT = 0x00000040,
Daniel Kochf25f5bb2017-10-05 00:26:58 -04002144 VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT = 0x00000080,
2145 VK_IMAGE_CREATE_EXTENDED_USAGE_BIT = 0x00000100,
Daniel Kochf25f5bb2017-10-05 00:26:58 -04002146 VK_IMAGE_CREATE_DISJOINT_BIT = 0x00000200,
Ian Elliottcd8ad332017-10-13 09:21:12 -06002147 VK_IMAGE_CREATE_ALIAS_BIT = 0x00000400,
2148 VK_IMAGE_CREATE_PROTECTED_BIT = 0x00000800,
Daniel Kochf25f5bb2017-10-05 00:26:58 -04002149
Jesse Hallad250842017-03-10 18:35:38 -08002150 //@extension("VK_KHR_maintenance1") // 70
Jesse Hall77ad05b2017-03-10 22:02:20 -08002151 VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT_KHR = 0x00000020,
Jesse Hallad250842017-03-10 18:35:38 -08002152
Daniel Kochf25f5bb2017-10-05 00:26:58 -04002153 //@extension("VK_KHR_device_group") // 61
2154 VK_IMAGE_CREATE_BIND_SFR_BIT_KHR = 0x00000040,
Jesse Hall77726222017-09-19 14:49:27 -05002155
Jesse Hall076f95d2017-09-20 11:34:47 -07002156 //@extension("VK_KHR_maintenance2") // 118
2157 VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT_KHR = 0x00000080,
2158 VK_IMAGE_CREATE_EXTENDED_USAGE_BIT_KHR = 0x00000100,
2159
2160 //@extension("VK_KHR_sampler_ycbcr_conversion") // 157
2161 VK_IMAGE_CREATE_DISJOINT_BIT_KHR = 0x00000200,
2162
2163 //@extension("VK_KHR_bind_memory2") // 158
2164 VK_IMAGE_CREATE_ALIAS_BIT_KHR = 0x00000400,
Ian Elliottcd8ad332017-10-13 09:21:12 -06002165
2166 //@extension("VK_EXT_sample_locations") // 144
2167 VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT = 0x00001000,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002168}
2169
Jesse Hallb00daad2015-11-29 19:46:20 -08002170/// Image view creation flags
Jesse Halld8bade02015-11-24 10:24:18 -08002171type VkFlags VkImageViewCreateFlags
Jesse Hallb00daad2015-11-29 19:46:20 -08002172//bitfield VkImageViewCreateFlagBits {
2173//}
Jesse Halld27f6aa2015-08-15 17:58:48 -07002174
2175/// Pipeline creation flags
Jesse Halld8bade02015-11-24 10:24:18 -08002176type VkFlags VkPipelineCreateFlags
2177bitfield VkPipelineCreateFlagBits {
Jesse Halld27f6aa2015-08-15 17:58:48 -07002178 VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT = 0x00000001,
2179 VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT = 0x00000002,
2180 VK_PIPELINE_CREATE_DERIVATIVE_BIT = 0x00000004,
Jesse Hallad250842017-03-10 18:35:38 -08002181
Ian Elliottcd8ad332017-10-13 09:21:12 -06002182 //@vulkan1_1
Daniel Kochf25f5bb2017-10-05 00:26:58 -04002183 VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT = 0x00000008,
2184 VK_PIPELINE_CREATE_DISPATCH_BASE = 0x00000010,
2185
2186 //@extension("VK_KHR_device_group") // 61
2187 VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR = 0x00000008,
2188 VK_PIPELINE_CREATE_DISPATCH_BASE_KHR = 0x00000010,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002189}
2190
Jesse Hall65ab5522015-11-30 00:07:16 -08002191/// Color component flags
2192type VkFlags VkColorComponentFlags
2193bitfield VkColorComponentFlagBits {
2194 VK_COLOR_COMPONENT_R_BIT = 0x00000001,
2195 VK_COLOR_COMPONENT_G_BIT = 0x00000002,
2196 VK_COLOR_COMPONENT_B_BIT = 0x00000004,
2197 VK_COLOR_COMPONENT_A_BIT = 0x00000008,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002198}
2199
2200/// Fence creation flags
Jesse Halld8bade02015-11-24 10:24:18 -08002201type VkFlags VkFenceCreateFlags
2202bitfield VkFenceCreateFlagBits {
Jesse Halld27f6aa2015-08-15 17:58:48 -07002203 VK_FENCE_CREATE_SIGNALED_BIT = 0x00000001,
2204}
2205
2206/// Semaphore creation flags
Jesse Halld8bade02015-11-24 10:24:18 -08002207type VkFlags VkSemaphoreCreateFlags
Jesse Halla6429252015-11-29 18:59:42 -08002208//bitfield VkSemaphoreCreateFlagBits {
2209//}
Jesse Halld27f6aa2015-08-15 17:58:48 -07002210
2211/// Format capability flags
Jesse Halld8bade02015-11-24 10:24:18 -08002212type VkFlags VkFormatFeatureFlags
2213bitfield VkFormatFeatureFlagBits {
Jesse Halld27f6aa2015-08-15 17:58:48 -07002214 VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT = 0x00000001, /// Format can be used for sampled images (SAMPLED_IMAGE and COMBINED_IMAGE_SAMPLER descriptor types)
2215 VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT = 0x00000002, /// Format can be used for storage images (STORAGE_IMAGE descriptor type)
2216 VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT = 0x00000004, /// Format supports atomic operations in case it's used for storage images
2217 VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT = 0x00000008, /// Format can be used for uniform texel buffers (TBOs)
2218 VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT = 0x00000010, /// Format can be used for storage texel buffers (IBOs)
2219 VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT = 0x00000020, /// Format supports atomic operations in case it's used for storage texel buffers
2220 VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT = 0x00000040, /// Format can be used for vertex buffers (VBOs)
2221 VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT = 0x00000080, /// Format can be used for color attachment images
2222 VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT = 0x00000100, /// Format supports blending in case it's used for color attachment images
2223 VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000200, /// Format can be used for depth/stencil attachment images
Jesse Hall3fbc8562015-11-29 22:10:52 -08002224 VK_FORMAT_FEATURE_BLIT_SRC_BIT = 0x00000400, /// Format can be used as the source image of blits with vkCommandBlitImage
2225 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 -08002226 VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT = 0x00001000,
Jesse Hall26763382016-05-20 07:13:52 -07002227
Ian Elliottcd8ad332017-10-13 09:21:12 -06002228 //@vulkan1_1
Daniel Kochf25f5bb2017-10-05 00:26:58 -04002229 VK_FORMAT_FEATURE_TRANSFER_SRC_BIT = 0x00004000,
2230 VK_FORMAT_FEATURE_TRANSFER_DST_BIT = 0x00008000,
2231 VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT = 0x00020000,
2232 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT = 0x00040000,
2233 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT = 0x00080000,
2234 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT = 0x00100000,
2235 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT = 0x00200000,
2236 VK_FORMAT_FEATURE_DISJOINT_BIT = 0x00400000,
2237 VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT = 0x00800000,
2238
Jesse Hallad250842017-03-10 18:35:38 -08002239 //@extension("VK_IMG_filter_cubic") // 16
Jesse Hall26763382016-05-20 07:13:52 -07002240 VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG = 0x00002000,
Jesse Hall77ad05b2017-03-10 22:02:20 -08002241
Jesse Hallad250842017-03-10 18:35:38 -08002242 //@extension("VK_KHR_maintenance1") // 70
Jesse Hall77ad05b2017-03-10 22:02:20 -08002243 VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR = 0x00004000,
2244 VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR = 0x00008000,
Jesse Hall7ba0ac72017-07-07 17:13:23 -07002245
2246 //@extension("VK_EXT_sampler_filter_minmax") // 131
2247 VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT_EXT = 0x00010000,
Jesse Hall076f95d2017-09-20 11:34:47 -07002248
2249 //@extension("VK_KHR_sampler_ycbcr_conversion") // 157
2250 VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT_KHR = 0x00020000,
2251 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT_KHR = 0x00040000,
2252 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT_KHR = 0x00080000,
2253 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT_KHR = 0x00100000,
2254 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT_KHR = 0x00200000,
2255 VK_FORMAT_FEATURE_DISJOINT_BIT_KHR = 0x00400000,
2256 VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT_KHR = 0x00800000,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002257}
2258
2259/// Query control flags
Jesse Halld8bade02015-11-24 10:24:18 -08002260type VkFlags VkQueryControlFlags
2261bitfield VkQueryControlFlagBits {
Jesse Hall65ab5522015-11-30 00:07:16 -08002262 VK_QUERY_CONTROL_PRECISE_BIT = 0x00000001,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002263}
2264
2265/// Query result flags
Jesse Halld8bade02015-11-24 10:24:18 -08002266type VkFlags VkQueryResultFlags
2267bitfield VkQueryResultFlagBits {
Jesse Halld27f6aa2015-08-15 17:58:48 -07002268 VK_QUERY_RESULT_64_BIT = 0x00000001, /// Results of the queries are written to the destination buffer as 64-bit values
2269 VK_QUERY_RESULT_WAIT_BIT = 0x00000002, /// Results of the queries are waited on before proceeding with the result copy
2270 VK_QUERY_RESULT_WITH_AVAILABILITY_BIT = 0x00000004, /// Besides the results of the query, the availability of the results is also written
2271 VK_QUERY_RESULT_PARTIAL_BIT = 0x00000008, /// Copy the partial results of the query even if the final results aren't available
2272}
2273
2274/// Shader module creation flags
Jesse Halld8bade02015-11-24 10:24:18 -08002275type VkFlags VkShaderModuleCreateFlags
Jesse Halla6429252015-11-29 18:59:42 -08002276//bitfield VkShaderModuleCreateFlagBits {
2277//}
Jesse Halld27f6aa2015-08-15 17:58:48 -07002278
Jesse Halld27f6aa2015-08-15 17:58:48 -07002279/// Event creation flags
Jesse Halld8bade02015-11-24 10:24:18 -08002280type VkFlags VkEventCreateFlags
Jesse Halla6429252015-11-29 18:59:42 -08002281//bitfield VkEventCreateFlagBits {
2282//}
Jesse Halld27f6aa2015-08-15 17:58:48 -07002283
Jesse Halla15a4bf2015-11-19 22:48:02 -08002284/// Command buffer usage flags
Jesse Hall3fbc8562015-11-29 22:10:52 -08002285type VkFlags VkCommandBufferUsageFlags
2286bitfield VkCommandBufferUsageFlagBits {
2287 VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT = 0x00000001,
2288 VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT = 0x00000002,
2289 VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT = 0x00000004,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002290}
2291
2292/// Pipeline statistics flags
Jesse Halld8bade02015-11-24 10:24:18 -08002293type VkFlags VkQueryPipelineStatisticFlags
2294bitfield VkQueryPipelineStatisticFlagBits {
Jesse Hallae38f732015-11-19 21:32:50 -08002295 VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT = 0x00000001, /// Optional
2296 VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT = 0x00000002, /// Optional
2297 VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT = 0x00000004, /// Optional
2298 VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT = 0x00000008, /// Optional
2299 VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT = 0x00000010, /// Optional
2300 VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT = 0x00000020, /// Optional
2301 VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT = 0x00000040, /// Optional
2302 VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT = 0x00000080, /// Optional
2303 VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT = 0x00000100, /// Optional
2304 VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT = 0x00000200, /// Optional
2305 VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT = 0x00000400, /// Optional
Jesse Halld27f6aa2015-08-15 17:58:48 -07002306}
2307
2308/// Memory mapping flags
Jesse Halld8bade02015-11-24 10:24:18 -08002309type VkFlags VkMemoryMapFlags
Jesse Halla6429252015-11-29 18:59:42 -08002310//bitfield VkMemoryMapFlagBits {
2311//}
Jesse Halld27f6aa2015-08-15 17:58:48 -07002312
2313/// Bitfield of image aspects
Jesse Halld8bade02015-11-24 10:24:18 -08002314type VkFlags VkImageAspectFlags
2315bitfield VkImageAspectFlagBits {
Jesse Halld27f6aa2015-08-15 17:58:48 -07002316 VK_IMAGE_ASPECT_COLOR_BIT = 0x00000001,
2317 VK_IMAGE_ASPECT_DEPTH_BIT = 0x00000002,
2318 VK_IMAGE_ASPECT_STENCIL_BIT = 0x00000004,
2319 VK_IMAGE_ASPECT_METADATA_BIT = 0x00000008,
Jesse Hall076f95d2017-09-20 11:34:47 -07002320
Ian Elliottcd8ad332017-10-13 09:21:12 -06002321 //@vulkan1_1
Daniel Kochf25f5bb2017-10-05 00:26:58 -04002322 VK_IMAGE_ASPECT_PLANE_0_BIT = 0x00000010,
2323 VK_IMAGE_ASPECT_PLANE_1_BIT = 0x00000020,
2324 VK_IMAGE_ASPECT_PLANE_2_BIT = 0x00000040,
2325
Jesse Hall076f95d2017-09-20 11:34:47 -07002326 //@extension("VK_KHR_sampler_ycbcr_conversion") // 157
2327 VK_IMAGE_ASPECT_PLANE_0_BIT_KHR = 0x00000010,
2328 VK_IMAGE_ASPECT_PLANE_1_BIT_KHR = 0x00000020,
2329 VK_IMAGE_ASPECT_PLANE_2_BIT_KHR = 0x00000040,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002330}
2331
2332/// Sparse memory bind flags
Jesse Halld8bade02015-11-24 10:24:18 -08002333type VkFlags VkSparseMemoryBindFlags
Jesse Hall091ed9e2015-11-30 00:55:29 -08002334bitfield VkSparseMemoryBindFlagBits {
2335 VK_SPARSE_MEMORY_BIND_METADATA_BIT = 0x00000001,
2336}
Jesse Halld27f6aa2015-08-15 17:58:48 -07002337
2338/// Sparse image memory requirements flags
Jesse Halld8bade02015-11-24 10:24:18 -08002339type VkFlags VkSparseImageFormatFlags
2340bitfield VkSparseImageFormatFlagBits {
Jesse Hallb00daad2015-11-29 19:46:20 -08002341 VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT = 0x00000001, /// Image uses a single miptail region for all array slices
2342 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.
2343 VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT = 0x00000004, /// Image uses a non-standard sparse block size
Jesse Halld27f6aa2015-08-15 17:58:48 -07002344}
2345
2346/// Pipeline stages
Jesse Halld8bade02015-11-24 10:24:18 -08002347type VkFlags VkPipelineStageFlags
2348bitfield VkPipelineStageFlagBits {
Jesse Halld27f6aa2015-08-15 17:58:48 -07002349 VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT = 0x00000001, /// Before subsequent commands are processed
2350 VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT = 0x00000002, /// Draw/DispatchIndirect command fetch
2351 VK_PIPELINE_STAGE_VERTEX_INPUT_BIT = 0x00000004, /// Vertex/index fetch
2352 VK_PIPELINE_STAGE_VERTEX_SHADER_BIT = 0x00000008, /// Vertex shading
Jesse Hallae38f732015-11-19 21:32:50 -08002353 VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT = 0x00000010, /// Tessellation control shading
2354 VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT = 0x00000020, /// Tessellation evaluation shading
Jesse Halld27f6aa2015-08-15 17:58:48 -07002355 VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT = 0x00000040, /// Geometry shading
2356 VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT = 0x00000080, /// Fragment shading
2357 VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT = 0x00000100, /// Early fragment (depth/stencil) tests
2358 VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT = 0x00000200, /// Late fragment (depth/stencil) tests
2359 VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT = 0x00000400, /// Color attachment writes
2360 VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT = 0x00000800, /// Compute shading
2361 VK_PIPELINE_STAGE_TRANSFER_BIT = 0x00001000, /// Transfer/copy operations
Jesse Hall543a7ff2016-01-08 16:38:30 -08002362 VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT = 0x00002000,
2363 VK_PIPELINE_STAGE_HOST_BIT = 0x00004000, /// Indicates host (CPU) is a source/sink of the dependency
Jesse Halld27f6aa2015-08-15 17:58:48 -07002364
Jesse Hall543a7ff2016-01-08 16:38:30 -08002365 VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT = 0x00008000, /// All stages of the graphics pipeline
2366 VK_PIPELINE_STAGE_ALL_COMMANDS_BIT = 0x00010000, /// All graphics, compute, copy, and transition commands
Chris Forbes289cb792016-12-30 15:03:55 +13002367
Jesse Hallad250842017-03-10 18:35:38 -08002368 //@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13002369 VK_PIPELINE_STAGE_COMMAND_PROCESS_BIT_NVX = 0x00020000,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07002370}
2371
2372/// Render pass attachment description flags
Jesse Halld8bade02015-11-24 10:24:18 -08002373type VkFlags VkAttachmentDescriptionFlags
2374bitfield VkAttachmentDescriptionFlagBits {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07002375 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 -07002376}
2377
2378/// Subpass description flags
Jesse Halld8bade02015-11-24 10:24:18 -08002379type VkFlags VkSubpassDescriptionFlags
2380bitfield VkSubpassDescriptionFlagBits {
Jesse Hallad250842017-03-10 18:35:38 -08002381 //@extension("VK_NVX_multiview_per_view_attributes") // 98
2382 VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX = 0x00000001,
2383 VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX = 0x00000002,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002384}
2385
2386/// Command pool creation flags
Jesse Hall3fbc8562015-11-29 22:10:52 -08002387type VkFlags VkCommandPoolCreateFlags
2388bitfield VkCommandPoolCreateFlagBits {
2389 VK_COMMAND_POOL_CREATE_TRANSIENT_BIT = 0x00000001, /// Command buffers have a short lifetime
2390 VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT = 0x00000002, /// Command buffers may release their memory individually
Daniel Kochf25f5bb2017-10-05 00:26:58 -04002391
Ian Elliottcd8ad332017-10-13 09:21:12 -06002392 //@vulkan1_1
Daniel Kochf25f5bb2017-10-05 00:26:58 -04002393 VK_COMMAND_POOL_CREATE_PROTECTED_BIT = 0x00000004,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002394}
2395
2396/// Command pool reset flags
Jesse Hall3fbc8562015-11-29 22:10:52 -08002397type VkFlags VkCommandPoolResetFlags
2398bitfield VkCommandPoolResetFlagBits {
2399 VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT = 0x00000001, /// Release resources owned by the pool
Jesse Halld27f6aa2015-08-15 17:58:48 -07002400}
2401
Jesse Hall3fbc8562015-11-29 22:10:52 -08002402type VkFlags VkCommandBufferResetFlags
2403bitfield VkCommandBufferResetFlagBits {
2404 VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT = 0x00000001, /// Release resources owned by the buffer
Jesse Hall5ae3abb2015-10-08 14:00:22 -07002405}
2406
Jesse Halld8bade02015-11-24 10:24:18 -08002407type VkFlags VkSampleCountFlags
2408bitfield VkSampleCountFlagBits {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07002409 VK_SAMPLE_COUNT_1_BIT = 0x00000001,
2410 VK_SAMPLE_COUNT_2_BIT = 0x00000002,
2411 VK_SAMPLE_COUNT_4_BIT = 0x00000004,
2412 VK_SAMPLE_COUNT_8_BIT = 0x00000008,
2413 VK_SAMPLE_COUNT_16_BIT = 0x00000010,
2414 VK_SAMPLE_COUNT_32_BIT = 0x00000020,
2415 VK_SAMPLE_COUNT_64_BIT = 0x00000040,
2416}
2417
Jesse Halld8bade02015-11-24 10:24:18 -08002418type VkFlags VkStencilFaceFlags
2419bitfield VkStencilFaceFlagBits {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07002420 VK_STENCIL_FACE_FRONT_BIT = 0x00000001, /// Front face
2421 VK_STENCIL_FACE_BACK_BIT = 0x00000002, /// Back face
Jesse Hallc7467b72015-11-29 21:05:26 -08002422 VK_STENCIL_FRONT_AND_BACK = 0x00000003,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002423}
2424
Jesse Halla6429252015-11-29 18:59:42 -08002425/// Instance creation flags
2426type VkFlags VkInstanceCreateFlags
2427//bitfield VkInstanceCreateFlagBits {
2428//}
2429
2430/// Device creation flags
2431type VkFlags VkDeviceCreateFlags
2432//bitfield VkDeviceCreateFlagBits {
2433//}
2434
2435/// Device queue creation flags
2436type VkFlags VkDeviceQueueCreateFlags
Ian Elliottcd8ad332017-10-13 09:21:12 -06002437@vulkan1_1
Daniel Kochf25f5bb2017-10-05 00:26:58 -04002438bitfield VkDeviceQueueCreateFlagBits {
2439 VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT = 0x00000001,
2440}
Jesse Halla6429252015-11-29 18:59:42 -08002441
2442/// Query pool creation flags
2443type VkFlags VkQueryPoolCreateFlags
2444//bitfield VkQueryPoolCreateFlagBits {
2445//}
2446
2447/// Buffer view creation flags
2448type VkFlags VkBufferViewCreateFlags
2449//bitfield VkBufferViewCreateFlagBits {
2450//}
2451
2452/// Pipeline cache creation flags
2453type VkFlags VkPipelineCacheCreateFlags
2454//bitfield VkPipelineCacheCreateFlagBits {
2455//}
2456
2457/// Pipeline shader stage creation flags
2458type VkFlags VkPipelineShaderStageCreateFlags
2459//bitfield VkPipelineShaderStageCreateFlagBits {
2460//}
2461
2462/// Descriptor set layout creation flags
2463type VkFlags VkDescriptorSetLayoutCreateFlags
Jesse Hallad250842017-03-10 18:35:38 -08002464bitfield VkDescriptorSetLayoutCreateFlagBits {
2465 //@extension("VK_KHR_push_descriptor") // 81
2466 VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR = 0x00000001,
2467}
Jesse Halla6429252015-11-29 18:59:42 -08002468
2469/// Pipeline vertex input state creation flags
2470type VkFlags VkPipelineVertexInputStateCreateFlags
2471//bitfield VkPipelineVertexInputStateCreateFlagBits {
2472//}
2473
2474/// Pipeline input assembly state creation flags
2475type VkFlags VkPipelineInputAssemblyStateCreateFlags
2476//bitfield VkPipelineInputAssemblyStateCreateFlagBits {
2477//}
2478
2479/// Tessellation state creation flags
2480type VkFlags VkPipelineTessellationStateCreateFlags
2481//bitfield VkPipelineTessellationStateCreateFlagBits {
2482//}
2483
2484/// Viewport state creation flags
2485type VkFlags VkPipelineViewportStateCreateFlags
2486//bitfield VkPipelineViewportStateCreateFlagBits {
2487//}
2488
Jesse Hall3fbc8562015-11-29 22:10:52 -08002489/// Rasterization state creation flags
2490type VkFlags VkPipelineRasterizationStateCreateFlags
2491//bitfield VkPipelineRasterizationStateCreateFlagBits {
Jesse Halla6429252015-11-29 18:59:42 -08002492//}
2493
2494/// Multisample state creation flags
2495type VkFlags VkPipelineMultisampleStateCreateFlags
2496//bitfield VkPipelineMultisampleStateCreateFlagBits {
2497//}
2498
2499/// Color blend state creation flags
2500type VkFlags VkPipelineColorBlendStateCreateFlags
2501//bitfield VkPipelineColorBlendStateCreateFlagBits {
2502//}
2503
2504/// Depth/stencil state creation flags
2505type VkFlags VkPipelineDepthStencilStateCreateFlags
2506//bitfield VkPipelineDepthStencilStateCreateFlagBits {
2507//}
2508
2509/// Dynamic state creation flags
2510type VkFlags VkPipelineDynamicStateCreateFlags
2511//bitfield VkPipelineDynamicStateCreateFlagBits {
2512//}
2513
2514/// Pipeline layout creation flags
2515type VkFlags VkPipelineLayoutCreateFlags
2516//bitfield VkPipelineLayoutCreateFlagBits {
2517//}
2518
2519/// Sampler creation flags
2520type VkFlags VkSamplerCreateFlags
2521//bitfield VkSamplerCreateFlagBits {
2522//}
2523
2524/// Render pass creation flags
2525type VkFlags VkRenderPassCreateFlags
2526//bitfield VkRenderPassCreateFlagBits {
2527//}
2528
2529/// Framebuffer creation flags
2530type VkFlags VkFramebufferCreateFlags
2531//bitfield VkFramebufferCreateFlagBits {
2532//}
2533
Jesse Halldc6d36c2015-11-29 19:12:15 -08002534/// Dependency flags
2535type VkFlags VkDependencyFlags
2536bitfield VkDependencyFlagBits {
2537 VK_DEPENDENCY_BY_REGION_BIT = 0x00000001,
Jesse Hallad250842017-03-10 18:35:38 -08002538
Ian Elliottcd8ad332017-10-13 09:21:12 -06002539 //@vulkan1_1
Daniel Kochf25f5bb2017-10-05 00:26:58 -04002540 VK_DEPENDENCY_DEVICE_GROUP_BIT = 0x00000004,
2541 VK_DEPENDENCY_VIEW_LOCAL_BIT = 0x00000002,
Jesse Hallad250842017-03-10 18:35:38 -08002542
Daniel Kochf25f5bb2017-10-05 00:26:58 -04002543 //@extension("VK_KHR_multiview") // 54
2544 VK_DEPENDENCY_VIEW_LOCAL_BIT_KHR = 0x00000002,
2545
2546 //@extension("VK_KHR_device_group") // 61
2547 VK_DEPENDENCY_DEVICE_GROUP_BIT_KHR = 0x00000004,
Jesse Halldc6d36c2015-11-29 19:12:15 -08002548}
2549
Jesse Hallc7467b72015-11-29 21:05:26 -08002550/// Cull mode flags
2551type VkFlags VkCullModeFlags
2552bitfield VkCullModeFlagBits {
2553 VK_CULL_MODE_NONE = 0x00000000,
2554 VK_CULL_MODE_FRONT_BIT = 0x00000001,
2555 VK_CULL_MODE_BACK_BIT = 0x00000002,
2556 VK_CULL_MODE_FRONT_AND_BACK = 0x00000003,
2557}
2558
Ian Elliottcd8ad332017-10-13 09:21:12 -06002559//@vulkan1_1 flags
Daniel Kochf25f5bb2017-10-05 00:26:58 -04002560
2561/// Subgroup feature flags
2562type VkFlags VkSubgroupFeatureFlags
2563bitfield VkSubgroupFeatureFlagBits {
2564 VK_SUBGROUP_FEATURE_BASIC_BIT = 0x00000001,
2565 VK_SUBGROUP_FEATURE_VOTE_BIT = 0x00000002,
2566 VK_SUBGROUP_FEATURE_ARITHMETIC_BIT = 0x00000004,
2567 VK_SUBGROUP_FEATURE_BALLOT_BIT = 0x00000008,
2568 VK_SUBGROUP_FEATURE_SHUFFLE_BIT = 0x00000010,
2569 VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT = 0x00000020,
2570 VK_SUBGROUP_FEATURE_CLUSTERED_BIT = 0x00000040,
2571 VK_SUBGROUP_FEATURE_QUAD_BIT = 0x00000080,
2572}
2573
2574/// Peer memory feature flags
2575type VkFlags VkPeerMemoryFeatureFlags
2576bitfield VkPeerMemoryFeatureFlagBits {
2577 VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT = 0x00000001,
2578 VK_PEER_MEMORY_FEATURE_COPY_DST_BIT = 0x00000002,
2579 VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT = 0x00000004,
2580 VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT = 0x00000008,
2581}
2582
2583/// Memory allocation flags
2584type VkFlags VkMemoryAllocateFlags
2585bitfield VkMemoryAllocateFlagBits {
2586 VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT = 0x00000001,
2587}
2588
2589type VkFlags VkCommandPoolTrimFlags
2590//bitfield VkCommandPoolTrimFlagBits {
2591//}
2592
2593type VkFlags VkDescriptorUpdateTemplateCreateFlags
2594//bitfield VkDescriptorUpdateTemplateCreateFlagBits {
2595//}
2596
2597/// External memory handle type flags
2598type VkFlags VkExternalMemoryHandleTypeFlags
2599bitfield VkExternalMemoryHandleTypeFlagBits {
2600 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT = 0x00000001,
2601 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT = 0x00000002,
2602 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 0x00000004,
2603 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT = 0x00000008,
2604 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT = 0x00000010,
2605 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT = 0x00000020,
2606 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT = 0x00000040,
Jesse Hall35b4de12018-01-17 22:06:20 -08002607
2608 //@extension("VK_EXT_external_memory_dma_buf") // 126
2609 VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT = 0x00000200,
2610
2611 //@extension("VK_EXT_external_memory_host") // 179
2612 VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT = 0x00000080,
2613 VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT = 0x00000100,
Daniel Kochf25f5bb2017-10-05 00:26:58 -04002614}
2615
2616/// External memory feature flags
2617type VkFlags VkExternalMemoryFeatureFlags
2618bitfield VkExternalMemoryFeatureFlagBits {
2619 VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT = 0x00000001,
2620 VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT = 0x00000002,
2621 VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT = 0x00000004,
2622}
2623
2624/// External fence handle type flags
2625type VkFlags VkExternalFenceHandleTypeFlags
2626bitfield VkExternalFenceHandleTypeFlagBits {
2627 VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT = 0x00000001,
2628 VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT = 0x00000002,
2629 VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 0x00000004,
2630 VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT = 0x00000008,
2631}
2632
2633/// External fence feature flags
2634type VkFlags VkExternalFenceFeatureFlags
2635bitfield VkExternalFenceFeatureFlagBits {
2636 VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT = 0x00000001,
2637 VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT = 0x00000002,
2638}
2639
2640/// Fence import flags
2641type VkFlags VkFenceImportFlags
2642bitfield VkFenceImportFlagBits {
2643 VK_FENCE_IMPORT_TEMPORARY_BIT = 0x00000001,
2644}
2645
2646/// Semaphore import flags
2647type VkFlags VkSemaphoreImportFlags
2648bitfield VkSemaphoreImportFlagBits {
2649 VK_SEMAPHORE_IMPORT_TEMPORARY_BIT = 0x00000001,
2650}
2651
2652/// External semaphore handle type flags
2653type VkFlags VkExternalSemaphoreHandleTypeFlags
2654bitfield VkExternalSemaphoreHandleTypeFlagBits {
2655 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT = 0x00000001,
2656 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT = 0x00000002,
2657 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 0x00000004,
2658 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT = 0x00000008,
2659 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT = 0x00000010,
2660}
2661
2662/// External semaphore feature flags
2663type VkFlags VkExternalSemaphoreFeatureFlags
2664bitfield VkExternalSemaphoreFeatureFlagBits {
2665 VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT = 0x00000001,
2666 VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT = 0x00000002,
2667}
2668
Jesse Hallad250842017-03-10 18:35:38 -08002669@extension("VK_KHR_surface") // 1
Jesse Halld8bade02015-11-24 10:24:18 -08002670type VkFlags VkSurfaceTransformFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08002671@extension("VK_KHR_surface") // 1
Jesse Halld8bade02015-11-24 10:24:18 -08002672bitfield VkSurfaceTransformFlagBitsKHR {
Jesse Hallf9fa9a52016-01-08 16:08:51 -08002673 VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR = 0x00000001,
Jesse Hall9ba8bc82015-11-30 16:22:16 -08002674 VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR = 0x00000002,
2675 VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR = 0x00000004,
2676 VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR = 0x00000008,
2677 VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR = 0x00000010,
2678 VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR = 0x00000020,
2679 VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR = 0x00000040,
2680 VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR = 0x00000080,
2681 VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR = 0x00000100,
Michael Lentine88594d72015-11-12 12:49:45 -08002682}
Jesse Halld27f6aa2015-08-15 17:58:48 -07002683
Jesse Hallad250842017-03-10 18:35:38 -08002684@extension("VK_KHR_surface") // 1
Jesse Halla6429252015-11-29 18:59:42 -08002685type VkFlags VkCompositeAlphaFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08002686@extension("VK_KHR_surface") // 1
Jesse Halla6429252015-11-29 18:59:42 -08002687bitfield VkCompositeAlphaFlagBitsKHR {
2688 VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR = 0x00000001,
2689 VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR = 0x00000002,
2690 VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR = 0x00000004,
2691 VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR = 0x00000008,
2692}
2693
Jesse Hallad250842017-03-10 18:35:38 -08002694@extension("VK_KHR_swapchain") // 2
Jesse Hallf4ab2b12015-11-30 16:04:55 -08002695type VkFlags VkSwapchainCreateFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08002696@extension("VK_KHR_swapchain") // 2
2697bitfield VkSwapchainCreateFlagBitsKHR {
Ian Elliottcd8ad332017-10-13 09:21:12 -06002698 //@vulkan1_1
Jesse Hall35b4de12018-01-17 22:06:20 -08002699 VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR = 0x00000001,
Daniel Kochf25f5bb2017-10-05 00:26:58 -04002700 VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR = 0x00000002,
2701}
2702
Ian Elliottcd8ad332017-10-13 09:21:12 -06002703@vulkan1_1
Daniel Kochf25f5bb2017-10-05 00:26:58 -04002704@extension("VK_KHR_swapchain") // 2
2705type VkFlags VkDeviceGroupPresentModeFlagsKHR
Ian Elliottcd8ad332017-10-13 09:21:12 -06002706@vulkan1_1
Daniel Kochf25f5bb2017-10-05 00:26:58 -04002707@extension("VK_KHR_swapchain") // 2
2708bitfield VkDeviceGroupPresentModeFlagBitsKHR {
2709 VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR = 0x00000001,
2710 VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR = 0x00000002,
2711 VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR = 0x00000004,
2712 VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR = 0x00000008,
Jesse Hallad250842017-03-10 18:35:38 -08002713}
Jesse Hallf4ab2b12015-11-30 16:04:55 -08002714
Jesse Hallad250842017-03-10 18:35:38 -08002715@extension("VK_KHR_display") // 3
Jesse Halld8bade02015-11-24 10:24:18 -08002716type VkFlags VkDisplayPlaneAlphaFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08002717@extension("VK_KHR_display") // 3
Jesse Halld8bade02015-11-24 10:24:18 -08002718bitfield VkDisplayPlaneAlphaFlagBitsKHR {
Jesse Hallf4ab2b12015-11-30 16:04:55 -08002719 VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR = 0x00000001,
2720 VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR = 0x00000002,
2721 VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR = 0x00000004,
2722 VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR = 0x00000008,
Jesse Hall1356b0d2015-11-23 17:24:58 -08002723}
2724
Jesse Hallad250842017-03-10 18:35:38 -08002725@extension("VK_KHR_display") // 3
Jesse Hallf4ab2b12015-11-30 16:04:55 -08002726type VkFlags VkDisplaySurfaceCreateFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08002727//@extension("VK_KHR_display") // 3
Jesse Hallf4ab2b12015-11-30 16:04:55 -08002728//bitfield VkDisplaySurfaceCreateFlagBitsKHR {
2729//}
2730
Jesse Hallad250842017-03-10 18:35:38 -08002731@extension("VK_KHR_display") // 3
Jesse Hall9ba8bc82015-11-30 16:22:16 -08002732type VkFlags VkDisplayModeCreateFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08002733//@extension("VK_KHR_display") // 3
Jesse Hall9ba8bc82015-11-30 16:22:16 -08002734//bitfield VkDisplayModeCreateFlagBitsKHR {
2735//}
2736
Jesse Hallad250842017-03-10 18:35:38 -08002737@extension("VK_KHR_xlib_surface") // 5
Jesse Hallf9fa9a52016-01-08 16:08:51 -08002738type VkFlags VkXlibSurfaceCreateFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08002739//@extension("VK_KHR_xlib_surface") // 5
Jesse Hallf9fa9a52016-01-08 16:08:51 -08002740//bitfield VkXlibSurfaceCreateFlagBitsKHR {
2741//}
2742
Jesse Hallad250842017-03-10 18:35:38 -08002743@extension("VK_KHR_xcb_surface") // 6
Jesse Hallf9fa9a52016-01-08 16:08:51 -08002744type VkFlags VkXcbSurfaceCreateFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08002745//@extension("VK_KHR_xcb_surface") // 6
Jesse Hallf9fa9a52016-01-08 16:08:51 -08002746//bitfield VkXcbSurfaceCreateFlagBitsKHR {
2747//}
2748
Jesse Hallad250842017-03-10 18:35:38 -08002749@extension("VK_KHR_wayland_surface") // 7
Jesse Hallf9fa9a52016-01-08 16:08:51 -08002750type VkFlags VkWaylandSurfaceCreateFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08002751//@extension("VK_KHR_wayland_surface") // 7
Jesse Hallf9fa9a52016-01-08 16:08:51 -08002752//bitfield VkWaylandSurfaceCreateFlagBitsKHR {
2753//}
2754
Jesse Hallad250842017-03-10 18:35:38 -08002755@extension("VK_KHR_mir_surface") // 8
Jesse Hallf9fa9a52016-01-08 16:08:51 -08002756type VkFlags VkMirSurfaceCreateFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08002757//@extension("VK_KHR_mir_surface") // 8
Jesse Hallf9fa9a52016-01-08 16:08:51 -08002758//bitfield VkMirSurfaceCreateFlagBitsKHR {
2759//}
2760
Jesse Hallad250842017-03-10 18:35:38 -08002761@extension("VK_KHR_android_surface") // 9
Jesse Hallf9fa9a52016-01-08 16:08:51 -08002762type VkFlags VkAndroidSurfaceCreateFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08002763//@extension("VK_KHR_android_surface") // 9
Jesse Hallf9fa9a52016-01-08 16:08:51 -08002764//bitfield VkAndroidSurfaceCreateFlagBitsKHR {
2765//}
2766
Jesse Hallad250842017-03-10 18:35:38 -08002767@extension("VK_KHR_win32_surface") // 10
Jesse Hallf9fa9a52016-01-08 16:08:51 -08002768type VkFlags VkWin32SurfaceCreateFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08002769//@extension("VK_KHR_win32_surface") // 10
Jesse Hallf9fa9a52016-01-08 16:08:51 -08002770//bitfield VkWin32SurfaceCreateFlagBitsKHR {
2771//}
2772
Jesse Hallad250842017-03-10 18:35:38 -08002773@extension("VK_ANDROID_native_buffer") // 11
Jesse Hall889cd9a2017-02-25 22:12:23 -08002774type VkFlags VkSwapchainImageUsageFlagsANDROID
Jesse Hallad250842017-03-10 18:35:38 -08002775@extension("VK_ANDROID_native_buffer") // 11
Jesse Hall889cd9a2017-02-25 22:12:23 -08002776bitfield VkSwapchainImageUsageFlagBitsANDROID {
2777 VK_SWAPCHAIN_IMAGE_USAGE_FLAGS_SHARED_BIT_ANDROID = 0x00000001,
2778}
2779
Jesse Hallad250842017-03-10 18:35:38 -08002780@extension("VK_EXT_debug_report") // 12
Jesse Hall715b86a2016-01-16 16:34:29 -08002781type VkFlags VkDebugReportFlagsEXT
Jesse Hallad250842017-03-10 18:35:38 -08002782@extension("VK_EXT_debug_report") // 12
Jesse Hall715b86a2016-01-16 16:34:29 -08002783bitfield VkDebugReportFlagBitsEXT {
Jesse Halle2948d82016-02-25 04:19:32 -08002784 VK_DEBUG_REPORT_INFORMATION_BIT_EXT = 0x00000001,
2785 VK_DEBUG_REPORT_WARNING_BIT_EXT = 0x00000002,
2786 VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT = 0x00000004,
Jesse Hall715b86a2016-01-16 16:34:29 -08002787 VK_DEBUG_REPORT_ERROR_BIT_EXT = 0x00000008,
2788 VK_DEBUG_REPORT_DEBUG_BIT_EXT = 0x00000010,
2789}
2790
Jesse Hallad250842017-03-10 18:35:38 -08002791@extension("VK_NV_external_memory_capabilities") // 56
Chris Forbes289cb792016-12-30 15:03:55 +13002792type VkFlags VkExternalMemoryHandleTypeFlagsNV
Jesse Hallad250842017-03-10 18:35:38 -08002793@extension("VK_NV_external_memory_capabilities") // 56
Chris Forbes289cb792016-12-30 15:03:55 +13002794bitfield VkExternalMemoryHandleTypeFlagBitsNV {
Jesse Halleb02c472017-02-24 15:13:45 -08002795 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV = 0x00000001,
2796 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV = 0x00000002,
2797 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV = 0x00000004,
2798 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV = 0x00000008,
Chris Forbes289cb792016-12-30 15:03:55 +13002799}
2800
Jesse Hallad250842017-03-10 18:35:38 -08002801@extension("VK_NV_external_memory_capabilities") // 56
Chris Forbes289cb792016-12-30 15:03:55 +13002802type VkFlags VkExternalMemoryFeatureFlagsNV
Jesse Hallad250842017-03-10 18:35:38 -08002803@extension("VK_NV_external_memory_capabilities") // 56
Chris Forbes289cb792016-12-30 15:03:55 +13002804bitfield VkExternalMemoryFeatureFlagBitsNV {
Jesse Halleb02c472017-02-24 15:13:45 -08002805 VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV = 0x00000001,
2806 VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV = 0x00000002,
2807 VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV = 0x00000004,
Chris Forbes289cb792016-12-30 15:03:55 +13002808}
2809
Daniel Kochf25f5bb2017-10-05 00:26:58 -04002810@extension("VK_KHR_device_group") // 61
2811type VkFlags VkPeerMemoryFeatureFlagsKHR
2812@extension("VK_KHR_device_group") // 61
2813bitfield VkPeerMemoryFeatureFlagBitsKHR {
2814 VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT_KHR = 0x00000001,
2815 VK_PEER_MEMORY_FEATURE_COPY_DST_BIT_KHR = 0x00000002,
2816 VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT_KHR = 0x00000004,
2817 VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT_KHR = 0x00000008,
Jesse Hallad250842017-03-10 18:35:38 -08002818}
2819
Daniel Kochf25f5bb2017-10-05 00:26:58 -04002820@extension("VK_KHR_device_group") // 61
2821type VkFlags VkMemoryAllocateFlagsKHR
2822@extension("VK_KHR_device_group") // 61
2823bitfield VkMemoryAllocateFlagBitsKHR {
2824 VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT_KHR = 0x00000001,
Jesse Hallad250842017-03-10 18:35:38 -08002825}
2826
2827@extension("VK_NN_vi_surface") // 63
Jesse Hall77ad05b2017-03-10 22:02:20 -08002828type VkFlags VkViSurfaceCreateFlagsNN
Jesse Hallad250842017-03-10 18:35:38 -08002829//@extension("VK_NN_vi_surface") // 63
Jesse Hall77ad05b2017-03-10 22:02:20 -08002830//bitfield VkViSurfaceCreateFlagBitsNN {
2831//}
2832
Jesse Hallad250842017-03-10 18:35:38 -08002833@extension("VK_KHR_maintenance1") // 70
Jesse Hall77ad05b2017-03-10 22:02:20 -08002834type VkFlags VkCommandPoolTrimFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08002835//@extension("VK_KHR_maintenance1") // 70
Jesse Hall77ad05b2017-03-10 22:02:20 -08002836//bitfield VkCommandPoolTrimFlagBitsKHR {
2837//}
2838
Jesse Hall9492f992017-08-28 12:10:06 -07002839@extension("VK_KHR_external_memory_capabilities") // 72
2840type VkFlags VkExternalMemoryHandleTypeFlagsKHR
2841@extension("VK_KHR_external_memory_capabilities") // 72
2842bitfield VkExternalMemoryHandleTypeFlagBitsKHR {
2843 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = 0x00000001,
2844 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = 0x00000002,
2845 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = 0x00000004,
2846 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT_KHR = 0x00000008,
2847 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT_KHR = 0x00000010,
2848 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT_KHR = 0x00000020,
2849 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT_KHR = 0x00000040,
Jesse Hallad250842017-03-10 18:35:38 -08002850}
2851
Jesse Hall9492f992017-08-28 12:10:06 -07002852@extension("VK_KHR_external_memory_capabilities") // 72
2853type VkFlags VkExternalMemoryFeatureFlagsKHR
2854@extension("VK_KHR_external_memory_capabilities") // 72
2855bitfield VkExternalMemoryFeatureFlagBitsKHR {
2856 VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_KHR = 0x00000001,
2857 VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_KHR = 0x00000002,
2858 VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_KHR = 0x00000004,
Jesse Hallad250842017-03-10 18:35:38 -08002859}
2860
Jesse Hall9492f992017-08-28 12:10:06 -07002861@extension("VK_KHR_external_semaphore_capabilities") // 77
2862type VkFlags VkExternalSemaphoreHandleTypeFlagsKHR
2863@extension("VK_KHR_external_semaphore_capabilities") // 77
2864bitfield VkExternalSemaphoreHandleTypeFlagBitsKHR {
2865 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = 0x00000001
2866 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = 0x00000002
2867 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = 0x00000004
2868 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT_KHR = 0x00000008
2869 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_FENCE_FD_BIT_KHR = 0x00000010
Jesse Hallad250842017-03-10 18:35:38 -08002870}
2871
Jesse Hall9492f992017-08-28 12:10:06 -07002872@extension("VK_KHR_external_semaphore_capabilities") // 77
2873type VkFlags VkExternalSemaphoreFeatureFlagsKHR
2874@extension("VK_KHR_external_semaphore_capabilities") // 77
2875bitfield VkExternalSemaphoreFeatureFlagBitsKHR {
2876 VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT_KHR = 0x00000001,
2877 VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT_KHR = 0x00000002,
2878}
2879
2880@extension("VK_KHR_external_semaphore") // 78
2881type VkFlags VkSemaphoreImportFlagsKHR
2882@extension("VK_KHR_external_semaphore") // 78
2883bitfield VkSemaphoreImportFlagBitsKHR {
2884 VK_SEMAPHORE_IMPORT_TEMPORARY_BIT_KHR = 0x00000001,
Jesse Hallad250842017-03-10 18:35:38 -08002885}
2886
2887@extension("VK_KHR_descriptor_update_template") // 86
2888type VkFlags VkDescriptorUpdateTemplateCreateFlagsKHR
2889//@extension("VK_KHR_descriptor_update_template") // 86
2890//bitfield VkDescriptorUpdateTemplateCreateFlagBitsKHR {
2891//}
2892
2893@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13002894type VkFlags VkIndirectCommandsLayoutUsageFlagsNVX
Jesse Hallad250842017-03-10 18:35:38 -08002895@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13002896bitfield VkIndirectCommandsLayoutUsageFlagBitsNVX {
Jesse Halleb02c472017-02-24 15:13:45 -08002897 VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NVX = 0x00000001,
2898 VK_INDIRECT_COMMANDS_LAYOUT_USAGE_SPARSE_SEQUENCES_BIT_NVX = 0x00000002,
2899 VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EMPTY_EXECUTIONS_BIT_NVX = 0x00000004,
2900 VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NVX = 0x00000008,
Chris Forbes289cb792016-12-30 15:03:55 +13002901}
2902
Jesse Hallad250842017-03-10 18:35:38 -08002903@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13002904type VkFlags VkObjectEntryUsageFlagsNVX
Jesse Hallad250842017-03-10 18:35:38 -08002905@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13002906bitfield VkObjectEntryUsageFlagBitsNVX {
Jesse Halleb02c472017-02-24 15:13:45 -08002907 VK_OBJECT_ENTRY_USAGE_GRAPHICS_BIT_NVX = 0x00000001,
2908 VK_OBJECT_ENTRY_USAGE_COMPUTE_BIT_NVX = 0x00000002,
Chris Forbes289cb792016-12-30 15:03:55 +13002909}
2910
Jesse Hallad250842017-03-10 18:35:38 -08002911@extension("VK_EXT_display_surface_counter") // 91
Jesse Hall77ad05b2017-03-10 22:02:20 -08002912type VkFlags VkSurfaceCounterFlagsEXT
Jesse Hallad250842017-03-10 18:35:38 -08002913@extension("VK_EXT_display_surface_counter") // 91
Jesse Hall77ad05b2017-03-10 22:02:20 -08002914bitfield VkSurfaceCounterFlagBitsEXT {
2915 VK_SURFACE_COUNTER_VBLANK_EXT = 0x00000001,
2916}
2917
Jesse Hallad250842017-03-10 18:35:38 -08002918@extension("VK_NV_viewport_swizzle") // 99
2919type VkFlags VkPipelineViewportSwizzleStateCreateFlagsNV
2920//@extension("VK_NV_viewport_swizzle") // 99
2921//bitfield VkPipelineViewportSwizzleStateCreateFlagBitsNV {
2922//}
2923
2924@extension("VK_EXT_discard_rectangles") // 100
2925type VkFlags VkPipelineDiscardRectangleStateCreateFlagsEXT
2926//@extension("VK_EXT_discard_rectangles") // 100
2927//bitfield VkPipelineDiscardRectangleStateCreateFlagBitsEXT {
2928//}
2929
Jesse Hall35b4de12018-01-17 22:06:20 -08002930@extension("VK_EXT_conservative_rasterization") // 102
2931type VkFlags VkPipelineRasterizationConservativeStateCreateFlagsEXT
2932//@extension("VK_EXT_conservative_rasterization") // 102
2933//bitfield VkPipelineRasterizationConservativeStateCreateFlagBitsEXT {
2934//}
2935
Jesse Hall9492f992017-08-28 12:10:06 -07002936@extension("VK_KHR_external_fence_capabilities") // 113
2937type VkFlags VkExternalFenceHandleTypeFlagsKHR
2938@extension("VK_KHR_external_fence_capabilities") // 113
2939bitfield VkExternalFenceHandleTypeFlagBitsKHR {
2940 VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = 0x00000001,
2941 VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = 0x00000002,
2942 VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = 0x00000004,
2943 VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT_KHR = 0x00000008,
2944}
2945
2946@extension("VK_KHR_external_fence_capabilities") // 113
2947type VkFlags VkExternalFenceFeatureFlagsKHR
2948@extension("VK_KHR_external_fence_capabilities") // 113
2949bitfield VkExternalFenceFeatureFlagBitsKHR {
2950 VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT_KHR = 0x00000001,
2951 VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT_KHR = 0x00000002,
2952}
2953
2954@extension("VK_KHR_external_fence") // 114
2955type VkFlags VkFenceImportFlagsKHR
2956@extension("VK_KHR_external_fence") // 114
2957bitfield VkFenceImportFlagBitsKHR {
2958 VK_FENCE_IMPORT_TEMPORARY_BIT_KHR = 0x00000001,
2959}
2960
Jesse Hallad250842017-03-10 18:35:38 -08002961@extension("VK_MVK_ios_surface") // 123
2962type VkFlags VkIOSSurfaceCreateFlagsMVK
2963//@extension("VK_MVK_ios_surface") // 123
2964//bitfield VkIOSSurfaceCreateFlagBitsMVK {
2965//}
2966
2967@extension("VK_MVK_macos_surface") // 124
2968type VkFlags VkMacOSSurfaceCreateFlagsMVK
2969//@extension("VK_MVK_macos_surface") // 124
2970//bitfield VkMacOSSurfaceCreateFlagBitsMVK {
2971//}
2972
Jesse Hall35b4de12018-01-17 22:06:20 -08002973@extension("VK_EXT_debug_utils") // 129
2974type VkFlags VkDebugUtilsMessengerCallbackDataFlagsEXT
2975//@extension("VK_EXT_debug_utils") // 129
2976//bitfield VkDebugUtilsMessengerCallbackDataFlagBitsEXT {
2977//}
2978
2979@extension("VK_EXT_debug_utils") // 129
2980type VkFlags VkDebugUtilsMessengerCreateFlagsEXT
2981//@extension("VK_EXT_debug_utils") // 129
2982//bitfield VkDebugUtilsMessengerCreateFlagBitsEXT {
2983//}
2984
2985@extension("VK_EXT_debug_utils") // 129
2986type VkFlags VkDebugUtilsMessageSeverityFlagsEXT
2987@extension("VK_EXT_debug_utils") // 129
2988bitfield VkDebugUtilsMessageSeverityFlagBitsEXT {
2989 VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT = 0x00000001,
2990 VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT = 0x00000010,
2991 VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT = 0x00000100,
2992 VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT = 0x00001000,
2993}
2994
2995@extension("VK_EXT_debug_utils") // 129
2996type VkFlags VkDebugUtilsMessageTypeFlagsEXT
2997@extension("VK_EXT_debug_utils") // 129
2998bitfield VkDebugUtilsMessageTypeFlagBitsEXT {
2999 VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT = 0x00000001,
3000 VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT = 0x00000002,
3001 VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT = 0x00000004,
3002}
3003
Jesse Hall7ba0ac72017-07-07 17:13:23 -07003004@extension("VK_NV_fragment_coverage_to_color") // 150
3005type VkFlags VkPipelineCoverageToColorStateCreateFlagsNV
3006@extension("VK_NV_fragment_coverage_to_color") // 150
3007//bitfield VkPipelineCoverageToColorStateCreateFlagBitsNV {
3008//}
3009
3010@extension("VK_NV_framebuffer_mixed_samples") // 153
3011type VkFlags VkPipelineCoverageModulationStateCreateFlagsNV
3012@extension("VK_NV_framebuffer_mixed_samples") // 153
3013//bitfield VkPipelineCoverageModulationStateCreateFlagBitsNV {
3014//}
3015
Jesse Hall77726222017-09-19 14:49:27 -05003016@extension("VK_EXT_validation_cache") // 161
3017type VkFlags VkValidationCacheCreateFlagsEXT
3018@extension("VK_EXT_validation_cache") // 161
3019//bitfield VkValidationCacheCreateFlagBitsEXT {
3020//}
3021
Jesse Halld27f6aa2015-08-15 17:58:48 -07003022//////////////////
3023// Structures //
3024//////////////////
3025
3026class VkOffset2D {
3027 s32 x
3028 s32 y
3029}
3030
3031class VkOffset3D {
3032 s32 x
3033 s32 y
3034 s32 z
3035}
3036
3037class VkExtent2D {
Jesse Hall3dd678a2016-01-08 21:52:01 -08003038 u32 width
3039 u32 height
Jesse Halld27f6aa2015-08-15 17:58:48 -07003040}
3041
3042class VkExtent3D {
Jesse Hall3dd678a2016-01-08 21:52:01 -08003043 u32 width
3044 u32 height
3045 u32 depth
Jesse Halld27f6aa2015-08-15 17:58:48 -07003046}
3047
3048class VkViewport {
Jesse Hall65ab5522015-11-30 00:07:16 -08003049 f32 x
3050 f32 y
Jesse Halld27f6aa2015-08-15 17:58:48 -07003051 f32 width
3052 f32 height
3053 f32 minDepth
3054 f32 maxDepth
3055}
3056
3057class VkRect2D {
3058 VkOffset2D offset
3059 VkExtent2D extent
3060}
3061
Jesse Halla15a4bf2015-11-19 22:48:02 -08003062class VkClearRect {
3063 VkRect2D rect
3064 u32 baseArrayLayer
Jesse Hall3fbc8562015-11-29 22:10:52 -08003065 u32 layerCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07003066}
3067
Jesse Hall65ab5522015-11-30 00:07:16 -08003068class VkComponentMapping {
3069 VkComponentSwizzle r
3070 VkComponentSwizzle g
3071 VkComponentSwizzle b
3072 VkComponentSwizzle a
Jesse Halld27f6aa2015-08-15 17:58:48 -07003073}
3074
3075class VkPhysicalDeviceProperties {
3076 u32 apiVersion
3077 u32 driverVersion
Jesse Hall65ab5522015-11-30 00:07:16 -08003078 u32 vendorID
3079 u32 deviceID
Jesse Halld27f6aa2015-08-15 17:58:48 -07003080 VkPhysicalDeviceType deviceType
Jesse Hall65ab5522015-11-30 00:07:16 -08003081 char[VK_MAX_PHYSICAL_DEVICE_NAME_SIZE] deviceName
3082 u8[VK_UUID_SIZE] pipelineCacheUUID
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003083 VkPhysicalDeviceLimits limits
3084 VkPhysicalDeviceSparseProperties sparseProperties
Jesse Halld27f6aa2015-08-15 17:58:48 -07003085}
3086
3087class VkExtensionProperties {
Jesse Hall65ab5522015-11-30 00:07:16 -08003088 char[VK_MAX_EXTENSION_NAME_SIZE] extensionName /// extension name
Jesse Halld27f6aa2015-08-15 17:58:48 -07003089 u32 specVersion /// version of the extension specification implemented
3090}
3091
3092class VkLayerProperties {
Jesse Hall65ab5522015-11-30 00:07:16 -08003093 char[VK_MAX_EXTENSION_NAME_SIZE] layerName /// layer name
Jesse Hall3fbc8562015-11-29 22:10:52 -08003094 u32 specVersion /// version of the layer specification implemented
3095 u32 implementationVersion /// build or release version of the layer's library
Jesse Hall65ab5522015-11-30 00:07:16 -08003096 char[VK_MAX_DESCRIPTION_SIZE] description /// Free-form description of the layer
Jesse Halld27f6aa2015-08-15 17:58:48 -07003097}
3098
Jesse Halla366a512015-11-19 22:30:07 -08003099class VkSubmitInfo {
Jesse Hall03b6fe12015-11-24 12:44:21 -08003100 VkStructureType sType /// Type of structure. Should be VK_STRUCTURE_TYPE_SUBMIT_INFO
3101 const void* pNext /// Next structure in chain
3102 u32 waitSemaphoreCount
Jesse Halla366a512015-11-19 22:30:07 -08003103 const VkSemaphore* pWaitSemaphores
Jesse Hall543a7ff2016-01-08 16:38:30 -08003104 const VkPipelineStageFlags* pWaitDstStageMask
Jesse Hall03b6fe12015-11-24 12:44:21 -08003105 u32 commandBufferCount
Jesse Hall3fbc8562015-11-29 22:10:52 -08003106 const VkCommandBuffer* pCommandBuffers
Jesse Hall03b6fe12015-11-24 12:44:21 -08003107 u32 signalSemaphoreCount
Jesse Halla366a512015-11-19 22:30:07 -08003108 const VkSemaphore* pSignalSemaphores
3109}
3110
Jesse Halld27f6aa2015-08-15 17:58:48 -07003111class VkApplicationInfo {
3112 VkStructureType sType /// Type of structure. Should be VK_STRUCTURE_TYPE_APPLICATION_INFO
3113 const void* pNext /// Next structure in chain
Jesse Hall3fbc8562015-11-29 22:10:52 -08003114 const char* pApplicationName
3115 u32 applicationVersion
Jesse Halld27f6aa2015-08-15 17:58:48 -07003116 const char* pEngineName
3117 u32 engineVersion
3118 u32 apiVersion
3119}
3120
Jesse Hall3fbc8562015-11-29 22:10:52 -08003121class VkAllocationCallbacks {
Jesse Halld27f6aa2015-08-15 17:58:48 -07003122 void* pUserData
Jesse Hall3fbc8562015-11-29 22:10:52 -08003123 PFN_vkAllocationFunction pfnAllocation
3124 PFN_vkReallocationFunction pfnReallocation
Jesse Halld27f6aa2015-08-15 17:58:48 -07003125 PFN_vkFreeFunction pfnFree
Jesse Hall3fbc8562015-11-29 22:10:52 -08003126 PFN_vkInternalAllocationNotification pfnInternalAllocation
Jesse Hall03b6fe12015-11-24 12:44:21 -08003127 PFN_vkInternalFreeNotification pfnInternalFree
Jesse Halld27f6aa2015-08-15 17:58:48 -07003128}
3129
3130class VkDeviceQueueCreateInfo {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003131 VkStructureType sStype /// Should be VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO
3132 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003133 VkDeviceQueueCreateFlags flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07003134 u32 queueFamilyIndex
Jesse Halldba27f72015-11-30 14:25:46 -08003135 u32 queueCount
Jesse Hallfbf97b02015-11-20 14:17:03 -08003136 const f32* pQueuePriorities
Jesse Halld27f6aa2015-08-15 17:58:48 -07003137}
3138
3139class VkDeviceCreateInfo {
3140 VkStructureType sType /// Should be VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO
3141 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003142 VkDeviceCreateFlags flags
Jesse Halldba27f72015-11-30 14:25:46 -08003143 u32 queueCreateInfoCount
3144 const VkDeviceQueueCreateInfo* pQueueCreateInfos
Jesse Hall3dd678a2016-01-08 21:52:01 -08003145 u32 enabledLayerCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07003146 const char* const* ppEnabledLayerNames /// Ordered list of layer names to be enabled
Jesse Hall3dd678a2016-01-08 21:52:01 -08003147 u32 enabledExtensionCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07003148 const char* const* ppEnabledExtensionNames
3149 const VkPhysicalDeviceFeatures* pEnabledFeatures
Jesse Halld27f6aa2015-08-15 17:58:48 -07003150}
3151
3152class VkInstanceCreateInfo {
3153 VkStructureType sType /// Should be VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO
3154 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003155 VkInstanceCreateFlags flags
Jesse Hall3fbc8562015-11-29 22:10:52 -08003156 const VkApplicationInfo* pApplicationInfo
Jesse Hall3dd678a2016-01-08 21:52:01 -08003157 u32 enabledLayerCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07003158 const char* const* ppEnabledLayerNames /// Ordered list of layer names to be enabled
Jesse Hall3dd678a2016-01-08 21:52:01 -08003159 u32 enabledExtensionCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07003160 const char* const* ppEnabledExtensionNames /// Extension names to be enabled
3161}
3162
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003163class VkQueueFamilyProperties {
Jesse Halld27f6aa2015-08-15 17:58:48 -07003164 VkQueueFlags queueFlags /// Queue flags
3165 u32 queueCount
Jesse Hallacfa5342015-11-19 21:51:33 -08003166 u32 timestampValidBits
Jesse Hall65ab5522015-11-30 00:07:16 -08003167 VkExtent3D minImageTransferGranularity
Jesse Halld27f6aa2015-08-15 17:58:48 -07003168}
3169
3170class VkPhysicalDeviceMemoryProperties {
3171 u32 memoryTypeCount
3172 VkMemoryType[VK_MAX_MEMORY_TYPES] memoryTypes
3173 u32 memoryHeapCount
3174 VkMemoryHeap[VK_MAX_MEMORY_HEAPS] memoryHeaps
3175}
3176
Jesse Hall3fbc8562015-11-29 22:10:52 -08003177class VkMemoryAllocateInfo {
Jesse Hallf4ab2b12015-11-30 16:04:55 -08003178 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO
Jesse Halld27f6aa2015-08-15 17:58:48 -07003179 const void* pNext /// Pointer to next structure
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003180 VkDeviceSize allocationSize /// Size of memory allocation
Jesse Halld27f6aa2015-08-15 17:58:48 -07003181 u32 memoryTypeIndex /// Index of the of the memory type to allocate from
3182}
3183
3184class VkMemoryRequirements {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003185 VkDeviceSize size /// Specified in bytes
3186 VkDeviceSize alignment /// Specified in bytes
Jesse Halld27f6aa2015-08-15 17:58:48 -07003187 u32 memoryTypeBits /// Bitfield of the allowed memory type indices into memoryTypes[] for this object
3188}
3189
3190class VkSparseImageFormatProperties {
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08003191 VkImageAspectFlagBits aspectMask
Jesse Halld27f6aa2015-08-15 17:58:48 -07003192 VkExtent3D imageGranularity
3193 VkSparseImageFormatFlags flags
3194}
3195
3196class VkSparseImageMemoryRequirements {
Jesse Hallb00daad2015-11-29 19:46:20 -08003197 VkSparseImageFormatProperties formatProperties
Jesse Hallf9fa9a52016-01-08 16:08:51 -08003198 u32 imageMipTailFirstLod
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003199 VkDeviceSize imageMipTailSize /// Specified in bytes, must be a multiple of image block size / alignment
3200 VkDeviceSize imageMipTailOffset /// Specified in bytes, must be a multiple of image block size / alignment
3201 VkDeviceSize imageMipTailStride /// Specified in bytes, must be a multiple of image block size / alignment
Jesse Halld27f6aa2015-08-15 17:58:48 -07003202}
3203
3204class VkMemoryType {
3205 VkMemoryPropertyFlags propertyFlags /// Memory properties of this memory type
3206 u32 heapIndex /// Index of the memory heap allocations of this memory type are taken from
3207}
3208
3209class VkMemoryHeap {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003210 VkDeviceSize size /// Available memory in the heap
Jesse Halld27f6aa2015-08-15 17:58:48 -07003211 VkMemoryHeapFlags flags /// Flags for the heap
3212}
3213
3214class VkMappedMemoryRange {
3215 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE
3216 const void* pNext /// Pointer to next structure
Jesse Hall3fbc8562015-11-29 22:10:52 -08003217 VkDeviceMemory memory /// Mapped memory object
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003218 VkDeviceSize offset /// Offset within the mapped memory the range starts from
3219 VkDeviceSize size /// Size of the range within the mapped memory
Jesse Halld27f6aa2015-08-15 17:58:48 -07003220}
3221
3222class VkFormatProperties {
3223 VkFormatFeatureFlags linearTilingFeatures /// Format features in case of linear tiling
3224 VkFormatFeatureFlags optimalTilingFeatures /// Format features in case of optimal tiling
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003225 VkFormatFeatureFlags bufferFeatures /// Format features supported by buffers
Jesse Halld27f6aa2015-08-15 17:58:48 -07003226}
3227
3228class VkImageFormatProperties {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003229 VkExtent3D maxExtent /// max image dimensions for this resource type
3230 u32 maxMipLevels /// max number of mipmap levels for this resource type
Jesse Halla15a4bf2015-11-19 22:48:02 -08003231 u32 maxArrayLayers /// max array layers for this resource type
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003232 VkSampleCountFlags sampleCounts /// supported sample counts for this resource type
3233 VkDeviceSize maxResourceSize /// max size (in bytes) of this resource type
3234}
3235
Jesse Halla15a4bf2015-11-19 22:48:02 -08003236class VkDescriptorImageInfo {
3237 VkSampler sampler
3238 VkImageView imageView
3239 VkImageLayout imageLayout
3240}
3241
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003242class VkDescriptorBufferInfo {
3243 VkBuffer buffer /// Buffer used for this descriptor when the descriptor is UNIFORM_BUFFER[_DYNAMIC]
3244 VkDeviceSize offset /// Base offset from buffer start in bytes to update in the descriptor set.
3245 VkDeviceSize range /// Size in bytes of the buffer resource for this descriptor update.
Jesse Halld27f6aa2015-08-15 17:58:48 -07003246}
3247
Jesse Halld27f6aa2015-08-15 17:58:48 -07003248class VkWriteDescriptorSet {
3249 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET
3250 const void* pNext /// Pointer to next structure
Jesse Hall3fbc8562015-11-29 22:10:52 -08003251 VkDescriptorSet dstSet /// Destination descriptor set
3252 u32 dstBinding /// Binding within the destination descriptor set to write
3253 u32 dstArrayElement /// Array element within the destination binding to write
Jesse Hall03b6fe12015-11-24 12:44:21 -08003254 u32 descriptorCount /// Number of descriptors to write (determines the size of the array pointed by <pDescriptors>)
Jesse Halld27f6aa2015-08-15 17:58:48 -07003255 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 -08003256 const VkDescriptorImageInfo* pImageInfo
3257 const VkDescriptorBufferInfo* pBufferInfo
3258 const VkBufferView* pTexelBufferView
Jesse Halld27f6aa2015-08-15 17:58:48 -07003259}
3260
3261class VkCopyDescriptorSet {
3262 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET
3263 const void* pNext /// Pointer to next structure
3264 VkDescriptorSet srcSet /// Source descriptor set
3265 u32 srcBinding /// Binding within the source descriptor set to copy from
3266 u32 srcArrayElement /// Array element within the source binding to copy from
Jesse Hall3fbc8562015-11-29 22:10:52 -08003267 VkDescriptorSet dstSet /// Destination descriptor set
3268 u32 dstBinding /// Binding within the destination descriptor set to copy to
3269 u32 dstArrayElement /// Array element within the destination binding to copy to
Jesse Hall03b6fe12015-11-24 12:44:21 -08003270 u32 descriptorCount /// Number of descriptors to copy
Jesse Halld27f6aa2015-08-15 17:58:48 -07003271}
3272
3273class VkBufferCreateInfo {
3274 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO
3275 const void* pNext /// Pointer to next structure.
Jesse Halla6429252015-11-29 18:59:42 -08003276 VkBufferCreateFlags flags /// Buffer creation flags
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003277 VkDeviceSize size /// Specified in bytes
Jesse Halld27f6aa2015-08-15 17:58:48 -07003278 VkBufferUsageFlags usage /// Buffer usage flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07003279 VkSharingMode sharingMode
Jesse Hall03b6fe12015-11-24 12:44:21 -08003280 u32 queueFamilyIndexCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07003281 const u32* pQueueFamilyIndices
3282}
3283
3284class VkBufferViewCreateInfo {
3285 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO
3286 const void* pNext /// Pointer to next structure.
Jesse Halla6429252015-11-29 18:59:42 -08003287 VkBufferViewCreateFlags flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07003288 VkBuffer buffer
Jesse Halld27f6aa2015-08-15 17:58:48 -07003289 VkFormat format /// Optionally specifies format of elements
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003290 VkDeviceSize offset /// Specified in bytes
3291 VkDeviceSize range /// View size specified in bytes
Jesse Halld27f6aa2015-08-15 17:58:48 -07003292}
3293
3294class VkImageSubresource {
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08003295 VkImageAspectFlagBits aspectMask
Jesse Halld27f6aa2015-08-15 17:58:48 -07003296 u32 mipLevel
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003297 u32 arrayLayer
Jesse Halld27f6aa2015-08-15 17:58:48 -07003298}
3299
3300class VkImageSubresourceRange {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003301 VkImageAspectFlags aspectMask
Jesse Halld27f6aa2015-08-15 17:58:48 -07003302 u32 baseMipLevel
Jesse Hall3fbc8562015-11-29 22:10:52 -08003303 u32 levelCount
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003304 u32 baseArrayLayer
Jesse Hall3fbc8562015-11-29 22:10:52 -08003305 u32 layerCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07003306}
3307
3308class VkMemoryBarrier {
3309 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_MEMORY_BARRIER
3310 const void* pNext /// Pointer to next structure.
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08003311 VkAccessFlags srcAccessMask
3312 VkAccessFlags dstAccessMask
Jesse Halld27f6aa2015-08-15 17:58:48 -07003313}
3314
3315class VkBufferMemoryBarrier {
3316 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER
3317 const void* pNext /// Pointer to next structure.
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08003318 VkAccessFlags srcAccessMask
3319 VkAccessFlags dstAccessMask
Jesse Halld27f6aa2015-08-15 17:58:48 -07003320 u32 srcQueueFamilyIndex /// Queue family to transition ownership from
Jesse Hall3fbc8562015-11-29 22:10:52 -08003321 u32 dstQueueFamilyIndex /// Queue family to transition ownership to
Jesse Halld27f6aa2015-08-15 17:58:48 -07003322 VkBuffer buffer /// Buffer to sync
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003323 VkDeviceSize offset /// Offset within the buffer to sync
3324 VkDeviceSize size /// Amount of bytes to sync
Jesse Halld27f6aa2015-08-15 17:58:48 -07003325}
3326
3327class VkImageMemoryBarrier {
3328 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER
3329 const void* pNext /// Pointer to next structure.
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08003330 VkAccessFlags srcAccessMask
3331 VkAccessFlags dstAccessMask
Jesse Halld27f6aa2015-08-15 17:58:48 -07003332 VkImageLayout oldLayout /// Current layout of the image
3333 VkImageLayout newLayout /// New layout to transition the image to
3334 u32 srcQueueFamilyIndex /// Queue family to transition ownership from
Jesse Hall3fbc8562015-11-29 22:10:52 -08003335 u32 dstQueueFamilyIndex /// Queue family to transition ownership to
Jesse Halld27f6aa2015-08-15 17:58:48 -07003336 VkImage image /// Image to sync
3337 VkImageSubresourceRange subresourceRange /// Subresource range to sync
3338}
3339
3340class VkImageCreateInfo {
3341 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO
3342 const void* pNext /// Pointer to next structure.
Jesse Halla6429252015-11-29 18:59:42 -08003343 VkImageCreateFlags flags /// Image creation flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07003344 VkImageType imageType
3345 VkFormat format
3346 VkExtent3D extent
3347 u32 mipLevels
Jesse Halla15a4bf2015-11-19 22:48:02 -08003348 u32 arrayLayers
Jesse Hall091ed9e2015-11-30 00:55:29 -08003349 VkSampleCountFlagBits samples
Jesse Halld27f6aa2015-08-15 17:58:48 -07003350 VkImageTiling tiling
3351 VkImageUsageFlags usage /// Image usage flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07003352 VkSharingMode sharingMode /// Cross-queue-family sharing mode
Jesse Hall03b6fe12015-11-24 12:44:21 -08003353 u32 queueFamilyIndexCount /// Number of queue families to share across
Jesse Halld27f6aa2015-08-15 17:58:48 -07003354 const u32* pQueueFamilyIndices /// Array of queue family indices to share across
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003355 VkImageLayout initialLayout /// Initial image layout for all subresources
Jesse Halld27f6aa2015-08-15 17:58:48 -07003356}
3357
3358class VkSubresourceLayout {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003359 VkDeviceSize offset /// Specified in bytes
3360 VkDeviceSize size /// Specified in bytes
3361 VkDeviceSize rowPitch /// Specified in bytes
Jesse Hall543a7ff2016-01-08 16:38:30 -08003362 VkDeviceSize arrayPitch /// Specified in bytes
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003363 VkDeviceSize depthPitch /// Specified in bytes
Jesse Halld27f6aa2015-08-15 17:58:48 -07003364}
3365
3366class VkImageViewCreateInfo {
3367 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO
3368 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003369 VkImageViewCreateFlags flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07003370 VkImage image
3371 VkImageViewType viewType
3372 VkFormat format
Jesse Hall65ab5522015-11-30 00:07:16 -08003373 VkComponentMapping components
Jesse Halld27f6aa2015-08-15 17:58:48 -07003374 VkImageSubresourceRange subresourceRange
Jesse Halld27f6aa2015-08-15 17:58:48 -07003375}
3376
3377class VkBufferCopy {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003378 VkDeviceSize srcOffset /// Specified in bytes
Jesse Hall3fbc8562015-11-29 22:10:52 -08003379 VkDeviceSize dstOffset /// Specified in bytes
Jesse Hallb00daad2015-11-29 19:46:20 -08003380 VkDeviceSize size /// Specified in bytes
Jesse Halld27f6aa2015-08-15 17:58:48 -07003381}
3382
Jesse Halla6429252015-11-29 18:59:42 -08003383class VkSparseMemoryBind {
Jesse Hallb00daad2015-11-29 19:46:20 -08003384 VkDeviceSize resourceOffset /// Specified in bytes
3385 VkDeviceSize size /// Specified in bytes
Jesse Hall3fbc8562015-11-29 22:10:52 -08003386 VkDeviceMemory memory
3387 VkDeviceSize memoryOffset /// Specified in bytes
Jesse Halld27f6aa2015-08-15 17:58:48 -07003388 VkSparseMemoryBindFlags flags
3389}
3390
Jesse Halla6429252015-11-29 18:59:42 -08003391class VkSparseImageMemoryBind {
Jesse Halld27f6aa2015-08-15 17:58:48 -07003392 VkImageSubresource subresource
3393 VkOffset3D offset
3394 VkExtent3D extent
Jesse Hall3fbc8562015-11-29 22:10:52 -08003395 VkDeviceMemory memory
3396 VkDeviceSize memoryOffset /// Specified in bytes
Jesse Halld27f6aa2015-08-15 17:58:48 -07003397 VkSparseMemoryBindFlags flags
3398}
3399
Jesse Halla6429252015-11-29 18:59:42 -08003400class VkSparseBufferMemoryBindInfo {
3401 VkBuffer buffer
3402 u32 bindCount
3403 const VkSparseMemoryBind* pBinds
3404}
3405
3406class VkSparseImageOpaqueMemoryBindInfo {
3407 VkImage image
3408 u32 bindCount
3409 const VkSparseMemoryBind* pBinds
3410}
3411
3412class VkSparseImageMemoryBindInfo {
3413 VkImage image
3414 u32 bindCount
3415 const VkSparseMemoryBind* pBinds
3416}
3417
3418class VkBindSparseInfo {
3419 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_BIND_SPARSE_INFO
3420 const void* pNext
3421 u32 waitSemaphoreCount
3422 const VkSemaphore* pWaitSemaphores
3423 u32 numBufferBinds
3424 const VkSparseBufferMemoryBindInfo* pBufferBinds
3425 u32 numImageOpaqueBinds
3426 const VkSparseImageOpaqueMemoryBindInfo* pImageOpaqueBinds
3427 u32 numImageBinds
3428 const VkSparseImageMemoryBindInfo* pImageBinds
3429 u32 signalSemaphoreCount
3430 const VkSemaphore* pSignalSemaphores
3431}
3432
Jesse Hall65ab5522015-11-30 00:07:16 -08003433class VkImageSubresourceLayers {
3434 VkImageAspectFlags aspectMask
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003435 u32 mipLevel
Jesse Halla15a4bf2015-11-19 22:48:02 -08003436 u32 baseArrayLayer
Jesse Hall3fbc8562015-11-29 22:10:52 -08003437 u32 layerCount
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003438}
3439
Jesse Halld27f6aa2015-08-15 17:58:48 -07003440class VkImageCopy {
Jesse Hall65ab5522015-11-30 00:07:16 -08003441 VkImageSubresourceLayers srcSubresource
Jesse Halld27f6aa2015-08-15 17:58:48 -07003442 VkOffset3D srcOffset /// Specified in pixels for both compressed and uncompressed images
Jesse Hall65ab5522015-11-30 00:07:16 -08003443 VkImageSubresourceLayers dstSubresource
Jesse Hall3fbc8562015-11-29 22:10:52 -08003444 VkOffset3D dstOffset /// Specified in pixels for both compressed and uncompressed images
Jesse Halld27f6aa2015-08-15 17:58:48 -07003445 VkExtent3D extent /// Specified in pixels for both compressed and uncompressed images
3446}
3447
3448class VkImageBlit {
Jesse Hall65ab5522015-11-30 00:07:16 -08003449 VkImageSubresourceLayers srcSubresource
Jesse Hall3dd678a2016-01-08 21:52:01 -08003450 VkOffset3D[2] srcOffsets
Jesse Hall65ab5522015-11-30 00:07:16 -08003451 VkImageSubresourceLayers dstSubresource
Jesse Hall3dd678a2016-01-08 21:52:01 -08003452 VkOffset3D[2] dstOffsets
Jesse Halld27f6aa2015-08-15 17:58:48 -07003453}
3454
3455class VkBufferImageCopy {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003456 VkDeviceSize bufferOffset /// Specified in bytes
Jesse Halld27f6aa2015-08-15 17:58:48 -07003457 u32 bufferRowLength /// Specified in texels
3458 u32 bufferImageHeight
Jesse Hall65ab5522015-11-30 00:07:16 -08003459 VkImageSubresourceLayers imageSubresource
Jesse Halld27f6aa2015-08-15 17:58:48 -07003460 VkOffset3D imageOffset /// Specified in pixels for both compressed and uncompressed images
3461 VkExtent3D imageExtent /// Specified in pixels for both compressed and uncompressed images
3462}
3463
3464class VkImageResolve {
Jesse Hall65ab5522015-11-30 00:07:16 -08003465 VkImageSubresourceLayers srcSubresource
Jesse Halld27f6aa2015-08-15 17:58:48 -07003466 VkOffset3D srcOffset
Jesse Hall65ab5522015-11-30 00:07:16 -08003467 VkImageSubresourceLayers dstSubresource
Jesse Hall3fbc8562015-11-29 22:10:52 -08003468 VkOffset3D dstOffset
Jesse Halld27f6aa2015-08-15 17:58:48 -07003469 VkExtent3D extent
3470}
3471
3472class VkShaderModuleCreateInfo {
3473 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO
3474 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003475 VkShaderModuleCreateFlags flags /// Reserved
Jesse Halld27f6aa2015-08-15 17:58:48 -07003476 platform.size_t codeSize /// Specified in bytes
Jesse Halla9bb62b2015-11-21 19:31:56 -08003477 const u32* pCode /// Binary code of size codeSize
Jesse Halld27f6aa2015-08-15 17:58:48 -07003478}
3479
Jesse Halld27f6aa2015-08-15 17:58:48 -07003480class VkDescriptorSetLayoutBinding {
Jesse Hall091ed9e2015-11-30 00:55:29 -08003481 u32 binding
Jesse Halld27f6aa2015-08-15 17:58:48 -07003482 VkDescriptorType descriptorType /// Type of the descriptors in this binding
Jesse Halldba27f72015-11-30 14:25:46 -08003483 u32 descriptorCount /// Number of descriptors in this binding
Jesse Halld27f6aa2015-08-15 17:58:48 -07003484 VkShaderStageFlags stageFlags /// Shader stages this binding is visible to
3485 const VkSampler* pImmutableSamplers /// Immutable samplers (used if descriptor type is SAMPLER or COMBINED_IMAGE_SAMPLER, is either NULL or contains <count> number of elements)
3486}
3487
3488class VkDescriptorSetLayoutCreateInfo {
3489 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO
3490 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003491 VkDescriptorSetLayoutCreateFlags flags
Jesse Hall03b6fe12015-11-24 12:44:21 -08003492 u32 bindingCount /// Number of bindings in the descriptor set layout
Jesse Hall543a7ff2016-01-08 16:38:30 -08003493 const VkDescriptorSetLayoutBinding* pBindings /// Array of descriptor set layout bindings
Jesse Halld27f6aa2015-08-15 17:58:48 -07003494}
3495
Jesse Hall65ab5522015-11-30 00:07:16 -08003496class VkDescriptorPoolSize {
Jesse Halld27f6aa2015-08-15 17:58:48 -07003497 VkDescriptorType type
Jesse Hall03b6fe12015-11-24 12:44:21 -08003498 u32 descriptorCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07003499}
3500
3501class VkDescriptorPoolCreateInfo {
3502 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO
3503 const void* pNext /// Pointer to next structure
Jesse Hallfbf97b02015-11-20 14:17:03 -08003504 VkDescriptorPoolCreateFlags flags
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003505 u32 maxSets
Jesse Hall65ab5522015-11-30 00:07:16 -08003506 u32 poolSizeCount
3507 const VkDescriptorPoolSize* pPoolSizes
Jesse Halld27f6aa2015-08-15 17:58:48 -07003508}
3509
Jesse Hall3fbc8562015-11-29 22:10:52 -08003510class VkDescriptorSetAllocateInfo {
Jesse Hallf4ab2b12015-11-30 16:04:55 -08003511 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO
Jesse Hallfbf97b02015-11-20 14:17:03 -08003512 const void* pNext /// Pointer to next structure
3513 VkDescriptorPool descriptorPool
Jesse Hall03b6fe12015-11-24 12:44:21 -08003514 u32 setCount
Jesse Hallfbf97b02015-11-20 14:17:03 -08003515 const VkDescriptorSetLayout* pSetLayouts
3516}
3517
Jesse Halld27f6aa2015-08-15 17:58:48 -07003518class VkSpecializationMapEntry {
Jesse Hall65ab5522015-11-30 00:07:16 -08003519 u32 constantID /// The SpecConstant ID specified in the BIL
Jesse Halld27f6aa2015-08-15 17:58:48 -07003520 u32 offset /// Offset of the value in the data block
Jesse Hallb00daad2015-11-29 19:46:20 -08003521 platform.size_t size /// Size in bytes of the SpecConstant
Jesse Halld27f6aa2015-08-15 17:58:48 -07003522}
3523
3524class VkSpecializationInfo {
3525 u32 mapEntryCount /// Number of entries in the map
Jesse Hallb00daad2015-11-29 19:46:20 -08003526 const VkSpecializationMapEntry* pMapEntries /// Array of map entries
Jesse Halld27f6aa2015-08-15 17:58:48 -07003527 platform.size_t dataSize /// Size in bytes of pData
3528 const void* pData /// Pointer to SpecConstant data
3529}
3530
3531class VkPipelineShaderStageCreateInfo {
3532 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO
3533 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003534 VkPipelineShaderStageCreateFlags flags
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08003535 VkShaderStageFlagBits stage
3536 VkShaderModule module
3537 const char* pName
Jesse Halld27f6aa2015-08-15 17:58:48 -07003538 const VkSpecializationInfo* pSpecializationInfo
3539}
3540
3541class VkComputePipelineCreateInfo {
3542 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO
3543 const void* pNext /// Pointer to next structure
Jesse Halld27f6aa2015-08-15 17:58:48 -07003544 VkPipelineCreateFlags flags /// Pipeline creation flags
Jesse Halla6429252015-11-29 18:59:42 -08003545 VkPipelineShaderStageCreateInfo stage
Jesse Halld27f6aa2015-08-15 17:58:48 -07003546 VkPipelineLayout layout /// Interface layout of the pipeline
3547 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
3548 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
3549}
3550
3551class VkVertexInputBindingDescription {
Jesse Hallb00daad2015-11-29 19:46:20 -08003552 u32 binding /// Vertex buffer binding id
3553 u32 stride /// Distance between vertices in bytes (0 = no advancement)
Jesse Hall65ab5522015-11-30 00:07:16 -08003554 VkVertexInputRate inputRate /// Rate at which binding is incremented
Jesse Halld27f6aa2015-08-15 17:58:48 -07003555}
3556
3557class VkVertexInputAttributeDescription {
Jesse Hallb00daad2015-11-29 19:46:20 -08003558 u32 location /// location of the shader vertex attrib
3559 u32 binding /// Vertex buffer binding id
3560 VkFormat format /// format of source data
3561 u32 offset /// Offset of first element in bytes from base of vertex
Jesse Halld27f6aa2015-08-15 17:58:48 -07003562}
3563
3564class VkPipelineVertexInputStateCreateInfo {
Jesse Hall03b6fe12015-11-24 12:44:21 -08003565 VkStructureType sType /// Should be VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO
3566 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003567 VkPipelineVertexInputStateCreateFlags flags
Jesse Hall03b6fe12015-11-24 12:44:21 -08003568 u32 vertexBindingDescriptionCount /// number of bindings
Jesse Halld27f6aa2015-08-15 17:58:48 -07003569 const VkVertexInputBindingDescription* pVertexBindingDescriptions
Jesse Hall03b6fe12015-11-24 12:44:21 -08003570 u32 vertexAttributeDescriptionCount /// number of attributes
Jesse Halld27f6aa2015-08-15 17:58:48 -07003571 const VkVertexInputAttributeDescription* pVertexAttributeDescriptions
3572}
3573
3574class VkPipelineInputAssemblyStateCreateInfo {
3575 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO
3576 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003577 VkPipelineInputAssemblyStateCreateFlags flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07003578 VkPrimitiveTopology topology
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003579 VkBool32 primitiveRestartEnable
Jesse Halld27f6aa2015-08-15 17:58:48 -07003580}
3581
3582class VkPipelineTessellationStateCreateInfo {
3583 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO
3584 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003585 VkPipelineTessellationStateCreateFlags flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07003586 u32 patchControlPoints
3587}
3588
3589class VkPipelineViewportStateCreateInfo {
3590 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO
3591 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003592 VkPipelineViewportStateCreateFlags flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07003593 u32 viewportCount
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003594 const VkViewport* pViewports
3595 u32 scissorCount
3596 const VkRect2D* pScissors
Jesse Halld27f6aa2015-08-15 17:58:48 -07003597}
3598
Jesse Hall3fbc8562015-11-29 22:10:52 -08003599class VkPipelineRasterizationStateCreateInfo {
Jesse Hall65ab5522015-11-30 00:07:16 -08003600 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO
Jesse Halld27f6aa2015-08-15 17:58:48 -07003601 const void* pNext /// Pointer to next structure
Jesse Hall3fbc8562015-11-29 22:10:52 -08003602 VkPipelineRasterizationStateCreateFlags flags
Jesse Hallae38f732015-11-19 21:32:50 -08003603 VkBool32 depthClampEnable
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003604 VkBool32 rasterizerDiscardEnable
Jesse Hall65ab5522015-11-30 00:07:16 -08003605 VkPolygonMode polygonMode /// optional (GL45)
Jesse Hallc7467b72015-11-29 21:05:26 -08003606 VkCullModeFlags cullMode
Jesse Halld27f6aa2015-08-15 17:58:48 -07003607 VkFrontFace frontFace
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003608 VkBool32 depthBiasEnable
Jesse Halla9bb62b2015-11-21 19:31:56 -08003609 f32 depthBiasConstantFactor
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003610 f32 depthBiasClamp
Jesse Halla9bb62b2015-11-21 19:31:56 -08003611 f32 depthBiasSlopeFactor
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003612 f32 lineWidth
Jesse Halld27f6aa2015-08-15 17:58:48 -07003613}
3614
3615class VkPipelineMultisampleStateCreateInfo {
3616 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO
3617 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003618 VkPipelineMultisampleStateCreateFlags flags
Jesse Hall091ed9e2015-11-30 00:55:29 -08003619 VkSampleCountFlagBits rasterizationSamples /// Number of samples used for rasterization
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003620 VkBool32 sampleShadingEnable /// optional (GL45)
Jesse Halld27f6aa2015-08-15 17:58:48 -07003621 f32 minSampleShading /// optional (GL45)
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003622 const VkSampleMask* pSampleMask
Jesse Hallacfa5342015-11-19 21:51:33 -08003623 VkBool32 alphaToCoverageEnable
3624 VkBool32 alphaToOneEnable
Jesse Halld27f6aa2015-08-15 17:58:48 -07003625}
3626
3627class VkPipelineColorBlendAttachmentState {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003628 VkBool32 blendEnable
Jesse Hall65ab5522015-11-30 00:07:16 -08003629 VkBlendFactor srcColorBlendFactor
3630 VkBlendFactor dstColorBlendFactor
3631 VkBlendOp colorBlendOp
3632 VkBlendFactor srcAlphaBlendFactor
3633 VkBlendFactor dstAlphaBlendFactor
3634 VkBlendOp alphaBlendOp
3635 VkColorComponentFlags colorWriteMask
Jesse Halld27f6aa2015-08-15 17:58:48 -07003636}
3637
3638class VkPipelineColorBlendStateCreateInfo {
3639 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO
3640 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003641 VkPipelineColorBlendStateCreateFlags flags
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003642 VkBool32 logicOpEnable
Jesse Halld27f6aa2015-08-15 17:58:48 -07003643 VkLogicOp logicOp
3644 u32 attachmentCount /// # of pAttachments
3645 const VkPipelineColorBlendAttachmentState* pAttachments
Jesse Hallb00daad2015-11-29 19:46:20 -08003646 f32[4] blendConstants
Jesse Halld27f6aa2015-08-15 17:58:48 -07003647}
3648
3649class VkStencilOpState {
Jesse Hall65ab5522015-11-30 00:07:16 -08003650 VkStencilOp failOp
3651 VkStencilOp passOp
3652 VkStencilOp depthFailOp
3653 VkCompareOp compareOp
3654 u32 compareMask
3655 u32 writeMask
3656 u32 reference
Jesse Halld27f6aa2015-08-15 17:58:48 -07003657}
3658
3659class VkPipelineDepthStencilStateCreateInfo {
3660 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO
3661 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003662 VkPipelineDepthStencilStateCreateFlags flags
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003663 VkBool32 depthTestEnable
3664 VkBool32 depthWriteEnable
Jesse Halld27f6aa2015-08-15 17:58:48 -07003665 VkCompareOp depthCompareOp
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003666 VkBool32 depthBoundsTestEnable /// optional (depth_bounds_test)
3667 VkBool32 stencilTestEnable
Jesse Halld27f6aa2015-08-15 17:58:48 -07003668 VkStencilOpState front
3669 VkStencilOpState back
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003670 f32 minDepthBounds
3671 f32 maxDepthBounds
3672}
3673
3674class VkPipelineDynamicStateCreateInfo {
3675 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO
3676 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003677 VkPipelineDynamicStateCreateFlags flags
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003678 u32 dynamicStateCount
3679 const VkDynamicState* pDynamicStates
Jesse Halld27f6aa2015-08-15 17:58:48 -07003680}
3681
3682class VkGraphicsPipelineCreateInfo {
Jesse Halla6429252015-11-29 18:59:42 -08003683 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO
3684 const void* pNext /// Pointer to next structure
3685 VkPipelineCreateFlags flags /// Pipeline creation flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07003686 u32 stageCount
Jesse Halla6429252015-11-29 18:59:42 -08003687 const VkPipelineShaderStageCreateInfo* pStages /// One entry for each active shader stage
Jesse Halld27f6aa2015-08-15 17:58:48 -07003688 const VkPipelineVertexInputStateCreateInfo* pVertexInputState
3689 const VkPipelineInputAssemblyStateCreateInfo* pInputAssemblyState
3690 const VkPipelineTessellationStateCreateInfo* pTessellationState
3691 const VkPipelineViewportStateCreateInfo* pViewportState
Jesse Hall3fbc8562015-11-29 22:10:52 -08003692 const VkPipelineRasterizationStateCreateInfo* pRasterizationState
Jesse Halld27f6aa2015-08-15 17:58:48 -07003693 const VkPipelineMultisampleStateCreateInfo* pMultisampleState
3694 const VkPipelineDepthStencilStateCreateInfo* pDepthStencilState
3695 const VkPipelineColorBlendStateCreateInfo* pColorBlendState
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003696 const VkPipelineDynamicStateCreateInfo* pDynamicState
Jesse Halla6429252015-11-29 18:59:42 -08003697 VkPipelineLayout layout /// Interface layout of the pipeline
Jesse Halld27f6aa2015-08-15 17:58:48 -07003698 VkRenderPass renderPass
3699 u32 subpass
Jesse Halla6429252015-11-29 18:59:42 -08003700 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
3701 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 -07003702}
3703
3704class VkPipelineCacheCreateInfo {
Jesse Hallb00daad2015-11-29 19:46:20 -08003705 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO
3706 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003707 VkPipelineCacheCreateFlags flags
Jesse Hallb00daad2015-11-29 19:46:20 -08003708 platform.size_t initialDataSize /// Size of initial data to populate cache, in bytes
3709 const void* pInitialData /// Initial data to populate cache
Jesse Halld27f6aa2015-08-15 17:58:48 -07003710}
3711
3712class VkPushConstantRange {
3713 VkShaderStageFlags stageFlags /// Which stages use the range
Jesse Hall03b6fe12015-11-24 12:44:21 -08003714 u32 offset /// Start of the range, in bytes
3715 u32 size /// Length of the range, in bytes
Jesse Halld27f6aa2015-08-15 17:58:48 -07003716}
3717
3718class VkPipelineLayoutCreateInfo {
3719 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO
3720 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003721 VkPipelineLayoutCreateFlags flags
Jesse Hall3dd678a2016-01-08 21:52:01 -08003722 u32 descriptorSetCount /// Number of descriptor sets interfaced by the pipeline
Jesse Halld27f6aa2015-08-15 17:58:48 -07003723 const VkDescriptorSetLayout* pSetLayouts /// Array of <setCount> number of descriptor set layout objects defining the layout of the
3724 u32 pushConstantRangeCount /// Number of push-constant ranges used by the pipeline
3725 const VkPushConstantRange* pPushConstantRanges /// Array of pushConstantRangeCount number of ranges used by various shader stages
3726}
3727
3728class VkSamplerCreateInfo {
3729 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO
3730 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003731 VkSamplerCreateFlags flags
Jesse Hall23ff73f2015-11-29 14:36:39 -08003732 VkFilter magFilter /// Filter mode for magnification
3733 VkFilter minFilter /// Filter mode for minifiation
3734 VkSamplerMipmapMode mipmapMode /// Mipmap selection mode
3735 VkSamplerAddressMode addressModeU
3736 VkSamplerAddressMode addressModeV
3737 VkSamplerAddressMode addressModeW
Jesse Halld27f6aa2015-08-15 17:58:48 -07003738 f32 mipLodBias
Jesse Hallf9fa9a52016-01-08 16:08:51 -08003739 VkBool32 anisotropyEnable
Jesse Halld27f6aa2015-08-15 17:58:48 -07003740 f32 maxAnisotropy
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003741 VkBool32 compareEnable
Jesse Halld27f6aa2015-08-15 17:58:48 -07003742 VkCompareOp compareOp
3743 f32 minLod
3744 f32 maxLod
3745 VkBorderColor borderColor
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003746 VkBool32 unnormalizedCoordinates
Jesse Halld27f6aa2015-08-15 17:58:48 -07003747}
3748
Jesse Hall3fbc8562015-11-29 22:10:52 -08003749class VkCommandPoolCreateInfo {
3750 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO
Jesse Halld27f6aa2015-08-15 17:58:48 -07003751 const void* pNext /// Pointer to next structure
Jesse Hall3fbc8562015-11-29 22:10:52 -08003752 VkCommandPoolCreateFlags flags /// Command pool creation flags
Jesse Halla6429252015-11-29 18:59:42 -08003753 u32 queueFamilyIndex
Jesse Halld27f6aa2015-08-15 17:58:48 -07003754}
3755
Jesse Hall3fbc8562015-11-29 22:10:52 -08003756class VkCommandBufferAllocateInfo {
Jesse Hallf4ab2b12015-11-30 16:04:55 -08003757 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO
Jesse Halld27f6aa2015-08-15 17:58:48 -07003758 const void* pNext /// Pointer to next structure
Jesse Hall3fbc8562015-11-29 22:10:52 -08003759 VkCommandPool commandPool
3760 VkCommandBufferLevel level
Jesse Hall3dd678a2016-01-08 21:52:01 -08003761 u32 commandBufferCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07003762}
3763
Jesse Hall3dd678a2016-01-08 21:52:01 -08003764class VkCommandBufferInheritanceInfo {
3765 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO
Jesse Halld27f6aa2015-08-15 17:58:48 -07003766 const void* pNext /// Pointer to next structure
Jesse Halld27f6aa2015-08-15 17:58:48 -07003767 VkRenderPass renderPass /// Render pass for secondary command buffers
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003768 u32 subpass
Jesse Halld27f6aa2015-08-15 17:58:48 -07003769 VkFramebuffer framebuffer /// Framebuffer for secondary command buffers
Jesse Hallf4ab2b12015-11-30 16:04:55 -08003770 VkBool32 occlusionQueryEnable
3771 VkQueryControlFlags queryFlags
3772 VkQueryPipelineStatisticFlags pipelineStatistics
Jesse Halld27f6aa2015-08-15 17:58:48 -07003773}
3774
Jesse Hall3dd678a2016-01-08 21:52:01 -08003775class VkCommandBufferBeginInfo {
3776 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO
3777 const void* pNext /// Pointer to next structure
3778 VkCommandBufferUsageFlags flags /// Command buffer usage flags
3779 const VkCommandBufferInheritanceInfo* pInheritanceInfo
3780}
3781
Jesse Halld27f6aa2015-08-15 17:58:48 -07003782class VkRenderPassBeginInfo {
3783 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO
3784 const void* pNext /// Pointer to next structure
3785 VkRenderPass renderPass
3786 VkFramebuffer framebuffer
3787 VkRect2D renderArea
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003788 u32 clearValueCount
3789 const VkClearValue* pClearValues
Jesse Halld27f6aa2015-08-15 17:58:48 -07003790}
3791
3792@union
3793/// Union allowing specification of floating point, integer, or unsigned integer color data. Actual value selected is based on image/attachment being cleared.
3794class VkClearColorValue {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003795 f32[4] float32
3796 s32[4] int32
3797 u32[4] uint32
Jesse Halld27f6aa2015-08-15 17:58:48 -07003798}
3799
3800class VkClearDepthStencilValue {
3801 f32 depth
3802 u32 stencil
3803}
3804
3805@union
3806/// Union allowing specification of color, depth, and stencil color values. Actual value selected is based on attachment being cleared.
3807class VkClearValue {
3808 VkClearColorValue color
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003809 VkClearDepthStencilValue depthStencil
Jesse Halld27f6aa2015-08-15 17:58:48 -07003810}
3811
Jesse Hallae38f732015-11-19 21:32:50 -08003812class VkClearAttachment {
3813 VkImageAspectFlags aspectMask
3814 u32 colorAttachment
3815 VkClearValue clearValue
3816}
3817
Jesse Halld27f6aa2015-08-15 17:58:48 -07003818class VkAttachmentDescription {
Jesse Halla6429252015-11-29 18:59:42 -08003819 VkAttachmentDescriptionFlags flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07003820 VkFormat format
Jesse Hall091ed9e2015-11-30 00:55:29 -08003821 VkSampleCountFlagBits samples
Jesse Halld27f6aa2015-08-15 17:58:48 -07003822 VkAttachmentLoadOp loadOp /// Load op for color or depth data
3823 VkAttachmentStoreOp storeOp /// Store op for color or depth data
3824 VkAttachmentLoadOp stencilLoadOp /// Load op for stencil data
3825 VkAttachmentStoreOp stencilStoreOp /// Store op for stencil data
3826 VkImageLayout initialLayout
3827 VkImageLayout finalLayout
3828}
3829
3830class VkAttachmentReference {
3831 u32 attachment
3832 VkImageLayout layout
3833}
3834
3835class VkSubpassDescription {
Jesse Halld27f6aa2015-08-15 17:58:48 -07003836 VkSubpassDescriptionFlags flags
Jesse Halla6429252015-11-29 18:59:42 -08003837 VkPipelineBindPoint pipelineBindPoint /// Must be VK_PIPELINE_BIND_POINT_GRAPHICS for now
Jesse Hall03b6fe12015-11-24 12:44:21 -08003838 u32 inputAttachmentCount
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003839 const VkAttachmentReference* pInputAttachments
Jesse Hall03b6fe12015-11-24 12:44:21 -08003840 u32 colorAttachmentCount
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003841 const VkAttachmentReference* pColorAttachments
3842 const VkAttachmentReference* pResolveAttachments
Jesse Hallc7467b72015-11-29 21:05:26 -08003843 const VkAttachmentReference* pDepthStencilAttachment
Jesse Hall03b6fe12015-11-24 12:44:21 -08003844 u32 preserveAttachmentCount
Jesse Hall3dd678a2016-01-08 21:52:01 -08003845 const u32* pPreserveAttachments
Jesse Halld27f6aa2015-08-15 17:58:48 -07003846}
3847
3848class VkSubpassDependency {
Jesse Halld27f6aa2015-08-15 17:58:48 -07003849 u32 srcSubpass
Jesse Hall3fbc8562015-11-29 22:10:52 -08003850 u32 dstSubpass
Jesse Halld27f6aa2015-08-15 17:58:48 -07003851 VkPipelineStageFlags srcStageMask
Jesse Hall3fbc8562015-11-29 22:10:52 -08003852 VkPipelineStageFlags dstStageMask
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08003853 VkAccessFlags srcAccessMask
3854 VkAccessFlags dstAccessMask
Jesse Halldc6d36c2015-11-29 19:12:15 -08003855 VkDependencyFlags dependencyFlags
Jesse Halld27f6aa2015-08-15 17:58:48 -07003856}
3857
3858class VkRenderPassCreateInfo {
3859 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO
3860 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003861 VkRenderPassCreateFlags flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07003862 u32 attachmentCount
3863 const VkAttachmentDescription* pAttachments
3864 u32 subpassCount
3865 const VkSubpassDescription* pSubpasses
3866 u32 dependencyCount
3867 const VkSubpassDependency* pDependencies
3868}
3869
3870class VkEventCreateInfo {
3871 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_EVENT_CREATE_INFO
3872 const void* pNext /// Pointer to next structure
3873 VkEventCreateFlags flags /// Event creation flags
3874}
3875
3876class VkFenceCreateInfo {
3877 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_FENCE_CREATE_INFO
3878 const void* pNext /// Pointer to next structure
3879 VkFenceCreateFlags flags /// Fence creation flags
3880}
3881
3882class VkPhysicalDeviceFeatures {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003883 VkBool32 robustBufferAccess /// out of bounds buffer accesses are well defined
3884 VkBool32 fullDrawIndexUint32 /// full 32-bit range of indices for indexed draw calls
3885 VkBool32 imageCubeArray /// image views which are arrays of cube maps
3886 VkBool32 independentBlend /// blending operations are controlled per-attachment
3887 VkBool32 geometryShader /// geometry stage
3888 VkBool32 tessellationShader /// tessellation control and evaluation stage
3889 VkBool32 sampleRateShading /// per-sample shading and interpolation
Jesse Hall3fbc8562015-11-29 22:10:52 -08003890 VkBool32 dualSrcBlend /// blend operations which take two sources
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003891 VkBool32 logicOp /// logic operations
3892 VkBool32 multiDrawIndirect /// multi draw indirect
Jesse Hall543a7ff2016-01-08 16:38:30 -08003893 VkBool32 drawIndirectFirstInstance
Jesse Hallae38f732015-11-19 21:32:50 -08003894 VkBool32 depthClamp /// depth clamping
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003895 VkBool32 depthBiasClamp /// depth bias clamping
3896 VkBool32 fillModeNonSolid /// point and wireframe fill modes
3897 VkBool32 depthBounds /// depth bounds test
3898 VkBool32 wideLines /// lines with width greater than 1
3899 VkBool32 largePoints /// points with size greater than 1
Jesse Hallfbf97b02015-11-20 14:17:03 -08003900 VkBool32 alphaToOne /// The fragment alpha channel can be forced to maximum representable alpha value
3901 VkBool32 multiViewport
3902 VkBool32 samplerAnisotropy
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003903 VkBool32 textureCompressionETC2 /// ETC texture compression formats
3904 VkBool32 textureCompressionASTC_LDR /// ASTC LDR texture compression formats
3905 VkBool32 textureCompressionBC /// BC1-7 texture compressed formats
Jesse Hall65ab5522015-11-30 00:07:16 -08003906 VkBool32 occlusionQueryPrecise
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003907 VkBool32 pipelineStatisticsQuery /// pipeline statistics query
Jesse Halldc6d36c2015-11-29 19:12:15 -08003908 VkBool32 vertexPipelineStoresAndAtomics
3909 VkBool32 fragmentStoresAndAtomics
3910 VkBool32 shaderTessellationAndGeometryPointSize
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003911 VkBool32 shaderImageGatherExtended /// texture gather with run-time values and independent offsets
3912 VkBool32 shaderStorageImageExtendedFormats /// the extended set of formats can be used for storage images
3913 VkBool32 shaderStorageImageMultisample /// multisample images can be used for storage images
Jesse Halld1af8122015-11-29 23:50:38 -08003914 VkBool32 shaderStorageImageReadWithoutFormat
3915 VkBool32 shaderStorageImageWriteWithoutFormat
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003916 VkBool32 shaderUniformBufferArrayDynamicIndexing /// arrays of uniform buffers can be accessed with dynamically uniform indices
3917 VkBool32 shaderSampledImageArrayDynamicIndexing /// arrays of sampled images can be accessed with dynamically uniform indices
3918 VkBool32 shaderStorageBufferArrayDynamicIndexing /// arrays of storage buffers can be accessed with dynamically uniform indices
3919 VkBool32 shaderStorageImageArrayDynamicIndexing /// arrays of storage images can be accessed with dynamically uniform indices
3920 VkBool32 shaderClipDistance /// clip distance in shaders
3921 VkBool32 shaderCullDistance /// cull distance in shaders
3922 VkBool32 shaderFloat64 /// 64-bit floats (doubles) in shaders
3923 VkBool32 shaderInt64 /// 64-bit integers in shaders
3924 VkBool32 shaderInt16 /// 16-bit integers in shaders
3925 VkBool32 shaderResourceResidency /// shader can use texture operations that return resource residency information (requires sparseNonResident support)
Jesse Hall65ab5522015-11-30 00:07:16 -08003926 VkBool32 shaderResourceMinLod /// shader can use texture operations that specify minimum resource LOD
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003927 VkBool32 sparseBinding /// Sparse resources support: Resource memory can be managed at opaque page level rather than object level
3928 VkBool32 sparseResidencyBuffer /// Sparse resources support: GPU can access partially resident buffers
3929 VkBool32 sparseResidencyImage2D /// Sparse resources support: GPU can access partially resident 2D (non-MSAA non-DepthStencil) images
3930 VkBool32 sparseResidencyImage3D /// Sparse resources support: GPU can access partially resident 3D images
3931 VkBool32 sparseResidency2Samples /// Sparse resources support: GPU can access partially resident MSAA 2D images with 2 samples
3932 VkBool32 sparseResidency4Samples /// Sparse resources support: GPU can access partially resident MSAA 2D images with 4 samples
3933 VkBool32 sparseResidency8Samples /// Sparse resources support: GPU can access partially resident MSAA 2D images with 8 samples
3934 VkBool32 sparseResidency16Samples /// Sparse resources support: GPU can access partially resident MSAA 2D images with 16 samples
3935 VkBool32 sparseResidencyAliased /// Sparse resources support: GPU can correctly access data aliased into multiple locations (opt-in)
Jesse Halld1af8122015-11-29 23:50:38 -08003936 VkBool32 variableMultisampleRate
Jesse Hallf9fa9a52016-01-08 16:08:51 -08003937 VkBool32 inheritedQueries
Jesse Halld27f6aa2015-08-15 17:58:48 -07003938}
3939
3940class VkPhysicalDeviceLimits {
3941 /// resource maximum sizes
3942 u32 maxImageDimension1D /// max 1D image dimension
3943 u32 maxImageDimension2D /// max 2D image dimension
3944 u32 maxImageDimension3D /// max 3D image dimension
3945 u32 maxImageDimensionCube /// max cubemap image dimension
3946 u32 maxImageArrayLayers /// max layers for image arrays
Jesse Hallb00daad2015-11-29 19:46:20 -08003947 u32 maxTexelBufferElements
Jesse Hallfbf97b02015-11-20 14:17:03 -08003948 u32 maxUniformBufferRange /// max uniform buffer size (bytes)
3949 u32 maxStorageBufferRange /// max storage buffer size (bytes)
Jesse Halld27f6aa2015-08-15 17:58:48 -07003950 u32 maxPushConstantsSize /// max size of the push constants pool (bytes)
3951 /// memory limits
3952 u32 maxMemoryAllocationCount /// max number of device memory allocations supported
Jesse Hall091ed9e2015-11-30 00:55:29 -08003953 u32 maxSamplerAllocationCount
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003954 VkDeviceSize bufferImageGranularity /// Granularity (in bytes) at which buffers and images can be bound to adjacent memory for simultaneous usage
3955 VkDeviceSize sparseAddressSpaceSize /// Total address space available for sparse allocations (bytes)
Jesse Halld27f6aa2015-08-15 17:58:48 -07003956 /// descriptor set limits
3957 u32 maxBoundDescriptorSets /// max number of descriptors sets that can be bound to a pipeline
Jesse Halld27f6aa2015-08-15 17:58:48 -07003958 u32 maxPerStageDescriptorSamplers /// max num of samplers allowed per-stage in a descriptor set
3959 u32 maxPerStageDescriptorUniformBuffers /// max num of uniform buffers allowed per-stage in a descriptor set
3960 u32 maxPerStageDescriptorStorageBuffers /// max num of storage buffers allowed per-stage in a descriptor set
3961 u32 maxPerStageDescriptorSampledImages /// max num of sampled images allowed per-stage in a descriptor set
3962 u32 maxPerStageDescriptorStorageImages /// max num of storage images allowed per-stage in a descriptor set
Jesse Halle1b12782015-11-30 11:27:32 -08003963 u32 maxPerStageDescriptorInputAttachments
Jesse Halldba27f72015-11-30 14:25:46 -08003964 u32 maxPerStageResources
Jesse Halld27f6aa2015-08-15 17:58:48 -07003965 u32 maxDescriptorSetSamplers /// max num of samplers allowed in all stages in a descriptor set
3966 u32 maxDescriptorSetUniformBuffers /// max num of uniform buffers allowed in all stages in a descriptor set
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003967 u32 maxDescriptorSetUniformBuffersDynamic /// max num of dynamic uniform buffers allowed in all stages in a descriptor set
Jesse Halld27f6aa2015-08-15 17:58:48 -07003968 u32 maxDescriptorSetStorageBuffers /// max num of storage buffers allowed in all stages in a descriptor set
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003969 u32 maxDescriptorSetStorageBuffersDynamic /// max num of dynamic storage buffers allowed in all stages in a descriptor set
Jesse Halld27f6aa2015-08-15 17:58:48 -07003970 u32 maxDescriptorSetSampledImages /// max num of sampled images allowed in all stages in a descriptor set
3971 u32 maxDescriptorSetStorageImages /// max num of storage images allowed in all stages in a descriptor set
Jesse Halle1b12782015-11-30 11:27:32 -08003972 u32 maxDescriptorSetInputAttachments
Jesse Halld27f6aa2015-08-15 17:58:48 -07003973 /// vertex stage limits
3974 u32 maxVertexInputAttributes /// max num of vertex input attribute slots
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003975 u32 maxVertexInputBindings /// max num of vertex input binding slots
Jesse Halld27f6aa2015-08-15 17:58:48 -07003976 u32 maxVertexInputAttributeOffset /// max vertex input attribute offset added to vertex buffer offset
3977 u32 maxVertexInputBindingStride /// max vertex input binding stride
3978 u32 maxVertexOutputComponents /// max num of output components written by vertex shader
3979 /// tessellation control stage limits
Jesse Hall3fbc8562015-11-29 22:10:52 -08003980 u32 maxTessellationGenerationLevel /// max level supported by tess primitive generator
Jesse Hallae38f732015-11-19 21:32:50 -08003981 u32 maxTessellationPatchSize /// max patch size (vertices)
3982 u32 maxTessellationControlPerVertexInputComponents /// max num of input components per-vertex in TCS
3983 u32 maxTessellationControlPerVertexOutputComponents /// max num of output components per-vertex in TCS
3984 u32 maxTessellationControlPerPatchOutputComponents /// max num of output components per-patch in TCS
3985 u32 maxTessellationControlTotalOutputComponents /// max total num of per-vertex and per-patch output components in TCS
3986 u32 maxTessellationEvaluationInputComponents /// max num of input components per vertex in TES
3987 u32 maxTessellationEvaluationOutputComponents /// max num of output components per vertex in TES
Jesse Halld27f6aa2015-08-15 17:58:48 -07003988 /// geometry stage limits
3989 u32 maxGeometryShaderInvocations /// max invocation count supported in geometry shader
3990 u32 maxGeometryInputComponents /// max num of input components read in geometry stage
3991 u32 maxGeometryOutputComponents /// max num of output components written in geometry stage
3992 u32 maxGeometryOutputVertices /// max num of vertices that can be emitted in geometry stage
3993 u32 maxGeometryTotalOutputComponents /// max total num of components (all vertices) written in geometry stage
3994 /// fragment stage limits
3995 u32 maxFragmentInputComponents /// max num of input compontents read in fragment stage
Jesse Hallfbf97b02015-11-20 14:17:03 -08003996 u32 maxFragmentOutputAttachments /// max num of output attachments written in fragment stage
Jesse Hall3fbc8562015-11-29 22:10:52 -08003997 u32 maxFragmentDualSrcAttachments /// max num of output attachments written when using dual source blending
Jesse Halld27f6aa2015-08-15 17:58:48 -07003998 u32 maxFragmentCombinedOutputResources /// max total num of storage buffers, storage images and output buffers
3999 /// compute stage limits
4000 u32 maxComputeSharedMemorySize /// max total storage size of work group local storage (bytes)
4001 u32[3] maxComputeWorkGroupCount /// max num of compute work groups that may be dispatched by a single command (x,y,z)
4002 u32 maxComputeWorkGroupInvocations /// max total compute invocations in a single local work group
4003 u32[3] maxComputeWorkGroupSize /// max local size of a compute work group (x,y,z)
4004
4005 u32 subPixelPrecisionBits /// num bits of subpixel precision in screen x and y
4006 u32 subTexelPrecisionBits /// num bits of subtexel precision
4007 u32 mipmapPrecisionBits /// num bits of mipmap precision
4008
4009 u32 maxDrawIndexedIndexValue /// max index value for indexed draw calls (for 32-bit indices)
Jesse Halldba27f72015-11-30 14:25:46 -08004010 u32 maxDrawIndirectCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07004011
4012 f32 maxSamplerLodBias /// max absolute sampler level of detail bias
4013 f32 maxSamplerAnisotropy /// max degree of sampler anisotropy
4014
4015 u32 maxViewports /// max number of active viewports
Jesse Halld27f6aa2015-08-15 17:58:48 -07004016 u32[2] maxViewportDimensions /// max viewport dimensions (x,y)
4017 f32[2] viewportBoundsRange /// viewport bounds range (min,max)
4018 u32 viewportSubPixelBits /// num bits of subpixel precision for viewport
4019
Jesse Halldc6d36c2015-11-29 19:12:15 -08004020 platform.size_t minMemoryMapAlignment /// min required alignment of pointers returned by MapMemory (bytes)
4021 VkDeviceSize minTexelBufferOffsetAlignment /// min required alignment for texel buffer offsets (bytes)
4022 VkDeviceSize minUniformBufferOffsetAlignment /// min required alignment for uniform buffer sizes and offsets (bytes)
4023 VkDeviceSize minStorageBufferOffsetAlignment /// min required alignment for storage buffer offsets (bytes)
Jesse Halld27f6aa2015-08-15 17:58:48 -07004024
Jesse Hallfbf97b02015-11-20 14:17:03 -08004025 s32 minTexelOffset /// min texel offset for OpTextureSampleOffset
Jesse Halld27f6aa2015-08-15 17:58:48 -07004026 u32 maxTexelOffset /// max texel offset for OpTextureSampleOffset
Jesse Hallfbf97b02015-11-20 14:17:03 -08004027 s32 minTexelGatherOffset /// min texel offset for OpTextureGatherOffset
Jesse Halld27f6aa2015-08-15 17:58:48 -07004028 u32 maxTexelGatherOffset /// max texel offset for OpTextureGatherOffset
4029 f32 minInterpolationOffset /// furthest negative offset for interpolateAtOffset
4030 f32 maxInterpolationOffset /// furthest positive offset for interpolateAtOffset
4031 u32 subPixelInterpolationOffsetBits /// num of subpixel bits for interpolateAtOffset
4032
4033 u32 maxFramebufferWidth /// max width for a framebuffer
4034 u32 maxFramebufferHeight /// max height for a framebuffer
4035 u32 maxFramebufferLayers /// max layer count for a layered framebuffer
Jesse Hall091ed9e2015-11-30 00:55:29 -08004036 VkSampleCountFlags framebufferColorSampleCounts
4037 VkSampleCountFlags framebufferDepthSampleCounts
4038 VkSampleCountFlags framebufferStencilSampleCounts
4039 VkSampleCountFlags framebufferNoAttachmentSampleCounts
Jesse Halld27f6aa2015-08-15 17:58:48 -07004040 u32 maxColorAttachments /// max num of framebuffer color attachments
4041
Jesse Hall091ed9e2015-11-30 00:55:29 -08004042 VkSampleCountFlags sampledImageColorSampleCounts
4043 VkSampleCountFlags sampledImageIntegerSampleCounts
4044 VkSampleCountFlags sampledImageDepthSampleCounts
4045 VkSampleCountFlags sampledImageStencilSampleCounts
4046 VkSampleCountFlags storageImageSampleCounts
Jesse Halld27f6aa2015-08-15 17:58:48 -07004047 u32 maxSampleMaskWords /// max num of sample mask words
Jesse Hallf9fa9a52016-01-08 16:08:51 -08004048 VkBool32 timestampComputeAndGraphics
Jesse Halld27f6aa2015-08-15 17:58:48 -07004049
Jesse Halla9bb62b2015-11-21 19:31:56 -08004050 f32 timestampPeriod
Jesse Halld27f6aa2015-08-15 17:58:48 -07004051
4052 u32 maxClipDistances /// max number of clip distances
4053 u32 maxCullDistances /// max number of cull distances
4054 u32 maxCombinedClipAndCullDistances /// max combined number of user clipping
4055
Jesse Hallfbf97b02015-11-20 14:17:03 -08004056 u32 discreteQueuePriorities
4057
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004058 f32[2] pointSizeRange /// range (min,max) of supported point sizes
4059 f32[2] lineWidthRange /// range (min,max) of supported line widths
Jesse Halld27f6aa2015-08-15 17:58:48 -07004060 f32 pointSizeGranularity /// granularity of supported point sizes
4061 f32 lineWidthGranularity /// granularity of supported line widths
Jesse Hall03b6fe12015-11-24 12:44:21 -08004062 VkBool32 strictLines
Jesse Hall091ed9e2015-11-30 00:55:29 -08004063 VkBool32 standardSampleLocations
Jesse Halla9bb62b2015-11-21 19:31:56 -08004064
Jesse Hall65ab5522015-11-30 00:07:16 -08004065 VkDeviceSize optimalBufferCopyOffsetAlignment
4066 VkDeviceSize optimalBufferCopyRowPitchAlignment
Jesse Halldba27f72015-11-30 14:25:46 -08004067 VkDeviceSize nonCoherentAtomSize
Jesse Halld27f6aa2015-08-15 17:58:48 -07004068}
4069
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004070class VkPhysicalDeviceSparseProperties {
4071 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 -08004072 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 -07004073 VkBool32 residencyStandard3DBlockShape /// Sparse resources support: GPU will access all 3D sparse resources using the standard block shapes (based on pixel format)
4074 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 -07004075 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
4076}
4077
Jesse Halld27f6aa2015-08-15 17:58:48 -07004078class VkSemaphoreCreateInfo {
4079 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO
4080 const void* pNext /// Pointer to next structure
4081 VkSemaphoreCreateFlags flags /// Semaphore creation flags
4082}
4083
4084class VkQueryPoolCreateInfo {
4085 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO
4086 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08004087 VkQueryPoolCreateFlags flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07004088 VkQueryType queryType
Jesse Hall3dd678a2016-01-08 21:52:01 -08004089 u32 queryCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07004090 VkQueryPipelineStatisticFlags pipelineStatistics /// Optional
4091}
4092
4093class VkFramebufferCreateInfo {
4094 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO
4095 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08004096 VkFramebufferCreateFlags flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07004097 VkRenderPass renderPass
4098 u32 attachmentCount
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004099 const VkImageView* pAttachments
Jesse Halld27f6aa2015-08-15 17:58:48 -07004100 u32 width
4101 u32 height
4102 u32 layers
4103}
4104
Jesse Hall3fbc8562015-11-29 22:10:52 -08004105class VkDrawIndirectCommand {
Jesse Halld27f6aa2015-08-15 17:58:48 -07004106 u32 vertexCount
4107 u32 instanceCount
4108 u32 firstVertex
4109 u32 firstInstance
4110}
4111
Jesse Hall3fbc8562015-11-29 22:10:52 -08004112class VkDrawIndexedIndirectCommand {
Jesse Halld27f6aa2015-08-15 17:58:48 -07004113 u32 indexCount
4114 u32 instanceCount
4115 u32 firstIndex
4116 s32 vertexOffset
4117 u32 firstInstance
4118}
4119
Jesse Hall3fbc8562015-11-29 22:10:52 -08004120class VkDispatchIndirectCommand {
Jesse Halld27f6aa2015-08-15 17:58:48 -07004121 u32 x
4122 u32 y
4123 u32 z
4124}
4125
Ian Elliottcd8ad332017-10-13 09:21:12 -06004126//@vulkan1_1 structures
Daniel Kochf25f5bb2017-10-05 00:26:58 -04004127
4128class VkPhysicalDeviceSubgroupProperties {
4129 VkStructureType sType
4130 void* pNext
4131 u32 subgroupSize
4132 VkShaderStageFlags supportedStages
4133 VkSubgroupFeatureFlags supportedOperations
4134 VkBool32 quadOperationsInAllStages
4135}
4136
4137class VkBindBufferMemoryInfo {
4138 VkStructureType sType
4139 const void* pNext
4140 VkBuffer buffer
4141 VkDeviceMemory memory
4142 VkDeviceSize memoryOffset
4143}
4144
4145class VkBindImageMemoryInfo {
4146 VkStructureType sType
4147 const void* pNext
4148 VkImage image
4149 VkDeviceMemory memory
4150 VkDeviceSize memoryOffset
4151}
4152
4153class VkPhysicalDevice16BitStorageFeatures {
4154 VkStructureType sType
4155 void* pNext
4156 VkBool32 storageBuffer16BitAccess
4157 VkBool32 uniformAndStorageBuffer16BitAccess
4158 VkBool32 storagePushConstant16
4159 VkBool32 storageInputOutput16
4160}
4161
4162class VkMemoryDedicatedRequirements {
4163 VkStructureType sType
4164 void* pNext
4165 VkBool32 prefersDedicatedAllocation
4166 VkBool32 requiresDedicatedAllocation
4167}
4168
4169class VkMemoryDedicatedAllocateInfo {
4170 VkStructureType sType
4171 const void* pNext
4172 VkImage image
4173 VkBuffer buffer
4174}
4175
4176class VkMemoryAllocateFlagsInfo {
4177 VkStructureType sType
4178 const void* pNext
4179 VkMemoryAllocateFlags flags
4180 u32 deviceMask
4181}
4182
4183class VkDeviceGroupRenderPassBeginInfo {
4184 VkStructureType sType
4185 const void* pNext
4186 u32 deviceMask
4187 u32 deviceRenderAreaCount
4188 const VkRect2D* pDeviceRenderAreas
4189}
4190
4191class VkDeviceGroupCommandBufferBeginInfo {
4192 VkStructureType sType
4193 const void* pNext
4194 u32 deviceMask
4195}
4196
4197class VkDeviceGroupSubmitInfo {
4198 VkStructureType sType
4199 const void* pNext
4200 u32 waitSemaphoreCount
4201 const u32* pWaitSemaphoreDeviceIndices
4202 u32 commandBufferCount
4203 const u32* pCommandBufferDeviceMasks
4204 u32 signalSemaphoreCount
4205 const u32* pSignalSemaphoreDeviceIndices
4206}
4207
4208class VkDeviceGroupBindSparseInfo {
4209 VkStructureType sType
4210 const void* pNext
4211 u32 resourceDeviceIndex
4212 u32 memoryDeviceIndex
4213}
4214
4215class VkBindBufferMemoryDeviceGroupInfo {
4216 VkStructureType sType
4217 const void* pNext
4218 u32 deviceIndexCount
4219 const u32* pDeviceIndices
4220}
4221
4222class VkBindImageMemoryDeviceGroupInfo {
4223 VkStructureType sType
4224 const void* pNext
4225 u32 deviceIndexCount
4226 const u32* pDeviceIndices
Jesse Hall35b4de12018-01-17 22:06:20 -08004227 u32 splitInstanceBindRegionCount
4228 const VkRect2D* pSplitInstanceBindRegions
Daniel Kochf25f5bb2017-10-05 00:26:58 -04004229}
4230
4231class VkPhysicalDeviceGroupProperties {
4232 VkStructureType sType
4233 void* pNext
4234 u32 physicalDeviceCount
4235 VkPhysicalDevice[VK_MAX_DEVICE_GROUP_SIZE] physicalDevices
4236 VkBool32 subsetAllocation
4237}
4238
4239class VkDeviceGroupDeviceCreateInfo {
4240 VkStructureType sType
4241 const void* pNext
4242 u32 physicalDeviceCount
4243 const VkPhysicalDevice* pPhysicalDevices
4244}
4245
4246class VkBufferMemoryRequirementsInfo2 {
4247 VkStructureType sType
4248 const void* pNext
4249 VkBuffer buffer
4250}
4251
4252class VkImageMemoryRequirementsInfo2 {
4253 VkStructureType sType
4254 const void* pNext
4255 VkImage image
4256}
4257
4258class VkImageSparseMemoryRequirementsInfo2 {
4259 VkStructureType sType
4260 const void* pNext
4261 VkImage image
4262}
4263
4264class VkMemoryRequirements2 {
4265 VkStructureType sType
4266 void* pNext
4267 VkMemoryRequirements memoryRequirements
4268}
4269
4270class VkSparseImageMemoryRequirements2 {
4271 VkStructureType sType
4272 void* pNext
4273 VkSparseImageMemoryRequirements memoryRequirements
4274}
4275
4276class VkPhysicalDeviceFeatures2 {
4277 VkStructureType sType
4278 void* pNext
4279 VkPhysicalDeviceFeatures features
4280}
4281
4282class VkPhysicalDeviceProperties2 {
4283 VkStructureType sType
4284 void* pNext
4285 VkPhysicalDeviceProperties properties
4286}
4287
4288class VkFormatProperties2 {
4289 VkStructureType sType
4290 void* pNext
4291 VkFormatProperties formatProperties
4292}
4293
4294class VkImageFormatProperties2 {
4295 VkStructureType sType
4296 void* pNext
4297 VkImageFormatProperties imageFormatProperties
4298}
4299
4300class VkPhysicalDeviceImageFormatInfo2 {
4301 VkStructureType sType
4302 const void* pNext
4303 VkFormat format
4304 VkImageType type
4305 VkImageTiling tiling
4306 VkImageUsageFlags usage
4307 VkImageCreateFlags flags
4308}
4309
4310class VkQueueFamilyProperties2 {
4311 VkStructureType sType
4312 void* pNext
4313 VkQueueFamilyProperties queueFamilyProperties
4314}
4315
4316class VkPhysicalDeviceMemoryProperties2 {
4317 VkStructureType sType
4318 void* pNext
4319 VkPhysicalDeviceMemoryProperties memoryProperties
4320}
4321
4322class VkSparseImageFormatProperties2 {
4323 VkStructureType sType
4324 void* pNext
4325 VkSparseImageFormatProperties properties
4326}
4327
4328class VkPhysicalDeviceSparseImageFormatInfo2 {
4329 VkStructureType sType
4330 const void* pNext
4331 VkFormat format
4332 VkImageType type
4333 VkSampleCountFlagBits samples
4334 VkImageUsageFlags usage
4335 VkImageTiling tiling
4336}
4337
4338class VkPhysicalDevicePointClippingProperties {
4339 VkStructureType sType
4340 void* pNext
4341 VkPointClippingBehavior pointClippingBehavior
4342}
4343
4344class VkInputAttachmentAspectReference {
4345 u32 subpass
4346 u32 inputAttachmentIndex
4347 VkImageAspectFlags aspectMask
4348}
4349
4350class VkRenderPassInputAttachmentAspectCreateInfo {
4351 VkStructureType sType
4352 const void* pNext
4353 u32 aspectReferenceCount
4354 const VkInputAttachmentAspectReference* pAspectReferences
4355}
4356
4357class VkImageViewUsageCreateInfo {
4358 VkStructureType sType
4359 const void* pNext
4360 VkImageUsageFlags usage
4361}
4362
4363class VkPipelineTessellationDomainOriginStateCreateInfo {
4364 VkStructureType sType
4365 const void* pNext
4366 VkTessellationDomainOrigin domainOrigin
4367}
4368
4369class VkRenderPassMultiviewCreateInfo {
4370 VkStructureType sType
4371 const void* pNext
4372 u32 subpassCount
4373 const u32* pViewMasks
4374 u32 dependencyCount
4375 const s32* pViewOffsets
4376 u32 correlationMaskCount
4377 const u32* pCorrelationMasks
4378}
4379
4380class VkPhysicalDeviceMultiviewFeatures {
4381 VkStructureType sType
4382 void* pNext
4383 VkBool32 multiview
4384 VkBool32 multiviewGeometryShader
4385 VkBool32 multiviewTessellationShader
4386}
4387
4388class VkPhysicalDeviceMultiviewProperties {
4389 VkStructureType sType
4390 void* pNext
4391 u32 maxMultiviewViewCount
4392 u32 maxMultiviewInstanceIndex
4393}
4394
4395class VkPhysicalDeviceVariablePointerFeatures {
4396 VkStructureType sType
4397 void* pNext
4398 VkBool32 variablePointersStorageBuffer
4399 VkBool32 variablePointers
4400}
4401
4402class VkPhysicalDeviceProtectedMemoryFeatures {
4403 VkStructureType sType
4404 void* pNext
4405 VkBool32 protectedMemory
4406}
4407
4408class VkPhysicalDeviceProtectedMemoryProperties {
4409 VkStructureType sType
4410 void* pNext
4411 VkBool32 protectedNoFault
4412}
4413
4414class VkDeviceQueueInfo2 {
4415 VkStructureType sType
4416 const void* pNext
4417 VkDeviceQueueCreateFlags flags
4418 u32 queueFamilyIndex
4419 u32 queueIndex
4420}
4421
4422class VkProtectedSubmitInfo {
4423 VkStructureType sType
4424 const void* pNext
4425 VkBool32 protectedSubmit
4426}
4427
4428class VkSamplerYcbcrConversionCreateInfo {
4429 VkStructureType sType
4430 const void* pNext
4431 VkFormat format
4432 VkSamplerYcbcrModelConversion ycbcrModel
4433 VkSamplerYcbcrRange ycbcrRange
4434 VkComponentMapping components
4435 VkChromaLocation xChromaOffset
4436 VkChromaLocation yChromaOffset
4437 VkFilter chromaFilter
4438 VkBool32 forceExplicitReconstruction
4439}
4440
4441class VkSamplerYcbcrConversionInfo {
4442 VkStructureType sType
4443 const void* pNext
4444 VkSamplerYcbcrConversion conversion
4445}
4446
4447class VkBindImagePlaneMemoryInfo {
4448 VkStructureType sType
4449 const void* pNext
4450 VkImageAspectFlagBits planeAspect
4451}
4452
4453class VkImagePlaneMemoryRequirementsInfo {
4454 VkStructureType sType
4455 const void* pNext
4456 VkImageAspectFlagBits planeAspect
4457}
4458
4459class VkPhysicalDeviceSamplerYcbcrConversionFeatures {
4460 VkStructureType sType
4461 void* pNext
4462 VkBool32 samplerYcbcrConversion
4463}
4464
4465class VkSamplerYcbcrConversionImageFormatProperties {
4466 VkStructureType sType
4467 void* pNext
4468 u32 combinedImageSamplerDescriptorCount
4469}
4470
4471class VkDescriptorUpdateTemplateEntry {
4472 u32 dstBinding
4473 u32 dstArrayElement
4474 u32 descriptorCount
4475 VkDescriptorType descriptorType
4476 platform.size_t offset
4477 platform.size_t stride
4478}
4479
4480class VkDescriptorUpdateTemplateCreateInfo {
4481 VkStructureType sType
4482 void* pNext
4483 VkDescriptorUpdateTemplateCreateFlags flags
4484 u32 descriptorUpdateEntryCount
4485 const VkDescriptorUpdateTemplateEntry* pDescriptorUpdateEntries
4486 VkDescriptorUpdateTemplateType templateType
4487 VkDescriptorSetLayout descriptorSetLayout
4488 VkPipelineBindPoint pipelineBindPoint
4489 VkPipelineLayout pipelineLayout
4490 u32 set
4491}
4492
4493class VkExternalMemoryProperties {
4494 VkExternalMemoryFeatureFlags externalMemoryFeatures
4495 VkExternalMemoryHandleTypeFlags exportFromImportedHandleTypes
4496 VkExternalMemoryHandleTypeFlags compatibleHandleTypes
4497}
4498
4499class VkPhysicalDeviceExternalImageFormatInfo {
4500 VkStructureType sType
4501 const void* pNext
4502 VkExternalMemoryHandleTypeFlagBits handleType
4503}
4504
4505class VkExternalImageFormatProperties {
4506 VkStructureType sType
4507 void* pNext
4508 VkExternalMemoryProperties externalMemoryProperties
4509}
4510
4511class VkPhysicalDeviceExternalBufferInfo {
4512 VkStructureType sType
4513 const void* pNext
4514 VkBufferCreateFlags flags
4515 VkBufferUsageFlags usage
4516 VkExternalMemoryHandleTypeFlagBits handleType
4517}
4518
4519class VkExternalBufferProperties {
4520 VkStructureType sType
4521 void* pNext
4522 VkExternalMemoryProperties externalMemoryProperties
4523}
4524
4525class VkPhysicalDeviceIDProperties {
4526 VkStructureType sType
4527 void* pNext
4528 u8[VK_UUID_SIZE] deviceUUID
4529 u8[VK_UUID_SIZE] driverUUID
4530 u8[VK_LUID_SIZE] deviceLUID
4531 u32 deviceNodeMask
4532 VkBool32 deviceLUIDValid
4533}
4534
4535class VkExternalMemoryImageCreateInfo {
4536 VkStructureType sType
4537 const void* pNext
4538 VkExternalMemoryHandleTypeFlags handleTypes
4539}
4540
4541class VkExternalMemoryBufferCreateInfo {
4542 VkStructureType sType
4543 const void* pNext
4544 VkExternalMemoryHandleTypeFlags handleTypes
4545}
4546
4547class VkExportMemoryAllocateInfo {
4548 VkStructureType sType
4549 const void* pNext
4550 VkExternalMemoryHandleTypeFlags handleTypes
4551}
4552
4553class VkPhysicalDeviceExternalFenceInfo {
4554 VkStructureType sType
4555 const void* pNext
4556 VkExternalFenceHandleTypeFlagBits handleType
4557}
4558
4559class VkExternalFenceProperties {
4560 VkStructureType sType
4561 void* pNext
4562 VkExternalFenceHandleTypeFlags exportFromImportedHandleTypes
4563 VkExternalFenceHandleTypeFlags compatibleHandleTypes
4564 VkExternalFenceFeatureFlags externalFenceFeatures
4565}
4566
4567class VkExportFenceCreateInfo {
4568 VkStructureType sType
4569 const void* pNext
4570 VkExternalFenceHandleTypeFlags handleTypes
4571}
4572
4573class VkExportSemaphoreCreateInfo {
4574 VkStructureType sType
4575 const void* pNext
4576 VkExternalSemaphoreHandleTypeFlags handleTypes
4577}
4578
4579class VkPhysicalDeviceExternalSemaphoreInfo {
4580 VkStructureType sType
4581 const void* pNext
4582 VkExternalSemaphoreHandleTypeFlagBits handleType
4583}
4584
4585class VkExternalSemaphoreProperties {
4586 VkStructureType sType
4587 void* pNext
4588 VkExternalSemaphoreHandleTypeFlags exportFromImportedHandleTypes
4589 VkExternalSemaphoreHandleTypeFlags compatibleHandleTypes
4590 VkExternalSemaphoreFeatureFlags externalSemaphoreFeatures
4591}
4592
4593class VkPhysicalDeviceMaintenance3Properties {
4594 VkStructureType sType
4595 void* pNext
4596 u32 maxPerSetDescriptors
4597 VkDeviceSize maxMemoryAllocationSize
4598}
4599
4600class VkDescriptorSetLayoutSupport {
4601 VkStructureType sType
4602 void* pNext
4603 VkBool32 supported
4604}
4605
4606class VkPhysicalDeviceShaderDrawParameterFeatures {
4607 VkStructureType sType
4608 void* pNext
4609 VkBool32 shaderDrawParameters
4610}
4611
4612
Jesse Hallad250842017-03-10 18:35:38 -08004613@extension("VK_KHR_surface") // 1
Jesse Hallb00daad2015-11-29 19:46:20 -08004614class VkSurfaceCapabilitiesKHR {
Jesse Hall1356b0d2015-11-23 17:24:58 -08004615 u32 minImageCount
4616 u32 maxImageCount
4617 VkExtent2D currentExtent
4618 VkExtent2D minImageExtent
4619 VkExtent2D maxImageExtent
Jesse Hallf4ab2b12015-11-30 16:04:55 -08004620 u32 maxImageArrayLayers
Jesse Hall1356b0d2015-11-23 17:24:58 -08004621 VkSurfaceTransformFlagsKHR supportedTransforms
Jesse Hallf4ab2b12015-11-30 16:04:55 -08004622 VkSurfaceTransformFlagBitsKHR currentTransform
Jesse Halla6429252015-11-29 18:59:42 -08004623 VkCompositeAlphaFlagsKHR supportedCompositeAlpha
Jesse Hall1356b0d2015-11-23 17:24:58 -08004624 VkImageUsageFlags supportedUsageFlags
Michael Lentine88594d72015-11-12 12:49:45 -08004625}
4626
Jesse Hallad250842017-03-10 18:35:38 -08004627@extension("VK_KHR_surface") // 1
Michael Lentine88594d72015-11-12 12:49:45 -08004628class VkSurfaceFormatKHR {
Jesse Hall1356b0d2015-11-23 17:24:58 -08004629 VkFormat format
4630 VkColorSpaceKHR colorSpace
Michael Lentine88594d72015-11-12 12:49:45 -08004631}
4632
Jesse Hallad250842017-03-10 18:35:38 -08004633@extension("VK_KHR_swapchain") // 2
Michael Lentine88594d72015-11-12 12:49:45 -08004634class VkSwapchainCreateInfoKHR {
Jesse Hall1356b0d2015-11-23 17:24:58 -08004635 VkStructureType sType
4636 const void* pNext
Jesse Hallf4ab2b12015-11-30 16:04:55 -08004637 VkSwapchainCreateFlagsKHR flags
Jesse Hall1356b0d2015-11-23 17:24:58 -08004638 VkSurfaceKHR surface
4639 u32 minImageCount
4640 VkFormat imageFormat
4641 VkColorSpaceKHR imageColorSpace
4642 VkExtent2D imageExtent
Jesse Hallf4ab2b12015-11-30 16:04:55 -08004643 u32 imageArrayLayers
4644 VkImageUsageFlags imageUsage
Jesse Hall1356b0d2015-11-23 17:24:58 -08004645 VkSharingMode sharingMode
Jesse Hall03b6fe12015-11-24 12:44:21 -08004646 u32 queueFamilyIndexCount
Jesse Hall1356b0d2015-11-23 17:24:58 -08004647 const u32* pQueueFamilyIndices
Jesse Hallf4ab2b12015-11-30 16:04:55 -08004648 VkSurfaceTransformFlagBitsKHR preTransform
4649 VkCompositeAlphaFlagBitsKHR compositeAlpha
Jesse Hall1356b0d2015-11-23 17:24:58 -08004650 VkPresentModeKHR presentMode
Jesse Hall1356b0d2015-11-23 17:24:58 -08004651 VkBool32 clipped
Jesse Hallf4ab2b12015-11-30 16:04:55 -08004652 VkSwapchainKHR oldSwapchain
Michael Lentine88594d72015-11-12 12:49:45 -08004653}
4654
Jesse Hallad250842017-03-10 18:35:38 -08004655@extension("VK_KHR_swapchain") // 2
Michael Lentine88594d72015-11-12 12:49:45 -08004656class VkPresentInfoKHR {
Jesse Hall1356b0d2015-11-23 17:24:58 -08004657 VkStructureType sType
4658 const void* pNext
Jesse Hallb00daad2015-11-29 19:46:20 -08004659 u32 waitSemaphoreCount
4660 const VkSemaphore* pWaitSemaphores
Jesse Hall1356b0d2015-11-23 17:24:58 -08004661 u32 swapchainCount
Jesse Hall03b6fe12015-11-24 12:44:21 -08004662 const VkSwapchainKHR* pSwapchains
Jesse Hallf4ab2b12015-11-30 16:04:55 -08004663 const u32* pImageIndices
Jesse Halle1b12782015-11-30 11:27:32 -08004664 VkResult* pResults
Michael Lentine88594d72015-11-12 12:49:45 -08004665}
4666
Ian Elliottcd8ad332017-10-13 09:21:12 -06004667@vulkan1_1
Daniel Kochf25f5bb2017-10-05 00:26:58 -04004668@extension("VK_KHR_swapchain") // 2
4669class VkImageSwapchainCreateInfoKHR {
4670 VkStructureType sType
4671 const void* pNext
4672 VkSwapchainKHR swapchain
4673}
4674
Ian Elliottcd8ad332017-10-13 09:21:12 -06004675@vulkan1_1
Daniel Kochf25f5bb2017-10-05 00:26:58 -04004676@extension("VK_KHR_swapchain") // 2
4677class VkBindImageMemorySwapchainInfoKHR {
4678 VkStructureType sType
4679 const void* pNext
4680 VkSwapchainKHR swapchain
4681 u32 imageIndex
4682}
4683
Ian Elliottcd8ad332017-10-13 09:21:12 -06004684@vulkan1_1
Daniel Kochf25f5bb2017-10-05 00:26:58 -04004685@extension("VK_KHR_swapchain") // 2
4686class VkAcquireNextImageInfoKHR {
4687 VkStructureType sType
4688 const void* pNext
4689 VkSwapchainKHR swapchain
4690 u64 timeout
4691 VkSemaphore semaphore
4692 VkFence fence
4693 u32 deviceMask
4694}
4695
Ian Elliottcd8ad332017-10-13 09:21:12 -06004696@vulkan1_1
Daniel Kochf25f5bb2017-10-05 00:26:58 -04004697@extension("VK_KHR_swapchain") // 2
4698class VkDeviceGroupPresentCapabilitiesKHR {
4699 VkStructureType sType
4700 const void* pNext
4701 u32[VK_MAX_DEVICE_GROUP_SIZE] presentMask
4702 VkDeviceGroupPresentModeFlagsKHR modes
4703}
4704
Ian Elliottcd8ad332017-10-13 09:21:12 -06004705@vulkan1_1
Daniel Kochf25f5bb2017-10-05 00:26:58 -04004706@extension("VK_KHR_swapchain") // 2
4707class VkDeviceGroupPresentInfoKHR {
4708 VkStructureType sType
4709 const void* pNext
4710 u32 swapchainCount
4711 const u32* pDeviceMasks
4712 VkDeviceGroupPresentModeFlagBitsKHR mode
4713}
4714
Ian Elliottcd8ad332017-10-13 09:21:12 -06004715@vulkan1_1
Daniel Kochf25f5bb2017-10-05 00:26:58 -04004716@extension("VK_KHR_swapchain") // 2
4717class VkDeviceGroupSwapchainCreateInfoKHR {
4718 VkStructureType sType
4719 const void* pNext
4720 VkDeviceGroupPresentModeFlagsKHR modes
4721}
4722
Jesse Hallad250842017-03-10 18:35:38 -08004723@extension("VK_KHR_display") // 3
Jesse Hall1356b0d2015-11-23 17:24:58 -08004724class VkDisplayPropertiesKHR {
4725 VkDisplayKHR display
4726 const char* displayName
4727 VkExtent2D physicalDimensions
4728 VkExtent2D physicalResolution
4729 VkSurfaceTransformFlagsKHR supportedTransforms
Jesse Hall1356b0d2015-11-23 17:24:58 -08004730 VkBool32 planeReorderPossible
Jesse Halla6429252015-11-29 18:59:42 -08004731 VkBool32 persistentContent
Michael Lentine88594d72015-11-12 12:49:45 -08004732}
4733
Jesse Hallad250842017-03-10 18:35:38 -08004734@extension("VK_KHR_display") // 3
Jesse Halla6429252015-11-29 18:59:42 -08004735class VkDisplayModeParametersKHR {
Jesse Hall1356b0d2015-11-23 17:24:58 -08004736 VkExtent2D visibleRegion
Jesse Halla6429252015-11-29 18:59:42 -08004737 u32 refreshRate
Michael Lentine88594d72015-11-12 12:49:45 -08004738}
Jesse Halld27f6aa2015-08-15 17:58:48 -07004739
Jesse Hallad250842017-03-10 18:35:38 -08004740@extension("VK_KHR_display") // 3
Jesse Hall1356b0d2015-11-23 17:24:58 -08004741class VkDisplayModePropertiesKHR {
4742 VkDisplayModeKHR displayMode
Jesse Halla6429252015-11-29 18:59:42 -08004743 VkDisplayModeParametersKHR parameters
Jesse Hall1356b0d2015-11-23 17:24:58 -08004744}
4745
Jesse Hallad250842017-03-10 18:35:38 -08004746@extension("VK_KHR_display") // 3
Jesse Hall1356b0d2015-11-23 17:24:58 -08004747class VkDisplayModeCreateInfoKHR {
4748 VkStructureType sType
4749 const void* pNext
Jesse Hall9ba8bc82015-11-30 16:22:16 -08004750 VkDisplayModeCreateFlagsKHR flags
Jesse Halla6429252015-11-29 18:59:42 -08004751 VkDisplayModeParametersKHR parameters
Jesse Hall1356b0d2015-11-23 17:24:58 -08004752}
4753
Jesse Hallad250842017-03-10 18:35:38 -08004754@extension("VK_KHR_display") // 3
Jesse Hall1356b0d2015-11-23 17:24:58 -08004755class VkDisplayPlanePropertiesKHR {
Jesse Halla6429252015-11-29 18:59:42 -08004756 VkDisplayKHR currentDisplay
4757 u32 currentStackIndex
4758}
4759
Jesse Hallad250842017-03-10 18:35:38 -08004760@extension("VK_KHR_display") // 3
Jesse Halla6429252015-11-29 18:59:42 -08004761class VkDisplayPlaneCapabilitiesKHR {
Jesse Hall1356b0d2015-11-23 17:24:58 -08004762 VkDisplayPlaneAlphaFlagsKHR supportedAlpha
4763 VkOffset2D minSrcPosition
4764 VkOffset2D maxSrcPosition
4765 VkExtent2D minSrcExtent
4766 VkExtent2D maxSrcExtent
4767 VkOffset2D minDstPosition
4768 VkOffset2D maxDstPosition
4769 VkExtent2D minDstExtent
4770 VkExtent2D maxDstExtent
4771}
4772
Jesse Hallad250842017-03-10 18:35:38 -08004773@extension("VK_KHR_display") // 3
Jesse Halla6429252015-11-29 18:59:42 -08004774class VkDisplaySurfaceCreateInfoKHR {
Jesse Hall1356b0d2015-11-23 17:24:58 -08004775 VkStructureType sType
4776 const void* pNext
Jesse Hallf4ab2b12015-11-30 16:04:55 -08004777 VkDisplaySurfaceCreateFlagsKHR flags
Jesse Hall1356b0d2015-11-23 17:24:58 -08004778 VkDisplayModeKHR displayMode
4779 u32 planeIndex
4780 u32 planeStackIndex
Jesse Hallf4ab2b12015-11-30 16:04:55 -08004781 VkSurfaceTransformFlagBitsKHR transform
Jesse Hall1356b0d2015-11-23 17:24:58 -08004782 f32 globalAlpha
Jesse Hallf4ab2b12015-11-30 16:04:55 -08004783 VkDisplayPlaneAlphaFlagBitsKHR alphaMode
4784 VkExtent2D imageExtent
Jesse Hall1356b0d2015-11-23 17:24:58 -08004785}
4786
Jesse Hallad250842017-03-10 18:35:38 -08004787@extension("VK_KHR_display_swapchain") // 4
Jesse Hall1356b0d2015-11-23 17:24:58 -08004788class VkDisplayPresentInfoKHR {
4789 VkStructureType sType
4790 const void* pNext
4791 VkRect2D srcRect
4792 VkRect2D dstRect
Jesse Halla6429252015-11-29 18:59:42 -08004793 VkBool32 persistent
Jesse Hall1356b0d2015-11-23 17:24:58 -08004794}
4795
Jesse Hallad250842017-03-10 18:35:38 -08004796@extension("VK_KHR_xlib_surface") // 5
Jesse Hallf9fa9a52016-01-08 16:08:51 -08004797class VkXlibSurfaceCreateInfoKHR {
4798 VkStructureType sType
4799 const void* pNext
4800 VkXlibSurfaceCreateFlagsKHR flags
4801 platform.Display* dpy
4802 platform.Window window
4803}
4804
Jesse Hallad250842017-03-10 18:35:38 -08004805@extension("VK_KHR_xcb_surface") // 6
Jesse Hallf9fa9a52016-01-08 16:08:51 -08004806class VkXcbSurfaceCreateInfoKHR {
4807 VkStructureType sType
4808 const void* pNext
4809 VkXcbSurfaceCreateFlagsKHR flags
4810 platform.xcb_connection_t* connection
4811 platform.xcb_window_t window
4812}
4813
Jesse Hallad250842017-03-10 18:35:38 -08004814@extension("VK_KHR_wayland_surface") // 7
Jesse Hallf9fa9a52016-01-08 16:08:51 -08004815class VkWaylandSurfaceCreateInfoKHR {
4816 VkStructureType sType
4817 const void* pNext
4818 VkWaylandSurfaceCreateFlagsKHR flags
4819 platform.wl_display* display
4820 platform.wl_surface* surface
4821}
4822
Jesse Hallad250842017-03-10 18:35:38 -08004823@extension("VK_KHR_mir_surface") // 8
Jesse Hallf9fa9a52016-01-08 16:08:51 -08004824class VkMirSurfaceCreateInfoKHR {
4825 VkStructureType sType
4826 const void* pNext
4827 VkMirSurfaceCreateFlagsKHR flags
4828 platform.MirConnection* connection
4829 platform.MirSurface* mirSurface
4830}
4831
Jesse Hallad250842017-03-10 18:35:38 -08004832@extension("VK_KHR_android_surface") // 9
Jesse Hallf9fa9a52016-01-08 16:08:51 -08004833class VkAndroidSurfaceCreateInfoKHR {
4834 VkStructureType sType
4835 const void* pNext
4836 VkAndroidSurfaceCreateFlagsKHR flags
4837 platform.ANativeWindow* window
4838}
4839
Jesse Hallad250842017-03-10 18:35:38 -08004840@extension("VK_KHR_win32_surface") // 10
Jesse Hallf9fa9a52016-01-08 16:08:51 -08004841class VkWin32SurfaceCreateInfoKHR {
4842 VkStructureType sType
4843 const void* pNext
4844 VkWin32SurfaceCreateFlagsKHR flags
4845 platform.HINSTANCE hinstance
4846 platform.HWND hwnd
4847}
4848
Jesse Hallad250842017-03-10 18:35:38 -08004849@extension("VK_ANDROID_native_buffer") // 11
Jesse Halld1abd742017-02-09 21:45:51 -08004850@internal class Gralloc1Usage {
4851 u64 consumer
4852 u64 producer
4853}
4854
Jesse Hallad250842017-03-10 18:35:38 -08004855@extension("VK_ANDROID_native_buffer") // 11
Chia-I Wub262ddc2016-03-22 07:38:20 +08004856class VkNativeBufferANDROID {
4857 VkStructureType sType
4858 const void* pNext
4859 platform.buffer_handle_t handle
Jesse Halld1abd742017-02-09 21:45:51 -08004860 s32 stride
4861 s32 format
4862 s32 usage
4863 Gralloc1Usage usage2
Chia-I Wub262ddc2016-03-22 07:38:20 +08004864}
4865
Jesse Hallad250842017-03-10 18:35:38 -08004866@extension("VK_ANDROID_native_buffer") // 11
Chris Forbes8e4438b2016-12-07 16:26:49 +13004867class VkSwapchainImageCreateInfoANDROID {
4868 VkStructureType sType
4869 const void* pNext
Chris Forbes134d9582017-01-12 14:26:37 +13004870 VkSwapchainImageUsageFlagsANDROID flags
Chris Forbes48853712017-01-12 14:09:33 +13004871}
Ian Elliott4c8bb2a2016-12-29 11:07:26 -07004872
Jesse Hallad250842017-03-10 18:35:38 -08004873@extension("VK_ANDROID_native_buffer") // 11
Chris Forbes1d4e5542017-02-15 19:38:50 +13004874class VkPhysicalDevicePresentationPropertiesANDROID {
4875 VkStructureType sType
4876 void* pNext
4877 VkBool32 sharedImage
4878}
4879
Jesse Hallad250842017-03-10 18:35:38 -08004880@extension("VK_EXT_debug_report") // 12
Jesse Hall715b86a2016-01-16 16:34:29 -08004881class VkDebugReportCallbackCreateInfoEXT {
4882 VkStructureType sType
4883 const void* pNext
4884 VkDebugReportFlagsEXT flags
4885 PFN_vkDebugReportCallbackEXT pfnCallback
4886 void* pUserData
4887}
4888
Jesse Hallad250842017-03-10 18:35:38 -08004889@extension("VK_AMD_rasterization_order") // 19
Jesse Hall26763382016-05-20 07:13:52 -07004890class VkPipelineRasterizationStateRasterizationOrderAMD {
4891 VkStructureType sType
4892 const void* pNext
4893 VkRasterizationOrderAMD rasterizationOrder
4894}
4895
Jesse Hallad250842017-03-10 18:35:38 -08004896@extension("VK_EXT_debug_marker") // 23
Jesse Hall26763382016-05-20 07:13:52 -07004897class VkDebugMarkerObjectNameInfoEXT {
4898 VkStructureType sType
4899 const void* pNext
4900 VkDebugReportObjectTypeEXT objectType
4901 u64 object
4902 const char* pObjectName
4903}
4904
Jesse Hallad250842017-03-10 18:35:38 -08004905@extension("VK_EXT_debug_marker") // 23
Jesse Hall26763382016-05-20 07:13:52 -07004906class VkDebugMarkerObjectTagInfoEXT {
4907 VkStructureType sType
4908 const void* pNext
4909 VkDebugReportObjectTypeEXT objectType
4910 u64 object
4911 u64 tagName
4912 platform.size_t tagSize
4913 const void* pTag
4914}
4915
Jesse Hallad250842017-03-10 18:35:38 -08004916@extension("VK_EXT_debug_marker") // 23
Jesse Hall26763382016-05-20 07:13:52 -07004917class VkDebugMarkerMarkerInfoEXT {
4918 VkStructureType sType
4919 const void* pNext
4920 const char* pMarkerName
4921 f32[4] color
4922}
4923
Jesse Hallad250842017-03-10 18:35:38 -08004924@extension("VK_NV_dedicated_allocation") // 27
Jesse Hall56d386a2016-07-26 15:20:40 -07004925class VkDedicatedAllocationImageCreateInfoNV {
4926 VkStructureType sType
4927 const void* pNext
4928 VkBool32 dedicatedAllocation
4929}
4930
Jesse Hallad250842017-03-10 18:35:38 -08004931@extension("VK_NV_dedicated_allocation") // 27
Jesse Hall56d386a2016-07-26 15:20:40 -07004932class VkDedicatedAllocationBufferCreateInfoNV {
4933 VkStructureType sType
4934 const void* pNext
4935 VkBool32 dedicatedAllocation
4936}
4937
Jesse Hallad250842017-03-10 18:35:38 -08004938@extension("VK_NV_dedicated_allocation") // 27
Jesse Hall56d386a2016-07-26 15:20:40 -07004939class VkDedicatedAllocationMemoryAllocateInfoNV {
4940 VkStructureType sType
4941 const void* pNext
4942 VkImage image
4943 VkBuffer buffer
4944}
4945
Jesse Hall7ba0ac72017-07-07 17:13:23 -07004946@extension("VK_AMD_texture_gather_bias_lod") // 42
4947class VkTextureLODGatherFormatPropertiesAMD {
4948 VkStructureType sType
4949 void* pNext
4950 VkBool32 supportsTextureGatherLODBiasAMD
4951}
4952
Jesse Hall35b4de12018-01-17 22:06:20 -08004953@extension("VK_AMD_shader_info") // 43
4954class VkShaderResourceUsageAMD {
4955 u32 numUsedVgprs
4956 u32 numUsedSgprs
4957 u32 ldsSizePerLocalWorkGroup
4958 platform.size_t ldsUsageSizeInBytes
4959 platform.size_t scratchMemUsageInBytes
4960}
4961
4962@extension("VK_AMD_shader_info") // 43
4963class VkShaderStatisticsInfoAMD {
4964 VkShaderStageFlags shaderStageMask
4965 VkShaderResourceUsageAMD resourceUsage
4966 u32 numPhysicalVgprs
4967 u32 numPhysicalSgprs
4968 u32 numAvailableVgprs
4969 u32 numAvailableSgprs
4970 u32[3] computeWorkGroupSize
4971}
4972
Daniel Kochf25f5bb2017-10-05 00:26:58 -04004973@extension("VK_KHR_multiview") // 54
4974class VkRenderPassMultiviewCreateInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08004975 VkStructureType sType
4976 const void* pNext
4977 u32 subpassCount
4978 const u32* pViewMasks
4979 u32 dependencyCount
4980 const s32* pViewOffsets
4981 u32 correlationMaskCount
4982 const u32* pCorrelationMasks
4983}
4984
Daniel Kochf25f5bb2017-10-05 00:26:58 -04004985@extension("VK_KHR_multiview") // 54
4986class VkPhysicalDeviceMultiviewFeaturesKHR {
Jesse Hallad250842017-03-10 18:35:38 -08004987 VkStructureType sType
4988 void* pNext
4989 VkBool32 multiview
4990 VkBool32 multiviewGeometryShader
4991 VkBool32 multiviewTessellationShader
4992}
4993
Daniel Kochf25f5bb2017-10-05 00:26:58 -04004994@extension("VK_KHR_multiview") // 54
4995class VkPhysicalDeviceMultiviewPropertiesKHR {
Jesse Hallad250842017-03-10 18:35:38 -08004996 VkStructureType sType
4997 void* pNext
4998 u32 maxMultiviewViewCount
4999 u32 maxMultiviewInstanceIndex
5000}
5001
5002@extension("VK_NV_external_memory_capabilities") // 56
Jesse Halleb02c472017-02-24 15:13:45 -08005003class VkExternalImageFormatPropertiesNV {
5004 VkImageFormatProperties imageFormatProperties
5005 VkExternalMemoryFeatureFlagsNV externalMemoryFeatures
5006 VkExternalMemoryHandleTypeFlagsNV exportFromImportedHandleTypes
5007 VkExternalMemoryHandleTypeFlagsNV compatibleHandleTypes
5008}
5009
Jesse Hallad250842017-03-10 18:35:38 -08005010@extension("VK_NV_external_memory") // 57
Jesse Halleb02c472017-02-24 15:13:45 -08005011class VkExternalMemoryImageCreateInfoNV {
5012 VkStructureType sType
5013 const void* pNext
5014 VkExternalMemoryHandleTypeFlagsNV handleTypes
5015}
5016
Jesse Hallad250842017-03-10 18:35:38 -08005017@extension("VK_NV_external_memory") // 57
Jesse Halleb02c472017-02-24 15:13:45 -08005018class VkExportMemoryAllocateInfoNV {
5019 VkStructureType sType
5020 const void* pNext
5021 VkExternalMemoryHandleTypeFlagsNV handleTypes
5022}
5023
Jesse Hallad250842017-03-10 18:35:38 -08005024@extension("VK_NV_external_memory_win32") // 58
Jesse Halleb02c472017-02-24 15:13:45 -08005025class VkImportMemoryWin32HandleInfoNV {
5026 VkStructureType sType
5027 const void* pNext
5028 VkExternalMemoryHandleTypeFlagsNV handleType
5029 platform.HANDLE handle
5030}
5031
Jesse Hallad250842017-03-10 18:35:38 -08005032@extension("VK_NV_external_memory_win32") // 58
Jesse Halleb02c472017-02-24 15:13:45 -08005033class VkExportMemoryWin32HandleInfoNV {
5034 VkStructureType sType
5035 const void* pNext
5036 const platform.SECURITY_ATTRIBUTES* pAttributes
5037 platform.DWORD dwAccess
5038}
5039
Jesse Hallad250842017-03-10 18:35:38 -08005040@extension("VK_NV_win32_keyed_mutex") // 59
Jesse Halleb02c472017-02-24 15:13:45 -08005041class VkWin32KeyedMutexAcquireReleaseInfoNV {
5042 VkStructureType sType
5043 const void* pNext
5044 u32 acquireCount
5045 const VkDeviceMemory* pAcquireSyncs
5046 const u64* pAcquireKeys
5047 const u32* pAcquireTimeoutMilliseconds
5048 u32 releaseCount
5049 const VkDeviceMemory* pReleaseSyncs
5050 const u64* pReleaseKeys
5051}
5052
Jesse Hallad250842017-03-10 18:35:38 -08005053@extension("VK_KHR_get_physical_device_properties2") // 60
Chris Forbes1194ede2016-12-30 16:29:25 +13005054class VkPhysicalDeviceFeatures2KHR {
5055 VkStructureType sType
5056 void* pNext
5057 VkPhysicalDeviceFeatures features
5058}
5059
Jesse Hallad250842017-03-10 18:35:38 -08005060@extension("VK_KHR_get_physical_device_properties2") // 60
Chris Forbes1194ede2016-12-30 16:29:25 +13005061class VkPhysicalDeviceProperties2KHR {
5062 VkStructureType sType
5063 void* pNext
5064 VkPhysicalDeviceProperties properties
5065}
5066
Jesse Hallad250842017-03-10 18:35:38 -08005067@extension("VK_KHR_get_physical_device_properties2") // 60
Chris Forbes1194ede2016-12-30 16:29:25 +13005068class VkFormatProperties2KHR {
5069 VkStructureType sType
5070 void* pNext
5071 VkFormatProperties formatProperties
5072}
5073
Jesse Hallad250842017-03-10 18:35:38 -08005074@extension("VK_KHR_get_physical_device_properties2") // 60
Chris Forbes1194ede2016-12-30 16:29:25 +13005075class VkImageFormatProperties2KHR {
5076 VkStructureType sType
5077 void* pNext
5078 VkImageFormatProperties imageFormatProperties
5079}
5080
Jesse Hallad250842017-03-10 18:35:38 -08005081@extension("VK_KHR_get_physical_device_properties2") // 60
Chris Forbes1194ede2016-12-30 16:29:25 +13005082class VkPhysicalDeviceImageFormatInfo2KHR {
5083 VkStructureType sType
5084 const void* pNext
5085 VkFormat format
5086 VkImageType type
5087 VkImageTiling tiling
5088 VkImageUsageFlags usage
5089 VkImageCreateFlags flags
5090}
5091
Jesse Hallad250842017-03-10 18:35:38 -08005092@extension("VK_KHR_get_physical_device_properties2") // 60
Chris Forbes1194ede2016-12-30 16:29:25 +13005093class VkQueueFamilyProperties2KHR {
5094 VkStructureType sType
5095 void* pNext
5096 VkQueueFamilyProperties queueFamilyProperties
5097}
5098
Jesse Hallad250842017-03-10 18:35:38 -08005099@extension("VK_KHR_get_physical_device_properties2") // 60
Chris Forbes1194ede2016-12-30 16:29:25 +13005100class VkPhysicalDeviceMemoryProperties2KHR {
5101 VkStructureType sType
5102 void* pNext
5103 VkPhysicalDeviceMemoryProperties memoryProperties
5104}
5105
Jesse Hallad250842017-03-10 18:35:38 -08005106@extension("VK_KHR_get_physical_device_properties2") // 60
Chris Forbes1194ede2016-12-30 16:29:25 +13005107class VkSparseImageFormatProperties2KHR {
5108 VkStructureType sType
5109 void* pNext
5110 VkSparseImageFormatProperties properties
5111}
5112
Jesse Hallad250842017-03-10 18:35:38 -08005113@extension("VK_KHR_get_physical_device_properties2") // 60
Chris Forbes1194ede2016-12-30 16:29:25 +13005114class VkPhysicalDeviceSparseImageFormatInfo2KHR {
5115 VkStructureType sType
5116 const void* pNext
5117 VkFormat format
5118 VkImageType type
5119 VkSampleCountFlagBits samples
5120 VkImageUsageFlags usage
5121 VkImageTiling tiling
5122}
5123
Daniel Kochf25f5bb2017-10-05 00:26:58 -04005124@extension("VK_KHR_device_group") // 61
5125class VkMemoryAllocateFlagsInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005126 VkStructureType sType
5127 const void* pNext
Daniel Kochf25f5bb2017-10-05 00:26:58 -04005128 VkMemoryAllocateFlagsKHR flags
Jesse Hallad250842017-03-10 18:35:38 -08005129 u32 deviceMask
5130}
5131
Daniel Kochf25f5bb2017-10-05 00:26:58 -04005132@extension("VK_KHR_device_group") // 61
5133class VkBindBufferMemoryDeviceGroupInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005134 VkStructureType sType
5135 const void* pNext
Jesse Hallad250842017-03-10 18:35:38 -08005136 u32 deviceIndexCount
5137 const u32* pDeviceIndices
5138}
5139
Daniel Kochf25f5bb2017-10-05 00:26:58 -04005140@extension("VK_KHR_device_group") // 61
5141class VkBindImageMemoryDeviceGroupInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005142 VkStructureType sType
5143 const void* pNext
Jesse Hallad250842017-03-10 18:35:38 -08005144 u32 deviceIndexCount
5145 const u32* pDeviceIndices
5146 u32 SFRRectCount
5147 const VkRect2D* pSFRRects
5148}
5149
Daniel Kochf25f5bb2017-10-05 00:26:58 -04005150@extension("VK_KHR_device_group") // 61
5151class VkDeviceGroupRenderPassBeginInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005152 VkStructureType sType
5153 const void* pNext
5154 u32 deviceMask
5155 u32 deviceRenderAreaCount
5156 const VkRect2D* pDeviceRenderAreas
5157}
5158
Daniel Kochf25f5bb2017-10-05 00:26:58 -04005159@extension("VK_KHR_device_group") // 61
5160class VkDeviceGroupCommandBufferBeginInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005161 VkStructureType sType
5162 const void* pNext
5163 u32 deviceMask
5164}
5165
Daniel Kochf25f5bb2017-10-05 00:26:58 -04005166@extension("VK_KHR_device_group") // 61
5167class VkDeviceGroupSubmitInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005168 VkStructureType sType
5169 const void* pNext
5170 u32 waitSemaphoreCount
5171 const u32* pWaitSemaphoreDeviceIndices
5172 u32 commandBufferCount
5173 const u32* pCommandBufferDeviceMasks
5174 u32 signalSemaphoreCount
5175 const u32* pSignalSemaphoreDeviceIndices
5176}
5177
Daniel Kochf25f5bb2017-10-05 00:26:58 -04005178@extension("VK_KHR_device_group") // 61
5179class VkDeviceGroupBindSparseInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005180 VkStructureType sType
5181 const void* pNext
5182 u32 resourceDeviceIndex
5183 u32 memoryDeviceIndex
5184}
5185
Jesse Hallad250842017-03-10 18:35:38 -08005186@extension("VK_EXT_validation_flags") // 62
Chris Forbes289cb792016-12-30 15:03:55 +13005187class VkValidationFlagsEXT {
5188 VkStructureType sType
5189 const void* pNext
5190 u32 disabledValidationCheckCount
5191 VkValidationCheckEXT* pDisabledValidationChecks
5192}
5193
Jesse Hallad250842017-03-10 18:35:38 -08005194@extension("VK_NN_vi_surface") // 63
Jesse Hall77ad05b2017-03-10 22:02:20 -08005195class VkViSurfaceCreateInfoNN {
5196 VkStructureType sType
5197 const void* pNext
5198 VkViSurfaceCreateFlagsNN flags
5199 void* window
5200}
5201
Daniel Kochf25f5bb2017-10-05 00:26:58 -04005202@extension("VK_KHR_device_group_creation") // 71
5203class VkPhysicalDeviceGroupPropertiesKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005204 VkStructureType sType
Jesse Hallf5ad48b2017-03-20 13:09:19 -07005205 void* pNext
Jesse Hallad250842017-03-10 18:35:38 -08005206 u32 physicalDeviceCount
Daniel Kochf25f5bb2017-10-05 00:26:58 -04005207 VkPhysicalDevice[VK_MAX_DEVICE_GROUP_SIZE] physicalDevices
Jesse Hallad250842017-03-10 18:35:38 -08005208 VkBool32 subsetAllocation
5209}
5210
Daniel Kochf25f5bb2017-10-05 00:26:58 -04005211@extension("VK_KHR_device_group_creation") // 71
5212class VkDeviceGroupDeviceCreateInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005213 VkStructureType sType
5214 const void* pNext
5215 u32 physicalDeviceCount
5216 const VkPhysicalDevice* pPhysicalDevices
5217}
5218
Jesse Hall9492f992017-08-28 12:10:06 -07005219@extension("VK_KHR_external_memory_capabilities") // 72
5220class VkExternalMemoryPropertiesKHR {
5221 VkExternalMemoryFeatureFlagsKHR externalMemoryFeatures
5222 VkExternalMemoryHandleTypeFlagsKHR exportFromImportedHandleTypes
5223 VkExternalMemoryHandleTypeFlagsKHR compatibleHandleTypes
Jesse Hallad250842017-03-10 18:35:38 -08005224}
5225
Jesse Hall9492f992017-08-28 12:10:06 -07005226@extension("VK_KHR_external_memory_capabilities") // 72
5227class VkPhysicalDeviceExternalImageFormatInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005228 VkStructureType sType
5229 const void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005230 VkExternalMemoryHandleTypeFlagBitsKHR handleType
Jesse Hallad250842017-03-10 18:35:38 -08005231}
5232
Jesse Hall9492f992017-08-28 12:10:06 -07005233@extension("VK_KHR_external_memory_capabilities") // 72
5234class VkExternalImageFormatPropertiesKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005235 VkStructureType sType
5236 void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005237 VkExternalMemoryPropertiesKHR externalMemoryProperties
Jesse Hallad250842017-03-10 18:35:38 -08005238}
5239
Jesse Hall9492f992017-08-28 12:10:06 -07005240@extension("VK_KHR_external_memory_capabilities") // 72
5241class VkPhysicalDeviceExternalBufferInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005242 VkStructureType sType
5243 const void* pNext
5244 VkBufferCreateFlags flags
5245 VkBufferUsageFlags usage
Jesse Hall9492f992017-08-28 12:10:06 -07005246 VkExternalMemoryHandleTypeFlagBitsKHR handleType
Jesse Hallad250842017-03-10 18:35:38 -08005247}
5248
Jesse Hall9492f992017-08-28 12:10:06 -07005249@extension("VK_KHR_external_memory_capabilities") // 72
5250class VkExternalBufferPropertiesKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005251 VkStructureType sType
5252 void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005253 VkExternalMemoryPropertiesKHR externalMemoryProperties
Jesse Hallad250842017-03-10 18:35:38 -08005254}
5255
Jesse Hall9492f992017-08-28 12:10:06 -07005256@extension("VK_KHR_external_memory_capabilities") // 72
5257class VkPhysicalDeviceIDPropertiesKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005258 VkStructureType sType
5259 void* pNext
5260 u8[VK_UUID_SIZE] deviceUUID
5261 u8[VK_UUID_SIZE] driverUUID
Daniel Kochf25f5bb2017-10-05 00:26:58 -04005262 u8[VK_LUID_SIZE] deviceLUID
Jesse Hall9492f992017-08-28 12:10:06 -07005263 u32 deviceNodeMask
Jesse Hallad250842017-03-10 18:35:38 -08005264 VkBool32 deviceLUIDValid
5265}
5266
Jesse Hall9492f992017-08-28 12:10:06 -07005267@extension("VK_KHR_external_memory") // 73
5268class VkExternalMemoryImageCreateInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005269 VkStructureType sType
5270 const void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005271 VkExternalMemoryHandleTypeFlagsKHR handleTypes
Jesse Hallad250842017-03-10 18:35:38 -08005272}
5273
Jesse Hall9492f992017-08-28 12:10:06 -07005274@extension("VK_KHR_external_memory") // 73
5275class VkExternalMemoryBufferCreateInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005276 VkStructureType sType
5277 const void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005278 VkExternalMemoryHandleTypeFlagsKHR handleTypes
Jesse Hallad250842017-03-10 18:35:38 -08005279}
5280
Jesse Hall9492f992017-08-28 12:10:06 -07005281@extension("VK_KHR_external_memory") // 73
5282class VkExportMemoryAllocateInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005283 VkStructureType sType
5284 const void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005285 VkExternalMemoryHandleTypeFlagsKHR handleTypes
Jesse Hallad250842017-03-10 18:35:38 -08005286}
5287
Jesse Hall9492f992017-08-28 12:10:06 -07005288@extension("VK_KHR_external_memory_win32") // 74
5289class VkImportMemoryWin32HandleInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005290 VkStructureType sType
5291 const void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005292 VkExternalMemoryHandleTypeFlagBitsKHR handleType
Jesse Hallad250842017-03-10 18:35:38 -08005293 platform.HANDLE handle
Jesse Hall9492f992017-08-28 12:10:06 -07005294 platform.LPCWSTR name
Jesse Hallad250842017-03-10 18:35:38 -08005295}
5296
Jesse Hall9492f992017-08-28 12:10:06 -07005297@extension("VK_KHR_external_memory_win32") // 74
5298class VkExportMemoryWin32HandleInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005299 VkStructureType sType
5300 const void* pNext
5301 const platform.SECURITY_ATTRIBUTES* pAttributes
5302 platform.DWORD dwAccess
5303 platform.LPCWSTR name
5304}
5305
Jesse Hall9492f992017-08-28 12:10:06 -07005306@extension("VK_KHR_external_memory_win32") // 74
5307class VkMemoryWin32HandlePropertiesKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005308 VkStructureType sType
5309 void* pNext
5310 u32 memoryTypeBits
5311}
5312
Jesse Hall9492f992017-08-28 12:10:06 -07005313@extension("VK_KHR_external_memory_win32") // 74
5314class VkMemoryGetWin32HandleInfoKHR {
5315 VkStructureType sType
5316 void* pNext
5317 VkDeviceMemory memory
5318 VkExternalMemoryHandleTypeFlagBitsKHR handleType
5319}
5320
5321@extension("VK_KHR_external_memory_fd") // 75
5322class VkImportMemoryFdInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005323 VkStructureType sType
5324 const void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005325 VkExternalMemoryHandleTypeFlagBitsKHR handleType
Jesse Hallad250842017-03-10 18:35:38 -08005326 int fd
5327}
5328
Jesse Hall9492f992017-08-28 12:10:06 -07005329@extension("VK_KHR_external_memory_fd") // 75
5330class VkMemoryFdPropertiesKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005331 VkStructureType sType
5332 void* pNext
5333 u32 memoryTypeBits
5334}
5335
Jesse Hall9492f992017-08-28 12:10:06 -07005336@extension("VK_KHR_external_memory_fd") // 75
5337class VkMemoryGetFdInfoKHR {
5338 VkStructureType sType
5339 void* pNext
5340 VkDeviceMemory memory
5341 VkExternalMemoryHandleTypeFlagBitsKHR handleType
5342}
5343
5344@extension("VK_KHR_win32_keyed_mutex") // 76
5345class VkWin32KeyedMutexAcquireReleaseInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005346 VkStructureType sType
5347 const void* pNext
5348 u32 acquireCount
5349 const VkDeviceMemory* pAcquireSyncs
5350 const u64* pAcquireKeys
5351 const u32* pAcquireTimeouts
5352 u32 releaseCount
5353 const VkDeviceMemory* pReleaseSyncs
5354 const u64* pReleaseKeys
5355}
5356
Jesse Hall9492f992017-08-28 12:10:06 -07005357@extension("VK_KHR_external_semaphore_capabilities") // 77
5358class VkPhysicalDeviceExternalSemaphoreInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005359 VkStructureType sType
5360 const void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005361 VkExternalSemaphoreHandleTypeFlagBitsKHR handleType
Jesse Hallad250842017-03-10 18:35:38 -08005362}
5363
Jesse Hall9492f992017-08-28 12:10:06 -07005364@extension("VK_KHR_external_semaphore_capabilities") // 77
5365class VkExternalSemaphorePropertiesKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005366 VkStructureType sType
5367 void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005368 VkExternalSemaphoreHandleTypeFlagsKHR exportFromImportedHandleTypes
5369 VkExternalSemaphoreHandleTypeFlagsKHR compatibleHandleTypes
5370 VkExternalSemaphoreFeatureFlagsKHR externalSemaphoreFeatures
Jesse Hallad250842017-03-10 18:35:38 -08005371}
5372
Jesse Hall9492f992017-08-28 12:10:06 -07005373@extension("VK_KHR_external_semaphore") // 78
5374class VkExportSemaphoreCreateInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005375 VkStructureType sType
5376 const void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005377 VkExternalSemaphoreHandleTypeFlagsKHR handleTypes
Jesse Hallad250842017-03-10 18:35:38 -08005378}
5379
Jesse Hall9492f992017-08-28 12:10:06 -07005380@extension("VK_KHR_external_semaphore_win32") // 79
5381class VkImportSemaphoreWin32HandleInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005382 VkStructureType sType
5383 const void* pNext
5384 VkSemaphore semaphore
Jesse Hall9492f992017-08-28 12:10:06 -07005385 VkSemaphoreImportFlagsKHR flags
5386 VkExternalSemaphoreHandleTypeFlagsKHR handleType
Jesse Hallad250842017-03-10 18:35:38 -08005387 platform.HANDLE handle
Jesse Hall9492f992017-08-28 12:10:06 -07005388 platform.LPCWSTR name
Jesse Hallad250842017-03-10 18:35:38 -08005389}
5390
Jesse Hall9492f992017-08-28 12:10:06 -07005391@extension("VK_KHR_external_semaphore_win32") // 79
5392class VkExportSemaphoreWin32HandleInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005393 VkStructureType sType
5394 const void* pNext
5395 const platform.SECURITY_ATTRIBUTES* pAttributes
5396 platform.DWORD dwAccess
5397 platform.LPCWSTR name
5398}
5399
Jesse Hall9492f992017-08-28 12:10:06 -07005400@extension("VK_KHR_external_semaphore_win32") // 79
5401class VkD3D12FenceSubmitInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005402 VkStructureType sType
5403 const void* pNext
5404 u32 waitSemaphoreValuesCount
5405 const u64* pWaitSemaphoreValues
5406 u32 signalSemaphoreValuesCount
5407 const u64* pSignalSemaphoreValues
5408}
5409
Jesse Hall9492f992017-08-28 12:10:06 -07005410@extension("VK_KHR_external_semaphore_win32") // 79
5411class VkSemaphoreGetWin32HandleInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005412 VkStructureType sType
5413 const void* pNext
5414 VkSemaphore semaphore
Jesse Hall9492f992017-08-28 12:10:06 -07005415 VkExternalSemaphoreHandleTypeFlagBitsKHR handleType
5416}
5417
5418@extension("VK_KHR_external_semaphore_fd") // 80
5419class VkImportSemaphoreFdInfoKHR {
5420 VkStructureType sType
5421 const void* pNext
5422 VkSemaphore semaphore
5423 VkSemaphoreImportFlagsKHR flags
5424 VkExternalSemaphoreHandleTypeFlagBitsKHR handleType
Jesse Hallad250842017-03-10 18:35:38 -08005425 s32 fd
5426}
5427
Jesse Hall9492f992017-08-28 12:10:06 -07005428@extension("VK_KHR_external_semaphore_fd") // 80
5429class VkSemaphoreGetFdInfoKHR {
5430 VkStructureType sType
5431 const void* pNext
5432 VkSemaphore semaphore
5433 VkExternalSemaphoreHandleTypeFlagBitsKHR handleType
5434}
5435
Jesse Hallad250842017-03-10 18:35:38 -08005436@extension("VK_KHR_push_descriptor") // 81
5437class VkPhysicalDevicePushDescriptorPropertiesKHR {
5438 VkStructureType sType
5439 void* pNext
5440 u32 maxPushDescriptors
5441}
5442
Jesse Hall9492f992017-08-28 12:10:06 -07005443@extension("VK_KHR_16bit_storage") // 84
5444class VkPhysicalDevice16BitStorageFeaturesKHR {
5445 VkStructureType sType
5446 void* pNext
5447 VkBool32 storageBuffer16BitAccess
5448 VkBool32 uniformAndStorageBuffer16BitAccess
5449 VkBool32 storagePushConstant16
5450 VkBool32 storageInputOutput16
5451}
5452
Jesse Hallad250842017-03-10 18:35:38 -08005453@extension("VK_KHR_incremental_present") // 85
5454class VkRectLayerKHR {
5455 VkOffset2D offset
5456 VkExtent2D extent
5457 u32 layer
5458}
5459
5460@extension("VK_KHR_incremental_present") // 85
5461class VkPresentRegionKHR {
5462 u32 rectangleCount
5463 const VkRectLayerKHR* pRectangles
5464}
5465
5466@extension("VK_KHR_incremental_present") // 85
5467class VkPresentRegionsKHR {
5468 VkStructureType sType
5469 const void* pNext
5470 u32 swapchainCount
5471 const VkPresentRegionKHR* pRegions
5472}
5473
5474@extension("VK_KHR_descriptor_update_template") // 86
5475class VkDescriptorUpdateTemplateEntryKHR {
5476 u32 dstBinding
5477 u32 dstArrayElement
5478 u32 descriptorCount
5479 VkDescriptorType descriptorType
5480 platform.size_t offset
5481 platform.size_t stride
5482}
5483
5484@extension("VK_KHR_descriptor_update_template") // 86
5485class VkDescriptorUpdateTemplateCreateInfoKHR {
5486 VkStructureType sType
5487 void* pNext
5488 VkDescriptorUpdateTemplateCreateFlagsKHR flags
5489 u32 descriptorUpdateEntryCount
5490 const VkDescriptorUpdateTemplateEntryKHR* pDescriptorUpdateEntries
5491 VkDescriptorUpdateTemplateTypeKHR templateType
5492 VkDescriptorSetLayout descriptorSetLayout
5493 VkPipelineBindPoint pipelineBindPoint
5494 VkPipelineLayout pipelineLayout
5495 u32 set
5496}
5497
5498@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13005499class VkDeviceGeneratedCommandsFeaturesNVX {
5500 VkStructureType sType
5501 const void* pNext
5502 VkBool32 computeBindingPointSupport
5503}
5504
Jesse Hallad250842017-03-10 18:35:38 -08005505@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13005506class VkDeviceGeneratedCommandsLimitsNVX {
5507 VkStructureType sType
5508 const void* pNext
5509 u32 maxIndirectCommandsLayoutTokenCount
5510 u32 maxObjectEntryCounts
5511 u32 minSequenceCountBufferOffsetAlignment
5512 u32 minSequenceIndexBufferOffsetAlignment
5513 u32 minCommandsTokenBufferOffsetAlignment
5514}
5515
Jesse Hallad250842017-03-10 18:35:38 -08005516@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13005517class VkIndirectCommandsTokenNVX {
5518 VkIndirectCommandsTokenTypeNVX tokenType
5519 VkBuffer buffer
5520 VkDeviceSize offset
5521}
5522
Jesse Hallad250842017-03-10 18:35:38 -08005523@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13005524class VkIndirectCommandsLayoutTokenNVX {
5525 VkIndirectCommandsTokenTypeNVX tokenType
5526 u32 bindingUnit
5527 u32 dynamicCount
5528 u32 divisor
5529}
5530
Jesse Hallad250842017-03-10 18:35:38 -08005531@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13005532class VkIndirectCommandsLayoutCreateInfoNVX {
5533 VkStructureType sType
5534 const void* pNext
5535 VkPipelineBindPoint pipelineBindPoint
5536 VkIndirectCommandsLayoutUsageFlagsNVX flags
5537 u32 tokenCount
5538 const VkIndirectCommandsLayoutTokenNVX* pTokens
5539}
5540
Jesse Hallad250842017-03-10 18:35:38 -08005541@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13005542class VkCmdProcessCommandsInfoNVX {
5543 VkStructureType sType
5544 const void* pNext
5545 VkObjectTableNVX objectTable
5546 VkIndirectCommandsLayoutNVX indirectCommandsLayout
5547 u32 indirectCommandsTokenCount
5548 const VkIndirectCommandsTokenNVX* pIndirectCommandsTokens
5549 u32 maxSequencesCount
5550 VkCommandBuffer targetCommandBuffer
5551 VkBuffer sequencesCountBuffer
5552 VkDeviceSize sequencesCountOffset
5553 VkBuffer sequencesIndexBuffer
5554 VkDeviceSize sequencesIndexOffset
5555}
5556
Jesse Hallad250842017-03-10 18:35:38 -08005557@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13005558class VkCmdReserveSpaceForCommandsInfoNVX {
5559 VkStructureType sType
5560 const void* pNext
5561 VkObjectTableNVX objectTable
5562 VkIndirectCommandsLayoutNVX indirectCommandsLayout
5563 u32 maxSequencesCount
5564}
5565
Jesse Hallad250842017-03-10 18:35:38 -08005566@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13005567class VkObjectTableCreateInfoNVX {
5568 VkStructureType sType
5569 const void* pNext
5570 u32 objectCount
5571 const VkObjectEntryTypeNVX* pObjectEntryTypes
5572 const u32* pObjectEntryCounts
5573 const VkObjectEntryUsageFlagsNVX* pObjectEntryUsageFlags
5574 u32 maxUniformBuffersPerDescriptor
5575 u32 maxStorageBuffersPerDescriptor
5576 u32 maxStorageImagesPerDescriptor
5577 u32 maxSampledImagesPerDescriptor
5578 u32 maxPipelineLayouts
5579}
5580
Jesse Hallad250842017-03-10 18:35:38 -08005581@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13005582class VkObjectTableEntryNVX {
5583 VkObjectEntryTypeNVX type
5584 VkObjectEntryUsageFlagsNVX flags
5585}
5586
Jesse Hallad250842017-03-10 18:35:38 -08005587@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13005588class VkObjectTablePipelineEntryNVX {
5589 VkObjectEntryTypeNVX type
5590 VkObjectEntryUsageFlagsNVX flags
5591 VkPipeline pipeline
5592}
5593
Jesse Hallad250842017-03-10 18:35:38 -08005594@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13005595class VkObjectTableDescriptorSetEntryNVX {
5596 VkObjectEntryTypeNVX type
5597 VkObjectEntryUsageFlagsNVX flags
5598 VkPipelineLayout pipelineLayout
5599 VkDescriptorSet descriptorSet
5600}
5601
Jesse Hallad250842017-03-10 18:35:38 -08005602@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13005603class VkObjectTableVertexBufferEntryNVX {
5604 VkObjectEntryTypeNVX type
5605 VkObjectEntryUsageFlagsNVX flags
5606 VkBuffer buffer
5607}
5608
Jesse Hallad250842017-03-10 18:35:38 -08005609@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13005610class VkObjectTableIndexBufferEntryNVX {
5611 VkObjectEntryTypeNVX type
5612 VkObjectEntryUsageFlagsNVX flags
5613 VkBuffer buffer
Jesse Hall77ad05b2017-03-10 22:02:20 -08005614 VkIndexType indexType
Chris Forbes289cb792016-12-30 15:03:55 +13005615}
5616
Jesse Hallad250842017-03-10 18:35:38 -08005617@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13005618class VkObjectTablePushConstantEntryNVX {
5619 VkObjectEntryTypeNVX type
5620 VkObjectEntryUsageFlagsNVX flags
5621 VkPipelineLayout pipelineLayout
5622 VkShaderStageFlags stageFlags
5623}
5624
Jesse Hallad250842017-03-10 18:35:38 -08005625@extension("VK_NV_clip_space_w_scaling") // 88
5626class VkViewportWScalingNV {
5627 f32 xcoeff
5628 f32 ycoeff
Jesse Hall889cd9a2017-02-25 22:12:23 -08005629}
5630
Jesse Hallad250842017-03-10 18:35:38 -08005631@extension("VK_NV_clip_space_w_scaling") // 88
5632class VkPipelineViewportWScalingStateCreateInfoNV {
Jesse Hall889cd9a2017-02-25 22:12:23 -08005633 VkStructureType sType
5634 const void* pNext
Jesse Hallad250842017-03-10 18:35:38 -08005635 VkBool32 viewportWScalingEnable
5636 u32 viewportCount
5637 const VkViewportWScalingNV* pViewportWScalings
Jesse Hall889cd9a2017-02-25 22:12:23 -08005638}
5639
Jesse Hallad250842017-03-10 18:35:38 -08005640@extension("VK_EXT_display_surface_counter") // 91
Jesse Hall77ad05b2017-03-10 22:02:20 -08005641class VkSurfaceCapabilities2EXT {
5642 VkStructureType sType
5643 void* pNext
5644 u32 minImageCount
5645 u32 maxImageCount
5646 VkExtent2D currentExtent
5647 VkExtent2D minImageExtent
5648 VkExtent2D maxImageExtent
5649 u32 maxImageArrayLayers
5650 VkSurfaceTransformFlagsKHR supportedTransforms
5651 VkSurfaceTransformFlagBitsKHR currentTransform
5652 VkCompositeAlphaFlagsKHR supportedCompositeAlpha
5653 VkImageUsageFlags supportedUsageFlags
5654 VkSurfaceCounterFlagsEXT supportedSurfaceCounters
5655}
5656
Jesse Hallad250842017-03-10 18:35:38 -08005657@extension("VK_EXT_display_control") // 92
Jesse Hall77ad05b2017-03-10 22:02:20 -08005658class VkDisplayPowerInfoEXT {
5659 VkStructureType sType
5660 const void* pNext
5661 VkDisplayPowerStateEXT powerState
5662}
5663
Jesse Hallad250842017-03-10 18:35:38 -08005664@extension("VK_EXT_display_control") // 92
Jesse Hall77ad05b2017-03-10 22:02:20 -08005665class VkDeviceEventInfoEXT {
5666 VkStructureType sType
5667 const void* pNext
5668 VkDeviceEventTypeEXT deviceEvent
5669}
5670
Jesse Hallad250842017-03-10 18:35:38 -08005671@extension("VK_EXT_display_control") // 92
Jesse Hall77ad05b2017-03-10 22:02:20 -08005672class VkDisplayEventInfoEXT {
5673 VkStructureType sType
5674 const void* pNext
5675 VkDisplayEventTypeEXT displayEvent
5676}
5677
Jesse Hallad250842017-03-10 18:35:38 -08005678@extension("VK_EXT_display_control") // 92
Jesse Hall77ad05b2017-03-10 22:02:20 -08005679class VkSwapchainCounterCreateInfoEXT {
5680 VkStructureType sType
5681 const void* pNext
5682 VkSurfaceCounterFlagsEXT surfaceCounters
5683}
5684
Jesse Hallad250842017-03-10 18:35:38 -08005685@extension("VK_GOOGLE_display_timing") // 93
5686class VkRefreshCycleDurationGOOGLE {
Jesse Hallfdc8ab32017-03-10 21:01:57 -08005687 u64 refreshDuration
Jesse Hallad250842017-03-10 18:35:38 -08005688}
5689
5690@extension("VK_GOOGLE_display_timing") // 93
5691class VkPastPresentationTimingGOOGLE {
Jesse Hallfdc8ab32017-03-10 21:01:57 -08005692 u32 presentID
5693 u64 desiredPresentTime
5694 u64 actualPresentTime
5695 u64 earliestPresentTime
5696 u64 presentMargin
Jesse Hallad250842017-03-10 18:35:38 -08005697}
5698
5699@extension("VK_GOOGLE_display_timing") // 93
5700class VkPresentTimeGOOGLE {
Jesse Hallfdc8ab32017-03-10 21:01:57 -08005701 u32 presentID
5702 u64 desiredPresentTime
Jesse Hallad250842017-03-10 18:35:38 -08005703}
5704
5705@extension("VK_GOOGLE_display_timing") // 93
5706class VkPresentTimesInfoGOOGLE {
Jesse Hallfdc8ab32017-03-10 21:01:57 -08005707 VkStructureType sType
5708 const void* pNext
5709 u32 swapchainCount
5710 const VkPresentTimeGOOGLE* pTimes
Jesse Hallad250842017-03-10 18:35:38 -08005711}
5712
5713@extension("VK_NVX_multiview_per_view_attributes") // 98
5714class VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX {
5715 VkStructureType sType
5716 void* pNext
5717 VkBool32 perViewPositionAllComponents
5718}
5719
5720@extension("VK_NV_viewport_swizzle") // 99
5721class VkViewportSwizzleNV {
5722 VkViewportCoordinateSwizzleNV x
5723 VkViewportCoordinateSwizzleNV y
5724 VkViewportCoordinateSwizzleNV z
5725 VkViewportCoordinateSwizzleNV w
5726}
5727
5728@extension("VK_NV_viewport_swizzle") // 99
5729class VkPipelineViewportSwizzleStateCreateInfoNV {
5730 VkStructureType sType
5731 const void* pNext
5732 VkPipelineViewportSwizzleStateCreateFlagsNV flags
5733 u32 viewportCount
5734 const VkViewportSwizzleNV* pViewportSwizzles
5735}
5736
5737@extension("VK_EXT_discard_rectangles") // 100
5738class VkPhysicalDeviceDiscardRectanglePropertiesEXT {
5739 VkStructureType sType
Jesse Hallf5ad48b2017-03-20 13:09:19 -07005740 void* pNext
Jesse Hallad250842017-03-10 18:35:38 -08005741 u32 maxDiscardRectangles
5742}
5743
5744@extension("VK_EXT_discard_rectangles") // 100
5745class VkPipelineDiscardRectangleStateCreateInfoEXT {
Jesse Hallfdc8ab32017-03-10 21:01:57 -08005746 VkStructureType sType
5747 const void* pNext
5748 VkPipelineDiscardRectangleStateCreateFlagsEXT flags
5749 VkDiscardRectangleModeEXT discardRectangleMode
5750 u32 discardRectangleCount
5751 const VkRect2D* pDiscardRectangles
Jesse Hallad250842017-03-10 18:35:38 -08005752}
5753
Jesse Hall35b4de12018-01-17 22:06:20 -08005754@extension("VK_EXT_conservative_rasterization") // 102
5755class VkPhysicalDeviceConservativeRasterizationPropertiesEXT {
5756 VkStructureType sType
5757 void* pNext
5758 f32 primitiveOverestimationSize
5759 f32 maxExtraPrimitiveOverestimationSize
5760 f32 extraPrimitiveOverestimationSizeGranularity
5761 VkBool32 primitiveUnderestimation
5762 VkBool32 conservativePointAndLineRasterization
5763 VkBool32 degenerateTrianglesRasterized
5764 VkBool32 degenerateLinesRasterized
5765 VkBool32 fullyCoveredFragmentShaderInputVariable
5766 VkBool32 conservativeRasterizationPostDepthCoverage
5767}
5768
5769@extension("VK_EXT_conservative_rasterization") // 102
5770class VkPipelineRasterizationConservativeStateCreateInfoEXT {
5771 VkStructureType sType
5772 const void* pNext
5773 VkPipelineRasterizationConservativeStateCreateFlagsEXT flags
5774 VkConservativeRasterizationModeEXT conservativeRasterizationMode
5775 f32 extraPrimitiveOverestimationSize
5776}
5777
Jesse Hallad250842017-03-10 18:35:38 -08005778@extension("VK_EXT_hdr_metadata") // 106
Courtney Goeltzenleuchterd634c482017-01-05 15:55:31 -07005779class VkXYColorEXT {
Jesse Hallfdc8ab32017-03-10 21:01:57 -08005780 f32 x
5781 f32 y
Courtney Goeltzenleuchterd634c482017-01-05 15:55:31 -07005782}
5783
Jesse Hallad250842017-03-10 18:35:38 -08005784@extension("VK_EXT_hdr_metadata") // 106
Courtney Goeltzenleuchterd634c482017-01-05 15:55:31 -07005785class VkHdrMetadataEXT {
Jesse Hallfdc8ab32017-03-10 21:01:57 -08005786 VkStructureType sType
5787 const void* pNext
5788 VkXYColorEXT displayPrimaryRed
5789 VkXYColorEXT displayPrimaryGreen
5790 VkXYColorEXT displayPrimaryBlue
5791 VkXYColorEXT whitePoint
5792 f32 maxLuminance
5793 f32 minLuminance
5794 f32 maxContentLightLevel
5795 f32 maxFrameAverageLightLevel
Courtney Goeltzenleuchterd634c482017-01-05 15:55:31 -07005796}
5797
Jesse Hall05556b12017-05-18 17:40:25 -07005798@extension("VK_KHR_shared_presentable_image") // 112
Chris Forbese2d3ee12017-03-16 16:10:15 +13005799class VkSharedPresentSurfaceCapabilitiesKHR {
5800 VkStructureType sType
5801 const void* pNext
5802 VkImageUsageFlags sharedPresentSupportedUsageFlags
5803}
5804
Jesse Hall9492f992017-08-28 12:10:06 -07005805@extension("VK_KHR_external_fence_capabilities") // 113
5806class VkPhysicalDeviceExternalFenceInfoKHR {
5807 VkStructureType sType
5808 const void* pNext
5809 VkExternalFenceHandleTypeFlagBitsKHR handleType
5810}
5811
5812@extension("VK_KHR_external_fence_capabilities") // 113
5813class VkExternalFencePropertiesKHR {
5814 VkStructureType sType
5815 void* pNext
5816 VkExternalFenceHandleTypeFlagsKHR exportFromImportedHandleTypes
5817 VkExternalFenceHandleTypeFlagsKHR compatibleHandleTypes
5818 VkExternalFenceFeatureFlagsKHR externalFenceFeatures
5819}
5820
5821@extension("VK_KHR_external_fence") // 114
5822class VkExportFenceCreateInfoKHR {
5823 VkStructureType sType
5824 const void* pNext
5825 VkExternalFenceHandleTypeFlagsKHR handleTypes
5826}
5827
5828@extension("VK_KHR_external_fence_win32") // 115
5829class VkImportFenceWin32HandleInfoKHR {
5830 VkStructureType sType
5831 const void* pNext
5832 VkFence fence
5833 VkFenceImportFlagsKHR flags
5834 VkExternalFenceHandleTypeFlagBitsKHR handleType
5835 platform.HANDLE handle
5836 platform.LPCWSTR name
5837}
5838
5839@extension("VK_KHR_external_fence_win32") // 115
5840class VkExportFenceWin32HandleInfoKHR {
5841 VkStructureType sType
5842 const void* pNext
5843 const platform.SECURITY_ATTRIBUTES* pAttributes
5844 platform.DWORD dwAccess
5845 platform.LPCWSTR name
5846}
5847
5848@extension("VK_KHR_external_fence_win32") // 115
5849class VkFenceGetWin32HandleInfoKHR {
5850 VkStructureType sType
5851 const void* pNext
5852 VkFence fence
5853 VkExternalFenceHandleTypeFlagBitsKHR handleType
5854}
5855
5856@extension("VK_KHR_external_fence_fd") // 116
5857class VkImportFenceFdInfoKHR {
5858 VkStructureType sType
5859 const void* pNext
5860 VkFence fence
5861 VkFenceImportFlagsKHR flags
5862 VkExternalFenceHandleTypeFlagBitsKHR handleType
5863 int fd
5864}
5865
5866@extension("VK_KHR_external_fence_fd") // 116
5867class VkFenceGetFdInfoKHR {
5868 VkStructureType sType
5869 const void* pNext
5870 VkFence fence
5871 VkExternalFenceHandleTypeFlagBitsKHR handleType
5872}
5873
Jesse Hall076f95d2017-09-20 11:34:47 -07005874@extension("VK_KHR_maintenance2") // 118
5875class VkPhysicalDevicePointClippingPropertiesKHR {
5876 VkStructureType sType
5877 void* pNext
5878 VkPointClippingBehaviorKHR pointClippingBehavior
5879}
5880
5881@extension("VK_KHR_maintenance2") // 118
5882class VkInputAttachmentAspectReferenceKHR {
5883 u32 subpass
5884 u32 inputAttachmentIndex
5885 VkImageAspectFlags aspectMask
5886}
5887
5888@extension("VK_KHR_maintenance2") // 118
5889class VkRenderPassInputAttachmentAspectCreateInfoKHR {
5890 VkStructureType sType
5891 const void* pNext
5892 u32 aspectReferenceCount
5893 const VkInputAttachmentAspectReferenceKHR* pAspectReferences
5894}
5895
5896@extension("VK_KHR_maintenance2") // 118
5897class VkImageViewUsageCreateInfoKHR {
5898 VkStructureType sType
5899 const void* pNext
5900 VkImageUsageFlags usage
5901}
5902
5903@extension("VK_KHR_maintenance2") // 118
5904class VkPipelineTessellationDomainOriginStateCreateInfoKHR {
5905 VkStructureType sType
5906 const void* pNext
5907 VkTessellationDomainOriginKHR domainOrigin
5908}
5909
Jesse Hall05556b12017-05-18 17:40:25 -07005910@extension("VK_KHR_get_surface_capabilities2") // 120
Chris Forbese2d3ee12017-03-16 16:10:15 +13005911class VkPhysicalDeviceSurfaceInfo2KHR {
5912 VkStructureType sType
5913 const void* pNext
5914 VkSurfaceKHR surface
5915}
5916
Jesse Hall05556b12017-05-18 17:40:25 -07005917@extension("VK_KHR_get_surface_capabilities2") // 120
Chris Forbese2d3ee12017-03-16 16:10:15 +13005918class VkSurfaceCapabilities2KHR {
5919 VkStructureType sType
5920 void* pNext
5921 VkSurfaceCapabilitiesKHR surfaceCapabilities
5922}
5923
Jesse Hall05556b12017-05-18 17:40:25 -07005924@extension("VK_KHR_get_surface_capabilities2") // 120
Chris Forbese2d3ee12017-03-16 16:10:15 +13005925class VkSurfaceFormat2KHR {
5926 VkStructureType sType
5927 void* pNext
5928 VkSurfaceFormatKHR surfaceFormat
5929}
5930
Jesse Hall9492f992017-08-28 12:10:06 -07005931@extension("VK_KHR_variable_pointers") // 121
5932class VkPhysicalDeviceVariablePointerFeaturesKHR {
5933 VkStructureType sType
5934 void* pNext
5935 VkBool32 variablePointersStorageBuffer
5936 VkBool32 variablePointers
5937}
5938
Jesse Hallad250842017-03-10 18:35:38 -08005939@extension("VK_MVK_ios_surface") // 123
5940class VkIOSSurfaceCreateInfoMVK {
5941 VkStructureType sType
5942 const void* pNext
5943 VkIOSSurfaceCreateFlagsMVK flags
5944 const void* pView
5945}
5946
5947@extension("VK_MVK_macos_surface") // 124
5948class VkMacOSSurfaceCreateInfoMVK {
5949 VkStructureType sType
5950 const void* pNext
5951 VkMacOSSurfaceCreateFlagsMVK flags
5952 const void* pView
5953}
5954
Jesse Hall9492f992017-08-28 12:10:06 -07005955@extension("VK_KHR_dedicated_allocation") // 128
5956class VkMemoryDedicatedRequirementsKHR {
5957 VkStructureType sType
5958 void* pNext
5959 VkBool32 prefersDedicatedAllocation
5960 VkBool32 requiresDedicatedAllocation
5961}
5962
5963@extension("VK_KHR_dedicated_allocation") // 128
5964class VkMemoryDedicatedAllocateInfoKHR {
5965 VkStructureType sType
5966 const void* pNext
5967 VkImage image
5968 VkBuffer buffer
5969}
5970
Jesse Hall35b4de12018-01-17 22:06:20 -08005971@extension("VK_EXT_debug_utils") // 129
5972class VkDebugUtilsObjectNameInfoEXT {
5973 VkStructureType sType
5974 const void* pNext
5975 VkObjectType objectType
5976 u64 objectHandle
5977 const char* pObjectName
5978}
5979
5980@extension("VK_EXT_debug_utils") // 129
5981class VkDebugUtilsObjectTagInfoEXT {
5982 VkStructureType sType
5983 const void* pNext
5984 VkObjectType objectType
5985 u64 objectHandle
5986 u64 tagName
5987 platform.size_t tagSize
5988 const void* pTag
5989}
5990
5991@extension("VK_EXT_debug_utils") // 129
5992class VkDebugUtilsLabelEXT {
5993 VkStructureType sType
5994 const void* pNext
5995 const char* pLabelName
5996 f32[4] color
5997}
5998
5999@extension("VK_EXT_debug_utils") // 129
6000class VkDebugUtilsMessengerCallbackDataEXT {
6001 VkStructureType sType
6002 const void* pNext
6003 VkDebugUtilsMessengerCallbackDataFlagsEXT flags
6004 const char* pMessageIdName
6005 s32 messageIdNumber
6006 const char* pMessage
6007 u32 queueLabelCount
6008 VkDebugUtilsLabelEXT* pQueueLabels
6009 u32 cmdBufLabelCount
6010 VkDebugUtilsLabelEXT* pCmdBufLabels
6011 u32 objectCount
6012 VkDebugUtilsObjectNameInfoEXT* pObjects
6013}
6014
6015@extension("VK_EXT_debug_utils") // 129
6016class VkDebugUtilsMessengerCreateInfoEXT {
6017 VkStructureType sType
6018 const void* pNext
6019 VkDebugUtilsMessengerCreateFlagsEXT flags
6020 VkDebugUtilsMessageSeverityFlagsEXT messageSeverity
6021 VkDebugUtilsMessageTypeFlagsEXT messageType
6022 PFN_vkDebugUtilsMessengerCallbackEXT pfnUserCallback
6023 void* pUserData
6024}
6025
Jesse Hall7ba0ac72017-07-07 17:13:23 -07006026@extension("VK_EXT_sampler_filter_minmax") // 131
6027class VkSamplerReductionModeCreateInfoEXT {
6028 VkStructureType sType
6029 const void* pNext
6030 VkSamplerReductionModeEXT reductionMode
6031}
6032
6033@extension("VK_EXT_sampler_filter_minmax") // 131
6034class VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT {
6035 VkStructureType sType
6036 void* pNext
6037 VkBool32 filterMinmaxSingleComponentFormats
6038 VkBool32 filterMinmaxImageComponentMapping
6039}
6040
Jesse Hall77726222017-09-19 14:49:27 -05006041@extension("VK_EXT_sample_locations") // 144
6042class VkSampleLocationEXT {
6043 f32 x
6044 f32 y
6045}
6046
6047@extension("VK_EXT_sample_locations") // 144
6048class VkSampleLocationsInfoEXT {
6049 VkStructureType sType
6050 const void* pNext
6051 VkSampleCountFlagBits sampleLocationsPerPixel
6052 VkExtent2D sampleLocationGridSize
6053 u32 sampleLocationsCount
6054 const VkSampleLocationEXT* pSampleLocations
6055}
6056
6057@extension("VK_EXT_sample_locations") // 144
6058class VkAttachmentSampleLocationsEXT {
6059 u32 attachmentIndex
6060 VkSampleLocationsInfoEXT sampleLocationsInfo
6061}
6062
6063@extension("VK_EXT_sample_locations") // 144
6064class VkSubpassSampleLocationsEXT {
6065 u32 subpassIndex
6066 VkSampleLocationsInfoEXT sampleLocationsInfo
6067}
6068
6069@extension("VK_EXT_sample_locations") // 144
6070class VkRenderPassSampleLocationsBeginInfoEXT {
6071 VkStructureType sType
6072 const void* pNext
6073 u32 attachmentInitialSampleLocationsCount
6074 const VkAttachmentSampleLocationsEXT* pAttachmentInitialSampleLocations
6075 u32 postSubpassSampleLocationsCount
Jesse Hall35b4de12018-01-17 22:06:20 -08006076 const VkSubpassSampleLocationsEXT* pPostSubpassSampleLocations
Jesse Hall77726222017-09-19 14:49:27 -05006077}
6078
6079@extension("VK_EXT_sample_locations") // 144
6080class VkPipelineSampleLocationsStateCreateInfoEXT {
6081 VkStructureType sType
6082 const void* pNext
6083 VkBool32 sampleLocationsEnable
6084 VkSampleLocationsInfoEXT sampleLocationsInfo
6085}
6086
6087@extension("VK_EXT_sample_locations") // 144
6088class VkPhysicalDeviceSampleLocationsPropertiesEXT {
6089 VkStructureType sType
6090 void* pNext
6091 VkSampleCountFlags sampleLocationSampleCounts
6092 VkExtent2D maxSampleLocationGridSize
6093 f32[2] sampleLocationCoordinateRange
6094 u32 sampleLocationSubPixelBits
6095 VkBool32 variableSampleLocations
6096}
6097
6098@extension("VK_EXT_sample_locations") // 144
6099class VkMultisamplePropertiesEXT {
6100 VkStructureType sType
6101 void* pNext
6102 VkExtent2D maxSampleLocationGridSize
6103}
6104
Jesse Hall9492f992017-08-28 12:10:06 -07006105@extension("VK_KHR_get_memory_requirements2") // 147
6106class VkBufferMemoryRequirementsInfo2KHR {
6107 VkStructureType sType
6108 const void* pNext
6109 VkBuffer buffer
6110}
6111
6112@extension("VK_KHR_get_memory_requirements2") // 147
6113class VkImageMemoryRequirementsInfo2KHR {
6114 VkStructureType sType
6115 const void* pNext
6116 VkImage image
6117}
6118
6119@extension("VK_KHR_get_memory_requirements2") // 147
6120class VkImageSparseMemoryRequirementsInfo2KHR {
6121 VkStructureType sType
6122 const void* pNext
6123 VkImage image
6124}
6125
6126@extension("VK_KHR_get_memory_requirements2") // 147
6127class VkMemoryRequirements2KHR {
6128 VkStructureType sType
6129 void* pNext
6130 VkMemoryRequirements memoryRequirements
6131}
6132
6133@extension("VK_KHR_get_memory_requirements2") // 147
6134class VkSparseImageMemoryRequirements2KHR {
6135 VkStructureType sType
6136 void* pNext
6137 VkSparseImageMemoryRequirements memoryRequirements
6138}
6139
Jesse Hall076f95d2017-09-20 11:34:47 -07006140@extension("VK_KHR_image_format_list") // 148
6141class VkImageFormatListCreateInfoKHR {
6142 VkStructureType sType
6143 const void* pNext
6144 u32 viewFormatCount
6145 const VkFormat* pViewFormats
6146}
6147
Jesse Hall7ba0ac72017-07-07 17:13:23 -07006148@extension("VK_EXT_blend_operation_advanced") // 149
6149class VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT {
6150 VkStructureType sType
6151 void* pNext
6152 VkBool32 advancedBlendCoherentOperations
6153}
6154
6155@extension("VK_EXT_blend_operation_advanced") // 149
6156class VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT {
6157 VkStructureType sType
6158 void* pNext
6159 u32 advancedBlendMaxColorAttachments
6160 VkBool32 advancedBlendIndependentBlend
6161 VkBool32 advancedBlendNonPremultipliedSrcColor
6162 VkBool32 advancedBlendNonPremultipliedDstColor
6163 VkBool32 advancedBlendCorrelatedOverlap
6164 VkBool32 advancedBlendAllOperations
6165}
6166
6167@extension("VK_EXT_blend_operation_advanced") // 149
6168class VkPipelineColorBlendAdvancedStateCreateInfoEXT {
6169 VkStructureType sType
6170 const void* pNext
6171 VkBool32 srcPremultiplied
6172 VkBool32 dstPremultiplied
6173 VkBlendOverlapEXT blendOverlap
6174}
6175
6176@extension("VK_NV_fragment_coverage_to_color") // 150
6177class VkPipelineCoverageToColorStateCreateInfoNV {
6178 VkStructureType sType
6179 const void* pNext
6180 VkPipelineCoverageToColorStateCreateFlagsNV flags
6181 VkBool32 coverageToColorEnable
6182 u32 coverageToColorLocation
6183}
6184
6185@extension("VK_NV_framebuffer_mixed_samples") // 153
6186class VkPipelineCoverageModulationStateCreateInfoNV {
6187 VkStructureType sType
6188 const void* pNext
6189 VkPipelineCoverageModulationStateCreateFlagsNV flags
6190 VkCoverageModulationModeNV coverageModulationMode
6191 VkBool32 coverageModulationTableEnable
6192 u32 coverageModulationTableCount
6193 const f32* pCoverageModulationTable
6194}
6195
Jesse Hall076f95d2017-09-20 11:34:47 -07006196@extension("VK_KHR_sampler_ycbcr_conversion") // 157
6197class VkSamplerYcbcrConversionCreateInfoKHR {
6198 VkStructureType sType
6199 const void* pNext
6200 VkFormat format
6201 VkSamplerYcbcrModelConversionKHR ycbcrModel
6202 VkSamplerYcbcrRangeKHR ycbcrRange
6203 VkComponentMapping components
6204 VkChromaLocationKHR xChromaOffset
6205 VkChromaLocationKHR yChromaOffset
6206 VkFilter chromaFilter
6207 VkBool32 forceExplicitReconstruction
6208}
6209
6210@extension("VK_KHR_sampler_ycbcr_conversion") // 157
6211class VkSamplerYcbcrConversionInfoKHR {
6212 VkStructureType sType
6213 const void* pNext
6214 VkSamplerYcbcrConversionKHR conversion
6215}
6216
6217@extension("VK_KHR_sampler_ycbcr_conversion") // 157
6218class VkBindImagePlaneMemoryInfoKHR {
6219 VkStructureType sType
6220 const void* pNext
6221 VkImageAspectFlagBits planeAspect
6222}
6223
6224@extension("VK_KHR_sampler_ycbcr_conversion") // 157
6225class VkImagePlaneMemoryRequirementsInfoKHR {
6226 VkStructureType sType
6227 const void* pNext
6228 VkImageAspectFlagBits planeAspect
6229}
6230
6231@extension("VK_KHR_sampler_ycbcr_conversion") // 157
6232class VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR {
6233 VkStructureType sType
6234 void* pNext
6235 VkBool32 samplerYcbcrConversion
6236}
6237
6238@extension("VK_KHR_sampler_ycbcr_conversion") // 157
6239class VkSamplerYcbcrConversionImageFormatPropertiesKHR {
6240 VkStructureType sType
6241 void* pNext
6242 u32 combinedImageSamplerDescriptorCount
6243}
6244
6245@extension("VK_KHR_bind_memory2") // 158
6246class VkBindBufferMemoryInfoKHR {
6247 VkStructureType sType
6248 const void* pNext
6249 VkBuffer buffer
6250 VkDeviceMemory memory
6251 VkDeviceSize memoryOffset
6252}
6253
6254@extension("VK_KHR_bind_memory2") // 158
6255class VkBindImageMemoryInfoKHR {
6256 VkStructureType sType
6257 const void* pNext
6258 VkImage image
6259 VkDeviceMemory memory
6260 VkDeviceSize memoryOffset
6261}
6262
Jesse Hall77726222017-09-19 14:49:27 -05006263@extension("VK_EXT_validation_cache") // 161
6264class VkValidationCacheCreateInfoEXT {
6265 VkStructureType sType
6266 const void* pNext
6267 VkValidationCacheCreateFlagsEXT flags
6268 platform.size_t initialDataSize
6269 const void* pInitialData
6270}
6271
6272@extension("VK_EXT_validation_cache") // 161
6273class VkShaderModuleValidationCacheCreateInfoEXT {
6274 VkStructureType sType
6275 const void* pNext
6276 VkValidationCacheEXT validationCache
6277}
6278
Daniel Kochf25f5bb2017-10-05 00:26:58 -04006279@extension("VK_KHR_maintenance3") // 169
6280class VkPhysicalDeviceMaintenance3PropertiesKHR {
6281 VkStructureType sType
6282 void* pNext
6283 u32 maxPerSetDescriptors
6284 VkDeviceSize maxMemoryAllocationSize
6285}
6286
6287@extension("VK_KHR_maintenance3") // 169
6288class VkDescriptorSetLayoutSupportKHR {
6289 VkStructureType sType
6290 void* pNext
6291 VkBool32 supported
6292}
6293
Jesse Hall35b4de12018-01-17 22:06:20 -08006294@extension("VK_EXT_global_priority") // 175
6295class VkDeviceQueueGlobalPriorityCreateInfoEXT {
6296 VkStructureType sType
6297 const void* pNext
6298 VkQueueGlobalPriorityEXT globalPriority
6299}
6300
6301@extension("VK_EXT_external_memory_host") // 179
6302class VkImportMemoryHostPointerInfoEXT {
6303 VkStructureType sType
6304 const void* pNext
6305 VkExternalMemoryHandleTypeFlagBits handleType
6306 void* pHostPointer
6307}
6308
6309@extension("VK_EXT_external_memory_host") // 179
6310class VkMemoryHostPointerPropertiesEXT {
6311 VkStructureType sType
6312 void* pNext
6313 u32 memoryTypeBits
6314}
6315
6316@extension("VK_EXT_external_memory_host") // 179
6317class VkPhysicalDeviceExternalMemoryHostPropertiesEXT {
6318 VkStructureType sType
6319 void* pNext
6320 VkDeviceSize minImportedHostPointerAlignment
6321}
6322
Daniel Kochf25f5bb2017-10-05 00:26:58 -04006323
Jesse Halld27f6aa2015-08-15 17:58:48 -07006324////////////////
6325// Commands //
6326////////////////
6327
6328// Function pointers. TODO: add support for function pointers.
6329
6330@external type void* PFN_vkVoidFunction
6331@pfn cmd void vkVoidFunction() {
6332}
6333
Jesse Hall3fbc8562015-11-29 22:10:52 -08006334@external type void* PFN_vkAllocationFunction
6335@pfn cmd void* vkAllocationFunction(
Jesse Halld27f6aa2015-08-15 17:58:48 -07006336 void* pUserData,
6337 platform.size_t size,
6338 platform.size_t alignment,
Jesse Hall3fbc8562015-11-29 22:10:52 -08006339 VkSystemAllocationScope allocationScope) {
Jesse Hall03b6fe12015-11-24 12:44:21 -08006340 return ?
6341}
6342
Jesse Hall3fbc8562015-11-29 22:10:52 -08006343@external type void* PFN_vkReallocationFunction
6344@pfn cmd void* vkReallocationFunction(
Jesse Hall03b6fe12015-11-24 12:44:21 -08006345 void* pUserData,
6346 void* pOriginal,
6347 platform.size_t size,
6348 platform.size_t alignment,
Jesse Hall3fbc8562015-11-29 22:10:52 -08006349 VkSystemAllocationScope allocationScope) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07006350 return ?
6351}
6352
6353@external type void* PFN_vkFreeFunction
6354@pfn cmd void vkFreeFunction(
6355 void* pUserData,
Jesse Hall3fbc8562015-11-29 22:10:52 -08006356 void* pMemory) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07006357}
6358
Jesse Hall3fbc8562015-11-29 22:10:52 -08006359@external type void* PFN_vkInternalAllocationNotification
6360@pfn cmd void vkInternalAllocationNotification(
Jesse Hall03b6fe12015-11-24 12:44:21 -08006361 void* pUserData,
6362 platform.size_t size,
Jesse Hall3fbc8562015-11-29 22:10:52 -08006363 VkInternalAllocationType allocationType,
6364 VkSystemAllocationScope allocationScope) {
Jesse Hall03b6fe12015-11-24 12:44:21 -08006365}
6366
6367@external type void* PFN_vkInternalFreeNotification
6368@pfn cmd void vkInternalFreeNotification(
6369 void* pUserData,
6370 platform.size_t size,
Jesse Hall3fbc8562015-11-29 22:10:52 -08006371 VkInternalAllocationType allocationType,
6372 VkSystemAllocationScope allocationScope) {
Jesse Hall03b6fe12015-11-24 12:44:21 -08006373}
Jesse Halld27f6aa2015-08-15 17:58:48 -07006374
6375// Global functions
6376
6377@threadSafety("system")
6378cmd VkResult vkCreateInstance(
6379 const VkInstanceCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08006380 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07006381 VkInstance* pInstance) {
6382 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO)
6383
6384 instance := ?
6385 pInstance[0] = instance
6386 State.Instances[instance] = new!InstanceObject()
6387
Jesse Hall3dd678a2016-01-08 21:52:01 -08006388 layers := pCreateInfo.ppEnabledLayerNames[0:pCreateInfo.enabledLayerCount]
6389 extensions := pCreateInfo.ppEnabledExtensionNames[0:pCreateInfo.enabledExtensionCount]
Jesse Halld27f6aa2015-08-15 17:58:48 -07006390
6391 return ?
6392}
6393
6394@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07006395cmd void vkDestroyInstance(
Jesse Hall03b6fe12015-11-24 12:44:21 -08006396 VkInstance instance,
Jesse Hall3fbc8562015-11-29 22:10:52 -08006397 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07006398 instanceObject := GetInstance(instance)
6399
6400 State.Instances[instance] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07006401}
6402
6403@threadSafety("system")
6404cmd VkResult vkEnumeratePhysicalDevices(
6405 VkInstance instance,
6406 u32* pPhysicalDeviceCount,
6407 VkPhysicalDevice* pPhysicalDevices) {
6408 instanceObject := GetInstance(instance)
6409
6410 physicalDeviceCount := as!u32(?)
6411 pPhysicalDeviceCount[0] = physicalDeviceCount
6412 physicalDevices := pPhysicalDevices[0:physicalDeviceCount]
6413
6414 for i in (0 .. physicalDeviceCount) {
6415 physicalDevice := ?
6416 physicalDevices[i] = physicalDevice
6417 if !(physicalDevice in State.PhysicalDevices) {
6418 State.PhysicalDevices[physicalDevice] = new!PhysicalDeviceObject(instance: instance)
6419 }
6420 }
6421
6422 return ?
6423}
6424
6425cmd PFN_vkVoidFunction vkGetDeviceProcAddr(
6426 VkDevice device,
6427 const char* pName) {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07006428 if device != NULL_HANDLE {
Jesse Halld27f6aa2015-08-15 17:58:48 -07006429 device := GetDevice(device)
6430 }
6431
6432 return ?
6433}
6434
6435cmd PFN_vkVoidFunction vkGetInstanceProcAddr(
6436 VkInstance instance,
6437 const char* pName) {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07006438 if instance != NULL_HANDLE {
Jesse Halld27f6aa2015-08-15 17:58:48 -07006439 instanceObject := GetInstance(instance)
6440 }
6441
6442 return ?
6443}
6444
Jesse Hall606a54e2015-11-19 22:17:28 -08006445cmd void vkGetPhysicalDeviceProperties(
Jesse Halld27f6aa2015-08-15 17:58:48 -07006446 VkPhysicalDevice physicalDevice,
6447 VkPhysicalDeviceProperties* pProperties) {
6448 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
6449
6450 properties := ?
6451 pProperties[0] = properties
Jesse Halld27f6aa2015-08-15 17:58:48 -07006452}
6453
Jesse Hall606a54e2015-11-19 22:17:28 -08006454cmd void vkGetPhysicalDeviceQueueFamilyProperties(
Jesse Halld27f6aa2015-08-15 17:58:48 -07006455 VkPhysicalDevice physicalDevice,
Jesse Hall03b6fe12015-11-24 12:44:21 -08006456 u32* pQueueFamilyPropertyCount,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07006457 VkQueueFamilyProperties* pQueueFamilyProperties) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07006458 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
Jesse Hall5ae3abb2015-10-08 14:00:22 -07006459 // TODO: Figure out how to express fetch-count-or-properties
6460 // This version fails 'apic validate' with 'fence not allowed in
6461 // *semantic.Branch'. Other attempts have failed with the same or other
6462 // errors.
6463 // if pQueueFamilyProperties != null {
6464 // queuesProperties := pQueueFamilyProperties[0:pCount[0]]
6465 // for i in (0 .. pCount[0]) {
6466 // queueProperties := as!VkQueueFamilyProperties(?)
6467 // queuesProperties[i] = queueProperties
6468 // }
6469 // } else {
6470 // count := ?
6471 // pCount[0] = count
6472 // }
Jesse Halld27f6aa2015-08-15 17:58:48 -07006473}
6474
Jesse Hall606a54e2015-11-19 22:17:28 -08006475cmd void vkGetPhysicalDeviceMemoryProperties(
Jesse Halld27f6aa2015-08-15 17:58:48 -07006476 VkPhysicalDevice physicalDevice,
6477 VkPhysicalDeviceMemoryProperties* pMemoryProperties) {
6478 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
6479
6480 memoryProperties := ?
6481 pMemoryProperties[0] = memoryProperties
Jesse Halld27f6aa2015-08-15 17:58:48 -07006482}
6483
Jesse Hall606a54e2015-11-19 22:17:28 -08006484cmd void vkGetPhysicalDeviceFeatures(
Jesse Halld27f6aa2015-08-15 17:58:48 -07006485 VkPhysicalDevice physicalDevice,
6486 VkPhysicalDeviceFeatures* pFeatures) {
6487 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
6488
6489 features := ?
6490 pFeatures[0] = features
Jesse Halld27f6aa2015-08-15 17:58:48 -07006491}
6492
Jesse Hall606a54e2015-11-19 22:17:28 -08006493cmd void vkGetPhysicalDeviceFormatProperties(
Jesse Halld27f6aa2015-08-15 17:58:48 -07006494 VkPhysicalDevice physicalDevice,
6495 VkFormat format,
6496 VkFormatProperties* pFormatProperties) {
6497 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
6498
6499 formatProperties := ?
6500 pFormatProperties[0] = formatProperties
Jesse Halld27f6aa2015-08-15 17:58:48 -07006501}
6502
Jesse Halla9e57032015-11-30 01:03:10 -08006503cmd VkResult vkGetPhysicalDeviceImageFormatProperties(
Jesse Halld27f6aa2015-08-15 17:58:48 -07006504 VkPhysicalDevice physicalDevice,
6505 VkFormat format,
6506 VkImageType type,
6507 VkImageTiling tiling,
6508 VkImageUsageFlags usage,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07006509 VkImageCreateFlags flags,
Jesse Halld27f6aa2015-08-15 17:58:48 -07006510 VkImageFormatProperties* pImageFormatProperties) {
6511 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
6512
6513 imageFormatProperties := ?
6514 pImageFormatProperties[0] = imageFormatProperties
Jesse Halla9e57032015-11-30 01:03:10 -08006515
6516 return ?
Jesse Halld27f6aa2015-08-15 17:58:48 -07006517}
6518
Jesse Halld27f6aa2015-08-15 17:58:48 -07006519
6520// Device functions
6521
6522@threadSafety("system")
6523cmd VkResult vkCreateDevice(
6524 VkPhysicalDevice physicalDevice,
6525 const VkDeviceCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08006526 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07006527 VkDevice* pDevice) {
6528 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO)
6529 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
6530
6531 device := ?
6532 pDevice[0] = device
6533 State.Devices[device] = new!DeviceObject(physicalDevice: physicalDevice)
6534
6535 return ?
6536}
6537
6538@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07006539cmd void vkDestroyDevice(
Jesse Hall03b6fe12015-11-24 12:44:21 -08006540 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08006541 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07006542 deviceObject := GetDevice(device)
6543
6544 State.Devices[device] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07006545}
6546
6547
6548// Extension discovery functions
6549
Jesse Hall5ae3abb2015-10-08 14:00:22 -07006550cmd VkResult vkEnumerateInstanceLayerProperties(
Jesse Hall03b6fe12015-11-24 12:44:21 -08006551 u32* pPropertyCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07006552 VkLayerProperties* pProperties) {
6553 count := as!u32(?)
Jesse Hall03b6fe12015-11-24 12:44:21 -08006554 pPropertyCount[0] = count
Jesse Halld27f6aa2015-08-15 17:58:48 -07006555
6556 properties := pProperties[0:count]
6557 for i in (0 .. count) {
6558 property := ?
6559 properties[i] = property
6560 }
6561
6562 return ?
6563}
6564
Jesse Hall5ae3abb2015-10-08 14:00:22 -07006565cmd VkResult vkEnumerateInstanceExtensionProperties(
Jesse Halld27f6aa2015-08-15 17:58:48 -07006566 const char* pLayerName,
Jesse Hall03b6fe12015-11-24 12:44:21 -08006567 u32* pPropertyCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07006568 VkExtensionProperties* pProperties) {
6569 count := as!u32(?)
Jesse Hall03b6fe12015-11-24 12:44:21 -08006570 pPropertyCount[0] = count
Jesse Halld27f6aa2015-08-15 17:58:48 -07006571
6572 properties := pProperties[0:count]
6573 for i in (0 .. count) {
6574 property := ?
6575 properties[i] = property
6576 }
6577
6578 return ?
6579}
6580
Jesse Hall5ae3abb2015-10-08 14:00:22 -07006581cmd VkResult vkEnumerateDeviceLayerProperties(
Jesse Halld27f6aa2015-08-15 17:58:48 -07006582 VkPhysicalDevice physicalDevice,
Jesse Hall03b6fe12015-11-24 12:44:21 -08006583 u32* pPropertyCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07006584 VkLayerProperties* pProperties) {
6585 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
6586 count := as!u32(?)
Jesse Hall03b6fe12015-11-24 12:44:21 -08006587 pPropertyCount[0] = count
Jesse Halld27f6aa2015-08-15 17:58:48 -07006588
6589 properties := pProperties[0:count]
6590 for i in (0 .. count) {
6591 property := ?
6592 properties[i] = property
6593 }
6594
6595 return ?
6596}
6597
Jesse Hall5ae3abb2015-10-08 14:00:22 -07006598cmd VkResult vkEnumerateDeviceExtensionProperties(
Jesse Halld27f6aa2015-08-15 17:58:48 -07006599 VkPhysicalDevice physicalDevice,
6600 const char* pLayerName,
Jesse Hall03b6fe12015-11-24 12:44:21 -08006601 u32* pPropertyCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07006602 VkExtensionProperties* pProperties) {
6603 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
6604
6605 count := as!u32(?)
Jesse Hall03b6fe12015-11-24 12:44:21 -08006606 pPropertyCount[0] = count
Jesse Halld27f6aa2015-08-15 17:58:48 -07006607
6608 properties := pProperties[0:count]
6609 for i in (0 .. count) {
6610 property := ?
6611 properties[i] = property
6612 }
6613
6614 return ?
6615}
6616
6617
6618// Queue functions
6619
6620@threadSafety("system")
Jesse Hall606a54e2015-11-19 22:17:28 -08006621cmd void vkGetDeviceQueue(
Jesse Halld27f6aa2015-08-15 17:58:48 -07006622 VkDevice device,
6623 u32 queueFamilyIndex,
6624 u32 queueIndex,
6625 VkQueue* pQueue) {
6626 deviceObject := GetDevice(device)
6627
6628 queue := ?
6629 pQueue[0] = queue
6630
6631 if !(queue in State.Queues) {
6632 State.Queues[queue] = new!QueueObject(device: device)
6633 }
Jesse Halld27f6aa2015-08-15 17:58:48 -07006634}
6635
6636@threadSafety("app")
6637cmd VkResult vkQueueSubmit(
6638 VkQueue queue,
Jesse Halla366a512015-11-19 22:30:07 -08006639 u32 submitCount,
Jesse Hallb00daad2015-11-29 19:46:20 -08006640 const VkSubmitInfo* pSubmits,
Jesse Halld27f6aa2015-08-15 17:58:48 -07006641 VkFence fence) {
6642 queueObject := GetQueue(queue)
6643
Jesse Hall5ae3abb2015-10-08 14:00:22 -07006644 if fence != NULL_HANDLE {
Jesse Halld27f6aa2015-08-15 17:58:48 -07006645 fenceObject := GetFence(fence)
6646 assert(fenceObject.device == queueObject.device)
6647 }
6648
Jesse Hall3fbc8562015-11-29 22:10:52 -08006649 // commandBuffers := pcommandBuffers[0:commandBufferCount]
6650 // for i in (0 .. commandBufferCount) {
6651 // commandBuffer := commandBuffers[i]
6652 // commandBufferObject := GetCommandBuffer(commandBuffer)
6653 // assert(commandBufferObject.device == queueObject.device)
Jesse Halla366a512015-11-19 22:30:07 -08006654 //
Jesse Hall3fbc8562015-11-29 22:10:52 -08006655 // validate("QueueCheck", commandBufferObject.queueFlags in queueObject.flags,
6656 // "vkQueueSubmit: enqueued commandBuffer requires missing queue capabilities.")
Jesse Halla366a512015-11-19 22:30:07 -08006657 // }
Jesse Halld27f6aa2015-08-15 17:58:48 -07006658
6659 return ?
6660}
6661
6662@threadSafety("system")
6663cmd VkResult vkQueueWaitIdle(
6664 VkQueue queue) {
6665 queueObject := GetQueue(queue)
6666
6667 return ?
6668}
6669
6670@threadSafety("system")
6671cmd VkResult vkDeviceWaitIdle(
6672 VkDevice device) {
6673 deviceObject := GetDevice(device)
6674
6675 return ?
6676}
6677
6678
6679// Memory functions
6680
6681@threadSafety("system")
Jesse Hall3fbc8562015-11-29 22:10:52 -08006682cmd VkResult vkAllocateMemory(
Jesse Halld27f6aa2015-08-15 17:58:48 -07006683 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08006684 const VkMemoryAllocateInfo* pAllocateInfo,
6685 const VkAllocationCallbacks* pAllocator,
6686 VkDeviceMemory* pMemory) {
Jesse Hallf4ab2b12015-11-30 16:04:55 -08006687 assert(pAllocateInfo.sType == VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO)
Jesse Halld27f6aa2015-08-15 17:58:48 -07006688 deviceObject := GetDevice(device)
6689
Jesse Hall3fbc8562015-11-29 22:10:52 -08006690 memory := ?
6691 pMemory[0] = memory
6692 State.DeviceMemories[memory] = new!DeviceMemoryObject(
Jesse Halld27f6aa2015-08-15 17:58:48 -07006693 device: device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08006694 allocationSize: pAllocateInfo[0].allocationSize)
Jesse Halld27f6aa2015-08-15 17:58:48 -07006695
6696 return ?
6697}
6698
6699@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07006700cmd void vkFreeMemory(
Jesse Halld27f6aa2015-08-15 17:58:48 -07006701 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08006702 VkDeviceMemory memory,
6703 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07006704 deviceObject := GetDevice(device)
Jesse Hall3fbc8562015-11-29 22:10:52 -08006705 memoryObject := GetDeviceMemory(memory)
6706 assert(memoryObject.device == device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07006707
6708 // Check that no objects are still bound before freeing.
Jesse Hall3fbc8562015-11-29 22:10:52 -08006709 validate("MemoryCheck", len(memoryObject.boundObjects) == 0,
Jesse Halld27f6aa2015-08-15 17:58:48 -07006710 "vkFreeMemory: objects still bound")
Jesse Hall3fbc8562015-11-29 22:10:52 -08006711 validate("MemoryCheck", len(memoryObject.boundCommandBuffers) == 0,
6712 "vkFreeMemory: commandBuffers still bound")
6713 State.DeviceMemories[memory] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07006714}
6715
6716@threadSafety("app")
6717cmd VkResult vkMapMemory(
6718 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08006719 VkDeviceMemory memory,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07006720 VkDeviceSize offset,
6721 VkDeviceSize size,
Jesse Halld27f6aa2015-08-15 17:58:48 -07006722 VkMemoryMapFlags flags,
6723 void** ppData) {
6724 deviceObject := GetDevice(device)
Jesse Hall3fbc8562015-11-29 22:10:52 -08006725 memoryObject := GetDeviceMemory(memory)
6726 assert(memoryObject.device == device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07006727
6728 assert(flags == as!VkMemoryMapFlags(0))
Jesse Hall3fbc8562015-11-29 22:10:52 -08006729 assert((offset + size) <= memoryObject.allocationSize)
Jesse Halld27f6aa2015-08-15 17:58:48 -07006730
6731 return ?
6732}
6733
6734@threadSafety("app")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07006735cmd void vkUnmapMemory(
Jesse Halld27f6aa2015-08-15 17:58:48 -07006736 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08006737 VkDeviceMemory memory) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07006738 deviceObject := GetDevice(device)
Jesse Hall3fbc8562015-11-29 22:10:52 -08006739 memoryObject := GetDeviceMemory(memory)
6740 assert(memoryObject.device == device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07006741}
6742
6743cmd VkResult vkFlushMappedMemoryRanges(
6744 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08006745 u32 memoryRangeCount
6746 const VkMappedMemoryRange* pMemoryRanges) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07006747 deviceObject := GetDevice(device)
6748
Jesse Hall3fbc8562015-11-29 22:10:52 -08006749 memoryRanges := pMemoryRanges[0:memoryRangeCount]
6750 for i in (0 .. memoryRangeCount) {
6751 memoryRange := memoryRanges[i]
6752 memoryObject := GetDeviceMemory(memoryRange.memory)
6753 assert(memoryObject.device == device)
6754 assert((memoryRange.offset + memoryRange.size) <= memoryObject.allocationSize)
Jesse Halld27f6aa2015-08-15 17:58:48 -07006755 }
6756
6757 return ?
6758}
6759
6760cmd VkResult vkInvalidateMappedMemoryRanges(
6761 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08006762 u32 memoryRangeCount,
6763 const VkMappedMemoryRange* pMemoryRanges) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07006764 deviceObject := GetDevice(device)
6765
Jesse Hall3fbc8562015-11-29 22:10:52 -08006766 memoryRanges := pMemoryRanges[0:memoryRangeCount]
6767 for i in (0 .. memoryRangeCount) {
6768 memoryRange := memoryRanges[i]
6769 memoryObject := GetDeviceMemory(memoryRange.memory)
6770 assert(memoryObject.device == device)
6771 assert((memoryRange.offset + memoryRange.size) <= memoryObject.allocationSize)
Jesse Halld27f6aa2015-08-15 17:58:48 -07006772 }
6773
6774 return ?
6775}
6776
6777
6778// Memory management API functions
6779
Jesse Hall606a54e2015-11-19 22:17:28 -08006780cmd void vkGetDeviceMemoryCommitment(
Jesse Halld27f6aa2015-08-15 17:58:48 -07006781 VkDevice device,
6782 VkDeviceMemory memory,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07006783 VkDeviceSize* pCommittedMemoryInBytes) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07006784 deviceObject := GetDevice(device)
6785
Jesse Hall5ae3abb2015-10-08 14:00:22 -07006786 if memory != NULL_HANDLE {
Jesse Halld27f6aa2015-08-15 17:58:48 -07006787 memoryObject := GetDeviceMemory(memory)
6788 assert(memoryObject.device == device)
6789 }
6790
6791 committedMemoryInBytes := ?
6792 pCommittedMemoryInBytes[0] = committedMemoryInBytes
Jesse Halld27f6aa2015-08-15 17:58:48 -07006793}
6794
Jesse Hall606a54e2015-11-19 22:17:28 -08006795cmd void vkGetBufferMemoryRequirements(
Jesse Halld27f6aa2015-08-15 17:58:48 -07006796 VkDevice device,
6797 VkBuffer buffer,
6798 VkMemoryRequirements* pMemoryRequirements) {
6799 deviceObject := GetDevice(device)
6800 bufferObject := GetBuffer(buffer)
6801 assert(bufferObject.device == device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07006802}
6803
6804cmd VkResult vkBindBufferMemory(
6805 VkDevice device,
6806 VkBuffer buffer,
Jesse Hall3fbc8562015-11-29 22:10:52 -08006807 VkDeviceMemory memory,
6808 VkDeviceSize memoryOffset) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07006809 deviceObject := GetDevice(device)
6810 bufferObject := GetBuffer(buffer)
6811 assert(bufferObject.device == device)
6812
6813 // Unbind buffer from previous memory object, if not VK_NULL_HANDLE.
Jesse Hall3fbc8562015-11-29 22:10:52 -08006814 if bufferObject.memory != NULL_HANDLE {
6815 memoryObject := GetDeviceMemory(bufferObject.memory)
6816 memoryObject.boundObjects[as!u64(buffer)] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07006817 }
6818
6819 // Bind buffer to given memory object, if not VK_NULL_HANDLE.
Jesse Hall3fbc8562015-11-29 22:10:52 -08006820 if memory != NULL_HANDLE {
6821 memoryObject := GetDeviceMemory(memory)
6822 assert(memoryObject.device == device)
6823 memoryObject.boundObjects[as!u64(buffer)] = memoryOffset
Jesse Halld27f6aa2015-08-15 17:58:48 -07006824 }
Jesse Hall3fbc8562015-11-29 22:10:52 -08006825 bufferObject.memory = memory
6826 bufferObject.memoryOffset = memoryOffset
Jesse Halld27f6aa2015-08-15 17:58:48 -07006827
6828 return ?
6829}
6830
Jesse Hall606a54e2015-11-19 22:17:28 -08006831cmd void vkGetImageMemoryRequirements(
Jesse Halld27f6aa2015-08-15 17:58:48 -07006832 VkDevice device,
6833 VkImage image,
6834 VkMemoryRequirements* pMemoryRequirements) {
6835 deviceObject := GetDevice(device)
6836 imageObject := GetImage(image)
6837 assert(imageObject.device == device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07006838}
6839
6840cmd VkResult vkBindImageMemory(
6841 VkDevice device,
6842 VkImage image,
Jesse Hall3fbc8562015-11-29 22:10:52 -08006843 VkDeviceMemory memory,
6844 VkDeviceSize memoryOffset) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07006845 deviceObject := GetDevice(device)
6846 imageObject := GetImage(image)
6847 assert(imageObject.device == device)
6848
6849 // Unbind image from previous memory object, if not VK_NULL_HANDLE.
Jesse Hall3fbc8562015-11-29 22:10:52 -08006850 if imageObject.memory != NULL_HANDLE {
6851 memoryObject := GetDeviceMemory(imageObject.memory)
6852 memoryObject.boundObjects[as!u64(image)] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07006853 }
6854
6855 // Bind image to given memory object, if not VK_NULL_HANDLE.
Jesse Hall3fbc8562015-11-29 22:10:52 -08006856 if memory != NULL_HANDLE {
6857 memoryObject := GetDeviceMemory(memory)
6858 assert(memoryObject.device == device)
6859 memoryObject.boundObjects[as!u64(image)] = memoryOffset
Jesse Halld27f6aa2015-08-15 17:58:48 -07006860 }
Jesse Hall3fbc8562015-11-29 22:10:52 -08006861 imageObject.memory = memory
6862 imageObject.memoryOffset = memoryOffset
Jesse Halld27f6aa2015-08-15 17:58:48 -07006863
6864 return ?
6865}
6866
Jesse Hall606a54e2015-11-19 22:17:28 -08006867cmd void vkGetImageSparseMemoryRequirements(
Jesse Halld27f6aa2015-08-15 17:58:48 -07006868 VkDevice device,
6869 VkImage image,
Jesse Hall03b6fe12015-11-24 12:44:21 -08006870 u32* pSparseMemoryRequirementCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07006871 VkSparseImageMemoryRequirements* pSparseMemoryRequirements) {
6872 deviceObject := GetDevice(device)
6873 imageObject := GetImage(image)
6874 assert(imageObject.device == device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07006875}
6876
Jesse Hall606a54e2015-11-19 22:17:28 -08006877cmd void vkGetPhysicalDeviceSparseImageFormatProperties(
Jesse Halld27f6aa2015-08-15 17:58:48 -07006878 VkPhysicalDevice physicalDevice,
6879 VkFormat format,
6880 VkImageType type,
Jesse Hall091ed9e2015-11-30 00:55:29 -08006881 VkSampleCountFlagBits samples,
Jesse Halld27f6aa2015-08-15 17:58:48 -07006882 VkImageUsageFlags usage,
6883 VkImageTiling tiling,
Jesse Hall03b6fe12015-11-24 12:44:21 -08006884 u32* pPropertyCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07006885 VkSparseImageFormatProperties* pProperties) {
6886 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
Jesse Halld27f6aa2015-08-15 17:58:48 -07006887}
6888
Jesse Halla6429252015-11-29 18:59:42 -08006889cmd VkResult vkQueueBindSparse(
Jesse Halld27f6aa2015-08-15 17:58:48 -07006890 VkQueue queue,
Jesse Hall03b6fe12015-11-24 12:44:21 -08006891 u32 bindInfoCount,
Jesse Halla6429252015-11-29 18:59:42 -08006892 const VkBindSparseInfo* pBindInfo,
6893 VkFence fence) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07006894 queueObject := GetQueue(queue)
Jesse Halld27f6aa2015-08-15 17:58:48 -07006895
6896 return ?
6897}
6898
6899
6900// Fence functions
6901
6902@threadSafety("system")
6903cmd VkResult vkCreateFence(
6904 VkDevice device,
6905 const VkFenceCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08006906 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07006907 VkFence* pFence) {
6908 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_FENCE_CREATE_INFO)
6909 deviceObject := GetDevice(device)
6910
6911 fence := ?
6912 pFence[0] = fence
6913 State.Fences[fence] = new!FenceObject(
Jesse Halld8bade02015-11-24 10:24:18 -08006914 device: device, signaled: (pCreateInfo.flags == as!VkFenceCreateFlags(VK_FENCE_CREATE_SIGNALED_BIT)))
Jesse Halld27f6aa2015-08-15 17:58:48 -07006915
6916 return ?
6917}
6918
6919@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07006920cmd void vkDestroyFence(
Jesse Halld27f6aa2015-08-15 17:58:48 -07006921 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08006922 VkFence fence,
Jesse Hall3fbc8562015-11-29 22:10:52 -08006923 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07006924 deviceObject := GetDevice(device)
6925 fenceObject := GetFence(fence)
6926 assert(fenceObject.device == device)
6927
6928 State.Fences[fence] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07006929}
6930
6931@threadSafety("system")
6932cmd VkResult vkResetFences(
6933 VkDevice device,
6934 u32 fenceCount,
6935 const VkFence* pFences) {
6936 deviceObject := GetDevice(device)
6937
6938 fences := pFences[0:fenceCount]
6939 for i in (0 .. fenceCount) {
6940 fence := fences[i]
6941 fenceObject := GetFence(fence)
6942 assert(fenceObject.device == device)
6943 fenceObject.signaled = false
6944 }
6945
6946 return ?
6947}
6948
6949@threadSafety("system")
6950cmd VkResult vkGetFenceStatus(
6951 VkDevice device,
6952 VkFence fence) {
6953 deviceObject := GetDevice(device)
6954 fenceObject := GetFence(fence)
6955 assert(fenceObject.device == device)
6956
6957 return ?
6958}
6959
6960@threadSafety("system")
6961cmd VkResult vkWaitForFences(
6962 VkDevice device,
6963 u32 fenceCount,
6964 const VkFence* pFences,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07006965 VkBool32 waitAll,
Jesse Halld27f6aa2015-08-15 17:58:48 -07006966 u64 timeout) { /// timeout in nanoseconds
6967 deviceObject := GetDevice(device)
6968
6969 fences := pFences[0:fenceCount]
6970 for i in (0 .. fenceCount) {
6971 fence := fences[i]
6972 fenceObject := GetFence(fence)
6973 assert(fenceObject.device == device)
6974 }
6975
6976 return ?
6977}
6978
6979
6980// Queue semaphore functions
6981
6982@threadSafety("system")
6983cmd VkResult vkCreateSemaphore(
6984 VkDevice device,
6985 const VkSemaphoreCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08006986 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07006987 VkSemaphore* pSemaphore) {
6988 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO)
6989 deviceObject := GetDevice(device)
6990
6991 semaphore := ?
6992 pSemaphore[0] = semaphore
6993 State.Semaphores[semaphore] = new!SemaphoreObject(device: device)
6994
6995 return ?
6996}
6997
6998@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07006999cmd void vkDestroySemaphore(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007000 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007001 VkSemaphore semaphore,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007002 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007003 deviceObject := GetDevice(device)
7004 semaphoreObject := GetSemaphore(semaphore)
7005 assert(semaphoreObject.device == device)
7006
7007 State.Semaphores[semaphore] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07007008}
7009
Jesse Halld27f6aa2015-08-15 17:58:48 -07007010
7011// Event functions
7012
7013@threadSafety("system")
7014cmd VkResult vkCreateEvent(
7015 VkDevice device,
7016 const VkEventCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007017 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007018 VkEvent* pEvent) {
7019 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_EVENT_CREATE_INFO)
7020 deviceObject := GetDevice(device)
7021
7022 event := ?
7023 pEvent[0] = event
7024 State.Events[event] = new!EventObject(device: device)
7025
7026 return ?
7027}
7028
7029@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007030cmd void vkDestroyEvent(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007031 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007032 VkEvent event,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007033 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007034 deviceObject := GetDevice(device)
7035 eventObject := GetEvent(event)
7036 assert(eventObject.device == device)
7037
7038 State.Events[event] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07007039}
7040
7041@threadSafety("system")
7042cmd VkResult vkGetEventStatus(
7043 VkDevice device,
7044 VkEvent event) {
7045 deviceObject := GetDevice(device)
7046 eventObject := GetEvent(event)
7047 assert(eventObject.device == device)
7048
7049 return ?
7050}
7051
7052@threadSafety("system")
7053cmd VkResult vkSetEvent(
7054 VkDevice device,
7055 VkEvent event) {
7056 deviceObject := GetDevice(device)
7057 eventObject := GetEvent(event)
7058 assert(eventObject.device == device)
7059
7060 return ?
7061}
7062
7063@threadSafety("system")
7064cmd VkResult vkResetEvent(
7065 VkDevice device,
7066 VkEvent event) {
7067 deviceObject := GetDevice(device)
7068 eventObject := GetEvent(event)
7069 assert(eventObject.device == device)
7070
7071 return ?
7072}
7073
7074
7075// Query functions
7076
7077@threadSafety("system")
7078cmd VkResult vkCreateQueryPool(
7079 VkDevice device,
7080 const VkQueryPoolCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007081 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007082 VkQueryPool* pQueryPool) {
7083 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO)
7084 deviceObject := GetDevice(device)
7085
7086 queryPool := ?
7087 pQueryPool[0] = queryPool
7088 State.QueryPools[queryPool] = new!QueryPoolObject(device: device)
7089
7090 return ?
7091}
7092
7093@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007094cmd void vkDestroyQueryPool(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007095 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007096 VkQueryPool queryPool,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007097 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007098 deviceObject := GetDevice(device)
7099 queryPoolObject := GetQueryPool(queryPool)
7100 assert(queryPoolObject.device == device)
7101
7102 State.QueryPools[queryPool] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07007103}
7104
7105@threadSafety("system")
7106cmd VkResult vkGetQueryPoolResults(
7107 VkDevice device,
7108 VkQueryPool queryPool,
Jesse Hallf9fa9a52016-01-08 16:08:51 -08007109 u32 firstQuery,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007110 u32 queryCount,
Jesse Halla9bb62b2015-11-21 19:31:56 -08007111 platform.size_t dataSize,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007112 void* pData,
Jesse Halla9bb62b2015-11-21 19:31:56 -08007113 VkDeviceSize stride,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007114 VkQueryResultFlags flags) {
7115 deviceObject := GetDevice(device)
7116 queryPoolObject := GetQueryPool(queryPool)
7117 assert(queryPoolObject.device == device)
7118
Jesse Halld27f6aa2015-08-15 17:58:48 -07007119 data := pData[0:dataSize]
7120
7121 return ?
7122}
7123
7124// Buffer functions
7125
7126@threadSafety("system")
7127cmd VkResult vkCreateBuffer(
7128 VkDevice device,
7129 const VkBufferCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007130 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007131 VkBuffer* pBuffer) {
7132 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO)
7133 deviceObject := GetDevice(device)
7134
7135 buffer := ?
7136 pBuffer[0] = buffer
7137 State.Buffers[buffer] = new!BufferObject(device: device)
7138
7139 return ?
7140}
7141
7142@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007143cmd void vkDestroyBuffer(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007144 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007145 VkBuffer buffer,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007146 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007147 deviceObject := GetDevice(device)
7148 bufferObject := GetBuffer(buffer)
7149 assert(bufferObject.device == device)
7150
Jesse Hall3fbc8562015-11-29 22:10:52 -08007151 assert(bufferObject.memory == 0)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007152 State.Buffers[buffer] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07007153}
7154
7155
7156// Buffer view functions
7157
7158@threadSafety("system")
7159cmd VkResult vkCreateBufferView(
7160 VkDevice device,
7161 const VkBufferViewCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007162 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007163 VkBufferView* pView) {
7164 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO)
7165 deviceObject := GetDevice(device)
7166
7167 bufferObject := GetBuffer(pCreateInfo.buffer)
7168 assert(bufferObject.device == device)
7169
7170 view := ?
7171 pView[0] = view
7172 State.BufferViews[view] = new!BufferViewObject(device: device, buffer: pCreateInfo.buffer)
7173
7174 return ?
7175}
7176
7177@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007178cmd void vkDestroyBufferView(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007179 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007180 VkBufferView bufferView,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007181 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007182 deviceObject := GetDevice(device)
7183 bufferViewObject := GetBufferView(bufferView)
7184 assert(bufferViewObject.device == device)
7185
7186 State.BufferViews[bufferView] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07007187}
7188
7189
7190// Image functions
7191
7192@threadSafety("system")
7193cmd VkResult vkCreateImage(
7194 VkDevice device,
7195 const VkImageCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007196 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007197 VkImage* pImage) {
7198 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO)
7199 deviceObject := GetDevice(device)
7200
7201 image := ?
7202 pImage[0] = image
7203 State.Images[image] = new!ImageObject(device: device)
7204
7205 return ?
7206}
7207
7208@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007209cmd void vkDestroyImage(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007210 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007211 VkImage image,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007212 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007213 deviceObject := GetDevice(device)
7214 imageObject := GetImage(image)
7215 assert(imageObject.device == device)
7216
Jesse Hall3fbc8562015-11-29 22:10:52 -08007217 assert(imageObject.memory == 0)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007218 State.Images[image] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07007219}
7220
Jesse Hall606a54e2015-11-19 22:17:28 -08007221cmd void vkGetImageSubresourceLayout(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007222 VkDevice device,
7223 VkImage image,
7224 const VkImageSubresource* pSubresource,
7225 VkSubresourceLayout* pLayout) {
7226 deviceObject := GetDevice(device)
7227 imageObject := GetImage(image)
7228 assert(imageObject.device == device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007229}
7230
7231
7232// Image view functions
7233
7234@threadSafety("system")
7235cmd VkResult vkCreateImageView(
7236 VkDevice device,
7237 const VkImageViewCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007238 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007239 VkImageView* pView) {
7240 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO)
7241 deviceObject := GetDevice(device)
7242
7243 imageObject := GetImage(pCreateInfo.image)
7244 assert(imageObject.device == device)
7245
7246 view := ?
7247 pView[0] = view
7248 State.ImageViews[view] = new!ImageViewObject(device: device, image: pCreateInfo.image)
7249
7250 return ?
7251}
7252
7253@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007254cmd void vkDestroyImageView(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007255 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007256 VkImageView imageView,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007257 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007258 deviceObject := GetDevice(device)
7259 imageViewObject := GetImageView(imageView)
7260 assert(imageViewObject.device == device)
7261
7262 State.ImageViews[imageView] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07007263}
7264
7265
7266// Shader functions
7267
7268cmd VkResult vkCreateShaderModule(
7269 VkDevice device,
7270 const VkShaderModuleCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007271 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007272 VkShaderModule* pShaderModule) {
7273 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO)
7274 deviceObject := GetDevice(device)
7275
7276 shaderModule := ?
7277 pShaderModule[0] = shaderModule
7278 State.ShaderModules[shaderModule] = new!ShaderModuleObject(device: device)
7279
7280 return ?
7281}
7282
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007283cmd void vkDestroyShaderModule(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007284 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007285 VkShaderModule shaderModule,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007286 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007287 deviceObject := GetDevice(device)
7288 shaderModuleObject := GetShaderModule(shaderModule)
7289 assert(shaderModuleObject.device == device)
7290
7291 State.ShaderModules[shaderModule] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07007292}
7293
Jesse Halld27f6aa2015-08-15 17:58:48 -07007294
7295// Pipeline functions
7296
7297cmd VkResult vkCreatePipelineCache(
7298 VkDevice device,
7299 const VkPipelineCacheCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007300 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007301 VkPipelineCache* pPipelineCache) {
7302 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO)
7303 deviceObject := GetDevice(device)
7304
7305 pipelineCache := ?
7306 pPipelineCache[0] = pipelineCache
7307 State.PipelineCaches[pipelineCache] = new!PipelineCacheObject(device: device)
7308
7309 return ?
7310}
7311
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007312cmd void vkDestroyPipelineCache(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007313 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007314 VkPipelineCache pipelineCache,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007315 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007316 deviceObject := GetDevice(device)
7317 pipelineCacheObject := GetPipelineCache(pipelineCache)
7318 assert(pipelineCacheObject.device == device)
7319
7320 State.PipelineCaches[pipelineCache] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07007321}
7322
Jesse Halld27f6aa2015-08-15 17:58:48 -07007323cmd VkResult vkGetPipelineCacheData(
7324 VkDevice device,
7325 VkPipelineCache pipelineCache,
Jesse Halla9bb62b2015-11-21 19:31:56 -08007326 platform.size_t* pDataSize,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007327 void* pData) {
7328 deviceObject := GetDevice(device)
7329 pipelineCacheObject := GetPipelineCache(pipelineCache)
7330 assert(pipelineCacheObject.device == device)
7331
7332 return ?
7333}
7334
7335cmd VkResult vkMergePipelineCaches(
7336 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007337 VkPipelineCache dstCache,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007338 u32 srcCacheCount,
7339 const VkPipelineCache* pSrcCaches) {
7340 deviceObject := GetDevice(device)
Jesse Hall3fbc8562015-11-29 22:10:52 -08007341 dstCacheObject := GetPipelineCache(dstCache)
7342 assert(dstCacheObject.device == device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007343
7344 srcCaches := pSrcCaches[0:srcCacheCount]
7345 for i in (0 .. srcCacheCount) {
7346 srcCache := srcCaches[i]
7347 srcCacheObject := GetPipelineCache(srcCache)
7348 assert(srcCacheObject.device == device)
7349 }
7350
7351 return ?
7352}
7353
7354cmd VkResult vkCreateGraphicsPipelines(
7355 VkDevice device,
7356 VkPipelineCache pipelineCache,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007357 u32 createInfoCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007358 const VkGraphicsPipelineCreateInfo* pCreateInfos,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007359 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007360 VkPipeline* pPipelines) {
7361 deviceObject := GetDevice(device)
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007362 if pipelineCache != NULL_HANDLE {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007363 pipelineCacheObject := GetPipelineCache(pipelineCache)
7364 assert(pipelineCacheObject.device == device)
7365 }
7366
Jesse Hall03b6fe12015-11-24 12:44:21 -08007367 createInfos := pCreateInfos[0:createInfoCount]
7368 pipelines := pPipelines[0:createInfoCount]
7369 for i in (0 .. createInfoCount) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007370 pipeline := ?
7371 pipelines[i] = pipeline
7372 State.Pipelines[pipeline] = new!PipelineObject(device: device)
7373 }
7374
7375 return ?
7376}
7377
7378cmd VkResult vkCreateComputePipelines(
7379 VkDevice device,
7380 VkPipelineCache pipelineCache,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007381 u32 createInfoCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007382 const VkComputePipelineCreateInfo* pCreateInfos,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007383 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007384 VkPipeline* pPipelines) {
7385 deviceObject := GetDevice(device)
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007386 if pipelineCache != NULL_HANDLE {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007387 pipelineCacheObject := GetPipelineCache(pipelineCache)
7388 assert(pipelineCacheObject.device == device)
7389 }
7390
Jesse Hall03b6fe12015-11-24 12:44:21 -08007391 createInfos := pCreateInfos[0:createInfoCount]
7392 pipelines := pPipelines[0:createInfoCount]
7393 for i in (0 .. createInfoCount) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007394 pipeline := ?
7395 pipelines[i] = pipeline
7396 State.Pipelines[pipeline] = new!PipelineObject(device: device)
7397 }
7398
7399 return ?
7400}
7401
7402@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007403cmd void vkDestroyPipeline(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007404 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007405 VkPipeline pipeline,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007406 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007407 deviceObject := GetDevice(device)
7408 pipelineObjects := GetPipeline(pipeline)
7409 assert(pipelineObjects.device == device)
7410
7411 State.Pipelines[pipeline] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07007412}
7413
7414
7415// Pipeline layout functions
7416
7417@threadSafety("system")
7418cmd VkResult vkCreatePipelineLayout(
7419 VkDevice device,
7420 const VkPipelineLayoutCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007421 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007422 VkPipelineLayout* pPipelineLayout) {
7423 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO)
7424 deviceObject := GetDevice(device)
7425
7426 pipelineLayout := ?
7427 pPipelineLayout[0] = pipelineLayout
7428 State.PipelineLayouts[pipelineLayout] = new!PipelineLayoutObject(device: device)
7429
7430 return ?
7431}
7432
7433@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007434cmd void vkDestroyPipelineLayout(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007435 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007436 VkPipelineLayout pipelineLayout,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007437 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007438 deviceObject := GetDevice(device)
7439 pipelineLayoutObjects := GetPipelineLayout(pipelineLayout)
7440 assert(pipelineLayoutObjects.device == device)
7441
7442 State.PipelineLayouts[pipelineLayout] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07007443}
7444
7445
7446// Sampler functions
7447
7448@threadSafety("system")
7449cmd VkResult vkCreateSampler(
7450 VkDevice device,
7451 const VkSamplerCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007452 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007453 VkSampler* pSampler) {
7454 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO)
7455 deviceObject := GetDevice(device)
7456
7457 sampler := ?
7458 pSampler[0] = sampler
7459 State.Samplers[sampler] = new!SamplerObject(device: device)
7460
7461 return ?
7462}
7463
7464@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007465cmd void vkDestroySampler(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007466 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007467 VkSampler sampler,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007468 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007469 deviceObject := GetDevice(device)
7470 samplerObject := GetSampler(sampler)
7471 assert(samplerObject.device == device)
7472
7473 State.Samplers[sampler] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07007474}
7475
7476
7477// Descriptor set functions
7478
7479@threadSafety("system")
7480cmd VkResult vkCreateDescriptorSetLayout(
7481 VkDevice device,
7482 const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007483 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007484 VkDescriptorSetLayout* pSetLayout) {
7485 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO)
7486 deviceObject := GetDevice(device)
7487
7488 setLayout := ?
7489 pSetLayout[0] = setLayout
7490 State.DescriptorSetLayouts[setLayout] = new!DescriptorSetLayoutObject(device: device)
7491
7492 return ?
7493}
7494
7495@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007496cmd void vkDestroyDescriptorSetLayout(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007497 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007498 VkDescriptorSetLayout descriptorSetLayout,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007499 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007500 deviceObject := GetDevice(device)
7501 descriptorSetLayoutObject := GetDescriptorSetLayout(descriptorSetLayout)
7502 assert(descriptorSetLayoutObject.device == device)
7503
7504 State.DescriptorSetLayouts[descriptorSetLayout] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07007505}
7506
7507@threadSafety("system")
7508cmd VkResult vkCreateDescriptorPool(
7509 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007510 const VkDescriptorPoolCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007511 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007512 VkDescriptorPool* pDescriptorPool) {
7513 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO)
7514 deviceObject := GetDevice(device)
7515
7516 descriptorPool := ?
7517 pDescriptorPool[0] = descriptorPool
7518 State.DescriptorPools[descriptorPool] = new!DescriptorPoolObject(device: device)
7519
7520 return ?
7521}
7522
7523@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007524cmd void vkDestroyDescriptorPool(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007525 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007526 VkDescriptorPool descriptorPool,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007527 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007528 deviceObject := GetDevice(device)
7529 descriptorPoolObject := GetDescriptorPool(descriptorPool)
7530 assert(descriptorPoolObject.device == device)
7531
7532 State.DescriptorPools[descriptorPool] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07007533}
7534
7535@threadSafety("app")
7536cmd VkResult vkResetDescriptorPool(
7537 VkDevice device,
Jesse Hallfbf97b02015-11-20 14:17:03 -08007538 VkDescriptorPool descriptorPool,
7539 VkDescriptorPoolResetFlags flags) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007540 deviceObject := GetDevice(device)
7541 descriptorPoolObject := GetDescriptorPool(descriptorPool)
7542 assert(descriptorPoolObject.device == device)
7543
7544 return ?
7545}
7546
7547@threadSafety("app")
Jesse Hall3fbc8562015-11-29 22:10:52 -08007548cmd VkResult vkAllocateDescriptorSets(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007549 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007550 const VkDescriptorSetAllocateInfo* pAllocateInfo,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007551 VkDescriptorSet* pDescriptorSets) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007552 deviceObject := GetDevice(device)
Jesse Hall3fbc8562015-11-29 22:10:52 -08007553 allocInfo := pAllocateInfo[0]
Jesse Hallfbf97b02015-11-20 14:17:03 -08007554 descriptorPoolObject := GetDescriptorPool(allocInfo.descriptorPool)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007555
Jesse Hall03b6fe12015-11-24 12:44:21 -08007556 setLayouts := allocInfo.pSetLayouts[0:allocInfo.setCount]
7557 for i in (0 .. allocInfo.setCount) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007558 setLayout := setLayouts[i]
7559 setLayoutObject := GetDescriptorSetLayout(setLayout)
7560 assert(setLayoutObject.device == device)
7561 }
7562
Jesse Hall03b6fe12015-11-24 12:44:21 -08007563 descriptorSets := pDescriptorSets[0:allocInfo.setCount]
7564 for i in (0 .. allocInfo.setCount) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007565 descriptorSet := ?
7566 descriptorSets[i] = descriptorSet
7567 State.DescriptorSets[descriptorSet] = new!DescriptorSetObject(device: device)
7568 }
7569
7570 return ?
7571}
7572
Jesse Hallf09c6b12015-08-15 19:54:28 -07007573cmd VkResult vkFreeDescriptorSets(
7574 VkDevice device,
7575 VkDescriptorPool descriptorPool,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007576 u32 descriptorSetCount,
Jesse Hallf09c6b12015-08-15 19:54:28 -07007577 const VkDescriptorSet* pDescriptorSets) {
7578 deviceObject := GetDevice(device)
7579 descriptorPoolObject := GetDescriptorPool(descriptorPool)
7580
Jesse Hall03b6fe12015-11-24 12:44:21 -08007581 descriptorSets := pDescriptorSets[0:descriptorSetCount]
7582 for i in (0 .. descriptorSetCount) {
Jesse Hallf09c6b12015-08-15 19:54:28 -07007583 descriptorSet := descriptorSets[i]
7584 descriptorSetObject := GetDescriptorSet(descriptorSet)
7585 assert(descriptorSetObject.device == device)
7586 State.DescriptorSets[descriptorSet] = null
7587 }
7588
7589 return ?
7590}
7591
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007592cmd void vkUpdateDescriptorSets(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007593 VkDevice device,
Jesse Hallb00daad2015-11-29 19:46:20 -08007594 u32 descriptorWriteCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007595 const VkWriteDescriptorSet* pDescriptorWrites,
Jesse Hallb00daad2015-11-29 19:46:20 -08007596 u32 descriptorCopyCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007597 const VkCopyDescriptorSet* pDescriptorCopies) {
7598 deviceObject := GetDevice(device)
7599
Jesse Hallb00daad2015-11-29 19:46:20 -08007600 descriptorWrites := pDescriptorWrites[0:descriptorWriteCount]
7601 for i in (0 .. descriptorWriteCount) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007602 descriptorWrite := descriptorWrites[i]
Jesse Hall3fbc8562015-11-29 22:10:52 -08007603 descriptorWriteObject := GetDescriptorSet(descriptorWrite.dstSet)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007604 assert(descriptorWriteObject.device == device)
7605 }
7606
Jesse Hallb00daad2015-11-29 19:46:20 -08007607 descriptorCopies := pDescriptorCopies[0:descriptorCopyCount]
7608 for i in (0 .. descriptorCopyCount) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007609 descriptorCopy := descriptorCopies[i]
Jesse Hall3fbc8562015-11-29 22:10:52 -08007610 descriptorCopyObject := GetDescriptorSet(descriptorCopy.dstSet)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007611 assert(descriptorCopyObject.device == device)
7612 }
Jesse Halld27f6aa2015-08-15 17:58:48 -07007613}
7614
7615
7616// Framebuffer functions
7617
7618@threadSafety("system")
7619cmd VkResult vkCreateFramebuffer(
7620 VkDevice device,
7621 const VkFramebufferCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007622 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007623 VkFramebuffer* pFramebuffer) {
7624 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO)
7625 deviceObject := GetDevice(device)
7626
7627 framebuffer := ?
7628 pFramebuffer[0] = framebuffer
7629 State.Framebuffers[framebuffer] = new!FramebufferObject(device: device)
7630
7631 return ?
7632}
7633
7634@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007635cmd void vkDestroyFramebuffer(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007636 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007637 VkFramebuffer framebuffer,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007638 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007639 deviceObject := GetDevice(device)
7640 framebufferObject := GetFramebuffer(framebuffer)
7641 assert(framebufferObject.device == device)
7642
7643 State.Framebuffers[framebuffer] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07007644}
7645
7646
7647// Renderpass functions
7648
7649@threadSafety("system")
7650cmd VkResult vkCreateRenderPass(
7651 VkDevice device,
7652 const VkRenderPassCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007653 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007654 VkRenderPass* pRenderPass) {
7655 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO)
7656 deviceObject := GetDevice(device)
7657
7658 renderpass := ?
7659 pRenderPass[0] = renderpass
7660 State.RenderPasses[renderpass] = new!RenderPassObject(device: device)
7661
7662 return ?
7663}
7664
7665@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007666cmd void vkDestroyRenderPass(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007667 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007668 VkRenderPass renderPass,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007669 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007670 deviceObject := GetDevice(device)
7671 renderPassObject := GetRenderPass(renderPass)
7672 assert(renderPassObject.device == device)
7673
7674 State.RenderPasses[renderPass] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07007675}
7676
Jesse Hall606a54e2015-11-19 22:17:28 -08007677cmd void vkGetRenderAreaGranularity(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007678 VkDevice device,
7679 VkRenderPass renderPass,
7680 VkExtent2D* pGranularity) {
7681 deviceObject := GetDevice(device)
7682 renderPassObject := GetRenderPass(renderPass)
7683
7684 granularity := ?
7685 pGranularity[0] = granularity
Jesse Halld27f6aa2015-08-15 17:58:48 -07007686}
7687
7688// Command pool functions
7689
7690cmd VkResult vkCreateCommandPool(
7691 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007692 const VkCommandPoolCreateInfo* pCreateInfo,
7693 const VkAllocationCallbacks* pAllocator,
7694 VkCommandPool* pCommandPool) {
7695 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007696 deviceObject := GetDevice(device)
7697
Jesse Hall3fbc8562015-11-29 22:10:52 -08007698 commandPool := ?
7699 pCommandPool[0] = commandPool
7700 State.CommandPools[commandPool] = new!CommandPoolObject(device: device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007701
7702 return ?
7703}
7704
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007705cmd void vkDestroyCommandPool(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007706 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007707 VkCommandPool commandPool,
7708 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007709 deviceObject := GetDevice(device)
Jesse Hall3fbc8562015-11-29 22:10:52 -08007710 commandPoolObject := GetCommandPool(commandPool)
7711 assert(commandPoolObject.device == device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007712
Jesse Hall3fbc8562015-11-29 22:10:52 -08007713 State.CommandPools[commandPool] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07007714}
7715
7716cmd VkResult vkResetCommandPool(
7717 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007718 VkCommandPool commandPool,
7719 VkCommandPoolResetFlags flags) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007720 deviceObject := GetDevice(device)
Jesse Hall3fbc8562015-11-29 22:10:52 -08007721 commandPoolObject := GetCommandPool(commandPool)
7722 assert(commandPoolObject.device == device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007723
7724 return ?
7725}
7726
7727// Command buffer functions
7728
Jesse Hall3fbc8562015-11-29 22:10:52 -08007729macro void bindCommandBuffer(VkCommandBuffer commandBuffer, any obj, VkDeviceMemory memory) {
7730 memoryObject := GetDeviceMemory(memory)
7731 memoryObject.boundCommandBuffers[commandBuffer] = commandBuffer
Jesse Halld27f6aa2015-08-15 17:58:48 -07007732
Jesse Hall3fbc8562015-11-29 22:10:52 -08007733 commandBufferObject := GetCommandBuffer(commandBuffer)
7734 commandBufferObject.boundObjects[as!u64(obj)] = memory
Jesse Halld27f6aa2015-08-15 17:58:48 -07007735}
7736
Jesse Hall3fbc8562015-11-29 22:10:52 -08007737macro void unbindCommandBuffer(VkCommandBuffer commandBuffer, any obj, VkDeviceMemory memory) {
7738 memoryObject := GetDeviceMemory(memory)
7739 memoryObject.boundCommandBuffers[commandBuffer] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07007740
Jesse Hall3fbc8562015-11-29 22:10:52 -08007741 commandBufferObject := GetCommandBuffer(commandBuffer)
7742 commandBufferObject.boundObjects[as!u64(obj)] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07007743}
7744
7745@threadSafety("system")
Jesse Hall3fbc8562015-11-29 22:10:52 -08007746cmd VkResult vkAllocateCommandBuffers(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007747 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007748 const VkCommandBufferAllocateInfo* pAllocateInfo,
7749 VkCommandBuffer* pCommandBuffers) {
Jesse Hallf4ab2b12015-11-30 16:04:55 -08007750 assert(pAllocateInfo[0].sType == VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007751
Jesse Hall3dd678a2016-01-08 21:52:01 -08007752 count := pAllocateInfo[0].commandBufferCount
Jesse Hall3fbc8562015-11-29 22:10:52 -08007753 commandBuffers := pCommandBuffers[0:count]
Jesse Hallfbf97b02015-11-20 14:17:03 -08007754 for i in (0 .. count) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08007755 commandBuffer := ?
7756 commandBuffers[i] = commandBuffer
7757 State.CommandBuffers[commandBuffer] = new!CommandBufferObject(device: device)
Jesse Hallfbf97b02015-11-20 14:17:03 -08007758 }
Jesse Halld27f6aa2015-08-15 17:58:48 -07007759
7760 return ?
7761}
7762
7763@threadSafety("system")
Jesse Hallfbf97b02015-11-20 14:17:03 -08007764cmd void vkFreeCommandBuffers(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007765 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007766 VkCommandPool commandPool,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007767 u32 commandBufferCount,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007768 const VkCommandBuffer* pCommandBuffers) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007769 deviceObject := GetDevice(device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007770
Jesse Hall3fbc8562015-11-29 22:10:52 -08007771 commandBuffers := pCommandBuffers[0:commandBufferCount]
Jesse Hall03b6fe12015-11-24 12:44:21 -08007772 for i in (0 .. commandBufferCount) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08007773 commandBufferObject := GetCommandBuffer(commandBuffers[i])
7774 assert(commandBufferObject.device == device)
Jesse Hallfbf97b02015-11-20 14:17:03 -08007775 // TODO: iterate over boundObjects and clear memory bindings
Jesse Hall3fbc8562015-11-29 22:10:52 -08007776 State.CommandBuffers[commandBuffers[i]] = null
Jesse Hallfbf97b02015-11-20 14:17:03 -08007777 }
Jesse Halld27f6aa2015-08-15 17:58:48 -07007778}
7779
7780@threadSafety("app")
7781cmd VkResult vkBeginCommandBuffer(
Jesse Hall3fbc8562015-11-29 22:10:52 -08007782 VkCommandBuffer commandBuffer,
7783 const VkCommandBufferBeginInfo* pBeginInfo) {
7784 assert(pBeginInfo.sType == VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO)
7785 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007786
7787 // TODO: iterate over boundObjects and clear memory bindings
7788
7789 return ?
7790}
7791
7792@threadSafety("app")
7793cmd VkResult vkEndCommandBuffer(
Jesse Hall3fbc8562015-11-29 22:10:52 -08007794 VkCommandBuffer commandBuffer) {
7795 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007796
7797 return ?
7798}
7799
7800@threadSafety("app")
7801cmd VkResult vkResetCommandBuffer(
Jesse Hall3fbc8562015-11-29 22:10:52 -08007802 VkCommandBuffer commandBuffer,
7803 VkCommandBufferResetFlags flags) {
7804 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007805
7806 // TODO: iterate over boundObjects and clear memory bindings
7807
7808 return ?
7809}
7810
7811
7812// Command buffer building functions
7813
7814@threadSafety("app")
7815cmd void vkCmdBindPipeline(
Jesse Hall3fbc8562015-11-29 22:10:52 -08007816 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007817 VkPipelineBindPoint pipelineBindPoint,
7818 VkPipeline pipeline) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08007819 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007820 pipelineObject := GetPipeline(pipeline)
Jesse Hall3fbc8562015-11-29 22:10:52 -08007821 assert(commandBufferObject.device == pipelineObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007822
Jesse Halld8bade02015-11-24 10:24:18 -08007823 queue := switch (pipelineBindPoint) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007824 case VK_PIPELINE_BIND_POINT_COMPUTE: VK_QUEUE_COMPUTE_BIT
7825 case VK_PIPELINE_BIND_POINT_GRAPHICS: VK_QUEUE_GRAPHICS_BIT
7826 }
Jesse Hall3fbc8562015-11-29 22:10:52 -08007827 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, queue)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007828}
7829
7830@threadSafety("app")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007831cmd void vkCmdSetViewport(
Jesse Hall3fbc8562015-11-29 22:10:52 -08007832 VkCommandBuffer commandBuffer,
Jesse Hallf9fa9a52016-01-08 16:08:51 -08007833 u32 firstViewport,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007834 u32 viewportCount,
7835 const VkViewport* pViewports) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08007836 commandBufferObject := GetCommandBuffer(commandBuffer)
7837 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007838}
7839
7840@threadSafety("app")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007841cmd void vkCmdSetScissor(
Jesse Hall3fbc8562015-11-29 22:10:52 -08007842 VkCommandBuffer commandBuffer,
Jesse Hallf9fa9a52016-01-08 16:08:51 -08007843 u32 firstScissor,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007844 u32 scissorCount,
7845 const VkRect2D* pScissors) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08007846 commandBufferObject := GetCommandBuffer(commandBuffer)
7847 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007848}
7849
7850@threadSafety("app")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007851cmd void vkCmdSetLineWidth(
Jesse Hall3fbc8562015-11-29 22:10:52 -08007852 VkCommandBuffer commandBuffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007853 f32 lineWidth) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08007854 commandBufferObject := GetCommandBuffer(commandBuffer)
7855 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007856}
7857
7858@threadSafety("app")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007859cmd void vkCmdSetDepthBias(
Jesse Hall3fbc8562015-11-29 22:10:52 -08007860 VkCommandBuffer commandBuffer,
Jesse Halla9bb62b2015-11-21 19:31:56 -08007861 f32 depthBiasConstantFactor,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007862 f32 depthBiasClamp,
Jesse Halla9bb62b2015-11-21 19:31:56 -08007863 f32 depthBiasSlopeFactor) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08007864 commandBufferObject := GetCommandBuffer(commandBuffer)
7865 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007866}
Jesse Halld27f6aa2015-08-15 17:58:48 -07007867
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007868@threadSafety("app")
7869cmd void vkCmdSetBlendConstants(
Jesse Hall3fbc8562015-11-29 22:10:52 -08007870 VkCommandBuffer commandBuffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007871 // TODO(jessehall): apic only supports 'const' on pointer types. Using
7872 // an annotation as a quick hack to pass this to the template without
7873 // having to modify the AST and semantic model.
Jesse Hallb00daad2015-11-29 19:46:20 -08007874 @readonly f32[4] blendConstants) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08007875 commandBufferObject := GetCommandBuffer(commandBuffer)
7876 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007877}
7878
7879@threadSafety("app")
7880cmd void vkCmdSetDepthBounds(
Jesse Hall3fbc8562015-11-29 22:10:52 -08007881 VkCommandBuffer commandBuffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007882 f32 minDepthBounds,
7883 f32 maxDepthBounds) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08007884 commandBufferObject := GetCommandBuffer(commandBuffer)
7885 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007886}
7887
7888@threadSafety("app")
7889cmd void vkCmdSetStencilCompareMask(
Jesse Hall3fbc8562015-11-29 22:10:52 -08007890 VkCommandBuffer commandBuffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007891 VkStencilFaceFlags faceMask,
Jesse Hall65ab5522015-11-30 00:07:16 -08007892 u32 compareMask) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08007893 commandBufferObject := GetCommandBuffer(commandBuffer)
7894 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007895}
7896
7897@threadSafety("app")
7898cmd void vkCmdSetStencilWriteMask(
Jesse Hall3fbc8562015-11-29 22:10:52 -08007899 VkCommandBuffer commandBuffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007900 VkStencilFaceFlags faceMask,
Jesse Hall65ab5522015-11-30 00:07:16 -08007901 u32 writeMask) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08007902 commandBufferObject := GetCommandBuffer(commandBuffer)
7903 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007904}
7905
7906@threadSafety("app")
7907cmd void vkCmdSetStencilReference(
Jesse Hall3fbc8562015-11-29 22:10:52 -08007908 VkCommandBuffer commandBuffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007909 VkStencilFaceFlags faceMask,
Jesse Hall65ab5522015-11-30 00:07:16 -08007910 u32 reference) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08007911 commandBufferObject := GetCommandBuffer(commandBuffer)
7912 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007913}
7914
7915@threadSafety("app")
7916cmd void vkCmdBindDescriptorSets(
Jesse Hall3fbc8562015-11-29 22:10:52 -08007917 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007918 VkPipelineBindPoint pipelineBindPoint,
7919 VkPipelineLayout layout,
7920 u32 firstSet,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007921 u32 descriptorSetCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007922 const VkDescriptorSet* pDescriptorSets,
7923 u32 dynamicOffsetCount,
7924 const u32* pDynamicOffsets) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08007925 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007926
Jesse Hall03b6fe12015-11-24 12:44:21 -08007927 descriptorSets := pDescriptorSets[0:descriptorSetCount]
7928 for i in (0 .. descriptorSetCount) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007929 descriptorSet := descriptorSets[i]
7930 descriptorSetObject := GetDescriptorSet(descriptorSet)
Jesse Hall3fbc8562015-11-29 22:10:52 -08007931 assert(commandBufferObject.device == descriptorSetObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007932 }
7933
7934 dynamicOffsets := pDynamicOffsets[0:dynamicOffsetCount]
7935 for i in (0 .. dynamicOffsetCount) {
7936 dynamicOffset := dynamicOffsets[i]
7937 }
7938
Jesse Halld8bade02015-11-24 10:24:18 -08007939 queue := switch (pipelineBindPoint) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007940 case VK_PIPELINE_BIND_POINT_COMPUTE: VK_QUEUE_COMPUTE_BIT
7941 case VK_PIPELINE_BIND_POINT_GRAPHICS: VK_QUEUE_GRAPHICS_BIT
7942 }
Jesse Hall3fbc8562015-11-29 22:10:52 -08007943 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, queue)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007944}
7945
7946@threadSafety("app")
7947cmd void vkCmdBindIndexBuffer(
Jesse Hall3fbc8562015-11-29 22:10:52 -08007948 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007949 VkBuffer buffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007950 VkDeviceSize offset,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007951 VkIndexType indexType) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08007952 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007953 bufferObject := GetBuffer(buffer)
Jesse Hall3fbc8562015-11-29 22:10:52 -08007954 assert(commandBufferObject.device == bufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007955
Jesse Hall3fbc8562015-11-29 22:10:52 -08007956 bindCommandBuffer(commandBuffer, buffer, bufferObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007957
Jesse Hall3fbc8562015-11-29 22:10:52 -08007958 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007959}
7960
7961@threadSafety("app")
7962cmd void vkCmdBindVertexBuffers(
Jesse Hall3fbc8562015-11-29 22:10:52 -08007963 VkCommandBuffer commandBuffer,
Jesse Hallf9fa9a52016-01-08 16:08:51 -08007964 u32 firstBinding,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007965 u32 bindingCount,
7966 const VkBuffer* pBuffers,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007967 const VkDeviceSize* pOffsets) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08007968 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007969
Jesse Hallf9fa9a52016-01-08 16:08:51 -08007970 // TODO: check if not [firstBinding:firstBinding+bindingCount]
Jesse Halld27f6aa2015-08-15 17:58:48 -07007971 buffers := pBuffers[0:bindingCount]
7972 offsets := pOffsets[0:bindingCount]
7973 for i in (0 .. bindingCount) {
7974 buffer := buffers[i]
7975 offset := offsets[i]
7976 bufferObject := GetBuffer(buffer)
Jesse Hall3fbc8562015-11-29 22:10:52 -08007977 assert(commandBufferObject.device == bufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007978
Jesse Hall3fbc8562015-11-29 22:10:52 -08007979 bindCommandBuffer(commandBuffer, buffer, bufferObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007980 }
7981
Jesse Hall3fbc8562015-11-29 22:10:52 -08007982 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007983}
7984
7985@threadSafety("app")
7986cmd void vkCmdDraw(
Jesse Hall3fbc8562015-11-29 22:10:52 -08007987 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007988 u32 vertexCount,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007989 u32 instanceCount,
7990 u32 firstVertex,
7991 u32 firstInstance) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08007992 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007993
Jesse Hall3fbc8562015-11-29 22:10:52 -08007994 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007995}
7996
7997@threadSafety("app")
7998cmd void vkCmdDrawIndexed(
Jesse Hall3fbc8562015-11-29 22:10:52 -08007999 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008000 u32 indexCount,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008001 u32 instanceCount,
8002 u32 firstIndex,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008003 s32 vertexOffset,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008004 u32 firstInstance) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008005 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008006
Jesse Hall3fbc8562015-11-29 22:10:52 -08008007 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008008}
8009
8010@threadSafety("app")
8011cmd void vkCmdDrawIndirect(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008012 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008013 VkBuffer buffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008014 VkDeviceSize offset,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008015 u32 drawCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008016 u32 stride) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008017 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008018 bufferObject := GetBuffer(buffer)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008019 assert(commandBufferObject.device == bufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008020
Jesse Hall3fbc8562015-11-29 22:10:52 -08008021 bindCommandBuffer(commandBuffer, buffer, bufferObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008022
Jesse Hall3fbc8562015-11-29 22:10:52 -08008023 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008024}
8025
8026@threadSafety("app")
8027cmd void vkCmdDrawIndexedIndirect(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008028 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008029 VkBuffer buffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008030 VkDeviceSize offset,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008031 u32 drawCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008032 u32 stride) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008033 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008034 bufferObject := GetBuffer(buffer)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008035 assert(commandBufferObject.device == bufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008036
Jesse Hall3fbc8562015-11-29 22:10:52 -08008037 bindCommandBuffer(commandBuffer, buffer, bufferObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008038
Jesse Hall3fbc8562015-11-29 22:10:52 -08008039 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008040}
8041
8042@threadSafety("app")
8043cmd void vkCmdDispatch(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008044 VkCommandBuffer commandBuffer,
Jesse Hallad250842017-03-10 18:35:38 -08008045 u32 groupCountX,
8046 u32 groupCountY,
8047 u32 groupCountZ) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008048 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008049
Jesse Hall3fbc8562015-11-29 22:10:52 -08008050 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_COMPUTE_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008051}
8052
8053@threadSafety("app")
8054cmd void vkCmdDispatchIndirect(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008055 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008056 VkBuffer buffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008057 VkDeviceSize offset) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008058 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008059 bufferObject := GetBuffer(buffer)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008060 assert(commandBufferObject.device == bufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008061
Jesse Hall3fbc8562015-11-29 22:10:52 -08008062 bindCommandBuffer(commandBuffer, buffer, bufferObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008063
Jesse Hall3fbc8562015-11-29 22:10:52 -08008064 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_COMPUTE_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008065}
8066
8067@threadSafety("app")
8068cmd void vkCmdCopyBuffer(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008069 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008070 VkBuffer srcBuffer,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008071 VkBuffer dstBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008072 u32 regionCount,
8073 const VkBufferCopy* pRegions) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008074 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008075 srcBufferObject := GetBuffer(srcBuffer)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008076 dstBufferObject := GetBuffer(dstBuffer)
8077 assert(commandBufferObject.device == srcBufferObject.device)
8078 assert(commandBufferObject.device == dstBufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008079
8080 regions := pRegions[0:regionCount]
8081 for i in (0 .. regionCount) {
8082 region := regions[i]
8083 }
8084
Jesse Hall3fbc8562015-11-29 22:10:52 -08008085 bindCommandBuffer(commandBuffer, srcBuffer, srcBufferObject.memory)
8086 bindCommandBuffer(commandBuffer, dstBuffer, dstBufferObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008087
Jesse Hall65ab5522015-11-30 00:07:16 -08008088 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_TRANSFER_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008089}
8090
8091@threadSafety("app")
8092cmd void vkCmdCopyImage(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008093 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008094 VkImage srcImage,
8095 VkImageLayout srcImageLayout,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008096 VkImage dstImage,
8097 VkImageLayout dstImageLayout,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008098 u32 regionCount,
8099 const VkImageCopy* pRegions) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008100 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008101 srcImageObject := GetImage(srcImage)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008102 dstImageObject := GetImage(dstImage)
8103 assert(commandBufferObject.device == srcImageObject.device)
8104 assert(commandBufferObject.device == dstImageObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008105
8106 regions := pRegions[0:regionCount]
8107 for i in (0 .. regionCount) {
8108 region := regions[i]
8109 }
8110
Jesse Hall3fbc8562015-11-29 22:10:52 -08008111 bindCommandBuffer(commandBuffer, srcImage, srcImageObject.memory)
8112 bindCommandBuffer(commandBuffer, dstImage, dstImageObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008113
Jesse Hall65ab5522015-11-30 00:07:16 -08008114 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_TRANSFER_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008115}
8116
8117@threadSafety("app")
8118cmd void vkCmdBlitImage(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008119 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008120 VkImage srcImage,
8121 VkImageLayout srcImageLayout,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008122 VkImage dstImage,
8123 VkImageLayout dstImageLayout,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008124 u32 regionCount,
8125 const VkImageBlit* pRegions,
Jesse Hall23ff73f2015-11-29 14:36:39 -08008126 VkFilter filter) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008127 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008128 srcImageObject := GetImage(srcImage)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008129 dstImageObject := GetImage(dstImage)
8130 assert(commandBufferObject.device == srcImageObject.device)
8131 assert(commandBufferObject.device == dstImageObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008132
8133 regions := pRegions[0:regionCount]
8134 for i in (0 .. regionCount) {
8135 region := regions[i]
8136 }
8137
Jesse Hall3fbc8562015-11-29 22:10:52 -08008138 bindCommandBuffer(commandBuffer, srcImage, srcImageObject.memory)
8139 bindCommandBuffer(commandBuffer, dstImage, dstImageObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008140
Jesse Hall3fbc8562015-11-29 22:10:52 -08008141 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008142}
8143
8144@threadSafety("app")
8145cmd void vkCmdCopyBufferToImage(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008146 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008147 VkBuffer srcBuffer,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008148 VkImage dstImage,
8149 VkImageLayout dstImageLayout,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008150 u32 regionCount,
8151 const VkBufferImageCopy* pRegions) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008152 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008153 srcBufferObject := GetBuffer(srcBuffer)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008154 dstImageObject := GetImage(dstImage)
8155 assert(commandBufferObject.device == srcBufferObject.device)
8156 assert(commandBufferObject.device == dstImageObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008157
8158 regions := pRegions[0:regionCount]
8159 for i in (0 .. regionCount) {
8160 region := regions[i]
8161 }
8162
Jesse Hall3fbc8562015-11-29 22:10:52 -08008163 bindCommandBuffer(commandBuffer, srcBuffer, srcBufferObject.memory)
8164 bindCommandBuffer(commandBuffer, dstImage, dstImageObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008165
Jesse Hall65ab5522015-11-30 00:07:16 -08008166 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_TRANSFER_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008167}
8168
8169@threadSafety("app")
8170cmd void vkCmdCopyImageToBuffer(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008171 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008172 VkImage srcImage,
8173 VkImageLayout srcImageLayout,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008174 VkBuffer dstBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008175 u32 regionCount,
8176 const VkBufferImageCopy* pRegions) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008177 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008178 srcImageObject := GetImage(srcImage)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008179 dstBufferObject := GetBuffer(dstBuffer)
8180 assert(commandBufferObject.device == srcImageObject.device)
8181 assert(commandBufferObject.device == dstBufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008182
8183 regions := pRegions[0:regionCount]
8184 for i in (0 .. regionCount) {
8185 region := regions[i]
8186 }
8187
Jesse Hall3fbc8562015-11-29 22:10:52 -08008188 bindCommandBuffer(commandBuffer, srcImage, srcImageObject.memory)
8189 bindCommandBuffer(commandBuffer, dstBuffer, dstBufferObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008190
Jesse Hall65ab5522015-11-30 00:07:16 -08008191 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_TRANSFER_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008192}
8193
8194@threadSafety("app")
8195cmd void vkCmdUpdateBuffer(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008196 VkCommandBuffer commandBuffer,
8197 VkBuffer dstBuffer,
8198 VkDeviceSize dstOffset,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008199 VkDeviceSize dataSize,
Jesse Hall56d386a2016-07-26 15:20:40 -07008200 const void* pData) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008201 commandBufferObject := GetCommandBuffer(commandBuffer)
8202 dstBufferObject := GetBuffer(dstBuffer)
8203 assert(commandBufferObject.device == dstBufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008204
8205 data := pData[0:dataSize]
8206
Jesse Hall3fbc8562015-11-29 22:10:52 -08008207 bindCommandBuffer(commandBuffer, dstBuffer, dstBufferObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008208
Jesse Hall65ab5522015-11-30 00:07:16 -08008209 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_TRANSFER_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008210}
8211
8212@threadSafety("app")
8213cmd void vkCmdFillBuffer(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008214 VkCommandBuffer commandBuffer,
8215 VkBuffer dstBuffer,
8216 VkDeviceSize dstOffset,
Jesse Hallb00daad2015-11-29 19:46:20 -08008217 VkDeviceSize size,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008218 u32 data) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008219 commandBufferObject := GetCommandBuffer(commandBuffer)
8220 dstBufferObject := GetBuffer(dstBuffer)
8221 assert(commandBufferObject.device == dstBufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008222
Jesse Hall65ab5522015-11-30 00:07:16 -08008223 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_TRANSFER_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008224}
8225
8226@threadSafety("app")
8227cmd void vkCmdClearColorImage(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008228 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008229 VkImage image,
8230 VkImageLayout imageLayout,
8231 const VkClearColorValue* pColor,
8232 u32 rangeCount,
8233 const VkImageSubresourceRange* pRanges) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008234 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008235 imageObject := GetImage(image)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008236 assert(commandBufferObject.device == imageObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008237
8238 ranges := pRanges[0:rangeCount]
8239 for i in (0 .. rangeCount) {
8240 range := ranges[i]
8241 }
8242
Jesse Hall3fbc8562015-11-29 22:10:52 -08008243 bindCommandBuffer(commandBuffer, image, imageObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008244
Jesse Hall3fbc8562015-11-29 22:10:52 -08008245 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008246}
8247
8248@threadSafety("app")
8249cmd void vkCmdClearDepthStencilImage(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008250 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008251 VkImage image,
8252 VkImageLayout imageLayout,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008253 const VkClearDepthStencilValue* pDepthStencil,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008254 u32 rangeCount,
8255 const VkImageSubresourceRange* pRanges) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008256 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008257 imageObject := GetImage(image)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008258 assert(commandBufferObject.device == imageObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008259
8260 ranges := pRanges[0:rangeCount]
8261 for i in (0 .. rangeCount) {
8262 range := ranges[i]
8263 }
8264
Jesse Hall3fbc8562015-11-29 22:10:52 -08008265 bindCommandBuffer(commandBuffer, image, imageObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008266
Jesse Hall3fbc8562015-11-29 22:10:52 -08008267 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008268}
8269
8270@threadSafety("app")
Jesse Hallae38f732015-11-19 21:32:50 -08008271cmd void vkCmdClearAttachments(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008272 VkCommandBuffer commandBuffer,
Jesse Hallae38f732015-11-19 21:32:50 -08008273 u32 attachmentCount,
8274 const VkClearAttachment* pAttachments,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008275 u32 rectCount,
Jesse Halla15a4bf2015-11-19 22:48:02 -08008276 const VkClearRect* pRects) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008277 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008278
8279 rects := pRects[0:rectCount]
8280 for i in (0 .. rectCount) {
8281 rect := rects[i]
8282 }
8283
Jesse Hall3fbc8562015-11-29 22:10:52 -08008284 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008285}
8286
8287@threadSafety("app")
8288cmd void vkCmdResolveImage(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008289 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008290 VkImage srcImage,
8291 VkImageLayout srcImageLayout,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008292 VkImage dstImage,
8293 VkImageLayout dstImageLayout,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008294 u32 regionCount,
8295 const VkImageResolve* pRegions) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008296 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008297 srcImageObject := GetImage(srcImage)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008298 dstImageObject := GetImage(dstImage)
8299 assert(commandBufferObject.device == srcImageObject.device)
8300 assert(commandBufferObject.device == dstImageObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008301
8302 regions := pRegions[0:regionCount]
8303 for i in (0 .. regionCount) {
8304 region := regions[i]
8305 }
8306
Jesse Hall3fbc8562015-11-29 22:10:52 -08008307 bindCommandBuffer(commandBuffer, srcImage, srcImageObject.memory)
8308 bindCommandBuffer(commandBuffer, dstImage, dstImageObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008309
Jesse Hall3fbc8562015-11-29 22:10:52 -08008310 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008311}
8312
8313@threadSafety("app")
8314cmd void vkCmdSetEvent(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008315 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008316 VkEvent event,
8317 VkPipelineStageFlags stageMask) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008318 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008319 eventObject := GetEvent(event)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008320 assert(commandBufferObject.device == eventObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008321}
8322
8323@threadSafety("app")
8324cmd void vkCmdResetEvent(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008325 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008326 VkEvent event,
8327 VkPipelineStageFlags stageMask) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008328 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008329 eventObject := GetEvent(event)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008330 assert(commandBufferObject.device == eventObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008331}
8332
8333@threadSafety("app")
8334cmd void vkCmdWaitEvents(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008335 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008336 u32 eventCount,
8337 const VkEvent* pEvents,
8338 VkPipelineStageFlags srcStageMask,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008339 VkPipelineStageFlags dstStageMask,
8340 u32 memoryBarrierCount,
Jesse Hall3dd678a2016-01-08 21:52:01 -08008341 const VkMemoryBarrier* pMemoryBarriers,
8342 u32 bufferMemoryBarrierCount,
8343 const VkBufferMemoryBarrier* pBufferMemoryBarriers,
8344 u32 imageMemoryBarrierCount,
8345 const VkImageMemoryBarrier* pImageMemoryBarriers) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008346 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008347
8348 events := pEvents[0:eventCount]
8349 for i in (0 .. eventCount) {
8350 event := events[i]
8351 eventObject := GetEvent(event)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008352 assert(commandBufferObject.device == eventObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008353 }
8354
Jesse Hall3dd678a2016-01-08 21:52:01 -08008355 memoryBarriers := pMemoryBarriers[0:memoryBarrierCount]
Jesse Hall3fbc8562015-11-29 22:10:52 -08008356 for i in (0 .. memoryBarrierCount) {
Jesse Hall3dd678a2016-01-08 21:52:01 -08008357 memoryBarrier := memoryBarriers[i]
8358 }
8359 bufferMemoryBarriers := pBufferMemoryBarriers[0:bufferMemoryBarrierCount]
8360 for i in (0 .. bufferMemoryBarrierCount) {
8361 bufferMemoryBarrier := bufferMemoryBarriers[i]
8362 bufferObject := GetBuffer(bufferMemoryBarrier.buffer)
8363 assert(bufferObject.device == commandBufferObject.device)
8364 }
8365 imageMemoryBarriers := pImageMemoryBarriers[0:imageMemoryBarrierCount]
8366 for i in (0 .. imageMemoryBarrierCount) {
8367 imageMemoryBarrier := imageMemoryBarriers[i]
8368 imageObject := GetImage(imageMemoryBarrier.image)
8369 assert(imageObject.device == commandBufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008370 }
8371}
8372
8373@threadSafety("app")
8374cmd void vkCmdPipelineBarrier(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008375 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008376 VkPipelineStageFlags srcStageMask,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008377 VkPipelineStageFlags dstStageMask,
Jesse Halldc6d36c2015-11-29 19:12:15 -08008378 VkDependencyFlags dependencyFlags,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008379 u32 memoryBarrierCount,
Jesse Hall3dd678a2016-01-08 21:52:01 -08008380 const VkMemoryBarrier* pMemoryBarriers,
8381 u32 bufferMemoryBarrierCount,
8382 const VkBufferMemoryBarrier* pBufferMemoryBarriers,
8383 u32 imageMemoryBarrierCount,
8384 const VkImageMemoryBarrier* pImageMemoryBarriers) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008385 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008386
Jesse Hall3dd678a2016-01-08 21:52:01 -08008387 memoryBarriers := pMemoryBarriers[0:memoryBarrierCount]
Jesse Hall3fbc8562015-11-29 22:10:52 -08008388 for i in (0 .. memoryBarrierCount) {
Jesse Hall3dd678a2016-01-08 21:52:01 -08008389 memoryBarrier := memoryBarriers[i]
8390 }
8391 bufferMemoryBarriers := pBufferMemoryBarriers[0:bufferMemoryBarrierCount]
8392 for i in (0 .. bufferMemoryBarrierCount) {
8393 bufferMemoryBarrier := bufferMemoryBarriers[i]
8394 bufferObject := GetBuffer(bufferMemoryBarrier.buffer)
8395 assert(bufferObject.device == commandBufferObject.device)
8396 }
8397 imageMemoryBarriers := pImageMemoryBarriers[0:imageMemoryBarrierCount]
8398 for i in (0 .. imageMemoryBarrierCount) {
8399 imageMemoryBarrier := imageMemoryBarriers[i]
8400 imageObject := GetImage(imageMemoryBarrier.image)
8401 assert(imageObject.device == commandBufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008402 }
8403}
8404
8405@threadSafety("app")
8406cmd void vkCmdBeginQuery(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008407 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008408 VkQueryPool queryPool,
Jesse Hall3dd678a2016-01-08 21:52:01 -08008409 u32 query,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008410 VkQueryControlFlags flags) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008411 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008412 queryPoolObject := GetQueryPool(queryPool)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008413 assert(commandBufferObject.device == queryPoolObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008414}
8415
8416@threadSafety("app")
8417cmd void vkCmdEndQuery(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008418 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008419 VkQueryPool queryPool,
Jesse Hall3dd678a2016-01-08 21:52:01 -08008420 u32 query) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008421 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008422 queryPoolObject := GetQueryPool(queryPool)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008423 assert(commandBufferObject.device == queryPoolObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008424}
8425
8426@threadSafety("app")
8427cmd void vkCmdResetQueryPool(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008428 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008429 VkQueryPool queryPool,
Jesse Hallf9fa9a52016-01-08 16:08:51 -08008430 u32 firstQuery,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008431 u32 queryCount) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008432 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008433 queryPoolObject := GetQueryPool(queryPool)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008434 assert(commandBufferObject.device == queryPoolObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008435}
8436
8437@threadSafety("app")
8438cmd void vkCmdWriteTimestamp(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008439 VkCommandBuffer commandBuffer,
Jesse Hall6f39a6d2015-11-24 11:08:36 -08008440 VkPipelineStageFlagBits pipelineStage,
Jesse Halla3a7a1d2015-11-24 11:37:23 -08008441 VkQueryPool queryPool,
Jesse Hall3dd678a2016-01-08 21:52:01 -08008442 u32 query) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008443 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halla3a7a1d2015-11-24 11:37:23 -08008444 queryPoolObject := GetQueryPool(queryPool)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008445 assert(commandBufferObject.device == queryPoolObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008446}
8447
8448@threadSafety("app")
8449cmd void vkCmdCopyQueryPoolResults(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008450 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008451 VkQueryPool queryPool,
Jesse Hallf9fa9a52016-01-08 16:08:51 -08008452 u32 firstQuery,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008453 u32 queryCount,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008454 VkBuffer dstBuffer,
8455 VkDeviceSize dstOffset,
Jesse Halla9bb62b2015-11-21 19:31:56 -08008456 VkDeviceSize stride,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008457 VkQueryResultFlags flags) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008458 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008459 queryPoolObject := GetQueryPool(queryPool)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008460 dstBufferObject := GetBuffer(dstBuffer)
8461 assert(commandBufferObject.device == queryPoolObject.device)
8462 assert(commandBufferObject.device == dstBufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008463}
8464
8465cmd void vkCmdPushConstants(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008466 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008467 VkPipelineLayout layout,
8468 VkShaderStageFlags stageFlags,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008469 u32 offset,
8470 u32 size,
Jesse Hallf4ab2b12015-11-30 16:04:55 -08008471 const void* pValues) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008472 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008473 layoutObject := GetPipelineLayout(layout)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008474 assert(commandBufferObject.device == layoutObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008475}
8476
8477@threadSafety("app")
8478cmd void vkCmdBeginRenderPass(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008479 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008480 const VkRenderPassBeginInfo* pRenderPassBegin,
Jesse Hall65ab5522015-11-30 00:07:16 -08008481 VkSubpassContents contents) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008482 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008483 renderPassObject := GetRenderPass(pRenderPassBegin.renderPass)
8484 framebufferObject := GetFramebuffer(pRenderPassBegin.framebuffer)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008485 assert(commandBufferObject.device == renderPassObject.device)
8486 assert(commandBufferObject.device == framebufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008487
Jesse Hall3fbc8562015-11-29 22:10:52 -08008488 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008489}
8490
8491cmd void vkCmdNextSubpass(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008492 VkCommandBuffer commandBuffer,
Jesse Hall65ab5522015-11-30 00:07:16 -08008493 VkSubpassContents contents) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008494 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008495}
8496
8497@threadSafety("app")
8498cmd void vkCmdEndRenderPass(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008499 VkCommandBuffer commandBuffer) {
8500 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008501
Jesse Hall3fbc8562015-11-29 22:10:52 -08008502 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008503}
8504
8505cmd void vkCmdExecuteCommands(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008506 VkCommandBuffer commandBuffer,
Jesse Hall3dd678a2016-01-08 21:52:01 -08008507 u32 commandBufferCount,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008508 const VkCommandBuffer* pCommandBuffers) {
8509 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008510
Jesse Hall3dd678a2016-01-08 21:52:01 -08008511 commandBuffers := pCommandBuffers[0:commandBufferCount]
8512 for i in (0 .. commandBufferCount) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008513 secondaryCommandBuffer := commandBuffers[i]
8514 secondaryCommandBufferObject := GetCommandBuffer(secondaryCommandBuffer)
8515 assert(commandBufferObject.device == secondaryCommandBufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008516 }
8517}
8518
Ian Elliottcd8ad332017-10-13 09:21:12 -06008519//@vulkan1_1 functions
Daniel Kochf25f5bb2017-10-05 00:26:58 -04008520
Ian Elliottcd8ad332017-10-13 09:21:12 -06008521@vulkan1_1
Daniel Kochf25f5bb2017-10-05 00:26:58 -04008522cmd VkResult vkEnumerateInstanceVersion(
8523 u32* pApiVersion) {
8524 return ?
8525}
8526
Ian Elliottcd8ad332017-10-13 09:21:12 -06008527@vulkan1_1
Daniel Kochf25f5bb2017-10-05 00:26:58 -04008528cmd VkResult vkBindBufferMemory2(
8529 VkDevice device,
8530 u32 bindInfoCount,
8531 const VkBindBufferMemoryInfo* pBindInfos) {
8532 return ?
8533}
8534
Ian Elliottcd8ad332017-10-13 09:21:12 -06008535@vulkan1_1
Daniel Kochf25f5bb2017-10-05 00:26:58 -04008536cmd VkResult vkBindImageMemory2(
8537 VkDevice device,
8538 u32 bindInfoCount,
8539 const VkBindImageMemoryInfo* pBindInfos) {
8540 return ?
8541}
8542
Ian Elliottcd8ad332017-10-13 09:21:12 -06008543@vulkan1_1
Daniel Kochf25f5bb2017-10-05 00:26:58 -04008544cmd void vkGetDeviceGroupPeerMemoryFeatures(
8545 VkDevice device,
8546 u32 heapIndex,
8547 u32 localDeviceIndex,
8548 u32 remoteDeviceIndex,
8549 VkPeerMemoryFeatureFlags* pPeerMemoryFeatures) {
8550}
8551
Ian Elliottcd8ad332017-10-13 09:21:12 -06008552@vulkan1_1
Daniel Kochf25f5bb2017-10-05 00:26:58 -04008553cmd void vkCmdSetDeviceMask(
8554 VkCommandBuffer commandBuffer,
8555 u32 deviceMask) {
8556}
8557
Ian Elliottcd8ad332017-10-13 09:21:12 -06008558@vulkan1_1
Daniel Kochf25f5bb2017-10-05 00:26:58 -04008559cmd void vkCmdDispatchBase(
8560 VkCommandBuffer commandBuffer,
8561 u32 baseGroupX,
8562 u32 baseGroupY,
8563 u32 baseGroupZ,
8564 u32 groupCountX,
8565 u32 groupCountY,
8566 u32 groupCountZ) {
8567}
8568
8569@threadSafety("system")
Ian Elliottcd8ad332017-10-13 09:21:12 -06008570@vulkan1_1
Daniel Kochf25f5bb2017-10-05 00:26:58 -04008571cmd VkResult vkEnumeratePhysicalDeviceGroups(
8572 VkInstance instance,
8573 u32* pPhysicalDeviceGroupCount,
8574 VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties) {
8575 instanceObject := GetInstance(instance)
8576
8577 physicalDeviceGroupCount := as!u32(?)
8578 pPhysicalDeviceGroupCount[0] = physicalDeviceGroupCount
8579 physicalDevices := pPhysicalDeviceGroupProperties[0:physicalDeviceGroupCount]
8580
8581 for i in (0 .. physicalDeviceGroupCount) {
8582 physicalDevice := ?
8583 physicalDevices[i] = physicalDevice
8584 if !(physicalDevice in State.PhysicalDevices) {
8585 State.PhysicalDevices[physicalDevice] = new!PhysicalDeviceObject(instance: instance)
8586 }
8587 }
8588
8589 return ?
8590}
8591
Ian Elliottcd8ad332017-10-13 09:21:12 -06008592@vulkan1_1
Daniel Kochf25f5bb2017-10-05 00:26:58 -04008593cmd void vkGetImageMemoryRequirements2(
8594 VkDevice device,
8595 const VkImageMemoryRequirementsInfo2* pInfo,
8596 VkMemoryRequirements2* pMemoryRequirements) {
8597}
8598
Ian Elliottcd8ad332017-10-13 09:21:12 -06008599@vulkan1_1
Daniel Kochf25f5bb2017-10-05 00:26:58 -04008600cmd void vkGetBufferMemoryRequirements2(
8601 VkDevice device,
8602 const VkBufferMemoryRequirementsInfo2* pInfo,
8603 VkMemoryRequirements2* pMemoryRequirements) {
8604}
8605
Ian Elliottcd8ad332017-10-13 09:21:12 -06008606@vulkan1_1
Daniel Kochf25f5bb2017-10-05 00:26:58 -04008607cmd void vkGetImageSparseMemoryRequirements2(
8608 VkDevice device,
8609 const VkImageSparseMemoryRequirementsInfo2* pInfo,
8610 u32* pSparseMemoryRequirementCount,
8611 VkSparseImageMemoryRequirements2* pSparseMemoryRequirements) {
8612}
8613
Ian Elliottcd8ad332017-10-13 09:21:12 -06008614@vulkan1_1
Daniel Kochf25f5bb2017-10-05 00:26:58 -04008615cmd void vkGetPhysicalDeviceFeatures2(
8616 VkPhysicalDevice physicalDevice,
8617 VkPhysicalDeviceFeatures2* pFeatures) {
8618}
8619
Ian Elliottcd8ad332017-10-13 09:21:12 -06008620@vulkan1_1
Daniel Kochf25f5bb2017-10-05 00:26:58 -04008621cmd void vkGetPhysicalDeviceProperties2(
8622 VkPhysicalDevice physicalDevice,
8623 VkPhysicalDeviceProperties2* pProperties) {
8624}
8625
Ian Elliottcd8ad332017-10-13 09:21:12 -06008626@vulkan1_1
Daniel Kochf25f5bb2017-10-05 00:26:58 -04008627cmd void vkGetPhysicalDeviceFormatProperties2(
8628 VkPhysicalDevice physicalDevice,
8629 VkFormat format,
8630 VkFormatProperties2* pFormatProperties) {
8631}
8632
Ian Elliottcd8ad332017-10-13 09:21:12 -06008633@vulkan1_1
Daniel Kochf25f5bb2017-10-05 00:26:58 -04008634cmd VkResult vkGetPhysicalDeviceImageFormatProperties2(
8635 VkPhysicalDevice physicalDevice,
8636 const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo,
8637 VkImageFormatProperties2* pImageFormatProperties) {
8638 return ?
8639}
8640
Ian Elliottcd8ad332017-10-13 09:21:12 -06008641@vulkan1_1
Daniel Kochf25f5bb2017-10-05 00:26:58 -04008642cmd void vkGetPhysicalDeviceQueueFamilyProperties2(
8643 VkPhysicalDevice physicalDevice,
8644 u32* pQueueFamilyPropertyCount,
8645 VkQueueFamilyProperties2* pQueueFamilyProperties) {
8646}
8647
Ian Elliottcd8ad332017-10-13 09:21:12 -06008648@vulkan1_1
Daniel Kochf25f5bb2017-10-05 00:26:58 -04008649cmd void vkGetPhysicalDeviceMemoryProperties2(
8650 VkPhysicalDevice physicalDevice,
8651 VkPhysicalDeviceMemoryProperties2* pMemoryProperties) {
8652}
8653
Ian Elliottcd8ad332017-10-13 09:21:12 -06008654@vulkan1_1
Daniel Kochf25f5bb2017-10-05 00:26:58 -04008655cmd void vkGetPhysicalDeviceSparseImageFormatProperties2(
8656 VkPhysicalDevice physicalDevice,
8657 const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo,
8658 u32* pPropertyCount,
8659 VkSparseImageFormatProperties2* pProperties) {
8660}
8661
Ian Elliottcd8ad332017-10-13 09:21:12 -06008662@vulkan1_1
Daniel Kochf25f5bb2017-10-05 00:26:58 -04008663cmd void vkTrimCommandPool(
8664 VkDevice device,
8665 VkCommandPool commandPool,
8666 VkCommandPoolTrimFlags flags) {
8667}
8668
8669
Ian Elliottcd8ad332017-10-13 09:21:12 -06008670@vulkan1_1
Daniel Kochf25f5bb2017-10-05 00:26:58 -04008671cmd void vkGetDeviceQueue2(
8672 VkDevice device,
8673 const VkDeviceQueueInfo2* pQueueInfo,
8674 VkQueue* pQueue) {
8675 deviceObject := GetDevice(device)
8676
8677 queue := ?
8678 pQueue[0] = queue
8679
8680 if !(queue in State.Queues) {
8681 State.Queues[queue] = new!QueueObject(device: device)
8682 }
8683}
8684
Ian Elliottcd8ad332017-10-13 09:21:12 -06008685@vulkan1_1
Daniel Kochf25f5bb2017-10-05 00:26:58 -04008686cmd VkResult vkCreateSamplerYcbcrConversion(
8687 VkDevice device,
8688 const VkSamplerYcbcrConversionCreateInfo* pCreateInfo,
8689 const VkAllocationCallbacks* pAllocator,
8690 VkSamplerYcbcrConversion* pYcbcrConversion) {
8691 return ?
8692}
8693
Ian Elliottcd8ad332017-10-13 09:21:12 -06008694@vulkan1_1
Daniel Kochf25f5bb2017-10-05 00:26:58 -04008695cmd void vkDestroySamplerYcbcrConversion(
8696 VkDevice device,
8697 VkSamplerYcbcrConversion ycbcrConversion,
8698 const VkAllocationCallbacks* pAllocator) {
8699}
8700
Ian Elliottcd8ad332017-10-13 09:21:12 -06008701@vulkan1_1
Daniel Kochf25f5bb2017-10-05 00:26:58 -04008702cmd VkResult vkCreateDescriptorUpdateTemplate(
8703 VkDevice device,
8704 const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo,
8705 const VkAllocationCallbacks* pAllocator,
8706 VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate) {
8707 return ?
8708}
8709
Ian Elliottcd8ad332017-10-13 09:21:12 -06008710@vulkan1_1
Daniel Kochf25f5bb2017-10-05 00:26:58 -04008711cmd void vkDestroyDescriptorUpdateTemplate(
8712 VkDevice device,
8713 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
8714 const VkAllocationCallbacks* pAllocator) {
8715}
8716
Ian Elliottcd8ad332017-10-13 09:21:12 -06008717@vulkan1_1
Daniel Kochf25f5bb2017-10-05 00:26:58 -04008718cmd void vkUpdateDescriptorSetWithTemplate(
8719 VkDevice device,
8720 VkDescriptorSet descriptorSet,
8721 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
8722 const void* pData) {
8723}
8724
Ian Elliottcd8ad332017-10-13 09:21:12 -06008725@vulkan1_1
Daniel Kochf25f5bb2017-10-05 00:26:58 -04008726cmd void vkGetPhysicalDeviceExternalBufferProperties(
8727 VkPhysicalDevice physicalDevice,
8728 const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo,
8729 VkExternalBufferProperties* pExternalBufferProperties) {
8730}
8731
Ian Elliottcd8ad332017-10-13 09:21:12 -06008732@vulkan1_1
Daniel Kochf25f5bb2017-10-05 00:26:58 -04008733cmd void vkGetPhysicalDeviceExternalFenceProperties(
8734 VkPhysicalDevice physicalDevice,
8735 const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo,
8736 VkExternalFenceProperties* pExternalFenceProperties) {
8737}
8738
Ian Elliottcd8ad332017-10-13 09:21:12 -06008739@vulkan1_1
Daniel Kochf25f5bb2017-10-05 00:26:58 -04008740cmd void vkGetPhysicalDeviceExternalSemaphoreProperties(
8741 VkPhysicalDevice physicalDevice,
8742 const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo,
8743 VkExternalSemaphoreProperties* pExternalSemaphoreProperties) {
8744}
8745
Ian Elliottcd8ad332017-10-13 09:21:12 -06008746@vulkan1_1
Daniel Kochf25f5bb2017-10-05 00:26:58 -04008747cmd void vkGetDescriptorSetLayoutSupport(
8748 VkDevice device,
8749 const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
8750 VkDescriptorSetLayoutSupport* pSupport) {
8751}
8752
8753
Jesse Hallad250842017-03-10 18:35:38 -08008754@extension("VK_KHR_surface") // 1
Jesse Hall1356b0d2015-11-23 17:24:58 -08008755cmd void vkDestroySurfaceKHR(
8756 VkInstance instance,
Jesse Hall0e74f002015-11-30 11:37:59 -08008757 VkSurfaceKHR surface,
8758 const VkAllocationCallbacks* pAllocator) {
Jesse Hall1356b0d2015-11-23 17:24:58 -08008759 instanceObject := GetInstance(instance)
8760 surfaceObject := GetSurface(surface)
8761 assert(surfaceObject.instance == instance)
Michael Lentine88594d72015-11-12 12:49:45 -08008762
Jesse Hall1356b0d2015-11-23 17:24:58 -08008763 State.Surfaces[surface] = null
Jesse Hall2818f932015-11-19 21:19:17 -08008764}
8765
Jesse Hallad250842017-03-10 18:35:38 -08008766@extension("VK_KHR_surface") // 1
Jesse Halla6429252015-11-29 18:59:42 -08008767cmd VkResult vkGetPhysicalDeviceSurfaceSupportKHR(
Jesse Hall1356b0d2015-11-23 17:24:58 -08008768 VkPhysicalDevice physicalDevice,
8769 u32 queueFamilyIndex,
Jesse Hall1356b0d2015-11-23 17:24:58 -08008770 VkSurfaceKHR surface,
Jesse Hallb00daad2015-11-29 19:46:20 -08008771 VkBool32* pSupported) {
8772 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
Michael Lentine88594d72015-11-12 12:49:45 -08008773
8774 return ?
8775}
8776
Jesse Hallad250842017-03-10 18:35:38 -08008777@extension("VK_KHR_surface") // 1
Jesse Hallb00daad2015-11-29 19:46:20 -08008778cmd VkResult vkGetPhysicalDeviceSurfaceCapabilitiesKHR(
8779 VkPhysicalDevice physicalDevice,
8780 VkSurfaceKHR surface,
8781 VkSurfaceCapabilitiesKHR* pSurfaceCapabilities) {
8782 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
8783
8784 surfaceCapabilities := ?
8785 pSurfaceCapabilities[0] = surfaceCapabilities
8786
8787 return ?
8788}
8789
Jesse Hallad250842017-03-10 18:35:38 -08008790@extension("VK_KHR_surface") // 1
Jesse Hallb00daad2015-11-29 19:46:20 -08008791cmd VkResult vkGetPhysicalDeviceSurfaceFormatsKHR(
8792 VkPhysicalDevice physicalDevice,
Jesse Hall1356b0d2015-11-23 17:24:58 -08008793 VkSurfaceKHR surface,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008794 u32* pSurfaceFormatCount,
Jesse Hall1356b0d2015-11-23 17:24:58 -08008795 VkSurfaceFormatKHR* pSurfaceFormats) {
Jesse Hallb00daad2015-11-29 19:46:20 -08008796 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
Michael Lentine88594d72015-11-12 12:49:45 -08008797
8798 count := as!u32(?)
Jesse Hall03b6fe12015-11-24 12:44:21 -08008799 pSurfaceFormatCount[0] = count
Michael Lentine88594d72015-11-12 12:49:45 -08008800 surfaceFormats := pSurfaceFormats[0:count]
8801
8802 for i in (0 .. count) {
8803 surfaceFormat := ?
8804 surfaceFormats[i] = surfaceFormat
8805 }
8806
8807 return ?
8808}
8809
Jesse Hallad250842017-03-10 18:35:38 -08008810@extension("VK_KHR_surface") // 1
Jesse Hallb00daad2015-11-29 19:46:20 -08008811cmd VkResult vkGetPhysicalDeviceSurfacePresentModesKHR(
8812 VkPhysicalDevice physicalDevice,
Jesse Hall1356b0d2015-11-23 17:24:58 -08008813 VkSurfaceKHR surface,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008814 u32* pPresentModeCount,
Jesse Hall1356b0d2015-11-23 17:24:58 -08008815 VkPresentModeKHR* pPresentModes) {
Jesse Hallb00daad2015-11-29 19:46:20 -08008816 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
Michael Lentine88594d72015-11-12 12:49:45 -08008817
8818 count := as!u32(?)
Jesse Hall03b6fe12015-11-24 12:44:21 -08008819 pPresentModeCount[0] = count
Michael Lentine88594d72015-11-12 12:49:45 -08008820 presentModes := pPresentModes[0:count]
8821
8822 for i in (0 .. count) {
8823 presentMode := ?
8824 presentModes[i] = presentMode
8825 }
8826
8827 return ?
8828}
8829
Jesse Hallad250842017-03-10 18:35:38 -08008830@extension("VK_KHR_swapchain") // 2
Michael Lentine88594d72015-11-12 12:49:45 -08008831cmd VkResult vkCreateSwapchainKHR(
8832 VkDevice device,
8833 const VkSwapchainCreateInfoKHR* pCreateInfo,
Jesse Hall0e74f002015-11-30 11:37:59 -08008834 const VkAllocationCallbacks* pAllocator,
Michael Lentine88594d72015-11-12 12:49:45 -08008835 VkSwapchainKHR* pSwapchain) {
Jesse Hall1356b0d2015-11-23 17:24:58 -08008836 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR)
Michael Lentine88594d72015-11-12 12:49:45 -08008837 deviceObject := GetDevice(device)
8838
8839 swapchain := ?
8840 pSwapchain[0] = swapchain
8841 State.Swapchains[swapchain] = new!SwapchainObject(device: device)
8842
8843 return ?
8844}
8845
Jesse Hallad250842017-03-10 18:35:38 -08008846@extension("VK_KHR_swapchain") // 2
Jesse Hall1356b0d2015-11-23 17:24:58 -08008847cmd void vkDestroySwapchainKHR(
Michael Lentine88594d72015-11-12 12:49:45 -08008848 VkDevice device,
Jesse Hall0e74f002015-11-30 11:37:59 -08008849 VkSwapchainKHR swapchain,
8850 const VkAllocationCallbacks* pAllocator) {
Michael Lentine88594d72015-11-12 12:49:45 -08008851 deviceObject := GetDevice(device)
8852 swapchainObject := GetSwapchain(swapchain)
8853 assert(swapchainObject.device == device)
8854
8855 State.Swapchains[swapchain] = null
Michael Lentine88594d72015-11-12 12:49:45 -08008856}
8857
Jesse Hallad250842017-03-10 18:35:38 -08008858@extension("VK_KHR_swapchain") // 2
Michael Lentine88594d72015-11-12 12:49:45 -08008859cmd VkResult vkGetSwapchainImagesKHR(
8860 VkDevice device,
8861 VkSwapchainKHR swapchain,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008862 u32* pSwapchainImageCount,
Michael Lentine88594d72015-11-12 12:49:45 -08008863 VkImage* pSwapchainImages) {
8864 deviceObject := GetDevice(device)
8865
8866 count := as!u32(?)
Jesse Hall03b6fe12015-11-24 12:44:21 -08008867 pSwapchainImageCount[0] = count
Michael Lentine88594d72015-11-12 12:49:45 -08008868 swapchainImages := pSwapchainImages[0:count]
8869
8870 for i in (0 .. count) {
8871 swapchainImage := ?
8872 swapchainImages[i] = swapchainImage
Jesse Hall1356b0d2015-11-23 17:24:58 -08008873 State.Images[swapchainImage] = new!ImageObject(device: device)
Michael Lentine88594d72015-11-12 12:49:45 -08008874 }
8875
8876 return ?
8877}
8878
Jesse Hallad250842017-03-10 18:35:38 -08008879@extension("VK_KHR_swapchain") // 2
Michael Lentine88594d72015-11-12 12:49:45 -08008880cmd VkResult vkAcquireNextImageKHR(
8881 VkDevice device,
8882 VkSwapchainKHR swapchain,
8883 u64 timeout,
8884 VkSemaphore semaphore,
Jesse Hall1356b0d2015-11-23 17:24:58 -08008885 VkFence fence,
Michael Lentine88594d72015-11-12 12:49:45 -08008886 u32* pImageIndex) {
8887 deviceObject := GetDevice(device)
8888 swapchainObject := GetSwapchain(swapchain)
8889
8890 imageIndex := ?
8891 pImageIndex[0] = imageIndex
8892
8893 return ?
8894}
8895
Jesse Hallad250842017-03-10 18:35:38 -08008896@extension("VK_KHR_swapchain") // 2
Michael Lentine88594d72015-11-12 12:49:45 -08008897cmd VkResult vkQueuePresentKHR(
8898 VkQueue queue,
Jesse Hallf4ab2b12015-11-30 16:04:55 -08008899 const VkPresentInfoKHR* pPresentInfo) {
Michael Lentine88594d72015-11-12 12:49:45 -08008900 queueObject := GetQueue(queue)
8901
8902 presentInfo := ?
8903 pPresentInfo[0] = presentInfo
8904
8905 return ?
8906}
8907
Ian Elliottcd8ad332017-10-13 09:21:12 -06008908@vulkan1_1
Daniel Kochf25f5bb2017-10-05 00:26:58 -04008909@extension("VK_KHR_swapchain") // 2
8910cmd VkResult vkGetDeviceGroupPresentCapabilitiesKHR(
8911 VkDevice device,
8912 VkDeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities) {
8913 return ?
8914}
8915
Ian Elliottcd8ad332017-10-13 09:21:12 -06008916@vulkan1_1
Daniel Kochf25f5bb2017-10-05 00:26:58 -04008917@extension("VK_KHR_swapchain") // 2
8918cmd VkResult vkGetDeviceGroupSurfacePresentModesKHR(
8919 VkDevice device,
8920 VkSurfaceKHR surface,
8921 VkDeviceGroupPresentModeFlagsKHR* pModes) {
8922 return ?
8923}
8924
Ian Elliottcd8ad332017-10-13 09:21:12 -06008925@vulkan1_1
Daniel Kochf25f5bb2017-10-05 00:26:58 -04008926@extension("VK_KHR_swapchain") // 2
8927cmd VkResult vkGetPhysicalDevicePresentRectanglesKHR(
8928 VkPhysicalDevice physicalDevice,
8929 VkSurfaceKHR surface,
8930 u32* pRectCount,
8931 VkRect2D* pRects) {
8932 return ?
8933}
8934
Ian Elliottcd8ad332017-10-13 09:21:12 -06008935@vulkan1_1
Daniel Kochf25f5bb2017-10-05 00:26:58 -04008936@extension("VK_KHR_swapchain") // 2
8937cmd VkResult vkAcquireNextImage2KHR(
8938 VkDevice device,
8939 const VkAcquireNextImageInfoKHR* pAcquireInfo,
8940 u32* pImageIndex) {
8941 return ?
8942}
8943
Jesse Hallad250842017-03-10 18:35:38 -08008944@extension("VK_KHR_display") // 3
Jesse Hall1356b0d2015-11-23 17:24:58 -08008945cmd VkResult vkGetPhysicalDeviceDisplayPropertiesKHR(
8946 VkPhysicalDevice physicalDevice,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008947 u32* pPropertyCount,
Jesse Hall1356b0d2015-11-23 17:24:58 -08008948 VkDisplayPropertiesKHR* pProperties) {
8949 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
8950 return ?
8951}
8952
Jesse Hallad250842017-03-10 18:35:38 -08008953@extension("VK_KHR_display") // 3
Jesse Halla6429252015-11-29 18:59:42 -08008954cmd VkResult vkGetPhysicalDeviceDisplayPlanePropertiesKHR(
8955 VkPhysicalDevice physicalDevice,
8956 u32* pPropertyCount,
8957 VkDisplayPlanePropertiesKHR* pProperties) {
8958 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
8959 return ?
8960}
8961
Jesse Hallad250842017-03-10 18:35:38 -08008962@extension("VK_KHR_display") // 3
Jesse Halla6429252015-11-29 18:59:42 -08008963cmd VkResult vkGetDisplayPlaneSupportedDisplaysKHR(
8964 VkPhysicalDevice physicalDevice,
Jesse Hall3dd678a2016-01-08 21:52:01 -08008965 u32 planeIndex,
Jesse Hallf4ab2b12015-11-30 16:04:55 -08008966 u32* pDisplayCount,
8967 VkDisplayKHR* pDisplays) {
Jesse Halla6429252015-11-29 18:59:42 -08008968 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
8969 return ?
8970}
8971
Jesse Hallad250842017-03-10 18:35:38 -08008972@extension("VK_KHR_display") // 3
Jesse Hall1356b0d2015-11-23 17:24:58 -08008973cmd VkResult vkGetDisplayModePropertiesKHR(
8974 VkPhysicalDevice physicalDevice,
8975 VkDisplayKHR display,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008976 u32* pPropertyCount,
8977 VkDisplayModePropertiesKHR* pProperties) {
Jesse Hall1356b0d2015-11-23 17:24:58 -08008978 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
8979 return ?
8980}
8981
Jesse Hallad250842017-03-10 18:35:38 -08008982@extension("VK_KHR_display") // 3
Jesse Hall1356b0d2015-11-23 17:24:58 -08008983cmd VkResult vkCreateDisplayModeKHR(
8984 VkPhysicalDevice physicalDevice,
8985 VkDisplayKHR display,
8986 const VkDisplayModeCreateInfoKHR* pCreateInfo,
Jesse Hall0e74f002015-11-30 11:37:59 -08008987 const VkAllocationCallbacks* pAllocator,
Jesse Hall1356b0d2015-11-23 17:24:58 -08008988 VkDisplayModeKHR* pMode) {
8989 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
8990 return ?
8991}
8992
Jesse Hallad250842017-03-10 18:35:38 -08008993@extension("VK_KHR_display") // 3
Jesse Halla6429252015-11-29 18:59:42 -08008994cmd VkResult vkGetDisplayPlaneCapabilitiesKHR(
Jesse Hall1356b0d2015-11-23 17:24:58 -08008995 VkPhysicalDevice physicalDevice,
Jesse Hall9ba8bc82015-11-30 16:22:16 -08008996 VkDisplayModeKHR mode,
Jesse Hall1356b0d2015-11-23 17:24:58 -08008997 u32 planeIndex,
Jesse Halla6429252015-11-29 18:59:42 -08008998 VkDisplayPlaneCapabilitiesKHR* pCapabilities) {
Jesse Hall1356b0d2015-11-23 17:24:58 -08008999 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
9000 return ?
9001}
9002
Jesse Hallad250842017-03-10 18:35:38 -08009003@extension("VK_KHR_display") // 3
Jesse Halla6429252015-11-29 18:59:42 -08009004cmd VkResult vkCreateDisplayPlaneSurfaceKHR(
9005 VkInstance instance,
9006 const VkDisplaySurfaceCreateInfoKHR* pCreateInfo,
Jesse Hall0e74f002015-11-30 11:37:59 -08009007 const VkAllocationCallbacks* pAllocator,
Jesse Halla6429252015-11-29 18:59:42 -08009008 VkSurfaceKHR* pSurface) {
9009 return ?
9010}
9011
Jesse Hallad250842017-03-10 18:35:38 -08009012@extension("VK_KHR_display_swapchain") // 4
Jesse Hall9ba8bc82015-11-30 16:22:16 -08009013cmd VkResult vkCreateSharedSwapchainsKHR(
9014 VkDevice device,
9015 u32 swapchainCount,
9016 const VkSwapchainCreateInfoKHR* pCreateInfos,
9017 const VkAllocationCallbacks* pAllocator,
9018 VkSwapchainKHR* pSwapchains) {
9019 return ?
9020}
9021
Jesse Hallad250842017-03-10 18:35:38 -08009022@extension("VK_KHR_xlib_surface") // 5
Jesse Halla6429252015-11-29 18:59:42 -08009023cmd VkResult vkCreateXlibSurfaceKHR(
Jesse Hall1356b0d2015-11-23 17:24:58 -08009024 VkInstance instance,
Jesse Hallf9fa9a52016-01-08 16:08:51 -08009025 const VkXlibSurfaceCreateInfoKHR* pCreateInfo,
Jesse Hall0e74f002015-11-30 11:37:59 -08009026 const VkAllocationCallbacks* pAllocator,
Jesse Hall1356b0d2015-11-23 17:24:58 -08009027 VkSurfaceKHR* pSurface) {
9028 instanceObject := GetInstance(instance)
9029 return ?
9030}
9031
Jesse Hallad250842017-03-10 18:35:38 -08009032@extension("VK_KHR_xlib_surface") // 5
Jesse Halla6429252015-11-29 18:59:42 -08009033cmd VkBool32 vkGetPhysicalDeviceXlibPresentationSupportKHR(
9034 VkPhysicalDevice physicalDevice,
9035 u32 queueFamilyIndex,
9036 platform.Display* dpy,
Jesse Hall65ab5522015-11-30 00:07:16 -08009037 platform.VisualID visualID) {
Jesse Halla6429252015-11-29 18:59:42 -08009038 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
9039 return ?
9040}
9041
Jesse Hallad250842017-03-10 18:35:38 -08009042@extension("VK_KHR_xcb_surface") // 6
Jesse Hallf9fa9a52016-01-08 16:08:51 -08009043cmd VkResult vkCreateXcbSurfaceKHR(
Jesse Hall1356b0d2015-11-23 17:24:58 -08009044 VkInstance instance,
Jesse Hallf9fa9a52016-01-08 16:08:51 -08009045 const VkXcbSurfaceCreateInfoKHR* pCreateInfo,
Jesse Hall0e74f002015-11-30 11:37:59 -08009046 const VkAllocationCallbacks* pAllocator,
Jesse Hall1356b0d2015-11-23 17:24:58 -08009047 VkSurfaceKHR* pSurface) {
9048 instanceObject := GetInstance(instance)
9049 return ?
9050}
9051
Jesse Hallad250842017-03-10 18:35:38 -08009052@extension("VK_KHR_xcb_surface") // 6
Jesse Halla6429252015-11-29 18:59:42 -08009053cmd VkBool32 vkGetPhysicalDeviceXcbPresentationSupportKHR(
9054 VkPhysicalDevice physicalDevice,
9055 u32 queueFamilyIndex,
9056 platform.xcb_connection_t* connection,
9057 platform.xcb_visualid_t visual_id) {
9058 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
9059 return ?
9060}
9061
Jesse Hallad250842017-03-10 18:35:38 -08009062@extension("VK_KHR_wayland_surface") // 7
Jesse Hall1356b0d2015-11-23 17:24:58 -08009063cmd VkResult vkCreateWaylandSurfaceKHR(
9064 VkInstance instance,
Jesse Hallf9fa9a52016-01-08 16:08:51 -08009065 const VkWaylandSurfaceCreateInfoKHR* pCreateInfo,
Jesse Hall0e74f002015-11-30 11:37:59 -08009066 const VkAllocationCallbacks* pAllocator,
Jesse Hall1356b0d2015-11-23 17:24:58 -08009067 VkSurfaceKHR* pSurface) {
9068 instanceObject := GetInstance(instance)
9069 return ?
9070}
9071
Jesse Hallad250842017-03-10 18:35:38 -08009072@extension("VK_KHR_wayland_surface") // 7
Jesse Halla6429252015-11-29 18:59:42 -08009073cmd VkBool32 vkGetPhysicalDeviceWaylandPresentationSupportKHR(
9074 VkPhysicalDevice physicalDevice,
9075 u32 queueFamilyIndex,
9076 platform.wl_display* display) {
9077 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
9078 return ?
9079}
9080
Jesse Hallad250842017-03-10 18:35:38 -08009081@extension("VK_KHR_mir_surface") // 8
Jesse Hall1356b0d2015-11-23 17:24:58 -08009082cmd VkResult vkCreateMirSurfaceKHR(
9083 VkInstance instance,
Jesse Hallf9fa9a52016-01-08 16:08:51 -08009084 const VkMirSurfaceCreateInfoKHR* pCreateInfo,
Jesse Hall0e74f002015-11-30 11:37:59 -08009085 const VkAllocationCallbacks* pAllocator,
Jesse Hall1356b0d2015-11-23 17:24:58 -08009086 VkSurfaceKHR* pSurface) {
9087 instanceObject := GetInstance(instance)
9088 return ?
9089}
9090
Jesse Hallad250842017-03-10 18:35:38 -08009091@extension("VK_KHR_mir_surface") // 8
Jesse Halla6429252015-11-29 18:59:42 -08009092cmd VkBool32 vkGetPhysicalDeviceMirPresentationSupportKHR(
9093 VkPhysicalDevice physicalDevice,
9094 u32 queueFamilyIndex,
9095 platform.MirConnection* connection) {
9096 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
9097 return ?
9098}
9099
Jesse Hallad250842017-03-10 18:35:38 -08009100@extension("VK_KHR_android_surface") // 9
Jesse Hall1356b0d2015-11-23 17:24:58 -08009101cmd VkResult vkCreateAndroidSurfaceKHR(
9102 VkInstance instance,
Jesse Hallf9fa9a52016-01-08 16:08:51 -08009103 const VkAndroidSurfaceCreateInfoKHR* pCreateInfo,
Jesse Hall0e74f002015-11-30 11:37:59 -08009104 const VkAllocationCallbacks* pAllocator,
Jesse Hall1356b0d2015-11-23 17:24:58 -08009105 VkSurfaceKHR* pSurface) {
9106 instanceObject := GetInstance(instance)
9107 return ?
9108}
9109
Jesse Hallad250842017-03-10 18:35:38 -08009110@extension("VK_KHR_win32_surface") // 10
Jesse Hall1356b0d2015-11-23 17:24:58 -08009111cmd VkResult vkCreateWin32SurfaceKHR(
9112 VkInstance instance,
Jesse Hallf9fa9a52016-01-08 16:08:51 -08009113 const VkWin32SurfaceCreateInfoKHR* pCreateInfo,
Jesse Hall0e74f002015-11-30 11:37:59 -08009114 const VkAllocationCallbacks* pAllocator,
Jesse Hall1356b0d2015-11-23 17:24:58 -08009115 VkSurfaceKHR* pSurface) {
9116 instanceObject := GetInstance(instance)
9117 return ?
9118}
9119
Jesse Hallad250842017-03-10 18:35:38 -08009120@extension("VK_KHR_win32_surface") // 10
Jesse Halla6429252015-11-29 18:59:42 -08009121cmd VkResult vkGetPhysicalDeviceWin32PresentationSupportKHR(
9122 VkPhysicalDevice physicalDevice,
9123 u32 queueFamilyIndex) {
Jesse Halle2948d82016-02-25 04:19:32 -08009124 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
Jesse Halla6429252015-11-29 18:59:42 -08009125 return ?
9126}
9127
Jesse Hallad250842017-03-10 18:35:38 -08009128@extension("VK_ANDROID_native_buffer") // 11
Jesse Halld1abd742017-02-09 21:45:51 -08009129@optional
Chia-I Wub262ddc2016-03-22 07:38:20 +08009130cmd VkResult vkGetSwapchainGrallocUsageANDROID(
9131 VkDevice device,
9132 VkFormat format,
9133 VkImageUsageFlags imageUsage,
Jesse Halld1abd742017-02-09 21:45:51 -08009134 s32* grallocUsage) {
Chia-I Wub262ddc2016-03-22 07:38:20 +08009135 return ?
9136}
9137
Jesse Hallad250842017-03-10 18:35:38 -08009138@extension("VK_ANDROID_native_buffer") // 11
Jesse Halld1abd742017-02-09 21:45:51 -08009139@optional
Chris Forbes8e4438b2016-12-07 16:26:49 +13009140cmd VkResult vkGetSwapchainGrallocUsage2ANDROID(
9141 VkDevice device,
9142 VkFormat format,
9143 VkImageUsageFlags imageUsage,
9144 VkSwapchainImageUsageFlagsANDROID swapchainImageUsage,
Jesse Halld1abd742017-02-09 21:45:51 -08009145 u64* grallocConsumerUsage,
9146 u64* grallocProducerUsage) {
Chris Forbes8e4438b2016-12-07 16:26:49 +13009147 return ?
9148}
9149
Jesse Hallad250842017-03-10 18:35:38 -08009150@extension("VK_ANDROID_native_buffer") // 11
Chia-I Wub262ddc2016-03-22 07:38:20 +08009151cmd VkResult vkAcquireImageANDROID(
9152 VkDevice device,
9153 VkImage image,
9154 int nativeFenceFd,
9155 VkSemaphore semaphore,
9156 VkFence fence) {
9157 return ?
9158}
9159
Jesse Hallad250842017-03-10 18:35:38 -08009160@extension("VK_ANDROID_native_buffer") // 11
Chia-I Wub262ddc2016-03-22 07:38:20 +08009161cmd VkResult vkQueueSignalReleaseImageANDROID(
9162 VkQueue queue,
9163 u32 waitSemaphoreCount,
9164 const VkSemaphore* pWaitSemaphores,
9165 VkImage image,
9166 int* pNativeFenceFd) {
9167 return ?
9168}
9169
Jesse Hallad250842017-03-10 18:35:38 -08009170@extension("VK_EXT_debug_report") // 12
9171@external type void* PFN_vkDebugReportCallbackEXT
9172@extension("VK_EXT_debug_report") // 12
9173@pfn cmd VkBool32 vkDebugReportCallbackEXT(
9174 VkDebugReportFlagsEXT flags,
9175 VkDebugReportObjectTypeEXT objectType,
9176 u64 object,
9177 platform.size_t location,
9178 s32 messageCode,
9179 const char* pLayerPrefix,
9180 const char* pMessage,
9181 void* pUserData) {
9182 return ?
9183}
9184
9185@extension("VK_EXT_debug_report") // 12
9186cmd VkResult vkCreateDebugReportCallbackEXT(
9187 VkInstance instance,
9188 const VkDebugReportCallbackCreateInfoEXT* pCreateInfo,
9189 const VkAllocationCallbacks* pAllocator,
9190 VkDebugReportCallbackEXT* pCallback) {
9191 return ?
9192}
9193
9194@extension("VK_EXT_debug_report") // 12
9195cmd void vkDestroyDebugReportCallbackEXT(
9196 VkInstance instance,
9197 VkDebugReportCallbackEXT callback,
9198 const VkAllocationCallbacks* pAllocator) {
9199}
9200
9201@extension("VK_EXT_debug_report") // 12
9202cmd void vkDebugReportMessageEXT(
9203 VkInstance instance,
9204 VkDebugReportFlagsEXT flags,
9205 VkDebugReportObjectTypeEXT objectType,
9206 u64 object,
9207 platform.size_t location,
9208 s32 messageCode,
9209 const char* pLayerPrefix,
9210 const char* pMessage) {
9211}
9212
9213@extension("VK_EXT_debug_marker") // 23
9214cmd VkResult vkDebugMarkerSetObjectTagEXT(
9215 VkDevice device,
Jesse Hall77726222017-09-19 14:49:27 -05009216 const VkDebugMarkerObjectTagInfoEXT* pTagInfo) {
Jesse Hallad250842017-03-10 18:35:38 -08009217 return ?
9218}
9219
9220@extension("VK_EXT_debug_marker") // 23
9221cmd VkResult vkDebugMarkerSetObjectNameEXT(
9222 VkDevice device,
Jesse Hall77726222017-09-19 14:49:27 -05009223 const VkDebugMarkerObjectNameInfoEXT* pNameInfo) {
Jesse Hallad250842017-03-10 18:35:38 -08009224 return ?
9225}
9226
9227@extension("VK_EXT_debug_marker") // 23
9228cmd void vkCmdDebugMarkerBeginEXT(
9229 VkCommandBuffer commandBuffer,
Jesse Hall77726222017-09-19 14:49:27 -05009230 const VkDebugMarkerMarkerInfoEXT* pMarkerInfo) {
Jesse Hallad250842017-03-10 18:35:38 -08009231}
9232
9233@extension("VK_EXT_debug_marker") // 23
9234cmd void vkCmdDebugMarkerEndEXT(
9235 VkCommandBuffer commandBuffer) {
9236}
9237
9238@extension("VK_EXT_debug_marker") // 23
9239cmd void vkCmdDebugMarkerInsertEXT(
9240 VkCommandBuffer commandBuffer,
Jesse Hall77726222017-09-19 14:49:27 -05009241 const VkDebugMarkerMarkerInfoEXT* pMarkerInfo) {
Jesse Hallad250842017-03-10 18:35:38 -08009242}
9243
9244@extension("VK_AMD_draw_indirect_count") // 34
9245cmd void vkCmdDrawIndirectCountAMD(
9246 VkCommandBuffer commandBuffer,
9247 VkBuffer buffer,
9248 VkDeviceSize offset,
9249 VkBuffer countBuffer,
9250 VkDeviceSize countBufferOffset,
9251 u32 maxDrawCount,
9252 u32 stride) {
9253}
9254
9255@extension("VK_AMD_draw_indirect_count") // 34
9256cmd void vkCmdDrawIndexedIndirectCountAMD(
9257 VkCommandBuffer commandBuffer,
9258 VkBuffer buffer,
9259 VkDeviceSize offset,
9260 VkBuffer countBuffer,
9261 VkDeviceSize countBufferOffset,
9262 u32 maxDrawCount,
9263 u32 stride) {
9264}
9265
Jesse Hall35b4de12018-01-17 22:06:20 -08009266@extension("VK_AMD_shader_info") // 43
9267cmd VkResult vkGetShaderInfoAMD(
9268 VkDevice device,
9269 VkPipeline pipeline,
9270 VkShaderStageFlagBits shaderStage,
9271 VkShaderInfoTypeAMD infoType,
9272 platform.size_t* pInfoSize,
9273 void* pInfo) {
9274 return ?
9275}
9276
Jesse Hallad250842017-03-10 18:35:38 -08009277@extension("VK_NV_external_memory_capabilities") // 56
9278cmd VkResult vkGetPhysicalDeviceExternalImageFormatPropertiesNV(
9279 VkPhysicalDevice physicalDevice,
9280 VkFormat format,
9281 VkImageType type,
9282 VkImageTiling tiling,
9283 VkImageUsageFlags usage,
9284 VkImageCreateFlags flags,
9285 VkExternalMemoryHandleTypeFlagsNV externalHandleType,
9286 VkExternalImageFormatPropertiesNV* pExternalImageFormatProperties) {
9287 return ?
9288}
9289
9290@extension("VK_NV_external_memory_win32") // 58
9291cmd VkResult vkGetMemoryWin32HandleNV(
9292 VkDevice device,
9293 VkDeviceMemory memory,
9294 VkExternalMemoryHandleTypeFlagsNV handleType,
9295 platform.HANDLE* pHandle) {
9296 return ?
9297}
9298
9299@extension("VK_KHR_get_physical_device_properties2") // 60
9300cmd void vkGetPhysicalDeviceFeatures2KHR(
9301 VkPhysicalDevice physicalDevice,
9302 VkPhysicalDeviceFeatures2KHR* pFeatures) {
9303}
9304
9305@extension("VK_KHR_get_physical_device_properties2") // 60
9306cmd void vkGetPhysicalDeviceProperties2KHR(
9307 VkPhysicalDevice physicalDevice,
9308 VkPhysicalDeviceProperties2KHR* pProperties) {
9309}
9310
9311@extension("VK_KHR_get_physical_device_properties2") // 60
9312cmd void vkGetPhysicalDeviceFormatProperties2KHR(
9313 VkPhysicalDevice physicalDevice,
9314 VkFormat format,
9315 VkFormatProperties2KHR* pFormatProperties) {
9316}
9317
9318@extension("VK_KHR_get_physical_device_properties2") // 60
9319cmd VkResult vkGetPhysicalDeviceImageFormatProperties2KHR(
9320 VkPhysicalDevice physicalDevice,
9321 const VkPhysicalDeviceImageFormatInfo2KHR* pImageFormatInfo,
9322 VkImageFormatProperties2KHR* pImageFormatProperties) {
9323 return ?
9324}
9325
9326@extension("VK_KHR_get_physical_device_properties2") // 60
9327cmd void vkGetPhysicalDeviceQueueFamilyProperties2KHR(
9328 VkPhysicalDevice physicalDevice,
9329 u32* pQueueFamilyPropertyCount,
9330 VkQueueFamilyProperties2KHR* pQueueFamilyProperties) {
9331}
9332
9333@extension("VK_KHR_get_physical_device_properties2") // 60
9334cmd void vkGetPhysicalDeviceMemoryProperties2KHR(
9335 VkPhysicalDevice physicalDevice,
9336 VkPhysicalDeviceMemoryProperties2KHR* pMemoryProperties) {
9337}
9338
9339@extension("VK_KHR_get_physical_device_properties2") // 60
9340cmd void vkGetPhysicalDeviceSparseImageFormatProperties2KHR(
9341 VkPhysicalDevice physicalDevice,
9342 const VkPhysicalDeviceSparseImageFormatInfo2KHR* pFormatInfo,
9343 u32* pPropertyCount,
9344 VkSparseImageFormatProperties2KHR* pProperties) {
9345}
9346
Daniel Kochf25f5bb2017-10-05 00:26:58 -04009347@extension("VK_KHR_device_group") // 61
9348cmd void vkGetDeviceGroupPeerMemoryFeaturesKHR(
Jesse Hallad250842017-03-10 18:35:38 -08009349 VkDevice device,
9350 u32 heapIndex,
9351 u32 localDeviceIndex,
9352 u32 remoteDeviceIndex,
Daniel Kochf25f5bb2017-10-05 00:26:58 -04009353 VkPeerMemoryFeatureFlagsKHR* pPeerMemoryFeatures) {
Jesse Hallad250842017-03-10 18:35:38 -08009354}
9355
Daniel Kochf25f5bb2017-10-05 00:26:58 -04009356@extension("VK_KHR_device_group") // 61
9357cmd void vkCmdSetDeviceMaskKHR(
Jesse Hallad250842017-03-10 18:35:38 -08009358 VkCommandBuffer commandBuffer,
9359 u32 deviceMask) {
9360}
9361
Jesse Hallad250842017-03-10 18:35:38 -08009362
Daniel Kochf25f5bb2017-10-05 00:26:58 -04009363@extension("VK_KHR_device_group") // 61
9364cmd void vkCmdDispatchBaseKHR(
Jesse Hallad250842017-03-10 18:35:38 -08009365 VkCommandBuffer commandBuffer,
9366 u32 baseGroupX,
9367 u32 baseGroupY,
9368 u32 baseGroupZ,
9369 u32 groupCountX,
9370 u32 groupCountY,
9371 u32 groupCountZ) {
9372}
9373
Jesse Hallad250842017-03-10 18:35:38 -08009374@extension("VK_NN_vi_surface") // 63
9375cmd VkResult vkCreateViSurfaceNN(
9376 VkInstance instance,
9377 const VkViSurfaceCreateInfoNN* pCreateInfo,
9378 const VkAllocationCallbacks* pAllocator,
9379 VkSurfaceKHR* pSurface) {
9380 return ?
9381}
9382
9383@extension("VK_KHR_maintenance1") // 70
9384cmd void vkTrimCommandPoolKHR(
9385 VkDevice device,
9386 VkCommandPool commandPool,
9387 VkCommandPoolTrimFlagsKHR flags) {
9388}
9389
Daniel Kochf25f5bb2017-10-05 00:26:58 -04009390@extension("VK_KHR_device_group_creation") // 71
9391@threadSafety("system")
9392cmd VkResult vkEnumeratePhysicalDeviceGroupsKHR(
Jesse Hallad250842017-03-10 18:35:38 -08009393 VkInstance instance,
9394 u32* pPhysicalDeviceGroupCount,
Daniel Kochf25f5bb2017-10-05 00:26:58 -04009395 VkPhysicalDeviceGroupPropertiesKHR* pPhysicalDeviceGroupProperties) {
9396 instanceObject := GetInstance(instance)
9397
9398 physicalDeviceGroupCount := as!u32(?)
9399 pPhysicalDeviceGroupCount[0] = physicalDeviceGroupCount
9400 physicalDevices := pPhysicalDeviceGroupProperties[0:physicalDeviceGroupCount]
9401
9402 for i in (0 .. physicalDeviceGroupCount) {
9403 physicalDevice := ?
9404 physicalDevices[i] = physicalDevice
9405 if !(physicalDevice in State.PhysicalDevices) {
9406 State.PhysicalDevices[physicalDevice] = new!PhysicalDeviceObject(instance: instance)
9407 }
9408 }
9409
Jesse Hallad250842017-03-10 18:35:38 -08009410 return ?
9411}
9412
Jesse Hall9492f992017-08-28 12:10:06 -07009413@extension("VK_KHR_external_memory_capabilities") // 72
9414cmd void vkGetPhysicalDeviceExternalBufferPropertiesKHR(
Jesse Hallad250842017-03-10 18:35:38 -08009415 VkPhysicalDevice physicalDevice,
Jesse Hall9492f992017-08-28 12:10:06 -07009416 const VkPhysicalDeviceExternalBufferInfoKHR* pExternalBufferInfo,
9417 VkExternalBufferPropertiesKHR* pExternalBufferProperties) {
Jesse Hallad250842017-03-10 18:35:38 -08009418}
9419
Jesse Hall9492f992017-08-28 12:10:06 -07009420@extension("VK_KHR_external_memory_win32") // 74
9421cmd VkResult vkGetMemoryWin32HandleKHR(
Jesse Hallad250842017-03-10 18:35:38 -08009422 VkDevice device,
Jesse Hall9492f992017-08-28 12:10:06 -07009423 const VkMemoryGetWin32HandleInfoKHR* pGetWin32HandleInfo,
Jesse Hallad250842017-03-10 18:35:38 -08009424 platform.HANDLE* pHandle) {
9425 return ?
9426}
9427
Jesse Hall9492f992017-08-28 12:10:06 -07009428@extension("VK_KHR_external_memory_win32") // 74
9429cmd VkResult vkGetMemoryWin32HandlePropertiesKHR(
Jesse Hallad250842017-03-10 18:35:38 -08009430 VkDevice device,
Jesse Hall9492f992017-08-28 12:10:06 -07009431 VkExternalMemoryHandleTypeFlagBitsKHR handleType,
Jesse Hallad250842017-03-10 18:35:38 -08009432 platform.HANDLE handle,
Jesse Hall9492f992017-08-28 12:10:06 -07009433 VkMemoryWin32HandlePropertiesKHR* pMemoryWin32HandleProperties) {
Jesse Hallad250842017-03-10 18:35:38 -08009434 return ?
9435}
9436
Jesse Hall9492f992017-08-28 12:10:06 -07009437@extension("VK_KHR_external_memory_fd") // 75
9438cmd VkResult vkGetMemoryFdKHR(
Jesse Hallad250842017-03-10 18:35:38 -08009439 VkDevice device,
Jesse Hall9492f992017-08-28 12:10:06 -07009440 const VkMemoryGetFdInfoKHR* pGetFdInfo,
Jesse Hallad250842017-03-10 18:35:38 -08009441 s32* pFd) {
9442 return ?
9443}
9444
Jesse Hall9492f992017-08-28 12:10:06 -07009445@extension("VK_KHR_external_memory_fd") // 75
9446cmd VkResult vkGetMemoryFdPropertiesKHR(
Jesse Hallad250842017-03-10 18:35:38 -08009447 VkDevice device,
Jesse Hall9492f992017-08-28 12:10:06 -07009448 VkExternalMemoryHandleTypeFlagBitsKHR handleType,
Jesse Hallad250842017-03-10 18:35:38 -08009449 s32 fd,
Jesse Hall9492f992017-08-28 12:10:06 -07009450 VkMemoryFdPropertiesKHR* pMemoryFdProperties) {
Jesse Hallad250842017-03-10 18:35:38 -08009451 return ?
9452}
9453
Jesse Hall9492f992017-08-28 12:10:06 -07009454@extension("VK_KHR_external_semaphore_capabilities") // 77
9455cmd void vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(
Jesse Hallad250842017-03-10 18:35:38 -08009456 VkPhysicalDevice physicalDevice,
Jesse Hall9492f992017-08-28 12:10:06 -07009457 const VkPhysicalDeviceExternalSemaphoreInfoKHR* pExternalSemaphoreInfo,
9458 VkExternalSemaphorePropertiesKHR* pExternalSemaphoreProperties) {
Jesse Hallad250842017-03-10 18:35:38 -08009459}
9460
Jesse Hall9492f992017-08-28 12:10:06 -07009461@extension("VK_KHR_external_semaphore_win32") // 79
9462cmd VkResult vkImportSemaphoreWin32HandleKHR(
Jesse Hallad250842017-03-10 18:35:38 -08009463 VkDevice device,
Jesse Hall9492f992017-08-28 12:10:06 -07009464 const VkImportSemaphoreWin32HandleInfoKHR* pImportSemaphoreWin32HandleInfo) {
Jesse Hallad250842017-03-10 18:35:38 -08009465 return ?
9466}
9467
Jesse Hall9492f992017-08-28 12:10:06 -07009468@extension("VK_KHR_external_semaphore_win32") // 79
9469cmd VkResult vkGetSemaphoreWin32HandleKHR(
Jesse Hallad250842017-03-10 18:35:38 -08009470 VkDevice device,
Jesse Hall9492f992017-08-28 12:10:06 -07009471 const VkSemaphoreGetWin32HandleInfoKHR* pGetWin32HandleInfo,
Jesse Hallad250842017-03-10 18:35:38 -08009472 platform.HANDLE* pHandle) {
9473 return ?
9474}
9475
Jesse Hall9492f992017-08-28 12:10:06 -07009476@extension("VK_KHR_external_semaphore_fd") // 80
9477cmd VkResult vkImportSemaphoreFdKHR(
Jesse Hallad250842017-03-10 18:35:38 -08009478 VkDevice device,
Jesse Hall9492f992017-08-28 12:10:06 -07009479 const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo) {
Jesse Hallad250842017-03-10 18:35:38 -08009480 return ?
9481}
9482
Jesse Hall9492f992017-08-28 12:10:06 -07009483@extension("VK_KHR_external_semaphore_fd") // 80
9484cmd VkResult vkGetSemaphoreFdKHR(
Jesse Hallad250842017-03-10 18:35:38 -08009485 VkDevice device,
Jesse Hall9492f992017-08-28 12:10:06 -07009486 const VkSemaphoreGetFdInfoKHR* pGetFdInfo,
Jesse Hallad250842017-03-10 18:35:38 -08009487 s32* pFd) {
9488 return ?
9489}
9490
9491@extension("VK_KHR_push_descriptor") // 81
9492cmd void vkCmdPushDescriptorSetKHR(
9493 VkCommandBuffer commandBuffer,
9494 VkPipelineBindPoint pipelineBindPoint,
9495 VkPipelineLayout layout,
9496 u32 set,
9497 u32 descriptorWriteCount,
9498 const VkWriteDescriptorSet* pDescriptorWrites) {
9499}
9500
9501@extension("VK_KHR_descriptor_update_template") // 86
9502cmd VkResult vkCreateDescriptorUpdateTemplateKHR(
9503 VkDevice device,
9504 const VkDescriptorUpdateTemplateCreateInfoKHR* pCreateInfo,
9505 const VkAllocationCallbacks* pAllocator,
9506 VkDescriptorUpdateTemplateKHR* pDescriptorUpdateTemplate) {
9507 return ?
9508}
9509
9510@extension("VK_KHR_descriptor_update_template") // 86
9511cmd void vkDestroyDescriptorUpdateTemplateKHR(
9512 VkDevice device,
9513 VkDescriptorUpdateTemplateKHR descriptorUpdateTemplate,
9514 const VkAllocationCallbacks* pAllocator) {
9515}
9516
9517@extension("VK_KHR_descriptor_update_template") // 86
9518cmd void vkUpdateDescriptorSetWithTemplateKHR(
9519 VkDevice device,
9520 VkDescriptorSet descriptorSet,
9521 VkDescriptorUpdateTemplateKHR descriptorUpdateTemplate,
9522 const void* pData) {
9523}
9524
9525@extension("VK_KHR_descriptor_update_template") // 86
9526cmd void vkCmdPushDescriptorSetWithTemplateKHR(
9527 VkCommandBuffer commandBuffer,
9528 VkDescriptorUpdateTemplateKHR descriptorUpdateTemplate,
9529 VkPipelineLayout layout,
9530 u32 set,
9531 const void* pData) {
9532}
9533
9534@extension("VK_NVX_device_generated_commands") // 87
9535cmd void vkCmdProcessCommandsNVX(
9536 VkCommandBuffer commandBuffer,
9537 const VkCmdProcessCommandsInfoNVX* pProcessCommandsInfo) {
9538}
9539
9540@extension("VK_NVX_device_generated_commands") // 87
9541cmd void vkCmdReserveSpaceForCommandsNVX(
9542 VkCommandBuffer commandBuffer,
9543 const VkCmdReserveSpaceForCommandsInfoNVX* pReserveSpaceInfo) {
9544}
9545
9546@extension("VK_NVX_device_generated_commands") // 87
9547cmd VkResult vkCreateIndirectCommandsLayoutNVX(
9548 VkDevice device,
9549 const VkIndirectCommandsLayoutCreateInfoNVX* pCreateInfo,
9550 const VkAllocationCallbacks* pAllocator,
9551 VkIndirectCommandsLayoutNVX* pIndirectCommandsLayout) {
9552 return ?
9553}
9554
9555@extension("VK_NVX_device_generated_commands") // 87
9556cmd void vkDestroyIndirectCommandsLayoutNVX(
9557 VkDevice device,
9558 VkIndirectCommandsLayoutNVX indirectCommandsLayout,
9559 const VkAllocationCallbacks* pAllocator) {
9560}
9561
9562@extension("VK_NVX_device_generated_commands") // 87
9563cmd VkResult vkCreateObjectTableNVX(
9564 VkDevice device,
9565 const VkObjectTableCreateInfoNVX* pCreateInfo,
9566 const VkAllocationCallbacks* pAllocator,
9567 VkObjectTableNVX* pObjectTable) {
9568 return ?
9569}
9570
9571@extension("VK_NVX_device_generated_commands") // 87
9572cmd void vkDestroyObjectTableNVX(
9573 VkDevice device,
9574 VkObjectTableNVX objectTable,
9575 const VkAllocationCallbacks* pAllocator) {
9576}
9577
9578@extension("VK_NVX_device_generated_commands") // 87
9579cmd VkResult vkRegisterObjectsNVX(
9580 VkDevice device,
9581 VkObjectTableNVX objectTable,
9582 u32 objectCount,
9583 const VkObjectTableEntryNVX* const* ppObjectTableEntries,
9584 const u32* pObjectIndices) {
9585 return ?
9586}
9587
9588@extension("VK_NVX_device_generated_commands") // 87
9589cmd VkResult vkUnregisterObjectsNVX(
9590 VkDevice device,
9591 VkObjectTableNVX objectTable,
9592 u32 objectCount,
9593 const VkObjectEntryTypeNVX* pObjectEntryTypes,
9594 const u32* pObjectIndices) {
9595 return ?
9596}
9597
9598@extension("VK_NVX_device_generated_commands") // 87
9599cmd void vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX(
9600 VkPhysicalDevice physicalDevice,
9601 VkDeviceGeneratedCommandsFeaturesNVX* pFeatures,
9602 VkDeviceGeneratedCommandsLimitsNVX* pLimits) {
9603}
9604
9605@extension("VK_NV_clip_space_w_scaling") // 88
9606cmd void vkCmdSetViewportWScalingNV(
9607 VkCommandBuffer commandBuffer,
9608 u32 firstViewport,
9609 u32 viewportCount,
9610 const VkViewportWScalingNV* pViewportWScalings) {
9611}
9612
9613@extension("VK_EXT_direct_mode_display") // 89
9614cmd VkResult vkReleaseDisplayEXT(
9615 VkPhysicalDevice physicalDevice,
9616 VkDisplayKHR display) {
9617 return ?
9618}
9619
9620@extension("VK_EXT_acquire_xlib_display") // 90
9621cmd VkResult vkAcquireXlibDisplayEXT(
9622 VkPhysicalDevice physicalDevice,
9623 platform.Display* dpy,
9624 VkDisplayKHR display) {
9625 return ?
9626}
9627
9628@extension("VK_EXT_acquire_xlib_display") // 90
9629cmd VkResult vkGetRandROutputDisplayEXT(
9630 VkPhysicalDevice physicalDevice,
9631 platform.Display* dpy,
9632 platform.RROutput rrOutput,
9633 VkDisplayKHR* pDisplay) {
9634 return ?
9635}
9636
9637@extension("VK_EXT_display_surface_counter") // 91
9638cmd VkResult vkGetPhysicalDeviceSurfaceCapabilities2EXT(
9639 VkPhysicalDevice physicalDevice,
9640 VkSurfaceKHR surface,
9641 VkSurfaceCapabilities2EXT* pSurfaceCapabilities) {
9642 return ?
9643}
9644
9645@extension("VK_EXT_display_control") // 92
9646cmd VkResult vkDisplayPowerControlEXT(
9647 VkDevice device,
9648 VkDisplayKHR display,
9649 const VkDisplayPowerInfoEXT* pDisplayPowerInfo) {
9650 return ?
9651}
9652
9653@extension("VK_EXT_display_control") // 92
9654cmd VkResult vkRegisterDeviceEventEXT(
9655 VkDevice device,
9656 const VkDeviceEventInfoEXT* pDeviceEventInfo,
9657 const VkAllocationCallbacks* pAllocator,
9658 VkFence* pFence) {
9659 return ?
9660}
9661
9662@extension("VK_EXT_display_control") // 92
9663cmd VkResult vkRegisterDisplayEventEXT(
9664 VkDevice device,
9665 VkDisplayKHR display,
9666 const VkDisplayEventInfoEXT* pDisplayEventInfo,
9667 const VkAllocationCallbacks* pAllocator,
9668 VkFence* pFence) {
9669 return ?
9670}
9671
9672@extension("VK_EXT_display_control") // 92
9673cmd VkResult vkGetSwapchainCounterEXT(
9674 VkDevice device,
9675 VkSwapchainKHR swapchain,
9676 VkSurfaceCounterFlagBitsEXT counter,
9677 u64* pCounterValue) {
9678 return ?
9679}
9680
9681@extension("VK_GOOGLE_display_timing") // 93
Ian Elliott4c8bb2a2016-12-29 11:07:26 -07009682cmd VkResult vkGetRefreshCycleDurationGOOGLE(
Jesse Hallfdc8ab32017-03-10 21:01:57 -08009683 VkDevice device,
9684 VkSwapchainKHR swapchain,
9685 VkRefreshCycleDurationGOOGLE* pDisplayTimingProperties) {
Ian Elliott4c8bb2a2016-12-29 11:07:26 -07009686 deviceObject := GetDevice(device)
9687 swapchainObject := GetSwapchain(swapchain)
9688
9689 displayTimingProperties := ?
9690 pDisplayTimingProperties[0] = displayTimingProperties
9691
9692 return ?
9693}
9694
Jesse Hallad250842017-03-10 18:35:38 -08009695@extension("VK_GOOGLE_display_timing") // 93
Ian Elliott4c8bb2a2016-12-29 11:07:26 -07009696cmd VkResult vkGetPastPresentationTimingGOOGLE(
Jesse Hallfdc8ab32017-03-10 21:01:57 -08009697 VkDevice device,
9698 VkSwapchainKHR swapchain,
9699 u32* pPresentationTimingCount,
9700 VkPastPresentationTimingGOOGLE* pPresentationTimings) {
Ian Elliott4c8bb2a2016-12-29 11:07:26 -07009701 return ?
9702}
9703
Jesse Hallad250842017-03-10 18:35:38 -08009704@extension("VK_EXT_discard_rectangles") // 100
9705cmd void vkCmdSetDiscardRectangleEXT(
Jesse Hall26763382016-05-20 07:13:52 -07009706 VkCommandBuffer commandBuffer,
Jesse Hallad250842017-03-10 18:35:38 -08009707 u32 firstDiscardRectangle,
9708 u32 discardRectangleCount,
9709 const VkRect2D* pDiscardRectangles) {
Jesse Hall26763382016-05-20 07:13:52 -07009710}
9711
Jesse Hallad250842017-03-10 18:35:38 -08009712@extension("VK_EXT_hdr_metadata") // 106
Jesse Hall889cd9a2017-02-25 22:12:23 -08009713cmd void vkSetHdrMetadataEXT(
Jesse Hallfdc8ab32017-03-10 21:01:57 -08009714 VkDevice device,
9715 u32 swapchainCount,
9716 const VkSwapchainKHR* pSwapchains,
9717 const VkHdrMetadataEXT* pMetadata) {
Jesse Hall889cd9a2017-02-25 22:12:23 -08009718}
9719
Jesse Hallad250842017-03-10 18:35:38 -08009720@extension("VK_KHR_shared_presentable_image") // 112
Chris Forbes2e12cb82017-01-18 11:45:17 +13009721cmd VkResult vkGetSwapchainStatusKHR(
9722 VkDevice device,
9723 VkSwapchainKHR swapchain) {
9724 return ?
9725}
9726
Jesse Hall9492f992017-08-28 12:10:06 -07009727@extension("VK_KHR_external_fence_capabilities") // 113
9728cmd void vkGetPhysicalDeviceExternalFencePropertiesKHR(
9729 VkPhysicalDevice physicalDevice,
9730 const VkPhysicalDeviceExternalFenceInfoKHR* pExternalFenceInfo,
9731 VkExternalFencePropertiesKHR* pExternalFenceProperties) {
9732}
9733
9734@extension("VK_KHR_external_fence_win32") // 115
9735cmd VkResult vkImportFenceWin32HandleKHR(
9736 VkDevice device,
9737 const VkImportFenceWin32HandleInfoKHR* pImportFenceWin32HandleInfo) {
9738 return ?
9739}
9740
9741@extension("VK_KHR_external_fence_win32") // 115
9742cmd VkResult vkGetFenceWin32HandleKHR(
9743 VkDevice device,
9744 const VkFenceGetWin32HandleInfoKHR* pGetWin32HandleInfo,
9745 platform.HANDLE* pHandle) {
9746 return ?
9747}
9748
9749@extension("VK_KHR_external_fence_fd") // 116
9750cmd VkResult vkImportFenceFdKHR(
9751 VkDevice device,
9752 const VkImportFenceFdInfoKHR* pImportFenceFdInfo) {
9753 return ?
9754}
9755
9756@extension("VK_KHR_external_fence_fd") // 116
9757cmd VkResult vkGetFenceFdKHR(
9758 VkDevice device,
9759 const VkFenceGetFdInfoKHR* pGetFdInfo,
9760 int* pFd) {
9761 return ?
9762}
9763
Jesse Hall05556b12017-05-18 17:40:25 -07009764@extension("VK_KHR_get_surface_capabilities2") // 120
Chris Forbese2d3ee12017-03-16 16:10:15 +13009765cmd VkResult vkGetPhysicalDeviceSurfaceCapabilities2KHR(
9766 VkPhysicalDevice physicalDevice,
9767 const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo,
9768 VkSurfaceCapabilities2KHR* pSurfaceCapabilities) {
9769 return ?
9770}
9771
Jesse Hall05556b12017-05-18 17:40:25 -07009772@extension("VK_KHR_get_surface_capabilities2") // 120
Chris Forbese2d3ee12017-03-16 16:10:15 +13009773cmd VkResult vkGetPhysicalDeviceSurfaceFormats2KHR(
9774 VkPhysicalDevice physicalDevice,
9775 const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo,
9776 u32* pSurfaceFormatCount,
9777 VkSurfaceFormat2KHR* pSurfaceFormats) {
9778 return ?
9779}
9780
Jesse Hallad250842017-03-10 18:35:38 -08009781@extension("VK_MVK_ios_surface") // 123
9782cmd VkResult vkCreateIOSSurfaceMVK(
9783 VkInstance instance,
9784 const VkIOSSurfaceCreateInfoMVK* pCreateInfo,
9785 const VkAllocationCallbacks* pAllocator,
9786 VkSurfaceKHR* pSurface) {
9787 return ?
9788}
9789
9790@extension("VK_MVK_macos_surface") // 124
9791cmd VkResult vkCreateMacOSSurfaceMVK(
9792 VkInstance instance,
9793 const VkMacOSSurfaceCreateInfoMVK* pCreateInfo,
9794 const VkAllocationCallbacks* pAllocator,
9795 VkSurfaceKHR* pSurface) {
9796 return ?
9797}
9798
Jesse Hall35b4de12018-01-17 22:06:20 -08009799@extension("VK_EXT_debug_utils") // 129
9800@external type void* PFN_vkDebugUtilsMessengerCallbackEXT
9801@extension("VK_EXT_debug_utils") // 129
9802@pfn cmd VkBool32 vkDebugUtilsMessengerCallbackEXT(
9803 VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity,
9804 VkDebugUtilsMessageTypeFlagsEXT messageType,
9805 const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData,
9806 void* pUserData) {
9807 return ?
9808}
9809
9810@extension("VK_EXT_debug_utils") // 129
9811cmd VkResult vkSetDebugUtilsObjectNameEXT(
9812 VkDevice device,
9813 const VkDebugUtilsObjectNameInfoEXT* pNameInfo) {
9814 return ?
9815}
9816
9817@extension("VK_EXT_debug_utils") // 129
9818cmd VkResult vkSetDebugUtilsObjectTagEXT(
9819 VkDevice device,
9820 const VkDebugUtilsObjectTagInfoEXT* pTagInfo) {
9821 return ?
9822}
9823
9824@extension("VK_EXT_debug_utils") // 129
9825cmd void vkQueueBeginDebugUtilsLabelEXT(
9826 VkQueue queue,
9827 const VkDebugUtilsLabelEXT* pLabelInfo) {
9828}
9829
9830@extension("VK_EXT_debug_utils") // 129
9831cmd void vkQueueEndDebugUtilsLabelEXT(VkQueue queue) {
9832}
9833
9834@extension("VK_EXT_debug_utils") // 129
9835cmd void vkQueueInsertDebugUtilsLabelEXT(
9836 VkQueue queue,
9837 const VkDebugUtilsLabelEXT* pLabelInfo) {
9838}
9839
9840@extension("VK_EXT_debug_utils") // 129
9841cmd void vkCmdBeginDebugUtilsLabelEXT(
9842 VkCommandBuffer commandBuffer,
9843 const VkDebugUtilsLabelEXT* pLabelInfo) {
9844}
9845
9846@extension("VK_EXT_debug_utils") // 129
9847cmd void vkCmdEndDebugUtilsLabelEXT(VkCommandBuffer commandBuffer) {
9848}
9849
9850@extension("VK_EXT_debug_utils") // 129
9851cmd void vkCmdInsertDebugUtilsLabelEXT(
9852 VkCommandBuffer commandBuffer,
9853 const VkDebugUtilsLabelEXT* pLabelInfo) {
9854}
9855
9856@extension("VK_EXT_debug_utils") // 129
9857cmd VkResult vkCreateDebugUtilsMessengerEXT(
9858 VkInstance instance,
9859 const VkDebugUtilsMessengerCreateInfoEXT* pCreateInfo,
9860 const VkAllocationCallbacks* pAllocator,
9861 VkDebugUtilsMessengerEXT* pMessenger) {
9862 return ?
9863}
9864
9865@extension("VK_EXT_debug_utils") // 129
9866cmd void vkDestroyDebugUtilsMessengerEXT(
9867 VkInstance instance,
9868 VkDebugUtilsMessengerEXT messenger,
9869 const VkAllocationCallbacks* pAllocator) {
9870}
9871
9872@extension("VK_EXT_debug_utils") // 129
9873cmd void vkSubmitDebugUtilsMessageEXT(
9874 VkInstance instance,
9875 VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity,
9876 VkDebugUtilsMessageTypeFlagsEXT messageTypes,
9877 const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData) {
9878}
9879
Jesse Hall77726222017-09-19 14:49:27 -05009880@extension("VK_EXT_sample_locations") // 144
9881cmd void vkCmdSetSampleLocationsEXT(
9882 VkCommandBuffer commandBuffer,
9883 const VkSampleLocationsInfoEXT* pSampleLocationsInfo) {
9884}
9885
9886@extension("VK_EXT_sample_locations") // 144
9887cmd void vkGetPhysicalDeviceMultisamplePropertiesEXT(
9888 VkPhysicalDevice physicalDevice,
9889 VkSampleCountFlagBits samples,
9890 VkMultisamplePropertiesEXT* pMultisampleProperties) {
9891}
9892
Jesse Hall9492f992017-08-28 12:10:06 -07009893@extension("VK_KHR_get_memory_requirements2") // 147
9894cmd void vkGetImageMemoryRequirements2KHR(
9895 VkDevice device,
9896 const VkImageMemoryRequirementsInfo2KHR* pInfo,
9897 VkMemoryRequirements2KHR* pMemoryRequirements) {
9898}
9899
9900@extension("VK_KHR_get_memory_requirements2") // 147
9901cmd void vkGetBufferMemoryRequirements2KHR(
9902 VkDevice device,
9903 const VkBufferMemoryRequirementsInfo2KHR* pInfo,
9904 VkMemoryRequirements2KHR* pMemoryRequirements) {
9905}
9906
9907@extension("VK_KHR_get_memory_requirements2") // 147
9908cmd void vkGetImageSparseMemoryRequirements2KHR(
9909 VkDevice device,
9910 const VkImageSparseMemoryRequirementsInfo2KHR* pInfo,
9911 u32* pSparseMemoryRequirementCount,
9912 VkSparseImageMemoryRequirements2KHR* pSparseMemoryRequirements) {
9913}
9914
Jesse Hall076f95d2017-09-20 11:34:47 -07009915@extension("VK_KHR_sampler_ycbcr_conversion") // 157
9916cmd VkResult vkCreateSamplerYcbcrConversionKHR(
9917 VkDevice device,
9918 const VkSamplerYcbcrConversionCreateInfoKHR* pCreateInfo,
9919 const VkAllocationCallbacks* pAllocator,
9920 VkSamplerYcbcrConversionKHR* pYcbcrConversion) {
9921 return ?
9922}
9923
9924@extension("VK_KHR_sampler_ycbcr_conversion") // 157
9925cmd void vkDestroySamplerYcbcrConversionKHR(
9926 VkDevice device,
9927 VkSamplerYcbcrConversionKHR ycbcrConversion,
9928 const VkAllocationCallbacks* pAllocator) {
9929}
9930
9931@extension("VK_KHR_bind_memory2") // 158
9932cmd VkResult vkBindBufferMemory2KHR(
9933 VkDevice device,
9934 u32 bindInfoCount,
9935 const VkBindBufferMemoryInfoKHR* pBindInfos) {
9936 return ?
9937}
9938
9939@extension("VK_KHR_bind_memory2") // 158
9940cmd VkResult vkBindImageMemory2KHR(
9941 VkDevice device,
9942 u32 bindInfoCount,
9943 const VkBindImageMemoryInfoKHR* pBindInfos) {
9944 return ?
9945}
9946
Jesse Hall77726222017-09-19 14:49:27 -05009947@extension("VK_EXT_validation_cache") // 161
9948cmd VkResult vkCreateValidationCacheEXT(
9949 VkDevice device,
9950 const VkValidationCacheCreateInfoEXT* pCreateInfo,
9951 const VkAllocationCallbacks* pAllocator,
9952 VkValidationCacheEXT* pValidationCache) {
9953 return ?
9954}
9955
9956@extension("VK_EXT_validation_cache") // 161
9957cmd void vkDestroyValidationCacheEXT(
9958 VkDevice device,
9959 VkValidationCacheEXT validationCache,
9960 const VkAllocationCallbacks* pAllocator) {
9961}
9962
9963@extension("VK_EXT_validation_cache") // 161
9964cmd VkResult vkMergeValidationCachesEXT(
9965 VkDevice device,
9966 VkValidationCacheEXT dstCache,
9967 u32 srcCacheCount,
9968 const VkValidationCacheEXT* pSrcCaches) {
9969 return ?
9970}
9971
9972@extension("VK_EXT_validation_cache") // 161
9973cmd VkResult vkGetValidationCacheDataEXT(
9974 VkDevice device,
9975 VkValidationCacheEXT validationCache,
9976 platform.size_t* pDataSize,
9977 void* pData) {
9978 return ?
9979}
9980
Daniel Kochf25f5bb2017-10-05 00:26:58 -04009981@extension("VK_KHR_maintenance3") // 169
9982cmd void vkGetDescriptorSetLayoutSupportKHR(
9983 VkDevice device,
9984 const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
9985 VkDescriptorSetLayoutSupportKHR* pSupport) {
9986}
9987
Jesse Hall35b4de12018-01-17 22:06:20 -08009988@extension("VK_EXT_external_memory_host") // 179
9989cmd VkResult vkGetMemoryHostPointerPropertiesEXT(
9990 VkDevice device,
9991 VkExternalMemoryHandleTypeFlagBits handleType,
9992 const void* pHostPointer,
9993 VkMemoryHostPointerPropertiesEXT* pMemoryHostPointerProperties) {
9994 return ?
9995}
9996
Jesse Halld27f6aa2015-08-15 17:58:48 -07009997////////////////
9998// Validation //
9999////////////////
10000
10001extern void validate(string layerName, bool condition, string message)
10002
10003
10004/////////////////////////////
10005// Internal State Tracking //
10006/////////////////////////////
10007
10008StateObject State
10009
10010@internal class StateObject {
10011 // Dispatchable objects.
10012 map!(VkInstance, ref!InstanceObject) Instances
10013 map!(VkPhysicalDevice, ref!PhysicalDeviceObject) PhysicalDevices
10014 map!(VkDevice, ref!DeviceObject) Devices
10015 map!(VkQueue, ref!QueueObject) Queues
Jesse Hall3fbc8562015-11-29 22:10:52 -080010016 map!(VkCommandBuffer, ref!CommandBufferObject) CommandBuffers
Jesse Halld27f6aa2015-08-15 17:58:48 -070010017
10018 // Non-dispatchable objects.
10019 map!(VkDeviceMemory, ref!DeviceMemoryObject) DeviceMemories
10020 map!(VkBuffer, ref!BufferObject) Buffers
10021 map!(VkBufferView, ref!BufferViewObject) BufferViews
10022 map!(VkImage, ref!ImageObject) Images
10023 map!(VkImageView, ref!ImageViewObject) ImageViews
Jesse Halld27f6aa2015-08-15 17:58:48 -070010024 map!(VkShaderModule, ref!ShaderModuleObject) ShaderModules
Jesse Halld27f6aa2015-08-15 17:58:48 -070010025 map!(VkPipeline, ref!PipelineObject) Pipelines
10026 map!(VkPipelineLayout, ref!PipelineLayoutObject) PipelineLayouts
10027 map!(VkSampler, ref!SamplerObject) Samplers
10028 map!(VkDescriptorSet, ref!DescriptorSetObject) DescriptorSets
10029 map!(VkDescriptorSetLayout, ref!DescriptorSetLayoutObject) DescriptorSetLayouts
10030 map!(VkDescriptorPool, ref!DescriptorPoolObject) DescriptorPools
Jesse Halld27f6aa2015-08-15 17:58:48 -070010031 map!(VkFence, ref!FenceObject) Fences
10032 map!(VkSemaphore, ref!SemaphoreObject) Semaphores
10033 map!(VkEvent, ref!EventObject) Events
10034 map!(VkQueryPool, ref!QueryPoolObject) QueryPools
10035 map!(VkFramebuffer, ref!FramebufferObject) Framebuffers
10036 map!(VkRenderPass, ref!RenderPassObject) RenderPasses
10037 map!(VkPipelineCache, ref!PipelineCacheObject) PipelineCaches
Jesse Hall3fbc8562015-11-29 22:10:52 -080010038 map!(VkCommandPool, ref!CommandPoolObject) CommandPools
Jesse Hall1356b0d2015-11-23 17:24:58 -080010039 map!(VkSurfaceKHR, ref!SurfaceObject) Surfaces
Michael Lentine88594d72015-11-12 12:49:45 -080010040 map!(VkSwapchainKHR, ref!SwapchainObject) Swapchains
Jesse Halld27f6aa2015-08-15 17:58:48 -070010041}
10042
10043@internal class InstanceObject {
10044}
10045
10046@internal class PhysicalDeviceObject {
10047 VkInstance instance
10048}
10049
10050@internal class DeviceObject {
10051 VkPhysicalDevice physicalDevice
10052}
10053
10054@internal class QueueObject {
10055 VkDevice device
10056 VkQueueFlags flags
10057}
10058
Jesse Hall3fbc8562015-11-29 22:10:52 -080010059@internal class CommandBufferObject {
Jesse Halld27f6aa2015-08-15 17:58:48 -070010060 VkDevice device
10061 map!(u64, VkDeviceMemory) boundObjects
10062 VkQueueFlags queueFlags
10063}
10064
10065@internal class DeviceMemoryObject {
Jesse Hall3fbc8562015-11-29 22:10:52 -080010066 VkDevice device
10067 VkDeviceSize allocationSize
10068 map!(u64, VkDeviceSize) boundObjects
10069 map!(VkCommandBuffer, VkCommandBuffer) boundCommandBuffers
Jesse Halld27f6aa2015-08-15 17:58:48 -070010070}
10071
10072@internal class BufferObject {
10073 VkDevice device
Jesse Hall3fbc8562015-11-29 22:10:52 -080010074 VkDeviceMemory memory
10075 VkDeviceSize memoryOffset
Jesse Halld27f6aa2015-08-15 17:58:48 -070010076}
10077
10078@internal class BufferViewObject {
10079 VkDevice device
10080 VkBuffer buffer
10081}
10082
10083@internal class ImageObject {
10084 VkDevice device
Jesse Hall3fbc8562015-11-29 22:10:52 -080010085 VkDeviceMemory memory
10086 VkDeviceSize memoryOffset
Jesse Halld27f6aa2015-08-15 17:58:48 -070010087}
10088
10089@internal class ImageViewObject {
10090 VkDevice device
10091 VkImage image
10092}
10093
Jesse Halld27f6aa2015-08-15 17:58:48 -070010094@internal class ShaderObject {
10095 VkDevice device
10096}
10097
10098@internal class ShaderModuleObject {
10099 VkDevice device
10100}
10101
10102@internal class PipelineObject {
10103 VkDevice device
10104}
10105
10106@internal class PipelineLayoutObject {
10107 VkDevice device
10108}
10109
10110@internal class SamplerObject {
10111 VkDevice device
10112}
10113
10114@internal class DescriptorSetObject {
10115 VkDevice device
10116}
10117
10118@internal class DescriptorSetLayoutObject {
10119 VkDevice device
10120}
10121
10122@internal class DescriptorPoolObject {
10123 VkDevice device
10124}
10125
Jesse Halld27f6aa2015-08-15 17:58:48 -070010126@internal class FenceObject {
10127 VkDevice device
10128 bool signaled
10129}
10130
10131@internal class SemaphoreObject {
10132 VkDevice device
10133}
10134
10135@internal class EventObject {
10136 VkDevice device
10137}
10138
10139@internal class QueryPoolObject {
10140 VkDevice device
10141}
10142
10143@internal class FramebufferObject {
10144 VkDevice device
10145}
10146
10147@internal class RenderPassObject {
10148 VkDevice device
10149}
10150
10151@internal class PipelineCacheObject {
10152 VkDevice device
10153}
10154
Jesse Hall3fbc8562015-11-29 22:10:52 -080010155@internal class CommandPoolObject {
Jesse Halld27f6aa2015-08-15 17:58:48 -070010156 VkDevice device
10157}
10158
Jesse Hall1356b0d2015-11-23 17:24:58 -080010159@internal class SurfaceObject {
10160 VkInstance instance
10161}
10162
Michael Lentine88594d72015-11-12 12:49:45 -080010163@internal class SwapchainObject {
10164 VkDevice device
10165}
10166
Jesse Halld27f6aa2015-08-15 17:58:48 -070010167macro ref!InstanceObject GetInstance(VkInstance instance) {
10168 assert(instance in State.Instances)
10169 return State.Instances[instance]
10170}
10171
10172macro ref!PhysicalDeviceObject GetPhysicalDevice(VkPhysicalDevice physicalDevice) {
10173 assert(physicalDevice in State.PhysicalDevices)
10174 return State.PhysicalDevices[physicalDevice]
10175}
10176
10177macro ref!DeviceObject GetDevice(VkDevice device) {
10178 assert(device in State.Devices)
10179 return State.Devices[device]
10180}
10181
10182macro ref!QueueObject GetQueue(VkQueue queue) {
10183 assert(queue in State.Queues)
10184 return State.Queues[queue]
10185}
10186
Jesse Hall3fbc8562015-11-29 22:10:52 -080010187macro ref!CommandBufferObject GetCommandBuffer(VkCommandBuffer commandBuffer) {
10188 assert(commandBuffer in State.CommandBuffers)
10189 return State.CommandBuffers[commandBuffer]
Jesse Halld27f6aa2015-08-15 17:58:48 -070010190}
10191
Jesse Hall3fbc8562015-11-29 22:10:52 -080010192macro ref!DeviceMemoryObject GetDeviceMemory(VkDeviceMemory memory) {
10193 assert(memory in State.DeviceMemories)
10194 return State.DeviceMemories[memory]
Jesse Halld27f6aa2015-08-15 17:58:48 -070010195}
10196
10197macro ref!BufferObject GetBuffer(VkBuffer buffer) {
10198 assert(buffer in State.Buffers)
10199 return State.Buffers[buffer]
10200}
10201
10202macro ref!BufferViewObject GetBufferView(VkBufferView bufferView) {
10203 assert(bufferView in State.BufferViews)
10204 return State.BufferViews[bufferView]
10205}
10206
10207macro ref!ImageObject GetImage(VkImage image) {
10208 assert(image in State.Images)
10209 return State.Images[image]
10210}
10211
10212macro ref!ImageViewObject GetImageView(VkImageView imageView) {
10213 assert(imageView in State.ImageViews)
10214 return State.ImageViews[imageView]
10215}
10216
Jesse Halld27f6aa2015-08-15 17:58:48 -070010217macro ref!ShaderModuleObject GetShaderModule(VkShaderModule shaderModule) {
10218 assert(shaderModule in State.ShaderModules)
10219 return State.ShaderModules[shaderModule]
10220}
10221
10222macro ref!PipelineObject GetPipeline(VkPipeline pipeline) {
10223 assert(pipeline in State.Pipelines)
10224 return State.Pipelines[pipeline]
10225}
10226
10227macro ref!PipelineLayoutObject GetPipelineLayout(VkPipelineLayout pipelineLayout) {
10228 assert(pipelineLayout in State.PipelineLayouts)
10229 return State.PipelineLayouts[pipelineLayout]
10230}
10231
10232macro ref!SamplerObject GetSampler(VkSampler sampler) {
10233 assert(sampler in State.Samplers)
10234 return State.Samplers[sampler]
10235}
10236
10237macro ref!DescriptorSetObject GetDescriptorSet(VkDescriptorSet descriptorSet) {
10238 assert(descriptorSet in State.DescriptorSets)
10239 return State.DescriptorSets[descriptorSet]
10240}
10241
10242macro ref!DescriptorSetLayoutObject GetDescriptorSetLayout(VkDescriptorSetLayout descriptorSetLayout) {
10243 assert(descriptorSetLayout in State.DescriptorSetLayouts)
10244 return State.DescriptorSetLayouts[descriptorSetLayout]
10245}
10246
10247macro ref!DescriptorPoolObject GetDescriptorPool(VkDescriptorPool descriptorPool) {
10248 assert(descriptorPool in State.DescriptorPools)
10249 return State.DescriptorPools[descriptorPool]
10250}
10251
Jesse Halld27f6aa2015-08-15 17:58:48 -070010252macro ref!FenceObject GetFence(VkFence fence) {
10253 assert(fence in State.Fences)
10254 return State.Fences[fence]
10255}
10256
10257macro ref!SemaphoreObject GetSemaphore(VkSemaphore semaphore) {
10258 assert(semaphore in State.Semaphores)
10259 return State.Semaphores[semaphore]
10260}
10261
10262macro ref!EventObject GetEvent(VkEvent event) {
10263 assert(event in State.Events)
10264 return State.Events[event]
10265}
10266
10267macro ref!QueryPoolObject GetQueryPool(VkQueryPool queryPool) {
10268 assert(queryPool in State.QueryPools)
10269 return State.QueryPools[queryPool]
10270}
10271
10272macro ref!FramebufferObject GetFramebuffer(VkFramebuffer framebuffer) {
10273 assert(framebuffer in State.Framebuffers)
10274 return State.Framebuffers[framebuffer]
10275}
10276
10277macro ref!RenderPassObject GetRenderPass(VkRenderPass renderPass) {
10278 assert(renderPass in State.RenderPasses)
10279 return State.RenderPasses[renderPass]
10280}
10281
10282macro ref!PipelineCacheObject GetPipelineCache(VkPipelineCache pipelineCache) {
10283 assert(pipelineCache in State.PipelineCaches)
10284 return State.PipelineCaches[pipelineCache]
10285}
10286
Jesse Hall3fbc8562015-11-29 22:10:52 -080010287macro ref!CommandPoolObject GetCommandPool(VkCommandPool commandPool) {
10288 assert(commandPool in State.CommandPools)
10289 return State.CommandPools[commandPool]
Jesse Hallf09c6b12015-08-15 19:54:28 -070010290}
Michael Lentine88594d72015-11-12 12:49:45 -080010291
Jesse Hall1356b0d2015-11-23 17:24:58 -080010292macro ref!SurfaceObject GetSurface(VkSurfaceKHR surface) {
10293 assert(surface in State.Surfaces)
10294 return State.Surfaces[surface]
10295}
10296
Michael Lentine88594d72015-11-12 12:49:45 -080010297macro ref!SwapchainObject GetSwapchain(VkSwapchainKHR swapchain) {
10298 assert(swapchain in State.Swapchains)
10299 return State.Swapchains[swapchain]
10300}
Jesse Halld8bade02015-11-24 10:24:18 -080010301
10302macro VkQueueFlags AddQueueFlag(VkQueueFlags flags, VkQueueFlagBits bit) {
10303 return as!VkQueueFlags(as!u32(flags) | as!u32(bit))
10304}