blob: e36b7bc621eaf408cb55f5beec680fa32d1ecfc8 [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 Halla13a3cf2018-07-09 15:51:52 -070031define VERSION_PATCH 80
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 Halld27f6aa2015-08-15 17:58:48 -0700536/////////////
537// Types //
538/////////////
539
Jesse Hall5ae3abb2015-10-08 14:00:22 -0700540type u32 VkBool32
541type u32 VkFlags
542type u64 VkDeviceSize
543type u32 VkSampleMask
544
Jesse Halld27f6aa2015-08-15 17:58:48 -0700545/// Dispatchable handle types.
546@dispatchHandle type u64 VkInstance
547@dispatchHandle type u64 VkPhysicalDevice
548@dispatchHandle type u64 VkDevice
549@dispatchHandle type u64 VkQueue
Jesse Hall3fbc8562015-11-29 22:10:52 -0800550@dispatchHandle type u64 VkCommandBuffer
Jesse Halld27f6aa2015-08-15 17:58:48 -0700551
552/// Non dispatchable handle types.
553@nonDispatchHandle type u64 VkDeviceMemory
Jesse Hall3fbc8562015-11-29 22:10:52 -0800554@nonDispatchHandle type u64 VkCommandPool
Jesse Halld27f6aa2015-08-15 17:58:48 -0700555@nonDispatchHandle type u64 VkBuffer
556@nonDispatchHandle type u64 VkBufferView
557@nonDispatchHandle type u64 VkImage
558@nonDispatchHandle type u64 VkImageView
Jesse Halld27f6aa2015-08-15 17:58:48 -0700559@nonDispatchHandle type u64 VkShaderModule
Jesse Halld27f6aa2015-08-15 17:58:48 -0700560@nonDispatchHandle type u64 VkPipeline
561@nonDispatchHandle type u64 VkPipelineLayout
562@nonDispatchHandle type u64 VkSampler
563@nonDispatchHandle type u64 VkDescriptorSet
564@nonDispatchHandle type u64 VkDescriptorSetLayout
565@nonDispatchHandle type u64 VkDescriptorPool
Jesse Halld27f6aa2015-08-15 17:58:48 -0700566@nonDispatchHandle type u64 VkFence
567@nonDispatchHandle type u64 VkSemaphore
568@nonDispatchHandle type u64 VkEvent
569@nonDispatchHandle type u64 VkQueryPool
570@nonDispatchHandle type u64 VkFramebuffer
571@nonDispatchHandle type u64 VkRenderPass
572@nonDispatchHandle type u64 VkPipelineCache
Jesse Hall1356b0d2015-11-23 17:24:58 -0800573
Ian Elliott28bd2c32017-10-13 09:21:12 -0600574@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -0400575@nonDispatchHandle type u64 VkSamplerYcbcrConversion
576@nonDispatchHandle type u64 VkDescriptorUpdateTemplate
577
Jesse Hallad250842017-03-10 18:35:38 -0800578// 1
Jesse Hall3e0dc8f2015-11-30 00:42:57 -0800579@extension("VK_KHR_surface") @nonDispatchHandle type u64 VkSurfaceKHR
Jesse Hall1356b0d2015-11-23 17:24:58 -0800580
Jesse Hallad250842017-03-10 18:35:38 -0800581// 2
Jesse Hall3e0dc8f2015-11-30 00:42:57 -0800582@extension("VK_KHR_swapchain") @nonDispatchHandle type u64 VkSwapchainKHR
Jesse Hall1356b0d2015-11-23 17:24:58 -0800583
Jesse Hallad250842017-03-10 18:35:38 -0800584// 3
Jesse Hall3e0dc8f2015-11-30 00:42:57 -0800585@extension("VK_KHR_display") @nonDispatchHandle type u64 VkDisplayKHR
586@extension("VK_KHR_display") @nonDispatchHandle type u64 VkDisplayModeKHR
Jesse Halld27f6aa2015-08-15 17:58:48 -0700587
Jesse Hallad250842017-03-10 18:35:38 -0800588// 12
Jesse Hall715b86a2016-01-16 16:34:29 -0800589@extension("VK_EXT_debug_report") @nonDispatchHandle type u64 VkDebugReportCallbackEXT
590
Jesse Hallad250842017-03-10 18:35:38 -0800591// 86
592@extension("VK_KHR_descriptor_update_template") @nonDispatchHandle type u64 VkDescriptorUpdateTemplateKHR
593
594// 87
Chris Forbes289cb792016-12-30 15:03:55 +1300595@extension("VK_NVX_device_generated_commands") @nonDispatchHandle type u64 VkObjectTableNVX
596@extension("VK_NVX_device_generated_commands") @nonDispatchHandle type u64 VkIndirectCommandsLayoutNVX
597
Jesse Hall8c954d32018-01-17 22:06:20 -0800598// 129
599@extension("VK_EXT_debug_utils") @nonDispatchHandle type u64 VkDebugUtilsMessengerEXT
600
Jesse Hall076f95d2017-09-20 11:34:47 -0700601// 157
602@extension("VK_KHR_sampler_ycbcr_conversion") @nonDispatchHandle type u64 VkSamplerYcbcrConversionKHR
603
Jesse Hall77726222017-09-19 14:49:27 -0500604// 161
605@extension("VK_EXT_validation_cache") @nonDispatchHandle type u64 VkValidationCacheEXT
Jesse Halld27f6aa2015-08-15 17:58:48 -0700606
607/////////////
608// Enums //
609/////////////
610
611enum VkImageLayout {
612 VK_IMAGE_LAYOUT_UNDEFINED = 0x00000000, /// Implicit layout an image is when its contents are undefined due to various reasons (e.g. right after creation)
613 VK_IMAGE_LAYOUT_GENERAL = 0x00000001, /// General layout when image can be used for any kind of access
614 VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL = 0x00000002, /// Optimal layout when image is only used for color attachment read/write
615 VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL = 0x00000003, /// Optimal layout when image is only used for depth/stencil attachment read/write
616 VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL = 0x00000004, /// Optimal layout when image is used for read only depth/stencil attachment and shader access
617 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 -0800618 VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL = 0x00000006, /// Optimal layout when image is used only as source of transfer operations
619 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 -0700620 VK_IMAGE_LAYOUT_PREINITIALIZED = 0x00000008, /// Initial layout used when the data is populated by the CPU
Jesse Hall1356b0d2015-11-23 17:24:58 -0800621
Ian Elliott28bd2c32017-10-13 09:21:12 -0600622 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -0400623 VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL = 1000117000,
624 VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL = 1000117001,
625
Jesse Hallad250842017-03-10 18:35:38 -0800626 //@extension("VK_KHR_swapchain") // 2
Jesse Hallbd888842015-11-30 21:44:14 -0800627 VK_IMAGE_LAYOUT_PRESENT_SRC_KHR = 1000001002,
Chris Forbesaf3a1112017-01-31 15:37:03 +1300628
Jesse Hall05556b12017-05-18 17:40:25 -0700629 //@extension("VK_KHR_shared_presentable_image") // 112
Chris Forbesaf3a1112017-01-31 15:37:03 +1300630 VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR = 1000111000,
Jesse Hall076f95d2017-09-20 11:34:47 -0700631
632 //@extension("VK_KHR_maintenance2") // 118
633 VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL_KHR = 1000117000,
634 VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL_KHR = 1000117001,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700635}
636
637enum VkAttachmentLoadOp {
638 VK_ATTACHMENT_LOAD_OP_LOAD = 0x00000000,
639 VK_ATTACHMENT_LOAD_OP_CLEAR = 0x00000001,
640 VK_ATTACHMENT_LOAD_OP_DONT_CARE = 0x00000002,
641}
642
643enum VkAttachmentStoreOp {
644 VK_ATTACHMENT_STORE_OP_STORE = 0x00000000,
645 VK_ATTACHMENT_STORE_OP_DONT_CARE = 0x00000001,
646}
647
648enum VkImageType {
649 VK_IMAGE_TYPE_1D = 0x00000000,
650 VK_IMAGE_TYPE_2D = 0x00000001,
651 VK_IMAGE_TYPE_3D = 0x00000002,
652}
653
654enum VkImageTiling {
Jesse Hallc7467b72015-11-29 21:05:26 -0800655 VK_IMAGE_TILING_OPTIMAL = 0x00000000,
656 VK_IMAGE_TILING_LINEAR = 0x00000001,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700657}
658
659enum VkImageViewType {
660 VK_IMAGE_VIEW_TYPE_1D = 0x00000000,
661 VK_IMAGE_VIEW_TYPE_2D = 0x00000001,
662 VK_IMAGE_VIEW_TYPE_3D = 0x00000002,
663 VK_IMAGE_VIEW_TYPE_CUBE = 0x00000003,
664 VK_IMAGE_VIEW_TYPE_1D_ARRAY = 0x00000004,
665 VK_IMAGE_VIEW_TYPE_2D_ARRAY = 0x00000005,
666 VK_IMAGE_VIEW_TYPE_CUBE_ARRAY = 0x00000006,
667}
668
Jesse Hall3fbc8562015-11-29 22:10:52 -0800669enum VkCommandBufferLevel {
670 VK_COMMAND_BUFFER_LEVEL_PRIMARY = 0x00000000,
671 VK_COMMAND_BUFFER_LEVEL_SECONDARY = 0x00000001,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700672}
673
Jesse Hall65ab5522015-11-30 00:07:16 -0800674enum VkComponentSwizzle {
675 VK_COMPONENT_SWIZZLE_IDENTITY = 0x00000000,
676 VK_COMPONENT_SWIZZLE_ZERO = 0x00000001,
677 VK_COMPONENT_SWIZZLE_ONE = 0x00000002,
678 VK_COMPONENT_SWIZZLE_R = 0x00000003,
679 VK_COMPONENT_SWIZZLE_G = 0x00000004,
680 VK_COMPONENT_SWIZZLE_B = 0x00000005,
681 VK_COMPONENT_SWIZZLE_A = 0x00000006,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700682}
683
684enum VkDescriptorType {
685 VK_DESCRIPTOR_TYPE_SAMPLER = 0x00000000,
686 VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER = 0x00000001,
687 VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE = 0x00000002,
688 VK_DESCRIPTOR_TYPE_STORAGE_IMAGE = 0x00000003,
689 VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER = 0x00000004,
690 VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER = 0x00000005,
691 VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER = 0x00000006,
692 VK_DESCRIPTOR_TYPE_STORAGE_BUFFER = 0x00000007,
693 VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC = 0x00000008,
694 VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC = 0x00000009,
695 VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT = 0x0000000a,
696}
697
Jesse Halld27f6aa2015-08-15 17:58:48 -0700698enum VkQueryType {
699 VK_QUERY_TYPE_OCCLUSION = 0x00000000,
700 VK_QUERY_TYPE_PIPELINE_STATISTICS = 0x00000001, /// Optional
Jesse Halla3a7a1d2015-11-24 11:37:23 -0800701 VK_QUERY_TYPE_TIMESTAMP = 0x00000002,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700702}
703
Jesse Halld27f6aa2015-08-15 17:58:48 -0700704enum VkBorderColor {
705 VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK = 0x00000000,
706 VK_BORDER_COLOR_INT_TRANSPARENT_BLACK = 0x00000001,
707 VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK = 0x00000002,
708 VK_BORDER_COLOR_INT_OPAQUE_BLACK = 0x00000003,
709 VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE = 0x00000004,
710 VK_BORDER_COLOR_INT_OPAQUE_WHITE = 0x00000005,
711}
712
713enum VkPipelineBindPoint {
Jesse Hallc7467b72015-11-29 21:05:26 -0800714 VK_PIPELINE_BIND_POINT_GRAPHICS = 0x00000000,
715 VK_PIPELINE_BIND_POINT_COMPUTE = 0x00000001,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700716}
717
718enum VkPrimitiveTopology {
719 VK_PRIMITIVE_TOPOLOGY_POINT_LIST = 0x00000000,
720 VK_PRIMITIVE_TOPOLOGY_LINE_LIST = 0x00000001,
721 VK_PRIMITIVE_TOPOLOGY_LINE_STRIP = 0x00000002,
722 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST = 0x00000003,
723 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP = 0x00000004,
724 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN = 0x00000005,
Jesse Hall3fbc8562015-11-29 22:10:52 -0800725 VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY = 0x00000006,
726 VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY = 0x00000007,
727 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY = 0x00000008,
728 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY = 0x00000009,
Jesse Hall091ed9e2015-11-30 00:55:29 -0800729 VK_PRIMITIVE_TOPOLOGY_PATCH_LIST = 0x0000000a,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700730}
731
732enum VkSharingMode {
733 VK_SHARING_MODE_EXCLUSIVE = 0x00000000,
734 VK_SHARING_MODE_CONCURRENT = 0x00000001,
735}
736
737enum VkIndexType {
738 VK_INDEX_TYPE_UINT16 = 0x00000000,
739 VK_INDEX_TYPE_UINT32 = 0x00000001,
740}
741
Jesse Hall23ff73f2015-11-29 14:36:39 -0800742enum VkFilter {
743 VK_FILTER_NEAREST = 0x00000000,
744 VK_FILTER_LINEAR = 0x00000001,
Jesse Hall26763382016-05-20 07:13:52 -0700745
Jesse Hallad250842017-03-10 18:35:38 -0800746 //@extension("VK_IMG_filter_cubic") // 16
Jesse Hall26763382016-05-20 07:13:52 -0700747 VK_FILTER_CUBIC_IMG = 1000015000,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700748}
749
Jesse Hall23ff73f2015-11-29 14:36:39 -0800750enum VkSamplerMipmapMode {
Jesse Hall23ff73f2015-11-29 14:36:39 -0800751 VK_SAMPLER_MIPMAP_MODE_NEAREST = 0x00000001, /// Choose nearest mip level
752 VK_SAMPLER_MIPMAP_MODE_LINEAR = 0x00000002, /// Linear filter between mip levels
Jesse Halld27f6aa2015-08-15 17:58:48 -0700753}
754
Jesse Hall23ff73f2015-11-29 14:36:39 -0800755enum VkSamplerAddressMode {
Jesse Hallc7467b72015-11-29 21:05:26 -0800756 VK_SAMPLER_ADDRESS_MODE_REPEAT = 0x00000000,
757 VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT = 0x00000001,
758 VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE = 0x00000002,
759 VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER = 0x00000003,
760 VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE = 0x00000004,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700761}
762
763enum VkCompareOp {
764 VK_COMPARE_OP_NEVER = 0x00000000,
765 VK_COMPARE_OP_LESS = 0x00000001,
766 VK_COMPARE_OP_EQUAL = 0x00000002,
Jesse Hall3fbc8562015-11-29 22:10:52 -0800767 VK_COMPARE_OP_LESS_OR_EQUAL = 0x00000003,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700768 VK_COMPARE_OP_GREATER = 0x00000004,
769 VK_COMPARE_OP_NOT_EQUAL = 0x00000005,
Jesse Hall3fbc8562015-11-29 22:10:52 -0800770 VK_COMPARE_OP_GREATER_OR_EQUAL = 0x00000006,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700771 VK_COMPARE_OP_ALWAYS = 0x00000007,
772}
773
Jesse Hall65ab5522015-11-30 00:07:16 -0800774enum VkPolygonMode {
775 VK_POLYGON_MODE_FILL = 0x00000000,
776 VK_POLYGON_MODE_LINE = 0x00000001,
777 VK_POLYGON_MODE_POINT = 0x00000002,
Jesse Hall7ba0ac72017-07-07 17:13:23 -0700778
779 //@extension("VK_NV_fill_rectangle") // 154
780 VK_POLYGON_MODE_FILL_RECTANGLE_NV = 1000153000,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700781}
782
783enum VkFrontFace {
Jesse Hall3fbc8562015-11-29 22:10:52 -0800784 VK_FRONT_FACE_COUNTER_CLOCKWISE = 0x00000000,
785 VK_FRONT_FACE_CLOCKWISE = 0x00000001,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700786}
787
Jesse Hall65ab5522015-11-30 00:07:16 -0800788enum VkBlendFactor {
789 VK_BLEND_FACTOR_ZERO = 0x00000000,
790 VK_BLEND_FACTOR_ONE = 0x00000001,
791 VK_BLEND_FACTOR_SRC_COLOR = 0x00000002,
792 VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR = 0x00000003,
793 VK_BLEND_FACTOR_DST_COLOR = 0x00000004,
794 VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR = 0x00000005,
795 VK_BLEND_FACTOR_SRC_ALPHA = 0x00000006,
796 VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA = 0x00000007,
797 VK_BLEND_FACTOR_DST_ALPHA = 0x00000008,
798 VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA = 0x00000009,
799 VK_BLEND_FACTOR_CONSTANT_COLOR = 0x0000000a,
800 VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR = 0x0000000b,
801 VK_BLEND_FACTOR_CONSTANT_ALPHA = 0x0000000c,
802 VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA = 0x0000000d,
803 VK_BLEND_FACTOR_SRC_ALPHA_SATURATE = 0x0000000e,
804 VK_BLEND_FACTOR_SRC1_COLOR = 0x0000000f,
805 VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR = 0x00000010,
806 VK_BLEND_FACTOR_SRC1_ALPHA = 0x00000011,
807 VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA = 0x00000012,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700808}
809
810enum VkBlendOp {
811 VK_BLEND_OP_ADD = 0x00000000,
812 VK_BLEND_OP_SUBTRACT = 0x00000001,
813 VK_BLEND_OP_REVERSE_SUBTRACT = 0x00000002,
814 VK_BLEND_OP_MIN = 0x00000003,
815 VK_BLEND_OP_MAX = 0x00000004,
Jesse Hall7ba0ac72017-07-07 17:13:23 -0700816
817 //@extension("VK_EXT_blend_operation_advanced") // 149
818 VK_BLEND_OP_ZERO_EXT = 1000148000,
819 VK_BLEND_OP_SRC_EXT = 1000148001,
820 VK_BLEND_OP_DST_EXT = 1000148002,
821 VK_BLEND_OP_SRC_OVER_EXT = 1000148003,
822 VK_BLEND_OP_DST_OVER_EXT = 1000148004,
823 VK_BLEND_OP_SRC_IN_EXT = 1000148005,
824 VK_BLEND_OP_DST_IN_EXT = 1000148006,
825 VK_BLEND_OP_SRC_OUT_EXT = 1000148007,
826 VK_BLEND_OP_DST_OUT_EXT = 1000148008,
827 VK_BLEND_OP_SRC_ATOP_EXT = 1000148009,
828 VK_BLEND_OP_DST_ATOP_EXT = 1000148010,
829 VK_BLEND_OP_XOR_EXT = 1000148011,
830 VK_BLEND_OP_MULTIPLY_EXT = 1000148012,
831 VK_BLEND_OP_SCREEN_EXT = 1000148013,
832 VK_BLEND_OP_OVERLAY_EXT = 1000148014,
833 VK_BLEND_OP_DARKEN_EXT = 1000148015,
834 VK_BLEND_OP_LIGHTEN_EXT = 1000148016,
835 VK_BLEND_OP_COLORDODGE_EXT = 1000148017,
836 VK_BLEND_OP_COLORBURN_EXT = 1000148018,
837 VK_BLEND_OP_HARDLIGHT_EXT = 1000148019,
838 VK_BLEND_OP_SOFTLIGHT_EXT = 1000148020,
839 VK_BLEND_OP_DIFFERENCE_EXT = 1000148021,
840 VK_BLEND_OP_EXCLUSION_EXT = 1000148022,
841 VK_BLEND_OP_INVERT_EXT = 1000148023,
842 VK_BLEND_OP_INVERT_RGB_EXT = 1000148024,
843 VK_BLEND_OP_LINEARDODGE_EXT = 1000148025,
844 VK_BLEND_OP_LINEARBURN_EXT = 1000148026,
845 VK_BLEND_OP_VIVIDLIGHT_EXT = 1000148027,
846 VK_BLEND_OP_LINEARLIGHT_EXT = 1000148028,
847 VK_BLEND_OP_PINLIGHT_EXT = 1000148029,
848 VK_BLEND_OP_HARDMIX_EXT = 1000148030,
849 VK_BLEND_OP_HSL_HUE_EXT = 1000148031,
850 VK_BLEND_OP_HSL_SATURATION_EXT = 1000148032,
851 VK_BLEND_OP_HSL_COLOR_EXT = 1000148033,
852 VK_BLEND_OP_HSL_LUMINOSITY_EXT = 1000148034,
853 VK_BLEND_OP_PLUS_EXT = 1000148035,
854 VK_BLEND_OP_PLUS_CLAMPED_EXT = 1000148036,
855 VK_BLEND_OP_PLUS_CLAMPED_ALPHA_EXT = 1000148037,
856 VK_BLEND_OP_PLUS_DARKER_EXT = 1000148038,
857 VK_BLEND_OP_MINUS_EXT = 1000148039,
858 VK_BLEND_OP_MINUS_CLAMPED_EXT = 1000148040,
859 VK_BLEND_OP_CONTRAST_EXT = 1000148041,
860 VK_BLEND_OP_INVERT_OVG_EXT = 1000148042,
861 VK_BLEND_OP_RED_EXT = 1000148043,
862 VK_BLEND_OP_GREEN_EXT = 1000148044,
863 VK_BLEND_OP_BLUE_EXT = 1000148045,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700864}
865
866enum VkStencilOp {
867 VK_STENCIL_OP_KEEP = 0x00000000,
868 VK_STENCIL_OP_ZERO = 0x00000001,
869 VK_STENCIL_OP_REPLACE = 0x00000002,
Jesse Hall3fbc8562015-11-29 22:10:52 -0800870 VK_STENCIL_OP_INCREMENT_AND_CLAMP = 0x00000003,
871 VK_STENCIL_OP_DECREMENT_AND_CLAMP = 0x00000004,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700872 VK_STENCIL_OP_INVERT = 0x00000005,
Jesse Hall3fbc8562015-11-29 22:10:52 -0800873 VK_STENCIL_OP_INCREMENT_AND_WRAP = 0x00000006,
874 VK_STENCIL_OP_DECREMENT_AND_WRAP = 0x00000007,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700875}
876
877enum VkLogicOp {
878 VK_LOGIC_OP_CLEAR = 0x00000000,
879 VK_LOGIC_OP_AND = 0x00000001,
880 VK_LOGIC_OP_AND_REVERSE = 0x00000002,
881 VK_LOGIC_OP_COPY = 0x00000003,
882 VK_LOGIC_OP_AND_INVERTED = 0x00000004,
Jesse Hall3fbc8562015-11-29 22:10:52 -0800883 VK_LOGIC_OP_NO_OP = 0x00000005,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700884 VK_LOGIC_OP_XOR = 0x00000006,
885 VK_LOGIC_OP_OR = 0x00000007,
886 VK_LOGIC_OP_NOR = 0x00000008,
Jesse Hall3fbc8562015-11-29 22:10:52 -0800887 VK_LOGIC_OP_EQUIVALENT = 0x00000009,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700888 VK_LOGIC_OP_INVERT = 0x0000000a,
889 VK_LOGIC_OP_OR_REVERSE = 0x0000000b,
890 VK_LOGIC_OP_COPY_INVERTED = 0x0000000c,
891 VK_LOGIC_OP_OR_INVERTED = 0x0000000d,
892 VK_LOGIC_OP_NAND = 0x0000000e,
893 VK_LOGIC_OP_SET = 0x0000000f,
894}
895
Jesse Hall3fbc8562015-11-29 22:10:52 -0800896enum VkSystemAllocationScope {
Jesse Hall3e0dc8f2015-11-30 00:42:57 -0800897 VK_SYSTEM_ALLOCATION_SCOPE_COMMAND = 0x00000000,
Jesse Hall3fbc8562015-11-29 22:10:52 -0800898 VK_SYSTEM_ALLOCATION_SCOPE_OBJECT = 0x00000001,
899 VK_SYSTEM_ALLOCATION_SCOPE_CACHE = 0x00000002,
900 VK_SYSTEM_ALLOCATION_SCOPE_DEVICE = 0x00000003,
901 VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE = 0x00000004,
Jesse Hall03b6fe12015-11-24 12:44:21 -0800902}
903
Jesse Hall3fbc8562015-11-29 22:10:52 -0800904enum VkInternalAllocationType {
905 VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE = 0x00000000,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700906}
907
908enum VkPhysicalDeviceType {
909 VK_PHYSICAL_DEVICE_TYPE_OTHER = 0x00000000,
910 VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU = 0x00000001,
911 VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU = 0x00000002,
912 VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU = 0x00000003,
913 VK_PHYSICAL_DEVICE_TYPE_CPU = 0x00000004,
914}
915
Jesse Hall65ab5522015-11-30 00:07:16 -0800916enum VkVertexInputRate {
917 VK_VERTEX_INPUT_RATE_VERTEX = 0x00000000,
918 VK_VERTEX_INPUT_RATE_INSTANCE = 0x00000001,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700919}
920
921/// Vulkan format definitions
922enum VkFormat {
Jesse Hallf4ab2b12015-11-30 16:04:55 -0800923 VK_FORMAT_UNDEFINED = 0,
924 VK_FORMAT_R4G4_UNORM_PACK8 = 1,
925 VK_FORMAT_R4G4B4A4_UNORM_PACK16 = 2,
926 VK_FORMAT_B4G4R4A4_UNORM_PACK16 = 3,
927 VK_FORMAT_R5G6B5_UNORM_PACK16 = 4,
928 VK_FORMAT_B5G6R5_UNORM_PACK16 = 5,
929 VK_FORMAT_R5G5B5A1_UNORM_PACK16 = 6,
930 VK_FORMAT_B5G5R5A1_UNORM_PACK16 = 7,
931 VK_FORMAT_A1R5G5B5_UNORM_PACK16 = 8,
932 VK_FORMAT_R8_UNORM = 9,
933 VK_FORMAT_R8_SNORM = 10,
934 VK_FORMAT_R8_USCALED = 11,
935 VK_FORMAT_R8_SSCALED = 12,
936 VK_FORMAT_R8_UINT = 13,
937 VK_FORMAT_R8_SINT = 14,
938 VK_FORMAT_R8_SRGB = 15,
939 VK_FORMAT_R8G8_UNORM = 16,
940 VK_FORMAT_R8G8_SNORM = 17,
941 VK_FORMAT_R8G8_USCALED = 18,
942 VK_FORMAT_R8G8_SSCALED = 19,
943 VK_FORMAT_R8G8_UINT = 20,
944 VK_FORMAT_R8G8_SINT = 21,
945 VK_FORMAT_R8G8_SRGB = 22,
946 VK_FORMAT_R8G8B8_UNORM = 23,
947 VK_FORMAT_R8G8B8_SNORM = 24,
948 VK_FORMAT_R8G8B8_USCALED = 25,
949 VK_FORMAT_R8G8B8_SSCALED = 26,
950 VK_FORMAT_R8G8B8_UINT = 27,
951 VK_FORMAT_R8G8B8_SINT = 28,
952 VK_FORMAT_R8G8B8_SRGB = 29,
953 VK_FORMAT_B8G8R8_UNORM = 30,
954 VK_FORMAT_B8G8R8_SNORM = 31,
955 VK_FORMAT_B8G8R8_USCALED = 32,
956 VK_FORMAT_B8G8R8_SSCALED = 33,
957 VK_FORMAT_B8G8R8_UINT = 34,
958 VK_FORMAT_B8G8R8_SINT = 35,
959 VK_FORMAT_B8G8R8_SRGB = 36,
960 VK_FORMAT_R8G8B8A8_UNORM = 37,
961 VK_FORMAT_R8G8B8A8_SNORM = 38,
962 VK_FORMAT_R8G8B8A8_USCALED = 39,
963 VK_FORMAT_R8G8B8A8_SSCALED = 40,
964 VK_FORMAT_R8G8B8A8_UINT = 41,
965 VK_FORMAT_R8G8B8A8_SINT = 42,
966 VK_FORMAT_R8G8B8A8_SRGB = 43,
967 VK_FORMAT_B8G8R8A8_UNORM = 44,
968 VK_FORMAT_B8G8R8A8_SNORM = 45,
969 VK_FORMAT_B8G8R8A8_USCALED = 46,
970 VK_FORMAT_B8G8R8A8_SSCALED = 47,
971 VK_FORMAT_B8G8R8A8_UINT = 48,
972 VK_FORMAT_B8G8R8A8_SINT = 49,
973 VK_FORMAT_B8G8R8A8_SRGB = 50,
974 VK_FORMAT_A8B8G8R8_UNORM_PACK32 = 51,
975 VK_FORMAT_A8B8G8R8_SNORM_PACK32 = 52,
976 VK_FORMAT_A8B8G8R8_USCALED_PACK32 = 53,
977 VK_FORMAT_A8B8G8R8_SSCALED_PACK32 = 54,
978 VK_FORMAT_A8B8G8R8_UINT_PACK32 = 55,
979 VK_FORMAT_A8B8G8R8_SINT_PACK32 = 56,
980 VK_FORMAT_A8B8G8R8_SRGB_PACK32 = 57,
981 VK_FORMAT_A2R10G10B10_UNORM_PACK32 = 58,
982 VK_FORMAT_A2R10G10B10_SNORM_PACK32 = 59,
983 VK_FORMAT_A2R10G10B10_USCALED_PACK32 = 60,
984 VK_FORMAT_A2R10G10B10_SSCALED_PACK32 = 61,
985 VK_FORMAT_A2R10G10B10_UINT_PACK32 = 62,
986 VK_FORMAT_A2R10G10B10_SINT_PACK32 = 63,
987 VK_FORMAT_A2B10G10R10_UNORM_PACK32 = 64,
988 VK_FORMAT_A2B10G10R10_SNORM_PACK32 = 65,
989 VK_FORMAT_A2B10G10R10_USCALED_PACK32 = 66,
990 VK_FORMAT_A2B10G10R10_SSCALED_PACK32 = 67,
991 VK_FORMAT_A2B10G10R10_UINT_PACK32 = 68,
992 VK_FORMAT_A2B10G10R10_SINT_PACK32 = 69,
993 VK_FORMAT_R16_UNORM = 70,
994 VK_FORMAT_R16_SNORM = 71,
995 VK_FORMAT_R16_USCALED = 72,
996 VK_FORMAT_R16_SSCALED = 73,
997 VK_FORMAT_R16_UINT = 74,
998 VK_FORMAT_R16_SINT = 75,
999 VK_FORMAT_R16_SFLOAT = 76,
1000 VK_FORMAT_R16G16_UNORM = 77,
1001 VK_FORMAT_R16G16_SNORM = 78,
1002 VK_FORMAT_R16G16_USCALED = 79,
1003 VK_FORMAT_R16G16_SSCALED = 80,
1004 VK_FORMAT_R16G16_UINT = 81,
1005 VK_FORMAT_R16G16_SINT = 82,
1006 VK_FORMAT_R16G16_SFLOAT = 83,
1007 VK_FORMAT_R16G16B16_UNORM = 84,
1008 VK_FORMAT_R16G16B16_SNORM = 85,
1009 VK_FORMAT_R16G16B16_USCALED = 86,
1010 VK_FORMAT_R16G16B16_SSCALED = 87,
1011 VK_FORMAT_R16G16B16_UINT = 88,
1012 VK_FORMAT_R16G16B16_SINT = 89,
1013 VK_FORMAT_R16G16B16_SFLOAT = 90,
1014 VK_FORMAT_R16G16B16A16_UNORM = 91,
1015 VK_FORMAT_R16G16B16A16_SNORM = 92,
1016 VK_FORMAT_R16G16B16A16_USCALED = 93,
1017 VK_FORMAT_R16G16B16A16_SSCALED = 94,
1018 VK_FORMAT_R16G16B16A16_UINT = 95,
1019 VK_FORMAT_R16G16B16A16_SINT = 96,
1020 VK_FORMAT_R16G16B16A16_SFLOAT = 97,
1021 VK_FORMAT_R32_UINT = 98,
1022 VK_FORMAT_R32_SINT = 99,
1023 VK_FORMAT_R32_SFLOAT = 100,
1024 VK_FORMAT_R32G32_UINT = 101,
1025 VK_FORMAT_R32G32_SINT = 102,
1026 VK_FORMAT_R32G32_SFLOAT = 103,
1027 VK_FORMAT_R32G32B32_UINT = 104,
1028 VK_FORMAT_R32G32B32_SINT = 105,
1029 VK_FORMAT_R32G32B32_SFLOAT = 106,
1030 VK_FORMAT_R32G32B32A32_UINT = 107,
1031 VK_FORMAT_R32G32B32A32_SINT = 108,
1032 VK_FORMAT_R32G32B32A32_SFLOAT = 109,
1033 VK_FORMAT_R64_UINT = 110,
1034 VK_FORMAT_R64_SINT = 111,
1035 VK_FORMAT_R64_SFLOAT = 112,
1036 VK_FORMAT_R64G64_UINT = 113,
1037 VK_FORMAT_R64G64_SINT = 114,
1038 VK_FORMAT_R64G64_SFLOAT = 115,
1039 VK_FORMAT_R64G64B64_UINT = 116,
1040 VK_FORMAT_R64G64B64_SINT = 117,
1041 VK_FORMAT_R64G64B64_SFLOAT = 118,
1042 VK_FORMAT_R64G64B64A64_UINT = 119,
1043 VK_FORMAT_R64G64B64A64_SINT = 120,
1044 VK_FORMAT_R64G64B64A64_SFLOAT = 121,
1045 VK_FORMAT_B10G11R11_UFLOAT_PACK32 = 122,
1046 VK_FORMAT_E5B9G9R9_UFLOAT_PACK32 = 123,
1047 VK_FORMAT_D16_UNORM = 124,
1048 VK_FORMAT_X8_D24_UNORM_PACK32 = 125,
1049 VK_FORMAT_D32_SFLOAT = 126,
1050 VK_FORMAT_S8_UINT = 127,
1051 VK_FORMAT_D16_UNORM_S8_UINT = 128,
1052 VK_FORMAT_D24_UNORM_S8_UINT = 129,
1053 VK_FORMAT_D32_SFLOAT_S8_UINT = 130,
1054 VK_FORMAT_BC1_RGB_UNORM_BLOCK = 131,
1055 VK_FORMAT_BC1_RGB_SRGB_BLOCK = 132,
1056 VK_FORMAT_BC1_RGBA_UNORM_BLOCK = 133,
1057 VK_FORMAT_BC1_RGBA_SRGB_BLOCK = 134,
1058 VK_FORMAT_BC2_UNORM_BLOCK = 135,
1059 VK_FORMAT_BC2_SRGB_BLOCK = 136,
1060 VK_FORMAT_BC3_UNORM_BLOCK = 137,
1061 VK_FORMAT_BC3_SRGB_BLOCK = 138,
1062 VK_FORMAT_BC4_UNORM_BLOCK = 139,
1063 VK_FORMAT_BC4_SNORM_BLOCK = 140,
1064 VK_FORMAT_BC5_UNORM_BLOCK = 141,
1065 VK_FORMAT_BC5_SNORM_BLOCK = 142,
1066 VK_FORMAT_BC6H_UFLOAT_BLOCK = 143,
1067 VK_FORMAT_BC6H_SFLOAT_BLOCK = 144,
1068 VK_FORMAT_BC7_UNORM_BLOCK = 145,
1069 VK_FORMAT_BC7_SRGB_BLOCK = 146,
1070 VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK = 147,
1071 VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK = 148,
1072 VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK = 149,
1073 VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK = 150,
1074 VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK = 151,
1075 VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK = 152,
1076 VK_FORMAT_EAC_R11_UNORM_BLOCK = 153,
1077 VK_FORMAT_EAC_R11_SNORM_BLOCK = 154,
1078 VK_FORMAT_EAC_R11G11_UNORM_BLOCK = 155,
1079 VK_FORMAT_EAC_R11G11_SNORM_BLOCK = 156,
1080 VK_FORMAT_ASTC_4x4_UNORM_BLOCK = 157,
1081 VK_FORMAT_ASTC_4x4_SRGB_BLOCK = 158,
1082 VK_FORMAT_ASTC_5x4_UNORM_BLOCK = 159,
1083 VK_FORMAT_ASTC_5x4_SRGB_BLOCK = 160,
1084 VK_FORMAT_ASTC_5x5_UNORM_BLOCK = 161,
1085 VK_FORMAT_ASTC_5x5_SRGB_BLOCK = 162,
1086 VK_FORMAT_ASTC_6x5_UNORM_BLOCK = 163,
1087 VK_FORMAT_ASTC_6x5_SRGB_BLOCK = 164,
1088 VK_FORMAT_ASTC_6x6_UNORM_BLOCK = 165,
1089 VK_FORMAT_ASTC_6x6_SRGB_BLOCK = 166,
1090 VK_FORMAT_ASTC_8x5_UNORM_BLOCK = 167,
1091 VK_FORMAT_ASTC_8x5_SRGB_BLOCK = 168,
1092 VK_FORMAT_ASTC_8x6_UNORM_BLOCK = 169,
1093 VK_FORMAT_ASTC_8x6_SRGB_BLOCK = 170,
1094 VK_FORMAT_ASTC_8x8_UNORM_BLOCK = 171,
1095 VK_FORMAT_ASTC_8x8_SRGB_BLOCK = 172,
1096 VK_FORMAT_ASTC_10x5_UNORM_BLOCK = 173,
1097 VK_FORMAT_ASTC_10x5_SRGB_BLOCK = 174,
1098 VK_FORMAT_ASTC_10x6_UNORM_BLOCK = 175,
1099 VK_FORMAT_ASTC_10x6_SRGB_BLOCK = 176,
1100 VK_FORMAT_ASTC_10x8_UNORM_BLOCK = 177,
1101 VK_FORMAT_ASTC_10x8_SRGB_BLOCK = 178,
1102 VK_FORMAT_ASTC_10x10_UNORM_BLOCK = 179,
1103 VK_FORMAT_ASTC_10x10_SRGB_BLOCK = 180,
1104 VK_FORMAT_ASTC_12x10_UNORM_BLOCK = 181,
1105 VK_FORMAT_ASTC_12x10_SRGB_BLOCK = 182,
1106 VK_FORMAT_ASTC_12x12_UNORM_BLOCK = 183,
1107 VK_FORMAT_ASTC_12x12_SRGB_BLOCK = 184,
Chris Forbes289cb792016-12-30 15:03:55 +13001108
Ian Elliott28bd2c32017-10-13 09:21:12 -06001109 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04001110 VK_FORMAT_G8B8G8R8_422_UNORM = 1000156000,
1111 VK_FORMAT_B8G8R8G8_422_UNORM = 1000156001,
1112 VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM = 1000156002,
1113 VK_FORMAT_G8_B8R8_2PLANE_420_UNORM = 1000156003,
1114 VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM = 1000156004,
1115 VK_FORMAT_G8_B8R8_2PLANE_422_UNORM = 1000156005,
1116 VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM = 1000156006,
1117 VK_FORMAT_R10X6_UNORM_PACK16 = 1000156007,
1118 VK_FORMAT_R10X6G10X6_UNORM_2PACK16 = 1000156008,
1119 VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16 = 1000156009,
1120 VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16 = 1000156010,
1121 VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16 = 1000156011,
1122 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16 = 1000156012,
1123 VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16 = 1000156013,
1124 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16 = 1000156014,
1125 VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16 = 1000156015,
1126 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16 = 1000156016,
1127 VK_FORMAT_R12X4_UNORM_PACK16 = 1000156017,
1128 VK_FORMAT_R12X4G12X4_UNORM_2PACK16 = 1000156018,
1129 VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16 = 1000156019,
1130 VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16 = 1000156020,
1131 VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16 = 1000156021,
1132 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16 = 1000156022,
1133 VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16 = 1000156023,
1134 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16 = 1000156024,
1135 VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16 = 1000156025,
1136 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16 = 1000156026,
1137 VK_FORMAT_G16B16G16R16_422_UNORM = 1000156027,
1138 VK_FORMAT_B16G16R16G16_422_UNORM = 1000156028,
1139 VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM = 1000156029,
1140 VK_FORMAT_G16_B16R16_2PLANE_420_UNORM = 1000156030,
1141 VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM = 1000156031,
1142 VK_FORMAT_G16_B16R16_2PLANE_422_UNORM = 1000156032,
1143 VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM = 1000156033,
1144
Jesse Hallad250842017-03-10 18:35:38 -08001145 //@extension("VK_IMG_format_pvrtc") // 28
Jesse Halleb02c472017-02-24 15:13:45 -08001146 VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG = 1000054000,
1147 VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG = 1000054001,
1148 VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG = 1000054002,
1149 VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG = 1000054003,
1150 VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG = 1000054004,
1151 VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG = 1000054005,
1152 VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG = 1000054006,
1153 VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG = 1000054007,
Jesse Hall076f95d2017-09-20 11:34:47 -07001154
1155 //@extension("VK_KHR_sampler_ycbcr_conversion") // 157
1156 VK_FORMAT_G8B8G8R8_422_UNORM_KHR = 1000156000,
1157 VK_FORMAT_B8G8R8G8_422_UNORM_KHR = 1000156001,
1158 VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM_KHR = 1000156002,
1159 VK_FORMAT_G8_B8R8_2PLANE_420_UNORM_KHR = 1000156003,
1160 VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM_KHR = 1000156004,
1161 VK_FORMAT_G8_B8R8_2PLANE_422_UNORM_KHR = 1000156005,
1162 VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM_KHR = 1000156006,
1163 VK_FORMAT_R10X6_UNORM_PACK16_KHR = 1000156007,
1164 VK_FORMAT_R10X6G10X6_UNORM_2PACK16_KHR = 1000156008,
1165 VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16_KHR = 1000156009,
1166 VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16_KHR = 1000156010,
1167 VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16_KHR = 1000156011,
1168 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16_KHR = 1000156012,
1169 VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16_KHR = 1000156013,
1170 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16_KHR = 1000156014,
1171 VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16_KHR = 1000156015,
1172 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16_KHR = 1000156016,
1173 VK_FORMAT_R12X4_UNORM_PACK16_KHR = 1000156017,
1174 VK_FORMAT_R12X4G12X4_UNORM_2PACK16_KHR = 1000156018,
1175 VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16_KHR = 1000156019,
1176 VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16_KHR = 1000156020,
1177 VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16_KHR = 1000156021,
1178 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16_KHR = 1000156022,
1179 VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16_KHR = 1000156023,
1180 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16_KHR = 1000156024,
1181 VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16_KHR = 1000156025,
1182 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16_KHR = 1000156026,
1183 VK_FORMAT_G16B16G16R16_422_UNORM_KHR = 1000156027,
1184 VK_FORMAT_B16G16R16G16_422_UNORM_KHR = 1000156028,
1185 VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM_KHR = 1000156029,
1186 VK_FORMAT_G16_B16R16_2PLANE_420_UNORM_KHR = 1000156030,
1187 VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM_KHR = 1000156031,
1188 VK_FORMAT_G16_B16R16_2PLANE_422_UNORM_KHR = 1000156032,
1189 VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM_KHR = 1000156033,
Jesse Halld27f6aa2015-08-15 17:58:48 -07001190}
1191
Jesse Halld27f6aa2015-08-15 17:58:48 -07001192/// Structure type enumerant
1193enum VkStructureType {
1194 VK_STRUCTURE_TYPE_APPLICATION_INFO = 0,
Jesse Hallc7467b72015-11-29 21:05:26 -08001195 VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO = 1,
1196 VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO = 2,
1197 VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO = 3,
1198 VK_STRUCTURE_TYPE_SUBMIT_INFO = 4,
Jesse Hallf4ab2b12015-11-30 16:04:55 -08001199 VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO = 5,
Jesse Hallc7467b72015-11-29 21:05:26 -08001200 VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE = 6,
1201 VK_STRUCTURE_TYPE_BIND_SPARSE_INFO = 7,
1202 VK_STRUCTURE_TYPE_FENCE_CREATE_INFO = 8,
1203 VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO = 9,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07001204 VK_STRUCTURE_TYPE_EVENT_CREATE_INFO = 10,
Jesse Hallc7467b72015-11-29 21:05:26 -08001205 VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO = 11,
1206 VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO = 12,
1207 VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO = 13,
1208 VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO = 14,
1209 VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO = 15,
1210 VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO = 16,
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08001211 VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO = 17,
1212 VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO = 18,
1213 VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO = 19,
1214 VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO = 20,
1215 VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO = 21,
1216 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO = 22,
1217 VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO = 23,
1218 VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO = 24,
1219 VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO = 25,
1220 VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO = 26,
1221 VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO = 27,
1222 VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO = 28,
1223 VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO = 29,
1224 VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO = 30,
1225 VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO = 31,
1226 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO = 32,
1227 VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO = 33,
Jesse Hallf4ab2b12015-11-30 16:04:55 -08001228 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO = 34,
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08001229 VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET = 35,
1230 VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET = 36,
1231 VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO = 37,
1232 VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO = 38,
1233 VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO = 39,
Jesse Hallf4ab2b12015-11-30 16:04:55 -08001234 VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO = 40,
Jesse Hall3dd678a2016-01-08 21:52:01 -08001235 VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO = 41,
1236 VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO = 42,
1237 VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO = 43,
1238 VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER = 44,
1239 VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER = 45,
1240 VK_STRUCTURE_TYPE_MEMORY_BARRIER = 46,
1241 VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO = 47,
1242 VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO = 48,
Jesse Hall1356b0d2015-11-23 17:24:58 -08001243
Ian Elliott28bd2c32017-10-13 09:21:12 -06001244 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04001245 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES = 1000094000,
1246 VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO = 1000157000,
1247 VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO = 1000157001,
1248 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES = 1000083000,
1249 VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS = 1000127000,
1250 VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO = 1000127001,
1251 VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO = 1000060000,
1252 VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO = 1000060003,
1253 VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO = 1000060004,
1254 VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO = 1000060005,
1255 VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO = 1000060006,
1256 VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO = 1000060013,
1257 VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO = 1000060014,
1258 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES = 1000070000,
1259 VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO = 1000070001,
1260 VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2 = 1000146000,
1261 VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2 = 1000146001,
1262 VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2 = 1000146002,
1263 VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2 = 1000146003,
1264 VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2 = 1000146004,
1265 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2 = 1000059000,
1266 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2 = 1000059001,
1267 VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2 = 1000059002,
1268 VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2 = 1000059003,
1269 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2 = 1000059004,
1270 VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2 = 1000059005,
1271 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2 = 1000059006,
1272 VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2 = 1000059007,
1273 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2 = 1000059008,
1274 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES = 1000117000,
1275 VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO = 1000117001,
1276 VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO = 1000117002,
1277 VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO = 1000117003,
1278 VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO = 1000053000,
1279 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES = 1000053001,
1280 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES = 1000053002,
1281 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES = 1000120000,
1282 VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO = 1000145000,
1283 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES = 1000145001,
1284 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES = 1000145002,
1285 VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2 = 1000145003,
1286 VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO = 1000156000,
1287 VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO = 1000156001,
1288 VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO = 1000156002,
1289 VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO = 1000156003,
1290 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES = 1000156004,
1291 VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES = 1000156005,
1292 VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO = 1000085000,
1293 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO = 1000071000,
1294 VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES = 1000071001,
1295 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO = 1000071002,
1296 VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES = 1000071003,
1297 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES = 1000071004,
1298 VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO = 1000072000,
1299 VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO = 1000072001,
1300 VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO = 1000072002,
1301 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO = 1000112000,
1302 VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES = 1000112001,
1303 VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO = 1000113000,
1304 VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO = 1000077000,
1305 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO = 1000076000,
1306 VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES = 1000076001,
1307 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES = 1000168000,
1308 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT = 1000168001,
1309 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES = 1000063000,
1310 VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR = 1000060007,
1311
Jesse Hallad250842017-03-10 18:35:38 -08001312 //@extension("VK_KHR_swapchain") // 2
Jesse Hallbd888842015-11-30 21:44:14 -08001313 VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR = 1000001000,
1314 VK_STRUCTURE_TYPE_PRESENT_INFO_KHR = 1000001001,
Daniel Koch09f7bf92017-10-05 00:26:58 -04001315 // added as interaction from VK_KHR_device_group / VK 1.1
1316 VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR = 1000060008,
1317 VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR = 1000060009,
1318 VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR = 1000060010,
1319 VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR = 1000060011,
1320 VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR = 1000060012,
Jesse Hall1356b0d2015-11-23 17:24:58 -08001321
Jesse Hallad250842017-03-10 18:35:38 -08001322 //@extension("VK_KHR_display") // 3
Jesse Hallbd888842015-11-30 21:44:14 -08001323 VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR = 1000002000,
1324 VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR = 1000002001,
Jesse Hall1356b0d2015-11-23 17:24:58 -08001325
Jesse Hallad250842017-03-10 18:35:38 -08001326 //@extension("VK_KHR_display_swapchain") // 4
Jesse Hallbd888842015-11-30 21:44:14 -08001327 VK_STRUCTURE_TYPE_DISPLAY_DISPLAY_PRESENT_INFO_KHR = 1000003000,
Jesse Hallf9fa9a52016-01-08 16:08:51 -08001328
Jesse Hallad250842017-03-10 18:35:38 -08001329 //@extension("VK_KHR_xlib_surface") // 5
Jesse Hallf9fa9a52016-01-08 16:08:51 -08001330 VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR = 1000004000,
1331
Jesse Hallad250842017-03-10 18:35:38 -08001332 //@extension("VK_KHR_xcb_surface") // 6
Jesse Hallf9fa9a52016-01-08 16:08:51 -08001333 VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR = 1000005000,
1334
Jesse Hallad250842017-03-10 18:35:38 -08001335 //@extension("VK_KHR_wayland_surface") // 7
Jesse Hallf9fa9a52016-01-08 16:08:51 -08001336 VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR = 1000006000,
1337
Jesse Hallad250842017-03-10 18:35:38 -08001338 //@extension("VK_KHR_mir_surface") // 8
Jesse Hallf9fa9a52016-01-08 16:08:51 -08001339 VK_STRUCTURE_TYPE_MIR_SURFACE_CREATE_INFO_KHR = 1000007000,
1340
Jesse Hallad250842017-03-10 18:35:38 -08001341 //@extension("VK_KHR_android_surface") // 9
Jesse Hallf9fa9a52016-01-08 16:08:51 -08001342 VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR = 1000008000,
1343
Jesse Hallad250842017-03-10 18:35:38 -08001344 //@extension("VK_KHR_win32_surface") // 10
Jesse Hallf9fa9a52016-01-08 16:08:51 -08001345 VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR = 1000009000,
Jesse Hall543a7ff2016-01-08 16:38:30 -08001346
Jesse Hallad250842017-03-10 18:35:38 -08001347 //@extension("VK_ANDROID_native_buffer") // 11
Chia-I Wub262ddc2016-03-22 07:38:20 +08001348 VK_STRUCTURE_TYPE_NATIVE_BUFFER_ANDROID = 1000010000,
Chris Forbes8e4438b2016-12-07 16:26:49 +13001349 VK_STRUCTURE_TYPE_SWAPCHAIN_IMAGE_CREATE_INFO_ANDROID = 1000010001,
Chris Forbes1d4e5542017-02-15 19:38:50 +13001350 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENTATION_PROPERTIES_ANDROID = 1000010002,
Chia-I Wub262ddc2016-03-22 07:38:20 +08001351
Jesse Hallad250842017-03-10 18:35:38 -08001352 //@extension("VK_EXT_debug_report") // 12
Jesse Hall26763382016-05-20 07:13:52 -07001353 VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT = 1000011000,
1354
Jesse Hallad250842017-03-10 18:35:38 -08001355 //@extension("VK_AMD_rasterization_order") // 19
Jesse Hall26763382016-05-20 07:13:52 -07001356 VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD = 1000018000,
1357
Jesse Hallad250842017-03-10 18:35:38 -08001358 //@extension("VK_EXT_debug_marker") // 23
Jesse Hall26763382016-05-20 07:13:52 -07001359 VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT = 1000022000,
Jesse Hall26763382016-05-20 07:13:52 -07001360 VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT = 1000022001,
Jesse Hall26763382016-05-20 07:13:52 -07001361 VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT = 1000022002,
Jesse Hall56d386a2016-07-26 15:20:40 -07001362
Jesse Hallad250842017-03-10 18:35:38 -08001363 //@extension("VK_NV_dedicated_allocation") // 27
Jesse Hall56d386a2016-07-26 15:20:40 -07001364 VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV = 1000026000,
Jesse Hall56d386a2016-07-26 15:20:40 -07001365 VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV = 1000026001,
Jesse Hall56d386a2016-07-26 15:20:40 -07001366 VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV = 1000026002,
Chris Forbes289cb792016-12-30 15:03:55 +13001367
Jesse Hall7ba0ac72017-07-07 17:13:23 -07001368 //@extension("VK_AMD_texture_gather_bias_lod") // 42
1369 VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD = 1000041000,
1370
Daniel Koch09f7bf92017-10-05 00:26:58 -04001371 //@extension("VK_KHR_multiview") // 54
1372 VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO_KHR = 1000053000,
1373 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES_KHR = 1000053001,
1374 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES_KHR = 1000053002,
Jesse Hallad250842017-03-10 18:35:38 -08001375
1376 //@extension("VK_NV_external_memory") // 57
Jesse Halleb02c472017-02-24 15:13:45 -08001377 VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV = 1000056000,
1378 VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV = 1000056001,
Chris Forbes289cb792016-12-30 15:03:55 +13001379
Jesse Hallad250842017-03-10 18:35:38 -08001380 //@extension("VK_NV_external_memory_win32") // 58
Jesse Halleb02c472017-02-24 15:13:45 -08001381 VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV = 1000057000,
1382 VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV = 1000057001,
Chris Forbes289cb792016-12-30 15:03:55 +13001383
Jesse Hallad250842017-03-10 18:35:38 -08001384 //@extension("VK_NV_win32_keyed_mutex") // 59
Chris Forbes289cb792016-12-30 15:03:55 +13001385 VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV = 1000058000,
1386
Jesse Hallad250842017-03-10 18:35:38 -08001387 //@extension("VK_KHR_get_physical_device_properties2") // 60
Jesse Hall889cd9a2017-02-25 22:12:23 -08001388 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2_KHR = 1000059000,
1389 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2_KHR = 1000059001,
1390 VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2_KHR = 1000059002,
1391 VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2_KHR = 1000059003,
1392 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2_KHR = 1000059004,
1393 VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2_KHR = 1000059005,
1394 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2_KHR = 1000059006,
1395 VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2_KHR = 1000059007,
Chris Forbes1194ede2016-12-30 16:29:25 +13001396 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2_KHR = 1000059008,
1397
Daniel Koch09f7bf92017-10-05 00:26:58 -04001398 //@extension("VK_KHR_device_group") // 61
1399 VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO_KHR = 1000060000,
1400 VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO_KHR = 1000060003,
1401 VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO_KHR = 1000060004,
1402 VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO_KHR = 1000060005,
1403 VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO_KHR = 1000060006,
1404 VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR = 1000060007,
1405 // tokens 08-12 are listed with VK_KHR_swapchain
1406 VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO_KHR = 1000060013,
1407 VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO_KHR = 1000060014,
Jesse Hallad250842017-03-10 18:35:38 -08001408
1409 //@extension("VK_EXT_validation_flags") // 62
Jesse Halleb02c472017-02-24 15:13:45 -08001410 VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT = 1000061000,
Chris Forbes289cb792016-12-30 15:03:55 +13001411
Jesse Hallad250842017-03-10 18:35:38 -08001412 //@extension("VK_NN_vi_surface") // 63
Jesse Hall77ad05b2017-03-10 22:02:20 -08001413 VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN = 1000062000,
1414
Daniel Koch09f7bf92017-10-05 00:26:58 -04001415 //@extension("VK_KHR_device_group_creation") // 71
1416 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES_KHR = 1000070000,
1417 VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO_KHR = 1000070001,
Jesse Hallad250842017-03-10 18:35:38 -08001418
Jesse Hall9492f992017-08-28 12:10:06 -07001419 //@extension("VK_KHR_external_memory_capabilities") // 72
1420 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO_KHR = 1000071000,
1421 VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES_KHR = 1000071001,
1422 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO_KHR = 1000071002,
1423 VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES_KHR = 1000071003,
1424 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES_KHR = 1000071004,
Jesse Hallad250842017-03-10 18:35:38 -08001425
Jesse Hall9492f992017-08-28 12:10:06 -07001426 //@extension("VK_KHR_external_memory") // 73
1427 VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO_KHR = 1000072000,
1428 VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_KHR = 1000072001,
1429 VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_KHR = 1000072002,
Jesse Hallad250842017-03-10 18:35:38 -08001430
Jesse Hall9492f992017-08-28 12:10:06 -07001431 //@extension("VK_KHR_external_memory_win32") // 74
1432 VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR = 1000073000,
1433 VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR = 1000073001,
1434 VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR = 1000073002,
Jesse Hallad250842017-03-10 18:35:38 -08001435
Jesse Hall9492f992017-08-28 12:10:06 -07001436 //@extension("VK_KHR_external_memory_fd") // 75
1437 VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR = 1000074000,
1438 VK_STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR = 1000074001,
Jesse Hallad250842017-03-10 18:35:38 -08001439
Jesse Hall9492f992017-08-28 12:10:06 -07001440 //@extension("VK_KHR_win32_keyed_mutex") // 76
1441 VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR = 1000075000,
Jesse Hallad250842017-03-10 18:35:38 -08001442
Jesse Hall9492f992017-08-28 12:10:06 -07001443 //@extension("VK_KHR_external_semaphore_capabilities") // 77
1444 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO_KHR = 1000076000,
1445 VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES_KHR = 1000076001,
Jesse Hallad250842017-03-10 18:35:38 -08001446
Jesse Hall9492f992017-08-28 12:10:06 -07001447 //@extension("VK_KHR_external_semaphore") // 78
1448 VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO_KHR = 1000077000,
Jesse Hallad250842017-03-10 18:35:38 -08001449
Jesse Hall9492f992017-08-28 12:10:06 -07001450 //@extension("VK_KHR_external_semaphore_win32") // 79
1451 VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR = 1000078000,
1452 VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR = 1000078001,
1453 VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR = 1000078002,
Jesse Hallad250842017-03-10 18:35:38 -08001454
Jesse Hall9492f992017-08-28 12:10:06 -07001455 //@extension("VK_KHR_external_semaphore_fd") // 80
1456 VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR = 1000079000,
1457 VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR = 1000079001,
Jesse Hallad250842017-03-10 18:35:38 -08001458
1459 //@extension("VK_KHR_push_descriptor") // 81
1460 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR = 1000080000,
1461
Jesse Hall9492f992017-08-28 12:10:06 -07001462 //@extension("VK_KHR_16bit_storage") // 84
1463 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES_KHR = 1000083000,
1464
Jesse Hallad250842017-03-10 18:35:38 -08001465 //@extension("VK_KHR_incremental_present") // 85
Jesse Hall889cd9a2017-02-25 22:12:23 -08001466 VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR = 1000084000,
Chris Forbes289cb792016-12-30 15:03:55 +13001467
Jesse Halla13a3cf2018-07-09 15:51:52 -07001468 //@extension("VK_EXT_conditional_rendering") // 82
1469 VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT = 1000081000,
1470 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT = 1000081001,
1471 VK_STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT = 1000081002,
1472
Jesse Hallad250842017-03-10 18:35:38 -08001473 //@extension("VK_KHR_descriptor_update_template") // 86
1474 VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO_KHR = 1000085000,
1475
1476 //@extension("VK_NVX_device_generated_commands") // 87
Jesse Halleb02c472017-02-24 15:13:45 -08001477 VK_STRUCTURE_TYPE_OBJECT_TABLE_CREATE_INFO_NVX = 1000086000,
1478 VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NVX = 1000086001,
1479 VK_STRUCTURE_TYPE_CMD_PROCESS_COMMANDS_INFO_NVX = 1000086002,
1480 VK_STRUCTURE_TYPE_CMD_RESERVE_SPACE_FOR_COMMANDS_INFO_NVX = 1000086003,
1481 VK_STRUCTURE_TYPE_DEVICE_GENERATED_COMMANDS_LIMITS_NVX = 1000086004,
1482 VK_STRUCTURE_TYPE_DEVICE_GENERATED_COMMANDS_FEATURES_NVX = 1000086005,
Jesse Hall77ad05b2017-03-10 22:02:20 -08001483
Jesse Hallad250842017-03-10 18:35:38 -08001484 //@extension("VK_NV_clip_space_w_scaling") // 88
1485 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV = 1000087000,
1486
1487 //@extension("VK_EXT_display_surface_counter") // 91
Jesse Hall77726222017-09-19 14:49:27 -05001488 VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT = 1000090000,
Jesse Hall77ad05b2017-03-10 22:02:20 -08001489
Jesse Hallad250842017-03-10 18:35:38 -08001490 //@extension("VK_EXT_display_control") // 92
Jesse Hall77ad05b2017-03-10 22:02:20 -08001491 VK_STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT = 1000091000,
1492 VK_STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT = 1000091001,
1493 VK_STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT = 1000091002,
1494 VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT = 1000091003,
Jesse Hallad250842017-03-10 18:35:38 -08001495
1496 //@extension("VK_GOOGLE_display_timing") // 93
1497 VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE = 1000092000,
1498
1499 //@extension("VK_NVX_multiview_per_view_attributes") // 98
1500 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX = 1000097000,
1501
1502 //@extension("VK_NV_viewport_swizzle") // 99
1503 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV = 1000098000,
1504
1505 //@extension("VK_EXT_discard_rectangles") // 100
1506 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT = 1000099000,
1507 VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT = 1000099001,
1508
Jesse Hall8c954d32018-01-17 22:06:20 -08001509 //@extension("VK_EXT_conservative_rasterization") // 102
1510 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT = 1000101000,
1511 VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT = 1000101001,
1512
Jesse Halla13a3cf2018-07-09 15:51:52 -07001513 //@extension("VK_KHR_create_renderpass2") // 110
1514 VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2_KHR = 1000109000,
1515 VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2_KHR = 1000109001,
1516 VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2_KHR = 1000109002,
1517 VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2_KHR = 1000109003,
1518 VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2_KHR = 1000109004,
1519 VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO_KHR = 1000109005,
1520 VK_STRUCTURE_TYPE_SUBPASS_END_INFO_KHR = 1000109006,
1521
Jesse Hallfdc8ab32017-03-10 21:01:57 -08001522 //@extension("VK_EXT_hdr_metadata") // 106
1523 VK_STRUCTURE_TYPE_HDR_METADATA_EXT = 1000105000,
1524
Jesse Hall05556b12017-05-18 17:40:25 -07001525 //@extension("VK_KHR_shared_presentable_image") // 112
Chris Forbese2d3ee12017-03-16 16:10:15 +13001526 VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR = 1000111000,
1527
Jesse Hall9492f992017-08-28 12:10:06 -07001528 //@extension("VK_KHR_external_fence_capabilities") // 113
1529 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO_KHR = 1000112000,
1530 VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES_KHR = 1000112001,
1531
1532 //@extension("VK_KHR_external_fence") // 114
1533 VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO_KHR = 1000113000,
1534
1535 //@extension("VK_KHR_external_fence_win32") // 115
1536 VK_STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR = 1000114000,
1537 VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR = 1000114001,
1538 VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR = 1000114002,
1539
1540 //@extension("VK_KHR_external_fence_fd") // 117
1541 VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR = 1000115000,
1542 VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR = 1000115001,
1543
Jesse Hall076f95d2017-09-20 11:34:47 -07001544 //@extension("VK_KHR_maintenance2") // 118
1545 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES_KHR = 1000117000,
1546 VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO_KHR = 1000117001,
1547 VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO_KHR = 1000117002,
1548 VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO_KHR = 1000117003,
1549
Jesse Hall05556b12017-05-18 17:40:25 -07001550 //@extension("VK_KHR_get_surface_capabilities2") // 120
Chris Forbese2d3ee12017-03-16 16:10:15 +13001551 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR = 1000119000,
1552 VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR = 1000119001,
1553 VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR = 1000119002,
1554
Jesse Hall9492f992017-08-28 12:10:06 -07001555 //@extension("VK_KHR_variable_pointers") // 121
1556 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES_KHR = 1000120000,
1557
Jesse Hall54f8d132018-04-18 08:16:59 -07001558 //@extension("VK_KHR_display_properties2") // 122
1559 VK_STRUCTURE_TYPE_DISPLAY_PROPERTIES_2_KHR = 1000121000,
1560 VK_STRUCTURE_TYPE_DISPLAY_PLANE_PROPERTIES_2_KHR = 1000121001,
1561 VK_STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR = 1000121002,
1562 VK_STRUCTURE_TYPE_DISPLAY_PLANE_INFO_2_KHR = 1000121003,
1563 VK_STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR = 1000121004,
1564
Jesse Hallad250842017-03-10 18:35:38 -08001565 //@extension("VK_MVK_ios_surface") // 123
1566 VK_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK = 1000122000,
1567
1568 //@extension("VK_MVK_macos_surface") // 124
1569 VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK = 1000123000,
Jesse Hall7ba0ac72017-07-07 17:13:23 -07001570
Jesse Hall9492f992017-08-28 12:10:06 -07001571 //@extension("VK_KHR_dedicated_allocation") // 128
1572 VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS_KHR = 1000127000,
1573 VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO_KHR = 1000127001,
1574
Jesse Hall8c954d32018-01-17 22:06:20 -08001575 //@extension("VK_EXT_debug_utils") // 129
1576 VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT = 1000128000,
1577 VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT = 1000128001,
1578 VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT = 1000128002,
1579 VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT = 1000128003,
1580 VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT = 1000128004,
1581
Jesse Hall36215a92018-01-18 15:04:37 -08001582 //@extension("VK_ANDROID_external_memory_android_hardware_buffer") // 130
1583 VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID = 1000129000,
1584 VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID = 1000129001,
1585 VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID = 1000129002,
1586 VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID = 1000129003,
1587 VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID = 1000129004,
1588 VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID = 1000129005,
1589
Jesse Hall7ba0ac72017-07-07 17:13:23 -07001590 //@extension("VK_EXT_sampler_filter_minmax") // 131
1591 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES_EXT = 1000130000,
1592 VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO_EXT = 1000130001,
1593
Jesse Hall77726222017-09-19 14:49:27 -05001594 //@extension("VK_EXT_sample_locations") // 144
1595 VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT = 1000143000,
1596 VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT = 1000143001,
1597 VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT = 1000143002,
1598 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT = 1000143003,
1599 VK_STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT = 1000143004,
1600
Jesse Hall9492f992017-08-28 12:10:06 -07001601 //@extension("VK_KHR_get_memory_requirements2") // 147
1602 VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2_KHR = 1000146000,
1603 VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2_KHR = 1000146001,
1604 VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2_KHR = 1000146002,
1605 VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2_KHR = 1000146003,
1606 VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2_KHR = 1000146004,
1607
Jesse Hall076f95d2017-09-20 11:34:47 -07001608 //@extension("VK_KHR_image_format_list") // 148
1609 VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO_KHR = 1000147000,
1610
Jesse Hall7ba0ac72017-07-07 17:13:23 -07001611 //@extension("VK_EXT_blend_operation_advanced") // 149
1612 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT = 1000148000,
1613 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT = 1000148001,
1614 VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT = 1000148002,
1615
1616 //@extension("VK_NV_fragment_coverage_to_color") // 150
1617 VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV = 1000149000,
1618
Jesse Hall77726222017-09-19 14:49:27 -05001619 //@extension("VK_NV_framebuffer_mixed_samples") // 153
Jesse Hall7ba0ac72017-07-07 17:13:23 -07001620 VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV = 1000152000,
Jesse Hall77726222017-09-19 14:49:27 -05001621
Jesse Hall076f95d2017-09-20 11:34:47 -07001622 //@extension("VK_KHR_sampler_ycbcr_conversion") // 157
1623 VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO_KHR = 1000156000,
1624 VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO_KHR = 1000156001,
1625 VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO_KHR = 1000156002,
1626 VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO_KHR = 1000156003,
1627 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES_KHR = 1000156004,
1628 VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES_KHR = 1000156005,
1629
1630 //@extension("VK_KHR_bind_memory2") // 158
1631 VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO_KHR = 1000157000,
1632 VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO_KHR = 1000157001,
1633
Jesse Hall77726222017-09-19 14:49:27 -05001634 //@extension("VK_EXT_validation_cache") // 161
1635 VK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT = 1000160000,
1636 VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT = 1000160001,
Daniel Koch09f7bf92017-10-05 00:26:58 -04001637
Jesse Hall72e6a132018-04-06 13:00:44 -07001638 //@extension("VK_EXT_descriptor_indexing") // 162
1639 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO_EXT = 1000161000,
1640 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES_EXT = 1000161001,
1641 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES_EXT = 1000161002,
1642 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO_EXT = 1000161003,
1643 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT_EXT = 1000161004,
1644
Daniel Koch09f7bf92017-10-05 00:26:58 -04001645 //@extension("VK_KHR_maintenance3") // 169
1646 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES_KHR = 1000168000,
1647 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT_KHR = 1000168001,
Jesse Hall8c954d32018-01-17 22:06:20 -08001648
1649 //@extension("VK_EXT_global_priority") // 175
1650 VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT = 1000174000,
1651
Jesse Halla13a3cf2018-07-09 15:51:52 -07001652 //@extension("VK_KHR_8bit_storage") // 178
1653 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES_KHR = 1000177000,
1654
Jesse Hall8c954d32018-01-17 22:06:20 -08001655 //@extension("VK_EXT_external_memory_host") // 179
1656 VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT = 1000178000,
1657 VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT = 1000178001,
1658 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT = 1000178002,
Jesse Hall72e6a132018-04-06 13:00:44 -07001659
1660 //@extension("VK_AMD_shader_core_properties") // 186
1661 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD = 1000185000,
1662
1663 //@extension("VK_EXT_vertex_attribute_divisor") // 191
1664 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT = 1000190000,
1665 VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT = 1000190001,
Jesse Halld27f6aa2015-08-15 17:58:48 -07001666}
1667
Jesse Hall65ab5522015-11-30 00:07:16 -08001668enum VkSubpassContents {
1669 VK_SUBPASS_CONTENTS_INLINE = 0x00000000,
1670 VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS = 0x00000001,
Jesse Halld27f6aa2015-08-15 17:58:48 -07001671}
1672
Jesse Hall543a7ff2016-01-08 16:38:30 -08001673enum VkPipelineCacheHeaderVersion {
1674 VK_PIPELINE_CACHE_HEADER_VERSION_ONE = 1,
1675}
1676
Jesse Hallbd888842015-11-30 21:44:14 -08001677@lastUnused(-11)
Jesse Halld27f6aa2015-08-15 17:58:48 -07001678/// Error and return codes
1679enum VkResult {
1680 // Return codes for successful operation execution (positive values)
Jesse Hallbd888842015-11-30 21:44:14 -08001681 VK_SUCCESS = 0,
1682 VK_NOT_READY = 1,
1683 VK_TIMEOUT = 2,
1684 VK_EVENT_SET = 3,
1685 VK_EVENT_RESET = 4,
1686 VK_INCOMPLETE = 5,
Jesse Halld27f6aa2015-08-15 17:58:48 -07001687
Jesse Hallad250842017-03-10 18:35:38 -08001688 //@extension("VK_KHR_swapchain") // 2
Jesse Hallbd888842015-11-30 21:44:14 -08001689 VK_SUBOPTIMAL_KHR = 1000001003,
Jesse Hall1356b0d2015-11-23 17:24:58 -08001690
Jesse Halld27f6aa2015-08-15 17:58:48 -07001691 // Error codes (negative values)
Jesse Hallbd888842015-11-30 21:44:14 -08001692 VK_ERROR_OUT_OF_HOST_MEMORY = 0xFFFFFFFF, // -1
1693 VK_ERROR_OUT_OF_DEVICE_MEMORY = 0xFFFFFFFE, // -2
1694 VK_ERROR_INITIALIZATION_FAILED = 0xFFFFFFFD, // -3
1695 VK_ERROR_DEVICE_LOST = 0xFFFFFFFC, // -4
1696 VK_ERROR_MEMORY_MAP_FAILED = 0xFFFFFFFB, // -5
1697 VK_ERROR_LAYER_NOT_PRESENT = 0xFFFFFFFA, // -6
1698 VK_ERROR_EXTENSION_NOT_PRESENT = 0xFFFFFFF9, // -7
1699 VK_ERROR_FEATURE_NOT_PRESENT = 0xFFFFFFF8, // -8
1700 VK_ERROR_INCOMPATIBLE_DRIVER = 0xFFFFFFF7, // -9
1701 VK_ERROR_TOO_MANY_OBJECTS = 0xFFFFFFF6, // -10
1702 VK_ERROR_FORMAT_NOT_SUPPORTED = 0xFFFFFFF5, // -11
Jesse Hall56d386a2016-07-26 15:20:40 -07001703 VK_ERROR_FRAGMENTED_POOL = 0xFFFFFFF4, // -12
Jesse Hall1356b0d2015-11-23 17:24:58 -08001704
Ian Elliott28bd2c32017-10-13 09:21:12 -06001705 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04001706 VK_ERROR_OUT_OF_POOL_MEMORY = 0xC4642878, // -1000069000
1707 VK_ERROR_INVALID_EXTERNAL_HANDLE = 0xC4641CBD, // -1000072003
1708
Jesse Hallad250842017-03-10 18:35:38 -08001709 //@extension("VK_KHR_surface") // 1
Jesse Hallbd888842015-11-30 21:44:14 -08001710 VK_ERROR_SURFACE_LOST_KHR = 0xC4653600, // -1000000000
Jesse Hallad250842017-03-10 18:35:38 -08001711 VK_ERROR_NATIVE_WINDOW_IN_USE_KHR = 0xC46535FF, // -1000000001
Jesse Halla6429252015-11-29 18:59:42 -08001712
Jesse Hallad250842017-03-10 18:35:38 -08001713 //@extension("VK_KHR_swapchain") // 2
Jesse Hallbd888842015-11-30 21:44:14 -08001714 VK_ERROR_OUT_OF_DATE_KHR = 0xC4653214, // -1000001004
Jesse Hall1356b0d2015-11-23 17:24:58 -08001715
Jesse Hallad250842017-03-10 18:35:38 -08001716 //@extension("VK_KHR_display_swapchain") // 4
Jesse Hallbd888842015-11-30 21:44:14 -08001717 VK_ERROR_INCOMPATIBLE_DISPLAY_KHR = 0xC4652A47, // -1000003001
Jesse Hall1356b0d2015-11-23 17:24:58 -08001718
Jesse Hallad250842017-03-10 18:35:38 -08001719 //@extension("VK_EXT_debug_report") // 12
Jesse Hall543a7ff2016-01-08 16:38:30 -08001720 VK_ERROR_VALIDATION_FAILED_EXT = 0xC4650B07, // -1000011001
Jesse Hall26763382016-05-20 07:13:52 -07001721
Jesse Hallad250842017-03-10 18:35:38 -08001722 //@extension("VK_NV_glsl_shader") // 13
Jesse Hall26763382016-05-20 07:13:52 -07001723 VK_ERROR_INVALID_SHADER_NV = 0xC4650720, // -1000012000
Jesse Hall77ad05b2017-03-10 22:02:20 -08001724
Jesse Hallad250842017-03-10 18:35:38 -08001725 //@extension("VK_KHR_maintenance1") // 70
Jesse Hall77ad05b2017-03-10 22:02:20 -08001726 VK_ERROR_OUT_OF_POOL_MEMORY_KHR = 0xC4642878, // -1000069000
Jesse Hallad250842017-03-10 18:35:38 -08001727
Jesse Hall8c954d32018-01-17 22:06:20 -08001728 //@extension("VK_EXT_global_priority") // 175
1729 VK_ERROR_NOT_PERMITTED_EXT = 0xC4628E4F, // -1000174001
1730
Jesse Hall9492f992017-08-28 12:10:06 -07001731 //@extension("VK_KHR_external_memory") // 73
1732 VK_ERROR_INVALID_EXTERNAL_HANDLE_KHR = 0xC4641CBD, // -1000072003
Jesse Hall72e6a132018-04-06 13:00:44 -07001733
1734 //@extension("VK_EXT_descriptor_indexing") // 162
1735 VK_ERROR_FRAGMENTATION_EXT = 0xc462c118, // -1000161000
Jesse Hall5ae3abb2015-10-08 14:00:22 -07001736}
1737
1738enum VkDynamicState {
1739 VK_DYNAMIC_STATE_VIEWPORT = 0x00000000,
1740 VK_DYNAMIC_STATE_SCISSOR = 0x00000001,
1741 VK_DYNAMIC_STATE_LINE_WIDTH = 0x00000002,
1742 VK_DYNAMIC_STATE_DEPTH_BIAS = 0x00000003,
1743 VK_DYNAMIC_STATE_BLEND_CONSTANTS = 0x00000004,
1744 VK_DYNAMIC_STATE_DEPTH_BOUNDS = 0x00000005,
1745 VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK = 0x00000006,
1746 VK_DYNAMIC_STATE_STENCIL_WRITE_MASK = 0x00000007,
1747 VK_DYNAMIC_STATE_STENCIL_REFERENCE = 0x00000008,
Jesse Hallad250842017-03-10 18:35:38 -08001748
1749 //@extension("VK_NV_clip_space_w_scaling") // 88
1750 VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV = 1000087000,
1751
1752 //@extension("VK_EXT_discard_rectangles") // 100
1753 VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT = 1000099000,
Jesse Hall77726222017-09-19 14:49:27 -05001754
1755 //@extension("VK_EXT_sample_locations") // 144
1756 VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT = 1000143000,
Jesse Halld27f6aa2015-08-15 17:58:48 -07001757}
1758
Jesse Hall05556b12017-05-18 17:40:25 -07001759enum VkObjectType {
1760 VK_OBJECT_TYPE_UNKNOWN = 0,
1761 VK_OBJECT_TYPE_INSTANCE = 1,
1762 VK_OBJECT_TYPE_PHYSICAL_DEVICE = 2,
1763 VK_OBJECT_TYPE_DEVICE = 3,
1764 VK_OBJECT_TYPE_QUEUE = 4,
1765 VK_OBJECT_TYPE_SEMAPHORE = 5,
1766 VK_OBJECT_TYPE_COMMAND_BUFFER = 6,
1767 VK_OBJECT_TYPE_FENCE = 7,
1768 VK_OBJECT_TYPE_DEVICE_MEMORY = 8,
1769 VK_OBJECT_TYPE_BUFFER = 9,
1770 VK_OBJECT_TYPE_IMAGE = 10,
1771 VK_OBJECT_TYPE_EVENT = 11,
1772 VK_OBJECT_TYPE_QUERY_POOL = 12,
1773 VK_OBJECT_TYPE_BUFFER_VIEW = 13,
1774 VK_OBJECT_TYPE_IMAGE_VIEW = 14,
1775 VK_OBJECT_TYPE_SHADER_MODULE = 15,
1776 VK_OBJECT_TYPE_PIPELINE_CACHE = 16,
1777 VK_OBJECT_TYPE_PIPELINE_LAYOUT = 17,
1778 VK_OBJECT_TYPE_RENDER_PASS = 18,
1779 VK_OBJECT_TYPE_PIPELINE = 19,
1780 VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT = 20,
1781 VK_OBJECT_TYPE_SAMPLER = 21,
1782 VK_OBJECT_TYPE_DESCRIPTOR_POOL = 22,
1783 VK_OBJECT_TYPE_DESCRIPTOR_SET = 23,
1784 VK_OBJECT_TYPE_FRAMEBUFFER = 24,
1785 VK_OBJECT_TYPE_COMMAND_POOL = 25,
1786
Ian Elliott28bd2c32017-10-13 09:21:12 -06001787 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04001788 VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION = 1000156000,
1789 VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE = 1000085000,
1790
Jesse Hall05556b12017-05-18 17:40:25 -07001791 //@extension("VK_KHR_surface") // 1
1792 VK_OBJECT_TYPE_SURFACE_KHR = 1000000000,
1793
1794 //@extension("VK_KHR_swapchain") // 2
1795 VK_OBJECT_TYPE_SWAPCHAIN_KHR = 1000001000,
1796
1797 //@extension("VK_KHR_display") // 3
1798 VK_OBJECT_TYPE_DISPLAY_KHR = 1000002000,
1799 VK_OBJECT_TYPE_DISPLAY_MODE_KHR = 1000002001,
1800
1801 //@extension("VK_KHR_debug_report") // 12
1802 VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT = 1000011000,
1803
1804 //@extension("VK_KHR_descriptor_update_template") // 86
1805 VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR = 1000085000,
1806
1807 //@extension("VK_NVX_device_generated_commands") // 87
1808 VK_OBJECT_TYPE_OBJECT_TABLE_NVX = 1000086000,
1809 VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX = 1000086001,
Jesse Hall77726222017-09-19 14:49:27 -05001810
Jesse Hall8c954d32018-01-17 22:06:20 -08001811 //@extension("VK_EXT_debug_utils") // 129
1812 VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT = 1000128000,
1813
Jesse Hall076f95d2017-09-20 11:34:47 -07001814 //@extension("VK_KHR_sampler_ycbcr_conversion") // 157
1815 VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR = 1000156000,
1816
Jesse Hall77726222017-09-19 14:49:27 -05001817 //@extension("VK_EXT_validation_cache") // 161
1818 VK_OBJECT_TYPE_VALIDATION_CACHE_EXT = 1000160000,
Jesse Hall05556b12017-05-18 17:40:25 -07001819}
1820
Daniel Koch09f7bf92017-10-05 00:26:58 -04001821
Ian Elliott28bd2c32017-10-13 09:21:12 -06001822//@vulkan1_1 enums
Daniel Koch09f7bf92017-10-05 00:26:58 -04001823
1824enum VkPointClippingBehavior {
1825 VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES = 0,
1826 VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY = 1,
1827}
1828
1829enum VkTessellationDomainOrigin {
1830 VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT = 0,
1831 VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT = 1,
1832}
1833
1834enum VkSamplerYcbcrModelConversion {
1835 VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY = 0,
1836 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY = 1,
1837 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709 = 2,
1838 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601 = 3,
1839 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020 = 4,
1840}
1841
1842enum VkSamplerYcbcrRange {
1843 VK_SAMPLER_YCBCR_RANGE_ITU_FULL = 0,
1844 VK_SAMPLER_YCBCR_RANGE_ITU_NARROW = 1,
1845}
1846
1847enum VkChromaLocation {
1848 VK_CHROMA_LOCATION_COSITED_EVEN = 0,
1849 VK_CHROMA_LOCATION_MIDPOINT = 1,
1850}
1851
1852enum VkDescriptorUpdateTemplateType {
1853 VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET = 0,
1854 VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR = 1,
1855}
1856
Jesse Halla13a3cf2018-07-09 15:51:52 -07001857enum VkVendorId {
1858 VK_VENDOR_ID_VIV = 0x10001,
1859 VK_VENDOR_ID_VSI = 0x10002,
1860 VK_VENDOR_ID_KAZAN = 0x10003,
1861}
1862
Jesse Hallad250842017-03-10 18:35:38 -08001863@extension("VK_KHR_surface") // 1
Michael Lentine88594d72015-11-12 12:49:45 -08001864enum VkPresentModeKHR {
1865 VK_PRESENT_MODE_IMMEDIATE_KHR = 0x00000000,
1866 VK_PRESENT_MODE_MAILBOX_KHR = 0x00000001,
1867 VK_PRESENT_MODE_FIFO_KHR = 0x00000002,
Jesse Hall03b6fe12015-11-24 12:44:21 -08001868 VK_PRESENT_MODE_FIFO_RELAXED_KHR = 0x00000003,
Jesse Hall77ad05b2017-03-10 22:02:20 -08001869
Jesse Hall05556b12017-05-18 17:40:25 -07001870 //@extension("VK_KHR_shared_presentable_image") // 112
Jesse Hall77ad05b2017-03-10 22:02:20 -08001871 VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR = 1000111000,
1872 VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR = 1000111001,
Michael Lentine88594d72015-11-12 12:49:45 -08001873}
1874
Jesse Hallad250842017-03-10 18:35:38 -08001875@extension("VK_KHR_surface") // 1
Michael Lentine88594d72015-11-12 12:49:45 -08001876enum VkColorSpaceKHR {
Daniel Koch09f7bf92017-10-05 00:26:58 -04001877 VK_COLOR_SPACE_SRGB_NONLINEAR_KHR = 0x00000000,
Jesse Hall77ad05b2017-03-10 22:02:20 -08001878
Jesse Hallf5ad48b2017-03-20 13:09:19 -07001879 //@extension("VK_EXT_swapchain_colorspace") // 105
1880 VK_COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT = 1000104001,
1881 VK_COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT = 1000104002,
1882 VK_COLOR_SPACE_DCI_P3_LINEAR_EXT = 1000104003,
1883 VK_COLOR_SPACE_DCI_P3_NONLINEAR_EXT = 1000104004,
1884 VK_COLOR_SPACE_BT709_LINEAR_EXT = 1000104005,
1885 VK_COLOR_SPACE_BT709_NONLINEAR_EXT = 1000104006,
1886 VK_COLOR_SPACE_BT2020_LINEAR_EXT = 1000104007,
1887 VK_COLOR_SPACE_HDR10_ST2084_EXT = 1000104008,
1888 VK_COLOR_SPACE_DOLBYVISION_EXT = 1000104009,
1889 VK_COLOR_SPACE_HDR10_HLG_EXT = 1000104010,
Courtney Goeltzenleuchter7f558ed2017-01-23 17:15:24 -07001890 VK_COLOR_SPACE_ADOBERGB_LINEAR_EXT = 1000104011,
1891 VK_COLOR_SPACE_ADOBERGB_NONLINEAR_EXT = 1000104012,
Jesse Hallf5ad48b2017-03-20 13:09:19 -07001892 VK_COLOR_SPACE_PASS_THROUGH_EXT = 1000104013,
Jesse Hall77726222017-09-19 14:49:27 -05001893 VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT = 1000104014,
Michael Lentine88594d72015-11-12 12:49:45 -08001894}
Jesse Halld27f6aa2015-08-15 17:58:48 -07001895
Jesse Hallad250842017-03-10 18:35:38 -08001896@extension("VK_EXT_debug_report") // 12
Jesse Hall715b86a2016-01-16 16:34:29 -08001897enum VkDebugReportObjectTypeEXT {
1898 VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT = 0,
1899 VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT = 1,
1900 VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT = 2,
1901 VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT = 3,
1902 VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT = 4,
1903 VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT = 5,
1904 VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT = 6,
1905 VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT = 7,
1906 VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT = 8,
1907 VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT = 9,
1908 VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT = 10,
1909 VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT = 11,
1910 VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT = 12,
1911 VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT = 13,
1912 VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT = 14,
1913 VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT = 15,
1914 VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT = 16,
1915 VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT = 17,
1916 VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT = 18,
1917 VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT = 19,
1918 VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT = 20,
1919 VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT = 21,
1920 VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT = 22,
1921 VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT = 23,
1922 VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT = 24,
1923 VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT = 25,
1924 VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT = 26,
1925 VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT = 27,
Jesse Hall7ba0ac72017-07-07 17:13:23 -07001926 VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT = 28,
Chris Forbes289cb792016-12-30 15:03:55 +13001927 VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT = 29,
1928 VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT = 30,
1929 VK_DEBUG_REPORT_OBJECT_TYPE_OBJECT_TABLE_NVX_EXT = 31,
1930 VK_DEBUG_REPORT_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX_EXT = 32,
Jesse Hallf5ad48b2017-03-20 13:09:19 -07001931
Jesse Hall77726222017-09-19 14:49:27 -05001932 //extension("VK_EXT_validation_cache") // 161
Jesse Hall8c954d32018-01-17 22:06:20 -08001933 VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT = 33,
Jesse Hall77726222017-09-19 14:49:27 -05001934
Jesse Hallf5ad48b2017-03-20 13:09:19 -07001935 //extension("VK_KHR_descriptor_update_template") // 86
1936 VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR_EXT = 1000085000,
Jesse Hall77726222017-09-19 14:49:27 -05001937
Jesse Hall076f95d2017-09-20 11:34:47 -07001938 //@extension("VK_KHR_sampler_ycbcr_conversion") // 157
1939 VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR_EXT = 1000156000,
Jesse Hall715b86a2016-01-16 16:34:29 -08001940}
1941
Jesse Hallad250842017-03-10 18:35:38 -08001942@extension("VK_AMD_rasterization_order") // 19
Jesse Hall26763382016-05-20 07:13:52 -07001943enum VkRasterizationOrderAMD {
1944 VK_RASTERIZATION_ORDER_STRICT_AMD = 0,
1945 VK_RASTERIZATION_ORDER_RELAXED_AMD = 1,
1946}
1947
Jesse Hall8c954d32018-01-17 22:06:20 -08001948@extension("VK_AMD_shader_info") // 43
1949enum VkShaderInfoTypeAMD {
1950 VK_SHADER_INFO_TYPE_STATISTICS_AMD = 0,
1951 VK_SHADER_INFO_TYPE_BINARY_AMD = 1,
1952 VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD = 2,
1953}
1954
Jesse Hallad250842017-03-10 18:35:38 -08001955@extension("VK_EXT_validation_flags") // 62
Chris Forbes289cb792016-12-30 15:03:55 +13001956enum VkValidationCheckEXT {
1957 VK_VALIDATION_CHECK_ALL_EXT = 0,
Jesse Hall7ba0ac72017-07-07 17:13:23 -07001958 VK_VALIDATION_CHECK_SHADERS_EXT = 1,
Chris Forbes289cb792016-12-30 15:03:55 +13001959}
1960
Jesse Hallad250842017-03-10 18:35:38 -08001961@extension("VK_KHR_descriptor_update_template") // 86
1962enum VkDescriptorUpdateTemplateTypeKHR {
1963 VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET_KHR = 0,
1964 VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR = 1,
1965}
1966
1967@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13001968enum VkIndirectCommandsTokenTypeNVX {
Jesse Hall7ba0ac72017-07-07 17:13:23 -07001969 VK_INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NVX = 0,
1970 VK_INDIRECT_COMMANDS_TOKEN_TYPE_DESCRIPTOR_SET_NVX = 1,
1971 VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NVX = 2,
1972 VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NVX = 3,
1973 VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NVX = 4,
1974 VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NVX = 5,
1975 VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NVX = 6,
1976 VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NVX = 7,
Chris Forbes289cb792016-12-30 15:03:55 +13001977}
1978
Jesse Hallad250842017-03-10 18:35:38 -08001979@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13001980enum VkObjectEntryTypeNVX {
Jesse Hall7ba0ac72017-07-07 17:13:23 -07001981 VK_OBJECT_ENTRY_TYPE_DESCRIPTOR_SET_NVX = 0,
1982 VK_OBJECT_ENTRY_TYPE_PIPELINE_NVX = 1,
1983 VK_OBJECT_ENTRY_TYPE_INDEX_BUFFER_NVX = 2,
1984 VK_OBJECT_ENTRY_TYPE_VERTEX_BUFFER_NVX = 3,
1985 VK_OBJECT_ENTRY_TYPE_PUSH_CONSTANT_NVX = 4,
Chris Forbes289cb792016-12-30 15:03:55 +13001986}
Jesse Hall715b86a2016-01-16 16:34:29 -08001987
Jesse Hallad250842017-03-10 18:35:38 -08001988@extension("VK_EXT_display_control") // 92
Jesse Hall77ad05b2017-03-10 22:02:20 -08001989enum VkDisplayPowerStateEXT {
1990 VK_DISPLAY_POWER_STATE_OFF_EXT = 0,
1991 VK_DISPLAY_POWER_STATE_SUSPEND_EXT = 1,
1992 VK_DISPLAY_POWER_STATE_ON_EXT = 2,
1993}
1994
Jesse Hallad250842017-03-10 18:35:38 -08001995@extension("VK_EXT_display_control") // 92
Jesse Hall77ad05b2017-03-10 22:02:20 -08001996enum VkDeviceEventTypeEXT {
1997 VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT = 0,
1998}
1999
Jesse Hallad250842017-03-10 18:35:38 -08002000@extension("VK_EXT_display_control") // 92
Jesse Hall77ad05b2017-03-10 22:02:20 -08002001enum VkDisplayEventTypeEXT {
2002 VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT = 0,
2003}
2004
Jesse Hallad250842017-03-10 18:35:38 -08002005@extension("VK_NV_viewport_swizzle") // 99
2006enum VkViewportCoordinateSwizzleNV {
2007 VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV = 0,
2008 VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV = 1,
2009 VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV = 2,
2010 VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV = 3,
2011 VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV = 4,
2012 VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV = 5,
2013 VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV = 6,
2014 VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV = 7,
2015}
2016
2017@extension("VK_EXT_discard_rectangles") // 100
2018enum VkDiscardRectangleModeEXT {
2019 VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT = 0,
2020 VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT = 1,
2021}
2022
Jesse Hall8c954d32018-01-17 22:06:20 -08002023@extension("VK_EXT_conservative_rasterization") // 102
2024enum VkConservativeRasterizationModeEXT {
2025 VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT = 0,
2026 VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT = 1,
2027 VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT = 2,
2028}
2029
Jesse Hall076f95d2017-09-20 11:34:47 -07002030@extension("VK_KHR_maintenance2") // 118
2031enum VkPointClippingBehaviorKHR {
2032 VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES_KHR = 0,
2033 VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY_KHR = 1,
2034}
2035
2036@extension("VK_KHR_maintenance2") // 118
2037enum VkTessellationDomainOriginKHR {
2038 VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT_KHR = 0,
2039 VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT_KHR = 1,
2040}
2041
Jesse Hall7ba0ac72017-07-07 17:13:23 -07002042@extension("VK_EXT_sampler_filter_minmax") // 131
2043enum VkSamplerReductionModeEXT {
2044 VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_EXT = 0,
2045 VK_SAMPLER_REDUCTION_MODE_MIN_EXT = 1,
2046 VK_SAMPLER_REDUCTION_MODE_MAX_EXT = 2,
2047}
2048
2049@extension("VK_EXT_blend_operation_advanced") // 149
2050enum VkBlendOverlapEXT {
2051 VK_BLEND_OVERLAP_UNCORRELATED_EXT = 0,
2052 VK_BLEND_OVERLAP_DISJOINT_EXT = 1,
2053 VK_BLEND_OVERLAP_CONJOINT_EXT = 2,
2054}
2055
2056@extension("VK_NV_framebuffer_mixed_samples") // 153
2057enum VkCoverageModulationModeNV {
2058 VK_COVERAGE_MODULATION_MODE_NONE_NV = 0,
2059 VK_COVERAGE_MODULATION_MODE_RGB_NV = 1,
2060 VK_COVERAGE_MODULATION_MODE_ALPHA_NV = 2,
2061 VK_COVERAGE_MODULATION_MODE_RGBA_NV = 3,
2062}
2063
Jesse Hall076f95d2017-09-20 11:34:47 -07002064@extension("VK_KHR_sampler_ycbcr_conversion") // 157
2065enum VkSamplerYcbcrModelConversionKHR {
2066 VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY_KHR = 0,
2067 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY_KHR = 1,
2068 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709_KHR = 2,
2069 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601_KHR = 3,
2070 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020_KHR = 4,
2071}
2072
2073@extension("VK_KHR_sampler_ycbcr_conversion") // 157
2074enum VkSamplerYcbcrRangeKHR {
2075 VK_SAMPLER_YCBCR_RANGE_ITU_FULL_KHR = 0,
2076 VK_SAMPLER_YCBCR_RANGE_ITU_NARROW_KHR = 1,
2077}
2078
2079@extension("VK_KHR_sampler_ycbcr_conversion") // 157
2080enum VkChromaLocationKHR {
2081 VK_CHROMA_LOCATION_COSITED_EVEN_KHR = 0,
2082 VK_CHROMA_LOCATION_MIDPOINT_KHR = 1,
2083}
2084
Jesse Hall77726222017-09-19 14:49:27 -05002085@extension("VK_EXT_validation_cache") // 161
2086enum VkValidationCacheHeaderVersionEXT {
2087 VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT = 1,
2088}
2089
Jesse Hall8c954d32018-01-17 22:06:20 -08002090@extension("VK_EXT_global_priority") // 175
2091enum VkQueueGlobalPriorityEXT {
2092 VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT = 128,
2093 VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT = 256,
2094 VK_QUEUE_GLOBAL_PRIORITY_HIGH_EXT = 512,
2095 VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT = 1024,
2096}
2097
Jesse Halld27f6aa2015-08-15 17:58:48 -07002098/////////////////
2099// Bitfields //
2100/////////////////
2101
Jesse Halld27f6aa2015-08-15 17:58:48 -07002102/// Queue capabilities
Jesse Halld8bade02015-11-24 10:24:18 -08002103type VkFlags VkQueueFlags
2104bitfield VkQueueFlagBits {
Jesse Halld27f6aa2015-08-15 17:58:48 -07002105 VK_QUEUE_GRAPHICS_BIT = 0x00000001, /// Queue supports graphics operations
2106 VK_QUEUE_COMPUTE_BIT = 0x00000002, /// Queue supports compute operations
Jesse Hall65ab5522015-11-30 00:07:16 -08002107 VK_QUEUE_TRANSFER_BIT = 0x00000004, /// Queue supports transfer operations
Jesse Hallb00daad2015-11-29 19:46:20 -08002108 VK_QUEUE_SPARSE_BINDING_BIT = 0x00000008, /// Queue supports sparse resource memory management operations
Daniel Koch09f7bf92017-10-05 00:26:58 -04002109
Ian Elliott28bd2c32017-10-13 09:21:12 -06002110 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04002111 VK_QUEUE_PROTECTED_BIT = 0x00000010,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002112}
2113
2114/// Memory properties passed into vkAllocMemory().
Jesse Halld8bade02015-11-24 10:24:18 -08002115type VkFlags VkMemoryPropertyFlags
2116bitfield VkMemoryPropertyFlagBits {
Jesse Halld1af8122015-11-29 23:50:38 -08002117 VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT = 0x00000001,
2118 VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT = 0x00000002,
2119 VK_MEMORY_PROPERTY_HOST_COHERENT_BIT = 0x00000004,
2120 VK_MEMORY_PROPERTY_HOST_CACHED_BIT = 0x00000008,
2121 VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT = 0x00000010,
Daniel Koch09f7bf92017-10-05 00:26:58 -04002122
Ian Elliott28bd2c32017-10-13 09:21:12 -06002123 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04002124 VK_MEMORY_PROPERTY_PROTECTED_BIT = 0x00000020,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002125}
2126
2127/// Memory heap flags
Jesse Halld8bade02015-11-24 10:24:18 -08002128type VkFlags VkMemoryHeapFlags
2129bitfield VkMemoryHeapFlagBits {
Jesse Halld1af8122015-11-29 23:50:38 -08002130 VK_MEMORY_HEAP_DEVICE_LOCAL_BIT = 0x00000001,
Jesse Hallad250842017-03-10 18:35:38 -08002131
Ian Elliott28bd2c32017-10-13 09:21:12 -06002132 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04002133 VK_MEMORY_HEAP_MULTI_INSTANCE_BIT = 0x00000002,
2134
2135 //@extension("VK_KHR_device_group_creation") // 71
2136 VK_MEMORY_HEAP_MULTI_INSTANCE_BIT_KHR = 0x00000002,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002137}
2138
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08002139/// Access flags
2140type VkFlags VkAccessFlags
2141bitfield VkAccessFlagBits {
2142 VK_ACCESS_INDIRECT_COMMAND_READ_BIT = 0x00000001,
2143 VK_ACCESS_INDEX_READ_BIT = 0x00000002,
2144 VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT = 0x00000004,
2145 VK_ACCESS_UNIFORM_READ_BIT = 0x00000008,
2146 VK_ACCESS_INPUT_ATTACHMENT_READ_BIT = 0x00000010,
2147 VK_ACCESS_SHADER_READ_BIT = 0x00000020,
2148 VK_ACCESS_SHADER_WRITE_BIT = 0x00000040,
2149 VK_ACCESS_COLOR_ATTACHMENT_READ_BIT = 0x00000080,
2150 VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT = 0x00000100,
2151 VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT = 0x00000200,
2152 VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT = 0x00000400,
2153 VK_ACCESS_TRANSFER_READ_BIT = 0x00000800,
2154 VK_ACCESS_TRANSFER_WRITE_BIT = 0x00001000,
2155 VK_ACCESS_HOST_READ_BIT = 0x00002000,
2156 VK_ACCESS_HOST_WRITE_BIT = 0x00004000,
2157 VK_ACCESS_MEMORY_READ_BIT = 0x00008000,
2158 VK_ACCESS_MEMORY_WRITE_BIT = 0x00010000,
Chris Forbes289cb792016-12-30 15:03:55 +13002159
Jesse Hallad250842017-03-10 18:35:38 -08002160 //@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13002161 VK_ACCESS_COMMAND_PROCESS_READ_BIT_NVX = 0x00020000,
Chris Forbes289cb792016-12-30 15:03:55 +13002162 VK_ACCESS_COMMAND_PROCESS_WRITE_BIT_NVX = 0x00040000,
Jesse Hall7ba0ac72017-07-07 17:13:23 -07002163
2164 //@extension("VK_EXT_blend_operation_advanced") // 149
2165 VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT = 0x00080000,
Jesse Halla13a3cf2018-07-09 15:51:52 -07002166
2167 //@extension("VK_EXT_conditional_rendering") // 82
2168 VK_ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT = 0x00100000,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002169}
2170
2171/// Buffer usage flags
Jesse Halld8bade02015-11-24 10:24:18 -08002172type VkFlags VkBufferUsageFlags
2173bitfield VkBufferUsageFlagBits {
Jesse Hall3fbc8562015-11-29 22:10:52 -08002174 VK_BUFFER_USAGE_TRANSFER_SRC_BIT = 0x00000001, /// Can be used as a source of transfer operations
2175 VK_BUFFER_USAGE_TRANSFER_DST_BIT = 0x00000002, /// Can be used as a destination of transfer operations
Jesse Halld27f6aa2015-08-15 17:58:48 -07002176 VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT = 0x00000004, /// Can be used as TBO
2177 VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT = 0x00000008, /// Can be used as IBO
2178 VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT = 0x00000010, /// Can be used as UBO
2179 VK_BUFFER_USAGE_STORAGE_BUFFER_BIT = 0x00000020, /// Can be used as SSBO
2180 VK_BUFFER_USAGE_INDEX_BUFFER_BIT = 0x00000040, /// Can be used as source of fixed function index fetch (index buffer)
2181 VK_BUFFER_USAGE_VERTEX_BUFFER_BIT = 0x00000080, /// Can be used as source of fixed function vertex fetch (VBO)
2182 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 -07002183
2184 //@extension("VK_EXT_conditional_rendering") // 82
2185 VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT = 0x00000200,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002186}
2187
2188/// Buffer creation flags
Jesse Halld8bade02015-11-24 10:24:18 -08002189type VkFlags VkBufferCreateFlags
2190bitfield VkBufferCreateFlagBits {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07002191 VK_BUFFER_CREATE_SPARSE_BINDING_BIT = 0x00000001, /// Buffer should support sparse backing
Jesse Halld27f6aa2015-08-15 17:58:48 -07002192 VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT = 0x00000002, /// Buffer should support sparse backing with partial residency
2193 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 -04002194
Ian Elliott28bd2c32017-10-13 09:21:12 -06002195 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04002196 VK_BUFFER_CREATE_PROTECTED_BIT = 0x00000008,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002197}
2198
2199/// Shader stage flags
Jesse Halld8bade02015-11-24 10:24:18 -08002200type VkFlags VkShaderStageFlags
2201bitfield VkShaderStageFlagBits {
Jesse Halld27f6aa2015-08-15 17:58:48 -07002202 VK_SHADER_STAGE_VERTEX_BIT = 0x00000001,
Jesse Hallae38f732015-11-19 21:32:50 -08002203 VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT = 0x00000002,
2204 VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT = 0x00000004,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002205 VK_SHADER_STAGE_GEOMETRY_BIT = 0x00000008,
2206 VK_SHADER_STAGE_FRAGMENT_BIT = 0x00000010,
2207 VK_SHADER_STAGE_COMPUTE_BIT = 0x00000020,
Jesse Hallc7467b72015-11-29 21:05:26 -08002208 VK_SHADER_STAGE_ALL_GRAPHICS = 0x0000001F,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002209
2210 VK_SHADER_STAGE_ALL = 0x7FFFFFFF,
2211}
2212
Jesse Hallfbf97b02015-11-20 14:17:03 -08002213/// Descriptor pool create flags
Jesse Halld8bade02015-11-24 10:24:18 -08002214type VkFlags VkDescriptorPoolCreateFlags
2215bitfield VkDescriptorPoolCreateFlagBits {
Jesse Hallfbf97b02015-11-20 14:17:03 -08002216 VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT = 0x00000001,
Jesse Hall72e6a132018-04-06 13:00:44 -07002217
2218 //@extension("VK_EXT_descriptor_indexing") // 162
2219 VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT_EXT = 0x00000002,
Jesse Hallfbf97b02015-11-20 14:17:03 -08002220}
2221
2222/// Descriptor pool reset flags
Jesse Halld8bade02015-11-24 10:24:18 -08002223type VkFlags VkDescriptorPoolResetFlags
Jesse Halla6429252015-11-29 18:59:42 -08002224//bitfield VkDescriptorPoolResetFlagBits {
2225//}
Jesse Hallfbf97b02015-11-20 14:17:03 -08002226
Jesse Halld27f6aa2015-08-15 17:58:48 -07002227/// Image usage flags
Jesse Halld8bade02015-11-24 10:24:18 -08002228type VkFlags VkImageUsageFlags
2229bitfield VkImageUsageFlagBits {
Jesse Hall3fbc8562015-11-29 22:10:52 -08002230 VK_IMAGE_USAGE_TRANSFER_SRC_BIT = 0x00000001, /// Can be used as a source of transfer operations
2231 VK_IMAGE_USAGE_TRANSFER_DST_BIT = 0x00000002, /// Can be used as a destination of transfer operations
Jesse Halld27f6aa2015-08-15 17:58:48 -07002232 VK_IMAGE_USAGE_SAMPLED_BIT = 0x00000004, /// Can be sampled from (SAMPLED_IMAGE and COMBINED_IMAGE_SAMPLER descriptor types)
2233 VK_IMAGE_USAGE_STORAGE_BIT = 0x00000008, /// Can be used as storage image (STORAGE_IMAGE descriptor type)
2234 VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT = 0x00000010, /// Can be used as framebuffer color attachment
Jesse Hall5ae3abb2015-10-08 14:00:22 -07002235 VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000020, /// Can be used as framebuffer depth/stencil attachment
Jesse Halld27f6aa2015-08-15 17:58:48 -07002236 VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT = 0x00000040, /// Image data not needed outside of rendering
2237 VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT = 0x00000080, /// Can be used as framebuffer input attachment
2238}
2239
2240/// Image creation flags
Jesse Halld8bade02015-11-24 10:24:18 -08002241type VkFlags VkImageCreateFlags
2242bitfield VkImageCreateFlagBits {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07002243 VK_IMAGE_CREATE_SPARSE_BINDING_BIT = 0x00000001, /// Image should support sparse backing
Jesse Halld27f6aa2015-08-15 17:58:48 -07002244 VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT = 0x00000002, /// Image should support sparse backing with partial residency
2245 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 -07002246 VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT = 0x00000008, /// Allows image views to have different format than the base image
2247 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 -08002248
Ian Elliott28bd2c32017-10-13 09:21:12 -06002249 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04002250 VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT = 0x00000020,
Jesse Hall8c954d32018-01-17 22:06:20 -08002251 VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT = 0x00000040,
Daniel Koch09f7bf92017-10-05 00:26:58 -04002252 VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT = 0x00000080,
2253 VK_IMAGE_CREATE_EXTENDED_USAGE_BIT = 0x00000100,
Daniel Koch09f7bf92017-10-05 00:26:58 -04002254 VK_IMAGE_CREATE_DISJOINT_BIT = 0x00000200,
Ian Elliott28bd2c32017-10-13 09:21:12 -06002255 VK_IMAGE_CREATE_ALIAS_BIT = 0x00000400,
2256 VK_IMAGE_CREATE_PROTECTED_BIT = 0x00000800,
Daniel Koch09f7bf92017-10-05 00:26:58 -04002257
Jesse Hallad250842017-03-10 18:35:38 -08002258 //@extension("VK_KHR_maintenance1") // 70
Jesse Hall77ad05b2017-03-10 22:02:20 -08002259 VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT_KHR = 0x00000020,
Jesse Hallad250842017-03-10 18:35:38 -08002260
Daniel Koch09f7bf92017-10-05 00:26:58 -04002261 //@extension("VK_KHR_device_group") // 61
2262 VK_IMAGE_CREATE_BIND_SFR_BIT_KHR = 0x00000040,
Jesse Hall77726222017-09-19 14:49:27 -05002263
Jesse Hall076f95d2017-09-20 11:34:47 -07002264 //@extension("VK_KHR_maintenance2") // 118
2265 VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT_KHR = 0x00000080,
2266 VK_IMAGE_CREATE_EXTENDED_USAGE_BIT_KHR = 0x00000100,
2267
2268 //@extension("VK_KHR_sampler_ycbcr_conversion") // 157
2269 VK_IMAGE_CREATE_DISJOINT_BIT_KHR = 0x00000200,
2270
2271 //@extension("VK_KHR_bind_memory2") // 158
2272 VK_IMAGE_CREATE_ALIAS_BIT_KHR = 0x00000400,
Ian Elliott28bd2c32017-10-13 09:21:12 -06002273
2274 //@extension("VK_EXT_sample_locations") // 144
2275 VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT = 0x00001000,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002276}
2277
Jesse Hallb00daad2015-11-29 19:46:20 -08002278/// Image view creation flags
Jesse Halld8bade02015-11-24 10:24:18 -08002279type VkFlags VkImageViewCreateFlags
Jesse Hallb00daad2015-11-29 19:46:20 -08002280//bitfield VkImageViewCreateFlagBits {
2281//}
Jesse Halld27f6aa2015-08-15 17:58:48 -07002282
2283/// Pipeline creation flags
Jesse Halld8bade02015-11-24 10:24:18 -08002284type VkFlags VkPipelineCreateFlags
2285bitfield VkPipelineCreateFlagBits {
Jesse Halld27f6aa2015-08-15 17:58:48 -07002286 VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT = 0x00000001,
2287 VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT = 0x00000002,
2288 VK_PIPELINE_CREATE_DERIVATIVE_BIT = 0x00000004,
Jesse Hallad250842017-03-10 18:35:38 -08002289
Ian Elliott28bd2c32017-10-13 09:21:12 -06002290 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04002291 VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT = 0x00000008,
2292 VK_PIPELINE_CREATE_DISPATCH_BASE = 0x00000010,
2293
2294 //@extension("VK_KHR_device_group") // 61
2295 VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR = 0x00000008,
2296 VK_PIPELINE_CREATE_DISPATCH_BASE_KHR = 0x00000010,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002297}
2298
Jesse Hall65ab5522015-11-30 00:07:16 -08002299/// Color component flags
2300type VkFlags VkColorComponentFlags
2301bitfield VkColorComponentFlagBits {
2302 VK_COLOR_COMPONENT_R_BIT = 0x00000001,
2303 VK_COLOR_COMPONENT_G_BIT = 0x00000002,
2304 VK_COLOR_COMPONENT_B_BIT = 0x00000004,
2305 VK_COLOR_COMPONENT_A_BIT = 0x00000008,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002306}
2307
2308/// Fence creation flags
Jesse Halld8bade02015-11-24 10:24:18 -08002309type VkFlags VkFenceCreateFlags
2310bitfield VkFenceCreateFlagBits {
Jesse Halld27f6aa2015-08-15 17:58:48 -07002311 VK_FENCE_CREATE_SIGNALED_BIT = 0x00000001,
2312}
2313
2314/// Semaphore creation flags
Jesse Halld8bade02015-11-24 10:24:18 -08002315type VkFlags VkSemaphoreCreateFlags
Jesse Halla6429252015-11-29 18:59:42 -08002316//bitfield VkSemaphoreCreateFlagBits {
2317//}
Jesse Halld27f6aa2015-08-15 17:58:48 -07002318
2319/// Format capability flags
Jesse Halld8bade02015-11-24 10:24:18 -08002320type VkFlags VkFormatFeatureFlags
2321bitfield VkFormatFeatureFlagBits {
Jesse Halld27f6aa2015-08-15 17:58:48 -07002322 VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT = 0x00000001, /// Format can be used for sampled images (SAMPLED_IMAGE and COMBINED_IMAGE_SAMPLER descriptor types)
2323 VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT = 0x00000002, /// Format can be used for storage images (STORAGE_IMAGE descriptor type)
2324 VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT = 0x00000004, /// Format supports atomic operations in case it's used for storage images
2325 VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT = 0x00000008, /// Format can be used for uniform texel buffers (TBOs)
2326 VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT = 0x00000010, /// Format can be used for storage texel buffers (IBOs)
2327 VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT = 0x00000020, /// Format supports atomic operations in case it's used for storage texel buffers
2328 VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT = 0x00000040, /// Format can be used for vertex buffers (VBOs)
2329 VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT = 0x00000080, /// Format can be used for color attachment images
2330 VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT = 0x00000100, /// Format supports blending in case it's used for color attachment images
2331 VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000200, /// Format can be used for depth/stencil attachment images
Jesse Hall3fbc8562015-11-29 22:10:52 -08002332 VK_FORMAT_FEATURE_BLIT_SRC_BIT = 0x00000400, /// Format can be used as the source image of blits with vkCommandBlitImage
2333 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 -08002334 VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT = 0x00001000,
Jesse Hall26763382016-05-20 07:13:52 -07002335
Ian Elliott28bd2c32017-10-13 09:21:12 -06002336 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04002337 VK_FORMAT_FEATURE_TRANSFER_SRC_BIT = 0x00004000,
2338 VK_FORMAT_FEATURE_TRANSFER_DST_BIT = 0x00008000,
2339 VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT = 0x00020000,
2340 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT = 0x00040000,
2341 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT = 0x00080000,
2342 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT = 0x00100000,
2343 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT = 0x00200000,
2344 VK_FORMAT_FEATURE_DISJOINT_BIT = 0x00400000,
2345 VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT = 0x00800000,
2346
Jesse Hallad250842017-03-10 18:35:38 -08002347 //@extension("VK_IMG_filter_cubic") // 16
Jesse Hall26763382016-05-20 07:13:52 -07002348 VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG = 0x00002000,
Jesse Hall77ad05b2017-03-10 22:02:20 -08002349
Jesse Hallad250842017-03-10 18:35:38 -08002350 //@extension("VK_KHR_maintenance1") // 70
Jesse Hall77ad05b2017-03-10 22:02:20 -08002351 VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR = 0x00004000,
2352 VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR = 0x00008000,
Jesse Hall7ba0ac72017-07-07 17:13:23 -07002353
2354 //@extension("VK_EXT_sampler_filter_minmax") // 131
2355 VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT_EXT = 0x00010000,
Jesse Hall076f95d2017-09-20 11:34:47 -07002356
2357 //@extension("VK_KHR_sampler_ycbcr_conversion") // 157
2358 VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT_KHR = 0x00020000,
2359 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT_KHR = 0x00040000,
2360 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT_KHR = 0x00080000,
2361 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT_KHR = 0x00100000,
2362 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT_KHR = 0x00200000,
2363 VK_FORMAT_FEATURE_DISJOINT_BIT_KHR = 0x00400000,
2364 VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT_KHR = 0x00800000,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002365}
2366
2367/// Query control flags
Jesse Halld8bade02015-11-24 10:24:18 -08002368type VkFlags VkQueryControlFlags
2369bitfield VkQueryControlFlagBits {
Jesse Hall65ab5522015-11-30 00:07:16 -08002370 VK_QUERY_CONTROL_PRECISE_BIT = 0x00000001,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002371}
2372
2373/// Query result flags
Jesse Halld8bade02015-11-24 10:24:18 -08002374type VkFlags VkQueryResultFlags
2375bitfield VkQueryResultFlagBits {
Jesse Halld27f6aa2015-08-15 17:58:48 -07002376 VK_QUERY_RESULT_64_BIT = 0x00000001, /// Results of the queries are written to the destination buffer as 64-bit values
2377 VK_QUERY_RESULT_WAIT_BIT = 0x00000002, /// Results of the queries are waited on before proceeding with the result copy
2378 VK_QUERY_RESULT_WITH_AVAILABILITY_BIT = 0x00000004, /// Besides the results of the query, the availability of the results is also written
2379 VK_QUERY_RESULT_PARTIAL_BIT = 0x00000008, /// Copy the partial results of the query even if the final results aren't available
2380}
2381
2382/// Shader module creation flags
Jesse Halld8bade02015-11-24 10:24:18 -08002383type VkFlags VkShaderModuleCreateFlags
Jesse Halla6429252015-11-29 18:59:42 -08002384//bitfield VkShaderModuleCreateFlagBits {
2385//}
Jesse Halld27f6aa2015-08-15 17:58:48 -07002386
Jesse Halld27f6aa2015-08-15 17:58:48 -07002387/// Event creation flags
Jesse Halld8bade02015-11-24 10:24:18 -08002388type VkFlags VkEventCreateFlags
Jesse Halla6429252015-11-29 18:59:42 -08002389//bitfield VkEventCreateFlagBits {
2390//}
Jesse Halld27f6aa2015-08-15 17:58:48 -07002391
Jesse Halla15a4bf2015-11-19 22:48:02 -08002392/// Command buffer usage flags
Jesse Hall3fbc8562015-11-29 22:10:52 -08002393type VkFlags VkCommandBufferUsageFlags
2394bitfield VkCommandBufferUsageFlagBits {
2395 VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT = 0x00000001,
2396 VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT = 0x00000002,
2397 VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT = 0x00000004,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002398}
2399
2400/// Pipeline statistics flags
Jesse Halld8bade02015-11-24 10:24:18 -08002401type VkFlags VkQueryPipelineStatisticFlags
2402bitfield VkQueryPipelineStatisticFlagBits {
Jesse Hallae38f732015-11-19 21:32:50 -08002403 VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT = 0x00000001, /// Optional
2404 VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT = 0x00000002, /// Optional
2405 VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT = 0x00000004, /// Optional
2406 VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT = 0x00000008, /// Optional
2407 VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT = 0x00000010, /// Optional
2408 VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT = 0x00000020, /// Optional
2409 VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT = 0x00000040, /// Optional
2410 VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT = 0x00000080, /// Optional
2411 VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT = 0x00000100, /// Optional
2412 VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT = 0x00000200, /// Optional
2413 VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT = 0x00000400, /// Optional
Jesse Halld27f6aa2015-08-15 17:58:48 -07002414}
2415
2416/// Memory mapping flags
Jesse Halld8bade02015-11-24 10:24:18 -08002417type VkFlags VkMemoryMapFlags
Jesse Halla6429252015-11-29 18:59:42 -08002418//bitfield VkMemoryMapFlagBits {
2419//}
Jesse Halld27f6aa2015-08-15 17:58:48 -07002420
2421/// Bitfield of image aspects
Jesse Halld8bade02015-11-24 10:24:18 -08002422type VkFlags VkImageAspectFlags
2423bitfield VkImageAspectFlagBits {
Jesse Halld27f6aa2015-08-15 17:58:48 -07002424 VK_IMAGE_ASPECT_COLOR_BIT = 0x00000001,
2425 VK_IMAGE_ASPECT_DEPTH_BIT = 0x00000002,
2426 VK_IMAGE_ASPECT_STENCIL_BIT = 0x00000004,
2427 VK_IMAGE_ASPECT_METADATA_BIT = 0x00000008,
Jesse Hall076f95d2017-09-20 11:34:47 -07002428
Ian Elliott28bd2c32017-10-13 09:21:12 -06002429 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04002430 VK_IMAGE_ASPECT_PLANE_0_BIT = 0x00000010,
2431 VK_IMAGE_ASPECT_PLANE_1_BIT = 0x00000020,
2432 VK_IMAGE_ASPECT_PLANE_2_BIT = 0x00000040,
2433
Jesse Hall076f95d2017-09-20 11:34:47 -07002434 //@extension("VK_KHR_sampler_ycbcr_conversion") // 157
2435 VK_IMAGE_ASPECT_PLANE_0_BIT_KHR = 0x00000010,
2436 VK_IMAGE_ASPECT_PLANE_1_BIT_KHR = 0x00000020,
2437 VK_IMAGE_ASPECT_PLANE_2_BIT_KHR = 0x00000040,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002438}
2439
2440/// Sparse memory bind flags
Jesse Halld8bade02015-11-24 10:24:18 -08002441type VkFlags VkSparseMemoryBindFlags
Jesse Hall091ed9e2015-11-30 00:55:29 -08002442bitfield VkSparseMemoryBindFlagBits {
2443 VK_SPARSE_MEMORY_BIND_METADATA_BIT = 0x00000001,
2444}
Jesse Halld27f6aa2015-08-15 17:58:48 -07002445
2446/// Sparse image memory requirements flags
Jesse Halld8bade02015-11-24 10:24:18 -08002447type VkFlags VkSparseImageFormatFlags
2448bitfield VkSparseImageFormatFlagBits {
Jesse Hallb00daad2015-11-29 19:46:20 -08002449 VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT = 0x00000001, /// Image uses a single miptail region for all array slices
2450 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.
2451 VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT = 0x00000004, /// Image uses a non-standard sparse block size
Jesse Halld27f6aa2015-08-15 17:58:48 -07002452}
2453
2454/// Pipeline stages
Jesse Halld8bade02015-11-24 10:24:18 -08002455type VkFlags VkPipelineStageFlags
2456bitfield VkPipelineStageFlagBits {
Jesse Halld27f6aa2015-08-15 17:58:48 -07002457 VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT = 0x00000001, /// Before subsequent commands are processed
2458 VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT = 0x00000002, /// Draw/DispatchIndirect command fetch
2459 VK_PIPELINE_STAGE_VERTEX_INPUT_BIT = 0x00000004, /// Vertex/index fetch
2460 VK_PIPELINE_STAGE_VERTEX_SHADER_BIT = 0x00000008, /// Vertex shading
Jesse Hallae38f732015-11-19 21:32:50 -08002461 VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT = 0x00000010, /// Tessellation control shading
2462 VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT = 0x00000020, /// Tessellation evaluation shading
Jesse Halld27f6aa2015-08-15 17:58:48 -07002463 VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT = 0x00000040, /// Geometry shading
2464 VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT = 0x00000080, /// Fragment shading
2465 VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT = 0x00000100, /// Early fragment (depth/stencil) tests
2466 VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT = 0x00000200, /// Late fragment (depth/stencil) tests
2467 VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT = 0x00000400, /// Color attachment writes
2468 VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT = 0x00000800, /// Compute shading
2469 VK_PIPELINE_STAGE_TRANSFER_BIT = 0x00001000, /// Transfer/copy operations
Jesse Hall543a7ff2016-01-08 16:38:30 -08002470 VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT = 0x00002000,
2471 VK_PIPELINE_STAGE_HOST_BIT = 0x00004000, /// Indicates host (CPU) is a source/sink of the dependency
Jesse Halld27f6aa2015-08-15 17:58:48 -07002472
Jesse Hall543a7ff2016-01-08 16:38:30 -08002473 VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT = 0x00008000, /// All stages of the graphics pipeline
2474 VK_PIPELINE_STAGE_ALL_COMMANDS_BIT = 0x00010000, /// All graphics, compute, copy, and transition commands
Chris Forbes289cb792016-12-30 15:03:55 +13002475
Jesse Hallad250842017-03-10 18:35:38 -08002476 //@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13002477 VK_PIPELINE_STAGE_COMMAND_PROCESS_BIT_NVX = 0x00020000,
Jesse Halla13a3cf2018-07-09 15:51:52 -07002478
2479 //@extension("VK_EXT_conditional_rendering") // 82
2480 VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT = 0x00040000,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07002481}
2482
2483/// Render pass attachment description flags
Jesse Halld8bade02015-11-24 10:24:18 -08002484type VkFlags VkAttachmentDescriptionFlags
2485bitfield VkAttachmentDescriptionFlagBits {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07002486 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 -07002487}
2488
2489/// Subpass description flags
Jesse Halld8bade02015-11-24 10:24:18 -08002490type VkFlags VkSubpassDescriptionFlags
2491bitfield VkSubpassDescriptionFlagBits {
Jesse Hallad250842017-03-10 18:35:38 -08002492 //@extension("VK_NVX_multiview_per_view_attributes") // 98
2493 VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX = 0x00000001,
2494 VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX = 0x00000002,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002495}
2496
2497/// Command pool creation flags
Jesse Hall3fbc8562015-11-29 22:10:52 -08002498type VkFlags VkCommandPoolCreateFlags
2499bitfield VkCommandPoolCreateFlagBits {
2500 VK_COMMAND_POOL_CREATE_TRANSIENT_BIT = 0x00000001, /// Command buffers have a short lifetime
2501 VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT = 0x00000002, /// Command buffers may release their memory individually
Daniel Koch09f7bf92017-10-05 00:26:58 -04002502
Ian Elliott28bd2c32017-10-13 09:21:12 -06002503 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04002504 VK_COMMAND_POOL_CREATE_PROTECTED_BIT = 0x00000004,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002505}
2506
2507/// Command pool reset flags
Jesse Hall3fbc8562015-11-29 22:10:52 -08002508type VkFlags VkCommandPoolResetFlags
2509bitfield VkCommandPoolResetFlagBits {
2510 VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT = 0x00000001, /// Release resources owned by the pool
Jesse Halld27f6aa2015-08-15 17:58:48 -07002511}
2512
Jesse Hall3fbc8562015-11-29 22:10:52 -08002513type VkFlags VkCommandBufferResetFlags
2514bitfield VkCommandBufferResetFlagBits {
2515 VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT = 0x00000001, /// Release resources owned by the buffer
Jesse Hall5ae3abb2015-10-08 14:00:22 -07002516}
2517
Jesse Halld8bade02015-11-24 10:24:18 -08002518type VkFlags VkSampleCountFlags
2519bitfield VkSampleCountFlagBits {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07002520 VK_SAMPLE_COUNT_1_BIT = 0x00000001,
2521 VK_SAMPLE_COUNT_2_BIT = 0x00000002,
2522 VK_SAMPLE_COUNT_4_BIT = 0x00000004,
2523 VK_SAMPLE_COUNT_8_BIT = 0x00000008,
2524 VK_SAMPLE_COUNT_16_BIT = 0x00000010,
2525 VK_SAMPLE_COUNT_32_BIT = 0x00000020,
2526 VK_SAMPLE_COUNT_64_BIT = 0x00000040,
2527}
2528
Jesse Halld8bade02015-11-24 10:24:18 -08002529type VkFlags VkStencilFaceFlags
2530bitfield VkStencilFaceFlagBits {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07002531 VK_STENCIL_FACE_FRONT_BIT = 0x00000001, /// Front face
2532 VK_STENCIL_FACE_BACK_BIT = 0x00000002, /// Back face
Jesse Hallc7467b72015-11-29 21:05:26 -08002533 VK_STENCIL_FRONT_AND_BACK = 0x00000003,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002534}
2535
Jesse Halla6429252015-11-29 18:59:42 -08002536/// Instance creation flags
2537type VkFlags VkInstanceCreateFlags
2538//bitfield VkInstanceCreateFlagBits {
2539//}
2540
2541/// Device creation flags
2542type VkFlags VkDeviceCreateFlags
2543//bitfield VkDeviceCreateFlagBits {
2544//}
2545
2546/// Device queue creation flags
2547type VkFlags VkDeviceQueueCreateFlags
Ian Elliott28bd2c32017-10-13 09:21:12 -06002548@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04002549bitfield VkDeviceQueueCreateFlagBits {
2550 VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT = 0x00000001,
2551}
Jesse Halla6429252015-11-29 18:59:42 -08002552
2553/// Query pool creation flags
2554type VkFlags VkQueryPoolCreateFlags
2555//bitfield VkQueryPoolCreateFlagBits {
2556//}
2557
2558/// Buffer view creation flags
2559type VkFlags VkBufferViewCreateFlags
2560//bitfield VkBufferViewCreateFlagBits {
2561//}
2562
2563/// Pipeline cache creation flags
2564type VkFlags VkPipelineCacheCreateFlags
2565//bitfield VkPipelineCacheCreateFlagBits {
2566//}
2567
2568/// Pipeline shader stage creation flags
2569type VkFlags VkPipelineShaderStageCreateFlags
2570//bitfield VkPipelineShaderStageCreateFlagBits {
2571//}
2572
2573/// Descriptor set layout creation flags
2574type VkFlags VkDescriptorSetLayoutCreateFlags
Jesse Hallad250842017-03-10 18:35:38 -08002575bitfield VkDescriptorSetLayoutCreateFlagBits {
2576 //@extension("VK_KHR_push_descriptor") // 81
2577 VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR = 0x00000001,
Jesse Hall72e6a132018-04-06 13:00:44 -07002578
2579 //@extension("VK_EXT_descriptor_indexing") // 162
2580 VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT = 0x00000002,
Jesse Hallad250842017-03-10 18:35:38 -08002581}
Jesse Halla6429252015-11-29 18:59:42 -08002582
2583/// Pipeline vertex input state creation flags
2584type VkFlags VkPipelineVertexInputStateCreateFlags
2585//bitfield VkPipelineVertexInputStateCreateFlagBits {
2586//}
2587
2588/// Pipeline input assembly state creation flags
2589type VkFlags VkPipelineInputAssemblyStateCreateFlags
2590//bitfield VkPipelineInputAssemblyStateCreateFlagBits {
2591//}
2592
2593/// Tessellation state creation flags
2594type VkFlags VkPipelineTessellationStateCreateFlags
2595//bitfield VkPipelineTessellationStateCreateFlagBits {
2596//}
2597
2598/// Viewport state creation flags
2599type VkFlags VkPipelineViewportStateCreateFlags
2600//bitfield VkPipelineViewportStateCreateFlagBits {
2601//}
2602
Jesse Hall3fbc8562015-11-29 22:10:52 -08002603/// Rasterization state creation flags
2604type VkFlags VkPipelineRasterizationStateCreateFlags
2605//bitfield VkPipelineRasterizationStateCreateFlagBits {
Jesse Halla6429252015-11-29 18:59:42 -08002606//}
2607
2608/// Multisample state creation flags
2609type VkFlags VkPipelineMultisampleStateCreateFlags
2610//bitfield VkPipelineMultisampleStateCreateFlagBits {
2611//}
2612
2613/// Color blend state creation flags
2614type VkFlags VkPipelineColorBlendStateCreateFlags
2615//bitfield VkPipelineColorBlendStateCreateFlagBits {
2616//}
2617
2618/// Depth/stencil state creation flags
2619type VkFlags VkPipelineDepthStencilStateCreateFlags
2620//bitfield VkPipelineDepthStencilStateCreateFlagBits {
2621//}
2622
2623/// Dynamic state creation flags
2624type VkFlags VkPipelineDynamicStateCreateFlags
2625//bitfield VkPipelineDynamicStateCreateFlagBits {
2626//}
2627
2628/// Pipeline layout creation flags
2629type VkFlags VkPipelineLayoutCreateFlags
2630//bitfield VkPipelineLayoutCreateFlagBits {
2631//}
2632
2633/// Sampler creation flags
2634type VkFlags VkSamplerCreateFlags
2635//bitfield VkSamplerCreateFlagBits {
2636//}
2637
2638/// Render pass creation flags
2639type VkFlags VkRenderPassCreateFlags
2640//bitfield VkRenderPassCreateFlagBits {
2641//}
2642
2643/// Framebuffer creation flags
2644type VkFlags VkFramebufferCreateFlags
2645//bitfield VkFramebufferCreateFlagBits {
2646//}
2647
Jesse Halldc6d36c2015-11-29 19:12:15 -08002648/// Dependency flags
2649type VkFlags VkDependencyFlags
2650bitfield VkDependencyFlagBits {
2651 VK_DEPENDENCY_BY_REGION_BIT = 0x00000001,
Jesse Hallad250842017-03-10 18:35:38 -08002652
Ian Elliott28bd2c32017-10-13 09:21:12 -06002653 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04002654 VK_DEPENDENCY_DEVICE_GROUP_BIT = 0x00000004,
2655 VK_DEPENDENCY_VIEW_LOCAL_BIT = 0x00000002,
Jesse Hallad250842017-03-10 18:35:38 -08002656
Daniel Koch09f7bf92017-10-05 00:26:58 -04002657 //@extension("VK_KHR_multiview") // 54
2658 VK_DEPENDENCY_VIEW_LOCAL_BIT_KHR = 0x00000002,
2659
2660 //@extension("VK_KHR_device_group") // 61
2661 VK_DEPENDENCY_DEVICE_GROUP_BIT_KHR = 0x00000004,
Jesse Halldc6d36c2015-11-29 19:12:15 -08002662}
2663
Jesse Hallc7467b72015-11-29 21:05:26 -08002664/// Cull mode flags
2665type VkFlags VkCullModeFlags
2666bitfield VkCullModeFlagBits {
2667 VK_CULL_MODE_NONE = 0x00000000,
2668 VK_CULL_MODE_FRONT_BIT = 0x00000001,
2669 VK_CULL_MODE_BACK_BIT = 0x00000002,
2670 VK_CULL_MODE_FRONT_AND_BACK = 0x00000003,
2671}
2672
Ian Elliott28bd2c32017-10-13 09:21:12 -06002673//@vulkan1_1 flags
Daniel Koch09f7bf92017-10-05 00:26:58 -04002674
2675/// Subgroup feature flags
2676type VkFlags VkSubgroupFeatureFlags
2677bitfield VkSubgroupFeatureFlagBits {
2678 VK_SUBGROUP_FEATURE_BASIC_BIT = 0x00000001,
2679 VK_SUBGROUP_FEATURE_VOTE_BIT = 0x00000002,
2680 VK_SUBGROUP_FEATURE_ARITHMETIC_BIT = 0x00000004,
2681 VK_SUBGROUP_FEATURE_BALLOT_BIT = 0x00000008,
2682 VK_SUBGROUP_FEATURE_SHUFFLE_BIT = 0x00000010,
2683 VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT = 0x00000020,
2684 VK_SUBGROUP_FEATURE_CLUSTERED_BIT = 0x00000040,
2685 VK_SUBGROUP_FEATURE_QUAD_BIT = 0x00000080,
Jesse Hall72e6a132018-04-06 13:00:44 -07002686
2687 //@extension("VK_NV_shader_subgroup_partitioned") // 199
2688 VK_SUBGROUP_FEATURE_PARTITIONED_BIT_NV = 0x00000100,
Daniel Koch09f7bf92017-10-05 00:26:58 -04002689}
2690
2691/// Peer memory feature flags
2692type VkFlags VkPeerMemoryFeatureFlags
2693bitfield VkPeerMemoryFeatureFlagBits {
2694 VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT = 0x00000001,
2695 VK_PEER_MEMORY_FEATURE_COPY_DST_BIT = 0x00000002,
2696 VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT = 0x00000004,
2697 VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT = 0x00000008,
2698}
2699
2700/// Memory allocation flags
2701type VkFlags VkMemoryAllocateFlags
2702bitfield VkMemoryAllocateFlagBits {
2703 VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT = 0x00000001,
2704}
2705
2706type VkFlags VkCommandPoolTrimFlags
2707//bitfield VkCommandPoolTrimFlagBits {
2708//}
2709
2710type VkFlags VkDescriptorUpdateTemplateCreateFlags
2711//bitfield VkDescriptorUpdateTemplateCreateFlagBits {
2712//}
2713
2714/// External memory handle type flags
2715type VkFlags VkExternalMemoryHandleTypeFlags
2716bitfield VkExternalMemoryHandleTypeFlagBits {
2717 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT = 0x00000001,
2718 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT = 0x00000002,
2719 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 0x00000004,
2720 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT = 0x00000008,
2721 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT = 0x00000010,
2722 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT = 0x00000020,
2723 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT = 0x00000040,
Jesse Hall8c954d32018-01-17 22:06:20 -08002724
Jesse Hall8c954d32018-01-17 22:06:20 -08002725 //@extension("VK_EXT_external_memory_host") // 179
Jesse Hall36215a92018-01-18 15:04:37 -08002726 VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT = 0x00000080,
2727 VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT = 0x00000100,
2728
2729 //@extension("VK_EXT_external_memory_dma_buf") // 126
2730 VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT = 0x00000200,
2731
2732 //@extension("VK_ANDROID_external_memory_android_hardware_buffer") // 130
2733 VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID = 0x00000400,
Daniel Koch09f7bf92017-10-05 00:26:58 -04002734}
2735
2736/// External memory feature flags
2737type VkFlags VkExternalMemoryFeatureFlags
2738bitfield VkExternalMemoryFeatureFlagBits {
2739 VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT = 0x00000001,
2740 VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT = 0x00000002,
2741 VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT = 0x00000004,
2742}
2743
2744/// External fence handle type flags
2745type VkFlags VkExternalFenceHandleTypeFlags
2746bitfield VkExternalFenceHandleTypeFlagBits {
2747 VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT = 0x00000001,
2748 VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT = 0x00000002,
2749 VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 0x00000004,
2750 VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT = 0x00000008,
2751}
2752
2753/// External fence feature flags
2754type VkFlags VkExternalFenceFeatureFlags
2755bitfield VkExternalFenceFeatureFlagBits {
2756 VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT = 0x00000001,
2757 VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT = 0x00000002,
2758}
2759
2760/// Fence import flags
2761type VkFlags VkFenceImportFlags
2762bitfield VkFenceImportFlagBits {
2763 VK_FENCE_IMPORT_TEMPORARY_BIT = 0x00000001,
2764}
2765
2766/// Semaphore import flags
2767type VkFlags VkSemaphoreImportFlags
2768bitfield VkSemaphoreImportFlagBits {
2769 VK_SEMAPHORE_IMPORT_TEMPORARY_BIT = 0x00000001,
2770}
2771
2772/// External semaphore handle type flags
2773type VkFlags VkExternalSemaphoreHandleTypeFlags
2774bitfield VkExternalSemaphoreHandleTypeFlagBits {
2775 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT = 0x00000001,
2776 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT = 0x00000002,
2777 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 0x00000004,
2778 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT = 0x00000008,
2779 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT = 0x00000010,
2780}
2781
2782/// External semaphore feature flags
2783type VkFlags VkExternalSemaphoreFeatureFlags
2784bitfield VkExternalSemaphoreFeatureFlagBits {
2785 VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT = 0x00000001,
2786 VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT = 0x00000002,
2787}
2788
Jesse Hallad250842017-03-10 18:35:38 -08002789@extension("VK_KHR_surface") // 1
Jesse Halld8bade02015-11-24 10:24:18 -08002790type VkFlags VkSurfaceTransformFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08002791@extension("VK_KHR_surface") // 1
Jesse Halld8bade02015-11-24 10:24:18 -08002792bitfield VkSurfaceTransformFlagBitsKHR {
Jesse Hallf9fa9a52016-01-08 16:08:51 -08002793 VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR = 0x00000001,
Jesse Hall9ba8bc82015-11-30 16:22:16 -08002794 VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR = 0x00000002,
2795 VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR = 0x00000004,
2796 VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR = 0x00000008,
2797 VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR = 0x00000010,
2798 VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR = 0x00000020,
2799 VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR = 0x00000040,
2800 VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR = 0x00000080,
2801 VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR = 0x00000100,
Michael Lentine88594d72015-11-12 12:49:45 -08002802}
Jesse Halld27f6aa2015-08-15 17:58:48 -07002803
Jesse Hallad250842017-03-10 18:35:38 -08002804@extension("VK_KHR_surface") // 1
Jesse Halla6429252015-11-29 18:59:42 -08002805type VkFlags VkCompositeAlphaFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08002806@extension("VK_KHR_surface") // 1
Jesse Halla6429252015-11-29 18:59:42 -08002807bitfield VkCompositeAlphaFlagBitsKHR {
2808 VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR = 0x00000001,
2809 VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR = 0x00000002,
2810 VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR = 0x00000004,
2811 VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR = 0x00000008,
2812}
2813
Jesse Hallad250842017-03-10 18:35:38 -08002814@extension("VK_KHR_swapchain") // 2
Jesse Hallf4ab2b12015-11-30 16:04:55 -08002815type VkFlags VkSwapchainCreateFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08002816@extension("VK_KHR_swapchain") // 2
2817bitfield VkSwapchainCreateFlagBitsKHR {
Ian Elliott28bd2c32017-10-13 09:21:12 -06002818 //@vulkan1_1
Jesse Hall8c954d32018-01-17 22:06:20 -08002819 VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR = 0x00000001,
Daniel Koch09f7bf92017-10-05 00:26:58 -04002820 VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR = 0x00000002,
2821}
2822
Ian Elliott28bd2c32017-10-13 09:21:12 -06002823@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04002824@extension("VK_KHR_swapchain") // 2
2825type VkFlags VkDeviceGroupPresentModeFlagsKHR
Ian Elliott28bd2c32017-10-13 09:21:12 -06002826@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04002827@extension("VK_KHR_swapchain") // 2
2828bitfield VkDeviceGroupPresentModeFlagBitsKHR {
2829 VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR = 0x00000001,
2830 VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR = 0x00000002,
2831 VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR = 0x00000004,
2832 VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR = 0x00000008,
Jesse Hallad250842017-03-10 18:35:38 -08002833}
Jesse Hallf4ab2b12015-11-30 16:04:55 -08002834
Jesse Hallad250842017-03-10 18:35:38 -08002835@extension("VK_KHR_display") // 3
Jesse Halld8bade02015-11-24 10:24:18 -08002836type VkFlags VkDisplayPlaneAlphaFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08002837@extension("VK_KHR_display") // 3
Jesse Halld8bade02015-11-24 10:24:18 -08002838bitfield VkDisplayPlaneAlphaFlagBitsKHR {
Jesse Hallf4ab2b12015-11-30 16:04:55 -08002839 VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR = 0x00000001,
2840 VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR = 0x00000002,
2841 VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR = 0x00000004,
2842 VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR = 0x00000008,
Jesse Hall1356b0d2015-11-23 17:24:58 -08002843}
2844
Jesse Hallad250842017-03-10 18:35:38 -08002845@extension("VK_KHR_display") // 3
Jesse Hallf4ab2b12015-11-30 16:04:55 -08002846type VkFlags VkDisplaySurfaceCreateFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08002847//@extension("VK_KHR_display") // 3
Jesse Hallf4ab2b12015-11-30 16:04:55 -08002848//bitfield VkDisplaySurfaceCreateFlagBitsKHR {
2849//}
2850
Jesse Hallad250842017-03-10 18:35:38 -08002851@extension("VK_KHR_display") // 3
Jesse Hall9ba8bc82015-11-30 16:22:16 -08002852type VkFlags VkDisplayModeCreateFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08002853//@extension("VK_KHR_display") // 3
Jesse Hall9ba8bc82015-11-30 16:22:16 -08002854//bitfield VkDisplayModeCreateFlagBitsKHR {
2855//}
2856
Jesse Hallad250842017-03-10 18:35:38 -08002857@extension("VK_KHR_xlib_surface") // 5
Jesse Hallf9fa9a52016-01-08 16:08:51 -08002858type VkFlags VkXlibSurfaceCreateFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08002859//@extension("VK_KHR_xlib_surface") // 5
Jesse Hallf9fa9a52016-01-08 16:08:51 -08002860//bitfield VkXlibSurfaceCreateFlagBitsKHR {
2861//}
2862
Jesse Hallad250842017-03-10 18:35:38 -08002863@extension("VK_KHR_xcb_surface") // 6
Jesse Hallf9fa9a52016-01-08 16:08:51 -08002864type VkFlags VkXcbSurfaceCreateFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08002865//@extension("VK_KHR_xcb_surface") // 6
Jesse Hallf9fa9a52016-01-08 16:08:51 -08002866//bitfield VkXcbSurfaceCreateFlagBitsKHR {
2867//}
2868
Jesse Hallad250842017-03-10 18:35:38 -08002869@extension("VK_KHR_wayland_surface") // 7
Jesse Hallf9fa9a52016-01-08 16:08:51 -08002870type VkFlags VkWaylandSurfaceCreateFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08002871//@extension("VK_KHR_wayland_surface") // 7
Jesse Hallf9fa9a52016-01-08 16:08:51 -08002872//bitfield VkWaylandSurfaceCreateFlagBitsKHR {
2873//}
2874
Jesse Hallad250842017-03-10 18:35:38 -08002875@extension("VK_KHR_mir_surface") // 8
Jesse Hallf9fa9a52016-01-08 16:08:51 -08002876type VkFlags VkMirSurfaceCreateFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08002877//@extension("VK_KHR_mir_surface") // 8
Jesse Hallf9fa9a52016-01-08 16:08:51 -08002878//bitfield VkMirSurfaceCreateFlagBitsKHR {
2879//}
2880
Jesse Hallad250842017-03-10 18:35:38 -08002881@extension("VK_KHR_android_surface") // 9
Jesse Hallf9fa9a52016-01-08 16:08:51 -08002882type VkFlags VkAndroidSurfaceCreateFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08002883//@extension("VK_KHR_android_surface") // 9
Jesse Hallf9fa9a52016-01-08 16:08:51 -08002884//bitfield VkAndroidSurfaceCreateFlagBitsKHR {
2885//}
2886
Jesse Hallad250842017-03-10 18:35:38 -08002887@extension("VK_KHR_win32_surface") // 10
Jesse Hallf9fa9a52016-01-08 16:08:51 -08002888type VkFlags VkWin32SurfaceCreateFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08002889//@extension("VK_KHR_win32_surface") // 10
Jesse Hallf9fa9a52016-01-08 16:08:51 -08002890//bitfield VkWin32SurfaceCreateFlagBitsKHR {
2891//}
2892
Jesse Hallad250842017-03-10 18:35:38 -08002893@extension("VK_ANDROID_native_buffer") // 11
Jesse Hall889cd9a2017-02-25 22:12:23 -08002894type VkFlags VkSwapchainImageUsageFlagsANDROID
Jesse Hallad250842017-03-10 18:35:38 -08002895@extension("VK_ANDROID_native_buffer") // 11
Jesse Hall889cd9a2017-02-25 22:12:23 -08002896bitfield VkSwapchainImageUsageFlagBitsANDROID {
2897 VK_SWAPCHAIN_IMAGE_USAGE_FLAGS_SHARED_BIT_ANDROID = 0x00000001,
2898}
2899
Jesse Hallad250842017-03-10 18:35:38 -08002900@extension("VK_EXT_debug_report") // 12
Jesse Hall715b86a2016-01-16 16:34:29 -08002901type VkFlags VkDebugReportFlagsEXT
Jesse Hallad250842017-03-10 18:35:38 -08002902@extension("VK_EXT_debug_report") // 12
Jesse Hall715b86a2016-01-16 16:34:29 -08002903bitfield VkDebugReportFlagBitsEXT {
Jesse Halle2948d82016-02-25 04:19:32 -08002904 VK_DEBUG_REPORT_INFORMATION_BIT_EXT = 0x00000001,
2905 VK_DEBUG_REPORT_WARNING_BIT_EXT = 0x00000002,
2906 VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT = 0x00000004,
Jesse Hall715b86a2016-01-16 16:34:29 -08002907 VK_DEBUG_REPORT_ERROR_BIT_EXT = 0x00000008,
2908 VK_DEBUG_REPORT_DEBUG_BIT_EXT = 0x00000010,
2909}
2910
Jesse Hallad250842017-03-10 18:35:38 -08002911@extension("VK_NV_external_memory_capabilities") // 56
Chris Forbes289cb792016-12-30 15:03:55 +13002912type VkFlags VkExternalMemoryHandleTypeFlagsNV
Jesse Hallad250842017-03-10 18:35:38 -08002913@extension("VK_NV_external_memory_capabilities") // 56
Chris Forbes289cb792016-12-30 15:03:55 +13002914bitfield VkExternalMemoryHandleTypeFlagBitsNV {
Jesse Halleb02c472017-02-24 15:13:45 -08002915 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV = 0x00000001,
2916 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV = 0x00000002,
2917 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV = 0x00000004,
2918 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV = 0x00000008,
Chris Forbes289cb792016-12-30 15:03:55 +13002919}
2920
Jesse Hallad250842017-03-10 18:35:38 -08002921@extension("VK_NV_external_memory_capabilities") // 56
Chris Forbes289cb792016-12-30 15:03:55 +13002922type VkFlags VkExternalMemoryFeatureFlagsNV
Jesse Hallad250842017-03-10 18:35:38 -08002923@extension("VK_NV_external_memory_capabilities") // 56
Chris Forbes289cb792016-12-30 15:03:55 +13002924bitfield VkExternalMemoryFeatureFlagBitsNV {
Jesse Halleb02c472017-02-24 15:13:45 -08002925 VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV = 0x00000001,
2926 VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV = 0x00000002,
2927 VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV = 0x00000004,
Chris Forbes289cb792016-12-30 15:03:55 +13002928}
2929
Daniel Koch09f7bf92017-10-05 00:26:58 -04002930@extension("VK_KHR_device_group") // 61
2931type VkFlags VkPeerMemoryFeatureFlagsKHR
2932@extension("VK_KHR_device_group") // 61
2933bitfield VkPeerMemoryFeatureFlagBitsKHR {
2934 VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT_KHR = 0x00000001,
2935 VK_PEER_MEMORY_FEATURE_COPY_DST_BIT_KHR = 0x00000002,
2936 VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT_KHR = 0x00000004,
2937 VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT_KHR = 0x00000008,
Jesse Hallad250842017-03-10 18:35:38 -08002938}
2939
Daniel Koch09f7bf92017-10-05 00:26:58 -04002940@extension("VK_KHR_device_group") // 61
2941type VkFlags VkMemoryAllocateFlagsKHR
2942@extension("VK_KHR_device_group") // 61
2943bitfield VkMemoryAllocateFlagBitsKHR {
2944 VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT_KHR = 0x00000001,
Jesse Hallad250842017-03-10 18:35:38 -08002945}
2946
2947@extension("VK_NN_vi_surface") // 63
Jesse Hall77ad05b2017-03-10 22:02:20 -08002948type VkFlags VkViSurfaceCreateFlagsNN
Jesse Hallad250842017-03-10 18:35:38 -08002949//@extension("VK_NN_vi_surface") // 63
Jesse Hall77ad05b2017-03-10 22:02:20 -08002950//bitfield VkViSurfaceCreateFlagBitsNN {
2951//}
2952
Jesse Hallad250842017-03-10 18:35:38 -08002953@extension("VK_KHR_maintenance1") // 70
Jesse Hall77ad05b2017-03-10 22:02:20 -08002954type VkFlags VkCommandPoolTrimFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08002955//@extension("VK_KHR_maintenance1") // 70
Jesse Hall77ad05b2017-03-10 22:02:20 -08002956//bitfield VkCommandPoolTrimFlagBitsKHR {
2957//}
2958
Jesse Hall9492f992017-08-28 12:10:06 -07002959@extension("VK_KHR_external_memory_capabilities") // 72
2960type VkFlags VkExternalMemoryHandleTypeFlagsKHR
2961@extension("VK_KHR_external_memory_capabilities") // 72
2962bitfield VkExternalMemoryHandleTypeFlagBitsKHR {
2963 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = 0x00000001,
2964 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = 0x00000002,
2965 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = 0x00000004,
2966 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT_KHR = 0x00000008,
2967 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT_KHR = 0x00000010,
2968 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT_KHR = 0x00000020,
2969 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT_KHR = 0x00000040,
Jesse Hallad250842017-03-10 18:35:38 -08002970}
2971
Jesse Hall9492f992017-08-28 12:10:06 -07002972@extension("VK_KHR_external_memory_capabilities") // 72
2973type VkFlags VkExternalMemoryFeatureFlagsKHR
2974@extension("VK_KHR_external_memory_capabilities") // 72
2975bitfield VkExternalMemoryFeatureFlagBitsKHR {
2976 VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_KHR = 0x00000001,
2977 VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_KHR = 0x00000002,
2978 VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_KHR = 0x00000004,
Jesse Hallad250842017-03-10 18:35:38 -08002979}
2980
Jesse Hall9492f992017-08-28 12:10:06 -07002981@extension("VK_KHR_external_semaphore_capabilities") // 77
2982type VkFlags VkExternalSemaphoreHandleTypeFlagsKHR
2983@extension("VK_KHR_external_semaphore_capabilities") // 77
2984bitfield VkExternalSemaphoreHandleTypeFlagBitsKHR {
2985 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = 0x00000001
2986 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = 0x00000002
2987 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = 0x00000004
2988 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT_KHR = 0x00000008
2989 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_FENCE_FD_BIT_KHR = 0x00000010
Jesse Hallad250842017-03-10 18:35:38 -08002990}
2991
Jesse Hall9492f992017-08-28 12:10:06 -07002992@extension("VK_KHR_external_semaphore_capabilities") // 77
2993type VkFlags VkExternalSemaphoreFeatureFlagsKHR
2994@extension("VK_KHR_external_semaphore_capabilities") // 77
2995bitfield VkExternalSemaphoreFeatureFlagBitsKHR {
2996 VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT_KHR = 0x00000001,
2997 VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT_KHR = 0x00000002,
2998}
2999
3000@extension("VK_KHR_external_semaphore") // 78
3001type VkFlags VkSemaphoreImportFlagsKHR
3002@extension("VK_KHR_external_semaphore") // 78
3003bitfield VkSemaphoreImportFlagBitsKHR {
3004 VK_SEMAPHORE_IMPORT_TEMPORARY_BIT_KHR = 0x00000001,
Jesse Hallad250842017-03-10 18:35:38 -08003005}
3006
Jesse Halla13a3cf2018-07-09 15:51:52 -07003007@extension("VK_EXT_conditional_rendering") // 82
3008type VkFlags VkConditionalRenderingFlagsEXT
3009@extension("VK_EXT_conditional_rendering") // 82
3010bitfield VkConditionalRenderingFlagBitsEXT {
3011 VK_CONDITIONAL_RENDERING_INVERTED_BIT_EXT = 0x00000001,
3012}
3013
Jesse Hallad250842017-03-10 18:35:38 -08003014@extension("VK_KHR_descriptor_update_template") // 86
3015type VkFlags VkDescriptorUpdateTemplateCreateFlagsKHR
3016//@extension("VK_KHR_descriptor_update_template") // 86
3017//bitfield VkDescriptorUpdateTemplateCreateFlagBitsKHR {
3018//}
3019
3020@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13003021type VkFlags VkIndirectCommandsLayoutUsageFlagsNVX
Jesse Hallad250842017-03-10 18:35:38 -08003022@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13003023bitfield VkIndirectCommandsLayoutUsageFlagBitsNVX {
Jesse Halleb02c472017-02-24 15:13:45 -08003024 VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NVX = 0x00000001,
3025 VK_INDIRECT_COMMANDS_LAYOUT_USAGE_SPARSE_SEQUENCES_BIT_NVX = 0x00000002,
3026 VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EMPTY_EXECUTIONS_BIT_NVX = 0x00000004,
3027 VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NVX = 0x00000008,
Chris Forbes289cb792016-12-30 15:03:55 +13003028}
3029
Jesse Hallad250842017-03-10 18:35:38 -08003030@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13003031type VkFlags VkObjectEntryUsageFlagsNVX
Jesse Hallad250842017-03-10 18:35:38 -08003032@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13003033bitfield VkObjectEntryUsageFlagBitsNVX {
Jesse Halleb02c472017-02-24 15:13:45 -08003034 VK_OBJECT_ENTRY_USAGE_GRAPHICS_BIT_NVX = 0x00000001,
3035 VK_OBJECT_ENTRY_USAGE_COMPUTE_BIT_NVX = 0x00000002,
Chris Forbes289cb792016-12-30 15:03:55 +13003036}
3037
Jesse Hallad250842017-03-10 18:35:38 -08003038@extension("VK_EXT_display_surface_counter") // 91
Jesse Hall77ad05b2017-03-10 22:02:20 -08003039type VkFlags VkSurfaceCounterFlagsEXT
Jesse Hallad250842017-03-10 18:35:38 -08003040@extension("VK_EXT_display_surface_counter") // 91
Jesse Hall77ad05b2017-03-10 22:02:20 -08003041bitfield VkSurfaceCounterFlagBitsEXT {
3042 VK_SURFACE_COUNTER_VBLANK_EXT = 0x00000001,
3043}
3044
Jesse Hallad250842017-03-10 18:35:38 -08003045@extension("VK_NV_viewport_swizzle") // 99
3046type VkFlags VkPipelineViewportSwizzleStateCreateFlagsNV
3047//@extension("VK_NV_viewport_swizzle") // 99
3048//bitfield VkPipelineViewportSwizzleStateCreateFlagBitsNV {
3049//}
3050
3051@extension("VK_EXT_discard_rectangles") // 100
3052type VkFlags VkPipelineDiscardRectangleStateCreateFlagsEXT
3053//@extension("VK_EXT_discard_rectangles") // 100
3054//bitfield VkPipelineDiscardRectangleStateCreateFlagBitsEXT {
3055//}
3056
Jesse Hall8c954d32018-01-17 22:06:20 -08003057@extension("VK_EXT_conservative_rasterization") // 102
3058type VkFlags VkPipelineRasterizationConservativeStateCreateFlagsEXT
3059//@extension("VK_EXT_conservative_rasterization") // 102
3060//bitfield VkPipelineRasterizationConservativeStateCreateFlagBitsEXT {
3061//}
3062
Jesse Hall9492f992017-08-28 12:10:06 -07003063@extension("VK_KHR_external_fence_capabilities") // 113
3064type VkFlags VkExternalFenceHandleTypeFlagsKHR
3065@extension("VK_KHR_external_fence_capabilities") // 113
3066bitfield VkExternalFenceHandleTypeFlagBitsKHR {
3067 VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = 0x00000001,
3068 VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = 0x00000002,
3069 VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = 0x00000004,
3070 VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT_KHR = 0x00000008,
3071}
3072
3073@extension("VK_KHR_external_fence_capabilities") // 113
3074type VkFlags VkExternalFenceFeatureFlagsKHR
3075@extension("VK_KHR_external_fence_capabilities") // 113
3076bitfield VkExternalFenceFeatureFlagBitsKHR {
3077 VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT_KHR = 0x00000001,
3078 VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT_KHR = 0x00000002,
3079}
3080
3081@extension("VK_KHR_external_fence") // 114
3082type VkFlags VkFenceImportFlagsKHR
3083@extension("VK_KHR_external_fence") // 114
3084bitfield VkFenceImportFlagBitsKHR {
3085 VK_FENCE_IMPORT_TEMPORARY_BIT_KHR = 0x00000001,
3086}
3087
Jesse Hallad250842017-03-10 18:35:38 -08003088@extension("VK_MVK_ios_surface") // 123
3089type VkFlags VkIOSSurfaceCreateFlagsMVK
3090//@extension("VK_MVK_ios_surface") // 123
3091//bitfield VkIOSSurfaceCreateFlagBitsMVK {
3092//}
3093
3094@extension("VK_MVK_macos_surface") // 124
3095type VkFlags VkMacOSSurfaceCreateFlagsMVK
3096//@extension("VK_MVK_macos_surface") // 124
3097//bitfield VkMacOSSurfaceCreateFlagBitsMVK {
3098//}
3099
Jesse Hall8c954d32018-01-17 22:06:20 -08003100@extension("VK_EXT_debug_utils") // 129
3101type VkFlags VkDebugUtilsMessengerCallbackDataFlagsEXT
3102//@extension("VK_EXT_debug_utils") // 129
3103//bitfield VkDebugUtilsMessengerCallbackDataFlagBitsEXT {
3104//}
3105
3106@extension("VK_EXT_debug_utils") // 129
3107type VkFlags VkDebugUtilsMessengerCreateFlagsEXT
3108//@extension("VK_EXT_debug_utils") // 129
3109//bitfield VkDebugUtilsMessengerCreateFlagBitsEXT {
3110//}
3111
3112@extension("VK_EXT_debug_utils") // 129
3113type VkFlags VkDebugUtilsMessageSeverityFlagsEXT
3114@extension("VK_EXT_debug_utils") // 129
3115bitfield VkDebugUtilsMessageSeverityFlagBitsEXT {
3116 VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT = 0x00000001,
3117 VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT = 0x00000010,
3118 VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT = 0x00000100,
3119 VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT = 0x00001000,
3120}
3121
3122@extension("VK_EXT_debug_utils") // 129
3123type VkFlags VkDebugUtilsMessageTypeFlagsEXT
3124@extension("VK_EXT_debug_utils") // 129
3125bitfield VkDebugUtilsMessageTypeFlagBitsEXT {
3126 VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT = 0x00000001,
3127 VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT = 0x00000002,
3128 VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT = 0x00000004,
3129}
3130
Jesse Hall7ba0ac72017-07-07 17:13:23 -07003131@extension("VK_NV_fragment_coverage_to_color") // 150
3132type VkFlags VkPipelineCoverageToColorStateCreateFlagsNV
3133@extension("VK_NV_fragment_coverage_to_color") // 150
3134//bitfield VkPipelineCoverageToColorStateCreateFlagBitsNV {
3135//}
3136
3137@extension("VK_NV_framebuffer_mixed_samples") // 153
3138type VkFlags VkPipelineCoverageModulationStateCreateFlagsNV
3139@extension("VK_NV_framebuffer_mixed_samples") // 153
3140//bitfield VkPipelineCoverageModulationStateCreateFlagBitsNV {
3141//}
3142
Jesse Hall77726222017-09-19 14:49:27 -05003143@extension("VK_EXT_validation_cache") // 161
3144type VkFlags VkValidationCacheCreateFlagsEXT
3145@extension("VK_EXT_validation_cache") // 161
3146//bitfield VkValidationCacheCreateFlagBitsEXT {
3147//}
3148
Jesse Hall72e6a132018-04-06 13:00:44 -07003149@extension("VK_EXT_descriptor_indexing") // 162
3150type VkFlags VkDescriptorBindingFlagsEXT
3151@extension("VK_EXT_descriptor_indexing") // 162
3152bitfield VkDescriptorBindingFlagBitsEXT {
3153 VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT_EXT = 0x00000001,
3154 VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT_EXT = 0x00000002,
3155 VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT_EXT = 0x00000004,
3156 VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT_EXT = 0x00000008,
3157}
3158
Jesse Halld27f6aa2015-08-15 17:58:48 -07003159//////////////////
3160// Structures //
3161//////////////////
3162
3163class VkOffset2D {
3164 s32 x
3165 s32 y
3166}
3167
3168class VkOffset3D {
3169 s32 x
3170 s32 y
3171 s32 z
3172}
3173
3174class VkExtent2D {
Jesse Hall3dd678a2016-01-08 21:52:01 -08003175 u32 width
3176 u32 height
Jesse Halld27f6aa2015-08-15 17:58:48 -07003177}
3178
3179class VkExtent3D {
Jesse Hall3dd678a2016-01-08 21:52:01 -08003180 u32 width
3181 u32 height
3182 u32 depth
Jesse Halld27f6aa2015-08-15 17:58:48 -07003183}
3184
3185class VkViewport {
Jesse Hall65ab5522015-11-30 00:07:16 -08003186 f32 x
3187 f32 y
Jesse Halld27f6aa2015-08-15 17:58:48 -07003188 f32 width
3189 f32 height
3190 f32 minDepth
3191 f32 maxDepth
3192}
3193
3194class VkRect2D {
3195 VkOffset2D offset
3196 VkExtent2D extent
3197}
3198
Jesse Halla15a4bf2015-11-19 22:48:02 -08003199class VkClearRect {
3200 VkRect2D rect
3201 u32 baseArrayLayer
Jesse Hall3fbc8562015-11-29 22:10:52 -08003202 u32 layerCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07003203}
3204
Jesse Hall65ab5522015-11-30 00:07:16 -08003205class VkComponentMapping {
3206 VkComponentSwizzle r
3207 VkComponentSwizzle g
3208 VkComponentSwizzle b
3209 VkComponentSwizzle a
Jesse Halld27f6aa2015-08-15 17:58:48 -07003210}
3211
3212class VkPhysicalDeviceProperties {
3213 u32 apiVersion
3214 u32 driverVersion
Jesse Hall65ab5522015-11-30 00:07:16 -08003215 u32 vendorID
3216 u32 deviceID
Jesse Halld27f6aa2015-08-15 17:58:48 -07003217 VkPhysicalDeviceType deviceType
Jesse Hall65ab5522015-11-30 00:07:16 -08003218 char[VK_MAX_PHYSICAL_DEVICE_NAME_SIZE] deviceName
3219 u8[VK_UUID_SIZE] pipelineCacheUUID
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003220 VkPhysicalDeviceLimits limits
3221 VkPhysicalDeviceSparseProperties sparseProperties
Jesse Halld27f6aa2015-08-15 17:58:48 -07003222}
3223
3224class VkExtensionProperties {
Jesse Hall65ab5522015-11-30 00:07:16 -08003225 char[VK_MAX_EXTENSION_NAME_SIZE] extensionName /// extension name
Jesse Halld27f6aa2015-08-15 17:58:48 -07003226 u32 specVersion /// version of the extension specification implemented
3227}
3228
3229class VkLayerProperties {
Jesse Hall65ab5522015-11-30 00:07:16 -08003230 char[VK_MAX_EXTENSION_NAME_SIZE] layerName /// layer name
Jesse Hall3fbc8562015-11-29 22:10:52 -08003231 u32 specVersion /// version of the layer specification implemented
3232 u32 implementationVersion /// build or release version of the layer's library
Jesse Hall65ab5522015-11-30 00:07:16 -08003233 char[VK_MAX_DESCRIPTION_SIZE] description /// Free-form description of the layer
Jesse Halld27f6aa2015-08-15 17:58:48 -07003234}
3235
Jesse Halla366a512015-11-19 22:30:07 -08003236class VkSubmitInfo {
Jesse Hall03b6fe12015-11-24 12:44:21 -08003237 VkStructureType sType /// Type of structure. Should be VK_STRUCTURE_TYPE_SUBMIT_INFO
3238 const void* pNext /// Next structure in chain
3239 u32 waitSemaphoreCount
Jesse Halla366a512015-11-19 22:30:07 -08003240 const VkSemaphore* pWaitSemaphores
Jesse Hall543a7ff2016-01-08 16:38:30 -08003241 const VkPipelineStageFlags* pWaitDstStageMask
Jesse Hall03b6fe12015-11-24 12:44:21 -08003242 u32 commandBufferCount
Jesse Hall3fbc8562015-11-29 22:10:52 -08003243 const VkCommandBuffer* pCommandBuffers
Jesse Hall03b6fe12015-11-24 12:44:21 -08003244 u32 signalSemaphoreCount
Jesse Halla366a512015-11-19 22:30:07 -08003245 const VkSemaphore* pSignalSemaphores
3246}
3247
Jesse Halld27f6aa2015-08-15 17:58:48 -07003248class VkApplicationInfo {
3249 VkStructureType sType /// Type of structure. Should be VK_STRUCTURE_TYPE_APPLICATION_INFO
3250 const void* pNext /// Next structure in chain
Jesse Hall3fbc8562015-11-29 22:10:52 -08003251 const char* pApplicationName
3252 u32 applicationVersion
Jesse Halld27f6aa2015-08-15 17:58:48 -07003253 const char* pEngineName
3254 u32 engineVersion
3255 u32 apiVersion
3256}
3257
Jesse Hall3fbc8562015-11-29 22:10:52 -08003258class VkAllocationCallbacks {
Jesse Halld27f6aa2015-08-15 17:58:48 -07003259 void* pUserData
Jesse Hall3fbc8562015-11-29 22:10:52 -08003260 PFN_vkAllocationFunction pfnAllocation
3261 PFN_vkReallocationFunction pfnReallocation
Jesse Halld27f6aa2015-08-15 17:58:48 -07003262 PFN_vkFreeFunction pfnFree
Jesse Hall3fbc8562015-11-29 22:10:52 -08003263 PFN_vkInternalAllocationNotification pfnInternalAllocation
Jesse Hall03b6fe12015-11-24 12:44:21 -08003264 PFN_vkInternalFreeNotification pfnInternalFree
Jesse Halld27f6aa2015-08-15 17:58:48 -07003265}
3266
3267class VkDeviceQueueCreateInfo {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003268 VkStructureType sStype /// Should be VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO
3269 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003270 VkDeviceQueueCreateFlags flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07003271 u32 queueFamilyIndex
Jesse Halldba27f72015-11-30 14:25:46 -08003272 u32 queueCount
Jesse Hallfbf97b02015-11-20 14:17:03 -08003273 const f32* pQueuePriorities
Jesse Halld27f6aa2015-08-15 17:58:48 -07003274}
3275
3276class VkDeviceCreateInfo {
3277 VkStructureType sType /// Should be VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO
3278 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003279 VkDeviceCreateFlags flags
Jesse Halldba27f72015-11-30 14:25:46 -08003280 u32 queueCreateInfoCount
3281 const VkDeviceQueueCreateInfo* pQueueCreateInfos
Jesse Hall3dd678a2016-01-08 21:52:01 -08003282 u32 enabledLayerCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07003283 const char* const* ppEnabledLayerNames /// Ordered list of layer names to be enabled
Jesse Hall3dd678a2016-01-08 21:52:01 -08003284 u32 enabledExtensionCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07003285 const char* const* ppEnabledExtensionNames
3286 const VkPhysicalDeviceFeatures* pEnabledFeatures
Jesse Halld27f6aa2015-08-15 17:58:48 -07003287}
3288
3289class VkInstanceCreateInfo {
3290 VkStructureType sType /// Should be VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO
3291 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003292 VkInstanceCreateFlags flags
Jesse Hall3fbc8562015-11-29 22:10:52 -08003293 const VkApplicationInfo* pApplicationInfo
Jesse Hall3dd678a2016-01-08 21:52:01 -08003294 u32 enabledLayerCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07003295 const char* const* ppEnabledLayerNames /// Ordered list of layer names to be enabled
Jesse Hall3dd678a2016-01-08 21:52:01 -08003296 u32 enabledExtensionCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07003297 const char* const* ppEnabledExtensionNames /// Extension names to be enabled
3298}
3299
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003300class VkQueueFamilyProperties {
Jesse Halld27f6aa2015-08-15 17:58:48 -07003301 VkQueueFlags queueFlags /// Queue flags
3302 u32 queueCount
Jesse Hallacfa5342015-11-19 21:51:33 -08003303 u32 timestampValidBits
Jesse Hall65ab5522015-11-30 00:07:16 -08003304 VkExtent3D minImageTransferGranularity
Jesse Halld27f6aa2015-08-15 17:58:48 -07003305}
3306
3307class VkPhysicalDeviceMemoryProperties {
3308 u32 memoryTypeCount
3309 VkMemoryType[VK_MAX_MEMORY_TYPES] memoryTypes
3310 u32 memoryHeapCount
3311 VkMemoryHeap[VK_MAX_MEMORY_HEAPS] memoryHeaps
3312}
3313
Jesse Hall3fbc8562015-11-29 22:10:52 -08003314class VkMemoryAllocateInfo {
Jesse Hallf4ab2b12015-11-30 16:04:55 -08003315 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO
Jesse Halld27f6aa2015-08-15 17:58:48 -07003316 const void* pNext /// Pointer to next structure
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003317 VkDeviceSize allocationSize /// Size of memory allocation
Jesse Halld27f6aa2015-08-15 17:58:48 -07003318 u32 memoryTypeIndex /// Index of the of the memory type to allocate from
3319}
3320
3321class VkMemoryRequirements {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003322 VkDeviceSize size /// Specified in bytes
3323 VkDeviceSize alignment /// Specified in bytes
Jesse Halld27f6aa2015-08-15 17:58:48 -07003324 u32 memoryTypeBits /// Bitfield of the allowed memory type indices into memoryTypes[] for this object
3325}
3326
3327class VkSparseImageFormatProperties {
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08003328 VkImageAspectFlagBits aspectMask
Jesse Halld27f6aa2015-08-15 17:58:48 -07003329 VkExtent3D imageGranularity
3330 VkSparseImageFormatFlags flags
3331}
3332
3333class VkSparseImageMemoryRequirements {
Jesse Hallb00daad2015-11-29 19:46:20 -08003334 VkSparseImageFormatProperties formatProperties
Jesse Hallf9fa9a52016-01-08 16:08:51 -08003335 u32 imageMipTailFirstLod
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003336 VkDeviceSize imageMipTailSize /// Specified in bytes, must be a multiple of image block size / alignment
3337 VkDeviceSize imageMipTailOffset /// Specified in bytes, must be a multiple of image block size / alignment
3338 VkDeviceSize imageMipTailStride /// Specified in bytes, must be a multiple of image block size / alignment
Jesse Halld27f6aa2015-08-15 17:58:48 -07003339}
3340
3341class VkMemoryType {
3342 VkMemoryPropertyFlags propertyFlags /// Memory properties of this memory type
3343 u32 heapIndex /// Index of the memory heap allocations of this memory type are taken from
3344}
3345
3346class VkMemoryHeap {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003347 VkDeviceSize size /// Available memory in the heap
Jesse Halld27f6aa2015-08-15 17:58:48 -07003348 VkMemoryHeapFlags flags /// Flags for the heap
3349}
3350
3351class VkMappedMemoryRange {
3352 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE
3353 const void* pNext /// Pointer to next structure
Jesse Hall3fbc8562015-11-29 22:10:52 -08003354 VkDeviceMemory memory /// Mapped memory object
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003355 VkDeviceSize offset /// Offset within the mapped memory the range starts from
3356 VkDeviceSize size /// Size of the range within the mapped memory
Jesse Halld27f6aa2015-08-15 17:58:48 -07003357}
3358
3359class VkFormatProperties {
3360 VkFormatFeatureFlags linearTilingFeatures /// Format features in case of linear tiling
3361 VkFormatFeatureFlags optimalTilingFeatures /// Format features in case of optimal tiling
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003362 VkFormatFeatureFlags bufferFeatures /// Format features supported by buffers
Jesse Halld27f6aa2015-08-15 17:58:48 -07003363}
3364
3365class VkImageFormatProperties {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003366 VkExtent3D maxExtent /// max image dimensions for this resource type
3367 u32 maxMipLevels /// max number of mipmap levels for this resource type
Jesse Halla15a4bf2015-11-19 22:48:02 -08003368 u32 maxArrayLayers /// max array layers for this resource type
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003369 VkSampleCountFlags sampleCounts /// supported sample counts for this resource type
3370 VkDeviceSize maxResourceSize /// max size (in bytes) of this resource type
3371}
3372
Jesse Halla15a4bf2015-11-19 22:48:02 -08003373class VkDescriptorImageInfo {
3374 VkSampler sampler
3375 VkImageView imageView
3376 VkImageLayout imageLayout
3377}
3378
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003379class VkDescriptorBufferInfo {
3380 VkBuffer buffer /// Buffer used for this descriptor when the descriptor is UNIFORM_BUFFER[_DYNAMIC]
3381 VkDeviceSize offset /// Base offset from buffer start in bytes to update in the descriptor set.
3382 VkDeviceSize range /// Size in bytes of the buffer resource for this descriptor update.
Jesse Halld27f6aa2015-08-15 17:58:48 -07003383}
3384
Jesse Halld27f6aa2015-08-15 17:58:48 -07003385class VkWriteDescriptorSet {
3386 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET
3387 const void* pNext /// Pointer to next structure
Jesse Hall3fbc8562015-11-29 22:10:52 -08003388 VkDescriptorSet dstSet /// Destination descriptor set
3389 u32 dstBinding /// Binding within the destination descriptor set to write
3390 u32 dstArrayElement /// Array element within the destination binding to write
Jesse Hall03b6fe12015-11-24 12:44:21 -08003391 u32 descriptorCount /// Number of descriptors to write (determines the size of the array pointed by <pDescriptors>)
Jesse Halld27f6aa2015-08-15 17:58:48 -07003392 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 -08003393 const VkDescriptorImageInfo* pImageInfo
3394 const VkDescriptorBufferInfo* pBufferInfo
3395 const VkBufferView* pTexelBufferView
Jesse Halld27f6aa2015-08-15 17:58:48 -07003396}
3397
3398class VkCopyDescriptorSet {
3399 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET
3400 const void* pNext /// Pointer to next structure
3401 VkDescriptorSet srcSet /// Source descriptor set
3402 u32 srcBinding /// Binding within the source descriptor set to copy from
3403 u32 srcArrayElement /// Array element within the source binding to copy from
Jesse Hall3fbc8562015-11-29 22:10:52 -08003404 VkDescriptorSet dstSet /// Destination descriptor set
3405 u32 dstBinding /// Binding within the destination descriptor set to copy to
3406 u32 dstArrayElement /// Array element within the destination binding to copy to
Jesse Hall03b6fe12015-11-24 12:44:21 -08003407 u32 descriptorCount /// Number of descriptors to copy
Jesse Halld27f6aa2015-08-15 17:58:48 -07003408}
3409
3410class VkBufferCreateInfo {
3411 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO
3412 const void* pNext /// Pointer to next structure.
Jesse Halla6429252015-11-29 18:59:42 -08003413 VkBufferCreateFlags flags /// Buffer creation flags
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003414 VkDeviceSize size /// Specified in bytes
Jesse Halld27f6aa2015-08-15 17:58:48 -07003415 VkBufferUsageFlags usage /// Buffer usage flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07003416 VkSharingMode sharingMode
Jesse Hall03b6fe12015-11-24 12:44:21 -08003417 u32 queueFamilyIndexCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07003418 const u32* pQueueFamilyIndices
3419}
3420
3421class VkBufferViewCreateInfo {
3422 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO
3423 const void* pNext /// Pointer to next structure.
Jesse Halla6429252015-11-29 18:59:42 -08003424 VkBufferViewCreateFlags flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07003425 VkBuffer buffer
Jesse Halld27f6aa2015-08-15 17:58:48 -07003426 VkFormat format /// Optionally specifies format of elements
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003427 VkDeviceSize offset /// Specified in bytes
3428 VkDeviceSize range /// View size specified in bytes
Jesse Halld27f6aa2015-08-15 17:58:48 -07003429}
3430
3431class VkImageSubresource {
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08003432 VkImageAspectFlagBits aspectMask
Jesse Halld27f6aa2015-08-15 17:58:48 -07003433 u32 mipLevel
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003434 u32 arrayLayer
Jesse Halld27f6aa2015-08-15 17:58:48 -07003435}
3436
3437class VkImageSubresourceRange {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003438 VkImageAspectFlags aspectMask
Jesse Halld27f6aa2015-08-15 17:58:48 -07003439 u32 baseMipLevel
Jesse Hall3fbc8562015-11-29 22:10:52 -08003440 u32 levelCount
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003441 u32 baseArrayLayer
Jesse Hall3fbc8562015-11-29 22:10:52 -08003442 u32 layerCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07003443}
3444
3445class VkMemoryBarrier {
3446 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_MEMORY_BARRIER
3447 const void* pNext /// Pointer to next structure.
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08003448 VkAccessFlags srcAccessMask
3449 VkAccessFlags dstAccessMask
Jesse Halld27f6aa2015-08-15 17:58:48 -07003450}
3451
3452class VkBufferMemoryBarrier {
3453 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER
3454 const void* pNext /// Pointer to next structure.
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08003455 VkAccessFlags srcAccessMask
3456 VkAccessFlags dstAccessMask
Jesse Halld27f6aa2015-08-15 17:58:48 -07003457 u32 srcQueueFamilyIndex /// Queue family to transition ownership from
Jesse Hall3fbc8562015-11-29 22:10:52 -08003458 u32 dstQueueFamilyIndex /// Queue family to transition ownership to
Jesse Halld27f6aa2015-08-15 17:58:48 -07003459 VkBuffer buffer /// Buffer to sync
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003460 VkDeviceSize offset /// Offset within the buffer to sync
3461 VkDeviceSize size /// Amount of bytes to sync
Jesse Halld27f6aa2015-08-15 17:58:48 -07003462}
3463
3464class VkImageMemoryBarrier {
3465 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER
3466 const void* pNext /// Pointer to next structure.
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08003467 VkAccessFlags srcAccessMask
3468 VkAccessFlags dstAccessMask
Jesse Halld27f6aa2015-08-15 17:58:48 -07003469 VkImageLayout oldLayout /// Current layout of the image
3470 VkImageLayout newLayout /// New layout to transition the image to
3471 u32 srcQueueFamilyIndex /// Queue family to transition ownership from
Jesse Hall3fbc8562015-11-29 22:10:52 -08003472 u32 dstQueueFamilyIndex /// Queue family to transition ownership to
Jesse Halld27f6aa2015-08-15 17:58:48 -07003473 VkImage image /// Image to sync
3474 VkImageSubresourceRange subresourceRange /// Subresource range to sync
3475}
3476
3477class VkImageCreateInfo {
3478 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO
3479 const void* pNext /// Pointer to next structure.
Jesse Halla6429252015-11-29 18:59:42 -08003480 VkImageCreateFlags flags /// Image creation flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07003481 VkImageType imageType
3482 VkFormat format
3483 VkExtent3D extent
3484 u32 mipLevels
Jesse Halla15a4bf2015-11-19 22:48:02 -08003485 u32 arrayLayers
Jesse Hall091ed9e2015-11-30 00:55:29 -08003486 VkSampleCountFlagBits samples
Jesse Halld27f6aa2015-08-15 17:58:48 -07003487 VkImageTiling tiling
3488 VkImageUsageFlags usage /// Image usage flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07003489 VkSharingMode sharingMode /// Cross-queue-family sharing mode
Jesse Hall03b6fe12015-11-24 12:44:21 -08003490 u32 queueFamilyIndexCount /// Number of queue families to share across
Jesse Halld27f6aa2015-08-15 17:58:48 -07003491 const u32* pQueueFamilyIndices /// Array of queue family indices to share across
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003492 VkImageLayout initialLayout /// Initial image layout for all subresources
Jesse Halld27f6aa2015-08-15 17:58:48 -07003493}
3494
3495class VkSubresourceLayout {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003496 VkDeviceSize offset /// Specified in bytes
3497 VkDeviceSize size /// Specified in bytes
3498 VkDeviceSize rowPitch /// Specified in bytes
Jesse Hall543a7ff2016-01-08 16:38:30 -08003499 VkDeviceSize arrayPitch /// Specified in bytes
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003500 VkDeviceSize depthPitch /// Specified in bytes
Jesse Halld27f6aa2015-08-15 17:58:48 -07003501}
3502
3503class VkImageViewCreateInfo {
3504 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO
3505 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003506 VkImageViewCreateFlags flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07003507 VkImage image
3508 VkImageViewType viewType
3509 VkFormat format
Jesse Hall65ab5522015-11-30 00:07:16 -08003510 VkComponentMapping components
Jesse Halld27f6aa2015-08-15 17:58:48 -07003511 VkImageSubresourceRange subresourceRange
Jesse Halld27f6aa2015-08-15 17:58:48 -07003512}
3513
3514class VkBufferCopy {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003515 VkDeviceSize srcOffset /// Specified in bytes
Jesse Hall3fbc8562015-11-29 22:10:52 -08003516 VkDeviceSize dstOffset /// Specified in bytes
Jesse Hallb00daad2015-11-29 19:46:20 -08003517 VkDeviceSize size /// Specified in bytes
Jesse Halld27f6aa2015-08-15 17:58:48 -07003518}
3519
Jesse Halla6429252015-11-29 18:59:42 -08003520class VkSparseMemoryBind {
Jesse Hallb00daad2015-11-29 19:46:20 -08003521 VkDeviceSize resourceOffset /// Specified in bytes
3522 VkDeviceSize size /// Specified in bytes
Jesse Hall3fbc8562015-11-29 22:10:52 -08003523 VkDeviceMemory memory
3524 VkDeviceSize memoryOffset /// Specified in bytes
Jesse Halld27f6aa2015-08-15 17:58:48 -07003525 VkSparseMemoryBindFlags flags
3526}
3527
Jesse Halla6429252015-11-29 18:59:42 -08003528class VkSparseImageMemoryBind {
Jesse Halld27f6aa2015-08-15 17:58:48 -07003529 VkImageSubresource subresource
3530 VkOffset3D offset
3531 VkExtent3D extent
Jesse Hall3fbc8562015-11-29 22:10:52 -08003532 VkDeviceMemory memory
3533 VkDeviceSize memoryOffset /// Specified in bytes
Jesse Halld27f6aa2015-08-15 17:58:48 -07003534 VkSparseMemoryBindFlags flags
3535}
3536
Jesse Halla6429252015-11-29 18:59:42 -08003537class VkSparseBufferMemoryBindInfo {
3538 VkBuffer buffer
3539 u32 bindCount
3540 const VkSparseMemoryBind* pBinds
3541}
3542
3543class VkSparseImageOpaqueMemoryBindInfo {
3544 VkImage image
3545 u32 bindCount
3546 const VkSparseMemoryBind* pBinds
3547}
3548
3549class VkSparseImageMemoryBindInfo {
3550 VkImage image
3551 u32 bindCount
3552 const VkSparseMemoryBind* pBinds
3553}
3554
3555class VkBindSparseInfo {
3556 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_BIND_SPARSE_INFO
3557 const void* pNext
3558 u32 waitSemaphoreCount
3559 const VkSemaphore* pWaitSemaphores
3560 u32 numBufferBinds
3561 const VkSparseBufferMemoryBindInfo* pBufferBinds
3562 u32 numImageOpaqueBinds
3563 const VkSparseImageOpaqueMemoryBindInfo* pImageOpaqueBinds
3564 u32 numImageBinds
3565 const VkSparseImageMemoryBindInfo* pImageBinds
3566 u32 signalSemaphoreCount
3567 const VkSemaphore* pSignalSemaphores
3568}
3569
Jesse Hall65ab5522015-11-30 00:07:16 -08003570class VkImageSubresourceLayers {
3571 VkImageAspectFlags aspectMask
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003572 u32 mipLevel
Jesse Halla15a4bf2015-11-19 22:48:02 -08003573 u32 baseArrayLayer
Jesse Hall3fbc8562015-11-29 22:10:52 -08003574 u32 layerCount
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003575}
3576
Jesse Halld27f6aa2015-08-15 17:58:48 -07003577class VkImageCopy {
Jesse Hall65ab5522015-11-30 00:07:16 -08003578 VkImageSubresourceLayers srcSubresource
Jesse Halld27f6aa2015-08-15 17:58:48 -07003579 VkOffset3D srcOffset /// Specified in pixels for both compressed and uncompressed images
Jesse Hall65ab5522015-11-30 00:07:16 -08003580 VkImageSubresourceLayers dstSubresource
Jesse Hall3fbc8562015-11-29 22:10:52 -08003581 VkOffset3D dstOffset /// Specified in pixels for both compressed and uncompressed images
Jesse Halld27f6aa2015-08-15 17:58:48 -07003582 VkExtent3D extent /// Specified in pixels for both compressed and uncompressed images
3583}
3584
3585class VkImageBlit {
Jesse Hall65ab5522015-11-30 00:07:16 -08003586 VkImageSubresourceLayers srcSubresource
Jesse Hall3dd678a2016-01-08 21:52:01 -08003587 VkOffset3D[2] srcOffsets
Jesse Hall65ab5522015-11-30 00:07:16 -08003588 VkImageSubresourceLayers dstSubresource
Jesse Hall3dd678a2016-01-08 21:52:01 -08003589 VkOffset3D[2] dstOffsets
Jesse Halld27f6aa2015-08-15 17:58:48 -07003590}
3591
3592class VkBufferImageCopy {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003593 VkDeviceSize bufferOffset /// Specified in bytes
Jesse Halld27f6aa2015-08-15 17:58:48 -07003594 u32 bufferRowLength /// Specified in texels
3595 u32 bufferImageHeight
Jesse Hall65ab5522015-11-30 00:07:16 -08003596 VkImageSubresourceLayers imageSubresource
Jesse Halld27f6aa2015-08-15 17:58:48 -07003597 VkOffset3D imageOffset /// Specified in pixels for both compressed and uncompressed images
3598 VkExtent3D imageExtent /// Specified in pixels for both compressed and uncompressed images
3599}
3600
3601class VkImageResolve {
Jesse Hall65ab5522015-11-30 00:07:16 -08003602 VkImageSubresourceLayers srcSubresource
Jesse Halld27f6aa2015-08-15 17:58:48 -07003603 VkOffset3D srcOffset
Jesse Hall65ab5522015-11-30 00:07:16 -08003604 VkImageSubresourceLayers dstSubresource
Jesse Hall3fbc8562015-11-29 22:10:52 -08003605 VkOffset3D dstOffset
Jesse Halld27f6aa2015-08-15 17:58:48 -07003606 VkExtent3D extent
3607}
3608
3609class VkShaderModuleCreateInfo {
3610 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO
3611 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003612 VkShaderModuleCreateFlags flags /// Reserved
Jesse Halld27f6aa2015-08-15 17:58:48 -07003613 platform.size_t codeSize /// Specified in bytes
Jesse Halla9bb62b2015-11-21 19:31:56 -08003614 const u32* pCode /// Binary code of size codeSize
Jesse Halld27f6aa2015-08-15 17:58:48 -07003615}
3616
Jesse Halld27f6aa2015-08-15 17:58:48 -07003617class VkDescriptorSetLayoutBinding {
Jesse Hall091ed9e2015-11-30 00:55:29 -08003618 u32 binding
Jesse Halld27f6aa2015-08-15 17:58:48 -07003619 VkDescriptorType descriptorType /// Type of the descriptors in this binding
Jesse Halldba27f72015-11-30 14:25:46 -08003620 u32 descriptorCount /// Number of descriptors in this binding
Jesse Halld27f6aa2015-08-15 17:58:48 -07003621 VkShaderStageFlags stageFlags /// Shader stages this binding is visible to
3622 const VkSampler* pImmutableSamplers /// Immutable samplers (used if descriptor type is SAMPLER or COMBINED_IMAGE_SAMPLER, is either NULL or contains <count> number of elements)
3623}
3624
3625class VkDescriptorSetLayoutCreateInfo {
3626 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO
3627 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003628 VkDescriptorSetLayoutCreateFlags flags
Jesse Hall03b6fe12015-11-24 12:44:21 -08003629 u32 bindingCount /// Number of bindings in the descriptor set layout
Jesse Hall543a7ff2016-01-08 16:38:30 -08003630 const VkDescriptorSetLayoutBinding* pBindings /// Array of descriptor set layout bindings
Jesse Halld27f6aa2015-08-15 17:58:48 -07003631}
3632
Jesse Hall65ab5522015-11-30 00:07:16 -08003633class VkDescriptorPoolSize {
Jesse Halld27f6aa2015-08-15 17:58:48 -07003634 VkDescriptorType type
Jesse Hall03b6fe12015-11-24 12:44:21 -08003635 u32 descriptorCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07003636}
3637
3638class VkDescriptorPoolCreateInfo {
3639 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO
3640 const void* pNext /// Pointer to next structure
Jesse Hallfbf97b02015-11-20 14:17:03 -08003641 VkDescriptorPoolCreateFlags flags
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003642 u32 maxSets
Jesse Hall65ab5522015-11-30 00:07:16 -08003643 u32 poolSizeCount
3644 const VkDescriptorPoolSize* pPoolSizes
Jesse Halld27f6aa2015-08-15 17:58:48 -07003645}
3646
Jesse Hall3fbc8562015-11-29 22:10:52 -08003647class VkDescriptorSetAllocateInfo {
Jesse Hallf4ab2b12015-11-30 16:04:55 -08003648 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO
Jesse Hallfbf97b02015-11-20 14:17:03 -08003649 const void* pNext /// Pointer to next structure
3650 VkDescriptorPool descriptorPool
Jesse Hall03b6fe12015-11-24 12:44:21 -08003651 u32 setCount
Jesse Hallfbf97b02015-11-20 14:17:03 -08003652 const VkDescriptorSetLayout* pSetLayouts
3653}
3654
Jesse Halld27f6aa2015-08-15 17:58:48 -07003655class VkSpecializationMapEntry {
Jesse Hall65ab5522015-11-30 00:07:16 -08003656 u32 constantID /// The SpecConstant ID specified in the BIL
Jesse Halld27f6aa2015-08-15 17:58:48 -07003657 u32 offset /// Offset of the value in the data block
Jesse Hallb00daad2015-11-29 19:46:20 -08003658 platform.size_t size /// Size in bytes of the SpecConstant
Jesse Halld27f6aa2015-08-15 17:58:48 -07003659}
3660
3661class VkSpecializationInfo {
3662 u32 mapEntryCount /// Number of entries in the map
Jesse Hallb00daad2015-11-29 19:46:20 -08003663 const VkSpecializationMapEntry* pMapEntries /// Array of map entries
Jesse Halld27f6aa2015-08-15 17:58:48 -07003664 platform.size_t dataSize /// Size in bytes of pData
3665 const void* pData /// Pointer to SpecConstant data
3666}
3667
3668class VkPipelineShaderStageCreateInfo {
3669 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO
3670 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003671 VkPipelineShaderStageCreateFlags flags
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08003672 VkShaderStageFlagBits stage
3673 VkShaderModule module
3674 const char* pName
Jesse Halld27f6aa2015-08-15 17:58:48 -07003675 const VkSpecializationInfo* pSpecializationInfo
3676}
3677
3678class VkComputePipelineCreateInfo {
3679 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO
3680 const void* pNext /// Pointer to next structure
Jesse Halld27f6aa2015-08-15 17:58:48 -07003681 VkPipelineCreateFlags flags /// Pipeline creation flags
Jesse Halla6429252015-11-29 18:59:42 -08003682 VkPipelineShaderStageCreateInfo stage
Jesse Halld27f6aa2015-08-15 17:58:48 -07003683 VkPipelineLayout layout /// Interface layout of the pipeline
3684 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
3685 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
3686}
3687
3688class VkVertexInputBindingDescription {
Jesse Hallb00daad2015-11-29 19:46:20 -08003689 u32 binding /// Vertex buffer binding id
3690 u32 stride /// Distance between vertices in bytes (0 = no advancement)
Jesse Hall65ab5522015-11-30 00:07:16 -08003691 VkVertexInputRate inputRate /// Rate at which binding is incremented
Jesse Halld27f6aa2015-08-15 17:58:48 -07003692}
3693
3694class VkVertexInputAttributeDescription {
Jesse Hallb00daad2015-11-29 19:46:20 -08003695 u32 location /// location of the shader vertex attrib
3696 u32 binding /// Vertex buffer binding id
3697 VkFormat format /// format of source data
3698 u32 offset /// Offset of first element in bytes from base of vertex
Jesse Halld27f6aa2015-08-15 17:58:48 -07003699}
3700
3701class VkPipelineVertexInputStateCreateInfo {
Jesse Hall03b6fe12015-11-24 12:44:21 -08003702 VkStructureType sType /// Should be VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO
3703 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003704 VkPipelineVertexInputStateCreateFlags flags
Jesse Hall03b6fe12015-11-24 12:44:21 -08003705 u32 vertexBindingDescriptionCount /// number of bindings
Jesse Halld27f6aa2015-08-15 17:58:48 -07003706 const VkVertexInputBindingDescription* pVertexBindingDescriptions
Jesse Hall03b6fe12015-11-24 12:44:21 -08003707 u32 vertexAttributeDescriptionCount /// number of attributes
Jesse Halld27f6aa2015-08-15 17:58:48 -07003708 const VkVertexInputAttributeDescription* pVertexAttributeDescriptions
3709}
3710
3711class VkPipelineInputAssemblyStateCreateInfo {
3712 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO
3713 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003714 VkPipelineInputAssemblyStateCreateFlags flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07003715 VkPrimitiveTopology topology
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003716 VkBool32 primitiveRestartEnable
Jesse Halld27f6aa2015-08-15 17:58:48 -07003717}
3718
3719class VkPipelineTessellationStateCreateInfo {
3720 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO
3721 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003722 VkPipelineTessellationStateCreateFlags flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07003723 u32 patchControlPoints
3724}
3725
3726class VkPipelineViewportStateCreateInfo {
3727 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO
3728 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003729 VkPipelineViewportStateCreateFlags flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07003730 u32 viewportCount
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003731 const VkViewport* pViewports
3732 u32 scissorCount
3733 const VkRect2D* pScissors
Jesse Halld27f6aa2015-08-15 17:58:48 -07003734}
3735
Jesse Hall3fbc8562015-11-29 22:10:52 -08003736class VkPipelineRasterizationStateCreateInfo {
Jesse Hall65ab5522015-11-30 00:07:16 -08003737 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO
Jesse Halld27f6aa2015-08-15 17:58:48 -07003738 const void* pNext /// Pointer to next structure
Jesse Hall3fbc8562015-11-29 22:10:52 -08003739 VkPipelineRasterizationStateCreateFlags flags
Jesse Hallae38f732015-11-19 21:32:50 -08003740 VkBool32 depthClampEnable
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003741 VkBool32 rasterizerDiscardEnable
Jesse Hall65ab5522015-11-30 00:07:16 -08003742 VkPolygonMode polygonMode /// optional (GL45)
Jesse Hallc7467b72015-11-29 21:05:26 -08003743 VkCullModeFlags cullMode
Jesse Halld27f6aa2015-08-15 17:58:48 -07003744 VkFrontFace frontFace
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003745 VkBool32 depthBiasEnable
Jesse Halla9bb62b2015-11-21 19:31:56 -08003746 f32 depthBiasConstantFactor
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003747 f32 depthBiasClamp
Jesse Halla9bb62b2015-11-21 19:31:56 -08003748 f32 depthBiasSlopeFactor
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003749 f32 lineWidth
Jesse Halld27f6aa2015-08-15 17:58:48 -07003750}
3751
3752class VkPipelineMultisampleStateCreateInfo {
3753 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO
3754 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003755 VkPipelineMultisampleStateCreateFlags flags
Jesse Hall091ed9e2015-11-30 00:55:29 -08003756 VkSampleCountFlagBits rasterizationSamples /// Number of samples used for rasterization
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003757 VkBool32 sampleShadingEnable /// optional (GL45)
Jesse Halld27f6aa2015-08-15 17:58:48 -07003758 f32 minSampleShading /// optional (GL45)
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003759 const VkSampleMask* pSampleMask
Jesse Hallacfa5342015-11-19 21:51:33 -08003760 VkBool32 alphaToCoverageEnable
3761 VkBool32 alphaToOneEnable
Jesse Halld27f6aa2015-08-15 17:58:48 -07003762}
3763
3764class VkPipelineColorBlendAttachmentState {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003765 VkBool32 blendEnable
Jesse Hall65ab5522015-11-30 00:07:16 -08003766 VkBlendFactor srcColorBlendFactor
3767 VkBlendFactor dstColorBlendFactor
3768 VkBlendOp colorBlendOp
3769 VkBlendFactor srcAlphaBlendFactor
3770 VkBlendFactor dstAlphaBlendFactor
3771 VkBlendOp alphaBlendOp
3772 VkColorComponentFlags colorWriteMask
Jesse Halld27f6aa2015-08-15 17:58:48 -07003773}
3774
3775class VkPipelineColorBlendStateCreateInfo {
3776 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO
3777 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003778 VkPipelineColorBlendStateCreateFlags flags
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003779 VkBool32 logicOpEnable
Jesse Halld27f6aa2015-08-15 17:58:48 -07003780 VkLogicOp logicOp
3781 u32 attachmentCount /// # of pAttachments
3782 const VkPipelineColorBlendAttachmentState* pAttachments
Jesse Hallb00daad2015-11-29 19:46:20 -08003783 f32[4] blendConstants
Jesse Halld27f6aa2015-08-15 17:58:48 -07003784}
3785
3786class VkStencilOpState {
Jesse Hall65ab5522015-11-30 00:07:16 -08003787 VkStencilOp failOp
3788 VkStencilOp passOp
3789 VkStencilOp depthFailOp
3790 VkCompareOp compareOp
3791 u32 compareMask
3792 u32 writeMask
3793 u32 reference
Jesse Halld27f6aa2015-08-15 17:58:48 -07003794}
3795
3796class VkPipelineDepthStencilStateCreateInfo {
3797 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO
3798 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003799 VkPipelineDepthStencilStateCreateFlags flags
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003800 VkBool32 depthTestEnable
3801 VkBool32 depthWriteEnable
Jesse Halld27f6aa2015-08-15 17:58:48 -07003802 VkCompareOp depthCompareOp
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003803 VkBool32 depthBoundsTestEnable /// optional (depth_bounds_test)
3804 VkBool32 stencilTestEnable
Jesse Halld27f6aa2015-08-15 17:58:48 -07003805 VkStencilOpState front
3806 VkStencilOpState back
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003807 f32 minDepthBounds
3808 f32 maxDepthBounds
3809}
3810
3811class VkPipelineDynamicStateCreateInfo {
3812 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO
3813 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003814 VkPipelineDynamicStateCreateFlags flags
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003815 u32 dynamicStateCount
3816 const VkDynamicState* pDynamicStates
Jesse Halld27f6aa2015-08-15 17:58:48 -07003817}
3818
3819class VkGraphicsPipelineCreateInfo {
Jesse Halla6429252015-11-29 18:59:42 -08003820 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO
3821 const void* pNext /// Pointer to next structure
3822 VkPipelineCreateFlags flags /// Pipeline creation flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07003823 u32 stageCount
Jesse Halla6429252015-11-29 18:59:42 -08003824 const VkPipelineShaderStageCreateInfo* pStages /// One entry for each active shader stage
Jesse Halld27f6aa2015-08-15 17:58:48 -07003825 const VkPipelineVertexInputStateCreateInfo* pVertexInputState
3826 const VkPipelineInputAssemblyStateCreateInfo* pInputAssemblyState
3827 const VkPipelineTessellationStateCreateInfo* pTessellationState
3828 const VkPipelineViewportStateCreateInfo* pViewportState
Jesse Hall3fbc8562015-11-29 22:10:52 -08003829 const VkPipelineRasterizationStateCreateInfo* pRasterizationState
Jesse Halld27f6aa2015-08-15 17:58:48 -07003830 const VkPipelineMultisampleStateCreateInfo* pMultisampleState
3831 const VkPipelineDepthStencilStateCreateInfo* pDepthStencilState
3832 const VkPipelineColorBlendStateCreateInfo* pColorBlendState
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003833 const VkPipelineDynamicStateCreateInfo* pDynamicState
Jesse Halla6429252015-11-29 18:59:42 -08003834 VkPipelineLayout layout /// Interface layout of the pipeline
Jesse Halld27f6aa2015-08-15 17:58:48 -07003835 VkRenderPass renderPass
3836 u32 subpass
Jesse Halla6429252015-11-29 18:59:42 -08003837 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
3838 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 -07003839}
3840
3841class VkPipelineCacheCreateInfo {
Jesse Hallb00daad2015-11-29 19:46:20 -08003842 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO
3843 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003844 VkPipelineCacheCreateFlags flags
Jesse Hallb00daad2015-11-29 19:46:20 -08003845 platform.size_t initialDataSize /// Size of initial data to populate cache, in bytes
3846 const void* pInitialData /// Initial data to populate cache
Jesse Halld27f6aa2015-08-15 17:58:48 -07003847}
3848
3849class VkPushConstantRange {
3850 VkShaderStageFlags stageFlags /// Which stages use the range
Jesse Hall03b6fe12015-11-24 12:44:21 -08003851 u32 offset /// Start of the range, in bytes
3852 u32 size /// Length of the range, in bytes
Jesse Halld27f6aa2015-08-15 17:58:48 -07003853}
3854
3855class VkPipelineLayoutCreateInfo {
3856 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO
3857 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003858 VkPipelineLayoutCreateFlags flags
Jesse Hall3dd678a2016-01-08 21:52:01 -08003859 u32 descriptorSetCount /// Number of descriptor sets interfaced by the pipeline
Jesse Halld27f6aa2015-08-15 17:58:48 -07003860 const VkDescriptorSetLayout* pSetLayouts /// Array of <setCount> number of descriptor set layout objects defining the layout of the
3861 u32 pushConstantRangeCount /// Number of push-constant ranges used by the pipeline
3862 const VkPushConstantRange* pPushConstantRanges /// Array of pushConstantRangeCount number of ranges used by various shader stages
3863}
3864
3865class VkSamplerCreateInfo {
3866 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO
3867 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003868 VkSamplerCreateFlags flags
Jesse Hall23ff73f2015-11-29 14:36:39 -08003869 VkFilter magFilter /// Filter mode for magnification
3870 VkFilter minFilter /// Filter mode for minifiation
3871 VkSamplerMipmapMode mipmapMode /// Mipmap selection mode
3872 VkSamplerAddressMode addressModeU
3873 VkSamplerAddressMode addressModeV
3874 VkSamplerAddressMode addressModeW
Jesse Halld27f6aa2015-08-15 17:58:48 -07003875 f32 mipLodBias
Jesse Hallf9fa9a52016-01-08 16:08:51 -08003876 VkBool32 anisotropyEnable
Jesse Halld27f6aa2015-08-15 17:58:48 -07003877 f32 maxAnisotropy
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003878 VkBool32 compareEnable
Jesse Halld27f6aa2015-08-15 17:58:48 -07003879 VkCompareOp compareOp
3880 f32 minLod
3881 f32 maxLod
3882 VkBorderColor borderColor
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003883 VkBool32 unnormalizedCoordinates
Jesse Halld27f6aa2015-08-15 17:58:48 -07003884}
3885
Jesse Hall3fbc8562015-11-29 22:10:52 -08003886class VkCommandPoolCreateInfo {
3887 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO
Jesse Halld27f6aa2015-08-15 17:58:48 -07003888 const void* pNext /// Pointer to next structure
Jesse Hall3fbc8562015-11-29 22:10:52 -08003889 VkCommandPoolCreateFlags flags /// Command pool creation flags
Jesse Halla6429252015-11-29 18:59:42 -08003890 u32 queueFamilyIndex
Jesse Halld27f6aa2015-08-15 17:58:48 -07003891}
3892
Jesse Hall3fbc8562015-11-29 22:10:52 -08003893class VkCommandBufferAllocateInfo {
Jesse Hallf4ab2b12015-11-30 16:04:55 -08003894 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO
Jesse Halld27f6aa2015-08-15 17:58:48 -07003895 const void* pNext /// Pointer to next structure
Jesse Hall3fbc8562015-11-29 22:10:52 -08003896 VkCommandPool commandPool
3897 VkCommandBufferLevel level
Jesse Hall3dd678a2016-01-08 21:52:01 -08003898 u32 commandBufferCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07003899}
3900
Jesse Hall3dd678a2016-01-08 21:52:01 -08003901class VkCommandBufferInheritanceInfo {
3902 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO
Jesse Halld27f6aa2015-08-15 17:58:48 -07003903 const void* pNext /// Pointer to next structure
Jesse Halld27f6aa2015-08-15 17:58:48 -07003904 VkRenderPass renderPass /// Render pass for secondary command buffers
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003905 u32 subpass
Jesse Halld27f6aa2015-08-15 17:58:48 -07003906 VkFramebuffer framebuffer /// Framebuffer for secondary command buffers
Jesse Hallf4ab2b12015-11-30 16:04:55 -08003907 VkBool32 occlusionQueryEnable
3908 VkQueryControlFlags queryFlags
3909 VkQueryPipelineStatisticFlags pipelineStatistics
Jesse Halld27f6aa2015-08-15 17:58:48 -07003910}
3911
Jesse Hall3dd678a2016-01-08 21:52:01 -08003912class VkCommandBufferBeginInfo {
3913 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO
3914 const void* pNext /// Pointer to next structure
3915 VkCommandBufferUsageFlags flags /// Command buffer usage flags
3916 const VkCommandBufferInheritanceInfo* pInheritanceInfo
3917}
3918
Jesse Halld27f6aa2015-08-15 17:58:48 -07003919class VkRenderPassBeginInfo {
3920 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO
3921 const void* pNext /// Pointer to next structure
3922 VkRenderPass renderPass
3923 VkFramebuffer framebuffer
3924 VkRect2D renderArea
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003925 u32 clearValueCount
3926 const VkClearValue* pClearValues
Jesse Halld27f6aa2015-08-15 17:58:48 -07003927}
3928
3929@union
3930/// Union allowing specification of floating point, integer, or unsigned integer color data. Actual value selected is based on image/attachment being cleared.
3931class VkClearColorValue {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003932 f32[4] float32
3933 s32[4] int32
3934 u32[4] uint32
Jesse Halld27f6aa2015-08-15 17:58:48 -07003935}
3936
3937class VkClearDepthStencilValue {
3938 f32 depth
3939 u32 stencil
3940}
3941
3942@union
3943/// Union allowing specification of color, depth, and stencil color values. Actual value selected is based on attachment being cleared.
3944class VkClearValue {
3945 VkClearColorValue color
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003946 VkClearDepthStencilValue depthStencil
Jesse Halld27f6aa2015-08-15 17:58:48 -07003947}
3948
Jesse Hallae38f732015-11-19 21:32:50 -08003949class VkClearAttachment {
3950 VkImageAspectFlags aspectMask
3951 u32 colorAttachment
3952 VkClearValue clearValue
3953}
3954
Jesse Halld27f6aa2015-08-15 17:58:48 -07003955class VkAttachmentDescription {
Jesse Halla6429252015-11-29 18:59:42 -08003956 VkAttachmentDescriptionFlags flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07003957 VkFormat format
Jesse Hall091ed9e2015-11-30 00:55:29 -08003958 VkSampleCountFlagBits samples
Jesse Halld27f6aa2015-08-15 17:58:48 -07003959 VkAttachmentLoadOp loadOp /// Load op for color or depth data
3960 VkAttachmentStoreOp storeOp /// Store op for color or depth data
3961 VkAttachmentLoadOp stencilLoadOp /// Load op for stencil data
3962 VkAttachmentStoreOp stencilStoreOp /// Store op for stencil data
3963 VkImageLayout initialLayout
3964 VkImageLayout finalLayout
3965}
3966
3967class VkAttachmentReference {
3968 u32 attachment
3969 VkImageLayout layout
3970}
3971
3972class VkSubpassDescription {
Jesse Halld27f6aa2015-08-15 17:58:48 -07003973 VkSubpassDescriptionFlags flags
Jesse Halla6429252015-11-29 18:59:42 -08003974 VkPipelineBindPoint pipelineBindPoint /// Must be VK_PIPELINE_BIND_POINT_GRAPHICS for now
Jesse Hall03b6fe12015-11-24 12:44:21 -08003975 u32 inputAttachmentCount
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003976 const VkAttachmentReference* pInputAttachments
Jesse Hall03b6fe12015-11-24 12:44:21 -08003977 u32 colorAttachmentCount
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003978 const VkAttachmentReference* pColorAttachments
3979 const VkAttachmentReference* pResolveAttachments
Jesse Hallc7467b72015-11-29 21:05:26 -08003980 const VkAttachmentReference* pDepthStencilAttachment
Jesse Hall03b6fe12015-11-24 12:44:21 -08003981 u32 preserveAttachmentCount
Jesse Hall3dd678a2016-01-08 21:52:01 -08003982 const u32* pPreserveAttachments
Jesse Halld27f6aa2015-08-15 17:58:48 -07003983}
3984
3985class VkSubpassDependency {
Jesse Halld27f6aa2015-08-15 17:58:48 -07003986 u32 srcSubpass
Jesse Hall3fbc8562015-11-29 22:10:52 -08003987 u32 dstSubpass
Jesse Halld27f6aa2015-08-15 17:58:48 -07003988 VkPipelineStageFlags srcStageMask
Jesse Hall3fbc8562015-11-29 22:10:52 -08003989 VkPipelineStageFlags dstStageMask
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08003990 VkAccessFlags srcAccessMask
3991 VkAccessFlags dstAccessMask
Jesse Halldc6d36c2015-11-29 19:12:15 -08003992 VkDependencyFlags dependencyFlags
Jesse Halld27f6aa2015-08-15 17:58:48 -07003993}
3994
3995class VkRenderPassCreateInfo {
3996 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO
3997 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003998 VkRenderPassCreateFlags flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07003999 u32 attachmentCount
4000 const VkAttachmentDescription* pAttachments
4001 u32 subpassCount
4002 const VkSubpassDescription* pSubpasses
4003 u32 dependencyCount
4004 const VkSubpassDependency* pDependencies
4005}
4006
4007class VkEventCreateInfo {
4008 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_EVENT_CREATE_INFO
4009 const void* pNext /// Pointer to next structure
4010 VkEventCreateFlags flags /// Event creation flags
4011}
4012
4013class VkFenceCreateInfo {
4014 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_FENCE_CREATE_INFO
4015 const void* pNext /// Pointer to next structure
4016 VkFenceCreateFlags flags /// Fence creation flags
4017}
4018
4019class VkPhysicalDeviceFeatures {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004020 VkBool32 robustBufferAccess /// out of bounds buffer accesses are well defined
4021 VkBool32 fullDrawIndexUint32 /// full 32-bit range of indices for indexed draw calls
4022 VkBool32 imageCubeArray /// image views which are arrays of cube maps
4023 VkBool32 independentBlend /// blending operations are controlled per-attachment
4024 VkBool32 geometryShader /// geometry stage
4025 VkBool32 tessellationShader /// tessellation control and evaluation stage
4026 VkBool32 sampleRateShading /// per-sample shading and interpolation
Jesse Hall3fbc8562015-11-29 22:10:52 -08004027 VkBool32 dualSrcBlend /// blend operations which take two sources
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004028 VkBool32 logicOp /// logic operations
4029 VkBool32 multiDrawIndirect /// multi draw indirect
Jesse Hall543a7ff2016-01-08 16:38:30 -08004030 VkBool32 drawIndirectFirstInstance
Jesse Hallae38f732015-11-19 21:32:50 -08004031 VkBool32 depthClamp /// depth clamping
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004032 VkBool32 depthBiasClamp /// depth bias clamping
4033 VkBool32 fillModeNonSolid /// point and wireframe fill modes
4034 VkBool32 depthBounds /// depth bounds test
4035 VkBool32 wideLines /// lines with width greater than 1
4036 VkBool32 largePoints /// points with size greater than 1
Jesse Hallfbf97b02015-11-20 14:17:03 -08004037 VkBool32 alphaToOne /// The fragment alpha channel can be forced to maximum representable alpha value
4038 VkBool32 multiViewport
4039 VkBool32 samplerAnisotropy
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004040 VkBool32 textureCompressionETC2 /// ETC texture compression formats
4041 VkBool32 textureCompressionASTC_LDR /// ASTC LDR texture compression formats
4042 VkBool32 textureCompressionBC /// BC1-7 texture compressed formats
Jesse Hall65ab5522015-11-30 00:07:16 -08004043 VkBool32 occlusionQueryPrecise
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004044 VkBool32 pipelineStatisticsQuery /// pipeline statistics query
Jesse Halldc6d36c2015-11-29 19:12:15 -08004045 VkBool32 vertexPipelineStoresAndAtomics
4046 VkBool32 fragmentStoresAndAtomics
4047 VkBool32 shaderTessellationAndGeometryPointSize
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004048 VkBool32 shaderImageGatherExtended /// texture gather with run-time values and independent offsets
4049 VkBool32 shaderStorageImageExtendedFormats /// the extended set of formats can be used for storage images
4050 VkBool32 shaderStorageImageMultisample /// multisample images can be used for storage images
Jesse Halld1af8122015-11-29 23:50:38 -08004051 VkBool32 shaderStorageImageReadWithoutFormat
4052 VkBool32 shaderStorageImageWriteWithoutFormat
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004053 VkBool32 shaderUniformBufferArrayDynamicIndexing /// arrays of uniform buffers can be accessed with dynamically uniform indices
4054 VkBool32 shaderSampledImageArrayDynamicIndexing /// arrays of sampled images can be accessed with dynamically uniform indices
4055 VkBool32 shaderStorageBufferArrayDynamicIndexing /// arrays of storage buffers can be accessed with dynamically uniform indices
4056 VkBool32 shaderStorageImageArrayDynamicIndexing /// arrays of storage images can be accessed with dynamically uniform indices
4057 VkBool32 shaderClipDistance /// clip distance in shaders
4058 VkBool32 shaderCullDistance /// cull distance in shaders
4059 VkBool32 shaderFloat64 /// 64-bit floats (doubles) in shaders
4060 VkBool32 shaderInt64 /// 64-bit integers in shaders
4061 VkBool32 shaderInt16 /// 16-bit integers in shaders
4062 VkBool32 shaderResourceResidency /// shader can use texture operations that return resource residency information (requires sparseNonResident support)
Jesse Hall65ab5522015-11-30 00:07:16 -08004063 VkBool32 shaderResourceMinLod /// shader can use texture operations that specify minimum resource LOD
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004064 VkBool32 sparseBinding /// Sparse resources support: Resource memory can be managed at opaque page level rather than object level
4065 VkBool32 sparseResidencyBuffer /// Sparse resources support: GPU can access partially resident buffers
4066 VkBool32 sparseResidencyImage2D /// Sparse resources support: GPU can access partially resident 2D (non-MSAA non-DepthStencil) images
4067 VkBool32 sparseResidencyImage3D /// Sparse resources support: GPU can access partially resident 3D images
4068 VkBool32 sparseResidency2Samples /// Sparse resources support: GPU can access partially resident MSAA 2D images with 2 samples
4069 VkBool32 sparseResidency4Samples /// Sparse resources support: GPU can access partially resident MSAA 2D images with 4 samples
4070 VkBool32 sparseResidency8Samples /// Sparse resources support: GPU can access partially resident MSAA 2D images with 8 samples
4071 VkBool32 sparseResidency16Samples /// Sparse resources support: GPU can access partially resident MSAA 2D images with 16 samples
4072 VkBool32 sparseResidencyAliased /// Sparse resources support: GPU can correctly access data aliased into multiple locations (opt-in)
Jesse Halld1af8122015-11-29 23:50:38 -08004073 VkBool32 variableMultisampleRate
Jesse Hallf9fa9a52016-01-08 16:08:51 -08004074 VkBool32 inheritedQueries
Jesse Halld27f6aa2015-08-15 17:58:48 -07004075}
4076
4077class VkPhysicalDeviceLimits {
4078 /// resource maximum sizes
4079 u32 maxImageDimension1D /// max 1D image dimension
4080 u32 maxImageDimension2D /// max 2D image dimension
4081 u32 maxImageDimension3D /// max 3D image dimension
4082 u32 maxImageDimensionCube /// max cubemap image dimension
4083 u32 maxImageArrayLayers /// max layers for image arrays
Jesse Hallb00daad2015-11-29 19:46:20 -08004084 u32 maxTexelBufferElements
Jesse Hallfbf97b02015-11-20 14:17:03 -08004085 u32 maxUniformBufferRange /// max uniform buffer size (bytes)
4086 u32 maxStorageBufferRange /// max storage buffer size (bytes)
Jesse Halld27f6aa2015-08-15 17:58:48 -07004087 u32 maxPushConstantsSize /// max size of the push constants pool (bytes)
4088 /// memory limits
4089 u32 maxMemoryAllocationCount /// max number of device memory allocations supported
Jesse Hall091ed9e2015-11-30 00:55:29 -08004090 u32 maxSamplerAllocationCount
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004091 VkDeviceSize bufferImageGranularity /// Granularity (in bytes) at which buffers and images can be bound to adjacent memory for simultaneous usage
4092 VkDeviceSize sparseAddressSpaceSize /// Total address space available for sparse allocations (bytes)
Jesse Halld27f6aa2015-08-15 17:58:48 -07004093 /// descriptor set limits
4094 u32 maxBoundDescriptorSets /// max number of descriptors sets that can be bound to a pipeline
Jesse Halld27f6aa2015-08-15 17:58:48 -07004095 u32 maxPerStageDescriptorSamplers /// max num of samplers allowed per-stage in a descriptor set
4096 u32 maxPerStageDescriptorUniformBuffers /// max num of uniform buffers allowed per-stage in a descriptor set
4097 u32 maxPerStageDescriptorStorageBuffers /// max num of storage buffers allowed per-stage in a descriptor set
4098 u32 maxPerStageDescriptorSampledImages /// max num of sampled images allowed per-stage in a descriptor set
4099 u32 maxPerStageDescriptorStorageImages /// max num of storage images allowed per-stage in a descriptor set
Jesse Halle1b12782015-11-30 11:27:32 -08004100 u32 maxPerStageDescriptorInputAttachments
Jesse Halldba27f72015-11-30 14:25:46 -08004101 u32 maxPerStageResources
Jesse Halld27f6aa2015-08-15 17:58:48 -07004102 u32 maxDescriptorSetSamplers /// max num of samplers allowed in all stages in a descriptor set
4103 u32 maxDescriptorSetUniformBuffers /// max num of uniform buffers allowed in all stages in a descriptor set
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004104 u32 maxDescriptorSetUniformBuffersDynamic /// max num of dynamic uniform buffers allowed in all stages in a descriptor set
Jesse Halld27f6aa2015-08-15 17:58:48 -07004105 u32 maxDescriptorSetStorageBuffers /// max num of storage buffers allowed in all stages in a descriptor set
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004106 u32 maxDescriptorSetStorageBuffersDynamic /// max num of dynamic storage buffers allowed in all stages in a descriptor set
Jesse Halld27f6aa2015-08-15 17:58:48 -07004107 u32 maxDescriptorSetSampledImages /// max num of sampled images allowed in all stages in a descriptor set
4108 u32 maxDescriptorSetStorageImages /// max num of storage images allowed in all stages in a descriptor set
Jesse Halle1b12782015-11-30 11:27:32 -08004109 u32 maxDescriptorSetInputAttachments
Jesse Halld27f6aa2015-08-15 17:58:48 -07004110 /// vertex stage limits
4111 u32 maxVertexInputAttributes /// max num of vertex input attribute slots
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004112 u32 maxVertexInputBindings /// max num of vertex input binding slots
Jesse Halld27f6aa2015-08-15 17:58:48 -07004113 u32 maxVertexInputAttributeOffset /// max vertex input attribute offset added to vertex buffer offset
4114 u32 maxVertexInputBindingStride /// max vertex input binding stride
4115 u32 maxVertexOutputComponents /// max num of output components written by vertex shader
4116 /// tessellation control stage limits
Jesse Hall3fbc8562015-11-29 22:10:52 -08004117 u32 maxTessellationGenerationLevel /// max level supported by tess primitive generator
Jesse Hallae38f732015-11-19 21:32:50 -08004118 u32 maxTessellationPatchSize /// max patch size (vertices)
4119 u32 maxTessellationControlPerVertexInputComponents /// max num of input components per-vertex in TCS
4120 u32 maxTessellationControlPerVertexOutputComponents /// max num of output components per-vertex in TCS
4121 u32 maxTessellationControlPerPatchOutputComponents /// max num of output components per-patch in TCS
4122 u32 maxTessellationControlTotalOutputComponents /// max total num of per-vertex and per-patch output components in TCS
4123 u32 maxTessellationEvaluationInputComponents /// max num of input components per vertex in TES
4124 u32 maxTessellationEvaluationOutputComponents /// max num of output components per vertex in TES
Jesse Halld27f6aa2015-08-15 17:58:48 -07004125 /// geometry stage limits
4126 u32 maxGeometryShaderInvocations /// max invocation count supported in geometry shader
4127 u32 maxGeometryInputComponents /// max num of input components read in geometry stage
4128 u32 maxGeometryOutputComponents /// max num of output components written in geometry stage
4129 u32 maxGeometryOutputVertices /// max num of vertices that can be emitted in geometry stage
4130 u32 maxGeometryTotalOutputComponents /// max total num of components (all vertices) written in geometry stage
4131 /// fragment stage limits
4132 u32 maxFragmentInputComponents /// max num of input compontents read in fragment stage
Jesse Hallfbf97b02015-11-20 14:17:03 -08004133 u32 maxFragmentOutputAttachments /// max num of output attachments written in fragment stage
Jesse Hall3fbc8562015-11-29 22:10:52 -08004134 u32 maxFragmentDualSrcAttachments /// max num of output attachments written when using dual source blending
Jesse Halld27f6aa2015-08-15 17:58:48 -07004135 u32 maxFragmentCombinedOutputResources /// max total num of storage buffers, storage images and output buffers
4136 /// compute stage limits
4137 u32 maxComputeSharedMemorySize /// max total storage size of work group local storage (bytes)
4138 u32[3] maxComputeWorkGroupCount /// max num of compute work groups that may be dispatched by a single command (x,y,z)
4139 u32 maxComputeWorkGroupInvocations /// max total compute invocations in a single local work group
4140 u32[3] maxComputeWorkGroupSize /// max local size of a compute work group (x,y,z)
4141
4142 u32 subPixelPrecisionBits /// num bits of subpixel precision in screen x and y
4143 u32 subTexelPrecisionBits /// num bits of subtexel precision
4144 u32 mipmapPrecisionBits /// num bits of mipmap precision
4145
4146 u32 maxDrawIndexedIndexValue /// max index value for indexed draw calls (for 32-bit indices)
Jesse Halldba27f72015-11-30 14:25:46 -08004147 u32 maxDrawIndirectCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07004148
4149 f32 maxSamplerLodBias /// max absolute sampler level of detail bias
4150 f32 maxSamplerAnisotropy /// max degree of sampler anisotropy
4151
4152 u32 maxViewports /// max number of active viewports
Jesse Halld27f6aa2015-08-15 17:58:48 -07004153 u32[2] maxViewportDimensions /// max viewport dimensions (x,y)
4154 f32[2] viewportBoundsRange /// viewport bounds range (min,max)
4155 u32 viewportSubPixelBits /// num bits of subpixel precision for viewport
4156
Jesse Halldc6d36c2015-11-29 19:12:15 -08004157 platform.size_t minMemoryMapAlignment /// min required alignment of pointers returned by MapMemory (bytes)
4158 VkDeviceSize minTexelBufferOffsetAlignment /// min required alignment for texel buffer offsets (bytes)
4159 VkDeviceSize minUniformBufferOffsetAlignment /// min required alignment for uniform buffer sizes and offsets (bytes)
4160 VkDeviceSize minStorageBufferOffsetAlignment /// min required alignment for storage buffer offsets (bytes)
Jesse Halld27f6aa2015-08-15 17:58:48 -07004161
Jesse Hallfbf97b02015-11-20 14:17:03 -08004162 s32 minTexelOffset /// min texel offset for OpTextureSampleOffset
Jesse Halld27f6aa2015-08-15 17:58:48 -07004163 u32 maxTexelOffset /// max texel offset for OpTextureSampleOffset
Jesse Hallfbf97b02015-11-20 14:17:03 -08004164 s32 minTexelGatherOffset /// min texel offset for OpTextureGatherOffset
Jesse Halld27f6aa2015-08-15 17:58:48 -07004165 u32 maxTexelGatherOffset /// max texel offset for OpTextureGatherOffset
4166 f32 minInterpolationOffset /// furthest negative offset for interpolateAtOffset
4167 f32 maxInterpolationOffset /// furthest positive offset for interpolateAtOffset
4168 u32 subPixelInterpolationOffsetBits /// num of subpixel bits for interpolateAtOffset
4169
4170 u32 maxFramebufferWidth /// max width for a framebuffer
4171 u32 maxFramebufferHeight /// max height for a framebuffer
4172 u32 maxFramebufferLayers /// max layer count for a layered framebuffer
Jesse Hall091ed9e2015-11-30 00:55:29 -08004173 VkSampleCountFlags framebufferColorSampleCounts
4174 VkSampleCountFlags framebufferDepthSampleCounts
4175 VkSampleCountFlags framebufferStencilSampleCounts
4176 VkSampleCountFlags framebufferNoAttachmentSampleCounts
Jesse Halld27f6aa2015-08-15 17:58:48 -07004177 u32 maxColorAttachments /// max num of framebuffer color attachments
4178
Jesse Hall091ed9e2015-11-30 00:55:29 -08004179 VkSampleCountFlags sampledImageColorSampleCounts
4180 VkSampleCountFlags sampledImageIntegerSampleCounts
4181 VkSampleCountFlags sampledImageDepthSampleCounts
4182 VkSampleCountFlags sampledImageStencilSampleCounts
4183 VkSampleCountFlags storageImageSampleCounts
Jesse Halld27f6aa2015-08-15 17:58:48 -07004184 u32 maxSampleMaskWords /// max num of sample mask words
Jesse Hallf9fa9a52016-01-08 16:08:51 -08004185 VkBool32 timestampComputeAndGraphics
Jesse Halld27f6aa2015-08-15 17:58:48 -07004186
Jesse Halla9bb62b2015-11-21 19:31:56 -08004187 f32 timestampPeriod
Jesse Halld27f6aa2015-08-15 17:58:48 -07004188
4189 u32 maxClipDistances /// max number of clip distances
4190 u32 maxCullDistances /// max number of cull distances
4191 u32 maxCombinedClipAndCullDistances /// max combined number of user clipping
4192
Jesse Hallfbf97b02015-11-20 14:17:03 -08004193 u32 discreteQueuePriorities
4194
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004195 f32[2] pointSizeRange /// range (min,max) of supported point sizes
4196 f32[2] lineWidthRange /// range (min,max) of supported line widths
Jesse Halld27f6aa2015-08-15 17:58:48 -07004197 f32 pointSizeGranularity /// granularity of supported point sizes
4198 f32 lineWidthGranularity /// granularity of supported line widths
Jesse Hall03b6fe12015-11-24 12:44:21 -08004199 VkBool32 strictLines
Jesse Hall091ed9e2015-11-30 00:55:29 -08004200 VkBool32 standardSampleLocations
Jesse Halla9bb62b2015-11-21 19:31:56 -08004201
Jesse Hall65ab5522015-11-30 00:07:16 -08004202 VkDeviceSize optimalBufferCopyOffsetAlignment
4203 VkDeviceSize optimalBufferCopyRowPitchAlignment
Jesse Halldba27f72015-11-30 14:25:46 -08004204 VkDeviceSize nonCoherentAtomSize
Jesse Halld27f6aa2015-08-15 17:58:48 -07004205}
4206
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004207class VkPhysicalDeviceSparseProperties {
4208 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 -08004209 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 -07004210 VkBool32 residencyStandard3DBlockShape /// Sparse resources support: GPU will access all 3D sparse resources using the standard block shapes (based on pixel format)
4211 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 -07004212 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
4213}
4214
Jesse Halld27f6aa2015-08-15 17:58:48 -07004215class VkSemaphoreCreateInfo {
4216 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO
4217 const void* pNext /// Pointer to next structure
4218 VkSemaphoreCreateFlags flags /// Semaphore creation flags
4219}
4220
4221class VkQueryPoolCreateInfo {
4222 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO
4223 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08004224 VkQueryPoolCreateFlags flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07004225 VkQueryType queryType
Jesse Hall3dd678a2016-01-08 21:52:01 -08004226 u32 queryCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07004227 VkQueryPipelineStatisticFlags pipelineStatistics /// Optional
4228}
4229
4230class VkFramebufferCreateInfo {
4231 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO
4232 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08004233 VkFramebufferCreateFlags flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07004234 VkRenderPass renderPass
4235 u32 attachmentCount
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004236 const VkImageView* pAttachments
Jesse Halld27f6aa2015-08-15 17:58:48 -07004237 u32 width
4238 u32 height
4239 u32 layers
4240}
4241
Jesse Hall3fbc8562015-11-29 22:10:52 -08004242class VkDrawIndirectCommand {
Jesse Halld27f6aa2015-08-15 17:58:48 -07004243 u32 vertexCount
4244 u32 instanceCount
4245 u32 firstVertex
4246 u32 firstInstance
4247}
4248
Jesse Hall3fbc8562015-11-29 22:10:52 -08004249class VkDrawIndexedIndirectCommand {
Jesse Halld27f6aa2015-08-15 17:58:48 -07004250 u32 indexCount
4251 u32 instanceCount
4252 u32 firstIndex
4253 s32 vertexOffset
4254 u32 firstInstance
4255}
4256
Jesse Hall3fbc8562015-11-29 22:10:52 -08004257class VkDispatchIndirectCommand {
Jesse Halld27f6aa2015-08-15 17:58:48 -07004258 u32 x
4259 u32 y
4260 u32 z
4261}
4262
Jesse Hall54f8d132018-04-18 08:16:59 -07004263class VkBaseOutStructure {
4264 VkStructureType sType
4265 void* pNext
4266}
4267
4268class VkBaseInStructure {
4269 VkStructureType sType
4270 const void* pNext
4271}
4272
Ian Elliott28bd2c32017-10-13 09:21:12 -06004273//@vulkan1_1 structures
Daniel Koch09f7bf92017-10-05 00:26:58 -04004274
4275class VkPhysicalDeviceSubgroupProperties {
4276 VkStructureType sType
4277 void* pNext
4278 u32 subgroupSize
4279 VkShaderStageFlags supportedStages
4280 VkSubgroupFeatureFlags supportedOperations
4281 VkBool32 quadOperationsInAllStages
4282}
4283
4284class VkBindBufferMemoryInfo {
4285 VkStructureType sType
4286 const void* pNext
4287 VkBuffer buffer
4288 VkDeviceMemory memory
4289 VkDeviceSize memoryOffset
4290}
4291
4292class VkBindImageMemoryInfo {
4293 VkStructureType sType
4294 const void* pNext
4295 VkImage image
4296 VkDeviceMemory memory
4297 VkDeviceSize memoryOffset
4298}
4299
4300class VkPhysicalDevice16BitStorageFeatures {
4301 VkStructureType sType
4302 void* pNext
4303 VkBool32 storageBuffer16BitAccess
4304 VkBool32 uniformAndStorageBuffer16BitAccess
4305 VkBool32 storagePushConstant16
4306 VkBool32 storageInputOutput16
4307}
4308
4309class VkMemoryDedicatedRequirements {
4310 VkStructureType sType
4311 void* pNext
4312 VkBool32 prefersDedicatedAllocation
4313 VkBool32 requiresDedicatedAllocation
4314}
4315
4316class VkMemoryDedicatedAllocateInfo {
4317 VkStructureType sType
4318 const void* pNext
4319 VkImage image
4320 VkBuffer buffer
4321}
4322
4323class VkMemoryAllocateFlagsInfo {
4324 VkStructureType sType
4325 const void* pNext
4326 VkMemoryAllocateFlags flags
4327 u32 deviceMask
4328}
4329
4330class VkDeviceGroupRenderPassBeginInfo {
4331 VkStructureType sType
4332 const void* pNext
4333 u32 deviceMask
4334 u32 deviceRenderAreaCount
4335 const VkRect2D* pDeviceRenderAreas
4336}
4337
4338class VkDeviceGroupCommandBufferBeginInfo {
4339 VkStructureType sType
4340 const void* pNext
4341 u32 deviceMask
4342}
4343
4344class VkDeviceGroupSubmitInfo {
4345 VkStructureType sType
4346 const void* pNext
4347 u32 waitSemaphoreCount
4348 const u32* pWaitSemaphoreDeviceIndices
4349 u32 commandBufferCount
4350 const u32* pCommandBufferDeviceMasks
4351 u32 signalSemaphoreCount
4352 const u32* pSignalSemaphoreDeviceIndices
4353}
4354
4355class VkDeviceGroupBindSparseInfo {
4356 VkStructureType sType
4357 const void* pNext
4358 u32 resourceDeviceIndex
4359 u32 memoryDeviceIndex
4360}
4361
4362class VkBindBufferMemoryDeviceGroupInfo {
4363 VkStructureType sType
4364 const void* pNext
4365 u32 deviceIndexCount
4366 const u32* pDeviceIndices
4367}
4368
4369class VkBindImageMemoryDeviceGroupInfo {
4370 VkStructureType sType
4371 const void* pNext
4372 u32 deviceIndexCount
4373 const u32* pDeviceIndices
Jesse Hall8c954d32018-01-17 22:06:20 -08004374 u32 splitInstanceBindRegionCount
4375 const VkRect2D* pSplitInstanceBindRegions
Daniel Koch09f7bf92017-10-05 00:26:58 -04004376}
4377
4378class VkPhysicalDeviceGroupProperties {
4379 VkStructureType sType
4380 void* pNext
4381 u32 physicalDeviceCount
4382 VkPhysicalDevice[VK_MAX_DEVICE_GROUP_SIZE] physicalDevices
4383 VkBool32 subsetAllocation
4384}
4385
4386class VkDeviceGroupDeviceCreateInfo {
4387 VkStructureType sType
4388 const void* pNext
4389 u32 physicalDeviceCount
4390 const VkPhysicalDevice* pPhysicalDevices
4391}
4392
4393class VkBufferMemoryRequirementsInfo2 {
4394 VkStructureType sType
4395 const void* pNext
4396 VkBuffer buffer
4397}
4398
4399class VkImageMemoryRequirementsInfo2 {
4400 VkStructureType sType
4401 const void* pNext
4402 VkImage image
4403}
4404
4405class VkImageSparseMemoryRequirementsInfo2 {
4406 VkStructureType sType
4407 const void* pNext
4408 VkImage image
4409}
4410
4411class VkMemoryRequirements2 {
4412 VkStructureType sType
4413 void* pNext
4414 VkMemoryRequirements memoryRequirements
4415}
4416
4417class VkSparseImageMemoryRequirements2 {
4418 VkStructureType sType
4419 void* pNext
4420 VkSparseImageMemoryRequirements memoryRequirements
4421}
4422
4423class VkPhysicalDeviceFeatures2 {
4424 VkStructureType sType
4425 void* pNext
4426 VkPhysicalDeviceFeatures features
4427}
4428
4429class VkPhysicalDeviceProperties2 {
4430 VkStructureType sType
4431 void* pNext
4432 VkPhysicalDeviceProperties properties
4433}
4434
4435class VkFormatProperties2 {
4436 VkStructureType sType
4437 void* pNext
4438 VkFormatProperties formatProperties
4439}
4440
4441class VkImageFormatProperties2 {
4442 VkStructureType sType
4443 void* pNext
4444 VkImageFormatProperties imageFormatProperties
4445}
4446
4447class VkPhysicalDeviceImageFormatInfo2 {
4448 VkStructureType sType
4449 const void* pNext
4450 VkFormat format
4451 VkImageType type
4452 VkImageTiling tiling
4453 VkImageUsageFlags usage
4454 VkImageCreateFlags flags
4455}
4456
4457class VkQueueFamilyProperties2 {
4458 VkStructureType sType
4459 void* pNext
4460 VkQueueFamilyProperties queueFamilyProperties
4461}
4462
4463class VkPhysicalDeviceMemoryProperties2 {
4464 VkStructureType sType
4465 void* pNext
4466 VkPhysicalDeviceMemoryProperties memoryProperties
4467}
4468
4469class VkSparseImageFormatProperties2 {
4470 VkStructureType sType
4471 void* pNext
4472 VkSparseImageFormatProperties properties
4473}
4474
4475class VkPhysicalDeviceSparseImageFormatInfo2 {
4476 VkStructureType sType
4477 const void* pNext
4478 VkFormat format
4479 VkImageType type
4480 VkSampleCountFlagBits samples
4481 VkImageUsageFlags usage
4482 VkImageTiling tiling
4483}
4484
4485class VkPhysicalDevicePointClippingProperties {
4486 VkStructureType sType
4487 void* pNext
4488 VkPointClippingBehavior pointClippingBehavior
4489}
4490
4491class VkInputAttachmentAspectReference {
4492 u32 subpass
4493 u32 inputAttachmentIndex
4494 VkImageAspectFlags aspectMask
4495}
4496
4497class VkRenderPassInputAttachmentAspectCreateInfo {
4498 VkStructureType sType
4499 const void* pNext
4500 u32 aspectReferenceCount
4501 const VkInputAttachmentAspectReference* pAspectReferences
4502}
4503
4504class VkImageViewUsageCreateInfo {
4505 VkStructureType sType
4506 const void* pNext
4507 VkImageUsageFlags usage
4508}
4509
4510class VkPipelineTessellationDomainOriginStateCreateInfo {
4511 VkStructureType sType
4512 const void* pNext
4513 VkTessellationDomainOrigin domainOrigin
4514}
4515
4516class VkRenderPassMultiviewCreateInfo {
4517 VkStructureType sType
4518 const void* pNext
4519 u32 subpassCount
4520 const u32* pViewMasks
4521 u32 dependencyCount
4522 const s32* pViewOffsets
4523 u32 correlationMaskCount
4524 const u32* pCorrelationMasks
4525}
4526
4527class VkPhysicalDeviceMultiviewFeatures {
4528 VkStructureType sType
4529 void* pNext
4530 VkBool32 multiview
4531 VkBool32 multiviewGeometryShader
4532 VkBool32 multiviewTessellationShader
4533}
4534
4535class VkPhysicalDeviceMultiviewProperties {
4536 VkStructureType sType
4537 void* pNext
4538 u32 maxMultiviewViewCount
4539 u32 maxMultiviewInstanceIndex
4540}
4541
4542class VkPhysicalDeviceVariablePointerFeatures {
4543 VkStructureType sType
4544 void* pNext
4545 VkBool32 variablePointersStorageBuffer
4546 VkBool32 variablePointers
4547}
4548
4549class VkPhysicalDeviceProtectedMemoryFeatures {
4550 VkStructureType sType
4551 void* pNext
4552 VkBool32 protectedMemory
4553}
4554
4555class VkPhysicalDeviceProtectedMemoryProperties {
4556 VkStructureType sType
4557 void* pNext
4558 VkBool32 protectedNoFault
4559}
4560
4561class VkDeviceQueueInfo2 {
4562 VkStructureType sType
4563 const void* pNext
4564 VkDeviceQueueCreateFlags flags
4565 u32 queueFamilyIndex
4566 u32 queueIndex
4567}
4568
4569class VkProtectedSubmitInfo {
4570 VkStructureType sType
4571 const void* pNext
4572 VkBool32 protectedSubmit
4573}
4574
4575class VkSamplerYcbcrConversionCreateInfo {
4576 VkStructureType sType
4577 const void* pNext
4578 VkFormat format
4579 VkSamplerYcbcrModelConversion ycbcrModel
4580 VkSamplerYcbcrRange ycbcrRange
4581 VkComponentMapping components
4582 VkChromaLocation xChromaOffset
4583 VkChromaLocation yChromaOffset
4584 VkFilter chromaFilter
4585 VkBool32 forceExplicitReconstruction
4586}
4587
4588class VkSamplerYcbcrConversionInfo {
4589 VkStructureType sType
4590 const void* pNext
4591 VkSamplerYcbcrConversion conversion
4592}
4593
4594class VkBindImagePlaneMemoryInfo {
4595 VkStructureType sType
4596 const void* pNext
4597 VkImageAspectFlagBits planeAspect
4598}
4599
4600class VkImagePlaneMemoryRequirementsInfo {
4601 VkStructureType sType
4602 const void* pNext
4603 VkImageAspectFlagBits planeAspect
4604}
4605
4606class VkPhysicalDeviceSamplerYcbcrConversionFeatures {
4607 VkStructureType sType
4608 void* pNext
4609 VkBool32 samplerYcbcrConversion
4610}
4611
4612class VkSamplerYcbcrConversionImageFormatProperties {
4613 VkStructureType sType
4614 void* pNext
4615 u32 combinedImageSamplerDescriptorCount
4616}
4617
4618class VkDescriptorUpdateTemplateEntry {
4619 u32 dstBinding
4620 u32 dstArrayElement
4621 u32 descriptorCount
4622 VkDescriptorType descriptorType
4623 platform.size_t offset
4624 platform.size_t stride
4625}
4626
4627class VkDescriptorUpdateTemplateCreateInfo {
4628 VkStructureType sType
4629 void* pNext
4630 VkDescriptorUpdateTemplateCreateFlags flags
4631 u32 descriptorUpdateEntryCount
4632 const VkDescriptorUpdateTemplateEntry* pDescriptorUpdateEntries
4633 VkDescriptorUpdateTemplateType templateType
4634 VkDescriptorSetLayout descriptorSetLayout
4635 VkPipelineBindPoint pipelineBindPoint
4636 VkPipelineLayout pipelineLayout
4637 u32 set
4638}
4639
4640class VkExternalMemoryProperties {
4641 VkExternalMemoryFeatureFlags externalMemoryFeatures
4642 VkExternalMemoryHandleTypeFlags exportFromImportedHandleTypes
4643 VkExternalMemoryHandleTypeFlags compatibleHandleTypes
4644}
4645
4646class VkPhysicalDeviceExternalImageFormatInfo {
4647 VkStructureType sType
4648 const void* pNext
4649 VkExternalMemoryHandleTypeFlagBits handleType
4650}
4651
4652class VkExternalImageFormatProperties {
4653 VkStructureType sType
4654 void* pNext
4655 VkExternalMemoryProperties externalMemoryProperties
4656}
4657
4658class VkPhysicalDeviceExternalBufferInfo {
4659 VkStructureType sType
4660 const void* pNext
4661 VkBufferCreateFlags flags
4662 VkBufferUsageFlags usage
4663 VkExternalMemoryHandleTypeFlagBits handleType
4664}
4665
4666class VkExternalBufferProperties {
4667 VkStructureType sType
4668 void* pNext
4669 VkExternalMemoryProperties externalMemoryProperties
4670}
4671
4672class VkPhysicalDeviceIDProperties {
4673 VkStructureType sType
4674 void* pNext
4675 u8[VK_UUID_SIZE] deviceUUID
4676 u8[VK_UUID_SIZE] driverUUID
4677 u8[VK_LUID_SIZE] deviceLUID
4678 u32 deviceNodeMask
4679 VkBool32 deviceLUIDValid
4680}
4681
4682class VkExternalMemoryImageCreateInfo {
4683 VkStructureType sType
4684 const void* pNext
4685 VkExternalMemoryHandleTypeFlags handleTypes
4686}
4687
4688class VkExternalMemoryBufferCreateInfo {
4689 VkStructureType sType
4690 const void* pNext
4691 VkExternalMemoryHandleTypeFlags handleTypes
4692}
4693
4694class VkExportMemoryAllocateInfo {
4695 VkStructureType sType
4696 const void* pNext
4697 VkExternalMemoryHandleTypeFlags handleTypes
4698}
4699
4700class VkPhysicalDeviceExternalFenceInfo {
4701 VkStructureType sType
4702 const void* pNext
4703 VkExternalFenceHandleTypeFlagBits handleType
4704}
4705
4706class VkExternalFenceProperties {
4707 VkStructureType sType
4708 void* pNext
4709 VkExternalFenceHandleTypeFlags exportFromImportedHandleTypes
4710 VkExternalFenceHandleTypeFlags compatibleHandleTypes
4711 VkExternalFenceFeatureFlags externalFenceFeatures
4712}
4713
4714class VkExportFenceCreateInfo {
4715 VkStructureType sType
4716 const void* pNext
4717 VkExternalFenceHandleTypeFlags handleTypes
4718}
4719
4720class VkExportSemaphoreCreateInfo {
4721 VkStructureType sType
4722 const void* pNext
4723 VkExternalSemaphoreHandleTypeFlags handleTypes
4724}
4725
4726class VkPhysicalDeviceExternalSemaphoreInfo {
4727 VkStructureType sType
4728 const void* pNext
4729 VkExternalSemaphoreHandleTypeFlagBits handleType
4730}
4731
4732class VkExternalSemaphoreProperties {
4733 VkStructureType sType
4734 void* pNext
4735 VkExternalSemaphoreHandleTypeFlags exportFromImportedHandleTypes
4736 VkExternalSemaphoreHandleTypeFlags compatibleHandleTypes
4737 VkExternalSemaphoreFeatureFlags externalSemaphoreFeatures
4738}
4739
4740class VkPhysicalDeviceMaintenance3Properties {
4741 VkStructureType sType
4742 void* pNext
4743 u32 maxPerSetDescriptors
4744 VkDeviceSize maxMemoryAllocationSize
4745}
4746
4747class VkDescriptorSetLayoutSupport {
4748 VkStructureType sType
4749 void* pNext
4750 VkBool32 supported
4751}
4752
4753class VkPhysicalDeviceShaderDrawParameterFeatures {
4754 VkStructureType sType
4755 void* pNext
4756 VkBool32 shaderDrawParameters
4757}
4758
4759
Jesse Hallad250842017-03-10 18:35:38 -08004760@extension("VK_KHR_surface") // 1
Jesse Hallb00daad2015-11-29 19:46:20 -08004761class VkSurfaceCapabilitiesKHR {
Jesse Hall1356b0d2015-11-23 17:24:58 -08004762 u32 minImageCount
4763 u32 maxImageCount
4764 VkExtent2D currentExtent
4765 VkExtent2D minImageExtent
4766 VkExtent2D maxImageExtent
Jesse Hallf4ab2b12015-11-30 16:04:55 -08004767 u32 maxImageArrayLayers
Jesse Hall1356b0d2015-11-23 17:24:58 -08004768 VkSurfaceTransformFlagsKHR supportedTransforms
Jesse Hallf4ab2b12015-11-30 16:04:55 -08004769 VkSurfaceTransformFlagBitsKHR currentTransform
Jesse Halla6429252015-11-29 18:59:42 -08004770 VkCompositeAlphaFlagsKHR supportedCompositeAlpha
Jesse Hall1356b0d2015-11-23 17:24:58 -08004771 VkImageUsageFlags supportedUsageFlags
Michael Lentine88594d72015-11-12 12:49:45 -08004772}
4773
Jesse Hallad250842017-03-10 18:35:38 -08004774@extension("VK_KHR_surface") // 1
Michael Lentine88594d72015-11-12 12:49:45 -08004775class VkSurfaceFormatKHR {
Jesse Hall1356b0d2015-11-23 17:24:58 -08004776 VkFormat format
4777 VkColorSpaceKHR colorSpace
Michael Lentine88594d72015-11-12 12:49:45 -08004778}
4779
Jesse Hallad250842017-03-10 18:35:38 -08004780@extension("VK_KHR_swapchain") // 2
Michael Lentine88594d72015-11-12 12:49:45 -08004781class VkSwapchainCreateInfoKHR {
Jesse Hall1356b0d2015-11-23 17:24:58 -08004782 VkStructureType sType
4783 const void* pNext
Jesse Hallf4ab2b12015-11-30 16:04:55 -08004784 VkSwapchainCreateFlagsKHR flags
Jesse Hall1356b0d2015-11-23 17:24:58 -08004785 VkSurfaceKHR surface
4786 u32 minImageCount
4787 VkFormat imageFormat
4788 VkColorSpaceKHR imageColorSpace
4789 VkExtent2D imageExtent
Jesse Hallf4ab2b12015-11-30 16:04:55 -08004790 u32 imageArrayLayers
4791 VkImageUsageFlags imageUsage
Jesse Hall1356b0d2015-11-23 17:24:58 -08004792 VkSharingMode sharingMode
Jesse Hall03b6fe12015-11-24 12:44:21 -08004793 u32 queueFamilyIndexCount
Jesse Hall1356b0d2015-11-23 17:24:58 -08004794 const u32* pQueueFamilyIndices
Jesse Hallf4ab2b12015-11-30 16:04:55 -08004795 VkSurfaceTransformFlagBitsKHR preTransform
4796 VkCompositeAlphaFlagBitsKHR compositeAlpha
Jesse Hall1356b0d2015-11-23 17:24:58 -08004797 VkPresentModeKHR presentMode
Jesse Hall1356b0d2015-11-23 17:24:58 -08004798 VkBool32 clipped
Jesse Hallf4ab2b12015-11-30 16:04:55 -08004799 VkSwapchainKHR oldSwapchain
Michael Lentine88594d72015-11-12 12:49:45 -08004800}
4801
Jesse Hallad250842017-03-10 18:35:38 -08004802@extension("VK_KHR_swapchain") // 2
Michael Lentine88594d72015-11-12 12:49:45 -08004803class VkPresentInfoKHR {
Jesse Hall1356b0d2015-11-23 17:24:58 -08004804 VkStructureType sType
4805 const void* pNext
Jesse Hallb00daad2015-11-29 19:46:20 -08004806 u32 waitSemaphoreCount
4807 const VkSemaphore* pWaitSemaphores
Jesse Hall1356b0d2015-11-23 17:24:58 -08004808 u32 swapchainCount
Jesse Hall03b6fe12015-11-24 12:44:21 -08004809 const VkSwapchainKHR* pSwapchains
Jesse Hallf4ab2b12015-11-30 16:04:55 -08004810 const u32* pImageIndices
Jesse Halle1b12782015-11-30 11:27:32 -08004811 VkResult* pResults
Michael Lentine88594d72015-11-12 12:49:45 -08004812}
4813
Ian Elliott28bd2c32017-10-13 09:21:12 -06004814@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04004815@extension("VK_KHR_swapchain") // 2
4816class VkImageSwapchainCreateInfoKHR {
4817 VkStructureType sType
4818 const void* pNext
4819 VkSwapchainKHR swapchain
4820}
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 VkBindImageMemorySwapchainInfoKHR {
4825 VkStructureType sType
4826 const void* pNext
4827 VkSwapchainKHR swapchain
4828 u32 imageIndex
4829}
4830
Ian Elliott28bd2c32017-10-13 09:21:12 -06004831@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04004832@extension("VK_KHR_swapchain") // 2
4833class VkAcquireNextImageInfoKHR {
4834 VkStructureType sType
4835 const void* pNext
4836 VkSwapchainKHR swapchain
4837 u64 timeout
4838 VkSemaphore semaphore
4839 VkFence fence
4840 u32 deviceMask
4841}
4842
Ian Elliott28bd2c32017-10-13 09:21:12 -06004843@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04004844@extension("VK_KHR_swapchain") // 2
4845class VkDeviceGroupPresentCapabilitiesKHR {
4846 VkStructureType sType
4847 const void* pNext
4848 u32[VK_MAX_DEVICE_GROUP_SIZE] presentMask
4849 VkDeviceGroupPresentModeFlagsKHR modes
4850}
4851
Ian Elliott28bd2c32017-10-13 09:21:12 -06004852@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04004853@extension("VK_KHR_swapchain") // 2
4854class VkDeviceGroupPresentInfoKHR {
4855 VkStructureType sType
4856 const void* pNext
4857 u32 swapchainCount
4858 const u32* pDeviceMasks
4859 VkDeviceGroupPresentModeFlagBitsKHR mode
4860}
4861
Ian Elliott28bd2c32017-10-13 09:21:12 -06004862@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04004863@extension("VK_KHR_swapchain") // 2
4864class VkDeviceGroupSwapchainCreateInfoKHR {
4865 VkStructureType sType
4866 const void* pNext
4867 VkDeviceGroupPresentModeFlagsKHR modes
4868}
4869
Jesse Hallad250842017-03-10 18:35:38 -08004870@extension("VK_KHR_display") // 3
Jesse Hall1356b0d2015-11-23 17:24:58 -08004871class VkDisplayPropertiesKHR {
4872 VkDisplayKHR display
4873 const char* displayName
4874 VkExtent2D physicalDimensions
4875 VkExtent2D physicalResolution
4876 VkSurfaceTransformFlagsKHR supportedTransforms
Jesse Hall1356b0d2015-11-23 17:24:58 -08004877 VkBool32 planeReorderPossible
Jesse Halla6429252015-11-29 18:59:42 -08004878 VkBool32 persistentContent
Michael Lentine88594d72015-11-12 12:49:45 -08004879}
4880
Jesse Hallad250842017-03-10 18:35:38 -08004881@extension("VK_KHR_display") // 3
Jesse Halla6429252015-11-29 18:59:42 -08004882class VkDisplayModeParametersKHR {
Jesse Hall1356b0d2015-11-23 17:24:58 -08004883 VkExtent2D visibleRegion
Jesse Halla6429252015-11-29 18:59:42 -08004884 u32 refreshRate
Michael Lentine88594d72015-11-12 12:49:45 -08004885}
Jesse Halld27f6aa2015-08-15 17:58:48 -07004886
Jesse Hallad250842017-03-10 18:35:38 -08004887@extension("VK_KHR_display") // 3
Jesse Hall1356b0d2015-11-23 17:24:58 -08004888class VkDisplayModePropertiesKHR {
4889 VkDisplayModeKHR displayMode
Jesse Halla6429252015-11-29 18:59:42 -08004890 VkDisplayModeParametersKHR parameters
Jesse Hall1356b0d2015-11-23 17:24:58 -08004891}
4892
Jesse Hallad250842017-03-10 18:35:38 -08004893@extension("VK_KHR_display") // 3
Jesse Hall1356b0d2015-11-23 17:24:58 -08004894class VkDisplayModeCreateInfoKHR {
4895 VkStructureType sType
4896 const void* pNext
Jesse Hall9ba8bc82015-11-30 16:22:16 -08004897 VkDisplayModeCreateFlagsKHR flags
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 VkDisplayPlanePropertiesKHR {
Jesse Halla6429252015-11-29 18:59:42 -08004903 VkDisplayKHR currentDisplay
4904 u32 currentStackIndex
4905}
4906
Jesse Hallad250842017-03-10 18:35:38 -08004907@extension("VK_KHR_display") // 3
Jesse Halla6429252015-11-29 18:59:42 -08004908class VkDisplayPlaneCapabilitiesKHR {
Jesse Hall1356b0d2015-11-23 17:24:58 -08004909 VkDisplayPlaneAlphaFlagsKHR supportedAlpha
4910 VkOffset2D minSrcPosition
4911 VkOffset2D maxSrcPosition
4912 VkExtent2D minSrcExtent
4913 VkExtent2D maxSrcExtent
4914 VkOffset2D minDstPosition
4915 VkOffset2D maxDstPosition
4916 VkExtent2D minDstExtent
4917 VkExtent2D maxDstExtent
4918}
4919
Jesse Hallad250842017-03-10 18:35:38 -08004920@extension("VK_KHR_display") // 3
Jesse Halla6429252015-11-29 18:59:42 -08004921class VkDisplaySurfaceCreateInfoKHR {
Jesse Hall1356b0d2015-11-23 17:24:58 -08004922 VkStructureType sType
4923 const void* pNext
Jesse Hallf4ab2b12015-11-30 16:04:55 -08004924 VkDisplaySurfaceCreateFlagsKHR flags
Jesse Hall1356b0d2015-11-23 17:24:58 -08004925 VkDisplayModeKHR displayMode
4926 u32 planeIndex
4927 u32 planeStackIndex
Jesse Hallf4ab2b12015-11-30 16:04:55 -08004928 VkSurfaceTransformFlagBitsKHR transform
Jesse Hall1356b0d2015-11-23 17:24:58 -08004929 f32 globalAlpha
Jesse Hallf4ab2b12015-11-30 16:04:55 -08004930 VkDisplayPlaneAlphaFlagBitsKHR alphaMode
4931 VkExtent2D imageExtent
Jesse Hall1356b0d2015-11-23 17:24:58 -08004932}
4933
Jesse Hallad250842017-03-10 18:35:38 -08004934@extension("VK_KHR_display_swapchain") // 4
Jesse Hall1356b0d2015-11-23 17:24:58 -08004935class VkDisplayPresentInfoKHR {
4936 VkStructureType sType
4937 const void* pNext
4938 VkRect2D srcRect
4939 VkRect2D dstRect
Jesse Halla6429252015-11-29 18:59:42 -08004940 VkBool32 persistent
Jesse Hall1356b0d2015-11-23 17:24:58 -08004941}
4942
Jesse Hallad250842017-03-10 18:35:38 -08004943@extension("VK_KHR_xlib_surface") // 5
Jesse Hallf9fa9a52016-01-08 16:08:51 -08004944class VkXlibSurfaceCreateInfoKHR {
4945 VkStructureType sType
4946 const void* pNext
4947 VkXlibSurfaceCreateFlagsKHR flags
4948 platform.Display* dpy
4949 platform.Window window
4950}
4951
Jesse Hallad250842017-03-10 18:35:38 -08004952@extension("VK_KHR_xcb_surface") // 6
Jesse Hallf9fa9a52016-01-08 16:08:51 -08004953class VkXcbSurfaceCreateInfoKHR {
4954 VkStructureType sType
4955 const void* pNext
4956 VkXcbSurfaceCreateFlagsKHR flags
4957 platform.xcb_connection_t* connection
4958 platform.xcb_window_t window
4959}
4960
Jesse Hallad250842017-03-10 18:35:38 -08004961@extension("VK_KHR_wayland_surface") // 7
Jesse Hallf9fa9a52016-01-08 16:08:51 -08004962class VkWaylandSurfaceCreateInfoKHR {
4963 VkStructureType sType
4964 const void* pNext
4965 VkWaylandSurfaceCreateFlagsKHR flags
4966 platform.wl_display* display
4967 platform.wl_surface* surface
4968}
4969
Jesse Hallad250842017-03-10 18:35:38 -08004970@extension("VK_KHR_mir_surface") // 8
Jesse Hallf9fa9a52016-01-08 16:08:51 -08004971class VkMirSurfaceCreateInfoKHR {
4972 VkStructureType sType
4973 const void* pNext
4974 VkMirSurfaceCreateFlagsKHR flags
4975 platform.MirConnection* connection
4976 platform.MirSurface* mirSurface
4977}
4978
Jesse Hallad250842017-03-10 18:35:38 -08004979@extension("VK_KHR_android_surface") // 9
Jesse Hallf9fa9a52016-01-08 16:08:51 -08004980class VkAndroidSurfaceCreateInfoKHR {
4981 VkStructureType sType
4982 const void* pNext
4983 VkAndroidSurfaceCreateFlagsKHR flags
4984 platform.ANativeWindow* window
4985}
4986
Jesse Hallad250842017-03-10 18:35:38 -08004987@extension("VK_KHR_win32_surface") // 10
Jesse Hallf9fa9a52016-01-08 16:08:51 -08004988class VkWin32SurfaceCreateInfoKHR {
4989 VkStructureType sType
4990 const void* pNext
4991 VkWin32SurfaceCreateFlagsKHR flags
4992 platform.HINSTANCE hinstance
4993 platform.HWND hwnd
4994}
4995
Jesse Hallad250842017-03-10 18:35:38 -08004996@extension("VK_ANDROID_native_buffer") // 11
Jesse Halld1abd742017-02-09 21:45:51 -08004997@internal class Gralloc1Usage {
4998 u64 consumer
4999 u64 producer
5000}
5001
Jesse Hallad250842017-03-10 18:35:38 -08005002@extension("VK_ANDROID_native_buffer") // 11
Chia-I Wub262ddc2016-03-22 07:38:20 +08005003class VkNativeBufferANDROID {
5004 VkStructureType sType
5005 const void* pNext
5006 platform.buffer_handle_t handle
Jesse Halld1abd742017-02-09 21:45:51 -08005007 s32 stride
5008 s32 format
5009 s32 usage
5010 Gralloc1Usage usage2
Chia-I Wub262ddc2016-03-22 07:38:20 +08005011}
5012
Jesse Hallad250842017-03-10 18:35:38 -08005013@extension("VK_ANDROID_native_buffer") // 11
Chris Forbes8e4438b2016-12-07 16:26:49 +13005014class VkSwapchainImageCreateInfoANDROID {
5015 VkStructureType sType
5016 const void* pNext
Chris Forbes134d9582017-01-12 14:26:37 +13005017 VkSwapchainImageUsageFlagsANDROID flags
Chris Forbes48853712017-01-12 14:09:33 +13005018}
Ian Elliott4c8bb2a2016-12-29 11:07:26 -07005019
Jesse Hallad250842017-03-10 18:35:38 -08005020@extension("VK_ANDROID_native_buffer") // 11
Chris Forbes1d4e5542017-02-15 19:38:50 +13005021class VkPhysicalDevicePresentationPropertiesANDROID {
5022 VkStructureType sType
5023 void* pNext
5024 VkBool32 sharedImage
5025}
5026
Jesse Hallad250842017-03-10 18:35:38 -08005027@extension("VK_EXT_debug_report") // 12
Jesse Hall715b86a2016-01-16 16:34:29 -08005028class VkDebugReportCallbackCreateInfoEXT {
5029 VkStructureType sType
5030 const void* pNext
5031 VkDebugReportFlagsEXT flags
5032 PFN_vkDebugReportCallbackEXT pfnCallback
5033 void* pUserData
5034}
5035
Jesse Hallad250842017-03-10 18:35:38 -08005036@extension("VK_AMD_rasterization_order") // 19
Jesse Hall26763382016-05-20 07:13:52 -07005037class VkPipelineRasterizationStateRasterizationOrderAMD {
5038 VkStructureType sType
5039 const void* pNext
5040 VkRasterizationOrderAMD rasterizationOrder
5041}
5042
Jesse Hallad250842017-03-10 18:35:38 -08005043@extension("VK_EXT_debug_marker") // 23
Jesse Hall26763382016-05-20 07:13:52 -07005044class VkDebugMarkerObjectNameInfoEXT {
5045 VkStructureType sType
5046 const void* pNext
5047 VkDebugReportObjectTypeEXT objectType
5048 u64 object
5049 const char* pObjectName
5050}
5051
Jesse Hallad250842017-03-10 18:35:38 -08005052@extension("VK_EXT_debug_marker") // 23
Jesse Hall26763382016-05-20 07:13:52 -07005053class VkDebugMarkerObjectTagInfoEXT {
5054 VkStructureType sType
5055 const void* pNext
5056 VkDebugReportObjectTypeEXT objectType
5057 u64 object
5058 u64 tagName
5059 platform.size_t tagSize
5060 const void* pTag
5061}
5062
Jesse Hallad250842017-03-10 18:35:38 -08005063@extension("VK_EXT_debug_marker") // 23
Jesse Hall26763382016-05-20 07:13:52 -07005064class VkDebugMarkerMarkerInfoEXT {
5065 VkStructureType sType
5066 const void* pNext
5067 const char* pMarkerName
5068 f32[4] color
5069}
5070
Jesse Hallad250842017-03-10 18:35:38 -08005071@extension("VK_NV_dedicated_allocation") // 27
Jesse Hall56d386a2016-07-26 15:20:40 -07005072class VkDedicatedAllocationImageCreateInfoNV {
5073 VkStructureType sType
5074 const void* pNext
5075 VkBool32 dedicatedAllocation
5076}
5077
Jesse Hallad250842017-03-10 18:35:38 -08005078@extension("VK_NV_dedicated_allocation") // 27
Jesse Hall56d386a2016-07-26 15:20:40 -07005079class VkDedicatedAllocationBufferCreateInfoNV {
5080 VkStructureType sType
5081 const void* pNext
5082 VkBool32 dedicatedAllocation
5083}
5084
Jesse Hallad250842017-03-10 18:35:38 -08005085@extension("VK_NV_dedicated_allocation") // 27
Jesse Hall56d386a2016-07-26 15:20:40 -07005086class VkDedicatedAllocationMemoryAllocateInfoNV {
5087 VkStructureType sType
5088 const void* pNext
5089 VkImage image
5090 VkBuffer buffer
5091}
5092
Jesse Hall7ba0ac72017-07-07 17:13:23 -07005093@extension("VK_AMD_texture_gather_bias_lod") // 42
5094class VkTextureLODGatherFormatPropertiesAMD {
5095 VkStructureType sType
5096 void* pNext
5097 VkBool32 supportsTextureGatherLODBiasAMD
5098}
5099
Jesse Hall8c954d32018-01-17 22:06:20 -08005100@extension("VK_AMD_shader_info") // 43
5101class VkShaderResourceUsageAMD {
5102 u32 numUsedVgprs
5103 u32 numUsedSgprs
5104 u32 ldsSizePerLocalWorkGroup
5105 platform.size_t ldsUsageSizeInBytes
5106 platform.size_t scratchMemUsageInBytes
5107}
5108
5109@extension("VK_AMD_shader_info") // 43
5110class VkShaderStatisticsInfoAMD {
5111 VkShaderStageFlags shaderStageMask
5112 VkShaderResourceUsageAMD resourceUsage
5113 u32 numPhysicalVgprs
5114 u32 numPhysicalSgprs
5115 u32 numAvailableVgprs
5116 u32 numAvailableSgprs
5117 u32[3] computeWorkGroupSize
5118}
5119
Daniel Koch09f7bf92017-10-05 00:26:58 -04005120@extension("VK_KHR_multiview") // 54
5121class VkRenderPassMultiviewCreateInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005122 VkStructureType sType
5123 const void* pNext
5124 u32 subpassCount
5125 const u32* pViewMasks
5126 u32 dependencyCount
5127 const s32* pViewOffsets
5128 u32 correlationMaskCount
5129 const u32* pCorrelationMasks
5130}
5131
Daniel Koch09f7bf92017-10-05 00:26:58 -04005132@extension("VK_KHR_multiview") // 54
5133class VkPhysicalDeviceMultiviewFeaturesKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005134 VkStructureType sType
5135 void* pNext
5136 VkBool32 multiview
5137 VkBool32 multiviewGeometryShader
5138 VkBool32 multiviewTessellationShader
5139}
5140
Daniel Koch09f7bf92017-10-05 00:26:58 -04005141@extension("VK_KHR_multiview") // 54
5142class VkPhysicalDeviceMultiviewPropertiesKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005143 VkStructureType sType
5144 void* pNext
5145 u32 maxMultiviewViewCount
5146 u32 maxMultiviewInstanceIndex
5147}
5148
5149@extension("VK_NV_external_memory_capabilities") // 56
Jesse Halleb02c472017-02-24 15:13:45 -08005150class VkExternalImageFormatPropertiesNV {
5151 VkImageFormatProperties imageFormatProperties
5152 VkExternalMemoryFeatureFlagsNV externalMemoryFeatures
5153 VkExternalMemoryHandleTypeFlagsNV exportFromImportedHandleTypes
5154 VkExternalMemoryHandleTypeFlagsNV compatibleHandleTypes
5155}
5156
Jesse Hallad250842017-03-10 18:35:38 -08005157@extension("VK_NV_external_memory") // 57
Jesse Halleb02c472017-02-24 15:13:45 -08005158class VkExternalMemoryImageCreateInfoNV {
5159 VkStructureType sType
5160 const void* pNext
5161 VkExternalMemoryHandleTypeFlagsNV handleTypes
5162}
5163
Jesse Hallad250842017-03-10 18:35:38 -08005164@extension("VK_NV_external_memory") // 57
Jesse Halleb02c472017-02-24 15:13:45 -08005165class VkExportMemoryAllocateInfoNV {
5166 VkStructureType sType
5167 const void* pNext
5168 VkExternalMemoryHandleTypeFlagsNV handleTypes
5169}
5170
Jesse Hallad250842017-03-10 18:35:38 -08005171@extension("VK_NV_external_memory_win32") // 58
Jesse Halleb02c472017-02-24 15:13:45 -08005172class VkImportMemoryWin32HandleInfoNV {
5173 VkStructureType sType
5174 const void* pNext
5175 VkExternalMemoryHandleTypeFlagsNV handleType
5176 platform.HANDLE handle
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 VkExportMemoryWin32HandleInfoNV {
5181 VkStructureType sType
5182 const void* pNext
5183 const platform.SECURITY_ATTRIBUTES* pAttributes
5184 platform.DWORD dwAccess
5185}
5186
Jesse Hallad250842017-03-10 18:35:38 -08005187@extension("VK_NV_win32_keyed_mutex") // 59
Jesse Halleb02c472017-02-24 15:13:45 -08005188class VkWin32KeyedMutexAcquireReleaseInfoNV {
5189 VkStructureType sType
5190 const void* pNext
5191 u32 acquireCount
5192 const VkDeviceMemory* pAcquireSyncs
5193 const u64* pAcquireKeys
5194 const u32* pAcquireTimeoutMilliseconds
5195 u32 releaseCount
5196 const VkDeviceMemory* pReleaseSyncs
5197 const u64* pReleaseKeys
5198}
5199
Jesse Hallad250842017-03-10 18:35:38 -08005200@extension("VK_KHR_get_physical_device_properties2") // 60
Chris Forbes1194ede2016-12-30 16:29:25 +13005201class VkPhysicalDeviceFeatures2KHR {
5202 VkStructureType sType
5203 void* pNext
5204 VkPhysicalDeviceFeatures features
5205}
5206
Jesse Hallad250842017-03-10 18:35:38 -08005207@extension("VK_KHR_get_physical_device_properties2") // 60
Chris Forbes1194ede2016-12-30 16:29:25 +13005208class VkPhysicalDeviceProperties2KHR {
5209 VkStructureType sType
5210 void* pNext
5211 VkPhysicalDeviceProperties properties
5212}
5213
Jesse Hallad250842017-03-10 18:35:38 -08005214@extension("VK_KHR_get_physical_device_properties2") // 60
Chris Forbes1194ede2016-12-30 16:29:25 +13005215class VkFormatProperties2KHR {
5216 VkStructureType sType
5217 void* pNext
5218 VkFormatProperties formatProperties
5219}
5220
Jesse Hallad250842017-03-10 18:35:38 -08005221@extension("VK_KHR_get_physical_device_properties2") // 60
Chris Forbes1194ede2016-12-30 16:29:25 +13005222class VkImageFormatProperties2KHR {
5223 VkStructureType sType
5224 void* pNext
5225 VkImageFormatProperties imageFormatProperties
5226}
5227
Jesse Hallad250842017-03-10 18:35:38 -08005228@extension("VK_KHR_get_physical_device_properties2") // 60
Chris Forbes1194ede2016-12-30 16:29:25 +13005229class VkPhysicalDeviceImageFormatInfo2KHR {
5230 VkStructureType sType
5231 const void* pNext
5232 VkFormat format
5233 VkImageType type
5234 VkImageTiling tiling
5235 VkImageUsageFlags usage
5236 VkImageCreateFlags flags
5237}
5238
Jesse Hallad250842017-03-10 18:35:38 -08005239@extension("VK_KHR_get_physical_device_properties2") // 60
Chris Forbes1194ede2016-12-30 16:29:25 +13005240class VkQueueFamilyProperties2KHR {
5241 VkStructureType sType
5242 void* pNext
5243 VkQueueFamilyProperties queueFamilyProperties
5244}
5245
Jesse Hallad250842017-03-10 18:35:38 -08005246@extension("VK_KHR_get_physical_device_properties2") // 60
Chris Forbes1194ede2016-12-30 16:29:25 +13005247class VkPhysicalDeviceMemoryProperties2KHR {
5248 VkStructureType sType
5249 void* pNext
5250 VkPhysicalDeviceMemoryProperties memoryProperties
5251}
5252
Jesse Hallad250842017-03-10 18:35:38 -08005253@extension("VK_KHR_get_physical_device_properties2") // 60
Chris Forbes1194ede2016-12-30 16:29:25 +13005254class VkSparseImageFormatProperties2KHR {
5255 VkStructureType sType
5256 void* pNext
5257 VkSparseImageFormatProperties properties
5258}
5259
Jesse Hallad250842017-03-10 18:35:38 -08005260@extension("VK_KHR_get_physical_device_properties2") // 60
Chris Forbes1194ede2016-12-30 16:29:25 +13005261class VkPhysicalDeviceSparseImageFormatInfo2KHR {
5262 VkStructureType sType
5263 const void* pNext
5264 VkFormat format
5265 VkImageType type
5266 VkSampleCountFlagBits samples
5267 VkImageUsageFlags usage
5268 VkImageTiling tiling
5269}
5270
Daniel Koch09f7bf92017-10-05 00:26:58 -04005271@extension("VK_KHR_device_group") // 61
5272class VkMemoryAllocateFlagsInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005273 VkStructureType sType
5274 const void* pNext
Daniel Koch09f7bf92017-10-05 00:26:58 -04005275 VkMemoryAllocateFlagsKHR flags
Jesse Hallad250842017-03-10 18:35:38 -08005276 u32 deviceMask
5277}
5278
Daniel Koch09f7bf92017-10-05 00:26:58 -04005279@extension("VK_KHR_device_group") // 61
5280class VkBindBufferMemoryDeviceGroupInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005281 VkStructureType sType
5282 const void* pNext
Jesse Hallad250842017-03-10 18:35:38 -08005283 u32 deviceIndexCount
5284 const u32* pDeviceIndices
5285}
5286
Daniel Koch09f7bf92017-10-05 00:26:58 -04005287@extension("VK_KHR_device_group") // 61
5288class VkBindImageMemoryDeviceGroupInfoKHR {
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 u32 SFRRectCount
5294 const VkRect2D* pSFRRects
5295}
5296
Daniel Koch09f7bf92017-10-05 00:26:58 -04005297@extension("VK_KHR_device_group") // 61
5298class VkDeviceGroupRenderPassBeginInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005299 VkStructureType sType
5300 const void* pNext
5301 u32 deviceMask
5302 u32 deviceRenderAreaCount
5303 const VkRect2D* pDeviceRenderAreas
5304}
5305
Daniel Koch09f7bf92017-10-05 00:26:58 -04005306@extension("VK_KHR_device_group") // 61
5307class VkDeviceGroupCommandBufferBeginInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005308 VkStructureType sType
5309 const void* pNext
5310 u32 deviceMask
5311}
5312
Daniel Koch09f7bf92017-10-05 00:26:58 -04005313@extension("VK_KHR_device_group") // 61
5314class VkDeviceGroupSubmitInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005315 VkStructureType sType
5316 const void* pNext
5317 u32 waitSemaphoreCount
5318 const u32* pWaitSemaphoreDeviceIndices
5319 u32 commandBufferCount
5320 const u32* pCommandBufferDeviceMasks
5321 u32 signalSemaphoreCount
5322 const u32* pSignalSemaphoreDeviceIndices
5323}
5324
Daniel Koch09f7bf92017-10-05 00:26:58 -04005325@extension("VK_KHR_device_group") // 61
5326class VkDeviceGroupBindSparseInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005327 VkStructureType sType
5328 const void* pNext
5329 u32 resourceDeviceIndex
5330 u32 memoryDeviceIndex
5331}
5332
Jesse Hallad250842017-03-10 18:35:38 -08005333@extension("VK_EXT_validation_flags") // 62
Chris Forbes289cb792016-12-30 15:03:55 +13005334class VkValidationFlagsEXT {
5335 VkStructureType sType
5336 const void* pNext
5337 u32 disabledValidationCheckCount
5338 VkValidationCheckEXT* pDisabledValidationChecks
5339}
5340
Jesse Hallad250842017-03-10 18:35:38 -08005341@extension("VK_NN_vi_surface") // 63
Jesse Hall77ad05b2017-03-10 22:02:20 -08005342class VkViSurfaceCreateInfoNN {
5343 VkStructureType sType
5344 const void* pNext
5345 VkViSurfaceCreateFlagsNN flags
5346 void* window
5347}
5348
Daniel Koch09f7bf92017-10-05 00:26:58 -04005349@extension("VK_KHR_device_group_creation") // 71
5350class VkPhysicalDeviceGroupPropertiesKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005351 VkStructureType sType
Jesse Hallf5ad48b2017-03-20 13:09:19 -07005352 void* pNext
Jesse Hallad250842017-03-10 18:35:38 -08005353 u32 physicalDeviceCount
Daniel Koch09f7bf92017-10-05 00:26:58 -04005354 VkPhysicalDevice[VK_MAX_DEVICE_GROUP_SIZE] physicalDevices
Jesse Hallad250842017-03-10 18:35:38 -08005355 VkBool32 subsetAllocation
5356}
5357
Daniel Koch09f7bf92017-10-05 00:26:58 -04005358@extension("VK_KHR_device_group_creation") // 71
5359class VkDeviceGroupDeviceCreateInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005360 VkStructureType sType
5361 const void* pNext
5362 u32 physicalDeviceCount
5363 const VkPhysicalDevice* pPhysicalDevices
5364}
5365
Jesse Hall9492f992017-08-28 12:10:06 -07005366@extension("VK_KHR_external_memory_capabilities") // 72
5367class VkExternalMemoryPropertiesKHR {
5368 VkExternalMemoryFeatureFlagsKHR externalMemoryFeatures
5369 VkExternalMemoryHandleTypeFlagsKHR exportFromImportedHandleTypes
5370 VkExternalMemoryHandleTypeFlagsKHR compatibleHandleTypes
Jesse Hallad250842017-03-10 18:35:38 -08005371}
5372
Jesse Hall9492f992017-08-28 12:10:06 -07005373@extension("VK_KHR_external_memory_capabilities") // 72
5374class VkPhysicalDeviceExternalImageFormatInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005375 VkStructureType sType
5376 const void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005377 VkExternalMemoryHandleTypeFlagBitsKHR handleType
Jesse Hallad250842017-03-10 18:35:38 -08005378}
5379
Jesse Hall9492f992017-08-28 12:10:06 -07005380@extension("VK_KHR_external_memory_capabilities") // 72
5381class VkExternalImageFormatPropertiesKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005382 VkStructureType sType
5383 void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005384 VkExternalMemoryPropertiesKHR externalMemoryProperties
Jesse Hallad250842017-03-10 18:35:38 -08005385}
5386
Jesse Hall9492f992017-08-28 12:10:06 -07005387@extension("VK_KHR_external_memory_capabilities") // 72
5388class VkPhysicalDeviceExternalBufferInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005389 VkStructureType sType
5390 const void* pNext
5391 VkBufferCreateFlags flags
5392 VkBufferUsageFlags usage
Jesse Hall9492f992017-08-28 12:10:06 -07005393 VkExternalMemoryHandleTypeFlagBitsKHR handleType
Jesse Hallad250842017-03-10 18:35:38 -08005394}
5395
Jesse Hall9492f992017-08-28 12:10:06 -07005396@extension("VK_KHR_external_memory_capabilities") // 72
5397class VkExternalBufferPropertiesKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005398 VkStructureType sType
5399 void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005400 VkExternalMemoryPropertiesKHR externalMemoryProperties
Jesse Hallad250842017-03-10 18:35:38 -08005401}
5402
Jesse Hall9492f992017-08-28 12:10:06 -07005403@extension("VK_KHR_external_memory_capabilities") // 72
5404class VkPhysicalDeviceIDPropertiesKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005405 VkStructureType sType
5406 void* pNext
5407 u8[VK_UUID_SIZE] deviceUUID
5408 u8[VK_UUID_SIZE] driverUUID
Daniel Koch09f7bf92017-10-05 00:26:58 -04005409 u8[VK_LUID_SIZE] deviceLUID
Jesse Hall9492f992017-08-28 12:10:06 -07005410 u32 deviceNodeMask
Jesse Hallad250842017-03-10 18:35:38 -08005411 VkBool32 deviceLUIDValid
5412}
5413
Jesse Hall9492f992017-08-28 12:10:06 -07005414@extension("VK_KHR_external_memory") // 73
5415class VkExternalMemoryImageCreateInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005416 VkStructureType sType
5417 const void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005418 VkExternalMemoryHandleTypeFlagsKHR handleTypes
Jesse Hallad250842017-03-10 18:35:38 -08005419}
5420
Jesse Hall9492f992017-08-28 12:10:06 -07005421@extension("VK_KHR_external_memory") // 73
5422class VkExternalMemoryBufferCreateInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005423 VkStructureType sType
5424 const void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005425 VkExternalMemoryHandleTypeFlagsKHR handleTypes
Jesse Hallad250842017-03-10 18:35:38 -08005426}
5427
Jesse Hall9492f992017-08-28 12:10:06 -07005428@extension("VK_KHR_external_memory") // 73
5429class VkExportMemoryAllocateInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005430 VkStructureType sType
5431 const void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005432 VkExternalMemoryHandleTypeFlagsKHR handleTypes
Jesse Hallad250842017-03-10 18:35:38 -08005433}
5434
Jesse Hall9492f992017-08-28 12:10:06 -07005435@extension("VK_KHR_external_memory_win32") // 74
5436class VkImportMemoryWin32HandleInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005437 VkStructureType sType
5438 const void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005439 VkExternalMemoryHandleTypeFlagBitsKHR handleType
Jesse Hallad250842017-03-10 18:35:38 -08005440 platform.HANDLE handle
Jesse Hall9492f992017-08-28 12:10:06 -07005441 platform.LPCWSTR name
Jesse Hallad250842017-03-10 18:35:38 -08005442}
5443
Jesse Hall9492f992017-08-28 12:10:06 -07005444@extension("VK_KHR_external_memory_win32") // 74
5445class VkExportMemoryWin32HandleInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005446 VkStructureType sType
5447 const void* pNext
5448 const platform.SECURITY_ATTRIBUTES* pAttributes
5449 platform.DWORD dwAccess
5450 platform.LPCWSTR name
5451}
5452
Jesse Hall9492f992017-08-28 12:10:06 -07005453@extension("VK_KHR_external_memory_win32") // 74
5454class VkMemoryWin32HandlePropertiesKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005455 VkStructureType sType
5456 void* pNext
5457 u32 memoryTypeBits
5458}
5459
Jesse Hall9492f992017-08-28 12:10:06 -07005460@extension("VK_KHR_external_memory_win32") // 74
5461class VkMemoryGetWin32HandleInfoKHR {
5462 VkStructureType sType
5463 void* pNext
5464 VkDeviceMemory memory
5465 VkExternalMemoryHandleTypeFlagBitsKHR handleType
5466}
5467
5468@extension("VK_KHR_external_memory_fd") // 75
5469class VkImportMemoryFdInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005470 VkStructureType sType
5471 const void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005472 VkExternalMemoryHandleTypeFlagBitsKHR handleType
Jesse Hallad250842017-03-10 18:35:38 -08005473 int fd
5474}
5475
Jesse Hall9492f992017-08-28 12:10:06 -07005476@extension("VK_KHR_external_memory_fd") // 75
5477class VkMemoryFdPropertiesKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005478 VkStructureType sType
5479 void* pNext
5480 u32 memoryTypeBits
5481}
5482
Jesse Hall9492f992017-08-28 12:10:06 -07005483@extension("VK_KHR_external_memory_fd") // 75
5484class VkMemoryGetFdInfoKHR {
5485 VkStructureType sType
5486 void* pNext
5487 VkDeviceMemory memory
5488 VkExternalMemoryHandleTypeFlagBitsKHR handleType
5489}
5490
5491@extension("VK_KHR_win32_keyed_mutex") // 76
5492class VkWin32KeyedMutexAcquireReleaseInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005493 VkStructureType sType
5494 const void* pNext
5495 u32 acquireCount
5496 const VkDeviceMemory* pAcquireSyncs
5497 const u64* pAcquireKeys
5498 const u32* pAcquireTimeouts
5499 u32 releaseCount
5500 const VkDeviceMemory* pReleaseSyncs
5501 const u64* pReleaseKeys
5502}
5503
Jesse Hall9492f992017-08-28 12:10:06 -07005504@extension("VK_KHR_external_semaphore_capabilities") // 77
5505class VkPhysicalDeviceExternalSemaphoreInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005506 VkStructureType sType
5507 const void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005508 VkExternalSemaphoreHandleTypeFlagBitsKHR handleType
Jesse Hallad250842017-03-10 18:35:38 -08005509}
5510
Jesse Hall9492f992017-08-28 12:10:06 -07005511@extension("VK_KHR_external_semaphore_capabilities") // 77
5512class VkExternalSemaphorePropertiesKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005513 VkStructureType sType
5514 void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005515 VkExternalSemaphoreHandleTypeFlagsKHR exportFromImportedHandleTypes
5516 VkExternalSemaphoreHandleTypeFlagsKHR compatibleHandleTypes
5517 VkExternalSemaphoreFeatureFlagsKHR externalSemaphoreFeatures
Jesse Hallad250842017-03-10 18:35:38 -08005518}
5519
Jesse Hall9492f992017-08-28 12:10:06 -07005520@extension("VK_KHR_external_semaphore") // 78
5521class VkExportSemaphoreCreateInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005522 VkStructureType sType
5523 const void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005524 VkExternalSemaphoreHandleTypeFlagsKHR handleTypes
Jesse Hallad250842017-03-10 18:35:38 -08005525}
5526
Jesse Hall9492f992017-08-28 12:10:06 -07005527@extension("VK_KHR_external_semaphore_win32") // 79
5528class VkImportSemaphoreWin32HandleInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005529 VkStructureType sType
5530 const void* pNext
5531 VkSemaphore semaphore
Jesse Hall9492f992017-08-28 12:10:06 -07005532 VkSemaphoreImportFlagsKHR flags
5533 VkExternalSemaphoreHandleTypeFlagsKHR handleType
Jesse Hallad250842017-03-10 18:35:38 -08005534 platform.HANDLE handle
Jesse Hall9492f992017-08-28 12:10:06 -07005535 platform.LPCWSTR name
Jesse Hallad250842017-03-10 18:35:38 -08005536}
5537
Jesse Hall9492f992017-08-28 12:10:06 -07005538@extension("VK_KHR_external_semaphore_win32") // 79
5539class VkExportSemaphoreWin32HandleInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005540 VkStructureType sType
5541 const void* pNext
5542 const platform.SECURITY_ATTRIBUTES* pAttributes
5543 platform.DWORD dwAccess
5544 platform.LPCWSTR name
5545}
5546
Jesse Hall9492f992017-08-28 12:10:06 -07005547@extension("VK_KHR_external_semaphore_win32") // 79
5548class VkD3D12FenceSubmitInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005549 VkStructureType sType
5550 const void* pNext
5551 u32 waitSemaphoreValuesCount
5552 const u64* pWaitSemaphoreValues
5553 u32 signalSemaphoreValuesCount
5554 const u64* pSignalSemaphoreValues
5555}
5556
Jesse Hall9492f992017-08-28 12:10:06 -07005557@extension("VK_KHR_external_semaphore_win32") // 79
5558class VkSemaphoreGetWin32HandleInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005559 VkStructureType sType
5560 const void* pNext
5561 VkSemaphore semaphore
Jesse Hall9492f992017-08-28 12:10:06 -07005562 VkExternalSemaphoreHandleTypeFlagBitsKHR handleType
5563}
5564
5565@extension("VK_KHR_external_semaphore_fd") // 80
5566class VkImportSemaphoreFdInfoKHR {
5567 VkStructureType sType
5568 const void* pNext
5569 VkSemaphore semaphore
5570 VkSemaphoreImportFlagsKHR flags
5571 VkExternalSemaphoreHandleTypeFlagBitsKHR handleType
Jesse Hallad250842017-03-10 18:35:38 -08005572 s32 fd
5573}
5574
Jesse Hall9492f992017-08-28 12:10:06 -07005575@extension("VK_KHR_external_semaphore_fd") // 80
5576class VkSemaphoreGetFdInfoKHR {
5577 VkStructureType sType
5578 const void* pNext
5579 VkSemaphore semaphore
5580 VkExternalSemaphoreHandleTypeFlagBitsKHR handleType
5581}
5582
Jesse Hallad250842017-03-10 18:35:38 -08005583@extension("VK_KHR_push_descriptor") // 81
5584class VkPhysicalDevicePushDescriptorPropertiesKHR {
5585 VkStructureType sType
5586 void* pNext
5587 u32 maxPushDescriptors
5588}
5589
Jesse Halla13a3cf2018-07-09 15:51:52 -07005590@extension("VK_EXT_conditional_rendering") // 82
5591class VkConditionalRenderingBeginInfoEXT {
5592 VkStructureType sType
5593 const void* pNext
5594 VkBuffer buffer
5595 VkDeviceSize offset
5596 VkConditionalRenderingFlagsEXT flags
5597}
5598
5599@extension("VK_EXT_conditional_rendering") // 82
5600class VkPhysicalDeviceConditionalRenderingFeaturesEXT {
5601 VkStructureType sType
5602 void* pNext
5603 VkBool32 conditionalRendering
5604 VkBool32 inheritedConditionalRendering
5605}
5606
5607@extension("VK_EXT_conditional_rendering") // 82
5608class VkCommandBufferInheritanceConditionalRenderingInfoEXT {
5609 VkStructureType sType
5610 const void* pNext
5611 VkBool32 conditionalRenderingEnable
5612}
5613
Jesse Hall9492f992017-08-28 12:10:06 -07005614@extension("VK_KHR_16bit_storage") // 84
5615class VkPhysicalDevice16BitStorageFeaturesKHR {
5616 VkStructureType sType
5617 void* pNext
5618 VkBool32 storageBuffer16BitAccess
5619 VkBool32 uniformAndStorageBuffer16BitAccess
5620 VkBool32 storagePushConstant16
5621 VkBool32 storageInputOutput16
5622}
5623
Jesse Hallad250842017-03-10 18:35:38 -08005624@extension("VK_KHR_incremental_present") // 85
5625class VkRectLayerKHR {
5626 VkOffset2D offset
5627 VkExtent2D extent
5628 u32 layer
5629}
5630
5631@extension("VK_KHR_incremental_present") // 85
5632class VkPresentRegionKHR {
5633 u32 rectangleCount
5634 const VkRectLayerKHR* pRectangles
5635}
5636
5637@extension("VK_KHR_incremental_present") // 85
5638class VkPresentRegionsKHR {
5639 VkStructureType sType
5640 const void* pNext
5641 u32 swapchainCount
5642 const VkPresentRegionKHR* pRegions
5643}
5644
5645@extension("VK_KHR_descriptor_update_template") // 86
5646class VkDescriptorUpdateTemplateEntryKHR {
5647 u32 dstBinding
5648 u32 dstArrayElement
5649 u32 descriptorCount
5650 VkDescriptorType descriptorType
5651 platform.size_t offset
5652 platform.size_t stride
5653}
5654
5655@extension("VK_KHR_descriptor_update_template") // 86
5656class VkDescriptorUpdateTemplateCreateInfoKHR {
5657 VkStructureType sType
5658 void* pNext
5659 VkDescriptorUpdateTemplateCreateFlagsKHR flags
5660 u32 descriptorUpdateEntryCount
5661 const VkDescriptorUpdateTemplateEntryKHR* pDescriptorUpdateEntries
5662 VkDescriptorUpdateTemplateTypeKHR templateType
5663 VkDescriptorSetLayout descriptorSetLayout
5664 VkPipelineBindPoint pipelineBindPoint
5665 VkPipelineLayout pipelineLayout
5666 u32 set
5667}
5668
5669@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13005670class VkDeviceGeneratedCommandsFeaturesNVX {
5671 VkStructureType sType
5672 const void* pNext
5673 VkBool32 computeBindingPointSupport
5674}
5675
Jesse Hallad250842017-03-10 18:35:38 -08005676@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13005677class VkDeviceGeneratedCommandsLimitsNVX {
5678 VkStructureType sType
5679 const void* pNext
5680 u32 maxIndirectCommandsLayoutTokenCount
5681 u32 maxObjectEntryCounts
5682 u32 minSequenceCountBufferOffsetAlignment
5683 u32 minSequenceIndexBufferOffsetAlignment
5684 u32 minCommandsTokenBufferOffsetAlignment
5685}
5686
Jesse Hallad250842017-03-10 18:35:38 -08005687@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13005688class VkIndirectCommandsTokenNVX {
5689 VkIndirectCommandsTokenTypeNVX tokenType
5690 VkBuffer buffer
5691 VkDeviceSize offset
5692}
5693
Jesse Hallad250842017-03-10 18:35:38 -08005694@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13005695class VkIndirectCommandsLayoutTokenNVX {
5696 VkIndirectCommandsTokenTypeNVX tokenType
5697 u32 bindingUnit
5698 u32 dynamicCount
5699 u32 divisor
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 VkIndirectCommandsLayoutCreateInfoNVX {
5704 VkStructureType sType
5705 const void* pNext
5706 VkPipelineBindPoint pipelineBindPoint
5707 VkIndirectCommandsLayoutUsageFlagsNVX flags
5708 u32 tokenCount
5709 const VkIndirectCommandsLayoutTokenNVX* pTokens
5710}
5711
Jesse Hallad250842017-03-10 18:35:38 -08005712@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13005713class VkCmdProcessCommandsInfoNVX {
5714 VkStructureType sType
5715 const void* pNext
5716 VkObjectTableNVX objectTable
5717 VkIndirectCommandsLayoutNVX indirectCommandsLayout
5718 u32 indirectCommandsTokenCount
5719 const VkIndirectCommandsTokenNVX* pIndirectCommandsTokens
5720 u32 maxSequencesCount
5721 VkCommandBuffer targetCommandBuffer
5722 VkBuffer sequencesCountBuffer
5723 VkDeviceSize sequencesCountOffset
5724 VkBuffer sequencesIndexBuffer
5725 VkDeviceSize sequencesIndexOffset
5726}
5727
Jesse Hallad250842017-03-10 18:35:38 -08005728@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13005729class VkCmdReserveSpaceForCommandsInfoNVX {
5730 VkStructureType sType
5731 const void* pNext
5732 VkObjectTableNVX objectTable
5733 VkIndirectCommandsLayoutNVX indirectCommandsLayout
5734 u32 maxSequencesCount
5735}
5736
Jesse Hallad250842017-03-10 18:35:38 -08005737@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13005738class VkObjectTableCreateInfoNVX {
5739 VkStructureType sType
5740 const void* pNext
5741 u32 objectCount
5742 const VkObjectEntryTypeNVX* pObjectEntryTypes
5743 const u32* pObjectEntryCounts
5744 const VkObjectEntryUsageFlagsNVX* pObjectEntryUsageFlags
5745 u32 maxUniformBuffersPerDescriptor
5746 u32 maxStorageBuffersPerDescriptor
5747 u32 maxStorageImagesPerDescriptor
5748 u32 maxSampledImagesPerDescriptor
5749 u32 maxPipelineLayouts
5750}
5751
Jesse Hallad250842017-03-10 18:35:38 -08005752@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13005753class VkObjectTableEntryNVX {
5754 VkObjectEntryTypeNVX type
5755 VkObjectEntryUsageFlagsNVX flags
5756}
5757
Jesse Hallad250842017-03-10 18:35:38 -08005758@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13005759class VkObjectTablePipelineEntryNVX {
5760 VkObjectEntryTypeNVX type
5761 VkObjectEntryUsageFlagsNVX flags
5762 VkPipeline pipeline
5763}
5764
Jesse Hallad250842017-03-10 18:35:38 -08005765@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13005766class VkObjectTableDescriptorSetEntryNVX {
5767 VkObjectEntryTypeNVX type
5768 VkObjectEntryUsageFlagsNVX flags
5769 VkPipelineLayout pipelineLayout
5770 VkDescriptorSet descriptorSet
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 VkObjectTableVertexBufferEntryNVX {
5775 VkObjectEntryTypeNVX type
5776 VkObjectEntryUsageFlagsNVX flags
5777 VkBuffer buffer
5778}
5779
Jesse Hallad250842017-03-10 18:35:38 -08005780@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13005781class VkObjectTableIndexBufferEntryNVX {
5782 VkObjectEntryTypeNVX type
5783 VkObjectEntryUsageFlagsNVX flags
5784 VkBuffer buffer
Jesse Hall77ad05b2017-03-10 22:02:20 -08005785 VkIndexType indexType
Chris Forbes289cb792016-12-30 15:03:55 +13005786}
5787
Jesse Hallad250842017-03-10 18:35:38 -08005788@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13005789class VkObjectTablePushConstantEntryNVX {
5790 VkObjectEntryTypeNVX type
5791 VkObjectEntryUsageFlagsNVX flags
5792 VkPipelineLayout pipelineLayout
5793 VkShaderStageFlags stageFlags
5794}
5795
Jesse Hallad250842017-03-10 18:35:38 -08005796@extension("VK_NV_clip_space_w_scaling") // 88
5797class VkViewportWScalingNV {
5798 f32 xcoeff
5799 f32 ycoeff
Jesse Hall889cd9a2017-02-25 22:12:23 -08005800}
5801
Jesse Hallad250842017-03-10 18:35:38 -08005802@extension("VK_NV_clip_space_w_scaling") // 88
5803class VkPipelineViewportWScalingStateCreateInfoNV {
Jesse Hall889cd9a2017-02-25 22:12:23 -08005804 VkStructureType sType
5805 const void* pNext
Jesse Hallad250842017-03-10 18:35:38 -08005806 VkBool32 viewportWScalingEnable
5807 u32 viewportCount
5808 const VkViewportWScalingNV* pViewportWScalings
Jesse Hall889cd9a2017-02-25 22:12:23 -08005809}
5810
Jesse Hallad250842017-03-10 18:35:38 -08005811@extension("VK_EXT_display_surface_counter") // 91
Jesse Hall77ad05b2017-03-10 22:02:20 -08005812class VkSurfaceCapabilities2EXT {
5813 VkStructureType sType
5814 void* pNext
5815 u32 minImageCount
5816 u32 maxImageCount
5817 VkExtent2D currentExtent
5818 VkExtent2D minImageExtent
5819 VkExtent2D maxImageExtent
5820 u32 maxImageArrayLayers
5821 VkSurfaceTransformFlagsKHR supportedTransforms
5822 VkSurfaceTransformFlagBitsKHR currentTransform
5823 VkCompositeAlphaFlagsKHR supportedCompositeAlpha
5824 VkImageUsageFlags supportedUsageFlags
5825 VkSurfaceCounterFlagsEXT supportedSurfaceCounters
5826}
5827
Jesse Hallad250842017-03-10 18:35:38 -08005828@extension("VK_EXT_display_control") // 92
Jesse Hall77ad05b2017-03-10 22:02:20 -08005829class VkDisplayPowerInfoEXT {
5830 VkStructureType sType
5831 const void* pNext
5832 VkDisplayPowerStateEXT powerState
5833}
5834
Jesse Hallad250842017-03-10 18:35:38 -08005835@extension("VK_EXT_display_control") // 92
Jesse Hall77ad05b2017-03-10 22:02:20 -08005836class VkDeviceEventInfoEXT {
5837 VkStructureType sType
5838 const void* pNext
5839 VkDeviceEventTypeEXT deviceEvent
5840}
5841
Jesse Hallad250842017-03-10 18:35:38 -08005842@extension("VK_EXT_display_control") // 92
Jesse Hall77ad05b2017-03-10 22:02:20 -08005843class VkDisplayEventInfoEXT {
5844 VkStructureType sType
5845 const void* pNext
5846 VkDisplayEventTypeEXT displayEvent
5847}
5848
Jesse Hallad250842017-03-10 18:35:38 -08005849@extension("VK_EXT_display_control") // 92
Jesse Hall77ad05b2017-03-10 22:02:20 -08005850class VkSwapchainCounterCreateInfoEXT {
5851 VkStructureType sType
5852 const void* pNext
5853 VkSurfaceCounterFlagsEXT surfaceCounters
5854}
5855
Jesse Hallad250842017-03-10 18:35:38 -08005856@extension("VK_GOOGLE_display_timing") // 93
5857class VkRefreshCycleDurationGOOGLE {
Jesse Hallfdc8ab32017-03-10 21:01:57 -08005858 u64 refreshDuration
Jesse Hallad250842017-03-10 18:35:38 -08005859}
5860
5861@extension("VK_GOOGLE_display_timing") // 93
5862class VkPastPresentationTimingGOOGLE {
Jesse Hallfdc8ab32017-03-10 21:01:57 -08005863 u32 presentID
5864 u64 desiredPresentTime
5865 u64 actualPresentTime
5866 u64 earliestPresentTime
5867 u64 presentMargin
Jesse Hallad250842017-03-10 18:35:38 -08005868}
5869
5870@extension("VK_GOOGLE_display_timing") // 93
5871class VkPresentTimeGOOGLE {
Jesse Hallfdc8ab32017-03-10 21:01:57 -08005872 u32 presentID
5873 u64 desiredPresentTime
Jesse Hallad250842017-03-10 18:35:38 -08005874}
5875
5876@extension("VK_GOOGLE_display_timing") // 93
5877class VkPresentTimesInfoGOOGLE {
Jesse Hallfdc8ab32017-03-10 21:01:57 -08005878 VkStructureType sType
5879 const void* pNext
5880 u32 swapchainCount
5881 const VkPresentTimeGOOGLE* pTimes
Jesse Hallad250842017-03-10 18:35:38 -08005882}
5883
5884@extension("VK_NVX_multiview_per_view_attributes") // 98
5885class VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX {
5886 VkStructureType sType
5887 void* pNext
5888 VkBool32 perViewPositionAllComponents
5889}
5890
5891@extension("VK_NV_viewport_swizzle") // 99
5892class VkViewportSwizzleNV {
5893 VkViewportCoordinateSwizzleNV x
5894 VkViewportCoordinateSwizzleNV y
5895 VkViewportCoordinateSwizzleNV z
5896 VkViewportCoordinateSwizzleNV w
5897}
5898
5899@extension("VK_NV_viewport_swizzle") // 99
5900class VkPipelineViewportSwizzleStateCreateInfoNV {
5901 VkStructureType sType
5902 const void* pNext
5903 VkPipelineViewportSwizzleStateCreateFlagsNV flags
5904 u32 viewportCount
5905 const VkViewportSwizzleNV* pViewportSwizzles
5906}
5907
5908@extension("VK_EXT_discard_rectangles") // 100
5909class VkPhysicalDeviceDiscardRectanglePropertiesEXT {
5910 VkStructureType sType
Jesse Hallf5ad48b2017-03-20 13:09:19 -07005911 void* pNext
Jesse Hallad250842017-03-10 18:35:38 -08005912 u32 maxDiscardRectangles
5913}
5914
5915@extension("VK_EXT_discard_rectangles") // 100
5916class VkPipelineDiscardRectangleStateCreateInfoEXT {
Jesse Hallfdc8ab32017-03-10 21:01:57 -08005917 VkStructureType sType
5918 const void* pNext
5919 VkPipelineDiscardRectangleStateCreateFlagsEXT flags
5920 VkDiscardRectangleModeEXT discardRectangleMode
5921 u32 discardRectangleCount
5922 const VkRect2D* pDiscardRectangles
Jesse Hallad250842017-03-10 18:35:38 -08005923}
5924
Jesse Hall8c954d32018-01-17 22:06:20 -08005925@extension("VK_EXT_conservative_rasterization") // 102
5926class VkPhysicalDeviceConservativeRasterizationPropertiesEXT {
5927 VkStructureType sType
5928 void* pNext
5929 f32 primitiveOverestimationSize
5930 f32 maxExtraPrimitiveOverestimationSize
5931 f32 extraPrimitiveOverestimationSizeGranularity
5932 VkBool32 primitiveUnderestimation
5933 VkBool32 conservativePointAndLineRasterization
5934 VkBool32 degenerateTrianglesRasterized
5935 VkBool32 degenerateLinesRasterized
5936 VkBool32 fullyCoveredFragmentShaderInputVariable
5937 VkBool32 conservativeRasterizationPostDepthCoverage
5938}
5939
5940@extension("VK_EXT_conservative_rasterization") // 102
5941class VkPipelineRasterizationConservativeStateCreateInfoEXT {
5942 VkStructureType sType
5943 const void* pNext
5944 VkPipelineRasterizationConservativeStateCreateFlagsEXT flags
5945 VkConservativeRasterizationModeEXT conservativeRasterizationMode
5946 f32 extraPrimitiveOverestimationSize
5947}
5948
Jesse Hallad250842017-03-10 18:35:38 -08005949@extension("VK_EXT_hdr_metadata") // 106
Courtney Goeltzenleuchterd634c482017-01-05 15:55:31 -07005950class VkXYColorEXT {
Jesse Hallfdc8ab32017-03-10 21:01:57 -08005951 f32 x
5952 f32 y
Courtney Goeltzenleuchterd634c482017-01-05 15:55:31 -07005953}
5954
Jesse Hallad250842017-03-10 18:35:38 -08005955@extension("VK_EXT_hdr_metadata") // 106
Courtney Goeltzenleuchterd634c482017-01-05 15:55:31 -07005956class VkHdrMetadataEXT {
Jesse Hallfdc8ab32017-03-10 21:01:57 -08005957 VkStructureType sType
5958 const void* pNext
5959 VkXYColorEXT displayPrimaryRed
5960 VkXYColorEXT displayPrimaryGreen
5961 VkXYColorEXT displayPrimaryBlue
5962 VkXYColorEXT whitePoint
5963 f32 maxLuminance
5964 f32 minLuminance
5965 f32 maxContentLightLevel
5966 f32 maxFrameAverageLightLevel
Courtney Goeltzenleuchterd634c482017-01-05 15:55:31 -07005967}
5968
Jesse Halla13a3cf2018-07-09 15:51:52 -07005969@extension("VK_KHR_create_renderpass2") // 110
5970class VkAttachmentDescription2KHR {
5971 VkStructureType sType
5972 const void* pNext
5973 VkAttachmentDescriptionFlags flags
5974 VkFormat format
5975 VkSampleCountFlagBits samples
5976 VkAttachmentLoadOp loadOp
5977 VkAttachmentStoreOp storeOp
5978 VkAttachmentLoadOp stencilLoadOp
5979 VkAttachmentStoreOp stencilStoreOp
5980 VkImageLayout initialLayout
5981 VkImageLayout finalLayout
5982}
5983
5984@extension("VK_KHR_create_renderpass2") // 110
5985class VkAttachmentReference2KHR {
5986 VkStructureType sType
5987 const void* pNext
5988 u32 attachment
5989 VkImageLayout layout
5990 VkImageAspectFlags aspectMask
5991}
5992
5993@extension("VK_KHR_create_renderpass2") // 110
5994class VkSubpassDescription2KHR {
5995 VkStructureType sType
5996 const void* pNext
5997 VkSubpassDescriptionFlags flags
5998 VkPipelineBindPoint pipelineBindPoint
5999 u32 viewMask
6000 u32 inputAttachmentCount
6001 const VkAttachmentReference2KHR* pInputAttachments
6002 u32 colorAttachmentCount
6003 const VkAttachmentReference2KHR* pColorAttachments
6004 const VkAttachmentReference2KHR* pResolveAttachments
6005 const VkAttachmentReference2KHR* pDepthStencilAttachment
6006 u32 preserveAttachmentCount
6007 const u32* pPreserveAttachments
6008}
6009
6010@extension("VK_KHR_create_renderpass2") // 110
6011class VkSubpassDependency2KHR {
6012 VkStructureType sType
6013 const void* pNext
6014 u32 srcSubpass
6015 u32 dstSubpass
6016 VkPipelineStageFlags srcStageMask
6017 VkPipelineStageFlags dstStageMask
6018 VkAccessFlags srcAccessMask
6019 VkAccessFlags dstAccessMask
6020 VkDependencyFlags dependencyFlags
6021 s32 viewOffset
6022}
6023
6024@extension("VK_KHR_create_renderpass2") // 110
6025class VkRenderPassCreateInfo2KHR {
6026 VkStructureType sType
6027 const void* pNext
6028 VkRenderPassCreateFlags flags
6029 u32 attachmentCount
6030 const VkAttachmentDescription2KHR* pAttachments
6031 u32 subpassCount
6032 const VkSubpassDescription2KHR* pSubpasses
6033 u32 dependencyCount
6034 const VkSubpassDependency2KHR* pDependencies
6035 u32 correlatedViewMaskCount
6036 const u32* pCorrelatedViewMasks
6037}
6038
6039@extension("VK_KHR_create_renderpass2") // 110
6040class VkSubpassBeginInfoKHR {
6041 VkStructureType sType
6042 const void* pNext
6043 VkSubpassContents contents
6044}
6045
6046@extension("VK_KHR_create_renderpass2") // 110
6047class VkSubpassEndInfoKHR {
6048 VkStructureType sType
6049 const void* pNext
6050}
6051
Jesse Hall05556b12017-05-18 17:40:25 -07006052@extension("VK_KHR_shared_presentable_image") // 112
Chris Forbese2d3ee12017-03-16 16:10:15 +13006053class VkSharedPresentSurfaceCapabilitiesKHR {
6054 VkStructureType sType
6055 const void* pNext
6056 VkImageUsageFlags sharedPresentSupportedUsageFlags
6057}
6058
Jesse Hall9492f992017-08-28 12:10:06 -07006059@extension("VK_KHR_external_fence_capabilities") // 113
6060class VkPhysicalDeviceExternalFenceInfoKHR {
6061 VkStructureType sType
6062 const void* pNext
6063 VkExternalFenceHandleTypeFlagBitsKHR handleType
6064}
6065
6066@extension("VK_KHR_external_fence_capabilities") // 113
6067class VkExternalFencePropertiesKHR {
6068 VkStructureType sType
6069 void* pNext
6070 VkExternalFenceHandleTypeFlagsKHR exportFromImportedHandleTypes
6071 VkExternalFenceHandleTypeFlagsKHR compatibleHandleTypes
6072 VkExternalFenceFeatureFlagsKHR externalFenceFeatures
6073}
6074
6075@extension("VK_KHR_external_fence") // 114
6076class VkExportFenceCreateInfoKHR {
6077 VkStructureType sType
6078 const void* pNext
6079 VkExternalFenceHandleTypeFlagsKHR handleTypes
6080}
6081
6082@extension("VK_KHR_external_fence_win32") // 115
6083class VkImportFenceWin32HandleInfoKHR {
6084 VkStructureType sType
6085 const void* pNext
6086 VkFence fence
6087 VkFenceImportFlagsKHR flags
6088 VkExternalFenceHandleTypeFlagBitsKHR handleType
6089 platform.HANDLE handle
6090 platform.LPCWSTR name
6091}
6092
6093@extension("VK_KHR_external_fence_win32") // 115
6094class VkExportFenceWin32HandleInfoKHR {
6095 VkStructureType sType
6096 const void* pNext
6097 const platform.SECURITY_ATTRIBUTES* pAttributes
6098 platform.DWORD dwAccess
6099 platform.LPCWSTR name
6100}
6101
6102@extension("VK_KHR_external_fence_win32") // 115
6103class VkFenceGetWin32HandleInfoKHR {
6104 VkStructureType sType
6105 const void* pNext
6106 VkFence fence
6107 VkExternalFenceHandleTypeFlagBitsKHR handleType
6108}
6109
6110@extension("VK_KHR_external_fence_fd") // 116
6111class VkImportFenceFdInfoKHR {
6112 VkStructureType sType
6113 const void* pNext
6114 VkFence fence
6115 VkFenceImportFlagsKHR flags
6116 VkExternalFenceHandleTypeFlagBitsKHR handleType
6117 int fd
6118}
6119
6120@extension("VK_KHR_external_fence_fd") // 116
6121class VkFenceGetFdInfoKHR {
6122 VkStructureType sType
6123 const void* pNext
6124 VkFence fence
6125 VkExternalFenceHandleTypeFlagBitsKHR handleType
6126}
6127
Jesse Hall076f95d2017-09-20 11:34:47 -07006128@extension("VK_KHR_maintenance2") // 118
6129class VkPhysicalDevicePointClippingPropertiesKHR {
6130 VkStructureType sType
6131 void* pNext
6132 VkPointClippingBehaviorKHR pointClippingBehavior
6133}
6134
6135@extension("VK_KHR_maintenance2") // 118
6136class VkInputAttachmentAspectReferenceKHR {
6137 u32 subpass
6138 u32 inputAttachmentIndex
6139 VkImageAspectFlags aspectMask
6140}
6141
6142@extension("VK_KHR_maintenance2") // 118
6143class VkRenderPassInputAttachmentAspectCreateInfoKHR {
6144 VkStructureType sType
6145 const void* pNext
6146 u32 aspectReferenceCount
6147 const VkInputAttachmentAspectReferenceKHR* pAspectReferences
6148}
6149
6150@extension("VK_KHR_maintenance2") // 118
6151class VkImageViewUsageCreateInfoKHR {
6152 VkStructureType sType
6153 const void* pNext
6154 VkImageUsageFlags usage
6155}
6156
6157@extension("VK_KHR_maintenance2") // 118
6158class VkPipelineTessellationDomainOriginStateCreateInfoKHR {
6159 VkStructureType sType
6160 const void* pNext
6161 VkTessellationDomainOriginKHR domainOrigin
6162}
6163
Jesse Hall05556b12017-05-18 17:40:25 -07006164@extension("VK_KHR_get_surface_capabilities2") // 120
Chris Forbese2d3ee12017-03-16 16:10:15 +13006165class VkPhysicalDeviceSurfaceInfo2KHR {
6166 VkStructureType sType
6167 const void* pNext
6168 VkSurfaceKHR surface
6169}
6170
Jesse Hall05556b12017-05-18 17:40:25 -07006171@extension("VK_KHR_get_surface_capabilities2") // 120
Chris Forbese2d3ee12017-03-16 16:10:15 +13006172class VkSurfaceCapabilities2KHR {
6173 VkStructureType sType
6174 void* pNext
6175 VkSurfaceCapabilitiesKHR surfaceCapabilities
6176}
6177
Jesse Hall05556b12017-05-18 17:40:25 -07006178@extension("VK_KHR_get_surface_capabilities2") // 120
Chris Forbese2d3ee12017-03-16 16:10:15 +13006179class VkSurfaceFormat2KHR {
6180 VkStructureType sType
6181 void* pNext
6182 VkSurfaceFormatKHR surfaceFormat
6183}
6184
Jesse Hall9492f992017-08-28 12:10:06 -07006185@extension("VK_KHR_variable_pointers") // 121
6186class VkPhysicalDeviceVariablePointerFeaturesKHR {
6187 VkStructureType sType
6188 void* pNext
6189 VkBool32 variablePointersStorageBuffer
6190 VkBool32 variablePointers
6191}
6192
Jesse Hall54f8d132018-04-18 08:16:59 -07006193@extension("VK_KHR_display_properties2") // 122
6194class VkDisplayProperties2KHR {
6195 VkStructureType sType
6196 void* pNext
6197 VkDisplayPropertiesKHR displayProperties
6198}
6199
6200@extension("VK_KHR_display_properties2") // 122
6201class VkDisplayPlaneProperties2KHR {
6202 VkStructureType sType
6203 void* pNext
6204 VkDisplayPlanePropertiesKHR displayPlaneProperties
6205}
6206
6207@extension("VK_KHR_display_properties2") // 122
6208class VkDisplayModeProperties2KHR {
6209 VkStructureType sType
6210 void* pNext
6211 VkDisplayModePropertiesKHR displayModeProperties
6212}
6213
6214@extension("VK_KHR_display_properties2") // 122
6215class VkDisplayPlaneInfo2KHR {
6216 VkStructureType sType
6217 const void* pNext
6218 VkDisplayModeKHR mode
6219 u32 planeIndex
6220}
6221
6222@extension("VK_KHR_display_properties2") // 122
6223class VkDisplayPlaneCapabilities2KHR {
6224 VkStructureType sType
6225 void* pNext
6226 VkDisplayPlaneCapabilitiesKHR capabilities
6227}
6228
Jesse Hallad250842017-03-10 18:35:38 -08006229@extension("VK_MVK_ios_surface") // 123
6230class VkIOSSurfaceCreateInfoMVK {
6231 VkStructureType sType
6232 const void* pNext
6233 VkIOSSurfaceCreateFlagsMVK flags
6234 const void* pView
6235}
6236
6237@extension("VK_MVK_macos_surface") // 124
6238class VkMacOSSurfaceCreateInfoMVK {
6239 VkStructureType sType
6240 const void* pNext
6241 VkMacOSSurfaceCreateFlagsMVK flags
6242 const void* pView
6243}
6244
Jesse Hall9492f992017-08-28 12:10:06 -07006245@extension("VK_KHR_dedicated_allocation") // 128
6246class VkMemoryDedicatedRequirementsKHR {
6247 VkStructureType sType
6248 void* pNext
6249 VkBool32 prefersDedicatedAllocation
6250 VkBool32 requiresDedicatedAllocation
6251}
6252
6253@extension("VK_KHR_dedicated_allocation") // 128
6254class VkMemoryDedicatedAllocateInfoKHR {
6255 VkStructureType sType
6256 const void* pNext
6257 VkImage image
6258 VkBuffer buffer
6259}
6260
Jesse Hall8c954d32018-01-17 22:06:20 -08006261@extension("VK_EXT_debug_utils") // 129
6262class VkDebugUtilsObjectNameInfoEXT {
6263 VkStructureType sType
6264 const void* pNext
6265 VkObjectType objectType
6266 u64 objectHandle
6267 const char* pObjectName
6268}
Jesse Hall72e6a132018-04-06 13:00:44 -07006269
Jesse Hall8c954d32018-01-17 22:06:20 -08006270@extension("VK_EXT_debug_utils") // 129
6271class VkDebugUtilsObjectTagInfoEXT {
6272 VkStructureType sType
6273 const void* pNext
6274 VkObjectType objectType
6275 u64 objectHandle
6276 u64 tagName
6277 platform.size_t tagSize
6278 const void* pTag
6279}
Jesse Hall72e6a132018-04-06 13:00:44 -07006280
Jesse Hall8c954d32018-01-17 22:06:20 -08006281@extension("VK_EXT_debug_utils") // 129
6282class VkDebugUtilsLabelEXT {
6283 VkStructureType sType
6284 const void* pNext
6285 const char* pLabelName
6286 f32[4] color
6287}
6288
6289@extension("VK_EXT_debug_utils") // 129
6290class VkDebugUtilsMessengerCallbackDataEXT {
6291 VkStructureType sType
6292 const void* pNext
6293 VkDebugUtilsMessengerCallbackDataFlagsEXT flags
6294 const char* pMessageIdName
6295 s32 messageIdNumber
6296 const char* pMessage
6297 u32 queueLabelCount
6298 VkDebugUtilsLabelEXT* pQueueLabels
6299 u32 cmdBufLabelCount
6300 VkDebugUtilsLabelEXT* pCmdBufLabels
6301 u32 objectCount
6302 VkDebugUtilsObjectNameInfoEXT* pObjects
6303}
6304
6305@extension("VK_EXT_debug_utils") // 129
6306class VkDebugUtilsMessengerCreateInfoEXT {
6307 VkStructureType sType
6308 const void* pNext
6309 VkDebugUtilsMessengerCreateFlagsEXT flags
6310 VkDebugUtilsMessageSeverityFlagsEXT messageSeverity
6311 VkDebugUtilsMessageTypeFlagsEXT messageType
6312 PFN_vkDebugUtilsMessengerCallbackEXT pfnUserCallback
6313 void* pUserData
6314}
6315
Jesse Hall36215a92018-01-18 15:04:37 -08006316@extension("VK_ANDROID_external_memory_android_hardware_buffer") // 131
6317class VkAndroidHardwareBufferUsageANDROID {
6318 VkStructureType sType
6319 void* pNext
6320 u64 androidHardwareBufferUsage
6321}
6322
6323@extension("VK_ANDROID_external_memory_android_hardware_buffer") // 130
6324class VkAndroidHardwareBufferPropertiesANDROID {
6325 VkStructureType sType
6326 void* pNext
6327 VkDeviceSize allocationSize
6328 u32 memoryTypeBits
6329}
6330
6331@extension("VK_ANDROID_external_memory_android_hardware_buffer") // 130
6332class VkAndroidHardwareBufferFormatPropertiesANDROID {
6333 VkStructureType sType
6334 void* pNext
6335 VkFormat format
6336 u64 externalFormat
6337 VkFormatFeatureFlags formatFeatures
6338 VkComponentMapping samplerYcbcrConversionComponents
6339 VkSamplerYcbcrModelConversion suggestedYcbcrModel
6340 VkSamplerYcbcrRange suggestedYcbcrRange
6341 VkChromaLocation suggestedXChromaOffset
6342 VkChromaLocation suggestedYChromaOffset
6343}
6344
6345@extension("VK_ANDROID_external_memory_android_hardware_buffer") // 130
6346class VkImportAndroidHardwareBufferInfoANDROID {
6347 VkStructureType sType
6348 const void* pNext
6349 platform.AHardwareBuffer* buffer
6350}
6351
6352@extension("VK_ANDROID_external_memory_android_hardware_buffer") // 130
6353class VkMemoryGetAndroidHardwareBufferInfoANDROID {
6354 VkStructureType sType
6355 const void* pNext
6356 VkDeviceMemory memory
6357}
6358
6359@extension("VK_ANDROID_external_memory_android_hardware_buffer") // 130
6360class VkExternalFormatANDROID {
6361 VkStructureType sType
6362 void* pNext
6363 u64 externalFormat
6364}
6365
Jesse Hall7ba0ac72017-07-07 17:13:23 -07006366@extension("VK_EXT_sampler_filter_minmax") // 131
6367class VkSamplerReductionModeCreateInfoEXT {
6368 VkStructureType sType
6369 const void* pNext
6370 VkSamplerReductionModeEXT reductionMode
6371}
6372
6373@extension("VK_EXT_sampler_filter_minmax") // 131
6374class VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT {
6375 VkStructureType sType
6376 void* pNext
6377 VkBool32 filterMinmaxSingleComponentFormats
6378 VkBool32 filterMinmaxImageComponentMapping
6379}
6380
Jesse Hall77726222017-09-19 14:49:27 -05006381@extension("VK_EXT_sample_locations") // 144
6382class VkSampleLocationEXT {
6383 f32 x
6384 f32 y
6385}
6386
6387@extension("VK_EXT_sample_locations") // 144
6388class VkSampleLocationsInfoEXT {
6389 VkStructureType sType
6390 const void* pNext
6391 VkSampleCountFlagBits sampleLocationsPerPixel
6392 VkExtent2D sampleLocationGridSize
6393 u32 sampleLocationsCount
6394 const VkSampleLocationEXT* pSampleLocations
6395}
6396
6397@extension("VK_EXT_sample_locations") // 144
6398class VkAttachmentSampleLocationsEXT {
6399 u32 attachmentIndex
6400 VkSampleLocationsInfoEXT sampleLocationsInfo
6401}
6402
6403@extension("VK_EXT_sample_locations") // 144
6404class VkSubpassSampleLocationsEXT {
6405 u32 subpassIndex
6406 VkSampleLocationsInfoEXT sampleLocationsInfo
6407}
6408
6409@extension("VK_EXT_sample_locations") // 144
6410class VkRenderPassSampleLocationsBeginInfoEXT {
6411 VkStructureType sType
6412 const void* pNext
6413 u32 attachmentInitialSampleLocationsCount
6414 const VkAttachmentSampleLocationsEXT* pAttachmentInitialSampleLocations
6415 u32 postSubpassSampleLocationsCount
Jesse Hall8c954d32018-01-17 22:06:20 -08006416 const VkSubpassSampleLocationsEXT* pPostSubpassSampleLocations
Jesse Hall77726222017-09-19 14:49:27 -05006417}
6418
6419@extension("VK_EXT_sample_locations") // 144
6420class VkPipelineSampleLocationsStateCreateInfoEXT {
6421 VkStructureType sType
6422 const void* pNext
6423 VkBool32 sampleLocationsEnable
6424 VkSampleLocationsInfoEXT sampleLocationsInfo
6425}
6426
6427@extension("VK_EXT_sample_locations") // 144
6428class VkPhysicalDeviceSampleLocationsPropertiesEXT {
6429 VkStructureType sType
6430 void* pNext
6431 VkSampleCountFlags sampleLocationSampleCounts
6432 VkExtent2D maxSampleLocationGridSize
6433 f32[2] sampleLocationCoordinateRange
6434 u32 sampleLocationSubPixelBits
6435 VkBool32 variableSampleLocations
6436}
6437
6438@extension("VK_EXT_sample_locations") // 144
6439class VkMultisamplePropertiesEXT {
6440 VkStructureType sType
6441 void* pNext
6442 VkExtent2D maxSampleLocationGridSize
6443}
6444
Jesse Hall9492f992017-08-28 12:10:06 -07006445@extension("VK_KHR_get_memory_requirements2") // 147
6446class VkBufferMemoryRequirementsInfo2KHR {
6447 VkStructureType sType
6448 const void* pNext
6449 VkBuffer buffer
6450}
6451
6452@extension("VK_KHR_get_memory_requirements2") // 147
6453class VkImageMemoryRequirementsInfo2KHR {
6454 VkStructureType sType
6455 const void* pNext
6456 VkImage image
6457}
6458
6459@extension("VK_KHR_get_memory_requirements2") // 147
6460class VkImageSparseMemoryRequirementsInfo2KHR {
6461 VkStructureType sType
6462 const void* pNext
6463 VkImage image
6464}
6465
6466@extension("VK_KHR_get_memory_requirements2") // 147
6467class VkMemoryRequirements2KHR {
6468 VkStructureType sType
6469 void* pNext
6470 VkMemoryRequirements memoryRequirements
6471}
6472
6473@extension("VK_KHR_get_memory_requirements2") // 147
6474class VkSparseImageMemoryRequirements2KHR {
6475 VkStructureType sType
6476 void* pNext
6477 VkSparseImageMemoryRequirements memoryRequirements
6478}
6479
Jesse Hall076f95d2017-09-20 11:34:47 -07006480@extension("VK_KHR_image_format_list") // 148
6481class VkImageFormatListCreateInfoKHR {
6482 VkStructureType sType
6483 const void* pNext
6484 u32 viewFormatCount
6485 const VkFormat* pViewFormats
6486}
6487
Jesse Hall7ba0ac72017-07-07 17:13:23 -07006488@extension("VK_EXT_blend_operation_advanced") // 149
6489class VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT {
6490 VkStructureType sType
6491 void* pNext
6492 VkBool32 advancedBlendCoherentOperations
6493}
6494
6495@extension("VK_EXT_blend_operation_advanced") // 149
6496class VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT {
6497 VkStructureType sType
6498 void* pNext
6499 u32 advancedBlendMaxColorAttachments
6500 VkBool32 advancedBlendIndependentBlend
6501 VkBool32 advancedBlendNonPremultipliedSrcColor
6502 VkBool32 advancedBlendNonPremultipliedDstColor
6503 VkBool32 advancedBlendCorrelatedOverlap
6504 VkBool32 advancedBlendAllOperations
6505}
6506
6507@extension("VK_EXT_blend_operation_advanced") // 149
6508class VkPipelineColorBlendAdvancedStateCreateInfoEXT {
6509 VkStructureType sType
6510 const void* pNext
6511 VkBool32 srcPremultiplied
6512 VkBool32 dstPremultiplied
6513 VkBlendOverlapEXT blendOverlap
6514}
6515
6516@extension("VK_NV_fragment_coverage_to_color") // 150
6517class VkPipelineCoverageToColorStateCreateInfoNV {
6518 VkStructureType sType
6519 const void* pNext
6520 VkPipelineCoverageToColorStateCreateFlagsNV flags
6521 VkBool32 coverageToColorEnable
6522 u32 coverageToColorLocation
6523}
6524
6525@extension("VK_NV_framebuffer_mixed_samples") // 153
6526class VkPipelineCoverageModulationStateCreateInfoNV {
6527 VkStructureType sType
6528 const void* pNext
6529 VkPipelineCoverageModulationStateCreateFlagsNV flags
6530 VkCoverageModulationModeNV coverageModulationMode
6531 VkBool32 coverageModulationTableEnable
6532 u32 coverageModulationTableCount
6533 const f32* pCoverageModulationTable
6534}
6535
Jesse Hall076f95d2017-09-20 11:34:47 -07006536@extension("VK_KHR_sampler_ycbcr_conversion") // 157
6537class VkSamplerYcbcrConversionCreateInfoKHR {
6538 VkStructureType sType
6539 const void* pNext
6540 VkFormat format
6541 VkSamplerYcbcrModelConversionKHR ycbcrModel
6542 VkSamplerYcbcrRangeKHR ycbcrRange
6543 VkComponentMapping components
6544 VkChromaLocationKHR xChromaOffset
6545 VkChromaLocationKHR yChromaOffset
6546 VkFilter chromaFilter
6547 VkBool32 forceExplicitReconstruction
6548}
6549
6550@extension("VK_KHR_sampler_ycbcr_conversion") // 157
6551class VkSamplerYcbcrConversionInfoKHR {
6552 VkStructureType sType
6553 const void* pNext
6554 VkSamplerYcbcrConversionKHR conversion
6555}
6556
6557@extension("VK_KHR_sampler_ycbcr_conversion") // 157
6558class VkBindImagePlaneMemoryInfoKHR {
6559 VkStructureType sType
6560 const void* pNext
6561 VkImageAspectFlagBits planeAspect
6562}
6563
6564@extension("VK_KHR_sampler_ycbcr_conversion") // 157
6565class VkImagePlaneMemoryRequirementsInfoKHR {
6566 VkStructureType sType
6567 const void* pNext
6568 VkImageAspectFlagBits planeAspect
6569}
6570
6571@extension("VK_KHR_sampler_ycbcr_conversion") // 157
6572class VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR {
6573 VkStructureType sType
6574 void* pNext
6575 VkBool32 samplerYcbcrConversion
6576}
6577
6578@extension("VK_KHR_sampler_ycbcr_conversion") // 157
6579class VkSamplerYcbcrConversionImageFormatPropertiesKHR {
6580 VkStructureType sType
6581 void* pNext
6582 u32 combinedImageSamplerDescriptorCount
6583}
6584
6585@extension("VK_KHR_bind_memory2") // 158
6586class VkBindBufferMemoryInfoKHR {
6587 VkStructureType sType
6588 const void* pNext
6589 VkBuffer buffer
6590 VkDeviceMemory memory
6591 VkDeviceSize memoryOffset
6592}
6593
6594@extension("VK_KHR_bind_memory2") // 158
6595class VkBindImageMemoryInfoKHR {
6596 VkStructureType sType
6597 const void* pNext
6598 VkImage image
6599 VkDeviceMemory memory
6600 VkDeviceSize memoryOffset
6601}
6602
Jesse Hall77726222017-09-19 14:49:27 -05006603@extension("VK_EXT_validation_cache") // 161
6604class VkValidationCacheCreateInfoEXT {
6605 VkStructureType sType
6606 const void* pNext
6607 VkValidationCacheCreateFlagsEXT flags
6608 platform.size_t initialDataSize
6609 const void* pInitialData
6610}
6611
6612@extension("VK_EXT_validation_cache") // 161
6613class VkShaderModuleValidationCacheCreateInfoEXT {
6614 VkStructureType sType
6615 const void* pNext
6616 VkValidationCacheEXT validationCache
6617}
6618
Jesse Hall72e6a132018-04-06 13:00:44 -07006619@extension("VK_EXT_descriptor_indexing") // 162
6620class VkDescriptorSetLayoutBindingFlagsCreateInfoEXT {
6621 VkStructureType sType
6622 const void* pNext
6623 u32 bindingCount
6624 const VkDescriptorBindingFlagsEXT* pBindingFlags
6625}
6626
6627@extension("VK_EXT_descriptor_indexing") // 162
6628class VkPhysicalDeviceDescriptorIndexingFeaturesEXT {
6629 VkStructureType sType
6630 void* pNext
6631 VkBool32 shaderInputAttachmentArrayDynamicIndexing
6632 VkBool32 shaderUniformTexelBufferArrayDynamicIndexing
6633 VkBool32 shaderStorageTexelBufferArrayDynamicIndexing
6634 VkBool32 shaderUniformBufferArrayNonUniformIndexing
6635 VkBool32 shaderSampledImageArrayNonUniformIndexing
6636 VkBool32 shaderStorageBufferArrayNonUniformIndexing
6637 VkBool32 shaderStorageImageArrayNonUniformIndexing
6638 VkBool32 shaderInputAttachmentArrayNonUniformIndexing
6639 VkBool32 shaderUniformTexelBufferArrayNonUniformIndexing
6640 VkBool32 shaderStorageTexelBufferArrayNonUniformIndexing
6641 VkBool32 descriptorBindingUniformBufferUpdateAfterBind
6642 VkBool32 descriptorBindingSampledImageUpdateAfterBind
6643 VkBool32 descriptorBindingStorageImageUpdateAfterBind
6644 VkBool32 descriptorBindingStorageBufferUpdateAfterBind
6645 VkBool32 descriptorBindingUniformTexelBufferUpdateAfterBind
6646 VkBool32 descriptorBindingStorageTexelBufferUpdateAfterBind
6647 VkBool32 descriptorBindingUpdateUnusedWhilePending
6648 VkBool32 descriptorBindingPartiallyBound
6649 VkBool32 descriptorBindingVariableDescriptorCount
6650 VkBool32 runtimeDescriptorArray
6651}
6652
6653@extension("VK_EXT_descriptor_indexing") // 162
6654class VkPhysicalDeviceDescriptorIndexingPropertiesEXT {
6655 VkStructureType sType
6656 void* pNext
6657 u32 maxUpdateAfterBindDescriptorsInAllPools
6658 VkBool32 shaderUniformBufferArrayNonUniformIndexingNative
6659 VkBool32 shaderSampledImageArrayNonUniformIndexingNative
6660 VkBool32 shaderStorageBufferArrayNonUniformIndexingNative
6661 VkBool32 shaderStorageImageArrayNonUniformIndexingNative
6662 VkBool32 shaderInputAttachmentArrayNonUniformIndexingNative
6663 VkBool32 robustBufferAccessUpdateAfterBind
6664 VkBool32 quadDivergentImplicitLod
6665 u32 maxPerStageDescriptorUpdateAfterBindSamplers
6666 u32 maxPerStageDescriptorUpdateAfterBindUniformBuffers
6667 u32 maxPerStageDescriptorUpdateAfterBindStorageBuffers
6668 u32 maxPerStageDescriptorUpdateAfterBindSampledImages
6669 u32 maxPerStageDescriptorUpdateAfterBindStorageImages
6670 u32 maxPerStageDescriptorUpdateAfterBindInputAttachments
6671 u32 maxPerStageUpdateAfterBindResources
6672 u32 maxDescriptorSetUpdateAfterBindSamplers
6673 u32 maxDescriptorSetUpdateAfterBindUniformBuffers
6674 u32 maxDescriptorSetUpdateAfterBindUniformBuffersDynamic
6675 u32 maxDescriptorSetUpdateAfterBindStorageBuffers
6676 u32 maxDescriptorSetUpdateAfterBindStorageBuffersDynamic
6677 u32 maxDescriptorSetUpdateAfterBindSampledImages
6678 u32 maxDescriptorSetUpdateAfterBindStorageImages
6679 u32 maxDescriptorSetUpdateAfterBindInputAttachments
6680}
6681
6682@extension("VK_EXT_descriptor_indexing") // 162
6683class VkDescriptorSetVariableDescriptorCountAllocateInfoEXT {
6684 VkStructureType sType
6685 const void* pNext
6686 u32 descriptorSetCount
6687 const u32* pDescriptorCounts
6688}
6689
6690@extension("VK_EXT_descriptor_indexing") // 162
6691class VkDescriptorSetVariableDescriptorCountLayoutSupportEXT {
6692 VkStructureType sType
6693 void* pNext
6694 u32 maxVariableDescriptorCount
6695}
6696
Daniel Koch09f7bf92017-10-05 00:26:58 -04006697@extension("VK_KHR_maintenance3") // 169
6698class VkPhysicalDeviceMaintenance3PropertiesKHR {
6699 VkStructureType sType
6700 void* pNext
6701 u32 maxPerSetDescriptors
6702 VkDeviceSize maxMemoryAllocationSize
6703}
6704
6705@extension("VK_KHR_maintenance3") // 169
6706class VkDescriptorSetLayoutSupportKHR {
6707 VkStructureType sType
6708 void* pNext
6709 VkBool32 supported
6710}
6711
Jesse Hall8c954d32018-01-17 22:06:20 -08006712@extension("VK_EXT_global_priority") // 175
6713class VkDeviceQueueGlobalPriorityCreateInfoEXT {
6714 VkStructureType sType
6715 const void* pNext
6716 VkQueueGlobalPriorityEXT globalPriority
6717}
6718
Jesse Halla13a3cf2018-07-09 15:51:52 -07006719@extension("VK_KHR_8bit_storage") // 178
6720class VkPhysicalDevice8BitStorageFeaturesKHR {
6721 VkStructureType sType
6722 void* pNext
6723 VkBool32 storageBuffer8BitAccess
6724 VkBool32 uniformAndStorageBuffer8BitAccess
6725 VkBool32 storagePushConstant8
6726}
6727
Jesse Hall8c954d32018-01-17 22:06:20 -08006728@extension("VK_EXT_external_memory_host") // 179
6729class VkImportMemoryHostPointerInfoEXT {
6730 VkStructureType sType
6731 const void* pNext
6732 VkExternalMemoryHandleTypeFlagBits handleType
6733 void* pHostPointer
6734}
6735
6736@extension("VK_EXT_external_memory_host") // 179
6737class VkMemoryHostPointerPropertiesEXT {
6738 VkStructureType sType
6739 void* pNext
6740 u32 memoryTypeBits
6741}
6742
6743@extension("VK_EXT_external_memory_host") // 179
6744class VkPhysicalDeviceExternalMemoryHostPropertiesEXT {
6745 VkStructureType sType
6746 void* pNext
6747 VkDeviceSize minImportedHostPointerAlignment
6748}
6749
Jesse Hall72e6a132018-04-06 13:00:44 -07006750@extension("VK_AMD_shader_core_properties") // 186
6751class VkPhysicalDeviceShaderCorePropertiesAMD {
6752 VkStructureType sType
6753 void* pNext
6754 u32 shaderEngineCount
6755 u32 shaderArraysPerEngineCount
6756 u32 computeUnitsPerShaderArray
6757 u32 simdPerComputeUnit
6758 u32 wavefrontsPerSimd
6759 u32 wavefrontSize
6760 u32 sgprsPerSimd
6761 u32 minSgprAllocation
6762 u32 maxSgprAllocation
6763 u32 sgprAllocationGranularity
6764 u32 vgprsPerSimd
6765 u32 minVgprAllocation
6766 u32 maxVgprAllocation
6767 u32 vgprAllocationGranularity
6768}
6769
6770@extension("VK_EXT_vertex_attribute_divisor") // 191
6771class VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT {
6772 VkStructureType sType
6773 void* pNext
6774 u32 maxVertexAttribDivisor
6775}
6776
6777@extension("VK_EXT_vertex_attribute_divisor") // 191
6778class VkVertexInputBindingDivisorDescriptionEXT {
6779 u32 binding
6780 u32 divisor
6781}
6782
6783@extension("VK_EXT_vertex_attribute_divisor") // 191
6784class VkPipelineVertexInputDivisorStateCreateInfoEXT {
6785 VkStructureType sType
6786 const void* pNext
6787 u32 vertexBindingDivisorCount
6788 const VkVertexInputBindingDivisorDescriptionEXT* pVertexBindingDivisors
6789}
6790
Daniel Koch09f7bf92017-10-05 00:26:58 -04006791
Jesse Halld27f6aa2015-08-15 17:58:48 -07006792////////////////
6793// Commands //
6794////////////////
6795
6796// Function pointers. TODO: add support for function pointers.
6797
6798@external type void* PFN_vkVoidFunction
6799@pfn cmd void vkVoidFunction() {
6800}
6801
Jesse Hall3fbc8562015-11-29 22:10:52 -08006802@external type void* PFN_vkAllocationFunction
6803@pfn cmd void* vkAllocationFunction(
Jesse Halld27f6aa2015-08-15 17:58:48 -07006804 void* pUserData,
6805 platform.size_t size,
6806 platform.size_t alignment,
Jesse Hall3fbc8562015-11-29 22:10:52 -08006807 VkSystemAllocationScope allocationScope) {
Jesse Hall03b6fe12015-11-24 12:44:21 -08006808 return ?
6809}
6810
Jesse Hall3fbc8562015-11-29 22:10:52 -08006811@external type void* PFN_vkReallocationFunction
6812@pfn cmd void* vkReallocationFunction(
Jesse Hall03b6fe12015-11-24 12:44:21 -08006813 void* pUserData,
6814 void* pOriginal,
6815 platform.size_t size,
6816 platform.size_t alignment,
Jesse Hall3fbc8562015-11-29 22:10:52 -08006817 VkSystemAllocationScope allocationScope) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07006818 return ?
6819}
6820
6821@external type void* PFN_vkFreeFunction
6822@pfn cmd void vkFreeFunction(
6823 void* pUserData,
Jesse Hall3fbc8562015-11-29 22:10:52 -08006824 void* pMemory) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07006825}
6826
Jesse Hall3fbc8562015-11-29 22:10:52 -08006827@external type void* PFN_vkInternalAllocationNotification
6828@pfn cmd void vkInternalAllocationNotification(
Jesse Hall03b6fe12015-11-24 12:44:21 -08006829 void* pUserData,
6830 platform.size_t size,
Jesse Hall3fbc8562015-11-29 22:10:52 -08006831 VkInternalAllocationType allocationType,
6832 VkSystemAllocationScope allocationScope) {
Jesse Hall03b6fe12015-11-24 12:44:21 -08006833}
6834
6835@external type void* PFN_vkInternalFreeNotification
6836@pfn cmd void vkInternalFreeNotification(
6837 void* pUserData,
6838 platform.size_t size,
Jesse Hall3fbc8562015-11-29 22:10:52 -08006839 VkInternalAllocationType allocationType,
6840 VkSystemAllocationScope allocationScope) {
Jesse Hall03b6fe12015-11-24 12:44:21 -08006841}
Jesse Halld27f6aa2015-08-15 17:58:48 -07006842
6843// Global functions
6844
6845@threadSafety("system")
6846cmd VkResult vkCreateInstance(
6847 const VkInstanceCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08006848 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07006849 VkInstance* pInstance) {
6850 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO)
6851
6852 instance := ?
6853 pInstance[0] = instance
6854 State.Instances[instance] = new!InstanceObject()
6855
Jesse Hall3dd678a2016-01-08 21:52:01 -08006856 layers := pCreateInfo.ppEnabledLayerNames[0:pCreateInfo.enabledLayerCount]
6857 extensions := pCreateInfo.ppEnabledExtensionNames[0:pCreateInfo.enabledExtensionCount]
Jesse Halld27f6aa2015-08-15 17:58:48 -07006858
6859 return ?
6860}
6861
6862@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07006863cmd void vkDestroyInstance(
Jesse Hall03b6fe12015-11-24 12:44:21 -08006864 VkInstance instance,
Jesse Hall3fbc8562015-11-29 22:10:52 -08006865 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07006866 instanceObject := GetInstance(instance)
6867
6868 State.Instances[instance] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07006869}
6870
6871@threadSafety("system")
6872cmd VkResult vkEnumeratePhysicalDevices(
6873 VkInstance instance,
6874 u32* pPhysicalDeviceCount,
6875 VkPhysicalDevice* pPhysicalDevices) {
6876 instanceObject := GetInstance(instance)
6877
6878 physicalDeviceCount := as!u32(?)
6879 pPhysicalDeviceCount[0] = physicalDeviceCount
6880 physicalDevices := pPhysicalDevices[0:physicalDeviceCount]
6881
6882 for i in (0 .. physicalDeviceCount) {
6883 physicalDevice := ?
6884 physicalDevices[i] = physicalDevice
6885 if !(physicalDevice in State.PhysicalDevices) {
6886 State.PhysicalDevices[physicalDevice] = new!PhysicalDeviceObject(instance: instance)
6887 }
6888 }
6889
6890 return ?
6891}
6892
6893cmd PFN_vkVoidFunction vkGetDeviceProcAddr(
6894 VkDevice device,
6895 const char* pName) {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07006896 if device != NULL_HANDLE {
Jesse Halld27f6aa2015-08-15 17:58:48 -07006897 device := GetDevice(device)
6898 }
6899
6900 return ?
6901}
6902
6903cmd PFN_vkVoidFunction vkGetInstanceProcAddr(
6904 VkInstance instance,
6905 const char* pName) {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07006906 if instance != NULL_HANDLE {
Jesse Halld27f6aa2015-08-15 17:58:48 -07006907 instanceObject := GetInstance(instance)
6908 }
6909
6910 return ?
6911}
6912
Jesse Hall606a54e2015-11-19 22:17:28 -08006913cmd void vkGetPhysicalDeviceProperties(
Jesse Halld27f6aa2015-08-15 17:58:48 -07006914 VkPhysicalDevice physicalDevice,
6915 VkPhysicalDeviceProperties* pProperties) {
6916 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
6917
6918 properties := ?
6919 pProperties[0] = properties
Jesse Halld27f6aa2015-08-15 17:58:48 -07006920}
6921
Jesse Hall606a54e2015-11-19 22:17:28 -08006922cmd void vkGetPhysicalDeviceQueueFamilyProperties(
Jesse Halld27f6aa2015-08-15 17:58:48 -07006923 VkPhysicalDevice physicalDevice,
Jesse Hall03b6fe12015-11-24 12:44:21 -08006924 u32* pQueueFamilyPropertyCount,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07006925 VkQueueFamilyProperties* pQueueFamilyProperties) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07006926 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
Jesse Hall5ae3abb2015-10-08 14:00:22 -07006927 // TODO: Figure out how to express fetch-count-or-properties
6928 // This version fails 'apic validate' with 'fence not allowed in
6929 // *semantic.Branch'. Other attempts have failed with the same or other
6930 // errors.
6931 // if pQueueFamilyProperties != null {
6932 // queuesProperties := pQueueFamilyProperties[0:pCount[0]]
6933 // for i in (0 .. pCount[0]) {
6934 // queueProperties := as!VkQueueFamilyProperties(?)
6935 // queuesProperties[i] = queueProperties
6936 // }
6937 // } else {
6938 // count := ?
6939 // pCount[0] = count
6940 // }
Jesse Halld27f6aa2015-08-15 17:58:48 -07006941}
6942
Jesse Hall606a54e2015-11-19 22:17:28 -08006943cmd void vkGetPhysicalDeviceMemoryProperties(
Jesse Halld27f6aa2015-08-15 17:58:48 -07006944 VkPhysicalDevice physicalDevice,
6945 VkPhysicalDeviceMemoryProperties* pMemoryProperties) {
6946 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
6947
6948 memoryProperties := ?
6949 pMemoryProperties[0] = memoryProperties
Jesse Halld27f6aa2015-08-15 17:58:48 -07006950}
6951
Jesse Hall606a54e2015-11-19 22:17:28 -08006952cmd void vkGetPhysicalDeviceFeatures(
Jesse Halld27f6aa2015-08-15 17:58:48 -07006953 VkPhysicalDevice physicalDevice,
6954 VkPhysicalDeviceFeatures* pFeatures) {
6955 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
6956
6957 features := ?
6958 pFeatures[0] = features
Jesse Halld27f6aa2015-08-15 17:58:48 -07006959}
6960
Jesse Hall606a54e2015-11-19 22:17:28 -08006961cmd void vkGetPhysicalDeviceFormatProperties(
Jesse Halld27f6aa2015-08-15 17:58:48 -07006962 VkPhysicalDevice physicalDevice,
6963 VkFormat format,
6964 VkFormatProperties* pFormatProperties) {
6965 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
6966
6967 formatProperties := ?
6968 pFormatProperties[0] = formatProperties
Jesse Halld27f6aa2015-08-15 17:58:48 -07006969}
6970
Jesse Halla9e57032015-11-30 01:03:10 -08006971cmd VkResult vkGetPhysicalDeviceImageFormatProperties(
Jesse Halld27f6aa2015-08-15 17:58:48 -07006972 VkPhysicalDevice physicalDevice,
6973 VkFormat format,
6974 VkImageType type,
6975 VkImageTiling tiling,
6976 VkImageUsageFlags usage,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07006977 VkImageCreateFlags flags,
Jesse Halld27f6aa2015-08-15 17:58:48 -07006978 VkImageFormatProperties* pImageFormatProperties) {
6979 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
6980
6981 imageFormatProperties := ?
6982 pImageFormatProperties[0] = imageFormatProperties
Jesse Halla9e57032015-11-30 01:03:10 -08006983
6984 return ?
Jesse Halld27f6aa2015-08-15 17:58:48 -07006985}
6986
Jesse Halld27f6aa2015-08-15 17:58:48 -07006987
6988// Device functions
6989
6990@threadSafety("system")
6991cmd VkResult vkCreateDevice(
6992 VkPhysicalDevice physicalDevice,
6993 const VkDeviceCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08006994 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07006995 VkDevice* pDevice) {
6996 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO)
6997 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
6998
6999 device := ?
7000 pDevice[0] = device
7001 State.Devices[device] = new!DeviceObject(physicalDevice: physicalDevice)
7002
7003 return ?
7004}
7005
7006@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007007cmd void vkDestroyDevice(
Jesse Hall03b6fe12015-11-24 12:44:21 -08007008 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007009 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007010 deviceObject := GetDevice(device)
7011
7012 State.Devices[device] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07007013}
7014
7015
7016// Extension discovery functions
7017
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007018cmd VkResult vkEnumerateInstanceLayerProperties(
Jesse Hall03b6fe12015-11-24 12:44:21 -08007019 u32* pPropertyCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007020 VkLayerProperties* pProperties) {
7021 count := as!u32(?)
Jesse Hall03b6fe12015-11-24 12:44:21 -08007022 pPropertyCount[0] = count
Jesse Halld27f6aa2015-08-15 17:58:48 -07007023
7024 properties := pProperties[0:count]
7025 for i in (0 .. count) {
7026 property := ?
7027 properties[i] = property
7028 }
7029
7030 return ?
7031}
7032
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007033cmd VkResult vkEnumerateInstanceExtensionProperties(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007034 const char* pLayerName,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007035 u32* pPropertyCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007036 VkExtensionProperties* pProperties) {
7037 count := as!u32(?)
Jesse Hall03b6fe12015-11-24 12:44:21 -08007038 pPropertyCount[0] = count
Jesse Halld27f6aa2015-08-15 17:58:48 -07007039
7040 properties := pProperties[0:count]
7041 for i in (0 .. count) {
7042 property := ?
7043 properties[i] = property
7044 }
7045
7046 return ?
7047}
7048
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007049cmd VkResult vkEnumerateDeviceLayerProperties(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007050 VkPhysicalDevice physicalDevice,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007051 u32* pPropertyCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007052 VkLayerProperties* pProperties) {
7053 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
7054 count := as!u32(?)
Jesse Hall03b6fe12015-11-24 12:44:21 -08007055 pPropertyCount[0] = count
Jesse Halld27f6aa2015-08-15 17:58:48 -07007056
7057 properties := pProperties[0:count]
7058 for i in (0 .. count) {
7059 property := ?
7060 properties[i] = property
7061 }
7062
7063 return ?
7064}
7065
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007066cmd VkResult vkEnumerateDeviceExtensionProperties(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007067 VkPhysicalDevice physicalDevice,
7068 const char* pLayerName,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007069 u32* pPropertyCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007070 VkExtensionProperties* pProperties) {
7071 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
7072
7073 count := as!u32(?)
Jesse Hall03b6fe12015-11-24 12:44:21 -08007074 pPropertyCount[0] = count
Jesse Halld27f6aa2015-08-15 17:58:48 -07007075
7076 properties := pProperties[0:count]
7077 for i in (0 .. count) {
7078 property := ?
7079 properties[i] = property
7080 }
7081
7082 return ?
7083}
7084
7085
7086// Queue functions
7087
7088@threadSafety("system")
Jesse Hall606a54e2015-11-19 22:17:28 -08007089cmd void vkGetDeviceQueue(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007090 VkDevice device,
7091 u32 queueFamilyIndex,
7092 u32 queueIndex,
7093 VkQueue* pQueue) {
7094 deviceObject := GetDevice(device)
7095
7096 queue := ?
7097 pQueue[0] = queue
7098
7099 if !(queue in State.Queues) {
7100 State.Queues[queue] = new!QueueObject(device: device)
7101 }
Jesse Halld27f6aa2015-08-15 17:58:48 -07007102}
7103
7104@threadSafety("app")
7105cmd VkResult vkQueueSubmit(
7106 VkQueue queue,
Jesse Halla366a512015-11-19 22:30:07 -08007107 u32 submitCount,
Jesse Hallb00daad2015-11-29 19:46:20 -08007108 const VkSubmitInfo* pSubmits,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007109 VkFence fence) {
7110 queueObject := GetQueue(queue)
7111
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007112 if fence != NULL_HANDLE {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007113 fenceObject := GetFence(fence)
7114 assert(fenceObject.device == queueObject.device)
7115 }
7116
Jesse Hall3fbc8562015-11-29 22:10:52 -08007117 // commandBuffers := pcommandBuffers[0:commandBufferCount]
7118 // for i in (0 .. commandBufferCount) {
7119 // commandBuffer := commandBuffers[i]
7120 // commandBufferObject := GetCommandBuffer(commandBuffer)
7121 // assert(commandBufferObject.device == queueObject.device)
Jesse Halla366a512015-11-19 22:30:07 -08007122 //
Jesse Hall3fbc8562015-11-29 22:10:52 -08007123 // validate("QueueCheck", commandBufferObject.queueFlags in queueObject.flags,
7124 // "vkQueueSubmit: enqueued commandBuffer requires missing queue capabilities.")
Jesse Halla366a512015-11-19 22:30:07 -08007125 // }
Jesse Halld27f6aa2015-08-15 17:58:48 -07007126
7127 return ?
7128}
7129
7130@threadSafety("system")
7131cmd VkResult vkQueueWaitIdle(
7132 VkQueue queue) {
7133 queueObject := GetQueue(queue)
7134
7135 return ?
7136}
7137
7138@threadSafety("system")
7139cmd VkResult vkDeviceWaitIdle(
7140 VkDevice device) {
7141 deviceObject := GetDevice(device)
7142
7143 return ?
7144}
7145
7146
7147// Memory functions
7148
7149@threadSafety("system")
Jesse Hall3fbc8562015-11-29 22:10:52 -08007150cmd VkResult vkAllocateMemory(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007151 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007152 const VkMemoryAllocateInfo* pAllocateInfo,
7153 const VkAllocationCallbacks* pAllocator,
7154 VkDeviceMemory* pMemory) {
Jesse Hallf4ab2b12015-11-30 16:04:55 -08007155 assert(pAllocateInfo.sType == VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007156 deviceObject := GetDevice(device)
7157
Jesse Hall3fbc8562015-11-29 22:10:52 -08007158 memory := ?
7159 pMemory[0] = memory
7160 State.DeviceMemories[memory] = new!DeviceMemoryObject(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007161 device: device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007162 allocationSize: pAllocateInfo[0].allocationSize)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007163
7164 return ?
7165}
7166
7167@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007168cmd void vkFreeMemory(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007169 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007170 VkDeviceMemory memory,
7171 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007172 deviceObject := GetDevice(device)
Jesse Hall3fbc8562015-11-29 22:10:52 -08007173 memoryObject := GetDeviceMemory(memory)
7174 assert(memoryObject.device == device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007175
7176 // Check that no objects are still bound before freeing.
Jesse Hall3fbc8562015-11-29 22:10:52 -08007177 validate("MemoryCheck", len(memoryObject.boundObjects) == 0,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007178 "vkFreeMemory: objects still bound")
Jesse Hall3fbc8562015-11-29 22:10:52 -08007179 validate("MemoryCheck", len(memoryObject.boundCommandBuffers) == 0,
7180 "vkFreeMemory: commandBuffers still bound")
7181 State.DeviceMemories[memory] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07007182}
7183
7184@threadSafety("app")
7185cmd VkResult vkMapMemory(
7186 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007187 VkDeviceMemory memory,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007188 VkDeviceSize offset,
7189 VkDeviceSize size,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007190 VkMemoryMapFlags flags,
7191 void** ppData) {
7192 deviceObject := GetDevice(device)
Jesse Hall3fbc8562015-11-29 22:10:52 -08007193 memoryObject := GetDeviceMemory(memory)
7194 assert(memoryObject.device == device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007195
7196 assert(flags == as!VkMemoryMapFlags(0))
Jesse Hall3fbc8562015-11-29 22:10:52 -08007197 assert((offset + size) <= memoryObject.allocationSize)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007198
7199 return ?
7200}
7201
7202@threadSafety("app")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007203cmd void vkUnmapMemory(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007204 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007205 VkDeviceMemory memory) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007206 deviceObject := GetDevice(device)
Jesse Hall3fbc8562015-11-29 22:10:52 -08007207 memoryObject := GetDeviceMemory(memory)
7208 assert(memoryObject.device == device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007209}
7210
7211cmd VkResult vkFlushMappedMemoryRanges(
7212 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007213 u32 memoryRangeCount
7214 const VkMappedMemoryRange* pMemoryRanges) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007215 deviceObject := GetDevice(device)
7216
Jesse Hall3fbc8562015-11-29 22:10:52 -08007217 memoryRanges := pMemoryRanges[0:memoryRangeCount]
7218 for i in (0 .. memoryRangeCount) {
7219 memoryRange := memoryRanges[i]
7220 memoryObject := GetDeviceMemory(memoryRange.memory)
7221 assert(memoryObject.device == device)
7222 assert((memoryRange.offset + memoryRange.size) <= memoryObject.allocationSize)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007223 }
7224
7225 return ?
7226}
7227
7228cmd VkResult vkInvalidateMappedMemoryRanges(
7229 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007230 u32 memoryRangeCount,
7231 const VkMappedMemoryRange* pMemoryRanges) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007232 deviceObject := GetDevice(device)
7233
Jesse Hall3fbc8562015-11-29 22:10:52 -08007234 memoryRanges := pMemoryRanges[0:memoryRangeCount]
7235 for i in (0 .. memoryRangeCount) {
7236 memoryRange := memoryRanges[i]
7237 memoryObject := GetDeviceMemory(memoryRange.memory)
7238 assert(memoryObject.device == device)
7239 assert((memoryRange.offset + memoryRange.size) <= memoryObject.allocationSize)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007240 }
7241
7242 return ?
7243}
7244
7245
7246// Memory management API functions
7247
Jesse Hall606a54e2015-11-19 22:17:28 -08007248cmd void vkGetDeviceMemoryCommitment(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007249 VkDevice device,
7250 VkDeviceMemory memory,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007251 VkDeviceSize* pCommittedMemoryInBytes) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007252 deviceObject := GetDevice(device)
7253
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007254 if memory != NULL_HANDLE {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007255 memoryObject := GetDeviceMemory(memory)
7256 assert(memoryObject.device == device)
7257 }
7258
7259 committedMemoryInBytes := ?
7260 pCommittedMemoryInBytes[0] = committedMemoryInBytes
Jesse Halld27f6aa2015-08-15 17:58:48 -07007261}
7262
Jesse Hall606a54e2015-11-19 22:17:28 -08007263cmd void vkGetBufferMemoryRequirements(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007264 VkDevice device,
7265 VkBuffer buffer,
7266 VkMemoryRequirements* pMemoryRequirements) {
7267 deviceObject := GetDevice(device)
7268 bufferObject := GetBuffer(buffer)
7269 assert(bufferObject.device == device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007270}
7271
7272cmd VkResult vkBindBufferMemory(
7273 VkDevice device,
7274 VkBuffer buffer,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007275 VkDeviceMemory memory,
7276 VkDeviceSize memoryOffset) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007277 deviceObject := GetDevice(device)
7278 bufferObject := GetBuffer(buffer)
7279 assert(bufferObject.device == device)
7280
7281 // Unbind buffer from previous memory object, if not VK_NULL_HANDLE.
Jesse Hall3fbc8562015-11-29 22:10:52 -08007282 if bufferObject.memory != NULL_HANDLE {
7283 memoryObject := GetDeviceMemory(bufferObject.memory)
7284 memoryObject.boundObjects[as!u64(buffer)] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07007285 }
7286
7287 // Bind buffer to given memory object, if not VK_NULL_HANDLE.
Jesse Hall3fbc8562015-11-29 22:10:52 -08007288 if memory != NULL_HANDLE {
7289 memoryObject := GetDeviceMemory(memory)
7290 assert(memoryObject.device == device)
7291 memoryObject.boundObjects[as!u64(buffer)] = memoryOffset
Jesse Halld27f6aa2015-08-15 17:58:48 -07007292 }
Jesse Hall3fbc8562015-11-29 22:10:52 -08007293 bufferObject.memory = memory
7294 bufferObject.memoryOffset = memoryOffset
Jesse Halld27f6aa2015-08-15 17:58:48 -07007295
7296 return ?
7297}
7298
Jesse Hall606a54e2015-11-19 22:17:28 -08007299cmd void vkGetImageMemoryRequirements(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007300 VkDevice device,
7301 VkImage image,
7302 VkMemoryRequirements* pMemoryRequirements) {
7303 deviceObject := GetDevice(device)
7304 imageObject := GetImage(image)
7305 assert(imageObject.device == device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007306}
7307
7308cmd VkResult vkBindImageMemory(
7309 VkDevice device,
7310 VkImage image,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007311 VkDeviceMemory memory,
7312 VkDeviceSize memoryOffset) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007313 deviceObject := GetDevice(device)
7314 imageObject := GetImage(image)
7315 assert(imageObject.device == device)
7316
7317 // Unbind image from previous memory object, if not VK_NULL_HANDLE.
Jesse Hall3fbc8562015-11-29 22:10:52 -08007318 if imageObject.memory != NULL_HANDLE {
7319 memoryObject := GetDeviceMemory(imageObject.memory)
7320 memoryObject.boundObjects[as!u64(image)] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07007321 }
7322
7323 // Bind image to given memory object, if not VK_NULL_HANDLE.
Jesse Hall3fbc8562015-11-29 22:10:52 -08007324 if memory != NULL_HANDLE {
7325 memoryObject := GetDeviceMemory(memory)
7326 assert(memoryObject.device == device)
7327 memoryObject.boundObjects[as!u64(image)] = memoryOffset
Jesse Halld27f6aa2015-08-15 17:58:48 -07007328 }
Jesse Hall3fbc8562015-11-29 22:10:52 -08007329 imageObject.memory = memory
7330 imageObject.memoryOffset = memoryOffset
Jesse Halld27f6aa2015-08-15 17:58:48 -07007331
7332 return ?
7333}
7334
Jesse Hall606a54e2015-11-19 22:17:28 -08007335cmd void vkGetImageSparseMemoryRequirements(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007336 VkDevice device,
7337 VkImage image,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007338 u32* pSparseMemoryRequirementCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007339 VkSparseImageMemoryRequirements* pSparseMemoryRequirements) {
7340 deviceObject := GetDevice(device)
7341 imageObject := GetImage(image)
7342 assert(imageObject.device == device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007343}
7344
Jesse Hall606a54e2015-11-19 22:17:28 -08007345cmd void vkGetPhysicalDeviceSparseImageFormatProperties(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007346 VkPhysicalDevice physicalDevice,
7347 VkFormat format,
7348 VkImageType type,
Jesse Hall091ed9e2015-11-30 00:55:29 -08007349 VkSampleCountFlagBits samples,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007350 VkImageUsageFlags usage,
7351 VkImageTiling tiling,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007352 u32* pPropertyCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007353 VkSparseImageFormatProperties* pProperties) {
7354 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007355}
7356
Jesse Halla6429252015-11-29 18:59:42 -08007357cmd VkResult vkQueueBindSparse(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007358 VkQueue queue,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007359 u32 bindInfoCount,
Jesse Halla6429252015-11-29 18:59:42 -08007360 const VkBindSparseInfo* pBindInfo,
7361 VkFence fence) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007362 queueObject := GetQueue(queue)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007363
7364 return ?
7365}
7366
7367
7368// Fence functions
7369
7370@threadSafety("system")
7371cmd VkResult vkCreateFence(
7372 VkDevice device,
7373 const VkFenceCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007374 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007375 VkFence* pFence) {
7376 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_FENCE_CREATE_INFO)
7377 deviceObject := GetDevice(device)
7378
7379 fence := ?
7380 pFence[0] = fence
7381 State.Fences[fence] = new!FenceObject(
Jesse Halld8bade02015-11-24 10:24:18 -08007382 device: device, signaled: (pCreateInfo.flags == as!VkFenceCreateFlags(VK_FENCE_CREATE_SIGNALED_BIT)))
Jesse Halld27f6aa2015-08-15 17:58:48 -07007383
7384 return ?
7385}
7386
7387@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007388cmd void vkDestroyFence(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007389 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007390 VkFence fence,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007391 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007392 deviceObject := GetDevice(device)
7393 fenceObject := GetFence(fence)
7394 assert(fenceObject.device == device)
7395
7396 State.Fences[fence] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07007397}
7398
7399@threadSafety("system")
7400cmd VkResult vkResetFences(
7401 VkDevice device,
7402 u32 fenceCount,
7403 const VkFence* pFences) {
7404 deviceObject := GetDevice(device)
7405
7406 fences := pFences[0:fenceCount]
7407 for i in (0 .. fenceCount) {
7408 fence := fences[i]
7409 fenceObject := GetFence(fence)
7410 assert(fenceObject.device == device)
7411 fenceObject.signaled = false
7412 }
7413
7414 return ?
7415}
7416
7417@threadSafety("system")
7418cmd VkResult vkGetFenceStatus(
7419 VkDevice device,
7420 VkFence fence) {
7421 deviceObject := GetDevice(device)
7422 fenceObject := GetFence(fence)
7423 assert(fenceObject.device == device)
7424
7425 return ?
7426}
7427
7428@threadSafety("system")
7429cmd VkResult vkWaitForFences(
7430 VkDevice device,
7431 u32 fenceCount,
7432 const VkFence* pFences,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007433 VkBool32 waitAll,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007434 u64 timeout) { /// timeout in nanoseconds
7435 deviceObject := GetDevice(device)
7436
7437 fences := pFences[0:fenceCount]
7438 for i in (0 .. fenceCount) {
7439 fence := fences[i]
7440 fenceObject := GetFence(fence)
7441 assert(fenceObject.device == device)
7442 }
7443
7444 return ?
7445}
7446
7447
7448// Queue semaphore functions
7449
7450@threadSafety("system")
7451cmd VkResult vkCreateSemaphore(
7452 VkDevice device,
7453 const VkSemaphoreCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007454 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007455 VkSemaphore* pSemaphore) {
7456 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO)
7457 deviceObject := GetDevice(device)
7458
7459 semaphore := ?
7460 pSemaphore[0] = semaphore
7461 State.Semaphores[semaphore] = new!SemaphoreObject(device: device)
7462
7463 return ?
7464}
7465
7466@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007467cmd void vkDestroySemaphore(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007468 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007469 VkSemaphore semaphore,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007470 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007471 deviceObject := GetDevice(device)
7472 semaphoreObject := GetSemaphore(semaphore)
7473 assert(semaphoreObject.device == device)
7474
7475 State.Semaphores[semaphore] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07007476}
7477
Jesse Halld27f6aa2015-08-15 17:58:48 -07007478
7479// Event functions
7480
7481@threadSafety("system")
7482cmd VkResult vkCreateEvent(
7483 VkDevice device,
7484 const VkEventCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007485 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007486 VkEvent* pEvent) {
7487 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_EVENT_CREATE_INFO)
7488 deviceObject := GetDevice(device)
7489
7490 event := ?
7491 pEvent[0] = event
7492 State.Events[event] = new!EventObject(device: device)
7493
7494 return ?
7495}
7496
7497@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007498cmd void vkDestroyEvent(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007499 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007500 VkEvent event,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007501 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007502 deviceObject := GetDevice(device)
7503 eventObject := GetEvent(event)
7504 assert(eventObject.device == device)
7505
7506 State.Events[event] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07007507}
7508
7509@threadSafety("system")
7510cmd VkResult vkGetEventStatus(
7511 VkDevice device,
7512 VkEvent event) {
7513 deviceObject := GetDevice(device)
7514 eventObject := GetEvent(event)
7515 assert(eventObject.device == device)
7516
7517 return ?
7518}
7519
7520@threadSafety("system")
7521cmd VkResult vkSetEvent(
7522 VkDevice device,
7523 VkEvent event) {
7524 deviceObject := GetDevice(device)
7525 eventObject := GetEvent(event)
7526 assert(eventObject.device == device)
7527
7528 return ?
7529}
7530
7531@threadSafety("system")
7532cmd VkResult vkResetEvent(
7533 VkDevice device,
7534 VkEvent event) {
7535 deviceObject := GetDevice(device)
7536 eventObject := GetEvent(event)
7537 assert(eventObject.device == device)
7538
7539 return ?
7540}
7541
7542
7543// Query functions
7544
7545@threadSafety("system")
7546cmd VkResult vkCreateQueryPool(
7547 VkDevice device,
7548 const VkQueryPoolCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007549 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007550 VkQueryPool* pQueryPool) {
7551 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO)
7552 deviceObject := GetDevice(device)
7553
7554 queryPool := ?
7555 pQueryPool[0] = queryPool
7556 State.QueryPools[queryPool] = new!QueryPoolObject(device: device)
7557
7558 return ?
7559}
7560
7561@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007562cmd void vkDestroyQueryPool(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007563 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007564 VkQueryPool queryPool,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007565 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007566 deviceObject := GetDevice(device)
7567 queryPoolObject := GetQueryPool(queryPool)
7568 assert(queryPoolObject.device == device)
7569
7570 State.QueryPools[queryPool] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07007571}
7572
7573@threadSafety("system")
7574cmd VkResult vkGetQueryPoolResults(
7575 VkDevice device,
7576 VkQueryPool queryPool,
Jesse Hallf9fa9a52016-01-08 16:08:51 -08007577 u32 firstQuery,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007578 u32 queryCount,
Jesse Halla9bb62b2015-11-21 19:31:56 -08007579 platform.size_t dataSize,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007580 void* pData,
Jesse Halla9bb62b2015-11-21 19:31:56 -08007581 VkDeviceSize stride,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007582 VkQueryResultFlags flags) {
7583 deviceObject := GetDevice(device)
7584 queryPoolObject := GetQueryPool(queryPool)
7585 assert(queryPoolObject.device == device)
7586
Jesse Halld27f6aa2015-08-15 17:58:48 -07007587 data := pData[0:dataSize]
7588
7589 return ?
7590}
7591
7592// Buffer functions
7593
7594@threadSafety("system")
7595cmd VkResult vkCreateBuffer(
7596 VkDevice device,
7597 const VkBufferCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007598 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007599 VkBuffer* pBuffer) {
7600 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO)
7601 deviceObject := GetDevice(device)
7602
7603 buffer := ?
7604 pBuffer[0] = buffer
7605 State.Buffers[buffer] = new!BufferObject(device: device)
7606
7607 return ?
7608}
7609
7610@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007611cmd void vkDestroyBuffer(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007612 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007613 VkBuffer buffer,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007614 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007615 deviceObject := GetDevice(device)
7616 bufferObject := GetBuffer(buffer)
7617 assert(bufferObject.device == device)
7618
Jesse Hall3fbc8562015-11-29 22:10:52 -08007619 assert(bufferObject.memory == 0)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007620 State.Buffers[buffer] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07007621}
7622
7623
7624// Buffer view functions
7625
7626@threadSafety("system")
7627cmd VkResult vkCreateBufferView(
7628 VkDevice device,
7629 const VkBufferViewCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007630 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007631 VkBufferView* pView) {
7632 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO)
7633 deviceObject := GetDevice(device)
7634
7635 bufferObject := GetBuffer(pCreateInfo.buffer)
7636 assert(bufferObject.device == device)
7637
7638 view := ?
7639 pView[0] = view
7640 State.BufferViews[view] = new!BufferViewObject(device: device, buffer: pCreateInfo.buffer)
7641
7642 return ?
7643}
7644
7645@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007646cmd void vkDestroyBufferView(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007647 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007648 VkBufferView bufferView,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007649 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007650 deviceObject := GetDevice(device)
7651 bufferViewObject := GetBufferView(bufferView)
7652 assert(bufferViewObject.device == device)
7653
7654 State.BufferViews[bufferView] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07007655}
7656
7657
7658// Image functions
7659
7660@threadSafety("system")
7661cmd VkResult vkCreateImage(
7662 VkDevice device,
7663 const VkImageCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007664 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007665 VkImage* pImage) {
7666 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO)
7667 deviceObject := GetDevice(device)
7668
7669 image := ?
7670 pImage[0] = image
7671 State.Images[image] = new!ImageObject(device: device)
7672
7673 return ?
7674}
7675
7676@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007677cmd void vkDestroyImage(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007678 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007679 VkImage image,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007680 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007681 deviceObject := GetDevice(device)
7682 imageObject := GetImage(image)
7683 assert(imageObject.device == device)
7684
Jesse Hall3fbc8562015-11-29 22:10:52 -08007685 assert(imageObject.memory == 0)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007686 State.Images[image] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07007687}
7688
Jesse Hall606a54e2015-11-19 22:17:28 -08007689cmd void vkGetImageSubresourceLayout(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007690 VkDevice device,
7691 VkImage image,
7692 const VkImageSubresource* pSubresource,
7693 VkSubresourceLayout* pLayout) {
7694 deviceObject := GetDevice(device)
7695 imageObject := GetImage(image)
7696 assert(imageObject.device == device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007697}
7698
7699
7700// Image view functions
7701
7702@threadSafety("system")
7703cmd VkResult vkCreateImageView(
7704 VkDevice device,
7705 const VkImageViewCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007706 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007707 VkImageView* pView) {
7708 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO)
7709 deviceObject := GetDevice(device)
7710
7711 imageObject := GetImage(pCreateInfo.image)
7712 assert(imageObject.device == device)
7713
7714 view := ?
7715 pView[0] = view
7716 State.ImageViews[view] = new!ImageViewObject(device: device, image: pCreateInfo.image)
7717
7718 return ?
7719}
7720
7721@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007722cmd void vkDestroyImageView(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007723 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007724 VkImageView imageView,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007725 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007726 deviceObject := GetDevice(device)
7727 imageViewObject := GetImageView(imageView)
7728 assert(imageViewObject.device == device)
7729
7730 State.ImageViews[imageView] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07007731}
7732
7733
7734// Shader functions
7735
7736cmd VkResult vkCreateShaderModule(
7737 VkDevice device,
7738 const VkShaderModuleCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007739 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007740 VkShaderModule* pShaderModule) {
7741 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO)
7742 deviceObject := GetDevice(device)
7743
7744 shaderModule := ?
7745 pShaderModule[0] = shaderModule
7746 State.ShaderModules[shaderModule] = new!ShaderModuleObject(device: device)
7747
7748 return ?
7749}
7750
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007751cmd void vkDestroyShaderModule(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007752 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007753 VkShaderModule shaderModule,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007754 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007755 deviceObject := GetDevice(device)
7756 shaderModuleObject := GetShaderModule(shaderModule)
7757 assert(shaderModuleObject.device == device)
7758
7759 State.ShaderModules[shaderModule] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07007760}
7761
Jesse Halld27f6aa2015-08-15 17:58:48 -07007762
7763// Pipeline functions
7764
7765cmd VkResult vkCreatePipelineCache(
7766 VkDevice device,
7767 const VkPipelineCacheCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007768 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007769 VkPipelineCache* pPipelineCache) {
7770 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO)
7771 deviceObject := GetDevice(device)
7772
7773 pipelineCache := ?
7774 pPipelineCache[0] = pipelineCache
7775 State.PipelineCaches[pipelineCache] = new!PipelineCacheObject(device: device)
7776
7777 return ?
7778}
7779
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007780cmd void vkDestroyPipelineCache(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007781 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007782 VkPipelineCache pipelineCache,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007783 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007784 deviceObject := GetDevice(device)
7785 pipelineCacheObject := GetPipelineCache(pipelineCache)
7786 assert(pipelineCacheObject.device == device)
7787
7788 State.PipelineCaches[pipelineCache] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07007789}
7790
Jesse Halld27f6aa2015-08-15 17:58:48 -07007791cmd VkResult vkGetPipelineCacheData(
7792 VkDevice device,
7793 VkPipelineCache pipelineCache,
Jesse Halla9bb62b2015-11-21 19:31:56 -08007794 platform.size_t* pDataSize,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007795 void* pData) {
7796 deviceObject := GetDevice(device)
7797 pipelineCacheObject := GetPipelineCache(pipelineCache)
7798 assert(pipelineCacheObject.device == device)
7799
7800 return ?
7801}
7802
7803cmd VkResult vkMergePipelineCaches(
7804 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007805 VkPipelineCache dstCache,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007806 u32 srcCacheCount,
7807 const VkPipelineCache* pSrcCaches) {
7808 deviceObject := GetDevice(device)
Jesse Hall3fbc8562015-11-29 22:10:52 -08007809 dstCacheObject := GetPipelineCache(dstCache)
7810 assert(dstCacheObject.device == device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007811
7812 srcCaches := pSrcCaches[0:srcCacheCount]
7813 for i in (0 .. srcCacheCount) {
7814 srcCache := srcCaches[i]
7815 srcCacheObject := GetPipelineCache(srcCache)
7816 assert(srcCacheObject.device == device)
7817 }
7818
7819 return ?
7820}
7821
7822cmd VkResult vkCreateGraphicsPipelines(
7823 VkDevice device,
7824 VkPipelineCache pipelineCache,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007825 u32 createInfoCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007826 const VkGraphicsPipelineCreateInfo* pCreateInfos,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007827 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007828 VkPipeline* pPipelines) {
7829 deviceObject := GetDevice(device)
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007830 if pipelineCache != NULL_HANDLE {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007831 pipelineCacheObject := GetPipelineCache(pipelineCache)
7832 assert(pipelineCacheObject.device == device)
7833 }
7834
Jesse Hall03b6fe12015-11-24 12:44:21 -08007835 createInfos := pCreateInfos[0:createInfoCount]
7836 pipelines := pPipelines[0:createInfoCount]
7837 for i in (0 .. createInfoCount) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007838 pipeline := ?
7839 pipelines[i] = pipeline
7840 State.Pipelines[pipeline] = new!PipelineObject(device: device)
7841 }
7842
7843 return ?
7844}
7845
7846cmd VkResult vkCreateComputePipelines(
7847 VkDevice device,
7848 VkPipelineCache pipelineCache,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007849 u32 createInfoCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007850 const VkComputePipelineCreateInfo* pCreateInfos,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007851 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007852 VkPipeline* pPipelines) {
7853 deviceObject := GetDevice(device)
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007854 if pipelineCache != NULL_HANDLE {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007855 pipelineCacheObject := GetPipelineCache(pipelineCache)
7856 assert(pipelineCacheObject.device == device)
7857 }
7858
Jesse Hall03b6fe12015-11-24 12:44:21 -08007859 createInfos := pCreateInfos[0:createInfoCount]
7860 pipelines := pPipelines[0:createInfoCount]
7861 for i in (0 .. createInfoCount) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007862 pipeline := ?
7863 pipelines[i] = pipeline
7864 State.Pipelines[pipeline] = new!PipelineObject(device: device)
7865 }
7866
7867 return ?
7868}
7869
7870@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007871cmd void vkDestroyPipeline(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007872 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007873 VkPipeline pipeline,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007874 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007875 deviceObject := GetDevice(device)
7876 pipelineObjects := GetPipeline(pipeline)
7877 assert(pipelineObjects.device == device)
7878
7879 State.Pipelines[pipeline] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07007880}
7881
7882
7883// Pipeline layout functions
7884
7885@threadSafety("system")
7886cmd VkResult vkCreatePipelineLayout(
7887 VkDevice device,
7888 const VkPipelineLayoutCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007889 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007890 VkPipelineLayout* pPipelineLayout) {
7891 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO)
7892 deviceObject := GetDevice(device)
7893
7894 pipelineLayout := ?
7895 pPipelineLayout[0] = pipelineLayout
7896 State.PipelineLayouts[pipelineLayout] = new!PipelineLayoutObject(device: device)
7897
7898 return ?
7899}
7900
7901@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007902cmd void vkDestroyPipelineLayout(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007903 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007904 VkPipelineLayout pipelineLayout,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007905 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007906 deviceObject := GetDevice(device)
7907 pipelineLayoutObjects := GetPipelineLayout(pipelineLayout)
7908 assert(pipelineLayoutObjects.device == device)
7909
7910 State.PipelineLayouts[pipelineLayout] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07007911}
7912
7913
7914// Sampler functions
7915
7916@threadSafety("system")
7917cmd VkResult vkCreateSampler(
7918 VkDevice device,
7919 const VkSamplerCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007920 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007921 VkSampler* pSampler) {
7922 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO)
7923 deviceObject := GetDevice(device)
7924
7925 sampler := ?
7926 pSampler[0] = sampler
7927 State.Samplers[sampler] = new!SamplerObject(device: device)
7928
7929 return ?
7930}
7931
7932@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007933cmd void vkDestroySampler(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007934 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007935 VkSampler sampler,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007936 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007937 deviceObject := GetDevice(device)
7938 samplerObject := GetSampler(sampler)
7939 assert(samplerObject.device == device)
7940
7941 State.Samplers[sampler] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07007942}
7943
7944
7945// Descriptor set functions
7946
7947@threadSafety("system")
7948cmd VkResult vkCreateDescriptorSetLayout(
7949 VkDevice device,
7950 const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007951 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007952 VkDescriptorSetLayout* pSetLayout) {
7953 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO)
7954 deviceObject := GetDevice(device)
7955
7956 setLayout := ?
7957 pSetLayout[0] = setLayout
7958 State.DescriptorSetLayouts[setLayout] = new!DescriptorSetLayoutObject(device: device)
7959
7960 return ?
7961}
7962
7963@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007964cmd void vkDestroyDescriptorSetLayout(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007965 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007966 VkDescriptorSetLayout descriptorSetLayout,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007967 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007968 deviceObject := GetDevice(device)
7969 descriptorSetLayoutObject := GetDescriptorSetLayout(descriptorSetLayout)
7970 assert(descriptorSetLayoutObject.device == device)
7971
7972 State.DescriptorSetLayouts[descriptorSetLayout] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07007973}
7974
7975@threadSafety("system")
7976cmd VkResult vkCreateDescriptorPool(
7977 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007978 const VkDescriptorPoolCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007979 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007980 VkDescriptorPool* pDescriptorPool) {
7981 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO)
7982 deviceObject := GetDevice(device)
7983
7984 descriptorPool := ?
7985 pDescriptorPool[0] = descriptorPool
7986 State.DescriptorPools[descriptorPool] = new!DescriptorPoolObject(device: device)
7987
7988 return ?
7989}
7990
7991@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007992cmd void vkDestroyDescriptorPool(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007993 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007994 VkDescriptorPool descriptorPool,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007995 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007996 deviceObject := GetDevice(device)
7997 descriptorPoolObject := GetDescriptorPool(descriptorPool)
7998 assert(descriptorPoolObject.device == device)
7999
8000 State.DescriptorPools[descriptorPool] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008001}
8002
8003@threadSafety("app")
8004cmd VkResult vkResetDescriptorPool(
8005 VkDevice device,
Jesse Hallfbf97b02015-11-20 14:17:03 -08008006 VkDescriptorPool descriptorPool,
8007 VkDescriptorPoolResetFlags flags) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008008 deviceObject := GetDevice(device)
8009 descriptorPoolObject := GetDescriptorPool(descriptorPool)
8010 assert(descriptorPoolObject.device == device)
8011
8012 return ?
8013}
8014
8015@threadSafety("app")
Jesse Hall3fbc8562015-11-29 22:10:52 -08008016cmd VkResult vkAllocateDescriptorSets(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008017 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008018 const VkDescriptorSetAllocateInfo* pAllocateInfo,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008019 VkDescriptorSet* pDescriptorSets) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008020 deviceObject := GetDevice(device)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008021 allocInfo := pAllocateInfo[0]
Jesse Hallfbf97b02015-11-20 14:17:03 -08008022 descriptorPoolObject := GetDescriptorPool(allocInfo.descriptorPool)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008023
Jesse Hall03b6fe12015-11-24 12:44:21 -08008024 setLayouts := allocInfo.pSetLayouts[0:allocInfo.setCount]
8025 for i in (0 .. allocInfo.setCount) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008026 setLayout := setLayouts[i]
8027 setLayoutObject := GetDescriptorSetLayout(setLayout)
8028 assert(setLayoutObject.device == device)
8029 }
8030
Jesse Hall03b6fe12015-11-24 12:44:21 -08008031 descriptorSets := pDescriptorSets[0:allocInfo.setCount]
8032 for i in (0 .. allocInfo.setCount) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008033 descriptorSet := ?
8034 descriptorSets[i] = descriptorSet
8035 State.DescriptorSets[descriptorSet] = new!DescriptorSetObject(device: device)
8036 }
8037
8038 return ?
8039}
8040
Jesse Hallf09c6b12015-08-15 19:54:28 -07008041cmd VkResult vkFreeDescriptorSets(
8042 VkDevice device,
8043 VkDescriptorPool descriptorPool,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008044 u32 descriptorSetCount,
Jesse Hallf09c6b12015-08-15 19:54:28 -07008045 const VkDescriptorSet* pDescriptorSets) {
8046 deviceObject := GetDevice(device)
8047 descriptorPoolObject := GetDescriptorPool(descriptorPool)
8048
Jesse Hall03b6fe12015-11-24 12:44:21 -08008049 descriptorSets := pDescriptorSets[0:descriptorSetCount]
8050 for i in (0 .. descriptorSetCount) {
Jesse Hallf09c6b12015-08-15 19:54:28 -07008051 descriptorSet := descriptorSets[i]
8052 descriptorSetObject := GetDescriptorSet(descriptorSet)
8053 assert(descriptorSetObject.device == device)
8054 State.DescriptorSets[descriptorSet] = null
8055 }
8056
8057 return ?
8058}
8059
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008060cmd void vkUpdateDescriptorSets(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008061 VkDevice device,
Jesse Hallb00daad2015-11-29 19:46:20 -08008062 u32 descriptorWriteCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008063 const VkWriteDescriptorSet* pDescriptorWrites,
Jesse Hallb00daad2015-11-29 19:46:20 -08008064 u32 descriptorCopyCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008065 const VkCopyDescriptorSet* pDescriptorCopies) {
8066 deviceObject := GetDevice(device)
8067
Jesse Hallb00daad2015-11-29 19:46:20 -08008068 descriptorWrites := pDescriptorWrites[0:descriptorWriteCount]
8069 for i in (0 .. descriptorWriteCount) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008070 descriptorWrite := descriptorWrites[i]
Jesse Hall3fbc8562015-11-29 22:10:52 -08008071 descriptorWriteObject := GetDescriptorSet(descriptorWrite.dstSet)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008072 assert(descriptorWriteObject.device == device)
8073 }
8074
Jesse Hallb00daad2015-11-29 19:46:20 -08008075 descriptorCopies := pDescriptorCopies[0:descriptorCopyCount]
8076 for i in (0 .. descriptorCopyCount) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008077 descriptorCopy := descriptorCopies[i]
Jesse Hall3fbc8562015-11-29 22:10:52 -08008078 descriptorCopyObject := GetDescriptorSet(descriptorCopy.dstSet)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008079 assert(descriptorCopyObject.device == device)
8080 }
Jesse Halld27f6aa2015-08-15 17:58:48 -07008081}
8082
8083
8084// Framebuffer functions
8085
8086@threadSafety("system")
8087cmd VkResult vkCreateFramebuffer(
8088 VkDevice device,
8089 const VkFramebufferCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008090 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008091 VkFramebuffer* pFramebuffer) {
8092 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO)
8093 deviceObject := GetDevice(device)
8094
8095 framebuffer := ?
8096 pFramebuffer[0] = framebuffer
8097 State.Framebuffers[framebuffer] = new!FramebufferObject(device: device)
8098
8099 return ?
8100}
8101
8102@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008103cmd void vkDestroyFramebuffer(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008104 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008105 VkFramebuffer framebuffer,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008106 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008107 deviceObject := GetDevice(device)
8108 framebufferObject := GetFramebuffer(framebuffer)
8109 assert(framebufferObject.device == device)
8110
8111 State.Framebuffers[framebuffer] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008112}
8113
8114
8115// Renderpass functions
8116
8117@threadSafety("system")
8118cmd VkResult vkCreateRenderPass(
8119 VkDevice device,
8120 const VkRenderPassCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008121 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008122 VkRenderPass* pRenderPass) {
8123 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO)
8124 deviceObject := GetDevice(device)
8125
8126 renderpass := ?
8127 pRenderPass[0] = renderpass
8128 State.RenderPasses[renderpass] = new!RenderPassObject(device: device)
8129
8130 return ?
8131}
8132
8133@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008134cmd void vkDestroyRenderPass(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008135 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008136 VkRenderPass renderPass,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008137 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008138 deviceObject := GetDevice(device)
8139 renderPassObject := GetRenderPass(renderPass)
8140 assert(renderPassObject.device == device)
8141
8142 State.RenderPasses[renderPass] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008143}
8144
Jesse Hall606a54e2015-11-19 22:17:28 -08008145cmd void vkGetRenderAreaGranularity(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008146 VkDevice device,
8147 VkRenderPass renderPass,
8148 VkExtent2D* pGranularity) {
8149 deviceObject := GetDevice(device)
8150 renderPassObject := GetRenderPass(renderPass)
8151
8152 granularity := ?
8153 pGranularity[0] = granularity
Jesse Halld27f6aa2015-08-15 17:58:48 -07008154}
8155
8156// Command pool functions
8157
8158cmd VkResult vkCreateCommandPool(
8159 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008160 const VkCommandPoolCreateInfo* pCreateInfo,
8161 const VkAllocationCallbacks* pAllocator,
8162 VkCommandPool* pCommandPool) {
8163 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008164 deviceObject := GetDevice(device)
8165
Jesse Hall3fbc8562015-11-29 22:10:52 -08008166 commandPool := ?
8167 pCommandPool[0] = commandPool
8168 State.CommandPools[commandPool] = new!CommandPoolObject(device: device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008169
8170 return ?
8171}
8172
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008173cmd void vkDestroyCommandPool(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008174 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008175 VkCommandPool commandPool,
8176 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008177 deviceObject := GetDevice(device)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008178 commandPoolObject := GetCommandPool(commandPool)
8179 assert(commandPoolObject.device == device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008180
Jesse Hall3fbc8562015-11-29 22:10:52 -08008181 State.CommandPools[commandPool] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008182}
8183
8184cmd VkResult vkResetCommandPool(
8185 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008186 VkCommandPool commandPool,
8187 VkCommandPoolResetFlags flags) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008188 deviceObject := GetDevice(device)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008189 commandPoolObject := GetCommandPool(commandPool)
8190 assert(commandPoolObject.device == device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008191
8192 return ?
8193}
8194
8195// Command buffer functions
8196
Jesse Hall3fbc8562015-11-29 22:10:52 -08008197macro void bindCommandBuffer(VkCommandBuffer commandBuffer, any obj, VkDeviceMemory memory) {
8198 memoryObject := GetDeviceMemory(memory)
8199 memoryObject.boundCommandBuffers[commandBuffer] = commandBuffer
Jesse Halld27f6aa2015-08-15 17:58:48 -07008200
Jesse Hall3fbc8562015-11-29 22:10:52 -08008201 commandBufferObject := GetCommandBuffer(commandBuffer)
8202 commandBufferObject.boundObjects[as!u64(obj)] = memory
Jesse Halld27f6aa2015-08-15 17:58:48 -07008203}
8204
Jesse Hall3fbc8562015-11-29 22:10:52 -08008205macro void unbindCommandBuffer(VkCommandBuffer commandBuffer, any obj, VkDeviceMemory memory) {
8206 memoryObject := GetDeviceMemory(memory)
8207 memoryObject.boundCommandBuffers[commandBuffer] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008208
Jesse Hall3fbc8562015-11-29 22:10:52 -08008209 commandBufferObject := GetCommandBuffer(commandBuffer)
8210 commandBufferObject.boundObjects[as!u64(obj)] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008211}
8212
8213@threadSafety("system")
Jesse Hall3fbc8562015-11-29 22:10:52 -08008214cmd VkResult vkAllocateCommandBuffers(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008215 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008216 const VkCommandBufferAllocateInfo* pAllocateInfo,
8217 VkCommandBuffer* pCommandBuffers) {
Jesse Hallf4ab2b12015-11-30 16:04:55 -08008218 assert(pAllocateInfo[0].sType == VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008219
Jesse Hall3dd678a2016-01-08 21:52:01 -08008220 count := pAllocateInfo[0].commandBufferCount
Jesse Hall3fbc8562015-11-29 22:10:52 -08008221 commandBuffers := pCommandBuffers[0:count]
Jesse Hallfbf97b02015-11-20 14:17:03 -08008222 for i in (0 .. count) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008223 commandBuffer := ?
8224 commandBuffers[i] = commandBuffer
8225 State.CommandBuffers[commandBuffer] = new!CommandBufferObject(device: device)
Jesse Hallfbf97b02015-11-20 14:17:03 -08008226 }
Jesse Halld27f6aa2015-08-15 17:58:48 -07008227
8228 return ?
8229}
8230
8231@threadSafety("system")
Jesse Hallfbf97b02015-11-20 14:17:03 -08008232cmd void vkFreeCommandBuffers(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008233 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008234 VkCommandPool commandPool,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008235 u32 commandBufferCount,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008236 const VkCommandBuffer* pCommandBuffers) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008237 deviceObject := GetDevice(device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008238
Jesse Hall3fbc8562015-11-29 22:10:52 -08008239 commandBuffers := pCommandBuffers[0:commandBufferCount]
Jesse Hall03b6fe12015-11-24 12:44:21 -08008240 for i in (0 .. commandBufferCount) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008241 commandBufferObject := GetCommandBuffer(commandBuffers[i])
8242 assert(commandBufferObject.device == device)
Jesse Hallfbf97b02015-11-20 14:17:03 -08008243 // TODO: iterate over boundObjects and clear memory bindings
Jesse Hall3fbc8562015-11-29 22:10:52 -08008244 State.CommandBuffers[commandBuffers[i]] = null
Jesse Hallfbf97b02015-11-20 14:17:03 -08008245 }
Jesse Halld27f6aa2015-08-15 17:58:48 -07008246}
8247
8248@threadSafety("app")
8249cmd VkResult vkBeginCommandBuffer(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008250 VkCommandBuffer commandBuffer,
8251 const VkCommandBufferBeginInfo* pBeginInfo) {
8252 assert(pBeginInfo.sType == VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO)
8253 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008254
8255 // TODO: iterate over boundObjects and clear memory bindings
8256
8257 return ?
8258}
8259
8260@threadSafety("app")
8261cmd VkResult vkEndCommandBuffer(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008262 VkCommandBuffer commandBuffer) {
8263 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008264
8265 return ?
8266}
8267
8268@threadSafety("app")
8269cmd VkResult vkResetCommandBuffer(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008270 VkCommandBuffer commandBuffer,
8271 VkCommandBufferResetFlags flags) {
8272 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008273
8274 // TODO: iterate over boundObjects and clear memory bindings
8275
8276 return ?
8277}
8278
8279
8280// Command buffer building functions
8281
8282@threadSafety("app")
8283cmd void vkCmdBindPipeline(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008284 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008285 VkPipelineBindPoint pipelineBindPoint,
8286 VkPipeline pipeline) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008287 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008288 pipelineObject := GetPipeline(pipeline)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008289 assert(commandBufferObject.device == pipelineObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008290
Jesse Halld8bade02015-11-24 10:24:18 -08008291 queue := switch (pipelineBindPoint) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008292 case VK_PIPELINE_BIND_POINT_COMPUTE: VK_QUEUE_COMPUTE_BIT
8293 case VK_PIPELINE_BIND_POINT_GRAPHICS: VK_QUEUE_GRAPHICS_BIT
8294 }
Jesse Hall3fbc8562015-11-29 22:10:52 -08008295 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, queue)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008296}
8297
8298@threadSafety("app")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008299cmd void vkCmdSetViewport(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008300 VkCommandBuffer commandBuffer,
Jesse Hallf9fa9a52016-01-08 16:08:51 -08008301 u32 firstViewport,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008302 u32 viewportCount,
8303 const VkViewport* pViewports) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008304 commandBufferObject := GetCommandBuffer(commandBuffer)
8305 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008306}
8307
8308@threadSafety("app")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008309cmd void vkCmdSetScissor(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008310 VkCommandBuffer commandBuffer,
Jesse Hallf9fa9a52016-01-08 16:08:51 -08008311 u32 firstScissor,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008312 u32 scissorCount,
8313 const VkRect2D* pScissors) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008314 commandBufferObject := GetCommandBuffer(commandBuffer)
8315 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008316}
8317
8318@threadSafety("app")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008319cmd void vkCmdSetLineWidth(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008320 VkCommandBuffer commandBuffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008321 f32 lineWidth) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008322 commandBufferObject := GetCommandBuffer(commandBuffer)
8323 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008324}
8325
8326@threadSafety("app")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008327cmd void vkCmdSetDepthBias(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008328 VkCommandBuffer commandBuffer,
Jesse Halla9bb62b2015-11-21 19:31:56 -08008329 f32 depthBiasConstantFactor,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008330 f32 depthBiasClamp,
Jesse Halla9bb62b2015-11-21 19:31:56 -08008331 f32 depthBiasSlopeFactor) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008332 commandBufferObject := GetCommandBuffer(commandBuffer)
8333 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008334}
Jesse Halld27f6aa2015-08-15 17:58:48 -07008335
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008336@threadSafety("app")
8337cmd void vkCmdSetBlendConstants(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008338 VkCommandBuffer commandBuffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008339 // TODO(jessehall): apic only supports 'const' on pointer types. Using
8340 // an annotation as a quick hack to pass this to the template without
8341 // having to modify the AST and semantic model.
Jesse Hallb00daad2015-11-29 19:46:20 -08008342 @readonly f32[4] blendConstants) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008343 commandBufferObject := GetCommandBuffer(commandBuffer)
8344 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008345}
8346
8347@threadSafety("app")
8348cmd void vkCmdSetDepthBounds(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008349 VkCommandBuffer commandBuffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008350 f32 minDepthBounds,
8351 f32 maxDepthBounds) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008352 commandBufferObject := GetCommandBuffer(commandBuffer)
8353 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008354}
8355
8356@threadSafety("app")
8357cmd void vkCmdSetStencilCompareMask(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008358 VkCommandBuffer commandBuffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008359 VkStencilFaceFlags faceMask,
Jesse Hall65ab5522015-11-30 00:07:16 -08008360 u32 compareMask) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008361 commandBufferObject := GetCommandBuffer(commandBuffer)
8362 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008363}
8364
8365@threadSafety("app")
8366cmd void vkCmdSetStencilWriteMask(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008367 VkCommandBuffer commandBuffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008368 VkStencilFaceFlags faceMask,
Jesse Hall65ab5522015-11-30 00:07:16 -08008369 u32 writeMask) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008370 commandBufferObject := GetCommandBuffer(commandBuffer)
8371 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008372}
8373
8374@threadSafety("app")
8375cmd void vkCmdSetStencilReference(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008376 VkCommandBuffer commandBuffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008377 VkStencilFaceFlags faceMask,
Jesse Hall65ab5522015-11-30 00:07:16 -08008378 u32 reference) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008379 commandBufferObject := GetCommandBuffer(commandBuffer)
8380 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008381}
8382
8383@threadSafety("app")
8384cmd void vkCmdBindDescriptorSets(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008385 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008386 VkPipelineBindPoint pipelineBindPoint,
8387 VkPipelineLayout layout,
8388 u32 firstSet,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008389 u32 descriptorSetCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008390 const VkDescriptorSet* pDescriptorSets,
8391 u32 dynamicOffsetCount,
8392 const u32* pDynamicOffsets) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008393 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008394
Jesse Hall03b6fe12015-11-24 12:44:21 -08008395 descriptorSets := pDescriptorSets[0:descriptorSetCount]
8396 for i in (0 .. descriptorSetCount) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008397 descriptorSet := descriptorSets[i]
8398 descriptorSetObject := GetDescriptorSet(descriptorSet)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008399 assert(commandBufferObject.device == descriptorSetObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008400 }
8401
8402 dynamicOffsets := pDynamicOffsets[0:dynamicOffsetCount]
8403 for i in (0 .. dynamicOffsetCount) {
8404 dynamicOffset := dynamicOffsets[i]
8405 }
8406
Jesse Halld8bade02015-11-24 10:24:18 -08008407 queue := switch (pipelineBindPoint) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008408 case VK_PIPELINE_BIND_POINT_COMPUTE: VK_QUEUE_COMPUTE_BIT
8409 case VK_PIPELINE_BIND_POINT_GRAPHICS: VK_QUEUE_GRAPHICS_BIT
8410 }
Jesse Hall3fbc8562015-11-29 22:10:52 -08008411 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, queue)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008412}
8413
8414@threadSafety("app")
8415cmd void vkCmdBindIndexBuffer(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008416 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008417 VkBuffer buffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008418 VkDeviceSize offset,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008419 VkIndexType indexType) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008420 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008421 bufferObject := GetBuffer(buffer)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008422 assert(commandBufferObject.device == bufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008423
Jesse Hall3fbc8562015-11-29 22:10:52 -08008424 bindCommandBuffer(commandBuffer, buffer, bufferObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008425
Jesse Hall3fbc8562015-11-29 22:10:52 -08008426 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008427}
8428
8429@threadSafety("app")
8430cmd void vkCmdBindVertexBuffers(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008431 VkCommandBuffer commandBuffer,
Jesse Hallf9fa9a52016-01-08 16:08:51 -08008432 u32 firstBinding,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008433 u32 bindingCount,
8434 const VkBuffer* pBuffers,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008435 const VkDeviceSize* pOffsets) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008436 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008437
Jesse Hallf9fa9a52016-01-08 16:08:51 -08008438 // TODO: check if not [firstBinding:firstBinding+bindingCount]
Jesse Halld27f6aa2015-08-15 17:58:48 -07008439 buffers := pBuffers[0:bindingCount]
8440 offsets := pOffsets[0:bindingCount]
8441 for i in (0 .. bindingCount) {
8442 buffer := buffers[i]
8443 offset := offsets[i]
8444 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 }
8449
Jesse Hall3fbc8562015-11-29 22:10:52 -08008450 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008451}
8452
8453@threadSafety("app")
8454cmd void vkCmdDraw(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008455 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008456 u32 vertexCount,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008457 u32 instanceCount,
8458 u32 firstVertex,
8459 u32 firstInstance) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008460 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008461
Jesse Hall3fbc8562015-11-29 22:10:52 -08008462 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008463}
8464
8465@threadSafety("app")
8466cmd void vkCmdDrawIndexed(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008467 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008468 u32 indexCount,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008469 u32 instanceCount,
8470 u32 firstIndex,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008471 s32 vertexOffset,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008472 u32 firstInstance) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008473 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008474
Jesse Hall3fbc8562015-11-29 22:10:52 -08008475 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008476}
8477
8478@threadSafety("app")
8479cmd void vkCmdDrawIndirect(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008480 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008481 VkBuffer buffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008482 VkDeviceSize offset,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008483 u32 drawCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008484 u32 stride) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008485 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008486 bufferObject := GetBuffer(buffer)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008487 assert(commandBufferObject.device == bufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008488
Jesse Hall3fbc8562015-11-29 22:10:52 -08008489 bindCommandBuffer(commandBuffer, buffer, bufferObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008490
Jesse Hall3fbc8562015-11-29 22:10:52 -08008491 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008492}
8493
8494@threadSafety("app")
8495cmd void vkCmdDrawIndexedIndirect(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008496 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008497 VkBuffer buffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008498 VkDeviceSize offset,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008499 u32 drawCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008500 u32 stride) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008501 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008502 bufferObject := GetBuffer(buffer)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008503 assert(commandBufferObject.device == bufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008504
Jesse Hall3fbc8562015-11-29 22:10:52 -08008505 bindCommandBuffer(commandBuffer, buffer, bufferObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008506
Jesse Hall3fbc8562015-11-29 22:10:52 -08008507 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008508}
8509
8510@threadSafety("app")
8511cmd void vkCmdDispatch(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008512 VkCommandBuffer commandBuffer,
Jesse Hallad250842017-03-10 18:35:38 -08008513 u32 groupCountX,
8514 u32 groupCountY,
8515 u32 groupCountZ) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008516 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008517
Jesse Hall3fbc8562015-11-29 22:10:52 -08008518 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_COMPUTE_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008519}
8520
8521@threadSafety("app")
8522cmd void vkCmdDispatchIndirect(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008523 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008524 VkBuffer buffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008525 VkDeviceSize offset) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008526 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008527 bufferObject := GetBuffer(buffer)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008528 assert(commandBufferObject.device == bufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008529
Jesse Hall3fbc8562015-11-29 22:10:52 -08008530 bindCommandBuffer(commandBuffer, buffer, bufferObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008531
Jesse Hall3fbc8562015-11-29 22:10:52 -08008532 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_COMPUTE_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008533}
8534
8535@threadSafety("app")
8536cmd void vkCmdCopyBuffer(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008537 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008538 VkBuffer srcBuffer,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008539 VkBuffer dstBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008540 u32 regionCount,
8541 const VkBufferCopy* pRegions) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008542 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008543 srcBufferObject := GetBuffer(srcBuffer)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008544 dstBufferObject := GetBuffer(dstBuffer)
8545 assert(commandBufferObject.device == srcBufferObject.device)
8546 assert(commandBufferObject.device == dstBufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008547
8548 regions := pRegions[0:regionCount]
8549 for i in (0 .. regionCount) {
8550 region := regions[i]
8551 }
8552
Jesse Hall3fbc8562015-11-29 22:10:52 -08008553 bindCommandBuffer(commandBuffer, srcBuffer, srcBufferObject.memory)
8554 bindCommandBuffer(commandBuffer, dstBuffer, dstBufferObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008555
Jesse Hall65ab5522015-11-30 00:07:16 -08008556 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_TRANSFER_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008557}
8558
8559@threadSafety("app")
8560cmd void vkCmdCopyImage(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008561 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008562 VkImage srcImage,
8563 VkImageLayout srcImageLayout,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008564 VkImage dstImage,
8565 VkImageLayout dstImageLayout,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008566 u32 regionCount,
8567 const VkImageCopy* pRegions) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008568 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008569 srcImageObject := GetImage(srcImage)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008570 dstImageObject := GetImage(dstImage)
8571 assert(commandBufferObject.device == srcImageObject.device)
8572 assert(commandBufferObject.device == dstImageObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008573
8574 regions := pRegions[0:regionCount]
8575 for i in (0 .. regionCount) {
8576 region := regions[i]
8577 }
8578
Jesse Hall3fbc8562015-11-29 22:10:52 -08008579 bindCommandBuffer(commandBuffer, srcImage, srcImageObject.memory)
8580 bindCommandBuffer(commandBuffer, dstImage, dstImageObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008581
Jesse Hall65ab5522015-11-30 00:07:16 -08008582 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_TRANSFER_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008583}
8584
8585@threadSafety("app")
8586cmd void vkCmdBlitImage(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008587 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008588 VkImage srcImage,
8589 VkImageLayout srcImageLayout,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008590 VkImage dstImage,
8591 VkImageLayout dstImageLayout,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008592 u32 regionCount,
8593 const VkImageBlit* pRegions,
Jesse Hall23ff73f2015-11-29 14:36:39 -08008594 VkFilter filter) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008595 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008596 srcImageObject := GetImage(srcImage)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008597 dstImageObject := GetImage(dstImage)
8598 assert(commandBufferObject.device == srcImageObject.device)
8599 assert(commandBufferObject.device == dstImageObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008600
8601 regions := pRegions[0:regionCount]
8602 for i in (0 .. regionCount) {
8603 region := regions[i]
8604 }
8605
Jesse Hall3fbc8562015-11-29 22:10:52 -08008606 bindCommandBuffer(commandBuffer, srcImage, srcImageObject.memory)
8607 bindCommandBuffer(commandBuffer, dstImage, dstImageObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008608
Jesse Hall3fbc8562015-11-29 22:10:52 -08008609 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008610}
8611
8612@threadSafety("app")
8613cmd void vkCmdCopyBufferToImage(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008614 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008615 VkBuffer srcBuffer,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008616 VkImage dstImage,
8617 VkImageLayout dstImageLayout,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008618 u32 regionCount,
8619 const VkBufferImageCopy* pRegions) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008620 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008621 srcBufferObject := GetBuffer(srcBuffer)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008622 dstImageObject := GetImage(dstImage)
8623 assert(commandBufferObject.device == srcBufferObject.device)
8624 assert(commandBufferObject.device == dstImageObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008625
8626 regions := pRegions[0:regionCount]
8627 for i in (0 .. regionCount) {
8628 region := regions[i]
8629 }
8630
Jesse Hall3fbc8562015-11-29 22:10:52 -08008631 bindCommandBuffer(commandBuffer, srcBuffer, srcBufferObject.memory)
8632 bindCommandBuffer(commandBuffer, dstImage, dstImageObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008633
Jesse Hall65ab5522015-11-30 00:07:16 -08008634 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_TRANSFER_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008635}
8636
8637@threadSafety("app")
8638cmd void vkCmdCopyImageToBuffer(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008639 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008640 VkImage srcImage,
8641 VkImageLayout srcImageLayout,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008642 VkBuffer dstBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008643 u32 regionCount,
8644 const VkBufferImageCopy* pRegions) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008645 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008646 srcImageObject := GetImage(srcImage)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008647 dstBufferObject := GetBuffer(dstBuffer)
8648 assert(commandBufferObject.device == srcImageObject.device)
8649 assert(commandBufferObject.device == dstBufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008650
8651 regions := pRegions[0:regionCount]
8652 for i in (0 .. regionCount) {
8653 region := regions[i]
8654 }
8655
Jesse Hall3fbc8562015-11-29 22:10:52 -08008656 bindCommandBuffer(commandBuffer, srcImage, srcImageObject.memory)
8657 bindCommandBuffer(commandBuffer, dstBuffer, dstBufferObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008658
Jesse Hall65ab5522015-11-30 00:07:16 -08008659 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_TRANSFER_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008660}
8661
8662@threadSafety("app")
8663cmd void vkCmdUpdateBuffer(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008664 VkCommandBuffer commandBuffer,
8665 VkBuffer dstBuffer,
8666 VkDeviceSize dstOffset,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008667 VkDeviceSize dataSize,
Jesse Hall56d386a2016-07-26 15:20:40 -07008668 const void* pData) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008669 commandBufferObject := GetCommandBuffer(commandBuffer)
8670 dstBufferObject := GetBuffer(dstBuffer)
8671 assert(commandBufferObject.device == dstBufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008672
8673 data := pData[0:dataSize]
8674
Jesse Hall3fbc8562015-11-29 22:10:52 -08008675 bindCommandBuffer(commandBuffer, dstBuffer, dstBufferObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008676
Jesse Hall65ab5522015-11-30 00:07:16 -08008677 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_TRANSFER_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008678}
8679
8680@threadSafety("app")
8681cmd void vkCmdFillBuffer(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008682 VkCommandBuffer commandBuffer,
8683 VkBuffer dstBuffer,
8684 VkDeviceSize dstOffset,
Jesse Hallb00daad2015-11-29 19:46:20 -08008685 VkDeviceSize size,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008686 u32 data) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008687 commandBufferObject := GetCommandBuffer(commandBuffer)
8688 dstBufferObject := GetBuffer(dstBuffer)
8689 assert(commandBufferObject.device == dstBufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008690
Jesse Hall65ab5522015-11-30 00:07:16 -08008691 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_TRANSFER_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008692}
8693
8694@threadSafety("app")
8695cmd void vkCmdClearColorImage(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008696 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008697 VkImage image,
8698 VkImageLayout imageLayout,
8699 const VkClearColorValue* pColor,
8700 u32 rangeCount,
8701 const VkImageSubresourceRange* pRanges) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008702 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008703 imageObject := GetImage(image)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008704 assert(commandBufferObject.device == imageObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008705
8706 ranges := pRanges[0:rangeCount]
8707 for i in (0 .. rangeCount) {
8708 range := ranges[i]
8709 }
8710
Jesse Hall3fbc8562015-11-29 22:10:52 -08008711 bindCommandBuffer(commandBuffer, image, imageObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008712
Jesse Hall3fbc8562015-11-29 22:10:52 -08008713 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008714}
8715
8716@threadSafety("app")
8717cmd void vkCmdClearDepthStencilImage(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008718 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008719 VkImage image,
8720 VkImageLayout imageLayout,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008721 const VkClearDepthStencilValue* pDepthStencil,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008722 u32 rangeCount,
8723 const VkImageSubresourceRange* pRanges) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008724 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008725 imageObject := GetImage(image)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008726 assert(commandBufferObject.device == imageObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008727
8728 ranges := pRanges[0:rangeCount]
8729 for i in (0 .. rangeCount) {
8730 range := ranges[i]
8731 }
8732
Jesse Hall3fbc8562015-11-29 22:10:52 -08008733 bindCommandBuffer(commandBuffer, image, imageObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008734
Jesse Hall3fbc8562015-11-29 22:10:52 -08008735 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008736}
8737
8738@threadSafety("app")
Jesse Hallae38f732015-11-19 21:32:50 -08008739cmd void vkCmdClearAttachments(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008740 VkCommandBuffer commandBuffer,
Jesse Hallae38f732015-11-19 21:32:50 -08008741 u32 attachmentCount,
8742 const VkClearAttachment* pAttachments,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008743 u32 rectCount,
Jesse Halla15a4bf2015-11-19 22:48:02 -08008744 const VkClearRect* pRects) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008745 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008746
8747 rects := pRects[0:rectCount]
8748 for i in (0 .. rectCount) {
8749 rect := rects[i]
8750 }
8751
Jesse Hall3fbc8562015-11-29 22:10:52 -08008752 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008753}
8754
8755@threadSafety("app")
8756cmd void vkCmdResolveImage(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008757 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008758 VkImage srcImage,
8759 VkImageLayout srcImageLayout,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008760 VkImage dstImage,
8761 VkImageLayout dstImageLayout,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008762 u32 regionCount,
8763 const VkImageResolve* pRegions) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008764 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008765 srcImageObject := GetImage(srcImage)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008766 dstImageObject := GetImage(dstImage)
8767 assert(commandBufferObject.device == srcImageObject.device)
8768 assert(commandBufferObject.device == dstImageObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008769
8770 regions := pRegions[0:regionCount]
8771 for i in (0 .. regionCount) {
8772 region := regions[i]
8773 }
8774
Jesse Hall3fbc8562015-11-29 22:10:52 -08008775 bindCommandBuffer(commandBuffer, srcImage, srcImageObject.memory)
8776 bindCommandBuffer(commandBuffer, dstImage, dstImageObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008777
Jesse Hall3fbc8562015-11-29 22:10:52 -08008778 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008779}
8780
8781@threadSafety("app")
8782cmd void vkCmdSetEvent(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008783 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008784 VkEvent event,
8785 VkPipelineStageFlags stageMask) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008786 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008787 eventObject := GetEvent(event)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008788 assert(commandBufferObject.device == eventObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008789}
8790
8791@threadSafety("app")
8792cmd void vkCmdResetEvent(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008793 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008794 VkEvent event,
8795 VkPipelineStageFlags stageMask) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008796 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008797 eventObject := GetEvent(event)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008798 assert(commandBufferObject.device == eventObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008799}
8800
8801@threadSafety("app")
8802cmd void vkCmdWaitEvents(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008803 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008804 u32 eventCount,
8805 const VkEvent* pEvents,
8806 VkPipelineStageFlags srcStageMask,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008807 VkPipelineStageFlags dstStageMask,
8808 u32 memoryBarrierCount,
Jesse Hall3dd678a2016-01-08 21:52:01 -08008809 const VkMemoryBarrier* pMemoryBarriers,
8810 u32 bufferMemoryBarrierCount,
8811 const VkBufferMemoryBarrier* pBufferMemoryBarriers,
8812 u32 imageMemoryBarrierCount,
8813 const VkImageMemoryBarrier* pImageMemoryBarriers) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008814 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008815
8816 events := pEvents[0:eventCount]
8817 for i in (0 .. eventCount) {
8818 event := events[i]
8819 eventObject := GetEvent(event)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008820 assert(commandBufferObject.device == eventObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008821 }
8822
Jesse Hall3dd678a2016-01-08 21:52:01 -08008823 memoryBarriers := pMemoryBarriers[0:memoryBarrierCount]
Jesse Hall3fbc8562015-11-29 22:10:52 -08008824 for i in (0 .. memoryBarrierCount) {
Jesse Hall3dd678a2016-01-08 21:52:01 -08008825 memoryBarrier := memoryBarriers[i]
8826 }
8827 bufferMemoryBarriers := pBufferMemoryBarriers[0:bufferMemoryBarrierCount]
8828 for i in (0 .. bufferMemoryBarrierCount) {
8829 bufferMemoryBarrier := bufferMemoryBarriers[i]
8830 bufferObject := GetBuffer(bufferMemoryBarrier.buffer)
8831 assert(bufferObject.device == commandBufferObject.device)
8832 }
8833 imageMemoryBarriers := pImageMemoryBarriers[0:imageMemoryBarrierCount]
8834 for i in (0 .. imageMemoryBarrierCount) {
8835 imageMemoryBarrier := imageMemoryBarriers[i]
8836 imageObject := GetImage(imageMemoryBarrier.image)
8837 assert(imageObject.device == commandBufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008838 }
8839}
8840
8841@threadSafety("app")
8842cmd void vkCmdPipelineBarrier(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008843 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008844 VkPipelineStageFlags srcStageMask,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008845 VkPipelineStageFlags dstStageMask,
Jesse Halldc6d36c2015-11-29 19:12:15 -08008846 VkDependencyFlags dependencyFlags,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008847 u32 memoryBarrierCount,
Jesse Hall3dd678a2016-01-08 21:52:01 -08008848 const VkMemoryBarrier* pMemoryBarriers,
8849 u32 bufferMemoryBarrierCount,
8850 const VkBufferMemoryBarrier* pBufferMemoryBarriers,
8851 u32 imageMemoryBarrierCount,
8852 const VkImageMemoryBarrier* pImageMemoryBarriers) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008853 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008854
Jesse Hall3dd678a2016-01-08 21:52:01 -08008855 memoryBarriers := pMemoryBarriers[0:memoryBarrierCount]
Jesse Hall3fbc8562015-11-29 22:10:52 -08008856 for i in (0 .. memoryBarrierCount) {
Jesse Hall3dd678a2016-01-08 21:52:01 -08008857 memoryBarrier := memoryBarriers[i]
8858 }
8859 bufferMemoryBarriers := pBufferMemoryBarriers[0:bufferMemoryBarrierCount]
8860 for i in (0 .. bufferMemoryBarrierCount) {
8861 bufferMemoryBarrier := bufferMemoryBarriers[i]
8862 bufferObject := GetBuffer(bufferMemoryBarrier.buffer)
8863 assert(bufferObject.device == commandBufferObject.device)
8864 }
8865 imageMemoryBarriers := pImageMemoryBarriers[0:imageMemoryBarrierCount]
8866 for i in (0 .. imageMemoryBarrierCount) {
8867 imageMemoryBarrier := imageMemoryBarriers[i]
8868 imageObject := GetImage(imageMemoryBarrier.image)
8869 assert(imageObject.device == commandBufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008870 }
8871}
8872
8873@threadSafety("app")
8874cmd void vkCmdBeginQuery(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008875 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008876 VkQueryPool queryPool,
Jesse Hall3dd678a2016-01-08 21:52:01 -08008877 u32 query,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008878 VkQueryControlFlags flags) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008879 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008880 queryPoolObject := GetQueryPool(queryPool)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008881 assert(commandBufferObject.device == queryPoolObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008882}
8883
8884@threadSafety("app")
8885cmd void vkCmdEndQuery(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008886 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008887 VkQueryPool queryPool,
Jesse Hall3dd678a2016-01-08 21:52:01 -08008888 u32 query) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008889 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008890 queryPoolObject := GetQueryPool(queryPool)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008891 assert(commandBufferObject.device == queryPoolObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008892}
8893
8894@threadSafety("app")
8895cmd void vkCmdResetQueryPool(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008896 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008897 VkQueryPool queryPool,
Jesse Hallf9fa9a52016-01-08 16:08:51 -08008898 u32 firstQuery,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008899 u32 queryCount) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008900 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008901 queryPoolObject := GetQueryPool(queryPool)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008902 assert(commandBufferObject.device == queryPoolObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008903}
8904
8905@threadSafety("app")
8906cmd void vkCmdWriteTimestamp(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008907 VkCommandBuffer commandBuffer,
Jesse Hall6f39a6d2015-11-24 11:08:36 -08008908 VkPipelineStageFlagBits pipelineStage,
Jesse Halla3a7a1d2015-11-24 11:37:23 -08008909 VkQueryPool queryPool,
Jesse Hall3dd678a2016-01-08 21:52:01 -08008910 u32 query) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008911 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halla3a7a1d2015-11-24 11:37:23 -08008912 queryPoolObject := GetQueryPool(queryPool)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008913 assert(commandBufferObject.device == queryPoolObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008914}
8915
8916@threadSafety("app")
8917cmd void vkCmdCopyQueryPoolResults(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008918 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008919 VkQueryPool queryPool,
Jesse Hallf9fa9a52016-01-08 16:08:51 -08008920 u32 firstQuery,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008921 u32 queryCount,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008922 VkBuffer dstBuffer,
8923 VkDeviceSize dstOffset,
Jesse Halla9bb62b2015-11-21 19:31:56 -08008924 VkDeviceSize stride,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008925 VkQueryResultFlags flags) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008926 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008927 queryPoolObject := GetQueryPool(queryPool)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008928 dstBufferObject := GetBuffer(dstBuffer)
8929 assert(commandBufferObject.device == queryPoolObject.device)
8930 assert(commandBufferObject.device == dstBufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008931}
8932
8933cmd void vkCmdPushConstants(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008934 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008935 VkPipelineLayout layout,
8936 VkShaderStageFlags stageFlags,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008937 u32 offset,
8938 u32 size,
Jesse Hallf4ab2b12015-11-30 16:04:55 -08008939 const void* pValues) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008940 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008941 layoutObject := GetPipelineLayout(layout)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008942 assert(commandBufferObject.device == layoutObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008943}
8944
8945@threadSafety("app")
8946cmd void vkCmdBeginRenderPass(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008947 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008948 const VkRenderPassBeginInfo* pRenderPassBegin,
Jesse Hall65ab5522015-11-30 00:07:16 -08008949 VkSubpassContents contents) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008950 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008951 renderPassObject := GetRenderPass(pRenderPassBegin.renderPass)
8952 framebufferObject := GetFramebuffer(pRenderPassBegin.framebuffer)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008953 assert(commandBufferObject.device == renderPassObject.device)
8954 assert(commandBufferObject.device == framebufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008955
Jesse Hall3fbc8562015-11-29 22:10:52 -08008956 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008957}
8958
8959cmd void vkCmdNextSubpass(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008960 VkCommandBuffer commandBuffer,
Jesse Hall65ab5522015-11-30 00:07:16 -08008961 VkSubpassContents contents) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008962 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008963}
8964
8965@threadSafety("app")
8966cmd void vkCmdEndRenderPass(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008967 VkCommandBuffer commandBuffer) {
8968 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008969
Jesse Hall3fbc8562015-11-29 22:10:52 -08008970 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008971}
8972
8973cmd void vkCmdExecuteCommands(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008974 VkCommandBuffer commandBuffer,
Jesse Hall3dd678a2016-01-08 21:52:01 -08008975 u32 commandBufferCount,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008976 const VkCommandBuffer* pCommandBuffers) {
8977 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008978
Jesse Hall3dd678a2016-01-08 21:52:01 -08008979 commandBuffers := pCommandBuffers[0:commandBufferCount]
8980 for i in (0 .. commandBufferCount) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008981 secondaryCommandBuffer := commandBuffers[i]
8982 secondaryCommandBufferObject := GetCommandBuffer(secondaryCommandBuffer)
8983 assert(commandBufferObject.device == secondaryCommandBufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008984 }
8985}
8986
Ian Elliott28bd2c32017-10-13 09:21:12 -06008987//@vulkan1_1 functions
Daniel Koch09f7bf92017-10-05 00:26:58 -04008988
Ian Elliott28bd2c32017-10-13 09:21:12 -06008989@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04008990cmd VkResult vkEnumerateInstanceVersion(
8991 u32* pApiVersion) {
8992 return ?
8993}
8994
Ian Elliott28bd2c32017-10-13 09:21:12 -06008995@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04008996cmd VkResult vkBindBufferMemory2(
8997 VkDevice device,
8998 u32 bindInfoCount,
8999 const VkBindBufferMemoryInfo* pBindInfos) {
9000 return ?
9001}
9002
Ian Elliott28bd2c32017-10-13 09:21:12 -06009003@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009004cmd VkResult vkBindImageMemory2(
9005 VkDevice device,
9006 u32 bindInfoCount,
9007 const VkBindImageMemoryInfo* pBindInfos) {
9008 return ?
9009}
9010
Ian Elliott28bd2c32017-10-13 09:21:12 -06009011@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009012cmd void vkGetDeviceGroupPeerMemoryFeatures(
9013 VkDevice device,
9014 u32 heapIndex,
9015 u32 localDeviceIndex,
9016 u32 remoteDeviceIndex,
9017 VkPeerMemoryFeatureFlags* pPeerMemoryFeatures) {
9018}
9019
Ian Elliott28bd2c32017-10-13 09:21:12 -06009020@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009021cmd void vkCmdSetDeviceMask(
9022 VkCommandBuffer commandBuffer,
9023 u32 deviceMask) {
9024}
9025
Ian Elliott28bd2c32017-10-13 09:21:12 -06009026@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009027cmd void vkCmdDispatchBase(
9028 VkCommandBuffer commandBuffer,
9029 u32 baseGroupX,
9030 u32 baseGroupY,
9031 u32 baseGroupZ,
9032 u32 groupCountX,
9033 u32 groupCountY,
9034 u32 groupCountZ) {
9035}
9036
9037@threadSafety("system")
Ian Elliott28bd2c32017-10-13 09:21:12 -06009038@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009039cmd VkResult vkEnumeratePhysicalDeviceGroups(
9040 VkInstance instance,
9041 u32* pPhysicalDeviceGroupCount,
9042 VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties) {
9043 instanceObject := GetInstance(instance)
9044
9045 physicalDeviceGroupCount := as!u32(?)
9046 pPhysicalDeviceGroupCount[0] = physicalDeviceGroupCount
9047 physicalDevices := pPhysicalDeviceGroupProperties[0:physicalDeviceGroupCount]
9048
9049 for i in (0 .. physicalDeviceGroupCount) {
9050 physicalDevice := ?
9051 physicalDevices[i] = physicalDevice
9052 if !(physicalDevice in State.PhysicalDevices) {
9053 State.PhysicalDevices[physicalDevice] = new!PhysicalDeviceObject(instance: instance)
9054 }
9055 }
9056
9057 return ?
9058}
9059
Ian Elliott28bd2c32017-10-13 09:21:12 -06009060@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009061cmd void vkGetImageMemoryRequirements2(
9062 VkDevice device,
9063 const VkImageMemoryRequirementsInfo2* pInfo,
9064 VkMemoryRequirements2* pMemoryRequirements) {
9065}
9066
Ian Elliott28bd2c32017-10-13 09:21:12 -06009067@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009068cmd void vkGetBufferMemoryRequirements2(
9069 VkDevice device,
9070 const VkBufferMemoryRequirementsInfo2* pInfo,
9071 VkMemoryRequirements2* pMemoryRequirements) {
9072}
9073
Ian Elliott28bd2c32017-10-13 09:21:12 -06009074@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009075cmd void vkGetImageSparseMemoryRequirements2(
9076 VkDevice device,
9077 const VkImageSparseMemoryRequirementsInfo2* pInfo,
9078 u32* pSparseMemoryRequirementCount,
9079 VkSparseImageMemoryRequirements2* pSparseMemoryRequirements) {
9080}
9081
Ian Elliott28bd2c32017-10-13 09:21:12 -06009082@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009083cmd void vkGetPhysicalDeviceFeatures2(
9084 VkPhysicalDevice physicalDevice,
9085 VkPhysicalDeviceFeatures2* pFeatures) {
9086}
9087
Ian Elliott28bd2c32017-10-13 09:21:12 -06009088@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009089cmd void vkGetPhysicalDeviceProperties2(
9090 VkPhysicalDevice physicalDevice,
9091 VkPhysicalDeviceProperties2* pProperties) {
9092}
9093
Ian Elliott28bd2c32017-10-13 09:21:12 -06009094@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009095cmd void vkGetPhysicalDeviceFormatProperties2(
9096 VkPhysicalDevice physicalDevice,
9097 VkFormat format,
9098 VkFormatProperties2* pFormatProperties) {
9099}
9100
Ian Elliott28bd2c32017-10-13 09:21:12 -06009101@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009102cmd VkResult vkGetPhysicalDeviceImageFormatProperties2(
9103 VkPhysicalDevice physicalDevice,
9104 const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo,
9105 VkImageFormatProperties2* pImageFormatProperties) {
9106 return ?
9107}
9108
Ian Elliott28bd2c32017-10-13 09:21:12 -06009109@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009110cmd void vkGetPhysicalDeviceQueueFamilyProperties2(
9111 VkPhysicalDevice physicalDevice,
9112 u32* pQueueFamilyPropertyCount,
9113 VkQueueFamilyProperties2* pQueueFamilyProperties) {
9114}
9115
Ian Elliott28bd2c32017-10-13 09:21:12 -06009116@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009117cmd void vkGetPhysicalDeviceMemoryProperties2(
9118 VkPhysicalDevice physicalDevice,
9119 VkPhysicalDeviceMemoryProperties2* pMemoryProperties) {
9120}
9121
Ian Elliott28bd2c32017-10-13 09:21:12 -06009122@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009123cmd void vkGetPhysicalDeviceSparseImageFormatProperties2(
9124 VkPhysicalDevice physicalDevice,
9125 const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo,
9126 u32* pPropertyCount,
9127 VkSparseImageFormatProperties2* pProperties) {
9128}
9129
Ian Elliott28bd2c32017-10-13 09:21:12 -06009130@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009131cmd void vkTrimCommandPool(
9132 VkDevice device,
9133 VkCommandPool commandPool,
9134 VkCommandPoolTrimFlags flags) {
9135}
9136
9137
Ian Elliott28bd2c32017-10-13 09:21:12 -06009138@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009139cmd void vkGetDeviceQueue2(
9140 VkDevice device,
9141 const VkDeviceQueueInfo2* pQueueInfo,
9142 VkQueue* pQueue) {
9143 deviceObject := GetDevice(device)
9144
9145 queue := ?
9146 pQueue[0] = queue
9147
9148 if !(queue in State.Queues) {
9149 State.Queues[queue] = new!QueueObject(device: device)
9150 }
9151}
9152
Ian Elliott28bd2c32017-10-13 09:21:12 -06009153@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009154cmd VkResult vkCreateSamplerYcbcrConversion(
9155 VkDevice device,
9156 const VkSamplerYcbcrConversionCreateInfo* pCreateInfo,
9157 const VkAllocationCallbacks* pAllocator,
9158 VkSamplerYcbcrConversion* pYcbcrConversion) {
9159 return ?
9160}
9161
Ian Elliott28bd2c32017-10-13 09:21:12 -06009162@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009163cmd void vkDestroySamplerYcbcrConversion(
9164 VkDevice device,
9165 VkSamplerYcbcrConversion ycbcrConversion,
9166 const VkAllocationCallbacks* pAllocator) {
9167}
9168
Ian Elliott28bd2c32017-10-13 09:21:12 -06009169@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009170cmd VkResult vkCreateDescriptorUpdateTemplate(
9171 VkDevice device,
9172 const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo,
9173 const VkAllocationCallbacks* pAllocator,
9174 VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate) {
9175 return ?
9176}
9177
Ian Elliott28bd2c32017-10-13 09:21:12 -06009178@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009179cmd void vkDestroyDescriptorUpdateTemplate(
9180 VkDevice device,
9181 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
9182 const VkAllocationCallbacks* pAllocator) {
9183}
9184
Ian Elliott28bd2c32017-10-13 09:21:12 -06009185@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009186cmd void vkUpdateDescriptorSetWithTemplate(
9187 VkDevice device,
9188 VkDescriptorSet descriptorSet,
9189 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
9190 const void* pData) {
9191}
9192
Ian Elliott28bd2c32017-10-13 09:21:12 -06009193@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009194cmd void vkGetPhysicalDeviceExternalBufferProperties(
9195 VkPhysicalDevice physicalDevice,
9196 const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo,
9197 VkExternalBufferProperties* pExternalBufferProperties) {
9198}
9199
Ian Elliott28bd2c32017-10-13 09:21:12 -06009200@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009201cmd void vkGetPhysicalDeviceExternalFenceProperties(
9202 VkPhysicalDevice physicalDevice,
9203 const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo,
9204 VkExternalFenceProperties* pExternalFenceProperties) {
9205}
9206
Ian Elliott28bd2c32017-10-13 09:21:12 -06009207@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009208cmd void vkGetPhysicalDeviceExternalSemaphoreProperties(
9209 VkPhysicalDevice physicalDevice,
9210 const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo,
9211 VkExternalSemaphoreProperties* pExternalSemaphoreProperties) {
9212}
9213
Ian Elliott28bd2c32017-10-13 09:21:12 -06009214@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009215cmd void vkGetDescriptorSetLayoutSupport(
9216 VkDevice device,
9217 const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
9218 VkDescriptorSetLayoutSupport* pSupport) {
9219}
9220
9221
Jesse Hallad250842017-03-10 18:35:38 -08009222@extension("VK_KHR_surface") // 1
Jesse Hall1356b0d2015-11-23 17:24:58 -08009223cmd void vkDestroySurfaceKHR(
9224 VkInstance instance,
Jesse Hall0e74f002015-11-30 11:37:59 -08009225 VkSurfaceKHR surface,
9226 const VkAllocationCallbacks* pAllocator) {
Jesse Hall1356b0d2015-11-23 17:24:58 -08009227 instanceObject := GetInstance(instance)
9228 surfaceObject := GetSurface(surface)
9229 assert(surfaceObject.instance == instance)
Michael Lentine88594d72015-11-12 12:49:45 -08009230
Jesse Hall1356b0d2015-11-23 17:24:58 -08009231 State.Surfaces[surface] = null
Jesse Hall2818f932015-11-19 21:19:17 -08009232}
9233
Jesse Hallad250842017-03-10 18:35:38 -08009234@extension("VK_KHR_surface") // 1
Jesse Halla6429252015-11-29 18:59:42 -08009235cmd VkResult vkGetPhysicalDeviceSurfaceSupportKHR(
Jesse Hall1356b0d2015-11-23 17:24:58 -08009236 VkPhysicalDevice physicalDevice,
9237 u32 queueFamilyIndex,
Jesse Hall1356b0d2015-11-23 17:24:58 -08009238 VkSurfaceKHR surface,
Jesse Hallb00daad2015-11-29 19:46:20 -08009239 VkBool32* pSupported) {
9240 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
Michael Lentine88594d72015-11-12 12:49:45 -08009241
9242 return ?
9243}
9244
Jesse Hallad250842017-03-10 18:35:38 -08009245@extension("VK_KHR_surface") // 1
Jesse Hallb00daad2015-11-29 19:46:20 -08009246cmd VkResult vkGetPhysicalDeviceSurfaceCapabilitiesKHR(
9247 VkPhysicalDevice physicalDevice,
9248 VkSurfaceKHR surface,
9249 VkSurfaceCapabilitiesKHR* pSurfaceCapabilities) {
9250 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
9251
9252 surfaceCapabilities := ?
9253 pSurfaceCapabilities[0] = surfaceCapabilities
9254
9255 return ?
9256}
9257
Jesse Hallad250842017-03-10 18:35:38 -08009258@extension("VK_KHR_surface") // 1
Jesse Hallb00daad2015-11-29 19:46:20 -08009259cmd VkResult vkGetPhysicalDeviceSurfaceFormatsKHR(
9260 VkPhysicalDevice physicalDevice,
Jesse Hall1356b0d2015-11-23 17:24:58 -08009261 VkSurfaceKHR surface,
Jesse Hall03b6fe12015-11-24 12:44:21 -08009262 u32* pSurfaceFormatCount,
Jesse Hall1356b0d2015-11-23 17:24:58 -08009263 VkSurfaceFormatKHR* pSurfaceFormats) {
Jesse Hallb00daad2015-11-29 19:46:20 -08009264 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
Michael Lentine88594d72015-11-12 12:49:45 -08009265
9266 count := as!u32(?)
Jesse Hall03b6fe12015-11-24 12:44:21 -08009267 pSurfaceFormatCount[0] = count
Michael Lentine88594d72015-11-12 12:49:45 -08009268 surfaceFormats := pSurfaceFormats[0:count]
9269
9270 for i in (0 .. count) {
9271 surfaceFormat := ?
9272 surfaceFormats[i] = surfaceFormat
9273 }
9274
9275 return ?
9276}
9277
Jesse Hallad250842017-03-10 18:35:38 -08009278@extension("VK_KHR_surface") // 1
Jesse Hallb00daad2015-11-29 19:46:20 -08009279cmd VkResult vkGetPhysicalDeviceSurfacePresentModesKHR(
9280 VkPhysicalDevice physicalDevice,
Jesse Hall1356b0d2015-11-23 17:24:58 -08009281 VkSurfaceKHR surface,
Jesse Hall03b6fe12015-11-24 12:44:21 -08009282 u32* pPresentModeCount,
Jesse Hall1356b0d2015-11-23 17:24:58 -08009283 VkPresentModeKHR* pPresentModes) {
Jesse Hallb00daad2015-11-29 19:46:20 -08009284 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
Michael Lentine88594d72015-11-12 12:49:45 -08009285
9286 count := as!u32(?)
Jesse Hall03b6fe12015-11-24 12:44:21 -08009287 pPresentModeCount[0] = count
Michael Lentine88594d72015-11-12 12:49:45 -08009288 presentModes := pPresentModes[0:count]
9289
9290 for i in (0 .. count) {
9291 presentMode := ?
9292 presentModes[i] = presentMode
9293 }
9294
9295 return ?
9296}
9297
Jesse Hallad250842017-03-10 18:35:38 -08009298@extension("VK_KHR_swapchain") // 2
Michael Lentine88594d72015-11-12 12:49:45 -08009299cmd VkResult vkCreateSwapchainKHR(
9300 VkDevice device,
9301 const VkSwapchainCreateInfoKHR* pCreateInfo,
Jesse Hall0e74f002015-11-30 11:37:59 -08009302 const VkAllocationCallbacks* pAllocator,
Michael Lentine88594d72015-11-12 12:49:45 -08009303 VkSwapchainKHR* pSwapchain) {
Jesse Hall1356b0d2015-11-23 17:24:58 -08009304 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR)
Michael Lentine88594d72015-11-12 12:49:45 -08009305 deviceObject := GetDevice(device)
9306
9307 swapchain := ?
9308 pSwapchain[0] = swapchain
9309 State.Swapchains[swapchain] = new!SwapchainObject(device: device)
9310
9311 return ?
9312}
9313
Jesse Hallad250842017-03-10 18:35:38 -08009314@extension("VK_KHR_swapchain") // 2
Jesse Hall1356b0d2015-11-23 17:24:58 -08009315cmd void vkDestroySwapchainKHR(
Michael Lentine88594d72015-11-12 12:49:45 -08009316 VkDevice device,
Jesse Hall0e74f002015-11-30 11:37:59 -08009317 VkSwapchainKHR swapchain,
9318 const VkAllocationCallbacks* pAllocator) {
Michael Lentine88594d72015-11-12 12:49:45 -08009319 deviceObject := GetDevice(device)
9320 swapchainObject := GetSwapchain(swapchain)
9321 assert(swapchainObject.device == device)
9322
9323 State.Swapchains[swapchain] = null
Michael Lentine88594d72015-11-12 12:49:45 -08009324}
9325
Jesse Hallad250842017-03-10 18:35:38 -08009326@extension("VK_KHR_swapchain") // 2
Michael Lentine88594d72015-11-12 12:49:45 -08009327cmd VkResult vkGetSwapchainImagesKHR(
9328 VkDevice device,
9329 VkSwapchainKHR swapchain,
Jesse Hall03b6fe12015-11-24 12:44:21 -08009330 u32* pSwapchainImageCount,
Michael Lentine88594d72015-11-12 12:49:45 -08009331 VkImage* pSwapchainImages) {
9332 deviceObject := GetDevice(device)
9333
9334 count := as!u32(?)
Jesse Hall03b6fe12015-11-24 12:44:21 -08009335 pSwapchainImageCount[0] = count
Michael Lentine88594d72015-11-12 12:49:45 -08009336 swapchainImages := pSwapchainImages[0:count]
9337
9338 for i in (0 .. count) {
9339 swapchainImage := ?
9340 swapchainImages[i] = swapchainImage
Jesse Hall1356b0d2015-11-23 17:24:58 -08009341 State.Images[swapchainImage] = new!ImageObject(device: device)
Michael Lentine88594d72015-11-12 12:49:45 -08009342 }
9343
9344 return ?
9345}
9346
Jesse Hallad250842017-03-10 18:35:38 -08009347@extension("VK_KHR_swapchain") // 2
Michael Lentine88594d72015-11-12 12:49:45 -08009348cmd VkResult vkAcquireNextImageKHR(
9349 VkDevice device,
9350 VkSwapchainKHR swapchain,
9351 u64 timeout,
9352 VkSemaphore semaphore,
Jesse Hall1356b0d2015-11-23 17:24:58 -08009353 VkFence fence,
Michael Lentine88594d72015-11-12 12:49:45 -08009354 u32* pImageIndex) {
9355 deviceObject := GetDevice(device)
9356 swapchainObject := GetSwapchain(swapchain)
9357
9358 imageIndex := ?
9359 pImageIndex[0] = imageIndex
9360
9361 return ?
9362}
9363
Jesse Hallad250842017-03-10 18:35:38 -08009364@extension("VK_KHR_swapchain") // 2
Michael Lentine88594d72015-11-12 12:49:45 -08009365cmd VkResult vkQueuePresentKHR(
9366 VkQueue queue,
Jesse Hallf4ab2b12015-11-30 16:04:55 -08009367 const VkPresentInfoKHR* pPresentInfo) {
Michael Lentine88594d72015-11-12 12:49:45 -08009368 queueObject := GetQueue(queue)
9369
9370 presentInfo := ?
9371 pPresentInfo[0] = presentInfo
9372
9373 return ?
9374}
9375
Ian Elliott28bd2c32017-10-13 09:21:12 -06009376@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009377@extension("VK_KHR_swapchain") // 2
9378cmd VkResult vkGetDeviceGroupPresentCapabilitiesKHR(
9379 VkDevice device,
9380 VkDeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities) {
9381 return ?
9382}
9383
Ian Elliott28bd2c32017-10-13 09:21:12 -06009384@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009385@extension("VK_KHR_swapchain") // 2
9386cmd VkResult vkGetDeviceGroupSurfacePresentModesKHR(
9387 VkDevice device,
9388 VkSurfaceKHR surface,
9389 VkDeviceGroupPresentModeFlagsKHR* pModes) {
9390 return ?
9391}
9392
Ian Elliott28bd2c32017-10-13 09:21:12 -06009393@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009394@extension("VK_KHR_swapchain") // 2
9395cmd VkResult vkGetPhysicalDevicePresentRectanglesKHR(
9396 VkPhysicalDevice physicalDevice,
9397 VkSurfaceKHR surface,
9398 u32* pRectCount,
9399 VkRect2D* pRects) {
9400 return ?
9401}
9402
Ian Elliott28bd2c32017-10-13 09:21:12 -06009403@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009404@extension("VK_KHR_swapchain") // 2
9405cmd VkResult vkAcquireNextImage2KHR(
9406 VkDevice device,
9407 const VkAcquireNextImageInfoKHR* pAcquireInfo,
9408 u32* pImageIndex) {
9409 return ?
9410}
9411
Jesse Hallad250842017-03-10 18:35:38 -08009412@extension("VK_KHR_display") // 3
Jesse Hall1356b0d2015-11-23 17:24:58 -08009413cmd VkResult vkGetPhysicalDeviceDisplayPropertiesKHR(
9414 VkPhysicalDevice physicalDevice,
Jesse Hall03b6fe12015-11-24 12:44:21 -08009415 u32* pPropertyCount,
Jesse Hall1356b0d2015-11-23 17:24:58 -08009416 VkDisplayPropertiesKHR* pProperties) {
9417 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
9418 return ?
9419}
9420
Jesse Hallad250842017-03-10 18:35:38 -08009421@extension("VK_KHR_display") // 3
Jesse Halla6429252015-11-29 18:59:42 -08009422cmd VkResult vkGetPhysicalDeviceDisplayPlanePropertiesKHR(
9423 VkPhysicalDevice physicalDevice,
9424 u32* pPropertyCount,
9425 VkDisplayPlanePropertiesKHR* pProperties) {
9426 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
9427 return ?
9428}
9429
Jesse Hallad250842017-03-10 18:35:38 -08009430@extension("VK_KHR_display") // 3
Jesse Halla6429252015-11-29 18:59:42 -08009431cmd VkResult vkGetDisplayPlaneSupportedDisplaysKHR(
9432 VkPhysicalDevice physicalDevice,
Jesse Hall3dd678a2016-01-08 21:52:01 -08009433 u32 planeIndex,
Jesse Hallf4ab2b12015-11-30 16:04:55 -08009434 u32* pDisplayCount,
9435 VkDisplayKHR* pDisplays) {
Jesse Halla6429252015-11-29 18:59:42 -08009436 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
9437 return ?
9438}
9439
Jesse Hallad250842017-03-10 18:35:38 -08009440@extension("VK_KHR_display") // 3
Jesse Hall1356b0d2015-11-23 17:24:58 -08009441cmd VkResult vkGetDisplayModePropertiesKHR(
9442 VkPhysicalDevice physicalDevice,
9443 VkDisplayKHR display,
Jesse Hall03b6fe12015-11-24 12:44:21 -08009444 u32* pPropertyCount,
9445 VkDisplayModePropertiesKHR* pProperties) {
Jesse Hall1356b0d2015-11-23 17:24:58 -08009446 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
9447 return ?
9448}
9449
Jesse Hallad250842017-03-10 18:35:38 -08009450@extension("VK_KHR_display") // 3
Jesse Hall1356b0d2015-11-23 17:24:58 -08009451cmd VkResult vkCreateDisplayModeKHR(
9452 VkPhysicalDevice physicalDevice,
9453 VkDisplayKHR display,
9454 const VkDisplayModeCreateInfoKHR* pCreateInfo,
Jesse Hall0e74f002015-11-30 11:37:59 -08009455 const VkAllocationCallbacks* pAllocator,
Jesse Hall1356b0d2015-11-23 17:24:58 -08009456 VkDisplayModeKHR* pMode) {
9457 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
9458 return ?
9459}
9460
Jesse Hallad250842017-03-10 18:35:38 -08009461@extension("VK_KHR_display") // 3
Jesse Halla6429252015-11-29 18:59:42 -08009462cmd VkResult vkGetDisplayPlaneCapabilitiesKHR(
Jesse Hall1356b0d2015-11-23 17:24:58 -08009463 VkPhysicalDevice physicalDevice,
Jesse Hall9ba8bc82015-11-30 16:22:16 -08009464 VkDisplayModeKHR mode,
Jesse Hall1356b0d2015-11-23 17:24:58 -08009465 u32 planeIndex,
Jesse Halla6429252015-11-29 18:59:42 -08009466 VkDisplayPlaneCapabilitiesKHR* pCapabilities) {
Jesse Hall1356b0d2015-11-23 17:24:58 -08009467 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
9468 return ?
9469}
9470
Jesse Hallad250842017-03-10 18:35:38 -08009471@extension("VK_KHR_display") // 3
Jesse Halla6429252015-11-29 18:59:42 -08009472cmd VkResult vkCreateDisplayPlaneSurfaceKHR(
9473 VkInstance instance,
9474 const VkDisplaySurfaceCreateInfoKHR* pCreateInfo,
Jesse Hall0e74f002015-11-30 11:37:59 -08009475 const VkAllocationCallbacks* pAllocator,
Jesse Halla6429252015-11-29 18:59:42 -08009476 VkSurfaceKHR* pSurface) {
9477 return ?
9478}
9479
Jesse Hallad250842017-03-10 18:35:38 -08009480@extension("VK_KHR_display_swapchain") // 4
Jesse Hall9ba8bc82015-11-30 16:22:16 -08009481cmd VkResult vkCreateSharedSwapchainsKHR(
9482 VkDevice device,
9483 u32 swapchainCount,
9484 const VkSwapchainCreateInfoKHR* pCreateInfos,
9485 const VkAllocationCallbacks* pAllocator,
9486 VkSwapchainKHR* pSwapchains) {
9487 return ?
9488}
9489
Jesse Hallad250842017-03-10 18:35:38 -08009490@extension("VK_KHR_xlib_surface") // 5
Jesse Halla6429252015-11-29 18:59:42 -08009491cmd VkResult vkCreateXlibSurfaceKHR(
Jesse Hall1356b0d2015-11-23 17:24:58 -08009492 VkInstance instance,
Jesse Hallf9fa9a52016-01-08 16:08:51 -08009493 const VkXlibSurfaceCreateInfoKHR* pCreateInfo,
Jesse Hall0e74f002015-11-30 11:37:59 -08009494 const VkAllocationCallbacks* pAllocator,
Jesse Hall1356b0d2015-11-23 17:24:58 -08009495 VkSurfaceKHR* pSurface) {
9496 instanceObject := GetInstance(instance)
9497 return ?
9498}
9499
Jesse Hallad250842017-03-10 18:35:38 -08009500@extension("VK_KHR_xlib_surface") // 5
Jesse Halla6429252015-11-29 18:59:42 -08009501cmd VkBool32 vkGetPhysicalDeviceXlibPresentationSupportKHR(
9502 VkPhysicalDevice physicalDevice,
9503 u32 queueFamilyIndex,
9504 platform.Display* dpy,
Jesse Hall65ab5522015-11-30 00:07:16 -08009505 platform.VisualID visualID) {
Jesse Halla6429252015-11-29 18:59:42 -08009506 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
9507 return ?
9508}
9509
Jesse Hallad250842017-03-10 18:35:38 -08009510@extension("VK_KHR_xcb_surface") // 6
Jesse Hallf9fa9a52016-01-08 16:08:51 -08009511cmd VkResult vkCreateXcbSurfaceKHR(
Jesse Hall1356b0d2015-11-23 17:24:58 -08009512 VkInstance instance,
Jesse Hallf9fa9a52016-01-08 16:08:51 -08009513 const VkXcbSurfaceCreateInfoKHR* pCreateInfo,
Jesse Hall0e74f002015-11-30 11:37:59 -08009514 const VkAllocationCallbacks* pAllocator,
Jesse Hall1356b0d2015-11-23 17:24:58 -08009515 VkSurfaceKHR* pSurface) {
9516 instanceObject := GetInstance(instance)
9517 return ?
9518}
9519
Jesse Hallad250842017-03-10 18:35:38 -08009520@extension("VK_KHR_xcb_surface") // 6
Jesse Halla6429252015-11-29 18:59:42 -08009521cmd VkBool32 vkGetPhysicalDeviceXcbPresentationSupportKHR(
9522 VkPhysicalDevice physicalDevice,
9523 u32 queueFamilyIndex,
9524 platform.xcb_connection_t* connection,
9525 platform.xcb_visualid_t visual_id) {
9526 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
9527 return ?
9528}
9529
Jesse Hallad250842017-03-10 18:35:38 -08009530@extension("VK_KHR_wayland_surface") // 7
Jesse Hall1356b0d2015-11-23 17:24:58 -08009531cmd VkResult vkCreateWaylandSurfaceKHR(
9532 VkInstance instance,
Jesse Hallf9fa9a52016-01-08 16:08:51 -08009533 const VkWaylandSurfaceCreateInfoKHR* pCreateInfo,
Jesse Hall0e74f002015-11-30 11:37:59 -08009534 const VkAllocationCallbacks* pAllocator,
Jesse Hall1356b0d2015-11-23 17:24:58 -08009535 VkSurfaceKHR* pSurface) {
9536 instanceObject := GetInstance(instance)
9537 return ?
9538}
9539
Jesse Hallad250842017-03-10 18:35:38 -08009540@extension("VK_KHR_wayland_surface") // 7
Jesse Halla6429252015-11-29 18:59:42 -08009541cmd VkBool32 vkGetPhysicalDeviceWaylandPresentationSupportKHR(
9542 VkPhysicalDevice physicalDevice,
9543 u32 queueFamilyIndex,
9544 platform.wl_display* display) {
9545 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
9546 return ?
9547}
9548
Jesse Hallad250842017-03-10 18:35:38 -08009549@extension("VK_KHR_mir_surface") // 8
Jesse Hall1356b0d2015-11-23 17:24:58 -08009550cmd VkResult vkCreateMirSurfaceKHR(
9551 VkInstance instance,
Jesse Hallf9fa9a52016-01-08 16:08:51 -08009552 const VkMirSurfaceCreateInfoKHR* pCreateInfo,
Jesse Hall0e74f002015-11-30 11:37:59 -08009553 const VkAllocationCallbacks* pAllocator,
Jesse Hall1356b0d2015-11-23 17:24:58 -08009554 VkSurfaceKHR* pSurface) {
9555 instanceObject := GetInstance(instance)
9556 return ?
9557}
9558
Jesse Hallad250842017-03-10 18:35:38 -08009559@extension("VK_KHR_mir_surface") // 8
Jesse Halla6429252015-11-29 18:59:42 -08009560cmd VkBool32 vkGetPhysicalDeviceMirPresentationSupportKHR(
9561 VkPhysicalDevice physicalDevice,
9562 u32 queueFamilyIndex,
9563 platform.MirConnection* connection) {
9564 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
9565 return ?
9566}
9567
Jesse Hallad250842017-03-10 18:35:38 -08009568@extension("VK_KHR_android_surface") // 9
Jesse Hall1356b0d2015-11-23 17:24:58 -08009569cmd VkResult vkCreateAndroidSurfaceKHR(
9570 VkInstance instance,
Jesse Hallf9fa9a52016-01-08 16:08:51 -08009571 const VkAndroidSurfaceCreateInfoKHR* pCreateInfo,
Jesse Hall0e74f002015-11-30 11:37:59 -08009572 const VkAllocationCallbacks* pAllocator,
Jesse Hall1356b0d2015-11-23 17:24:58 -08009573 VkSurfaceKHR* pSurface) {
9574 instanceObject := GetInstance(instance)
9575 return ?
9576}
9577
Jesse Hallad250842017-03-10 18:35:38 -08009578@extension("VK_KHR_win32_surface") // 10
Jesse Hall1356b0d2015-11-23 17:24:58 -08009579cmd VkResult vkCreateWin32SurfaceKHR(
9580 VkInstance instance,
Jesse Hallf9fa9a52016-01-08 16:08:51 -08009581 const VkWin32SurfaceCreateInfoKHR* pCreateInfo,
Jesse Hall0e74f002015-11-30 11:37:59 -08009582 const VkAllocationCallbacks* pAllocator,
Jesse Hall1356b0d2015-11-23 17:24:58 -08009583 VkSurfaceKHR* pSurface) {
9584 instanceObject := GetInstance(instance)
9585 return ?
9586}
9587
Jesse Hallad250842017-03-10 18:35:38 -08009588@extension("VK_KHR_win32_surface") // 10
Jesse Halla6429252015-11-29 18:59:42 -08009589cmd VkResult vkGetPhysicalDeviceWin32PresentationSupportKHR(
9590 VkPhysicalDevice physicalDevice,
9591 u32 queueFamilyIndex) {
Jesse Halle2948d82016-02-25 04:19:32 -08009592 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
Jesse Halla6429252015-11-29 18:59:42 -08009593 return ?
9594}
9595
Jesse Hallad250842017-03-10 18:35:38 -08009596@extension("VK_ANDROID_native_buffer") // 11
Jesse Halld1abd742017-02-09 21:45:51 -08009597@optional
Chia-I Wub262ddc2016-03-22 07:38:20 +08009598cmd VkResult vkGetSwapchainGrallocUsageANDROID(
9599 VkDevice device,
9600 VkFormat format,
9601 VkImageUsageFlags imageUsage,
Jesse Halld1abd742017-02-09 21:45:51 -08009602 s32* grallocUsage) {
Chia-I Wub262ddc2016-03-22 07:38:20 +08009603 return ?
9604}
9605
Jesse Hallad250842017-03-10 18:35:38 -08009606@extension("VK_ANDROID_native_buffer") // 11
Jesse Halld1abd742017-02-09 21:45:51 -08009607@optional
Chris Forbes8e4438b2016-12-07 16:26:49 +13009608cmd VkResult vkGetSwapchainGrallocUsage2ANDROID(
9609 VkDevice device,
9610 VkFormat format,
9611 VkImageUsageFlags imageUsage,
9612 VkSwapchainImageUsageFlagsANDROID swapchainImageUsage,
Jesse Halld1abd742017-02-09 21:45:51 -08009613 u64* grallocConsumerUsage,
9614 u64* grallocProducerUsage) {
Chris Forbes8e4438b2016-12-07 16:26:49 +13009615 return ?
9616}
9617
Jesse Hallad250842017-03-10 18:35:38 -08009618@extension("VK_ANDROID_native_buffer") // 11
Chia-I Wub262ddc2016-03-22 07:38:20 +08009619cmd VkResult vkAcquireImageANDROID(
9620 VkDevice device,
9621 VkImage image,
9622 int nativeFenceFd,
9623 VkSemaphore semaphore,
9624 VkFence fence) {
9625 return ?
9626}
9627
Jesse Hallad250842017-03-10 18:35:38 -08009628@extension("VK_ANDROID_native_buffer") // 11
Chia-I Wub262ddc2016-03-22 07:38:20 +08009629cmd VkResult vkQueueSignalReleaseImageANDROID(
9630 VkQueue queue,
9631 u32 waitSemaphoreCount,
9632 const VkSemaphore* pWaitSemaphores,
9633 VkImage image,
9634 int* pNativeFenceFd) {
9635 return ?
9636}
9637
Jesse Hallad250842017-03-10 18:35:38 -08009638@extension("VK_EXT_debug_report") // 12
9639@external type void* PFN_vkDebugReportCallbackEXT
9640@extension("VK_EXT_debug_report") // 12
9641@pfn cmd VkBool32 vkDebugReportCallbackEXT(
9642 VkDebugReportFlagsEXT flags,
9643 VkDebugReportObjectTypeEXT objectType,
9644 u64 object,
9645 platform.size_t location,
9646 s32 messageCode,
9647 const char* pLayerPrefix,
9648 const char* pMessage,
9649 void* pUserData) {
9650 return ?
9651}
9652
9653@extension("VK_EXT_debug_report") // 12
9654cmd VkResult vkCreateDebugReportCallbackEXT(
9655 VkInstance instance,
9656 const VkDebugReportCallbackCreateInfoEXT* pCreateInfo,
9657 const VkAllocationCallbacks* pAllocator,
9658 VkDebugReportCallbackEXT* pCallback) {
9659 return ?
9660}
9661
9662@extension("VK_EXT_debug_report") // 12
9663cmd void vkDestroyDebugReportCallbackEXT(
9664 VkInstance instance,
9665 VkDebugReportCallbackEXT callback,
9666 const VkAllocationCallbacks* pAllocator) {
9667}
9668
9669@extension("VK_EXT_debug_report") // 12
9670cmd void vkDebugReportMessageEXT(
9671 VkInstance instance,
9672 VkDebugReportFlagsEXT flags,
9673 VkDebugReportObjectTypeEXT objectType,
9674 u64 object,
9675 platform.size_t location,
9676 s32 messageCode,
9677 const char* pLayerPrefix,
9678 const char* pMessage) {
9679}
9680
9681@extension("VK_EXT_debug_marker") // 23
9682cmd VkResult vkDebugMarkerSetObjectTagEXT(
9683 VkDevice device,
Jesse Hall77726222017-09-19 14:49:27 -05009684 const VkDebugMarkerObjectTagInfoEXT* pTagInfo) {
Jesse Hallad250842017-03-10 18:35:38 -08009685 return ?
9686}
9687
9688@extension("VK_EXT_debug_marker") // 23
9689cmd VkResult vkDebugMarkerSetObjectNameEXT(
9690 VkDevice device,
Jesse Hall77726222017-09-19 14:49:27 -05009691 const VkDebugMarkerObjectNameInfoEXT* pNameInfo) {
Jesse Hallad250842017-03-10 18:35:38 -08009692 return ?
9693}
9694
9695@extension("VK_EXT_debug_marker") // 23
9696cmd void vkCmdDebugMarkerBeginEXT(
9697 VkCommandBuffer commandBuffer,
Jesse Hall77726222017-09-19 14:49:27 -05009698 const VkDebugMarkerMarkerInfoEXT* pMarkerInfo) {
Jesse Hallad250842017-03-10 18:35:38 -08009699}
9700
9701@extension("VK_EXT_debug_marker") // 23
9702cmd void vkCmdDebugMarkerEndEXT(
9703 VkCommandBuffer commandBuffer) {
9704}
9705
9706@extension("VK_EXT_debug_marker") // 23
9707cmd void vkCmdDebugMarkerInsertEXT(
9708 VkCommandBuffer commandBuffer,
Jesse Hall77726222017-09-19 14:49:27 -05009709 const VkDebugMarkerMarkerInfoEXT* pMarkerInfo) {
Jesse Hallad250842017-03-10 18:35:38 -08009710}
9711
9712@extension("VK_AMD_draw_indirect_count") // 34
9713cmd void vkCmdDrawIndirectCountAMD(
9714 VkCommandBuffer commandBuffer,
9715 VkBuffer buffer,
9716 VkDeviceSize offset,
9717 VkBuffer countBuffer,
9718 VkDeviceSize countBufferOffset,
9719 u32 maxDrawCount,
9720 u32 stride) {
9721}
9722
9723@extension("VK_AMD_draw_indirect_count") // 34
9724cmd void vkCmdDrawIndexedIndirectCountAMD(
9725 VkCommandBuffer commandBuffer,
9726 VkBuffer buffer,
9727 VkDeviceSize offset,
9728 VkBuffer countBuffer,
9729 VkDeviceSize countBufferOffset,
9730 u32 maxDrawCount,
9731 u32 stride) {
9732}
9733
Jesse Hall8c954d32018-01-17 22:06:20 -08009734@extension("VK_AMD_shader_info") // 43
9735cmd VkResult vkGetShaderInfoAMD(
9736 VkDevice device,
9737 VkPipeline pipeline,
9738 VkShaderStageFlagBits shaderStage,
9739 VkShaderInfoTypeAMD infoType,
9740 platform.size_t* pInfoSize,
9741 void* pInfo) {
9742 return ?
9743}
9744
Jesse Hallad250842017-03-10 18:35:38 -08009745@extension("VK_NV_external_memory_capabilities") // 56
9746cmd VkResult vkGetPhysicalDeviceExternalImageFormatPropertiesNV(
9747 VkPhysicalDevice physicalDevice,
9748 VkFormat format,
9749 VkImageType type,
9750 VkImageTiling tiling,
9751 VkImageUsageFlags usage,
9752 VkImageCreateFlags flags,
9753 VkExternalMemoryHandleTypeFlagsNV externalHandleType,
9754 VkExternalImageFormatPropertiesNV* pExternalImageFormatProperties) {
9755 return ?
9756}
9757
9758@extension("VK_NV_external_memory_win32") // 58
9759cmd VkResult vkGetMemoryWin32HandleNV(
9760 VkDevice device,
9761 VkDeviceMemory memory,
9762 VkExternalMemoryHandleTypeFlagsNV handleType,
9763 platform.HANDLE* pHandle) {
9764 return ?
9765}
9766
9767@extension("VK_KHR_get_physical_device_properties2") // 60
9768cmd void vkGetPhysicalDeviceFeatures2KHR(
9769 VkPhysicalDevice physicalDevice,
9770 VkPhysicalDeviceFeatures2KHR* pFeatures) {
9771}
9772
9773@extension("VK_KHR_get_physical_device_properties2") // 60
9774cmd void vkGetPhysicalDeviceProperties2KHR(
9775 VkPhysicalDevice physicalDevice,
9776 VkPhysicalDeviceProperties2KHR* pProperties) {
9777}
9778
9779@extension("VK_KHR_get_physical_device_properties2") // 60
9780cmd void vkGetPhysicalDeviceFormatProperties2KHR(
9781 VkPhysicalDevice physicalDevice,
9782 VkFormat format,
9783 VkFormatProperties2KHR* pFormatProperties) {
9784}
9785
9786@extension("VK_KHR_get_physical_device_properties2") // 60
9787cmd VkResult vkGetPhysicalDeviceImageFormatProperties2KHR(
9788 VkPhysicalDevice physicalDevice,
9789 const VkPhysicalDeviceImageFormatInfo2KHR* pImageFormatInfo,
9790 VkImageFormatProperties2KHR* pImageFormatProperties) {
9791 return ?
9792}
9793
9794@extension("VK_KHR_get_physical_device_properties2") // 60
9795cmd void vkGetPhysicalDeviceQueueFamilyProperties2KHR(
9796 VkPhysicalDevice physicalDevice,
9797 u32* pQueueFamilyPropertyCount,
9798 VkQueueFamilyProperties2KHR* pQueueFamilyProperties) {
9799}
9800
9801@extension("VK_KHR_get_physical_device_properties2") // 60
9802cmd void vkGetPhysicalDeviceMemoryProperties2KHR(
9803 VkPhysicalDevice physicalDevice,
9804 VkPhysicalDeviceMemoryProperties2KHR* pMemoryProperties) {
9805}
9806
9807@extension("VK_KHR_get_physical_device_properties2") // 60
9808cmd void vkGetPhysicalDeviceSparseImageFormatProperties2KHR(
9809 VkPhysicalDevice physicalDevice,
9810 const VkPhysicalDeviceSparseImageFormatInfo2KHR* pFormatInfo,
9811 u32* pPropertyCount,
9812 VkSparseImageFormatProperties2KHR* pProperties) {
9813}
9814
Daniel Koch09f7bf92017-10-05 00:26:58 -04009815@extension("VK_KHR_device_group") // 61
9816cmd void vkGetDeviceGroupPeerMemoryFeaturesKHR(
Jesse Hallad250842017-03-10 18:35:38 -08009817 VkDevice device,
9818 u32 heapIndex,
9819 u32 localDeviceIndex,
9820 u32 remoteDeviceIndex,
Daniel Koch09f7bf92017-10-05 00:26:58 -04009821 VkPeerMemoryFeatureFlagsKHR* pPeerMemoryFeatures) {
Jesse Hallad250842017-03-10 18:35:38 -08009822}
9823
Daniel Koch09f7bf92017-10-05 00:26:58 -04009824@extension("VK_KHR_device_group") // 61
9825cmd void vkCmdSetDeviceMaskKHR(
Jesse Hallad250842017-03-10 18:35:38 -08009826 VkCommandBuffer commandBuffer,
9827 u32 deviceMask) {
9828}
9829
Jesse Hallad250842017-03-10 18:35:38 -08009830
Daniel Koch09f7bf92017-10-05 00:26:58 -04009831@extension("VK_KHR_device_group") // 61
9832cmd void vkCmdDispatchBaseKHR(
Jesse Hallad250842017-03-10 18:35:38 -08009833 VkCommandBuffer commandBuffer,
9834 u32 baseGroupX,
9835 u32 baseGroupY,
9836 u32 baseGroupZ,
9837 u32 groupCountX,
9838 u32 groupCountY,
9839 u32 groupCountZ) {
9840}
9841
Jesse Hallad250842017-03-10 18:35:38 -08009842@extension("VK_NN_vi_surface") // 63
9843cmd VkResult vkCreateViSurfaceNN(
9844 VkInstance instance,
9845 const VkViSurfaceCreateInfoNN* pCreateInfo,
9846 const VkAllocationCallbacks* pAllocator,
9847 VkSurfaceKHR* pSurface) {
9848 return ?
9849}
9850
9851@extension("VK_KHR_maintenance1") // 70
9852cmd void vkTrimCommandPoolKHR(
9853 VkDevice device,
9854 VkCommandPool commandPool,
9855 VkCommandPoolTrimFlagsKHR flags) {
9856}
9857
Daniel Koch09f7bf92017-10-05 00:26:58 -04009858@extension("VK_KHR_device_group_creation") // 71
9859@threadSafety("system")
9860cmd VkResult vkEnumeratePhysicalDeviceGroupsKHR(
Jesse Hallad250842017-03-10 18:35:38 -08009861 VkInstance instance,
9862 u32* pPhysicalDeviceGroupCount,
Daniel Koch09f7bf92017-10-05 00:26:58 -04009863 VkPhysicalDeviceGroupPropertiesKHR* pPhysicalDeviceGroupProperties) {
9864 instanceObject := GetInstance(instance)
9865
9866 physicalDeviceGroupCount := as!u32(?)
9867 pPhysicalDeviceGroupCount[0] = physicalDeviceGroupCount
9868 physicalDevices := pPhysicalDeviceGroupProperties[0:physicalDeviceGroupCount]
9869
9870 for i in (0 .. physicalDeviceGroupCount) {
9871 physicalDevice := ?
9872 physicalDevices[i] = physicalDevice
9873 if !(physicalDevice in State.PhysicalDevices) {
9874 State.PhysicalDevices[physicalDevice] = new!PhysicalDeviceObject(instance: instance)
9875 }
9876 }
9877
Jesse Hallad250842017-03-10 18:35:38 -08009878 return ?
9879}
9880
Jesse Hall9492f992017-08-28 12:10:06 -07009881@extension("VK_KHR_external_memory_capabilities") // 72
9882cmd void vkGetPhysicalDeviceExternalBufferPropertiesKHR(
Jesse Hallad250842017-03-10 18:35:38 -08009883 VkPhysicalDevice physicalDevice,
Jesse Hall9492f992017-08-28 12:10:06 -07009884 const VkPhysicalDeviceExternalBufferInfoKHR* pExternalBufferInfo,
9885 VkExternalBufferPropertiesKHR* pExternalBufferProperties) {
Jesse Hallad250842017-03-10 18:35:38 -08009886}
9887
Jesse Hall9492f992017-08-28 12:10:06 -07009888@extension("VK_KHR_external_memory_win32") // 74
9889cmd VkResult vkGetMemoryWin32HandleKHR(
Jesse Hallad250842017-03-10 18:35:38 -08009890 VkDevice device,
Jesse Hall9492f992017-08-28 12:10:06 -07009891 const VkMemoryGetWin32HandleInfoKHR* pGetWin32HandleInfo,
Jesse Hallad250842017-03-10 18:35:38 -08009892 platform.HANDLE* pHandle) {
9893 return ?
9894}
9895
Jesse Hall9492f992017-08-28 12:10:06 -07009896@extension("VK_KHR_external_memory_win32") // 74
9897cmd VkResult vkGetMemoryWin32HandlePropertiesKHR(
Jesse Hallad250842017-03-10 18:35:38 -08009898 VkDevice device,
Jesse Hall9492f992017-08-28 12:10:06 -07009899 VkExternalMemoryHandleTypeFlagBitsKHR handleType,
Jesse Hallad250842017-03-10 18:35:38 -08009900 platform.HANDLE handle,
Jesse Hall9492f992017-08-28 12:10:06 -07009901 VkMemoryWin32HandlePropertiesKHR* pMemoryWin32HandleProperties) {
Jesse Hallad250842017-03-10 18:35:38 -08009902 return ?
9903}
9904
Jesse Hall9492f992017-08-28 12:10:06 -07009905@extension("VK_KHR_external_memory_fd") // 75
9906cmd VkResult vkGetMemoryFdKHR(
Jesse Hallad250842017-03-10 18:35:38 -08009907 VkDevice device,
Jesse Hall9492f992017-08-28 12:10:06 -07009908 const VkMemoryGetFdInfoKHR* pGetFdInfo,
Jesse Hallad250842017-03-10 18:35:38 -08009909 s32* pFd) {
9910 return ?
9911}
9912
Jesse Hall9492f992017-08-28 12:10:06 -07009913@extension("VK_KHR_external_memory_fd") // 75
9914cmd VkResult vkGetMemoryFdPropertiesKHR(
Jesse Hallad250842017-03-10 18:35:38 -08009915 VkDevice device,
Jesse Hall9492f992017-08-28 12:10:06 -07009916 VkExternalMemoryHandleTypeFlagBitsKHR handleType,
Jesse Hallad250842017-03-10 18:35:38 -08009917 s32 fd,
Jesse Hall9492f992017-08-28 12:10:06 -07009918 VkMemoryFdPropertiesKHR* pMemoryFdProperties) {
Jesse Hallad250842017-03-10 18:35:38 -08009919 return ?
9920}
9921
Jesse Hall9492f992017-08-28 12:10:06 -07009922@extension("VK_KHR_external_semaphore_capabilities") // 77
9923cmd void vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(
Jesse Hallad250842017-03-10 18:35:38 -08009924 VkPhysicalDevice physicalDevice,
Jesse Hall9492f992017-08-28 12:10:06 -07009925 const VkPhysicalDeviceExternalSemaphoreInfoKHR* pExternalSemaphoreInfo,
9926 VkExternalSemaphorePropertiesKHR* pExternalSemaphoreProperties) {
Jesse Hallad250842017-03-10 18:35:38 -08009927}
9928
Jesse Hall9492f992017-08-28 12:10:06 -07009929@extension("VK_KHR_external_semaphore_win32") // 79
9930cmd VkResult vkImportSemaphoreWin32HandleKHR(
Jesse Hallad250842017-03-10 18:35:38 -08009931 VkDevice device,
Jesse Hall9492f992017-08-28 12:10:06 -07009932 const VkImportSemaphoreWin32HandleInfoKHR* pImportSemaphoreWin32HandleInfo) {
Jesse Hallad250842017-03-10 18:35:38 -08009933 return ?
9934}
9935
Jesse Hall9492f992017-08-28 12:10:06 -07009936@extension("VK_KHR_external_semaphore_win32") // 79
9937cmd VkResult vkGetSemaphoreWin32HandleKHR(
Jesse Hallad250842017-03-10 18:35:38 -08009938 VkDevice device,
Jesse Hall9492f992017-08-28 12:10:06 -07009939 const VkSemaphoreGetWin32HandleInfoKHR* pGetWin32HandleInfo,
Jesse Hallad250842017-03-10 18:35:38 -08009940 platform.HANDLE* pHandle) {
9941 return ?
9942}
9943
Jesse Hall9492f992017-08-28 12:10:06 -07009944@extension("VK_KHR_external_semaphore_fd") // 80
9945cmd VkResult vkImportSemaphoreFdKHR(
Jesse Hallad250842017-03-10 18:35:38 -08009946 VkDevice device,
Jesse Hall9492f992017-08-28 12:10:06 -07009947 const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo) {
Jesse Hallad250842017-03-10 18:35:38 -08009948 return ?
9949}
9950
Jesse Hall9492f992017-08-28 12:10:06 -07009951@extension("VK_KHR_external_semaphore_fd") // 80
9952cmd VkResult vkGetSemaphoreFdKHR(
Jesse Hallad250842017-03-10 18:35:38 -08009953 VkDevice device,
Jesse Hall9492f992017-08-28 12:10:06 -07009954 const VkSemaphoreGetFdInfoKHR* pGetFdInfo,
Jesse Hallad250842017-03-10 18:35:38 -08009955 s32* pFd) {
9956 return ?
9957}
9958
9959@extension("VK_KHR_push_descriptor") // 81
9960cmd void vkCmdPushDescriptorSetKHR(
9961 VkCommandBuffer commandBuffer,
9962 VkPipelineBindPoint pipelineBindPoint,
9963 VkPipelineLayout layout,
9964 u32 set,
9965 u32 descriptorWriteCount,
9966 const VkWriteDescriptorSet* pDescriptorWrites) {
9967}
9968
Jesse Halla13a3cf2018-07-09 15:51:52 -07009969@extension("VK_EXT_conditional_rendering") // 82
9970cmd void vkCmdBeginConditionalRenderingEXT(
9971 VkCommandBuffer commandBuffer,
9972 const VkConditionalRenderingBeginInfoEXT* pConditionalRenderingBegin) {
9973}
9974
9975@extension("VK_EXT_conditional_rendering") // 82
9976cmd void vkCmdEndConditionalRenderingEXT(
9977 VkCommandBuffer commandBuffer) {
9978}
9979
Jesse Hallad250842017-03-10 18:35:38 -08009980@extension("VK_KHR_descriptor_update_template") // 86
9981cmd VkResult vkCreateDescriptorUpdateTemplateKHR(
9982 VkDevice device,
9983 const VkDescriptorUpdateTemplateCreateInfoKHR* pCreateInfo,
9984 const VkAllocationCallbacks* pAllocator,
9985 VkDescriptorUpdateTemplateKHR* pDescriptorUpdateTemplate) {
9986 return ?
9987}
9988
9989@extension("VK_KHR_descriptor_update_template") // 86
9990cmd void vkDestroyDescriptorUpdateTemplateKHR(
9991 VkDevice device,
9992 VkDescriptorUpdateTemplateKHR descriptorUpdateTemplate,
9993 const VkAllocationCallbacks* pAllocator) {
9994}
9995
9996@extension("VK_KHR_descriptor_update_template") // 86
9997cmd void vkUpdateDescriptorSetWithTemplateKHR(
9998 VkDevice device,
9999 VkDescriptorSet descriptorSet,
10000 VkDescriptorUpdateTemplateKHR descriptorUpdateTemplate,
10001 const void* pData) {
10002}
10003
10004@extension("VK_KHR_descriptor_update_template") // 86
10005cmd void vkCmdPushDescriptorSetWithTemplateKHR(
10006 VkCommandBuffer commandBuffer,
10007 VkDescriptorUpdateTemplateKHR descriptorUpdateTemplate,
10008 VkPipelineLayout layout,
10009 u32 set,
10010 const void* pData) {
10011}
10012
10013@extension("VK_NVX_device_generated_commands") // 87
10014cmd void vkCmdProcessCommandsNVX(
10015 VkCommandBuffer commandBuffer,
10016 const VkCmdProcessCommandsInfoNVX* pProcessCommandsInfo) {
10017}
10018
10019@extension("VK_NVX_device_generated_commands") // 87
10020cmd void vkCmdReserveSpaceForCommandsNVX(
10021 VkCommandBuffer commandBuffer,
10022 const VkCmdReserveSpaceForCommandsInfoNVX* pReserveSpaceInfo) {
10023}
10024
10025@extension("VK_NVX_device_generated_commands") // 87
10026cmd VkResult vkCreateIndirectCommandsLayoutNVX(
10027 VkDevice device,
10028 const VkIndirectCommandsLayoutCreateInfoNVX* pCreateInfo,
10029 const VkAllocationCallbacks* pAllocator,
10030 VkIndirectCommandsLayoutNVX* pIndirectCommandsLayout) {
10031 return ?
10032}
10033
10034@extension("VK_NVX_device_generated_commands") // 87
10035cmd void vkDestroyIndirectCommandsLayoutNVX(
10036 VkDevice device,
10037 VkIndirectCommandsLayoutNVX indirectCommandsLayout,
10038 const VkAllocationCallbacks* pAllocator) {
10039}
10040
10041@extension("VK_NVX_device_generated_commands") // 87
10042cmd VkResult vkCreateObjectTableNVX(
10043 VkDevice device,
10044 const VkObjectTableCreateInfoNVX* pCreateInfo,
10045 const VkAllocationCallbacks* pAllocator,
10046 VkObjectTableNVX* pObjectTable) {
10047 return ?
10048}
10049
10050@extension("VK_NVX_device_generated_commands") // 87
10051cmd void vkDestroyObjectTableNVX(
10052 VkDevice device,
10053 VkObjectTableNVX objectTable,
10054 const VkAllocationCallbacks* pAllocator) {
10055}
10056
10057@extension("VK_NVX_device_generated_commands") // 87
10058cmd VkResult vkRegisterObjectsNVX(
10059 VkDevice device,
10060 VkObjectTableNVX objectTable,
10061 u32 objectCount,
10062 const VkObjectTableEntryNVX* const* ppObjectTableEntries,
10063 const u32* pObjectIndices) {
10064 return ?
10065}
10066
10067@extension("VK_NVX_device_generated_commands") // 87
10068cmd VkResult vkUnregisterObjectsNVX(
10069 VkDevice device,
10070 VkObjectTableNVX objectTable,
10071 u32 objectCount,
10072 const VkObjectEntryTypeNVX* pObjectEntryTypes,
10073 const u32* pObjectIndices) {
10074 return ?
10075}
10076
10077@extension("VK_NVX_device_generated_commands") // 87
10078cmd void vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX(
10079 VkPhysicalDevice physicalDevice,
10080 VkDeviceGeneratedCommandsFeaturesNVX* pFeatures,
10081 VkDeviceGeneratedCommandsLimitsNVX* pLimits) {
10082}
10083
10084@extension("VK_NV_clip_space_w_scaling") // 88
10085cmd void vkCmdSetViewportWScalingNV(
10086 VkCommandBuffer commandBuffer,
10087 u32 firstViewport,
10088 u32 viewportCount,
10089 const VkViewportWScalingNV* pViewportWScalings) {
10090}
10091
10092@extension("VK_EXT_direct_mode_display") // 89
10093cmd VkResult vkReleaseDisplayEXT(
10094 VkPhysicalDevice physicalDevice,
10095 VkDisplayKHR display) {
10096 return ?
10097}
10098
10099@extension("VK_EXT_acquire_xlib_display") // 90
10100cmd VkResult vkAcquireXlibDisplayEXT(
10101 VkPhysicalDevice physicalDevice,
10102 platform.Display* dpy,
10103 VkDisplayKHR display) {
10104 return ?
10105}
10106
10107@extension("VK_EXT_acquire_xlib_display") // 90
10108cmd VkResult vkGetRandROutputDisplayEXT(
10109 VkPhysicalDevice physicalDevice,
10110 platform.Display* dpy,
10111 platform.RROutput rrOutput,
10112 VkDisplayKHR* pDisplay) {
10113 return ?
10114}
10115
10116@extension("VK_EXT_display_surface_counter") // 91
10117cmd VkResult vkGetPhysicalDeviceSurfaceCapabilities2EXT(
10118 VkPhysicalDevice physicalDevice,
10119 VkSurfaceKHR surface,
10120 VkSurfaceCapabilities2EXT* pSurfaceCapabilities) {
10121 return ?
10122}
10123
10124@extension("VK_EXT_display_control") // 92
10125cmd VkResult vkDisplayPowerControlEXT(
10126 VkDevice device,
10127 VkDisplayKHR display,
10128 const VkDisplayPowerInfoEXT* pDisplayPowerInfo) {
10129 return ?
10130}
10131
10132@extension("VK_EXT_display_control") // 92
10133cmd VkResult vkRegisterDeviceEventEXT(
10134 VkDevice device,
10135 const VkDeviceEventInfoEXT* pDeviceEventInfo,
10136 const VkAllocationCallbacks* pAllocator,
10137 VkFence* pFence) {
10138 return ?
10139}
10140
10141@extension("VK_EXT_display_control") // 92
10142cmd VkResult vkRegisterDisplayEventEXT(
10143 VkDevice device,
10144 VkDisplayKHR display,
10145 const VkDisplayEventInfoEXT* pDisplayEventInfo,
10146 const VkAllocationCallbacks* pAllocator,
10147 VkFence* pFence) {
10148 return ?
10149}
10150
10151@extension("VK_EXT_display_control") // 92
10152cmd VkResult vkGetSwapchainCounterEXT(
10153 VkDevice device,
10154 VkSwapchainKHR swapchain,
10155 VkSurfaceCounterFlagBitsEXT counter,
10156 u64* pCounterValue) {
10157 return ?
10158}
10159
10160@extension("VK_GOOGLE_display_timing") // 93
Ian Elliott4c8bb2a2016-12-29 11:07:26 -070010161cmd VkResult vkGetRefreshCycleDurationGOOGLE(
Jesse Hallfdc8ab32017-03-10 21:01:57 -080010162 VkDevice device,
10163 VkSwapchainKHR swapchain,
10164 VkRefreshCycleDurationGOOGLE* pDisplayTimingProperties) {
Ian Elliott4c8bb2a2016-12-29 11:07:26 -070010165 deviceObject := GetDevice(device)
10166 swapchainObject := GetSwapchain(swapchain)
10167
10168 displayTimingProperties := ?
10169 pDisplayTimingProperties[0] = displayTimingProperties
10170
10171 return ?
10172}
10173
Jesse Hallad250842017-03-10 18:35:38 -080010174@extension("VK_GOOGLE_display_timing") // 93
Ian Elliott4c8bb2a2016-12-29 11:07:26 -070010175cmd VkResult vkGetPastPresentationTimingGOOGLE(
Jesse Hallfdc8ab32017-03-10 21:01:57 -080010176 VkDevice device,
10177 VkSwapchainKHR swapchain,
10178 u32* pPresentationTimingCount,
10179 VkPastPresentationTimingGOOGLE* pPresentationTimings) {
Ian Elliott4c8bb2a2016-12-29 11:07:26 -070010180 return ?
10181}
10182
Jesse Hallad250842017-03-10 18:35:38 -080010183@extension("VK_EXT_discard_rectangles") // 100
10184cmd void vkCmdSetDiscardRectangleEXT(
Jesse Hall26763382016-05-20 07:13:52 -070010185 VkCommandBuffer commandBuffer,
Jesse Hallad250842017-03-10 18:35:38 -080010186 u32 firstDiscardRectangle,
10187 u32 discardRectangleCount,
10188 const VkRect2D* pDiscardRectangles) {
Jesse Hall26763382016-05-20 07:13:52 -070010189}
10190
Jesse Hallad250842017-03-10 18:35:38 -080010191@extension("VK_EXT_hdr_metadata") // 106
Jesse Hall889cd9a2017-02-25 22:12:23 -080010192cmd void vkSetHdrMetadataEXT(
Jesse Hallfdc8ab32017-03-10 21:01:57 -080010193 VkDevice device,
10194 u32 swapchainCount,
10195 const VkSwapchainKHR* pSwapchains,
10196 const VkHdrMetadataEXT* pMetadata) {
Jesse Hall889cd9a2017-02-25 22:12:23 -080010197}
10198
Jesse Halla13a3cf2018-07-09 15:51:52 -070010199@extension("VK_KHR_create_renderpass2") // 110
10200cmd VkResult vkCreateRenderPass2KHR(
10201 VkDevice device,
10202 const VkRenderPassCreateInfo2KHR* pCreateInfo,
10203 const VkAllocationCallbacks* pAllocator,
10204 VkRenderPass* pRenderPass) {
10205 return ?
10206}
10207
10208@extension("VK_KHR_create_renderpass2") // 110
10209cmd void vkCmdBeginRenderPass2KHR(
10210 VkCommandBuffer commandBuffer,
10211 const VkRenderPassBeginInfo* pRenderPassBegin,
10212 const VkSubpassBeginInfoKHR* pSubpassBeginInfo) {
10213}
10214
10215@extension("VK_KHR_create_renderpass2") // 110
10216cmd void vkCmdNextSubpass2KHR(
10217 VkCommandBuffer commandBuffer,
10218 const VkSubpassBeginInfoKHR* pSubpassBeginInfo,
10219 const VkSubpassEndInfoKHR* pSubpassEndInfo) {
10220}
10221
10222@extension("VK_KHR_create_renderpass2") // 110
10223cmd void vkCmdEndRenderPass2KHR(
10224 VkCommandBuffer commandBuffer,
10225 const VkSubpassEndInfoKHR* pSubpassEndInfo) {
10226}
10227
Jesse Hallad250842017-03-10 18:35:38 -080010228@extension("VK_KHR_shared_presentable_image") // 112
Chris Forbes2e12cb82017-01-18 11:45:17 +130010229cmd VkResult vkGetSwapchainStatusKHR(
10230 VkDevice device,
10231 VkSwapchainKHR swapchain) {
10232 return ?
10233}
10234
Jesse Hall9492f992017-08-28 12:10:06 -070010235@extension("VK_KHR_external_fence_capabilities") // 113
10236cmd void vkGetPhysicalDeviceExternalFencePropertiesKHR(
10237 VkPhysicalDevice physicalDevice,
10238 const VkPhysicalDeviceExternalFenceInfoKHR* pExternalFenceInfo,
10239 VkExternalFencePropertiesKHR* pExternalFenceProperties) {
10240}
10241
10242@extension("VK_KHR_external_fence_win32") // 115
10243cmd VkResult vkImportFenceWin32HandleKHR(
10244 VkDevice device,
10245 const VkImportFenceWin32HandleInfoKHR* pImportFenceWin32HandleInfo) {
10246 return ?
10247}
10248
10249@extension("VK_KHR_external_fence_win32") // 115
10250cmd VkResult vkGetFenceWin32HandleKHR(
10251 VkDevice device,
10252 const VkFenceGetWin32HandleInfoKHR* pGetWin32HandleInfo,
10253 platform.HANDLE* pHandle) {
10254 return ?
10255}
10256
10257@extension("VK_KHR_external_fence_fd") // 116
10258cmd VkResult vkImportFenceFdKHR(
10259 VkDevice device,
10260 const VkImportFenceFdInfoKHR* pImportFenceFdInfo) {
10261 return ?
10262}
10263
10264@extension("VK_KHR_external_fence_fd") // 116
10265cmd VkResult vkGetFenceFdKHR(
10266 VkDevice device,
10267 const VkFenceGetFdInfoKHR* pGetFdInfo,
10268 int* pFd) {
10269 return ?
10270}
10271
Jesse Hall05556b12017-05-18 17:40:25 -070010272@extension("VK_KHR_get_surface_capabilities2") // 120
Chris Forbese2d3ee12017-03-16 16:10:15 +130010273cmd VkResult vkGetPhysicalDeviceSurfaceCapabilities2KHR(
10274 VkPhysicalDevice physicalDevice,
10275 const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo,
10276 VkSurfaceCapabilities2KHR* pSurfaceCapabilities) {
10277 return ?
10278}
10279
Jesse Hall05556b12017-05-18 17:40:25 -070010280@extension("VK_KHR_get_surface_capabilities2") // 120
Chris Forbese2d3ee12017-03-16 16:10:15 +130010281cmd VkResult vkGetPhysicalDeviceSurfaceFormats2KHR(
10282 VkPhysicalDevice physicalDevice,
10283 const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo,
10284 u32* pSurfaceFormatCount,
10285 VkSurfaceFormat2KHR* pSurfaceFormats) {
10286 return ?
10287}
10288
Jesse Hall54f8d132018-04-18 08:16:59 -070010289@extension("VK_KHR_display_properties2") // 122
10290cmd VkResult vkGetPhysicalDeviceDisplayProperties2KHR(
10291 VkPhysicalDevice physicalDevice,
10292 u32* pPropertyCount,
10293 VkDisplayProperties2KHR* pProperties) {
10294 return ?
10295}
10296
10297@extension("VK_KHR_display_properties2") // 122
10298cmd VkResult vkGetPhysicalDeviceDisplayPlaneProperties2KHR(
10299 VkPhysicalDevice physicalDevice,
10300 u32* pPropertyCount,
10301 VkDisplayPlaneProperties2KHR* pProperties) {
10302 return ?
10303}
10304
10305@extension("VK_KHR_display_properties2") // 122
10306cmd VkResult vkGetDisplayModeProperties2KHR(
10307 VkPhysicalDevice physicalDevice,
10308 VkDisplayKHR display,
10309 u32* pPropertyCount,
10310 VkDisplayModeProperties2KHR* pProperties) {
10311 return ?
10312}
10313
10314@extension("VK_KHR_display_properties2") // 122
10315cmd VkResult vkGetDisplayPlaneCapabilities2KHR(
10316 VkPhysicalDevice physicalDevice,
10317 const VkDisplayPlaneInfo2KHR* pDisplayPlaneInfo,
10318 VkDisplayPlaneCapabilities2KHR* pCapabilities) {
10319 return ?
10320}
10321
Jesse Hallad250842017-03-10 18:35:38 -080010322@extension("VK_MVK_ios_surface") // 123
10323cmd VkResult vkCreateIOSSurfaceMVK(
10324 VkInstance instance,
10325 const VkIOSSurfaceCreateInfoMVK* pCreateInfo,
10326 const VkAllocationCallbacks* pAllocator,
10327 VkSurfaceKHR* pSurface) {
10328 return ?
10329}
10330
10331@extension("VK_MVK_macos_surface") // 124
10332cmd VkResult vkCreateMacOSSurfaceMVK(
10333 VkInstance instance,
10334 const VkMacOSSurfaceCreateInfoMVK* pCreateInfo,
10335 const VkAllocationCallbacks* pAllocator,
10336 VkSurfaceKHR* pSurface) {
10337 return ?
10338}
10339
Jesse Hall8c954d32018-01-17 22:06:20 -080010340@extension("VK_EXT_debug_utils") // 129
10341@external type void* PFN_vkDebugUtilsMessengerCallbackEXT
10342@extension("VK_EXT_debug_utils") // 129
10343@pfn cmd VkBool32 vkDebugUtilsMessengerCallbackEXT(
10344 VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity,
10345 VkDebugUtilsMessageTypeFlagsEXT messageType,
10346 const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData,
10347 void* pUserData) {
10348 return ?
10349}
10350
10351@extension("VK_EXT_debug_utils") // 129
10352cmd VkResult vkSetDebugUtilsObjectNameEXT(
10353 VkDevice device,
10354 const VkDebugUtilsObjectNameInfoEXT* pNameInfo) {
10355 return ?
10356}
Jesse Hall72e6a132018-04-06 13:00:44 -070010357
Jesse Hall8c954d32018-01-17 22:06:20 -080010358@extension("VK_EXT_debug_utils") // 129
10359cmd VkResult vkSetDebugUtilsObjectTagEXT(
10360 VkDevice device,
10361 const VkDebugUtilsObjectTagInfoEXT* pTagInfo) {
10362 return ?
10363}
Jesse Hall72e6a132018-04-06 13:00:44 -070010364
Jesse Hall8c954d32018-01-17 22:06:20 -080010365@extension("VK_EXT_debug_utils") // 129
10366cmd void vkQueueBeginDebugUtilsLabelEXT(
10367 VkQueue queue,
10368 const VkDebugUtilsLabelEXT* pLabelInfo) {
10369}
Jesse Hall72e6a132018-04-06 13:00:44 -070010370
Jesse Hall8c954d32018-01-17 22:06:20 -080010371@extension("VK_EXT_debug_utils") // 129
10372cmd void vkQueueEndDebugUtilsLabelEXT(VkQueue queue) {
10373}
Jesse Hall72e6a132018-04-06 13:00:44 -070010374
Jesse Hall8c954d32018-01-17 22:06:20 -080010375@extension("VK_EXT_debug_utils") // 129
10376cmd void vkQueueInsertDebugUtilsLabelEXT(
10377 VkQueue queue,
10378 const VkDebugUtilsLabelEXT* pLabelInfo) {
10379}
Jesse Hall72e6a132018-04-06 13:00:44 -070010380
Jesse Hall8c954d32018-01-17 22:06:20 -080010381@extension("VK_EXT_debug_utils") // 129
10382cmd void vkCmdBeginDebugUtilsLabelEXT(
10383 VkCommandBuffer commandBuffer,
10384 const VkDebugUtilsLabelEXT* pLabelInfo) {
10385}
Jesse Hall72e6a132018-04-06 13:00:44 -070010386
Jesse Hall8c954d32018-01-17 22:06:20 -080010387@extension("VK_EXT_debug_utils") // 129
10388cmd void vkCmdEndDebugUtilsLabelEXT(VkCommandBuffer commandBuffer) {
10389}
10390
10391@extension("VK_EXT_debug_utils") // 129
10392cmd void vkCmdInsertDebugUtilsLabelEXT(
10393 VkCommandBuffer commandBuffer,
10394 const VkDebugUtilsLabelEXT* pLabelInfo) {
10395}
10396
10397@extension("VK_EXT_debug_utils") // 129
10398cmd VkResult vkCreateDebugUtilsMessengerEXT(
10399 VkInstance instance,
10400 const VkDebugUtilsMessengerCreateInfoEXT* pCreateInfo,
10401 const VkAllocationCallbacks* pAllocator,
10402 VkDebugUtilsMessengerEXT* pMessenger) {
10403 return ?
10404}
10405
10406@extension("VK_EXT_debug_utils") // 129
10407cmd void vkDestroyDebugUtilsMessengerEXT(
10408 VkInstance instance,
10409 VkDebugUtilsMessengerEXT messenger,
10410 const VkAllocationCallbacks* pAllocator) {
10411}
10412
10413@extension("VK_EXT_debug_utils") // 129
10414cmd void vkSubmitDebugUtilsMessageEXT(
10415 VkInstance instance,
10416 VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity,
10417 VkDebugUtilsMessageTypeFlagsEXT messageTypes,
10418 const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData) {
10419}
10420
Jesse Hall36215a92018-01-18 15:04:37 -080010421@extension("VK_ANDROID_external_memory_android_hardware_buffer") // 130
10422@vulkan1_1 // extension requires 1.1, and should become non-optional when 1.1 does
10423cmd VkResult vkGetAndroidHardwareBufferPropertiesANDROID(
10424 VkDevice device,
10425 const platform.AHardwareBuffer* buffer,
10426 VkAndroidHardwareBufferPropertiesANDROID* pProperties) {
10427 return ?
10428}
10429
10430@extension("VK_ANDROID_external_memory_android_hardware_buffer") // 130
10431@vulkan1_1 // extension requires 1.1, and should become non-optional when 1.1 does
10432cmd VkResult vkGetMemoryAndroidHardwareBufferANDROID(
10433 VkDevice device,
10434 const VkMemoryGetAndroidHardwareBufferInfoANDROID* pInfo,
10435 platform.AHardwareBuffer** pBuffer) {
10436 return ?
10437}
10438
Jesse Hall77726222017-09-19 14:49:27 -050010439@extension("VK_EXT_sample_locations") // 144
10440cmd void vkCmdSetSampleLocationsEXT(
10441 VkCommandBuffer commandBuffer,
10442 const VkSampleLocationsInfoEXT* pSampleLocationsInfo) {
10443}
10444
10445@extension("VK_EXT_sample_locations") // 144
10446cmd void vkGetPhysicalDeviceMultisamplePropertiesEXT(
10447 VkPhysicalDevice physicalDevice,
10448 VkSampleCountFlagBits samples,
10449 VkMultisamplePropertiesEXT* pMultisampleProperties) {
10450}
10451
Jesse Hall9492f992017-08-28 12:10:06 -070010452@extension("VK_KHR_get_memory_requirements2") // 147
10453cmd void vkGetImageMemoryRequirements2KHR(
10454 VkDevice device,
10455 const VkImageMemoryRequirementsInfo2KHR* pInfo,
10456 VkMemoryRequirements2KHR* pMemoryRequirements) {
10457}
10458
10459@extension("VK_KHR_get_memory_requirements2") // 147
10460cmd void vkGetBufferMemoryRequirements2KHR(
10461 VkDevice device,
10462 const VkBufferMemoryRequirementsInfo2KHR* pInfo,
10463 VkMemoryRequirements2KHR* pMemoryRequirements) {
10464}
10465
10466@extension("VK_KHR_get_memory_requirements2") // 147
10467cmd void vkGetImageSparseMemoryRequirements2KHR(
10468 VkDevice device,
10469 const VkImageSparseMemoryRequirementsInfo2KHR* pInfo,
10470 u32* pSparseMemoryRequirementCount,
10471 VkSparseImageMemoryRequirements2KHR* pSparseMemoryRequirements) {
10472}
10473
Jesse Hall076f95d2017-09-20 11:34:47 -070010474@extension("VK_KHR_sampler_ycbcr_conversion") // 157
10475cmd VkResult vkCreateSamplerYcbcrConversionKHR(
10476 VkDevice device,
10477 const VkSamplerYcbcrConversionCreateInfoKHR* pCreateInfo,
10478 const VkAllocationCallbacks* pAllocator,
10479 VkSamplerYcbcrConversionKHR* pYcbcrConversion) {
10480 return ?
10481}
10482
10483@extension("VK_KHR_sampler_ycbcr_conversion") // 157
10484cmd void vkDestroySamplerYcbcrConversionKHR(
10485 VkDevice device,
10486 VkSamplerYcbcrConversionKHR ycbcrConversion,
10487 const VkAllocationCallbacks* pAllocator) {
10488}
10489
10490@extension("VK_KHR_bind_memory2") // 158
10491cmd VkResult vkBindBufferMemory2KHR(
10492 VkDevice device,
10493 u32 bindInfoCount,
10494 const VkBindBufferMemoryInfoKHR* pBindInfos) {
10495 return ?
10496}
10497
10498@extension("VK_KHR_bind_memory2") // 158
10499cmd VkResult vkBindImageMemory2KHR(
10500 VkDevice device,
10501 u32 bindInfoCount,
10502 const VkBindImageMemoryInfoKHR* pBindInfos) {
10503 return ?
10504}
10505
Jesse Hall77726222017-09-19 14:49:27 -050010506@extension("VK_EXT_validation_cache") // 161
10507cmd VkResult vkCreateValidationCacheEXT(
10508 VkDevice device,
10509 const VkValidationCacheCreateInfoEXT* pCreateInfo,
10510 const VkAllocationCallbacks* pAllocator,
10511 VkValidationCacheEXT* pValidationCache) {
10512 return ?
10513}
10514
10515@extension("VK_EXT_validation_cache") // 161
10516cmd void vkDestroyValidationCacheEXT(
10517 VkDevice device,
10518 VkValidationCacheEXT validationCache,
10519 const VkAllocationCallbacks* pAllocator) {
10520}
10521
10522@extension("VK_EXT_validation_cache") // 161
10523cmd VkResult vkMergeValidationCachesEXT(
10524 VkDevice device,
10525 VkValidationCacheEXT dstCache,
10526 u32 srcCacheCount,
10527 const VkValidationCacheEXT* pSrcCaches) {
10528 return ?
10529}
10530
10531@extension("VK_EXT_validation_cache") // 161
10532cmd VkResult vkGetValidationCacheDataEXT(
10533 VkDevice device,
10534 VkValidationCacheEXT validationCache,
10535 platform.size_t* pDataSize,
10536 void* pData) {
10537 return ?
10538}
10539
Daniel Koch09f7bf92017-10-05 00:26:58 -040010540@extension("VK_KHR_maintenance3") // 169
10541cmd void vkGetDescriptorSetLayoutSupportKHR(
10542 VkDevice device,
10543 const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
10544 VkDescriptorSetLayoutSupportKHR* pSupport) {
10545}
10546
Jesse Hall54f8d132018-04-18 08:16:59 -070010547@extension("VK_KHR_draw_indirect_count") // 170
10548cmd void vkCmdDrawIndirectCountKHR(
10549 VkCommandBuffer commandBuffer,
10550 VkBuffer buffer,
10551 VkDeviceSize offset,
10552 VkBuffer countBuffer,
10553 VkDeviceSize countBufferOffset,
10554 u32 maxDrawCount,
10555 u32 stride) {
10556}
10557
10558@extension("VK_KHR_draw_indirect_count") // 170
10559cmd void vkCmdDrawIndexedIndirectCountKHR(
10560 VkCommandBuffer commandBuffer,
10561 VkBuffer buffer,
10562 VkDeviceSize offset,
10563 VkBuffer countBuffer,
10564 VkDeviceSize countBufferOffset,
10565 u32 maxDrawCount,
10566 u32 stride) {
10567}
10568
Jesse Hall8c954d32018-01-17 22:06:20 -080010569@extension("VK_EXT_external_memory_host") // 179
10570cmd VkResult vkGetMemoryHostPointerPropertiesEXT(
10571 VkDevice device,
10572 VkExternalMemoryHandleTypeFlagBits handleType,
10573 const void* pHostPointer,
10574 VkMemoryHostPointerPropertiesEXT* pMemoryHostPointerProperties) {
10575 return ?
10576}
10577
Jesse Hall72e6a132018-04-06 13:00:44 -070010578@extension("VK_AMD_buffer_marker") // 180
10579cmd void vkCmdWriteBufferMarkerAMD(
10580 VkCommandBuffer commandBuffer,
10581 VkPipelineStageFlagBits pipelineStage,
10582 VkBuffer dstBuffer,
10583 VkDeviceSize dstOffset,
10584 u32 marker) {
10585}
10586
Jesse Halld27f6aa2015-08-15 17:58:48 -070010587////////////////
10588// Validation //
10589////////////////
10590
10591extern void validate(string layerName, bool condition, string message)
10592
10593
10594/////////////////////////////
10595// Internal State Tracking //
10596/////////////////////////////
10597
10598StateObject State
10599
10600@internal class StateObject {
10601 // Dispatchable objects.
10602 map!(VkInstance, ref!InstanceObject) Instances
10603 map!(VkPhysicalDevice, ref!PhysicalDeviceObject) PhysicalDevices
10604 map!(VkDevice, ref!DeviceObject) Devices
10605 map!(VkQueue, ref!QueueObject) Queues
Jesse Hall3fbc8562015-11-29 22:10:52 -080010606 map!(VkCommandBuffer, ref!CommandBufferObject) CommandBuffers
Jesse Halld27f6aa2015-08-15 17:58:48 -070010607
10608 // Non-dispatchable objects.
10609 map!(VkDeviceMemory, ref!DeviceMemoryObject) DeviceMemories
10610 map!(VkBuffer, ref!BufferObject) Buffers
10611 map!(VkBufferView, ref!BufferViewObject) BufferViews
10612 map!(VkImage, ref!ImageObject) Images
10613 map!(VkImageView, ref!ImageViewObject) ImageViews
Jesse Halld27f6aa2015-08-15 17:58:48 -070010614 map!(VkShaderModule, ref!ShaderModuleObject) ShaderModules
Jesse Halld27f6aa2015-08-15 17:58:48 -070010615 map!(VkPipeline, ref!PipelineObject) Pipelines
10616 map!(VkPipelineLayout, ref!PipelineLayoutObject) PipelineLayouts
10617 map!(VkSampler, ref!SamplerObject) Samplers
10618 map!(VkDescriptorSet, ref!DescriptorSetObject) DescriptorSets
10619 map!(VkDescriptorSetLayout, ref!DescriptorSetLayoutObject) DescriptorSetLayouts
10620 map!(VkDescriptorPool, ref!DescriptorPoolObject) DescriptorPools
Jesse Halld27f6aa2015-08-15 17:58:48 -070010621 map!(VkFence, ref!FenceObject) Fences
10622 map!(VkSemaphore, ref!SemaphoreObject) Semaphores
10623 map!(VkEvent, ref!EventObject) Events
10624 map!(VkQueryPool, ref!QueryPoolObject) QueryPools
10625 map!(VkFramebuffer, ref!FramebufferObject) Framebuffers
10626 map!(VkRenderPass, ref!RenderPassObject) RenderPasses
10627 map!(VkPipelineCache, ref!PipelineCacheObject) PipelineCaches
Jesse Hall3fbc8562015-11-29 22:10:52 -080010628 map!(VkCommandPool, ref!CommandPoolObject) CommandPools
Jesse Hall1356b0d2015-11-23 17:24:58 -080010629 map!(VkSurfaceKHR, ref!SurfaceObject) Surfaces
Michael Lentine88594d72015-11-12 12:49:45 -080010630 map!(VkSwapchainKHR, ref!SwapchainObject) Swapchains
Jesse Halld27f6aa2015-08-15 17:58:48 -070010631}
10632
10633@internal class InstanceObject {
10634}
10635
10636@internal class PhysicalDeviceObject {
10637 VkInstance instance
10638}
10639
10640@internal class DeviceObject {
10641 VkPhysicalDevice physicalDevice
10642}
10643
10644@internal class QueueObject {
10645 VkDevice device
10646 VkQueueFlags flags
10647}
10648
Jesse Hall3fbc8562015-11-29 22:10:52 -080010649@internal class CommandBufferObject {
Jesse Halld27f6aa2015-08-15 17:58:48 -070010650 VkDevice device
10651 map!(u64, VkDeviceMemory) boundObjects
10652 VkQueueFlags queueFlags
10653}
10654
10655@internal class DeviceMemoryObject {
Jesse Hall3fbc8562015-11-29 22:10:52 -080010656 VkDevice device
10657 VkDeviceSize allocationSize
10658 map!(u64, VkDeviceSize) boundObjects
10659 map!(VkCommandBuffer, VkCommandBuffer) boundCommandBuffers
Jesse Halld27f6aa2015-08-15 17:58:48 -070010660}
10661
10662@internal class BufferObject {
10663 VkDevice device
Jesse Hall3fbc8562015-11-29 22:10:52 -080010664 VkDeviceMemory memory
10665 VkDeviceSize memoryOffset
Jesse Halld27f6aa2015-08-15 17:58:48 -070010666}
10667
10668@internal class BufferViewObject {
10669 VkDevice device
10670 VkBuffer buffer
10671}
10672
10673@internal class ImageObject {
10674 VkDevice device
Jesse Hall3fbc8562015-11-29 22:10:52 -080010675 VkDeviceMemory memory
10676 VkDeviceSize memoryOffset
Jesse Halld27f6aa2015-08-15 17:58:48 -070010677}
10678
10679@internal class ImageViewObject {
10680 VkDevice device
10681 VkImage image
10682}
10683
Jesse Halld27f6aa2015-08-15 17:58:48 -070010684@internal class ShaderObject {
10685 VkDevice device
10686}
10687
10688@internal class ShaderModuleObject {
10689 VkDevice device
10690}
10691
10692@internal class PipelineObject {
10693 VkDevice device
10694}
10695
10696@internal class PipelineLayoutObject {
10697 VkDevice device
10698}
10699
10700@internal class SamplerObject {
10701 VkDevice device
10702}
10703
10704@internal class DescriptorSetObject {
10705 VkDevice device
10706}
10707
10708@internal class DescriptorSetLayoutObject {
10709 VkDevice device
10710}
10711
10712@internal class DescriptorPoolObject {
10713 VkDevice device
10714}
10715
Jesse Halld27f6aa2015-08-15 17:58:48 -070010716@internal class FenceObject {
10717 VkDevice device
10718 bool signaled
10719}
10720
10721@internal class SemaphoreObject {
10722 VkDevice device
10723}
10724
10725@internal class EventObject {
10726 VkDevice device
10727}
10728
10729@internal class QueryPoolObject {
10730 VkDevice device
10731}
10732
10733@internal class FramebufferObject {
10734 VkDevice device
10735}
10736
10737@internal class RenderPassObject {
10738 VkDevice device
10739}
10740
10741@internal class PipelineCacheObject {
10742 VkDevice device
10743}
10744
Jesse Hall3fbc8562015-11-29 22:10:52 -080010745@internal class CommandPoolObject {
Jesse Halld27f6aa2015-08-15 17:58:48 -070010746 VkDevice device
10747}
10748
Jesse Hall1356b0d2015-11-23 17:24:58 -080010749@internal class SurfaceObject {
10750 VkInstance instance
10751}
10752
Michael Lentine88594d72015-11-12 12:49:45 -080010753@internal class SwapchainObject {
10754 VkDevice device
10755}
10756
Jesse Halld27f6aa2015-08-15 17:58:48 -070010757macro ref!InstanceObject GetInstance(VkInstance instance) {
10758 assert(instance in State.Instances)
10759 return State.Instances[instance]
10760}
10761
10762macro ref!PhysicalDeviceObject GetPhysicalDevice(VkPhysicalDevice physicalDevice) {
10763 assert(physicalDevice in State.PhysicalDevices)
10764 return State.PhysicalDevices[physicalDevice]
10765}
10766
10767macro ref!DeviceObject GetDevice(VkDevice device) {
10768 assert(device in State.Devices)
10769 return State.Devices[device]
10770}
10771
10772macro ref!QueueObject GetQueue(VkQueue queue) {
10773 assert(queue in State.Queues)
10774 return State.Queues[queue]
10775}
10776
Jesse Hall3fbc8562015-11-29 22:10:52 -080010777macro ref!CommandBufferObject GetCommandBuffer(VkCommandBuffer commandBuffer) {
10778 assert(commandBuffer in State.CommandBuffers)
10779 return State.CommandBuffers[commandBuffer]
Jesse Halld27f6aa2015-08-15 17:58:48 -070010780}
10781
Jesse Hall3fbc8562015-11-29 22:10:52 -080010782macro ref!DeviceMemoryObject GetDeviceMemory(VkDeviceMemory memory) {
10783 assert(memory in State.DeviceMemories)
10784 return State.DeviceMemories[memory]
Jesse Halld27f6aa2015-08-15 17:58:48 -070010785}
10786
10787macro ref!BufferObject GetBuffer(VkBuffer buffer) {
10788 assert(buffer in State.Buffers)
10789 return State.Buffers[buffer]
10790}
10791
10792macro ref!BufferViewObject GetBufferView(VkBufferView bufferView) {
10793 assert(bufferView in State.BufferViews)
10794 return State.BufferViews[bufferView]
10795}
10796
10797macro ref!ImageObject GetImage(VkImage image) {
10798 assert(image in State.Images)
10799 return State.Images[image]
10800}
10801
10802macro ref!ImageViewObject GetImageView(VkImageView imageView) {
10803 assert(imageView in State.ImageViews)
10804 return State.ImageViews[imageView]
10805}
10806
Jesse Halld27f6aa2015-08-15 17:58:48 -070010807macro ref!ShaderModuleObject GetShaderModule(VkShaderModule shaderModule) {
10808 assert(shaderModule in State.ShaderModules)
10809 return State.ShaderModules[shaderModule]
10810}
10811
10812macro ref!PipelineObject GetPipeline(VkPipeline pipeline) {
10813 assert(pipeline in State.Pipelines)
10814 return State.Pipelines[pipeline]
10815}
10816
10817macro ref!PipelineLayoutObject GetPipelineLayout(VkPipelineLayout pipelineLayout) {
10818 assert(pipelineLayout in State.PipelineLayouts)
10819 return State.PipelineLayouts[pipelineLayout]
10820}
10821
10822macro ref!SamplerObject GetSampler(VkSampler sampler) {
10823 assert(sampler in State.Samplers)
10824 return State.Samplers[sampler]
10825}
10826
10827macro ref!DescriptorSetObject GetDescriptorSet(VkDescriptorSet descriptorSet) {
10828 assert(descriptorSet in State.DescriptorSets)
10829 return State.DescriptorSets[descriptorSet]
10830}
10831
10832macro ref!DescriptorSetLayoutObject GetDescriptorSetLayout(VkDescriptorSetLayout descriptorSetLayout) {
10833 assert(descriptorSetLayout in State.DescriptorSetLayouts)
10834 return State.DescriptorSetLayouts[descriptorSetLayout]
10835}
10836
10837macro ref!DescriptorPoolObject GetDescriptorPool(VkDescriptorPool descriptorPool) {
10838 assert(descriptorPool in State.DescriptorPools)
10839 return State.DescriptorPools[descriptorPool]
10840}
10841
Jesse Halld27f6aa2015-08-15 17:58:48 -070010842macro ref!FenceObject GetFence(VkFence fence) {
10843 assert(fence in State.Fences)
10844 return State.Fences[fence]
10845}
10846
10847macro ref!SemaphoreObject GetSemaphore(VkSemaphore semaphore) {
10848 assert(semaphore in State.Semaphores)
10849 return State.Semaphores[semaphore]
10850}
10851
10852macro ref!EventObject GetEvent(VkEvent event) {
10853 assert(event in State.Events)
10854 return State.Events[event]
10855}
10856
10857macro ref!QueryPoolObject GetQueryPool(VkQueryPool queryPool) {
10858 assert(queryPool in State.QueryPools)
10859 return State.QueryPools[queryPool]
10860}
10861
10862macro ref!FramebufferObject GetFramebuffer(VkFramebuffer framebuffer) {
10863 assert(framebuffer in State.Framebuffers)
10864 return State.Framebuffers[framebuffer]
10865}
10866
10867macro ref!RenderPassObject GetRenderPass(VkRenderPass renderPass) {
10868 assert(renderPass in State.RenderPasses)
10869 return State.RenderPasses[renderPass]
10870}
10871
10872macro ref!PipelineCacheObject GetPipelineCache(VkPipelineCache pipelineCache) {
10873 assert(pipelineCache in State.PipelineCaches)
10874 return State.PipelineCaches[pipelineCache]
10875}
10876
Jesse Hall3fbc8562015-11-29 22:10:52 -080010877macro ref!CommandPoolObject GetCommandPool(VkCommandPool commandPool) {
10878 assert(commandPool in State.CommandPools)
10879 return State.CommandPools[commandPool]
Jesse Hallf09c6b12015-08-15 19:54:28 -070010880}
Michael Lentine88594d72015-11-12 12:49:45 -080010881
Jesse Hall1356b0d2015-11-23 17:24:58 -080010882macro ref!SurfaceObject GetSurface(VkSurfaceKHR surface) {
10883 assert(surface in State.Surfaces)
10884 return State.Surfaces[surface]
10885}
10886
Michael Lentine88594d72015-11-12 12:49:45 -080010887macro ref!SwapchainObject GetSwapchain(VkSwapchainKHR swapchain) {
10888 assert(swapchain in State.Swapchains)
10889 return State.Swapchains[swapchain]
10890}
Jesse Halld8bade02015-11-24 10:24:18 -080010891
10892macro VkQueueFlags AddQueueFlag(VkQueueFlags flags, VkQueueFlagBits bit) {
10893 return as!VkQueueFlags(as!u32(flags) | as!u32(bit))
10894}