blob: 76eca3545cd0c577205c139dc422807ed0e0d192 [file] [log] [blame]
Jesse Halld27f6aa2015-08-15 17:58:48 -07001// Copyright (c) 2015 The Khronos Group Inc.
2//
3// Permission is hereby granted, free of charge, to any person obtaining a
4// copy of this software and/or associated documentation files (the
5// "Materials"), to deal in the Materials without restriction, including
6// without limitation the rights to use, copy, modify, merge, publish,
7// distribute, sublicense, and/or sell copies of the Materials, and to
8// permit persons to whom the Materials are furnished to do so, subject to
9// the following conditions:
10//
11// The above copyright notice and this permission notice shall be included
12// in all copies or substantial portions of the Materials.
13//
14// THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
17// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
18// CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
19// TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
20// MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
21
22import platform "platform.api"
23
24///////////////
25// Constants //
26///////////////
27
28// API version (major.minor.patch)
Jesse Hall3dd678a2016-01-08 21:52:01 -080029define VERSION_MAJOR 1
Daniel Koch09f7bf92017-10-05 00:26:58 -040030define VERSION_MINOR 1
Jesse Hall115df0c2018-07-30 12:00:59 -070031define VERSION_PATCH 82
Jesse Halld27f6aa2015-08-15 17:58:48 -070032
33// API limits
Jesse Hall65ab5522015-11-30 00:07:16 -080034define VK_MAX_PHYSICAL_DEVICE_NAME_SIZE 256
35define VK_UUID_SIZE 16
36define VK_MAX_EXTENSION_NAME_SIZE 256
37define VK_MAX_DESCRIPTION_SIZE 256
38define VK_MAX_MEMORY_TYPES 32
39define VK_MAX_MEMORY_HEAPS 16 /// The maximum number of unique memory heaps, each of which supporting 1 or more memory types.
Ian Elliott28bd2c32017-10-13 09:21:12 -060040@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -040041define VK_MAX_DEVICE_GROUP_SIZE 32
Jesse Hall8c954d32018-01-17 22:06:20 -080042@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -040043define VK_LUID_SIZE 8
Jesse Hall8c954d32018-01-17 22:06:20 -080044@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -040045define VK_QUEUE_FAMILY_EXTERNAL -2
Jesse Hall8c954d32018-01-17 22:06:20 -080046@extension("VK_EXT_queue_family_foreign")
47define VK_QUEUE_FAMILY_FOREIGN_EXT -3
Jesse 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 Koch09f7bf92017-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 Koch09f7bf92017-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 Hall8c954d32018-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 Koch09f7bf92017-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 Koch09f7bf92017-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
Jesse Hall72e6a132018-04-06 13:00:44 -0700225@extension("VK_KHR_maintenance1") define VK_KHR_MAINTENANCE1_SPEC_VERSION 2
Jesse Hall77ad05b2017-03-10 22:02:20 -0800226@extension("VK_KHR_maintenance1") define VK_KHR_MAINTENANCE1_EXTENSION_NAME "VK_KHR_maintenance1"
227
Jesse Hallad250842017-03-10 18:35:38 -0800228// 71
Daniel Koch09f7bf92017-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 Koch09f7bf92017-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 Halla13a3cf2018-07-09 15:51:52 -0700272// 82
273@extension("VK_EXT_conditional_rendering") define VK_EXT_CONDITIONAL_RENDERING_SPEC_VERSION 1
274@extension("VK_EXT_conditional_rendering") define VK_EXT_CONDITIONAL_RENDERING_EXTENSION_NAME "VK_EXT_conditional_rendering"
275
Jesse Hall9492f992017-08-28 12:10:06 -0700276// 84
277@extension("VK_KHR_16bit_storage") define VK_KHR_16BIT_STORAGE_SPEC_VERSION 1
278@extension("VK_KHR_16bit_storage") define VK_KHR_16BIT_STORAGE_EXTENSION_NAME "VK_KHR_16bit_storage"
279
Jesse Hall889cd9a2017-02-25 22:12:23 -0800280// 85
281@extension("VK_KHR_incremental_present") define VK_KHR_INCREMENTAL_PRESENT_SPEC_VERSION 1
Jesse Hallf5ad48b2017-03-20 13:09:19 -0700282@extension("VK_KHR_incremental_present") define VK_KHR_INCREMENTAL_PRESENT_EXTENSION_NAME "VK_KHR_incremental_present"
Jesse Hall889cd9a2017-02-25 22:12:23 -0800283
Jesse Hallad250842017-03-10 18:35:38 -0800284// 86
285@extension("VK_KHR_descriptor_update_template") define VK_KHR_DESCRIPTOR_UPDATE_TEMPLATE_SPEC_VERSION 1
286@extension("VK_KHR_descriptor_update_template") define VK_KHR_DESCRIPTOR_UPDATE_TEMPLATE_EXTENSION_NAME "VK_KHR_descriptor_update_template"
287
Jesse Halleb02c472017-02-24 15:13:45 -0800288// 87
Jesse Hall77726222017-09-19 14:49:27 -0500289@extension("VK_NVX_device_generated_commands") define VK_NVX_DEVICE_GENERATED_COMMANDS_SPEC_VERSION 3
Chris Forbes289cb792016-12-30 15:03:55 +1300290@extension("VK_NVX_device_generated_commands") define VK_NVX_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME "VK_NVX_device_generated_commands"
291
Jesse Hallad250842017-03-10 18:35:38 -0800292// 88
293@extension("VK_NV_clip_space_w_scaling") define VK_NV_CLIP_SPACE_W_SCALING_SPEC_VERSION 1
294@extension("VK_NV_clip_space_w_scaling") define VK_NV_CLIP_SPACE_W_SCALING_EXTENSION_NAME "VK_NV_clip_space_w_scaling"
295
Jesse Hall77ad05b2017-03-10 22:02:20 -0800296// 89
297@extension("VK_EXT_direct_mode_display") define VK_EXT_DIRECT_MODE_DISPLAY_SPEC_VERSION 1
298@extension("VK_EXT_direct_mode_display") define VK_EXT_DIRECT_MODE_DISPLAY_EXTENSION_NAME "VK_EXT_direct_mode_display"
299
300// 90
301@extension("VK_EXT_acquire_xlib_display") define VK_EXT_ACQUIRE_XLIB_DISPLAY_SPEC_VERSION 1
302@extension("VK_EXT_acquire_xlib_display") define VK_EXT_ACQUIRE_XLIB_DISPLAY_EXTENSION_NAME "VK_EXT_acquire_xlib_display"
303
304// 91
305@extension("VK_EXT_display_surface_counter") define VK_EXT_DISPLAY_SURFACE_COUNTER_SPEC_VERSION 1
306@extension("VK_EXT_display_surface_counter") define VK_EXT_DISPLAY_SURFACE_COUNTER_EXTENSION_NAME "VK_EXT_display_surface_counter"
307
308// 92
309@extension("VK_EXT_display_control") define VK_EXT_DISPLAY_CONTROL_SPEC_VERSION 1
310@extension("VK_EXT_display_control") define VK_EXT_DISPLAY_CONTROL_COUNTER_EXTENSION_NAME "VK_EXT_display_control"
311
Jesse Hall889cd9a2017-02-25 22:12:23 -0800312// 93
313@extension("VK_GOOGLE_display_timing") define VK_GOOGLE_DISPLAY_TIMING_SPEC_VERSION 1
Jesse Hallfdc8ab32017-03-10 21:01:57 -0800314@extension("VK_GOOGLE_display_timing") define VK_GOOGLE_DISPLAY_TIMING_EXTENSION_NAME "VK_GOOGLE_display_timing"
Jesse Hall889cd9a2017-02-25 22:12:23 -0800315
Jesse Hallad250842017-03-10 18:35:38 -0800316// 95
317@extension("VK_NV_sample_mask_override_coverage") define VK_NV_SAMPLE_MASK_OVERRIDE_COVERAGE_SPEC_VERSION 1
318@extension("VK_NV_sample_mask_override_coverage") define VK_NV_SAMPLE_MASK_OVERRIDE_COVERAGE_EXTENSION_NAME "VK_NV_sample_mask_override_coverage"
319
320// 96
321@extension("VK_NV_geometry_shader_passthrough") define VK_NV_GEOMETRY_SHADER_PASSTHROUGH_SPEC_VERSION 1
322@extension("VK_NV_geometry_shader_passthrough") define VK_NV_GEOMETRY_SHADER_PASSTHROUGH_EXTENSION_NAME "VK_NV_geometry_shader_passthrough"
323
324// 97
325@extension("VK_NV_viewport_array2") define VK_NV_VIEWPORT_ARRAY2_SPEC_VERSION 1
326@extension("VK_NV_viewport_array2") define VK_NV_VIEWPORT_ARRAY2_EXTENSION_NAME "VK_NV_viewport_array2"
327
328// 98
329@extension("VK_NVX_multiview_per_view_attributes") define VK_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_SPEC_VERSION 1
330@extension("VK_NVX_multiview_per_view_attributes") define VK_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_EXTENSION_NAME "VK_NVX_multiview_per_view_attributes"
331
332// 99
333@extension("VK_NV_viewport_swizzle") define VK_NV_VIEWPORT_SWIZZLE_SPEC_VERSION 1
334@extension("VK_NV_viewport_swizzle") define VK_NV_VIEWPORT_SWIZZLE_EXTENSION_NAME "VK_NV_viewport_swizzle"
335
336// 100
337@extension("VK_EXT_discard_rectangles") define VK_EXT_DISCARD_RECTANGLES_SPEC_VERSION 1
338@extension("VK_EXT_discard_rectangles") define VK_EXT_DISCARD_RECTANGLES_EXTENSION_NAME "VK_EXT_discard_rectangles"
339
Jesse Hall8c954d32018-01-17 22:06:20 -0800340// 102
341@extension("VK_EXT_conservative_rasterization") define VK_EXT_CONSERVATIVE_RASTERIZATION_SPEC_VERSION 1
342@extension("VK_EXT_conservative_rasterization") define VK_EXT_CONSERVATIVE_RASTERIZATION_EXTENSION_NAME "VK_EXT_conservative_rasterization"
343
Jesse Hall77ad05b2017-03-10 22:02:20 -0800344// 105
Jesse Hall77726222017-09-19 14:49:27 -0500345@extension("VK_EXT_swapchain_colorspace") define VK_EXT_SWAPCHAIN_COLORSPACE_SPEC_VERSION 3
Jesse Hallf5ad48b2017-03-20 13:09:19 -0700346@extension("VK_EXT_swapchain_colorspace") define VK_EXT_SWAPCHAIN_COLORSPACE_EXTENSION_NAME "VK_EXT_swapchain_colorspace"
Jesse Hall77ad05b2017-03-10 22:02:20 -0800347
Jesse Hall889cd9a2017-02-25 22:12:23 -0800348// 106
349@extension("VK_EXT_hdr_metadata") define VK_EXT_HDR_METADATA_SPEC_VERSION 1
350@extension("VK_EXT_hdr_metadata") define VK_EXT_HDR_METADATA_EXTENSION_NAME "VK_EXT_hdr_metadata"
351
Jesse Halla13a3cf2018-07-09 15:51:52 -0700352// 110
353@extension("VK_KHR_create_renderpass2") define VK_KHR_CREATE_RENDERPASS2_SPEC_VERSION 1
354@extension("VK_KHR_create_renderpass2") define VK_KHR_CREATE_RENDERPASS2_EXTENSION_NAME "VK_KHR_create_renderpass2"
355
Jesse Hall889cd9a2017-02-25 22:12:23 -0800356// 112
Chris Forbes1d5f68c2017-01-31 10:17:01 +1300357@extension("VK_KHR_shared_presentable_image") define VK_KHR_SHARED_PRESENTABLE_IMAGE_SPEC_VERSION 1
358@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 +1300359
Jesse Hall9492f992017-08-28 12:10:06 -0700360// 113
361@extension("VK_KHR_external_fence_capabilities") define VK_KHR_EXTERNAL_FENCE_CAPABILITIES_SPEC_VERSION 1
362@extension("VK_KHR_external_fence_capabilities") define VK_KHR_EXTERNAL_FENCE_CAPABILITIES_EXTENSION_NAME "VK_KHR_external_fence_capabilities"
363
364// 114
365@extension("VK_KHR_external_fence") define VK_KHR_EXTERNAL_FENCE_SPEC_VERSION 1
366@extension("VK_KHR_external_fence") define VK_KHR_EXTERNAL_FENCE_EXTENSION_NAME "VK_KHR_external_fence"
367
368// 115
369@extension("VK_KHR_external_fence_win32") define VK_KHR_EXTERNAL_FENCE_WIN32_SPEC_VERSION 1
370@extension("VK_KHR_external_fence_win32") define VK_KHR_EXTERNAL_FENCE_WIN32_EXTENSION_NAME "VK_KHR_external_fence_win32"
371
372// 116
373@extension("VK_KHR_external_fence_fd") define VK_KHR_EXTERNAL_FENCE_FD_SPEC_VERSION 1
374@extension("VK_KHR_external_fence_fd") define VK_KHR_EXTERNAL_FENCE_FD_EXTENSION_NAME "VK_KHR_external_fence_fd"
375
Jesse Hall076f95d2017-09-20 11:34:47 -0700376// 118
377@extension("VK_KHR_maintenance2") define VK_KHR_MAINTENANCE2_SPEC_VERSION 1
378@extension("VK_KHR_maintenance2") define VK_KHR_MAINTENANCE2_EXTENSION_NAME "VK_KHR_maintenance2"
379
Jesse Hall05556b12017-05-18 17:40:25 -0700380// 120
Chris Forbese2d3ee12017-03-16 16:10:15 +1300381@extension("VK_KHR_get_surface_capabilities2") define VK_KHR_GET_SURFACE_CAPABILITIES_2_SPEC_VERSION 1
382@extension("VK_KHR_get_surface_capabilities2") define VK_KHR_GET_SURFACE_CAPABILITIES_2_EXTENSION_NAME "VK_KHR_get_surface_capabilities2"
383
Jesse Hall9492f992017-08-28 12:10:06 -0700384// 121
385@extension("VK_KHR_variable_pointers") define VK_KHR_VARIABLE_POINTERS_SPEC_VERSION 1
386@extension("VK_KHR_variable_pointers") define VK_KHR_VARIABLE_POINTERS_EXTENSION_NAME "VK_KHR_variable_pointers"
387
Jesse Hall54f8d132018-04-18 08:16:59 -0700388// 122
389@extension("VK_KHR_get_display_properties2") define VK_KHR_GET_DISPLAY_PROPERTIES_2_SPEC_VERSION 1
390@extension("VK_KHR_get_display_properties2") define VK_KHR_GET_DISPLAY_PROPERTIES_2_EXTENSION_NAME "VK_KHR_get_display_properties2"
391
Jesse Hallad250842017-03-10 18:35:38 -0800392// 123
393@extension("VK_MVK_ios_surface") define VK_MVK_IOS_SURFACE_SPEC_VERSION 1
394@extension("VK_MVK_ios_surface") define VK_MVK_IOS_SURFACE_EXTENSION_NAME "VK_MVK_ios_surface"
395
396// 124
397@extension("VK_MVK_macos_surface") define VK_MVK_MACOS_SURFACE_SPEC_VERSION 1
398@extension("VK_MVK_macos_surface") define VK_MVK_MACOS_SURFACE_EXTENSION_NAME "VK_MVK_macos_surface"
399
Jesse Hall8c954d32018-01-17 22:06:20 -0800400// 126
401@extension("VK_EXT_external_memory_dma_buf") define VK_EXT_EXTERNAL_MEMORY_DMA_BUF_SPEC_VERSION 1
402@extension("VK_EXT_external_memory_dma_buf") define VK_EXT_EXTERNAL_MEMORY_DMA_BUF_EXTENSION_NAME "VK_EXT_external_memory_dma_buf"
403
404// 127
405@extension("VK_EXT_queue_family_foreign") define VK_EXT_QUEUE_FAMILY_FOREIGN_SPEC_VERSION 1
406@extension("VK_EXT_queue_family_foreign") define VK_EXT_QUEUE_FAMILY_FOREIGN_EXTENSION_NAME "VK_EXT_queue_family_foreign"
407
Jesse Hall9492f992017-08-28 12:10:06 -0700408// 128
Jesse Hall77726222017-09-19 14:49:27 -0500409@extension("VK_KHR_dedicated_allocation") define VK_KHR_DEDICATED_ALLOCATION_SPEC_VERSION 3
Jesse Hall9492f992017-08-28 12:10:06 -0700410@extension("VK_KHR_dedicated_allocation") define VK_KHR_DEDICATED_ALLOCATION_EXTENSION_NAME "VK_KHR_dedicated_allocation"
411
Jesse Hall8c954d32018-01-17 22:06:20 -0800412// 128
413@extension("VK_EXT_debug_utils") define VK_EXT_DEBUG_UTILS_SPEC_VERSION 1
414@extension("VK_EXT_debug_utils") define VK_EXT_DEBUG_UTILS_EXTENSION_NAME "VK_EXT_debug_utils"
415
Jesse Hall36215a92018-01-18 15:04:37 -0800416// 130
Jesse Hall72e6a132018-04-06 13:00:44 -0700417@extension("VK_ANDROID_external_memory_android_hardware_buffer") define VK_ANDROID_EXTERNAL_MEMORY_ANDROID_HARDWARE_BUFFER_SPEC_VERSION 3
Jesse Hall36215a92018-01-18 15:04:37 -0800418@extension("VK_ANDROID_external_memory_android_hardware_buffer") define VK_ANDROID_EXTERNAL_MEMORY_ANDROID_HARDWARE_BUFFER_EXTENSION_NAME "VK_ANDROID_external_memory_android_hardware_buffer"
419
Jesse Hall7ba0ac72017-07-07 17:13:23 -0700420// 131
421@extension("VK_EXT_sampler_filter_minmax") define VK_EXT_SAMPLER_FILTER_MINMAX_SPEC_VERSION 1
422@extension("VK_EXT_sampler_filter_minmax") define VK_EXT_SAMPLER_FILTER_MINMAX_EXTENSION_NAME "VK_EXT_sampler_filter_minmax"
423
Jesse Hall9492f992017-08-28 12:10:06 -0700424// 132
425@extension("VK_KHR_storage_buffer_storage_class") define VK_KHR_STORAGE_BUFFER_STORAGE_CLASS_SPEC_VERSION 1
426@extension("VK_KHR_storage_buffer_storage_class") define VK_KHR_STORAGE_BUFFER_STORAGE_CLASS_EXTENSION_NAME "VK_KHR_storage_buffer_storage_class"
427
Jesse Hall7ba0ac72017-07-07 17:13:23 -0700428// 133
429@extension("VK_AMD_gpu_shader_int16") define VK_AMD_GPU_SHADER_INT16_SPEC_VERSION 1
430@extension("VK_AMD_gpu_shader_int16") define VK_AMD_GPU_SHADER_INT16_EXTENSION_NAME "VK_AMD_gpu_shader_int16"
431
Jesse Hall77726222017-09-19 14:49:27 -0500432// 137
433@extension("VK_AMD_mixed_attachment_samples") define VK_AMD_MIXED_ATTACHMENT_SAMPLES_SPEC_VERSION 1
434@extension("VK_AMD_mixed_attachment_samples") define VK_AMD_MIXED_ATTACHMENT_SAMPLES_EXTENSION_NAME "VK_AMD_mixed_attachment_samples"
435
436// 138
437@extension("VK_AMD_shader_fragment_mask") define VK_AMD_SHADER_FRAGMENT_MASK_SPEC_VERSION 1
438@extension("VK_AMD_shader_fragment_mask") define VK_AMD_SHADER_FRAGMENT_MASK_EXTENSION_NAME "VK_AMD_shader_fragment_mask"
439
440// 141
441@extension("VK_EXT_shader_stencil_export") define VK_EXT_SHADER_STENCIL_EXPORT_SPEC_VERSION 1
442@extension("VK_EXT_shader_stencil_export") define VK_EXT_SHADER_STENCIL_EXPORT_EXTENSION_NAME "VK_EXT_shader_stencil_export"
443
444// 144
445@extension("VK_EXT_sample_locations") define VK_EXT_SAMPLE_LOCATIONS_SPEC_VERSION 1
446@extension("VK_EXT_sample_locations") define VK_EXT_SAMPLE_LOCATIONS_EXTENSION_NAME "VK_EXT_sample_locations"
447
448// 145
449@extension("VK_KHR_relaxed_block_layout") define VK_KHR_RELAXED_BLOCK_LAYOUT_SPEC_VERSION 1
450@extension("VK_KHR_relaxed_block_layout") define VK_KHR_RELAXED_BLOCK_LAYOUT_EXTENSION_NAME "VK_KHR_relaxed_block_layout"
451
Jesse Hall9492f992017-08-28 12:10:06 -0700452// 147
453@extension("VK_KHR_get_memory_requirements2") define VK_KHR_GET_MEMORY_REQUIREMENTS2_SPEC_VERSION 1
454@extension("VK_KHR_get_memory_requirements2") define VK_KHR_GET_MEMORY_REQUIREMENTS2_EXTENSION_NAME "VK_KHR_get_memory_requirements2"
455
Jesse Hall076f95d2017-09-20 11:34:47 -0700456// 148
457@extension("VK_KHR_image_format_list") define VK_KHR_IMAGE_FORMAT_LIST_SPEC_VERSION 1
458@extension("VK_KHR_image_format_list") define VK_KHR_IMAGE_FORMAT_LIST_EXTENSION_NAME "VK_KHR_image_format_list"
459
Jesse Hall7ba0ac72017-07-07 17:13:23 -0700460// 149
461@extension("VK_EXT_blend_operation_advanced") define VK_EXT_BLEND_OPERATION_ADVANCED_SPEC_VERSION 2
462@extension("VK_EXT_blend_operation_advanced") define VK_EXT_BLEND_OPERATION_ADVANCED_EXTENSION_NAME "VK_EXT_blend_operation_advanced"
463
464// 150
465@extension("VK_NV_fragment_coverage_to_color") define VK_NV_FRAGMENT_COVERAGE_TO_COLOR_SPEC_VERSION 1
466@extension("VK_NV_fragment_coverage_to_color") define VK_NV_FRAGMENT_COVERAGE_TO_COLOR_EXTENSION_NAME "VK_NV_fragment_coverage_to_color"
467
468// 153
469@extension("VK_NV_framebuffer_mixed_samples") define VK_NV_FRAMEBUFFER_MIXED_SAMPLES_SPEC_VERSION 1
470@extension("VK_NV_framebuffer_mixed_samples") define VK_NV_FRAMEBUFFER_MIXED_SAMPLES_EXTENSION_NAME "VK_NV_framebuffer_mixed_samples"
471
472// 154
473@extension("VK_NV_fill_rectangle") define VK_NV_FILL_RECTANGLE_SPEC_VERSION 1
474@extension("VK_NV_fill_rectangle") define VK_NV_FILL_RECTANGLE_EXTENSION_NAME "VK_NV_fill_rectangle"
475
Jesse Hall77726222017-09-19 14:49:27 -0500476// 156
477@extension("VK_EXT_post_depth_coverage") define VK_EXT_POST_DEPTH_COVERAGE_SPEC_VERSION 1
478@extension("VK_EXT_post_depth_coverage") define VK_EXT_POST_DEPTH_COVERAGE_EXTENSION_NAME "VK_EXT_post_depth_coverage"
479
Jesse Hall076f95d2017-09-20 11:34:47 -0700480// 157
481@extension("VK_KHR_sampler_ycbcr_conversion") define VK_KHR_SAMPLER_YCBCR_CONVERSION_SPEC_VERSION 1
482@extension("VK_KHR_sampler_ycbcr_conversion") define VK_KHR_SAMPLER_YCBCR_CONVERSION_EXTENSION_NAME "VK_KHR_sampler_ycbcr_conversion"
483
484// 158
485@extension("VK_KHR_bind_memory2") define VK_KHR_BIND_MEMORY2_SPEC_VERSION 1
486@extension("VK_KHR_bind_memory2") define VK_KHR_BIND_MEMORY2_EXTENSION_NAME "VK_KHR_bind_memory2"
487
Jesse Hall77726222017-09-19 14:49:27 -0500488// 161
489@extension("VK_EXT_validation_cache") define VK_EXT_VALIDATION_CACHE_SPEC_VERSION 1
490@extension("VK_EXT_validation_cache") define VK_EXT_VALIDATION_CACHE_EXTENSION_NAME "VK_EXT_validation_cache"
491
Jesse Hall72e6a132018-04-06 13:00:44 -0700492// 162
493@extension("VK_EXT_descriptor_indexing") define VK_EXT_DESCRIPTOR_INDEXING_SPEC_VERSION 2
494@extension("VK_EXT_descriptor_indexing") define VK_EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME "VK_EXT_descriptor_indexing"
495
Jesse Hall77726222017-09-19 14:49:27 -0500496// 165
497@extension("VK_EXT_shader_viewport_index_layer") define VK_EXT_SHADER_VIEWPORT_INDEX_LAYER_SPEC_VERSION 1
498@extension("VK_EXT_shader_viewport_index_layer") define VK_EXT_SHADER_VIEWPORT_INDEX_LAYER_EXTENSION_NAME "VK_EXT_shader_viewport_index_layer"
499
Daniel Koch09f7bf92017-10-05 00:26:58 -0400500// 169
501@extension("VK_KHR_maintenance3") define VK_KHR_MAINTENANCE3_SPEC_VERSION 1
502@extension("VK_KHR_maintenance3") define VK_KHR_MAINTENANCE3_EXTENSION_NAME "VK_KHR_maintenance3"
503
Jesse Hall54f8d132018-04-18 08:16:59 -0700504// 170
505@extension("VK_KHR_draw_indirect_count") define VK_KHR_DRAW_INDIRECT_COUNT_SPEC_VERSION 1
506@extension("VK_KHR_draw_indirect_count") define VK_KHR_DRAW_INDIRECT_COUNT_EXTENSION_NAME "VK_KHR_draw_indirect_count"
507
Jesse Hall8c954d32018-01-17 22:06:20 -0800508// 175
509@extension("VK_EXT_global_priority") define VK_EXT_GLOBAL_PRIORITY_SPEC_VERSION 1
510@extension("VK_EXT_global_priority") define VK_EXT_GLOBAL_PRIORITY_EXTENSION_NAME "VK_EXT_global_priority"
511
Jesse Halla13a3cf2018-07-09 15:51:52 -0700512// 178
513@extension("VK_KHR_8bit_storage") define VK_KHR_8BIT_STORAGE_SPEC_VERSION 1
514@extension("VK_KHR_8bit_storage") define VK_KHR_8BIT_STORAGE_EXTENSION_NAME "VK_KHR_8bit_storage"
515
Jesse Hall8c954d32018-01-17 22:06:20 -0800516// 179
517@extension("VK_EXT_external_memory_host") define VK_EXT_EXTERNAL_MEMORY_HOST_SPEC_VERSION 1
518@extension("VK_EXT_external_memory_host") define VK_EXT_EXTERNAL_MEMORY_HOST_EXTENSION_NAME "VK_EXT_external_memory_host"
519
Jesse Hall72e6a132018-04-06 13:00:44 -0700520// 180
521@extension("VK_AMD_buffer_marker") define VK_AMD_BUFFER_MARKER_SPEC_VERSION 1
522@extension("VK_AMD_buffer_marker") define VK_AMD_BUFFER_MARKER_EXTENSION_NAME "VK_AMD_buffer_marker"
523
524// 186
525@extension("VK_AMD_shader_core_properties") define VK_AMD_SHADER_CORE_PROPERTIES_SPEC_VERSION 1
526@extension("VK_AMD_shader_core_properties") define VK_AMD_SHADER_CORE_PROPERTIES_EXTENSION_NAME "VK_AMD_shader_core_properties"
527
528// 191
529@extension("VK_EXT_vertex_attribute_divisor") define VK_AMD_SHADER_CORE_PROPERTIES_SPEC_VERSION 1
530@extension("VK_EXT_vertex_attribute_divisor") define VK_AMD_BUFFER_MARKER_EXTENSION_NAME "VK_EXT_vertex_attribute_divisor"
531
532// 199
533@extension("VK_NV_shader_subgroup_partitioned") define VK_NV_SHADER_SUBGROUP_PARTITIONED_SPEC_VERSION 1
534@extension("VK_NV_shader_subgroup_partitioned") define VK_NV_SHADER_SUBGROUP_PARTITIONED_EXTENSION_NAME "VK_NV_shader_subgroup_partitioned"
535
Jesse Hall115df0c2018-07-30 12:00:59 -0700536// 207
537@extension("VK_NV_device_diagnostic_checkpoints") define VK_NV_DEVICE_DIAGNOSTIC_CHECKPOINTS_SPEC_VERSION 2
538@extension("VK_NV_device_diagnostic_checkpoints") define VK_NV_DEVICE_DIAGNOSTIC_CHECKPOINTS_EXTENSION_NAME "VK_NV_device_diagnostic_checkpoints"
539
Jesse Halld27f6aa2015-08-15 17:58:48 -0700540/////////////
541// Types //
542/////////////
543
Jesse Hall5ae3abb2015-10-08 14:00:22 -0700544type u32 VkBool32
545type u32 VkFlags
546type u64 VkDeviceSize
547type u32 VkSampleMask
548
Jesse Halld27f6aa2015-08-15 17:58:48 -0700549/// Dispatchable handle types.
550@dispatchHandle type u64 VkInstance
551@dispatchHandle type u64 VkPhysicalDevice
552@dispatchHandle type u64 VkDevice
553@dispatchHandle type u64 VkQueue
Jesse Hall3fbc8562015-11-29 22:10:52 -0800554@dispatchHandle type u64 VkCommandBuffer
Jesse Halld27f6aa2015-08-15 17:58:48 -0700555
556/// Non dispatchable handle types.
557@nonDispatchHandle type u64 VkDeviceMemory
Jesse Hall3fbc8562015-11-29 22:10:52 -0800558@nonDispatchHandle type u64 VkCommandPool
Jesse Halld27f6aa2015-08-15 17:58:48 -0700559@nonDispatchHandle type u64 VkBuffer
560@nonDispatchHandle type u64 VkBufferView
561@nonDispatchHandle type u64 VkImage
562@nonDispatchHandle type u64 VkImageView
Jesse Halld27f6aa2015-08-15 17:58:48 -0700563@nonDispatchHandle type u64 VkShaderModule
Jesse Halld27f6aa2015-08-15 17:58:48 -0700564@nonDispatchHandle type u64 VkPipeline
565@nonDispatchHandle type u64 VkPipelineLayout
566@nonDispatchHandle type u64 VkSampler
567@nonDispatchHandle type u64 VkDescriptorSet
568@nonDispatchHandle type u64 VkDescriptorSetLayout
569@nonDispatchHandle type u64 VkDescriptorPool
Jesse Halld27f6aa2015-08-15 17:58:48 -0700570@nonDispatchHandle type u64 VkFence
571@nonDispatchHandle type u64 VkSemaphore
572@nonDispatchHandle type u64 VkEvent
573@nonDispatchHandle type u64 VkQueryPool
574@nonDispatchHandle type u64 VkFramebuffer
575@nonDispatchHandle type u64 VkRenderPass
576@nonDispatchHandle type u64 VkPipelineCache
Jesse Hall1356b0d2015-11-23 17:24:58 -0800577
Ian Elliott28bd2c32017-10-13 09:21:12 -0600578@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -0400579@nonDispatchHandle type u64 VkSamplerYcbcrConversion
580@nonDispatchHandle type u64 VkDescriptorUpdateTemplate
581
Jesse Hallad250842017-03-10 18:35:38 -0800582// 1
Jesse Hall3e0dc8f2015-11-30 00:42:57 -0800583@extension("VK_KHR_surface") @nonDispatchHandle type u64 VkSurfaceKHR
Jesse Hall1356b0d2015-11-23 17:24:58 -0800584
Jesse Hallad250842017-03-10 18:35:38 -0800585// 2
Jesse Hall3e0dc8f2015-11-30 00:42:57 -0800586@extension("VK_KHR_swapchain") @nonDispatchHandle type u64 VkSwapchainKHR
Jesse Hall1356b0d2015-11-23 17:24:58 -0800587
Jesse Hallad250842017-03-10 18:35:38 -0800588// 3
Jesse Hall3e0dc8f2015-11-30 00:42:57 -0800589@extension("VK_KHR_display") @nonDispatchHandle type u64 VkDisplayKHR
590@extension("VK_KHR_display") @nonDispatchHandle type u64 VkDisplayModeKHR
Jesse Halld27f6aa2015-08-15 17:58:48 -0700591
Jesse Hallad250842017-03-10 18:35:38 -0800592// 12
Jesse Hall715b86a2016-01-16 16:34:29 -0800593@extension("VK_EXT_debug_report") @nonDispatchHandle type u64 VkDebugReportCallbackEXT
594
Jesse Hallad250842017-03-10 18:35:38 -0800595// 86
596@extension("VK_KHR_descriptor_update_template") @nonDispatchHandle type u64 VkDescriptorUpdateTemplateKHR
597
598// 87
Chris Forbes289cb792016-12-30 15:03:55 +1300599@extension("VK_NVX_device_generated_commands") @nonDispatchHandle type u64 VkObjectTableNVX
600@extension("VK_NVX_device_generated_commands") @nonDispatchHandle type u64 VkIndirectCommandsLayoutNVX
601
Jesse Hall8c954d32018-01-17 22:06:20 -0800602// 129
603@extension("VK_EXT_debug_utils") @nonDispatchHandle type u64 VkDebugUtilsMessengerEXT
604
Jesse Hall076f95d2017-09-20 11:34:47 -0700605// 157
606@extension("VK_KHR_sampler_ycbcr_conversion") @nonDispatchHandle type u64 VkSamplerYcbcrConversionKHR
607
Jesse Hall77726222017-09-19 14:49:27 -0500608// 161
609@extension("VK_EXT_validation_cache") @nonDispatchHandle type u64 VkValidationCacheEXT
Jesse Halld27f6aa2015-08-15 17:58:48 -0700610
611/////////////
612// Enums //
613/////////////
614
615enum VkImageLayout {
616 VK_IMAGE_LAYOUT_UNDEFINED = 0x00000000, /// Implicit layout an image is when its contents are undefined due to various reasons (e.g. right after creation)
617 VK_IMAGE_LAYOUT_GENERAL = 0x00000001, /// General layout when image can be used for any kind of access
618 VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL = 0x00000002, /// Optimal layout when image is only used for color attachment read/write
619 VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL = 0x00000003, /// Optimal layout when image is only used for depth/stencil attachment read/write
620 VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL = 0x00000004, /// Optimal layout when image is used for read only depth/stencil attachment and shader access
621 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 -0800622 VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL = 0x00000006, /// Optimal layout when image is used only as source of transfer operations
623 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 -0700624 VK_IMAGE_LAYOUT_PREINITIALIZED = 0x00000008, /// Initial layout used when the data is populated by the CPU
Jesse Hall1356b0d2015-11-23 17:24:58 -0800625
Ian Elliott28bd2c32017-10-13 09:21:12 -0600626 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -0400627 VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL = 1000117000,
628 VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL = 1000117001,
629
Jesse Hallad250842017-03-10 18:35:38 -0800630 //@extension("VK_KHR_swapchain") // 2
Jesse Hallbd888842015-11-30 21:44:14 -0800631 VK_IMAGE_LAYOUT_PRESENT_SRC_KHR = 1000001002,
Chris Forbesaf3a1112017-01-31 15:37:03 +1300632
Jesse Hall05556b12017-05-18 17:40:25 -0700633 //@extension("VK_KHR_shared_presentable_image") // 112
Chris Forbesaf3a1112017-01-31 15:37:03 +1300634 VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR = 1000111000,
Jesse Hall076f95d2017-09-20 11:34:47 -0700635
636 //@extension("VK_KHR_maintenance2") // 118
637 VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL_KHR = 1000117000,
638 VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL_KHR = 1000117001,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700639}
640
641enum VkAttachmentLoadOp {
642 VK_ATTACHMENT_LOAD_OP_LOAD = 0x00000000,
643 VK_ATTACHMENT_LOAD_OP_CLEAR = 0x00000001,
644 VK_ATTACHMENT_LOAD_OP_DONT_CARE = 0x00000002,
645}
646
647enum VkAttachmentStoreOp {
648 VK_ATTACHMENT_STORE_OP_STORE = 0x00000000,
649 VK_ATTACHMENT_STORE_OP_DONT_CARE = 0x00000001,
650}
651
652enum VkImageType {
653 VK_IMAGE_TYPE_1D = 0x00000000,
654 VK_IMAGE_TYPE_2D = 0x00000001,
655 VK_IMAGE_TYPE_3D = 0x00000002,
656}
657
658enum VkImageTiling {
Jesse Hallc7467b72015-11-29 21:05:26 -0800659 VK_IMAGE_TILING_OPTIMAL = 0x00000000,
660 VK_IMAGE_TILING_LINEAR = 0x00000001,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700661}
662
663enum VkImageViewType {
664 VK_IMAGE_VIEW_TYPE_1D = 0x00000000,
665 VK_IMAGE_VIEW_TYPE_2D = 0x00000001,
666 VK_IMAGE_VIEW_TYPE_3D = 0x00000002,
667 VK_IMAGE_VIEW_TYPE_CUBE = 0x00000003,
668 VK_IMAGE_VIEW_TYPE_1D_ARRAY = 0x00000004,
669 VK_IMAGE_VIEW_TYPE_2D_ARRAY = 0x00000005,
670 VK_IMAGE_VIEW_TYPE_CUBE_ARRAY = 0x00000006,
671}
672
Jesse Hall3fbc8562015-11-29 22:10:52 -0800673enum VkCommandBufferLevel {
674 VK_COMMAND_BUFFER_LEVEL_PRIMARY = 0x00000000,
675 VK_COMMAND_BUFFER_LEVEL_SECONDARY = 0x00000001,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700676}
677
Jesse Hall65ab5522015-11-30 00:07:16 -0800678enum VkComponentSwizzle {
679 VK_COMPONENT_SWIZZLE_IDENTITY = 0x00000000,
680 VK_COMPONENT_SWIZZLE_ZERO = 0x00000001,
681 VK_COMPONENT_SWIZZLE_ONE = 0x00000002,
682 VK_COMPONENT_SWIZZLE_R = 0x00000003,
683 VK_COMPONENT_SWIZZLE_G = 0x00000004,
684 VK_COMPONENT_SWIZZLE_B = 0x00000005,
685 VK_COMPONENT_SWIZZLE_A = 0x00000006,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700686}
687
688enum VkDescriptorType {
689 VK_DESCRIPTOR_TYPE_SAMPLER = 0x00000000,
690 VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER = 0x00000001,
691 VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE = 0x00000002,
692 VK_DESCRIPTOR_TYPE_STORAGE_IMAGE = 0x00000003,
693 VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER = 0x00000004,
694 VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER = 0x00000005,
695 VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER = 0x00000006,
696 VK_DESCRIPTOR_TYPE_STORAGE_BUFFER = 0x00000007,
697 VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC = 0x00000008,
698 VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC = 0x00000009,
699 VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT = 0x0000000a,
700}
701
Jesse Halld27f6aa2015-08-15 17:58:48 -0700702enum VkQueryType {
703 VK_QUERY_TYPE_OCCLUSION = 0x00000000,
704 VK_QUERY_TYPE_PIPELINE_STATISTICS = 0x00000001, /// Optional
Jesse Halla3a7a1d2015-11-24 11:37:23 -0800705 VK_QUERY_TYPE_TIMESTAMP = 0x00000002,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700706}
707
Jesse Halld27f6aa2015-08-15 17:58:48 -0700708enum VkBorderColor {
709 VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK = 0x00000000,
710 VK_BORDER_COLOR_INT_TRANSPARENT_BLACK = 0x00000001,
711 VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK = 0x00000002,
712 VK_BORDER_COLOR_INT_OPAQUE_BLACK = 0x00000003,
713 VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE = 0x00000004,
714 VK_BORDER_COLOR_INT_OPAQUE_WHITE = 0x00000005,
715}
716
717enum VkPipelineBindPoint {
Jesse Hallc7467b72015-11-29 21:05:26 -0800718 VK_PIPELINE_BIND_POINT_GRAPHICS = 0x00000000,
719 VK_PIPELINE_BIND_POINT_COMPUTE = 0x00000001,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700720}
721
722enum VkPrimitiveTopology {
723 VK_PRIMITIVE_TOPOLOGY_POINT_LIST = 0x00000000,
724 VK_PRIMITIVE_TOPOLOGY_LINE_LIST = 0x00000001,
725 VK_PRIMITIVE_TOPOLOGY_LINE_STRIP = 0x00000002,
726 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST = 0x00000003,
727 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP = 0x00000004,
728 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN = 0x00000005,
Jesse Hall3fbc8562015-11-29 22:10:52 -0800729 VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY = 0x00000006,
730 VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY = 0x00000007,
731 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY = 0x00000008,
732 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY = 0x00000009,
Jesse Hall091ed9e2015-11-30 00:55:29 -0800733 VK_PRIMITIVE_TOPOLOGY_PATCH_LIST = 0x0000000a,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700734}
735
736enum VkSharingMode {
737 VK_SHARING_MODE_EXCLUSIVE = 0x00000000,
738 VK_SHARING_MODE_CONCURRENT = 0x00000001,
739}
740
741enum VkIndexType {
742 VK_INDEX_TYPE_UINT16 = 0x00000000,
743 VK_INDEX_TYPE_UINT32 = 0x00000001,
744}
745
Jesse Hall23ff73f2015-11-29 14:36:39 -0800746enum VkFilter {
747 VK_FILTER_NEAREST = 0x00000000,
748 VK_FILTER_LINEAR = 0x00000001,
Jesse Hall26763382016-05-20 07:13:52 -0700749
Jesse Hallad250842017-03-10 18:35:38 -0800750 //@extension("VK_IMG_filter_cubic") // 16
Jesse Hall26763382016-05-20 07:13:52 -0700751 VK_FILTER_CUBIC_IMG = 1000015000,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700752}
753
Jesse Hall23ff73f2015-11-29 14:36:39 -0800754enum VkSamplerMipmapMode {
Jesse Hall23ff73f2015-11-29 14:36:39 -0800755 VK_SAMPLER_MIPMAP_MODE_NEAREST = 0x00000001, /// Choose nearest mip level
756 VK_SAMPLER_MIPMAP_MODE_LINEAR = 0x00000002, /// Linear filter between mip levels
Jesse Halld27f6aa2015-08-15 17:58:48 -0700757}
758
Jesse Hall23ff73f2015-11-29 14:36:39 -0800759enum VkSamplerAddressMode {
Jesse Hallc7467b72015-11-29 21:05:26 -0800760 VK_SAMPLER_ADDRESS_MODE_REPEAT = 0x00000000,
761 VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT = 0x00000001,
762 VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE = 0x00000002,
763 VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER = 0x00000003,
764 VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE = 0x00000004,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700765}
766
767enum VkCompareOp {
768 VK_COMPARE_OP_NEVER = 0x00000000,
769 VK_COMPARE_OP_LESS = 0x00000001,
770 VK_COMPARE_OP_EQUAL = 0x00000002,
Jesse Hall3fbc8562015-11-29 22:10:52 -0800771 VK_COMPARE_OP_LESS_OR_EQUAL = 0x00000003,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700772 VK_COMPARE_OP_GREATER = 0x00000004,
773 VK_COMPARE_OP_NOT_EQUAL = 0x00000005,
Jesse Hall3fbc8562015-11-29 22:10:52 -0800774 VK_COMPARE_OP_GREATER_OR_EQUAL = 0x00000006,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700775 VK_COMPARE_OP_ALWAYS = 0x00000007,
776}
777
Jesse Hall65ab5522015-11-30 00:07:16 -0800778enum VkPolygonMode {
779 VK_POLYGON_MODE_FILL = 0x00000000,
780 VK_POLYGON_MODE_LINE = 0x00000001,
781 VK_POLYGON_MODE_POINT = 0x00000002,
Jesse Hall7ba0ac72017-07-07 17:13:23 -0700782
783 //@extension("VK_NV_fill_rectangle") // 154
784 VK_POLYGON_MODE_FILL_RECTANGLE_NV = 1000153000,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700785}
786
787enum VkFrontFace {
Jesse Hall3fbc8562015-11-29 22:10:52 -0800788 VK_FRONT_FACE_COUNTER_CLOCKWISE = 0x00000000,
789 VK_FRONT_FACE_CLOCKWISE = 0x00000001,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700790}
791
Jesse Hall65ab5522015-11-30 00:07:16 -0800792enum VkBlendFactor {
793 VK_BLEND_FACTOR_ZERO = 0x00000000,
794 VK_BLEND_FACTOR_ONE = 0x00000001,
795 VK_BLEND_FACTOR_SRC_COLOR = 0x00000002,
796 VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR = 0x00000003,
797 VK_BLEND_FACTOR_DST_COLOR = 0x00000004,
798 VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR = 0x00000005,
799 VK_BLEND_FACTOR_SRC_ALPHA = 0x00000006,
800 VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA = 0x00000007,
801 VK_BLEND_FACTOR_DST_ALPHA = 0x00000008,
802 VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA = 0x00000009,
803 VK_BLEND_FACTOR_CONSTANT_COLOR = 0x0000000a,
804 VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR = 0x0000000b,
805 VK_BLEND_FACTOR_CONSTANT_ALPHA = 0x0000000c,
806 VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA = 0x0000000d,
807 VK_BLEND_FACTOR_SRC_ALPHA_SATURATE = 0x0000000e,
808 VK_BLEND_FACTOR_SRC1_COLOR = 0x0000000f,
809 VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR = 0x00000010,
810 VK_BLEND_FACTOR_SRC1_ALPHA = 0x00000011,
811 VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA = 0x00000012,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700812}
813
814enum VkBlendOp {
815 VK_BLEND_OP_ADD = 0x00000000,
816 VK_BLEND_OP_SUBTRACT = 0x00000001,
817 VK_BLEND_OP_REVERSE_SUBTRACT = 0x00000002,
818 VK_BLEND_OP_MIN = 0x00000003,
819 VK_BLEND_OP_MAX = 0x00000004,
Jesse Hall7ba0ac72017-07-07 17:13:23 -0700820
821 //@extension("VK_EXT_blend_operation_advanced") // 149
822 VK_BLEND_OP_ZERO_EXT = 1000148000,
823 VK_BLEND_OP_SRC_EXT = 1000148001,
824 VK_BLEND_OP_DST_EXT = 1000148002,
825 VK_BLEND_OP_SRC_OVER_EXT = 1000148003,
826 VK_BLEND_OP_DST_OVER_EXT = 1000148004,
827 VK_BLEND_OP_SRC_IN_EXT = 1000148005,
828 VK_BLEND_OP_DST_IN_EXT = 1000148006,
829 VK_BLEND_OP_SRC_OUT_EXT = 1000148007,
830 VK_BLEND_OP_DST_OUT_EXT = 1000148008,
831 VK_BLEND_OP_SRC_ATOP_EXT = 1000148009,
832 VK_BLEND_OP_DST_ATOP_EXT = 1000148010,
833 VK_BLEND_OP_XOR_EXT = 1000148011,
834 VK_BLEND_OP_MULTIPLY_EXT = 1000148012,
835 VK_BLEND_OP_SCREEN_EXT = 1000148013,
836 VK_BLEND_OP_OVERLAY_EXT = 1000148014,
837 VK_BLEND_OP_DARKEN_EXT = 1000148015,
838 VK_BLEND_OP_LIGHTEN_EXT = 1000148016,
839 VK_BLEND_OP_COLORDODGE_EXT = 1000148017,
840 VK_BLEND_OP_COLORBURN_EXT = 1000148018,
841 VK_BLEND_OP_HARDLIGHT_EXT = 1000148019,
842 VK_BLEND_OP_SOFTLIGHT_EXT = 1000148020,
843 VK_BLEND_OP_DIFFERENCE_EXT = 1000148021,
844 VK_BLEND_OP_EXCLUSION_EXT = 1000148022,
845 VK_BLEND_OP_INVERT_EXT = 1000148023,
846 VK_BLEND_OP_INVERT_RGB_EXT = 1000148024,
847 VK_BLEND_OP_LINEARDODGE_EXT = 1000148025,
848 VK_BLEND_OP_LINEARBURN_EXT = 1000148026,
849 VK_BLEND_OP_VIVIDLIGHT_EXT = 1000148027,
850 VK_BLEND_OP_LINEARLIGHT_EXT = 1000148028,
851 VK_BLEND_OP_PINLIGHT_EXT = 1000148029,
852 VK_BLEND_OP_HARDMIX_EXT = 1000148030,
853 VK_BLEND_OP_HSL_HUE_EXT = 1000148031,
854 VK_BLEND_OP_HSL_SATURATION_EXT = 1000148032,
855 VK_BLEND_OP_HSL_COLOR_EXT = 1000148033,
856 VK_BLEND_OP_HSL_LUMINOSITY_EXT = 1000148034,
857 VK_BLEND_OP_PLUS_EXT = 1000148035,
858 VK_BLEND_OP_PLUS_CLAMPED_EXT = 1000148036,
859 VK_BLEND_OP_PLUS_CLAMPED_ALPHA_EXT = 1000148037,
860 VK_BLEND_OP_PLUS_DARKER_EXT = 1000148038,
861 VK_BLEND_OP_MINUS_EXT = 1000148039,
862 VK_BLEND_OP_MINUS_CLAMPED_EXT = 1000148040,
863 VK_BLEND_OP_CONTRAST_EXT = 1000148041,
864 VK_BLEND_OP_INVERT_OVG_EXT = 1000148042,
865 VK_BLEND_OP_RED_EXT = 1000148043,
866 VK_BLEND_OP_GREEN_EXT = 1000148044,
867 VK_BLEND_OP_BLUE_EXT = 1000148045,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700868}
869
870enum VkStencilOp {
871 VK_STENCIL_OP_KEEP = 0x00000000,
872 VK_STENCIL_OP_ZERO = 0x00000001,
873 VK_STENCIL_OP_REPLACE = 0x00000002,
Jesse Hall3fbc8562015-11-29 22:10:52 -0800874 VK_STENCIL_OP_INCREMENT_AND_CLAMP = 0x00000003,
875 VK_STENCIL_OP_DECREMENT_AND_CLAMP = 0x00000004,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700876 VK_STENCIL_OP_INVERT = 0x00000005,
Jesse Hall3fbc8562015-11-29 22:10:52 -0800877 VK_STENCIL_OP_INCREMENT_AND_WRAP = 0x00000006,
878 VK_STENCIL_OP_DECREMENT_AND_WRAP = 0x00000007,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700879}
880
881enum VkLogicOp {
882 VK_LOGIC_OP_CLEAR = 0x00000000,
883 VK_LOGIC_OP_AND = 0x00000001,
884 VK_LOGIC_OP_AND_REVERSE = 0x00000002,
885 VK_LOGIC_OP_COPY = 0x00000003,
886 VK_LOGIC_OP_AND_INVERTED = 0x00000004,
Jesse Hall3fbc8562015-11-29 22:10:52 -0800887 VK_LOGIC_OP_NO_OP = 0x00000005,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700888 VK_LOGIC_OP_XOR = 0x00000006,
889 VK_LOGIC_OP_OR = 0x00000007,
890 VK_LOGIC_OP_NOR = 0x00000008,
Jesse Hall3fbc8562015-11-29 22:10:52 -0800891 VK_LOGIC_OP_EQUIVALENT = 0x00000009,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700892 VK_LOGIC_OP_INVERT = 0x0000000a,
893 VK_LOGIC_OP_OR_REVERSE = 0x0000000b,
894 VK_LOGIC_OP_COPY_INVERTED = 0x0000000c,
895 VK_LOGIC_OP_OR_INVERTED = 0x0000000d,
896 VK_LOGIC_OP_NAND = 0x0000000e,
897 VK_LOGIC_OP_SET = 0x0000000f,
898}
899
Jesse Hall3fbc8562015-11-29 22:10:52 -0800900enum VkSystemAllocationScope {
Jesse Hall3e0dc8f2015-11-30 00:42:57 -0800901 VK_SYSTEM_ALLOCATION_SCOPE_COMMAND = 0x00000000,
Jesse Hall3fbc8562015-11-29 22:10:52 -0800902 VK_SYSTEM_ALLOCATION_SCOPE_OBJECT = 0x00000001,
903 VK_SYSTEM_ALLOCATION_SCOPE_CACHE = 0x00000002,
904 VK_SYSTEM_ALLOCATION_SCOPE_DEVICE = 0x00000003,
905 VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE = 0x00000004,
Jesse Hall03b6fe12015-11-24 12:44:21 -0800906}
907
Jesse Hall3fbc8562015-11-29 22:10:52 -0800908enum VkInternalAllocationType {
909 VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE = 0x00000000,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700910}
911
912enum VkPhysicalDeviceType {
913 VK_PHYSICAL_DEVICE_TYPE_OTHER = 0x00000000,
914 VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU = 0x00000001,
915 VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU = 0x00000002,
916 VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU = 0x00000003,
917 VK_PHYSICAL_DEVICE_TYPE_CPU = 0x00000004,
918}
919
Jesse Hall65ab5522015-11-30 00:07:16 -0800920enum VkVertexInputRate {
921 VK_VERTEX_INPUT_RATE_VERTEX = 0x00000000,
922 VK_VERTEX_INPUT_RATE_INSTANCE = 0x00000001,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700923}
924
925/// Vulkan format definitions
926enum VkFormat {
Jesse Hallf4ab2b12015-11-30 16:04:55 -0800927 VK_FORMAT_UNDEFINED = 0,
928 VK_FORMAT_R4G4_UNORM_PACK8 = 1,
929 VK_FORMAT_R4G4B4A4_UNORM_PACK16 = 2,
930 VK_FORMAT_B4G4R4A4_UNORM_PACK16 = 3,
931 VK_FORMAT_R5G6B5_UNORM_PACK16 = 4,
932 VK_FORMAT_B5G6R5_UNORM_PACK16 = 5,
933 VK_FORMAT_R5G5B5A1_UNORM_PACK16 = 6,
934 VK_FORMAT_B5G5R5A1_UNORM_PACK16 = 7,
935 VK_FORMAT_A1R5G5B5_UNORM_PACK16 = 8,
936 VK_FORMAT_R8_UNORM = 9,
937 VK_FORMAT_R8_SNORM = 10,
938 VK_FORMAT_R8_USCALED = 11,
939 VK_FORMAT_R8_SSCALED = 12,
940 VK_FORMAT_R8_UINT = 13,
941 VK_FORMAT_R8_SINT = 14,
942 VK_FORMAT_R8_SRGB = 15,
943 VK_FORMAT_R8G8_UNORM = 16,
944 VK_FORMAT_R8G8_SNORM = 17,
945 VK_FORMAT_R8G8_USCALED = 18,
946 VK_FORMAT_R8G8_SSCALED = 19,
947 VK_FORMAT_R8G8_UINT = 20,
948 VK_FORMAT_R8G8_SINT = 21,
949 VK_FORMAT_R8G8_SRGB = 22,
950 VK_FORMAT_R8G8B8_UNORM = 23,
951 VK_FORMAT_R8G8B8_SNORM = 24,
952 VK_FORMAT_R8G8B8_USCALED = 25,
953 VK_FORMAT_R8G8B8_SSCALED = 26,
954 VK_FORMAT_R8G8B8_UINT = 27,
955 VK_FORMAT_R8G8B8_SINT = 28,
956 VK_FORMAT_R8G8B8_SRGB = 29,
957 VK_FORMAT_B8G8R8_UNORM = 30,
958 VK_FORMAT_B8G8R8_SNORM = 31,
959 VK_FORMAT_B8G8R8_USCALED = 32,
960 VK_FORMAT_B8G8R8_SSCALED = 33,
961 VK_FORMAT_B8G8R8_UINT = 34,
962 VK_FORMAT_B8G8R8_SINT = 35,
963 VK_FORMAT_B8G8R8_SRGB = 36,
964 VK_FORMAT_R8G8B8A8_UNORM = 37,
965 VK_FORMAT_R8G8B8A8_SNORM = 38,
966 VK_FORMAT_R8G8B8A8_USCALED = 39,
967 VK_FORMAT_R8G8B8A8_SSCALED = 40,
968 VK_FORMAT_R8G8B8A8_UINT = 41,
969 VK_FORMAT_R8G8B8A8_SINT = 42,
970 VK_FORMAT_R8G8B8A8_SRGB = 43,
971 VK_FORMAT_B8G8R8A8_UNORM = 44,
972 VK_FORMAT_B8G8R8A8_SNORM = 45,
973 VK_FORMAT_B8G8R8A8_USCALED = 46,
974 VK_FORMAT_B8G8R8A8_SSCALED = 47,
975 VK_FORMAT_B8G8R8A8_UINT = 48,
976 VK_FORMAT_B8G8R8A8_SINT = 49,
977 VK_FORMAT_B8G8R8A8_SRGB = 50,
978 VK_FORMAT_A8B8G8R8_UNORM_PACK32 = 51,
979 VK_FORMAT_A8B8G8R8_SNORM_PACK32 = 52,
980 VK_FORMAT_A8B8G8R8_USCALED_PACK32 = 53,
981 VK_FORMAT_A8B8G8R8_SSCALED_PACK32 = 54,
982 VK_FORMAT_A8B8G8R8_UINT_PACK32 = 55,
983 VK_FORMAT_A8B8G8R8_SINT_PACK32 = 56,
984 VK_FORMAT_A8B8G8R8_SRGB_PACK32 = 57,
985 VK_FORMAT_A2R10G10B10_UNORM_PACK32 = 58,
986 VK_FORMAT_A2R10G10B10_SNORM_PACK32 = 59,
987 VK_FORMAT_A2R10G10B10_USCALED_PACK32 = 60,
988 VK_FORMAT_A2R10G10B10_SSCALED_PACK32 = 61,
989 VK_FORMAT_A2R10G10B10_UINT_PACK32 = 62,
990 VK_FORMAT_A2R10G10B10_SINT_PACK32 = 63,
991 VK_FORMAT_A2B10G10R10_UNORM_PACK32 = 64,
992 VK_FORMAT_A2B10G10R10_SNORM_PACK32 = 65,
993 VK_FORMAT_A2B10G10R10_USCALED_PACK32 = 66,
994 VK_FORMAT_A2B10G10R10_SSCALED_PACK32 = 67,
995 VK_FORMAT_A2B10G10R10_UINT_PACK32 = 68,
996 VK_FORMAT_A2B10G10R10_SINT_PACK32 = 69,
997 VK_FORMAT_R16_UNORM = 70,
998 VK_FORMAT_R16_SNORM = 71,
999 VK_FORMAT_R16_USCALED = 72,
1000 VK_FORMAT_R16_SSCALED = 73,
1001 VK_FORMAT_R16_UINT = 74,
1002 VK_FORMAT_R16_SINT = 75,
1003 VK_FORMAT_R16_SFLOAT = 76,
1004 VK_FORMAT_R16G16_UNORM = 77,
1005 VK_FORMAT_R16G16_SNORM = 78,
1006 VK_FORMAT_R16G16_USCALED = 79,
1007 VK_FORMAT_R16G16_SSCALED = 80,
1008 VK_FORMAT_R16G16_UINT = 81,
1009 VK_FORMAT_R16G16_SINT = 82,
1010 VK_FORMAT_R16G16_SFLOAT = 83,
1011 VK_FORMAT_R16G16B16_UNORM = 84,
1012 VK_FORMAT_R16G16B16_SNORM = 85,
1013 VK_FORMAT_R16G16B16_USCALED = 86,
1014 VK_FORMAT_R16G16B16_SSCALED = 87,
1015 VK_FORMAT_R16G16B16_UINT = 88,
1016 VK_FORMAT_R16G16B16_SINT = 89,
1017 VK_FORMAT_R16G16B16_SFLOAT = 90,
1018 VK_FORMAT_R16G16B16A16_UNORM = 91,
1019 VK_FORMAT_R16G16B16A16_SNORM = 92,
1020 VK_FORMAT_R16G16B16A16_USCALED = 93,
1021 VK_FORMAT_R16G16B16A16_SSCALED = 94,
1022 VK_FORMAT_R16G16B16A16_UINT = 95,
1023 VK_FORMAT_R16G16B16A16_SINT = 96,
1024 VK_FORMAT_R16G16B16A16_SFLOAT = 97,
1025 VK_FORMAT_R32_UINT = 98,
1026 VK_FORMAT_R32_SINT = 99,
1027 VK_FORMAT_R32_SFLOAT = 100,
1028 VK_FORMAT_R32G32_UINT = 101,
1029 VK_FORMAT_R32G32_SINT = 102,
1030 VK_FORMAT_R32G32_SFLOAT = 103,
1031 VK_FORMAT_R32G32B32_UINT = 104,
1032 VK_FORMAT_R32G32B32_SINT = 105,
1033 VK_FORMAT_R32G32B32_SFLOAT = 106,
1034 VK_FORMAT_R32G32B32A32_UINT = 107,
1035 VK_FORMAT_R32G32B32A32_SINT = 108,
1036 VK_FORMAT_R32G32B32A32_SFLOAT = 109,
1037 VK_FORMAT_R64_UINT = 110,
1038 VK_FORMAT_R64_SINT = 111,
1039 VK_FORMAT_R64_SFLOAT = 112,
1040 VK_FORMAT_R64G64_UINT = 113,
1041 VK_FORMAT_R64G64_SINT = 114,
1042 VK_FORMAT_R64G64_SFLOAT = 115,
1043 VK_FORMAT_R64G64B64_UINT = 116,
1044 VK_FORMAT_R64G64B64_SINT = 117,
1045 VK_FORMAT_R64G64B64_SFLOAT = 118,
1046 VK_FORMAT_R64G64B64A64_UINT = 119,
1047 VK_FORMAT_R64G64B64A64_SINT = 120,
1048 VK_FORMAT_R64G64B64A64_SFLOAT = 121,
1049 VK_FORMAT_B10G11R11_UFLOAT_PACK32 = 122,
1050 VK_FORMAT_E5B9G9R9_UFLOAT_PACK32 = 123,
1051 VK_FORMAT_D16_UNORM = 124,
1052 VK_FORMAT_X8_D24_UNORM_PACK32 = 125,
1053 VK_FORMAT_D32_SFLOAT = 126,
1054 VK_FORMAT_S8_UINT = 127,
1055 VK_FORMAT_D16_UNORM_S8_UINT = 128,
1056 VK_FORMAT_D24_UNORM_S8_UINT = 129,
1057 VK_FORMAT_D32_SFLOAT_S8_UINT = 130,
1058 VK_FORMAT_BC1_RGB_UNORM_BLOCK = 131,
1059 VK_FORMAT_BC1_RGB_SRGB_BLOCK = 132,
1060 VK_FORMAT_BC1_RGBA_UNORM_BLOCK = 133,
1061 VK_FORMAT_BC1_RGBA_SRGB_BLOCK = 134,
1062 VK_FORMAT_BC2_UNORM_BLOCK = 135,
1063 VK_FORMAT_BC2_SRGB_BLOCK = 136,
1064 VK_FORMAT_BC3_UNORM_BLOCK = 137,
1065 VK_FORMAT_BC3_SRGB_BLOCK = 138,
1066 VK_FORMAT_BC4_UNORM_BLOCK = 139,
1067 VK_FORMAT_BC4_SNORM_BLOCK = 140,
1068 VK_FORMAT_BC5_UNORM_BLOCK = 141,
1069 VK_FORMAT_BC5_SNORM_BLOCK = 142,
1070 VK_FORMAT_BC6H_UFLOAT_BLOCK = 143,
1071 VK_FORMAT_BC6H_SFLOAT_BLOCK = 144,
1072 VK_FORMAT_BC7_UNORM_BLOCK = 145,
1073 VK_FORMAT_BC7_SRGB_BLOCK = 146,
1074 VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK = 147,
1075 VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK = 148,
1076 VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK = 149,
1077 VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK = 150,
1078 VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK = 151,
1079 VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK = 152,
1080 VK_FORMAT_EAC_R11_UNORM_BLOCK = 153,
1081 VK_FORMAT_EAC_R11_SNORM_BLOCK = 154,
1082 VK_FORMAT_EAC_R11G11_UNORM_BLOCK = 155,
1083 VK_FORMAT_EAC_R11G11_SNORM_BLOCK = 156,
1084 VK_FORMAT_ASTC_4x4_UNORM_BLOCK = 157,
1085 VK_FORMAT_ASTC_4x4_SRGB_BLOCK = 158,
1086 VK_FORMAT_ASTC_5x4_UNORM_BLOCK = 159,
1087 VK_FORMAT_ASTC_5x4_SRGB_BLOCK = 160,
1088 VK_FORMAT_ASTC_5x5_UNORM_BLOCK = 161,
1089 VK_FORMAT_ASTC_5x5_SRGB_BLOCK = 162,
1090 VK_FORMAT_ASTC_6x5_UNORM_BLOCK = 163,
1091 VK_FORMAT_ASTC_6x5_SRGB_BLOCK = 164,
1092 VK_FORMAT_ASTC_6x6_UNORM_BLOCK = 165,
1093 VK_FORMAT_ASTC_6x6_SRGB_BLOCK = 166,
1094 VK_FORMAT_ASTC_8x5_UNORM_BLOCK = 167,
1095 VK_FORMAT_ASTC_8x5_SRGB_BLOCK = 168,
1096 VK_FORMAT_ASTC_8x6_UNORM_BLOCK = 169,
1097 VK_FORMAT_ASTC_8x6_SRGB_BLOCK = 170,
1098 VK_FORMAT_ASTC_8x8_UNORM_BLOCK = 171,
1099 VK_FORMAT_ASTC_8x8_SRGB_BLOCK = 172,
1100 VK_FORMAT_ASTC_10x5_UNORM_BLOCK = 173,
1101 VK_FORMAT_ASTC_10x5_SRGB_BLOCK = 174,
1102 VK_FORMAT_ASTC_10x6_UNORM_BLOCK = 175,
1103 VK_FORMAT_ASTC_10x6_SRGB_BLOCK = 176,
1104 VK_FORMAT_ASTC_10x8_UNORM_BLOCK = 177,
1105 VK_FORMAT_ASTC_10x8_SRGB_BLOCK = 178,
1106 VK_FORMAT_ASTC_10x10_UNORM_BLOCK = 179,
1107 VK_FORMAT_ASTC_10x10_SRGB_BLOCK = 180,
1108 VK_FORMAT_ASTC_12x10_UNORM_BLOCK = 181,
1109 VK_FORMAT_ASTC_12x10_SRGB_BLOCK = 182,
1110 VK_FORMAT_ASTC_12x12_UNORM_BLOCK = 183,
1111 VK_FORMAT_ASTC_12x12_SRGB_BLOCK = 184,
Chris Forbes289cb792016-12-30 15:03:55 +13001112
Ian Elliott28bd2c32017-10-13 09:21:12 -06001113 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04001114 VK_FORMAT_G8B8G8R8_422_UNORM = 1000156000,
1115 VK_FORMAT_B8G8R8G8_422_UNORM = 1000156001,
1116 VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM = 1000156002,
1117 VK_FORMAT_G8_B8R8_2PLANE_420_UNORM = 1000156003,
1118 VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM = 1000156004,
1119 VK_FORMAT_G8_B8R8_2PLANE_422_UNORM = 1000156005,
1120 VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM = 1000156006,
1121 VK_FORMAT_R10X6_UNORM_PACK16 = 1000156007,
1122 VK_FORMAT_R10X6G10X6_UNORM_2PACK16 = 1000156008,
1123 VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16 = 1000156009,
1124 VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16 = 1000156010,
1125 VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16 = 1000156011,
1126 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16 = 1000156012,
1127 VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16 = 1000156013,
1128 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16 = 1000156014,
1129 VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16 = 1000156015,
1130 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16 = 1000156016,
1131 VK_FORMAT_R12X4_UNORM_PACK16 = 1000156017,
1132 VK_FORMAT_R12X4G12X4_UNORM_2PACK16 = 1000156018,
1133 VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16 = 1000156019,
1134 VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16 = 1000156020,
1135 VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16 = 1000156021,
1136 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16 = 1000156022,
1137 VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16 = 1000156023,
1138 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16 = 1000156024,
1139 VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16 = 1000156025,
1140 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16 = 1000156026,
1141 VK_FORMAT_G16B16G16R16_422_UNORM = 1000156027,
1142 VK_FORMAT_B16G16R16G16_422_UNORM = 1000156028,
1143 VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM = 1000156029,
1144 VK_FORMAT_G16_B16R16_2PLANE_420_UNORM = 1000156030,
1145 VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM = 1000156031,
1146 VK_FORMAT_G16_B16R16_2PLANE_422_UNORM = 1000156032,
1147 VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM = 1000156033,
1148
Jesse Hallad250842017-03-10 18:35:38 -08001149 //@extension("VK_IMG_format_pvrtc") // 28
Jesse Halleb02c472017-02-24 15:13:45 -08001150 VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG = 1000054000,
1151 VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG = 1000054001,
1152 VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG = 1000054002,
1153 VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG = 1000054003,
1154 VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG = 1000054004,
1155 VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG = 1000054005,
1156 VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG = 1000054006,
1157 VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG = 1000054007,
Jesse Hall076f95d2017-09-20 11:34:47 -07001158
1159 //@extension("VK_KHR_sampler_ycbcr_conversion") // 157
1160 VK_FORMAT_G8B8G8R8_422_UNORM_KHR = 1000156000,
1161 VK_FORMAT_B8G8R8G8_422_UNORM_KHR = 1000156001,
1162 VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM_KHR = 1000156002,
1163 VK_FORMAT_G8_B8R8_2PLANE_420_UNORM_KHR = 1000156003,
1164 VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM_KHR = 1000156004,
1165 VK_FORMAT_G8_B8R8_2PLANE_422_UNORM_KHR = 1000156005,
1166 VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM_KHR = 1000156006,
1167 VK_FORMAT_R10X6_UNORM_PACK16_KHR = 1000156007,
1168 VK_FORMAT_R10X6G10X6_UNORM_2PACK16_KHR = 1000156008,
1169 VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16_KHR = 1000156009,
1170 VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16_KHR = 1000156010,
1171 VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16_KHR = 1000156011,
1172 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16_KHR = 1000156012,
1173 VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16_KHR = 1000156013,
1174 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16_KHR = 1000156014,
1175 VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16_KHR = 1000156015,
1176 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16_KHR = 1000156016,
1177 VK_FORMAT_R12X4_UNORM_PACK16_KHR = 1000156017,
1178 VK_FORMAT_R12X4G12X4_UNORM_2PACK16_KHR = 1000156018,
1179 VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16_KHR = 1000156019,
1180 VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16_KHR = 1000156020,
1181 VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16_KHR = 1000156021,
1182 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16_KHR = 1000156022,
1183 VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16_KHR = 1000156023,
1184 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16_KHR = 1000156024,
1185 VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16_KHR = 1000156025,
1186 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16_KHR = 1000156026,
1187 VK_FORMAT_G16B16G16R16_422_UNORM_KHR = 1000156027,
1188 VK_FORMAT_B16G16R16G16_422_UNORM_KHR = 1000156028,
1189 VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM_KHR = 1000156029,
1190 VK_FORMAT_G16_B16R16_2PLANE_420_UNORM_KHR = 1000156030,
1191 VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM_KHR = 1000156031,
1192 VK_FORMAT_G16_B16R16_2PLANE_422_UNORM_KHR = 1000156032,
1193 VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM_KHR = 1000156033,
Jesse Halld27f6aa2015-08-15 17:58:48 -07001194}
1195
Jesse Halld27f6aa2015-08-15 17:58:48 -07001196/// Structure type enumerant
1197enum VkStructureType {
1198 VK_STRUCTURE_TYPE_APPLICATION_INFO = 0,
Jesse Hallc7467b72015-11-29 21:05:26 -08001199 VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO = 1,
1200 VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO = 2,
1201 VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO = 3,
1202 VK_STRUCTURE_TYPE_SUBMIT_INFO = 4,
Jesse Hallf4ab2b12015-11-30 16:04:55 -08001203 VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO = 5,
Jesse Hallc7467b72015-11-29 21:05:26 -08001204 VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE = 6,
1205 VK_STRUCTURE_TYPE_BIND_SPARSE_INFO = 7,
1206 VK_STRUCTURE_TYPE_FENCE_CREATE_INFO = 8,
1207 VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO = 9,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07001208 VK_STRUCTURE_TYPE_EVENT_CREATE_INFO = 10,
Jesse Hallc7467b72015-11-29 21:05:26 -08001209 VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO = 11,
1210 VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO = 12,
1211 VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO = 13,
1212 VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO = 14,
1213 VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO = 15,
1214 VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO = 16,
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08001215 VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO = 17,
1216 VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO = 18,
1217 VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO = 19,
1218 VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO = 20,
1219 VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO = 21,
1220 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO = 22,
1221 VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO = 23,
1222 VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO = 24,
1223 VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO = 25,
1224 VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO = 26,
1225 VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO = 27,
1226 VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO = 28,
1227 VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO = 29,
1228 VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO = 30,
1229 VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO = 31,
1230 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO = 32,
1231 VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO = 33,
Jesse Hallf4ab2b12015-11-30 16:04:55 -08001232 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO = 34,
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08001233 VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET = 35,
1234 VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET = 36,
1235 VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO = 37,
1236 VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO = 38,
1237 VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO = 39,
Jesse Hallf4ab2b12015-11-30 16:04:55 -08001238 VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO = 40,
Jesse Hall3dd678a2016-01-08 21:52:01 -08001239 VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO = 41,
1240 VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO = 42,
1241 VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO = 43,
1242 VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER = 44,
1243 VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER = 45,
1244 VK_STRUCTURE_TYPE_MEMORY_BARRIER = 46,
1245 VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO = 47,
1246 VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO = 48,
Jesse Hall1356b0d2015-11-23 17:24:58 -08001247
Ian Elliott28bd2c32017-10-13 09:21:12 -06001248 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04001249 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES = 1000094000,
1250 VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO = 1000157000,
1251 VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO = 1000157001,
1252 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES = 1000083000,
1253 VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS = 1000127000,
1254 VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO = 1000127001,
1255 VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO = 1000060000,
1256 VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO = 1000060003,
1257 VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO = 1000060004,
1258 VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO = 1000060005,
1259 VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO = 1000060006,
1260 VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO = 1000060013,
1261 VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO = 1000060014,
1262 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES = 1000070000,
1263 VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO = 1000070001,
1264 VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2 = 1000146000,
1265 VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2 = 1000146001,
1266 VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2 = 1000146002,
1267 VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2 = 1000146003,
1268 VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2 = 1000146004,
1269 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2 = 1000059000,
1270 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2 = 1000059001,
1271 VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2 = 1000059002,
1272 VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2 = 1000059003,
1273 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2 = 1000059004,
1274 VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2 = 1000059005,
1275 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2 = 1000059006,
1276 VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2 = 1000059007,
1277 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2 = 1000059008,
1278 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES = 1000117000,
1279 VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO = 1000117001,
1280 VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO = 1000117002,
1281 VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO = 1000117003,
1282 VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO = 1000053000,
1283 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES = 1000053001,
1284 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES = 1000053002,
1285 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES = 1000120000,
1286 VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO = 1000145000,
1287 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES = 1000145001,
1288 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES = 1000145002,
1289 VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2 = 1000145003,
1290 VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO = 1000156000,
1291 VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO = 1000156001,
1292 VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO = 1000156002,
1293 VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO = 1000156003,
1294 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES = 1000156004,
1295 VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES = 1000156005,
1296 VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO = 1000085000,
1297 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO = 1000071000,
1298 VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES = 1000071001,
1299 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO = 1000071002,
1300 VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES = 1000071003,
1301 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES = 1000071004,
1302 VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO = 1000072000,
1303 VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO = 1000072001,
1304 VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO = 1000072002,
1305 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO = 1000112000,
1306 VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES = 1000112001,
1307 VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO = 1000113000,
1308 VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO = 1000077000,
1309 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO = 1000076000,
1310 VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES = 1000076001,
1311 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES = 1000168000,
1312 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT = 1000168001,
1313 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES = 1000063000,
1314 VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR = 1000060007,
1315
Jesse Hallad250842017-03-10 18:35:38 -08001316 //@extension("VK_KHR_swapchain") // 2
Jesse Hallbd888842015-11-30 21:44:14 -08001317 VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR = 1000001000,
1318 VK_STRUCTURE_TYPE_PRESENT_INFO_KHR = 1000001001,
Daniel Koch09f7bf92017-10-05 00:26:58 -04001319 // added as interaction from VK_KHR_device_group / VK 1.1
1320 VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR = 1000060008,
1321 VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR = 1000060009,
1322 VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR = 1000060010,
1323 VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR = 1000060011,
1324 VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR = 1000060012,
Jesse Hall1356b0d2015-11-23 17:24:58 -08001325
Jesse Hallad250842017-03-10 18:35:38 -08001326 //@extension("VK_KHR_display") // 3
Jesse Hallbd888842015-11-30 21:44:14 -08001327 VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR = 1000002000,
1328 VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR = 1000002001,
Jesse Hall1356b0d2015-11-23 17:24:58 -08001329
Jesse Hallad250842017-03-10 18:35:38 -08001330 //@extension("VK_KHR_display_swapchain") // 4
Jesse Hallbd888842015-11-30 21:44:14 -08001331 VK_STRUCTURE_TYPE_DISPLAY_DISPLAY_PRESENT_INFO_KHR = 1000003000,
Jesse Hallf9fa9a52016-01-08 16:08:51 -08001332
Jesse Hallad250842017-03-10 18:35:38 -08001333 //@extension("VK_KHR_xlib_surface") // 5
Jesse Hallf9fa9a52016-01-08 16:08:51 -08001334 VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR = 1000004000,
1335
Jesse Hallad250842017-03-10 18:35:38 -08001336 //@extension("VK_KHR_xcb_surface") // 6
Jesse Hallf9fa9a52016-01-08 16:08:51 -08001337 VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR = 1000005000,
1338
Jesse Hallad250842017-03-10 18:35:38 -08001339 //@extension("VK_KHR_wayland_surface") // 7
Jesse Hallf9fa9a52016-01-08 16:08:51 -08001340 VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR = 1000006000,
1341
Jesse Hallad250842017-03-10 18:35:38 -08001342 //@extension("VK_KHR_mir_surface") // 8
Jesse Hallf9fa9a52016-01-08 16:08:51 -08001343 VK_STRUCTURE_TYPE_MIR_SURFACE_CREATE_INFO_KHR = 1000007000,
1344
Jesse Hallad250842017-03-10 18:35:38 -08001345 //@extension("VK_KHR_android_surface") // 9
Jesse Hallf9fa9a52016-01-08 16:08:51 -08001346 VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR = 1000008000,
1347
Jesse Hallad250842017-03-10 18:35:38 -08001348 //@extension("VK_KHR_win32_surface") // 10
Jesse Hallf9fa9a52016-01-08 16:08:51 -08001349 VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR = 1000009000,
Jesse Hall543a7ff2016-01-08 16:38:30 -08001350
Jesse Hallad250842017-03-10 18:35:38 -08001351 //@extension("VK_ANDROID_native_buffer") // 11
Chia-I Wub262ddc2016-03-22 07:38:20 +08001352 VK_STRUCTURE_TYPE_NATIVE_BUFFER_ANDROID = 1000010000,
Chris Forbes8e4438b2016-12-07 16:26:49 +13001353 VK_STRUCTURE_TYPE_SWAPCHAIN_IMAGE_CREATE_INFO_ANDROID = 1000010001,
Chris Forbes1d4e5542017-02-15 19:38:50 +13001354 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENTATION_PROPERTIES_ANDROID = 1000010002,
Chia-I Wub262ddc2016-03-22 07:38:20 +08001355
Jesse Hallad250842017-03-10 18:35:38 -08001356 //@extension("VK_EXT_debug_report") // 12
Jesse Hall26763382016-05-20 07:13:52 -07001357 VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT = 1000011000,
1358
Jesse Hallad250842017-03-10 18:35:38 -08001359 //@extension("VK_AMD_rasterization_order") // 19
Jesse Hall26763382016-05-20 07:13:52 -07001360 VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD = 1000018000,
1361
Jesse Hallad250842017-03-10 18:35:38 -08001362 //@extension("VK_EXT_debug_marker") // 23
Jesse Hall26763382016-05-20 07:13:52 -07001363 VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT = 1000022000,
Jesse Hall26763382016-05-20 07:13:52 -07001364 VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT = 1000022001,
Jesse Hall26763382016-05-20 07:13:52 -07001365 VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT = 1000022002,
Jesse Hall56d386a2016-07-26 15:20:40 -07001366
Jesse Hallad250842017-03-10 18:35:38 -08001367 //@extension("VK_NV_dedicated_allocation") // 27
Jesse Hall56d386a2016-07-26 15:20:40 -07001368 VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV = 1000026000,
Jesse Hall56d386a2016-07-26 15:20:40 -07001369 VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV = 1000026001,
Jesse Hall56d386a2016-07-26 15:20:40 -07001370 VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV = 1000026002,
Chris Forbes289cb792016-12-30 15:03:55 +13001371
Jesse Hall7ba0ac72017-07-07 17:13:23 -07001372 //@extension("VK_AMD_texture_gather_bias_lod") // 42
1373 VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD = 1000041000,
1374
Daniel Koch09f7bf92017-10-05 00:26:58 -04001375 //@extension("VK_KHR_multiview") // 54
1376 VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO_KHR = 1000053000,
1377 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES_KHR = 1000053001,
1378 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES_KHR = 1000053002,
Jesse Hallad250842017-03-10 18:35:38 -08001379
1380 //@extension("VK_NV_external_memory") // 57
Jesse Halleb02c472017-02-24 15:13:45 -08001381 VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV = 1000056000,
1382 VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV = 1000056001,
Chris Forbes289cb792016-12-30 15:03:55 +13001383
Jesse Hallad250842017-03-10 18:35:38 -08001384 //@extension("VK_NV_external_memory_win32") // 58
Jesse Halleb02c472017-02-24 15:13:45 -08001385 VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV = 1000057000,
1386 VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV = 1000057001,
Chris Forbes289cb792016-12-30 15:03:55 +13001387
Jesse Hallad250842017-03-10 18:35:38 -08001388 //@extension("VK_NV_win32_keyed_mutex") // 59
Chris Forbes289cb792016-12-30 15:03:55 +13001389 VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV = 1000058000,
1390
Jesse Hallad250842017-03-10 18:35:38 -08001391 //@extension("VK_KHR_get_physical_device_properties2") // 60
Jesse Hall889cd9a2017-02-25 22:12:23 -08001392 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2_KHR = 1000059000,
1393 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2_KHR = 1000059001,
1394 VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2_KHR = 1000059002,
1395 VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2_KHR = 1000059003,
1396 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2_KHR = 1000059004,
1397 VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2_KHR = 1000059005,
1398 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2_KHR = 1000059006,
1399 VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2_KHR = 1000059007,
Chris Forbes1194ede2016-12-30 16:29:25 +13001400 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2_KHR = 1000059008,
1401
Daniel Koch09f7bf92017-10-05 00:26:58 -04001402 //@extension("VK_KHR_device_group") // 61
1403 VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO_KHR = 1000060000,
1404 VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO_KHR = 1000060003,
1405 VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO_KHR = 1000060004,
1406 VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO_KHR = 1000060005,
1407 VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO_KHR = 1000060006,
1408 VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR = 1000060007,
1409 // tokens 08-12 are listed with VK_KHR_swapchain
1410 VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO_KHR = 1000060013,
1411 VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO_KHR = 1000060014,
Jesse Hallad250842017-03-10 18:35:38 -08001412
1413 //@extension("VK_EXT_validation_flags") // 62
Jesse Halleb02c472017-02-24 15:13:45 -08001414 VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT = 1000061000,
Chris Forbes289cb792016-12-30 15:03:55 +13001415
Jesse Hallad250842017-03-10 18:35:38 -08001416 //@extension("VK_NN_vi_surface") // 63
Jesse Hall77ad05b2017-03-10 22:02:20 -08001417 VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN = 1000062000,
1418
Daniel Koch09f7bf92017-10-05 00:26:58 -04001419 //@extension("VK_KHR_device_group_creation") // 71
1420 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES_KHR = 1000070000,
1421 VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO_KHR = 1000070001,
Jesse Hallad250842017-03-10 18:35:38 -08001422
Jesse Hall9492f992017-08-28 12:10:06 -07001423 //@extension("VK_KHR_external_memory_capabilities") // 72
1424 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO_KHR = 1000071000,
1425 VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES_KHR = 1000071001,
1426 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO_KHR = 1000071002,
1427 VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES_KHR = 1000071003,
1428 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES_KHR = 1000071004,
Jesse Hallad250842017-03-10 18:35:38 -08001429
Jesse Hall9492f992017-08-28 12:10:06 -07001430 //@extension("VK_KHR_external_memory") // 73
1431 VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO_KHR = 1000072000,
1432 VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_KHR = 1000072001,
1433 VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_KHR = 1000072002,
Jesse Hallad250842017-03-10 18:35:38 -08001434
Jesse Hall9492f992017-08-28 12:10:06 -07001435 //@extension("VK_KHR_external_memory_win32") // 74
1436 VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR = 1000073000,
1437 VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR = 1000073001,
1438 VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR = 1000073002,
Jesse Hallad250842017-03-10 18:35:38 -08001439
Jesse Hall9492f992017-08-28 12:10:06 -07001440 //@extension("VK_KHR_external_memory_fd") // 75
1441 VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR = 1000074000,
1442 VK_STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR = 1000074001,
Jesse Hallad250842017-03-10 18:35:38 -08001443
Jesse Hall9492f992017-08-28 12:10:06 -07001444 //@extension("VK_KHR_win32_keyed_mutex") // 76
1445 VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR = 1000075000,
Jesse Hallad250842017-03-10 18:35:38 -08001446
Jesse Hall9492f992017-08-28 12:10:06 -07001447 //@extension("VK_KHR_external_semaphore_capabilities") // 77
1448 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO_KHR = 1000076000,
1449 VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES_KHR = 1000076001,
Jesse Hallad250842017-03-10 18:35:38 -08001450
Jesse Hall9492f992017-08-28 12:10:06 -07001451 //@extension("VK_KHR_external_semaphore") // 78
1452 VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO_KHR = 1000077000,
Jesse Hallad250842017-03-10 18:35:38 -08001453
Jesse Hall9492f992017-08-28 12:10:06 -07001454 //@extension("VK_KHR_external_semaphore_win32") // 79
1455 VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR = 1000078000,
1456 VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR = 1000078001,
1457 VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR = 1000078002,
Jesse Hallad250842017-03-10 18:35:38 -08001458
Jesse Hall9492f992017-08-28 12:10:06 -07001459 //@extension("VK_KHR_external_semaphore_fd") // 80
1460 VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR = 1000079000,
1461 VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR = 1000079001,
Jesse Hallad250842017-03-10 18:35:38 -08001462
1463 //@extension("VK_KHR_push_descriptor") // 81
1464 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR = 1000080000,
1465
Jesse Hall9492f992017-08-28 12:10:06 -07001466 //@extension("VK_KHR_16bit_storage") // 84
1467 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES_KHR = 1000083000,
1468
Jesse Hallad250842017-03-10 18:35:38 -08001469 //@extension("VK_KHR_incremental_present") // 85
Jesse Hall889cd9a2017-02-25 22:12:23 -08001470 VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR = 1000084000,
Chris Forbes289cb792016-12-30 15:03:55 +13001471
Jesse Halla13a3cf2018-07-09 15:51:52 -07001472 //@extension("VK_EXT_conditional_rendering") // 82
1473 VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT = 1000081000,
1474 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT = 1000081001,
1475 VK_STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT = 1000081002,
1476
Jesse Hallad250842017-03-10 18:35:38 -08001477 //@extension("VK_KHR_descriptor_update_template") // 86
1478 VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO_KHR = 1000085000,
1479
1480 //@extension("VK_NVX_device_generated_commands") // 87
Jesse Halleb02c472017-02-24 15:13:45 -08001481 VK_STRUCTURE_TYPE_OBJECT_TABLE_CREATE_INFO_NVX = 1000086000,
1482 VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NVX = 1000086001,
1483 VK_STRUCTURE_TYPE_CMD_PROCESS_COMMANDS_INFO_NVX = 1000086002,
1484 VK_STRUCTURE_TYPE_CMD_RESERVE_SPACE_FOR_COMMANDS_INFO_NVX = 1000086003,
1485 VK_STRUCTURE_TYPE_DEVICE_GENERATED_COMMANDS_LIMITS_NVX = 1000086004,
1486 VK_STRUCTURE_TYPE_DEVICE_GENERATED_COMMANDS_FEATURES_NVX = 1000086005,
Jesse Hall77ad05b2017-03-10 22:02:20 -08001487
Jesse Hallad250842017-03-10 18:35:38 -08001488 //@extension("VK_NV_clip_space_w_scaling") // 88
1489 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV = 1000087000,
1490
1491 //@extension("VK_EXT_display_surface_counter") // 91
Jesse Hall77726222017-09-19 14:49:27 -05001492 VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT = 1000090000,
Jesse Hall77ad05b2017-03-10 22:02:20 -08001493
Jesse Hallad250842017-03-10 18:35:38 -08001494 //@extension("VK_EXT_display_control") // 92
Jesse Hall77ad05b2017-03-10 22:02:20 -08001495 VK_STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT = 1000091000,
1496 VK_STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT = 1000091001,
1497 VK_STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT = 1000091002,
1498 VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT = 1000091003,
Jesse Hallad250842017-03-10 18:35:38 -08001499
1500 //@extension("VK_GOOGLE_display_timing") // 93
1501 VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE = 1000092000,
1502
1503 //@extension("VK_NVX_multiview_per_view_attributes") // 98
1504 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX = 1000097000,
1505
1506 //@extension("VK_NV_viewport_swizzle") // 99
1507 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV = 1000098000,
1508
1509 //@extension("VK_EXT_discard_rectangles") // 100
1510 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT = 1000099000,
1511 VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT = 1000099001,
1512
Jesse Hall8c954d32018-01-17 22:06:20 -08001513 //@extension("VK_EXT_conservative_rasterization") // 102
1514 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT = 1000101000,
1515 VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT = 1000101001,
1516
Jesse Halla13a3cf2018-07-09 15:51:52 -07001517 //@extension("VK_KHR_create_renderpass2") // 110
1518 VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2_KHR = 1000109000,
1519 VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2_KHR = 1000109001,
1520 VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2_KHR = 1000109002,
1521 VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2_KHR = 1000109003,
1522 VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2_KHR = 1000109004,
1523 VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO_KHR = 1000109005,
1524 VK_STRUCTURE_TYPE_SUBPASS_END_INFO_KHR = 1000109006,
1525
Jesse Hallfdc8ab32017-03-10 21:01:57 -08001526 //@extension("VK_EXT_hdr_metadata") // 106
1527 VK_STRUCTURE_TYPE_HDR_METADATA_EXT = 1000105000,
1528
Jesse Hall05556b12017-05-18 17:40:25 -07001529 //@extension("VK_KHR_shared_presentable_image") // 112
Chris Forbese2d3ee12017-03-16 16:10:15 +13001530 VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR = 1000111000,
1531
Jesse Hall9492f992017-08-28 12:10:06 -07001532 //@extension("VK_KHR_external_fence_capabilities") // 113
1533 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO_KHR = 1000112000,
1534 VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES_KHR = 1000112001,
1535
1536 //@extension("VK_KHR_external_fence") // 114
1537 VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO_KHR = 1000113000,
1538
1539 //@extension("VK_KHR_external_fence_win32") // 115
1540 VK_STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR = 1000114000,
1541 VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR = 1000114001,
1542 VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR = 1000114002,
1543
1544 //@extension("VK_KHR_external_fence_fd") // 117
1545 VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR = 1000115000,
1546 VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR = 1000115001,
1547
Jesse Hall076f95d2017-09-20 11:34:47 -07001548 //@extension("VK_KHR_maintenance2") // 118
1549 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES_KHR = 1000117000,
1550 VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO_KHR = 1000117001,
1551 VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO_KHR = 1000117002,
1552 VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO_KHR = 1000117003,
1553
Jesse Hall05556b12017-05-18 17:40:25 -07001554 //@extension("VK_KHR_get_surface_capabilities2") // 120
Chris Forbese2d3ee12017-03-16 16:10:15 +13001555 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR = 1000119000,
1556 VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR = 1000119001,
1557 VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR = 1000119002,
1558
Jesse Hall9492f992017-08-28 12:10:06 -07001559 //@extension("VK_KHR_variable_pointers") // 121
1560 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES_KHR = 1000120000,
1561
Jesse Hall54f8d132018-04-18 08:16:59 -07001562 //@extension("VK_KHR_display_properties2") // 122
1563 VK_STRUCTURE_TYPE_DISPLAY_PROPERTIES_2_KHR = 1000121000,
1564 VK_STRUCTURE_TYPE_DISPLAY_PLANE_PROPERTIES_2_KHR = 1000121001,
1565 VK_STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR = 1000121002,
1566 VK_STRUCTURE_TYPE_DISPLAY_PLANE_INFO_2_KHR = 1000121003,
1567 VK_STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR = 1000121004,
1568
Jesse Hallad250842017-03-10 18:35:38 -08001569 //@extension("VK_MVK_ios_surface") // 123
1570 VK_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK = 1000122000,
1571
1572 //@extension("VK_MVK_macos_surface") // 124
1573 VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK = 1000123000,
Jesse Hall7ba0ac72017-07-07 17:13:23 -07001574
Jesse Hall9492f992017-08-28 12:10:06 -07001575 //@extension("VK_KHR_dedicated_allocation") // 128
1576 VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS_KHR = 1000127000,
1577 VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO_KHR = 1000127001,
1578
Jesse Hall8c954d32018-01-17 22:06:20 -08001579 //@extension("VK_EXT_debug_utils") // 129
1580 VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT = 1000128000,
1581 VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT = 1000128001,
1582 VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT = 1000128002,
1583 VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT = 1000128003,
1584 VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT = 1000128004,
1585
Jesse Hall36215a92018-01-18 15:04:37 -08001586 //@extension("VK_ANDROID_external_memory_android_hardware_buffer") // 130
1587 VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID = 1000129000,
1588 VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID = 1000129001,
1589 VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID = 1000129002,
1590 VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID = 1000129003,
1591 VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID = 1000129004,
1592 VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID = 1000129005,
1593
Jesse Hall7ba0ac72017-07-07 17:13:23 -07001594 //@extension("VK_EXT_sampler_filter_minmax") // 131
1595 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES_EXT = 1000130000,
1596 VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO_EXT = 1000130001,
1597
Jesse Hall77726222017-09-19 14:49:27 -05001598 //@extension("VK_EXT_sample_locations") // 144
1599 VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT = 1000143000,
1600 VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT = 1000143001,
1601 VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT = 1000143002,
1602 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT = 1000143003,
1603 VK_STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT = 1000143004,
1604
Jesse Hall9492f992017-08-28 12:10:06 -07001605 //@extension("VK_KHR_get_memory_requirements2") // 147
1606 VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2_KHR = 1000146000,
1607 VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2_KHR = 1000146001,
1608 VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2_KHR = 1000146002,
1609 VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2_KHR = 1000146003,
1610 VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2_KHR = 1000146004,
1611
Jesse Hall076f95d2017-09-20 11:34:47 -07001612 //@extension("VK_KHR_image_format_list") // 148
1613 VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO_KHR = 1000147000,
1614
Jesse Hall7ba0ac72017-07-07 17:13:23 -07001615 //@extension("VK_EXT_blend_operation_advanced") // 149
1616 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT = 1000148000,
1617 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT = 1000148001,
1618 VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT = 1000148002,
1619
1620 //@extension("VK_NV_fragment_coverage_to_color") // 150
1621 VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV = 1000149000,
1622
Jesse Hall77726222017-09-19 14:49:27 -05001623 //@extension("VK_NV_framebuffer_mixed_samples") // 153
Jesse Hall7ba0ac72017-07-07 17:13:23 -07001624 VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV = 1000152000,
Jesse Hall77726222017-09-19 14:49:27 -05001625
Jesse Hall076f95d2017-09-20 11:34:47 -07001626 //@extension("VK_KHR_sampler_ycbcr_conversion") // 157
1627 VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO_KHR = 1000156000,
1628 VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO_KHR = 1000156001,
1629 VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO_KHR = 1000156002,
1630 VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO_KHR = 1000156003,
1631 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES_KHR = 1000156004,
1632 VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES_KHR = 1000156005,
1633
1634 //@extension("VK_KHR_bind_memory2") // 158
1635 VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO_KHR = 1000157000,
1636 VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO_KHR = 1000157001,
1637
Jesse Hall77726222017-09-19 14:49:27 -05001638 //@extension("VK_EXT_validation_cache") // 161
1639 VK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT = 1000160000,
1640 VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT = 1000160001,
Daniel Koch09f7bf92017-10-05 00:26:58 -04001641
Jesse Hall72e6a132018-04-06 13:00:44 -07001642 //@extension("VK_EXT_descriptor_indexing") // 162
1643 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO_EXT = 1000161000,
1644 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES_EXT = 1000161001,
1645 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES_EXT = 1000161002,
1646 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO_EXT = 1000161003,
1647 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT_EXT = 1000161004,
1648
Daniel Koch09f7bf92017-10-05 00:26:58 -04001649 //@extension("VK_KHR_maintenance3") // 169
1650 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES_KHR = 1000168000,
1651 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT_KHR = 1000168001,
Jesse Hall8c954d32018-01-17 22:06:20 -08001652
1653 //@extension("VK_EXT_global_priority") // 175
1654 VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT = 1000174000,
1655
Jesse Halla13a3cf2018-07-09 15:51:52 -07001656 //@extension("VK_KHR_8bit_storage") // 178
1657 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES_KHR = 1000177000,
1658
Jesse Hall8c954d32018-01-17 22:06:20 -08001659 //@extension("VK_EXT_external_memory_host") // 179
1660 VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT = 1000178000,
1661 VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT = 1000178001,
1662 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT = 1000178002,
Jesse Hall72e6a132018-04-06 13:00:44 -07001663
1664 //@extension("VK_AMD_shader_core_properties") // 186
1665 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD = 1000185000,
1666
1667 //@extension("VK_EXT_vertex_attribute_divisor") // 191
1668 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT = 1000190000,
1669 VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT = 1000190001,
Jesse Hall115df0c2018-07-30 12:00:59 -07001670
1671 //@extension("VK_NV_device_diagnostic_checkpoints") // 207
1672 VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NV = 1000206000,
1673 VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV = 1000206001,
Jesse Halld27f6aa2015-08-15 17:58:48 -07001674}
1675
Jesse Hall65ab5522015-11-30 00:07:16 -08001676enum VkSubpassContents {
1677 VK_SUBPASS_CONTENTS_INLINE = 0x00000000,
1678 VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS = 0x00000001,
Jesse Halld27f6aa2015-08-15 17:58:48 -07001679}
1680
Jesse Hall543a7ff2016-01-08 16:38:30 -08001681enum VkPipelineCacheHeaderVersion {
1682 VK_PIPELINE_CACHE_HEADER_VERSION_ONE = 1,
1683}
1684
Jesse Hallbd888842015-11-30 21:44:14 -08001685@lastUnused(-11)
Jesse Halld27f6aa2015-08-15 17:58:48 -07001686/// Error and return codes
1687enum VkResult {
1688 // Return codes for successful operation execution (positive values)
Jesse Hallbd888842015-11-30 21:44:14 -08001689 VK_SUCCESS = 0,
1690 VK_NOT_READY = 1,
1691 VK_TIMEOUT = 2,
1692 VK_EVENT_SET = 3,
1693 VK_EVENT_RESET = 4,
1694 VK_INCOMPLETE = 5,
Jesse Halld27f6aa2015-08-15 17:58:48 -07001695
Jesse Hallad250842017-03-10 18:35:38 -08001696 //@extension("VK_KHR_swapchain") // 2
Jesse Hallbd888842015-11-30 21:44:14 -08001697 VK_SUBOPTIMAL_KHR = 1000001003,
Jesse Hall1356b0d2015-11-23 17:24:58 -08001698
Jesse Halld27f6aa2015-08-15 17:58:48 -07001699 // Error codes (negative values)
Jesse Hallbd888842015-11-30 21:44:14 -08001700 VK_ERROR_OUT_OF_HOST_MEMORY = 0xFFFFFFFF, // -1
1701 VK_ERROR_OUT_OF_DEVICE_MEMORY = 0xFFFFFFFE, // -2
1702 VK_ERROR_INITIALIZATION_FAILED = 0xFFFFFFFD, // -3
1703 VK_ERROR_DEVICE_LOST = 0xFFFFFFFC, // -4
1704 VK_ERROR_MEMORY_MAP_FAILED = 0xFFFFFFFB, // -5
1705 VK_ERROR_LAYER_NOT_PRESENT = 0xFFFFFFFA, // -6
1706 VK_ERROR_EXTENSION_NOT_PRESENT = 0xFFFFFFF9, // -7
1707 VK_ERROR_FEATURE_NOT_PRESENT = 0xFFFFFFF8, // -8
1708 VK_ERROR_INCOMPATIBLE_DRIVER = 0xFFFFFFF7, // -9
1709 VK_ERROR_TOO_MANY_OBJECTS = 0xFFFFFFF6, // -10
1710 VK_ERROR_FORMAT_NOT_SUPPORTED = 0xFFFFFFF5, // -11
Jesse Hall56d386a2016-07-26 15:20:40 -07001711 VK_ERROR_FRAGMENTED_POOL = 0xFFFFFFF4, // -12
Jesse Hall1356b0d2015-11-23 17:24:58 -08001712
Ian Elliott28bd2c32017-10-13 09:21:12 -06001713 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04001714 VK_ERROR_OUT_OF_POOL_MEMORY = 0xC4642878, // -1000069000
1715 VK_ERROR_INVALID_EXTERNAL_HANDLE = 0xC4641CBD, // -1000072003
1716
Jesse Hallad250842017-03-10 18:35:38 -08001717 //@extension("VK_KHR_surface") // 1
Jesse Hallbd888842015-11-30 21:44:14 -08001718 VK_ERROR_SURFACE_LOST_KHR = 0xC4653600, // -1000000000
Jesse Hallad250842017-03-10 18:35:38 -08001719 VK_ERROR_NATIVE_WINDOW_IN_USE_KHR = 0xC46535FF, // -1000000001
Jesse Halla6429252015-11-29 18:59:42 -08001720
Jesse Hallad250842017-03-10 18:35:38 -08001721 //@extension("VK_KHR_swapchain") // 2
Jesse Hallbd888842015-11-30 21:44:14 -08001722 VK_ERROR_OUT_OF_DATE_KHR = 0xC4653214, // -1000001004
Jesse Hall1356b0d2015-11-23 17:24:58 -08001723
Jesse Hallad250842017-03-10 18:35:38 -08001724 //@extension("VK_KHR_display_swapchain") // 4
Jesse Hallbd888842015-11-30 21:44:14 -08001725 VK_ERROR_INCOMPATIBLE_DISPLAY_KHR = 0xC4652A47, // -1000003001
Jesse Hall1356b0d2015-11-23 17:24:58 -08001726
Jesse Hallad250842017-03-10 18:35:38 -08001727 //@extension("VK_EXT_debug_report") // 12
Jesse Hall543a7ff2016-01-08 16:38:30 -08001728 VK_ERROR_VALIDATION_FAILED_EXT = 0xC4650B07, // -1000011001
Jesse Hall26763382016-05-20 07:13:52 -07001729
Jesse Hallad250842017-03-10 18:35:38 -08001730 //@extension("VK_NV_glsl_shader") // 13
Jesse Hall26763382016-05-20 07:13:52 -07001731 VK_ERROR_INVALID_SHADER_NV = 0xC4650720, // -1000012000
Jesse Hall77ad05b2017-03-10 22:02:20 -08001732
Jesse Hallad250842017-03-10 18:35:38 -08001733 //@extension("VK_KHR_maintenance1") // 70
Jesse Hall77ad05b2017-03-10 22:02:20 -08001734 VK_ERROR_OUT_OF_POOL_MEMORY_KHR = 0xC4642878, // -1000069000
Jesse Hallad250842017-03-10 18:35:38 -08001735
Jesse Hall8c954d32018-01-17 22:06:20 -08001736 //@extension("VK_EXT_global_priority") // 175
1737 VK_ERROR_NOT_PERMITTED_EXT = 0xC4628E4F, // -1000174001
1738
Jesse Hall9492f992017-08-28 12:10:06 -07001739 //@extension("VK_KHR_external_memory") // 73
1740 VK_ERROR_INVALID_EXTERNAL_HANDLE_KHR = 0xC4641CBD, // -1000072003
Jesse Hall72e6a132018-04-06 13:00:44 -07001741
1742 //@extension("VK_EXT_descriptor_indexing") // 162
1743 VK_ERROR_FRAGMENTATION_EXT = 0xc462c118, // -1000161000
Jesse Hall5ae3abb2015-10-08 14:00:22 -07001744}
1745
1746enum VkDynamicState {
1747 VK_DYNAMIC_STATE_VIEWPORT = 0x00000000,
1748 VK_DYNAMIC_STATE_SCISSOR = 0x00000001,
1749 VK_DYNAMIC_STATE_LINE_WIDTH = 0x00000002,
1750 VK_DYNAMIC_STATE_DEPTH_BIAS = 0x00000003,
1751 VK_DYNAMIC_STATE_BLEND_CONSTANTS = 0x00000004,
1752 VK_DYNAMIC_STATE_DEPTH_BOUNDS = 0x00000005,
1753 VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK = 0x00000006,
1754 VK_DYNAMIC_STATE_STENCIL_WRITE_MASK = 0x00000007,
1755 VK_DYNAMIC_STATE_STENCIL_REFERENCE = 0x00000008,
Jesse Hallad250842017-03-10 18:35:38 -08001756
1757 //@extension("VK_NV_clip_space_w_scaling") // 88
1758 VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV = 1000087000,
1759
1760 //@extension("VK_EXT_discard_rectangles") // 100
1761 VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT = 1000099000,
Jesse Hall77726222017-09-19 14:49:27 -05001762
1763 //@extension("VK_EXT_sample_locations") // 144
1764 VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT = 1000143000,
Jesse Halld27f6aa2015-08-15 17:58:48 -07001765}
1766
Jesse Hall05556b12017-05-18 17:40:25 -07001767enum VkObjectType {
1768 VK_OBJECT_TYPE_UNKNOWN = 0,
1769 VK_OBJECT_TYPE_INSTANCE = 1,
1770 VK_OBJECT_TYPE_PHYSICAL_DEVICE = 2,
1771 VK_OBJECT_TYPE_DEVICE = 3,
1772 VK_OBJECT_TYPE_QUEUE = 4,
1773 VK_OBJECT_TYPE_SEMAPHORE = 5,
1774 VK_OBJECT_TYPE_COMMAND_BUFFER = 6,
1775 VK_OBJECT_TYPE_FENCE = 7,
1776 VK_OBJECT_TYPE_DEVICE_MEMORY = 8,
1777 VK_OBJECT_TYPE_BUFFER = 9,
1778 VK_OBJECT_TYPE_IMAGE = 10,
1779 VK_OBJECT_TYPE_EVENT = 11,
1780 VK_OBJECT_TYPE_QUERY_POOL = 12,
1781 VK_OBJECT_TYPE_BUFFER_VIEW = 13,
1782 VK_OBJECT_TYPE_IMAGE_VIEW = 14,
1783 VK_OBJECT_TYPE_SHADER_MODULE = 15,
1784 VK_OBJECT_TYPE_PIPELINE_CACHE = 16,
1785 VK_OBJECT_TYPE_PIPELINE_LAYOUT = 17,
1786 VK_OBJECT_TYPE_RENDER_PASS = 18,
1787 VK_OBJECT_TYPE_PIPELINE = 19,
1788 VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT = 20,
1789 VK_OBJECT_TYPE_SAMPLER = 21,
1790 VK_OBJECT_TYPE_DESCRIPTOR_POOL = 22,
1791 VK_OBJECT_TYPE_DESCRIPTOR_SET = 23,
1792 VK_OBJECT_TYPE_FRAMEBUFFER = 24,
1793 VK_OBJECT_TYPE_COMMAND_POOL = 25,
1794
Ian Elliott28bd2c32017-10-13 09:21:12 -06001795 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04001796 VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION = 1000156000,
1797 VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE = 1000085000,
1798
Jesse Hall05556b12017-05-18 17:40:25 -07001799 //@extension("VK_KHR_surface") // 1
1800 VK_OBJECT_TYPE_SURFACE_KHR = 1000000000,
1801
1802 //@extension("VK_KHR_swapchain") // 2
1803 VK_OBJECT_TYPE_SWAPCHAIN_KHR = 1000001000,
1804
1805 //@extension("VK_KHR_display") // 3
1806 VK_OBJECT_TYPE_DISPLAY_KHR = 1000002000,
1807 VK_OBJECT_TYPE_DISPLAY_MODE_KHR = 1000002001,
1808
1809 //@extension("VK_KHR_debug_report") // 12
1810 VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT = 1000011000,
1811
1812 //@extension("VK_KHR_descriptor_update_template") // 86
1813 VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR = 1000085000,
1814
1815 //@extension("VK_NVX_device_generated_commands") // 87
1816 VK_OBJECT_TYPE_OBJECT_TABLE_NVX = 1000086000,
1817 VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX = 1000086001,
Jesse Hall77726222017-09-19 14:49:27 -05001818
Jesse Hall8c954d32018-01-17 22:06:20 -08001819 //@extension("VK_EXT_debug_utils") // 129
1820 VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT = 1000128000,
1821
Jesse Hall076f95d2017-09-20 11:34:47 -07001822 //@extension("VK_KHR_sampler_ycbcr_conversion") // 157
1823 VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR = 1000156000,
1824
Jesse Hall77726222017-09-19 14:49:27 -05001825 //@extension("VK_EXT_validation_cache") // 161
1826 VK_OBJECT_TYPE_VALIDATION_CACHE_EXT = 1000160000,
Jesse Hall05556b12017-05-18 17:40:25 -07001827}
1828
Daniel Koch09f7bf92017-10-05 00:26:58 -04001829
Ian Elliott28bd2c32017-10-13 09:21:12 -06001830//@vulkan1_1 enums
Daniel Koch09f7bf92017-10-05 00:26:58 -04001831
1832enum VkPointClippingBehavior {
1833 VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES = 0,
1834 VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY = 1,
1835}
1836
1837enum VkTessellationDomainOrigin {
1838 VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT = 0,
1839 VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT = 1,
1840}
1841
1842enum VkSamplerYcbcrModelConversion {
1843 VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY = 0,
1844 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY = 1,
1845 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709 = 2,
1846 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601 = 3,
1847 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020 = 4,
1848}
1849
1850enum VkSamplerYcbcrRange {
1851 VK_SAMPLER_YCBCR_RANGE_ITU_FULL = 0,
1852 VK_SAMPLER_YCBCR_RANGE_ITU_NARROW = 1,
1853}
1854
1855enum VkChromaLocation {
1856 VK_CHROMA_LOCATION_COSITED_EVEN = 0,
1857 VK_CHROMA_LOCATION_MIDPOINT = 1,
1858}
1859
1860enum VkDescriptorUpdateTemplateType {
1861 VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET = 0,
1862 VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR = 1,
1863}
1864
Jesse Halla13a3cf2018-07-09 15:51:52 -07001865enum VkVendorId {
1866 VK_VENDOR_ID_VIV = 0x10001,
1867 VK_VENDOR_ID_VSI = 0x10002,
1868 VK_VENDOR_ID_KAZAN = 0x10003,
1869}
1870
Jesse Hallad250842017-03-10 18:35:38 -08001871@extension("VK_KHR_surface") // 1
Michael Lentine88594d72015-11-12 12:49:45 -08001872enum VkPresentModeKHR {
1873 VK_PRESENT_MODE_IMMEDIATE_KHR = 0x00000000,
1874 VK_PRESENT_MODE_MAILBOX_KHR = 0x00000001,
1875 VK_PRESENT_MODE_FIFO_KHR = 0x00000002,
Jesse Hall03b6fe12015-11-24 12:44:21 -08001876 VK_PRESENT_MODE_FIFO_RELAXED_KHR = 0x00000003,
Jesse Hall77ad05b2017-03-10 22:02:20 -08001877
Jesse Hall05556b12017-05-18 17:40:25 -07001878 //@extension("VK_KHR_shared_presentable_image") // 112
Jesse Hall77ad05b2017-03-10 22:02:20 -08001879 VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR = 1000111000,
1880 VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR = 1000111001,
Michael Lentine88594d72015-11-12 12:49:45 -08001881}
1882
Jesse Hallad250842017-03-10 18:35:38 -08001883@extension("VK_KHR_surface") // 1
Michael Lentine88594d72015-11-12 12:49:45 -08001884enum VkColorSpaceKHR {
Daniel Koch09f7bf92017-10-05 00:26:58 -04001885 VK_COLOR_SPACE_SRGB_NONLINEAR_KHR = 0x00000000,
Jesse Hall77ad05b2017-03-10 22:02:20 -08001886
Jesse Hallf5ad48b2017-03-20 13:09:19 -07001887 //@extension("VK_EXT_swapchain_colorspace") // 105
1888 VK_COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT = 1000104001,
1889 VK_COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT = 1000104002,
1890 VK_COLOR_SPACE_DCI_P3_LINEAR_EXT = 1000104003,
1891 VK_COLOR_SPACE_DCI_P3_NONLINEAR_EXT = 1000104004,
1892 VK_COLOR_SPACE_BT709_LINEAR_EXT = 1000104005,
1893 VK_COLOR_SPACE_BT709_NONLINEAR_EXT = 1000104006,
1894 VK_COLOR_SPACE_BT2020_LINEAR_EXT = 1000104007,
1895 VK_COLOR_SPACE_HDR10_ST2084_EXT = 1000104008,
1896 VK_COLOR_SPACE_DOLBYVISION_EXT = 1000104009,
1897 VK_COLOR_SPACE_HDR10_HLG_EXT = 1000104010,
Courtney Goeltzenleuchter7f558ed2017-01-23 17:15:24 -07001898 VK_COLOR_SPACE_ADOBERGB_LINEAR_EXT = 1000104011,
1899 VK_COLOR_SPACE_ADOBERGB_NONLINEAR_EXT = 1000104012,
Jesse Hallf5ad48b2017-03-20 13:09:19 -07001900 VK_COLOR_SPACE_PASS_THROUGH_EXT = 1000104013,
Jesse Hall77726222017-09-19 14:49:27 -05001901 VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT = 1000104014,
Michael Lentine88594d72015-11-12 12:49:45 -08001902}
Jesse Halld27f6aa2015-08-15 17:58:48 -07001903
Jesse Hallad250842017-03-10 18:35:38 -08001904@extension("VK_EXT_debug_report") // 12
Jesse Hall715b86a2016-01-16 16:34:29 -08001905enum VkDebugReportObjectTypeEXT {
1906 VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT = 0,
1907 VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT = 1,
1908 VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT = 2,
1909 VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT = 3,
1910 VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT = 4,
1911 VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT = 5,
1912 VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT = 6,
1913 VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT = 7,
1914 VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT = 8,
1915 VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT = 9,
1916 VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT = 10,
1917 VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT = 11,
1918 VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT = 12,
1919 VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT = 13,
1920 VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT = 14,
1921 VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT = 15,
1922 VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT = 16,
1923 VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT = 17,
1924 VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT = 18,
1925 VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT = 19,
1926 VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT = 20,
1927 VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT = 21,
1928 VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT = 22,
1929 VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT = 23,
1930 VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT = 24,
1931 VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT = 25,
1932 VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT = 26,
1933 VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT = 27,
Jesse Hall7ba0ac72017-07-07 17:13:23 -07001934 VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT = 28,
Chris Forbes289cb792016-12-30 15:03:55 +13001935 VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT = 29,
1936 VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT = 30,
1937 VK_DEBUG_REPORT_OBJECT_TYPE_OBJECT_TABLE_NVX_EXT = 31,
1938 VK_DEBUG_REPORT_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX_EXT = 32,
Jesse Hallf5ad48b2017-03-20 13:09:19 -07001939
Jesse Hall77726222017-09-19 14:49:27 -05001940 //extension("VK_EXT_validation_cache") // 161
Jesse Hall8c954d32018-01-17 22:06:20 -08001941 VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT = 33,
Jesse Hall77726222017-09-19 14:49:27 -05001942
Jesse Hallf5ad48b2017-03-20 13:09:19 -07001943 //extension("VK_KHR_descriptor_update_template") // 86
1944 VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR_EXT = 1000085000,
Jesse Hall77726222017-09-19 14:49:27 -05001945
Jesse Hall076f95d2017-09-20 11:34:47 -07001946 //@extension("VK_KHR_sampler_ycbcr_conversion") // 157
1947 VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR_EXT = 1000156000,
Jesse Hall715b86a2016-01-16 16:34:29 -08001948}
1949
Jesse Hallad250842017-03-10 18:35:38 -08001950@extension("VK_AMD_rasterization_order") // 19
Jesse Hall26763382016-05-20 07:13:52 -07001951enum VkRasterizationOrderAMD {
1952 VK_RASTERIZATION_ORDER_STRICT_AMD = 0,
1953 VK_RASTERIZATION_ORDER_RELAXED_AMD = 1,
1954}
1955
Jesse Hall8c954d32018-01-17 22:06:20 -08001956@extension("VK_AMD_shader_info") // 43
1957enum VkShaderInfoTypeAMD {
1958 VK_SHADER_INFO_TYPE_STATISTICS_AMD = 0,
1959 VK_SHADER_INFO_TYPE_BINARY_AMD = 1,
1960 VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD = 2,
1961}
1962
Jesse Hallad250842017-03-10 18:35:38 -08001963@extension("VK_EXT_validation_flags") // 62
Chris Forbes289cb792016-12-30 15:03:55 +13001964enum VkValidationCheckEXT {
1965 VK_VALIDATION_CHECK_ALL_EXT = 0,
Jesse Hall7ba0ac72017-07-07 17:13:23 -07001966 VK_VALIDATION_CHECK_SHADERS_EXT = 1,
Chris Forbes289cb792016-12-30 15:03:55 +13001967}
1968
Jesse Hallad250842017-03-10 18:35:38 -08001969@extension("VK_KHR_descriptor_update_template") // 86
1970enum VkDescriptorUpdateTemplateTypeKHR {
1971 VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET_KHR = 0,
1972 VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR = 1,
1973}
1974
1975@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13001976enum VkIndirectCommandsTokenTypeNVX {
Jesse Hall7ba0ac72017-07-07 17:13:23 -07001977 VK_INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NVX = 0,
1978 VK_INDIRECT_COMMANDS_TOKEN_TYPE_DESCRIPTOR_SET_NVX = 1,
1979 VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NVX = 2,
1980 VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NVX = 3,
1981 VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NVX = 4,
1982 VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NVX = 5,
1983 VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NVX = 6,
1984 VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NVX = 7,
Chris Forbes289cb792016-12-30 15:03:55 +13001985}
1986
Jesse Hallad250842017-03-10 18:35:38 -08001987@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13001988enum VkObjectEntryTypeNVX {
Jesse Hall7ba0ac72017-07-07 17:13:23 -07001989 VK_OBJECT_ENTRY_TYPE_DESCRIPTOR_SET_NVX = 0,
1990 VK_OBJECT_ENTRY_TYPE_PIPELINE_NVX = 1,
1991 VK_OBJECT_ENTRY_TYPE_INDEX_BUFFER_NVX = 2,
1992 VK_OBJECT_ENTRY_TYPE_VERTEX_BUFFER_NVX = 3,
1993 VK_OBJECT_ENTRY_TYPE_PUSH_CONSTANT_NVX = 4,
Chris Forbes289cb792016-12-30 15:03:55 +13001994}
Jesse Hall715b86a2016-01-16 16:34:29 -08001995
Jesse Hallad250842017-03-10 18:35:38 -08001996@extension("VK_EXT_display_control") // 92
Jesse Hall77ad05b2017-03-10 22:02:20 -08001997enum VkDisplayPowerStateEXT {
1998 VK_DISPLAY_POWER_STATE_OFF_EXT = 0,
1999 VK_DISPLAY_POWER_STATE_SUSPEND_EXT = 1,
2000 VK_DISPLAY_POWER_STATE_ON_EXT = 2,
2001}
2002
Jesse Hallad250842017-03-10 18:35:38 -08002003@extension("VK_EXT_display_control") // 92
Jesse Hall77ad05b2017-03-10 22:02:20 -08002004enum VkDeviceEventTypeEXT {
2005 VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT = 0,
2006}
2007
Jesse Hallad250842017-03-10 18:35:38 -08002008@extension("VK_EXT_display_control") // 92
Jesse Hall77ad05b2017-03-10 22:02:20 -08002009enum VkDisplayEventTypeEXT {
2010 VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT = 0,
2011}
2012
Jesse Hallad250842017-03-10 18:35:38 -08002013@extension("VK_NV_viewport_swizzle") // 99
2014enum VkViewportCoordinateSwizzleNV {
2015 VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV = 0,
2016 VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV = 1,
2017 VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV = 2,
2018 VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV = 3,
2019 VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV = 4,
2020 VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV = 5,
2021 VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV = 6,
2022 VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV = 7,
2023}
2024
2025@extension("VK_EXT_discard_rectangles") // 100
2026enum VkDiscardRectangleModeEXT {
2027 VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT = 0,
2028 VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT = 1,
2029}
2030
Jesse Hall8c954d32018-01-17 22:06:20 -08002031@extension("VK_EXT_conservative_rasterization") // 102
2032enum VkConservativeRasterizationModeEXT {
2033 VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT = 0,
2034 VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT = 1,
2035 VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT = 2,
2036}
2037
Jesse Hall076f95d2017-09-20 11:34:47 -07002038@extension("VK_KHR_maintenance2") // 118
2039enum VkPointClippingBehaviorKHR {
2040 VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES_KHR = 0,
2041 VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY_KHR = 1,
2042}
2043
2044@extension("VK_KHR_maintenance2") // 118
2045enum VkTessellationDomainOriginKHR {
2046 VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT_KHR = 0,
2047 VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT_KHR = 1,
2048}
2049
Jesse Hall7ba0ac72017-07-07 17:13:23 -07002050@extension("VK_EXT_sampler_filter_minmax") // 131
2051enum VkSamplerReductionModeEXT {
2052 VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_EXT = 0,
2053 VK_SAMPLER_REDUCTION_MODE_MIN_EXT = 1,
2054 VK_SAMPLER_REDUCTION_MODE_MAX_EXT = 2,
2055}
2056
2057@extension("VK_EXT_blend_operation_advanced") // 149
2058enum VkBlendOverlapEXT {
2059 VK_BLEND_OVERLAP_UNCORRELATED_EXT = 0,
2060 VK_BLEND_OVERLAP_DISJOINT_EXT = 1,
2061 VK_BLEND_OVERLAP_CONJOINT_EXT = 2,
2062}
2063
2064@extension("VK_NV_framebuffer_mixed_samples") // 153
2065enum VkCoverageModulationModeNV {
2066 VK_COVERAGE_MODULATION_MODE_NONE_NV = 0,
2067 VK_COVERAGE_MODULATION_MODE_RGB_NV = 1,
2068 VK_COVERAGE_MODULATION_MODE_ALPHA_NV = 2,
2069 VK_COVERAGE_MODULATION_MODE_RGBA_NV = 3,
2070}
2071
Jesse Hall076f95d2017-09-20 11:34:47 -07002072@extension("VK_KHR_sampler_ycbcr_conversion") // 157
2073enum VkSamplerYcbcrModelConversionKHR {
2074 VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY_KHR = 0,
2075 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY_KHR = 1,
2076 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709_KHR = 2,
2077 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601_KHR = 3,
2078 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020_KHR = 4,
2079}
2080
2081@extension("VK_KHR_sampler_ycbcr_conversion") // 157
2082enum VkSamplerYcbcrRangeKHR {
2083 VK_SAMPLER_YCBCR_RANGE_ITU_FULL_KHR = 0,
2084 VK_SAMPLER_YCBCR_RANGE_ITU_NARROW_KHR = 1,
2085}
2086
2087@extension("VK_KHR_sampler_ycbcr_conversion") // 157
2088enum VkChromaLocationKHR {
2089 VK_CHROMA_LOCATION_COSITED_EVEN_KHR = 0,
2090 VK_CHROMA_LOCATION_MIDPOINT_KHR = 1,
2091}
2092
Jesse Hall77726222017-09-19 14:49:27 -05002093@extension("VK_EXT_validation_cache") // 161
2094enum VkValidationCacheHeaderVersionEXT {
2095 VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT = 1,
2096}
2097
Jesse Hall8c954d32018-01-17 22:06:20 -08002098@extension("VK_EXT_global_priority") // 175
2099enum VkQueueGlobalPriorityEXT {
2100 VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT = 128,
2101 VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT = 256,
2102 VK_QUEUE_GLOBAL_PRIORITY_HIGH_EXT = 512,
2103 VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT = 1024,
2104}
2105
Jesse Halld27f6aa2015-08-15 17:58:48 -07002106/////////////////
2107// Bitfields //
2108/////////////////
2109
Jesse Halld27f6aa2015-08-15 17:58:48 -07002110/// Queue capabilities
Jesse Halld8bade02015-11-24 10:24:18 -08002111type VkFlags VkQueueFlags
2112bitfield VkQueueFlagBits {
Jesse Halld27f6aa2015-08-15 17:58:48 -07002113 VK_QUEUE_GRAPHICS_BIT = 0x00000001, /// Queue supports graphics operations
2114 VK_QUEUE_COMPUTE_BIT = 0x00000002, /// Queue supports compute operations
Jesse Hall65ab5522015-11-30 00:07:16 -08002115 VK_QUEUE_TRANSFER_BIT = 0x00000004, /// Queue supports transfer operations
Jesse Hallb00daad2015-11-29 19:46:20 -08002116 VK_QUEUE_SPARSE_BINDING_BIT = 0x00000008, /// Queue supports sparse resource memory management operations
Daniel Koch09f7bf92017-10-05 00:26:58 -04002117
Ian Elliott28bd2c32017-10-13 09:21:12 -06002118 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04002119 VK_QUEUE_PROTECTED_BIT = 0x00000010,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002120}
2121
2122/// Memory properties passed into vkAllocMemory().
Jesse Halld8bade02015-11-24 10:24:18 -08002123type VkFlags VkMemoryPropertyFlags
2124bitfield VkMemoryPropertyFlagBits {
Jesse Halld1af8122015-11-29 23:50:38 -08002125 VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT = 0x00000001,
2126 VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT = 0x00000002,
2127 VK_MEMORY_PROPERTY_HOST_COHERENT_BIT = 0x00000004,
2128 VK_MEMORY_PROPERTY_HOST_CACHED_BIT = 0x00000008,
2129 VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT = 0x00000010,
Daniel Koch09f7bf92017-10-05 00:26:58 -04002130
Ian Elliott28bd2c32017-10-13 09:21:12 -06002131 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04002132 VK_MEMORY_PROPERTY_PROTECTED_BIT = 0x00000020,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002133}
2134
2135/// Memory heap flags
Jesse Halld8bade02015-11-24 10:24:18 -08002136type VkFlags VkMemoryHeapFlags
2137bitfield VkMemoryHeapFlagBits {
Jesse Halld1af8122015-11-29 23:50:38 -08002138 VK_MEMORY_HEAP_DEVICE_LOCAL_BIT = 0x00000001,
Jesse Hallad250842017-03-10 18:35:38 -08002139
Ian Elliott28bd2c32017-10-13 09:21:12 -06002140 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04002141 VK_MEMORY_HEAP_MULTI_INSTANCE_BIT = 0x00000002,
2142
2143 //@extension("VK_KHR_device_group_creation") // 71
2144 VK_MEMORY_HEAP_MULTI_INSTANCE_BIT_KHR = 0x00000002,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002145}
2146
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08002147/// Access flags
2148type VkFlags VkAccessFlags
2149bitfield VkAccessFlagBits {
2150 VK_ACCESS_INDIRECT_COMMAND_READ_BIT = 0x00000001,
2151 VK_ACCESS_INDEX_READ_BIT = 0x00000002,
2152 VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT = 0x00000004,
2153 VK_ACCESS_UNIFORM_READ_BIT = 0x00000008,
2154 VK_ACCESS_INPUT_ATTACHMENT_READ_BIT = 0x00000010,
2155 VK_ACCESS_SHADER_READ_BIT = 0x00000020,
2156 VK_ACCESS_SHADER_WRITE_BIT = 0x00000040,
2157 VK_ACCESS_COLOR_ATTACHMENT_READ_BIT = 0x00000080,
2158 VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT = 0x00000100,
2159 VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT = 0x00000200,
2160 VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT = 0x00000400,
2161 VK_ACCESS_TRANSFER_READ_BIT = 0x00000800,
2162 VK_ACCESS_TRANSFER_WRITE_BIT = 0x00001000,
2163 VK_ACCESS_HOST_READ_BIT = 0x00002000,
2164 VK_ACCESS_HOST_WRITE_BIT = 0x00004000,
2165 VK_ACCESS_MEMORY_READ_BIT = 0x00008000,
2166 VK_ACCESS_MEMORY_WRITE_BIT = 0x00010000,
Chris Forbes289cb792016-12-30 15:03:55 +13002167
Jesse Hallad250842017-03-10 18:35:38 -08002168 //@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13002169 VK_ACCESS_COMMAND_PROCESS_READ_BIT_NVX = 0x00020000,
Chris Forbes289cb792016-12-30 15:03:55 +13002170 VK_ACCESS_COMMAND_PROCESS_WRITE_BIT_NVX = 0x00040000,
Jesse Hall7ba0ac72017-07-07 17:13:23 -07002171
2172 //@extension("VK_EXT_blend_operation_advanced") // 149
2173 VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT = 0x00080000,
Jesse Halla13a3cf2018-07-09 15:51:52 -07002174
2175 //@extension("VK_EXT_conditional_rendering") // 82
2176 VK_ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT = 0x00100000,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002177}
2178
2179/// Buffer usage flags
Jesse Halld8bade02015-11-24 10:24:18 -08002180type VkFlags VkBufferUsageFlags
2181bitfield VkBufferUsageFlagBits {
Jesse Hall3fbc8562015-11-29 22:10:52 -08002182 VK_BUFFER_USAGE_TRANSFER_SRC_BIT = 0x00000001, /// Can be used as a source of transfer operations
2183 VK_BUFFER_USAGE_TRANSFER_DST_BIT = 0x00000002, /// Can be used as a destination of transfer operations
Jesse Halld27f6aa2015-08-15 17:58:48 -07002184 VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT = 0x00000004, /// Can be used as TBO
2185 VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT = 0x00000008, /// Can be used as IBO
2186 VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT = 0x00000010, /// Can be used as UBO
2187 VK_BUFFER_USAGE_STORAGE_BUFFER_BIT = 0x00000020, /// Can be used as SSBO
2188 VK_BUFFER_USAGE_INDEX_BUFFER_BIT = 0x00000040, /// Can be used as source of fixed function index fetch (index buffer)
2189 VK_BUFFER_USAGE_VERTEX_BUFFER_BIT = 0x00000080, /// Can be used as source of fixed function vertex fetch (VBO)
2190 VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT = 0x00000100, /// Can be the source of indirect parameters (e.g. indirect buffer, parameter buffer)
Jesse Halla13a3cf2018-07-09 15:51:52 -07002191
2192 //@extension("VK_EXT_conditional_rendering") // 82
2193 VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT = 0x00000200,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002194}
2195
2196/// Buffer creation flags
Jesse Halld8bade02015-11-24 10:24:18 -08002197type VkFlags VkBufferCreateFlags
2198bitfield VkBufferCreateFlagBits {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07002199 VK_BUFFER_CREATE_SPARSE_BINDING_BIT = 0x00000001, /// Buffer should support sparse backing
Jesse Halld27f6aa2015-08-15 17:58:48 -07002200 VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT = 0x00000002, /// Buffer should support sparse backing with partial residency
2201 VK_BUFFER_CREATE_SPARSE_ALIASED_BIT = 0x00000004, /// Buffer should support constent data access to physical memory blocks mapped into multiple locations of sparse buffers
Daniel Koch09f7bf92017-10-05 00:26:58 -04002202
Ian Elliott28bd2c32017-10-13 09:21:12 -06002203 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04002204 VK_BUFFER_CREATE_PROTECTED_BIT = 0x00000008,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002205}
2206
2207/// Shader stage flags
Jesse Halld8bade02015-11-24 10:24:18 -08002208type VkFlags VkShaderStageFlags
2209bitfield VkShaderStageFlagBits {
Jesse Halld27f6aa2015-08-15 17:58:48 -07002210 VK_SHADER_STAGE_VERTEX_BIT = 0x00000001,
Jesse Hallae38f732015-11-19 21:32:50 -08002211 VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT = 0x00000002,
2212 VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT = 0x00000004,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002213 VK_SHADER_STAGE_GEOMETRY_BIT = 0x00000008,
2214 VK_SHADER_STAGE_FRAGMENT_BIT = 0x00000010,
2215 VK_SHADER_STAGE_COMPUTE_BIT = 0x00000020,
Jesse Hallc7467b72015-11-29 21:05:26 -08002216 VK_SHADER_STAGE_ALL_GRAPHICS = 0x0000001F,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002217
2218 VK_SHADER_STAGE_ALL = 0x7FFFFFFF,
2219}
2220
Jesse Hallfbf97b02015-11-20 14:17:03 -08002221/// Descriptor pool create flags
Jesse Halld8bade02015-11-24 10:24:18 -08002222type VkFlags VkDescriptorPoolCreateFlags
2223bitfield VkDescriptorPoolCreateFlagBits {
Jesse Hallfbf97b02015-11-20 14:17:03 -08002224 VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT = 0x00000001,
Jesse Hall72e6a132018-04-06 13:00:44 -07002225
2226 //@extension("VK_EXT_descriptor_indexing") // 162
2227 VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT_EXT = 0x00000002,
Jesse Hallfbf97b02015-11-20 14:17:03 -08002228}
2229
2230/// Descriptor pool reset flags
Jesse Halld8bade02015-11-24 10:24:18 -08002231type VkFlags VkDescriptorPoolResetFlags
Jesse Halla6429252015-11-29 18:59:42 -08002232//bitfield VkDescriptorPoolResetFlagBits {
2233//}
Jesse Hallfbf97b02015-11-20 14:17:03 -08002234
Jesse Halld27f6aa2015-08-15 17:58:48 -07002235/// Image usage flags
Jesse Halld8bade02015-11-24 10:24:18 -08002236type VkFlags VkImageUsageFlags
2237bitfield VkImageUsageFlagBits {
Jesse Hall3fbc8562015-11-29 22:10:52 -08002238 VK_IMAGE_USAGE_TRANSFER_SRC_BIT = 0x00000001, /// Can be used as a source of transfer operations
2239 VK_IMAGE_USAGE_TRANSFER_DST_BIT = 0x00000002, /// Can be used as a destination of transfer operations
Jesse Halld27f6aa2015-08-15 17:58:48 -07002240 VK_IMAGE_USAGE_SAMPLED_BIT = 0x00000004, /// Can be sampled from (SAMPLED_IMAGE and COMBINED_IMAGE_SAMPLER descriptor types)
2241 VK_IMAGE_USAGE_STORAGE_BIT = 0x00000008, /// Can be used as storage image (STORAGE_IMAGE descriptor type)
2242 VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT = 0x00000010, /// Can be used as framebuffer color attachment
Jesse Hall5ae3abb2015-10-08 14:00:22 -07002243 VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000020, /// Can be used as framebuffer depth/stencil attachment
Jesse Halld27f6aa2015-08-15 17:58:48 -07002244 VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT = 0x00000040, /// Image data not needed outside of rendering
2245 VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT = 0x00000080, /// Can be used as framebuffer input attachment
2246}
2247
2248/// Image creation flags
Jesse Halld8bade02015-11-24 10:24:18 -08002249type VkFlags VkImageCreateFlags
2250bitfield VkImageCreateFlagBits {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07002251 VK_IMAGE_CREATE_SPARSE_BINDING_BIT = 0x00000001, /// Image should support sparse backing
Jesse Halld27f6aa2015-08-15 17:58:48 -07002252 VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT = 0x00000002, /// Image should support sparse backing with partial residency
2253 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 -07002254 VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT = 0x00000008, /// Allows image views to have different format than the base image
2255 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 -08002256
Ian Elliott28bd2c32017-10-13 09:21:12 -06002257 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04002258 VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT = 0x00000020,
Jesse Hall8c954d32018-01-17 22:06:20 -08002259 VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT = 0x00000040,
Daniel Koch09f7bf92017-10-05 00:26:58 -04002260 VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT = 0x00000080,
2261 VK_IMAGE_CREATE_EXTENDED_USAGE_BIT = 0x00000100,
Daniel Koch09f7bf92017-10-05 00:26:58 -04002262 VK_IMAGE_CREATE_DISJOINT_BIT = 0x00000200,
Ian Elliott28bd2c32017-10-13 09:21:12 -06002263 VK_IMAGE_CREATE_ALIAS_BIT = 0x00000400,
2264 VK_IMAGE_CREATE_PROTECTED_BIT = 0x00000800,
Daniel Koch09f7bf92017-10-05 00:26:58 -04002265
Jesse Hallad250842017-03-10 18:35:38 -08002266 //@extension("VK_KHR_maintenance1") // 70
Jesse Hall77ad05b2017-03-10 22:02:20 -08002267 VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT_KHR = 0x00000020,
Jesse Hallad250842017-03-10 18:35:38 -08002268
Daniel Koch09f7bf92017-10-05 00:26:58 -04002269 //@extension("VK_KHR_device_group") // 61
2270 VK_IMAGE_CREATE_BIND_SFR_BIT_KHR = 0x00000040,
Jesse Hall77726222017-09-19 14:49:27 -05002271
Jesse Hall076f95d2017-09-20 11:34:47 -07002272 //@extension("VK_KHR_maintenance2") // 118
2273 VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT_KHR = 0x00000080,
2274 VK_IMAGE_CREATE_EXTENDED_USAGE_BIT_KHR = 0x00000100,
2275
2276 //@extension("VK_KHR_sampler_ycbcr_conversion") // 157
2277 VK_IMAGE_CREATE_DISJOINT_BIT_KHR = 0x00000200,
2278
2279 //@extension("VK_KHR_bind_memory2") // 158
2280 VK_IMAGE_CREATE_ALIAS_BIT_KHR = 0x00000400,
Ian Elliott28bd2c32017-10-13 09:21:12 -06002281
2282 //@extension("VK_EXT_sample_locations") // 144
2283 VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT = 0x00001000,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002284}
2285
Jesse Hallb00daad2015-11-29 19:46:20 -08002286/// Image view creation flags
Jesse Halld8bade02015-11-24 10:24:18 -08002287type VkFlags VkImageViewCreateFlags
Jesse Hallb00daad2015-11-29 19:46:20 -08002288//bitfield VkImageViewCreateFlagBits {
2289//}
Jesse Halld27f6aa2015-08-15 17:58:48 -07002290
2291/// Pipeline creation flags
Jesse Halld8bade02015-11-24 10:24:18 -08002292type VkFlags VkPipelineCreateFlags
2293bitfield VkPipelineCreateFlagBits {
Jesse Halld27f6aa2015-08-15 17:58:48 -07002294 VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT = 0x00000001,
2295 VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT = 0x00000002,
2296 VK_PIPELINE_CREATE_DERIVATIVE_BIT = 0x00000004,
Jesse Hallad250842017-03-10 18:35:38 -08002297
Ian Elliott28bd2c32017-10-13 09:21:12 -06002298 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04002299 VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT = 0x00000008,
2300 VK_PIPELINE_CREATE_DISPATCH_BASE = 0x00000010,
2301
2302 //@extension("VK_KHR_device_group") // 61
2303 VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR = 0x00000008,
2304 VK_PIPELINE_CREATE_DISPATCH_BASE_KHR = 0x00000010,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002305}
2306
Jesse Hall65ab5522015-11-30 00:07:16 -08002307/// Color component flags
2308type VkFlags VkColorComponentFlags
2309bitfield VkColorComponentFlagBits {
2310 VK_COLOR_COMPONENT_R_BIT = 0x00000001,
2311 VK_COLOR_COMPONENT_G_BIT = 0x00000002,
2312 VK_COLOR_COMPONENT_B_BIT = 0x00000004,
2313 VK_COLOR_COMPONENT_A_BIT = 0x00000008,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002314}
2315
2316/// Fence creation flags
Jesse Halld8bade02015-11-24 10:24:18 -08002317type VkFlags VkFenceCreateFlags
2318bitfield VkFenceCreateFlagBits {
Jesse Halld27f6aa2015-08-15 17:58:48 -07002319 VK_FENCE_CREATE_SIGNALED_BIT = 0x00000001,
2320}
2321
2322/// Semaphore creation flags
Jesse Halld8bade02015-11-24 10:24:18 -08002323type VkFlags VkSemaphoreCreateFlags
Jesse Halla6429252015-11-29 18:59:42 -08002324//bitfield VkSemaphoreCreateFlagBits {
2325//}
Jesse Halld27f6aa2015-08-15 17:58:48 -07002326
2327/// Format capability flags
Jesse Halld8bade02015-11-24 10:24:18 -08002328type VkFlags VkFormatFeatureFlags
2329bitfield VkFormatFeatureFlagBits {
Jesse Halld27f6aa2015-08-15 17:58:48 -07002330 VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT = 0x00000001, /// Format can be used for sampled images (SAMPLED_IMAGE and COMBINED_IMAGE_SAMPLER descriptor types)
2331 VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT = 0x00000002, /// Format can be used for storage images (STORAGE_IMAGE descriptor type)
2332 VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT = 0x00000004, /// Format supports atomic operations in case it's used for storage images
2333 VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT = 0x00000008, /// Format can be used for uniform texel buffers (TBOs)
2334 VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT = 0x00000010, /// Format can be used for storage texel buffers (IBOs)
2335 VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT = 0x00000020, /// Format supports atomic operations in case it's used for storage texel buffers
2336 VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT = 0x00000040, /// Format can be used for vertex buffers (VBOs)
2337 VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT = 0x00000080, /// Format can be used for color attachment images
2338 VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT = 0x00000100, /// Format supports blending in case it's used for color attachment images
2339 VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000200, /// Format can be used for depth/stencil attachment images
Jesse Hall3fbc8562015-11-29 22:10:52 -08002340 VK_FORMAT_FEATURE_BLIT_SRC_BIT = 0x00000400, /// Format can be used as the source image of blits with vkCommandBlitImage
2341 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 -08002342 VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT = 0x00001000,
Jesse Hall26763382016-05-20 07:13:52 -07002343
Ian Elliott28bd2c32017-10-13 09:21:12 -06002344 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04002345 VK_FORMAT_FEATURE_TRANSFER_SRC_BIT = 0x00004000,
2346 VK_FORMAT_FEATURE_TRANSFER_DST_BIT = 0x00008000,
2347 VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT = 0x00020000,
2348 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT = 0x00040000,
2349 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT = 0x00080000,
2350 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT = 0x00100000,
2351 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT = 0x00200000,
2352 VK_FORMAT_FEATURE_DISJOINT_BIT = 0x00400000,
2353 VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT = 0x00800000,
2354
Jesse Hallad250842017-03-10 18:35:38 -08002355 //@extension("VK_IMG_filter_cubic") // 16
Jesse Hall26763382016-05-20 07:13:52 -07002356 VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG = 0x00002000,
Jesse Hall77ad05b2017-03-10 22:02:20 -08002357
Jesse Hallad250842017-03-10 18:35:38 -08002358 //@extension("VK_KHR_maintenance1") // 70
Jesse Hall77ad05b2017-03-10 22:02:20 -08002359 VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR = 0x00004000,
2360 VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR = 0x00008000,
Jesse Hall7ba0ac72017-07-07 17:13:23 -07002361
2362 //@extension("VK_EXT_sampler_filter_minmax") // 131
2363 VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT_EXT = 0x00010000,
Jesse Hall076f95d2017-09-20 11:34:47 -07002364
2365 //@extension("VK_KHR_sampler_ycbcr_conversion") // 157
2366 VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT_KHR = 0x00020000,
2367 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT_KHR = 0x00040000,
2368 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT_KHR = 0x00080000,
2369 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT_KHR = 0x00100000,
2370 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT_KHR = 0x00200000,
2371 VK_FORMAT_FEATURE_DISJOINT_BIT_KHR = 0x00400000,
2372 VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT_KHR = 0x00800000,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002373}
2374
2375/// Query control flags
Jesse Halld8bade02015-11-24 10:24:18 -08002376type VkFlags VkQueryControlFlags
2377bitfield VkQueryControlFlagBits {
Jesse Hall65ab5522015-11-30 00:07:16 -08002378 VK_QUERY_CONTROL_PRECISE_BIT = 0x00000001,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002379}
2380
2381/// Query result flags
Jesse Halld8bade02015-11-24 10:24:18 -08002382type VkFlags VkQueryResultFlags
2383bitfield VkQueryResultFlagBits {
Jesse Halld27f6aa2015-08-15 17:58:48 -07002384 VK_QUERY_RESULT_64_BIT = 0x00000001, /// Results of the queries are written to the destination buffer as 64-bit values
2385 VK_QUERY_RESULT_WAIT_BIT = 0x00000002, /// Results of the queries are waited on before proceeding with the result copy
2386 VK_QUERY_RESULT_WITH_AVAILABILITY_BIT = 0x00000004, /// Besides the results of the query, the availability of the results is also written
2387 VK_QUERY_RESULT_PARTIAL_BIT = 0x00000008, /// Copy the partial results of the query even if the final results aren't available
2388}
2389
2390/// Shader module creation flags
Jesse Halld8bade02015-11-24 10:24:18 -08002391type VkFlags VkShaderModuleCreateFlags
Jesse Halla6429252015-11-29 18:59:42 -08002392//bitfield VkShaderModuleCreateFlagBits {
2393//}
Jesse Halld27f6aa2015-08-15 17:58:48 -07002394
Jesse Halld27f6aa2015-08-15 17:58:48 -07002395/// Event creation flags
Jesse Halld8bade02015-11-24 10:24:18 -08002396type VkFlags VkEventCreateFlags
Jesse Halla6429252015-11-29 18:59:42 -08002397//bitfield VkEventCreateFlagBits {
2398//}
Jesse Halld27f6aa2015-08-15 17:58:48 -07002399
Jesse Halla15a4bf2015-11-19 22:48:02 -08002400/// Command buffer usage flags
Jesse Hall3fbc8562015-11-29 22:10:52 -08002401type VkFlags VkCommandBufferUsageFlags
2402bitfield VkCommandBufferUsageFlagBits {
2403 VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT = 0x00000001,
2404 VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT = 0x00000002,
2405 VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT = 0x00000004,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002406}
2407
2408/// Pipeline statistics flags
Jesse Halld8bade02015-11-24 10:24:18 -08002409type VkFlags VkQueryPipelineStatisticFlags
2410bitfield VkQueryPipelineStatisticFlagBits {
Jesse Hallae38f732015-11-19 21:32:50 -08002411 VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT = 0x00000001, /// Optional
2412 VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT = 0x00000002, /// Optional
2413 VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT = 0x00000004, /// Optional
2414 VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT = 0x00000008, /// Optional
2415 VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT = 0x00000010, /// Optional
2416 VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT = 0x00000020, /// Optional
2417 VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT = 0x00000040, /// Optional
2418 VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT = 0x00000080, /// Optional
2419 VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT = 0x00000100, /// Optional
2420 VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT = 0x00000200, /// Optional
2421 VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT = 0x00000400, /// Optional
Jesse Halld27f6aa2015-08-15 17:58:48 -07002422}
2423
2424/// Memory mapping flags
Jesse Halld8bade02015-11-24 10:24:18 -08002425type VkFlags VkMemoryMapFlags
Jesse Halla6429252015-11-29 18:59:42 -08002426//bitfield VkMemoryMapFlagBits {
2427//}
Jesse Halld27f6aa2015-08-15 17:58:48 -07002428
2429/// Bitfield of image aspects
Jesse Halld8bade02015-11-24 10:24:18 -08002430type VkFlags VkImageAspectFlags
2431bitfield VkImageAspectFlagBits {
Jesse Halld27f6aa2015-08-15 17:58:48 -07002432 VK_IMAGE_ASPECT_COLOR_BIT = 0x00000001,
2433 VK_IMAGE_ASPECT_DEPTH_BIT = 0x00000002,
2434 VK_IMAGE_ASPECT_STENCIL_BIT = 0x00000004,
2435 VK_IMAGE_ASPECT_METADATA_BIT = 0x00000008,
Jesse Hall076f95d2017-09-20 11:34:47 -07002436
Ian Elliott28bd2c32017-10-13 09:21:12 -06002437 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04002438 VK_IMAGE_ASPECT_PLANE_0_BIT = 0x00000010,
2439 VK_IMAGE_ASPECT_PLANE_1_BIT = 0x00000020,
2440 VK_IMAGE_ASPECT_PLANE_2_BIT = 0x00000040,
2441
Jesse Hall076f95d2017-09-20 11:34:47 -07002442 //@extension("VK_KHR_sampler_ycbcr_conversion") // 157
2443 VK_IMAGE_ASPECT_PLANE_0_BIT_KHR = 0x00000010,
2444 VK_IMAGE_ASPECT_PLANE_1_BIT_KHR = 0x00000020,
2445 VK_IMAGE_ASPECT_PLANE_2_BIT_KHR = 0x00000040,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002446}
2447
2448/// Sparse memory bind flags
Jesse Halld8bade02015-11-24 10:24:18 -08002449type VkFlags VkSparseMemoryBindFlags
Jesse Hall091ed9e2015-11-30 00:55:29 -08002450bitfield VkSparseMemoryBindFlagBits {
2451 VK_SPARSE_MEMORY_BIND_METADATA_BIT = 0x00000001,
2452}
Jesse Halld27f6aa2015-08-15 17:58:48 -07002453
2454/// Sparse image memory requirements flags
Jesse Halld8bade02015-11-24 10:24:18 -08002455type VkFlags VkSparseImageFormatFlags
2456bitfield VkSparseImageFormatFlagBits {
Jesse Hallb00daad2015-11-29 19:46:20 -08002457 VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT = 0x00000001, /// Image uses a single miptail region for all array slices
2458 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.
2459 VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT = 0x00000004, /// Image uses a non-standard sparse block size
Jesse Halld27f6aa2015-08-15 17:58:48 -07002460}
2461
2462/// Pipeline stages
Jesse Halld8bade02015-11-24 10:24:18 -08002463type VkFlags VkPipelineStageFlags
2464bitfield VkPipelineStageFlagBits {
Jesse Halld27f6aa2015-08-15 17:58:48 -07002465 VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT = 0x00000001, /// Before subsequent commands are processed
2466 VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT = 0x00000002, /// Draw/DispatchIndirect command fetch
2467 VK_PIPELINE_STAGE_VERTEX_INPUT_BIT = 0x00000004, /// Vertex/index fetch
2468 VK_PIPELINE_STAGE_VERTEX_SHADER_BIT = 0x00000008, /// Vertex shading
Jesse Hallae38f732015-11-19 21:32:50 -08002469 VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT = 0x00000010, /// Tessellation control shading
2470 VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT = 0x00000020, /// Tessellation evaluation shading
Jesse Halld27f6aa2015-08-15 17:58:48 -07002471 VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT = 0x00000040, /// Geometry shading
2472 VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT = 0x00000080, /// Fragment shading
2473 VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT = 0x00000100, /// Early fragment (depth/stencil) tests
2474 VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT = 0x00000200, /// Late fragment (depth/stencil) tests
2475 VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT = 0x00000400, /// Color attachment writes
2476 VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT = 0x00000800, /// Compute shading
2477 VK_PIPELINE_STAGE_TRANSFER_BIT = 0x00001000, /// Transfer/copy operations
Jesse Hall543a7ff2016-01-08 16:38:30 -08002478 VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT = 0x00002000,
2479 VK_PIPELINE_STAGE_HOST_BIT = 0x00004000, /// Indicates host (CPU) is a source/sink of the dependency
Jesse Halld27f6aa2015-08-15 17:58:48 -07002480
Jesse Hall543a7ff2016-01-08 16:38:30 -08002481 VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT = 0x00008000, /// All stages of the graphics pipeline
2482 VK_PIPELINE_STAGE_ALL_COMMANDS_BIT = 0x00010000, /// All graphics, compute, copy, and transition commands
Chris Forbes289cb792016-12-30 15:03:55 +13002483
Jesse Hallad250842017-03-10 18:35:38 -08002484 //@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13002485 VK_PIPELINE_STAGE_COMMAND_PROCESS_BIT_NVX = 0x00020000,
Jesse Halla13a3cf2018-07-09 15:51:52 -07002486
2487 //@extension("VK_EXT_conditional_rendering") // 82
2488 VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT = 0x00040000,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07002489}
2490
2491/// Render pass attachment description flags
Jesse Halld8bade02015-11-24 10:24:18 -08002492type VkFlags VkAttachmentDescriptionFlags
2493bitfield VkAttachmentDescriptionFlagBits {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07002494 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 -07002495}
2496
2497/// Subpass description flags
Jesse Halld8bade02015-11-24 10:24:18 -08002498type VkFlags VkSubpassDescriptionFlags
2499bitfield VkSubpassDescriptionFlagBits {
Jesse Hallad250842017-03-10 18:35:38 -08002500 //@extension("VK_NVX_multiview_per_view_attributes") // 98
2501 VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX = 0x00000001,
2502 VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX = 0x00000002,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002503}
2504
2505/// Command pool creation flags
Jesse Hall3fbc8562015-11-29 22:10:52 -08002506type VkFlags VkCommandPoolCreateFlags
2507bitfield VkCommandPoolCreateFlagBits {
2508 VK_COMMAND_POOL_CREATE_TRANSIENT_BIT = 0x00000001, /// Command buffers have a short lifetime
2509 VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT = 0x00000002, /// Command buffers may release their memory individually
Daniel Koch09f7bf92017-10-05 00:26:58 -04002510
Ian Elliott28bd2c32017-10-13 09:21:12 -06002511 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04002512 VK_COMMAND_POOL_CREATE_PROTECTED_BIT = 0x00000004,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002513}
2514
2515/// Command pool reset flags
Jesse Hall3fbc8562015-11-29 22:10:52 -08002516type VkFlags VkCommandPoolResetFlags
2517bitfield VkCommandPoolResetFlagBits {
2518 VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT = 0x00000001, /// Release resources owned by the pool
Jesse Halld27f6aa2015-08-15 17:58:48 -07002519}
2520
Jesse Hall3fbc8562015-11-29 22:10:52 -08002521type VkFlags VkCommandBufferResetFlags
2522bitfield VkCommandBufferResetFlagBits {
2523 VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT = 0x00000001, /// Release resources owned by the buffer
Jesse Hall5ae3abb2015-10-08 14:00:22 -07002524}
2525
Jesse Halld8bade02015-11-24 10:24:18 -08002526type VkFlags VkSampleCountFlags
2527bitfield VkSampleCountFlagBits {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07002528 VK_SAMPLE_COUNT_1_BIT = 0x00000001,
2529 VK_SAMPLE_COUNT_2_BIT = 0x00000002,
2530 VK_SAMPLE_COUNT_4_BIT = 0x00000004,
2531 VK_SAMPLE_COUNT_8_BIT = 0x00000008,
2532 VK_SAMPLE_COUNT_16_BIT = 0x00000010,
2533 VK_SAMPLE_COUNT_32_BIT = 0x00000020,
2534 VK_SAMPLE_COUNT_64_BIT = 0x00000040,
2535}
2536
Jesse Halld8bade02015-11-24 10:24:18 -08002537type VkFlags VkStencilFaceFlags
2538bitfield VkStencilFaceFlagBits {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07002539 VK_STENCIL_FACE_FRONT_BIT = 0x00000001, /// Front face
2540 VK_STENCIL_FACE_BACK_BIT = 0x00000002, /// Back face
Jesse Hallc7467b72015-11-29 21:05:26 -08002541 VK_STENCIL_FRONT_AND_BACK = 0x00000003,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002542}
2543
Jesse Halla6429252015-11-29 18:59:42 -08002544/// Instance creation flags
2545type VkFlags VkInstanceCreateFlags
2546//bitfield VkInstanceCreateFlagBits {
2547//}
2548
2549/// Device creation flags
2550type VkFlags VkDeviceCreateFlags
2551//bitfield VkDeviceCreateFlagBits {
2552//}
2553
2554/// Device queue creation flags
2555type VkFlags VkDeviceQueueCreateFlags
Ian Elliott28bd2c32017-10-13 09:21:12 -06002556@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04002557bitfield VkDeviceQueueCreateFlagBits {
2558 VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT = 0x00000001,
2559}
Jesse Halla6429252015-11-29 18:59:42 -08002560
2561/// Query pool creation flags
2562type VkFlags VkQueryPoolCreateFlags
2563//bitfield VkQueryPoolCreateFlagBits {
2564//}
2565
2566/// Buffer view creation flags
2567type VkFlags VkBufferViewCreateFlags
2568//bitfield VkBufferViewCreateFlagBits {
2569//}
2570
2571/// Pipeline cache creation flags
2572type VkFlags VkPipelineCacheCreateFlags
2573//bitfield VkPipelineCacheCreateFlagBits {
2574//}
2575
2576/// Pipeline shader stage creation flags
2577type VkFlags VkPipelineShaderStageCreateFlags
2578//bitfield VkPipelineShaderStageCreateFlagBits {
2579//}
2580
2581/// Descriptor set layout creation flags
2582type VkFlags VkDescriptorSetLayoutCreateFlags
Jesse Hallad250842017-03-10 18:35:38 -08002583bitfield VkDescriptorSetLayoutCreateFlagBits {
2584 //@extension("VK_KHR_push_descriptor") // 81
2585 VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR = 0x00000001,
Jesse Hall72e6a132018-04-06 13:00:44 -07002586
2587 //@extension("VK_EXT_descriptor_indexing") // 162
2588 VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT = 0x00000002,
Jesse Hallad250842017-03-10 18:35:38 -08002589}
Jesse Halla6429252015-11-29 18:59:42 -08002590
2591/// Pipeline vertex input state creation flags
2592type VkFlags VkPipelineVertexInputStateCreateFlags
2593//bitfield VkPipelineVertexInputStateCreateFlagBits {
2594//}
2595
2596/// Pipeline input assembly state creation flags
2597type VkFlags VkPipelineInputAssemblyStateCreateFlags
2598//bitfield VkPipelineInputAssemblyStateCreateFlagBits {
2599//}
2600
2601/// Tessellation state creation flags
2602type VkFlags VkPipelineTessellationStateCreateFlags
2603//bitfield VkPipelineTessellationStateCreateFlagBits {
2604//}
2605
2606/// Viewport state creation flags
2607type VkFlags VkPipelineViewportStateCreateFlags
2608//bitfield VkPipelineViewportStateCreateFlagBits {
2609//}
2610
Jesse Hall3fbc8562015-11-29 22:10:52 -08002611/// Rasterization state creation flags
2612type VkFlags VkPipelineRasterizationStateCreateFlags
2613//bitfield VkPipelineRasterizationStateCreateFlagBits {
Jesse Halla6429252015-11-29 18:59:42 -08002614//}
2615
2616/// Multisample state creation flags
2617type VkFlags VkPipelineMultisampleStateCreateFlags
2618//bitfield VkPipelineMultisampleStateCreateFlagBits {
2619//}
2620
2621/// Color blend state creation flags
2622type VkFlags VkPipelineColorBlendStateCreateFlags
2623//bitfield VkPipelineColorBlendStateCreateFlagBits {
2624//}
2625
2626/// Depth/stencil state creation flags
2627type VkFlags VkPipelineDepthStencilStateCreateFlags
2628//bitfield VkPipelineDepthStencilStateCreateFlagBits {
2629//}
2630
2631/// Dynamic state creation flags
2632type VkFlags VkPipelineDynamicStateCreateFlags
2633//bitfield VkPipelineDynamicStateCreateFlagBits {
2634//}
2635
2636/// Pipeline layout creation flags
2637type VkFlags VkPipelineLayoutCreateFlags
2638//bitfield VkPipelineLayoutCreateFlagBits {
2639//}
2640
2641/// Sampler creation flags
2642type VkFlags VkSamplerCreateFlags
2643//bitfield VkSamplerCreateFlagBits {
2644//}
2645
2646/// Render pass creation flags
2647type VkFlags VkRenderPassCreateFlags
2648//bitfield VkRenderPassCreateFlagBits {
2649//}
2650
2651/// Framebuffer creation flags
2652type VkFlags VkFramebufferCreateFlags
2653//bitfield VkFramebufferCreateFlagBits {
2654//}
2655
Jesse Halldc6d36c2015-11-29 19:12:15 -08002656/// Dependency flags
2657type VkFlags VkDependencyFlags
2658bitfield VkDependencyFlagBits {
2659 VK_DEPENDENCY_BY_REGION_BIT = 0x00000001,
Jesse Hallad250842017-03-10 18:35:38 -08002660
Ian Elliott28bd2c32017-10-13 09:21:12 -06002661 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04002662 VK_DEPENDENCY_DEVICE_GROUP_BIT = 0x00000004,
2663 VK_DEPENDENCY_VIEW_LOCAL_BIT = 0x00000002,
Jesse Hallad250842017-03-10 18:35:38 -08002664
Daniel Koch09f7bf92017-10-05 00:26:58 -04002665 //@extension("VK_KHR_multiview") // 54
2666 VK_DEPENDENCY_VIEW_LOCAL_BIT_KHR = 0x00000002,
2667
2668 //@extension("VK_KHR_device_group") // 61
2669 VK_DEPENDENCY_DEVICE_GROUP_BIT_KHR = 0x00000004,
Jesse Halldc6d36c2015-11-29 19:12:15 -08002670}
2671
Jesse Hallc7467b72015-11-29 21:05:26 -08002672/// Cull mode flags
2673type VkFlags VkCullModeFlags
2674bitfield VkCullModeFlagBits {
2675 VK_CULL_MODE_NONE = 0x00000000,
2676 VK_CULL_MODE_FRONT_BIT = 0x00000001,
2677 VK_CULL_MODE_BACK_BIT = 0x00000002,
2678 VK_CULL_MODE_FRONT_AND_BACK = 0x00000003,
2679}
2680
Ian Elliott28bd2c32017-10-13 09:21:12 -06002681//@vulkan1_1 flags
Daniel Koch09f7bf92017-10-05 00:26:58 -04002682
2683/// Subgroup feature flags
2684type VkFlags VkSubgroupFeatureFlags
2685bitfield VkSubgroupFeatureFlagBits {
2686 VK_SUBGROUP_FEATURE_BASIC_BIT = 0x00000001,
2687 VK_SUBGROUP_FEATURE_VOTE_BIT = 0x00000002,
2688 VK_SUBGROUP_FEATURE_ARITHMETIC_BIT = 0x00000004,
2689 VK_SUBGROUP_FEATURE_BALLOT_BIT = 0x00000008,
2690 VK_SUBGROUP_FEATURE_SHUFFLE_BIT = 0x00000010,
2691 VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT = 0x00000020,
2692 VK_SUBGROUP_FEATURE_CLUSTERED_BIT = 0x00000040,
2693 VK_SUBGROUP_FEATURE_QUAD_BIT = 0x00000080,
Jesse Hall72e6a132018-04-06 13:00:44 -07002694
2695 //@extension("VK_NV_shader_subgroup_partitioned") // 199
2696 VK_SUBGROUP_FEATURE_PARTITIONED_BIT_NV = 0x00000100,
Daniel Koch09f7bf92017-10-05 00:26:58 -04002697}
2698
2699/// Peer memory feature flags
2700type VkFlags VkPeerMemoryFeatureFlags
2701bitfield VkPeerMemoryFeatureFlagBits {
2702 VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT = 0x00000001,
2703 VK_PEER_MEMORY_FEATURE_COPY_DST_BIT = 0x00000002,
2704 VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT = 0x00000004,
2705 VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT = 0x00000008,
2706}
2707
2708/// Memory allocation flags
2709type VkFlags VkMemoryAllocateFlags
2710bitfield VkMemoryAllocateFlagBits {
2711 VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT = 0x00000001,
2712}
2713
2714type VkFlags VkCommandPoolTrimFlags
2715//bitfield VkCommandPoolTrimFlagBits {
2716//}
2717
2718type VkFlags VkDescriptorUpdateTemplateCreateFlags
2719//bitfield VkDescriptorUpdateTemplateCreateFlagBits {
2720//}
2721
2722/// External memory handle type flags
2723type VkFlags VkExternalMemoryHandleTypeFlags
2724bitfield VkExternalMemoryHandleTypeFlagBits {
2725 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT = 0x00000001,
2726 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT = 0x00000002,
2727 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 0x00000004,
2728 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT = 0x00000008,
2729 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT = 0x00000010,
2730 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT = 0x00000020,
2731 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT = 0x00000040,
Jesse Hall8c954d32018-01-17 22:06:20 -08002732
Jesse Hall8c954d32018-01-17 22:06:20 -08002733 //@extension("VK_EXT_external_memory_host") // 179
Jesse Hall36215a92018-01-18 15:04:37 -08002734 VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT = 0x00000080,
2735 VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT = 0x00000100,
2736
2737 //@extension("VK_EXT_external_memory_dma_buf") // 126
2738 VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT = 0x00000200,
2739
2740 //@extension("VK_ANDROID_external_memory_android_hardware_buffer") // 130
2741 VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID = 0x00000400,
Daniel Koch09f7bf92017-10-05 00:26:58 -04002742}
2743
2744/// External memory feature flags
2745type VkFlags VkExternalMemoryFeatureFlags
2746bitfield VkExternalMemoryFeatureFlagBits {
2747 VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT = 0x00000001,
2748 VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT = 0x00000002,
2749 VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT = 0x00000004,
2750}
2751
2752/// External fence handle type flags
2753type VkFlags VkExternalFenceHandleTypeFlags
2754bitfield VkExternalFenceHandleTypeFlagBits {
2755 VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT = 0x00000001,
2756 VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT = 0x00000002,
2757 VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 0x00000004,
2758 VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT = 0x00000008,
2759}
2760
2761/// External fence feature flags
2762type VkFlags VkExternalFenceFeatureFlags
2763bitfield VkExternalFenceFeatureFlagBits {
2764 VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT = 0x00000001,
2765 VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT = 0x00000002,
2766}
2767
2768/// Fence import flags
2769type VkFlags VkFenceImportFlags
2770bitfield VkFenceImportFlagBits {
2771 VK_FENCE_IMPORT_TEMPORARY_BIT = 0x00000001,
2772}
2773
2774/// Semaphore import flags
2775type VkFlags VkSemaphoreImportFlags
2776bitfield VkSemaphoreImportFlagBits {
2777 VK_SEMAPHORE_IMPORT_TEMPORARY_BIT = 0x00000001,
2778}
2779
2780/// External semaphore handle type flags
2781type VkFlags VkExternalSemaphoreHandleTypeFlags
2782bitfield VkExternalSemaphoreHandleTypeFlagBits {
2783 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT = 0x00000001,
2784 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT = 0x00000002,
2785 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 0x00000004,
2786 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT = 0x00000008,
2787 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT = 0x00000010,
2788}
2789
2790/// External semaphore feature flags
2791type VkFlags VkExternalSemaphoreFeatureFlags
2792bitfield VkExternalSemaphoreFeatureFlagBits {
2793 VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT = 0x00000001,
2794 VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT = 0x00000002,
2795}
2796
Jesse Hallad250842017-03-10 18:35:38 -08002797@extension("VK_KHR_surface") // 1
Jesse Halld8bade02015-11-24 10:24:18 -08002798type VkFlags VkSurfaceTransformFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08002799@extension("VK_KHR_surface") // 1
Jesse Halld8bade02015-11-24 10:24:18 -08002800bitfield VkSurfaceTransformFlagBitsKHR {
Jesse Hallf9fa9a52016-01-08 16:08:51 -08002801 VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR = 0x00000001,
Jesse Hall9ba8bc82015-11-30 16:22:16 -08002802 VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR = 0x00000002,
2803 VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR = 0x00000004,
2804 VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR = 0x00000008,
2805 VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR = 0x00000010,
2806 VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR = 0x00000020,
2807 VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR = 0x00000040,
2808 VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR = 0x00000080,
2809 VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR = 0x00000100,
Michael Lentine88594d72015-11-12 12:49:45 -08002810}
Jesse Halld27f6aa2015-08-15 17:58:48 -07002811
Jesse Hallad250842017-03-10 18:35:38 -08002812@extension("VK_KHR_surface") // 1
Jesse Halla6429252015-11-29 18:59:42 -08002813type VkFlags VkCompositeAlphaFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08002814@extension("VK_KHR_surface") // 1
Jesse Halla6429252015-11-29 18:59:42 -08002815bitfield VkCompositeAlphaFlagBitsKHR {
2816 VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR = 0x00000001,
2817 VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR = 0x00000002,
2818 VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR = 0x00000004,
2819 VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR = 0x00000008,
2820}
2821
Jesse Hallad250842017-03-10 18:35:38 -08002822@extension("VK_KHR_swapchain") // 2
Jesse Hallf4ab2b12015-11-30 16:04:55 -08002823type VkFlags VkSwapchainCreateFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08002824@extension("VK_KHR_swapchain") // 2
2825bitfield VkSwapchainCreateFlagBitsKHR {
Ian Elliott28bd2c32017-10-13 09:21:12 -06002826 //@vulkan1_1
Jesse Hall8c954d32018-01-17 22:06:20 -08002827 VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR = 0x00000001,
Daniel Koch09f7bf92017-10-05 00:26:58 -04002828 VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR = 0x00000002,
2829}
2830
Ian Elliott28bd2c32017-10-13 09:21:12 -06002831@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04002832@extension("VK_KHR_swapchain") // 2
2833type VkFlags VkDeviceGroupPresentModeFlagsKHR
Ian Elliott28bd2c32017-10-13 09:21:12 -06002834@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04002835@extension("VK_KHR_swapchain") // 2
2836bitfield VkDeviceGroupPresentModeFlagBitsKHR {
2837 VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR = 0x00000001,
2838 VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR = 0x00000002,
2839 VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR = 0x00000004,
2840 VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR = 0x00000008,
Jesse Hallad250842017-03-10 18:35:38 -08002841}
Jesse Hallf4ab2b12015-11-30 16:04:55 -08002842
Jesse Hallad250842017-03-10 18:35:38 -08002843@extension("VK_KHR_display") // 3
Jesse Halld8bade02015-11-24 10:24:18 -08002844type VkFlags VkDisplayPlaneAlphaFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08002845@extension("VK_KHR_display") // 3
Jesse Halld8bade02015-11-24 10:24:18 -08002846bitfield VkDisplayPlaneAlphaFlagBitsKHR {
Jesse Hallf4ab2b12015-11-30 16:04:55 -08002847 VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR = 0x00000001,
2848 VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR = 0x00000002,
2849 VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR = 0x00000004,
2850 VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR = 0x00000008,
Jesse Hall1356b0d2015-11-23 17:24:58 -08002851}
2852
Jesse Hallad250842017-03-10 18:35:38 -08002853@extension("VK_KHR_display") // 3
Jesse Hallf4ab2b12015-11-30 16:04:55 -08002854type VkFlags VkDisplaySurfaceCreateFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08002855//@extension("VK_KHR_display") // 3
Jesse Hallf4ab2b12015-11-30 16:04:55 -08002856//bitfield VkDisplaySurfaceCreateFlagBitsKHR {
2857//}
2858
Jesse Hallad250842017-03-10 18:35:38 -08002859@extension("VK_KHR_display") // 3
Jesse Hall9ba8bc82015-11-30 16:22:16 -08002860type VkFlags VkDisplayModeCreateFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08002861//@extension("VK_KHR_display") // 3
Jesse Hall9ba8bc82015-11-30 16:22:16 -08002862//bitfield VkDisplayModeCreateFlagBitsKHR {
2863//}
2864
Jesse Hallad250842017-03-10 18:35:38 -08002865@extension("VK_KHR_xlib_surface") // 5
Jesse Hallf9fa9a52016-01-08 16:08:51 -08002866type VkFlags VkXlibSurfaceCreateFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08002867//@extension("VK_KHR_xlib_surface") // 5
Jesse Hallf9fa9a52016-01-08 16:08:51 -08002868//bitfield VkXlibSurfaceCreateFlagBitsKHR {
2869//}
2870
Jesse Hallad250842017-03-10 18:35:38 -08002871@extension("VK_KHR_xcb_surface") // 6
Jesse Hallf9fa9a52016-01-08 16:08:51 -08002872type VkFlags VkXcbSurfaceCreateFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08002873//@extension("VK_KHR_xcb_surface") // 6
Jesse Hallf9fa9a52016-01-08 16:08:51 -08002874//bitfield VkXcbSurfaceCreateFlagBitsKHR {
2875//}
2876
Jesse Hallad250842017-03-10 18:35:38 -08002877@extension("VK_KHR_wayland_surface") // 7
Jesse Hallf9fa9a52016-01-08 16:08:51 -08002878type VkFlags VkWaylandSurfaceCreateFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08002879//@extension("VK_KHR_wayland_surface") // 7
Jesse Hallf9fa9a52016-01-08 16:08:51 -08002880//bitfield VkWaylandSurfaceCreateFlagBitsKHR {
2881//}
2882
Jesse Hallad250842017-03-10 18:35:38 -08002883@extension("VK_KHR_mir_surface") // 8
Jesse Hallf9fa9a52016-01-08 16:08:51 -08002884type VkFlags VkMirSurfaceCreateFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08002885//@extension("VK_KHR_mir_surface") // 8
Jesse Hallf9fa9a52016-01-08 16:08:51 -08002886//bitfield VkMirSurfaceCreateFlagBitsKHR {
2887//}
2888
Jesse Hallad250842017-03-10 18:35:38 -08002889@extension("VK_KHR_android_surface") // 9
Jesse Hallf9fa9a52016-01-08 16:08:51 -08002890type VkFlags VkAndroidSurfaceCreateFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08002891//@extension("VK_KHR_android_surface") // 9
Jesse Hallf9fa9a52016-01-08 16:08:51 -08002892//bitfield VkAndroidSurfaceCreateFlagBitsKHR {
2893//}
2894
Jesse Hallad250842017-03-10 18:35:38 -08002895@extension("VK_KHR_win32_surface") // 10
Jesse Hallf9fa9a52016-01-08 16:08:51 -08002896type VkFlags VkWin32SurfaceCreateFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08002897//@extension("VK_KHR_win32_surface") // 10
Jesse Hallf9fa9a52016-01-08 16:08:51 -08002898//bitfield VkWin32SurfaceCreateFlagBitsKHR {
2899//}
2900
Jesse Hallad250842017-03-10 18:35:38 -08002901@extension("VK_ANDROID_native_buffer") // 11
Jesse Hall889cd9a2017-02-25 22:12:23 -08002902type VkFlags VkSwapchainImageUsageFlagsANDROID
Jesse Hallad250842017-03-10 18:35:38 -08002903@extension("VK_ANDROID_native_buffer") // 11
Jesse Hall889cd9a2017-02-25 22:12:23 -08002904bitfield VkSwapchainImageUsageFlagBitsANDROID {
2905 VK_SWAPCHAIN_IMAGE_USAGE_FLAGS_SHARED_BIT_ANDROID = 0x00000001,
2906}
2907
Jesse Hallad250842017-03-10 18:35:38 -08002908@extension("VK_EXT_debug_report") // 12
Jesse Hall715b86a2016-01-16 16:34:29 -08002909type VkFlags VkDebugReportFlagsEXT
Jesse Hallad250842017-03-10 18:35:38 -08002910@extension("VK_EXT_debug_report") // 12
Jesse Hall715b86a2016-01-16 16:34:29 -08002911bitfield VkDebugReportFlagBitsEXT {
Jesse Halle2948d82016-02-25 04:19:32 -08002912 VK_DEBUG_REPORT_INFORMATION_BIT_EXT = 0x00000001,
2913 VK_DEBUG_REPORT_WARNING_BIT_EXT = 0x00000002,
2914 VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT = 0x00000004,
Jesse Hall715b86a2016-01-16 16:34:29 -08002915 VK_DEBUG_REPORT_ERROR_BIT_EXT = 0x00000008,
2916 VK_DEBUG_REPORT_DEBUG_BIT_EXT = 0x00000010,
2917}
2918
Jesse Hallad250842017-03-10 18:35:38 -08002919@extension("VK_NV_external_memory_capabilities") // 56
Chris Forbes289cb792016-12-30 15:03:55 +13002920type VkFlags VkExternalMemoryHandleTypeFlagsNV
Jesse Hallad250842017-03-10 18:35:38 -08002921@extension("VK_NV_external_memory_capabilities") // 56
Chris Forbes289cb792016-12-30 15:03:55 +13002922bitfield VkExternalMemoryHandleTypeFlagBitsNV {
Jesse Halleb02c472017-02-24 15:13:45 -08002923 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV = 0x00000001,
2924 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV = 0x00000002,
2925 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV = 0x00000004,
2926 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV = 0x00000008,
Chris Forbes289cb792016-12-30 15:03:55 +13002927}
2928
Jesse Hallad250842017-03-10 18:35:38 -08002929@extension("VK_NV_external_memory_capabilities") // 56
Chris Forbes289cb792016-12-30 15:03:55 +13002930type VkFlags VkExternalMemoryFeatureFlagsNV
Jesse Hallad250842017-03-10 18:35:38 -08002931@extension("VK_NV_external_memory_capabilities") // 56
Chris Forbes289cb792016-12-30 15:03:55 +13002932bitfield VkExternalMemoryFeatureFlagBitsNV {
Jesse Halleb02c472017-02-24 15:13:45 -08002933 VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV = 0x00000001,
2934 VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV = 0x00000002,
2935 VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV = 0x00000004,
Chris Forbes289cb792016-12-30 15:03:55 +13002936}
2937
Daniel Koch09f7bf92017-10-05 00:26:58 -04002938@extension("VK_KHR_device_group") // 61
2939type VkFlags VkPeerMemoryFeatureFlagsKHR
2940@extension("VK_KHR_device_group") // 61
2941bitfield VkPeerMemoryFeatureFlagBitsKHR {
2942 VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT_KHR = 0x00000001,
2943 VK_PEER_MEMORY_FEATURE_COPY_DST_BIT_KHR = 0x00000002,
2944 VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT_KHR = 0x00000004,
2945 VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT_KHR = 0x00000008,
Jesse Hallad250842017-03-10 18:35:38 -08002946}
2947
Daniel Koch09f7bf92017-10-05 00:26:58 -04002948@extension("VK_KHR_device_group") // 61
2949type VkFlags VkMemoryAllocateFlagsKHR
2950@extension("VK_KHR_device_group") // 61
2951bitfield VkMemoryAllocateFlagBitsKHR {
2952 VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT_KHR = 0x00000001,
Jesse Hallad250842017-03-10 18:35:38 -08002953}
2954
2955@extension("VK_NN_vi_surface") // 63
Jesse Hall77ad05b2017-03-10 22:02:20 -08002956type VkFlags VkViSurfaceCreateFlagsNN
Jesse Hallad250842017-03-10 18:35:38 -08002957//@extension("VK_NN_vi_surface") // 63
Jesse Hall77ad05b2017-03-10 22:02:20 -08002958//bitfield VkViSurfaceCreateFlagBitsNN {
2959//}
2960
Jesse Hallad250842017-03-10 18:35:38 -08002961@extension("VK_KHR_maintenance1") // 70
Jesse Hall77ad05b2017-03-10 22:02:20 -08002962type VkFlags VkCommandPoolTrimFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08002963//@extension("VK_KHR_maintenance1") // 70
Jesse Hall77ad05b2017-03-10 22:02:20 -08002964//bitfield VkCommandPoolTrimFlagBitsKHR {
2965//}
2966
Jesse Hall9492f992017-08-28 12:10:06 -07002967@extension("VK_KHR_external_memory_capabilities") // 72
2968type VkFlags VkExternalMemoryHandleTypeFlagsKHR
2969@extension("VK_KHR_external_memory_capabilities") // 72
2970bitfield VkExternalMemoryHandleTypeFlagBitsKHR {
2971 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = 0x00000001,
2972 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = 0x00000002,
2973 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = 0x00000004,
2974 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT_KHR = 0x00000008,
2975 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT_KHR = 0x00000010,
2976 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT_KHR = 0x00000020,
2977 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT_KHR = 0x00000040,
Jesse Hallad250842017-03-10 18:35:38 -08002978}
2979
Jesse Hall9492f992017-08-28 12:10:06 -07002980@extension("VK_KHR_external_memory_capabilities") // 72
2981type VkFlags VkExternalMemoryFeatureFlagsKHR
2982@extension("VK_KHR_external_memory_capabilities") // 72
2983bitfield VkExternalMemoryFeatureFlagBitsKHR {
2984 VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_KHR = 0x00000001,
2985 VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_KHR = 0x00000002,
2986 VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_KHR = 0x00000004,
Jesse Hallad250842017-03-10 18:35:38 -08002987}
2988
Jesse Hall9492f992017-08-28 12:10:06 -07002989@extension("VK_KHR_external_semaphore_capabilities") // 77
2990type VkFlags VkExternalSemaphoreHandleTypeFlagsKHR
2991@extension("VK_KHR_external_semaphore_capabilities") // 77
2992bitfield VkExternalSemaphoreHandleTypeFlagBitsKHR {
2993 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = 0x00000001
2994 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = 0x00000002
2995 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = 0x00000004
2996 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT_KHR = 0x00000008
2997 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_FENCE_FD_BIT_KHR = 0x00000010
Jesse Hallad250842017-03-10 18:35:38 -08002998}
2999
Jesse Hall9492f992017-08-28 12:10:06 -07003000@extension("VK_KHR_external_semaphore_capabilities") // 77
3001type VkFlags VkExternalSemaphoreFeatureFlagsKHR
3002@extension("VK_KHR_external_semaphore_capabilities") // 77
3003bitfield VkExternalSemaphoreFeatureFlagBitsKHR {
3004 VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT_KHR = 0x00000001,
3005 VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT_KHR = 0x00000002,
3006}
3007
3008@extension("VK_KHR_external_semaphore") // 78
3009type VkFlags VkSemaphoreImportFlagsKHR
3010@extension("VK_KHR_external_semaphore") // 78
3011bitfield VkSemaphoreImportFlagBitsKHR {
3012 VK_SEMAPHORE_IMPORT_TEMPORARY_BIT_KHR = 0x00000001,
Jesse Hallad250842017-03-10 18:35:38 -08003013}
3014
Jesse Halla13a3cf2018-07-09 15:51:52 -07003015@extension("VK_EXT_conditional_rendering") // 82
3016type VkFlags VkConditionalRenderingFlagsEXT
3017@extension("VK_EXT_conditional_rendering") // 82
3018bitfield VkConditionalRenderingFlagBitsEXT {
3019 VK_CONDITIONAL_RENDERING_INVERTED_BIT_EXT = 0x00000001,
3020}
3021
Jesse Hallad250842017-03-10 18:35:38 -08003022@extension("VK_KHR_descriptor_update_template") // 86
3023type VkFlags VkDescriptorUpdateTemplateCreateFlagsKHR
3024//@extension("VK_KHR_descriptor_update_template") // 86
3025//bitfield VkDescriptorUpdateTemplateCreateFlagBitsKHR {
3026//}
3027
3028@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13003029type VkFlags VkIndirectCommandsLayoutUsageFlagsNVX
Jesse Hallad250842017-03-10 18:35:38 -08003030@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13003031bitfield VkIndirectCommandsLayoutUsageFlagBitsNVX {
Jesse Halleb02c472017-02-24 15:13:45 -08003032 VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NVX = 0x00000001,
3033 VK_INDIRECT_COMMANDS_LAYOUT_USAGE_SPARSE_SEQUENCES_BIT_NVX = 0x00000002,
3034 VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EMPTY_EXECUTIONS_BIT_NVX = 0x00000004,
3035 VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NVX = 0x00000008,
Chris Forbes289cb792016-12-30 15:03:55 +13003036}
3037
Jesse Hallad250842017-03-10 18:35:38 -08003038@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13003039type VkFlags VkObjectEntryUsageFlagsNVX
Jesse Hallad250842017-03-10 18:35:38 -08003040@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13003041bitfield VkObjectEntryUsageFlagBitsNVX {
Jesse Halleb02c472017-02-24 15:13:45 -08003042 VK_OBJECT_ENTRY_USAGE_GRAPHICS_BIT_NVX = 0x00000001,
3043 VK_OBJECT_ENTRY_USAGE_COMPUTE_BIT_NVX = 0x00000002,
Chris Forbes289cb792016-12-30 15:03:55 +13003044}
3045
Jesse Hallad250842017-03-10 18:35:38 -08003046@extension("VK_EXT_display_surface_counter") // 91
Jesse Hall77ad05b2017-03-10 22:02:20 -08003047type VkFlags VkSurfaceCounterFlagsEXT
Jesse Hallad250842017-03-10 18:35:38 -08003048@extension("VK_EXT_display_surface_counter") // 91
Jesse Hall77ad05b2017-03-10 22:02:20 -08003049bitfield VkSurfaceCounterFlagBitsEXT {
3050 VK_SURFACE_COUNTER_VBLANK_EXT = 0x00000001,
3051}
3052
Jesse Hallad250842017-03-10 18:35:38 -08003053@extension("VK_NV_viewport_swizzle") // 99
3054type VkFlags VkPipelineViewportSwizzleStateCreateFlagsNV
3055//@extension("VK_NV_viewport_swizzle") // 99
3056//bitfield VkPipelineViewportSwizzleStateCreateFlagBitsNV {
3057//}
3058
3059@extension("VK_EXT_discard_rectangles") // 100
3060type VkFlags VkPipelineDiscardRectangleStateCreateFlagsEXT
3061//@extension("VK_EXT_discard_rectangles") // 100
3062//bitfield VkPipelineDiscardRectangleStateCreateFlagBitsEXT {
3063//}
3064
Jesse Hall8c954d32018-01-17 22:06:20 -08003065@extension("VK_EXT_conservative_rasterization") // 102
3066type VkFlags VkPipelineRasterizationConservativeStateCreateFlagsEXT
3067//@extension("VK_EXT_conservative_rasterization") // 102
3068//bitfield VkPipelineRasterizationConservativeStateCreateFlagBitsEXT {
3069//}
3070
Jesse Hall9492f992017-08-28 12:10:06 -07003071@extension("VK_KHR_external_fence_capabilities") // 113
3072type VkFlags VkExternalFenceHandleTypeFlagsKHR
3073@extension("VK_KHR_external_fence_capabilities") // 113
3074bitfield VkExternalFenceHandleTypeFlagBitsKHR {
3075 VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = 0x00000001,
3076 VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = 0x00000002,
3077 VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = 0x00000004,
3078 VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT_KHR = 0x00000008,
3079}
3080
3081@extension("VK_KHR_external_fence_capabilities") // 113
3082type VkFlags VkExternalFenceFeatureFlagsKHR
3083@extension("VK_KHR_external_fence_capabilities") // 113
3084bitfield VkExternalFenceFeatureFlagBitsKHR {
3085 VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT_KHR = 0x00000001,
3086 VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT_KHR = 0x00000002,
3087}
3088
3089@extension("VK_KHR_external_fence") // 114
3090type VkFlags VkFenceImportFlagsKHR
3091@extension("VK_KHR_external_fence") // 114
3092bitfield VkFenceImportFlagBitsKHR {
3093 VK_FENCE_IMPORT_TEMPORARY_BIT_KHR = 0x00000001,
3094}
3095
Jesse Hallad250842017-03-10 18:35:38 -08003096@extension("VK_MVK_ios_surface") // 123
3097type VkFlags VkIOSSurfaceCreateFlagsMVK
3098//@extension("VK_MVK_ios_surface") // 123
3099//bitfield VkIOSSurfaceCreateFlagBitsMVK {
3100//}
3101
3102@extension("VK_MVK_macos_surface") // 124
3103type VkFlags VkMacOSSurfaceCreateFlagsMVK
3104//@extension("VK_MVK_macos_surface") // 124
3105//bitfield VkMacOSSurfaceCreateFlagBitsMVK {
3106//}
3107
Jesse Hall8c954d32018-01-17 22:06:20 -08003108@extension("VK_EXT_debug_utils") // 129
3109type VkFlags VkDebugUtilsMessengerCallbackDataFlagsEXT
3110//@extension("VK_EXT_debug_utils") // 129
3111//bitfield VkDebugUtilsMessengerCallbackDataFlagBitsEXT {
3112//}
3113
3114@extension("VK_EXT_debug_utils") // 129
3115type VkFlags VkDebugUtilsMessengerCreateFlagsEXT
3116//@extension("VK_EXT_debug_utils") // 129
3117//bitfield VkDebugUtilsMessengerCreateFlagBitsEXT {
3118//}
3119
3120@extension("VK_EXT_debug_utils") // 129
3121type VkFlags VkDebugUtilsMessageSeverityFlagsEXT
3122@extension("VK_EXT_debug_utils") // 129
3123bitfield VkDebugUtilsMessageSeverityFlagBitsEXT {
3124 VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT = 0x00000001,
3125 VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT = 0x00000010,
3126 VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT = 0x00000100,
3127 VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT = 0x00001000,
3128}
3129
3130@extension("VK_EXT_debug_utils") // 129
3131type VkFlags VkDebugUtilsMessageTypeFlagsEXT
3132@extension("VK_EXT_debug_utils") // 129
3133bitfield VkDebugUtilsMessageTypeFlagBitsEXT {
3134 VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT = 0x00000001,
3135 VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT = 0x00000002,
3136 VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT = 0x00000004,
3137}
3138
Jesse Hall7ba0ac72017-07-07 17:13:23 -07003139@extension("VK_NV_fragment_coverage_to_color") // 150
3140type VkFlags VkPipelineCoverageToColorStateCreateFlagsNV
3141@extension("VK_NV_fragment_coverage_to_color") // 150
3142//bitfield VkPipelineCoverageToColorStateCreateFlagBitsNV {
3143//}
3144
3145@extension("VK_NV_framebuffer_mixed_samples") // 153
3146type VkFlags VkPipelineCoverageModulationStateCreateFlagsNV
3147@extension("VK_NV_framebuffer_mixed_samples") // 153
3148//bitfield VkPipelineCoverageModulationStateCreateFlagBitsNV {
3149//}
3150
Jesse Hall77726222017-09-19 14:49:27 -05003151@extension("VK_EXT_validation_cache") // 161
3152type VkFlags VkValidationCacheCreateFlagsEXT
3153@extension("VK_EXT_validation_cache") // 161
3154//bitfield VkValidationCacheCreateFlagBitsEXT {
3155//}
3156
Jesse Hall72e6a132018-04-06 13:00:44 -07003157@extension("VK_EXT_descriptor_indexing") // 162
3158type VkFlags VkDescriptorBindingFlagsEXT
3159@extension("VK_EXT_descriptor_indexing") // 162
3160bitfield VkDescriptorBindingFlagBitsEXT {
3161 VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT_EXT = 0x00000001,
3162 VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT_EXT = 0x00000002,
3163 VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT_EXT = 0x00000004,
3164 VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT_EXT = 0x00000008,
3165}
3166
Jesse Halld27f6aa2015-08-15 17:58:48 -07003167//////////////////
3168// Structures //
3169//////////////////
3170
3171class VkOffset2D {
3172 s32 x
3173 s32 y
3174}
3175
3176class VkOffset3D {
3177 s32 x
3178 s32 y
3179 s32 z
3180}
3181
3182class VkExtent2D {
Jesse Hall3dd678a2016-01-08 21:52:01 -08003183 u32 width
3184 u32 height
Jesse Halld27f6aa2015-08-15 17:58:48 -07003185}
3186
3187class VkExtent3D {
Jesse Hall3dd678a2016-01-08 21:52:01 -08003188 u32 width
3189 u32 height
3190 u32 depth
Jesse Halld27f6aa2015-08-15 17:58:48 -07003191}
3192
3193class VkViewport {
Jesse Hall65ab5522015-11-30 00:07:16 -08003194 f32 x
3195 f32 y
Jesse Halld27f6aa2015-08-15 17:58:48 -07003196 f32 width
3197 f32 height
3198 f32 minDepth
3199 f32 maxDepth
3200}
3201
3202class VkRect2D {
3203 VkOffset2D offset
3204 VkExtent2D extent
3205}
3206
Jesse Halla15a4bf2015-11-19 22:48:02 -08003207class VkClearRect {
3208 VkRect2D rect
3209 u32 baseArrayLayer
Jesse Hall3fbc8562015-11-29 22:10:52 -08003210 u32 layerCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07003211}
3212
Jesse Hall65ab5522015-11-30 00:07:16 -08003213class VkComponentMapping {
3214 VkComponentSwizzle r
3215 VkComponentSwizzle g
3216 VkComponentSwizzle b
3217 VkComponentSwizzle a
Jesse Halld27f6aa2015-08-15 17:58:48 -07003218}
3219
3220class VkPhysicalDeviceProperties {
3221 u32 apiVersion
3222 u32 driverVersion
Jesse Hall65ab5522015-11-30 00:07:16 -08003223 u32 vendorID
3224 u32 deviceID
Jesse Halld27f6aa2015-08-15 17:58:48 -07003225 VkPhysicalDeviceType deviceType
Jesse Hall65ab5522015-11-30 00:07:16 -08003226 char[VK_MAX_PHYSICAL_DEVICE_NAME_SIZE] deviceName
3227 u8[VK_UUID_SIZE] pipelineCacheUUID
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003228 VkPhysicalDeviceLimits limits
3229 VkPhysicalDeviceSparseProperties sparseProperties
Jesse Halld27f6aa2015-08-15 17:58:48 -07003230}
3231
3232class VkExtensionProperties {
Jesse Hall65ab5522015-11-30 00:07:16 -08003233 char[VK_MAX_EXTENSION_NAME_SIZE] extensionName /// extension name
Jesse Halld27f6aa2015-08-15 17:58:48 -07003234 u32 specVersion /// version of the extension specification implemented
3235}
3236
3237class VkLayerProperties {
Jesse Hall65ab5522015-11-30 00:07:16 -08003238 char[VK_MAX_EXTENSION_NAME_SIZE] layerName /// layer name
Jesse Hall3fbc8562015-11-29 22:10:52 -08003239 u32 specVersion /// version of the layer specification implemented
3240 u32 implementationVersion /// build or release version of the layer's library
Jesse Hall65ab5522015-11-30 00:07:16 -08003241 char[VK_MAX_DESCRIPTION_SIZE] description /// Free-form description of the layer
Jesse Halld27f6aa2015-08-15 17:58:48 -07003242}
3243
Jesse Halla366a512015-11-19 22:30:07 -08003244class VkSubmitInfo {
Jesse Hall03b6fe12015-11-24 12:44:21 -08003245 VkStructureType sType /// Type of structure. Should be VK_STRUCTURE_TYPE_SUBMIT_INFO
3246 const void* pNext /// Next structure in chain
3247 u32 waitSemaphoreCount
Jesse Halla366a512015-11-19 22:30:07 -08003248 const VkSemaphore* pWaitSemaphores
Jesse Hall543a7ff2016-01-08 16:38:30 -08003249 const VkPipelineStageFlags* pWaitDstStageMask
Jesse Hall03b6fe12015-11-24 12:44:21 -08003250 u32 commandBufferCount
Jesse Hall3fbc8562015-11-29 22:10:52 -08003251 const VkCommandBuffer* pCommandBuffers
Jesse Hall03b6fe12015-11-24 12:44:21 -08003252 u32 signalSemaphoreCount
Jesse Halla366a512015-11-19 22:30:07 -08003253 const VkSemaphore* pSignalSemaphores
3254}
3255
Jesse Halld27f6aa2015-08-15 17:58:48 -07003256class VkApplicationInfo {
3257 VkStructureType sType /// Type of structure. Should be VK_STRUCTURE_TYPE_APPLICATION_INFO
3258 const void* pNext /// Next structure in chain
Jesse Hall3fbc8562015-11-29 22:10:52 -08003259 const char* pApplicationName
3260 u32 applicationVersion
Jesse Halld27f6aa2015-08-15 17:58:48 -07003261 const char* pEngineName
3262 u32 engineVersion
3263 u32 apiVersion
3264}
3265
Jesse Hall3fbc8562015-11-29 22:10:52 -08003266class VkAllocationCallbacks {
Jesse Halld27f6aa2015-08-15 17:58:48 -07003267 void* pUserData
Jesse Hall3fbc8562015-11-29 22:10:52 -08003268 PFN_vkAllocationFunction pfnAllocation
3269 PFN_vkReallocationFunction pfnReallocation
Jesse Halld27f6aa2015-08-15 17:58:48 -07003270 PFN_vkFreeFunction pfnFree
Jesse Hall3fbc8562015-11-29 22:10:52 -08003271 PFN_vkInternalAllocationNotification pfnInternalAllocation
Jesse Hall03b6fe12015-11-24 12:44:21 -08003272 PFN_vkInternalFreeNotification pfnInternalFree
Jesse Halld27f6aa2015-08-15 17:58:48 -07003273}
3274
3275class VkDeviceQueueCreateInfo {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003276 VkStructureType sStype /// Should be VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO
3277 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003278 VkDeviceQueueCreateFlags flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07003279 u32 queueFamilyIndex
Jesse Halldba27f72015-11-30 14:25:46 -08003280 u32 queueCount
Jesse Hallfbf97b02015-11-20 14:17:03 -08003281 const f32* pQueuePriorities
Jesse Halld27f6aa2015-08-15 17:58:48 -07003282}
3283
3284class VkDeviceCreateInfo {
3285 VkStructureType sType /// Should be VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO
3286 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003287 VkDeviceCreateFlags flags
Jesse Halldba27f72015-11-30 14:25:46 -08003288 u32 queueCreateInfoCount
3289 const VkDeviceQueueCreateInfo* pQueueCreateInfos
Jesse Hall3dd678a2016-01-08 21:52:01 -08003290 u32 enabledLayerCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07003291 const char* const* ppEnabledLayerNames /// Ordered list of layer names to be enabled
Jesse Hall3dd678a2016-01-08 21:52:01 -08003292 u32 enabledExtensionCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07003293 const char* const* ppEnabledExtensionNames
3294 const VkPhysicalDeviceFeatures* pEnabledFeatures
Jesse Halld27f6aa2015-08-15 17:58:48 -07003295}
3296
3297class VkInstanceCreateInfo {
3298 VkStructureType sType /// Should be VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO
3299 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003300 VkInstanceCreateFlags flags
Jesse Hall3fbc8562015-11-29 22:10:52 -08003301 const VkApplicationInfo* pApplicationInfo
Jesse Hall3dd678a2016-01-08 21:52:01 -08003302 u32 enabledLayerCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07003303 const char* const* ppEnabledLayerNames /// Ordered list of layer names to be enabled
Jesse Hall3dd678a2016-01-08 21:52:01 -08003304 u32 enabledExtensionCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07003305 const char* const* ppEnabledExtensionNames /// Extension names to be enabled
3306}
3307
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003308class VkQueueFamilyProperties {
Jesse Halld27f6aa2015-08-15 17:58:48 -07003309 VkQueueFlags queueFlags /// Queue flags
3310 u32 queueCount
Jesse Hallacfa5342015-11-19 21:51:33 -08003311 u32 timestampValidBits
Jesse Hall65ab5522015-11-30 00:07:16 -08003312 VkExtent3D minImageTransferGranularity
Jesse Halld27f6aa2015-08-15 17:58:48 -07003313}
3314
3315class VkPhysicalDeviceMemoryProperties {
3316 u32 memoryTypeCount
3317 VkMemoryType[VK_MAX_MEMORY_TYPES] memoryTypes
3318 u32 memoryHeapCount
3319 VkMemoryHeap[VK_MAX_MEMORY_HEAPS] memoryHeaps
3320}
3321
Jesse Hall3fbc8562015-11-29 22:10:52 -08003322class VkMemoryAllocateInfo {
Jesse Hallf4ab2b12015-11-30 16:04:55 -08003323 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO
Jesse Halld27f6aa2015-08-15 17:58:48 -07003324 const void* pNext /// Pointer to next structure
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003325 VkDeviceSize allocationSize /// Size of memory allocation
Jesse Halld27f6aa2015-08-15 17:58:48 -07003326 u32 memoryTypeIndex /// Index of the of the memory type to allocate from
3327}
3328
3329class VkMemoryRequirements {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003330 VkDeviceSize size /// Specified in bytes
3331 VkDeviceSize alignment /// Specified in bytes
Jesse Halld27f6aa2015-08-15 17:58:48 -07003332 u32 memoryTypeBits /// Bitfield of the allowed memory type indices into memoryTypes[] for this object
3333}
3334
3335class VkSparseImageFormatProperties {
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08003336 VkImageAspectFlagBits aspectMask
Jesse Halld27f6aa2015-08-15 17:58:48 -07003337 VkExtent3D imageGranularity
3338 VkSparseImageFormatFlags flags
3339}
3340
3341class VkSparseImageMemoryRequirements {
Jesse Hallb00daad2015-11-29 19:46:20 -08003342 VkSparseImageFormatProperties formatProperties
Jesse Hallf9fa9a52016-01-08 16:08:51 -08003343 u32 imageMipTailFirstLod
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003344 VkDeviceSize imageMipTailSize /// Specified in bytes, must be a multiple of image block size / alignment
3345 VkDeviceSize imageMipTailOffset /// Specified in bytes, must be a multiple of image block size / alignment
3346 VkDeviceSize imageMipTailStride /// Specified in bytes, must be a multiple of image block size / alignment
Jesse Halld27f6aa2015-08-15 17:58:48 -07003347}
3348
3349class VkMemoryType {
3350 VkMemoryPropertyFlags propertyFlags /// Memory properties of this memory type
3351 u32 heapIndex /// Index of the memory heap allocations of this memory type are taken from
3352}
3353
3354class VkMemoryHeap {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003355 VkDeviceSize size /// Available memory in the heap
Jesse Halld27f6aa2015-08-15 17:58:48 -07003356 VkMemoryHeapFlags flags /// Flags for the heap
3357}
3358
3359class VkMappedMemoryRange {
3360 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE
3361 const void* pNext /// Pointer to next structure
Jesse Hall3fbc8562015-11-29 22:10:52 -08003362 VkDeviceMemory memory /// Mapped memory object
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003363 VkDeviceSize offset /// Offset within the mapped memory the range starts from
3364 VkDeviceSize size /// Size of the range within the mapped memory
Jesse Halld27f6aa2015-08-15 17:58:48 -07003365}
3366
3367class VkFormatProperties {
3368 VkFormatFeatureFlags linearTilingFeatures /// Format features in case of linear tiling
3369 VkFormatFeatureFlags optimalTilingFeatures /// Format features in case of optimal tiling
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003370 VkFormatFeatureFlags bufferFeatures /// Format features supported by buffers
Jesse Halld27f6aa2015-08-15 17:58:48 -07003371}
3372
3373class VkImageFormatProperties {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003374 VkExtent3D maxExtent /// max image dimensions for this resource type
3375 u32 maxMipLevels /// max number of mipmap levels for this resource type
Jesse Halla15a4bf2015-11-19 22:48:02 -08003376 u32 maxArrayLayers /// max array layers for this resource type
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003377 VkSampleCountFlags sampleCounts /// supported sample counts for this resource type
3378 VkDeviceSize maxResourceSize /// max size (in bytes) of this resource type
3379}
3380
Jesse Halla15a4bf2015-11-19 22:48:02 -08003381class VkDescriptorImageInfo {
3382 VkSampler sampler
3383 VkImageView imageView
3384 VkImageLayout imageLayout
3385}
3386
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003387class VkDescriptorBufferInfo {
3388 VkBuffer buffer /// Buffer used for this descriptor when the descriptor is UNIFORM_BUFFER[_DYNAMIC]
3389 VkDeviceSize offset /// Base offset from buffer start in bytes to update in the descriptor set.
3390 VkDeviceSize range /// Size in bytes of the buffer resource for this descriptor update.
Jesse Halld27f6aa2015-08-15 17:58:48 -07003391}
3392
Jesse Halld27f6aa2015-08-15 17:58:48 -07003393class VkWriteDescriptorSet {
3394 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET
3395 const void* pNext /// Pointer to next structure
Jesse Hall3fbc8562015-11-29 22:10:52 -08003396 VkDescriptorSet dstSet /// Destination descriptor set
3397 u32 dstBinding /// Binding within the destination descriptor set to write
3398 u32 dstArrayElement /// Array element within the destination binding to write
Jesse Hall03b6fe12015-11-24 12:44:21 -08003399 u32 descriptorCount /// Number of descriptors to write (determines the size of the array pointed by <pDescriptors>)
Jesse Halld27f6aa2015-08-15 17:58:48 -07003400 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 -08003401 const VkDescriptorImageInfo* pImageInfo
3402 const VkDescriptorBufferInfo* pBufferInfo
3403 const VkBufferView* pTexelBufferView
Jesse Halld27f6aa2015-08-15 17:58:48 -07003404}
3405
3406class VkCopyDescriptorSet {
3407 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET
3408 const void* pNext /// Pointer to next structure
3409 VkDescriptorSet srcSet /// Source descriptor set
3410 u32 srcBinding /// Binding within the source descriptor set to copy from
3411 u32 srcArrayElement /// Array element within the source binding to copy from
Jesse Hall3fbc8562015-11-29 22:10:52 -08003412 VkDescriptorSet dstSet /// Destination descriptor set
3413 u32 dstBinding /// Binding within the destination descriptor set to copy to
3414 u32 dstArrayElement /// Array element within the destination binding to copy to
Jesse Hall03b6fe12015-11-24 12:44:21 -08003415 u32 descriptorCount /// Number of descriptors to copy
Jesse Halld27f6aa2015-08-15 17:58:48 -07003416}
3417
3418class VkBufferCreateInfo {
3419 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO
3420 const void* pNext /// Pointer to next structure.
Jesse Halla6429252015-11-29 18:59:42 -08003421 VkBufferCreateFlags flags /// Buffer creation flags
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003422 VkDeviceSize size /// Specified in bytes
Jesse Halld27f6aa2015-08-15 17:58:48 -07003423 VkBufferUsageFlags usage /// Buffer usage flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07003424 VkSharingMode sharingMode
Jesse Hall03b6fe12015-11-24 12:44:21 -08003425 u32 queueFamilyIndexCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07003426 const u32* pQueueFamilyIndices
3427}
3428
3429class VkBufferViewCreateInfo {
3430 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO
3431 const void* pNext /// Pointer to next structure.
Jesse Halla6429252015-11-29 18:59:42 -08003432 VkBufferViewCreateFlags flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07003433 VkBuffer buffer
Jesse Halld27f6aa2015-08-15 17:58:48 -07003434 VkFormat format /// Optionally specifies format of elements
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003435 VkDeviceSize offset /// Specified in bytes
3436 VkDeviceSize range /// View size specified in bytes
Jesse Halld27f6aa2015-08-15 17:58:48 -07003437}
3438
3439class VkImageSubresource {
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08003440 VkImageAspectFlagBits aspectMask
Jesse Halld27f6aa2015-08-15 17:58:48 -07003441 u32 mipLevel
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003442 u32 arrayLayer
Jesse Halld27f6aa2015-08-15 17:58:48 -07003443}
3444
3445class VkImageSubresourceRange {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003446 VkImageAspectFlags aspectMask
Jesse Halld27f6aa2015-08-15 17:58:48 -07003447 u32 baseMipLevel
Jesse Hall3fbc8562015-11-29 22:10:52 -08003448 u32 levelCount
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003449 u32 baseArrayLayer
Jesse Hall3fbc8562015-11-29 22:10:52 -08003450 u32 layerCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07003451}
3452
3453class VkMemoryBarrier {
3454 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_MEMORY_BARRIER
3455 const void* pNext /// Pointer to next structure.
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08003456 VkAccessFlags srcAccessMask
3457 VkAccessFlags dstAccessMask
Jesse Halld27f6aa2015-08-15 17:58:48 -07003458}
3459
3460class VkBufferMemoryBarrier {
3461 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER
3462 const void* pNext /// Pointer to next structure.
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08003463 VkAccessFlags srcAccessMask
3464 VkAccessFlags dstAccessMask
Jesse Halld27f6aa2015-08-15 17:58:48 -07003465 u32 srcQueueFamilyIndex /// Queue family to transition ownership from
Jesse Hall3fbc8562015-11-29 22:10:52 -08003466 u32 dstQueueFamilyIndex /// Queue family to transition ownership to
Jesse Halld27f6aa2015-08-15 17:58:48 -07003467 VkBuffer buffer /// Buffer to sync
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003468 VkDeviceSize offset /// Offset within the buffer to sync
3469 VkDeviceSize size /// Amount of bytes to sync
Jesse Halld27f6aa2015-08-15 17:58:48 -07003470}
3471
3472class VkImageMemoryBarrier {
3473 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER
3474 const void* pNext /// Pointer to next structure.
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08003475 VkAccessFlags srcAccessMask
3476 VkAccessFlags dstAccessMask
Jesse Halld27f6aa2015-08-15 17:58:48 -07003477 VkImageLayout oldLayout /// Current layout of the image
3478 VkImageLayout newLayout /// New layout to transition the image to
3479 u32 srcQueueFamilyIndex /// Queue family to transition ownership from
Jesse Hall3fbc8562015-11-29 22:10:52 -08003480 u32 dstQueueFamilyIndex /// Queue family to transition ownership to
Jesse Halld27f6aa2015-08-15 17:58:48 -07003481 VkImage image /// Image to sync
3482 VkImageSubresourceRange subresourceRange /// Subresource range to sync
3483}
3484
3485class VkImageCreateInfo {
3486 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO
3487 const void* pNext /// Pointer to next structure.
Jesse Halla6429252015-11-29 18:59:42 -08003488 VkImageCreateFlags flags /// Image creation flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07003489 VkImageType imageType
3490 VkFormat format
3491 VkExtent3D extent
3492 u32 mipLevels
Jesse Halla15a4bf2015-11-19 22:48:02 -08003493 u32 arrayLayers
Jesse Hall091ed9e2015-11-30 00:55:29 -08003494 VkSampleCountFlagBits samples
Jesse Halld27f6aa2015-08-15 17:58:48 -07003495 VkImageTiling tiling
3496 VkImageUsageFlags usage /// Image usage flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07003497 VkSharingMode sharingMode /// Cross-queue-family sharing mode
Jesse Hall03b6fe12015-11-24 12:44:21 -08003498 u32 queueFamilyIndexCount /// Number of queue families to share across
Jesse Halld27f6aa2015-08-15 17:58:48 -07003499 const u32* pQueueFamilyIndices /// Array of queue family indices to share across
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003500 VkImageLayout initialLayout /// Initial image layout for all subresources
Jesse Halld27f6aa2015-08-15 17:58:48 -07003501}
3502
3503class VkSubresourceLayout {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003504 VkDeviceSize offset /// Specified in bytes
3505 VkDeviceSize size /// Specified in bytes
3506 VkDeviceSize rowPitch /// Specified in bytes
Jesse Hall543a7ff2016-01-08 16:38:30 -08003507 VkDeviceSize arrayPitch /// Specified in bytes
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003508 VkDeviceSize depthPitch /// Specified in bytes
Jesse Halld27f6aa2015-08-15 17:58:48 -07003509}
3510
3511class VkImageViewCreateInfo {
3512 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO
3513 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003514 VkImageViewCreateFlags flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07003515 VkImage image
3516 VkImageViewType viewType
3517 VkFormat format
Jesse Hall65ab5522015-11-30 00:07:16 -08003518 VkComponentMapping components
Jesse Halld27f6aa2015-08-15 17:58:48 -07003519 VkImageSubresourceRange subresourceRange
Jesse Halld27f6aa2015-08-15 17:58:48 -07003520}
3521
3522class VkBufferCopy {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003523 VkDeviceSize srcOffset /// Specified in bytes
Jesse Hall3fbc8562015-11-29 22:10:52 -08003524 VkDeviceSize dstOffset /// Specified in bytes
Jesse Hallb00daad2015-11-29 19:46:20 -08003525 VkDeviceSize size /// Specified in bytes
Jesse Halld27f6aa2015-08-15 17:58:48 -07003526}
3527
Jesse Halla6429252015-11-29 18:59:42 -08003528class VkSparseMemoryBind {
Jesse Hallb00daad2015-11-29 19:46:20 -08003529 VkDeviceSize resourceOffset /// Specified in bytes
3530 VkDeviceSize size /// Specified in bytes
Jesse Hall3fbc8562015-11-29 22:10:52 -08003531 VkDeviceMemory memory
3532 VkDeviceSize memoryOffset /// Specified in bytes
Jesse Halld27f6aa2015-08-15 17:58:48 -07003533 VkSparseMemoryBindFlags flags
3534}
3535
Jesse Halla6429252015-11-29 18:59:42 -08003536class VkSparseImageMemoryBind {
Jesse Halld27f6aa2015-08-15 17:58:48 -07003537 VkImageSubresource subresource
3538 VkOffset3D offset
3539 VkExtent3D extent
Jesse Hall3fbc8562015-11-29 22:10:52 -08003540 VkDeviceMemory memory
3541 VkDeviceSize memoryOffset /// Specified in bytes
Jesse Halld27f6aa2015-08-15 17:58:48 -07003542 VkSparseMemoryBindFlags flags
3543}
3544
Jesse Halla6429252015-11-29 18:59:42 -08003545class VkSparseBufferMemoryBindInfo {
3546 VkBuffer buffer
3547 u32 bindCount
3548 const VkSparseMemoryBind* pBinds
3549}
3550
3551class VkSparseImageOpaqueMemoryBindInfo {
3552 VkImage image
3553 u32 bindCount
3554 const VkSparseMemoryBind* pBinds
3555}
3556
3557class VkSparseImageMemoryBindInfo {
3558 VkImage image
3559 u32 bindCount
3560 const VkSparseMemoryBind* pBinds
3561}
3562
3563class VkBindSparseInfo {
3564 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_BIND_SPARSE_INFO
3565 const void* pNext
3566 u32 waitSemaphoreCount
3567 const VkSemaphore* pWaitSemaphores
3568 u32 numBufferBinds
3569 const VkSparseBufferMemoryBindInfo* pBufferBinds
3570 u32 numImageOpaqueBinds
3571 const VkSparseImageOpaqueMemoryBindInfo* pImageOpaqueBinds
3572 u32 numImageBinds
3573 const VkSparseImageMemoryBindInfo* pImageBinds
3574 u32 signalSemaphoreCount
3575 const VkSemaphore* pSignalSemaphores
3576}
3577
Jesse Hall65ab5522015-11-30 00:07:16 -08003578class VkImageSubresourceLayers {
3579 VkImageAspectFlags aspectMask
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003580 u32 mipLevel
Jesse Halla15a4bf2015-11-19 22:48:02 -08003581 u32 baseArrayLayer
Jesse Hall3fbc8562015-11-29 22:10:52 -08003582 u32 layerCount
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003583}
3584
Jesse Halld27f6aa2015-08-15 17:58:48 -07003585class VkImageCopy {
Jesse Hall65ab5522015-11-30 00:07:16 -08003586 VkImageSubresourceLayers srcSubresource
Jesse Halld27f6aa2015-08-15 17:58:48 -07003587 VkOffset3D srcOffset /// Specified in pixels for both compressed and uncompressed images
Jesse Hall65ab5522015-11-30 00:07:16 -08003588 VkImageSubresourceLayers dstSubresource
Jesse Hall3fbc8562015-11-29 22:10:52 -08003589 VkOffset3D dstOffset /// Specified in pixels for both compressed and uncompressed images
Jesse Halld27f6aa2015-08-15 17:58:48 -07003590 VkExtent3D extent /// Specified in pixels for both compressed and uncompressed images
3591}
3592
3593class VkImageBlit {
Jesse Hall65ab5522015-11-30 00:07:16 -08003594 VkImageSubresourceLayers srcSubresource
Jesse Hall3dd678a2016-01-08 21:52:01 -08003595 VkOffset3D[2] srcOffsets
Jesse Hall65ab5522015-11-30 00:07:16 -08003596 VkImageSubresourceLayers dstSubresource
Jesse Hall3dd678a2016-01-08 21:52:01 -08003597 VkOffset3D[2] dstOffsets
Jesse Halld27f6aa2015-08-15 17:58:48 -07003598}
3599
3600class VkBufferImageCopy {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003601 VkDeviceSize bufferOffset /// Specified in bytes
Jesse Halld27f6aa2015-08-15 17:58:48 -07003602 u32 bufferRowLength /// Specified in texels
3603 u32 bufferImageHeight
Jesse Hall65ab5522015-11-30 00:07:16 -08003604 VkImageSubresourceLayers imageSubresource
Jesse Halld27f6aa2015-08-15 17:58:48 -07003605 VkOffset3D imageOffset /// Specified in pixels for both compressed and uncompressed images
3606 VkExtent3D imageExtent /// Specified in pixels for both compressed and uncompressed images
3607}
3608
3609class VkImageResolve {
Jesse Hall65ab5522015-11-30 00:07:16 -08003610 VkImageSubresourceLayers srcSubresource
Jesse Halld27f6aa2015-08-15 17:58:48 -07003611 VkOffset3D srcOffset
Jesse Hall65ab5522015-11-30 00:07:16 -08003612 VkImageSubresourceLayers dstSubresource
Jesse Hall3fbc8562015-11-29 22:10:52 -08003613 VkOffset3D dstOffset
Jesse Halld27f6aa2015-08-15 17:58:48 -07003614 VkExtent3D extent
3615}
3616
3617class VkShaderModuleCreateInfo {
3618 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO
3619 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003620 VkShaderModuleCreateFlags flags /// Reserved
Jesse Halld27f6aa2015-08-15 17:58:48 -07003621 platform.size_t codeSize /// Specified in bytes
Jesse Halla9bb62b2015-11-21 19:31:56 -08003622 const u32* pCode /// Binary code of size codeSize
Jesse Halld27f6aa2015-08-15 17:58:48 -07003623}
3624
Jesse Halld27f6aa2015-08-15 17:58:48 -07003625class VkDescriptorSetLayoutBinding {
Jesse Hall091ed9e2015-11-30 00:55:29 -08003626 u32 binding
Jesse Halld27f6aa2015-08-15 17:58:48 -07003627 VkDescriptorType descriptorType /// Type of the descriptors in this binding
Jesse Halldba27f72015-11-30 14:25:46 -08003628 u32 descriptorCount /// Number of descriptors in this binding
Jesse Halld27f6aa2015-08-15 17:58:48 -07003629 VkShaderStageFlags stageFlags /// Shader stages this binding is visible to
3630 const VkSampler* pImmutableSamplers /// Immutable samplers (used if descriptor type is SAMPLER or COMBINED_IMAGE_SAMPLER, is either NULL or contains <count> number of elements)
3631}
3632
3633class VkDescriptorSetLayoutCreateInfo {
3634 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO
3635 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003636 VkDescriptorSetLayoutCreateFlags flags
Jesse Hall03b6fe12015-11-24 12:44:21 -08003637 u32 bindingCount /// Number of bindings in the descriptor set layout
Jesse Hall543a7ff2016-01-08 16:38:30 -08003638 const VkDescriptorSetLayoutBinding* pBindings /// Array of descriptor set layout bindings
Jesse Halld27f6aa2015-08-15 17:58:48 -07003639}
3640
Jesse Hall65ab5522015-11-30 00:07:16 -08003641class VkDescriptorPoolSize {
Jesse Halld27f6aa2015-08-15 17:58:48 -07003642 VkDescriptorType type
Jesse Hall03b6fe12015-11-24 12:44:21 -08003643 u32 descriptorCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07003644}
3645
3646class VkDescriptorPoolCreateInfo {
3647 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO
3648 const void* pNext /// Pointer to next structure
Jesse Hallfbf97b02015-11-20 14:17:03 -08003649 VkDescriptorPoolCreateFlags flags
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003650 u32 maxSets
Jesse Hall65ab5522015-11-30 00:07:16 -08003651 u32 poolSizeCount
3652 const VkDescriptorPoolSize* pPoolSizes
Jesse Halld27f6aa2015-08-15 17:58:48 -07003653}
3654
Jesse Hall3fbc8562015-11-29 22:10:52 -08003655class VkDescriptorSetAllocateInfo {
Jesse Hallf4ab2b12015-11-30 16:04:55 -08003656 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO
Jesse Hallfbf97b02015-11-20 14:17:03 -08003657 const void* pNext /// Pointer to next structure
3658 VkDescriptorPool descriptorPool
Jesse Hall03b6fe12015-11-24 12:44:21 -08003659 u32 setCount
Jesse Hallfbf97b02015-11-20 14:17:03 -08003660 const VkDescriptorSetLayout* pSetLayouts
3661}
3662
Jesse Halld27f6aa2015-08-15 17:58:48 -07003663class VkSpecializationMapEntry {
Jesse Hall65ab5522015-11-30 00:07:16 -08003664 u32 constantID /// The SpecConstant ID specified in the BIL
Jesse Halld27f6aa2015-08-15 17:58:48 -07003665 u32 offset /// Offset of the value in the data block
Jesse Hallb00daad2015-11-29 19:46:20 -08003666 platform.size_t size /// Size in bytes of the SpecConstant
Jesse Halld27f6aa2015-08-15 17:58:48 -07003667}
3668
3669class VkSpecializationInfo {
3670 u32 mapEntryCount /// Number of entries in the map
Jesse Hallb00daad2015-11-29 19:46:20 -08003671 const VkSpecializationMapEntry* pMapEntries /// Array of map entries
Jesse Halld27f6aa2015-08-15 17:58:48 -07003672 platform.size_t dataSize /// Size in bytes of pData
3673 const void* pData /// Pointer to SpecConstant data
3674}
3675
3676class VkPipelineShaderStageCreateInfo {
3677 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO
3678 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003679 VkPipelineShaderStageCreateFlags flags
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08003680 VkShaderStageFlagBits stage
3681 VkShaderModule module
3682 const char* pName
Jesse Halld27f6aa2015-08-15 17:58:48 -07003683 const VkSpecializationInfo* pSpecializationInfo
3684}
3685
3686class VkComputePipelineCreateInfo {
3687 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO
3688 const void* pNext /// Pointer to next structure
Jesse Halld27f6aa2015-08-15 17:58:48 -07003689 VkPipelineCreateFlags flags /// Pipeline creation flags
Jesse Halla6429252015-11-29 18:59:42 -08003690 VkPipelineShaderStageCreateInfo stage
Jesse Halld27f6aa2015-08-15 17:58:48 -07003691 VkPipelineLayout layout /// Interface layout of the pipeline
3692 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
3693 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
3694}
3695
3696class VkVertexInputBindingDescription {
Jesse Hallb00daad2015-11-29 19:46:20 -08003697 u32 binding /// Vertex buffer binding id
3698 u32 stride /// Distance between vertices in bytes (0 = no advancement)
Jesse Hall65ab5522015-11-30 00:07:16 -08003699 VkVertexInputRate inputRate /// Rate at which binding is incremented
Jesse Halld27f6aa2015-08-15 17:58:48 -07003700}
3701
3702class VkVertexInputAttributeDescription {
Jesse Hallb00daad2015-11-29 19:46:20 -08003703 u32 location /// location of the shader vertex attrib
3704 u32 binding /// Vertex buffer binding id
3705 VkFormat format /// format of source data
3706 u32 offset /// Offset of first element in bytes from base of vertex
Jesse Halld27f6aa2015-08-15 17:58:48 -07003707}
3708
3709class VkPipelineVertexInputStateCreateInfo {
Jesse Hall03b6fe12015-11-24 12:44:21 -08003710 VkStructureType sType /// Should be VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO
3711 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003712 VkPipelineVertexInputStateCreateFlags flags
Jesse Hall03b6fe12015-11-24 12:44:21 -08003713 u32 vertexBindingDescriptionCount /// number of bindings
Jesse Halld27f6aa2015-08-15 17:58:48 -07003714 const VkVertexInputBindingDescription* pVertexBindingDescriptions
Jesse Hall03b6fe12015-11-24 12:44:21 -08003715 u32 vertexAttributeDescriptionCount /// number of attributes
Jesse Halld27f6aa2015-08-15 17:58:48 -07003716 const VkVertexInputAttributeDescription* pVertexAttributeDescriptions
3717}
3718
3719class VkPipelineInputAssemblyStateCreateInfo {
3720 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO
3721 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003722 VkPipelineInputAssemblyStateCreateFlags flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07003723 VkPrimitiveTopology topology
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003724 VkBool32 primitiveRestartEnable
Jesse Halld27f6aa2015-08-15 17:58:48 -07003725}
3726
3727class VkPipelineTessellationStateCreateInfo {
3728 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO
3729 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003730 VkPipelineTessellationStateCreateFlags flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07003731 u32 patchControlPoints
3732}
3733
3734class VkPipelineViewportStateCreateInfo {
3735 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO
3736 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003737 VkPipelineViewportStateCreateFlags flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07003738 u32 viewportCount
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003739 const VkViewport* pViewports
3740 u32 scissorCount
3741 const VkRect2D* pScissors
Jesse Halld27f6aa2015-08-15 17:58:48 -07003742}
3743
Jesse Hall3fbc8562015-11-29 22:10:52 -08003744class VkPipelineRasterizationStateCreateInfo {
Jesse Hall65ab5522015-11-30 00:07:16 -08003745 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO
Jesse Halld27f6aa2015-08-15 17:58:48 -07003746 const void* pNext /// Pointer to next structure
Jesse Hall3fbc8562015-11-29 22:10:52 -08003747 VkPipelineRasterizationStateCreateFlags flags
Jesse Hallae38f732015-11-19 21:32:50 -08003748 VkBool32 depthClampEnable
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003749 VkBool32 rasterizerDiscardEnable
Jesse Hall65ab5522015-11-30 00:07:16 -08003750 VkPolygonMode polygonMode /// optional (GL45)
Jesse Hallc7467b72015-11-29 21:05:26 -08003751 VkCullModeFlags cullMode
Jesse Halld27f6aa2015-08-15 17:58:48 -07003752 VkFrontFace frontFace
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003753 VkBool32 depthBiasEnable
Jesse Halla9bb62b2015-11-21 19:31:56 -08003754 f32 depthBiasConstantFactor
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003755 f32 depthBiasClamp
Jesse Halla9bb62b2015-11-21 19:31:56 -08003756 f32 depthBiasSlopeFactor
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003757 f32 lineWidth
Jesse Halld27f6aa2015-08-15 17:58:48 -07003758}
3759
3760class VkPipelineMultisampleStateCreateInfo {
3761 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO
3762 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003763 VkPipelineMultisampleStateCreateFlags flags
Jesse Hall091ed9e2015-11-30 00:55:29 -08003764 VkSampleCountFlagBits rasterizationSamples /// Number of samples used for rasterization
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003765 VkBool32 sampleShadingEnable /// optional (GL45)
Jesse Halld27f6aa2015-08-15 17:58:48 -07003766 f32 minSampleShading /// optional (GL45)
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003767 const VkSampleMask* pSampleMask
Jesse Hallacfa5342015-11-19 21:51:33 -08003768 VkBool32 alphaToCoverageEnable
3769 VkBool32 alphaToOneEnable
Jesse Halld27f6aa2015-08-15 17:58:48 -07003770}
3771
3772class VkPipelineColorBlendAttachmentState {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003773 VkBool32 blendEnable
Jesse Hall65ab5522015-11-30 00:07:16 -08003774 VkBlendFactor srcColorBlendFactor
3775 VkBlendFactor dstColorBlendFactor
3776 VkBlendOp colorBlendOp
3777 VkBlendFactor srcAlphaBlendFactor
3778 VkBlendFactor dstAlphaBlendFactor
3779 VkBlendOp alphaBlendOp
3780 VkColorComponentFlags colorWriteMask
Jesse Halld27f6aa2015-08-15 17:58:48 -07003781}
3782
3783class VkPipelineColorBlendStateCreateInfo {
3784 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO
3785 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003786 VkPipelineColorBlendStateCreateFlags flags
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003787 VkBool32 logicOpEnable
Jesse Halld27f6aa2015-08-15 17:58:48 -07003788 VkLogicOp logicOp
3789 u32 attachmentCount /// # of pAttachments
3790 const VkPipelineColorBlendAttachmentState* pAttachments
Jesse Hallb00daad2015-11-29 19:46:20 -08003791 f32[4] blendConstants
Jesse Halld27f6aa2015-08-15 17:58:48 -07003792}
3793
3794class VkStencilOpState {
Jesse Hall65ab5522015-11-30 00:07:16 -08003795 VkStencilOp failOp
3796 VkStencilOp passOp
3797 VkStencilOp depthFailOp
3798 VkCompareOp compareOp
3799 u32 compareMask
3800 u32 writeMask
3801 u32 reference
Jesse Halld27f6aa2015-08-15 17:58:48 -07003802}
3803
3804class VkPipelineDepthStencilStateCreateInfo {
3805 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO
3806 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003807 VkPipelineDepthStencilStateCreateFlags flags
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003808 VkBool32 depthTestEnable
3809 VkBool32 depthWriteEnable
Jesse Halld27f6aa2015-08-15 17:58:48 -07003810 VkCompareOp depthCompareOp
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003811 VkBool32 depthBoundsTestEnable /// optional (depth_bounds_test)
3812 VkBool32 stencilTestEnable
Jesse Halld27f6aa2015-08-15 17:58:48 -07003813 VkStencilOpState front
3814 VkStencilOpState back
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003815 f32 minDepthBounds
3816 f32 maxDepthBounds
3817}
3818
3819class VkPipelineDynamicStateCreateInfo {
3820 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO
3821 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003822 VkPipelineDynamicStateCreateFlags flags
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003823 u32 dynamicStateCount
3824 const VkDynamicState* pDynamicStates
Jesse Halld27f6aa2015-08-15 17:58:48 -07003825}
3826
3827class VkGraphicsPipelineCreateInfo {
Jesse Halla6429252015-11-29 18:59:42 -08003828 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO
3829 const void* pNext /// Pointer to next structure
3830 VkPipelineCreateFlags flags /// Pipeline creation flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07003831 u32 stageCount
Jesse Halla6429252015-11-29 18:59:42 -08003832 const VkPipelineShaderStageCreateInfo* pStages /// One entry for each active shader stage
Jesse Halld27f6aa2015-08-15 17:58:48 -07003833 const VkPipelineVertexInputStateCreateInfo* pVertexInputState
3834 const VkPipelineInputAssemblyStateCreateInfo* pInputAssemblyState
3835 const VkPipelineTessellationStateCreateInfo* pTessellationState
3836 const VkPipelineViewportStateCreateInfo* pViewportState
Jesse Hall3fbc8562015-11-29 22:10:52 -08003837 const VkPipelineRasterizationStateCreateInfo* pRasterizationState
Jesse Halld27f6aa2015-08-15 17:58:48 -07003838 const VkPipelineMultisampleStateCreateInfo* pMultisampleState
3839 const VkPipelineDepthStencilStateCreateInfo* pDepthStencilState
3840 const VkPipelineColorBlendStateCreateInfo* pColorBlendState
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003841 const VkPipelineDynamicStateCreateInfo* pDynamicState
Jesse Halla6429252015-11-29 18:59:42 -08003842 VkPipelineLayout layout /// Interface layout of the pipeline
Jesse Halld27f6aa2015-08-15 17:58:48 -07003843 VkRenderPass renderPass
3844 u32 subpass
Jesse Halla6429252015-11-29 18:59:42 -08003845 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
3846 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 -07003847}
3848
3849class VkPipelineCacheCreateInfo {
Jesse Hallb00daad2015-11-29 19:46:20 -08003850 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO
3851 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003852 VkPipelineCacheCreateFlags flags
Jesse Hallb00daad2015-11-29 19:46:20 -08003853 platform.size_t initialDataSize /// Size of initial data to populate cache, in bytes
3854 const void* pInitialData /// Initial data to populate cache
Jesse Halld27f6aa2015-08-15 17:58:48 -07003855}
3856
3857class VkPushConstantRange {
3858 VkShaderStageFlags stageFlags /// Which stages use the range
Jesse Hall03b6fe12015-11-24 12:44:21 -08003859 u32 offset /// Start of the range, in bytes
3860 u32 size /// Length of the range, in bytes
Jesse Halld27f6aa2015-08-15 17:58:48 -07003861}
3862
3863class VkPipelineLayoutCreateInfo {
3864 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO
3865 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003866 VkPipelineLayoutCreateFlags flags
Jesse Hall3dd678a2016-01-08 21:52:01 -08003867 u32 descriptorSetCount /// Number of descriptor sets interfaced by the pipeline
Jesse Halld27f6aa2015-08-15 17:58:48 -07003868 const VkDescriptorSetLayout* pSetLayouts /// Array of <setCount> number of descriptor set layout objects defining the layout of the
3869 u32 pushConstantRangeCount /// Number of push-constant ranges used by the pipeline
3870 const VkPushConstantRange* pPushConstantRanges /// Array of pushConstantRangeCount number of ranges used by various shader stages
3871}
3872
3873class VkSamplerCreateInfo {
3874 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO
3875 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003876 VkSamplerCreateFlags flags
Jesse Hall23ff73f2015-11-29 14:36:39 -08003877 VkFilter magFilter /// Filter mode for magnification
3878 VkFilter minFilter /// Filter mode for minifiation
3879 VkSamplerMipmapMode mipmapMode /// Mipmap selection mode
3880 VkSamplerAddressMode addressModeU
3881 VkSamplerAddressMode addressModeV
3882 VkSamplerAddressMode addressModeW
Jesse Halld27f6aa2015-08-15 17:58:48 -07003883 f32 mipLodBias
Jesse Hallf9fa9a52016-01-08 16:08:51 -08003884 VkBool32 anisotropyEnable
Jesse Halld27f6aa2015-08-15 17:58:48 -07003885 f32 maxAnisotropy
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003886 VkBool32 compareEnable
Jesse Halld27f6aa2015-08-15 17:58:48 -07003887 VkCompareOp compareOp
3888 f32 minLod
3889 f32 maxLod
3890 VkBorderColor borderColor
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003891 VkBool32 unnormalizedCoordinates
Jesse Halld27f6aa2015-08-15 17:58:48 -07003892}
3893
Jesse Hall3fbc8562015-11-29 22:10:52 -08003894class VkCommandPoolCreateInfo {
3895 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO
Jesse Halld27f6aa2015-08-15 17:58:48 -07003896 const void* pNext /// Pointer to next structure
Jesse Hall3fbc8562015-11-29 22:10:52 -08003897 VkCommandPoolCreateFlags flags /// Command pool creation flags
Jesse Halla6429252015-11-29 18:59:42 -08003898 u32 queueFamilyIndex
Jesse Halld27f6aa2015-08-15 17:58:48 -07003899}
3900
Jesse Hall3fbc8562015-11-29 22:10:52 -08003901class VkCommandBufferAllocateInfo {
Jesse Hallf4ab2b12015-11-30 16:04:55 -08003902 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO
Jesse Halld27f6aa2015-08-15 17:58:48 -07003903 const void* pNext /// Pointer to next structure
Jesse Hall3fbc8562015-11-29 22:10:52 -08003904 VkCommandPool commandPool
3905 VkCommandBufferLevel level
Jesse Hall3dd678a2016-01-08 21:52:01 -08003906 u32 commandBufferCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07003907}
3908
Jesse Hall3dd678a2016-01-08 21:52:01 -08003909class VkCommandBufferInheritanceInfo {
3910 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO
Jesse Halld27f6aa2015-08-15 17:58:48 -07003911 const void* pNext /// Pointer to next structure
Jesse Halld27f6aa2015-08-15 17:58:48 -07003912 VkRenderPass renderPass /// Render pass for secondary command buffers
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003913 u32 subpass
Jesse Halld27f6aa2015-08-15 17:58:48 -07003914 VkFramebuffer framebuffer /// Framebuffer for secondary command buffers
Jesse Hallf4ab2b12015-11-30 16:04:55 -08003915 VkBool32 occlusionQueryEnable
3916 VkQueryControlFlags queryFlags
3917 VkQueryPipelineStatisticFlags pipelineStatistics
Jesse Halld27f6aa2015-08-15 17:58:48 -07003918}
3919
Jesse Hall3dd678a2016-01-08 21:52:01 -08003920class VkCommandBufferBeginInfo {
3921 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO
3922 const void* pNext /// Pointer to next structure
3923 VkCommandBufferUsageFlags flags /// Command buffer usage flags
3924 const VkCommandBufferInheritanceInfo* pInheritanceInfo
3925}
3926
Jesse Halld27f6aa2015-08-15 17:58:48 -07003927class VkRenderPassBeginInfo {
3928 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO
3929 const void* pNext /// Pointer to next structure
3930 VkRenderPass renderPass
3931 VkFramebuffer framebuffer
3932 VkRect2D renderArea
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003933 u32 clearValueCount
3934 const VkClearValue* pClearValues
Jesse Halld27f6aa2015-08-15 17:58:48 -07003935}
3936
3937@union
3938/// Union allowing specification of floating point, integer, or unsigned integer color data. Actual value selected is based on image/attachment being cleared.
3939class VkClearColorValue {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003940 f32[4] float32
3941 s32[4] int32
3942 u32[4] uint32
Jesse Halld27f6aa2015-08-15 17:58:48 -07003943}
3944
3945class VkClearDepthStencilValue {
3946 f32 depth
3947 u32 stencil
3948}
3949
3950@union
3951/// Union allowing specification of color, depth, and stencil color values. Actual value selected is based on attachment being cleared.
3952class VkClearValue {
3953 VkClearColorValue color
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003954 VkClearDepthStencilValue depthStencil
Jesse Halld27f6aa2015-08-15 17:58:48 -07003955}
3956
Jesse Hallae38f732015-11-19 21:32:50 -08003957class VkClearAttachment {
3958 VkImageAspectFlags aspectMask
3959 u32 colorAttachment
3960 VkClearValue clearValue
3961}
3962
Jesse Halld27f6aa2015-08-15 17:58:48 -07003963class VkAttachmentDescription {
Jesse Halla6429252015-11-29 18:59:42 -08003964 VkAttachmentDescriptionFlags flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07003965 VkFormat format
Jesse Hall091ed9e2015-11-30 00:55:29 -08003966 VkSampleCountFlagBits samples
Jesse Halld27f6aa2015-08-15 17:58:48 -07003967 VkAttachmentLoadOp loadOp /// Load op for color or depth data
3968 VkAttachmentStoreOp storeOp /// Store op for color or depth data
3969 VkAttachmentLoadOp stencilLoadOp /// Load op for stencil data
3970 VkAttachmentStoreOp stencilStoreOp /// Store op for stencil data
3971 VkImageLayout initialLayout
3972 VkImageLayout finalLayout
3973}
3974
3975class VkAttachmentReference {
3976 u32 attachment
3977 VkImageLayout layout
3978}
3979
3980class VkSubpassDescription {
Jesse Halld27f6aa2015-08-15 17:58:48 -07003981 VkSubpassDescriptionFlags flags
Jesse Halla6429252015-11-29 18:59:42 -08003982 VkPipelineBindPoint pipelineBindPoint /// Must be VK_PIPELINE_BIND_POINT_GRAPHICS for now
Jesse Hall03b6fe12015-11-24 12:44:21 -08003983 u32 inputAttachmentCount
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003984 const VkAttachmentReference* pInputAttachments
Jesse Hall03b6fe12015-11-24 12:44:21 -08003985 u32 colorAttachmentCount
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003986 const VkAttachmentReference* pColorAttachments
3987 const VkAttachmentReference* pResolveAttachments
Jesse Hallc7467b72015-11-29 21:05:26 -08003988 const VkAttachmentReference* pDepthStencilAttachment
Jesse Hall03b6fe12015-11-24 12:44:21 -08003989 u32 preserveAttachmentCount
Jesse Hall3dd678a2016-01-08 21:52:01 -08003990 const u32* pPreserveAttachments
Jesse Halld27f6aa2015-08-15 17:58:48 -07003991}
3992
3993class VkSubpassDependency {
Jesse Halld27f6aa2015-08-15 17:58:48 -07003994 u32 srcSubpass
Jesse Hall3fbc8562015-11-29 22:10:52 -08003995 u32 dstSubpass
Jesse Halld27f6aa2015-08-15 17:58:48 -07003996 VkPipelineStageFlags srcStageMask
Jesse Hall3fbc8562015-11-29 22:10:52 -08003997 VkPipelineStageFlags dstStageMask
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08003998 VkAccessFlags srcAccessMask
3999 VkAccessFlags dstAccessMask
Jesse Halldc6d36c2015-11-29 19:12:15 -08004000 VkDependencyFlags dependencyFlags
Jesse Halld27f6aa2015-08-15 17:58:48 -07004001}
4002
4003class VkRenderPassCreateInfo {
4004 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO
4005 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08004006 VkRenderPassCreateFlags flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07004007 u32 attachmentCount
4008 const VkAttachmentDescription* pAttachments
4009 u32 subpassCount
4010 const VkSubpassDescription* pSubpasses
4011 u32 dependencyCount
4012 const VkSubpassDependency* pDependencies
4013}
4014
4015class VkEventCreateInfo {
4016 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_EVENT_CREATE_INFO
4017 const void* pNext /// Pointer to next structure
4018 VkEventCreateFlags flags /// Event creation flags
4019}
4020
4021class VkFenceCreateInfo {
4022 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_FENCE_CREATE_INFO
4023 const void* pNext /// Pointer to next structure
4024 VkFenceCreateFlags flags /// Fence creation flags
4025}
4026
4027class VkPhysicalDeviceFeatures {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004028 VkBool32 robustBufferAccess /// out of bounds buffer accesses are well defined
4029 VkBool32 fullDrawIndexUint32 /// full 32-bit range of indices for indexed draw calls
4030 VkBool32 imageCubeArray /// image views which are arrays of cube maps
4031 VkBool32 independentBlend /// blending operations are controlled per-attachment
4032 VkBool32 geometryShader /// geometry stage
4033 VkBool32 tessellationShader /// tessellation control and evaluation stage
4034 VkBool32 sampleRateShading /// per-sample shading and interpolation
Jesse Hall3fbc8562015-11-29 22:10:52 -08004035 VkBool32 dualSrcBlend /// blend operations which take two sources
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004036 VkBool32 logicOp /// logic operations
4037 VkBool32 multiDrawIndirect /// multi draw indirect
Jesse Hall543a7ff2016-01-08 16:38:30 -08004038 VkBool32 drawIndirectFirstInstance
Jesse Hallae38f732015-11-19 21:32:50 -08004039 VkBool32 depthClamp /// depth clamping
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004040 VkBool32 depthBiasClamp /// depth bias clamping
4041 VkBool32 fillModeNonSolid /// point and wireframe fill modes
4042 VkBool32 depthBounds /// depth bounds test
4043 VkBool32 wideLines /// lines with width greater than 1
4044 VkBool32 largePoints /// points with size greater than 1
Jesse Hallfbf97b02015-11-20 14:17:03 -08004045 VkBool32 alphaToOne /// The fragment alpha channel can be forced to maximum representable alpha value
4046 VkBool32 multiViewport
4047 VkBool32 samplerAnisotropy
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004048 VkBool32 textureCompressionETC2 /// ETC texture compression formats
4049 VkBool32 textureCompressionASTC_LDR /// ASTC LDR texture compression formats
4050 VkBool32 textureCompressionBC /// BC1-7 texture compressed formats
Jesse Hall65ab5522015-11-30 00:07:16 -08004051 VkBool32 occlusionQueryPrecise
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004052 VkBool32 pipelineStatisticsQuery /// pipeline statistics query
Jesse Halldc6d36c2015-11-29 19:12:15 -08004053 VkBool32 vertexPipelineStoresAndAtomics
4054 VkBool32 fragmentStoresAndAtomics
4055 VkBool32 shaderTessellationAndGeometryPointSize
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004056 VkBool32 shaderImageGatherExtended /// texture gather with run-time values and independent offsets
4057 VkBool32 shaderStorageImageExtendedFormats /// the extended set of formats can be used for storage images
4058 VkBool32 shaderStorageImageMultisample /// multisample images can be used for storage images
Jesse Halld1af8122015-11-29 23:50:38 -08004059 VkBool32 shaderStorageImageReadWithoutFormat
4060 VkBool32 shaderStorageImageWriteWithoutFormat
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004061 VkBool32 shaderUniformBufferArrayDynamicIndexing /// arrays of uniform buffers can be accessed with dynamically uniform indices
4062 VkBool32 shaderSampledImageArrayDynamicIndexing /// arrays of sampled images can be accessed with dynamically uniform indices
4063 VkBool32 shaderStorageBufferArrayDynamicIndexing /// arrays of storage buffers can be accessed with dynamically uniform indices
4064 VkBool32 shaderStorageImageArrayDynamicIndexing /// arrays of storage images can be accessed with dynamically uniform indices
4065 VkBool32 shaderClipDistance /// clip distance in shaders
4066 VkBool32 shaderCullDistance /// cull distance in shaders
4067 VkBool32 shaderFloat64 /// 64-bit floats (doubles) in shaders
4068 VkBool32 shaderInt64 /// 64-bit integers in shaders
4069 VkBool32 shaderInt16 /// 16-bit integers in shaders
4070 VkBool32 shaderResourceResidency /// shader can use texture operations that return resource residency information (requires sparseNonResident support)
Jesse Hall65ab5522015-11-30 00:07:16 -08004071 VkBool32 shaderResourceMinLod /// shader can use texture operations that specify minimum resource LOD
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004072 VkBool32 sparseBinding /// Sparse resources support: Resource memory can be managed at opaque page level rather than object level
4073 VkBool32 sparseResidencyBuffer /// Sparse resources support: GPU can access partially resident buffers
4074 VkBool32 sparseResidencyImage2D /// Sparse resources support: GPU can access partially resident 2D (non-MSAA non-DepthStencil) images
4075 VkBool32 sparseResidencyImage3D /// Sparse resources support: GPU can access partially resident 3D images
4076 VkBool32 sparseResidency2Samples /// Sparse resources support: GPU can access partially resident MSAA 2D images with 2 samples
4077 VkBool32 sparseResidency4Samples /// Sparse resources support: GPU can access partially resident MSAA 2D images with 4 samples
4078 VkBool32 sparseResidency8Samples /// Sparse resources support: GPU can access partially resident MSAA 2D images with 8 samples
4079 VkBool32 sparseResidency16Samples /// Sparse resources support: GPU can access partially resident MSAA 2D images with 16 samples
4080 VkBool32 sparseResidencyAliased /// Sparse resources support: GPU can correctly access data aliased into multiple locations (opt-in)
Jesse Halld1af8122015-11-29 23:50:38 -08004081 VkBool32 variableMultisampleRate
Jesse Hallf9fa9a52016-01-08 16:08:51 -08004082 VkBool32 inheritedQueries
Jesse Halld27f6aa2015-08-15 17:58:48 -07004083}
4084
4085class VkPhysicalDeviceLimits {
4086 /// resource maximum sizes
4087 u32 maxImageDimension1D /// max 1D image dimension
4088 u32 maxImageDimension2D /// max 2D image dimension
4089 u32 maxImageDimension3D /// max 3D image dimension
4090 u32 maxImageDimensionCube /// max cubemap image dimension
4091 u32 maxImageArrayLayers /// max layers for image arrays
Jesse Hallb00daad2015-11-29 19:46:20 -08004092 u32 maxTexelBufferElements
Jesse Hallfbf97b02015-11-20 14:17:03 -08004093 u32 maxUniformBufferRange /// max uniform buffer size (bytes)
4094 u32 maxStorageBufferRange /// max storage buffer size (bytes)
Jesse Halld27f6aa2015-08-15 17:58:48 -07004095 u32 maxPushConstantsSize /// max size of the push constants pool (bytes)
4096 /// memory limits
4097 u32 maxMemoryAllocationCount /// max number of device memory allocations supported
Jesse Hall091ed9e2015-11-30 00:55:29 -08004098 u32 maxSamplerAllocationCount
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004099 VkDeviceSize bufferImageGranularity /// Granularity (in bytes) at which buffers and images can be bound to adjacent memory for simultaneous usage
4100 VkDeviceSize sparseAddressSpaceSize /// Total address space available for sparse allocations (bytes)
Jesse Halld27f6aa2015-08-15 17:58:48 -07004101 /// descriptor set limits
4102 u32 maxBoundDescriptorSets /// max number of descriptors sets that can be bound to a pipeline
Jesse Halld27f6aa2015-08-15 17:58:48 -07004103 u32 maxPerStageDescriptorSamplers /// max num of samplers allowed per-stage in a descriptor set
4104 u32 maxPerStageDescriptorUniformBuffers /// max num of uniform buffers allowed per-stage in a descriptor set
4105 u32 maxPerStageDescriptorStorageBuffers /// max num of storage buffers allowed per-stage in a descriptor set
4106 u32 maxPerStageDescriptorSampledImages /// max num of sampled images allowed per-stage in a descriptor set
4107 u32 maxPerStageDescriptorStorageImages /// max num of storage images allowed per-stage in a descriptor set
Jesse Halle1b12782015-11-30 11:27:32 -08004108 u32 maxPerStageDescriptorInputAttachments
Jesse Halldba27f72015-11-30 14:25:46 -08004109 u32 maxPerStageResources
Jesse Halld27f6aa2015-08-15 17:58:48 -07004110 u32 maxDescriptorSetSamplers /// max num of samplers allowed in all stages in a descriptor set
4111 u32 maxDescriptorSetUniformBuffers /// max num of uniform buffers allowed in all stages in a descriptor set
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004112 u32 maxDescriptorSetUniformBuffersDynamic /// max num of dynamic uniform buffers allowed in all stages in a descriptor set
Jesse Halld27f6aa2015-08-15 17:58:48 -07004113 u32 maxDescriptorSetStorageBuffers /// max num of storage buffers allowed in all stages in a descriptor set
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004114 u32 maxDescriptorSetStorageBuffersDynamic /// max num of dynamic storage buffers allowed in all stages in a descriptor set
Jesse Halld27f6aa2015-08-15 17:58:48 -07004115 u32 maxDescriptorSetSampledImages /// max num of sampled images allowed in all stages in a descriptor set
4116 u32 maxDescriptorSetStorageImages /// max num of storage images allowed in all stages in a descriptor set
Jesse Halle1b12782015-11-30 11:27:32 -08004117 u32 maxDescriptorSetInputAttachments
Jesse Halld27f6aa2015-08-15 17:58:48 -07004118 /// vertex stage limits
4119 u32 maxVertexInputAttributes /// max num of vertex input attribute slots
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004120 u32 maxVertexInputBindings /// max num of vertex input binding slots
Jesse Halld27f6aa2015-08-15 17:58:48 -07004121 u32 maxVertexInputAttributeOffset /// max vertex input attribute offset added to vertex buffer offset
4122 u32 maxVertexInputBindingStride /// max vertex input binding stride
4123 u32 maxVertexOutputComponents /// max num of output components written by vertex shader
4124 /// tessellation control stage limits
Jesse Hall3fbc8562015-11-29 22:10:52 -08004125 u32 maxTessellationGenerationLevel /// max level supported by tess primitive generator
Jesse Hallae38f732015-11-19 21:32:50 -08004126 u32 maxTessellationPatchSize /// max patch size (vertices)
4127 u32 maxTessellationControlPerVertexInputComponents /// max num of input components per-vertex in TCS
4128 u32 maxTessellationControlPerVertexOutputComponents /// max num of output components per-vertex in TCS
4129 u32 maxTessellationControlPerPatchOutputComponents /// max num of output components per-patch in TCS
4130 u32 maxTessellationControlTotalOutputComponents /// max total num of per-vertex and per-patch output components in TCS
4131 u32 maxTessellationEvaluationInputComponents /// max num of input components per vertex in TES
4132 u32 maxTessellationEvaluationOutputComponents /// max num of output components per vertex in TES
Jesse Halld27f6aa2015-08-15 17:58:48 -07004133 /// geometry stage limits
4134 u32 maxGeometryShaderInvocations /// max invocation count supported in geometry shader
4135 u32 maxGeometryInputComponents /// max num of input components read in geometry stage
4136 u32 maxGeometryOutputComponents /// max num of output components written in geometry stage
4137 u32 maxGeometryOutputVertices /// max num of vertices that can be emitted in geometry stage
4138 u32 maxGeometryTotalOutputComponents /// max total num of components (all vertices) written in geometry stage
4139 /// fragment stage limits
4140 u32 maxFragmentInputComponents /// max num of input compontents read in fragment stage
Jesse Hallfbf97b02015-11-20 14:17:03 -08004141 u32 maxFragmentOutputAttachments /// max num of output attachments written in fragment stage
Jesse Hall3fbc8562015-11-29 22:10:52 -08004142 u32 maxFragmentDualSrcAttachments /// max num of output attachments written when using dual source blending
Jesse Halld27f6aa2015-08-15 17:58:48 -07004143 u32 maxFragmentCombinedOutputResources /// max total num of storage buffers, storage images and output buffers
4144 /// compute stage limits
4145 u32 maxComputeSharedMemorySize /// max total storage size of work group local storage (bytes)
4146 u32[3] maxComputeWorkGroupCount /// max num of compute work groups that may be dispatched by a single command (x,y,z)
4147 u32 maxComputeWorkGroupInvocations /// max total compute invocations in a single local work group
4148 u32[3] maxComputeWorkGroupSize /// max local size of a compute work group (x,y,z)
4149
4150 u32 subPixelPrecisionBits /// num bits of subpixel precision in screen x and y
4151 u32 subTexelPrecisionBits /// num bits of subtexel precision
4152 u32 mipmapPrecisionBits /// num bits of mipmap precision
4153
4154 u32 maxDrawIndexedIndexValue /// max index value for indexed draw calls (for 32-bit indices)
Jesse Halldba27f72015-11-30 14:25:46 -08004155 u32 maxDrawIndirectCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07004156
4157 f32 maxSamplerLodBias /// max absolute sampler level of detail bias
4158 f32 maxSamplerAnisotropy /// max degree of sampler anisotropy
4159
4160 u32 maxViewports /// max number of active viewports
Jesse Halld27f6aa2015-08-15 17:58:48 -07004161 u32[2] maxViewportDimensions /// max viewport dimensions (x,y)
4162 f32[2] viewportBoundsRange /// viewport bounds range (min,max)
4163 u32 viewportSubPixelBits /// num bits of subpixel precision for viewport
4164
Jesse Halldc6d36c2015-11-29 19:12:15 -08004165 platform.size_t minMemoryMapAlignment /// min required alignment of pointers returned by MapMemory (bytes)
4166 VkDeviceSize minTexelBufferOffsetAlignment /// min required alignment for texel buffer offsets (bytes)
4167 VkDeviceSize minUniformBufferOffsetAlignment /// min required alignment for uniform buffer sizes and offsets (bytes)
4168 VkDeviceSize minStorageBufferOffsetAlignment /// min required alignment for storage buffer offsets (bytes)
Jesse Halld27f6aa2015-08-15 17:58:48 -07004169
Jesse Hallfbf97b02015-11-20 14:17:03 -08004170 s32 minTexelOffset /// min texel offset for OpTextureSampleOffset
Jesse Halld27f6aa2015-08-15 17:58:48 -07004171 u32 maxTexelOffset /// max texel offset for OpTextureSampleOffset
Jesse Hallfbf97b02015-11-20 14:17:03 -08004172 s32 minTexelGatherOffset /// min texel offset for OpTextureGatherOffset
Jesse Halld27f6aa2015-08-15 17:58:48 -07004173 u32 maxTexelGatherOffset /// max texel offset for OpTextureGatherOffset
4174 f32 minInterpolationOffset /// furthest negative offset for interpolateAtOffset
4175 f32 maxInterpolationOffset /// furthest positive offset for interpolateAtOffset
4176 u32 subPixelInterpolationOffsetBits /// num of subpixel bits for interpolateAtOffset
4177
4178 u32 maxFramebufferWidth /// max width for a framebuffer
4179 u32 maxFramebufferHeight /// max height for a framebuffer
4180 u32 maxFramebufferLayers /// max layer count for a layered framebuffer
Jesse Hall091ed9e2015-11-30 00:55:29 -08004181 VkSampleCountFlags framebufferColorSampleCounts
4182 VkSampleCountFlags framebufferDepthSampleCounts
4183 VkSampleCountFlags framebufferStencilSampleCounts
4184 VkSampleCountFlags framebufferNoAttachmentSampleCounts
Jesse Halld27f6aa2015-08-15 17:58:48 -07004185 u32 maxColorAttachments /// max num of framebuffer color attachments
4186
Jesse Hall091ed9e2015-11-30 00:55:29 -08004187 VkSampleCountFlags sampledImageColorSampleCounts
4188 VkSampleCountFlags sampledImageIntegerSampleCounts
4189 VkSampleCountFlags sampledImageDepthSampleCounts
4190 VkSampleCountFlags sampledImageStencilSampleCounts
4191 VkSampleCountFlags storageImageSampleCounts
Jesse Halld27f6aa2015-08-15 17:58:48 -07004192 u32 maxSampleMaskWords /// max num of sample mask words
Jesse Hallf9fa9a52016-01-08 16:08:51 -08004193 VkBool32 timestampComputeAndGraphics
Jesse Halld27f6aa2015-08-15 17:58:48 -07004194
Jesse Halla9bb62b2015-11-21 19:31:56 -08004195 f32 timestampPeriod
Jesse Halld27f6aa2015-08-15 17:58:48 -07004196
4197 u32 maxClipDistances /// max number of clip distances
4198 u32 maxCullDistances /// max number of cull distances
4199 u32 maxCombinedClipAndCullDistances /// max combined number of user clipping
4200
Jesse Hallfbf97b02015-11-20 14:17:03 -08004201 u32 discreteQueuePriorities
4202
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004203 f32[2] pointSizeRange /// range (min,max) of supported point sizes
4204 f32[2] lineWidthRange /// range (min,max) of supported line widths
Jesse Halld27f6aa2015-08-15 17:58:48 -07004205 f32 pointSizeGranularity /// granularity of supported point sizes
4206 f32 lineWidthGranularity /// granularity of supported line widths
Jesse Hall03b6fe12015-11-24 12:44:21 -08004207 VkBool32 strictLines
Jesse Hall091ed9e2015-11-30 00:55:29 -08004208 VkBool32 standardSampleLocations
Jesse Halla9bb62b2015-11-21 19:31:56 -08004209
Jesse Hall65ab5522015-11-30 00:07:16 -08004210 VkDeviceSize optimalBufferCopyOffsetAlignment
4211 VkDeviceSize optimalBufferCopyRowPitchAlignment
Jesse Halldba27f72015-11-30 14:25:46 -08004212 VkDeviceSize nonCoherentAtomSize
Jesse Halld27f6aa2015-08-15 17:58:48 -07004213}
4214
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004215class VkPhysicalDeviceSparseProperties {
4216 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 -08004217 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 -07004218 VkBool32 residencyStandard3DBlockShape /// Sparse resources support: GPU will access all 3D sparse resources using the standard block shapes (based on pixel format)
4219 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 -07004220 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
4221}
4222
Jesse Halld27f6aa2015-08-15 17:58:48 -07004223class VkSemaphoreCreateInfo {
4224 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO
4225 const void* pNext /// Pointer to next structure
4226 VkSemaphoreCreateFlags flags /// Semaphore creation flags
4227}
4228
4229class VkQueryPoolCreateInfo {
4230 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO
4231 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08004232 VkQueryPoolCreateFlags flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07004233 VkQueryType queryType
Jesse Hall3dd678a2016-01-08 21:52:01 -08004234 u32 queryCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07004235 VkQueryPipelineStatisticFlags pipelineStatistics /// Optional
4236}
4237
4238class VkFramebufferCreateInfo {
4239 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO
4240 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08004241 VkFramebufferCreateFlags flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07004242 VkRenderPass renderPass
4243 u32 attachmentCount
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004244 const VkImageView* pAttachments
Jesse Halld27f6aa2015-08-15 17:58:48 -07004245 u32 width
4246 u32 height
4247 u32 layers
4248}
4249
Jesse Hall3fbc8562015-11-29 22:10:52 -08004250class VkDrawIndirectCommand {
Jesse Halld27f6aa2015-08-15 17:58:48 -07004251 u32 vertexCount
4252 u32 instanceCount
4253 u32 firstVertex
4254 u32 firstInstance
4255}
4256
Jesse Hall3fbc8562015-11-29 22:10:52 -08004257class VkDrawIndexedIndirectCommand {
Jesse Halld27f6aa2015-08-15 17:58:48 -07004258 u32 indexCount
4259 u32 instanceCount
4260 u32 firstIndex
4261 s32 vertexOffset
4262 u32 firstInstance
4263}
4264
Jesse Hall3fbc8562015-11-29 22:10:52 -08004265class VkDispatchIndirectCommand {
Jesse Halld27f6aa2015-08-15 17:58:48 -07004266 u32 x
4267 u32 y
4268 u32 z
4269}
4270
Jesse Hall54f8d132018-04-18 08:16:59 -07004271class VkBaseOutStructure {
4272 VkStructureType sType
4273 void* pNext
4274}
4275
4276class VkBaseInStructure {
4277 VkStructureType sType
4278 const void* pNext
4279}
4280
Ian Elliott28bd2c32017-10-13 09:21:12 -06004281//@vulkan1_1 structures
Daniel Koch09f7bf92017-10-05 00:26:58 -04004282
4283class VkPhysicalDeviceSubgroupProperties {
4284 VkStructureType sType
4285 void* pNext
4286 u32 subgroupSize
4287 VkShaderStageFlags supportedStages
4288 VkSubgroupFeatureFlags supportedOperations
4289 VkBool32 quadOperationsInAllStages
4290}
4291
4292class VkBindBufferMemoryInfo {
4293 VkStructureType sType
4294 const void* pNext
4295 VkBuffer buffer
4296 VkDeviceMemory memory
4297 VkDeviceSize memoryOffset
4298}
4299
4300class VkBindImageMemoryInfo {
4301 VkStructureType sType
4302 const void* pNext
4303 VkImage image
4304 VkDeviceMemory memory
4305 VkDeviceSize memoryOffset
4306}
4307
4308class VkPhysicalDevice16BitStorageFeatures {
4309 VkStructureType sType
4310 void* pNext
4311 VkBool32 storageBuffer16BitAccess
4312 VkBool32 uniformAndStorageBuffer16BitAccess
4313 VkBool32 storagePushConstant16
4314 VkBool32 storageInputOutput16
4315}
4316
4317class VkMemoryDedicatedRequirements {
4318 VkStructureType sType
4319 void* pNext
4320 VkBool32 prefersDedicatedAllocation
4321 VkBool32 requiresDedicatedAllocation
4322}
4323
4324class VkMemoryDedicatedAllocateInfo {
4325 VkStructureType sType
4326 const void* pNext
4327 VkImage image
4328 VkBuffer buffer
4329}
4330
4331class VkMemoryAllocateFlagsInfo {
4332 VkStructureType sType
4333 const void* pNext
4334 VkMemoryAllocateFlags flags
4335 u32 deviceMask
4336}
4337
4338class VkDeviceGroupRenderPassBeginInfo {
4339 VkStructureType sType
4340 const void* pNext
4341 u32 deviceMask
4342 u32 deviceRenderAreaCount
4343 const VkRect2D* pDeviceRenderAreas
4344}
4345
4346class VkDeviceGroupCommandBufferBeginInfo {
4347 VkStructureType sType
4348 const void* pNext
4349 u32 deviceMask
4350}
4351
4352class VkDeviceGroupSubmitInfo {
4353 VkStructureType sType
4354 const void* pNext
4355 u32 waitSemaphoreCount
4356 const u32* pWaitSemaphoreDeviceIndices
4357 u32 commandBufferCount
4358 const u32* pCommandBufferDeviceMasks
4359 u32 signalSemaphoreCount
4360 const u32* pSignalSemaphoreDeviceIndices
4361}
4362
4363class VkDeviceGroupBindSparseInfo {
4364 VkStructureType sType
4365 const void* pNext
4366 u32 resourceDeviceIndex
4367 u32 memoryDeviceIndex
4368}
4369
4370class VkBindBufferMemoryDeviceGroupInfo {
4371 VkStructureType sType
4372 const void* pNext
4373 u32 deviceIndexCount
4374 const u32* pDeviceIndices
4375}
4376
4377class VkBindImageMemoryDeviceGroupInfo {
4378 VkStructureType sType
4379 const void* pNext
4380 u32 deviceIndexCount
4381 const u32* pDeviceIndices
Jesse Hall8c954d32018-01-17 22:06:20 -08004382 u32 splitInstanceBindRegionCount
4383 const VkRect2D* pSplitInstanceBindRegions
Daniel Koch09f7bf92017-10-05 00:26:58 -04004384}
4385
4386class VkPhysicalDeviceGroupProperties {
4387 VkStructureType sType
4388 void* pNext
4389 u32 physicalDeviceCount
4390 VkPhysicalDevice[VK_MAX_DEVICE_GROUP_SIZE] physicalDevices
4391 VkBool32 subsetAllocation
4392}
4393
4394class VkDeviceGroupDeviceCreateInfo {
4395 VkStructureType sType
4396 const void* pNext
4397 u32 physicalDeviceCount
4398 const VkPhysicalDevice* pPhysicalDevices
4399}
4400
4401class VkBufferMemoryRequirementsInfo2 {
4402 VkStructureType sType
4403 const void* pNext
4404 VkBuffer buffer
4405}
4406
4407class VkImageMemoryRequirementsInfo2 {
4408 VkStructureType sType
4409 const void* pNext
4410 VkImage image
4411}
4412
4413class VkImageSparseMemoryRequirementsInfo2 {
4414 VkStructureType sType
4415 const void* pNext
4416 VkImage image
4417}
4418
4419class VkMemoryRequirements2 {
4420 VkStructureType sType
4421 void* pNext
4422 VkMemoryRequirements memoryRequirements
4423}
4424
4425class VkSparseImageMemoryRequirements2 {
4426 VkStructureType sType
4427 void* pNext
4428 VkSparseImageMemoryRequirements memoryRequirements
4429}
4430
4431class VkPhysicalDeviceFeatures2 {
4432 VkStructureType sType
4433 void* pNext
4434 VkPhysicalDeviceFeatures features
4435}
4436
4437class VkPhysicalDeviceProperties2 {
4438 VkStructureType sType
4439 void* pNext
4440 VkPhysicalDeviceProperties properties
4441}
4442
4443class VkFormatProperties2 {
4444 VkStructureType sType
4445 void* pNext
4446 VkFormatProperties formatProperties
4447}
4448
4449class VkImageFormatProperties2 {
4450 VkStructureType sType
4451 void* pNext
4452 VkImageFormatProperties imageFormatProperties
4453}
4454
4455class VkPhysicalDeviceImageFormatInfo2 {
4456 VkStructureType sType
4457 const void* pNext
4458 VkFormat format
4459 VkImageType type
4460 VkImageTiling tiling
4461 VkImageUsageFlags usage
4462 VkImageCreateFlags flags
4463}
4464
4465class VkQueueFamilyProperties2 {
4466 VkStructureType sType
4467 void* pNext
4468 VkQueueFamilyProperties queueFamilyProperties
4469}
4470
4471class VkPhysicalDeviceMemoryProperties2 {
4472 VkStructureType sType
4473 void* pNext
4474 VkPhysicalDeviceMemoryProperties memoryProperties
4475}
4476
4477class VkSparseImageFormatProperties2 {
4478 VkStructureType sType
4479 void* pNext
4480 VkSparseImageFormatProperties properties
4481}
4482
4483class VkPhysicalDeviceSparseImageFormatInfo2 {
4484 VkStructureType sType
4485 const void* pNext
4486 VkFormat format
4487 VkImageType type
4488 VkSampleCountFlagBits samples
4489 VkImageUsageFlags usage
4490 VkImageTiling tiling
4491}
4492
4493class VkPhysicalDevicePointClippingProperties {
4494 VkStructureType sType
4495 void* pNext
4496 VkPointClippingBehavior pointClippingBehavior
4497}
4498
4499class VkInputAttachmentAspectReference {
4500 u32 subpass
4501 u32 inputAttachmentIndex
4502 VkImageAspectFlags aspectMask
4503}
4504
4505class VkRenderPassInputAttachmentAspectCreateInfo {
4506 VkStructureType sType
4507 const void* pNext
4508 u32 aspectReferenceCount
4509 const VkInputAttachmentAspectReference* pAspectReferences
4510}
4511
4512class VkImageViewUsageCreateInfo {
4513 VkStructureType sType
4514 const void* pNext
4515 VkImageUsageFlags usage
4516}
4517
4518class VkPipelineTessellationDomainOriginStateCreateInfo {
4519 VkStructureType sType
4520 const void* pNext
4521 VkTessellationDomainOrigin domainOrigin
4522}
4523
4524class VkRenderPassMultiviewCreateInfo {
4525 VkStructureType sType
4526 const void* pNext
4527 u32 subpassCount
4528 const u32* pViewMasks
4529 u32 dependencyCount
4530 const s32* pViewOffsets
4531 u32 correlationMaskCount
4532 const u32* pCorrelationMasks
4533}
4534
4535class VkPhysicalDeviceMultiviewFeatures {
4536 VkStructureType sType
4537 void* pNext
4538 VkBool32 multiview
4539 VkBool32 multiviewGeometryShader
4540 VkBool32 multiviewTessellationShader
4541}
4542
4543class VkPhysicalDeviceMultiviewProperties {
4544 VkStructureType sType
4545 void* pNext
4546 u32 maxMultiviewViewCount
4547 u32 maxMultiviewInstanceIndex
4548}
4549
4550class VkPhysicalDeviceVariablePointerFeatures {
4551 VkStructureType sType
4552 void* pNext
4553 VkBool32 variablePointersStorageBuffer
4554 VkBool32 variablePointers
4555}
4556
4557class VkPhysicalDeviceProtectedMemoryFeatures {
4558 VkStructureType sType
4559 void* pNext
4560 VkBool32 protectedMemory
4561}
4562
4563class VkPhysicalDeviceProtectedMemoryProperties {
4564 VkStructureType sType
4565 void* pNext
4566 VkBool32 protectedNoFault
4567}
4568
4569class VkDeviceQueueInfo2 {
4570 VkStructureType sType
4571 const void* pNext
4572 VkDeviceQueueCreateFlags flags
4573 u32 queueFamilyIndex
4574 u32 queueIndex
4575}
4576
4577class VkProtectedSubmitInfo {
4578 VkStructureType sType
4579 const void* pNext
4580 VkBool32 protectedSubmit
4581}
4582
4583class VkSamplerYcbcrConversionCreateInfo {
4584 VkStructureType sType
4585 const void* pNext
4586 VkFormat format
4587 VkSamplerYcbcrModelConversion ycbcrModel
4588 VkSamplerYcbcrRange ycbcrRange
4589 VkComponentMapping components
4590 VkChromaLocation xChromaOffset
4591 VkChromaLocation yChromaOffset
4592 VkFilter chromaFilter
4593 VkBool32 forceExplicitReconstruction
4594}
4595
4596class VkSamplerYcbcrConversionInfo {
4597 VkStructureType sType
4598 const void* pNext
4599 VkSamplerYcbcrConversion conversion
4600}
4601
4602class VkBindImagePlaneMemoryInfo {
4603 VkStructureType sType
4604 const void* pNext
4605 VkImageAspectFlagBits planeAspect
4606}
4607
4608class VkImagePlaneMemoryRequirementsInfo {
4609 VkStructureType sType
4610 const void* pNext
4611 VkImageAspectFlagBits planeAspect
4612}
4613
4614class VkPhysicalDeviceSamplerYcbcrConversionFeatures {
4615 VkStructureType sType
4616 void* pNext
4617 VkBool32 samplerYcbcrConversion
4618}
4619
4620class VkSamplerYcbcrConversionImageFormatProperties {
4621 VkStructureType sType
4622 void* pNext
4623 u32 combinedImageSamplerDescriptorCount
4624}
4625
4626class VkDescriptorUpdateTemplateEntry {
4627 u32 dstBinding
4628 u32 dstArrayElement
4629 u32 descriptorCount
4630 VkDescriptorType descriptorType
4631 platform.size_t offset
4632 platform.size_t stride
4633}
4634
4635class VkDescriptorUpdateTemplateCreateInfo {
4636 VkStructureType sType
4637 void* pNext
4638 VkDescriptorUpdateTemplateCreateFlags flags
4639 u32 descriptorUpdateEntryCount
4640 const VkDescriptorUpdateTemplateEntry* pDescriptorUpdateEntries
4641 VkDescriptorUpdateTemplateType templateType
4642 VkDescriptorSetLayout descriptorSetLayout
4643 VkPipelineBindPoint pipelineBindPoint
4644 VkPipelineLayout pipelineLayout
4645 u32 set
4646}
4647
4648class VkExternalMemoryProperties {
4649 VkExternalMemoryFeatureFlags externalMemoryFeatures
4650 VkExternalMemoryHandleTypeFlags exportFromImportedHandleTypes
4651 VkExternalMemoryHandleTypeFlags compatibleHandleTypes
4652}
4653
4654class VkPhysicalDeviceExternalImageFormatInfo {
4655 VkStructureType sType
4656 const void* pNext
4657 VkExternalMemoryHandleTypeFlagBits handleType
4658}
4659
4660class VkExternalImageFormatProperties {
4661 VkStructureType sType
4662 void* pNext
4663 VkExternalMemoryProperties externalMemoryProperties
4664}
4665
4666class VkPhysicalDeviceExternalBufferInfo {
4667 VkStructureType sType
4668 const void* pNext
4669 VkBufferCreateFlags flags
4670 VkBufferUsageFlags usage
4671 VkExternalMemoryHandleTypeFlagBits handleType
4672}
4673
4674class VkExternalBufferProperties {
4675 VkStructureType sType
4676 void* pNext
4677 VkExternalMemoryProperties externalMemoryProperties
4678}
4679
4680class VkPhysicalDeviceIDProperties {
4681 VkStructureType sType
4682 void* pNext
4683 u8[VK_UUID_SIZE] deviceUUID
4684 u8[VK_UUID_SIZE] driverUUID
4685 u8[VK_LUID_SIZE] deviceLUID
4686 u32 deviceNodeMask
4687 VkBool32 deviceLUIDValid
4688}
4689
4690class VkExternalMemoryImageCreateInfo {
4691 VkStructureType sType
4692 const void* pNext
4693 VkExternalMemoryHandleTypeFlags handleTypes
4694}
4695
4696class VkExternalMemoryBufferCreateInfo {
4697 VkStructureType sType
4698 const void* pNext
4699 VkExternalMemoryHandleTypeFlags handleTypes
4700}
4701
4702class VkExportMemoryAllocateInfo {
4703 VkStructureType sType
4704 const void* pNext
4705 VkExternalMemoryHandleTypeFlags handleTypes
4706}
4707
4708class VkPhysicalDeviceExternalFenceInfo {
4709 VkStructureType sType
4710 const void* pNext
4711 VkExternalFenceHandleTypeFlagBits handleType
4712}
4713
4714class VkExternalFenceProperties {
4715 VkStructureType sType
4716 void* pNext
4717 VkExternalFenceHandleTypeFlags exportFromImportedHandleTypes
4718 VkExternalFenceHandleTypeFlags compatibleHandleTypes
4719 VkExternalFenceFeatureFlags externalFenceFeatures
4720}
4721
4722class VkExportFenceCreateInfo {
4723 VkStructureType sType
4724 const void* pNext
4725 VkExternalFenceHandleTypeFlags handleTypes
4726}
4727
4728class VkExportSemaphoreCreateInfo {
4729 VkStructureType sType
4730 const void* pNext
4731 VkExternalSemaphoreHandleTypeFlags handleTypes
4732}
4733
4734class VkPhysicalDeviceExternalSemaphoreInfo {
4735 VkStructureType sType
4736 const void* pNext
4737 VkExternalSemaphoreHandleTypeFlagBits handleType
4738}
4739
4740class VkExternalSemaphoreProperties {
4741 VkStructureType sType
4742 void* pNext
4743 VkExternalSemaphoreHandleTypeFlags exportFromImportedHandleTypes
4744 VkExternalSemaphoreHandleTypeFlags compatibleHandleTypes
4745 VkExternalSemaphoreFeatureFlags externalSemaphoreFeatures
4746}
4747
4748class VkPhysicalDeviceMaintenance3Properties {
4749 VkStructureType sType
4750 void* pNext
4751 u32 maxPerSetDescriptors
4752 VkDeviceSize maxMemoryAllocationSize
4753}
4754
4755class VkDescriptorSetLayoutSupport {
4756 VkStructureType sType
4757 void* pNext
4758 VkBool32 supported
4759}
4760
4761class VkPhysicalDeviceShaderDrawParameterFeatures {
4762 VkStructureType sType
4763 void* pNext
4764 VkBool32 shaderDrawParameters
4765}
4766
4767
Jesse Hallad250842017-03-10 18:35:38 -08004768@extension("VK_KHR_surface") // 1
Jesse Hallb00daad2015-11-29 19:46:20 -08004769class VkSurfaceCapabilitiesKHR {
Jesse Hall1356b0d2015-11-23 17:24:58 -08004770 u32 minImageCount
4771 u32 maxImageCount
4772 VkExtent2D currentExtent
4773 VkExtent2D minImageExtent
4774 VkExtent2D maxImageExtent
Jesse Hallf4ab2b12015-11-30 16:04:55 -08004775 u32 maxImageArrayLayers
Jesse Hall1356b0d2015-11-23 17:24:58 -08004776 VkSurfaceTransformFlagsKHR supportedTransforms
Jesse Hallf4ab2b12015-11-30 16:04:55 -08004777 VkSurfaceTransformFlagBitsKHR currentTransform
Jesse Halla6429252015-11-29 18:59:42 -08004778 VkCompositeAlphaFlagsKHR supportedCompositeAlpha
Jesse Hall1356b0d2015-11-23 17:24:58 -08004779 VkImageUsageFlags supportedUsageFlags
Michael Lentine88594d72015-11-12 12:49:45 -08004780}
4781
Jesse Hallad250842017-03-10 18:35:38 -08004782@extension("VK_KHR_surface") // 1
Michael Lentine88594d72015-11-12 12:49:45 -08004783class VkSurfaceFormatKHR {
Jesse Hall1356b0d2015-11-23 17:24:58 -08004784 VkFormat format
4785 VkColorSpaceKHR colorSpace
Michael Lentine88594d72015-11-12 12:49:45 -08004786}
4787
Jesse Hallad250842017-03-10 18:35:38 -08004788@extension("VK_KHR_swapchain") // 2
Michael Lentine88594d72015-11-12 12:49:45 -08004789class VkSwapchainCreateInfoKHR {
Jesse Hall1356b0d2015-11-23 17:24:58 -08004790 VkStructureType sType
4791 const void* pNext
Jesse Hallf4ab2b12015-11-30 16:04:55 -08004792 VkSwapchainCreateFlagsKHR flags
Jesse Hall1356b0d2015-11-23 17:24:58 -08004793 VkSurfaceKHR surface
4794 u32 minImageCount
4795 VkFormat imageFormat
4796 VkColorSpaceKHR imageColorSpace
4797 VkExtent2D imageExtent
Jesse Hallf4ab2b12015-11-30 16:04:55 -08004798 u32 imageArrayLayers
4799 VkImageUsageFlags imageUsage
Jesse Hall1356b0d2015-11-23 17:24:58 -08004800 VkSharingMode sharingMode
Jesse Hall03b6fe12015-11-24 12:44:21 -08004801 u32 queueFamilyIndexCount
Jesse Hall1356b0d2015-11-23 17:24:58 -08004802 const u32* pQueueFamilyIndices
Jesse Hallf4ab2b12015-11-30 16:04:55 -08004803 VkSurfaceTransformFlagBitsKHR preTransform
4804 VkCompositeAlphaFlagBitsKHR compositeAlpha
Jesse Hall1356b0d2015-11-23 17:24:58 -08004805 VkPresentModeKHR presentMode
Jesse Hall1356b0d2015-11-23 17:24:58 -08004806 VkBool32 clipped
Jesse Hallf4ab2b12015-11-30 16:04:55 -08004807 VkSwapchainKHR oldSwapchain
Michael Lentine88594d72015-11-12 12:49:45 -08004808}
4809
Jesse Hallad250842017-03-10 18:35:38 -08004810@extension("VK_KHR_swapchain") // 2
Michael Lentine88594d72015-11-12 12:49:45 -08004811class VkPresentInfoKHR {
Jesse Hall1356b0d2015-11-23 17:24:58 -08004812 VkStructureType sType
4813 const void* pNext
Jesse Hallb00daad2015-11-29 19:46:20 -08004814 u32 waitSemaphoreCount
4815 const VkSemaphore* pWaitSemaphores
Jesse Hall1356b0d2015-11-23 17:24:58 -08004816 u32 swapchainCount
Jesse Hall03b6fe12015-11-24 12:44:21 -08004817 const VkSwapchainKHR* pSwapchains
Jesse Hallf4ab2b12015-11-30 16:04:55 -08004818 const u32* pImageIndices
Jesse Halle1b12782015-11-30 11:27:32 -08004819 VkResult* pResults
Michael Lentine88594d72015-11-12 12:49:45 -08004820}
4821
Ian Elliott28bd2c32017-10-13 09:21:12 -06004822@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04004823@extension("VK_KHR_swapchain") // 2
4824class VkImageSwapchainCreateInfoKHR {
4825 VkStructureType sType
4826 const void* pNext
4827 VkSwapchainKHR swapchain
4828}
4829
Ian Elliott28bd2c32017-10-13 09:21:12 -06004830@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04004831@extension("VK_KHR_swapchain") // 2
4832class VkBindImageMemorySwapchainInfoKHR {
4833 VkStructureType sType
4834 const void* pNext
4835 VkSwapchainKHR swapchain
4836 u32 imageIndex
4837}
4838
Ian Elliott28bd2c32017-10-13 09:21:12 -06004839@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04004840@extension("VK_KHR_swapchain") // 2
4841class VkAcquireNextImageInfoKHR {
4842 VkStructureType sType
4843 const void* pNext
4844 VkSwapchainKHR swapchain
4845 u64 timeout
4846 VkSemaphore semaphore
4847 VkFence fence
4848 u32 deviceMask
4849}
4850
Ian Elliott28bd2c32017-10-13 09:21:12 -06004851@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04004852@extension("VK_KHR_swapchain") // 2
4853class VkDeviceGroupPresentCapabilitiesKHR {
4854 VkStructureType sType
4855 const void* pNext
4856 u32[VK_MAX_DEVICE_GROUP_SIZE] presentMask
4857 VkDeviceGroupPresentModeFlagsKHR modes
4858}
4859
Ian Elliott28bd2c32017-10-13 09:21:12 -06004860@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04004861@extension("VK_KHR_swapchain") // 2
4862class VkDeviceGroupPresentInfoKHR {
4863 VkStructureType sType
4864 const void* pNext
4865 u32 swapchainCount
4866 const u32* pDeviceMasks
4867 VkDeviceGroupPresentModeFlagBitsKHR mode
4868}
4869
Ian Elliott28bd2c32017-10-13 09:21:12 -06004870@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04004871@extension("VK_KHR_swapchain") // 2
4872class VkDeviceGroupSwapchainCreateInfoKHR {
4873 VkStructureType sType
4874 const void* pNext
4875 VkDeviceGroupPresentModeFlagsKHR modes
4876}
4877
Jesse Hallad250842017-03-10 18:35:38 -08004878@extension("VK_KHR_display") // 3
Jesse Hall1356b0d2015-11-23 17:24:58 -08004879class VkDisplayPropertiesKHR {
4880 VkDisplayKHR display
4881 const char* displayName
4882 VkExtent2D physicalDimensions
4883 VkExtent2D physicalResolution
4884 VkSurfaceTransformFlagsKHR supportedTransforms
Jesse Hall1356b0d2015-11-23 17:24:58 -08004885 VkBool32 planeReorderPossible
Jesse Halla6429252015-11-29 18:59:42 -08004886 VkBool32 persistentContent
Michael Lentine88594d72015-11-12 12:49:45 -08004887}
4888
Jesse Hallad250842017-03-10 18:35:38 -08004889@extension("VK_KHR_display") // 3
Jesse Halla6429252015-11-29 18:59:42 -08004890class VkDisplayModeParametersKHR {
Jesse Hall1356b0d2015-11-23 17:24:58 -08004891 VkExtent2D visibleRegion
Jesse Halla6429252015-11-29 18:59:42 -08004892 u32 refreshRate
Michael Lentine88594d72015-11-12 12:49:45 -08004893}
Jesse Halld27f6aa2015-08-15 17:58:48 -07004894
Jesse Hallad250842017-03-10 18:35:38 -08004895@extension("VK_KHR_display") // 3
Jesse Hall1356b0d2015-11-23 17:24:58 -08004896class VkDisplayModePropertiesKHR {
4897 VkDisplayModeKHR displayMode
Jesse Halla6429252015-11-29 18:59:42 -08004898 VkDisplayModeParametersKHR parameters
Jesse Hall1356b0d2015-11-23 17:24:58 -08004899}
4900
Jesse Hallad250842017-03-10 18:35:38 -08004901@extension("VK_KHR_display") // 3
Jesse Hall1356b0d2015-11-23 17:24:58 -08004902class VkDisplayModeCreateInfoKHR {
4903 VkStructureType sType
4904 const void* pNext
Jesse Hall9ba8bc82015-11-30 16:22:16 -08004905 VkDisplayModeCreateFlagsKHR flags
Jesse Halla6429252015-11-29 18:59:42 -08004906 VkDisplayModeParametersKHR parameters
Jesse Hall1356b0d2015-11-23 17:24:58 -08004907}
4908
Jesse Hallad250842017-03-10 18:35:38 -08004909@extension("VK_KHR_display") // 3
Jesse Hall1356b0d2015-11-23 17:24:58 -08004910class VkDisplayPlanePropertiesKHR {
Jesse Halla6429252015-11-29 18:59:42 -08004911 VkDisplayKHR currentDisplay
4912 u32 currentStackIndex
4913}
4914
Jesse Hallad250842017-03-10 18:35:38 -08004915@extension("VK_KHR_display") // 3
Jesse Halla6429252015-11-29 18:59:42 -08004916class VkDisplayPlaneCapabilitiesKHR {
Jesse Hall1356b0d2015-11-23 17:24:58 -08004917 VkDisplayPlaneAlphaFlagsKHR supportedAlpha
4918 VkOffset2D minSrcPosition
4919 VkOffset2D maxSrcPosition
4920 VkExtent2D minSrcExtent
4921 VkExtent2D maxSrcExtent
4922 VkOffset2D minDstPosition
4923 VkOffset2D maxDstPosition
4924 VkExtent2D minDstExtent
4925 VkExtent2D maxDstExtent
4926}
4927
Jesse Hallad250842017-03-10 18:35:38 -08004928@extension("VK_KHR_display") // 3
Jesse Halla6429252015-11-29 18:59:42 -08004929class VkDisplaySurfaceCreateInfoKHR {
Jesse Hall1356b0d2015-11-23 17:24:58 -08004930 VkStructureType sType
4931 const void* pNext
Jesse Hallf4ab2b12015-11-30 16:04:55 -08004932 VkDisplaySurfaceCreateFlagsKHR flags
Jesse Hall1356b0d2015-11-23 17:24:58 -08004933 VkDisplayModeKHR displayMode
4934 u32 planeIndex
4935 u32 planeStackIndex
Jesse Hallf4ab2b12015-11-30 16:04:55 -08004936 VkSurfaceTransformFlagBitsKHR transform
Jesse Hall1356b0d2015-11-23 17:24:58 -08004937 f32 globalAlpha
Jesse Hallf4ab2b12015-11-30 16:04:55 -08004938 VkDisplayPlaneAlphaFlagBitsKHR alphaMode
4939 VkExtent2D imageExtent
Jesse Hall1356b0d2015-11-23 17:24:58 -08004940}
4941
Jesse Hallad250842017-03-10 18:35:38 -08004942@extension("VK_KHR_display_swapchain") // 4
Jesse Hall1356b0d2015-11-23 17:24:58 -08004943class VkDisplayPresentInfoKHR {
4944 VkStructureType sType
4945 const void* pNext
4946 VkRect2D srcRect
4947 VkRect2D dstRect
Jesse Halla6429252015-11-29 18:59:42 -08004948 VkBool32 persistent
Jesse Hall1356b0d2015-11-23 17:24:58 -08004949}
4950
Jesse Hallad250842017-03-10 18:35:38 -08004951@extension("VK_KHR_xlib_surface") // 5
Jesse Hallf9fa9a52016-01-08 16:08:51 -08004952class VkXlibSurfaceCreateInfoKHR {
4953 VkStructureType sType
4954 const void* pNext
4955 VkXlibSurfaceCreateFlagsKHR flags
4956 platform.Display* dpy
4957 platform.Window window
4958}
4959
Jesse Hallad250842017-03-10 18:35:38 -08004960@extension("VK_KHR_xcb_surface") // 6
Jesse Hallf9fa9a52016-01-08 16:08:51 -08004961class VkXcbSurfaceCreateInfoKHR {
4962 VkStructureType sType
4963 const void* pNext
4964 VkXcbSurfaceCreateFlagsKHR flags
4965 platform.xcb_connection_t* connection
4966 platform.xcb_window_t window
4967}
4968
Jesse Hallad250842017-03-10 18:35:38 -08004969@extension("VK_KHR_wayland_surface") // 7
Jesse Hallf9fa9a52016-01-08 16:08:51 -08004970class VkWaylandSurfaceCreateInfoKHR {
4971 VkStructureType sType
4972 const void* pNext
4973 VkWaylandSurfaceCreateFlagsKHR flags
4974 platform.wl_display* display
4975 platform.wl_surface* surface
4976}
4977
Jesse Hallad250842017-03-10 18:35:38 -08004978@extension("VK_KHR_mir_surface") // 8
Jesse Hallf9fa9a52016-01-08 16:08:51 -08004979class VkMirSurfaceCreateInfoKHR {
4980 VkStructureType sType
4981 const void* pNext
4982 VkMirSurfaceCreateFlagsKHR flags
4983 platform.MirConnection* connection
4984 platform.MirSurface* mirSurface
4985}
4986
Jesse Hallad250842017-03-10 18:35:38 -08004987@extension("VK_KHR_android_surface") // 9
Jesse Hallf9fa9a52016-01-08 16:08:51 -08004988class VkAndroidSurfaceCreateInfoKHR {
4989 VkStructureType sType
4990 const void* pNext
4991 VkAndroidSurfaceCreateFlagsKHR flags
4992 platform.ANativeWindow* window
4993}
4994
Jesse Hallad250842017-03-10 18:35:38 -08004995@extension("VK_KHR_win32_surface") // 10
Jesse Hallf9fa9a52016-01-08 16:08:51 -08004996class VkWin32SurfaceCreateInfoKHR {
4997 VkStructureType sType
4998 const void* pNext
4999 VkWin32SurfaceCreateFlagsKHR flags
5000 platform.HINSTANCE hinstance
5001 platform.HWND hwnd
5002}
5003
Jesse Hallad250842017-03-10 18:35:38 -08005004@extension("VK_ANDROID_native_buffer") // 11
Jesse Halld1abd742017-02-09 21:45:51 -08005005@internal class Gralloc1Usage {
5006 u64 consumer
5007 u64 producer
5008}
5009
Jesse Hallad250842017-03-10 18:35:38 -08005010@extension("VK_ANDROID_native_buffer") // 11
Chia-I Wub262ddc2016-03-22 07:38:20 +08005011class VkNativeBufferANDROID {
5012 VkStructureType sType
5013 const void* pNext
5014 platform.buffer_handle_t handle
Jesse Halld1abd742017-02-09 21:45:51 -08005015 s32 stride
5016 s32 format
5017 s32 usage
5018 Gralloc1Usage usage2
Chia-I Wub262ddc2016-03-22 07:38:20 +08005019}
5020
Jesse Hallad250842017-03-10 18:35:38 -08005021@extension("VK_ANDROID_native_buffer") // 11
Chris Forbes8e4438b2016-12-07 16:26:49 +13005022class VkSwapchainImageCreateInfoANDROID {
5023 VkStructureType sType
5024 const void* pNext
Chris Forbes134d9582017-01-12 14:26:37 +13005025 VkSwapchainImageUsageFlagsANDROID flags
Chris Forbes48853712017-01-12 14:09:33 +13005026}
Ian Elliott4c8bb2a2016-12-29 11:07:26 -07005027
Jesse Hallad250842017-03-10 18:35:38 -08005028@extension("VK_ANDROID_native_buffer") // 11
Chris Forbes1d4e5542017-02-15 19:38:50 +13005029class VkPhysicalDevicePresentationPropertiesANDROID {
5030 VkStructureType sType
5031 void* pNext
5032 VkBool32 sharedImage
5033}
5034
Jesse Hallad250842017-03-10 18:35:38 -08005035@extension("VK_EXT_debug_report") // 12
Jesse Hall715b86a2016-01-16 16:34:29 -08005036class VkDebugReportCallbackCreateInfoEXT {
5037 VkStructureType sType
5038 const void* pNext
5039 VkDebugReportFlagsEXT flags
5040 PFN_vkDebugReportCallbackEXT pfnCallback
5041 void* pUserData
5042}
5043
Jesse Hallad250842017-03-10 18:35:38 -08005044@extension("VK_AMD_rasterization_order") // 19
Jesse Hall26763382016-05-20 07:13:52 -07005045class VkPipelineRasterizationStateRasterizationOrderAMD {
5046 VkStructureType sType
5047 const void* pNext
5048 VkRasterizationOrderAMD rasterizationOrder
5049}
5050
Jesse Hallad250842017-03-10 18:35:38 -08005051@extension("VK_EXT_debug_marker") // 23
Jesse Hall26763382016-05-20 07:13:52 -07005052class VkDebugMarkerObjectNameInfoEXT {
5053 VkStructureType sType
5054 const void* pNext
5055 VkDebugReportObjectTypeEXT objectType
5056 u64 object
5057 const char* pObjectName
5058}
5059
Jesse Hallad250842017-03-10 18:35:38 -08005060@extension("VK_EXT_debug_marker") // 23
Jesse Hall26763382016-05-20 07:13:52 -07005061class VkDebugMarkerObjectTagInfoEXT {
5062 VkStructureType sType
5063 const void* pNext
5064 VkDebugReportObjectTypeEXT objectType
5065 u64 object
5066 u64 tagName
5067 platform.size_t tagSize
5068 const void* pTag
5069}
5070
Jesse Hallad250842017-03-10 18:35:38 -08005071@extension("VK_EXT_debug_marker") // 23
Jesse Hall26763382016-05-20 07:13:52 -07005072class VkDebugMarkerMarkerInfoEXT {
5073 VkStructureType sType
5074 const void* pNext
5075 const char* pMarkerName
5076 f32[4] color
5077}
5078
Jesse Hallad250842017-03-10 18:35:38 -08005079@extension("VK_NV_dedicated_allocation") // 27
Jesse Hall56d386a2016-07-26 15:20:40 -07005080class VkDedicatedAllocationImageCreateInfoNV {
5081 VkStructureType sType
5082 const void* pNext
5083 VkBool32 dedicatedAllocation
5084}
5085
Jesse Hallad250842017-03-10 18:35:38 -08005086@extension("VK_NV_dedicated_allocation") // 27
Jesse Hall56d386a2016-07-26 15:20:40 -07005087class VkDedicatedAllocationBufferCreateInfoNV {
5088 VkStructureType sType
5089 const void* pNext
5090 VkBool32 dedicatedAllocation
5091}
5092
Jesse Hallad250842017-03-10 18:35:38 -08005093@extension("VK_NV_dedicated_allocation") // 27
Jesse Hall56d386a2016-07-26 15:20:40 -07005094class VkDedicatedAllocationMemoryAllocateInfoNV {
5095 VkStructureType sType
5096 const void* pNext
5097 VkImage image
5098 VkBuffer buffer
5099}
5100
Jesse Hall7ba0ac72017-07-07 17:13:23 -07005101@extension("VK_AMD_texture_gather_bias_lod") // 42
5102class VkTextureLODGatherFormatPropertiesAMD {
5103 VkStructureType sType
5104 void* pNext
5105 VkBool32 supportsTextureGatherLODBiasAMD
5106}
5107
Jesse Hall8c954d32018-01-17 22:06:20 -08005108@extension("VK_AMD_shader_info") // 43
5109class VkShaderResourceUsageAMD {
5110 u32 numUsedVgprs
5111 u32 numUsedSgprs
5112 u32 ldsSizePerLocalWorkGroup
5113 platform.size_t ldsUsageSizeInBytes
5114 platform.size_t scratchMemUsageInBytes
5115}
5116
5117@extension("VK_AMD_shader_info") // 43
5118class VkShaderStatisticsInfoAMD {
5119 VkShaderStageFlags shaderStageMask
5120 VkShaderResourceUsageAMD resourceUsage
5121 u32 numPhysicalVgprs
5122 u32 numPhysicalSgprs
5123 u32 numAvailableVgprs
5124 u32 numAvailableSgprs
5125 u32[3] computeWorkGroupSize
5126}
5127
Daniel Koch09f7bf92017-10-05 00:26:58 -04005128@extension("VK_KHR_multiview") // 54
5129class VkRenderPassMultiviewCreateInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005130 VkStructureType sType
5131 const void* pNext
5132 u32 subpassCount
5133 const u32* pViewMasks
5134 u32 dependencyCount
5135 const s32* pViewOffsets
5136 u32 correlationMaskCount
5137 const u32* pCorrelationMasks
5138}
5139
Daniel Koch09f7bf92017-10-05 00:26:58 -04005140@extension("VK_KHR_multiview") // 54
5141class VkPhysicalDeviceMultiviewFeaturesKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005142 VkStructureType sType
5143 void* pNext
5144 VkBool32 multiview
5145 VkBool32 multiviewGeometryShader
5146 VkBool32 multiviewTessellationShader
5147}
5148
Daniel Koch09f7bf92017-10-05 00:26:58 -04005149@extension("VK_KHR_multiview") // 54
5150class VkPhysicalDeviceMultiviewPropertiesKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005151 VkStructureType sType
5152 void* pNext
5153 u32 maxMultiviewViewCount
5154 u32 maxMultiviewInstanceIndex
5155}
5156
5157@extension("VK_NV_external_memory_capabilities") // 56
Jesse Halleb02c472017-02-24 15:13:45 -08005158class VkExternalImageFormatPropertiesNV {
5159 VkImageFormatProperties imageFormatProperties
5160 VkExternalMemoryFeatureFlagsNV externalMemoryFeatures
5161 VkExternalMemoryHandleTypeFlagsNV exportFromImportedHandleTypes
5162 VkExternalMemoryHandleTypeFlagsNV compatibleHandleTypes
5163}
5164
Jesse Hallad250842017-03-10 18:35:38 -08005165@extension("VK_NV_external_memory") // 57
Jesse Halleb02c472017-02-24 15:13:45 -08005166class VkExternalMemoryImageCreateInfoNV {
5167 VkStructureType sType
5168 const void* pNext
5169 VkExternalMemoryHandleTypeFlagsNV handleTypes
5170}
5171
Jesse Hallad250842017-03-10 18:35:38 -08005172@extension("VK_NV_external_memory") // 57
Jesse Halleb02c472017-02-24 15:13:45 -08005173class VkExportMemoryAllocateInfoNV {
5174 VkStructureType sType
5175 const void* pNext
5176 VkExternalMemoryHandleTypeFlagsNV handleTypes
5177}
5178
Jesse Hallad250842017-03-10 18:35:38 -08005179@extension("VK_NV_external_memory_win32") // 58
Jesse Halleb02c472017-02-24 15:13:45 -08005180class VkImportMemoryWin32HandleInfoNV {
5181 VkStructureType sType
5182 const void* pNext
5183 VkExternalMemoryHandleTypeFlagsNV handleType
5184 platform.HANDLE handle
5185}
5186
Jesse Hallad250842017-03-10 18:35:38 -08005187@extension("VK_NV_external_memory_win32") // 58
Jesse Halleb02c472017-02-24 15:13:45 -08005188class VkExportMemoryWin32HandleInfoNV {
5189 VkStructureType sType
5190 const void* pNext
5191 const platform.SECURITY_ATTRIBUTES* pAttributes
5192 platform.DWORD dwAccess
5193}
5194
Jesse Hallad250842017-03-10 18:35:38 -08005195@extension("VK_NV_win32_keyed_mutex") // 59
Jesse Halleb02c472017-02-24 15:13:45 -08005196class VkWin32KeyedMutexAcquireReleaseInfoNV {
5197 VkStructureType sType
5198 const void* pNext
5199 u32 acquireCount
5200 const VkDeviceMemory* pAcquireSyncs
5201 const u64* pAcquireKeys
5202 const u32* pAcquireTimeoutMilliseconds
5203 u32 releaseCount
5204 const VkDeviceMemory* pReleaseSyncs
5205 const u64* pReleaseKeys
5206}
5207
Jesse Hallad250842017-03-10 18:35:38 -08005208@extension("VK_KHR_get_physical_device_properties2") // 60
Chris Forbes1194ede2016-12-30 16:29:25 +13005209class VkPhysicalDeviceFeatures2KHR {
5210 VkStructureType sType
5211 void* pNext
5212 VkPhysicalDeviceFeatures features
5213}
5214
Jesse Hallad250842017-03-10 18:35:38 -08005215@extension("VK_KHR_get_physical_device_properties2") // 60
Chris Forbes1194ede2016-12-30 16:29:25 +13005216class VkPhysicalDeviceProperties2KHR {
5217 VkStructureType sType
5218 void* pNext
5219 VkPhysicalDeviceProperties properties
5220}
5221
Jesse Hallad250842017-03-10 18:35:38 -08005222@extension("VK_KHR_get_physical_device_properties2") // 60
Chris Forbes1194ede2016-12-30 16:29:25 +13005223class VkFormatProperties2KHR {
5224 VkStructureType sType
5225 void* pNext
5226 VkFormatProperties formatProperties
5227}
5228
Jesse Hallad250842017-03-10 18:35:38 -08005229@extension("VK_KHR_get_physical_device_properties2") // 60
Chris Forbes1194ede2016-12-30 16:29:25 +13005230class VkImageFormatProperties2KHR {
5231 VkStructureType sType
5232 void* pNext
5233 VkImageFormatProperties imageFormatProperties
5234}
5235
Jesse Hallad250842017-03-10 18:35:38 -08005236@extension("VK_KHR_get_physical_device_properties2") // 60
Chris Forbes1194ede2016-12-30 16:29:25 +13005237class VkPhysicalDeviceImageFormatInfo2KHR {
5238 VkStructureType sType
5239 const void* pNext
5240 VkFormat format
5241 VkImageType type
5242 VkImageTiling tiling
5243 VkImageUsageFlags usage
5244 VkImageCreateFlags flags
5245}
5246
Jesse Hallad250842017-03-10 18:35:38 -08005247@extension("VK_KHR_get_physical_device_properties2") // 60
Chris Forbes1194ede2016-12-30 16:29:25 +13005248class VkQueueFamilyProperties2KHR {
5249 VkStructureType sType
5250 void* pNext
5251 VkQueueFamilyProperties queueFamilyProperties
5252}
5253
Jesse Hallad250842017-03-10 18:35:38 -08005254@extension("VK_KHR_get_physical_device_properties2") // 60
Chris Forbes1194ede2016-12-30 16:29:25 +13005255class VkPhysicalDeviceMemoryProperties2KHR {
5256 VkStructureType sType
5257 void* pNext
5258 VkPhysicalDeviceMemoryProperties memoryProperties
5259}
5260
Jesse Hallad250842017-03-10 18:35:38 -08005261@extension("VK_KHR_get_physical_device_properties2") // 60
Chris Forbes1194ede2016-12-30 16:29:25 +13005262class VkSparseImageFormatProperties2KHR {
5263 VkStructureType sType
5264 void* pNext
5265 VkSparseImageFormatProperties properties
5266}
5267
Jesse Hallad250842017-03-10 18:35:38 -08005268@extension("VK_KHR_get_physical_device_properties2") // 60
Chris Forbes1194ede2016-12-30 16:29:25 +13005269class VkPhysicalDeviceSparseImageFormatInfo2KHR {
5270 VkStructureType sType
5271 const void* pNext
5272 VkFormat format
5273 VkImageType type
5274 VkSampleCountFlagBits samples
5275 VkImageUsageFlags usage
5276 VkImageTiling tiling
5277}
5278
Daniel Koch09f7bf92017-10-05 00:26:58 -04005279@extension("VK_KHR_device_group") // 61
5280class VkMemoryAllocateFlagsInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005281 VkStructureType sType
5282 const void* pNext
Daniel Koch09f7bf92017-10-05 00:26:58 -04005283 VkMemoryAllocateFlagsKHR flags
Jesse Hallad250842017-03-10 18:35:38 -08005284 u32 deviceMask
5285}
5286
Daniel Koch09f7bf92017-10-05 00:26:58 -04005287@extension("VK_KHR_device_group") // 61
5288class VkBindBufferMemoryDeviceGroupInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005289 VkStructureType sType
5290 const void* pNext
Jesse Hallad250842017-03-10 18:35:38 -08005291 u32 deviceIndexCount
5292 const u32* pDeviceIndices
5293}
5294
Daniel Koch09f7bf92017-10-05 00:26:58 -04005295@extension("VK_KHR_device_group") // 61
5296class VkBindImageMemoryDeviceGroupInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005297 VkStructureType sType
5298 const void* pNext
Jesse Hallad250842017-03-10 18:35:38 -08005299 u32 deviceIndexCount
5300 const u32* pDeviceIndices
5301 u32 SFRRectCount
5302 const VkRect2D* pSFRRects
5303}
5304
Daniel Koch09f7bf92017-10-05 00:26:58 -04005305@extension("VK_KHR_device_group") // 61
5306class VkDeviceGroupRenderPassBeginInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005307 VkStructureType sType
5308 const void* pNext
5309 u32 deviceMask
5310 u32 deviceRenderAreaCount
5311 const VkRect2D* pDeviceRenderAreas
5312}
5313
Daniel Koch09f7bf92017-10-05 00:26:58 -04005314@extension("VK_KHR_device_group") // 61
5315class VkDeviceGroupCommandBufferBeginInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005316 VkStructureType sType
5317 const void* pNext
5318 u32 deviceMask
5319}
5320
Daniel Koch09f7bf92017-10-05 00:26:58 -04005321@extension("VK_KHR_device_group") // 61
5322class VkDeviceGroupSubmitInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005323 VkStructureType sType
5324 const void* pNext
5325 u32 waitSemaphoreCount
5326 const u32* pWaitSemaphoreDeviceIndices
5327 u32 commandBufferCount
5328 const u32* pCommandBufferDeviceMasks
5329 u32 signalSemaphoreCount
5330 const u32* pSignalSemaphoreDeviceIndices
5331}
5332
Daniel Koch09f7bf92017-10-05 00:26:58 -04005333@extension("VK_KHR_device_group") // 61
5334class VkDeviceGroupBindSparseInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005335 VkStructureType sType
5336 const void* pNext
5337 u32 resourceDeviceIndex
5338 u32 memoryDeviceIndex
5339}
5340
Jesse Hallad250842017-03-10 18:35:38 -08005341@extension("VK_EXT_validation_flags") // 62
Chris Forbes289cb792016-12-30 15:03:55 +13005342class VkValidationFlagsEXT {
5343 VkStructureType sType
5344 const void* pNext
5345 u32 disabledValidationCheckCount
Jesse Hall115df0c2018-07-30 12:00:59 -07005346 const VkValidationCheckEXT* pDisabledValidationChecks
Chris Forbes289cb792016-12-30 15:03:55 +13005347}
5348
Jesse Hallad250842017-03-10 18:35:38 -08005349@extension("VK_NN_vi_surface") // 63
Jesse Hall77ad05b2017-03-10 22:02:20 -08005350class VkViSurfaceCreateInfoNN {
5351 VkStructureType sType
5352 const void* pNext
5353 VkViSurfaceCreateFlagsNN flags
5354 void* window
5355}
5356
Daniel Koch09f7bf92017-10-05 00:26:58 -04005357@extension("VK_KHR_device_group_creation") // 71
5358class VkPhysicalDeviceGroupPropertiesKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005359 VkStructureType sType
Jesse Hallf5ad48b2017-03-20 13:09:19 -07005360 void* pNext
Jesse Hallad250842017-03-10 18:35:38 -08005361 u32 physicalDeviceCount
Daniel Koch09f7bf92017-10-05 00:26:58 -04005362 VkPhysicalDevice[VK_MAX_DEVICE_GROUP_SIZE] physicalDevices
Jesse Hallad250842017-03-10 18:35:38 -08005363 VkBool32 subsetAllocation
5364}
5365
Daniel Koch09f7bf92017-10-05 00:26:58 -04005366@extension("VK_KHR_device_group_creation") // 71
5367class VkDeviceGroupDeviceCreateInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005368 VkStructureType sType
5369 const void* pNext
5370 u32 physicalDeviceCount
5371 const VkPhysicalDevice* pPhysicalDevices
5372}
5373
Jesse Hall9492f992017-08-28 12:10:06 -07005374@extension("VK_KHR_external_memory_capabilities") // 72
5375class VkExternalMemoryPropertiesKHR {
5376 VkExternalMemoryFeatureFlagsKHR externalMemoryFeatures
5377 VkExternalMemoryHandleTypeFlagsKHR exportFromImportedHandleTypes
5378 VkExternalMemoryHandleTypeFlagsKHR compatibleHandleTypes
Jesse Hallad250842017-03-10 18:35:38 -08005379}
5380
Jesse Hall9492f992017-08-28 12:10:06 -07005381@extension("VK_KHR_external_memory_capabilities") // 72
5382class VkPhysicalDeviceExternalImageFormatInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005383 VkStructureType sType
5384 const void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005385 VkExternalMemoryHandleTypeFlagBitsKHR handleType
Jesse Hallad250842017-03-10 18:35:38 -08005386}
5387
Jesse Hall9492f992017-08-28 12:10:06 -07005388@extension("VK_KHR_external_memory_capabilities") // 72
5389class VkExternalImageFormatPropertiesKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005390 VkStructureType sType
5391 void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005392 VkExternalMemoryPropertiesKHR externalMemoryProperties
Jesse Hallad250842017-03-10 18:35:38 -08005393}
5394
Jesse Hall9492f992017-08-28 12:10:06 -07005395@extension("VK_KHR_external_memory_capabilities") // 72
5396class VkPhysicalDeviceExternalBufferInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005397 VkStructureType sType
5398 const void* pNext
5399 VkBufferCreateFlags flags
5400 VkBufferUsageFlags usage
Jesse Hall9492f992017-08-28 12:10:06 -07005401 VkExternalMemoryHandleTypeFlagBitsKHR handleType
Jesse Hallad250842017-03-10 18:35:38 -08005402}
5403
Jesse Hall9492f992017-08-28 12:10:06 -07005404@extension("VK_KHR_external_memory_capabilities") // 72
5405class VkExternalBufferPropertiesKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005406 VkStructureType sType
5407 void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005408 VkExternalMemoryPropertiesKHR externalMemoryProperties
Jesse Hallad250842017-03-10 18:35:38 -08005409}
5410
Jesse Hall9492f992017-08-28 12:10:06 -07005411@extension("VK_KHR_external_memory_capabilities") // 72
5412class VkPhysicalDeviceIDPropertiesKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005413 VkStructureType sType
5414 void* pNext
5415 u8[VK_UUID_SIZE] deviceUUID
5416 u8[VK_UUID_SIZE] driverUUID
Daniel Koch09f7bf92017-10-05 00:26:58 -04005417 u8[VK_LUID_SIZE] deviceLUID
Jesse Hall9492f992017-08-28 12:10:06 -07005418 u32 deviceNodeMask
Jesse Hallad250842017-03-10 18:35:38 -08005419 VkBool32 deviceLUIDValid
5420}
5421
Jesse Hall9492f992017-08-28 12:10:06 -07005422@extension("VK_KHR_external_memory") // 73
5423class VkExternalMemoryImageCreateInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005424 VkStructureType sType
5425 const void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005426 VkExternalMemoryHandleTypeFlagsKHR handleTypes
Jesse Hallad250842017-03-10 18:35:38 -08005427}
5428
Jesse Hall9492f992017-08-28 12:10:06 -07005429@extension("VK_KHR_external_memory") // 73
5430class VkExternalMemoryBufferCreateInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005431 VkStructureType sType
5432 const void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005433 VkExternalMemoryHandleTypeFlagsKHR handleTypes
Jesse Hallad250842017-03-10 18:35:38 -08005434}
5435
Jesse Hall9492f992017-08-28 12:10:06 -07005436@extension("VK_KHR_external_memory") // 73
5437class VkExportMemoryAllocateInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005438 VkStructureType sType
5439 const void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005440 VkExternalMemoryHandleTypeFlagsKHR handleTypes
Jesse Hallad250842017-03-10 18:35:38 -08005441}
5442
Jesse Hall9492f992017-08-28 12:10:06 -07005443@extension("VK_KHR_external_memory_win32") // 74
5444class VkImportMemoryWin32HandleInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005445 VkStructureType sType
5446 const void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005447 VkExternalMemoryHandleTypeFlagBitsKHR handleType
Jesse Hallad250842017-03-10 18:35:38 -08005448 platform.HANDLE handle
Jesse Hall9492f992017-08-28 12:10:06 -07005449 platform.LPCWSTR name
Jesse Hallad250842017-03-10 18:35:38 -08005450}
5451
Jesse Hall9492f992017-08-28 12:10:06 -07005452@extension("VK_KHR_external_memory_win32") // 74
5453class VkExportMemoryWin32HandleInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005454 VkStructureType sType
5455 const void* pNext
5456 const platform.SECURITY_ATTRIBUTES* pAttributes
5457 platform.DWORD dwAccess
5458 platform.LPCWSTR name
5459}
5460
Jesse Hall9492f992017-08-28 12:10:06 -07005461@extension("VK_KHR_external_memory_win32") // 74
5462class VkMemoryWin32HandlePropertiesKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005463 VkStructureType sType
5464 void* pNext
5465 u32 memoryTypeBits
5466}
5467
Jesse Hall9492f992017-08-28 12:10:06 -07005468@extension("VK_KHR_external_memory_win32") // 74
5469class VkMemoryGetWin32HandleInfoKHR {
5470 VkStructureType sType
5471 void* pNext
5472 VkDeviceMemory memory
5473 VkExternalMemoryHandleTypeFlagBitsKHR handleType
5474}
5475
5476@extension("VK_KHR_external_memory_fd") // 75
5477class VkImportMemoryFdInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005478 VkStructureType sType
5479 const void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005480 VkExternalMemoryHandleTypeFlagBitsKHR handleType
Jesse Hallad250842017-03-10 18:35:38 -08005481 int fd
5482}
5483
Jesse Hall9492f992017-08-28 12:10:06 -07005484@extension("VK_KHR_external_memory_fd") // 75
5485class VkMemoryFdPropertiesKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005486 VkStructureType sType
5487 void* pNext
5488 u32 memoryTypeBits
5489}
5490
Jesse Hall9492f992017-08-28 12:10:06 -07005491@extension("VK_KHR_external_memory_fd") // 75
5492class VkMemoryGetFdInfoKHR {
5493 VkStructureType sType
5494 void* pNext
5495 VkDeviceMemory memory
5496 VkExternalMemoryHandleTypeFlagBitsKHR handleType
5497}
5498
5499@extension("VK_KHR_win32_keyed_mutex") // 76
5500class VkWin32KeyedMutexAcquireReleaseInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005501 VkStructureType sType
5502 const void* pNext
5503 u32 acquireCount
5504 const VkDeviceMemory* pAcquireSyncs
5505 const u64* pAcquireKeys
5506 const u32* pAcquireTimeouts
5507 u32 releaseCount
5508 const VkDeviceMemory* pReleaseSyncs
5509 const u64* pReleaseKeys
5510}
5511
Jesse Hall9492f992017-08-28 12:10:06 -07005512@extension("VK_KHR_external_semaphore_capabilities") // 77
5513class VkPhysicalDeviceExternalSemaphoreInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005514 VkStructureType sType
5515 const void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005516 VkExternalSemaphoreHandleTypeFlagBitsKHR handleType
Jesse Hallad250842017-03-10 18:35:38 -08005517}
5518
Jesse Hall9492f992017-08-28 12:10:06 -07005519@extension("VK_KHR_external_semaphore_capabilities") // 77
5520class VkExternalSemaphorePropertiesKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005521 VkStructureType sType
5522 void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005523 VkExternalSemaphoreHandleTypeFlagsKHR exportFromImportedHandleTypes
5524 VkExternalSemaphoreHandleTypeFlagsKHR compatibleHandleTypes
5525 VkExternalSemaphoreFeatureFlagsKHR externalSemaphoreFeatures
Jesse Hallad250842017-03-10 18:35:38 -08005526}
5527
Jesse Hall9492f992017-08-28 12:10:06 -07005528@extension("VK_KHR_external_semaphore") // 78
5529class VkExportSemaphoreCreateInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005530 VkStructureType sType
5531 const void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005532 VkExternalSemaphoreHandleTypeFlagsKHR handleTypes
Jesse Hallad250842017-03-10 18:35:38 -08005533}
5534
Jesse Hall9492f992017-08-28 12:10:06 -07005535@extension("VK_KHR_external_semaphore_win32") // 79
5536class VkImportSemaphoreWin32HandleInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005537 VkStructureType sType
5538 const void* pNext
5539 VkSemaphore semaphore
Jesse Hall9492f992017-08-28 12:10:06 -07005540 VkSemaphoreImportFlagsKHR flags
5541 VkExternalSemaphoreHandleTypeFlagsKHR handleType
Jesse Hallad250842017-03-10 18:35:38 -08005542 platform.HANDLE handle
Jesse Hall9492f992017-08-28 12:10:06 -07005543 platform.LPCWSTR name
Jesse Hallad250842017-03-10 18:35:38 -08005544}
5545
Jesse Hall9492f992017-08-28 12:10:06 -07005546@extension("VK_KHR_external_semaphore_win32") // 79
5547class VkExportSemaphoreWin32HandleInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005548 VkStructureType sType
5549 const void* pNext
5550 const platform.SECURITY_ATTRIBUTES* pAttributes
5551 platform.DWORD dwAccess
5552 platform.LPCWSTR name
5553}
5554
Jesse Hall9492f992017-08-28 12:10:06 -07005555@extension("VK_KHR_external_semaphore_win32") // 79
5556class VkD3D12FenceSubmitInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005557 VkStructureType sType
5558 const void* pNext
5559 u32 waitSemaphoreValuesCount
5560 const u64* pWaitSemaphoreValues
5561 u32 signalSemaphoreValuesCount
5562 const u64* pSignalSemaphoreValues
5563}
5564
Jesse Hall9492f992017-08-28 12:10:06 -07005565@extension("VK_KHR_external_semaphore_win32") // 79
5566class VkSemaphoreGetWin32HandleInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005567 VkStructureType sType
5568 const void* pNext
5569 VkSemaphore semaphore
Jesse Hall9492f992017-08-28 12:10:06 -07005570 VkExternalSemaphoreHandleTypeFlagBitsKHR handleType
5571}
5572
5573@extension("VK_KHR_external_semaphore_fd") // 80
5574class VkImportSemaphoreFdInfoKHR {
5575 VkStructureType sType
5576 const void* pNext
5577 VkSemaphore semaphore
5578 VkSemaphoreImportFlagsKHR flags
5579 VkExternalSemaphoreHandleTypeFlagBitsKHR handleType
Jesse Hallad250842017-03-10 18:35:38 -08005580 s32 fd
5581}
5582
Jesse Hall9492f992017-08-28 12:10:06 -07005583@extension("VK_KHR_external_semaphore_fd") // 80
5584class VkSemaphoreGetFdInfoKHR {
5585 VkStructureType sType
5586 const void* pNext
5587 VkSemaphore semaphore
5588 VkExternalSemaphoreHandleTypeFlagBitsKHR handleType
5589}
5590
Jesse Hallad250842017-03-10 18:35:38 -08005591@extension("VK_KHR_push_descriptor") // 81
5592class VkPhysicalDevicePushDescriptorPropertiesKHR {
5593 VkStructureType sType
5594 void* pNext
5595 u32 maxPushDescriptors
5596}
5597
Jesse Halla13a3cf2018-07-09 15:51:52 -07005598@extension("VK_EXT_conditional_rendering") // 82
5599class VkConditionalRenderingBeginInfoEXT {
5600 VkStructureType sType
5601 const void* pNext
5602 VkBuffer buffer
5603 VkDeviceSize offset
5604 VkConditionalRenderingFlagsEXT flags
5605}
5606
5607@extension("VK_EXT_conditional_rendering") // 82
5608class VkPhysicalDeviceConditionalRenderingFeaturesEXT {
5609 VkStructureType sType
5610 void* pNext
5611 VkBool32 conditionalRendering
5612 VkBool32 inheritedConditionalRendering
5613}
5614
5615@extension("VK_EXT_conditional_rendering") // 82
5616class VkCommandBufferInheritanceConditionalRenderingInfoEXT {
5617 VkStructureType sType
5618 const void* pNext
5619 VkBool32 conditionalRenderingEnable
5620}
5621
Jesse Hall9492f992017-08-28 12:10:06 -07005622@extension("VK_KHR_16bit_storage") // 84
5623class VkPhysicalDevice16BitStorageFeaturesKHR {
5624 VkStructureType sType
5625 void* pNext
5626 VkBool32 storageBuffer16BitAccess
5627 VkBool32 uniformAndStorageBuffer16BitAccess
5628 VkBool32 storagePushConstant16
5629 VkBool32 storageInputOutput16
5630}
5631
Jesse Hallad250842017-03-10 18:35:38 -08005632@extension("VK_KHR_incremental_present") // 85
5633class VkRectLayerKHR {
5634 VkOffset2D offset
5635 VkExtent2D extent
5636 u32 layer
5637}
5638
5639@extension("VK_KHR_incremental_present") // 85
5640class VkPresentRegionKHR {
5641 u32 rectangleCount
5642 const VkRectLayerKHR* pRectangles
5643}
5644
5645@extension("VK_KHR_incremental_present") // 85
5646class VkPresentRegionsKHR {
5647 VkStructureType sType
5648 const void* pNext
5649 u32 swapchainCount
5650 const VkPresentRegionKHR* pRegions
5651}
5652
5653@extension("VK_KHR_descriptor_update_template") // 86
5654class VkDescriptorUpdateTemplateEntryKHR {
5655 u32 dstBinding
5656 u32 dstArrayElement
5657 u32 descriptorCount
5658 VkDescriptorType descriptorType
5659 platform.size_t offset
5660 platform.size_t stride
5661}
5662
5663@extension("VK_KHR_descriptor_update_template") // 86
5664class VkDescriptorUpdateTemplateCreateInfoKHR {
5665 VkStructureType sType
5666 void* pNext
5667 VkDescriptorUpdateTemplateCreateFlagsKHR flags
5668 u32 descriptorUpdateEntryCount
5669 const VkDescriptorUpdateTemplateEntryKHR* pDescriptorUpdateEntries
5670 VkDescriptorUpdateTemplateTypeKHR templateType
5671 VkDescriptorSetLayout descriptorSetLayout
5672 VkPipelineBindPoint pipelineBindPoint
5673 VkPipelineLayout pipelineLayout
5674 u32 set
5675}
5676
5677@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13005678class VkDeviceGeneratedCommandsFeaturesNVX {
5679 VkStructureType sType
5680 const void* pNext
5681 VkBool32 computeBindingPointSupport
5682}
5683
Jesse Hallad250842017-03-10 18:35:38 -08005684@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13005685class VkDeviceGeneratedCommandsLimitsNVX {
5686 VkStructureType sType
5687 const void* pNext
5688 u32 maxIndirectCommandsLayoutTokenCount
5689 u32 maxObjectEntryCounts
5690 u32 minSequenceCountBufferOffsetAlignment
5691 u32 minSequenceIndexBufferOffsetAlignment
5692 u32 minCommandsTokenBufferOffsetAlignment
5693}
5694
Jesse Hallad250842017-03-10 18:35:38 -08005695@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13005696class VkIndirectCommandsTokenNVX {
5697 VkIndirectCommandsTokenTypeNVX tokenType
5698 VkBuffer buffer
5699 VkDeviceSize offset
5700}
5701
Jesse Hallad250842017-03-10 18:35:38 -08005702@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13005703class VkIndirectCommandsLayoutTokenNVX {
5704 VkIndirectCommandsTokenTypeNVX tokenType
5705 u32 bindingUnit
5706 u32 dynamicCount
5707 u32 divisor
5708}
5709
Jesse Hallad250842017-03-10 18:35:38 -08005710@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13005711class VkIndirectCommandsLayoutCreateInfoNVX {
5712 VkStructureType sType
5713 const void* pNext
5714 VkPipelineBindPoint pipelineBindPoint
5715 VkIndirectCommandsLayoutUsageFlagsNVX flags
5716 u32 tokenCount
5717 const VkIndirectCommandsLayoutTokenNVX* pTokens
5718}
5719
Jesse Hallad250842017-03-10 18:35:38 -08005720@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13005721class VkCmdProcessCommandsInfoNVX {
5722 VkStructureType sType
5723 const void* pNext
5724 VkObjectTableNVX objectTable
5725 VkIndirectCommandsLayoutNVX indirectCommandsLayout
5726 u32 indirectCommandsTokenCount
5727 const VkIndirectCommandsTokenNVX* pIndirectCommandsTokens
5728 u32 maxSequencesCount
5729 VkCommandBuffer targetCommandBuffer
5730 VkBuffer sequencesCountBuffer
5731 VkDeviceSize sequencesCountOffset
5732 VkBuffer sequencesIndexBuffer
5733 VkDeviceSize sequencesIndexOffset
5734}
5735
Jesse Hallad250842017-03-10 18:35:38 -08005736@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13005737class VkCmdReserveSpaceForCommandsInfoNVX {
5738 VkStructureType sType
5739 const void* pNext
5740 VkObjectTableNVX objectTable
5741 VkIndirectCommandsLayoutNVX indirectCommandsLayout
5742 u32 maxSequencesCount
5743}
5744
Jesse Hallad250842017-03-10 18:35:38 -08005745@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13005746class VkObjectTableCreateInfoNVX {
5747 VkStructureType sType
5748 const void* pNext
5749 u32 objectCount
5750 const VkObjectEntryTypeNVX* pObjectEntryTypes
5751 const u32* pObjectEntryCounts
5752 const VkObjectEntryUsageFlagsNVX* pObjectEntryUsageFlags
5753 u32 maxUniformBuffersPerDescriptor
5754 u32 maxStorageBuffersPerDescriptor
5755 u32 maxStorageImagesPerDescriptor
5756 u32 maxSampledImagesPerDescriptor
5757 u32 maxPipelineLayouts
5758}
5759
Jesse Hallad250842017-03-10 18:35:38 -08005760@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13005761class VkObjectTableEntryNVX {
5762 VkObjectEntryTypeNVX type
5763 VkObjectEntryUsageFlagsNVX flags
5764}
5765
Jesse Hallad250842017-03-10 18:35:38 -08005766@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13005767class VkObjectTablePipelineEntryNVX {
5768 VkObjectEntryTypeNVX type
5769 VkObjectEntryUsageFlagsNVX flags
5770 VkPipeline pipeline
5771}
5772
Jesse Hallad250842017-03-10 18:35:38 -08005773@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13005774class VkObjectTableDescriptorSetEntryNVX {
5775 VkObjectEntryTypeNVX type
5776 VkObjectEntryUsageFlagsNVX flags
5777 VkPipelineLayout pipelineLayout
5778 VkDescriptorSet descriptorSet
5779}
5780
Jesse Hallad250842017-03-10 18:35:38 -08005781@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13005782class VkObjectTableVertexBufferEntryNVX {
5783 VkObjectEntryTypeNVX type
5784 VkObjectEntryUsageFlagsNVX flags
5785 VkBuffer buffer
5786}
5787
Jesse Hallad250842017-03-10 18:35:38 -08005788@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13005789class VkObjectTableIndexBufferEntryNVX {
5790 VkObjectEntryTypeNVX type
5791 VkObjectEntryUsageFlagsNVX flags
5792 VkBuffer buffer
Jesse Hall77ad05b2017-03-10 22:02:20 -08005793 VkIndexType indexType
Chris Forbes289cb792016-12-30 15:03:55 +13005794}
5795
Jesse Hallad250842017-03-10 18:35:38 -08005796@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13005797class VkObjectTablePushConstantEntryNVX {
5798 VkObjectEntryTypeNVX type
5799 VkObjectEntryUsageFlagsNVX flags
5800 VkPipelineLayout pipelineLayout
5801 VkShaderStageFlags stageFlags
5802}
5803
Jesse Hallad250842017-03-10 18:35:38 -08005804@extension("VK_NV_clip_space_w_scaling") // 88
5805class VkViewportWScalingNV {
5806 f32 xcoeff
5807 f32 ycoeff
Jesse Hall889cd9a2017-02-25 22:12:23 -08005808}
5809
Jesse Hallad250842017-03-10 18:35:38 -08005810@extension("VK_NV_clip_space_w_scaling") // 88
5811class VkPipelineViewportWScalingStateCreateInfoNV {
Jesse Hall889cd9a2017-02-25 22:12:23 -08005812 VkStructureType sType
5813 const void* pNext
Jesse Hallad250842017-03-10 18:35:38 -08005814 VkBool32 viewportWScalingEnable
5815 u32 viewportCount
5816 const VkViewportWScalingNV* pViewportWScalings
Jesse Hall889cd9a2017-02-25 22:12:23 -08005817}
5818
Jesse Hallad250842017-03-10 18:35:38 -08005819@extension("VK_EXT_display_surface_counter") // 91
Jesse Hall77ad05b2017-03-10 22:02:20 -08005820class VkSurfaceCapabilities2EXT {
5821 VkStructureType sType
5822 void* pNext
5823 u32 minImageCount
5824 u32 maxImageCount
5825 VkExtent2D currentExtent
5826 VkExtent2D minImageExtent
5827 VkExtent2D maxImageExtent
5828 u32 maxImageArrayLayers
5829 VkSurfaceTransformFlagsKHR supportedTransforms
5830 VkSurfaceTransformFlagBitsKHR currentTransform
5831 VkCompositeAlphaFlagsKHR supportedCompositeAlpha
5832 VkImageUsageFlags supportedUsageFlags
5833 VkSurfaceCounterFlagsEXT supportedSurfaceCounters
5834}
5835
Jesse Hallad250842017-03-10 18:35:38 -08005836@extension("VK_EXT_display_control") // 92
Jesse Hall77ad05b2017-03-10 22:02:20 -08005837class VkDisplayPowerInfoEXT {
5838 VkStructureType sType
5839 const void* pNext
5840 VkDisplayPowerStateEXT powerState
5841}
5842
Jesse Hallad250842017-03-10 18:35:38 -08005843@extension("VK_EXT_display_control") // 92
Jesse Hall77ad05b2017-03-10 22:02:20 -08005844class VkDeviceEventInfoEXT {
5845 VkStructureType sType
5846 const void* pNext
5847 VkDeviceEventTypeEXT deviceEvent
5848}
5849
Jesse Hallad250842017-03-10 18:35:38 -08005850@extension("VK_EXT_display_control") // 92
Jesse Hall77ad05b2017-03-10 22:02:20 -08005851class VkDisplayEventInfoEXT {
5852 VkStructureType sType
5853 const void* pNext
5854 VkDisplayEventTypeEXT displayEvent
5855}
5856
Jesse Hallad250842017-03-10 18:35:38 -08005857@extension("VK_EXT_display_control") // 92
Jesse Hall77ad05b2017-03-10 22:02:20 -08005858class VkSwapchainCounterCreateInfoEXT {
5859 VkStructureType sType
5860 const void* pNext
5861 VkSurfaceCounterFlagsEXT surfaceCounters
5862}
5863
Jesse Hallad250842017-03-10 18:35:38 -08005864@extension("VK_GOOGLE_display_timing") // 93
5865class VkRefreshCycleDurationGOOGLE {
Jesse Hallfdc8ab32017-03-10 21:01:57 -08005866 u64 refreshDuration
Jesse Hallad250842017-03-10 18:35:38 -08005867}
5868
5869@extension("VK_GOOGLE_display_timing") // 93
5870class VkPastPresentationTimingGOOGLE {
Jesse Hallfdc8ab32017-03-10 21:01:57 -08005871 u32 presentID
5872 u64 desiredPresentTime
5873 u64 actualPresentTime
5874 u64 earliestPresentTime
5875 u64 presentMargin
Jesse Hallad250842017-03-10 18:35:38 -08005876}
5877
5878@extension("VK_GOOGLE_display_timing") // 93
5879class VkPresentTimeGOOGLE {
Jesse Hallfdc8ab32017-03-10 21:01:57 -08005880 u32 presentID
5881 u64 desiredPresentTime
Jesse Hallad250842017-03-10 18:35:38 -08005882}
5883
5884@extension("VK_GOOGLE_display_timing") // 93
5885class VkPresentTimesInfoGOOGLE {
Jesse Hallfdc8ab32017-03-10 21:01:57 -08005886 VkStructureType sType
5887 const void* pNext
5888 u32 swapchainCount
5889 const VkPresentTimeGOOGLE* pTimes
Jesse Hallad250842017-03-10 18:35:38 -08005890}
5891
5892@extension("VK_NVX_multiview_per_view_attributes") // 98
5893class VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX {
5894 VkStructureType sType
5895 void* pNext
5896 VkBool32 perViewPositionAllComponents
5897}
5898
5899@extension("VK_NV_viewport_swizzle") // 99
5900class VkViewportSwizzleNV {
5901 VkViewportCoordinateSwizzleNV x
5902 VkViewportCoordinateSwizzleNV y
5903 VkViewportCoordinateSwizzleNV z
5904 VkViewportCoordinateSwizzleNV w
5905}
5906
5907@extension("VK_NV_viewport_swizzle") // 99
5908class VkPipelineViewportSwizzleStateCreateInfoNV {
5909 VkStructureType sType
5910 const void* pNext
5911 VkPipelineViewportSwizzleStateCreateFlagsNV flags
5912 u32 viewportCount
5913 const VkViewportSwizzleNV* pViewportSwizzles
5914}
5915
5916@extension("VK_EXT_discard_rectangles") // 100
5917class VkPhysicalDeviceDiscardRectanglePropertiesEXT {
5918 VkStructureType sType
Jesse Hallf5ad48b2017-03-20 13:09:19 -07005919 void* pNext
Jesse Hallad250842017-03-10 18:35:38 -08005920 u32 maxDiscardRectangles
5921}
5922
5923@extension("VK_EXT_discard_rectangles") // 100
5924class VkPipelineDiscardRectangleStateCreateInfoEXT {
Jesse Hallfdc8ab32017-03-10 21:01:57 -08005925 VkStructureType sType
5926 const void* pNext
5927 VkPipelineDiscardRectangleStateCreateFlagsEXT flags
5928 VkDiscardRectangleModeEXT discardRectangleMode
5929 u32 discardRectangleCount
5930 const VkRect2D* pDiscardRectangles
Jesse Hallad250842017-03-10 18:35:38 -08005931}
5932
Jesse Hall8c954d32018-01-17 22:06:20 -08005933@extension("VK_EXT_conservative_rasterization") // 102
5934class VkPhysicalDeviceConservativeRasterizationPropertiesEXT {
5935 VkStructureType sType
5936 void* pNext
5937 f32 primitiveOverestimationSize
5938 f32 maxExtraPrimitiveOverestimationSize
5939 f32 extraPrimitiveOverestimationSizeGranularity
5940 VkBool32 primitiveUnderestimation
5941 VkBool32 conservativePointAndLineRasterization
5942 VkBool32 degenerateTrianglesRasterized
5943 VkBool32 degenerateLinesRasterized
5944 VkBool32 fullyCoveredFragmentShaderInputVariable
5945 VkBool32 conservativeRasterizationPostDepthCoverage
5946}
5947
5948@extension("VK_EXT_conservative_rasterization") // 102
5949class VkPipelineRasterizationConservativeStateCreateInfoEXT {
5950 VkStructureType sType
5951 const void* pNext
5952 VkPipelineRasterizationConservativeStateCreateFlagsEXT flags
5953 VkConservativeRasterizationModeEXT conservativeRasterizationMode
5954 f32 extraPrimitiveOverestimationSize
5955}
5956
Jesse Hallad250842017-03-10 18:35:38 -08005957@extension("VK_EXT_hdr_metadata") // 106
Courtney Goeltzenleuchterd634c482017-01-05 15:55:31 -07005958class VkXYColorEXT {
Jesse Hallfdc8ab32017-03-10 21:01:57 -08005959 f32 x
5960 f32 y
Courtney Goeltzenleuchterd634c482017-01-05 15:55:31 -07005961}
5962
Jesse Hallad250842017-03-10 18:35:38 -08005963@extension("VK_EXT_hdr_metadata") // 106
Courtney Goeltzenleuchterd634c482017-01-05 15:55:31 -07005964class VkHdrMetadataEXT {
Jesse Hallfdc8ab32017-03-10 21:01:57 -08005965 VkStructureType sType
5966 const void* pNext
5967 VkXYColorEXT displayPrimaryRed
5968 VkXYColorEXT displayPrimaryGreen
5969 VkXYColorEXT displayPrimaryBlue
5970 VkXYColorEXT whitePoint
5971 f32 maxLuminance
5972 f32 minLuminance
5973 f32 maxContentLightLevel
5974 f32 maxFrameAverageLightLevel
Courtney Goeltzenleuchterd634c482017-01-05 15:55:31 -07005975}
5976
Jesse Halla13a3cf2018-07-09 15:51:52 -07005977@extension("VK_KHR_create_renderpass2") // 110
5978class VkAttachmentDescription2KHR {
5979 VkStructureType sType
5980 const void* pNext
5981 VkAttachmentDescriptionFlags flags
5982 VkFormat format
5983 VkSampleCountFlagBits samples
5984 VkAttachmentLoadOp loadOp
5985 VkAttachmentStoreOp storeOp
5986 VkAttachmentLoadOp stencilLoadOp
5987 VkAttachmentStoreOp stencilStoreOp
5988 VkImageLayout initialLayout
5989 VkImageLayout finalLayout
5990}
5991
5992@extension("VK_KHR_create_renderpass2") // 110
5993class VkAttachmentReference2KHR {
5994 VkStructureType sType
5995 const void* pNext
5996 u32 attachment
5997 VkImageLayout layout
5998 VkImageAspectFlags aspectMask
5999}
6000
6001@extension("VK_KHR_create_renderpass2") // 110
6002class VkSubpassDescription2KHR {
6003 VkStructureType sType
6004 const void* pNext
6005 VkSubpassDescriptionFlags flags
6006 VkPipelineBindPoint pipelineBindPoint
6007 u32 viewMask
6008 u32 inputAttachmentCount
6009 const VkAttachmentReference2KHR* pInputAttachments
6010 u32 colorAttachmentCount
6011 const VkAttachmentReference2KHR* pColorAttachments
6012 const VkAttachmentReference2KHR* pResolveAttachments
6013 const VkAttachmentReference2KHR* pDepthStencilAttachment
6014 u32 preserveAttachmentCount
6015 const u32* pPreserveAttachments
6016}
6017
6018@extension("VK_KHR_create_renderpass2") // 110
6019class VkSubpassDependency2KHR {
6020 VkStructureType sType
6021 const void* pNext
6022 u32 srcSubpass
6023 u32 dstSubpass
6024 VkPipelineStageFlags srcStageMask
6025 VkPipelineStageFlags dstStageMask
6026 VkAccessFlags srcAccessMask
6027 VkAccessFlags dstAccessMask
6028 VkDependencyFlags dependencyFlags
6029 s32 viewOffset
6030}
6031
6032@extension("VK_KHR_create_renderpass2") // 110
6033class VkRenderPassCreateInfo2KHR {
6034 VkStructureType sType
6035 const void* pNext
6036 VkRenderPassCreateFlags flags
6037 u32 attachmentCount
6038 const VkAttachmentDescription2KHR* pAttachments
6039 u32 subpassCount
6040 const VkSubpassDescription2KHR* pSubpasses
6041 u32 dependencyCount
6042 const VkSubpassDependency2KHR* pDependencies
6043 u32 correlatedViewMaskCount
6044 const u32* pCorrelatedViewMasks
6045}
6046
6047@extension("VK_KHR_create_renderpass2") // 110
6048class VkSubpassBeginInfoKHR {
6049 VkStructureType sType
6050 const void* pNext
6051 VkSubpassContents contents
6052}
6053
6054@extension("VK_KHR_create_renderpass2") // 110
6055class VkSubpassEndInfoKHR {
6056 VkStructureType sType
6057 const void* pNext
6058}
6059
Jesse Hall05556b12017-05-18 17:40:25 -07006060@extension("VK_KHR_shared_presentable_image") // 112
Chris Forbese2d3ee12017-03-16 16:10:15 +13006061class VkSharedPresentSurfaceCapabilitiesKHR {
6062 VkStructureType sType
6063 const void* pNext
6064 VkImageUsageFlags sharedPresentSupportedUsageFlags
6065}
6066
Jesse Hall9492f992017-08-28 12:10:06 -07006067@extension("VK_KHR_external_fence_capabilities") // 113
6068class VkPhysicalDeviceExternalFenceInfoKHR {
6069 VkStructureType sType
6070 const void* pNext
6071 VkExternalFenceHandleTypeFlagBitsKHR handleType
6072}
6073
6074@extension("VK_KHR_external_fence_capabilities") // 113
6075class VkExternalFencePropertiesKHR {
6076 VkStructureType sType
6077 void* pNext
6078 VkExternalFenceHandleTypeFlagsKHR exportFromImportedHandleTypes
6079 VkExternalFenceHandleTypeFlagsKHR compatibleHandleTypes
6080 VkExternalFenceFeatureFlagsKHR externalFenceFeatures
6081}
6082
6083@extension("VK_KHR_external_fence") // 114
6084class VkExportFenceCreateInfoKHR {
6085 VkStructureType sType
6086 const void* pNext
6087 VkExternalFenceHandleTypeFlagsKHR handleTypes
6088}
6089
6090@extension("VK_KHR_external_fence_win32") // 115
6091class VkImportFenceWin32HandleInfoKHR {
6092 VkStructureType sType
6093 const void* pNext
6094 VkFence fence
6095 VkFenceImportFlagsKHR flags
6096 VkExternalFenceHandleTypeFlagBitsKHR handleType
6097 platform.HANDLE handle
6098 platform.LPCWSTR name
6099}
6100
6101@extension("VK_KHR_external_fence_win32") // 115
6102class VkExportFenceWin32HandleInfoKHR {
6103 VkStructureType sType
6104 const void* pNext
6105 const platform.SECURITY_ATTRIBUTES* pAttributes
6106 platform.DWORD dwAccess
6107 platform.LPCWSTR name
6108}
6109
6110@extension("VK_KHR_external_fence_win32") // 115
6111class VkFenceGetWin32HandleInfoKHR {
6112 VkStructureType sType
6113 const void* pNext
6114 VkFence fence
6115 VkExternalFenceHandleTypeFlagBitsKHR handleType
6116}
6117
6118@extension("VK_KHR_external_fence_fd") // 116
6119class VkImportFenceFdInfoKHR {
6120 VkStructureType sType
6121 const void* pNext
6122 VkFence fence
6123 VkFenceImportFlagsKHR flags
6124 VkExternalFenceHandleTypeFlagBitsKHR handleType
6125 int fd
6126}
6127
6128@extension("VK_KHR_external_fence_fd") // 116
6129class VkFenceGetFdInfoKHR {
6130 VkStructureType sType
6131 const void* pNext
6132 VkFence fence
6133 VkExternalFenceHandleTypeFlagBitsKHR handleType
6134}
6135
Jesse Hall076f95d2017-09-20 11:34:47 -07006136@extension("VK_KHR_maintenance2") // 118
6137class VkPhysicalDevicePointClippingPropertiesKHR {
6138 VkStructureType sType
6139 void* pNext
6140 VkPointClippingBehaviorKHR pointClippingBehavior
6141}
6142
6143@extension("VK_KHR_maintenance2") // 118
6144class VkInputAttachmentAspectReferenceKHR {
6145 u32 subpass
6146 u32 inputAttachmentIndex
6147 VkImageAspectFlags aspectMask
6148}
6149
6150@extension("VK_KHR_maintenance2") // 118
6151class VkRenderPassInputAttachmentAspectCreateInfoKHR {
6152 VkStructureType sType
6153 const void* pNext
6154 u32 aspectReferenceCount
6155 const VkInputAttachmentAspectReferenceKHR* pAspectReferences
6156}
6157
6158@extension("VK_KHR_maintenance2") // 118
6159class VkImageViewUsageCreateInfoKHR {
6160 VkStructureType sType
6161 const void* pNext
6162 VkImageUsageFlags usage
6163}
6164
6165@extension("VK_KHR_maintenance2") // 118
6166class VkPipelineTessellationDomainOriginStateCreateInfoKHR {
6167 VkStructureType sType
6168 const void* pNext
6169 VkTessellationDomainOriginKHR domainOrigin
6170}
6171
Jesse Hall05556b12017-05-18 17:40:25 -07006172@extension("VK_KHR_get_surface_capabilities2") // 120
Chris Forbese2d3ee12017-03-16 16:10:15 +13006173class VkPhysicalDeviceSurfaceInfo2KHR {
6174 VkStructureType sType
6175 const void* pNext
6176 VkSurfaceKHR surface
6177}
6178
Jesse Hall05556b12017-05-18 17:40:25 -07006179@extension("VK_KHR_get_surface_capabilities2") // 120
Chris Forbese2d3ee12017-03-16 16:10:15 +13006180class VkSurfaceCapabilities2KHR {
6181 VkStructureType sType
6182 void* pNext
6183 VkSurfaceCapabilitiesKHR surfaceCapabilities
6184}
6185
Jesse Hall05556b12017-05-18 17:40:25 -07006186@extension("VK_KHR_get_surface_capabilities2") // 120
Chris Forbese2d3ee12017-03-16 16:10:15 +13006187class VkSurfaceFormat2KHR {
6188 VkStructureType sType
6189 void* pNext
6190 VkSurfaceFormatKHR surfaceFormat
6191}
6192
Jesse Hall9492f992017-08-28 12:10:06 -07006193@extension("VK_KHR_variable_pointers") // 121
6194class VkPhysicalDeviceVariablePointerFeaturesKHR {
6195 VkStructureType sType
6196 void* pNext
6197 VkBool32 variablePointersStorageBuffer
6198 VkBool32 variablePointers
6199}
6200
Jesse Hall54f8d132018-04-18 08:16:59 -07006201@extension("VK_KHR_display_properties2") // 122
6202class VkDisplayProperties2KHR {
6203 VkStructureType sType
6204 void* pNext
6205 VkDisplayPropertiesKHR displayProperties
6206}
6207
6208@extension("VK_KHR_display_properties2") // 122
6209class VkDisplayPlaneProperties2KHR {
6210 VkStructureType sType
6211 void* pNext
6212 VkDisplayPlanePropertiesKHR displayPlaneProperties
6213}
6214
6215@extension("VK_KHR_display_properties2") // 122
6216class VkDisplayModeProperties2KHR {
6217 VkStructureType sType
6218 void* pNext
6219 VkDisplayModePropertiesKHR displayModeProperties
6220}
6221
6222@extension("VK_KHR_display_properties2") // 122
6223class VkDisplayPlaneInfo2KHR {
6224 VkStructureType sType
6225 const void* pNext
6226 VkDisplayModeKHR mode
6227 u32 planeIndex
6228}
6229
6230@extension("VK_KHR_display_properties2") // 122
6231class VkDisplayPlaneCapabilities2KHR {
6232 VkStructureType sType
6233 void* pNext
6234 VkDisplayPlaneCapabilitiesKHR capabilities
6235}
6236
Jesse Hallad250842017-03-10 18:35:38 -08006237@extension("VK_MVK_ios_surface") // 123
6238class VkIOSSurfaceCreateInfoMVK {
6239 VkStructureType sType
6240 const void* pNext
6241 VkIOSSurfaceCreateFlagsMVK flags
6242 const void* pView
6243}
6244
6245@extension("VK_MVK_macos_surface") // 124
6246class VkMacOSSurfaceCreateInfoMVK {
6247 VkStructureType sType
6248 const void* pNext
6249 VkMacOSSurfaceCreateFlagsMVK flags
6250 const void* pView
6251}
6252
Jesse Hall9492f992017-08-28 12:10:06 -07006253@extension("VK_KHR_dedicated_allocation") // 128
6254class VkMemoryDedicatedRequirementsKHR {
6255 VkStructureType sType
6256 void* pNext
6257 VkBool32 prefersDedicatedAllocation
6258 VkBool32 requiresDedicatedAllocation
6259}
6260
6261@extension("VK_KHR_dedicated_allocation") // 128
6262class VkMemoryDedicatedAllocateInfoKHR {
6263 VkStructureType sType
6264 const void* pNext
6265 VkImage image
6266 VkBuffer buffer
6267}
6268
Jesse Hall8c954d32018-01-17 22:06:20 -08006269@extension("VK_EXT_debug_utils") // 129
6270class VkDebugUtilsObjectNameInfoEXT {
6271 VkStructureType sType
6272 const void* pNext
6273 VkObjectType objectType
6274 u64 objectHandle
6275 const char* pObjectName
6276}
Jesse Hall72e6a132018-04-06 13:00:44 -07006277
Jesse Hall8c954d32018-01-17 22:06:20 -08006278@extension("VK_EXT_debug_utils") // 129
6279class VkDebugUtilsObjectTagInfoEXT {
6280 VkStructureType sType
6281 const void* pNext
6282 VkObjectType objectType
6283 u64 objectHandle
6284 u64 tagName
6285 platform.size_t tagSize
6286 const void* pTag
6287}
Jesse Hall72e6a132018-04-06 13:00:44 -07006288
Jesse Hall8c954d32018-01-17 22:06:20 -08006289@extension("VK_EXT_debug_utils") // 129
6290class VkDebugUtilsLabelEXT {
6291 VkStructureType sType
6292 const void* pNext
6293 const char* pLabelName
6294 f32[4] color
6295}
6296
6297@extension("VK_EXT_debug_utils") // 129
6298class VkDebugUtilsMessengerCallbackDataEXT {
6299 VkStructureType sType
6300 const void* pNext
6301 VkDebugUtilsMessengerCallbackDataFlagsEXT flags
6302 const char* pMessageIdName
6303 s32 messageIdNumber
6304 const char* pMessage
6305 u32 queueLabelCount
6306 VkDebugUtilsLabelEXT* pQueueLabels
6307 u32 cmdBufLabelCount
6308 VkDebugUtilsLabelEXT* pCmdBufLabels
6309 u32 objectCount
6310 VkDebugUtilsObjectNameInfoEXT* pObjects
6311}
6312
6313@extension("VK_EXT_debug_utils") // 129
6314class VkDebugUtilsMessengerCreateInfoEXT {
6315 VkStructureType sType
6316 const void* pNext
6317 VkDebugUtilsMessengerCreateFlagsEXT flags
6318 VkDebugUtilsMessageSeverityFlagsEXT messageSeverity
6319 VkDebugUtilsMessageTypeFlagsEXT messageType
6320 PFN_vkDebugUtilsMessengerCallbackEXT pfnUserCallback
6321 void* pUserData
6322}
6323
Jesse Hall36215a92018-01-18 15:04:37 -08006324@extension("VK_ANDROID_external_memory_android_hardware_buffer") // 131
6325class VkAndroidHardwareBufferUsageANDROID {
6326 VkStructureType sType
6327 void* pNext
6328 u64 androidHardwareBufferUsage
6329}
6330
6331@extension("VK_ANDROID_external_memory_android_hardware_buffer") // 130
6332class VkAndroidHardwareBufferPropertiesANDROID {
6333 VkStructureType sType
6334 void* pNext
6335 VkDeviceSize allocationSize
6336 u32 memoryTypeBits
6337}
6338
6339@extension("VK_ANDROID_external_memory_android_hardware_buffer") // 130
6340class VkAndroidHardwareBufferFormatPropertiesANDROID {
6341 VkStructureType sType
6342 void* pNext
6343 VkFormat format
6344 u64 externalFormat
6345 VkFormatFeatureFlags formatFeatures
6346 VkComponentMapping samplerYcbcrConversionComponents
6347 VkSamplerYcbcrModelConversion suggestedYcbcrModel
6348 VkSamplerYcbcrRange suggestedYcbcrRange
6349 VkChromaLocation suggestedXChromaOffset
6350 VkChromaLocation suggestedYChromaOffset
6351}
6352
6353@extension("VK_ANDROID_external_memory_android_hardware_buffer") // 130
6354class VkImportAndroidHardwareBufferInfoANDROID {
6355 VkStructureType sType
6356 const void* pNext
6357 platform.AHardwareBuffer* buffer
6358}
6359
6360@extension("VK_ANDROID_external_memory_android_hardware_buffer") // 130
6361class VkMemoryGetAndroidHardwareBufferInfoANDROID {
6362 VkStructureType sType
6363 const void* pNext
6364 VkDeviceMemory memory
6365}
6366
6367@extension("VK_ANDROID_external_memory_android_hardware_buffer") // 130
6368class VkExternalFormatANDROID {
6369 VkStructureType sType
6370 void* pNext
6371 u64 externalFormat
6372}
6373
Jesse Hall7ba0ac72017-07-07 17:13:23 -07006374@extension("VK_EXT_sampler_filter_minmax") // 131
6375class VkSamplerReductionModeCreateInfoEXT {
6376 VkStructureType sType
6377 const void* pNext
6378 VkSamplerReductionModeEXT reductionMode
6379}
6380
6381@extension("VK_EXT_sampler_filter_minmax") // 131
6382class VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT {
6383 VkStructureType sType
6384 void* pNext
6385 VkBool32 filterMinmaxSingleComponentFormats
6386 VkBool32 filterMinmaxImageComponentMapping
6387}
6388
Jesse Hall77726222017-09-19 14:49:27 -05006389@extension("VK_EXT_sample_locations") // 144
6390class VkSampleLocationEXT {
6391 f32 x
6392 f32 y
6393}
6394
6395@extension("VK_EXT_sample_locations") // 144
6396class VkSampleLocationsInfoEXT {
6397 VkStructureType sType
6398 const void* pNext
6399 VkSampleCountFlagBits sampleLocationsPerPixel
6400 VkExtent2D sampleLocationGridSize
6401 u32 sampleLocationsCount
6402 const VkSampleLocationEXT* pSampleLocations
6403}
6404
6405@extension("VK_EXT_sample_locations") // 144
6406class VkAttachmentSampleLocationsEXT {
6407 u32 attachmentIndex
6408 VkSampleLocationsInfoEXT sampleLocationsInfo
6409}
6410
6411@extension("VK_EXT_sample_locations") // 144
6412class VkSubpassSampleLocationsEXT {
6413 u32 subpassIndex
6414 VkSampleLocationsInfoEXT sampleLocationsInfo
6415}
6416
6417@extension("VK_EXT_sample_locations") // 144
6418class VkRenderPassSampleLocationsBeginInfoEXT {
6419 VkStructureType sType
6420 const void* pNext
6421 u32 attachmentInitialSampleLocationsCount
6422 const VkAttachmentSampleLocationsEXT* pAttachmentInitialSampleLocations
6423 u32 postSubpassSampleLocationsCount
Jesse Hall8c954d32018-01-17 22:06:20 -08006424 const VkSubpassSampleLocationsEXT* pPostSubpassSampleLocations
Jesse Hall77726222017-09-19 14:49:27 -05006425}
6426
6427@extension("VK_EXT_sample_locations") // 144
6428class VkPipelineSampleLocationsStateCreateInfoEXT {
6429 VkStructureType sType
6430 const void* pNext
6431 VkBool32 sampleLocationsEnable
6432 VkSampleLocationsInfoEXT sampleLocationsInfo
6433}
6434
6435@extension("VK_EXT_sample_locations") // 144
6436class VkPhysicalDeviceSampleLocationsPropertiesEXT {
6437 VkStructureType sType
6438 void* pNext
6439 VkSampleCountFlags sampleLocationSampleCounts
6440 VkExtent2D maxSampleLocationGridSize
6441 f32[2] sampleLocationCoordinateRange
6442 u32 sampleLocationSubPixelBits
6443 VkBool32 variableSampleLocations
6444}
6445
6446@extension("VK_EXT_sample_locations") // 144
6447class VkMultisamplePropertiesEXT {
6448 VkStructureType sType
6449 void* pNext
6450 VkExtent2D maxSampleLocationGridSize
6451}
6452
Jesse Hall9492f992017-08-28 12:10:06 -07006453@extension("VK_KHR_get_memory_requirements2") // 147
6454class VkBufferMemoryRequirementsInfo2KHR {
6455 VkStructureType sType
6456 const void* pNext
6457 VkBuffer buffer
6458}
6459
6460@extension("VK_KHR_get_memory_requirements2") // 147
6461class VkImageMemoryRequirementsInfo2KHR {
6462 VkStructureType sType
6463 const void* pNext
6464 VkImage image
6465}
6466
6467@extension("VK_KHR_get_memory_requirements2") // 147
6468class VkImageSparseMemoryRequirementsInfo2KHR {
6469 VkStructureType sType
6470 const void* pNext
6471 VkImage image
6472}
6473
6474@extension("VK_KHR_get_memory_requirements2") // 147
6475class VkMemoryRequirements2KHR {
6476 VkStructureType sType
6477 void* pNext
6478 VkMemoryRequirements memoryRequirements
6479}
6480
6481@extension("VK_KHR_get_memory_requirements2") // 147
6482class VkSparseImageMemoryRequirements2KHR {
6483 VkStructureType sType
6484 void* pNext
6485 VkSparseImageMemoryRequirements memoryRequirements
6486}
6487
Jesse Hall076f95d2017-09-20 11:34:47 -07006488@extension("VK_KHR_image_format_list") // 148
6489class VkImageFormatListCreateInfoKHR {
6490 VkStructureType sType
6491 const void* pNext
6492 u32 viewFormatCount
6493 const VkFormat* pViewFormats
6494}
6495
Jesse Hall7ba0ac72017-07-07 17:13:23 -07006496@extension("VK_EXT_blend_operation_advanced") // 149
6497class VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT {
6498 VkStructureType sType
6499 void* pNext
6500 VkBool32 advancedBlendCoherentOperations
6501}
6502
6503@extension("VK_EXT_blend_operation_advanced") // 149
6504class VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT {
6505 VkStructureType sType
6506 void* pNext
6507 u32 advancedBlendMaxColorAttachments
6508 VkBool32 advancedBlendIndependentBlend
6509 VkBool32 advancedBlendNonPremultipliedSrcColor
6510 VkBool32 advancedBlendNonPremultipliedDstColor
6511 VkBool32 advancedBlendCorrelatedOverlap
6512 VkBool32 advancedBlendAllOperations
6513}
6514
6515@extension("VK_EXT_blend_operation_advanced") // 149
6516class VkPipelineColorBlendAdvancedStateCreateInfoEXT {
6517 VkStructureType sType
6518 const void* pNext
6519 VkBool32 srcPremultiplied
6520 VkBool32 dstPremultiplied
6521 VkBlendOverlapEXT blendOverlap
6522}
6523
6524@extension("VK_NV_fragment_coverage_to_color") // 150
6525class VkPipelineCoverageToColorStateCreateInfoNV {
6526 VkStructureType sType
6527 const void* pNext
6528 VkPipelineCoverageToColorStateCreateFlagsNV flags
6529 VkBool32 coverageToColorEnable
6530 u32 coverageToColorLocation
6531}
6532
6533@extension("VK_NV_framebuffer_mixed_samples") // 153
6534class VkPipelineCoverageModulationStateCreateInfoNV {
6535 VkStructureType sType
6536 const void* pNext
6537 VkPipelineCoverageModulationStateCreateFlagsNV flags
6538 VkCoverageModulationModeNV coverageModulationMode
6539 VkBool32 coverageModulationTableEnable
6540 u32 coverageModulationTableCount
6541 const f32* pCoverageModulationTable
6542}
6543
Jesse Hall076f95d2017-09-20 11:34:47 -07006544@extension("VK_KHR_sampler_ycbcr_conversion") // 157
6545class VkSamplerYcbcrConversionCreateInfoKHR {
6546 VkStructureType sType
6547 const void* pNext
6548 VkFormat format
6549 VkSamplerYcbcrModelConversionKHR ycbcrModel
6550 VkSamplerYcbcrRangeKHR ycbcrRange
6551 VkComponentMapping components
6552 VkChromaLocationKHR xChromaOffset
6553 VkChromaLocationKHR yChromaOffset
6554 VkFilter chromaFilter
6555 VkBool32 forceExplicitReconstruction
6556}
6557
6558@extension("VK_KHR_sampler_ycbcr_conversion") // 157
6559class VkSamplerYcbcrConversionInfoKHR {
6560 VkStructureType sType
6561 const void* pNext
6562 VkSamplerYcbcrConversionKHR conversion
6563}
6564
6565@extension("VK_KHR_sampler_ycbcr_conversion") // 157
6566class VkBindImagePlaneMemoryInfoKHR {
6567 VkStructureType sType
6568 const void* pNext
6569 VkImageAspectFlagBits planeAspect
6570}
6571
6572@extension("VK_KHR_sampler_ycbcr_conversion") // 157
6573class VkImagePlaneMemoryRequirementsInfoKHR {
6574 VkStructureType sType
6575 const void* pNext
6576 VkImageAspectFlagBits planeAspect
6577}
6578
6579@extension("VK_KHR_sampler_ycbcr_conversion") // 157
6580class VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR {
6581 VkStructureType sType
6582 void* pNext
6583 VkBool32 samplerYcbcrConversion
6584}
6585
6586@extension("VK_KHR_sampler_ycbcr_conversion") // 157
6587class VkSamplerYcbcrConversionImageFormatPropertiesKHR {
6588 VkStructureType sType
6589 void* pNext
6590 u32 combinedImageSamplerDescriptorCount
6591}
6592
6593@extension("VK_KHR_bind_memory2") // 158
6594class VkBindBufferMemoryInfoKHR {
6595 VkStructureType sType
6596 const void* pNext
6597 VkBuffer buffer
6598 VkDeviceMemory memory
6599 VkDeviceSize memoryOffset
6600}
6601
6602@extension("VK_KHR_bind_memory2") // 158
6603class VkBindImageMemoryInfoKHR {
6604 VkStructureType sType
6605 const void* pNext
6606 VkImage image
6607 VkDeviceMemory memory
6608 VkDeviceSize memoryOffset
6609}
6610
Jesse Hall77726222017-09-19 14:49:27 -05006611@extension("VK_EXT_validation_cache") // 161
6612class VkValidationCacheCreateInfoEXT {
6613 VkStructureType sType
6614 const void* pNext
6615 VkValidationCacheCreateFlagsEXT flags
6616 platform.size_t initialDataSize
6617 const void* pInitialData
6618}
6619
6620@extension("VK_EXT_validation_cache") // 161
6621class VkShaderModuleValidationCacheCreateInfoEXT {
6622 VkStructureType sType
6623 const void* pNext
6624 VkValidationCacheEXT validationCache
6625}
6626
Jesse Hall72e6a132018-04-06 13:00:44 -07006627@extension("VK_EXT_descriptor_indexing") // 162
6628class VkDescriptorSetLayoutBindingFlagsCreateInfoEXT {
6629 VkStructureType sType
6630 const void* pNext
6631 u32 bindingCount
6632 const VkDescriptorBindingFlagsEXT* pBindingFlags
6633}
6634
6635@extension("VK_EXT_descriptor_indexing") // 162
6636class VkPhysicalDeviceDescriptorIndexingFeaturesEXT {
6637 VkStructureType sType
6638 void* pNext
6639 VkBool32 shaderInputAttachmentArrayDynamicIndexing
6640 VkBool32 shaderUniformTexelBufferArrayDynamicIndexing
6641 VkBool32 shaderStorageTexelBufferArrayDynamicIndexing
6642 VkBool32 shaderUniformBufferArrayNonUniformIndexing
6643 VkBool32 shaderSampledImageArrayNonUniformIndexing
6644 VkBool32 shaderStorageBufferArrayNonUniformIndexing
6645 VkBool32 shaderStorageImageArrayNonUniformIndexing
6646 VkBool32 shaderInputAttachmentArrayNonUniformIndexing
6647 VkBool32 shaderUniformTexelBufferArrayNonUniformIndexing
6648 VkBool32 shaderStorageTexelBufferArrayNonUniformIndexing
6649 VkBool32 descriptorBindingUniformBufferUpdateAfterBind
6650 VkBool32 descriptorBindingSampledImageUpdateAfterBind
6651 VkBool32 descriptorBindingStorageImageUpdateAfterBind
6652 VkBool32 descriptorBindingStorageBufferUpdateAfterBind
6653 VkBool32 descriptorBindingUniformTexelBufferUpdateAfterBind
6654 VkBool32 descriptorBindingStorageTexelBufferUpdateAfterBind
6655 VkBool32 descriptorBindingUpdateUnusedWhilePending
6656 VkBool32 descriptorBindingPartiallyBound
6657 VkBool32 descriptorBindingVariableDescriptorCount
6658 VkBool32 runtimeDescriptorArray
6659}
6660
6661@extension("VK_EXT_descriptor_indexing") // 162
6662class VkPhysicalDeviceDescriptorIndexingPropertiesEXT {
6663 VkStructureType sType
6664 void* pNext
6665 u32 maxUpdateAfterBindDescriptorsInAllPools
6666 VkBool32 shaderUniformBufferArrayNonUniformIndexingNative
6667 VkBool32 shaderSampledImageArrayNonUniformIndexingNative
6668 VkBool32 shaderStorageBufferArrayNonUniformIndexingNative
6669 VkBool32 shaderStorageImageArrayNonUniformIndexingNative
6670 VkBool32 shaderInputAttachmentArrayNonUniformIndexingNative
6671 VkBool32 robustBufferAccessUpdateAfterBind
6672 VkBool32 quadDivergentImplicitLod
6673 u32 maxPerStageDescriptorUpdateAfterBindSamplers
6674 u32 maxPerStageDescriptorUpdateAfterBindUniformBuffers
6675 u32 maxPerStageDescriptorUpdateAfterBindStorageBuffers
6676 u32 maxPerStageDescriptorUpdateAfterBindSampledImages
6677 u32 maxPerStageDescriptorUpdateAfterBindStorageImages
6678 u32 maxPerStageDescriptorUpdateAfterBindInputAttachments
6679 u32 maxPerStageUpdateAfterBindResources
6680 u32 maxDescriptorSetUpdateAfterBindSamplers
6681 u32 maxDescriptorSetUpdateAfterBindUniformBuffers
6682 u32 maxDescriptorSetUpdateAfterBindUniformBuffersDynamic
6683 u32 maxDescriptorSetUpdateAfterBindStorageBuffers
6684 u32 maxDescriptorSetUpdateAfterBindStorageBuffersDynamic
6685 u32 maxDescriptorSetUpdateAfterBindSampledImages
6686 u32 maxDescriptorSetUpdateAfterBindStorageImages
6687 u32 maxDescriptorSetUpdateAfterBindInputAttachments
6688}
6689
6690@extension("VK_EXT_descriptor_indexing") // 162
6691class VkDescriptorSetVariableDescriptorCountAllocateInfoEXT {
6692 VkStructureType sType
6693 const void* pNext
6694 u32 descriptorSetCount
6695 const u32* pDescriptorCounts
6696}
6697
6698@extension("VK_EXT_descriptor_indexing") // 162
6699class VkDescriptorSetVariableDescriptorCountLayoutSupportEXT {
6700 VkStructureType sType
6701 void* pNext
6702 u32 maxVariableDescriptorCount
6703}
6704
Daniel Koch09f7bf92017-10-05 00:26:58 -04006705@extension("VK_KHR_maintenance3") // 169
6706class VkPhysicalDeviceMaintenance3PropertiesKHR {
6707 VkStructureType sType
6708 void* pNext
6709 u32 maxPerSetDescriptors
6710 VkDeviceSize maxMemoryAllocationSize
6711}
6712
6713@extension("VK_KHR_maintenance3") // 169
6714class VkDescriptorSetLayoutSupportKHR {
6715 VkStructureType sType
6716 void* pNext
6717 VkBool32 supported
6718}
6719
Jesse Hall8c954d32018-01-17 22:06:20 -08006720@extension("VK_EXT_global_priority") // 175
6721class VkDeviceQueueGlobalPriorityCreateInfoEXT {
6722 VkStructureType sType
6723 const void* pNext
6724 VkQueueGlobalPriorityEXT globalPriority
6725}
6726
Jesse Halla13a3cf2018-07-09 15:51:52 -07006727@extension("VK_KHR_8bit_storage") // 178
6728class VkPhysicalDevice8BitStorageFeaturesKHR {
6729 VkStructureType sType
6730 void* pNext
6731 VkBool32 storageBuffer8BitAccess
6732 VkBool32 uniformAndStorageBuffer8BitAccess
6733 VkBool32 storagePushConstant8
6734}
6735
Jesse Hall8c954d32018-01-17 22:06:20 -08006736@extension("VK_EXT_external_memory_host") // 179
6737class VkImportMemoryHostPointerInfoEXT {
6738 VkStructureType sType
6739 const void* pNext
6740 VkExternalMemoryHandleTypeFlagBits handleType
6741 void* pHostPointer
6742}
6743
6744@extension("VK_EXT_external_memory_host") // 179
6745class VkMemoryHostPointerPropertiesEXT {
6746 VkStructureType sType
6747 void* pNext
6748 u32 memoryTypeBits
6749}
6750
6751@extension("VK_EXT_external_memory_host") // 179
6752class VkPhysicalDeviceExternalMemoryHostPropertiesEXT {
6753 VkStructureType sType
6754 void* pNext
6755 VkDeviceSize minImportedHostPointerAlignment
6756}
6757
Jesse Hall72e6a132018-04-06 13:00:44 -07006758@extension("VK_AMD_shader_core_properties") // 186
6759class VkPhysicalDeviceShaderCorePropertiesAMD {
6760 VkStructureType sType
6761 void* pNext
6762 u32 shaderEngineCount
6763 u32 shaderArraysPerEngineCount
6764 u32 computeUnitsPerShaderArray
6765 u32 simdPerComputeUnit
6766 u32 wavefrontsPerSimd
6767 u32 wavefrontSize
6768 u32 sgprsPerSimd
6769 u32 minSgprAllocation
6770 u32 maxSgprAllocation
6771 u32 sgprAllocationGranularity
6772 u32 vgprsPerSimd
6773 u32 minVgprAllocation
6774 u32 maxVgprAllocation
6775 u32 vgprAllocationGranularity
6776}
6777
6778@extension("VK_EXT_vertex_attribute_divisor") // 191
6779class VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT {
6780 VkStructureType sType
6781 void* pNext
6782 u32 maxVertexAttribDivisor
6783}
6784
6785@extension("VK_EXT_vertex_attribute_divisor") // 191
6786class VkVertexInputBindingDivisorDescriptionEXT {
6787 u32 binding
6788 u32 divisor
6789}
6790
6791@extension("VK_EXT_vertex_attribute_divisor") // 191
6792class VkPipelineVertexInputDivisorStateCreateInfoEXT {
6793 VkStructureType sType
6794 const void* pNext
6795 u32 vertexBindingDivisorCount
6796 const VkVertexInputBindingDivisorDescriptionEXT* pVertexBindingDivisors
6797}
6798
Jesse Hall115df0c2018-07-30 12:00:59 -07006799@extension("VK_NV_device_diagnostic_checkpoints") // 207
6800class VkQueueFamilyCheckpointPropertiesNV {
6801 VkStructureType sType
6802 void* pNext
6803 VkPipelineStageFlags checkpointExecutionStageMask
6804}
6805
6806@extension("VK_NV_device_diagnostic_checkpoints") // 207
6807class VkCheckpointDataNV {
6808 VkStructureType sType
6809 void* pNext
6810 VkPipelineStageFlagBits stage
6811 void* pCheckpointMarker
6812}
6813
Daniel Koch09f7bf92017-10-05 00:26:58 -04006814
Jesse Halld27f6aa2015-08-15 17:58:48 -07006815////////////////
6816// Commands //
6817////////////////
6818
6819// Function pointers. TODO: add support for function pointers.
6820
6821@external type void* PFN_vkVoidFunction
6822@pfn cmd void vkVoidFunction() {
6823}
6824
Jesse Hall3fbc8562015-11-29 22:10:52 -08006825@external type void* PFN_vkAllocationFunction
6826@pfn cmd void* vkAllocationFunction(
Jesse Halld27f6aa2015-08-15 17:58:48 -07006827 void* pUserData,
6828 platform.size_t size,
6829 platform.size_t alignment,
Jesse Hall3fbc8562015-11-29 22:10:52 -08006830 VkSystemAllocationScope allocationScope) {
Jesse Hall03b6fe12015-11-24 12:44:21 -08006831 return ?
6832}
6833
Jesse Hall3fbc8562015-11-29 22:10:52 -08006834@external type void* PFN_vkReallocationFunction
6835@pfn cmd void* vkReallocationFunction(
Jesse Hall03b6fe12015-11-24 12:44:21 -08006836 void* pUserData,
6837 void* pOriginal,
6838 platform.size_t size,
6839 platform.size_t alignment,
Jesse Hall3fbc8562015-11-29 22:10:52 -08006840 VkSystemAllocationScope allocationScope) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07006841 return ?
6842}
6843
6844@external type void* PFN_vkFreeFunction
6845@pfn cmd void vkFreeFunction(
6846 void* pUserData,
Jesse Hall3fbc8562015-11-29 22:10:52 -08006847 void* pMemory) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07006848}
6849
Jesse Hall3fbc8562015-11-29 22:10:52 -08006850@external type void* PFN_vkInternalAllocationNotification
6851@pfn cmd void vkInternalAllocationNotification(
Jesse Hall03b6fe12015-11-24 12:44:21 -08006852 void* pUserData,
6853 platform.size_t size,
Jesse Hall3fbc8562015-11-29 22:10:52 -08006854 VkInternalAllocationType allocationType,
6855 VkSystemAllocationScope allocationScope) {
Jesse Hall03b6fe12015-11-24 12:44:21 -08006856}
6857
6858@external type void* PFN_vkInternalFreeNotification
6859@pfn cmd void vkInternalFreeNotification(
6860 void* pUserData,
6861 platform.size_t size,
Jesse Hall3fbc8562015-11-29 22:10:52 -08006862 VkInternalAllocationType allocationType,
6863 VkSystemAllocationScope allocationScope) {
Jesse Hall03b6fe12015-11-24 12:44:21 -08006864}
Jesse Halld27f6aa2015-08-15 17:58:48 -07006865
6866// Global functions
6867
6868@threadSafety("system")
6869cmd VkResult vkCreateInstance(
6870 const VkInstanceCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08006871 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07006872 VkInstance* pInstance) {
6873 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO)
6874
6875 instance := ?
6876 pInstance[0] = instance
6877 State.Instances[instance] = new!InstanceObject()
6878
Jesse Hall3dd678a2016-01-08 21:52:01 -08006879 layers := pCreateInfo.ppEnabledLayerNames[0:pCreateInfo.enabledLayerCount]
6880 extensions := pCreateInfo.ppEnabledExtensionNames[0:pCreateInfo.enabledExtensionCount]
Jesse Halld27f6aa2015-08-15 17:58:48 -07006881
6882 return ?
6883}
6884
6885@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07006886cmd void vkDestroyInstance(
Jesse Hall03b6fe12015-11-24 12:44:21 -08006887 VkInstance instance,
Jesse Hall3fbc8562015-11-29 22:10:52 -08006888 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07006889 instanceObject := GetInstance(instance)
6890
6891 State.Instances[instance] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07006892}
6893
6894@threadSafety("system")
6895cmd VkResult vkEnumeratePhysicalDevices(
6896 VkInstance instance,
6897 u32* pPhysicalDeviceCount,
6898 VkPhysicalDevice* pPhysicalDevices) {
6899 instanceObject := GetInstance(instance)
6900
6901 physicalDeviceCount := as!u32(?)
6902 pPhysicalDeviceCount[0] = physicalDeviceCount
6903 physicalDevices := pPhysicalDevices[0:physicalDeviceCount]
6904
6905 for i in (0 .. physicalDeviceCount) {
6906 physicalDevice := ?
6907 physicalDevices[i] = physicalDevice
6908 if !(physicalDevice in State.PhysicalDevices) {
6909 State.PhysicalDevices[physicalDevice] = new!PhysicalDeviceObject(instance: instance)
6910 }
6911 }
6912
6913 return ?
6914}
6915
6916cmd PFN_vkVoidFunction vkGetDeviceProcAddr(
6917 VkDevice device,
6918 const char* pName) {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07006919 if device != NULL_HANDLE {
Jesse Halld27f6aa2015-08-15 17:58:48 -07006920 device := GetDevice(device)
6921 }
6922
6923 return ?
6924}
6925
6926cmd PFN_vkVoidFunction vkGetInstanceProcAddr(
6927 VkInstance instance,
6928 const char* pName) {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07006929 if instance != NULL_HANDLE {
Jesse Halld27f6aa2015-08-15 17:58:48 -07006930 instanceObject := GetInstance(instance)
6931 }
6932
6933 return ?
6934}
6935
Jesse Hall606a54e2015-11-19 22:17:28 -08006936cmd void vkGetPhysicalDeviceProperties(
Jesse Halld27f6aa2015-08-15 17:58:48 -07006937 VkPhysicalDevice physicalDevice,
6938 VkPhysicalDeviceProperties* pProperties) {
6939 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
6940
6941 properties := ?
6942 pProperties[0] = properties
Jesse Halld27f6aa2015-08-15 17:58:48 -07006943}
6944
Jesse Hall606a54e2015-11-19 22:17:28 -08006945cmd void vkGetPhysicalDeviceQueueFamilyProperties(
Jesse Halld27f6aa2015-08-15 17:58:48 -07006946 VkPhysicalDevice physicalDevice,
Jesse Hall03b6fe12015-11-24 12:44:21 -08006947 u32* pQueueFamilyPropertyCount,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07006948 VkQueueFamilyProperties* pQueueFamilyProperties) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07006949 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
Jesse Hall5ae3abb2015-10-08 14:00:22 -07006950 // TODO: Figure out how to express fetch-count-or-properties
6951 // This version fails 'apic validate' with 'fence not allowed in
6952 // *semantic.Branch'. Other attempts have failed with the same or other
6953 // errors.
6954 // if pQueueFamilyProperties != null {
6955 // queuesProperties := pQueueFamilyProperties[0:pCount[0]]
6956 // for i in (0 .. pCount[0]) {
6957 // queueProperties := as!VkQueueFamilyProperties(?)
6958 // queuesProperties[i] = queueProperties
6959 // }
6960 // } else {
6961 // count := ?
6962 // pCount[0] = count
6963 // }
Jesse Halld27f6aa2015-08-15 17:58:48 -07006964}
6965
Jesse Hall606a54e2015-11-19 22:17:28 -08006966cmd void vkGetPhysicalDeviceMemoryProperties(
Jesse Halld27f6aa2015-08-15 17:58:48 -07006967 VkPhysicalDevice physicalDevice,
6968 VkPhysicalDeviceMemoryProperties* pMemoryProperties) {
6969 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
6970
6971 memoryProperties := ?
6972 pMemoryProperties[0] = memoryProperties
Jesse Halld27f6aa2015-08-15 17:58:48 -07006973}
6974
Jesse Hall606a54e2015-11-19 22:17:28 -08006975cmd void vkGetPhysicalDeviceFeatures(
Jesse Halld27f6aa2015-08-15 17:58:48 -07006976 VkPhysicalDevice physicalDevice,
6977 VkPhysicalDeviceFeatures* pFeatures) {
6978 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
6979
6980 features := ?
6981 pFeatures[0] = features
Jesse Halld27f6aa2015-08-15 17:58:48 -07006982}
6983
Jesse Hall606a54e2015-11-19 22:17:28 -08006984cmd void vkGetPhysicalDeviceFormatProperties(
Jesse Halld27f6aa2015-08-15 17:58:48 -07006985 VkPhysicalDevice physicalDevice,
6986 VkFormat format,
6987 VkFormatProperties* pFormatProperties) {
6988 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
6989
6990 formatProperties := ?
6991 pFormatProperties[0] = formatProperties
Jesse Halld27f6aa2015-08-15 17:58:48 -07006992}
6993
Jesse Halla9e57032015-11-30 01:03:10 -08006994cmd VkResult vkGetPhysicalDeviceImageFormatProperties(
Jesse Halld27f6aa2015-08-15 17:58:48 -07006995 VkPhysicalDevice physicalDevice,
6996 VkFormat format,
6997 VkImageType type,
6998 VkImageTiling tiling,
6999 VkImageUsageFlags usage,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007000 VkImageCreateFlags flags,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007001 VkImageFormatProperties* pImageFormatProperties) {
7002 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
7003
7004 imageFormatProperties := ?
7005 pImageFormatProperties[0] = imageFormatProperties
Jesse Halla9e57032015-11-30 01:03:10 -08007006
7007 return ?
Jesse Halld27f6aa2015-08-15 17:58:48 -07007008}
7009
Jesse Halld27f6aa2015-08-15 17:58:48 -07007010
7011// Device functions
7012
7013@threadSafety("system")
7014cmd VkResult vkCreateDevice(
7015 VkPhysicalDevice physicalDevice,
7016 const VkDeviceCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007017 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007018 VkDevice* pDevice) {
7019 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO)
7020 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
7021
7022 device := ?
7023 pDevice[0] = device
7024 State.Devices[device] = new!DeviceObject(physicalDevice: physicalDevice)
7025
7026 return ?
7027}
7028
7029@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007030cmd void vkDestroyDevice(
Jesse Hall03b6fe12015-11-24 12:44:21 -08007031 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007032 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007033 deviceObject := GetDevice(device)
7034
7035 State.Devices[device] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07007036}
7037
7038
7039// Extension discovery functions
7040
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007041cmd VkResult vkEnumerateInstanceLayerProperties(
Jesse Hall03b6fe12015-11-24 12:44:21 -08007042 u32* pPropertyCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007043 VkLayerProperties* pProperties) {
7044 count := as!u32(?)
Jesse Hall03b6fe12015-11-24 12:44:21 -08007045 pPropertyCount[0] = count
Jesse Halld27f6aa2015-08-15 17:58:48 -07007046
7047 properties := pProperties[0:count]
7048 for i in (0 .. count) {
7049 property := ?
7050 properties[i] = property
7051 }
7052
7053 return ?
7054}
7055
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007056cmd VkResult vkEnumerateInstanceExtensionProperties(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007057 const char* pLayerName,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007058 u32* pPropertyCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007059 VkExtensionProperties* pProperties) {
7060 count := as!u32(?)
Jesse Hall03b6fe12015-11-24 12:44:21 -08007061 pPropertyCount[0] = count
Jesse Halld27f6aa2015-08-15 17:58:48 -07007062
7063 properties := pProperties[0:count]
7064 for i in (0 .. count) {
7065 property := ?
7066 properties[i] = property
7067 }
7068
7069 return ?
7070}
7071
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007072cmd VkResult vkEnumerateDeviceLayerProperties(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007073 VkPhysicalDevice physicalDevice,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007074 u32* pPropertyCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007075 VkLayerProperties* pProperties) {
7076 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
7077 count := as!u32(?)
Jesse Hall03b6fe12015-11-24 12:44:21 -08007078 pPropertyCount[0] = count
Jesse Halld27f6aa2015-08-15 17:58:48 -07007079
7080 properties := pProperties[0:count]
7081 for i in (0 .. count) {
7082 property := ?
7083 properties[i] = property
7084 }
7085
7086 return ?
7087}
7088
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007089cmd VkResult vkEnumerateDeviceExtensionProperties(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007090 VkPhysicalDevice physicalDevice,
7091 const char* pLayerName,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007092 u32* pPropertyCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007093 VkExtensionProperties* pProperties) {
7094 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
7095
7096 count := as!u32(?)
Jesse Hall03b6fe12015-11-24 12:44:21 -08007097 pPropertyCount[0] = count
Jesse Halld27f6aa2015-08-15 17:58:48 -07007098
7099 properties := pProperties[0:count]
7100 for i in (0 .. count) {
7101 property := ?
7102 properties[i] = property
7103 }
7104
7105 return ?
7106}
7107
7108
7109// Queue functions
7110
7111@threadSafety("system")
Jesse Hall606a54e2015-11-19 22:17:28 -08007112cmd void vkGetDeviceQueue(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007113 VkDevice device,
7114 u32 queueFamilyIndex,
7115 u32 queueIndex,
7116 VkQueue* pQueue) {
7117 deviceObject := GetDevice(device)
7118
7119 queue := ?
7120 pQueue[0] = queue
7121
7122 if !(queue in State.Queues) {
7123 State.Queues[queue] = new!QueueObject(device: device)
7124 }
Jesse Halld27f6aa2015-08-15 17:58:48 -07007125}
7126
7127@threadSafety("app")
7128cmd VkResult vkQueueSubmit(
7129 VkQueue queue,
Jesse Halla366a512015-11-19 22:30:07 -08007130 u32 submitCount,
Jesse Hallb00daad2015-11-29 19:46:20 -08007131 const VkSubmitInfo* pSubmits,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007132 VkFence fence) {
7133 queueObject := GetQueue(queue)
7134
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007135 if fence != NULL_HANDLE {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007136 fenceObject := GetFence(fence)
7137 assert(fenceObject.device == queueObject.device)
7138 }
7139
Jesse Hall3fbc8562015-11-29 22:10:52 -08007140 // commandBuffers := pcommandBuffers[0:commandBufferCount]
7141 // for i in (0 .. commandBufferCount) {
7142 // commandBuffer := commandBuffers[i]
7143 // commandBufferObject := GetCommandBuffer(commandBuffer)
7144 // assert(commandBufferObject.device == queueObject.device)
Jesse Halla366a512015-11-19 22:30:07 -08007145 //
Jesse Hall3fbc8562015-11-29 22:10:52 -08007146 // validate("QueueCheck", commandBufferObject.queueFlags in queueObject.flags,
7147 // "vkQueueSubmit: enqueued commandBuffer requires missing queue capabilities.")
Jesse Halla366a512015-11-19 22:30:07 -08007148 // }
Jesse Halld27f6aa2015-08-15 17:58:48 -07007149
7150 return ?
7151}
7152
7153@threadSafety("system")
7154cmd VkResult vkQueueWaitIdle(
7155 VkQueue queue) {
7156 queueObject := GetQueue(queue)
7157
7158 return ?
7159}
7160
7161@threadSafety("system")
7162cmd VkResult vkDeviceWaitIdle(
7163 VkDevice device) {
7164 deviceObject := GetDevice(device)
7165
7166 return ?
7167}
7168
7169
7170// Memory functions
7171
7172@threadSafety("system")
Jesse Hall3fbc8562015-11-29 22:10:52 -08007173cmd VkResult vkAllocateMemory(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007174 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007175 const VkMemoryAllocateInfo* pAllocateInfo,
7176 const VkAllocationCallbacks* pAllocator,
7177 VkDeviceMemory* pMemory) {
Jesse Hallf4ab2b12015-11-30 16:04:55 -08007178 assert(pAllocateInfo.sType == VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007179 deviceObject := GetDevice(device)
7180
Jesse Hall3fbc8562015-11-29 22:10:52 -08007181 memory := ?
7182 pMemory[0] = memory
7183 State.DeviceMemories[memory] = new!DeviceMemoryObject(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007184 device: device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007185 allocationSize: pAllocateInfo[0].allocationSize)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007186
7187 return ?
7188}
7189
7190@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007191cmd void vkFreeMemory(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007192 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007193 VkDeviceMemory memory,
7194 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007195 deviceObject := GetDevice(device)
Jesse Hall3fbc8562015-11-29 22:10:52 -08007196 memoryObject := GetDeviceMemory(memory)
7197 assert(memoryObject.device == device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007198
7199 // Check that no objects are still bound before freeing.
Jesse Hall3fbc8562015-11-29 22:10:52 -08007200 validate("MemoryCheck", len(memoryObject.boundObjects) == 0,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007201 "vkFreeMemory: objects still bound")
Jesse Hall3fbc8562015-11-29 22:10:52 -08007202 validate("MemoryCheck", len(memoryObject.boundCommandBuffers) == 0,
7203 "vkFreeMemory: commandBuffers still bound")
7204 State.DeviceMemories[memory] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07007205}
7206
7207@threadSafety("app")
7208cmd VkResult vkMapMemory(
7209 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007210 VkDeviceMemory memory,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007211 VkDeviceSize offset,
7212 VkDeviceSize size,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007213 VkMemoryMapFlags flags,
7214 void** ppData) {
7215 deviceObject := GetDevice(device)
Jesse Hall3fbc8562015-11-29 22:10:52 -08007216 memoryObject := GetDeviceMemory(memory)
7217 assert(memoryObject.device == device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007218
7219 assert(flags == as!VkMemoryMapFlags(0))
Jesse Hall3fbc8562015-11-29 22:10:52 -08007220 assert((offset + size) <= memoryObject.allocationSize)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007221
7222 return ?
7223}
7224
7225@threadSafety("app")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007226cmd void vkUnmapMemory(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007227 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007228 VkDeviceMemory memory) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007229 deviceObject := GetDevice(device)
Jesse Hall3fbc8562015-11-29 22:10:52 -08007230 memoryObject := GetDeviceMemory(memory)
7231 assert(memoryObject.device == device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007232}
7233
7234cmd VkResult vkFlushMappedMemoryRanges(
7235 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007236 u32 memoryRangeCount
7237 const VkMappedMemoryRange* pMemoryRanges) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007238 deviceObject := GetDevice(device)
7239
Jesse Hall3fbc8562015-11-29 22:10:52 -08007240 memoryRanges := pMemoryRanges[0:memoryRangeCount]
7241 for i in (0 .. memoryRangeCount) {
7242 memoryRange := memoryRanges[i]
7243 memoryObject := GetDeviceMemory(memoryRange.memory)
7244 assert(memoryObject.device == device)
7245 assert((memoryRange.offset + memoryRange.size) <= memoryObject.allocationSize)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007246 }
7247
7248 return ?
7249}
7250
7251cmd VkResult vkInvalidateMappedMemoryRanges(
7252 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007253 u32 memoryRangeCount,
7254 const VkMappedMemoryRange* pMemoryRanges) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007255 deviceObject := GetDevice(device)
7256
Jesse Hall3fbc8562015-11-29 22:10:52 -08007257 memoryRanges := pMemoryRanges[0:memoryRangeCount]
7258 for i in (0 .. memoryRangeCount) {
7259 memoryRange := memoryRanges[i]
7260 memoryObject := GetDeviceMemory(memoryRange.memory)
7261 assert(memoryObject.device == device)
7262 assert((memoryRange.offset + memoryRange.size) <= memoryObject.allocationSize)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007263 }
7264
7265 return ?
7266}
7267
7268
7269// Memory management API functions
7270
Jesse Hall606a54e2015-11-19 22:17:28 -08007271cmd void vkGetDeviceMemoryCommitment(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007272 VkDevice device,
7273 VkDeviceMemory memory,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007274 VkDeviceSize* pCommittedMemoryInBytes) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007275 deviceObject := GetDevice(device)
7276
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007277 if memory != NULL_HANDLE {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007278 memoryObject := GetDeviceMemory(memory)
7279 assert(memoryObject.device == device)
7280 }
7281
7282 committedMemoryInBytes := ?
7283 pCommittedMemoryInBytes[0] = committedMemoryInBytes
Jesse Halld27f6aa2015-08-15 17:58:48 -07007284}
7285
Jesse Hall606a54e2015-11-19 22:17:28 -08007286cmd void vkGetBufferMemoryRequirements(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007287 VkDevice device,
7288 VkBuffer buffer,
7289 VkMemoryRequirements* pMemoryRequirements) {
7290 deviceObject := GetDevice(device)
7291 bufferObject := GetBuffer(buffer)
7292 assert(bufferObject.device == device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007293}
7294
7295cmd VkResult vkBindBufferMemory(
7296 VkDevice device,
7297 VkBuffer buffer,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007298 VkDeviceMemory memory,
7299 VkDeviceSize memoryOffset) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007300 deviceObject := GetDevice(device)
7301 bufferObject := GetBuffer(buffer)
7302 assert(bufferObject.device == device)
7303
7304 // Unbind buffer from previous memory object, if not VK_NULL_HANDLE.
Jesse Hall3fbc8562015-11-29 22:10:52 -08007305 if bufferObject.memory != NULL_HANDLE {
7306 memoryObject := GetDeviceMemory(bufferObject.memory)
7307 memoryObject.boundObjects[as!u64(buffer)] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07007308 }
7309
7310 // Bind buffer to given memory object, if not VK_NULL_HANDLE.
Jesse Hall3fbc8562015-11-29 22:10:52 -08007311 if memory != NULL_HANDLE {
7312 memoryObject := GetDeviceMemory(memory)
7313 assert(memoryObject.device == device)
7314 memoryObject.boundObjects[as!u64(buffer)] = memoryOffset
Jesse Halld27f6aa2015-08-15 17:58:48 -07007315 }
Jesse Hall3fbc8562015-11-29 22:10:52 -08007316 bufferObject.memory = memory
7317 bufferObject.memoryOffset = memoryOffset
Jesse Halld27f6aa2015-08-15 17:58:48 -07007318
7319 return ?
7320}
7321
Jesse Hall606a54e2015-11-19 22:17:28 -08007322cmd void vkGetImageMemoryRequirements(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007323 VkDevice device,
7324 VkImage image,
7325 VkMemoryRequirements* pMemoryRequirements) {
7326 deviceObject := GetDevice(device)
7327 imageObject := GetImage(image)
7328 assert(imageObject.device == device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007329}
7330
7331cmd VkResult vkBindImageMemory(
7332 VkDevice device,
7333 VkImage image,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007334 VkDeviceMemory memory,
7335 VkDeviceSize memoryOffset) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007336 deviceObject := GetDevice(device)
7337 imageObject := GetImage(image)
7338 assert(imageObject.device == device)
7339
7340 // Unbind image from previous memory object, if not VK_NULL_HANDLE.
Jesse Hall3fbc8562015-11-29 22:10:52 -08007341 if imageObject.memory != NULL_HANDLE {
7342 memoryObject := GetDeviceMemory(imageObject.memory)
7343 memoryObject.boundObjects[as!u64(image)] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07007344 }
7345
7346 // Bind image to given memory object, if not VK_NULL_HANDLE.
Jesse Hall3fbc8562015-11-29 22:10:52 -08007347 if memory != NULL_HANDLE {
7348 memoryObject := GetDeviceMemory(memory)
7349 assert(memoryObject.device == device)
7350 memoryObject.boundObjects[as!u64(image)] = memoryOffset
Jesse Halld27f6aa2015-08-15 17:58:48 -07007351 }
Jesse Hall3fbc8562015-11-29 22:10:52 -08007352 imageObject.memory = memory
7353 imageObject.memoryOffset = memoryOffset
Jesse Halld27f6aa2015-08-15 17:58:48 -07007354
7355 return ?
7356}
7357
Jesse Hall606a54e2015-11-19 22:17:28 -08007358cmd void vkGetImageSparseMemoryRequirements(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007359 VkDevice device,
7360 VkImage image,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007361 u32* pSparseMemoryRequirementCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007362 VkSparseImageMemoryRequirements* pSparseMemoryRequirements) {
7363 deviceObject := GetDevice(device)
7364 imageObject := GetImage(image)
7365 assert(imageObject.device == device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007366}
7367
Jesse Hall606a54e2015-11-19 22:17:28 -08007368cmd void vkGetPhysicalDeviceSparseImageFormatProperties(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007369 VkPhysicalDevice physicalDevice,
7370 VkFormat format,
7371 VkImageType type,
Jesse Hall091ed9e2015-11-30 00:55:29 -08007372 VkSampleCountFlagBits samples,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007373 VkImageUsageFlags usage,
7374 VkImageTiling tiling,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007375 u32* pPropertyCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007376 VkSparseImageFormatProperties* pProperties) {
7377 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007378}
7379
Jesse Halla6429252015-11-29 18:59:42 -08007380cmd VkResult vkQueueBindSparse(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007381 VkQueue queue,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007382 u32 bindInfoCount,
Jesse Halla6429252015-11-29 18:59:42 -08007383 const VkBindSparseInfo* pBindInfo,
7384 VkFence fence) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007385 queueObject := GetQueue(queue)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007386
7387 return ?
7388}
7389
7390
7391// Fence functions
7392
7393@threadSafety("system")
7394cmd VkResult vkCreateFence(
7395 VkDevice device,
7396 const VkFenceCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007397 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007398 VkFence* pFence) {
7399 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_FENCE_CREATE_INFO)
7400 deviceObject := GetDevice(device)
7401
7402 fence := ?
7403 pFence[0] = fence
7404 State.Fences[fence] = new!FenceObject(
Jesse Halld8bade02015-11-24 10:24:18 -08007405 device: device, signaled: (pCreateInfo.flags == as!VkFenceCreateFlags(VK_FENCE_CREATE_SIGNALED_BIT)))
Jesse Halld27f6aa2015-08-15 17:58:48 -07007406
7407 return ?
7408}
7409
7410@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007411cmd void vkDestroyFence(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007412 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007413 VkFence fence,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007414 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007415 deviceObject := GetDevice(device)
7416 fenceObject := GetFence(fence)
7417 assert(fenceObject.device == device)
7418
7419 State.Fences[fence] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07007420}
7421
7422@threadSafety("system")
7423cmd VkResult vkResetFences(
7424 VkDevice device,
7425 u32 fenceCount,
7426 const VkFence* pFences) {
7427 deviceObject := GetDevice(device)
7428
7429 fences := pFences[0:fenceCount]
7430 for i in (0 .. fenceCount) {
7431 fence := fences[i]
7432 fenceObject := GetFence(fence)
7433 assert(fenceObject.device == device)
7434 fenceObject.signaled = false
7435 }
7436
7437 return ?
7438}
7439
7440@threadSafety("system")
7441cmd VkResult vkGetFenceStatus(
7442 VkDevice device,
7443 VkFence fence) {
7444 deviceObject := GetDevice(device)
7445 fenceObject := GetFence(fence)
7446 assert(fenceObject.device == device)
7447
7448 return ?
7449}
7450
7451@threadSafety("system")
7452cmd VkResult vkWaitForFences(
7453 VkDevice device,
7454 u32 fenceCount,
7455 const VkFence* pFences,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007456 VkBool32 waitAll,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007457 u64 timeout) { /// timeout in nanoseconds
7458 deviceObject := GetDevice(device)
7459
7460 fences := pFences[0:fenceCount]
7461 for i in (0 .. fenceCount) {
7462 fence := fences[i]
7463 fenceObject := GetFence(fence)
7464 assert(fenceObject.device == device)
7465 }
7466
7467 return ?
7468}
7469
7470
7471// Queue semaphore functions
7472
7473@threadSafety("system")
7474cmd VkResult vkCreateSemaphore(
7475 VkDevice device,
7476 const VkSemaphoreCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007477 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007478 VkSemaphore* pSemaphore) {
7479 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO)
7480 deviceObject := GetDevice(device)
7481
7482 semaphore := ?
7483 pSemaphore[0] = semaphore
7484 State.Semaphores[semaphore] = new!SemaphoreObject(device: device)
7485
7486 return ?
7487}
7488
7489@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007490cmd void vkDestroySemaphore(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007491 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007492 VkSemaphore semaphore,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007493 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007494 deviceObject := GetDevice(device)
7495 semaphoreObject := GetSemaphore(semaphore)
7496 assert(semaphoreObject.device == device)
7497
7498 State.Semaphores[semaphore] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07007499}
7500
Jesse Halld27f6aa2015-08-15 17:58:48 -07007501
7502// Event functions
7503
7504@threadSafety("system")
7505cmd VkResult vkCreateEvent(
7506 VkDevice device,
7507 const VkEventCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007508 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007509 VkEvent* pEvent) {
7510 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_EVENT_CREATE_INFO)
7511 deviceObject := GetDevice(device)
7512
7513 event := ?
7514 pEvent[0] = event
7515 State.Events[event] = new!EventObject(device: device)
7516
7517 return ?
7518}
7519
7520@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007521cmd void vkDestroyEvent(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007522 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007523 VkEvent event,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007524 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007525 deviceObject := GetDevice(device)
7526 eventObject := GetEvent(event)
7527 assert(eventObject.device == device)
7528
7529 State.Events[event] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07007530}
7531
7532@threadSafety("system")
7533cmd VkResult vkGetEventStatus(
7534 VkDevice device,
7535 VkEvent event) {
7536 deviceObject := GetDevice(device)
7537 eventObject := GetEvent(event)
7538 assert(eventObject.device == device)
7539
7540 return ?
7541}
7542
7543@threadSafety("system")
7544cmd VkResult vkSetEvent(
7545 VkDevice device,
7546 VkEvent event) {
7547 deviceObject := GetDevice(device)
7548 eventObject := GetEvent(event)
7549 assert(eventObject.device == device)
7550
7551 return ?
7552}
7553
7554@threadSafety("system")
7555cmd VkResult vkResetEvent(
7556 VkDevice device,
7557 VkEvent event) {
7558 deviceObject := GetDevice(device)
7559 eventObject := GetEvent(event)
7560 assert(eventObject.device == device)
7561
7562 return ?
7563}
7564
7565
7566// Query functions
7567
7568@threadSafety("system")
7569cmd VkResult vkCreateQueryPool(
7570 VkDevice device,
7571 const VkQueryPoolCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007572 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007573 VkQueryPool* pQueryPool) {
7574 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO)
7575 deviceObject := GetDevice(device)
7576
7577 queryPool := ?
7578 pQueryPool[0] = queryPool
7579 State.QueryPools[queryPool] = new!QueryPoolObject(device: device)
7580
7581 return ?
7582}
7583
7584@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007585cmd void vkDestroyQueryPool(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007586 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007587 VkQueryPool queryPool,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007588 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007589 deviceObject := GetDevice(device)
7590 queryPoolObject := GetQueryPool(queryPool)
7591 assert(queryPoolObject.device == device)
7592
7593 State.QueryPools[queryPool] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07007594}
7595
7596@threadSafety("system")
7597cmd VkResult vkGetQueryPoolResults(
7598 VkDevice device,
7599 VkQueryPool queryPool,
Jesse Hallf9fa9a52016-01-08 16:08:51 -08007600 u32 firstQuery,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007601 u32 queryCount,
Jesse Halla9bb62b2015-11-21 19:31:56 -08007602 platform.size_t dataSize,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007603 void* pData,
Jesse Halla9bb62b2015-11-21 19:31:56 -08007604 VkDeviceSize stride,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007605 VkQueryResultFlags flags) {
7606 deviceObject := GetDevice(device)
7607 queryPoolObject := GetQueryPool(queryPool)
7608 assert(queryPoolObject.device == device)
7609
Jesse Halld27f6aa2015-08-15 17:58:48 -07007610 data := pData[0:dataSize]
7611
7612 return ?
7613}
7614
7615// Buffer functions
7616
7617@threadSafety("system")
7618cmd VkResult vkCreateBuffer(
7619 VkDevice device,
7620 const VkBufferCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007621 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007622 VkBuffer* pBuffer) {
7623 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO)
7624 deviceObject := GetDevice(device)
7625
7626 buffer := ?
7627 pBuffer[0] = buffer
7628 State.Buffers[buffer] = new!BufferObject(device: device)
7629
7630 return ?
7631}
7632
7633@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007634cmd void vkDestroyBuffer(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007635 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007636 VkBuffer buffer,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007637 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007638 deviceObject := GetDevice(device)
7639 bufferObject := GetBuffer(buffer)
7640 assert(bufferObject.device == device)
7641
Jesse Hall3fbc8562015-11-29 22:10:52 -08007642 assert(bufferObject.memory == 0)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007643 State.Buffers[buffer] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07007644}
7645
7646
7647// Buffer view functions
7648
7649@threadSafety("system")
7650cmd VkResult vkCreateBufferView(
7651 VkDevice device,
7652 const VkBufferViewCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007653 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007654 VkBufferView* pView) {
7655 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO)
7656 deviceObject := GetDevice(device)
7657
7658 bufferObject := GetBuffer(pCreateInfo.buffer)
7659 assert(bufferObject.device == device)
7660
7661 view := ?
7662 pView[0] = view
7663 State.BufferViews[view] = new!BufferViewObject(device: device, buffer: pCreateInfo.buffer)
7664
7665 return ?
7666}
7667
7668@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007669cmd void vkDestroyBufferView(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007670 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007671 VkBufferView bufferView,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007672 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007673 deviceObject := GetDevice(device)
7674 bufferViewObject := GetBufferView(bufferView)
7675 assert(bufferViewObject.device == device)
7676
7677 State.BufferViews[bufferView] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07007678}
7679
7680
7681// Image functions
7682
7683@threadSafety("system")
7684cmd VkResult vkCreateImage(
7685 VkDevice device,
7686 const VkImageCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007687 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007688 VkImage* pImage) {
7689 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO)
7690 deviceObject := GetDevice(device)
7691
7692 image := ?
7693 pImage[0] = image
7694 State.Images[image] = new!ImageObject(device: device)
7695
7696 return ?
7697}
7698
7699@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007700cmd void vkDestroyImage(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007701 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007702 VkImage image,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007703 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007704 deviceObject := GetDevice(device)
7705 imageObject := GetImage(image)
7706 assert(imageObject.device == device)
7707
Jesse Hall3fbc8562015-11-29 22:10:52 -08007708 assert(imageObject.memory == 0)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007709 State.Images[image] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07007710}
7711
Jesse Hall606a54e2015-11-19 22:17:28 -08007712cmd void vkGetImageSubresourceLayout(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007713 VkDevice device,
7714 VkImage image,
7715 const VkImageSubresource* pSubresource,
7716 VkSubresourceLayout* pLayout) {
7717 deviceObject := GetDevice(device)
7718 imageObject := GetImage(image)
7719 assert(imageObject.device == device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007720}
7721
7722
7723// Image view functions
7724
7725@threadSafety("system")
7726cmd VkResult vkCreateImageView(
7727 VkDevice device,
7728 const VkImageViewCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007729 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007730 VkImageView* pView) {
7731 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO)
7732 deviceObject := GetDevice(device)
7733
7734 imageObject := GetImage(pCreateInfo.image)
7735 assert(imageObject.device == device)
7736
7737 view := ?
7738 pView[0] = view
7739 State.ImageViews[view] = new!ImageViewObject(device: device, image: pCreateInfo.image)
7740
7741 return ?
7742}
7743
7744@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007745cmd void vkDestroyImageView(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007746 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007747 VkImageView imageView,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007748 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007749 deviceObject := GetDevice(device)
7750 imageViewObject := GetImageView(imageView)
7751 assert(imageViewObject.device == device)
7752
7753 State.ImageViews[imageView] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07007754}
7755
7756
7757// Shader functions
7758
7759cmd VkResult vkCreateShaderModule(
7760 VkDevice device,
7761 const VkShaderModuleCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007762 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007763 VkShaderModule* pShaderModule) {
7764 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO)
7765 deviceObject := GetDevice(device)
7766
7767 shaderModule := ?
7768 pShaderModule[0] = shaderModule
7769 State.ShaderModules[shaderModule] = new!ShaderModuleObject(device: device)
7770
7771 return ?
7772}
7773
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007774cmd void vkDestroyShaderModule(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007775 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007776 VkShaderModule shaderModule,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007777 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007778 deviceObject := GetDevice(device)
7779 shaderModuleObject := GetShaderModule(shaderModule)
7780 assert(shaderModuleObject.device == device)
7781
7782 State.ShaderModules[shaderModule] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07007783}
7784
Jesse Halld27f6aa2015-08-15 17:58:48 -07007785
7786// Pipeline functions
7787
7788cmd VkResult vkCreatePipelineCache(
7789 VkDevice device,
7790 const VkPipelineCacheCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007791 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007792 VkPipelineCache* pPipelineCache) {
7793 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO)
7794 deviceObject := GetDevice(device)
7795
7796 pipelineCache := ?
7797 pPipelineCache[0] = pipelineCache
7798 State.PipelineCaches[pipelineCache] = new!PipelineCacheObject(device: device)
7799
7800 return ?
7801}
7802
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007803cmd void vkDestroyPipelineCache(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007804 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007805 VkPipelineCache pipelineCache,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007806 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007807 deviceObject := GetDevice(device)
7808 pipelineCacheObject := GetPipelineCache(pipelineCache)
7809 assert(pipelineCacheObject.device == device)
7810
7811 State.PipelineCaches[pipelineCache] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07007812}
7813
Jesse Halld27f6aa2015-08-15 17:58:48 -07007814cmd VkResult vkGetPipelineCacheData(
7815 VkDevice device,
7816 VkPipelineCache pipelineCache,
Jesse Halla9bb62b2015-11-21 19:31:56 -08007817 platform.size_t* pDataSize,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007818 void* pData) {
7819 deviceObject := GetDevice(device)
7820 pipelineCacheObject := GetPipelineCache(pipelineCache)
7821 assert(pipelineCacheObject.device == device)
7822
7823 return ?
7824}
7825
7826cmd VkResult vkMergePipelineCaches(
7827 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007828 VkPipelineCache dstCache,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007829 u32 srcCacheCount,
7830 const VkPipelineCache* pSrcCaches) {
7831 deviceObject := GetDevice(device)
Jesse Hall3fbc8562015-11-29 22:10:52 -08007832 dstCacheObject := GetPipelineCache(dstCache)
7833 assert(dstCacheObject.device == device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007834
7835 srcCaches := pSrcCaches[0:srcCacheCount]
7836 for i in (0 .. srcCacheCount) {
7837 srcCache := srcCaches[i]
7838 srcCacheObject := GetPipelineCache(srcCache)
7839 assert(srcCacheObject.device == device)
7840 }
7841
7842 return ?
7843}
7844
7845cmd VkResult vkCreateGraphicsPipelines(
7846 VkDevice device,
7847 VkPipelineCache pipelineCache,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007848 u32 createInfoCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007849 const VkGraphicsPipelineCreateInfo* pCreateInfos,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007850 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007851 VkPipeline* pPipelines) {
7852 deviceObject := GetDevice(device)
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007853 if pipelineCache != NULL_HANDLE {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007854 pipelineCacheObject := GetPipelineCache(pipelineCache)
7855 assert(pipelineCacheObject.device == device)
7856 }
7857
Jesse Hall03b6fe12015-11-24 12:44:21 -08007858 createInfos := pCreateInfos[0:createInfoCount]
7859 pipelines := pPipelines[0:createInfoCount]
7860 for i in (0 .. createInfoCount) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007861 pipeline := ?
7862 pipelines[i] = pipeline
7863 State.Pipelines[pipeline] = new!PipelineObject(device: device)
7864 }
7865
7866 return ?
7867}
7868
7869cmd VkResult vkCreateComputePipelines(
7870 VkDevice device,
7871 VkPipelineCache pipelineCache,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007872 u32 createInfoCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007873 const VkComputePipelineCreateInfo* pCreateInfos,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007874 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007875 VkPipeline* pPipelines) {
7876 deviceObject := GetDevice(device)
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007877 if pipelineCache != NULL_HANDLE {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007878 pipelineCacheObject := GetPipelineCache(pipelineCache)
7879 assert(pipelineCacheObject.device == device)
7880 }
7881
Jesse Hall03b6fe12015-11-24 12:44:21 -08007882 createInfos := pCreateInfos[0:createInfoCount]
7883 pipelines := pPipelines[0:createInfoCount]
7884 for i in (0 .. createInfoCount) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007885 pipeline := ?
7886 pipelines[i] = pipeline
7887 State.Pipelines[pipeline] = new!PipelineObject(device: device)
7888 }
7889
7890 return ?
7891}
7892
7893@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007894cmd void vkDestroyPipeline(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007895 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007896 VkPipeline pipeline,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007897 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007898 deviceObject := GetDevice(device)
7899 pipelineObjects := GetPipeline(pipeline)
7900 assert(pipelineObjects.device == device)
7901
7902 State.Pipelines[pipeline] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07007903}
7904
7905
7906// Pipeline layout functions
7907
7908@threadSafety("system")
7909cmd VkResult vkCreatePipelineLayout(
7910 VkDevice device,
7911 const VkPipelineLayoutCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007912 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007913 VkPipelineLayout* pPipelineLayout) {
7914 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO)
7915 deviceObject := GetDevice(device)
7916
7917 pipelineLayout := ?
7918 pPipelineLayout[0] = pipelineLayout
7919 State.PipelineLayouts[pipelineLayout] = new!PipelineLayoutObject(device: device)
7920
7921 return ?
7922}
7923
7924@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007925cmd void vkDestroyPipelineLayout(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007926 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007927 VkPipelineLayout pipelineLayout,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007928 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007929 deviceObject := GetDevice(device)
7930 pipelineLayoutObjects := GetPipelineLayout(pipelineLayout)
7931 assert(pipelineLayoutObjects.device == device)
7932
7933 State.PipelineLayouts[pipelineLayout] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07007934}
7935
7936
7937// Sampler functions
7938
7939@threadSafety("system")
7940cmd VkResult vkCreateSampler(
7941 VkDevice device,
7942 const VkSamplerCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007943 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007944 VkSampler* pSampler) {
7945 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO)
7946 deviceObject := GetDevice(device)
7947
7948 sampler := ?
7949 pSampler[0] = sampler
7950 State.Samplers[sampler] = new!SamplerObject(device: device)
7951
7952 return ?
7953}
7954
7955@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007956cmd void vkDestroySampler(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007957 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007958 VkSampler sampler,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007959 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007960 deviceObject := GetDevice(device)
7961 samplerObject := GetSampler(sampler)
7962 assert(samplerObject.device == device)
7963
7964 State.Samplers[sampler] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07007965}
7966
7967
7968// Descriptor set functions
7969
7970@threadSafety("system")
7971cmd VkResult vkCreateDescriptorSetLayout(
7972 VkDevice device,
7973 const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007974 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007975 VkDescriptorSetLayout* pSetLayout) {
7976 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO)
7977 deviceObject := GetDevice(device)
7978
7979 setLayout := ?
7980 pSetLayout[0] = setLayout
7981 State.DescriptorSetLayouts[setLayout] = new!DescriptorSetLayoutObject(device: device)
7982
7983 return ?
7984}
7985
7986@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007987cmd void vkDestroyDescriptorSetLayout(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007988 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007989 VkDescriptorSetLayout descriptorSetLayout,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007990 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007991 deviceObject := GetDevice(device)
7992 descriptorSetLayoutObject := GetDescriptorSetLayout(descriptorSetLayout)
7993 assert(descriptorSetLayoutObject.device == device)
7994
7995 State.DescriptorSetLayouts[descriptorSetLayout] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07007996}
7997
7998@threadSafety("system")
7999cmd VkResult vkCreateDescriptorPool(
8000 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008001 const VkDescriptorPoolCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008002 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008003 VkDescriptorPool* pDescriptorPool) {
8004 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO)
8005 deviceObject := GetDevice(device)
8006
8007 descriptorPool := ?
8008 pDescriptorPool[0] = descriptorPool
8009 State.DescriptorPools[descriptorPool] = new!DescriptorPoolObject(device: device)
8010
8011 return ?
8012}
8013
8014@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008015cmd void vkDestroyDescriptorPool(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008016 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008017 VkDescriptorPool descriptorPool,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008018 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008019 deviceObject := GetDevice(device)
8020 descriptorPoolObject := GetDescriptorPool(descriptorPool)
8021 assert(descriptorPoolObject.device == device)
8022
8023 State.DescriptorPools[descriptorPool] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008024}
8025
8026@threadSafety("app")
8027cmd VkResult vkResetDescriptorPool(
8028 VkDevice device,
Jesse Hallfbf97b02015-11-20 14:17:03 -08008029 VkDescriptorPool descriptorPool,
8030 VkDescriptorPoolResetFlags flags) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008031 deviceObject := GetDevice(device)
8032 descriptorPoolObject := GetDescriptorPool(descriptorPool)
8033 assert(descriptorPoolObject.device == device)
8034
8035 return ?
8036}
8037
8038@threadSafety("app")
Jesse Hall3fbc8562015-11-29 22:10:52 -08008039cmd VkResult vkAllocateDescriptorSets(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008040 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008041 const VkDescriptorSetAllocateInfo* pAllocateInfo,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008042 VkDescriptorSet* pDescriptorSets) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008043 deviceObject := GetDevice(device)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008044 allocInfo := pAllocateInfo[0]
Jesse Hallfbf97b02015-11-20 14:17:03 -08008045 descriptorPoolObject := GetDescriptorPool(allocInfo.descriptorPool)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008046
Jesse Hall03b6fe12015-11-24 12:44:21 -08008047 setLayouts := allocInfo.pSetLayouts[0:allocInfo.setCount]
8048 for i in (0 .. allocInfo.setCount) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008049 setLayout := setLayouts[i]
8050 setLayoutObject := GetDescriptorSetLayout(setLayout)
8051 assert(setLayoutObject.device == device)
8052 }
8053
Jesse Hall03b6fe12015-11-24 12:44:21 -08008054 descriptorSets := pDescriptorSets[0:allocInfo.setCount]
8055 for i in (0 .. allocInfo.setCount) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008056 descriptorSet := ?
8057 descriptorSets[i] = descriptorSet
8058 State.DescriptorSets[descriptorSet] = new!DescriptorSetObject(device: device)
8059 }
8060
8061 return ?
8062}
8063
Jesse Hallf09c6b12015-08-15 19:54:28 -07008064cmd VkResult vkFreeDescriptorSets(
8065 VkDevice device,
8066 VkDescriptorPool descriptorPool,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008067 u32 descriptorSetCount,
Jesse Hallf09c6b12015-08-15 19:54:28 -07008068 const VkDescriptorSet* pDescriptorSets) {
8069 deviceObject := GetDevice(device)
8070 descriptorPoolObject := GetDescriptorPool(descriptorPool)
8071
Jesse Hall03b6fe12015-11-24 12:44:21 -08008072 descriptorSets := pDescriptorSets[0:descriptorSetCount]
8073 for i in (0 .. descriptorSetCount) {
Jesse Hallf09c6b12015-08-15 19:54:28 -07008074 descriptorSet := descriptorSets[i]
8075 descriptorSetObject := GetDescriptorSet(descriptorSet)
8076 assert(descriptorSetObject.device == device)
8077 State.DescriptorSets[descriptorSet] = null
8078 }
8079
8080 return ?
8081}
8082
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008083cmd void vkUpdateDescriptorSets(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008084 VkDevice device,
Jesse Hallb00daad2015-11-29 19:46:20 -08008085 u32 descriptorWriteCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008086 const VkWriteDescriptorSet* pDescriptorWrites,
Jesse Hallb00daad2015-11-29 19:46:20 -08008087 u32 descriptorCopyCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008088 const VkCopyDescriptorSet* pDescriptorCopies) {
8089 deviceObject := GetDevice(device)
8090
Jesse Hallb00daad2015-11-29 19:46:20 -08008091 descriptorWrites := pDescriptorWrites[0:descriptorWriteCount]
8092 for i in (0 .. descriptorWriteCount) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008093 descriptorWrite := descriptorWrites[i]
Jesse Hall3fbc8562015-11-29 22:10:52 -08008094 descriptorWriteObject := GetDescriptorSet(descriptorWrite.dstSet)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008095 assert(descriptorWriteObject.device == device)
8096 }
8097
Jesse Hallb00daad2015-11-29 19:46:20 -08008098 descriptorCopies := pDescriptorCopies[0:descriptorCopyCount]
8099 for i in (0 .. descriptorCopyCount) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008100 descriptorCopy := descriptorCopies[i]
Jesse Hall3fbc8562015-11-29 22:10:52 -08008101 descriptorCopyObject := GetDescriptorSet(descriptorCopy.dstSet)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008102 assert(descriptorCopyObject.device == device)
8103 }
Jesse Halld27f6aa2015-08-15 17:58:48 -07008104}
8105
8106
8107// Framebuffer functions
8108
8109@threadSafety("system")
8110cmd VkResult vkCreateFramebuffer(
8111 VkDevice device,
8112 const VkFramebufferCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008113 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008114 VkFramebuffer* pFramebuffer) {
8115 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO)
8116 deviceObject := GetDevice(device)
8117
8118 framebuffer := ?
8119 pFramebuffer[0] = framebuffer
8120 State.Framebuffers[framebuffer] = new!FramebufferObject(device: device)
8121
8122 return ?
8123}
8124
8125@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008126cmd void vkDestroyFramebuffer(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008127 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008128 VkFramebuffer framebuffer,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008129 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008130 deviceObject := GetDevice(device)
8131 framebufferObject := GetFramebuffer(framebuffer)
8132 assert(framebufferObject.device == device)
8133
8134 State.Framebuffers[framebuffer] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008135}
8136
8137
8138// Renderpass functions
8139
8140@threadSafety("system")
8141cmd VkResult vkCreateRenderPass(
8142 VkDevice device,
8143 const VkRenderPassCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008144 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008145 VkRenderPass* pRenderPass) {
8146 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO)
8147 deviceObject := GetDevice(device)
8148
8149 renderpass := ?
8150 pRenderPass[0] = renderpass
8151 State.RenderPasses[renderpass] = new!RenderPassObject(device: device)
8152
8153 return ?
8154}
8155
8156@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008157cmd void vkDestroyRenderPass(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008158 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008159 VkRenderPass renderPass,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008160 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008161 deviceObject := GetDevice(device)
8162 renderPassObject := GetRenderPass(renderPass)
8163 assert(renderPassObject.device == device)
8164
8165 State.RenderPasses[renderPass] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008166}
8167
Jesse Hall606a54e2015-11-19 22:17:28 -08008168cmd void vkGetRenderAreaGranularity(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008169 VkDevice device,
8170 VkRenderPass renderPass,
8171 VkExtent2D* pGranularity) {
8172 deviceObject := GetDevice(device)
8173 renderPassObject := GetRenderPass(renderPass)
8174
8175 granularity := ?
8176 pGranularity[0] = granularity
Jesse Halld27f6aa2015-08-15 17:58:48 -07008177}
8178
8179// Command pool functions
8180
8181cmd VkResult vkCreateCommandPool(
8182 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008183 const VkCommandPoolCreateInfo* pCreateInfo,
8184 const VkAllocationCallbacks* pAllocator,
8185 VkCommandPool* pCommandPool) {
8186 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008187 deviceObject := GetDevice(device)
8188
Jesse Hall3fbc8562015-11-29 22:10:52 -08008189 commandPool := ?
8190 pCommandPool[0] = commandPool
8191 State.CommandPools[commandPool] = new!CommandPoolObject(device: device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008192
8193 return ?
8194}
8195
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008196cmd void vkDestroyCommandPool(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008197 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008198 VkCommandPool commandPool,
8199 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008200 deviceObject := GetDevice(device)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008201 commandPoolObject := GetCommandPool(commandPool)
8202 assert(commandPoolObject.device == device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008203
Jesse Hall3fbc8562015-11-29 22:10:52 -08008204 State.CommandPools[commandPool] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008205}
8206
8207cmd VkResult vkResetCommandPool(
8208 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008209 VkCommandPool commandPool,
8210 VkCommandPoolResetFlags flags) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008211 deviceObject := GetDevice(device)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008212 commandPoolObject := GetCommandPool(commandPool)
8213 assert(commandPoolObject.device == device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008214
8215 return ?
8216}
8217
8218// Command buffer functions
8219
Jesse Hall3fbc8562015-11-29 22:10:52 -08008220macro void bindCommandBuffer(VkCommandBuffer commandBuffer, any obj, VkDeviceMemory memory) {
8221 memoryObject := GetDeviceMemory(memory)
8222 memoryObject.boundCommandBuffers[commandBuffer] = commandBuffer
Jesse Halld27f6aa2015-08-15 17:58:48 -07008223
Jesse Hall3fbc8562015-11-29 22:10:52 -08008224 commandBufferObject := GetCommandBuffer(commandBuffer)
8225 commandBufferObject.boundObjects[as!u64(obj)] = memory
Jesse Halld27f6aa2015-08-15 17:58:48 -07008226}
8227
Jesse Hall3fbc8562015-11-29 22:10:52 -08008228macro void unbindCommandBuffer(VkCommandBuffer commandBuffer, any obj, VkDeviceMemory memory) {
8229 memoryObject := GetDeviceMemory(memory)
8230 memoryObject.boundCommandBuffers[commandBuffer] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008231
Jesse Hall3fbc8562015-11-29 22:10:52 -08008232 commandBufferObject := GetCommandBuffer(commandBuffer)
8233 commandBufferObject.boundObjects[as!u64(obj)] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008234}
8235
8236@threadSafety("system")
Jesse Hall3fbc8562015-11-29 22:10:52 -08008237cmd VkResult vkAllocateCommandBuffers(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008238 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008239 const VkCommandBufferAllocateInfo* pAllocateInfo,
8240 VkCommandBuffer* pCommandBuffers) {
Jesse Hallf4ab2b12015-11-30 16:04:55 -08008241 assert(pAllocateInfo[0].sType == VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008242
Jesse Hall3dd678a2016-01-08 21:52:01 -08008243 count := pAllocateInfo[0].commandBufferCount
Jesse Hall3fbc8562015-11-29 22:10:52 -08008244 commandBuffers := pCommandBuffers[0:count]
Jesse Hallfbf97b02015-11-20 14:17:03 -08008245 for i in (0 .. count) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008246 commandBuffer := ?
8247 commandBuffers[i] = commandBuffer
8248 State.CommandBuffers[commandBuffer] = new!CommandBufferObject(device: device)
Jesse Hallfbf97b02015-11-20 14:17:03 -08008249 }
Jesse Halld27f6aa2015-08-15 17:58:48 -07008250
8251 return ?
8252}
8253
8254@threadSafety("system")
Jesse Hallfbf97b02015-11-20 14:17:03 -08008255cmd void vkFreeCommandBuffers(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008256 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008257 VkCommandPool commandPool,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008258 u32 commandBufferCount,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008259 const VkCommandBuffer* pCommandBuffers) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008260 deviceObject := GetDevice(device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008261
Jesse Hall3fbc8562015-11-29 22:10:52 -08008262 commandBuffers := pCommandBuffers[0:commandBufferCount]
Jesse Hall03b6fe12015-11-24 12:44:21 -08008263 for i in (0 .. commandBufferCount) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008264 commandBufferObject := GetCommandBuffer(commandBuffers[i])
8265 assert(commandBufferObject.device == device)
Jesse Hallfbf97b02015-11-20 14:17:03 -08008266 // TODO: iterate over boundObjects and clear memory bindings
Jesse Hall3fbc8562015-11-29 22:10:52 -08008267 State.CommandBuffers[commandBuffers[i]] = null
Jesse Hallfbf97b02015-11-20 14:17:03 -08008268 }
Jesse Halld27f6aa2015-08-15 17:58:48 -07008269}
8270
8271@threadSafety("app")
8272cmd VkResult vkBeginCommandBuffer(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008273 VkCommandBuffer commandBuffer,
8274 const VkCommandBufferBeginInfo* pBeginInfo) {
8275 assert(pBeginInfo.sType == VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO)
8276 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008277
8278 // TODO: iterate over boundObjects and clear memory bindings
8279
8280 return ?
8281}
8282
8283@threadSafety("app")
8284cmd VkResult vkEndCommandBuffer(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008285 VkCommandBuffer commandBuffer) {
8286 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008287
8288 return ?
8289}
8290
8291@threadSafety("app")
8292cmd VkResult vkResetCommandBuffer(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008293 VkCommandBuffer commandBuffer,
8294 VkCommandBufferResetFlags flags) {
8295 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008296
8297 // TODO: iterate over boundObjects and clear memory bindings
8298
8299 return ?
8300}
8301
8302
8303// Command buffer building functions
8304
8305@threadSafety("app")
8306cmd void vkCmdBindPipeline(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008307 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008308 VkPipelineBindPoint pipelineBindPoint,
8309 VkPipeline pipeline) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008310 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008311 pipelineObject := GetPipeline(pipeline)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008312 assert(commandBufferObject.device == pipelineObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008313
Jesse Halld8bade02015-11-24 10:24:18 -08008314 queue := switch (pipelineBindPoint) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008315 case VK_PIPELINE_BIND_POINT_COMPUTE: VK_QUEUE_COMPUTE_BIT
8316 case VK_PIPELINE_BIND_POINT_GRAPHICS: VK_QUEUE_GRAPHICS_BIT
8317 }
Jesse Hall3fbc8562015-11-29 22:10:52 -08008318 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, queue)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008319}
8320
8321@threadSafety("app")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008322cmd void vkCmdSetViewport(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008323 VkCommandBuffer commandBuffer,
Jesse Hallf9fa9a52016-01-08 16:08:51 -08008324 u32 firstViewport,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008325 u32 viewportCount,
8326 const VkViewport* pViewports) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008327 commandBufferObject := GetCommandBuffer(commandBuffer)
8328 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008329}
8330
8331@threadSafety("app")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008332cmd void vkCmdSetScissor(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008333 VkCommandBuffer commandBuffer,
Jesse Hallf9fa9a52016-01-08 16:08:51 -08008334 u32 firstScissor,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008335 u32 scissorCount,
8336 const VkRect2D* pScissors) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008337 commandBufferObject := GetCommandBuffer(commandBuffer)
8338 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008339}
8340
8341@threadSafety("app")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008342cmd void vkCmdSetLineWidth(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008343 VkCommandBuffer commandBuffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008344 f32 lineWidth) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008345 commandBufferObject := GetCommandBuffer(commandBuffer)
8346 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008347}
8348
8349@threadSafety("app")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008350cmd void vkCmdSetDepthBias(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008351 VkCommandBuffer commandBuffer,
Jesse Halla9bb62b2015-11-21 19:31:56 -08008352 f32 depthBiasConstantFactor,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008353 f32 depthBiasClamp,
Jesse Halla9bb62b2015-11-21 19:31:56 -08008354 f32 depthBiasSlopeFactor) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008355 commandBufferObject := GetCommandBuffer(commandBuffer)
8356 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008357}
Jesse Halld27f6aa2015-08-15 17:58:48 -07008358
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008359@threadSafety("app")
8360cmd void vkCmdSetBlendConstants(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008361 VkCommandBuffer commandBuffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008362 // TODO(jessehall): apic only supports 'const' on pointer types. Using
8363 // an annotation as a quick hack to pass this to the template without
8364 // having to modify the AST and semantic model.
Jesse Hallb00daad2015-11-29 19:46:20 -08008365 @readonly f32[4] blendConstants) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008366 commandBufferObject := GetCommandBuffer(commandBuffer)
8367 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008368}
8369
8370@threadSafety("app")
8371cmd void vkCmdSetDepthBounds(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008372 VkCommandBuffer commandBuffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008373 f32 minDepthBounds,
8374 f32 maxDepthBounds) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008375 commandBufferObject := GetCommandBuffer(commandBuffer)
8376 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008377}
8378
8379@threadSafety("app")
8380cmd void vkCmdSetStencilCompareMask(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008381 VkCommandBuffer commandBuffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008382 VkStencilFaceFlags faceMask,
Jesse Hall65ab5522015-11-30 00:07:16 -08008383 u32 compareMask) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008384 commandBufferObject := GetCommandBuffer(commandBuffer)
8385 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008386}
8387
8388@threadSafety("app")
8389cmd void vkCmdSetStencilWriteMask(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008390 VkCommandBuffer commandBuffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008391 VkStencilFaceFlags faceMask,
Jesse Hall65ab5522015-11-30 00:07:16 -08008392 u32 writeMask) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008393 commandBufferObject := GetCommandBuffer(commandBuffer)
8394 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008395}
8396
8397@threadSafety("app")
8398cmd void vkCmdSetStencilReference(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008399 VkCommandBuffer commandBuffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008400 VkStencilFaceFlags faceMask,
Jesse Hall65ab5522015-11-30 00:07:16 -08008401 u32 reference) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008402 commandBufferObject := GetCommandBuffer(commandBuffer)
8403 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008404}
8405
8406@threadSafety("app")
8407cmd void vkCmdBindDescriptorSets(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008408 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008409 VkPipelineBindPoint pipelineBindPoint,
8410 VkPipelineLayout layout,
8411 u32 firstSet,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008412 u32 descriptorSetCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008413 const VkDescriptorSet* pDescriptorSets,
8414 u32 dynamicOffsetCount,
8415 const u32* pDynamicOffsets) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008416 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008417
Jesse Hall03b6fe12015-11-24 12:44:21 -08008418 descriptorSets := pDescriptorSets[0:descriptorSetCount]
8419 for i in (0 .. descriptorSetCount) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008420 descriptorSet := descriptorSets[i]
8421 descriptorSetObject := GetDescriptorSet(descriptorSet)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008422 assert(commandBufferObject.device == descriptorSetObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008423 }
8424
8425 dynamicOffsets := pDynamicOffsets[0:dynamicOffsetCount]
8426 for i in (0 .. dynamicOffsetCount) {
8427 dynamicOffset := dynamicOffsets[i]
8428 }
8429
Jesse Halld8bade02015-11-24 10:24:18 -08008430 queue := switch (pipelineBindPoint) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008431 case VK_PIPELINE_BIND_POINT_COMPUTE: VK_QUEUE_COMPUTE_BIT
8432 case VK_PIPELINE_BIND_POINT_GRAPHICS: VK_QUEUE_GRAPHICS_BIT
8433 }
Jesse Hall3fbc8562015-11-29 22:10:52 -08008434 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, queue)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008435}
8436
8437@threadSafety("app")
8438cmd void vkCmdBindIndexBuffer(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008439 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008440 VkBuffer buffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008441 VkDeviceSize offset,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008442 VkIndexType indexType) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008443 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008444 bufferObject := GetBuffer(buffer)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008445 assert(commandBufferObject.device == bufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008446
Jesse Hall3fbc8562015-11-29 22:10:52 -08008447 bindCommandBuffer(commandBuffer, buffer, bufferObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008448
Jesse Hall3fbc8562015-11-29 22:10:52 -08008449 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008450}
8451
8452@threadSafety("app")
8453cmd void vkCmdBindVertexBuffers(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008454 VkCommandBuffer commandBuffer,
Jesse Hallf9fa9a52016-01-08 16:08:51 -08008455 u32 firstBinding,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008456 u32 bindingCount,
8457 const VkBuffer* pBuffers,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008458 const VkDeviceSize* pOffsets) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008459 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008460
Jesse Hallf9fa9a52016-01-08 16:08:51 -08008461 // TODO: check if not [firstBinding:firstBinding+bindingCount]
Jesse Halld27f6aa2015-08-15 17:58:48 -07008462 buffers := pBuffers[0:bindingCount]
8463 offsets := pOffsets[0:bindingCount]
8464 for i in (0 .. bindingCount) {
8465 buffer := buffers[i]
8466 offset := offsets[i]
8467 bufferObject := GetBuffer(buffer)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008468 assert(commandBufferObject.device == bufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008469
Jesse Hall3fbc8562015-11-29 22:10:52 -08008470 bindCommandBuffer(commandBuffer, buffer, bufferObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008471 }
8472
Jesse Hall3fbc8562015-11-29 22:10:52 -08008473 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008474}
8475
8476@threadSafety("app")
8477cmd void vkCmdDraw(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008478 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008479 u32 vertexCount,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008480 u32 instanceCount,
8481 u32 firstVertex,
8482 u32 firstInstance) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008483 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008484
Jesse Hall3fbc8562015-11-29 22:10:52 -08008485 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008486}
8487
8488@threadSafety("app")
8489cmd void vkCmdDrawIndexed(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008490 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008491 u32 indexCount,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008492 u32 instanceCount,
8493 u32 firstIndex,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008494 s32 vertexOffset,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008495 u32 firstInstance) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008496 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008497
Jesse Hall3fbc8562015-11-29 22:10:52 -08008498 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008499}
8500
8501@threadSafety("app")
8502cmd void vkCmdDrawIndirect(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008503 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008504 VkBuffer buffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008505 VkDeviceSize offset,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008506 u32 drawCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008507 u32 stride) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008508 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008509 bufferObject := GetBuffer(buffer)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008510 assert(commandBufferObject.device == bufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008511
Jesse Hall3fbc8562015-11-29 22:10:52 -08008512 bindCommandBuffer(commandBuffer, buffer, bufferObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008513
Jesse Hall3fbc8562015-11-29 22:10:52 -08008514 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008515}
8516
8517@threadSafety("app")
8518cmd void vkCmdDrawIndexedIndirect(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008519 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008520 VkBuffer buffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008521 VkDeviceSize offset,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008522 u32 drawCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008523 u32 stride) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008524 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008525 bufferObject := GetBuffer(buffer)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008526 assert(commandBufferObject.device == bufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008527
Jesse Hall3fbc8562015-11-29 22:10:52 -08008528 bindCommandBuffer(commandBuffer, buffer, bufferObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008529
Jesse Hall3fbc8562015-11-29 22:10:52 -08008530 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008531}
8532
8533@threadSafety("app")
8534cmd void vkCmdDispatch(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008535 VkCommandBuffer commandBuffer,
Jesse Hallad250842017-03-10 18:35:38 -08008536 u32 groupCountX,
8537 u32 groupCountY,
8538 u32 groupCountZ) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008539 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008540
Jesse Hall3fbc8562015-11-29 22:10:52 -08008541 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_COMPUTE_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008542}
8543
8544@threadSafety("app")
8545cmd void vkCmdDispatchIndirect(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008546 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008547 VkBuffer buffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008548 VkDeviceSize offset) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008549 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008550 bufferObject := GetBuffer(buffer)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008551 assert(commandBufferObject.device == bufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008552
Jesse Hall3fbc8562015-11-29 22:10:52 -08008553 bindCommandBuffer(commandBuffer, buffer, bufferObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008554
Jesse Hall3fbc8562015-11-29 22:10:52 -08008555 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_COMPUTE_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008556}
8557
8558@threadSafety("app")
8559cmd void vkCmdCopyBuffer(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008560 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008561 VkBuffer srcBuffer,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008562 VkBuffer dstBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008563 u32 regionCount,
8564 const VkBufferCopy* pRegions) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008565 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008566 srcBufferObject := GetBuffer(srcBuffer)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008567 dstBufferObject := GetBuffer(dstBuffer)
8568 assert(commandBufferObject.device == srcBufferObject.device)
8569 assert(commandBufferObject.device == dstBufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008570
8571 regions := pRegions[0:regionCount]
8572 for i in (0 .. regionCount) {
8573 region := regions[i]
8574 }
8575
Jesse Hall3fbc8562015-11-29 22:10:52 -08008576 bindCommandBuffer(commandBuffer, srcBuffer, srcBufferObject.memory)
8577 bindCommandBuffer(commandBuffer, dstBuffer, dstBufferObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008578
Jesse Hall65ab5522015-11-30 00:07:16 -08008579 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_TRANSFER_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008580}
8581
8582@threadSafety("app")
8583cmd void vkCmdCopyImage(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008584 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008585 VkImage srcImage,
8586 VkImageLayout srcImageLayout,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008587 VkImage dstImage,
8588 VkImageLayout dstImageLayout,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008589 u32 regionCount,
8590 const VkImageCopy* pRegions) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008591 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008592 srcImageObject := GetImage(srcImage)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008593 dstImageObject := GetImage(dstImage)
8594 assert(commandBufferObject.device == srcImageObject.device)
8595 assert(commandBufferObject.device == dstImageObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008596
8597 regions := pRegions[0:regionCount]
8598 for i in (0 .. regionCount) {
8599 region := regions[i]
8600 }
8601
Jesse Hall3fbc8562015-11-29 22:10:52 -08008602 bindCommandBuffer(commandBuffer, srcImage, srcImageObject.memory)
8603 bindCommandBuffer(commandBuffer, dstImage, dstImageObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008604
Jesse Hall65ab5522015-11-30 00:07:16 -08008605 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_TRANSFER_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008606}
8607
8608@threadSafety("app")
8609cmd void vkCmdBlitImage(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008610 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008611 VkImage srcImage,
8612 VkImageLayout srcImageLayout,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008613 VkImage dstImage,
8614 VkImageLayout dstImageLayout,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008615 u32 regionCount,
8616 const VkImageBlit* pRegions,
Jesse Hall23ff73f2015-11-29 14:36:39 -08008617 VkFilter filter) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008618 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008619 srcImageObject := GetImage(srcImage)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008620 dstImageObject := GetImage(dstImage)
8621 assert(commandBufferObject.device == srcImageObject.device)
8622 assert(commandBufferObject.device == dstImageObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008623
8624 regions := pRegions[0:regionCount]
8625 for i in (0 .. regionCount) {
8626 region := regions[i]
8627 }
8628
Jesse Hall3fbc8562015-11-29 22:10:52 -08008629 bindCommandBuffer(commandBuffer, srcImage, srcImageObject.memory)
8630 bindCommandBuffer(commandBuffer, dstImage, dstImageObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008631
Jesse Hall3fbc8562015-11-29 22:10:52 -08008632 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008633}
8634
8635@threadSafety("app")
8636cmd void vkCmdCopyBufferToImage(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008637 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008638 VkBuffer srcBuffer,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008639 VkImage dstImage,
8640 VkImageLayout dstImageLayout,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008641 u32 regionCount,
8642 const VkBufferImageCopy* pRegions) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008643 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008644 srcBufferObject := GetBuffer(srcBuffer)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008645 dstImageObject := GetImage(dstImage)
8646 assert(commandBufferObject.device == srcBufferObject.device)
8647 assert(commandBufferObject.device == dstImageObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008648
8649 regions := pRegions[0:regionCount]
8650 for i in (0 .. regionCount) {
8651 region := regions[i]
8652 }
8653
Jesse Hall3fbc8562015-11-29 22:10:52 -08008654 bindCommandBuffer(commandBuffer, srcBuffer, srcBufferObject.memory)
8655 bindCommandBuffer(commandBuffer, dstImage, dstImageObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008656
Jesse Hall65ab5522015-11-30 00:07:16 -08008657 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_TRANSFER_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008658}
8659
8660@threadSafety("app")
8661cmd void vkCmdCopyImageToBuffer(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008662 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008663 VkImage srcImage,
8664 VkImageLayout srcImageLayout,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008665 VkBuffer dstBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008666 u32 regionCount,
8667 const VkBufferImageCopy* pRegions) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008668 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008669 srcImageObject := GetImage(srcImage)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008670 dstBufferObject := GetBuffer(dstBuffer)
8671 assert(commandBufferObject.device == srcImageObject.device)
8672 assert(commandBufferObject.device == dstBufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008673
8674 regions := pRegions[0:regionCount]
8675 for i in (0 .. regionCount) {
8676 region := regions[i]
8677 }
8678
Jesse Hall3fbc8562015-11-29 22:10:52 -08008679 bindCommandBuffer(commandBuffer, srcImage, srcImageObject.memory)
8680 bindCommandBuffer(commandBuffer, dstBuffer, dstBufferObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008681
Jesse Hall65ab5522015-11-30 00:07:16 -08008682 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_TRANSFER_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008683}
8684
8685@threadSafety("app")
8686cmd void vkCmdUpdateBuffer(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008687 VkCommandBuffer commandBuffer,
8688 VkBuffer dstBuffer,
8689 VkDeviceSize dstOffset,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008690 VkDeviceSize dataSize,
Jesse Hall56d386a2016-07-26 15:20:40 -07008691 const void* pData) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008692 commandBufferObject := GetCommandBuffer(commandBuffer)
8693 dstBufferObject := GetBuffer(dstBuffer)
8694 assert(commandBufferObject.device == dstBufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008695
8696 data := pData[0:dataSize]
8697
Jesse Hall3fbc8562015-11-29 22:10:52 -08008698 bindCommandBuffer(commandBuffer, dstBuffer, dstBufferObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008699
Jesse Hall65ab5522015-11-30 00:07:16 -08008700 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_TRANSFER_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008701}
8702
8703@threadSafety("app")
8704cmd void vkCmdFillBuffer(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008705 VkCommandBuffer commandBuffer,
8706 VkBuffer dstBuffer,
8707 VkDeviceSize dstOffset,
Jesse Hallb00daad2015-11-29 19:46:20 -08008708 VkDeviceSize size,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008709 u32 data) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008710 commandBufferObject := GetCommandBuffer(commandBuffer)
8711 dstBufferObject := GetBuffer(dstBuffer)
8712 assert(commandBufferObject.device == dstBufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008713
Jesse Hall65ab5522015-11-30 00:07:16 -08008714 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_TRANSFER_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008715}
8716
8717@threadSafety("app")
8718cmd void vkCmdClearColorImage(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008719 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008720 VkImage image,
8721 VkImageLayout imageLayout,
8722 const VkClearColorValue* pColor,
8723 u32 rangeCount,
8724 const VkImageSubresourceRange* pRanges) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008725 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008726 imageObject := GetImage(image)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008727 assert(commandBufferObject.device == imageObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008728
8729 ranges := pRanges[0:rangeCount]
8730 for i in (0 .. rangeCount) {
8731 range := ranges[i]
8732 }
8733
Jesse Hall3fbc8562015-11-29 22:10:52 -08008734 bindCommandBuffer(commandBuffer, image, imageObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008735
Jesse Hall3fbc8562015-11-29 22:10:52 -08008736 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008737}
8738
8739@threadSafety("app")
8740cmd void vkCmdClearDepthStencilImage(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008741 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008742 VkImage image,
8743 VkImageLayout imageLayout,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008744 const VkClearDepthStencilValue* pDepthStencil,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008745 u32 rangeCount,
8746 const VkImageSubresourceRange* pRanges) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008747 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008748 imageObject := GetImage(image)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008749 assert(commandBufferObject.device == imageObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008750
8751 ranges := pRanges[0:rangeCount]
8752 for i in (0 .. rangeCount) {
8753 range := ranges[i]
8754 }
8755
Jesse Hall3fbc8562015-11-29 22:10:52 -08008756 bindCommandBuffer(commandBuffer, image, imageObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008757
Jesse Hall3fbc8562015-11-29 22:10:52 -08008758 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008759}
8760
8761@threadSafety("app")
Jesse Hallae38f732015-11-19 21:32:50 -08008762cmd void vkCmdClearAttachments(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008763 VkCommandBuffer commandBuffer,
Jesse Hallae38f732015-11-19 21:32:50 -08008764 u32 attachmentCount,
8765 const VkClearAttachment* pAttachments,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008766 u32 rectCount,
Jesse Halla15a4bf2015-11-19 22:48:02 -08008767 const VkClearRect* pRects) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008768 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008769
8770 rects := pRects[0:rectCount]
8771 for i in (0 .. rectCount) {
8772 rect := rects[i]
8773 }
8774
Jesse Hall3fbc8562015-11-29 22:10:52 -08008775 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008776}
8777
8778@threadSafety("app")
8779cmd void vkCmdResolveImage(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008780 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008781 VkImage srcImage,
8782 VkImageLayout srcImageLayout,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008783 VkImage dstImage,
8784 VkImageLayout dstImageLayout,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008785 u32 regionCount,
8786 const VkImageResolve* pRegions) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008787 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008788 srcImageObject := GetImage(srcImage)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008789 dstImageObject := GetImage(dstImage)
8790 assert(commandBufferObject.device == srcImageObject.device)
8791 assert(commandBufferObject.device == dstImageObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008792
8793 regions := pRegions[0:regionCount]
8794 for i in (0 .. regionCount) {
8795 region := regions[i]
8796 }
8797
Jesse Hall3fbc8562015-11-29 22:10:52 -08008798 bindCommandBuffer(commandBuffer, srcImage, srcImageObject.memory)
8799 bindCommandBuffer(commandBuffer, dstImage, dstImageObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008800
Jesse Hall3fbc8562015-11-29 22:10:52 -08008801 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008802}
8803
8804@threadSafety("app")
8805cmd void vkCmdSetEvent(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008806 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008807 VkEvent event,
8808 VkPipelineStageFlags stageMask) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008809 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008810 eventObject := GetEvent(event)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008811 assert(commandBufferObject.device == eventObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008812}
8813
8814@threadSafety("app")
8815cmd void vkCmdResetEvent(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008816 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008817 VkEvent event,
8818 VkPipelineStageFlags stageMask) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008819 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008820 eventObject := GetEvent(event)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008821 assert(commandBufferObject.device == eventObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008822}
8823
8824@threadSafety("app")
8825cmd void vkCmdWaitEvents(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008826 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008827 u32 eventCount,
8828 const VkEvent* pEvents,
8829 VkPipelineStageFlags srcStageMask,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008830 VkPipelineStageFlags dstStageMask,
8831 u32 memoryBarrierCount,
Jesse Hall3dd678a2016-01-08 21:52:01 -08008832 const VkMemoryBarrier* pMemoryBarriers,
8833 u32 bufferMemoryBarrierCount,
8834 const VkBufferMemoryBarrier* pBufferMemoryBarriers,
8835 u32 imageMemoryBarrierCount,
8836 const VkImageMemoryBarrier* pImageMemoryBarriers) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008837 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008838
8839 events := pEvents[0:eventCount]
8840 for i in (0 .. eventCount) {
8841 event := events[i]
8842 eventObject := GetEvent(event)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008843 assert(commandBufferObject.device == eventObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008844 }
8845
Jesse Hall3dd678a2016-01-08 21:52:01 -08008846 memoryBarriers := pMemoryBarriers[0:memoryBarrierCount]
Jesse Hall3fbc8562015-11-29 22:10:52 -08008847 for i in (0 .. memoryBarrierCount) {
Jesse Hall3dd678a2016-01-08 21:52:01 -08008848 memoryBarrier := memoryBarriers[i]
8849 }
8850 bufferMemoryBarriers := pBufferMemoryBarriers[0:bufferMemoryBarrierCount]
8851 for i in (0 .. bufferMemoryBarrierCount) {
8852 bufferMemoryBarrier := bufferMemoryBarriers[i]
8853 bufferObject := GetBuffer(bufferMemoryBarrier.buffer)
8854 assert(bufferObject.device == commandBufferObject.device)
8855 }
8856 imageMemoryBarriers := pImageMemoryBarriers[0:imageMemoryBarrierCount]
8857 for i in (0 .. imageMemoryBarrierCount) {
8858 imageMemoryBarrier := imageMemoryBarriers[i]
8859 imageObject := GetImage(imageMemoryBarrier.image)
8860 assert(imageObject.device == commandBufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008861 }
8862}
8863
8864@threadSafety("app")
8865cmd void vkCmdPipelineBarrier(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008866 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008867 VkPipelineStageFlags srcStageMask,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008868 VkPipelineStageFlags dstStageMask,
Jesse Halldc6d36c2015-11-29 19:12:15 -08008869 VkDependencyFlags dependencyFlags,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008870 u32 memoryBarrierCount,
Jesse Hall3dd678a2016-01-08 21:52:01 -08008871 const VkMemoryBarrier* pMemoryBarriers,
8872 u32 bufferMemoryBarrierCount,
8873 const VkBufferMemoryBarrier* pBufferMemoryBarriers,
8874 u32 imageMemoryBarrierCount,
8875 const VkImageMemoryBarrier* pImageMemoryBarriers) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008876 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008877
Jesse Hall3dd678a2016-01-08 21:52:01 -08008878 memoryBarriers := pMemoryBarriers[0:memoryBarrierCount]
Jesse Hall3fbc8562015-11-29 22:10:52 -08008879 for i in (0 .. memoryBarrierCount) {
Jesse Hall3dd678a2016-01-08 21:52:01 -08008880 memoryBarrier := memoryBarriers[i]
8881 }
8882 bufferMemoryBarriers := pBufferMemoryBarriers[0:bufferMemoryBarrierCount]
8883 for i in (0 .. bufferMemoryBarrierCount) {
8884 bufferMemoryBarrier := bufferMemoryBarriers[i]
8885 bufferObject := GetBuffer(bufferMemoryBarrier.buffer)
8886 assert(bufferObject.device == commandBufferObject.device)
8887 }
8888 imageMemoryBarriers := pImageMemoryBarriers[0:imageMemoryBarrierCount]
8889 for i in (0 .. imageMemoryBarrierCount) {
8890 imageMemoryBarrier := imageMemoryBarriers[i]
8891 imageObject := GetImage(imageMemoryBarrier.image)
8892 assert(imageObject.device == commandBufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008893 }
8894}
8895
8896@threadSafety("app")
8897cmd void vkCmdBeginQuery(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008898 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008899 VkQueryPool queryPool,
Jesse Hall3dd678a2016-01-08 21:52:01 -08008900 u32 query,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008901 VkQueryControlFlags flags) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008902 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008903 queryPoolObject := GetQueryPool(queryPool)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008904 assert(commandBufferObject.device == queryPoolObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008905}
8906
8907@threadSafety("app")
8908cmd void vkCmdEndQuery(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008909 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008910 VkQueryPool queryPool,
Jesse Hall3dd678a2016-01-08 21:52:01 -08008911 u32 query) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008912 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008913 queryPoolObject := GetQueryPool(queryPool)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008914 assert(commandBufferObject.device == queryPoolObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008915}
8916
8917@threadSafety("app")
8918cmd void vkCmdResetQueryPool(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008919 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008920 VkQueryPool queryPool,
Jesse Hallf9fa9a52016-01-08 16:08:51 -08008921 u32 firstQuery,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008922 u32 queryCount) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008923 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008924 queryPoolObject := GetQueryPool(queryPool)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008925 assert(commandBufferObject.device == queryPoolObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008926}
8927
8928@threadSafety("app")
8929cmd void vkCmdWriteTimestamp(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008930 VkCommandBuffer commandBuffer,
Jesse Hall6f39a6d2015-11-24 11:08:36 -08008931 VkPipelineStageFlagBits pipelineStage,
Jesse Halla3a7a1d2015-11-24 11:37:23 -08008932 VkQueryPool queryPool,
Jesse Hall3dd678a2016-01-08 21:52:01 -08008933 u32 query) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008934 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halla3a7a1d2015-11-24 11:37:23 -08008935 queryPoolObject := GetQueryPool(queryPool)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008936 assert(commandBufferObject.device == queryPoolObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008937}
8938
8939@threadSafety("app")
8940cmd void vkCmdCopyQueryPoolResults(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008941 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008942 VkQueryPool queryPool,
Jesse Hallf9fa9a52016-01-08 16:08:51 -08008943 u32 firstQuery,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008944 u32 queryCount,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008945 VkBuffer dstBuffer,
8946 VkDeviceSize dstOffset,
Jesse Halla9bb62b2015-11-21 19:31:56 -08008947 VkDeviceSize stride,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008948 VkQueryResultFlags flags) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008949 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008950 queryPoolObject := GetQueryPool(queryPool)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008951 dstBufferObject := GetBuffer(dstBuffer)
8952 assert(commandBufferObject.device == queryPoolObject.device)
8953 assert(commandBufferObject.device == dstBufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008954}
8955
8956cmd void vkCmdPushConstants(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008957 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008958 VkPipelineLayout layout,
8959 VkShaderStageFlags stageFlags,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008960 u32 offset,
8961 u32 size,
Jesse Hallf4ab2b12015-11-30 16:04:55 -08008962 const void* pValues) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008963 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008964 layoutObject := GetPipelineLayout(layout)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008965 assert(commandBufferObject.device == layoutObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008966}
8967
8968@threadSafety("app")
8969cmd void vkCmdBeginRenderPass(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008970 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008971 const VkRenderPassBeginInfo* pRenderPassBegin,
Jesse Hall65ab5522015-11-30 00:07:16 -08008972 VkSubpassContents contents) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008973 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008974 renderPassObject := GetRenderPass(pRenderPassBegin.renderPass)
8975 framebufferObject := GetFramebuffer(pRenderPassBegin.framebuffer)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008976 assert(commandBufferObject.device == renderPassObject.device)
8977 assert(commandBufferObject.device == framebufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008978
Jesse Hall3fbc8562015-11-29 22:10:52 -08008979 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008980}
8981
8982cmd void vkCmdNextSubpass(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008983 VkCommandBuffer commandBuffer,
Jesse Hall65ab5522015-11-30 00:07:16 -08008984 VkSubpassContents contents) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008985 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008986}
8987
8988@threadSafety("app")
8989cmd void vkCmdEndRenderPass(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008990 VkCommandBuffer commandBuffer) {
8991 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008992
Jesse Hall3fbc8562015-11-29 22:10:52 -08008993 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008994}
8995
8996cmd void vkCmdExecuteCommands(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008997 VkCommandBuffer commandBuffer,
Jesse Hall3dd678a2016-01-08 21:52:01 -08008998 u32 commandBufferCount,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008999 const VkCommandBuffer* pCommandBuffers) {
9000 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009001
Jesse Hall3dd678a2016-01-08 21:52:01 -08009002 commandBuffers := pCommandBuffers[0:commandBufferCount]
9003 for i in (0 .. commandBufferCount) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009004 secondaryCommandBuffer := commandBuffers[i]
9005 secondaryCommandBufferObject := GetCommandBuffer(secondaryCommandBuffer)
9006 assert(commandBufferObject.device == secondaryCommandBufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009007 }
9008}
9009
Ian Elliott28bd2c32017-10-13 09:21:12 -06009010//@vulkan1_1 functions
Daniel Koch09f7bf92017-10-05 00:26:58 -04009011
Ian Elliott28bd2c32017-10-13 09:21:12 -06009012@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009013cmd VkResult vkEnumerateInstanceVersion(
9014 u32* pApiVersion) {
9015 return ?
9016}
9017
Ian Elliott28bd2c32017-10-13 09:21:12 -06009018@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009019cmd VkResult vkBindBufferMemory2(
9020 VkDevice device,
9021 u32 bindInfoCount,
9022 const VkBindBufferMemoryInfo* pBindInfos) {
9023 return ?
9024}
9025
Ian Elliott28bd2c32017-10-13 09:21:12 -06009026@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009027cmd VkResult vkBindImageMemory2(
9028 VkDevice device,
9029 u32 bindInfoCount,
9030 const VkBindImageMemoryInfo* pBindInfos) {
9031 return ?
9032}
9033
Ian Elliott28bd2c32017-10-13 09:21:12 -06009034@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009035cmd void vkGetDeviceGroupPeerMemoryFeatures(
9036 VkDevice device,
9037 u32 heapIndex,
9038 u32 localDeviceIndex,
9039 u32 remoteDeviceIndex,
9040 VkPeerMemoryFeatureFlags* pPeerMemoryFeatures) {
9041}
9042
Ian Elliott28bd2c32017-10-13 09:21:12 -06009043@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009044cmd void vkCmdSetDeviceMask(
9045 VkCommandBuffer commandBuffer,
9046 u32 deviceMask) {
9047}
9048
Ian Elliott28bd2c32017-10-13 09:21:12 -06009049@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009050cmd void vkCmdDispatchBase(
9051 VkCommandBuffer commandBuffer,
9052 u32 baseGroupX,
9053 u32 baseGroupY,
9054 u32 baseGroupZ,
9055 u32 groupCountX,
9056 u32 groupCountY,
9057 u32 groupCountZ) {
9058}
9059
9060@threadSafety("system")
Ian Elliott28bd2c32017-10-13 09:21:12 -06009061@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009062cmd VkResult vkEnumeratePhysicalDeviceGroups(
9063 VkInstance instance,
9064 u32* pPhysicalDeviceGroupCount,
9065 VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties) {
9066 instanceObject := GetInstance(instance)
9067
9068 physicalDeviceGroupCount := as!u32(?)
9069 pPhysicalDeviceGroupCount[0] = physicalDeviceGroupCount
9070 physicalDevices := pPhysicalDeviceGroupProperties[0:physicalDeviceGroupCount]
9071
9072 for i in (0 .. physicalDeviceGroupCount) {
9073 physicalDevice := ?
9074 physicalDevices[i] = physicalDevice
9075 if !(physicalDevice in State.PhysicalDevices) {
9076 State.PhysicalDevices[physicalDevice] = new!PhysicalDeviceObject(instance: instance)
9077 }
9078 }
9079
9080 return ?
9081}
9082
Ian Elliott28bd2c32017-10-13 09:21:12 -06009083@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009084cmd void vkGetImageMemoryRequirements2(
9085 VkDevice device,
9086 const VkImageMemoryRequirementsInfo2* pInfo,
9087 VkMemoryRequirements2* pMemoryRequirements) {
9088}
9089
Ian Elliott28bd2c32017-10-13 09:21:12 -06009090@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009091cmd void vkGetBufferMemoryRequirements2(
9092 VkDevice device,
9093 const VkBufferMemoryRequirementsInfo2* pInfo,
9094 VkMemoryRequirements2* pMemoryRequirements) {
9095}
9096
Ian Elliott28bd2c32017-10-13 09:21:12 -06009097@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009098cmd void vkGetImageSparseMemoryRequirements2(
9099 VkDevice device,
9100 const VkImageSparseMemoryRequirementsInfo2* pInfo,
9101 u32* pSparseMemoryRequirementCount,
9102 VkSparseImageMemoryRequirements2* pSparseMemoryRequirements) {
9103}
9104
Ian Elliott28bd2c32017-10-13 09:21:12 -06009105@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009106cmd void vkGetPhysicalDeviceFeatures2(
9107 VkPhysicalDevice physicalDevice,
9108 VkPhysicalDeviceFeatures2* pFeatures) {
9109}
9110
Ian Elliott28bd2c32017-10-13 09:21:12 -06009111@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009112cmd void vkGetPhysicalDeviceProperties2(
9113 VkPhysicalDevice physicalDevice,
9114 VkPhysicalDeviceProperties2* pProperties) {
9115}
9116
Ian Elliott28bd2c32017-10-13 09:21:12 -06009117@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009118cmd void vkGetPhysicalDeviceFormatProperties2(
9119 VkPhysicalDevice physicalDevice,
9120 VkFormat format,
9121 VkFormatProperties2* pFormatProperties) {
9122}
9123
Ian Elliott28bd2c32017-10-13 09:21:12 -06009124@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009125cmd VkResult vkGetPhysicalDeviceImageFormatProperties2(
9126 VkPhysicalDevice physicalDevice,
9127 const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo,
9128 VkImageFormatProperties2* pImageFormatProperties) {
9129 return ?
9130}
9131
Ian Elliott28bd2c32017-10-13 09:21:12 -06009132@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009133cmd void vkGetPhysicalDeviceQueueFamilyProperties2(
9134 VkPhysicalDevice physicalDevice,
9135 u32* pQueueFamilyPropertyCount,
9136 VkQueueFamilyProperties2* pQueueFamilyProperties) {
9137}
9138
Ian Elliott28bd2c32017-10-13 09:21:12 -06009139@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009140cmd void vkGetPhysicalDeviceMemoryProperties2(
9141 VkPhysicalDevice physicalDevice,
9142 VkPhysicalDeviceMemoryProperties2* pMemoryProperties) {
9143}
9144
Ian Elliott28bd2c32017-10-13 09:21:12 -06009145@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009146cmd void vkGetPhysicalDeviceSparseImageFormatProperties2(
9147 VkPhysicalDevice physicalDevice,
9148 const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo,
9149 u32* pPropertyCount,
9150 VkSparseImageFormatProperties2* pProperties) {
9151}
9152
Ian Elliott28bd2c32017-10-13 09:21:12 -06009153@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009154cmd void vkTrimCommandPool(
9155 VkDevice device,
9156 VkCommandPool commandPool,
9157 VkCommandPoolTrimFlags flags) {
9158}
9159
9160
Ian Elliott28bd2c32017-10-13 09:21:12 -06009161@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009162cmd void vkGetDeviceQueue2(
9163 VkDevice device,
9164 const VkDeviceQueueInfo2* pQueueInfo,
9165 VkQueue* pQueue) {
9166 deviceObject := GetDevice(device)
9167
9168 queue := ?
9169 pQueue[0] = queue
9170
9171 if !(queue in State.Queues) {
9172 State.Queues[queue] = new!QueueObject(device: device)
9173 }
9174}
9175
Ian Elliott28bd2c32017-10-13 09:21:12 -06009176@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009177cmd VkResult vkCreateSamplerYcbcrConversion(
9178 VkDevice device,
9179 const VkSamplerYcbcrConversionCreateInfo* pCreateInfo,
9180 const VkAllocationCallbacks* pAllocator,
9181 VkSamplerYcbcrConversion* pYcbcrConversion) {
9182 return ?
9183}
9184
Ian Elliott28bd2c32017-10-13 09:21:12 -06009185@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009186cmd void vkDestroySamplerYcbcrConversion(
9187 VkDevice device,
9188 VkSamplerYcbcrConversion ycbcrConversion,
9189 const VkAllocationCallbacks* pAllocator) {
9190}
9191
Ian Elliott28bd2c32017-10-13 09:21:12 -06009192@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009193cmd VkResult vkCreateDescriptorUpdateTemplate(
9194 VkDevice device,
9195 const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo,
9196 const VkAllocationCallbacks* pAllocator,
9197 VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate) {
9198 return ?
9199}
9200
Ian Elliott28bd2c32017-10-13 09:21:12 -06009201@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009202cmd void vkDestroyDescriptorUpdateTemplate(
9203 VkDevice device,
9204 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
9205 const VkAllocationCallbacks* pAllocator) {
9206}
9207
Ian Elliott28bd2c32017-10-13 09:21:12 -06009208@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009209cmd void vkUpdateDescriptorSetWithTemplate(
9210 VkDevice device,
9211 VkDescriptorSet descriptorSet,
9212 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
9213 const void* pData) {
9214}
9215
Ian Elliott28bd2c32017-10-13 09:21:12 -06009216@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009217cmd void vkGetPhysicalDeviceExternalBufferProperties(
9218 VkPhysicalDevice physicalDevice,
9219 const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo,
9220 VkExternalBufferProperties* pExternalBufferProperties) {
9221}
9222
Ian Elliott28bd2c32017-10-13 09:21:12 -06009223@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009224cmd void vkGetPhysicalDeviceExternalFenceProperties(
9225 VkPhysicalDevice physicalDevice,
9226 const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo,
9227 VkExternalFenceProperties* pExternalFenceProperties) {
9228}
9229
Ian Elliott28bd2c32017-10-13 09:21:12 -06009230@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009231cmd void vkGetPhysicalDeviceExternalSemaphoreProperties(
9232 VkPhysicalDevice physicalDevice,
9233 const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo,
9234 VkExternalSemaphoreProperties* pExternalSemaphoreProperties) {
9235}
9236
Ian Elliott28bd2c32017-10-13 09:21:12 -06009237@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009238cmd void vkGetDescriptorSetLayoutSupport(
9239 VkDevice device,
9240 const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
9241 VkDescriptorSetLayoutSupport* pSupport) {
9242}
9243
9244
Jesse Hallad250842017-03-10 18:35:38 -08009245@extension("VK_KHR_surface") // 1
Jesse Hall1356b0d2015-11-23 17:24:58 -08009246cmd void vkDestroySurfaceKHR(
9247 VkInstance instance,
Jesse Hall0e74f002015-11-30 11:37:59 -08009248 VkSurfaceKHR surface,
9249 const VkAllocationCallbacks* pAllocator) {
Jesse Hall1356b0d2015-11-23 17:24:58 -08009250 instanceObject := GetInstance(instance)
9251 surfaceObject := GetSurface(surface)
9252 assert(surfaceObject.instance == instance)
Michael Lentine88594d72015-11-12 12:49:45 -08009253
Jesse Hall1356b0d2015-11-23 17:24:58 -08009254 State.Surfaces[surface] = null
Jesse Hall2818f932015-11-19 21:19:17 -08009255}
9256
Jesse Hallad250842017-03-10 18:35:38 -08009257@extension("VK_KHR_surface") // 1
Jesse Halla6429252015-11-29 18:59:42 -08009258cmd VkResult vkGetPhysicalDeviceSurfaceSupportKHR(
Jesse Hall1356b0d2015-11-23 17:24:58 -08009259 VkPhysicalDevice physicalDevice,
9260 u32 queueFamilyIndex,
Jesse Hall1356b0d2015-11-23 17:24:58 -08009261 VkSurfaceKHR surface,
Jesse Hallb00daad2015-11-29 19:46:20 -08009262 VkBool32* pSupported) {
9263 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
Michael Lentine88594d72015-11-12 12:49:45 -08009264
9265 return ?
9266}
9267
Jesse Hallad250842017-03-10 18:35:38 -08009268@extension("VK_KHR_surface") // 1
Jesse Hallb00daad2015-11-29 19:46:20 -08009269cmd VkResult vkGetPhysicalDeviceSurfaceCapabilitiesKHR(
9270 VkPhysicalDevice physicalDevice,
9271 VkSurfaceKHR surface,
9272 VkSurfaceCapabilitiesKHR* pSurfaceCapabilities) {
9273 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
9274
9275 surfaceCapabilities := ?
9276 pSurfaceCapabilities[0] = surfaceCapabilities
9277
9278 return ?
9279}
9280
Jesse Hallad250842017-03-10 18:35:38 -08009281@extension("VK_KHR_surface") // 1
Jesse Hallb00daad2015-11-29 19:46:20 -08009282cmd VkResult vkGetPhysicalDeviceSurfaceFormatsKHR(
9283 VkPhysicalDevice physicalDevice,
Jesse Hall1356b0d2015-11-23 17:24:58 -08009284 VkSurfaceKHR surface,
Jesse Hall03b6fe12015-11-24 12:44:21 -08009285 u32* pSurfaceFormatCount,
Jesse Hall1356b0d2015-11-23 17:24:58 -08009286 VkSurfaceFormatKHR* pSurfaceFormats) {
Jesse Hallb00daad2015-11-29 19:46:20 -08009287 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
Michael Lentine88594d72015-11-12 12:49:45 -08009288
9289 count := as!u32(?)
Jesse Hall03b6fe12015-11-24 12:44:21 -08009290 pSurfaceFormatCount[0] = count
Michael Lentine88594d72015-11-12 12:49:45 -08009291 surfaceFormats := pSurfaceFormats[0:count]
9292
9293 for i in (0 .. count) {
9294 surfaceFormat := ?
9295 surfaceFormats[i] = surfaceFormat
9296 }
9297
9298 return ?
9299}
9300
Jesse Hallad250842017-03-10 18:35:38 -08009301@extension("VK_KHR_surface") // 1
Jesse Hallb00daad2015-11-29 19:46:20 -08009302cmd VkResult vkGetPhysicalDeviceSurfacePresentModesKHR(
9303 VkPhysicalDevice physicalDevice,
Jesse Hall1356b0d2015-11-23 17:24:58 -08009304 VkSurfaceKHR surface,
Jesse Hall03b6fe12015-11-24 12:44:21 -08009305 u32* pPresentModeCount,
Jesse Hall1356b0d2015-11-23 17:24:58 -08009306 VkPresentModeKHR* pPresentModes) {
Jesse Hallb00daad2015-11-29 19:46:20 -08009307 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
Michael Lentine88594d72015-11-12 12:49:45 -08009308
9309 count := as!u32(?)
Jesse Hall03b6fe12015-11-24 12:44:21 -08009310 pPresentModeCount[0] = count
Michael Lentine88594d72015-11-12 12:49:45 -08009311 presentModes := pPresentModes[0:count]
9312
9313 for i in (0 .. count) {
9314 presentMode := ?
9315 presentModes[i] = presentMode
9316 }
9317
9318 return ?
9319}
9320
Jesse Hallad250842017-03-10 18:35:38 -08009321@extension("VK_KHR_swapchain") // 2
Michael Lentine88594d72015-11-12 12:49:45 -08009322cmd VkResult vkCreateSwapchainKHR(
9323 VkDevice device,
9324 const VkSwapchainCreateInfoKHR* pCreateInfo,
Jesse Hall0e74f002015-11-30 11:37:59 -08009325 const VkAllocationCallbacks* pAllocator,
Michael Lentine88594d72015-11-12 12:49:45 -08009326 VkSwapchainKHR* pSwapchain) {
Jesse Hall1356b0d2015-11-23 17:24:58 -08009327 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR)
Michael Lentine88594d72015-11-12 12:49:45 -08009328 deviceObject := GetDevice(device)
9329
9330 swapchain := ?
9331 pSwapchain[0] = swapchain
9332 State.Swapchains[swapchain] = new!SwapchainObject(device: device)
9333
9334 return ?
9335}
9336
Jesse Hallad250842017-03-10 18:35:38 -08009337@extension("VK_KHR_swapchain") // 2
Jesse Hall1356b0d2015-11-23 17:24:58 -08009338cmd void vkDestroySwapchainKHR(
Michael Lentine88594d72015-11-12 12:49:45 -08009339 VkDevice device,
Jesse Hall0e74f002015-11-30 11:37:59 -08009340 VkSwapchainKHR swapchain,
9341 const VkAllocationCallbacks* pAllocator) {
Michael Lentine88594d72015-11-12 12:49:45 -08009342 deviceObject := GetDevice(device)
9343 swapchainObject := GetSwapchain(swapchain)
9344 assert(swapchainObject.device == device)
9345
9346 State.Swapchains[swapchain] = null
Michael Lentine88594d72015-11-12 12:49:45 -08009347}
9348
Jesse Hallad250842017-03-10 18:35:38 -08009349@extension("VK_KHR_swapchain") // 2
Michael Lentine88594d72015-11-12 12:49:45 -08009350cmd VkResult vkGetSwapchainImagesKHR(
9351 VkDevice device,
9352 VkSwapchainKHR swapchain,
Jesse Hall03b6fe12015-11-24 12:44:21 -08009353 u32* pSwapchainImageCount,
Michael Lentine88594d72015-11-12 12:49:45 -08009354 VkImage* pSwapchainImages) {
9355 deviceObject := GetDevice(device)
9356
9357 count := as!u32(?)
Jesse Hall03b6fe12015-11-24 12:44:21 -08009358 pSwapchainImageCount[0] = count
Michael Lentine88594d72015-11-12 12:49:45 -08009359 swapchainImages := pSwapchainImages[0:count]
9360
9361 for i in (0 .. count) {
9362 swapchainImage := ?
9363 swapchainImages[i] = swapchainImage
Jesse Hall1356b0d2015-11-23 17:24:58 -08009364 State.Images[swapchainImage] = new!ImageObject(device: device)
Michael Lentine88594d72015-11-12 12:49:45 -08009365 }
9366
9367 return ?
9368}
9369
Jesse Hallad250842017-03-10 18:35:38 -08009370@extension("VK_KHR_swapchain") // 2
Michael Lentine88594d72015-11-12 12:49:45 -08009371cmd VkResult vkAcquireNextImageKHR(
9372 VkDevice device,
9373 VkSwapchainKHR swapchain,
9374 u64 timeout,
9375 VkSemaphore semaphore,
Jesse Hall1356b0d2015-11-23 17:24:58 -08009376 VkFence fence,
Michael Lentine88594d72015-11-12 12:49:45 -08009377 u32* pImageIndex) {
9378 deviceObject := GetDevice(device)
9379 swapchainObject := GetSwapchain(swapchain)
9380
9381 imageIndex := ?
9382 pImageIndex[0] = imageIndex
9383
9384 return ?
9385}
9386
Jesse Hallad250842017-03-10 18:35:38 -08009387@extension("VK_KHR_swapchain") // 2
Michael Lentine88594d72015-11-12 12:49:45 -08009388cmd VkResult vkQueuePresentKHR(
9389 VkQueue queue,
Jesse Hallf4ab2b12015-11-30 16:04:55 -08009390 const VkPresentInfoKHR* pPresentInfo) {
Michael Lentine88594d72015-11-12 12:49:45 -08009391 queueObject := GetQueue(queue)
9392
9393 presentInfo := ?
9394 pPresentInfo[0] = presentInfo
9395
9396 return ?
9397}
9398
Ian Elliott28bd2c32017-10-13 09:21:12 -06009399@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009400@extension("VK_KHR_swapchain") // 2
9401cmd VkResult vkGetDeviceGroupPresentCapabilitiesKHR(
9402 VkDevice device,
9403 VkDeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities) {
9404 return ?
9405}
9406
Ian Elliott28bd2c32017-10-13 09:21:12 -06009407@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009408@extension("VK_KHR_swapchain") // 2
9409cmd VkResult vkGetDeviceGroupSurfacePresentModesKHR(
9410 VkDevice device,
9411 VkSurfaceKHR surface,
9412 VkDeviceGroupPresentModeFlagsKHR* pModes) {
9413 return ?
9414}
9415
Ian Elliott28bd2c32017-10-13 09:21:12 -06009416@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009417@extension("VK_KHR_swapchain") // 2
9418cmd VkResult vkGetPhysicalDevicePresentRectanglesKHR(
9419 VkPhysicalDevice physicalDevice,
9420 VkSurfaceKHR surface,
9421 u32* pRectCount,
9422 VkRect2D* pRects) {
9423 return ?
9424}
9425
Ian Elliott28bd2c32017-10-13 09:21:12 -06009426@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009427@extension("VK_KHR_swapchain") // 2
9428cmd VkResult vkAcquireNextImage2KHR(
9429 VkDevice device,
9430 const VkAcquireNextImageInfoKHR* pAcquireInfo,
9431 u32* pImageIndex) {
9432 return ?
9433}
9434
Jesse Hallad250842017-03-10 18:35:38 -08009435@extension("VK_KHR_display") // 3
Jesse Hall1356b0d2015-11-23 17:24:58 -08009436cmd VkResult vkGetPhysicalDeviceDisplayPropertiesKHR(
9437 VkPhysicalDevice physicalDevice,
Jesse Hall03b6fe12015-11-24 12:44:21 -08009438 u32* pPropertyCount,
Jesse Hall1356b0d2015-11-23 17:24:58 -08009439 VkDisplayPropertiesKHR* pProperties) {
9440 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
9441 return ?
9442}
9443
Jesse Hallad250842017-03-10 18:35:38 -08009444@extension("VK_KHR_display") // 3
Jesse Halla6429252015-11-29 18:59:42 -08009445cmd VkResult vkGetPhysicalDeviceDisplayPlanePropertiesKHR(
9446 VkPhysicalDevice physicalDevice,
9447 u32* pPropertyCount,
9448 VkDisplayPlanePropertiesKHR* pProperties) {
9449 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
9450 return ?
9451}
9452
Jesse Hallad250842017-03-10 18:35:38 -08009453@extension("VK_KHR_display") // 3
Jesse Halla6429252015-11-29 18:59:42 -08009454cmd VkResult vkGetDisplayPlaneSupportedDisplaysKHR(
9455 VkPhysicalDevice physicalDevice,
Jesse Hall3dd678a2016-01-08 21:52:01 -08009456 u32 planeIndex,
Jesse Hallf4ab2b12015-11-30 16:04:55 -08009457 u32* pDisplayCount,
9458 VkDisplayKHR* pDisplays) {
Jesse Halla6429252015-11-29 18:59:42 -08009459 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
9460 return ?
9461}
9462
Jesse Hallad250842017-03-10 18:35:38 -08009463@extension("VK_KHR_display") // 3
Jesse Hall1356b0d2015-11-23 17:24:58 -08009464cmd VkResult vkGetDisplayModePropertiesKHR(
9465 VkPhysicalDevice physicalDevice,
9466 VkDisplayKHR display,
Jesse Hall03b6fe12015-11-24 12:44:21 -08009467 u32* pPropertyCount,
9468 VkDisplayModePropertiesKHR* pProperties) {
Jesse Hall1356b0d2015-11-23 17:24:58 -08009469 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
9470 return ?
9471}
9472
Jesse Hallad250842017-03-10 18:35:38 -08009473@extension("VK_KHR_display") // 3
Jesse Hall1356b0d2015-11-23 17:24:58 -08009474cmd VkResult vkCreateDisplayModeKHR(
9475 VkPhysicalDevice physicalDevice,
9476 VkDisplayKHR display,
9477 const VkDisplayModeCreateInfoKHR* pCreateInfo,
Jesse Hall0e74f002015-11-30 11:37:59 -08009478 const VkAllocationCallbacks* pAllocator,
Jesse Hall1356b0d2015-11-23 17:24:58 -08009479 VkDisplayModeKHR* pMode) {
9480 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
9481 return ?
9482}
9483
Jesse Hallad250842017-03-10 18:35:38 -08009484@extension("VK_KHR_display") // 3
Jesse Halla6429252015-11-29 18:59:42 -08009485cmd VkResult vkGetDisplayPlaneCapabilitiesKHR(
Jesse Hall1356b0d2015-11-23 17:24:58 -08009486 VkPhysicalDevice physicalDevice,
Jesse Hall9ba8bc82015-11-30 16:22:16 -08009487 VkDisplayModeKHR mode,
Jesse Hall1356b0d2015-11-23 17:24:58 -08009488 u32 planeIndex,
Jesse Halla6429252015-11-29 18:59:42 -08009489 VkDisplayPlaneCapabilitiesKHR* pCapabilities) {
Jesse Hall1356b0d2015-11-23 17:24:58 -08009490 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
9491 return ?
9492}
9493
Jesse Hallad250842017-03-10 18:35:38 -08009494@extension("VK_KHR_display") // 3
Jesse Halla6429252015-11-29 18:59:42 -08009495cmd VkResult vkCreateDisplayPlaneSurfaceKHR(
9496 VkInstance instance,
9497 const VkDisplaySurfaceCreateInfoKHR* pCreateInfo,
Jesse Hall0e74f002015-11-30 11:37:59 -08009498 const VkAllocationCallbacks* pAllocator,
Jesse Halla6429252015-11-29 18:59:42 -08009499 VkSurfaceKHR* pSurface) {
9500 return ?
9501}
9502
Jesse Hallad250842017-03-10 18:35:38 -08009503@extension("VK_KHR_display_swapchain") // 4
Jesse Hall9ba8bc82015-11-30 16:22:16 -08009504cmd VkResult vkCreateSharedSwapchainsKHR(
9505 VkDevice device,
9506 u32 swapchainCount,
9507 const VkSwapchainCreateInfoKHR* pCreateInfos,
9508 const VkAllocationCallbacks* pAllocator,
9509 VkSwapchainKHR* pSwapchains) {
9510 return ?
9511}
9512
Jesse Hallad250842017-03-10 18:35:38 -08009513@extension("VK_KHR_xlib_surface") // 5
Jesse Halla6429252015-11-29 18:59:42 -08009514cmd VkResult vkCreateXlibSurfaceKHR(
Jesse Hall1356b0d2015-11-23 17:24:58 -08009515 VkInstance instance,
Jesse Hallf9fa9a52016-01-08 16:08:51 -08009516 const VkXlibSurfaceCreateInfoKHR* pCreateInfo,
Jesse Hall0e74f002015-11-30 11:37:59 -08009517 const VkAllocationCallbacks* pAllocator,
Jesse Hall1356b0d2015-11-23 17:24:58 -08009518 VkSurfaceKHR* pSurface) {
9519 instanceObject := GetInstance(instance)
9520 return ?
9521}
9522
Jesse Hallad250842017-03-10 18:35:38 -08009523@extension("VK_KHR_xlib_surface") // 5
Jesse Halla6429252015-11-29 18:59:42 -08009524cmd VkBool32 vkGetPhysicalDeviceXlibPresentationSupportKHR(
9525 VkPhysicalDevice physicalDevice,
9526 u32 queueFamilyIndex,
9527 platform.Display* dpy,
Jesse Hall65ab5522015-11-30 00:07:16 -08009528 platform.VisualID visualID) {
Jesse Halla6429252015-11-29 18:59:42 -08009529 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
9530 return ?
9531}
9532
Jesse Hallad250842017-03-10 18:35:38 -08009533@extension("VK_KHR_xcb_surface") // 6
Jesse Hallf9fa9a52016-01-08 16:08:51 -08009534cmd VkResult vkCreateXcbSurfaceKHR(
Jesse Hall1356b0d2015-11-23 17:24:58 -08009535 VkInstance instance,
Jesse Hallf9fa9a52016-01-08 16:08:51 -08009536 const VkXcbSurfaceCreateInfoKHR* pCreateInfo,
Jesse Hall0e74f002015-11-30 11:37:59 -08009537 const VkAllocationCallbacks* pAllocator,
Jesse Hall1356b0d2015-11-23 17:24:58 -08009538 VkSurfaceKHR* pSurface) {
9539 instanceObject := GetInstance(instance)
9540 return ?
9541}
9542
Jesse Hallad250842017-03-10 18:35:38 -08009543@extension("VK_KHR_xcb_surface") // 6
Jesse Halla6429252015-11-29 18:59:42 -08009544cmd VkBool32 vkGetPhysicalDeviceXcbPresentationSupportKHR(
9545 VkPhysicalDevice physicalDevice,
9546 u32 queueFamilyIndex,
9547 platform.xcb_connection_t* connection,
9548 platform.xcb_visualid_t visual_id) {
9549 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
9550 return ?
9551}
9552
Jesse Hallad250842017-03-10 18:35:38 -08009553@extension("VK_KHR_wayland_surface") // 7
Jesse Hall1356b0d2015-11-23 17:24:58 -08009554cmd VkResult vkCreateWaylandSurfaceKHR(
9555 VkInstance instance,
Jesse Hallf9fa9a52016-01-08 16:08:51 -08009556 const VkWaylandSurfaceCreateInfoKHR* pCreateInfo,
Jesse Hall0e74f002015-11-30 11:37:59 -08009557 const VkAllocationCallbacks* pAllocator,
Jesse Hall1356b0d2015-11-23 17:24:58 -08009558 VkSurfaceKHR* pSurface) {
9559 instanceObject := GetInstance(instance)
9560 return ?
9561}
9562
Jesse Hallad250842017-03-10 18:35:38 -08009563@extension("VK_KHR_wayland_surface") // 7
Jesse Halla6429252015-11-29 18:59:42 -08009564cmd VkBool32 vkGetPhysicalDeviceWaylandPresentationSupportKHR(
9565 VkPhysicalDevice physicalDevice,
9566 u32 queueFamilyIndex,
9567 platform.wl_display* display) {
9568 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
9569 return ?
9570}
9571
Jesse Hallad250842017-03-10 18:35:38 -08009572@extension("VK_KHR_mir_surface") // 8
Jesse Hall1356b0d2015-11-23 17:24:58 -08009573cmd VkResult vkCreateMirSurfaceKHR(
9574 VkInstance instance,
Jesse Hallf9fa9a52016-01-08 16:08:51 -08009575 const VkMirSurfaceCreateInfoKHR* pCreateInfo,
Jesse Hall0e74f002015-11-30 11:37:59 -08009576 const VkAllocationCallbacks* pAllocator,
Jesse Hall1356b0d2015-11-23 17:24:58 -08009577 VkSurfaceKHR* pSurface) {
9578 instanceObject := GetInstance(instance)
9579 return ?
9580}
9581
Jesse Hallad250842017-03-10 18:35:38 -08009582@extension("VK_KHR_mir_surface") // 8
Jesse Halla6429252015-11-29 18:59:42 -08009583cmd VkBool32 vkGetPhysicalDeviceMirPresentationSupportKHR(
9584 VkPhysicalDevice physicalDevice,
9585 u32 queueFamilyIndex,
9586 platform.MirConnection* connection) {
9587 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
9588 return ?
9589}
9590
Jesse Hallad250842017-03-10 18:35:38 -08009591@extension("VK_KHR_android_surface") // 9
Jesse Hall1356b0d2015-11-23 17:24:58 -08009592cmd VkResult vkCreateAndroidSurfaceKHR(
9593 VkInstance instance,
Jesse Hallf9fa9a52016-01-08 16:08:51 -08009594 const VkAndroidSurfaceCreateInfoKHR* pCreateInfo,
Jesse Hall0e74f002015-11-30 11:37:59 -08009595 const VkAllocationCallbacks* pAllocator,
Jesse Hall1356b0d2015-11-23 17:24:58 -08009596 VkSurfaceKHR* pSurface) {
9597 instanceObject := GetInstance(instance)
9598 return ?
9599}
9600
Jesse Hallad250842017-03-10 18:35:38 -08009601@extension("VK_KHR_win32_surface") // 10
Jesse Hall1356b0d2015-11-23 17:24:58 -08009602cmd VkResult vkCreateWin32SurfaceKHR(
9603 VkInstance instance,
Jesse Hallf9fa9a52016-01-08 16:08:51 -08009604 const VkWin32SurfaceCreateInfoKHR* pCreateInfo,
Jesse Hall0e74f002015-11-30 11:37:59 -08009605 const VkAllocationCallbacks* pAllocator,
Jesse Hall1356b0d2015-11-23 17:24:58 -08009606 VkSurfaceKHR* pSurface) {
9607 instanceObject := GetInstance(instance)
9608 return ?
9609}
9610
Jesse Hallad250842017-03-10 18:35:38 -08009611@extension("VK_KHR_win32_surface") // 10
Jesse Halla6429252015-11-29 18:59:42 -08009612cmd VkResult vkGetPhysicalDeviceWin32PresentationSupportKHR(
9613 VkPhysicalDevice physicalDevice,
9614 u32 queueFamilyIndex) {
Jesse Halle2948d82016-02-25 04:19:32 -08009615 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
Jesse Halla6429252015-11-29 18:59:42 -08009616 return ?
9617}
9618
Jesse Hallad250842017-03-10 18:35:38 -08009619@extension("VK_ANDROID_native_buffer") // 11
Jesse Halld1abd742017-02-09 21:45:51 -08009620@optional
Chia-I Wub262ddc2016-03-22 07:38:20 +08009621cmd VkResult vkGetSwapchainGrallocUsageANDROID(
9622 VkDevice device,
9623 VkFormat format,
9624 VkImageUsageFlags imageUsage,
Jesse Halld1abd742017-02-09 21:45:51 -08009625 s32* grallocUsage) {
Chia-I Wub262ddc2016-03-22 07:38:20 +08009626 return ?
9627}
9628
Jesse Hallad250842017-03-10 18:35:38 -08009629@extension("VK_ANDROID_native_buffer") // 11
Jesse Halld1abd742017-02-09 21:45:51 -08009630@optional
Chris Forbes8e4438b2016-12-07 16:26:49 +13009631cmd VkResult vkGetSwapchainGrallocUsage2ANDROID(
9632 VkDevice device,
9633 VkFormat format,
9634 VkImageUsageFlags imageUsage,
9635 VkSwapchainImageUsageFlagsANDROID swapchainImageUsage,
Jesse Halld1abd742017-02-09 21:45:51 -08009636 u64* grallocConsumerUsage,
9637 u64* grallocProducerUsage) {
Chris Forbes8e4438b2016-12-07 16:26:49 +13009638 return ?
9639}
9640
Jesse Hallad250842017-03-10 18:35:38 -08009641@extension("VK_ANDROID_native_buffer") // 11
Chia-I Wub262ddc2016-03-22 07:38:20 +08009642cmd VkResult vkAcquireImageANDROID(
9643 VkDevice device,
9644 VkImage image,
9645 int nativeFenceFd,
9646 VkSemaphore semaphore,
9647 VkFence fence) {
9648 return ?
9649}
9650
Jesse Hallad250842017-03-10 18:35:38 -08009651@extension("VK_ANDROID_native_buffer") // 11
Chia-I Wub262ddc2016-03-22 07:38:20 +08009652cmd VkResult vkQueueSignalReleaseImageANDROID(
9653 VkQueue queue,
9654 u32 waitSemaphoreCount,
9655 const VkSemaphore* pWaitSemaphores,
9656 VkImage image,
9657 int* pNativeFenceFd) {
9658 return ?
9659}
9660
Jesse Hallad250842017-03-10 18:35:38 -08009661@extension("VK_EXT_debug_report") // 12
9662@external type void* PFN_vkDebugReportCallbackEXT
9663@extension("VK_EXT_debug_report") // 12
9664@pfn cmd VkBool32 vkDebugReportCallbackEXT(
9665 VkDebugReportFlagsEXT flags,
9666 VkDebugReportObjectTypeEXT objectType,
9667 u64 object,
9668 platform.size_t location,
9669 s32 messageCode,
9670 const char* pLayerPrefix,
9671 const char* pMessage,
9672 void* pUserData) {
9673 return ?
9674}
9675
9676@extension("VK_EXT_debug_report") // 12
9677cmd VkResult vkCreateDebugReportCallbackEXT(
9678 VkInstance instance,
9679 const VkDebugReportCallbackCreateInfoEXT* pCreateInfo,
9680 const VkAllocationCallbacks* pAllocator,
9681 VkDebugReportCallbackEXT* pCallback) {
9682 return ?
9683}
9684
9685@extension("VK_EXT_debug_report") // 12
9686cmd void vkDestroyDebugReportCallbackEXT(
9687 VkInstance instance,
9688 VkDebugReportCallbackEXT callback,
9689 const VkAllocationCallbacks* pAllocator) {
9690}
9691
9692@extension("VK_EXT_debug_report") // 12
9693cmd void vkDebugReportMessageEXT(
9694 VkInstance instance,
9695 VkDebugReportFlagsEXT flags,
9696 VkDebugReportObjectTypeEXT objectType,
9697 u64 object,
9698 platform.size_t location,
9699 s32 messageCode,
9700 const char* pLayerPrefix,
9701 const char* pMessage) {
9702}
9703
9704@extension("VK_EXT_debug_marker") // 23
9705cmd VkResult vkDebugMarkerSetObjectTagEXT(
9706 VkDevice device,
Jesse Hall77726222017-09-19 14:49:27 -05009707 const VkDebugMarkerObjectTagInfoEXT* pTagInfo) {
Jesse Hallad250842017-03-10 18:35:38 -08009708 return ?
9709}
9710
9711@extension("VK_EXT_debug_marker") // 23
9712cmd VkResult vkDebugMarkerSetObjectNameEXT(
9713 VkDevice device,
Jesse Hall77726222017-09-19 14:49:27 -05009714 const VkDebugMarkerObjectNameInfoEXT* pNameInfo) {
Jesse Hallad250842017-03-10 18:35:38 -08009715 return ?
9716}
9717
9718@extension("VK_EXT_debug_marker") // 23
9719cmd void vkCmdDebugMarkerBeginEXT(
9720 VkCommandBuffer commandBuffer,
Jesse Hall77726222017-09-19 14:49:27 -05009721 const VkDebugMarkerMarkerInfoEXT* pMarkerInfo) {
Jesse Hallad250842017-03-10 18:35:38 -08009722}
9723
9724@extension("VK_EXT_debug_marker") // 23
9725cmd void vkCmdDebugMarkerEndEXT(
9726 VkCommandBuffer commandBuffer) {
9727}
9728
9729@extension("VK_EXT_debug_marker") // 23
9730cmd void vkCmdDebugMarkerInsertEXT(
9731 VkCommandBuffer commandBuffer,
Jesse Hall77726222017-09-19 14:49:27 -05009732 const VkDebugMarkerMarkerInfoEXT* pMarkerInfo) {
Jesse Hallad250842017-03-10 18:35:38 -08009733}
9734
9735@extension("VK_AMD_draw_indirect_count") // 34
9736cmd void vkCmdDrawIndirectCountAMD(
9737 VkCommandBuffer commandBuffer,
9738 VkBuffer buffer,
9739 VkDeviceSize offset,
9740 VkBuffer countBuffer,
9741 VkDeviceSize countBufferOffset,
9742 u32 maxDrawCount,
9743 u32 stride) {
9744}
9745
9746@extension("VK_AMD_draw_indirect_count") // 34
9747cmd void vkCmdDrawIndexedIndirectCountAMD(
9748 VkCommandBuffer commandBuffer,
9749 VkBuffer buffer,
9750 VkDeviceSize offset,
9751 VkBuffer countBuffer,
9752 VkDeviceSize countBufferOffset,
9753 u32 maxDrawCount,
9754 u32 stride) {
9755}
9756
Jesse Hall8c954d32018-01-17 22:06:20 -08009757@extension("VK_AMD_shader_info") // 43
9758cmd VkResult vkGetShaderInfoAMD(
9759 VkDevice device,
9760 VkPipeline pipeline,
9761 VkShaderStageFlagBits shaderStage,
9762 VkShaderInfoTypeAMD infoType,
9763 platform.size_t* pInfoSize,
9764 void* pInfo) {
9765 return ?
9766}
9767
Jesse Hallad250842017-03-10 18:35:38 -08009768@extension("VK_NV_external_memory_capabilities") // 56
9769cmd VkResult vkGetPhysicalDeviceExternalImageFormatPropertiesNV(
9770 VkPhysicalDevice physicalDevice,
9771 VkFormat format,
9772 VkImageType type,
9773 VkImageTiling tiling,
9774 VkImageUsageFlags usage,
9775 VkImageCreateFlags flags,
9776 VkExternalMemoryHandleTypeFlagsNV externalHandleType,
9777 VkExternalImageFormatPropertiesNV* pExternalImageFormatProperties) {
9778 return ?
9779}
9780
9781@extension("VK_NV_external_memory_win32") // 58
9782cmd VkResult vkGetMemoryWin32HandleNV(
9783 VkDevice device,
9784 VkDeviceMemory memory,
9785 VkExternalMemoryHandleTypeFlagsNV handleType,
9786 platform.HANDLE* pHandle) {
9787 return ?
9788}
9789
9790@extension("VK_KHR_get_physical_device_properties2") // 60
9791cmd void vkGetPhysicalDeviceFeatures2KHR(
9792 VkPhysicalDevice physicalDevice,
9793 VkPhysicalDeviceFeatures2KHR* pFeatures) {
9794}
9795
9796@extension("VK_KHR_get_physical_device_properties2") // 60
9797cmd void vkGetPhysicalDeviceProperties2KHR(
9798 VkPhysicalDevice physicalDevice,
9799 VkPhysicalDeviceProperties2KHR* pProperties) {
9800}
9801
9802@extension("VK_KHR_get_physical_device_properties2") // 60
9803cmd void vkGetPhysicalDeviceFormatProperties2KHR(
9804 VkPhysicalDevice physicalDevice,
9805 VkFormat format,
9806 VkFormatProperties2KHR* pFormatProperties) {
9807}
9808
9809@extension("VK_KHR_get_physical_device_properties2") // 60
9810cmd VkResult vkGetPhysicalDeviceImageFormatProperties2KHR(
9811 VkPhysicalDevice physicalDevice,
9812 const VkPhysicalDeviceImageFormatInfo2KHR* pImageFormatInfo,
9813 VkImageFormatProperties2KHR* pImageFormatProperties) {
9814 return ?
9815}
9816
9817@extension("VK_KHR_get_physical_device_properties2") // 60
9818cmd void vkGetPhysicalDeviceQueueFamilyProperties2KHR(
9819 VkPhysicalDevice physicalDevice,
9820 u32* pQueueFamilyPropertyCount,
9821 VkQueueFamilyProperties2KHR* pQueueFamilyProperties) {
9822}
9823
9824@extension("VK_KHR_get_physical_device_properties2") // 60
9825cmd void vkGetPhysicalDeviceMemoryProperties2KHR(
9826 VkPhysicalDevice physicalDevice,
9827 VkPhysicalDeviceMemoryProperties2KHR* pMemoryProperties) {
9828}
9829
9830@extension("VK_KHR_get_physical_device_properties2") // 60
9831cmd void vkGetPhysicalDeviceSparseImageFormatProperties2KHR(
9832 VkPhysicalDevice physicalDevice,
9833 const VkPhysicalDeviceSparseImageFormatInfo2KHR* pFormatInfo,
9834 u32* pPropertyCount,
9835 VkSparseImageFormatProperties2KHR* pProperties) {
9836}
9837
Daniel Koch09f7bf92017-10-05 00:26:58 -04009838@extension("VK_KHR_device_group") // 61
9839cmd void vkGetDeviceGroupPeerMemoryFeaturesKHR(
Jesse Hallad250842017-03-10 18:35:38 -08009840 VkDevice device,
9841 u32 heapIndex,
9842 u32 localDeviceIndex,
9843 u32 remoteDeviceIndex,
Daniel Koch09f7bf92017-10-05 00:26:58 -04009844 VkPeerMemoryFeatureFlagsKHR* pPeerMemoryFeatures) {
Jesse Hallad250842017-03-10 18:35:38 -08009845}
9846
Daniel Koch09f7bf92017-10-05 00:26:58 -04009847@extension("VK_KHR_device_group") // 61
9848cmd void vkCmdSetDeviceMaskKHR(
Jesse Hallad250842017-03-10 18:35:38 -08009849 VkCommandBuffer commandBuffer,
9850 u32 deviceMask) {
9851}
9852
Jesse Hallad250842017-03-10 18:35:38 -08009853
Daniel Koch09f7bf92017-10-05 00:26:58 -04009854@extension("VK_KHR_device_group") // 61
9855cmd void vkCmdDispatchBaseKHR(
Jesse Hallad250842017-03-10 18:35:38 -08009856 VkCommandBuffer commandBuffer,
9857 u32 baseGroupX,
9858 u32 baseGroupY,
9859 u32 baseGroupZ,
9860 u32 groupCountX,
9861 u32 groupCountY,
9862 u32 groupCountZ) {
9863}
9864
Jesse Hallad250842017-03-10 18:35:38 -08009865@extension("VK_NN_vi_surface") // 63
9866cmd VkResult vkCreateViSurfaceNN(
9867 VkInstance instance,
9868 const VkViSurfaceCreateInfoNN* pCreateInfo,
9869 const VkAllocationCallbacks* pAllocator,
9870 VkSurfaceKHR* pSurface) {
9871 return ?
9872}
9873
9874@extension("VK_KHR_maintenance1") // 70
9875cmd void vkTrimCommandPoolKHR(
9876 VkDevice device,
9877 VkCommandPool commandPool,
9878 VkCommandPoolTrimFlagsKHR flags) {
9879}
9880
Daniel Koch09f7bf92017-10-05 00:26:58 -04009881@extension("VK_KHR_device_group_creation") // 71
9882@threadSafety("system")
9883cmd VkResult vkEnumeratePhysicalDeviceGroupsKHR(
Jesse Hallad250842017-03-10 18:35:38 -08009884 VkInstance instance,
9885 u32* pPhysicalDeviceGroupCount,
Daniel Koch09f7bf92017-10-05 00:26:58 -04009886 VkPhysicalDeviceGroupPropertiesKHR* pPhysicalDeviceGroupProperties) {
9887 instanceObject := GetInstance(instance)
9888
9889 physicalDeviceGroupCount := as!u32(?)
9890 pPhysicalDeviceGroupCount[0] = physicalDeviceGroupCount
9891 physicalDevices := pPhysicalDeviceGroupProperties[0:physicalDeviceGroupCount]
9892
9893 for i in (0 .. physicalDeviceGroupCount) {
9894 physicalDevice := ?
9895 physicalDevices[i] = physicalDevice
9896 if !(physicalDevice in State.PhysicalDevices) {
9897 State.PhysicalDevices[physicalDevice] = new!PhysicalDeviceObject(instance: instance)
9898 }
9899 }
9900
Jesse Hallad250842017-03-10 18:35:38 -08009901 return ?
9902}
9903
Jesse Hall9492f992017-08-28 12:10:06 -07009904@extension("VK_KHR_external_memory_capabilities") // 72
9905cmd void vkGetPhysicalDeviceExternalBufferPropertiesKHR(
Jesse Hallad250842017-03-10 18:35:38 -08009906 VkPhysicalDevice physicalDevice,
Jesse Hall9492f992017-08-28 12:10:06 -07009907 const VkPhysicalDeviceExternalBufferInfoKHR* pExternalBufferInfo,
9908 VkExternalBufferPropertiesKHR* pExternalBufferProperties) {
Jesse Hallad250842017-03-10 18:35:38 -08009909}
9910
Jesse Hall9492f992017-08-28 12:10:06 -07009911@extension("VK_KHR_external_memory_win32") // 74
9912cmd VkResult vkGetMemoryWin32HandleKHR(
Jesse Hallad250842017-03-10 18:35:38 -08009913 VkDevice device,
Jesse Hall9492f992017-08-28 12:10:06 -07009914 const VkMemoryGetWin32HandleInfoKHR* pGetWin32HandleInfo,
Jesse Hallad250842017-03-10 18:35:38 -08009915 platform.HANDLE* pHandle) {
9916 return ?
9917}
9918
Jesse Hall9492f992017-08-28 12:10:06 -07009919@extension("VK_KHR_external_memory_win32") // 74
9920cmd VkResult vkGetMemoryWin32HandlePropertiesKHR(
Jesse Hallad250842017-03-10 18:35:38 -08009921 VkDevice device,
Jesse Hall9492f992017-08-28 12:10:06 -07009922 VkExternalMemoryHandleTypeFlagBitsKHR handleType,
Jesse Hallad250842017-03-10 18:35:38 -08009923 platform.HANDLE handle,
Jesse Hall9492f992017-08-28 12:10:06 -07009924 VkMemoryWin32HandlePropertiesKHR* pMemoryWin32HandleProperties) {
Jesse Hallad250842017-03-10 18:35:38 -08009925 return ?
9926}
9927
Jesse Hall9492f992017-08-28 12:10:06 -07009928@extension("VK_KHR_external_memory_fd") // 75
9929cmd VkResult vkGetMemoryFdKHR(
Jesse Hallad250842017-03-10 18:35:38 -08009930 VkDevice device,
Jesse Hall9492f992017-08-28 12:10:06 -07009931 const VkMemoryGetFdInfoKHR* pGetFdInfo,
Jesse Hallad250842017-03-10 18:35:38 -08009932 s32* pFd) {
9933 return ?
9934}
9935
Jesse Hall9492f992017-08-28 12:10:06 -07009936@extension("VK_KHR_external_memory_fd") // 75
9937cmd VkResult vkGetMemoryFdPropertiesKHR(
Jesse Hallad250842017-03-10 18:35:38 -08009938 VkDevice device,
Jesse Hall9492f992017-08-28 12:10:06 -07009939 VkExternalMemoryHandleTypeFlagBitsKHR handleType,
Jesse Hallad250842017-03-10 18:35:38 -08009940 s32 fd,
Jesse Hall9492f992017-08-28 12:10:06 -07009941 VkMemoryFdPropertiesKHR* pMemoryFdProperties) {
Jesse Hallad250842017-03-10 18:35:38 -08009942 return ?
9943}
9944
Jesse Hall9492f992017-08-28 12:10:06 -07009945@extension("VK_KHR_external_semaphore_capabilities") // 77
9946cmd void vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(
Jesse Hallad250842017-03-10 18:35:38 -08009947 VkPhysicalDevice physicalDevice,
Jesse Hall9492f992017-08-28 12:10:06 -07009948 const VkPhysicalDeviceExternalSemaphoreInfoKHR* pExternalSemaphoreInfo,
9949 VkExternalSemaphorePropertiesKHR* pExternalSemaphoreProperties) {
Jesse Hallad250842017-03-10 18:35:38 -08009950}
9951
Jesse Hall9492f992017-08-28 12:10:06 -07009952@extension("VK_KHR_external_semaphore_win32") // 79
9953cmd VkResult vkImportSemaphoreWin32HandleKHR(
Jesse Hallad250842017-03-10 18:35:38 -08009954 VkDevice device,
Jesse Hall9492f992017-08-28 12:10:06 -07009955 const VkImportSemaphoreWin32HandleInfoKHR* pImportSemaphoreWin32HandleInfo) {
Jesse Hallad250842017-03-10 18:35:38 -08009956 return ?
9957}
9958
Jesse Hall9492f992017-08-28 12:10:06 -07009959@extension("VK_KHR_external_semaphore_win32") // 79
9960cmd VkResult vkGetSemaphoreWin32HandleKHR(
Jesse Hallad250842017-03-10 18:35:38 -08009961 VkDevice device,
Jesse Hall9492f992017-08-28 12:10:06 -07009962 const VkSemaphoreGetWin32HandleInfoKHR* pGetWin32HandleInfo,
Jesse Hallad250842017-03-10 18:35:38 -08009963 platform.HANDLE* pHandle) {
9964 return ?
9965}
9966
Jesse Hall9492f992017-08-28 12:10:06 -07009967@extension("VK_KHR_external_semaphore_fd") // 80
9968cmd VkResult vkImportSemaphoreFdKHR(
Jesse Hallad250842017-03-10 18:35:38 -08009969 VkDevice device,
Jesse Hall9492f992017-08-28 12:10:06 -07009970 const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo) {
Jesse Hallad250842017-03-10 18:35:38 -08009971 return ?
9972}
9973
Jesse Hall9492f992017-08-28 12:10:06 -07009974@extension("VK_KHR_external_semaphore_fd") // 80
9975cmd VkResult vkGetSemaphoreFdKHR(
Jesse Hallad250842017-03-10 18:35:38 -08009976 VkDevice device,
Jesse Hall9492f992017-08-28 12:10:06 -07009977 const VkSemaphoreGetFdInfoKHR* pGetFdInfo,
Jesse Hallad250842017-03-10 18:35:38 -08009978 s32* pFd) {
9979 return ?
9980}
9981
9982@extension("VK_KHR_push_descriptor") // 81
9983cmd void vkCmdPushDescriptorSetKHR(
9984 VkCommandBuffer commandBuffer,
9985 VkPipelineBindPoint pipelineBindPoint,
9986 VkPipelineLayout layout,
9987 u32 set,
9988 u32 descriptorWriteCount,
9989 const VkWriteDescriptorSet* pDescriptorWrites) {
9990}
9991
Jesse Halla13a3cf2018-07-09 15:51:52 -07009992@extension("VK_EXT_conditional_rendering") // 82
9993cmd void vkCmdBeginConditionalRenderingEXT(
9994 VkCommandBuffer commandBuffer,
9995 const VkConditionalRenderingBeginInfoEXT* pConditionalRenderingBegin) {
9996}
9997
9998@extension("VK_EXT_conditional_rendering") // 82
9999cmd void vkCmdEndConditionalRenderingEXT(
10000 VkCommandBuffer commandBuffer) {
10001}
10002
Jesse Hallad250842017-03-10 18:35:38 -080010003@extension("VK_KHR_descriptor_update_template") // 86
10004cmd VkResult vkCreateDescriptorUpdateTemplateKHR(
10005 VkDevice device,
10006 const VkDescriptorUpdateTemplateCreateInfoKHR* pCreateInfo,
10007 const VkAllocationCallbacks* pAllocator,
10008 VkDescriptorUpdateTemplateKHR* pDescriptorUpdateTemplate) {
10009 return ?
10010}
10011
10012@extension("VK_KHR_descriptor_update_template") // 86
10013cmd void vkDestroyDescriptorUpdateTemplateKHR(
10014 VkDevice device,
10015 VkDescriptorUpdateTemplateKHR descriptorUpdateTemplate,
10016 const VkAllocationCallbacks* pAllocator) {
10017}
10018
10019@extension("VK_KHR_descriptor_update_template") // 86
10020cmd void vkUpdateDescriptorSetWithTemplateKHR(
10021 VkDevice device,
10022 VkDescriptorSet descriptorSet,
10023 VkDescriptorUpdateTemplateKHR descriptorUpdateTemplate,
10024 const void* pData) {
10025}
10026
10027@extension("VK_KHR_descriptor_update_template") // 86
10028cmd void vkCmdPushDescriptorSetWithTemplateKHR(
10029 VkCommandBuffer commandBuffer,
10030 VkDescriptorUpdateTemplateKHR descriptorUpdateTemplate,
10031 VkPipelineLayout layout,
10032 u32 set,
10033 const void* pData) {
10034}
10035
10036@extension("VK_NVX_device_generated_commands") // 87
10037cmd void vkCmdProcessCommandsNVX(
10038 VkCommandBuffer commandBuffer,
10039 const VkCmdProcessCommandsInfoNVX* pProcessCommandsInfo) {
10040}
10041
10042@extension("VK_NVX_device_generated_commands") // 87
10043cmd void vkCmdReserveSpaceForCommandsNVX(
10044 VkCommandBuffer commandBuffer,
10045 const VkCmdReserveSpaceForCommandsInfoNVX* pReserveSpaceInfo) {
10046}
10047
10048@extension("VK_NVX_device_generated_commands") // 87
10049cmd VkResult vkCreateIndirectCommandsLayoutNVX(
10050 VkDevice device,
10051 const VkIndirectCommandsLayoutCreateInfoNVX* pCreateInfo,
10052 const VkAllocationCallbacks* pAllocator,
10053 VkIndirectCommandsLayoutNVX* pIndirectCommandsLayout) {
10054 return ?
10055}
10056
10057@extension("VK_NVX_device_generated_commands") // 87
10058cmd void vkDestroyIndirectCommandsLayoutNVX(
10059 VkDevice device,
10060 VkIndirectCommandsLayoutNVX indirectCommandsLayout,
10061 const VkAllocationCallbacks* pAllocator) {
10062}
10063
10064@extension("VK_NVX_device_generated_commands") // 87
10065cmd VkResult vkCreateObjectTableNVX(
10066 VkDevice device,
10067 const VkObjectTableCreateInfoNVX* pCreateInfo,
10068 const VkAllocationCallbacks* pAllocator,
10069 VkObjectTableNVX* pObjectTable) {
10070 return ?
10071}
10072
10073@extension("VK_NVX_device_generated_commands") // 87
10074cmd void vkDestroyObjectTableNVX(
10075 VkDevice device,
10076 VkObjectTableNVX objectTable,
10077 const VkAllocationCallbacks* pAllocator) {
10078}
10079
10080@extension("VK_NVX_device_generated_commands") // 87
10081cmd VkResult vkRegisterObjectsNVX(
10082 VkDevice device,
10083 VkObjectTableNVX objectTable,
10084 u32 objectCount,
10085 const VkObjectTableEntryNVX* const* ppObjectTableEntries,
10086 const u32* pObjectIndices) {
10087 return ?
10088}
10089
10090@extension("VK_NVX_device_generated_commands") // 87
10091cmd VkResult vkUnregisterObjectsNVX(
10092 VkDevice device,
10093 VkObjectTableNVX objectTable,
10094 u32 objectCount,
10095 const VkObjectEntryTypeNVX* pObjectEntryTypes,
10096 const u32* pObjectIndices) {
10097 return ?
10098}
10099
10100@extension("VK_NVX_device_generated_commands") // 87
10101cmd void vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX(
10102 VkPhysicalDevice physicalDevice,
10103 VkDeviceGeneratedCommandsFeaturesNVX* pFeatures,
10104 VkDeviceGeneratedCommandsLimitsNVX* pLimits) {
10105}
10106
10107@extension("VK_NV_clip_space_w_scaling") // 88
10108cmd void vkCmdSetViewportWScalingNV(
10109 VkCommandBuffer commandBuffer,
10110 u32 firstViewport,
10111 u32 viewportCount,
10112 const VkViewportWScalingNV* pViewportWScalings) {
10113}
10114
10115@extension("VK_EXT_direct_mode_display") // 89
10116cmd VkResult vkReleaseDisplayEXT(
10117 VkPhysicalDevice physicalDevice,
10118 VkDisplayKHR display) {
10119 return ?
10120}
10121
10122@extension("VK_EXT_acquire_xlib_display") // 90
10123cmd VkResult vkAcquireXlibDisplayEXT(
10124 VkPhysicalDevice physicalDevice,
10125 platform.Display* dpy,
10126 VkDisplayKHR display) {
10127 return ?
10128}
10129
10130@extension("VK_EXT_acquire_xlib_display") // 90
10131cmd VkResult vkGetRandROutputDisplayEXT(
10132 VkPhysicalDevice physicalDevice,
10133 platform.Display* dpy,
10134 platform.RROutput rrOutput,
10135 VkDisplayKHR* pDisplay) {
10136 return ?
10137}
10138
10139@extension("VK_EXT_display_surface_counter") // 91
10140cmd VkResult vkGetPhysicalDeviceSurfaceCapabilities2EXT(
10141 VkPhysicalDevice physicalDevice,
10142 VkSurfaceKHR surface,
10143 VkSurfaceCapabilities2EXT* pSurfaceCapabilities) {
10144 return ?
10145}
10146
10147@extension("VK_EXT_display_control") // 92
10148cmd VkResult vkDisplayPowerControlEXT(
10149 VkDevice device,
10150 VkDisplayKHR display,
10151 const VkDisplayPowerInfoEXT* pDisplayPowerInfo) {
10152 return ?
10153}
10154
10155@extension("VK_EXT_display_control") // 92
10156cmd VkResult vkRegisterDeviceEventEXT(
10157 VkDevice device,
10158 const VkDeviceEventInfoEXT* pDeviceEventInfo,
10159 const VkAllocationCallbacks* pAllocator,
10160 VkFence* pFence) {
10161 return ?
10162}
10163
10164@extension("VK_EXT_display_control") // 92
10165cmd VkResult vkRegisterDisplayEventEXT(
10166 VkDevice device,
10167 VkDisplayKHR display,
10168 const VkDisplayEventInfoEXT* pDisplayEventInfo,
10169 const VkAllocationCallbacks* pAllocator,
10170 VkFence* pFence) {
10171 return ?
10172}
10173
10174@extension("VK_EXT_display_control") // 92
10175cmd VkResult vkGetSwapchainCounterEXT(
10176 VkDevice device,
10177 VkSwapchainKHR swapchain,
10178 VkSurfaceCounterFlagBitsEXT counter,
10179 u64* pCounterValue) {
10180 return ?
10181}
10182
10183@extension("VK_GOOGLE_display_timing") // 93
Ian Elliott4c8bb2a2016-12-29 11:07:26 -070010184cmd VkResult vkGetRefreshCycleDurationGOOGLE(
Jesse Hallfdc8ab32017-03-10 21:01:57 -080010185 VkDevice device,
10186 VkSwapchainKHR swapchain,
10187 VkRefreshCycleDurationGOOGLE* pDisplayTimingProperties) {
Ian Elliott4c8bb2a2016-12-29 11:07:26 -070010188 deviceObject := GetDevice(device)
10189 swapchainObject := GetSwapchain(swapchain)
10190
10191 displayTimingProperties := ?
10192 pDisplayTimingProperties[0] = displayTimingProperties
10193
10194 return ?
10195}
10196
Jesse Hallad250842017-03-10 18:35:38 -080010197@extension("VK_GOOGLE_display_timing") // 93
Ian Elliott4c8bb2a2016-12-29 11:07:26 -070010198cmd VkResult vkGetPastPresentationTimingGOOGLE(
Jesse Hallfdc8ab32017-03-10 21:01:57 -080010199 VkDevice device,
10200 VkSwapchainKHR swapchain,
10201 u32* pPresentationTimingCount,
10202 VkPastPresentationTimingGOOGLE* pPresentationTimings) {
Ian Elliott4c8bb2a2016-12-29 11:07:26 -070010203 return ?
10204}
10205
Jesse Hallad250842017-03-10 18:35:38 -080010206@extension("VK_EXT_discard_rectangles") // 100
10207cmd void vkCmdSetDiscardRectangleEXT(
Jesse Hall26763382016-05-20 07:13:52 -070010208 VkCommandBuffer commandBuffer,
Jesse Hallad250842017-03-10 18:35:38 -080010209 u32 firstDiscardRectangle,
10210 u32 discardRectangleCount,
10211 const VkRect2D* pDiscardRectangles) {
Jesse Hall26763382016-05-20 07:13:52 -070010212}
10213
Jesse Hallad250842017-03-10 18:35:38 -080010214@extension("VK_EXT_hdr_metadata") // 106
Jesse Hall889cd9a2017-02-25 22:12:23 -080010215cmd void vkSetHdrMetadataEXT(
Jesse Hallfdc8ab32017-03-10 21:01:57 -080010216 VkDevice device,
10217 u32 swapchainCount,
10218 const VkSwapchainKHR* pSwapchains,
10219 const VkHdrMetadataEXT* pMetadata) {
Jesse Hall889cd9a2017-02-25 22:12:23 -080010220}
10221
Jesse Halla13a3cf2018-07-09 15:51:52 -070010222@extension("VK_KHR_create_renderpass2") // 110
10223cmd VkResult vkCreateRenderPass2KHR(
10224 VkDevice device,
10225 const VkRenderPassCreateInfo2KHR* pCreateInfo,
10226 const VkAllocationCallbacks* pAllocator,
10227 VkRenderPass* pRenderPass) {
10228 return ?
10229}
10230
10231@extension("VK_KHR_create_renderpass2") // 110
10232cmd void vkCmdBeginRenderPass2KHR(
10233 VkCommandBuffer commandBuffer,
10234 const VkRenderPassBeginInfo* pRenderPassBegin,
10235 const VkSubpassBeginInfoKHR* pSubpassBeginInfo) {
10236}
10237
10238@extension("VK_KHR_create_renderpass2") // 110
10239cmd void vkCmdNextSubpass2KHR(
10240 VkCommandBuffer commandBuffer,
10241 const VkSubpassBeginInfoKHR* pSubpassBeginInfo,
10242 const VkSubpassEndInfoKHR* pSubpassEndInfo) {
10243}
10244
10245@extension("VK_KHR_create_renderpass2") // 110
10246cmd void vkCmdEndRenderPass2KHR(
10247 VkCommandBuffer commandBuffer,
10248 const VkSubpassEndInfoKHR* pSubpassEndInfo) {
10249}
10250
Jesse Hallad250842017-03-10 18:35:38 -080010251@extension("VK_KHR_shared_presentable_image") // 112
Chris Forbes2e12cb82017-01-18 11:45:17 +130010252cmd VkResult vkGetSwapchainStatusKHR(
10253 VkDevice device,
10254 VkSwapchainKHR swapchain) {
10255 return ?
10256}
10257
Jesse Hall9492f992017-08-28 12:10:06 -070010258@extension("VK_KHR_external_fence_capabilities") // 113
10259cmd void vkGetPhysicalDeviceExternalFencePropertiesKHR(
10260 VkPhysicalDevice physicalDevice,
10261 const VkPhysicalDeviceExternalFenceInfoKHR* pExternalFenceInfo,
10262 VkExternalFencePropertiesKHR* pExternalFenceProperties) {
10263}
10264
10265@extension("VK_KHR_external_fence_win32") // 115
10266cmd VkResult vkImportFenceWin32HandleKHR(
10267 VkDevice device,
10268 const VkImportFenceWin32HandleInfoKHR* pImportFenceWin32HandleInfo) {
10269 return ?
10270}
10271
10272@extension("VK_KHR_external_fence_win32") // 115
10273cmd VkResult vkGetFenceWin32HandleKHR(
10274 VkDevice device,
10275 const VkFenceGetWin32HandleInfoKHR* pGetWin32HandleInfo,
10276 platform.HANDLE* pHandle) {
10277 return ?
10278}
10279
10280@extension("VK_KHR_external_fence_fd") // 116
10281cmd VkResult vkImportFenceFdKHR(
10282 VkDevice device,
10283 const VkImportFenceFdInfoKHR* pImportFenceFdInfo) {
10284 return ?
10285}
10286
10287@extension("VK_KHR_external_fence_fd") // 116
10288cmd VkResult vkGetFenceFdKHR(
10289 VkDevice device,
10290 const VkFenceGetFdInfoKHR* pGetFdInfo,
10291 int* pFd) {
10292 return ?
10293}
10294
Jesse Hall05556b12017-05-18 17:40:25 -070010295@extension("VK_KHR_get_surface_capabilities2") // 120
Chris Forbese2d3ee12017-03-16 16:10:15 +130010296cmd VkResult vkGetPhysicalDeviceSurfaceCapabilities2KHR(
10297 VkPhysicalDevice physicalDevice,
10298 const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo,
10299 VkSurfaceCapabilities2KHR* pSurfaceCapabilities) {
10300 return ?
10301}
10302
Jesse Hall05556b12017-05-18 17:40:25 -070010303@extension("VK_KHR_get_surface_capabilities2") // 120
Chris Forbese2d3ee12017-03-16 16:10:15 +130010304cmd VkResult vkGetPhysicalDeviceSurfaceFormats2KHR(
10305 VkPhysicalDevice physicalDevice,
10306 const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo,
10307 u32* pSurfaceFormatCount,
10308 VkSurfaceFormat2KHR* pSurfaceFormats) {
10309 return ?
10310}
10311
Jesse Hall54f8d132018-04-18 08:16:59 -070010312@extension("VK_KHR_display_properties2") // 122
10313cmd VkResult vkGetPhysicalDeviceDisplayProperties2KHR(
10314 VkPhysicalDevice physicalDevice,
10315 u32* pPropertyCount,
10316 VkDisplayProperties2KHR* pProperties) {
10317 return ?
10318}
10319
10320@extension("VK_KHR_display_properties2") // 122
10321cmd VkResult vkGetPhysicalDeviceDisplayPlaneProperties2KHR(
10322 VkPhysicalDevice physicalDevice,
10323 u32* pPropertyCount,
10324 VkDisplayPlaneProperties2KHR* pProperties) {
10325 return ?
10326}
10327
10328@extension("VK_KHR_display_properties2") // 122
10329cmd VkResult vkGetDisplayModeProperties2KHR(
10330 VkPhysicalDevice physicalDevice,
10331 VkDisplayKHR display,
10332 u32* pPropertyCount,
10333 VkDisplayModeProperties2KHR* pProperties) {
10334 return ?
10335}
10336
10337@extension("VK_KHR_display_properties2") // 122
10338cmd VkResult vkGetDisplayPlaneCapabilities2KHR(
10339 VkPhysicalDevice physicalDevice,
10340 const VkDisplayPlaneInfo2KHR* pDisplayPlaneInfo,
10341 VkDisplayPlaneCapabilities2KHR* pCapabilities) {
10342 return ?
10343}
10344
Jesse Hallad250842017-03-10 18:35:38 -080010345@extension("VK_MVK_ios_surface") // 123
10346cmd VkResult vkCreateIOSSurfaceMVK(
10347 VkInstance instance,
10348 const VkIOSSurfaceCreateInfoMVK* pCreateInfo,
10349 const VkAllocationCallbacks* pAllocator,
10350 VkSurfaceKHR* pSurface) {
10351 return ?
10352}
10353
10354@extension("VK_MVK_macos_surface") // 124
10355cmd VkResult vkCreateMacOSSurfaceMVK(
10356 VkInstance instance,
10357 const VkMacOSSurfaceCreateInfoMVK* pCreateInfo,
10358 const VkAllocationCallbacks* pAllocator,
10359 VkSurfaceKHR* pSurface) {
10360 return ?
10361}
10362
Jesse Hall8c954d32018-01-17 22:06:20 -080010363@extension("VK_EXT_debug_utils") // 129
10364@external type void* PFN_vkDebugUtilsMessengerCallbackEXT
10365@extension("VK_EXT_debug_utils") // 129
10366@pfn cmd VkBool32 vkDebugUtilsMessengerCallbackEXT(
10367 VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity,
10368 VkDebugUtilsMessageTypeFlagsEXT messageType,
10369 const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData,
10370 void* pUserData) {
10371 return ?
10372}
10373
10374@extension("VK_EXT_debug_utils") // 129
10375cmd VkResult vkSetDebugUtilsObjectNameEXT(
10376 VkDevice device,
10377 const VkDebugUtilsObjectNameInfoEXT* pNameInfo) {
10378 return ?
10379}
Jesse Hall72e6a132018-04-06 13:00:44 -070010380
Jesse Hall8c954d32018-01-17 22:06:20 -080010381@extension("VK_EXT_debug_utils") // 129
10382cmd VkResult vkSetDebugUtilsObjectTagEXT(
10383 VkDevice device,
10384 const VkDebugUtilsObjectTagInfoEXT* pTagInfo) {
10385 return ?
10386}
Jesse Hall72e6a132018-04-06 13:00:44 -070010387
Jesse Hall8c954d32018-01-17 22:06:20 -080010388@extension("VK_EXT_debug_utils") // 129
10389cmd void vkQueueBeginDebugUtilsLabelEXT(
10390 VkQueue queue,
10391 const VkDebugUtilsLabelEXT* pLabelInfo) {
10392}
Jesse Hall72e6a132018-04-06 13:00:44 -070010393
Jesse Hall8c954d32018-01-17 22:06:20 -080010394@extension("VK_EXT_debug_utils") // 129
10395cmd void vkQueueEndDebugUtilsLabelEXT(VkQueue queue) {
10396}
Jesse Hall72e6a132018-04-06 13:00:44 -070010397
Jesse Hall8c954d32018-01-17 22:06:20 -080010398@extension("VK_EXT_debug_utils") // 129
10399cmd void vkQueueInsertDebugUtilsLabelEXT(
10400 VkQueue queue,
10401 const VkDebugUtilsLabelEXT* pLabelInfo) {
10402}
Jesse Hall72e6a132018-04-06 13:00:44 -070010403
Jesse Hall8c954d32018-01-17 22:06:20 -080010404@extension("VK_EXT_debug_utils") // 129
10405cmd void vkCmdBeginDebugUtilsLabelEXT(
10406 VkCommandBuffer commandBuffer,
10407 const VkDebugUtilsLabelEXT* pLabelInfo) {
10408}
Jesse Hall72e6a132018-04-06 13:00:44 -070010409
Jesse Hall8c954d32018-01-17 22:06:20 -080010410@extension("VK_EXT_debug_utils") // 129
10411cmd void vkCmdEndDebugUtilsLabelEXT(VkCommandBuffer commandBuffer) {
10412}
10413
10414@extension("VK_EXT_debug_utils") // 129
10415cmd void vkCmdInsertDebugUtilsLabelEXT(
10416 VkCommandBuffer commandBuffer,
10417 const VkDebugUtilsLabelEXT* pLabelInfo) {
10418}
10419
10420@extension("VK_EXT_debug_utils") // 129
10421cmd VkResult vkCreateDebugUtilsMessengerEXT(
10422 VkInstance instance,
10423 const VkDebugUtilsMessengerCreateInfoEXT* pCreateInfo,
10424 const VkAllocationCallbacks* pAllocator,
10425 VkDebugUtilsMessengerEXT* pMessenger) {
10426 return ?
10427}
10428
10429@extension("VK_EXT_debug_utils") // 129
10430cmd void vkDestroyDebugUtilsMessengerEXT(
10431 VkInstance instance,
10432 VkDebugUtilsMessengerEXT messenger,
10433 const VkAllocationCallbacks* pAllocator) {
10434}
10435
10436@extension("VK_EXT_debug_utils") // 129
10437cmd void vkSubmitDebugUtilsMessageEXT(
10438 VkInstance instance,
10439 VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity,
10440 VkDebugUtilsMessageTypeFlagsEXT messageTypes,
10441 const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData) {
10442}
10443
Jesse Hall36215a92018-01-18 15:04:37 -080010444@extension("VK_ANDROID_external_memory_android_hardware_buffer") // 130
10445@vulkan1_1 // extension requires 1.1, and should become non-optional when 1.1 does
10446cmd VkResult vkGetAndroidHardwareBufferPropertiesANDROID(
10447 VkDevice device,
10448 const platform.AHardwareBuffer* buffer,
10449 VkAndroidHardwareBufferPropertiesANDROID* pProperties) {
10450 return ?
10451}
10452
10453@extension("VK_ANDROID_external_memory_android_hardware_buffer") // 130
10454@vulkan1_1 // extension requires 1.1, and should become non-optional when 1.1 does
10455cmd VkResult vkGetMemoryAndroidHardwareBufferANDROID(
10456 VkDevice device,
10457 const VkMemoryGetAndroidHardwareBufferInfoANDROID* pInfo,
10458 platform.AHardwareBuffer** pBuffer) {
10459 return ?
10460}
10461
Jesse Hall77726222017-09-19 14:49:27 -050010462@extension("VK_EXT_sample_locations") // 144
10463cmd void vkCmdSetSampleLocationsEXT(
10464 VkCommandBuffer commandBuffer,
10465 const VkSampleLocationsInfoEXT* pSampleLocationsInfo) {
10466}
10467
10468@extension("VK_EXT_sample_locations") // 144
10469cmd void vkGetPhysicalDeviceMultisamplePropertiesEXT(
10470 VkPhysicalDevice physicalDevice,
10471 VkSampleCountFlagBits samples,
10472 VkMultisamplePropertiesEXT* pMultisampleProperties) {
10473}
10474
Jesse Hall9492f992017-08-28 12:10:06 -070010475@extension("VK_KHR_get_memory_requirements2") // 147
10476cmd void vkGetImageMemoryRequirements2KHR(
10477 VkDevice device,
10478 const VkImageMemoryRequirementsInfo2KHR* pInfo,
10479 VkMemoryRequirements2KHR* pMemoryRequirements) {
10480}
10481
10482@extension("VK_KHR_get_memory_requirements2") // 147
10483cmd void vkGetBufferMemoryRequirements2KHR(
10484 VkDevice device,
10485 const VkBufferMemoryRequirementsInfo2KHR* pInfo,
10486 VkMemoryRequirements2KHR* pMemoryRequirements) {
10487}
10488
10489@extension("VK_KHR_get_memory_requirements2") // 147
10490cmd void vkGetImageSparseMemoryRequirements2KHR(
10491 VkDevice device,
10492 const VkImageSparseMemoryRequirementsInfo2KHR* pInfo,
10493 u32* pSparseMemoryRequirementCount,
10494 VkSparseImageMemoryRequirements2KHR* pSparseMemoryRequirements) {
10495}
10496
Jesse Hall076f95d2017-09-20 11:34:47 -070010497@extension("VK_KHR_sampler_ycbcr_conversion") // 157
10498cmd VkResult vkCreateSamplerYcbcrConversionKHR(
10499 VkDevice device,
10500 const VkSamplerYcbcrConversionCreateInfoKHR* pCreateInfo,
10501 const VkAllocationCallbacks* pAllocator,
10502 VkSamplerYcbcrConversionKHR* pYcbcrConversion) {
10503 return ?
10504}
10505
10506@extension("VK_KHR_sampler_ycbcr_conversion") // 157
10507cmd void vkDestroySamplerYcbcrConversionKHR(
10508 VkDevice device,
10509 VkSamplerYcbcrConversionKHR ycbcrConversion,
10510 const VkAllocationCallbacks* pAllocator) {
10511}
10512
10513@extension("VK_KHR_bind_memory2") // 158
10514cmd VkResult vkBindBufferMemory2KHR(
10515 VkDevice device,
10516 u32 bindInfoCount,
10517 const VkBindBufferMemoryInfoKHR* pBindInfos) {
10518 return ?
10519}
10520
10521@extension("VK_KHR_bind_memory2") // 158
10522cmd VkResult vkBindImageMemory2KHR(
10523 VkDevice device,
10524 u32 bindInfoCount,
10525 const VkBindImageMemoryInfoKHR* pBindInfos) {
10526 return ?
10527}
10528
Jesse Hall77726222017-09-19 14:49:27 -050010529@extension("VK_EXT_validation_cache") // 161
10530cmd VkResult vkCreateValidationCacheEXT(
10531 VkDevice device,
10532 const VkValidationCacheCreateInfoEXT* pCreateInfo,
10533 const VkAllocationCallbacks* pAllocator,
10534 VkValidationCacheEXT* pValidationCache) {
10535 return ?
10536}
10537
10538@extension("VK_EXT_validation_cache") // 161
10539cmd void vkDestroyValidationCacheEXT(
10540 VkDevice device,
10541 VkValidationCacheEXT validationCache,
10542 const VkAllocationCallbacks* pAllocator) {
10543}
10544
10545@extension("VK_EXT_validation_cache") // 161
10546cmd VkResult vkMergeValidationCachesEXT(
10547 VkDevice device,
10548 VkValidationCacheEXT dstCache,
10549 u32 srcCacheCount,
10550 const VkValidationCacheEXT* pSrcCaches) {
10551 return ?
10552}
10553
10554@extension("VK_EXT_validation_cache") // 161
10555cmd VkResult vkGetValidationCacheDataEXT(
10556 VkDevice device,
10557 VkValidationCacheEXT validationCache,
10558 platform.size_t* pDataSize,
10559 void* pData) {
10560 return ?
10561}
10562
Daniel Koch09f7bf92017-10-05 00:26:58 -040010563@extension("VK_KHR_maintenance3") // 169
10564cmd void vkGetDescriptorSetLayoutSupportKHR(
10565 VkDevice device,
10566 const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
10567 VkDescriptorSetLayoutSupportKHR* pSupport) {
10568}
10569
Jesse Hall54f8d132018-04-18 08:16:59 -070010570@extension("VK_KHR_draw_indirect_count") // 170
10571cmd void vkCmdDrawIndirectCountKHR(
10572 VkCommandBuffer commandBuffer,
10573 VkBuffer buffer,
10574 VkDeviceSize offset,
10575 VkBuffer countBuffer,
10576 VkDeviceSize countBufferOffset,
10577 u32 maxDrawCount,
10578 u32 stride) {
10579}
10580
10581@extension("VK_KHR_draw_indirect_count") // 170
10582cmd void vkCmdDrawIndexedIndirectCountKHR(
10583 VkCommandBuffer commandBuffer,
10584 VkBuffer buffer,
10585 VkDeviceSize offset,
10586 VkBuffer countBuffer,
10587 VkDeviceSize countBufferOffset,
10588 u32 maxDrawCount,
10589 u32 stride) {
10590}
10591
Jesse Hall8c954d32018-01-17 22:06:20 -080010592@extension("VK_EXT_external_memory_host") // 179
10593cmd VkResult vkGetMemoryHostPointerPropertiesEXT(
10594 VkDevice device,
10595 VkExternalMemoryHandleTypeFlagBits handleType,
10596 const void* pHostPointer,
10597 VkMemoryHostPointerPropertiesEXT* pMemoryHostPointerProperties) {
10598 return ?
10599}
10600
Jesse Hall72e6a132018-04-06 13:00:44 -070010601@extension("VK_AMD_buffer_marker") // 180
10602cmd void vkCmdWriteBufferMarkerAMD(
10603 VkCommandBuffer commandBuffer,
10604 VkPipelineStageFlagBits pipelineStage,
10605 VkBuffer dstBuffer,
10606 VkDeviceSize dstOffset,
10607 u32 marker) {
10608}
10609
Jesse Hall115df0c2018-07-30 12:00:59 -070010610@extension("VK_NV_device_diagnostic_checkpoints") // 207
10611cmd void vkCmdSetCheckpointNV(
10612 VkCommandBuffer commandBuffer,
10613 const void* pCheckpointMarker) {
10614}
10615
10616@extension("VK_NV_device_diagnostic_checkpoints") // 207
10617cmd void vkGetQueueCheckpointDataNV(
10618 VkQueue queue,
10619 u32* pCheckpointDataCount,
10620 VkCheckpointDataNV* pCheckpointData) {
10621}
10622
10623
Jesse Halld27f6aa2015-08-15 17:58:48 -070010624////////////////
10625// Validation //
10626////////////////
10627
10628extern void validate(string layerName, bool condition, string message)
10629
10630
10631/////////////////////////////
10632// Internal State Tracking //
10633/////////////////////////////
10634
10635StateObject State
10636
10637@internal class StateObject {
10638 // Dispatchable objects.
10639 map!(VkInstance, ref!InstanceObject) Instances
10640 map!(VkPhysicalDevice, ref!PhysicalDeviceObject) PhysicalDevices
10641 map!(VkDevice, ref!DeviceObject) Devices
10642 map!(VkQueue, ref!QueueObject) Queues
Jesse Hall3fbc8562015-11-29 22:10:52 -080010643 map!(VkCommandBuffer, ref!CommandBufferObject) CommandBuffers
Jesse Halld27f6aa2015-08-15 17:58:48 -070010644
10645 // Non-dispatchable objects.
10646 map!(VkDeviceMemory, ref!DeviceMemoryObject) DeviceMemories
10647 map!(VkBuffer, ref!BufferObject) Buffers
10648 map!(VkBufferView, ref!BufferViewObject) BufferViews
10649 map!(VkImage, ref!ImageObject) Images
10650 map!(VkImageView, ref!ImageViewObject) ImageViews
Jesse Halld27f6aa2015-08-15 17:58:48 -070010651 map!(VkShaderModule, ref!ShaderModuleObject) ShaderModules
Jesse Halld27f6aa2015-08-15 17:58:48 -070010652 map!(VkPipeline, ref!PipelineObject) Pipelines
10653 map!(VkPipelineLayout, ref!PipelineLayoutObject) PipelineLayouts
10654 map!(VkSampler, ref!SamplerObject) Samplers
10655 map!(VkDescriptorSet, ref!DescriptorSetObject) DescriptorSets
10656 map!(VkDescriptorSetLayout, ref!DescriptorSetLayoutObject) DescriptorSetLayouts
10657 map!(VkDescriptorPool, ref!DescriptorPoolObject) DescriptorPools
Jesse Halld27f6aa2015-08-15 17:58:48 -070010658 map!(VkFence, ref!FenceObject) Fences
10659 map!(VkSemaphore, ref!SemaphoreObject) Semaphores
10660 map!(VkEvent, ref!EventObject) Events
10661 map!(VkQueryPool, ref!QueryPoolObject) QueryPools
10662 map!(VkFramebuffer, ref!FramebufferObject) Framebuffers
10663 map!(VkRenderPass, ref!RenderPassObject) RenderPasses
10664 map!(VkPipelineCache, ref!PipelineCacheObject) PipelineCaches
Jesse Hall3fbc8562015-11-29 22:10:52 -080010665 map!(VkCommandPool, ref!CommandPoolObject) CommandPools
Jesse Hall1356b0d2015-11-23 17:24:58 -080010666 map!(VkSurfaceKHR, ref!SurfaceObject) Surfaces
Michael Lentine88594d72015-11-12 12:49:45 -080010667 map!(VkSwapchainKHR, ref!SwapchainObject) Swapchains
Jesse Halld27f6aa2015-08-15 17:58:48 -070010668}
10669
10670@internal class InstanceObject {
10671}
10672
10673@internal class PhysicalDeviceObject {
10674 VkInstance instance
10675}
10676
10677@internal class DeviceObject {
10678 VkPhysicalDevice physicalDevice
10679}
10680
10681@internal class QueueObject {
10682 VkDevice device
10683 VkQueueFlags flags
10684}
10685
Jesse Hall3fbc8562015-11-29 22:10:52 -080010686@internal class CommandBufferObject {
Jesse Halld27f6aa2015-08-15 17:58:48 -070010687 VkDevice device
10688 map!(u64, VkDeviceMemory) boundObjects
10689 VkQueueFlags queueFlags
10690}
10691
10692@internal class DeviceMemoryObject {
Jesse Hall3fbc8562015-11-29 22:10:52 -080010693 VkDevice device
10694 VkDeviceSize allocationSize
10695 map!(u64, VkDeviceSize) boundObjects
10696 map!(VkCommandBuffer, VkCommandBuffer) boundCommandBuffers
Jesse Halld27f6aa2015-08-15 17:58:48 -070010697}
10698
10699@internal class BufferObject {
10700 VkDevice device
Jesse Hall3fbc8562015-11-29 22:10:52 -080010701 VkDeviceMemory memory
10702 VkDeviceSize memoryOffset
Jesse Halld27f6aa2015-08-15 17:58:48 -070010703}
10704
10705@internal class BufferViewObject {
10706 VkDevice device
10707 VkBuffer buffer
10708}
10709
10710@internal class ImageObject {
10711 VkDevice device
Jesse Hall3fbc8562015-11-29 22:10:52 -080010712 VkDeviceMemory memory
10713 VkDeviceSize memoryOffset
Jesse Halld27f6aa2015-08-15 17:58:48 -070010714}
10715
10716@internal class ImageViewObject {
10717 VkDevice device
10718 VkImage image
10719}
10720
Jesse Halld27f6aa2015-08-15 17:58:48 -070010721@internal class ShaderObject {
10722 VkDevice device
10723}
10724
10725@internal class ShaderModuleObject {
10726 VkDevice device
10727}
10728
10729@internal class PipelineObject {
10730 VkDevice device
10731}
10732
10733@internal class PipelineLayoutObject {
10734 VkDevice device
10735}
10736
10737@internal class SamplerObject {
10738 VkDevice device
10739}
10740
10741@internal class DescriptorSetObject {
10742 VkDevice device
10743}
10744
10745@internal class DescriptorSetLayoutObject {
10746 VkDevice device
10747}
10748
10749@internal class DescriptorPoolObject {
10750 VkDevice device
10751}
10752
Jesse Halld27f6aa2015-08-15 17:58:48 -070010753@internal class FenceObject {
10754 VkDevice device
10755 bool signaled
10756}
10757
10758@internal class SemaphoreObject {
10759 VkDevice device
10760}
10761
10762@internal class EventObject {
10763 VkDevice device
10764}
10765
10766@internal class QueryPoolObject {
10767 VkDevice device
10768}
10769
10770@internal class FramebufferObject {
10771 VkDevice device
10772}
10773
10774@internal class RenderPassObject {
10775 VkDevice device
10776}
10777
10778@internal class PipelineCacheObject {
10779 VkDevice device
10780}
10781
Jesse Hall3fbc8562015-11-29 22:10:52 -080010782@internal class CommandPoolObject {
Jesse Halld27f6aa2015-08-15 17:58:48 -070010783 VkDevice device
10784}
10785
Jesse Hall1356b0d2015-11-23 17:24:58 -080010786@internal class SurfaceObject {
10787 VkInstance instance
10788}
10789
Michael Lentine88594d72015-11-12 12:49:45 -080010790@internal class SwapchainObject {
10791 VkDevice device
10792}
10793
Jesse Halld27f6aa2015-08-15 17:58:48 -070010794macro ref!InstanceObject GetInstance(VkInstance instance) {
10795 assert(instance in State.Instances)
10796 return State.Instances[instance]
10797}
10798
10799macro ref!PhysicalDeviceObject GetPhysicalDevice(VkPhysicalDevice physicalDevice) {
10800 assert(physicalDevice in State.PhysicalDevices)
10801 return State.PhysicalDevices[physicalDevice]
10802}
10803
10804macro ref!DeviceObject GetDevice(VkDevice device) {
10805 assert(device in State.Devices)
10806 return State.Devices[device]
10807}
10808
10809macro ref!QueueObject GetQueue(VkQueue queue) {
10810 assert(queue in State.Queues)
10811 return State.Queues[queue]
10812}
10813
Jesse Hall3fbc8562015-11-29 22:10:52 -080010814macro ref!CommandBufferObject GetCommandBuffer(VkCommandBuffer commandBuffer) {
10815 assert(commandBuffer in State.CommandBuffers)
10816 return State.CommandBuffers[commandBuffer]
Jesse Halld27f6aa2015-08-15 17:58:48 -070010817}
10818
Jesse Hall3fbc8562015-11-29 22:10:52 -080010819macro ref!DeviceMemoryObject GetDeviceMemory(VkDeviceMemory memory) {
10820 assert(memory in State.DeviceMemories)
10821 return State.DeviceMemories[memory]
Jesse Halld27f6aa2015-08-15 17:58:48 -070010822}
10823
10824macro ref!BufferObject GetBuffer(VkBuffer buffer) {
10825 assert(buffer in State.Buffers)
10826 return State.Buffers[buffer]
10827}
10828
10829macro ref!BufferViewObject GetBufferView(VkBufferView bufferView) {
10830 assert(bufferView in State.BufferViews)
10831 return State.BufferViews[bufferView]
10832}
10833
10834macro ref!ImageObject GetImage(VkImage image) {
10835 assert(image in State.Images)
10836 return State.Images[image]
10837}
10838
10839macro ref!ImageViewObject GetImageView(VkImageView imageView) {
10840 assert(imageView in State.ImageViews)
10841 return State.ImageViews[imageView]
10842}
10843
Jesse Halld27f6aa2015-08-15 17:58:48 -070010844macro ref!ShaderModuleObject GetShaderModule(VkShaderModule shaderModule) {
10845 assert(shaderModule in State.ShaderModules)
10846 return State.ShaderModules[shaderModule]
10847}
10848
10849macro ref!PipelineObject GetPipeline(VkPipeline pipeline) {
10850 assert(pipeline in State.Pipelines)
10851 return State.Pipelines[pipeline]
10852}
10853
10854macro ref!PipelineLayoutObject GetPipelineLayout(VkPipelineLayout pipelineLayout) {
10855 assert(pipelineLayout in State.PipelineLayouts)
10856 return State.PipelineLayouts[pipelineLayout]
10857}
10858
10859macro ref!SamplerObject GetSampler(VkSampler sampler) {
10860 assert(sampler in State.Samplers)
10861 return State.Samplers[sampler]
10862}
10863
10864macro ref!DescriptorSetObject GetDescriptorSet(VkDescriptorSet descriptorSet) {
10865 assert(descriptorSet in State.DescriptorSets)
10866 return State.DescriptorSets[descriptorSet]
10867}
10868
10869macro ref!DescriptorSetLayoutObject GetDescriptorSetLayout(VkDescriptorSetLayout descriptorSetLayout) {
10870 assert(descriptorSetLayout in State.DescriptorSetLayouts)
10871 return State.DescriptorSetLayouts[descriptorSetLayout]
10872}
10873
10874macro ref!DescriptorPoolObject GetDescriptorPool(VkDescriptorPool descriptorPool) {
10875 assert(descriptorPool in State.DescriptorPools)
10876 return State.DescriptorPools[descriptorPool]
10877}
10878
Jesse Halld27f6aa2015-08-15 17:58:48 -070010879macro ref!FenceObject GetFence(VkFence fence) {
10880 assert(fence in State.Fences)
10881 return State.Fences[fence]
10882}
10883
10884macro ref!SemaphoreObject GetSemaphore(VkSemaphore semaphore) {
10885 assert(semaphore in State.Semaphores)
10886 return State.Semaphores[semaphore]
10887}
10888
10889macro ref!EventObject GetEvent(VkEvent event) {
10890 assert(event in State.Events)
10891 return State.Events[event]
10892}
10893
10894macro ref!QueryPoolObject GetQueryPool(VkQueryPool queryPool) {
10895 assert(queryPool in State.QueryPools)
10896 return State.QueryPools[queryPool]
10897}
10898
10899macro ref!FramebufferObject GetFramebuffer(VkFramebuffer framebuffer) {
10900 assert(framebuffer in State.Framebuffers)
10901 return State.Framebuffers[framebuffer]
10902}
10903
10904macro ref!RenderPassObject GetRenderPass(VkRenderPass renderPass) {
10905 assert(renderPass in State.RenderPasses)
10906 return State.RenderPasses[renderPass]
10907}
10908
10909macro ref!PipelineCacheObject GetPipelineCache(VkPipelineCache pipelineCache) {
10910 assert(pipelineCache in State.PipelineCaches)
10911 return State.PipelineCaches[pipelineCache]
10912}
10913
Jesse Hall3fbc8562015-11-29 22:10:52 -080010914macro ref!CommandPoolObject GetCommandPool(VkCommandPool commandPool) {
10915 assert(commandPool in State.CommandPools)
10916 return State.CommandPools[commandPool]
Jesse Hallf09c6b12015-08-15 19:54:28 -070010917}
Michael Lentine88594d72015-11-12 12:49:45 -080010918
Jesse Hall1356b0d2015-11-23 17:24:58 -080010919macro ref!SurfaceObject GetSurface(VkSurfaceKHR surface) {
10920 assert(surface in State.Surfaces)
10921 return State.Surfaces[surface]
10922}
10923
Michael Lentine88594d72015-11-12 12:49:45 -080010924macro ref!SwapchainObject GetSwapchain(VkSwapchainKHR swapchain) {
10925 assert(swapchain in State.Swapchains)
10926 return State.Swapchains[swapchain]
10927}
Jesse Halld8bade02015-11-24 10:24:18 -080010928
10929macro VkQueueFlags AddQueueFlag(VkQueueFlags flags, VkQueueFlagBits bit) {
10930 return as!VkQueueFlags(as!u32(flags) | as!u32(bit))
10931}