blob: 568c4ad9eb09270877d08cb46dbd8f2401ab7060 [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 Hall72e6a132018-04-06 13:00:44 -070031define VERSION_PATCH 72
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 Hall9492f992017-08-28 12:10:06 -0700272// 84
273@extension("VK_KHR_16bit_storage") define VK_KHR_16BIT_STORAGE_SPEC_VERSION 1
274@extension("VK_KHR_16bit_storage") define VK_KHR_16BIT_STORAGE_EXTENSION_NAME "VK_KHR_16bit_storage"
275
Jesse Hall889cd9a2017-02-25 22:12:23 -0800276// 85
277@extension("VK_KHR_incremental_present") define VK_KHR_INCREMENTAL_PRESENT_SPEC_VERSION 1
Jesse Hallf5ad48b2017-03-20 13:09:19 -0700278@extension("VK_KHR_incremental_present") define VK_KHR_INCREMENTAL_PRESENT_EXTENSION_NAME "VK_KHR_incremental_present"
Jesse Hall889cd9a2017-02-25 22:12:23 -0800279
Jesse Hallad250842017-03-10 18:35:38 -0800280// 86
281@extension("VK_KHR_descriptor_update_template") define VK_KHR_DESCRIPTOR_UPDATE_TEMPLATE_SPEC_VERSION 1
282@extension("VK_KHR_descriptor_update_template") define VK_KHR_DESCRIPTOR_UPDATE_TEMPLATE_EXTENSION_NAME "VK_KHR_descriptor_update_template"
283
Jesse Halleb02c472017-02-24 15:13:45 -0800284// 87
Jesse Hall77726222017-09-19 14:49:27 -0500285@extension("VK_NVX_device_generated_commands") define VK_NVX_DEVICE_GENERATED_COMMANDS_SPEC_VERSION 3
Chris Forbes289cb792016-12-30 15:03:55 +1300286@extension("VK_NVX_device_generated_commands") define VK_NVX_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME "VK_NVX_device_generated_commands"
287
Jesse Hallad250842017-03-10 18:35:38 -0800288// 88
289@extension("VK_NV_clip_space_w_scaling") define VK_NV_CLIP_SPACE_W_SCALING_SPEC_VERSION 1
290@extension("VK_NV_clip_space_w_scaling") define VK_NV_CLIP_SPACE_W_SCALING_EXTENSION_NAME "VK_NV_clip_space_w_scaling"
291
Jesse Hall77ad05b2017-03-10 22:02:20 -0800292// 89
293@extension("VK_EXT_direct_mode_display") define VK_EXT_DIRECT_MODE_DISPLAY_SPEC_VERSION 1
294@extension("VK_EXT_direct_mode_display") define VK_EXT_DIRECT_MODE_DISPLAY_EXTENSION_NAME "VK_EXT_direct_mode_display"
295
296// 90
297@extension("VK_EXT_acquire_xlib_display") define VK_EXT_ACQUIRE_XLIB_DISPLAY_SPEC_VERSION 1
298@extension("VK_EXT_acquire_xlib_display") define VK_EXT_ACQUIRE_XLIB_DISPLAY_EXTENSION_NAME "VK_EXT_acquire_xlib_display"
299
300// 91
301@extension("VK_EXT_display_surface_counter") define VK_EXT_DISPLAY_SURFACE_COUNTER_SPEC_VERSION 1
302@extension("VK_EXT_display_surface_counter") define VK_EXT_DISPLAY_SURFACE_COUNTER_EXTENSION_NAME "VK_EXT_display_surface_counter"
303
304// 92
305@extension("VK_EXT_display_control") define VK_EXT_DISPLAY_CONTROL_SPEC_VERSION 1
306@extension("VK_EXT_display_control") define VK_EXT_DISPLAY_CONTROL_COUNTER_EXTENSION_NAME "VK_EXT_display_control"
307
Jesse Hall889cd9a2017-02-25 22:12:23 -0800308// 93
309@extension("VK_GOOGLE_display_timing") define VK_GOOGLE_DISPLAY_TIMING_SPEC_VERSION 1
Jesse Hallfdc8ab32017-03-10 21:01:57 -0800310@extension("VK_GOOGLE_display_timing") define VK_GOOGLE_DISPLAY_TIMING_EXTENSION_NAME "VK_GOOGLE_display_timing"
Jesse Hall889cd9a2017-02-25 22:12:23 -0800311
Jesse Hallad250842017-03-10 18:35:38 -0800312// 95
313@extension("VK_NV_sample_mask_override_coverage") define VK_NV_SAMPLE_MASK_OVERRIDE_COVERAGE_SPEC_VERSION 1
314@extension("VK_NV_sample_mask_override_coverage") define VK_NV_SAMPLE_MASK_OVERRIDE_COVERAGE_EXTENSION_NAME "VK_NV_sample_mask_override_coverage"
315
316// 96
317@extension("VK_NV_geometry_shader_passthrough") define VK_NV_GEOMETRY_SHADER_PASSTHROUGH_SPEC_VERSION 1
318@extension("VK_NV_geometry_shader_passthrough") define VK_NV_GEOMETRY_SHADER_PASSTHROUGH_EXTENSION_NAME "VK_NV_geometry_shader_passthrough"
319
320// 97
321@extension("VK_NV_viewport_array2") define VK_NV_VIEWPORT_ARRAY2_SPEC_VERSION 1
322@extension("VK_NV_viewport_array2") define VK_NV_VIEWPORT_ARRAY2_EXTENSION_NAME "VK_NV_viewport_array2"
323
324// 98
325@extension("VK_NVX_multiview_per_view_attributes") define VK_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_SPEC_VERSION 1
326@extension("VK_NVX_multiview_per_view_attributes") define VK_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_EXTENSION_NAME "VK_NVX_multiview_per_view_attributes"
327
328// 99
329@extension("VK_NV_viewport_swizzle") define VK_NV_VIEWPORT_SWIZZLE_SPEC_VERSION 1
330@extension("VK_NV_viewport_swizzle") define VK_NV_VIEWPORT_SWIZZLE_EXTENSION_NAME "VK_NV_viewport_swizzle"
331
332// 100
333@extension("VK_EXT_discard_rectangles") define VK_EXT_DISCARD_RECTANGLES_SPEC_VERSION 1
334@extension("VK_EXT_discard_rectangles") define VK_EXT_DISCARD_RECTANGLES_EXTENSION_NAME "VK_EXT_discard_rectangles"
335
Jesse Hall8c954d32018-01-17 22:06:20 -0800336// 102
337@extension("VK_EXT_conservative_rasterization") define VK_EXT_CONSERVATIVE_RASTERIZATION_SPEC_VERSION 1
338@extension("VK_EXT_conservative_rasterization") define VK_EXT_CONSERVATIVE_RASTERIZATION_EXTENSION_NAME "VK_EXT_conservative_rasterization"
339
Jesse Hall77ad05b2017-03-10 22:02:20 -0800340// 105
Jesse Hall77726222017-09-19 14:49:27 -0500341@extension("VK_EXT_swapchain_colorspace") define VK_EXT_SWAPCHAIN_COLORSPACE_SPEC_VERSION 3
Jesse Hallf5ad48b2017-03-20 13:09:19 -0700342@extension("VK_EXT_swapchain_colorspace") define VK_EXT_SWAPCHAIN_COLORSPACE_EXTENSION_NAME "VK_EXT_swapchain_colorspace"
Jesse Hall77ad05b2017-03-10 22:02:20 -0800343
Jesse Hall889cd9a2017-02-25 22:12:23 -0800344// 106
345@extension("VK_EXT_hdr_metadata") define VK_EXT_HDR_METADATA_SPEC_VERSION 1
346@extension("VK_EXT_hdr_metadata") define VK_EXT_HDR_METADATA_EXTENSION_NAME "VK_EXT_hdr_metadata"
347
348// 112
Chris Forbes1d5f68c2017-01-31 10:17:01 +1300349@extension("VK_KHR_shared_presentable_image") define VK_KHR_SHARED_PRESENTABLE_IMAGE_SPEC_VERSION 1
350@extension("VK_KHR_shared_presentable_image") define VK_KHR_SHARED_PRESENTABLE_IMAGE_EXTENSION_NAME "VK_KHR_shared_presentable_image"
Chris Forbes2e12cb82017-01-18 11:45:17 +1300351
Jesse Hall9492f992017-08-28 12:10:06 -0700352// 113
353@extension("VK_KHR_external_fence_capabilities") define VK_KHR_EXTERNAL_FENCE_CAPABILITIES_SPEC_VERSION 1
354@extension("VK_KHR_external_fence_capabilities") define VK_KHR_EXTERNAL_FENCE_CAPABILITIES_EXTENSION_NAME "VK_KHR_external_fence_capabilities"
355
356// 114
357@extension("VK_KHR_external_fence") define VK_KHR_EXTERNAL_FENCE_SPEC_VERSION 1
358@extension("VK_KHR_external_fence") define VK_KHR_EXTERNAL_FENCE_EXTENSION_NAME "VK_KHR_external_fence"
359
360// 115
361@extension("VK_KHR_external_fence_win32") define VK_KHR_EXTERNAL_FENCE_WIN32_SPEC_VERSION 1
362@extension("VK_KHR_external_fence_win32") define VK_KHR_EXTERNAL_FENCE_WIN32_EXTENSION_NAME "VK_KHR_external_fence_win32"
363
364// 116
365@extension("VK_KHR_external_fence_fd") define VK_KHR_EXTERNAL_FENCE_FD_SPEC_VERSION 1
366@extension("VK_KHR_external_fence_fd") define VK_KHR_EXTERNAL_FENCE_FD_EXTENSION_NAME "VK_KHR_external_fence_fd"
367
Jesse Hall076f95d2017-09-20 11:34:47 -0700368// 118
369@extension("VK_KHR_maintenance2") define VK_KHR_MAINTENANCE2_SPEC_VERSION 1
370@extension("VK_KHR_maintenance2") define VK_KHR_MAINTENANCE2_EXTENSION_NAME "VK_KHR_maintenance2"
371
Jesse Hall05556b12017-05-18 17:40:25 -0700372// 120
Chris Forbese2d3ee12017-03-16 16:10:15 +1300373@extension("VK_KHR_get_surface_capabilities2") define VK_KHR_GET_SURFACE_CAPABILITIES_2_SPEC_VERSION 1
374@extension("VK_KHR_get_surface_capabilities2") define VK_KHR_GET_SURFACE_CAPABILITIES_2_EXTENSION_NAME "VK_KHR_get_surface_capabilities2"
375
Jesse Hall9492f992017-08-28 12:10:06 -0700376// 121
377@extension("VK_KHR_variable_pointers") define VK_KHR_VARIABLE_POINTERS_SPEC_VERSION 1
378@extension("VK_KHR_variable_pointers") define VK_KHR_VARIABLE_POINTERS_EXTENSION_NAME "VK_KHR_variable_pointers"
379
Jesse Hallad250842017-03-10 18:35:38 -0800380// 123
381@extension("VK_MVK_ios_surface") define VK_MVK_IOS_SURFACE_SPEC_VERSION 1
382@extension("VK_MVK_ios_surface") define VK_MVK_IOS_SURFACE_EXTENSION_NAME "VK_MVK_ios_surface"
383
384// 124
385@extension("VK_MVK_macos_surface") define VK_MVK_MACOS_SURFACE_SPEC_VERSION 1
386@extension("VK_MVK_macos_surface") define VK_MVK_MACOS_SURFACE_EXTENSION_NAME "VK_MVK_macos_surface"
387
Jesse Hall8c954d32018-01-17 22:06:20 -0800388// 126
389@extension("VK_EXT_external_memory_dma_buf") define VK_EXT_EXTERNAL_MEMORY_DMA_BUF_SPEC_VERSION 1
390@extension("VK_EXT_external_memory_dma_buf") define VK_EXT_EXTERNAL_MEMORY_DMA_BUF_EXTENSION_NAME "VK_EXT_external_memory_dma_buf"
391
392// 127
393@extension("VK_EXT_queue_family_foreign") define VK_EXT_QUEUE_FAMILY_FOREIGN_SPEC_VERSION 1
394@extension("VK_EXT_queue_family_foreign") define VK_EXT_QUEUE_FAMILY_FOREIGN_EXTENSION_NAME "VK_EXT_queue_family_foreign"
395
Jesse Hall9492f992017-08-28 12:10:06 -0700396// 128
Jesse Hall77726222017-09-19 14:49:27 -0500397@extension("VK_KHR_dedicated_allocation") define VK_KHR_DEDICATED_ALLOCATION_SPEC_VERSION 3
Jesse Hall9492f992017-08-28 12:10:06 -0700398@extension("VK_KHR_dedicated_allocation") define VK_KHR_DEDICATED_ALLOCATION_EXTENSION_NAME "VK_KHR_dedicated_allocation"
399
Jesse Hall8c954d32018-01-17 22:06:20 -0800400// 128
401@extension("VK_EXT_debug_utils") define VK_EXT_DEBUG_UTILS_SPEC_VERSION 1
402@extension("VK_EXT_debug_utils") define VK_EXT_DEBUG_UTILS_EXTENSION_NAME "VK_EXT_debug_utils"
403
Jesse Hall36215a92018-01-18 15:04:37 -0800404// 130
Jesse Hall72e6a132018-04-06 13:00:44 -0700405@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 -0800406@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"
407
Jesse Hall7ba0ac72017-07-07 17:13:23 -0700408// 131
409@extension("VK_EXT_sampler_filter_minmax") define VK_EXT_SAMPLER_FILTER_MINMAX_SPEC_VERSION 1
410@extension("VK_EXT_sampler_filter_minmax") define VK_EXT_SAMPLER_FILTER_MINMAX_EXTENSION_NAME "VK_EXT_sampler_filter_minmax"
411
Jesse Hall9492f992017-08-28 12:10:06 -0700412// 132
413@extension("VK_KHR_storage_buffer_storage_class") define VK_KHR_STORAGE_BUFFER_STORAGE_CLASS_SPEC_VERSION 1
414@extension("VK_KHR_storage_buffer_storage_class") define VK_KHR_STORAGE_BUFFER_STORAGE_CLASS_EXTENSION_NAME "VK_KHR_storage_buffer_storage_class"
415
Jesse Hall7ba0ac72017-07-07 17:13:23 -0700416// 133
417@extension("VK_AMD_gpu_shader_int16") define VK_AMD_GPU_SHADER_INT16_SPEC_VERSION 1
418@extension("VK_AMD_gpu_shader_int16") define VK_AMD_GPU_SHADER_INT16_EXTENSION_NAME "VK_AMD_gpu_shader_int16"
419
Jesse Hall77726222017-09-19 14:49:27 -0500420// 137
421@extension("VK_AMD_mixed_attachment_samples") define VK_AMD_MIXED_ATTACHMENT_SAMPLES_SPEC_VERSION 1
422@extension("VK_AMD_mixed_attachment_samples") define VK_AMD_MIXED_ATTACHMENT_SAMPLES_EXTENSION_NAME "VK_AMD_mixed_attachment_samples"
423
424// 138
425@extension("VK_AMD_shader_fragment_mask") define VK_AMD_SHADER_FRAGMENT_MASK_SPEC_VERSION 1
426@extension("VK_AMD_shader_fragment_mask") define VK_AMD_SHADER_FRAGMENT_MASK_EXTENSION_NAME "VK_AMD_shader_fragment_mask"
427
428// 141
429@extension("VK_EXT_shader_stencil_export") define VK_EXT_SHADER_STENCIL_EXPORT_SPEC_VERSION 1
430@extension("VK_EXT_shader_stencil_export") define VK_EXT_SHADER_STENCIL_EXPORT_EXTENSION_NAME "VK_EXT_shader_stencil_export"
431
432// 144
433@extension("VK_EXT_sample_locations") define VK_EXT_SAMPLE_LOCATIONS_SPEC_VERSION 1
434@extension("VK_EXT_sample_locations") define VK_EXT_SAMPLE_LOCATIONS_EXTENSION_NAME "VK_EXT_sample_locations"
435
436// 145
437@extension("VK_KHR_relaxed_block_layout") define VK_KHR_RELAXED_BLOCK_LAYOUT_SPEC_VERSION 1
438@extension("VK_KHR_relaxed_block_layout") define VK_KHR_RELAXED_BLOCK_LAYOUT_EXTENSION_NAME "VK_KHR_relaxed_block_layout"
439
Jesse Hall9492f992017-08-28 12:10:06 -0700440// 147
441@extension("VK_KHR_get_memory_requirements2") define VK_KHR_GET_MEMORY_REQUIREMENTS2_SPEC_VERSION 1
442@extension("VK_KHR_get_memory_requirements2") define VK_KHR_GET_MEMORY_REQUIREMENTS2_EXTENSION_NAME "VK_KHR_get_memory_requirements2"
443
Jesse Hall076f95d2017-09-20 11:34:47 -0700444// 148
445@extension("VK_KHR_image_format_list") define VK_KHR_IMAGE_FORMAT_LIST_SPEC_VERSION 1
446@extension("VK_KHR_image_format_list") define VK_KHR_IMAGE_FORMAT_LIST_EXTENSION_NAME "VK_KHR_image_format_list"
447
Jesse Hall7ba0ac72017-07-07 17:13:23 -0700448// 149
449@extension("VK_EXT_blend_operation_advanced") define VK_EXT_BLEND_OPERATION_ADVANCED_SPEC_VERSION 2
450@extension("VK_EXT_blend_operation_advanced") define VK_EXT_BLEND_OPERATION_ADVANCED_EXTENSION_NAME "VK_EXT_blend_operation_advanced"
451
452// 150
453@extension("VK_NV_fragment_coverage_to_color") define VK_NV_FRAGMENT_COVERAGE_TO_COLOR_SPEC_VERSION 1
454@extension("VK_NV_fragment_coverage_to_color") define VK_NV_FRAGMENT_COVERAGE_TO_COLOR_EXTENSION_NAME "VK_NV_fragment_coverage_to_color"
455
456// 153
457@extension("VK_NV_framebuffer_mixed_samples") define VK_NV_FRAMEBUFFER_MIXED_SAMPLES_SPEC_VERSION 1
458@extension("VK_NV_framebuffer_mixed_samples") define VK_NV_FRAMEBUFFER_MIXED_SAMPLES_EXTENSION_NAME "VK_NV_framebuffer_mixed_samples"
459
460// 154
461@extension("VK_NV_fill_rectangle") define VK_NV_FILL_RECTANGLE_SPEC_VERSION 1
462@extension("VK_NV_fill_rectangle") define VK_NV_FILL_RECTANGLE_EXTENSION_NAME "VK_NV_fill_rectangle"
463
Jesse Hall77726222017-09-19 14:49:27 -0500464// 156
465@extension("VK_EXT_post_depth_coverage") define VK_EXT_POST_DEPTH_COVERAGE_SPEC_VERSION 1
466@extension("VK_EXT_post_depth_coverage") define VK_EXT_POST_DEPTH_COVERAGE_EXTENSION_NAME "VK_EXT_post_depth_coverage"
467
Jesse Hall076f95d2017-09-20 11:34:47 -0700468// 157
469@extension("VK_KHR_sampler_ycbcr_conversion") define VK_KHR_SAMPLER_YCBCR_CONVERSION_SPEC_VERSION 1
470@extension("VK_KHR_sampler_ycbcr_conversion") define VK_KHR_SAMPLER_YCBCR_CONVERSION_EXTENSION_NAME "VK_KHR_sampler_ycbcr_conversion"
471
472// 158
473@extension("VK_KHR_bind_memory2") define VK_KHR_BIND_MEMORY2_SPEC_VERSION 1
474@extension("VK_KHR_bind_memory2") define VK_KHR_BIND_MEMORY2_EXTENSION_NAME "VK_KHR_bind_memory2"
475
Jesse Hall77726222017-09-19 14:49:27 -0500476// 161
477@extension("VK_EXT_validation_cache") define VK_EXT_VALIDATION_CACHE_SPEC_VERSION 1
478@extension("VK_EXT_validation_cache") define VK_EXT_VALIDATION_CACHE_EXTENSION_NAME "VK_EXT_validation_cache"
479
Jesse Hall72e6a132018-04-06 13:00:44 -0700480// 162
481@extension("VK_EXT_descriptor_indexing") define VK_EXT_DESCRIPTOR_INDEXING_SPEC_VERSION 2
482@extension("VK_EXT_descriptor_indexing") define VK_EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME "VK_EXT_descriptor_indexing"
483
Jesse Hall77726222017-09-19 14:49:27 -0500484// 165
485@extension("VK_EXT_shader_viewport_index_layer") define VK_EXT_SHADER_VIEWPORT_INDEX_LAYER_SPEC_VERSION 1
486@extension("VK_EXT_shader_viewport_index_layer") define VK_EXT_SHADER_VIEWPORT_INDEX_LAYER_EXTENSION_NAME "VK_EXT_shader_viewport_index_layer"
487
Daniel Koch09f7bf92017-10-05 00:26:58 -0400488// 169
489@extension("VK_KHR_maintenance3") define VK_KHR_MAINTENANCE3_SPEC_VERSION 1
490@extension("VK_KHR_maintenance3") define VK_KHR_MAINTENANCE3_EXTENSION_NAME "VK_KHR_maintenance3"
491
Jesse Hall8c954d32018-01-17 22:06:20 -0800492// 175
493@extension("VK_EXT_global_priority") define VK_EXT_GLOBAL_PRIORITY_SPEC_VERSION 1
494@extension("VK_EXT_global_priority") define VK_EXT_GLOBAL_PRIORITY_EXTENSION_NAME "VK_EXT_global_priority"
495
496// 179
497@extension("VK_EXT_external_memory_host") define VK_EXT_EXTERNAL_MEMORY_HOST_SPEC_VERSION 1
498@extension("VK_EXT_external_memory_host") define VK_EXT_EXTERNAL_MEMORY_HOST_EXTENSION_NAME "VK_EXT_external_memory_host"
499
Jesse Hall72e6a132018-04-06 13:00:44 -0700500// 180
501@extension("VK_AMD_buffer_marker") define VK_AMD_BUFFER_MARKER_SPEC_VERSION 1
502@extension("VK_AMD_buffer_marker") define VK_AMD_BUFFER_MARKER_EXTENSION_NAME "VK_AMD_buffer_marker"
503
504// 186
505@extension("VK_AMD_shader_core_properties") define VK_AMD_SHADER_CORE_PROPERTIES_SPEC_VERSION 1
506@extension("VK_AMD_shader_core_properties") define VK_AMD_SHADER_CORE_PROPERTIES_EXTENSION_NAME "VK_AMD_shader_core_properties"
507
508// 191
509@extension("VK_EXT_vertex_attribute_divisor") define VK_AMD_SHADER_CORE_PROPERTIES_SPEC_VERSION 1
510@extension("VK_EXT_vertex_attribute_divisor") define VK_AMD_BUFFER_MARKER_EXTENSION_NAME "VK_EXT_vertex_attribute_divisor"
511
512// 199
513@extension("VK_NV_shader_subgroup_partitioned") define VK_NV_SHADER_SUBGROUP_PARTITIONED_SPEC_VERSION 1
514@extension("VK_NV_shader_subgroup_partitioned") define VK_NV_SHADER_SUBGROUP_PARTITIONED_EXTENSION_NAME "VK_NV_shader_subgroup_partitioned"
515
Jesse Halld27f6aa2015-08-15 17:58:48 -0700516/////////////
517// Types //
518/////////////
519
Jesse Hall5ae3abb2015-10-08 14:00:22 -0700520type u32 VkBool32
521type u32 VkFlags
522type u64 VkDeviceSize
523type u32 VkSampleMask
524
Jesse Halld27f6aa2015-08-15 17:58:48 -0700525/// Dispatchable handle types.
526@dispatchHandle type u64 VkInstance
527@dispatchHandle type u64 VkPhysicalDevice
528@dispatchHandle type u64 VkDevice
529@dispatchHandle type u64 VkQueue
Jesse Hall3fbc8562015-11-29 22:10:52 -0800530@dispatchHandle type u64 VkCommandBuffer
Jesse Halld27f6aa2015-08-15 17:58:48 -0700531
532/// Non dispatchable handle types.
533@nonDispatchHandle type u64 VkDeviceMemory
Jesse Hall3fbc8562015-11-29 22:10:52 -0800534@nonDispatchHandle type u64 VkCommandPool
Jesse Halld27f6aa2015-08-15 17:58:48 -0700535@nonDispatchHandle type u64 VkBuffer
536@nonDispatchHandle type u64 VkBufferView
537@nonDispatchHandle type u64 VkImage
538@nonDispatchHandle type u64 VkImageView
Jesse Halld27f6aa2015-08-15 17:58:48 -0700539@nonDispatchHandle type u64 VkShaderModule
Jesse Halld27f6aa2015-08-15 17:58:48 -0700540@nonDispatchHandle type u64 VkPipeline
541@nonDispatchHandle type u64 VkPipelineLayout
542@nonDispatchHandle type u64 VkSampler
543@nonDispatchHandle type u64 VkDescriptorSet
544@nonDispatchHandle type u64 VkDescriptorSetLayout
545@nonDispatchHandle type u64 VkDescriptorPool
Jesse Halld27f6aa2015-08-15 17:58:48 -0700546@nonDispatchHandle type u64 VkFence
547@nonDispatchHandle type u64 VkSemaphore
548@nonDispatchHandle type u64 VkEvent
549@nonDispatchHandle type u64 VkQueryPool
550@nonDispatchHandle type u64 VkFramebuffer
551@nonDispatchHandle type u64 VkRenderPass
552@nonDispatchHandle type u64 VkPipelineCache
Jesse Hall1356b0d2015-11-23 17:24:58 -0800553
Ian Elliott28bd2c32017-10-13 09:21:12 -0600554@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -0400555@nonDispatchHandle type u64 VkSamplerYcbcrConversion
556@nonDispatchHandle type u64 VkDescriptorUpdateTemplate
557
Jesse Hallad250842017-03-10 18:35:38 -0800558// 1
Jesse Hall3e0dc8f2015-11-30 00:42:57 -0800559@extension("VK_KHR_surface") @nonDispatchHandle type u64 VkSurfaceKHR
Jesse Hall1356b0d2015-11-23 17:24:58 -0800560
Jesse Hallad250842017-03-10 18:35:38 -0800561// 2
Jesse Hall3e0dc8f2015-11-30 00:42:57 -0800562@extension("VK_KHR_swapchain") @nonDispatchHandle type u64 VkSwapchainKHR
Jesse Hall1356b0d2015-11-23 17:24:58 -0800563
Jesse Hallad250842017-03-10 18:35:38 -0800564// 3
Jesse Hall3e0dc8f2015-11-30 00:42:57 -0800565@extension("VK_KHR_display") @nonDispatchHandle type u64 VkDisplayKHR
566@extension("VK_KHR_display") @nonDispatchHandle type u64 VkDisplayModeKHR
Jesse Halld27f6aa2015-08-15 17:58:48 -0700567
Jesse Hallad250842017-03-10 18:35:38 -0800568// 12
Jesse Hall715b86a2016-01-16 16:34:29 -0800569@extension("VK_EXT_debug_report") @nonDispatchHandle type u64 VkDebugReportCallbackEXT
570
Jesse Hallad250842017-03-10 18:35:38 -0800571// 86
572@extension("VK_KHR_descriptor_update_template") @nonDispatchHandle type u64 VkDescriptorUpdateTemplateKHR
573
574// 87
Chris Forbes289cb792016-12-30 15:03:55 +1300575@extension("VK_NVX_device_generated_commands") @nonDispatchHandle type u64 VkObjectTableNVX
576@extension("VK_NVX_device_generated_commands") @nonDispatchHandle type u64 VkIndirectCommandsLayoutNVX
577
Jesse Hall8c954d32018-01-17 22:06:20 -0800578// 129
579@extension("VK_EXT_debug_utils") @nonDispatchHandle type u64 VkDebugUtilsMessengerEXT
580
Jesse Hall076f95d2017-09-20 11:34:47 -0700581// 157
582@extension("VK_KHR_sampler_ycbcr_conversion") @nonDispatchHandle type u64 VkSamplerYcbcrConversionKHR
583
Jesse Hall77726222017-09-19 14:49:27 -0500584// 161
585@extension("VK_EXT_validation_cache") @nonDispatchHandle type u64 VkValidationCacheEXT
Jesse Halld27f6aa2015-08-15 17:58:48 -0700586
587/////////////
588// Enums //
589/////////////
590
591enum VkImageLayout {
592 VK_IMAGE_LAYOUT_UNDEFINED = 0x00000000, /// Implicit layout an image is when its contents are undefined due to various reasons (e.g. right after creation)
593 VK_IMAGE_LAYOUT_GENERAL = 0x00000001, /// General layout when image can be used for any kind of access
594 VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL = 0x00000002, /// Optimal layout when image is only used for color attachment read/write
595 VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL = 0x00000003, /// Optimal layout when image is only used for depth/stencil attachment read/write
596 VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL = 0x00000004, /// Optimal layout when image is used for read only depth/stencil attachment and shader access
597 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 -0800598 VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL = 0x00000006, /// Optimal layout when image is used only as source of transfer operations
599 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 -0700600 VK_IMAGE_LAYOUT_PREINITIALIZED = 0x00000008, /// Initial layout used when the data is populated by the CPU
Jesse Hall1356b0d2015-11-23 17:24:58 -0800601
Ian Elliott28bd2c32017-10-13 09:21:12 -0600602 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -0400603 VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL = 1000117000,
604 VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL = 1000117001,
605
Jesse Hallad250842017-03-10 18:35:38 -0800606 //@extension("VK_KHR_swapchain") // 2
Jesse Hallbd888842015-11-30 21:44:14 -0800607 VK_IMAGE_LAYOUT_PRESENT_SRC_KHR = 1000001002,
Chris Forbesaf3a1112017-01-31 15:37:03 +1300608
Jesse Hall05556b12017-05-18 17:40:25 -0700609 //@extension("VK_KHR_shared_presentable_image") // 112
Chris Forbesaf3a1112017-01-31 15:37:03 +1300610 VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR = 1000111000,
Jesse Hall076f95d2017-09-20 11:34:47 -0700611
612 //@extension("VK_KHR_maintenance2") // 118
613 VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL_KHR = 1000117000,
614 VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL_KHR = 1000117001,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700615}
616
617enum VkAttachmentLoadOp {
618 VK_ATTACHMENT_LOAD_OP_LOAD = 0x00000000,
619 VK_ATTACHMENT_LOAD_OP_CLEAR = 0x00000001,
620 VK_ATTACHMENT_LOAD_OP_DONT_CARE = 0x00000002,
621}
622
623enum VkAttachmentStoreOp {
624 VK_ATTACHMENT_STORE_OP_STORE = 0x00000000,
625 VK_ATTACHMENT_STORE_OP_DONT_CARE = 0x00000001,
626}
627
628enum VkImageType {
629 VK_IMAGE_TYPE_1D = 0x00000000,
630 VK_IMAGE_TYPE_2D = 0x00000001,
631 VK_IMAGE_TYPE_3D = 0x00000002,
632}
633
634enum VkImageTiling {
Jesse Hallc7467b72015-11-29 21:05:26 -0800635 VK_IMAGE_TILING_OPTIMAL = 0x00000000,
636 VK_IMAGE_TILING_LINEAR = 0x00000001,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700637}
638
639enum VkImageViewType {
640 VK_IMAGE_VIEW_TYPE_1D = 0x00000000,
641 VK_IMAGE_VIEW_TYPE_2D = 0x00000001,
642 VK_IMAGE_VIEW_TYPE_3D = 0x00000002,
643 VK_IMAGE_VIEW_TYPE_CUBE = 0x00000003,
644 VK_IMAGE_VIEW_TYPE_1D_ARRAY = 0x00000004,
645 VK_IMAGE_VIEW_TYPE_2D_ARRAY = 0x00000005,
646 VK_IMAGE_VIEW_TYPE_CUBE_ARRAY = 0x00000006,
647}
648
Jesse Hall3fbc8562015-11-29 22:10:52 -0800649enum VkCommandBufferLevel {
650 VK_COMMAND_BUFFER_LEVEL_PRIMARY = 0x00000000,
651 VK_COMMAND_BUFFER_LEVEL_SECONDARY = 0x00000001,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700652}
653
Jesse Hall65ab5522015-11-30 00:07:16 -0800654enum VkComponentSwizzle {
655 VK_COMPONENT_SWIZZLE_IDENTITY = 0x00000000,
656 VK_COMPONENT_SWIZZLE_ZERO = 0x00000001,
657 VK_COMPONENT_SWIZZLE_ONE = 0x00000002,
658 VK_COMPONENT_SWIZZLE_R = 0x00000003,
659 VK_COMPONENT_SWIZZLE_G = 0x00000004,
660 VK_COMPONENT_SWIZZLE_B = 0x00000005,
661 VK_COMPONENT_SWIZZLE_A = 0x00000006,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700662}
663
664enum VkDescriptorType {
665 VK_DESCRIPTOR_TYPE_SAMPLER = 0x00000000,
666 VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER = 0x00000001,
667 VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE = 0x00000002,
668 VK_DESCRIPTOR_TYPE_STORAGE_IMAGE = 0x00000003,
669 VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER = 0x00000004,
670 VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER = 0x00000005,
671 VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER = 0x00000006,
672 VK_DESCRIPTOR_TYPE_STORAGE_BUFFER = 0x00000007,
673 VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC = 0x00000008,
674 VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC = 0x00000009,
675 VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT = 0x0000000a,
676}
677
Jesse Halld27f6aa2015-08-15 17:58:48 -0700678enum VkQueryType {
679 VK_QUERY_TYPE_OCCLUSION = 0x00000000,
680 VK_QUERY_TYPE_PIPELINE_STATISTICS = 0x00000001, /// Optional
Jesse Halla3a7a1d2015-11-24 11:37:23 -0800681 VK_QUERY_TYPE_TIMESTAMP = 0x00000002,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700682}
683
Jesse Halld27f6aa2015-08-15 17:58:48 -0700684enum VkBorderColor {
685 VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK = 0x00000000,
686 VK_BORDER_COLOR_INT_TRANSPARENT_BLACK = 0x00000001,
687 VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK = 0x00000002,
688 VK_BORDER_COLOR_INT_OPAQUE_BLACK = 0x00000003,
689 VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE = 0x00000004,
690 VK_BORDER_COLOR_INT_OPAQUE_WHITE = 0x00000005,
691}
692
693enum VkPipelineBindPoint {
Jesse Hallc7467b72015-11-29 21:05:26 -0800694 VK_PIPELINE_BIND_POINT_GRAPHICS = 0x00000000,
695 VK_PIPELINE_BIND_POINT_COMPUTE = 0x00000001,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700696}
697
698enum VkPrimitiveTopology {
699 VK_PRIMITIVE_TOPOLOGY_POINT_LIST = 0x00000000,
700 VK_PRIMITIVE_TOPOLOGY_LINE_LIST = 0x00000001,
701 VK_PRIMITIVE_TOPOLOGY_LINE_STRIP = 0x00000002,
702 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST = 0x00000003,
703 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP = 0x00000004,
704 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN = 0x00000005,
Jesse Hall3fbc8562015-11-29 22:10:52 -0800705 VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY = 0x00000006,
706 VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY = 0x00000007,
707 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY = 0x00000008,
708 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY = 0x00000009,
Jesse Hall091ed9e2015-11-30 00:55:29 -0800709 VK_PRIMITIVE_TOPOLOGY_PATCH_LIST = 0x0000000a,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700710}
711
712enum VkSharingMode {
713 VK_SHARING_MODE_EXCLUSIVE = 0x00000000,
714 VK_SHARING_MODE_CONCURRENT = 0x00000001,
715}
716
717enum VkIndexType {
718 VK_INDEX_TYPE_UINT16 = 0x00000000,
719 VK_INDEX_TYPE_UINT32 = 0x00000001,
720}
721
Jesse Hall23ff73f2015-11-29 14:36:39 -0800722enum VkFilter {
723 VK_FILTER_NEAREST = 0x00000000,
724 VK_FILTER_LINEAR = 0x00000001,
Jesse Hall26763382016-05-20 07:13:52 -0700725
Jesse Hallad250842017-03-10 18:35:38 -0800726 //@extension("VK_IMG_filter_cubic") // 16
Jesse Hall26763382016-05-20 07:13:52 -0700727 VK_FILTER_CUBIC_IMG = 1000015000,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700728}
729
Jesse Hall23ff73f2015-11-29 14:36:39 -0800730enum VkSamplerMipmapMode {
Jesse Hall23ff73f2015-11-29 14:36:39 -0800731 VK_SAMPLER_MIPMAP_MODE_NEAREST = 0x00000001, /// Choose nearest mip level
732 VK_SAMPLER_MIPMAP_MODE_LINEAR = 0x00000002, /// Linear filter between mip levels
Jesse Halld27f6aa2015-08-15 17:58:48 -0700733}
734
Jesse Hall23ff73f2015-11-29 14:36:39 -0800735enum VkSamplerAddressMode {
Jesse Hallc7467b72015-11-29 21:05:26 -0800736 VK_SAMPLER_ADDRESS_MODE_REPEAT = 0x00000000,
737 VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT = 0x00000001,
738 VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE = 0x00000002,
739 VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER = 0x00000003,
740 VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE = 0x00000004,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700741}
742
743enum VkCompareOp {
744 VK_COMPARE_OP_NEVER = 0x00000000,
745 VK_COMPARE_OP_LESS = 0x00000001,
746 VK_COMPARE_OP_EQUAL = 0x00000002,
Jesse Hall3fbc8562015-11-29 22:10:52 -0800747 VK_COMPARE_OP_LESS_OR_EQUAL = 0x00000003,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700748 VK_COMPARE_OP_GREATER = 0x00000004,
749 VK_COMPARE_OP_NOT_EQUAL = 0x00000005,
Jesse Hall3fbc8562015-11-29 22:10:52 -0800750 VK_COMPARE_OP_GREATER_OR_EQUAL = 0x00000006,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700751 VK_COMPARE_OP_ALWAYS = 0x00000007,
752}
753
Jesse Hall65ab5522015-11-30 00:07:16 -0800754enum VkPolygonMode {
755 VK_POLYGON_MODE_FILL = 0x00000000,
756 VK_POLYGON_MODE_LINE = 0x00000001,
757 VK_POLYGON_MODE_POINT = 0x00000002,
Jesse Hall7ba0ac72017-07-07 17:13:23 -0700758
759 //@extension("VK_NV_fill_rectangle") // 154
760 VK_POLYGON_MODE_FILL_RECTANGLE_NV = 1000153000,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700761}
762
763enum VkFrontFace {
Jesse Hall3fbc8562015-11-29 22:10:52 -0800764 VK_FRONT_FACE_COUNTER_CLOCKWISE = 0x00000000,
765 VK_FRONT_FACE_CLOCKWISE = 0x00000001,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700766}
767
Jesse Hall65ab5522015-11-30 00:07:16 -0800768enum VkBlendFactor {
769 VK_BLEND_FACTOR_ZERO = 0x00000000,
770 VK_BLEND_FACTOR_ONE = 0x00000001,
771 VK_BLEND_FACTOR_SRC_COLOR = 0x00000002,
772 VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR = 0x00000003,
773 VK_BLEND_FACTOR_DST_COLOR = 0x00000004,
774 VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR = 0x00000005,
775 VK_BLEND_FACTOR_SRC_ALPHA = 0x00000006,
776 VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA = 0x00000007,
777 VK_BLEND_FACTOR_DST_ALPHA = 0x00000008,
778 VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA = 0x00000009,
779 VK_BLEND_FACTOR_CONSTANT_COLOR = 0x0000000a,
780 VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR = 0x0000000b,
781 VK_BLEND_FACTOR_CONSTANT_ALPHA = 0x0000000c,
782 VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA = 0x0000000d,
783 VK_BLEND_FACTOR_SRC_ALPHA_SATURATE = 0x0000000e,
784 VK_BLEND_FACTOR_SRC1_COLOR = 0x0000000f,
785 VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR = 0x00000010,
786 VK_BLEND_FACTOR_SRC1_ALPHA = 0x00000011,
787 VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA = 0x00000012,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700788}
789
790enum VkBlendOp {
791 VK_BLEND_OP_ADD = 0x00000000,
792 VK_BLEND_OP_SUBTRACT = 0x00000001,
793 VK_BLEND_OP_REVERSE_SUBTRACT = 0x00000002,
794 VK_BLEND_OP_MIN = 0x00000003,
795 VK_BLEND_OP_MAX = 0x00000004,
Jesse Hall7ba0ac72017-07-07 17:13:23 -0700796
797 //@extension("VK_EXT_blend_operation_advanced") // 149
798 VK_BLEND_OP_ZERO_EXT = 1000148000,
799 VK_BLEND_OP_SRC_EXT = 1000148001,
800 VK_BLEND_OP_DST_EXT = 1000148002,
801 VK_BLEND_OP_SRC_OVER_EXT = 1000148003,
802 VK_BLEND_OP_DST_OVER_EXT = 1000148004,
803 VK_BLEND_OP_SRC_IN_EXT = 1000148005,
804 VK_BLEND_OP_DST_IN_EXT = 1000148006,
805 VK_BLEND_OP_SRC_OUT_EXT = 1000148007,
806 VK_BLEND_OP_DST_OUT_EXT = 1000148008,
807 VK_BLEND_OP_SRC_ATOP_EXT = 1000148009,
808 VK_BLEND_OP_DST_ATOP_EXT = 1000148010,
809 VK_BLEND_OP_XOR_EXT = 1000148011,
810 VK_BLEND_OP_MULTIPLY_EXT = 1000148012,
811 VK_BLEND_OP_SCREEN_EXT = 1000148013,
812 VK_BLEND_OP_OVERLAY_EXT = 1000148014,
813 VK_BLEND_OP_DARKEN_EXT = 1000148015,
814 VK_BLEND_OP_LIGHTEN_EXT = 1000148016,
815 VK_BLEND_OP_COLORDODGE_EXT = 1000148017,
816 VK_BLEND_OP_COLORBURN_EXT = 1000148018,
817 VK_BLEND_OP_HARDLIGHT_EXT = 1000148019,
818 VK_BLEND_OP_SOFTLIGHT_EXT = 1000148020,
819 VK_BLEND_OP_DIFFERENCE_EXT = 1000148021,
820 VK_BLEND_OP_EXCLUSION_EXT = 1000148022,
821 VK_BLEND_OP_INVERT_EXT = 1000148023,
822 VK_BLEND_OP_INVERT_RGB_EXT = 1000148024,
823 VK_BLEND_OP_LINEARDODGE_EXT = 1000148025,
824 VK_BLEND_OP_LINEARBURN_EXT = 1000148026,
825 VK_BLEND_OP_VIVIDLIGHT_EXT = 1000148027,
826 VK_BLEND_OP_LINEARLIGHT_EXT = 1000148028,
827 VK_BLEND_OP_PINLIGHT_EXT = 1000148029,
828 VK_BLEND_OP_HARDMIX_EXT = 1000148030,
829 VK_BLEND_OP_HSL_HUE_EXT = 1000148031,
830 VK_BLEND_OP_HSL_SATURATION_EXT = 1000148032,
831 VK_BLEND_OP_HSL_COLOR_EXT = 1000148033,
832 VK_BLEND_OP_HSL_LUMINOSITY_EXT = 1000148034,
833 VK_BLEND_OP_PLUS_EXT = 1000148035,
834 VK_BLEND_OP_PLUS_CLAMPED_EXT = 1000148036,
835 VK_BLEND_OP_PLUS_CLAMPED_ALPHA_EXT = 1000148037,
836 VK_BLEND_OP_PLUS_DARKER_EXT = 1000148038,
837 VK_BLEND_OP_MINUS_EXT = 1000148039,
838 VK_BLEND_OP_MINUS_CLAMPED_EXT = 1000148040,
839 VK_BLEND_OP_CONTRAST_EXT = 1000148041,
840 VK_BLEND_OP_INVERT_OVG_EXT = 1000148042,
841 VK_BLEND_OP_RED_EXT = 1000148043,
842 VK_BLEND_OP_GREEN_EXT = 1000148044,
843 VK_BLEND_OP_BLUE_EXT = 1000148045,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700844}
845
846enum VkStencilOp {
847 VK_STENCIL_OP_KEEP = 0x00000000,
848 VK_STENCIL_OP_ZERO = 0x00000001,
849 VK_STENCIL_OP_REPLACE = 0x00000002,
Jesse Hall3fbc8562015-11-29 22:10:52 -0800850 VK_STENCIL_OP_INCREMENT_AND_CLAMP = 0x00000003,
851 VK_STENCIL_OP_DECREMENT_AND_CLAMP = 0x00000004,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700852 VK_STENCIL_OP_INVERT = 0x00000005,
Jesse Hall3fbc8562015-11-29 22:10:52 -0800853 VK_STENCIL_OP_INCREMENT_AND_WRAP = 0x00000006,
854 VK_STENCIL_OP_DECREMENT_AND_WRAP = 0x00000007,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700855}
856
857enum VkLogicOp {
858 VK_LOGIC_OP_CLEAR = 0x00000000,
859 VK_LOGIC_OP_AND = 0x00000001,
860 VK_LOGIC_OP_AND_REVERSE = 0x00000002,
861 VK_LOGIC_OP_COPY = 0x00000003,
862 VK_LOGIC_OP_AND_INVERTED = 0x00000004,
Jesse Hall3fbc8562015-11-29 22:10:52 -0800863 VK_LOGIC_OP_NO_OP = 0x00000005,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700864 VK_LOGIC_OP_XOR = 0x00000006,
865 VK_LOGIC_OP_OR = 0x00000007,
866 VK_LOGIC_OP_NOR = 0x00000008,
Jesse Hall3fbc8562015-11-29 22:10:52 -0800867 VK_LOGIC_OP_EQUIVALENT = 0x00000009,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700868 VK_LOGIC_OP_INVERT = 0x0000000a,
869 VK_LOGIC_OP_OR_REVERSE = 0x0000000b,
870 VK_LOGIC_OP_COPY_INVERTED = 0x0000000c,
871 VK_LOGIC_OP_OR_INVERTED = 0x0000000d,
872 VK_LOGIC_OP_NAND = 0x0000000e,
873 VK_LOGIC_OP_SET = 0x0000000f,
874}
875
Jesse Hall3fbc8562015-11-29 22:10:52 -0800876enum VkSystemAllocationScope {
Jesse Hall3e0dc8f2015-11-30 00:42:57 -0800877 VK_SYSTEM_ALLOCATION_SCOPE_COMMAND = 0x00000000,
Jesse Hall3fbc8562015-11-29 22:10:52 -0800878 VK_SYSTEM_ALLOCATION_SCOPE_OBJECT = 0x00000001,
879 VK_SYSTEM_ALLOCATION_SCOPE_CACHE = 0x00000002,
880 VK_SYSTEM_ALLOCATION_SCOPE_DEVICE = 0x00000003,
881 VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE = 0x00000004,
Jesse Hall03b6fe12015-11-24 12:44:21 -0800882}
883
Jesse Hall3fbc8562015-11-29 22:10:52 -0800884enum VkInternalAllocationType {
885 VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE = 0x00000000,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700886}
887
888enum VkPhysicalDeviceType {
889 VK_PHYSICAL_DEVICE_TYPE_OTHER = 0x00000000,
890 VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU = 0x00000001,
891 VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU = 0x00000002,
892 VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU = 0x00000003,
893 VK_PHYSICAL_DEVICE_TYPE_CPU = 0x00000004,
894}
895
Jesse Hall65ab5522015-11-30 00:07:16 -0800896enum VkVertexInputRate {
897 VK_VERTEX_INPUT_RATE_VERTEX = 0x00000000,
898 VK_VERTEX_INPUT_RATE_INSTANCE = 0x00000001,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700899}
900
901/// Vulkan format definitions
902enum VkFormat {
Jesse Hallf4ab2b12015-11-30 16:04:55 -0800903 VK_FORMAT_UNDEFINED = 0,
904 VK_FORMAT_R4G4_UNORM_PACK8 = 1,
905 VK_FORMAT_R4G4B4A4_UNORM_PACK16 = 2,
906 VK_FORMAT_B4G4R4A4_UNORM_PACK16 = 3,
907 VK_FORMAT_R5G6B5_UNORM_PACK16 = 4,
908 VK_FORMAT_B5G6R5_UNORM_PACK16 = 5,
909 VK_FORMAT_R5G5B5A1_UNORM_PACK16 = 6,
910 VK_FORMAT_B5G5R5A1_UNORM_PACK16 = 7,
911 VK_FORMAT_A1R5G5B5_UNORM_PACK16 = 8,
912 VK_FORMAT_R8_UNORM = 9,
913 VK_FORMAT_R8_SNORM = 10,
914 VK_FORMAT_R8_USCALED = 11,
915 VK_FORMAT_R8_SSCALED = 12,
916 VK_FORMAT_R8_UINT = 13,
917 VK_FORMAT_R8_SINT = 14,
918 VK_FORMAT_R8_SRGB = 15,
919 VK_FORMAT_R8G8_UNORM = 16,
920 VK_FORMAT_R8G8_SNORM = 17,
921 VK_FORMAT_R8G8_USCALED = 18,
922 VK_FORMAT_R8G8_SSCALED = 19,
923 VK_FORMAT_R8G8_UINT = 20,
924 VK_FORMAT_R8G8_SINT = 21,
925 VK_FORMAT_R8G8_SRGB = 22,
926 VK_FORMAT_R8G8B8_UNORM = 23,
927 VK_FORMAT_R8G8B8_SNORM = 24,
928 VK_FORMAT_R8G8B8_USCALED = 25,
929 VK_FORMAT_R8G8B8_SSCALED = 26,
930 VK_FORMAT_R8G8B8_UINT = 27,
931 VK_FORMAT_R8G8B8_SINT = 28,
932 VK_FORMAT_R8G8B8_SRGB = 29,
933 VK_FORMAT_B8G8R8_UNORM = 30,
934 VK_FORMAT_B8G8R8_SNORM = 31,
935 VK_FORMAT_B8G8R8_USCALED = 32,
936 VK_FORMAT_B8G8R8_SSCALED = 33,
937 VK_FORMAT_B8G8R8_UINT = 34,
938 VK_FORMAT_B8G8R8_SINT = 35,
939 VK_FORMAT_B8G8R8_SRGB = 36,
940 VK_FORMAT_R8G8B8A8_UNORM = 37,
941 VK_FORMAT_R8G8B8A8_SNORM = 38,
942 VK_FORMAT_R8G8B8A8_USCALED = 39,
943 VK_FORMAT_R8G8B8A8_SSCALED = 40,
944 VK_FORMAT_R8G8B8A8_UINT = 41,
945 VK_FORMAT_R8G8B8A8_SINT = 42,
946 VK_FORMAT_R8G8B8A8_SRGB = 43,
947 VK_FORMAT_B8G8R8A8_UNORM = 44,
948 VK_FORMAT_B8G8R8A8_SNORM = 45,
949 VK_FORMAT_B8G8R8A8_USCALED = 46,
950 VK_FORMAT_B8G8R8A8_SSCALED = 47,
951 VK_FORMAT_B8G8R8A8_UINT = 48,
952 VK_FORMAT_B8G8R8A8_SINT = 49,
953 VK_FORMAT_B8G8R8A8_SRGB = 50,
954 VK_FORMAT_A8B8G8R8_UNORM_PACK32 = 51,
955 VK_FORMAT_A8B8G8R8_SNORM_PACK32 = 52,
956 VK_FORMAT_A8B8G8R8_USCALED_PACK32 = 53,
957 VK_FORMAT_A8B8G8R8_SSCALED_PACK32 = 54,
958 VK_FORMAT_A8B8G8R8_UINT_PACK32 = 55,
959 VK_FORMAT_A8B8G8R8_SINT_PACK32 = 56,
960 VK_FORMAT_A8B8G8R8_SRGB_PACK32 = 57,
961 VK_FORMAT_A2R10G10B10_UNORM_PACK32 = 58,
962 VK_FORMAT_A2R10G10B10_SNORM_PACK32 = 59,
963 VK_FORMAT_A2R10G10B10_USCALED_PACK32 = 60,
964 VK_FORMAT_A2R10G10B10_SSCALED_PACK32 = 61,
965 VK_FORMAT_A2R10G10B10_UINT_PACK32 = 62,
966 VK_FORMAT_A2R10G10B10_SINT_PACK32 = 63,
967 VK_FORMAT_A2B10G10R10_UNORM_PACK32 = 64,
968 VK_FORMAT_A2B10G10R10_SNORM_PACK32 = 65,
969 VK_FORMAT_A2B10G10R10_USCALED_PACK32 = 66,
970 VK_FORMAT_A2B10G10R10_SSCALED_PACK32 = 67,
971 VK_FORMAT_A2B10G10R10_UINT_PACK32 = 68,
972 VK_FORMAT_A2B10G10R10_SINT_PACK32 = 69,
973 VK_FORMAT_R16_UNORM = 70,
974 VK_FORMAT_R16_SNORM = 71,
975 VK_FORMAT_R16_USCALED = 72,
976 VK_FORMAT_R16_SSCALED = 73,
977 VK_FORMAT_R16_UINT = 74,
978 VK_FORMAT_R16_SINT = 75,
979 VK_FORMAT_R16_SFLOAT = 76,
980 VK_FORMAT_R16G16_UNORM = 77,
981 VK_FORMAT_R16G16_SNORM = 78,
982 VK_FORMAT_R16G16_USCALED = 79,
983 VK_FORMAT_R16G16_SSCALED = 80,
984 VK_FORMAT_R16G16_UINT = 81,
985 VK_FORMAT_R16G16_SINT = 82,
986 VK_FORMAT_R16G16_SFLOAT = 83,
987 VK_FORMAT_R16G16B16_UNORM = 84,
988 VK_FORMAT_R16G16B16_SNORM = 85,
989 VK_FORMAT_R16G16B16_USCALED = 86,
990 VK_FORMAT_R16G16B16_SSCALED = 87,
991 VK_FORMAT_R16G16B16_UINT = 88,
992 VK_FORMAT_R16G16B16_SINT = 89,
993 VK_FORMAT_R16G16B16_SFLOAT = 90,
994 VK_FORMAT_R16G16B16A16_UNORM = 91,
995 VK_FORMAT_R16G16B16A16_SNORM = 92,
996 VK_FORMAT_R16G16B16A16_USCALED = 93,
997 VK_FORMAT_R16G16B16A16_SSCALED = 94,
998 VK_FORMAT_R16G16B16A16_UINT = 95,
999 VK_FORMAT_R16G16B16A16_SINT = 96,
1000 VK_FORMAT_R16G16B16A16_SFLOAT = 97,
1001 VK_FORMAT_R32_UINT = 98,
1002 VK_FORMAT_R32_SINT = 99,
1003 VK_FORMAT_R32_SFLOAT = 100,
1004 VK_FORMAT_R32G32_UINT = 101,
1005 VK_FORMAT_R32G32_SINT = 102,
1006 VK_FORMAT_R32G32_SFLOAT = 103,
1007 VK_FORMAT_R32G32B32_UINT = 104,
1008 VK_FORMAT_R32G32B32_SINT = 105,
1009 VK_FORMAT_R32G32B32_SFLOAT = 106,
1010 VK_FORMAT_R32G32B32A32_UINT = 107,
1011 VK_FORMAT_R32G32B32A32_SINT = 108,
1012 VK_FORMAT_R32G32B32A32_SFLOAT = 109,
1013 VK_FORMAT_R64_UINT = 110,
1014 VK_FORMAT_R64_SINT = 111,
1015 VK_FORMAT_R64_SFLOAT = 112,
1016 VK_FORMAT_R64G64_UINT = 113,
1017 VK_FORMAT_R64G64_SINT = 114,
1018 VK_FORMAT_R64G64_SFLOAT = 115,
1019 VK_FORMAT_R64G64B64_UINT = 116,
1020 VK_FORMAT_R64G64B64_SINT = 117,
1021 VK_FORMAT_R64G64B64_SFLOAT = 118,
1022 VK_FORMAT_R64G64B64A64_UINT = 119,
1023 VK_FORMAT_R64G64B64A64_SINT = 120,
1024 VK_FORMAT_R64G64B64A64_SFLOAT = 121,
1025 VK_FORMAT_B10G11R11_UFLOAT_PACK32 = 122,
1026 VK_FORMAT_E5B9G9R9_UFLOAT_PACK32 = 123,
1027 VK_FORMAT_D16_UNORM = 124,
1028 VK_FORMAT_X8_D24_UNORM_PACK32 = 125,
1029 VK_FORMAT_D32_SFLOAT = 126,
1030 VK_FORMAT_S8_UINT = 127,
1031 VK_FORMAT_D16_UNORM_S8_UINT = 128,
1032 VK_FORMAT_D24_UNORM_S8_UINT = 129,
1033 VK_FORMAT_D32_SFLOAT_S8_UINT = 130,
1034 VK_FORMAT_BC1_RGB_UNORM_BLOCK = 131,
1035 VK_FORMAT_BC1_RGB_SRGB_BLOCK = 132,
1036 VK_FORMAT_BC1_RGBA_UNORM_BLOCK = 133,
1037 VK_FORMAT_BC1_RGBA_SRGB_BLOCK = 134,
1038 VK_FORMAT_BC2_UNORM_BLOCK = 135,
1039 VK_FORMAT_BC2_SRGB_BLOCK = 136,
1040 VK_FORMAT_BC3_UNORM_BLOCK = 137,
1041 VK_FORMAT_BC3_SRGB_BLOCK = 138,
1042 VK_FORMAT_BC4_UNORM_BLOCK = 139,
1043 VK_FORMAT_BC4_SNORM_BLOCK = 140,
1044 VK_FORMAT_BC5_UNORM_BLOCK = 141,
1045 VK_FORMAT_BC5_SNORM_BLOCK = 142,
1046 VK_FORMAT_BC6H_UFLOAT_BLOCK = 143,
1047 VK_FORMAT_BC6H_SFLOAT_BLOCK = 144,
1048 VK_FORMAT_BC7_UNORM_BLOCK = 145,
1049 VK_FORMAT_BC7_SRGB_BLOCK = 146,
1050 VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK = 147,
1051 VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK = 148,
1052 VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK = 149,
1053 VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK = 150,
1054 VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK = 151,
1055 VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK = 152,
1056 VK_FORMAT_EAC_R11_UNORM_BLOCK = 153,
1057 VK_FORMAT_EAC_R11_SNORM_BLOCK = 154,
1058 VK_FORMAT_EAC_R11G11_UNORM_BLOCK = 155,
1059 VK_FORMAT_EAC_R11G11_SNORM_BLOCK = 156,
1060 VK_FORMAT_ASTC_4x4_UNORM_BLOCK = 157,
1061 VK_FORMAT_ASTC_4x4_SRGB_BLOCK = 158,
1062 VK_FORMAT_ASTC_5x4_UNORM_BLOCK = 159,
1063 VK_FORMAT_ASTC_5x4_SRGB_BLOCK = 160,
1064 VK_FORMAT_ASTC_5x5_UNORM_BLOCK = 161,
1065 VK_FORMAT_ASTC_5x5_SRGB_BLOCK = 162,
1066 VK_FORMAT_ASTC_6x5_UNORM_BLOCK = 163,
1067 VK_FORMAT_ASTC_6x5_SRGB_BLOCK = 164,
1068 VK_FORMAT_ASTC_6x6_UNORM_BLOCK = 165,
1069 VK_FORMAT_ASTC_6x6_SRGB_BLOCK = 166,
1070 VK_FORMAT_ASTC_8x5_UNORM_BLOCK = 167,
1071 VK_FORMAT_ASTC_8x5_SRGB_BLOCK = 168,
1072 VK_FORMAT_ASTC_8x6_UNORM_BLOCK = 169,
1073 VK_FORMAT_ASTC_8x6_SRGB_BLOCK = 170,
1074 VK_FORMAT_ASTC_8x8_UNORM_BLOCK = 171,
1075 VK_FORMAT_ASTC_8x8_SRGB_BLOCK = 172,
1076 VK_FORMAT_ASTC_10x5_UNORM_BLOCK = 173,
1077 VK_FORMAT_ASTC_10x5_SRGB_BLOCK = 174,
1078 VK_FORMAT_ASTC_10x6_UNORM_BLOCK = 175,
1079 VK_FORMAT_ASTC_10x6_SRGB_BLOCK = 176,
1080 VK_FORMAT_ASTC_10x8_UNORM_BLOCK = 177,
1081 VK_FORMAT_ASTC_10x8_SRGB_BLOCK = 178,
1082 VK_FORMAT_ASTC_10x10_UNORM_BLOCK = 179,
1083 VK_FORMAT_ASTC_10x10_SRGB_BLOCK = 180,
1084 VK_FORMAT_ASTC_12x10_UNORM_BLOCK = 181,
1085 VK_FORMAT_ASTC_12x10_SRGB_BLOCK = 182,
1086 VK_FORMAT_ASTC_12x12_UNORM_BLOCK = 183,
1087 VK_FORMAT_ASTC_12x12_SRGB_BLOCK = 184,
Chris Forbes289cb792016-12-30 15:03:55 +13001088
Ian Elliott28bd2c32017-10-13 09:21:12 -06001089 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04001090 VK_FORMAT_G8B8G8R8_422_UNORM = 1000156000,
1091 VK_FORMAT_B8G8R8G8_422_UNORM = 1000156001,
1092 VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM = 1000156002,
1093 VK_FORMAT_G8_B8R8_2PLANE_420_UNORM = 1000156003,
1094 VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM = 1000156004,
1095 VK_FORMAT_G8_B8R8_2PLANE_422_UNORM = 1000156005,
1096 VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM = 1000156006,
1097 VK_FORMAT_R10X6_UNORM_PACK16 = 1000156007,
1098 VK_FORMAT_R10X6G10X6_UNORM_2PACK16 = 1000156008,
1099 VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16 = 1000156009,
1100 VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16 = 1000156010,
1101 VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16 = 1000156011,
1102 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16 = 1000156012,
1103 VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16 = 1000156013,
1104 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16 = 1000156014,
1105 VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16 = 1000156015,
1106 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16 = 1000156016,
1107 VK_FORMAT_R12X4_UNORM_PACK16 = 1000156017,
1108 VK_FORMAT_R12X4G12X4_UNORM_2PACK16 = 1000156018,
1109 VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16 = 1000156019,
1110 VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16 = 1000156020,
1111 VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16 = 1000156021,
1112 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16 = 1000156022,
1113 VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16 = 1000156023,
1114 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16 = 1000156024,
1115 VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16 = 1000156025,
1116 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16 = 1000156026,
1117 VK_FORMAT_G16B16G16R16_422_UNORM = 1000156027,
1118 VK_FORMAT_B16G16R16G16_422_UNORM = 1000156028,
1119 VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM = 1000156029,
1120 VK_FORMAT_G16_B16R16_2PLANE_420_UNORM = 1000156030,
1121 VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM = 1000156031,
1122 VK_FORMAT_G16_B16R16_2PLANE_422_UNORM = 1000156032,
1123 VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM = 1000156033,
1124
Jesse Hallad250842017-03-10 18:35:38 -08001125 //@extension("VK_IMG_format_pvrtc") // 28
Jesse Halleb02c472017-02-24 15:13:45 -08001126 VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG = 1000054000,
1127 VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG = 1000054001,
1128 VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG = 1000054002,
1129 VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG = 1000054003,
1130 VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG = 1000054004,
1131 VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG = 1000054005,
1132 VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG = 1000054006,
1133 VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG = 1000054007,
Jesse Hall076f95d2017-09-20 11:34:47 -07001134
1135 //@extension("VK_KHR_sampler_ycbcr_conversion") // 157
1136 VK_FORMAT_G8B8G8R8_422_UNORM_KHR = 1000156000,
1137 VK_FORMAT_B8G8R8G8_422_UNORM_KHR = 1000156001,
1138 VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM_KHR = 1000156002,
1139 VK_FORMAT_G8_B8R8_2PLANE_420_UNORM_KHR = 1000156003,
1140 VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM_KHR = 1000156004,
1141 VK_FORMAT_G8_B8R8_2PLANE_422_UNORM_KHR = 1000156005,
1142 VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM_KHR = 1000156006,
1143 VK_FORMAT_R10X6_UNORM_PACK16_KHR = 1000156007,
1144 VK_FORMAT_R10X6G10X6_UNORM_2PACK16_KHR = 1000156008,
1145 VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16_KHR = 1000156009,
1146 VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16_KHR = 1000156010,
1147 VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16_KHR = 1000156011,
1148 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16_KHR = 1000156012,
1149 VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16_KHR = 1000156013,
1150 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16_KHR = 1000156014,
1151 VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16_KHR = 1000156015,
1152 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16_KHR = 1000156016,
1153 VK_FORMAT_R12X4_UNORM_PACK16_KHR = 1000156017,
1154 VK_FORMAT_R12X4G12X4_UNORM_2PACK16_KHR = 1000156018,
1155 VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16_KHR = 1000156019,
1156 VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16_KHR = 1000156020,
1157 VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16_KHR = 1000156021,
1158 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16_KHR = 1000156022,
1159 VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16_KHR = 1000156023,
1160 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16_KHR = 1000156024,
1161 VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16_KHR = 1000156025,
1162 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16_KHR = 1000156026,
1163 VK_FORMAT_G16B16G16R16_422_UNORM_KHR = 1000156027,
1164 VK_FORMAT_B16G16R16G16_422_UNORM_KHR = 1000156028,
1165 VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM_KHR = 1000156029,
1166 VK_FORMAT_G16_B16R16_2PLANE_420_UNORM_KHR = 1000156030,
1167 VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM_KHR = 1000156031,
1168 VK_FORMAT_G16_B16R16_2PLANE_422_UNORM_KHR = 1000156032,
1169 VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM_KHR = 1000156033,
Jesse Halld27f6aa2015-08-15 17:58:48 -07001170}
1171
Jesse Halld27f6aa2015-08-15 17:58:48 -07001172/// Structure type enumerant
1173enum VkStructureType {
1174 VK_STRUCTURE_TYPE_APPLICATION_INFO = 0,
Jesse Hallc7467b72015-11-29 21:05:26 -08001175 VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO = 1,
1176 VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO = 2,
1177 VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO = 3,
1178 VK_STRUCTURE_TYPE_SUBMIT_INFO = 4,
Jesse Hallf4ab2b12015-11-30 16:04:55 -08001179 VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO = 5,
Jesse Hallc7467b72015-11-29 21:05:26 -08001180 VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE = 6,
1181 VK_STRUCTURE_TYPE_BIND_SPARSE_INFO = 7,
1182 VK_STRUCTURE_TYPE_FENCE_CREATE_INFO = 8,
1183 VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO = 9,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07001184 VK_STRUCTURE_TYPE_EVENT_CREATE_INFO = 10,
Jesse Hallc7467b72015-11-29 21:05:26 -08001185 VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO = 11,
1186 VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO = 12,
1187 VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO = 13,
1188 VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO = 14,
1189 VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO = 15,
1190 VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO = 16,
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08001191 VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO = 17,
1192 VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO = 18,
1193 VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO = 19,
1194 VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO = 20,
1195 VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO = 21,
1196 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO = 22,
1197 VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO = 23,
1198 VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO = 24,
1199 VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO = 25,
1200 VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO = 26,
1201 VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO = 27,
1202 VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO = 28,
1203 VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO = 29,
1204 VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO = 30,
1205 VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO = 31,
1206 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO = 32,
1207 VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO = 33,
Jesse Hallf4ab2b12015-11-30 16:04:55 -08001208 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO = 34,
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08001209 VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET = 35,
1210 VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET = 36,
1211 VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO = 37,
1212 VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO = 38,
1213 VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO = 39,
Jesse Hallf4ab2b12015-11-30 16:04:55 -08001214 VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO = 40,
Jesse Hall3dd678a2016-01-08 21:52:01 -08001215 VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO = 41,
1216 VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO = 42,
1217 VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO = 43,
1218 VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER = 44,
1219 VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER = 45,
1220 VK_STRUCTURE_TYPE_MEMORY_BARRIER = 46,
1221 VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO = 47,
1222 VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO = 48,
Jesse Hall1356b0d2015-11-23 17:24:58 -08001223
Ian Elliott28bd2c32017-10-13 09:21:12 -06001224 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04001225 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES = 1000094000,
1226 VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO = 1000157000,
1227 VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO = 1000157001,
1228 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES = 1000083000,
1229 VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS = 1000127000,
1230 VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO = 1000127001,
1231 VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO = 1000060000,
1232 VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO = 1000060003,
1233 VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO = 1000060004,
1234 VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO = 1000060005,
1235 VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO = 1000060006,
1236 VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO = 1000060013,
1237 VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO = 1000060014,
1238 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES = 1000070000,
1239 VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO = 1000070001,
1240 VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2 = 1000146000,
1241 VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2 = 1000146001,
1242 VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2 = 1000146002,
1243 VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2 = 1000146003,
1244 VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2 = 1000146004,
1245 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2 = 1000059000,
1246 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2 = 1000059001,
1247 VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2 = 1000059002,
1248 VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2 = 1000059003,
1249 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2 = 1000059004,
1250 VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2 = 1000059005,
1251 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2 = 1000059006,
1252 VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2 = 1000059007,
1253 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2 = 1000059008,
1254 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES = 1000117000,
1255 VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO = 1000117001,
1256 VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO = 1000117002,
1257 VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO = 1000117003,
1258 VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO = 1000053000,
1259 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES = 1000053001,
1260 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES = 1000053002,
1261 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES = 1000120000,
1262 VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO = 1000145000,
1263 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES = 1000145001,
1264 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES = 1000145002,
1265 VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2 = 1000145003,
1266 VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO = 1000156000,
1267 VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO = 1000156001,
1268 VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO = 1000156002,
1269 VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO = 1000156003,
1270 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES = 1000156004,
1271 VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES = 1000156005,
1272 VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO = 1000085000,
1273 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO = 1000071000,
1274 VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES = 1000071001,
1275 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO = 1000071002,
1276 VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES = 1000071003,
1277 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES = 1000071004,
1278 VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO = 1000072000,
1279 VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO = 1000072001,
1280 VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO = 1000072002,
1281 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO = 1000112000,
1282 VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES = 1000112001,
1283 VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO = 1000113000,
1284 VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO = 1000077000,
1285 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO = 1000076000,
1286 VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES = 1000076001,
1287 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES = 1000168000,
1288 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT = 1000168001,
1289 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES = 1000063000,
1290 VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR = 1000060007,
1291
Jesse Hallad250842017-03-10 18:35:38 -08001292 //@extension("VK_KHR_swapchain") // 2
Jesse Hallbd888842015-11-30 21:44:14 -08001293 VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR = 1000001000,
1294 VK_STRUCTURE_TYPE_PRESENT_INFO_KHR = 1000001001,
Daniel Koch09f7bf92017-10-05 00:26:58 -04001295 // added as interaction from VK_KHR_device_group / VK 1.1
1296 VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR = 1000060008,
1297 VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR = 1000060009,
1298 VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR = 1000060010,
1299 VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR = 1000060011,
1300 VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR = 1000060012,
Jesse Hall1356b0d2015-11-23 17:24:58 -08001301
Jesse Hallad250842017-03-10 18:35:38 -08001302 //@extension("VK_KHR_display") // 3
Jesse Hallbd888842015-11-30 21:44:14 -08001303 VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR = 1000002000,
1304 VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR = 1000002001,
Jesse Hall1356b0d2015-11-23 17:24:58 -08001305
Jesse Hallad250842017-03-10 18:35:38 -08001306 //@extension("VK_KHR_display_swapchain") // 4
Jesse Hallbd888842015-11-30 21:44:14 -08001307 VK_STRUCTURE_TYPE_DISPLAY_DISPLAY_PRESENT_INFO_KHR = 1000003000,
Jesse Hallf9fa9a52016-01-08 16:08:51 -08001308
Jesse Hallad250842017-03-10 18:35:38 -08001309 //@extension("VK_KHR_xlib_surface") // 5
Jesse Hallf9fa9a52016-01-08 16:08:51 -08001310 VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR = 1000004000,
1311
Jesse Hallad250842017-03-10 18:35:38 -08001312 //@extension("VK_KHR_xcb_surface") // 6
Jesse Hallf9fa9a52016-01-08 16:08:51 -08001313 VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR = 1000005000,
1314
Jesse Hallad250842017-03-10 18:35:38 -08001315 //@extension("VK_KHR_wayland_surface") // 7
Jesse Hallf9fa9a52016-01-08 16:08:51 -08001316 VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR = 1000006000,
1317
Jesse Hallad250842017-03-10 18:35:38 -08001318 //@extension("VK_KHR_mir_surface") // 8
Jesse Hallf9fa9a52016-01-08 16:08:51 -08001319 VK_STRUCTURE_TYPE_MIR_SURFACE_CREATE_INFO_KHR = 1000007000,
1320
Jesse Hallad250842017-03-10 18:35:38 -08001321 //@extension("VK_KHR_android_surface") // 9
Jesse Hallf9fa9a52016-01-08 16:08:51 -08001322 VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR = 1000008000,
1323
Jesse Hallad250842017-03-10 18:35:38 -08001324 //@extension("VK_KHR_win32_surface") // 10
Jesse Hallf9fa9a52016-01-08 16:08:51 -08001325 VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR = 1000009000,
Jesse Hall543a7ff2016-01-08 16:38:30 -08001326
Jesse Hallad250842017-03-10 18:35:38 -08001327 //@extension("VK_ANDROID_native_buffer") // 11
Chia-I Wub262ddc2016-03-22 07:38:20 +08001328 VK_STRUCTURE_TYPE_NATIVE_BUFFER_ANDROID = 1000010000,
Chris Forbes8e4438b2016-12-07 16:26:49 +13001329 VK_STRUCTURE_TYPE_SWAPCHAIN_IMAGE_CREATE_INFO_ANDROID = 1000010001,
Chris Forbes1d4e5542017-02-15 19:38:50 +13001330 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENTATION_PROPERTIES_ANDROID = 1000010002,
Chia-I Wub262ddc2016-03-22 07:38:20 +08001331
Jesse Hallad250842017-03-10 18:35:38 -08001332 //@extension("VK_EXT_debug_report") // 12
Jesse Hall26763382016-05-20 07:13:52 -07001333 VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT = 1000011000,
1334
Jesse Hallad250842017-03-10 18:35:38 -08001335 //@extension("VK_AMD_rasterization_order") // 19
Jesse Hall26763382016-05-20 07:13:52 -07001336 VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD = 1000018000,
1337
Jesse Hallad250842017-03-10 18:35:38 -08001338 //@extension("VK_EXT_debug_marker") // 23
Jesse Hall26763382016-05-20 07:13:52 -07001339 VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT = 1000022000,
Jesse Hall26763382016-05-20 07:13:52 -07001340 VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT = 1000022001,
Jesse Hall26763382016-05-20 07:13:52 -07001341 VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT = 1000022002,
Jesse Hall56d386a2016-07-26 15:20:40 -07001342
Jesse Hallad250842017-03-10 18:35:38 -08001343 //@extension("VK_NV_dedicated_allocation") // 27
Jesse Hall56d386a2016-07-26 15:20:40 -07001344 VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV = 1000026000,
Jesse Hall56d386a2016-07-26 15:20:40 -07001345 VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV = 1000026001,
Jesse Hall56d386a2016-07-26 15:20:40 -07001346 VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV = 1000026002,
Chris Forbes289cb792016-12-30 15:03:55 +13001347
Jesse Hall7ba0ac72017-07-07 17:13:23 -07001348 //@extension("VK_AMD_texture_gather_bias_lod") // 42
1349 VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD = 1000041000,
1350
Daniel Koch09f7bf92017-10-05 00:26:58 -04001351 //@extension("VK_KHR_multiview") // 54
1352 VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO_KHR = 1000053000,
1353 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES_KHR = 1000053001,
1354 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES_KHR = 1000053002,
Jesse Hallad250842017-03-10 18:35:38 -08001355
1356 //@extension("VK_NV_external_memory") // 57
Jesse Halleb02c472017-02-24 15:13:45 -08001357 VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV = 1000056000,
1358 VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV = 1000056001,
Chris Forbes289cb792016-12-30 15:03:55 +13001359
Jesse Hallad250842017-03-10 18:35:38 -08001360 //@extension("VK_NV_external_memory_win32") // 58
Jesse Halleb02c472017-02-24 15:13:45 -08001361 VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV = 1000057000,
1362 VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV = 1000057001,
Chris Forbes289cb792016-12-30 15:03:55 +13001363
Jesse Hallad250842017-03-10 18:35:38 -08001364 //@extension("VK_NV_win32_keyed_mutex") // 59
Chris Forbes289cb792016-12-30 15:03:55 +13001365 VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV = 1000058000,
1366
Jesse Hallad250842017-03-10 18:35:38 -08001367 //@extension("VK_KHR_get_physical_device_properties2") // 60
Jesse Hall889cd9a2017-02-25 22:12:23 -08001368 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2_KHR = 1000059000,
1369 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2_KHR = 1000059001,
1370 VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2_KHR = 1000059002,
1371 VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2_KHR = 1000059003,
1372 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2_KHR = 1000059004,
1373 VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2_KHR = 1000059005,
1374 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2_KHR = 1000059006,
1375 VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2_KHR = 1000059007,
Chris Forbes1194ede2016-12-30 16:29:25 +13001376 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2_KHR = 1000059008,
1377
Daniel Koch09f7bf92017-10-05 00:26:58 -04001378 //@extension("VK_KHR_device_group") // 61
1379 VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO_KHR = 1000060000,
1380 VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO_KHR = 1000060003,
1381 VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO_KHR = 1000060004,
1382 VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO_KHR = 1000060005,
1383 VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO_KHR = 1000060006,
1384 VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR = 1000060007,
1385 // tokens 08-12 are listed with VK_KHR_swapchain
1386 VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO_KHR = 1000060013,
1387 VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO_KHR = 1000060014,
Jesse Hallad250842017-03-10 18:35:38 -08001388
1389 //@extension("VK_EXT_validation_flags") // 62
Jesse Halleb02c472017-02-24 15:13:45 -08001390 VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT = 1000061000,
Chris Forbes289cb792016-12-30 15:03:55 +13001391
Jesse Hallad250842017-03-10 18:35:38 -08001392 //@extension("VK_NN_vi_surface") // 63
Jesse Hall77ad05b2017-03-10 22:02:20 -08001393 VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN = 1000062000,
1394
Daniel Koch09f7bf92017-10-05 00:26:58 -04001395 //@extension("VK_KHR_device_group_creation") // 71
1396 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES_KHR = 1000070000,
1397 VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO_KHR = 1000070001,
Jesse Hallad250842017-03-10 18:35:38 -08001398
Jesse Hall9492f992017-08-28 12:10:06 -07001399 //@extension("VK_KHR_external_memory_capabilities") // 72
1400 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO_KHR = 1000071000,
1401 VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES_KHR = 1000071001,
1402 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO_KHR = 1000071002,
1403 VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES_KHR = 1000071003,
1404 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES_KHR = 1000071004,
Jesse Hallad250842017-03-10 18:35:38 -08001405
Jesse Hall9492f992017-08-28 12:10:06 -07001406 //@extension("VK_KHR_external_memory") // 73
1407 VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO_KHR = 1000072000,
1408 VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_KHR = 1000072001,
1409 VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_KHR = 1000072002,
Jesse Hallad250842017-03-10 18:35:38 -08001410
Jesse Hall9492f992017-08-28 12:10:06 -07001411 //@extension("VK_KHR_external_memory_win32") // 74
1412 VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR = 1000073000,
1413 VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR = 1000073001,
1414 VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR = 1000073002,
Jesse Hallad250842017-03-10 18:35:38 -08001415
Jesse Hall9492f992017-08-28 12:10:06 -07001416 //@extension("VK_KHR_external_memory_fd") // 75
1417 VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR = 1000074000,
1418 VK_STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR = 1000074001,
Jesse Hallad250842017-03-10 18:35:38 -08001419
Jesse Hall9492f992017-08-28 12:10:06 -07001420 //@extension("VK_KHR_win32_keyed_mutex") // 76
1421 VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR = 1000075000,
Jesse Hallad250842017-03-10 18:35:38 -08001422
Jesse Hall9492f992017-08-28 12:10:06 -07001423 //@extension("VK_KHR_external_semaphore_capabilities") // 77
1424 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO_KHR = 1000076000,
1425 VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES_KHR = 1000076001,
Jesse Hallad250842017-03-10 18:35:38 -08001426
Jesse Hall9492f992017-08-28 12:10:06 -07001427 //@extension("VK_KHR_external_semaphore") // 78
1428 VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO_KHR = 1000077000,
Jesse Hallad250842017-03-10 18:35:38 -08001429
Jesse Hall9492f992017-08-28 12:10:06 -07001430 //@extension("VK_KHR_external_semaphore_win32") // 79
1431 VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR = 1000078000,
1432 VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR = 1000078001,
1433 VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR = 1000078002,
Jesse Hallad250842017-03-10 18:35:38 -08001434
Jesse Hall9492f992017-08-28 12:10:06 -07001435 //@extension("VK_KHR_external_semaphore_fd") // 80
1436 VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR = 1000079000,
1437 VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR = 1000079001,
Jesse Hallad250842017-03-10 18:35:38 -08001438
1439 //@extension("VK_KHR_push_descriptor") // 81
1440 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR = 1000080000,
1441
Jesse Hall9492f992017-08-28 12:10:06 -07001442 //@extension("VK_KHR_16bit_storage") // 84
1443 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES_KHR = 1000083000,
1444
Jesse Hallad250842017-03-10 18:35:38 -08001445 //@extension("VK_KHR_incremental_present") // 85
Jesse Hall889cd9a2017-02-25 22:12:23 -08001446 VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR = 1000084000,
Chris Forbes289cb792016-12-30 15:03:55 +13001447
Jesse Hallad250842017-03-10 18:35:38 -08001448 //@extension("VK_KHR_descriptor_update_template") // 86
1449 VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO_KHR = 1000085000,
1450
1451 //@extension("VK_NVX_device_generated_commands") // 87
Jesse Halleb02c472017-02-24 15:13:45 -08001452 VK_STRUCTURE_TYPE_OBJECT_TABLE_CREATE_INFO_NVX = 1000086000,
1453 VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NVX = 1000086001,
1454 VK_STRUCTURE_TYPE_CMD_PROCESS_COMMANDS_INFO_NVX = 1000086002,
1455 VK_STRUCTURE_TYPE_CMD_RESERVE_SPACE_FOR_COMMANDS_INFO_NVX = 1000086003,
1456 VK_STRUCTURE_TYPE_DEVICE_GENERATED_COMMANDS_LIMITS_NVX = 1000086004,
1457 VK_STRUCTURE_TYPE_DEVICE_GENERATED_COMMANDS_FEATURES_NVX = 1000086005,
Jesse Hall77ad05b2017-03-10 22:02:20 -08001458
Jesse Hallad250842017-03-10 18:35:38 -08001459 //@extension("VK_NV_clip_space_w_scaling") // 88
1460 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV = 1000087000,
1461
1462 //@extension("VK_EXT_display_surface_counter") // 91
Jesse Hall77726222017-09-19 14:49:27 -05001463 VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT = 1000090000,
Jesse Hall77ad05b2017-03-10 22:02:20 -08001464
Jesse Hallad250842017-03-10 18:35:38 -08001465 //@extension("VK_EXT_display_control") // 92
Jesse Hall77ad05b2017-03-10 22:02:20 -08001466 VK_STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT = 1000091000,
1467 VK_STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT = 1000091001,
1468 VK_STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT = 1000091002,
1469 VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT = 1000091003,
Jesse Hallad250842017-03-10 18:35:38 -08001470
1471 //@extension("VK_GOOGLE_display_timing") // 93
1472 VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE = 1000092000,
1473
1474 //@extension("VK_NVX_multiview_per_view_attributes") // 98
1475 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX = 1000097000,
1476
1477 //@extension("VK_NV_viewport_swizzle") // 99
1478 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV = 1000098000,
1479
1480 //@extension("VK_EXT_discard_rectangles") // 100
1481 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT = 1000099000,
1482 VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT = 1000099001,
1483
Jesse Hall8c954d32018-01-17 22:06:20 -08001484 //@extension("VK_EXT_conservative_rasterization") // 102
1485 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT = 1000101000,
1486 VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT = 1000101001,
1487
Jesse Hallfdc8ab32017-03-10 21:01:57 -08001488 //@extension("VK_EXT_hdr_metadata") // 106
1489 VK_STRUCTURE_TYPE_HDR_METADATA_EXT = 1000105000,
1490
Jesse Hall05556b12017-05-18 17:40:25 -07001491 //@extension("VK_KHR_shared_presentable_image") // 112
Chris Forbese2d3ee12017-03-16 16:10:15 +13001492 VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR = 1000111000,
1493
Jesse Hall9492f992017-08-28 12:10:06 -07001494 //@extension("VK_KHR_external_fence_capabilities") // 113
1495 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO_KHR = 1000112000,
1496 VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES_KHR = 1000112001,
1497
1498 //@extension("VK_KHR_external_fence") // 114
1499 VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO_KHR = 1000113000,
1500
1501 //@extension("VK_KHR_external_fence_win32") // 115
1502 VK_STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR = 1000114000,
1503 VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR = 1000114001,
1504 VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR = 1000114002,
1505
1506 //@extension("VK_KHR_external_fence_fd") // 117
1507 VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR = 1000115000,
1508 VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR = 1000115001,
1509
Jesse Hall076f95d2017-09-20 11:34:47 -07001510 //@extension("VK_KHR_maintenance2") // 118
1511 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES_KHR = 1000117000,
1512 VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO_KHR = 1000117001,
1513 VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO_KHR = 1000117002,
1514 VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO_KHR = 1000117003,
1515
Jesse Hall05556b12017-05-18 17:40:25 -07001516 //@extension("VK_KHR_get_surface_capabilities2") // 120
Chris Forbese2d3ee12017-03-16 16:10:15 +13001517 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR = 1000119000,
1518 VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR = 1000119001,
1519 VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR = 1000119002,
1520
Jesse Hall9492f992017-08-28 12:10:06 -07001521 //@extension("VK_KHR_variable_pointers") // 121
1522 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES_KHR = 1000120000,
1523
Jesse Hallad250842017-03-10 18:35:38 -08001524 //@extension("VK_MVK_ios_surface") // 123
1525 VK_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK = 1000122000,
1526
1527 //@extension("VK_MVK_macos_surface") // 124
1528 VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK = 1000123000,
Jesse Hall7ba0ac72017-07-07 17:13:23 -07001529
Jesse Hall9492f992017-08-28 12:10:06 -07001530 //@extension("VK_KHR_dedicated_allocation") // 128
1531 VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS_KHR = 1000127000,
1532 VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO_KHR = 1000127001,
1533
Jesse Hall8c954d32018-01-17 22:06:20 -08001534 //@extension("VK_EXT_debug_utils") // 129
1535 VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT = 1000128000,
1536 VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT = 1000128001,
1537 VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT = 1000128002,
1538 VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT = 1000128003,
1539 VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT = 1000128004,
1540
Jesse Hall36215a92018-01-18 15:04:37 -08001541 //@extension("VK_ANDROID_external_memory_android_hardware_buffer") // 130
1542 VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID = 1000129000,
1543 VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID = 1000129001,
1544 VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID = 1000129002,
1545 VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID = 1000129003,
1546 VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID = 1000129004,
1547 VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID = 1000129005,
1548
Jesse Hall7ba0ac72017-07-07 17:13:23 -07001549 //@extension("VK_EXT_sampler_filter_minmax") // 131
1550 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES_EXT = 1000130000,
1551 VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO_EXT = 1000130001,
1552
Jesse Hall77726222017-09-19 14:49:27 -05001553 //@extension("VK_EXT_sample_locations") // 144
1554 VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT = 1000143000,
1555 VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT = 1000143001,
1556 VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT = 1000143002,
1557 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT = 1000143003,
1558 VK_STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT = 1000143004,
1559
Jesse Hall9492f992017-08-28 12:10:06 -07001560 //@extension("VK_KHR_get_memory_requirements2") // 147
1561 VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2_KHR = 1000146000,
1562 VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2_KHR = 1000146001,
1563 VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2_KHR = 1000146002,
1564 VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2_KHR = 1000146003,
1565 VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2_KHR = 1000146004,
1566
Jesse Hall076f95d2017-09-20 11:34:47 -07001567 //@extension("VK_KHR_image_format_list") // 148
1568 VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO_KHR = 1000147000,
1569
Jesse Hall7ba0ac72017-07-07 17:13:23 -07001570 //@extension("VK_EXT_blend_operation_advanced") // 149
1571 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT = 1000148000,
1572 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT = 1000148001,
1573 VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT = 1000148002,
1574
1575 //@extension("VK_NV_fragment_coverage_to_color") // 150
1576 VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV = 1000149000,
1577
Jesse Hall77726222017-09-19 14:49:27 -05001578 //@extension("VK_NV_framebuffer_mixed_samples") // 153
Jesse Hall7ba0ac72017-07-07 17:13:23 -07001579 VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV = 1000152000,
Jesse Hall77726222017-09-19 14:49:27 -05001580
Jesse Hall076f95d2017-09-20 11:34:47 -07001581 //@extension("VK_KHR_sampler_ycbcr_conversion") // 157
1582 VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO_KHR = 1000156000,
1583 VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO_KHR = 1000156001,
1584 VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO_KHR = 1000156002,
1585 VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO_KHR = 1000156003,
1586 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES_KHR = 1000156004,
1587 VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES_KHR = 1000156005,
1588
1589 //@extension("VK_KHR_bind_memory2") // 158
1590 VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO_KHR = 1000157000,
1591 VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO_KHR = 1000157001,
1592
Jesse Hall77726222017-09-19 14:49:27 -05001593 //@extension("VK_EXT_validation_cache") // 161
1594 VK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT = 1000160000,
1595 VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT = 1000160001,
Daniel Koch09f7bf92017-10-05 00:26:58 -04001596
Jesse Hall72e6a132018-04-06 13:00:44 -07001597 //@extension("VK_EXT_descriptor_indexing") // 162
1598 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO_EXT = 1000161000,
1599 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES_EXT = 1000161001,
1600 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES_EXT = 1000161002,
1601 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO_EXT = 1000161003,
1602 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT_EXT = 1000161004,
1603
Daniel Koch09f7bf92017-10-05 00:26:58 -04001604 //@extension("VK_KHR_maintenance3") // 169
1605 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES_KHR = 1000168000,
1606 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT_KHR = 1000168001,
Jesse Hall8c954d32018-01-17 22:06:20 -08001607
1608 //@extension("VK_EXT_global_priority") // 175
1609 VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT = 1000174000,
1610
1611 //@extension("VK_EXT_external_memory_host") // 179
1612 VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT = 1000178000,
1613 VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT = 1000178001,
1614 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT = 1000178002,
Jesse Hall72e6a132018-04-06 13:00:44 -07001615
1616 //@extension("VK_AMD_shader_core_properties") // 186
1617 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD = 1000185000,
1618
1619 //@extension("VK_EXT_vertex_attribute_divisor") // 191
1620 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT = 1000190000,
1621 VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT = 1000190001,
Jesse Halld27f6aa2015-08-15 17:58:48 -07001622}
1623
Jesse Hall65ab5522015-11-30 00:07:16 -08001624enum VkSubpassContents {
1625 VK_SUBPASS_CONTENTS_INLINE = 0x00000000,
1626 VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS = 0x00000001,
Jesse Halld27f6aa2015-08-15 17:58:48 -07001627}
1628
Jesse Hall543a7ff2016-01-08 16:38:30 -08001629enum VkPipelineCacheHeaderVersion {
1630 VK_PIPELINE_CACHE_HEADER_VERSION_ONE = 1,
1631}
1632
Jesse Hallbd888842015-11-30 21:44:14 -08001633@lastUnused(-11)
Jesse Halld27f6aa2015-08-15 17:58:48 -07001634/// Error and return codes
1635enum VkResult {
1636 // Return codes for successful operation execution (positive values)
Jesse Hallbd888842015-11-30 21:44:14 -08001637 VK_SUCCESS = 0,
1638 VK_NOT_READY = 1,
1639 VK_TIMEOUT = 2,
1640 VK_EVENT_SET = 3,
1641 VK_EVENT_RESET = 4,
1642 VK_INCOMPLETE = 5,
Jesse Halld27f6aa2015-08-15 17:58:48 -07001643
Jesse Hallad250842017-03-10 18:35:38 -08001644 //@extension("VK_KHR_swapchain") // 2
Jesse Hallbd888842015-11-30 21:44:14 -08001645 VK_SUBOPTIMAL_KHR = 1000001003,
Jesse Hall1356b0d2015-11-23 17:24:58 -08001646
Jesse Halld27f6aa2015-08-15 17:58:48 -07001647 // Error codes (negative values)
Jesse Hallbd888842015-11-30 21:44:14 -08001648 VK_ERROR_OUT_OF_HOST_MEMORY = 0xFFFFFFFF, // -1
1649 VK_ERROR_OUT_OF_DEVICE_MEMORY = 0xFFFFFFFE, // -2
1650 VK_ERROR_INITIALIZATION_FAILED = 0xFFFFFFFD, // -3
1651 VK_ERROR_DEVICE_LOST = 0xFFFFFFFC, // -4
1652 VK_ERROR_MEMORY_MAP_FAILED = 0xFFFFFFFB, // -5
1653 VK_ERROR_LAYER_NOT_PRESENT = 0xFFFFFFFA, // -6
1654 VK_ERROR_EXTENSION_NOT_PRESENT = 0xFFFFFFF9, // -7
1655 VK_ERROR_FEATURE_NOT_PRESENT = 0xFFFFFFF8, // -8
1656 VK_ERROR_INCOMPATIBLE_DRIVER = 0xFFFFFFF7, // -9
1657 VK_ERROR_TOO_MANY_OBJECTS = 0xFFFFFFF6, // -10
1658 VK_ERROR_FORMAT_NOT_SUPPORTED = 0xFFFFFFF5, // -11
Jesse Hall56d386a2016-07-26 15:20:40 -07001659 VK_ERROR_FRAGMENTED_POOL = 0xFFFFFFF4, // -12
Jesse Hall1356b0d2015-11-23 17:24:58 -08001660
Ian Elliott28bd2c32017-10-13 09:21:12 -06001661 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04001662 VK_ERROR_OUT_OF_POOL_MEMORY = 0xC4642878, // -1000069000
1663 VK_ERROR_INVALID_EXTERNAL_HANDLE = 0xC4641CBD, // -1000072003
1664
Jesse Hallad250842017-03-10 18:35:38 -08001665 //@extension("VK_KHR_surface") // 1
Jesse Hallbd888842015-11-30 21:44:14 -08001666 VK_ERROR_SURFACE_LOST_KHR = 0xC4653600, // -1000000000
Jesse Hallad250842017-03-10 18:35:38 -08001667 VK_ERROR_NATIVE_WINDOW_IN_USE_KHR = 0xC46535FF, // -1000000001
Jesse Halla6429252015-11-29 18:59:42 -08001668
Jesse Hallad250842017-03-10 18:35:38 -08001669 //@extension("VK_KHR_swapchain") // 2
Jesse Hallbd888842015-11-30 21:44:14 -08001670 VK_ERROR_OUT_OF_DATE_KHR = 0xC4653214, // -1000001004
Jesse Hall1356b0d2015-11-23 17:24:58 -08001671
Jesse Hallad250842017-03-10 18:35:38 -08001672 //@extension("VK_KHR_display_swapchain") // 4
Jesse Hallbd888842015-11-30 21:44:14 -08001673 VK_ERROR_INCOMPATIBLE_DISPLAY_KHR = 0xC4652A47, // -1000003001
Jesse Hall1356b0d2015-11-23 17:24:58 -08001674
Jesse Hallad250842017-03-10 18:35:38 -08001675 //@extension("VK_EXT_debug_report") // 12
Jesse Hall543a7ff2016-01-08 16:38:30 -08001676 VK_ERROR_VALIDATION_FAILED_EXT = 0xC4650B07, // -1000011001
Jesse Hall26763382016-05-20 07:13:52 -07001677
Jesse Hallad250842017-03-10 18:35:38 -08001678 //@extension("VK_NV_glsl_shader") // 13
Jesse Hall26763382016-05-20 07:13:52 -07001679 VK_ERROR_INVALID_SHADER_NV = 0xC4650720, // -1000012000
Jesse Hall77ad05b2017-03-10 22:02:20 -08001680
Jesse Hallad250842017-03-10 18:35:38 -08001681 //@extension("VK_KHR_maintenance1") // 70
Jesse Hall77ad05b2017-03-10 22:02:20 -08001682 VK_ERROR_OUT_OF_POOL_MEMORY_KHR = 0xC4642878, // -1000069000
Jesse Hallad250842017-03-10 18:35:38 -08001683
Jesse Hall8c954d32018-01-17 22:06:20 -08001684 //@extension("VK_EXT_global_priority") // 175
1685 VK_ERROR_NOT_PERMITTED_EXT = 0xC4628E4F, // -1000174001
1686
Jesse Hall9492f992017-08-28 12:10:06 -07001687 //@extension("VK_KHR_external_memory") // 73
1688 VK_ERROR_INVALID_EXTERNAL_HANDLE_KHR = 0xC4641CBD, // -1000072003
Jesse Hall72e6a132018-04-06 13:00:44 -07001689
1690 //@extension("VK_EXT_descriptor_indexing") // 162
1691 VK_ERROR_FRAGMENTATION_EXT = 0xc462c118, // -1000161000
Jesse Hall5ae3abb2015-10-08 14:00:22 -07001692}
1693
1694enum VkDynamicState {
1695 VK_DYNAMIC_STATE_VIEWPORT = 0x00000000,
1696 VK_DYNAMIC_STATE_SCISSOR = 0x00000001,
1697 VK_DYNAMIC_STATE_LINE_WIDTH = 0x00000002,
1698 VK_DYNAMIC_STATE_DEPTH_BIAS = 0x00000003,
1699 VK_DYNAMIC_STATE_BLEND_CONSTANTS = 0x00000004,
1700 VK_DYNAMIC_STATE_DEPTH_BOUNDS = 0x00000005,
1701 VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK = 0x00000006,
1702 VK_DYNAMIC_STATE_STENCIL_WRITE_MASK = 0x00000007,
1703 VK_DYNAMIC_STATE_STENCIL_REFERENCE = 0x00000008,
Jesse Hallad250842017-03-10 18:35:38 -08001704
1705 //@extension("VK_NV_clip_space_w_scaling") // 88
1706 VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV = 1000087000,
1707
1708 //@extension("VK_EXT_discard_rectangles") // 100
1709 VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT = 1000099000,
Jesse Hall77726222017-09-19 14:49:27 -05001710
1711 //@extension("VK_EXT_sample_locations") // 144
1712 VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT = 1000143000,
Jesse Halld27f6aa2015-08-15 17:58:48 -07001713}
1714
Jesse Hall05556b12017-05-18 17:40:25 -07001715enum VkObjectType {
1716 VK_OBJECT_TYPE_UNKNOWN = 0,
1717 VK_OBJECT_TYPE_INSTANCE = 1,
1718 VK_OBJECT_TYPE_PHYSICAL_DEVICE = 2,
1719 VK_OBJECT_TYPE_DEVICE = 3,
1720 VK_OBJECT_TYPE_QUEUE = 4,
1721 VK_OBJECT_TYPE_SEMAPHORE = 5,
1722 VK_OBJECT_TYPE_COMMAND_BUFFER = 6,
1723 VK_OBJECT_TYPE_FENCE = 7,
1724 VK_OBJECT_TYPE_DEVICE_MEMORY = 8,
1725 VK_OBJECT_TYPE_BUFFER = 9,
1726 VK_OBJECT_TYPE_IMAGE = 10,
1727 VK_OBJECT_TYPE_EVENT = 11,
1728 VK_OBJECT_TYPE_QUERY_POOL = 12,
1729 VK_OBJECT_TYPE_BUFFER_VIEW = 13,
1730 VK_OBJECT_TYPE_IMAGE_VIEW = 14,
1731 VK_OBJECT_TYPE_SHADER_MODULE = 15,
1732 VK_OBJECT_TYPE_PIPELINE_CACHE = 16,
1733 VK_OBJECT_TYPE_PIPELINE_LAYOUT = 17,
1734 VK_OBJECT_TYPE_RENDER_PASS = 18,
1735 VK_OBJECT_TYPE_PIPELINE = 19,
1736 VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT = 20,
1737 VK_OBJECT_TYPE_SAMPLER = 21,
1738 VK_OBJECT_TYPE_DESCRIPTOR_POOL = 22,
1739 VK_OBJECT_TYPE_DESCRIPTOR_SET = 23,
1740 VK_OBJECT_TYPE_FRAMEBUFFER = 24,
1741 VK_OBJECT_TYPE_COMMAND_POOL = 25,
1742
Ian Elliott28bd2c32017-10-13 09:21:12 -06001743 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04001744 VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION = 1000156000,
1745 VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE = 1000085000,
1746
Jesse Hall05556b12017-05-18 17:40:25 -07001747 //@extension("VK_KHR_surface") // 1
1748 VK_OBJECT_TYPE_SURFACE_KHR = 1000000000,
1749
1750 //@extension("VK_KHR_swapchain") // 2
1751 VK_OBJECT_TYPE_SWAPCHAIN_KHR = 1000001000,
1752
1753 //@extension("VK_KHR_display") // 3
1754 VK_OBJECT_TYPE_DISPLAY_KHR = 1000002000,
1755 VK_OBJECT_TYPE_DISPLAY_MODE_KHR = 1000002001,
1756
1757 //@extension("VK_KHR_debug_report") // 12
1758 VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT = 1000011000,
1759
1760 //@extension("VK_KHR_descriptor_update_template") // 86
1761 VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR = 1000085000,
1762
1763 //@extension("VK_NVX_device_generated_commands") // 87
1764 VK_OBJECT_TYPE_OBJECT_TABLE_NVX = 1000086000,
1765 VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX = 1000086001,
Jesse Hall77726222017-09-19 14:49:27 -05001766
Jesse Hall8c954d32018-01-17 22:06:20 -08001767 //@extension("VK_EXT_debug_utils") // 129
1768 VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT = 1000128000,
1769
Jesse Hall076f95d2017-09-20 11:34:47 -07001770 //@extension("VK_KHR_sampler_ycbcr_conversion") // 157
1771 VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR = 1000156000,
1772
Jesse Hall77726222017-09-19 14:49:27 -05001773 //@extension("VK_EXT_validation_cache") // 161
1774 VK_OBJECT_TYPE_VALIDATION_CACHE_EXT = 1000160000,
Jesse Hall05556b12017-05-18 17:40:25 -07001775}
1776
Daniel Koch09f7bf92017-10-05 00:26:58 -04001777
Ian Elliott28bd2c32017-10-13 09:21:12 -06001778//@vulkan1_1 enums
Daniel Koch09f7bf92017-10-05 00:26:58 -04001779
1780enum VkPointClippingBehavior {
1781 VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES = 0,
1782 VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY = 1,
1783}
1784
1785enum VkTessellationDomainOrigin {
1786 VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT = 0,
1787 VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT = 1,
1788}
1789
1790enum VkSamplerYcbcrModelConversion {
1791 VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY = 0,
1792 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY = 1,
1793 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709 = 2,
1794 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601 = 3,
1795 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020 = 4,
1796}
1797
1798enum VkSamplerYcbcrRange {
1799 VK_SAMPLER_YCBCR_RANGE_ITU_FULL = 0,
1800 VK_SAMPLER_YCBCR_RANGE_ITU_NARROW = 1,
1801}
1802
1803enum VkChromaLocation {
1804 VK_CHROMA_LOCATION_COSITED_EVEN = 0,
1805 VK_CHROMA_LOCATION_MIDPOINT = 1,
1806}
1807
1808enum VkDescriptorUpdateTemplateType {
1809 VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET = 0,
1810 VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR = 1,
1811}
1812
Jesse Hallad250842017-03-10 18:35:38 -08001813@extension("VK_KHR_surface") // 1
Michael Lentine88594d72015-11-12 12:49:45 -08001814enum VkPresentModeKHR {
1815 VK_PRESENT_MODE_IMMEDIATE_KHR = 0x00000000,
1816 VK_PRESENT_MODE_MAILBOX_KHR = 0x00000001,
1817 VK_PRESENT_MODE_FIFO_KHR = 0x00000002,
Jesse Hall03b6fe12015-11-24 12:44:21 -08001818 VK_PRESENT_MODE_FIFO_RELAXED_KHR = 0x00000003,
Jesse Hall77ad05b2017-03-10 22:02:20 -08001819
Jesse Hall05556b12017-05-18 17:40:25 -07001820 //@extension("VK_KHR_shared_presentable_image") // 112
Jesse Hall77ad05b2017-03-10 22:02:20 -08001821 VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR = 1000111000,
1822 VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR = 1000111001,
Michael Lentine88594d72015-11-12 12:49:45 -08001823}
1824
Jesse Hallad250842017-03-10 18:35:38 -08001825@extension("VK_KHR_surface") // 1
Michael Lentine88594d72015-11-12 12:49:45 -08001826enum VkColorSpaceKHR {
Daniel Koch09f7bf92017-10-05 00:26:58 -04001827 VK_COLOR_SPACE_SRGB_NONLINEAR_KHR = 0x00000000,
Jesse Hall77ad05b2017-03-10 22:02:20 -08001828
Jesse Hallf5ad48b2017-03-20 13:09:19 -07001829 //@extension("VK_EXT_swapchain_colorspace") // 105
1830 VK_COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT = 1000104001,
1831 VK_COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT = 1000104002,
1832 VK_COLOR_SPACE_DCI_P3_LINEAR_EXT = 1000104003,
1833 VK_COLOR_SPACE_DCI_P3_NONLINEAR_EXT = 1000104004,
1834 VK_COLOR_SPACE_BT709_LINEAR_EXT = 1000104005,
1835 VK_COLOR_SPACE_BT709_NONLINEAR_EXT = 1000104006,
1836 VK_COLOR_SPACE_BT2020_LINEAR_EXT = 1000104007,
1837 VK_COLOR_SPACE_HDR10_ST2084_EXT = 1000104008,
1838 VK_COLOR_SPACE_DOLBYVISION_EXT = 1000104009,
1839 VK_COLOR_SPACE_HDR10_HLG_EXT = 1000104010,
Courtney Goeltzenleuchter7f558ed2017-01-23 17:15:24 -07001840 VK_COLOR_SPACE_ADOBERGB_LINEAR_EXT = 1000104011,
1841 VK_COLOR_SPACE_ADOBERGB_NONLINEAR_EXT = 1000104012,
Jesse Hallf5ad48b2017-03-20 13:09:19 -07001842 VK_COLOR_SPACE_PASS_THROUGH_EXT = 1000104013,
Jesse Hall77726222017-09-19 14:49:27 -05001843 VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT = 1000104014,
Michael Lentine88594d72015-11-12 12:49:45 -08001844}
Jesse Halld27f6aa2015-08-15 17:58:48 -07001845
Jesse Hallad250842017-03-10 18:35:38 -08001846@extension("VK_EXT_debug_report") // 12
Jesse Hall715b86a2016-01-16 16:34:29 -08001847enum VkDebugReportObjectTypeEXT {
1848 VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT = 0,
1849 VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT = 1,
1850 VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT = 2,
1851 VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT = 3,
1852 VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT = 4,
1853 VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT = 5,
1854 VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT = 6,
1855 VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT = 7,
1856 VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT = 8,
1857 VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT = 9,
1858 VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT = 10,
1859 VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT = 11,
1860 VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT = 12,
1861 VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT = 13,
1862 VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT = 14,
1863 VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT = 15,
1864 VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT = 16,
1865 VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT = 17,
1866 VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT = 18,
1867 VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT = 19,
1868 VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT = 20,
1869 VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT = 21,
1870 VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT = 22,
1871 VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT = 23,
1872 VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT = 24,
1873 VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT = 25,
1874 VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT = 26,
1875 VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT = 27,
Jesse Hall7ba0ac72017-07-07 17:13:23 -07001876 VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT = 28,
Chris Forbes289cb792016-12-30 15:03:55 +13001877 VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT = 29,
1878 VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT = 30,
1879 VK_DEBUG_REPORT_OBJECT_TYPE_OBJECT_TABLE_NVX_EXT = 31,
1880 VK_DEBUG_REPORT_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX_EXT = 32,
Jesse Hallf5ad48b2017-03-20 13:09:19 -07001881
Jesse Hall77726222017-09-19 14:49:27 -05001882 //extension("VK_EXT_validation_cache") // 161
Jesse Hall8c954d32018-01-17 22:06:20 -08001883 VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT = 33,
Jesse Hall77726222017-09-19 14:49:27 -05001884
Jesse Hallf5ad48b2017-03-20 13:09:19 -07001885 //extension("VK_KHR_descriptor_update_template") // 86
1886 VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR_EXT = 1000085000,
Jesse Hall77726222017-09-19 14:49:27 -05001887
Jesse Hall076f95d2017-09-20 11:34:47 -07001888 //@extension("VK_KHR_sampler_ycbcr_conversion") // 157
1889 VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR_EXT = 1000156000,
Jesse Hall715b86a2016-01-16 16:34:29 -08001890}
1891
Jesse Hallad250842017-03-10 18:35:38 -08001892@extension("VK_AMD_rasterization_order") // 19
Jesse Hall26763382016-05-20 07:13:52 -07001893enum VkRasterizationOrderAMD {
1894 VK_RASTERIZATION_ORDER_STRICT_AMD = 0,
1895 VK_RASTERIZATION_ORDER_RELAXED_AMD = 1,
1896}
1897
Jesse Hall8c954d32018-01-17 22:06:20 -08001898@extension("VK_AMD_shader_info") // 43
1899enum VkShaderInfoTypeAMD {
1900 VK_SHADER_INFO_TYPE_STATISTICS_AMD = 0,
1901 VK_SHADER_INFO_TYPE_BINARY_AMD = 1,
1902 VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD = 2,
1903}
1904
Jesse Hallad250842017-03-10 18:35:38 -08001905@extension("VK_EXT_validation_flags") // 62
Chris Forbes289cb792016-12-30 15:03:55 +13001906enum VkValidationCheckEXT {
1907 VK_VALIDATION_CHECK_ALL_EXT = 0,
Jesse Hall7ba0ac72017-07-07 17:13:23 -07001908 VK_VALIDATION_CHECK_SHADERS_EXT = 1,
Chris Forbes289cb792016-12-30 15:03:55 +13001909}
1910
Jesse Hallad250842017-03-10 18:35:38 -08001911@extension("VK_KHR_descriptor_update_template") // 86
1912enum VkDescriptorUpdateTemplateTypeKHR {
1913 VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET_KHR = 0,
1914 VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR = 1,
1915}
1916
1917@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13001918enum VkIndirectCommandsTokenTypeNVX {
Jesse Hall7ba0ac72017-07-07 17:13:23 -07001919 VK_INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NVX = 0,
1920 VK_INDIRECT_COMMANDS_TOKEN_TYPE_DESCRIPTOR_SET_NVX = 1,
1921 VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NVX = 2,
1922 VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NVX = 3,
1923 VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NVX = 4,
1924 VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NVX = 5,
1925 VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NVX = 6,
1926 VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NVX = 7,
Chris Forbes289cb792016-12-30 15:03:55 +13001927}
1928
Jesse Hallad250842017-03-10 18:35:38 -08001929@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13001930enum VkObjectEntryTypeNVX {
Jesse Hall7ba0ac72017-07-07 17:13:23 -07001931 VK_OBJECT_ENTRY_TYPE_DESCRIPTOR_SET_NVX = 0,
1932 VK_OBJECT_ENTRY_TYPE_PIPELINE_NVX = 1,
1933 VK_OBJECT_ENTRY_TYPE_INDEX_BUFFER_NVX = 2,
1934 VK_OBJECT_ENTRY_TYPE_VERTEX_BUFFER_NVX = 3,
1935 VK_OBJECT_ENTRY_TYPE_PUSH_CONSTANT_NVX = 4,
Chris Forbes289cb792016-12-30 15:03:55 +13001936}
Jesse Hall715b86a2016-01-16 16:34:29 -08001937
Jesse Hallad250842017-03-10 18:35:38 -08001938@extension("VK_EXT_display_control") // 92
Jesse Hall77ad05b2017-03-10 22:02:20 -08001939enum VkDisplayPowerStateEXT {
1940 VK_DISPLAY_POWER_STATE_OFF_EXT = 0,
1941 VK_DISPLAY_POWER_STATE_SUSPEND_EXT = 1,
1942 VK_DISPLAY_POWER_STATE_ON_EXT = 2,
1943}
1944
Jesse Hallad250842017-03-10 18:35:38 -08001945@extension("VK_EXT_display_control") // 92
Jesse Hall77ad05b2017-03-10 22:02:20 -08001946enum VkDeviceEventTypeEXT {
1947 VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT = 0,
1948}
1949
Jesse Hallad250842017-03-10 18:35:38 -08001950@extension("VK_EXT_display_control") // 92
Jesse Hall77ad05b2017-03-10 22:02:20 -08001951enum VkDisplayEventTypeEXT {
1952 VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT = 0,
1953}
1954
Jesse Hallad250842017-03-10 18:35:38 -08001955@extension("VK_NV_viewport_swizzle") // 99
1956enum VkViewportCoordinateSwizzleNV {
1957 VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV = 0,
1958 VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV = 1,
1959 VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV = 2,
1960 VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV = 3,
1961 VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV = 4,
1962 VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV = 5,
1963 VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV = 6,
1964 VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV = 7,
1965}
1966
1967@extension("VK_EXT_discard_rectangles") // 100
1968enum VkDiscardRectangleModeEXT {
1969 VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT = 0,
1970 VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT = 1,
1971}
1972
Jesse Hall8c954d32018-01-17 22:06:20 -08001973@extension("VK_EXT_conservative_rasterization") // 102
1974enum VkConservativeRasterizationModeEXT {
1975 VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT = 0,
1976 VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT = 1,
1977 VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT = 2,
1978}
1979
Jesse Hall076f95d2017-09-20 11:34:47 -07001980@extension("VK_KHR_maintenance2") // 118
1981enum VkPointClippingBehaviorKHR {
1982 VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES_KHR = 0,
1983 VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY_KHR = 1,
1984}
1985
1986@extension("VK_KHR_maintenance2") // 118
1987enum VkTessellationDomainOriginKHR {
1988 VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT_KHR = 0,
1989 VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT_KHR = 1,
1990}
1991
Jesse Hall7ba0ac72017-07-07 17:13:23 -07001992@extension("VK_EXT_sampler_filter_minmax") // 131
1993enum VkSamplerReductionModeEXT {
1994 VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_EXT = 0,
1995 VK_SAMPLER_REDUCTION_MODE_MIN_EXT = 1,
1996 VK_SAMPLER_REDUCTION_MODE_MAX_EXT = 2,
1997}
1998
1999@extension("VK_EXT_blend_operation_advanced") // 149
2000enum VkBlendOverlapEXT {
2001 VK_BLEND_OVERLAP_UNCORRELATED_EXT = 0,
2002 VK_BLEND_OVERLAP_DISJOINT_EXT = 1,
2003 VK_BLEND_OVERLAP_CONJOINT_EXT = 2,
2004}
2005
2006@extension("VK_NV_framebuffer_mixed_samples") // 153
2007enum VkCoverageModulationModeNV {
2008 VK_COVERAGE_MODULATION_MODE_NONE_NV = 0,
2009 VK_COVERAGE_MODULATION_MODE_RGB_NV = 1,
2010 VK_COVERAGE_MODULATION_MODE_ALPHA_NV = 2,
2011 VK_COVERAGE_MODULATION_MODE_RGBA_NV = 3,
2012}
2013
Jesse Hall076f95d2017-09-20 11:34:47 -07002014@extension("VK_KHR_sampler_ycbcr_conversion") // 157
2015enum VkSamplerYcbcrModelConversionKHR {
2016 VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY_KHR = 0,
2017 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY_KHR = 1,
2018 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709_KHR = 2,
2019 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601_KHR = 3,
2020 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020_KHR = 4,
2021}
2022
2023@extension("VK_KHR_sampler_ycbcr_conversion") // 157
2024enum VkSamplerYcbcrRangeKHR {
2025 VK_SAMPLER_YCBCR_RANGE_ITU_FULL_KHR = 0,
2026 VK_SAMPLER_YCBCR_RANGE_ITU_NARROW_KHR = 1,
2027}
2028
2029@extension("VK_KHR_sampler_ycbcr_conversion") // 157
2030enum VkChromaLocationKHR {
2031 VK_CHROMA_LOCATION_COSITED_EVEN_KHR = 0,
2032 VK_CHROMA_LOCATION_MIDPOINT_KHR = 1,
2033}
2034
Jesse Hall77726222017-09-19 14:49:27 -05002035@extension("VK_EXT_validation_cache") // 161
2036enum VkValidationCacheHeaderVersionEXT {
2037 VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT = 1,
2038}
2039
Jesse Hall8c954d32018-01-17 22:06:20 -08002040@extension("VK_EXT_global_priority") // 175
2041enum VkQueueGlobalPriorityEXT {
2042 VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT = 128,
2043 VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT = 256,
2044 VK_QUEUE_GLOBAL_PRIORITY_HIGH_EXT = 512,
2045 VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT = 1024,
2046}
2047
Jesse Halld27f6aa2015-08-15 17:58:48 -07002048/////////////////
2049// Bitfields //
2050/////////////////
2051
Jesse Halld27f6aa2015-08-15 17:58:48 -07002052/// Queue capabilities
Jesse Halld8bade02015-11-24 10:24:18 -08002053type VkFlags VkQueueFlags
2054bitfield VkQueueFlagBits {
Jesse Halld27f6aa2015-08-15 17:58:48 -07002055 VK_QUEUE_GRAPHICS_BIT = 0x00000001, /// Queue supports graphics operations
2056 VK_QUEUE_COMPUTE_BIT = 0x00000002, /// Queue supports compute operations
Jesse Hall65ab5522015-11-30 00:07:16 -08002057 VK_QUEUE_TRANSFER_BIT = 0x00000004, /// Queue supports transfer operations
Jesse Hallb00daad2015-11-29 19:46:20 -08002058 VK_QUEUE_SPARSE_BINDING_BIT = 0x00000008, /// Queue supports sparse resource memory management operations
Daniel Koch09f7bf92017-10-05 00:26:58 -04002059
Ian Elliott28bd2c32017-10-13 09:21:12 -06002060 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04002061 VK_QUEUE_PROTECTED_BIT = 0x00000010,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002062}
2063
2064/// Memory properties passed into vkAllocMemory().
Jesse Halld8bade02015-11-24 10:24:18 -08002065type VkFlags VkMemoryPropertyFlags
2066bitfield VkMemoryPropertyFlagBits {
Jesse Halld1af8122015-11-29 23:50:38 -08002067 VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT = 0x00000001,
2068 VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT = 0x00000002,
2069 VK_MEMORY_PROPERTY_HOST_COHERENT_BIT = 0x00000004,
2070 VK_MEMORY_PROPERTY_HOST_CACHED_BIT = 0x00000008,
2071 VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT = 0x00000010,
Daniel Koch09f7bf92017-10-05 00:26:58 -04002072
Ian Elliott28bd2c32017-10-13 09:21:12 -06002073 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04002074 VK_MEMORY_PROPERTY_PROTECTED_BIT = 0x00000020,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002075}
2076
2077/// Memory heap flags
Jesse Halld8bade02015-11-24 10:24:18 -08002078type VkFlags VkMemoryHeapFlags
2079bitfield VkMemoryHeapFlagBits {
Jesse Halld1af8122015-11-29 23:50:38 -08002080 VK_MEMORY_HEAP_DEVICE_LOCAL_BIT = 0x00000001,
Jesse Hallad250842017-03-10 18:35:38 -08002081
Ian Elliott28bd2c32017-10-13 09:21:12 -06002082 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04002083 VK_MEMORY_HEAP_MULTI_INSTANCE_BIT = 0x00000002,
2084
2085 //@extension("VK_KHR_device_group_creation") // 71
2086 VK_MEMORY_HEAP_MULTI_INSTANCE_BIT_KHR = 0x00000002,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002087}
2088
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08002089/// Access flags
2090type VkFlags VkAccessFlags
2091bitfield VkAccessFlagBits {
2092 VK_ACCESS_INDIRECT_COMMAND_READ_BIT = 0x00000001,
2093 VK_ACCESS_INDEX_READ_BIT = 0x00000002,
2094 VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT = 0x00000004,
2095 VK_ACCESS_UNIFORM_READ_BIT = 0x00000008,
2096 VK_ACCESS_INPUT_ATTACHMENT_READ_BIT = 0x00000010,
2097 VK_ACCESS_SHADER_READ_BIT = 0x00000020,
2098 VK_ACCESS_SHADER_WRITE_BIT = 0x00000040,
2099 VK_ACCESS_COLOR_ATTACHMENT_READ_BIT = 0x00000080,
2100 VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT = 0x00000100,
2101 VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT = 0x00000200,
2102 VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT = 0x00000400,
2103 VK_ACCESS_TRANSFER_READ_BIT = 0x00000800,
2104 VK_ACCESS_TRANSFER_WRITE_BIT = 0x00001000,
2105 VK_ACCESS_HOST_READ_BIT = 0x00002000,
2106 VK_ACCESS_HOST_WRITE_BIT = 0x00004000,
2107 VK_ACCESS_MEMORY_READ_BIT = 0x00008000,
2108 VK_ACCESS_MEMORY_WRITE_BIT = 0x00010000,
Chris Forbes289cb792016-12-30 15:03:55 +13002109
Jesse Hallad250842017-03-10 18:35:38 -08002110 //@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13002111 VK_ACCESS_COMMAND_PROCESS_READ_BIT_NVX = 0x00020000,
Chris Forbes289cb792016-12-30 15:03:55 +13002112 VK_ACCESS_COMMAND_PROCESS_WRITE_BIT_NVX = 0x00040000,
Jesse Hall7ba0ac72017-07-07 17:13:23 -07002113
2114 //@extension("VK_EXT_blend_operation_advanced") // 149
2115 VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT = 0x00080000,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002116}
2117
2118/// Buffer usage flags
Jesse Halld8bade02015-11-24 10:24:18 -08002119type VkFlags VkBufferUsageFlags
2120bitfield VkBufferUsageFlagBits {
Jesse Hall3fbc8562015-11-29 22:10:52 -08002121 VK_BUFFER_USAGE_TRANSFER_SRC_BIT = 0x00000001, /// Can be used as a source of transfer operations
2122 VK_BUFFER_USAGE_TRANSFER_DST_BIT = 0x00000002, /// Can be used as a destination of transfer operations
Jesse Halld27f6aa2015-08-15 17:58:48 -07002123 VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT = 0x00000004, /// Can be used as TBO
2124 VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT = 0x00000008, /// Can be used as IBO
2125 VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT = 0x00000010, /// Can be used as UBO
2126 VK_BUFFER_USAGE_STORAGE_BUFFER_BIT = 0x00000020, /// Can be used as SSBO
2127 VK_BUFFER_USAGE_INDEX_BUFFER_BIT = 0x00000040, /// Can be used as source of fixed function index fetch (index buffer)
2128 VK_BUFFER_USAGE_VERTEX_BUFFER_BIT = 0x00000080, /// Can be used as source of fixed function vertex fetch (VBO)
2129 VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT = 0x00000100, /// Can be the source of indirect parameters (e.g. indirect buffer, parameter buffer)
2130}
2131
2132/// Buffer creation flags
Jesse Halld8bade02015-11-24 10:24:18 -08002133type VkFlags VkBufferCreateFlags
2134bitfield VkBufferCreateFlagBits {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07002135 VK_BUFFER_CREATE_SPARSE_BINDING_BIT = 0x00000001, /// Buffer should support sparse backing
Jesse Halld27f6aa2015-08-15 17:58:48 -07002136 VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT = 0x00000002, /// Buffer should support sparse backing with partial residency
2137 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 -04002138
Ian Elliott28bd2c32017-10-13 09:21:12 -06002139 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04002140 VK_BUFFER_CREATE_PROTECTED_BIT = 0x00000008,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002141}
2142
2143/// Shader stage flags
Jesse Halld8bade02015-11-24 10:24:18 -08002144type VkFlags VkShaderStageFlags
2145bitfield VkShaderStageFlagBits {
Jesse Halld27f6aa2015-08-15 17:58:48 -07002146 VK_SHADER_STAGE_VERTEX_BIT = 0x00000001,
Jesse Hallae38f732015-11-19 21:32:50 -08002147 VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT = 0x00000002,
2148 VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT = 0x00000004,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002149 VK_SHADER_STAGE_GEOMETRY_BIT = 0x00000008,
2150 VK_SHADER_STAGE_FRAGMENT_BIT = 0x00000010,
2151 VK_SHADER_STAGE_COMPUTE_BIT = 0x00000020,
Jesse Hallc7467b72015-11-29 21:05:26 -08002152 VK_SHADER_STAGE_ALL_GRAPHICS = 0x0000001F,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002153
2154 VK_SHADER_STAGE_ALL = 0x7FFFFFFF,
2155}
2156
Jesse Hallfbf97b02015-11-20 14:17:03 -08002157/// Descriptor pool create flags
Jesse Halld8bade02015-11-24 10:24:18 -08002158type VkFlags VkDescriptorPoolCreateFlags
2159bitfield VkDescriptorPoolCreateFlagBits {
Jesse Hallfbf97b02015-11-20 14:17:03 -08002160 VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT = 0x00000001,
Jesse Hall72e6a132018-04-06 13:00:44 -07002161
2162 //@extension("VK_EXT_descriptor_indexing") // 162
2163 VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT_EXT = 0x00000002,
Jesse Hallfbf97b02015-11-20 14:17:03 -08002164}
2165
2166/// Descriptor pool reset flags
Jesse Halld8bade02015-11-24 10:24:18 -08002167type VkFlags VkDescriptorPoolResetFlags
Jesse Halla6429252015-11-29 18:59:42 -08002168//bitfield VkDescriptorPoolResetFlagBits {
2169//}
Jesse Hallfbf97b02015-11-20 14:17:03 -08002170
Jesse Halld27f6aa2015-08-15 17:58:48 -07002171/// Image usage flags
Jesse Halld8bade02015-11-24 10:24:18 -08002172type VkFlags VkImageUsageFlags
2173bitfield VkImageUsageFlagBits {
Jesse Hall3fbc8562015-11-29 22:10:52 -08002174 VK_IMAGE_USAGE_TRANSFER_SRC_BIT = 0x00000001, /// Can be used as a source of transfer operations
2175 VK_IMAGE_USAGE_TRANSFER_DST_BIT = 0x00000002, /// Can be used as a destination of transfer operations
Jesse Halld27f6aa2015-08-15 17:58:48 -07002176 VK_IMAGE_USAGE_SAMPLED_BIT = 0x00000004, /// Can be sampled from (SAMPLED_IMAGE and COMBINED_IMAGE_SAMPLER descriptor types)
2177 VK_IMAGE_USAGE_STORAGE_BIT = 0x00000008, /// Can be used as storage image (STORAGE_IMAGE descriptor type)
2178 VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT = 0x00000010, /// Can be used as framebuffer color attachment
Jesse Hall5ae3abb2015-10-08 14:00:22 -07002179 VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000020, /// Can be used as framebuffer depth/stencil attachment
Jesse Halld27f6aa2015-08-15 17:58:48 -07002180 VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT = 0x00000040, /// Image data not needed outside of rendering
2181 VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT = 0x00000080, /// Can be used as framebuffer input attachment
2182}
2183
2184/// Image creation flags
Jesse Halld8bade02015-11-24 10:24:18 -08002185type VkFlags VkImageCreateFlags
2186bitfield VkImageCreateFlagBits {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07002187 VK_IMAGE_CREATE_SPARSE_BINDING_BIT = 0x00000001, /// Image should support sparse backing
Jesse Halld27f6aa2015-08-15 17:58:48 -07002188 VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT = 0x00000002, /// Image should support sparse backing with partial residency
2189 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 -07002190 VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT = 0x00000008, /// Allows image views to have different format than the base image
2191 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 -08002192
Ian Elliott28bd2c32017-10-13 09:21:12 -06002193 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04002194 VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT = 0x00000020,
Jesse Hall8c954d32018-01-17 22:06:20 -08002195 VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT = 0x00000040,
Daniel Koch09f7bf92017-10-05 00:26:58 -04002196 VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT = 0x00000080,
2197 VK_IMAGE_CREATE_EXTENDED_USAGE_BIT = 0x00000100,
Daniel Koch09f7bf92017-10-05 00:26:58 -04002198 VK_IMAGE_CREATE_DISJOINT_BIT = 0x00000200,
Ian Elliott28bd2c32017-10-13 09:21:12 -06002199 VK_IMAGE_CREATE_ALIAS_BIT = 0x00000400,
2200 VK_IMAGE_CREATE_PROTECTED_BIT = 0x00000800,
Daniel Koch09f7bf92017-10-05 00:26:58 -04002201
Jesse Hallad250842017-03-10 18:35:38 -08002202 //@extension("VK_KHR_maintenance1") // 70
Jesse Hall77ad05b2017-03-10 22:02:20 -08002203 VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT_KHR = 0x00000020,
Jesse Hallad250842017-03-10 18:35:38 -08002204
Daniel Koch09f7bf92017-10-05 00:26:58 -04002205 //@extension("VK_KHR_device_group") // 61
2206 VK_IMAGE_CREATE_BIND_SFR_BIT_KHR = 0x00000040,
Jesse Hall77726222017-09-19 14:49:27 -05002207
Jesse Hall076f95d2017-09-20 11:34:47 -07002208 //@extension("VK_KHR_maintenance2") // 118
2209 VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT_KHR = 0x00000080,
2210 VK_IMAGE_CREATE_EXTENDED_USAGE_BIT_KHR = 0x00000100,
2211
2212 //@extension("VK_KHR_sampler_ycbcr_conversion") // 157
2213 VK_IMAGE_CREATE_DISJOINT_BIT_KHR = 0x00000200,
2214
2215 //@extension("VK_KHR_bind_memory2") // 158
2216 VK_IMAGE_CREATE_ALIAS_BIT_KHR = 0x00000400,
Ian Elliott28bd2c32017-10-13 09:21:12 -06002217
2218 //@extension("VK_EXT_sample_locations") // 144
2219 VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT = 0x00001000,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002220}
2221
Jesse Hallb00daad2015-11-29 19:46:20 -08002222/// Image view creation flags
Jesse Halld8bade02015-11-24 10:24:18 -08002223type VkFlags VkImageViewCreateFlags
Jesse Hallb00daad2015-11-29 19:46:20 -08002224//bitfield VkImageViewCreateFlagBits {
2225//}
Jesse Halld27f6aa2015-08-15 17:58:48 -07002226
2227/// Pipeline creation flags
Jesse Halld8bade02015-11-24 10:24:18 -08002228type VkFlags VkPipelineCreateFlags
2229bitfield VkPipelineCreateFlagBits {
Jesse Halld27f6aa2015-08-15 17:58:48 -07002230 VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT = 0x00000001,
2231 VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT = 0x00000002,
2232 VK_PIPELINE_CREATE_DERIVATIVE_BIT = 0x00000004,
Jesse Hallad250842017-03-10 18:35:38 -08002233
Ian Elliott28bd2c32017-10-13 09:21:12 -06002234 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04002235 VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT = 0x00000008,
2236 VK_PIPELINE_CREATE_DISPATCH_BASE = 0x00000010,
2237
2238 //@extension("VK_KHR_device_group") // 61
2239 VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR = 0x00000008,
2240 VK_PIPELINE_CREATE_DISPATCH_BASE_KHR = 0x00000010,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002241}
2242
Jesse Hall65ab5522015-11-30 00:07:16 -08002243/// Color component flags
2244type VkFlags VkColorComponentFlags
2245bitfield VkColorComponentFlagBits {
2246 VK_COLOR_COMPONENT_R_BIT = 0x00000001,
2247 VK_COLOR_COMPONENT_G_BIT = 0x00000002,
2248 VK_COLOR_COMPONENT_B_BIT = 0x00000004,
2249 VK_COLOR_COMPONENT_A_BIT = 0x00000008,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002250}
2251
2252/// Fence creation flags
Jesse Halld8bade02015-11-24 10:24:18 -08002253type VkFlags VkFenceCreateFlags
2254bitfield VkFenceCreateFlagBits {
Jesse Halld27f6aa2015-08-15 17:58:48 -07002255 VK_FENCE_CREATE_SIGNALED_BIT = 0x00000001,
2256}
2257
2258/// Semaphore creation flags
Jesse Halld8bade02015-11-24 10:24:18 -08002259type VkFlags VkSemaphoreCreateFlags
Jesse Halla6429252015-11-29 18:59:42 -08002260//bitfield VkSemaphoreCreateFlagBits {
2261//}
Jesse Halld27f6aa2015-08-15 17:58:48 -07002262
2263/// Format capability flags
Jesse Halld8bade02015-11-24 10:24:18 -08002264type VkFlags VkFormatFeatureFlags
2265bitfield VkFormatFeatureFlagBits {
Jesse Halld27f6aa2015-08-15 17:58:48 -07002266 VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT = 0x00000001, /// Format can be used for sampled images (SAMPLED_IMAGE and COMBINED_IMAGE_SAMPLER descriptor types)
2267 VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT = 0x00000002, /// Format can be used for storage images (STORAGE_IMAGE descriptor type)
2268 VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT = 0x00000004, /// Format supports atomic operations in case it's used for storage images
2269 VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT = 0x00000008, /// Format can be used for uniform texel buffers (TBOs)
2270 VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT = 0x00000010, /// Format can be used for storage texel buffers (IBOs)
2271 VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT = 0x00000020, /// Format supports atomic operations in case it's used for storage texel buffers
2272 VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT = 0x00000040, /// Format can be used for vertex buffers (VBOs)
2273 VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT = 0x00000080, /// Format can be used for color attachment images
2274 VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT = 0x00000100, /// Format supports blending in case it's used for color attachment images
2275 VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000200, /// Format can be used for depth/stencil attachment images
Jesse Hall3fbc8562015-11-29 22:10:52 -08002276 VK_FORMAT_FEATURE_BLIT_SRC_BIT = 0x00000400, /// Format can be used as the source image of blits with vkCommandBlitImage
2277 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 -08002278 VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT = 0x00001000,
Jesse Hall26763382016-05-20 07:13:52 -07002279
Ian Elliott28bd2c32017-10-13 09:21:12 -06002280 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04002281 VK_FORMAT_FEATURE_TRANSFER_SRC_BIT = 0x00004000,
2282 VK_FORMAT_FEATURE_TRANSFER_DST_BIT = 0x00008000,
2283 VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT = 0x00020000,
2284 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT = 0x00040000,
2285 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT = 0x00080000,
2286 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT = 0x00100000,
2287 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT = 0x00200000,
2288 VK_FORMAT_FEATURE_DISJOINT_BIT = 0x00400000,
2289 VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT = 0x00800000,
2290
Jesse Hallad250842017-03-10 18:35:38 -08002291 //@extension("VK_IMG_filter_cubic") // 16
Jesse Hall26763382016-05-20 07:13:52 -07002292 VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG = 0x00002000,
Jesse Hall77ad05b2017-03-10 22:02:20 -08002293
Jesse Hallad250842017-03-10 18:35:38 -08002294 //@extension("VK_KHR_maintenance1") // 70
Jesse Hall77ad05b2017-03-10 22:02:20 -08002295 VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR = 0x00004000,
2296 VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR = 0x00008000,
Jesse Hall7ba0ac72017-07-07 17:13:23 -07002297
2298 //@extension("VK_EXT_sampler_filter_minmax") // 131
2299 VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT_EXT = 0x00010000,
Jesse Hall076f95d2017-09-20 11:34:47 -07002300
2301 //@extension("VK_KHR_sampler_ycbcr_conversion") // 157
2302 VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT_KHR = 0x00020000,
2303 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT_KHR = 0x00040000,
2304 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT_KHR = 0x00080000,
2305 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT_KHR = 0x00100000,
2306 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT_KHR = 0x00200000,
2307 VK_FORMAT_FEATURE_DISJOINT_BIT_KHR = 0x00400000,
2308 VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT_KHR = 0x00800000,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002309}
2310
2311/// Query control flags
Jesse Halld8bade02015-11-24 10:24:18 -08002312type VkFlags VkQueryControlFlags
2313bitfield VkQueryControlFlagBits {
Jesse Hall65ab5522015-11-30 00:07:16 -08002314 VK_QUERY_CONTROL_PRECISE_BIT = 0x00000001,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002315}
2316
2317/// Query result flags
Jesse Halld8bade02015-11-24 10:24:18 -08002318type VkFlags VkQueryResultFlags
2319bitfield VkQueryResultFlagBits {
Jesse Halld27f6aa2015-08-15 17:58:48 -07002320 VK_QUERY_RESULT_64_BIT = 0x00000001, /// Results of the queries are written to the destination buffer as 64-bit values
2321 VK_QUERY_RESULT_WAIT_BIT = 0x00000002, /// Results of the queries are waited on before proceeding with the result copy
2322 VK_QUERY_RESULT_WITH_AVAILABILITY_BIT = 0x00000004, /// Besides the results of the query, the availability of the results is also written
2323 VK_QUERY_RESULT_PARTIAL_BIT = 0x00000008, /// Copy the partial results of the query even if the final results aren't available
2324}
2325
2326/// Shader module creation flags
Jesse Halld8bade02015-11-24 10:24:18 -08002327type VkFlags VkShaderModuleCreateFlags
Jesse Halla6429252015-11-29 18:59:42 -08002328//bitfield VkShaderModuleCreateFlagBits {
2329//}
Jesse Halld27f6aa2015-08-15 17:58:48 -07002330
Jesse Halld27f6aa2015-08-15 17:58:48 -07002331/// Event creation flags
Jesse Halld8bade02015-11-24 10:24:18 -08002332type VkFlags VkEventCreateFlags
Jesse Halla6429252015-11-29 18:59:42 -08002333//bitfield VkEventCreateFlagBits {
2334//}
Jesse Halld27f6aa2015-08-15 17:58:48 -07002335
Jesse Halla15a4bf2015-11-19 22:48:02 -08002336/// Command buffer usage flags
Jesse Hall3fbc8562015-11-29 22:10:52 -08002337type VkFlags VkCommandBufferUsageFlags
2338bitfield VkCommandBufferUsageFlagBits {
2339 VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT = 0x00000001,
2340 VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT = 0x00000002,
2341 VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT = 0x00000004,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002342}
2343
2344/// Pipeline statistics flags
Jesse Halld8bade02015-11-24 10:24:18 -08002345type VkFlags VkQueryPipelineStatisticFlags
2346bitfield VkQueryPipelineStatisticFlagBits {
Jesse Hallae38f732015-11-19 21:32:50 -08002347 VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT = 0x00000001, /// Optional
2348 VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT = 0x00000002, /// Optional
2349 VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT = 0x00000004, /// Optional
2350 VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT = 0x00000008, /// Optional
2351 VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT = 0x00000010, /// Optional
2352 VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT = 0x00000020, /// Optional
2353 VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT = 0x00000040, /// Optional
2354 VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT = 0x00000080, /// Optional
2355 VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT = 0x00000100, /// Optional
2356 VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT = 0x00000200, /// Optional
2357 VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT = 0x00000400, /// Optional
Jesse Halld27f6aa2015-08-15 17:58:48 -07002358}
2359
2360/// Memory mapping flags
Jesse Halld8bade02015-11-24 10:24:18 -08002361type VkFlags VkMemoryMapFlags
Jesse Halla6429252015-11-29 18:59:42 -08002362//bitfield VkMemoryMapFlagBits {
2363//}
Jesse Halld27f6aa2015-08-15 17:58:48 -07002364
2365/// Bitfield of image aspects
Jesse Halld8bade02015-11-24 10:24:18 -08002366type VkFlags VkImageAspectFlags
2367bitfield VkImageAspectFlagBits {
Jesse Halld27f6aa2015-08-15 17:58:48 -07002368 VK_IMAGE_ASPECT_COLOR_BIT = 0x00000001,
2369 VK_IMAGE_ASPECT_DEPTH_BIT = 0x00000002,
2370 VK_IMAGE_ASPECT_STENCIL_BIT = 0x00000004,
2371 VK_IMAGE_ASPECT_METADATA_BIT = 0x00000008,
Jesse Hall076f95d2017-09-20 11:34:47 -07002372
Ian Elliott28bd2c32017-10-13 09:21:12 -06002373 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04002374 VK_IMAGE_ASPECT_PLANE_0_BIT = 0x00000010,
2375 VK_IMAGE_ASPECT_PLANE_1_BIT = 0x00000020,
2376 VK_IMAGE_ASPECT_PLANE_2_BIT = 0x00000040,
2377
Jesse Hall076f95d2017-09-20 11:34:47 -07002378 //@extension("VK_KHR_sampler_ycbcr_conversion") // 157
2379 VK_IMAGE_ASPECT_PLANE_0_BIT_KHR = 0x00000010,
2380 VK_IMAGE_ASPECT_PLANE_1_BIT_KHR = 0x00000020,
2381 VK_IMAGE_ASPECT_PLANE_2_BIT_KHR = 0x00000040,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002382}
2383
2384/// Sparse memory bind flags
Jesse Halld8bade02015-11-24 10:24:18 -08002385type VkFlags VkSparseMemoryBindFlags
Jesse Hall091ed9e2015-11-30 00:55:29 -08002386bitfield VkSparseMemoryBindFlagBits {
2387 VK_SPARSE_MEMORY_BIND_METADATA_BIT = 0x00000001,
2388}
Jesse Halld27f6aa2015-08-15 17:58:48 -07002389
2390/// Sparse image memory requirements flags
Jesse Halld8bade02015-11-24 10:24:18 -08002391type VkFlags VkSparseImageFormatFlags
2392bitfield VkSparseImageFormatFlagBits {
Jesse Hallb00daad2015-11-29 19:46:20 -08002393 VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT = 0x00000001, /// Image uses a single miptail region for all array slices
2394 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.
2395 VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT = 0x00000004, /// Image uses a non-standard sparse block size
Jesse Halld27f6aa2015-08-15 17:58:48 -07002396}
2397
2398/// Pipeline stages
Jesse Halld8bade02015-11-24 10:24:18 -08002399type VkFlags VkPipelineStageFlags
2400bitfield VkPipelineStageFlagBits {
Jesse Halld27f6aa2015-08-15 17:58:48 -07002401 VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT = 0x00000001, /// Before subsequent commands are processed
2402 VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT = 0x00000002, /// Draw/DispatchIndirect command fetch
2403 VK_PIPELINE_STAGE_VERTEX_INPUT_BIT = 0x00000004, /// Vertex/index fetch
2404 VK_PIPELINE_STAGE_VERTEX_SHADER_BIT = 0x00000008, /// Vertex shading
Jesse Hallae38f732015-11-19 21:32:50 -08002405 VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT = 0x00000010, /// Tessellation control shading
2406 VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT = 0x00000020, /// Tessellation evaluation shading
Jesse Halld27f6aa2015-08-15 17:58:48 -07002407 VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT = 0x00000040, /// Geometry shading
2408 VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT = 0x00000080, /// Fragment shading
2409 VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT = 0x00000100, /// Early fragment (depth/stencil) tests
2410 VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT = 0x00000200, /// Late fragment (depth/stencil) tests
2411 VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT = 0x00000400, /// Color attachment writes
2412 VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT = 0x00000800, /// Compute shading
2413 VK_PIPELINE_STAGE_TRANSFER_BIT = 0x00001000, /// Transfer/copy operations
Jesse Hall543a7ff2016-01-08 16:38:30 -08002414 VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT = 0x00002000,
2415 VK_PIPELINE_STAGE_HOST_BIT = 0x00004000, /// Indicates host (CPU) is a source/sink of the dependency
Jesse Halld27f6aa2015-08-15 17:58:48 -07002416
Jesse Hall543a7ff2016-01-08 16:38:30 -08002417 VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT = 0x00008000, /// All stages of the graphics pipeline
2418 VK_PIPELINE_STAGE_ALL_COMMANDS_BIT = 0x00010000, /// All graphics, compute, copy, and transition commands
Chris Forbes289cb792016-12-30 15:03:55 +13002419
Jesse Hallad250842017-03-10 18:35:38 -08002420 //@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13002421 VK_PIPELINE_STAGE_COMMAND_PROCESS_BIT_NVX = 0x00020000,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07002422}
2423
2424/// Render pass attachment description flags
Jesse Halld8bade02015-11-24 10:24:18 -08002425type VkFlags VkAttachmentDescriptionFlags
2426bitfield VkAttachmentDescriptionFlagBits {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07002427 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 -07002428}
2429
2430/// Subpass description flags
Jesse Halld8bade02015-11-24 10:24:18 -08002431type VkFlags VkSubpassDescriptionFlags
2432bitfield VkSubpassDescriptionFlagBits {
Jesse Hallad250842017-03-10 18:35:38 -08002433 //@extension("VK_NVX_multiview_per_view_attributes") // 98
2434 VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX = 0x00000001,
2435 VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX = 0x00000002,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002436}
2437
2438/// Command pool creation flags
Jesse Hall3fbc8562015-11-29 22:10:52 -08002439type VkFlags VkCommandPoolCreateFlags
2440bitfield VkCommandPoolCreateFlagBits {
2441 VK_COMMAND_POOL_CREATE_TRANSIENT_BIT = 0x00000001, /// Command buffers have a short lifetime
2442 VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT = 0x00000002, /// Command buffers may release their memory individually
Daniel Koch09f7bf92017-10-05 00:26:58 -04002443
Ian Elliott28bd2c32017-10-13 09:21:12 -06002444 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04002445 VK_COMMAND_POOL_CREATE_PROTECTED_BIT = 0x00000004,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002446}
2447
2448/// Command pool reset flags
Jesse Hall3fbc8562015-11-29 22:10:52 -08002449type VkFlags VkCommandPoolResetFlags
2450bitfield VkCommandPoolResetFlagBits {
2451 VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT = 0x00000001, /// Release resources owned by the pool
Jesse Halld27f6aa2015-08-15 17:58:48 -07002452}
2453
Jesse Hall3fbc8562015-11-29 22:10:52 -08002454type VkFlags VkCommandBufferResetFlags
2455bitfield VkCommandBufferResetFlagBits {
2456 VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT = 0x00000001, /// Release resources owned by the buffer
Jesse Hall5ae3abb2015-10-08 14:00:22 -07002457}
2458
Jesse Halld8bade02015-11-24 10:24:18 -08002459type VkFlags VkSampleCountFlags
2460bitfield VkSampleCountFlagBits {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07002461 VK_SAMPLE_COUNT_1_BIT = 0x00000001,
2462 VK_SAMPLE_COUNT_2_BIT = 0x00000002,
2463 VK_SAMPLE_COUNT_4_BIT = 0x00000004,
2464 VK_SAMPLE_COUNT_8_BIT = 0x00000008,
2465 VK_SAMPLE_COUNT_16_BIT = 0x00000010,
2466 VK_SAMPLE_COUNT_32_BIT = 0x00000020,
2467 VK_SAMPLE_COUNT_64_BIT = 0x00000040,
2468}
2469
Jesse Halld8bade02015-11-24 10:24:18 -08002470type VkFlags VkStencilFaceFlags
2471bitfield VkStencilFaceFlagBits {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07002472 VK_STENCIL_FACE_FRONT_BIT = 0x00000001, /// Front face
2473 VK_STENCIL_FACE_BACK_BIT = 0x00000002, /// Back face
Jesse Hallc7467b72015-11-29 21:05:26 -08002474 VK_STENCIL_FRONT_AND_BACK = 0x00000003,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002475}
2476
Jesse Halla6429252015-11-29 18:59:42 -08002477/// Instance creation flags
2478type VkFlags VkInstanceCreateFlags
2479//bitfield VkInstanceCreateFlagBits {
2480//}
2481
2482/// Device creation flags
2483type VkFlags VkDeviceCreateFlags
2484//bitfield VkDeviceCreateFlagBits {
2485//}
2486
2487/// Device queue creation flags
2488type VkFlags VkDeviceQueueCreateFlags
Ian Elliott28bd2c32017-10-13 09:21:12 -06002489@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04002490bitfield VkDeviceQueueCreateFlagBits {
2491 VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT = 0x00000001,
2492}
Jesse Halla6429252015-11-29 18:59:42 -08002493
2494/// Query pool creation flags
2495type VkFlags VkQueryPoolCreateFlags
2496//bitfield VkQueryPoolCreateFlagBits {
2497//}
2498
2499/// Buffer view creation flags
2500type VkFlags VkBufferViewCreateFlags
2501//bitfield VkBufferViewCreateFlagBits {
2502//}
2503
2504/// Pipeline cache creation flags
2505type VkFlags VkPipelineCacheCreateFlags
2506//bitfield VkPipelineCacheCreateFlagBits {
2507//}
2508
2509/// Pipeline shader stage creation flags
2510type VkFlags VkPipelineShaderStageCreateFlags
2511//bitfield VkPipelineShaderStageCreateFlagBits {
2512//}
2513
2514/// Descriptor set layout creation flags
2515type VkFlags VkDescriptorSetLayoutCreateFlags
Jesse Hallad250842017-03-10 18:35:38 -08002516bitfield VkDescriptorSetLayoutCreateFlagBits {
2517 //@extension("VK_KHR_push_descriptor") // 81
2518 VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR = 0x00000001,
Jesse Hall72e6a132018-04-06 13:00:44 -07002519
2520 //@extension("VK_EXT_descriptor_indexing") // 162
2521 VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT = 0x00000002,
Jesse Hallad250842017-03-10 18:35:38 -08002522}
Jesse Halla6429252015-11-29 18:59:42 -08002523
2524/// Pipeline vertex input state creation flags
2525type VkFlags VkPipelineVertexInputStateCreateFlags
2526//bitfield VkPipelineVertexInputStateCreateFlagBits {
2527//}
2528
2529/// Pipeline input assembly state creation flags
2530type VkFlags VkPipelineInputAssemblyStateCreateFlags
2531//bitfield VkPipelineInputAssemblyStateCreateFlagBits {
2532//}
2533
2534/// Tessellation state creation flags
2535type VkFlags VkPipelineTessellationStateCreateFlags
2536//bitfield VkPipelineTessellationStateCreateFlagBits {
2537//}
2538
2539/// Viewport state creation flags
2540type VkFlags VkPipelineViewportStateCreateFlags
2541//bitfield VkPipelineViewportStateCreateFlagBits {
2542//}
2543
Jesse Hall3fbc8562015-11-29 22:10:52 -08002544/// Rasterization state creation flags
2545type VkFlags VkPipelineRasterizationStateCreateFlags
2546//bitfield VkPipelineRasterizationStateCreateFlagBits {
Jesse Halla6429252015-11-29 18:59:42 -08002547//}
2548
2549/// Multisample state creation flags
2550type VkFlags VkPipelineMultisampleStateCreateFlags
2551//bitfield VkPipelineMultisampleStateCreateFlagBits {
2552//}
2553
2554/// Color blend state creation flags
2555type VkFlags VkPipelineColorBlendStateCreateFlags
2556//bitfield VkPipelineColorBlendStateCreateFlagBits {
2557//}
2558
2559/// Depth/stencil state creation flags
2560type VkFlags VkPipelineDepthStencilStateCreateFlags
2561//bitfield VkPipelineDepthStencilStateCreateFlagBits {
2562//}
2563
2564/// Dynamic state creation flags
2565type VkFlags VkPipelineDynamicStateCreateFlags
2566//bitfield VkPipelineDynamicStateCreateFlagBits {
2567//}
2568
2569/// Pipeline layout creation flags
2570type VkFlags VkPipelineLayoutCreateFlags
2571//bitfield VkPipelineLayoutCreateFlagBits {
2572//}
2573
2574/// Sampler creation flags
2575type VkFlags VkSamplerCreateFlags
2576//bitfield VkSamplerCreateFlagBits {
2577//}
2578
2579/// Render pass creation flags
2580type VkFlags VkRenderPassCreateFlags
2581//bitfield VkRenderPassCreateFlagBits {
2582//}
2583
2584/// Framebuffer creation flags
2585type VkFlags VkFramebufferCreateFlags
2586//bitfield VkFramebufferCreateFlagBits {
2587//}
2588
Jesse Halldc6d36c2015-11-29 19:12:15 -08002589/// Dependency flags
2590type VkFlags VkDependencyFlags
2591bitfield VkDependencyFlagBits {
2592 VK_DEPENDENCY_BY_REGION_BIT = 0x00000001,
Jesse Hallad250842017-03-10 18:35:38 -08002593
Ian Elliott28bd2c32017-10-13 09:21:12 -06002594 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04002595 VK_DEPENDENCY_DEVICE_GROUP_BIT = 0x00000004,
2596 VK_DEPENDENCY_VIEW_LOCAL_BIT = 0x00000002,
Jesse Hallad250842017-03-10 18:35:38 -08002597
Daniel Koch09f7bf92017-10-05 00:26:58 -04002598 //@extension("VK_KHR_multiview") // 54
2599 VK_DEPENDENCY_VIEW_LOCAL_BIT_KHR = 0x00000002,
2600
2601 //@extension("VK_KHR_device_group") // 61
2602 VK_DEPENDENCY_DEVICE_GROUP_BIT_KHR = 0x00000004,
Jesse Halldc6d36c2015-11-29 19:12:15 -08002603}
2604
Jesse Hallc7467b72015-11-29 21:05:26 -08002605/// Cull mode flags
2606type VkFlags VkCullModeFlags
2607bitfield VkCullModeFlagBits {
2608 VK_CULL_MODE_NONE = 0x00000000,
2609 VK_CULL_MODE_FRONT_BIT = 0x00000001,
2610 VK_CULL_MODE_BACK_BIT = 0x00000002,
2611 VK_CULL_MODE_FRONT_AND_BACK = 0x00000003,
2612}
2613
Ian Elliott28bd2c32017-10-13 09:21:12 -06002614//@vulkan1_1 flags
Daniel Koch09f7bf92017-10-05 00:26:58 -04002615
2616/// Subgroup feature flags
2617type VkFlags VkSubgroupFeatureFlags
2618bitfield VkSubgroupFeatureFlagBits {
2619 VK_SUBGROUP_FEATURE_BASIC_BIT = 0x00000001,
2620 VK_SUBGROUP_FEATURE_VOTE_BIT = 0x00000002,
2621 VK_SUBGROUP_FEATURE_ARITHMETIC_BIT = 0x00000004,
2622 VK_SUBGROUP_FEATURE_BALLOT_BIT = 0x00000008,
2623 VK_SUBGROUP_FEATURE_SHUFFLE_BIT = 0x00000010,
2624 VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT = 0x00000020,
2625 VK_SUBGROUP_FEATURE_CLUSTERED_BIT = 0x00000040,
2626 VK_SUBGROUP_FEATURE_QUAD_BIT = 0x00000080,
Jesse Hall72e6a132018-04-06 13:00:44 -07002627
2628 //@extension("VK_NV_shader_subgroup_partitioned") // 199
2629 VK_SUBGROUP_FEATURE_PARTITIONED_BIT_NV = 0x00000100,
Daniel Koch09f7bf92017-10-05 00:26:58 -04002630}
2631
2632/// Peer memory feature flags
2633type VkFlags VkPeerMemoryFeatureFlags
2634bitfield VkPeerMemoryFeatureFlagBits {
2635 VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT = 0x00000001,
2636 VK_PEER_MEMORY_FEATURE_COPY_DST_BIT = 0x00000002,
2637 VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT = 0x00000004,
2638 VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT = 0x00000008,
2639}
2640
2641/// Memory allocation flags
2642type VkFlags VkMemoryAllocateFlags
2643bitfield VkMemoryAllocateFlagBits {
2644 VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT = 0x00000001,
2645}
2646
2647type VkFlags VkCommandPoolTrimFlags
2648//bitfield VkCommandPoolTrimFlagBits {
2649//}
2650
2651type VkFlags VkDescriptorUpdateTemplateCreateFlags
2652//bitfield VkDescriptorUpdateTemplateCreateFlagBits {
2653//}
2654
2655/// External memory handle type flags
2656type VkFlags VkExternalMemoryHandleTypeFlags
2657bitfield VkExternalMemoryHandleTypeFlagBits {
2658 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT = 0x00000001,
2659 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT = 0x00000002,
2660 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 0x00000004,
2661 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT = 0x00000008,
2662 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT = 0x00000010,
2663 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT = 0x00000020,
2664 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT = 0x00000040,
Jesse Hall8c954d32018-01-17 22:06:20 -08002665
Jesse Hall8c954d32018-01-17 22:06:20 -08002666 //@extension("VK_EXT_external_memory_host") // 179
Jesse Hall36215a92018-01-18 15:04:37 -08002667 VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT = 0x00000080,
2668 VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT = 0x00000100,
2669
2670 //@extension("VK_EXT_external_memory_dma_buf") // 126
2671 VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT = 0x00000200,
2672
2673 //@extension("VK_ANDROID_external_memory_android_hardware_buffer") // 130
2674 VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID = 0x00000400,
Daniel Koch09f7bf92017-10-05 00:26:58 -04002675}
2676
2677/// External memory feature flags
2678type VkFlags VkExternalMemoryFeatureFlags
2679bitfield VkExternalMemoryFeatureFlagBits {
2680 VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT = 0x00000001,
2681 VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT = 0x00000002,
2682 VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT = 0x00000004,
2683}
2684
2685/// External fence handle type flags
2686type VkFlags VkExternalFenceHandleTypeFlags
2687bitfield VkExternalFenceHandleTypeFlagBits {
2688 VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT = 0x00000001,
2689 VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT = 0x00000002,
2690 VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 0x00000004,
2691 VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT = 0x00000008,
2692}
2693
2694/// External fence feature flags
2695type VkFlags VkExternalFenceFeatureFlags
2696bitfield VkExternalFenceFeatureFlagBits {
2697 VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT = 0x00000001,
2698 VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT = 0x00000002,
2699}
2700
2701/// Fence import flags
2702type VkFlags VkFenceImportFlags
2703bitfield VkFenceImportFlagBits {
2704 VK_FENCE_IMPORT_TEMPORARY_BIT = 0x00000001,
2705}
2706
2707/// Semaphore import flags
2708type VkFlags VkSemaphoreImportFlags
2709bitfield VkSemaphoreImportFlagBits {
2710 VK_SEMAPHORE_IMPORT_TEMPORARY_BIT = 0x00000001,
2711}
2712
2713/// External semaphore handle type flags
2714type VkFlags VkExternalSemaphoreHandleTypeFlags
2715bitfield VkExternalSemaphoreHandleTypeFlagBits {
2716 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT = 0x00000001,
2717 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT = 0x00000002,
2718 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 0x00000004,
2719 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT = 0x00000008,
2720 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT = 0x00000010,
2721}
2722
2723/// External semaphore feature flags
2724type VkFlags VkExternalSemaphoreFeatureFlags
2725bitfield VkExternalSemaphoreFeatureFlagBits {
2726 VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT = 0x00000001,
2727 VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT = 0x00000002,
2728}
2729
Jesse Hallad250842017-03-10 18:35:38 -08002730@extension("VK_KHR_surface") // 1
Jesse Halld8bade02015-11-24 10:24:18 -08002731type VkFlags VkSurfaceTransformFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08002732@extension("VK_KHR_surface") // 1
Jesse Halld8bade02015-11-24 10:24:18 -08002733bitfield VkSurfaceTransformFlagBitsKHR {
Jesse Hallf9fa9a52016-01-08 16:08:51 -08002734 VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR = 0x00000001,
Jesse Hall9ba8bc82015-11-30 16:22:16 -08002735 VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR = 0x00000002,
2736 VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR = 0x00000004,
2737 VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR = 0x00000008,
2738 VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR = 0x00000010,
2739 VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR = 0x00000020,
2740 VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR = 0x00000040,
2741 VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR = 0x00000080,
2742 VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR = 0x00000100,
Michael Lentine88594d72015-11-12 12:49:45 -08002743}
Jesse Halld27f6aa2015-08-15 17:58:48 -07002744
Jesse Hallad250842017-03-10 18:35:38 -08002745@extension("VK_KHR_surface") // 1
Jesse Halla6429252015-11-29 18:59:42 -08002746type VkFlags VkCompositeAlphaFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08002747@extension("VK_KHR_surface") // 1
Jesse Halla6429252015-11-29 18:59:42 -08002748bitfield VkCompositeAlphaFlagBitsKHR {
2749 VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR = 0x00000001,
2750 VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR = 0x00000002,
2751 VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR = 0x00000004,
2752 VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR = 0x00000008,
2753}
2754
Jesse Hallad250842017-03-10 18:35:38 -08002755@extension("VK_KHR_swapchain") // 2
Jesse Hallf4ab2b12015-11-30 16:04:55 -08002756type VkFlags VkSwapchainCreateFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08002757@extension("VK_KHR_swapchain") // 2
2758bitfield VkSwapchainCreateFlagBitsKHR {
Ian Elliott28bd2c32017-10-13 09:21:12 -06002759 //@vulkan1_1
Jesse Hall8c954d32018-01-17 22:06:20 -08002760 VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR = 0x00000001,
Daniel Koch09f7bf92017-10-05 00:26:58 -04002761 VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR = 0x00000002,
2762}
2763
Ian Elliott28bd2c32017-10-13 09:21:12 -06002764@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04002765@extension("VK_KHR_swapchain") // 2
2766type VkFlags VkDeviceGroupPresentModeFlagsKHR
Ian Elliott28bd2c32017-10-13 09:21:12 -06002767@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04002768@extension("VK_KHR_swapchain") // 2
2769bitfield VkDeviceGroupPresentModeFlagBitsKHR {
2770 VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR = 0x00000001,
2771 VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR = 0x00000002,
2772 VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR = 0x00000004,
2773 VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR = 0x00000008,
Jesse Hallad250842017-03-10 18:35:38 -08002774}
Jesse Hallf4ab2b12015-11-30 16:04:55 -08002775
Jesse Hallad250842017-03-10 18:35:38 -08002776@extension("VK_KHR_display") // 3
Jesse Halld8bade02015-11-24 10:24:18 -08002777type VkFlags VkDisplayPlaneAlphaFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08002778@extension("VK_KHR_display") // 3
Jesse Halld8bade02015-11-24 10:24:18 -08002779bitfield VkDisplayPlaneAlphaFlagBitsKHR {
Jesse Hallf4ab2b12015-11-30 16:04:55 -08002780 VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR = 0x00000001,
2781 VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR = 0x00000002,
2782 VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR = 0x00000004,
2783 VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR = 0x00000008,
Jesse Hall1356b0d2015-11-23 17:24:58 -08002784}
2785
Jesse Hallad250842017-03-10 18:35:38 -08002786@extension("VK_KHR_display") // 3
Jesse Hallf4ab2b12015-11-30 16:04:55 -08002787type VkFlags VkDisplaySurfaceCreateFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08002788//@extension("VK_KHR_display") // 3
Jesse Hallf4ab2b12015-11-30 16:04:55 -08002789//bitfield VkDisplaySurfaceCreateFlagBitsKHR {
2790//}
2791
Jesse Hallad250842017-03-10 18:35:38 -08002792@extension("VK_KHR_display") // 3
Jesse Hall9ba8bc82015-11-30 16:22:16 -08002793type VkFlags VkDisplayModeCreateFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08002794//@extension("VK_KHR_display") // 3
Jesse Hall9ba8bc82015-11-30 16:22:16 -08002795//bitfield VkDisplayModeCreateFlagBitsKHR {
2796//}
2797
Jesse Hallad250842017-03-10 18:35:38 -08002798@extension("VK_KHR_xlib_surface") // 5
Jesse Hallf9fa9a52016-01-08 16:08:51 -08002799type VkFlags VkXlibSurfaceCreateFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08002800//@extension("VK_KHR_xlib_surface") // 5
Jesse Hallf9fa9a52016-01-08 16:08:51 -08002801//bitfield VkXlibSurfaceCreateFlagBitsKHR {
2802//}
2803
Jesse Hallad250842017-03-10 18:35:38 -08002804@extension("VK_KHR_xcb_surface") // 6
Jesse Hallf9fa9a52016-01-08 16:08:51 -08002805type VkFlags VkXcbSurfaceCreateFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08002806//@extension("VK_KHR_xcb_surface") // 6
Jesse Hallf9fa9a52016-01-08 16:08:51 -08002807//bitfield VkXcbSurfaceCreateFlagBitsKHR {
2808//}
2809
Jesse Hallad250842017-03-10 18:35:38 -08002810@extension("VK_KHR_wayland_surface") // 7
Jesse Hallf9fa9a52016-01-08 16:08:51 -08002811type VkFlags VkWaylandSurfaceCreateFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08002812//@extension("VK_KHR_wayland_surface") // 7
Jesse Hallf9fa9a52016-01-08 16:08:51 -08002813//bitfield VkWaylandSurfaceCreateFlagBitsKHR {
2814//}
2815
Jesse Hallad250842017-03-10 18:35:38 -08002816@extension("VK_KHR_mir_surface") // 8
Jesse Hallf9fa9a52016-01-08 16:08:51 -08002817type VkFlags VkMirSurfaceCreateFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08002818//@extension("VK_KHR_mir_surface") // 8
Jesse Hallf9fa9a52016-01-08 16:08:51 -08002819//bitfield VkMirSurfaceCreateFlagBitsKHR {
2820//}
2821
Jesse Hallad250842017-03-10 18:35:38 -08002822@extension("VK_KHR_android_surface") // 9
Jesse Hallf9fa9a52016-01-08 16:08:51 -08002823type VkFlags VkAndroidSurfaceCreateFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08002824//@extension("VK_KHR_android_surface") // 9
Jesse Hallf9fa9a52016-01-08 16:08:51 -08002825//bitfield VkAndroidSurfaceCreateFlagBitsKHR {
2826//}
2827
Jesse Hallad250842017-03-10 18:35:38 -08002828@extension("VK_KHR_win32_surface") // 10
Jesse Hallf9fa9a52016-01-08 16:08:51 -08002829type VkFlags VkWin32SurfaceCreateFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08002830//@extension("VK_KHR_win32_surface") // 10
Jesse Hallf9fa9a52016-01-08 16:08:51 -08002831//bitfield VkWin32SurfaceCreateFlagBitsKHR {
2832//}
2833
Jesse Hallad250842017-03-10 18:35:38 -08002834@extension("VK_ANDROID_native_buffer") // 11
Jesse Hall889cd9a2017-02-25 22:12:23 -08002835type VkFlags VkSwapchainImageUsageFlagsANDROID
Jesse Hallad250842017-03-10 18:35:38 -08002836@extension("VK_ANDROID_native_buffer") // 11
Jesse Hall889cd9a2017-02-25 22:12:23 -08002837bitfield VkSwapchainImageUsageFlagBitsANDROID {
2838 VK_SWAPCHAIN_IMAGE_USAGE_FLAGS_SHARED_BIT_ANDROID = 0x00000001,
2839}
2840
Jesse Hallad250842017-03-10 18:35:38 -08002841@extension("VK_EXT_debug_report") // 12
Jesse Hall715b86a2016-01-16 16:34:29 -08002842type VkFlags VkDebugReportFlagsEXT
Jesse Hallad250842017-03-10 18:35:38 -08002843@extension("VK_EXT_debug_report") // 12
Jesse Hall715b86a2016-01-16 16:34:29 -08002844bitfield VkDebugReportFlagBitsEXT {
Jesse Halle2948d82016-02-25 04:19:32 -08002845 VK_DEBUG_REPORT_INFORMATION_BIT_EXT = 0x00000001,
2846 VK_DEBUG_REPORT_WARNING_BIT_EXT = 0x00000002,
2847 VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT = 0x00000004,
Jesse Hall715b86a2016-01-16 16:34:29 -08002848 VK_DEBUG_REPORT_ERROR_BIT_EXT = 0x00000008,
2849 VK_DEBUG_REPORT_DEBUG_BIT_EXT = 0x00000010,
2850}
2851
Jesse Hallad250842017-03-10 18:35:38 -08002852@extension("VK_NV_external_memory_capabilities") // 56
Chris Forbes289cb792016-12-30 15:03:55 +13002853type VkFlags VkExternalMemoryHandleTypeFlagsNV
Jesse Hallad250842017-03-10 18:35:38 -08002854@extension("VK_NV_external_memory_capabilities") // 56
Chris Forbes289cb792016-12-30 15:03:55 +13002855bitfield VkExternalMemoryHandleTypeFlagBitsNV {
Jesse Halleb02c472017-02-24 15:13:45 -08002856 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV = 0x00000001,
2857 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV = 0x00000002,
2858 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV = 0x00000004,
2859 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV = 0x00000008,
Chris Forbes289cb792016-12-30 15:03:55 +13002860}
2861
Jesse Hallad250842017-03-10 18:35:38 -08002862@extension("VK_NV_external_memory_capabilities") // 56
Chris Forbes289cb792016-12-30 15:03:55 +13002863type VkFlags VkExternalMemoryFeatureFlagsNV
Jesse Hallad250842017-03-10 18:35:38 -08002864@extension("VK_NV_external_memory_capabilities") // 56
Chris Forbes289cb792016-12-30 15:03:55 +13002865bitfield VkExternalMemoryFeatureFlagBitsNV {
Jesse Halleb02c472017-02-24 15:13:45 -08002866 VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV = 0x00000001,
2867 VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV = 0x00000002,
2868 VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV = 0x00000004,
Chris Forbes289cb792016-12-30 15:03:55 +13002869}
2870
Daniel Koch09f7bf92017-10-05 00:26:58 -04002871@extension("VK_KHR_device_group") // 61
2872type VkFlags VkPeerMemoryFeatureFlagsKHR
2873@extension("VK_KHR_device_group") // 61
2874bitfield VkPeerMemoryFeatureFlagBitsKHR {
2875 VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT_KHR = 0x00000001,
2876 VK_PEER_MEMORY_FEATURE_COPY_DST_BIT_KHR = 0x00000002,
2877 VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT_KHR = 0x00000004,
2878 VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT_KHR = 0x00000008,
Jesse Hallad250842017-03-10 18:35:38 -08002879}
2880
Daniel Koch09f7bf92017-10-05 00:26:58 -04002881@extension("VK_KHR_device_group") // 61
2882type VkFlags VkMemoryAllocateFlagsKHR
2883@extension("VK_KHR_device_group") // 61
2884bitfield VkMemoryAllocateFlagBitsKHR {
2885 VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT_KHR = 0x00000001,
Jesse Hallad250842017-03-10 18:35:38 -08002886}
2887
2888@extension("VK_NN_vi_surface") // 63
Jesse Hall77ad05b2017-03-10 22:02:20 -08002889type VkFlags VkViSurfaceCreateFlagsNN
Jesse Hallad250842017-03-10 18:35:38 -08002890//@extension("VK_NN_vi_surface") // 63
Jesse Hall77ad05b2017-03-10 22:02:20 -08002891//bitfield VkViSurfaceCreateFlagBitsNN {
2892//}
2893
Jesse Hallad250842017-03-10 18:35:38 -08002894@extension("VK_KHR_maintenance1") // 70
Jesse Hall77ad05b2017-03-10 22:02:20 -08002895type VkFlags VkCommandPoolTrimFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08002896//@extension("VK_KHR_maintenance1") // 70
Jesse Hall77ad05b2017-03-10 22:02:20 -08002897//bitfield VkCommandPoolTrimFlagBitsKHR {
2898//}
2899
Jesse Hall9492f992017-08-28 12:10:06 -07002900@extension("VK_KHR_external_memory_capabilities") // 72
2901type VkFlags VkExternalMemoryHandleTypeFlagsKHR
2902@extension("VK_KHR_external_memory_capabilities") // 72
2903bitfield VkExternalMemoryHandleTypeFlagBitsKHR {
2904 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = 0x00000001,
2905 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = 0x00000002,
2906 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = 0x00000004,
2907 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT_KHR = 0x00000008,
2908 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT_KHR = 0x00000010,
2909 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT_KHR = 0x00000020,
2910 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT_KHR = 0x00000040,
Jesse Hallad250842017-03-10 18:35:38 -08002911}
2912
Jesse Hall9492f992017-08-28 12:10:06 -07002913@extension("VK_KHR_external_memory_capabilities") // 72
2914type VkFlags VkExternalMemoryFeatureFlagsKHR
2915@extension("VK_KHR_external_memory_capabilities") // 72
2916bitfield VkExternalMemoryFeatureFlagBitsKHR {
2917 VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_KHR = 0x00000001,
2918 VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_KHR = 0x00000002,
2919 VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_KHR = 0x00000004,
Jesse Hallad250842017-03-10 18:35:38 -08002920}
2921
Jesse Hall9492f992017-08-28 12:10:06 -07002922@extension("VK_KHR_external_semaphore_capabilities") // 77
2923type VkFlags VkExternalSemaphoreHandleTypeFlagsKHR
2924@extension("VK_KHR_external_semaphore_capabilities") // 77
2925bitfield VkExternalSemaphoreHandleTypeFlagBitsKHR {
2926 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = 0x00000001
2927 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = 0x00000002
2928 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = 0x00000004
2929 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT_KHR = 0x00000008
2930 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_FENCE_FD_BIT_KHR = 0x00000010
Jesse Hallad250842017-03-10 18:35:38 -08002931}
2932
Jesse Hall9492f992017-08-28 12:10:06 -07002933@extension("VK_KHR_external_semaphore_capabilities") // 77
2934type VkFlags VkExternalSemaphoreFeatureFlagsKHR
2935@extension("VK_KHR_external_semaphore_capabilities") // 77
2936bitfield VkExternalSemaphoreFeatureFlagBitsKHR {
2937 VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT_KHR = 0x00000001,
2938 VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT_KHR = 0x00000002,
2939}
2940
2941@extension("VK_KHR_external_semaphore") // 78
2942type VkFlags VkSemaphoreImportFlagsKHR
2943@extension("VK_KHR_external_semaphore") // 78
2944bitfield VkSemaphoreImportFlagBitsKHR {
2945 VK_SEMAPHORE_IMPORT_TEMPORARY_BIT_KHR = 0x00000001,
Jesse Hallad250842017-03-10 18:35:38 -08002946}
2947
2948@extension("VK_KHR_descriptor_update_template") // 86
2949type VkFlags VkDescriptorUpdateTemplateCreateFlagsKHR
2950//@extension("VK_KHR_descriptor_update_template") // 86
2951//bitfield VkDescriptorUpdateTemplateCreateFlagBitsKHR {
2952//}
2953
2954@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13002955type VkFlags VkIndirectCommandsLayoutUsageFlagsNVX
Jesse Hallad250842017-03-10 18:35:38 -08002956@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13002957bitfield VkIndirectCommandsLayoutUsageFlagBitsNVX {
Jesse Halleb02c472017-02-24 15:13:45 -08002958 VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NVX = 0x00000001,
2959 VK_INDIRECT_COMMANDS_LAYOUT_USAGE_SPARSE_SEQUENCES_BIT_NVX = 0x00000002,
2960 VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EMPTY_EXECUTIONS_BIT_NVX = 0x00000004,
2961 VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NVX = 0x00000008,
Chris Forbes289cb792016-12-30 15:03:55 +13002962}
2963
Jesse Hallad250842017-03-10 18:35:38 -08002964@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13002965type VkFlags VkObjectEntryUsageFlagsNVX
Jesse Hallad250842017-03-10 18:35:38 -08002966@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13002967bitfield VkObjectEntryUsageFlagBitsNVX {
Jesse Halleb02c472017-02-24 15:13:45 -08002968 VK_OBJECT_ENTRY_USAGE_GRAPHICS_BIT_NVX = 0x00000001,
2969 VK_OBJECT_ENTRY_USAGE_COMPUTE_BIT_NVX = 0x00000002,
Chris Forbes289cb792016-12-30 15:03:55 +13002970}
2971
Jesse Hallad250842017-03-10 18:35:38 -08002972@extension("VK_EXT_display_surface_counter") // 91
Jesse Hall77ad05b2017-03-10 22:02:20 -08002973type VkFlags VkSurfaceCounterFlagsEXT
Jesse Hallad250842017-03-10 18:35:38 -08002974@extension("VK_EXT_display_surface_counter") // 91
Jesse Hall77ad05b2017-03-10 22:02:20 -08002975bitfield VkSurfaceCounterFlagBitsEXT {
2976 VK_SURFACE_COUNTER_VBLANK_EXT = 0x00000001,
2977}
2978
Jesse Hallad250842017-03-10 18:35:38 -08002979@extension("VK_NV_viewport_swizzle") // 99
2980type VkFlags VkPipelineViewportSwizzleStateCreateFlagsNV
2981//@extension("VK_NV_viewport_swizzle") // 99
2982//bitfield VkPipelineViewportSwizzleStateCreateFlagBitsNV {
2983//}
2984
2985@extension("VK_EXT_discard_rectangles") // 100
2986type VkFlags VkPipelineDiscardRectangleStateCreateFlagsEXT
2987//@extension("VK_EXT_discard_rectangles") // 100
2988//bitfield VkPipelineDiscardRectangleStateCreateFlagBitsEXT {
2989//}
2990
Jesse Hall8c954d32018-01-17 22:06:20 -08002991@extension("VK_EXT_conservative_rasterization") // 102
2992type VkFlags VkPipelineRasterizationConservativeStateCreateFlagsEXT
2993//@extension("VK_EXT_conservative_rasterization") // 102
2994//bitfield VkPipelineRasterizationConservativeStateCreateFlagBitsEXT {
2995//}
2996
Jesse Hall9492f992017-08-28 12:10:06 -07002997@extension("VK_KHR_external_fence_capabilities") // 113
2998type VkFlags VkExternalFenceHandleTypeFlagsKHR
2999@extension("VK_KHR_external_fence_capabilities") // 113
3000bitfield VkExternalFenceHandleTypeFlagBitsKHR {
3001 VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = 0x00000001,
3002 VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = 0x00000002,
3003 VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = 0x00000004,
3004 VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT_KHR = 0x00000008,
3005}
3006
3007@extension("VK_KHR_external_fence_capabilities") // 113
3008type VkFlags VkExternalFenceFeatureFlagsKHR
3009@extension("VK_KHR_external_fence_capabilities") // 113
3010bitfield VkExternalFenceFeatureFlagBitsKHR {
3011 VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT_KHR = 0x00000001,
3012 VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT_KHR = 0x00000002,
3013}
3014
3015@extension("VK_KHR_external_fence") // 114
3016type VkFlags VkFenceImportFlagsKHR
3017@extension("VK_KHR_external_fence") // 114
3018bitfield VkFenceImportFlagBitsKHR {
3019 VK_FENCE_IMPORT_TEMPORARY_BIT_KHR = 0x00000001,
3020}
3021
Jesse Hallad250842017-03-10 18:35:38 -08003022@extension("VK_MVK_ios_surface") // 123
3023type VkFlags VkIOSSurfaceCreateFlagsMVK
3024//@extension("VK_MVK_ios_surface") // 123
3025//bitfield VkIOSSurfaceCreateFlagBitsMVK {
3026//}
3027
3028@extension("VK_MVK_macos_surface") // 124
3029type VkFlags VkMacOSSurfaceCreateFlagsMVK
3030//@extension("VK_MVK_macos_surface") // 124
3031//bitfield VkMacOSSurfaceCreateFlagBitsMVK {
3032//}
3033
Jesse Hall8c954d32018-01-17 22:06:20 -08003034@extension("VK_EXT_debug_utils") // 129
3035type VkFlags VkDebugUtilsMessengerCallbackDataFlagsEXT
3036//@extension("VK_EXT_debug_utils") // 129
3037//bitfield VkDebugUtilsMessengerCallbackDataFlagBitsEXT {
3038//}
3039
3040@extension("VK_EXT_debug_utils") // 129
3041type VkFlags VkDebugUtilsMessengerCreateFlagsEXT
3042//@extension("VK_EXT_debug_utils") // 129
3043//bitfield VkDebugUtilsMessengerCreateFlagBitsEXT {
3044//}
3045
3046@extension("VK_EXT_debug_utils") // 129
3047type VkFlags VkDebugUtilsMessageSeverityFlagsEXT
3048@extension("VK_EXT_debug_utils") // 129
3049bitfield VkDebugUtilsMessageSeverityFlagBitsEXT {
3050 VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT = 0x00000001,
3051 VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT = 0x00000010,
3052 VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT = 0x00000100,
3053 VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT = 0x00001000,
3054}
3055
3056@extension("VK_EXT_debug_utils") // 129
3057type VkFlags VkDebugUtilsMessageTypeFlagsEXT
3058@extension("VK_EXT_debug_utils") // 129
3059bitfield VkDebugUtilsMessageTypeFlagBitsEXT {
3060 VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT = 0x00000001,
3061 VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT = 0x00000002,
3062 VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT = 0x00000004,
3063}
3064
Jesse Hall7ba0ac72017-07-07 17:13:23 -07003065@extension("VK_NV_fragment_coverage_to_color") // 150
3066type VkFlags VkPipelineCoverageToColorStateCreateFlagsNV
3067@extension("VK_NV_fragment_coverage_to_color") // 150
3068//bitfield VkPipelineCoverageToColorStateCreateFlagBitsNV {
3069//}
3070
3071@extension("VK_NV_framebuffer_mixed_samples") // 153
3072type VkFlags VkPipelineCoverageModulationStateCreateFlagsNV
3073@extension("VK_NV_framebuffer_mixed_samples") // 153
3074//bitfield VkPipelineCoverageModulationStateCreateFlagBitsNV {
3075//}
3076
Jesse Hall77726222017-09-19 14:49:27 -05003077@extension("VK_EXT_validation_cache") // 161
3078type VkFlags VkValidationCacheCreateFlagsEXT
3079@extension("VK_EXT_validation_cache") // 161
3080//bitfield VkValidationCacheCreateFlagBitsEXT {
3081//}
3082
Jesse Hall72e6a132018-04-06 13:00:44 -07003083@extension("VK_EXT_descriptor_indexing") // 162
3084type VkFlags VkDescriptorBindingFlagsEXT
3085@extension("VK_EXT_descriptor_indexing") // 162
3086bitfield VkDescriptorBindingFlagBitsEXT {
3087 VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT_EXT = 0x00000001,
3088 VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT_EXT = 0x00000002,
3089 VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT_EXT = 0x00000004,
3090 VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT_EXT = 0x00000008,
3091}
3092
Jesse Halld27f6aa2015-08-15 17:58:48 -07003093//////////////////
3094// Structures //
3095//////////////////
3096
3097class VkOffset2D {
3098 s32 x
3099 s32 y
3100}
3101
3102class VkOffset3D {
3103 s32 x
3104 s32 y
3105 s32 z
3106}
3107
3108class VkExtent2D {
Jesse Hall3dd678a2016-01-08 21:52:01 -08003109 u32 width
3110 u32 height
Jesse Halld27f6aa2015-08-15 17:58:48 -07003111}
3112
3113class VkExtent3D {
Jesse Hall3dd678a2016-01-08 21:52:01 -08003114 u32 width
3115 u32 height
3116 u32 depth
Jesse Halld27f6aa2015-08-15 17:58:48 -07003117}
3118
3119class VkViewport {
Jesse Hall65ab5522015-11-30 00:07:16 -08003120 f32 x
3121 f32 y
Jesse Halld27f6aa2015-08-15 17:58:48 -07003122 f32 width
3123 f32 height
3124 f32 minDepth
3125 f32 maxDepth
3126}
3127
3128class VkRect2D {
3129 VkOffset2D offset
3130 VkExtent2D extent
3131}
3132
Jesse Halla15a4bf2015-11-19 22:48:02 -08003133class VkClearRect {
3134 VkRect2D rect
3135 u32 baseArrayLayer
Jesse Hall3fbc8562015-11-29 22:10:52 -08003136 u32 layerCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07003137}
3138
Jesse Hall65ab5522015-11-30 00:07:16 -08003139class VkComponentMapping {
3140 VkComponentSwizzle r
3141 VkComponentSwizzle g
3142 VkComponentSwizzle b
3143 VkComponentSwizzle a
Jesse Halld27f6aa2015-08-15 17:58:48 -07003144}
3145
3146class VkPhysicalDeviceProperties {
3147 u32 apiVersion
3148 u32 driverVersion
Jesse Hall65ab5522015-11-30 00:07:16 -08003149 u32 vendorID
3150 u32 deviceID
Jesse Halld27f6aa2015-08-15 17:58:48 -07003151 VkPhysicalDeviceType deviceType
Jesse Hall65ab5522015-11-30 00:07:16 -08003152 char[VK_MAX_PHYSICAL_DEVICE_NAME_SIZE] deviceName
3153 u8[VK_UUID_SIZE] pipelineCacheUUID
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003154 VkPhysicalDeviceLimits limits
3155 VkPhysicalDeviceSparseProperties sparseProperties
Jesse Halld27f6aa2015-08-15 17:58:48 -07003156}
3157
3158class VkExtensionProperties {
Jesse Hall65ab5522015-11-30 00:07:16 -08003159 char[VK_MAX_EXTENSION_NAME_SIZE] extensionName /// extension name
Jesse Halld27f6aa2015-08-15 17:58:48 -07003160 u32 specVersion /// version of the extension specification implemented
3161}
3162
3163class VkLayerProperties {
Jesse Hall65ab5522015-11-30 00:07:16 -08003164 char[VK_MAX_EXTENSION_NAME_SIZE] layerName /// layer name
Jesse Hall3fbc8562015-11-29 22:10:52 -08003165 u32 specVersion /// version of the layer specification implemented
3166 u32 implementationVersion /// build or release version of the layer's library
Jesse Hall65ab5522015-11-30 00:07:16 -08003167 char[VK_MAX_DESCRIPTION_SIZE] description /// Free-form description of the layer
Jesse Halld27f6aa2015-08-15 17:58:48 -07003168}
3169
Jesse Halla366a512015-11-19 22:30:07 -08003170class VkSubmitInfo {
Jesse Hall03b6fe12015-11-24 12:44:21 -08003171 VkStructureType sType /// Type of structure. Should be VK_STRUCTURE_TYPE_SUBMIT_INFO
3172 const void* pNext /// Next structure in chain
3173 u32 waitSemaphoreCount
Jesse Halla366a512015-11-19 22:30:07 -08003174 const VkSemaphore* pWaitSemaphores
Jesse Hall543a7ff2016-01-08 16:38:30 -08003175 const VkPipelineStageFlags* pWaitDstStageMask
Jesse Hall03b6fe12015-11-24 12:44:21 -08003176 u32 commandBufferCount
Jesse Hall3fbc8562015-11-29 22:10:52 -08003177 const VkCommandBuffer* pCommandBuffers
Jesse Hall03b6fe12015-11-24 12:44:21 -08003178 u32 signalSemaphoreCount
Jesse Halla366a512015-11-19 22:30:07 -08003179 const VkSemaphore* pSignalSemaphores
3180}
3181
Jesse Halld27f6aa2015-08-15 17:58:48 -07003182class VkApplicationInfo {
3183 VkStructureType sType /// Type of structure. Should be VK_STRUCTURE_TYPE_APPLICATION_INFO
3184 const void* pNext /// Next structure in chain
Jesse Hall3fbc8562015-11-29 22:10:52 -08003185 const char* pApplicationName
3186 u32 applicationVersion
Jesse Halld27f6aa2015-08-15 17:58:48 -07003187 const char* pEngineName
3188 u32 engineVersion
3189 u32 apiVersion
3190}
3191
Jesse Hall3fbc8562015-11-29 22:10:52 -08003192class VkAllocationCallbacks {
Jesse Halld27f6aa2015-08-15 17:58:48 -07003193 void* pUserData
Jesse Hall3fbc8562015-11-29 22:10:52 -08003194 PFN_vkAllocationFunction pfnAllocation
3195 PFN_vkReallocationFunction pfnReallocation
Jesse Halld27f6aa2015-08-15 17:58:48 -07003196 PFN_vkFreeFunction pfnFree
Jesse Hall3fbc8562015-11-29 22:10:52 -08003197 PFN_vkInternalAllocationNotification pfnInternalAllocation
Jesse Hall03b6fe12015-11-24 12:44:21 -08003198 PFN_vkInternalFreeNotification pfnInternalFree
Jesse Halld27f6aa2015-08-15 17:58:48 -07003199}
3200
3201class VkDeviceQueueCreateInfo {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003202 VkStructureType sStype /// Should be VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO
3203 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003204 VkDeviceQueueCreateFlags flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07003205 u32 queueFamilyIndex
Jesse Halldba27f72015-11-30 14:25:46 -08003206 u32 queueCount
Jesse Hallfbf97b02015-11-20 14:17:03 -08003207 const f32* pQueuePriorities
Jesse Halld27f6aa2015-08-15 17:58:48 -07003208}
3209
3210class VkDeviceCreateInfo {
3211 VkStructureType sType /// Should be VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO
3212 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003213 VkDeviceCreateFlags flags
Jesse Halldba27f72015-11-30 14:25:46 -08003214 u32 queueCreateInfoCount
3215 const VkDeviceQueueCreateInfo* pQueueCreateInfos
Jesse Hall3dd678a2016-01-08 21:52:01 -08003216 u32 enabledLayerCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07003217 const char* const* ppEnabledLayerNames /// Ordered list of layer names to be enabled
Jesse Hall3dd678a2016-01-08 21:52:01 -08003218 u32 enabledExtensionCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07003219 const char* const* ppEnabledExtensionNames
3220 const VkPhysicalDeviceFeatures* pEnabledFeatures
Jesse Halld27f6aa2015-08-15 17:58:48 -07003221}
3222
3223class VkInstanceCreateInfo {
3224 VkStructureType sType /// Should be VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO
3225 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003226 VkInstanceCreateFlags flags
Jesse Hall3fbc8562015-11-29 22:10:52 -08003227 const VkApplicationInfo* pApplicationInfo
Jesse Hall3dd678a2016-01-08 21:52:01 -08003228 u32 enabledLayerCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07003229 const char* const* ppEnabledLayerNames /// Ordered list of layer names to be enabled
Jesse Hall3dd678a2016-01-08 21:52:01 -08003230 u32 enabledExtensionCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07003231 const char* const* ppEnabledExtensionNames /// Extension names to be enabled
3232}
3233
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003234class VkQueueFamilyProperties {
Jesse Halld27f6aa2015-08-15 17:58:48 -07003235 VkQueueFlags queueFlags /// Queue flags
3236 u32 queueCount
Jesse Hallacfa5342015-11-19 21:51:33 -08003237 u32 timestampValidBits
Jesse Hall65ab5522015-11-30 00:07:16 -08003238 VkExtent3D minImageTransferGranularity
Jesse Halld27f6aa2015-08-15 17:58:48 -07003239}
3240
3241class VkPhysicalDeviceMemoryProperties {
3242 u32 memoryTypeCount
3243 VkMemoryType[VK_MAX_MEMORY_TYPES] memoryTypes
3244 u32 memoryHeapCount
3245 VkMemoryHeap[VK_MAX_MEMORY_HEAPS] memoryHeaps
3246}
3247
Jesse Hall3fbc8562015-11-29 22:10:52 -08003248class VkMemoryAllocateInfo {
Jesse Hallf4ab2b12015-11-30 16:04:55 -08003249 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO
Jesse Halld27f6aa2015-08-15 17:58:48 -07003250 const void* pNext /// Pointer to next structure
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003251 VkDeviceSize allocationSize /// Size of memory allocation
Jesse Halld27f6aa2015-08-15 17:58:48 -07003252 u32 memoryTypeIndex /// Index of the of the memory type to allocate from
3253}
3254
3255class VkMemoryRequirements {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003256 VkDeviceSize size /// Specified in bytes
3257 VkDeviceSize alignment /// Specified in bytes
Jesse Halld27f6aa2015-08-15 17:58:48 -07003258 u32 memoryTypeBits /// Bitfield of the allowed memory type indices into memoryTypes[] for this object
3259}
3260
3261class VkSparseImageFormatProperties {
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08003262 VkImageAspectFlagBits aspectMask
Jesse Halld27f6aa2015-08-15 17:58:48 -07003263 VkExtent3D imageGranularity
3264 VkSparseImageFormatFlags flags
3265}
3266
3267class VkSparseImageMemoryRequirements {
Jesse Hallb00daad2015-11-29 19:46:20 -08003268 VkSparseImageFormatProperties formatProperties
Jesse Hallf9fa9a52016-01-08 16:08:51 -08003269 u32 imageMipTailFirstLod
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003270 VkDeviceSize imageMipTailSize /// Specified in bytes, must be a multiple of image block size / alignment
3271 VkDeviceSize imageMipTailOffset /// Specified in bytes, must be a multiple of image block size / alignment
3272 VkDeviceSize imageMipTailStride /// Specified in bytes, must be a multiple of image block size / alignment
Jesse Halld27f6aa2015-08-15 17:58:48 -07003273}
3274
3275class VkMemoryType {
3276 VkMemoryPropertyFlags propertyFlags /// Memory properties of this memory type
3277 u32 heapIndex /// Index of the memory heap allocations of this memory type are taken from
3278}
3279
3280class VkMemoryHeap {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003281 VkDeviceSize size /// Available memory in the heap
Jesse Halld27f6aa2015-08-15 17:58:48 -07003282 VkMemoryHeapFlags flags /// Flags for the heap
3283}
3284
3285class VkMappedMemoryRange {
3286 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE
3287 const void* pNext /// Pointer to next structure
Jesse Hall3fbc8562015-11-29 22:10:52 -08003288 VkDeviceMemory memory /// Mapped memory object
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003289 VkDeviceSize offset /// Offset within the mapped memory the range starts from
3290 VkDeviceSize size /// Size of the range within the mapped memory
Jesse Halld27f6aa2015-08-15 17:58:48 -07003291}
3292
3293class VkFormatProperties {
3294 VkFormatFeatureFlags linearTilingFeatures /// Format features in case of linear tiling
3295 VkFormatFeatureFlags optimalTilingFeatures /// Format features in case of optimal tiling
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003296 VkFormatFeatureFlags bufferFeatures /// Format features supported by buffers
Jesse Halld27f6aa2015-08-15 17:58:48 -07003297}
3298
3299class VkImageFormatProperties {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003300 VkExtent3D maxExtent /// max image dimensions for this resource type
3301 u32 maxMipLevels /// max number of mipmap levels for this resource type
Jesse Halla15a4bf2015-11-19 22:48:02 -08003302 u32 maxArrayLayers /// max array layers for this resource type
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003303 VkSampleCountFlags sampleCounts /// supported sample counts for this resource type
3304 VkDeviceSize maxResourceSize /// max size (in bytes) of this resource type
3305}
3306
Jesse Halla15a4bf2015-11-19 22:48:02 -08003307class VkDescriptorImageInfo {
3308 VkSampler sampler
3309 VkImageView imageView
3310 VkImageLayout imageLayout
3311}
3312
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003313class VkDescriptorBufferInfo {
3314 VkBuffer buffer /// Buffer used for this descriptor when the descriptor is UNIFORM_BUFFER[_DYNAMIC]
3315 VkDeviceSize offset /// Base offset from buffer start in bytes to update in the descriptor set.
3316 VkDeviceSize range /// Size in bytes of the buffer resource for this descriptor update.
Jesse Halld27f6aa2015-08-15 17:58:48 -07003317}
3318
Jesse Halld27f6aa2015-08-15 17:58:48 -07003319class VkWriteDescriptorSet {
3320 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET
3321 const void* pNext /// Pointer to next structure
Jesse Hall3fbc8562015-11-29 22:10:52 -08003322 VkDescriptorSet dstSet /// Destination descriptor set
3323 u32 dstBinding /// Binding within the destination descriptor set to write
3324 u32 dstArrayElement /// Array element within the destination binding to write
Jesse Hall03b6fe12015-11-24 12:44:21 -08003325 u32 descriptorCount /// Number of descriptors to write (determines the size of the array pointed by <pDescriptors>)
Jesse Halld27f6aa2015-08-15 17:58:48 -07003326 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 -08003327 const VkDescriptorImageInfo* pImageInfo
3328 const VkDescriptorBufferInfo* pBufferInfo
3329 const VkBufferView* pTexelBufferView
Jesse Halld27f6aa2015-08-15 17:58:48 -07003330}
3331
3332class VkCopyDescriptorSet {
3333 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET
3334 const void* pNext /// Pointer to next structure
3335 VkDescriptorSet srcSet /// Source descriptor set
3336 u32 srcBinding /// Binding within the source descriptor set to copy from
3337 u32 srcArrayElement /// Array element within the source binding to copy from
Jesse Hall3fbc8562015-11-29 22:10:52 -08003338 VkDescriptorSet dstSet /// Destination descriptor set
3339 u32 dstBinding /// Binding within the destination descriptor set to copy to
3340 u32 dstArrayElement /// Array element within the destination binding to copy to
Jesse Hall03b6fe12015-11-24 12:44:21 -08003341 u32 descriptorCount /// Number of descriptors to copy
Jesse Halld27f6aa2015-08-15 17:58:48 -07003342}
3343
3344class VkBufferCreateInfo {
3345 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO
3346 const void* pNext /// Pointer to next structure.
Jesse Halla6429252015-11-29 18:59:42 -08003347 VkBufferCreateFlags flags /// Buffer creation flags
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003348 VkDeviceSize size /// Specified in bytes
Jesse Halld27f6aa2015-08-15 17:58:48 -07003349 VkBufferUsageFlags usage /// Buffer usage flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07003350 VkSharingMode sharingMode
Jesse Hall03b6fe12015-11-24 12:44:21 -08003351 u32 queueFamilyIndexCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07003352 const u32* pQueueFamilyIndices
3353}
3354
3355class VkBufferViewCreateInfo {
3356 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO
3357 const void* pNext /// Pointer to next structure.
Jesse Halla6429252015-11-29 18:59:42 -08003358 VkBufferViewCreateFlags flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07003359 VkBuffer buffer
Jesse Halld27f6aa2015-08-15 17:58:48 -07003360 VkFormat format /// Optionally specifies format of elements
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003361 VkDeviceSize offset /// Specified in bytes
3362 VkDeviceSize range /// View size specified in bytes
Jesse Halld27f6aa2015-08-15 17:58:48 -07003363}
3364
3365class VkImageSubresource {
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08003366 VkImageAspectFlagBits aspectMask
Jesse Halld27f6aa2015-08-15 17:58:48 -07003367 u32 mipLevel
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003368 u32 arrayLayer
Jesse Halld27f6aa2015-08-15 17:58:48 -07003369}
3370
3371class VkImageSubresourceRange {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003372 VkImageAspectFlags aspectMask
Jesse Halld27f6aa2015-08-15 17:58:48 -07003373 u32 baseMipLevel
Jesse Hall3fbc8562015-11-29 22:10:52 -08003374 u32 levelCount
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003375 u32 baseArrayLayer
Jesse Hall3fbc8562015-11-29 22:10:52 -08003376 u32 layerCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07003377}
3378
3379class VkMemoryBarrier {
3380 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_MEMORY_BARRIER
3381 const void* pNext /// Pointer to next structure.
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08003382 VkAccessFlags srcAccessMask
3383 VkAccessFlags dstAccessMask
Jesse Halld27f6aa2015-08-15 17:58:48 -07003384}
3385
3386class VkBufferMemoryBarrier {
3387 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER
3388 const void* pNext /// Pointer to next structure.
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08003389 VkAccessFlags srcAccessMask
3390 VkAccessFlags dstAccessMask
Jesse Halld27f6aa2015-08-15 17:58:48 -07003391 u32 srcQueueFamilyIndex /// Queue family to transition ownership from
Jesse Hall3fbc8562015-11-29 22:10:52 -08003392 u32 dstQueueFamilyIndex /// Queue family to transition ownership to
Jesse Halld27f6aa2015-08-15 17:58:48 -07003393 VkBuffer buffer /// Buffer to sync
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003394 VkDeviceSize offset /// Offset within the buffer to sync
3395 VkDeviceSize size /// Amount of bytes to sync
Jesse Halld27f6aa2015-08-15 17:58:48 -07003396}
3397
3398class VkImageMemoryBarrier {
3399 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER
3400 const void* pNext /// Pointer to next structure.
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08003401 VkAccessFlags srcAccessMask
3402 VkAccessFlags dstAccessMask
Jesse Halld27f6aa2015-08-15 17:58:48 -07003403 VkImageLayout oldLayout /// Current layout of the image
3404 VkImageLayout newLayout /// New layout to transition the image to
3405 u32 srcQueueFamilyIndex /// Queue family to transition ownership from
Jesse Hall3fbc8562015-11-29 22:10:52 -08003406 u32 dstQueueFamilyIndex /// Queue family to transition ownership to
Jesse Halld27f6aa2015-08-15 17:58:48 -07003407 VkImage image /// Image to sync
3408 VkImageSubresourceRange subresourceRange /// Subresource range to sync
3409}
3410
3411class VkImageCreateInfo {
3412 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO
3413 const void* pNext /// Pointer to next structure.
Jesse Halla6429252015-11-29 18:59:42 -08003414 VkImageCreateFlags flags /// Image creation flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07003415 VkImageType imageType
3416 VkFormat format
3417 VkExtent3D extent
3418 u32 mipLevels
Jesse Halla15a4bf2015-11-19 22:48:02 -08003419 u32 arrayLayers
Jesse Hall091ed9e2015-11-30 00:55:29 -08003420 VkSampleCountFlagBits samples
Jesse Halld27f6aa2015-08-15 17:58:48 -07003421 VkImageTiling tiling
3422 VkImageUsageFlags usage /// Image usage flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07003423 VkSharingMode sharingMode /// Cross-queue-family sharing mode
Jesse Hall03b6fe12015-11-24 12:44:21 -08003424 u32 queueFamilyIndexCount /// Number of queue families to share across
Jesse Halld27f6aa2015-08-15 17:58:48 -07003425 const u32* pQueueFamilyIndices /// Array of queue family indices to share across
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003426 VkImageLayout initialLayout /// Initial image layout for all subresources
Jesse Halld27f6aa2015-08-15 17:58:48 -07003427}
3428
3429class VkSubresourceLayout {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003430 VkDeviceSize offset /// Specified in bytes
3431 VkDeviceSize size /// Specified in bytes
3432 VkDeviceSize rowPitch /// Specified in bytes
Jesse Hall543a7ff2016-01-08 16:38:30 -08003433 VkDeviceSize arrayPitch /// Specified in bytes
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003434 VkDeviceSize depthPitch /// Specified in bytes
Jesse Halld27f6aa2015-08-15 17:58:48 -07003435}
3436
3437class VkImageViewCreateInfo {
3438 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO
3439 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003440 VkImageViewCreateFlags flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07003441 VkImage image
3442 VkImageViewType viewType
3443 VkFormat format
Jesse Hall65ab5522015-11-30 00:07:16 -08003444 VkComponentMapping components
Jesse Halld27f6aa2015-08-15 17:58:48 -07003445 VkImageSubresourceRange subresourceRange
Jesse Halld27f6aa2015-08-15 17:58:48 -07003446}
3447
3448class VkBufferCopy {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003449 VkDeviceSize srcOffset /// Specified in bytes
Jesse Hall3fbc8562015-11-29 22:10:52 -08003450 VkDeviceSize dstOffset /// Specified in bytes
Jesse Hallb00daad2015-11-29 19:46:20 -08003451 VkDeviceSize size /// Specified in bytes
Jesse Halld27f6aa2015-08-15 17:58:48 -07003452}
3453
Jesse Halla6429252015-11-29 18:59:42 -08003454class VkSparseMemoryBind {
Jesse Hallb00daad2015-11-29 19:46:20 -08003455 VkDeviceSize resourceOffset /// Specified in bytes
3456 VkDeviceSize size /// Specified in bytes
Jesse Hall3fbc8562015-11-29 22:10:52 -08003457 VkDeviceMemory memory
3458 VkDeviceSize memoryOffset /// Specified in bytes
Jesse Halld27f6aa2015-08-15 17:58:48 -07003459 VkSparseMemoryBindFlags flags
3460}
3461
Jesse Halla6429252015-11-29 18:59:42 -08003462class VkSparseImageMemoryBind {
Jesse Halld27f6aa2015-08-15 17:58:48 -07003463 VkImageSubresource subresource
3464 VkOffset3D offset
3465 VkExtent3D extent
Jesse Hall3fbc8562015-11-29 22:10:52 -08003466 VkDeviceMemory memory
3467 VkDeviceSize memoryOffset /// Specified in bytes
Jesse Halld27f6aa2015-08-15 17:58:48 -07003468 VkSparseMemoryBindFlags flags
3469}
3470
Jesse Halla6429252015-11-29 18:59:42 -08003471class VkSparseBufferMemoryBindInfo {
3472 VkBuffer buffer
3473 u32 bindCount
3474 const VkSparseMemoryBind* pBinds
3475}
3476
3477class VkSparseImageOpaqueMemoryBindInfo {
3478 VkImage image
3479 u32 bindCount
3480 const VkSparseMemoryBind* pBinds
3481}
3482
3483class VkSparseImageMemoryBindInfo {
3484 VkImage image
3485 u32 bindCount
3486 const VkSparseMemoryBind* pBinds
3487}
3488
3489class VkBindSparseInfo {
3490 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_BIND_SPARSE_INFO
3491 const void* pNext
3492 u32 waitSemaphoreCount
3493 const VkSemaphore* pWaitSemaphores
3494 u32 numBufferBinds
3495 const VkSparseBufferMemoryBindInfo* pBufferBinds
3496 u32 numImageOpaqueBinds
3497 const VkSparseImageOpaqueMemoryBindInfo* pImageOpaqueBinds
3498 u32 numImageBinds
3499 const VkSparseImageMemoryBindInfo* pImageBinds
3500 u32 signalSemaphoreCount
3501 const VkSemaphore* pSignalSemaphores
3502}
3503
Jesse Hall65ab5522015-11-30 00:07:16 -08003504class VkImageSubresourceLayers {
3505 VkImageAspectFlags aspectMask
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003506 u32 mipLevel
Jesse Halla15a4bf2015-11-19 22:48:02 -08003507 u32 baseArrayLayer
Jesse Hall3fbc8562015-11-29 22:10:52 -08003508 u32 layerCount
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003509}
3510
Jesse Halld27f6aa2015-08-15 17:58:48 -07003511class VkImageCopy {
Jesse Hall65ab5522015-11-30 00:07:16 -08003512 VkImageSubresourceLayers srcSubresource
Jesse Halld27f6aa2015-08-15 17:58:48 -07003513 VkOffset3D srcOffset /// Specified in pixels for both compressed and uncompressed images
Jesse Hall65ab5522015-11-30 00:07:16 -08003514 VkImageSubresourceLayers dstSubresource
Jesse Hall3fbc8562015-11-29 22:10:52 -08003515 VkOffset3D dstOffset /// Specified in pixels for both compressed and uncompressed images
Jesse Halld27f6aa2015-08-15 17:58:48 -07003516 VkExtent3D extent /// Specified in pixels for both compressed and uncompressed images
3517}
3518
3519class VkImageBlit {
Jesse Hall65ab5522015-11-30 00:07:16 -08003520 VkImageSubresourceLayers srcSubresource
Jesse Hall3dd678a2016-01-08 21:52:01 -08003521 VkOffset3D[2] srcOffsets
Jesse Hall65ab5522015-11-30 00:07:16 -08003522 VkImageSubresourceLayers dstSubresource
Jesse Hall3dd678a2016-01-08 21:52:01 -08003523 VkOffset3D[2] dstOffsets
Jesse Halld27f6aa2015-08-15 17:58:48 -07003524}
3525
3526class VkBufferImageCopy {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003527 VkDeviceSize bufferOffset /// Specified in bytes
Jesse Halld27f6aa2015-08-15 17:58:48 -07003528 u32 bufferRowLength /// Specified in texels
3529 u32 bufferImageHeight
Jesse Hall65ab5522015-11-30 00:07:16 -08003530 VkImageSubresourceLayers imageSubresource
Jesse Halld27f6aa2015-08-15 17:58:48 -07003531 VkOffset3D imageOffset /// Specified in pixels for both compressed and uncompressed images
3532 VkExtent3D imageExtent /// Specified in pixels for both compressed and uncompressed images
3533}
3534
3535class VkImageResolve {
Jesse Hall65ab5522015-11-30 00:07:16 -08003536 VkImageSubresourceLayers srcSubresource
Jesse Halld27f6aa2015-08-15 17:58:48 -07003537 VkOffset3D srcOffset
Jesse Hall65ab5522015-11-30 00:07:16 -08003538 VkImageSubresourceLayers dstSubresource
Jesse Hall3fbc8562015-11-29 22:10:52 -08003539 VkOffset3D dstOffset
Jesse Halld27f6aa2015-08-15 17:58:48 -07003540 VkExtent3D extent
3541}
3542
3543class VkShaderModuleCreateInfo {
3544 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO
3545 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003546 VkShaderModuleCreateFlags flags /// Reserved
Jesse Halld27f6aa2015-08-15 17:58:48 -07003547 platform.size_t codeSize /// Specified in bytes
Jesse Halla9bb62b2015-11-21 19:31:56 -08003548 const u32* pCode /// Binary code of size codeSize
Jesse Halld27f6aa2015-08-15 17:58:48 -07003549}
3550
Jesse Halld27f6aa2015-08-15 17:58:48 -07003551class VkDescriptorSetLayoutBinding {
Jesse Hall091ed9e2015-11-30 00:55:29 -08003552 u32 binding
Jesse Halld27f6aa2015-08-15 17:58:48 -07003553 VkDescriptorType descriptorType /// Type of the descriptors in this binding
Jesse Halldba27f72015-11-30 14:25:46 -08003554 u32 descriptorCount /// Number of descriptors in this binding
Jesse Halld27f6aa2015-08-15 17:58:48 -07003555 VkShaderStageFlags stageFlags /// Shader stages this binding is visible to
3556 const VkSampler* pImmutableSamplers /// Immutable samplers (used if descriptor type is SAMPLER or COMBINED_IMAGE_SAMPLER, is either NULL or contains <count> number of elements)
3557}
3558
3559class VkDescriptorSetLayoutCreateInfo {
3560 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO
3561 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003562 VkDescriptorSetLayoutCreateFlags flags
Jesse Hall03b6fe12015-11-24 12:44:21 -08003563 u32 bindingCount /// Number of bindings in the descriptor set layout
Jesse Hall543a7ff2016-01-08 16:38:30 -08003564 const VkDescriptorSetLayoutBinding* pBindings /// Array of descriptor set layout bindings
Jesse Halld27f6aa2015-08-15 17:58:48 -07003565}
3566
Jesse Hall65ab5522015-11-30 00:07:16 -08003567class VkDescriptorPoolSize {
Jesse Halld27f6aa2015-08-15 17:58:48 -07003568 VkDescriptorType type
Jesse Hall03b6fe12015-11-24 12:44:21 -08003569 u32 descriptorCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07003570}
3571
3572class VkDescriptorPoolCreateInfo {
3573 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO
3574 const void* pNext /// Pointer to next structure
Jesse Hallfbf97b02015-11-20 14:17:03 -08003575 VkDescriptorPoolCreateFlags flags
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003576 u32 maxSets
Jesse Hall65ab5522015-11-30 00:07:16 -08003577 u32 poolSizeCount
3578 const VkDescriptorPoolSize* pPoolSizes
Jesse Halld27f6aa2015-08-15 17:58:48 -07003579}
3580
Jesse Hall3fbc8562015-11-29 22:10:52 -08003581class VkDescriptorSetAllocateInfo {
Jesse Hallf4ab2b12015-11-30 16:04:55 -08003582 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO
Jesse Hallfbf97b02015-11-20 14:17:03 -08003583 const void* pNext /// Pointer to next structure
3584 VkDescriptorPool descriptorPool
Jesse Hall03b6fe12015-11-24 12:44:21 -08003585 u32 setCount
Jesse Hallfbf97b02015-11-20 14:17:03 -08003586 const VkDescriptorSetLayout* pSetLayouts
3587}
3588
Jesse Halld27f6aa2015-08-15 17:58:48 -07003589class VkSpecializationMapEntry {
Jesse Hall65ab5522015-11-30 00:07:16 -08003590 u32 constantID /// The SpecConstant ID specified in the BIL
Jesse Halld27f6aa2015-08-15 17:58:48 -07003591 u32 offset /// Offset of the value in the data block
Jesse Hallb00daad2015-11-29 19:46:20 -08003592 platform.size_t size /// Size in bytes of the SpecConstant
Jesse Halld27f6aa2015-08-15 17:58:48 -07003593}
3594
3595class VkSpecializationInfo {
3596 u32 mapEntryCount /// Number of entries in the map
Jesse Hallb00daad2015-11-29 19:46:20 -08003597 const VkSpecializationMapEntry* pMapEntries /// Array of map entries
Jesse Halld27f6aa2015-08-15 17:58:48 -07003598 platform.size_t dataSize /// Size in bytes of pData
3599 const void* pData /// Pointer to SpecConstant data
3600}
3601
3602class VkPipelineShaderStageCreateInfo {
3603 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO
3604 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003605 VkPipelineShaderStageCreateFlags flags
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08003606 VkShaderStageFlagBits stage
3607 VkShaderModule module
3608 const char* pName
Jesse Halld27f6aa2015-08-15 17:58:48 -07003609 const VkSpecializationInfo* pSpecializationInfo
3610}
3611
3612class VkComputePipelineCreateInfo {
3613 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO
3614 const void* pNext /// Pointer to next structure
Jesse Halld27f6aa2015-08-15 17:58:48 -07003615 VkPipelineCreateFlags flags /// Pipeline creation flags
Jesse Halla6429252015-11-29 18:59:42 -08003616 VkPipelineShaderStageCreateInfo stage
Jesse Halld27f6aa2015-08-15 17:58:48 -07003617 VkPipelineLayout layout /// Interface layout of the pipeline
3618 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
3619 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
3620}
3621
3622class VkVertexInputBindingDescription {
Jesse Hallb00daad2015-11-29 19:46:20 -08003623 u32 binding /// Vertex buffer binding id
3624 u32 stride /// Distance between vertices in bytes (0 = no advancement)
Jesse Hall65ab5522015-11-30 00:07:16 -08003625 VkVertexInputRate inputRate /// Rate at which binding is incremented
Jesse Halld27f6aa2015-08-15 17:58:48 -07003626}
3627
3628class VkVertexInputAttributeDescription {
Jesse Hallb00daad2015-11-29 19:46:20 -08003629 u32 location /// location of the shader vertex attrib
3630 u32 binding /// Vertex buffer binding id
3631 VkFormat format /// format of source data
3632 u32 offset /// Offset of first element in bytes from base of vertex
Jesse Halld27f6aa2015-08-15 17:58:48 -07003633}
3634
3635class VkPipelineVertexInputStateCreateInfo {
Jesse Hall03b6fe12015-11-24 12:44:21 -08003636 VkStructureType sType /// Should be VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO
3637 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003638 VkPipelineVertexInputStateCreateFlags flags
Jesse Hall03b6fe12015-11-24 12:44:21 -08003639 u32 vertexBindingDescriptionCount /// number of bindings
Jesse Halld27f6aa2015-08-15 17:58:48 -07003640 const VkVertexInputBindingDescription* pVertexBindingDescriptions
Jesse Hall03b6fe12015-11-24 12:44:21 -08003641 u32 vertexAttributeDescriptionCount /// number of attributes
Jesse Halld27f6aa2015-08-15 17:58:48 -07003642 const VkVertexInputAttributeDescription* pVertexAttributeDescriptions
3643}
3644
3645class VkPipelineInputAssemblyStateCreateInfo {
3646 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO
3647 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003648 VkPipelineInputAssemblyStateCreateFlags flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07003649 VkPrimitiveTopology topology
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003650 VkBool32 primitiveRestartEnable
Jesse Halld27f6aa2015-08-15 17:58:48 -07003651}
3652
3653class VkPipelineTessellationStateCreateInfo {
3654 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO
3655 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003656 VkPipelineTessellationStateCreateFlags flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07003657 u32 patchControlPoints
3658}
3659
3660class VkPipelineViewportStateCreateInfo {
3661 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO
3662 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003663 VkPipelineViewportStateCreateFlags flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07003664 u32 viewportCount
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003665 const VkViewport* pViewports
3666 u32 scissorCount
3667 const VkRect2D* pScissors
Jesse Halld27f6aa2015-08-15 17:58:48 -07003668}
3669
Jesse Hall3fbc8562015-11-29 22:10:52 -08003670class VkPipelineRasterizationStateCreateInfo {
Jesse Hall65ab5522015-11-30 00:07:16 -08003671 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO
Jesse Halld27f6aa2015-08-15 17:58:48 -07003672 const void* pNext /// Pointer to next structure
Jesse Hall3fbc8562015-11-29 22:10:52 -08003673 VkPipelineRasterizationStateCreateFlags flags
Jesse Hallae38f732015-11-19 21:32:50 -08003674 VkBool32 depthClampEnable
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003675 VkBool32 rasterizerDiscardEnable
Jesse Hall65ab5522015-11-30 00:07:16 -08003676 VkPolygonMode polygonMode /// optional (GL45)
Jesse Hallc7467b72015-11-29 21:05:26 -08003677 VkCullModeFlags cullMode
Jesse Halld27f6aa2015-08-15 17:58:48 -07003678 VkFrontFace frontFace
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003679 VkBool32 depthBiasEnable
Jesse Halla9bb62b2015-11-21 19:31:56 -08003680 f32 depthBiasConstantFactor
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003681 f32 depthBiasClamp
Jesse Halla9bb62b2015-11-21 19:31:56 -08003682 f32 depthBiasSlopeFactor
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003683 f32 lineWidth
Jesse Halld27f6aa2015-08-15 17:58:48 -07003684}
3685
3686class VkPipelineMultisampleStateCreateInfo {
3687 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO
3688 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003689 VkPipelineMultisampleStateCreateFlags flags
Jesse Hall091ed9e2015-11-30 00:55:29 -08003690 VkSampleCountFlagBits rasterizationSamples /// Number of samples used for rasterization
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003691 VkBool32 sampleShadingEnable /// optional (GL45)
Jesse Halld27f6aa2015-08-15 17:58:48 -07003692 f32 minSampleShading /// optional (GL45)
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003693 const VkSampleMask* pSampleMask
Jesse Hallacfa5342015-11-19 21:51:33 -08003694 VkBool32 alphaToCoverageEnable
3695 VkBool32 alphaToOneEnable
Jesse Halld27f6aa2015-08-15 17:58:48 -07003696}
3697
3698class VkPipelineColorBlendAttachmentState {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003699 VkBool32 blendEnable
Jesse Hall65ab5522015-11-30 00:07:16 -08003700 VkBlendFactor srcColorBlendFactor
3701 VkBlendFactor dstColorBlendFactor
3702 VkBlendOp colorBlendOp
3703 VkBlendFactor srcAlphaBlendFactor
3704 VkBlendFactor dstAlphaBlendFactor
3705 VkBlendOp alphaBlendOp
3706 VkColorComponentFlags colorWriteMask
Jesse Halld27f6aa2015-08-15 17:58:48 -07003707}
3708
3709class VkPipelineColorBlendStateCreateInfo {
3710 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO
3711 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003712 VkPipelineColorBlendStateCreateFlags flags
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003713 VkBool32 logicOpEnable
Jesse Halld27f6aa2015-08-15 17:58:48 -07003714 VkLogicOp logicOp
3715 u32 attachmentCount /// # of pAttachments
3716 const VkPipelineColorBlendAttachmentState* pAttachments
Jesse Hallb00daad2015-11-29 19:46:20 -08003717 f32[4] blendConstants
Jesse Halld27f6aa2015-08-15 17:58:48 -07003718}
3719
3720class VkStencilOpState {
Jesse Hall65ab5522015-11-30 00:07:16 -08003721 VkStencilOp failOp
3722 VkStencilOp passOp
3723 VkStencilOp depthFailOp
3724 VkCompareOp compareOp
3725 u32 compareMask
3726 u32 writeMask
3727 u32 reference
Jesse Halld27f6aa2015-08-15 17:58:48 -07003728}
3729
3730class VkPipelineDepthStencilStateCreateInfo {
3731 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO
3732 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003733 VkPipelineDepthStencilStateCreateFlags flags
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003734 VkBool32 depthTestEnable
3735 VkBool32 depthWriteEnable
Jesse Halld27f6aa2015-08-15 17:58:48 -07003736 VkCompareOp depthCompareOp
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003737 VkBool32 depthBoundsTestEnable /// optional (depth_bounds_test)
3738 VkBool32 stencilTestEnable
Jesse Halld27f6aa2015-08-15 17:58:48 -07003739 VkStencilOpState front
3740 VkStencilOpState back
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003741 f32 minDepthBounds
3742 f32 maxDepthBounds
3743}
3744
3745class VkPipelineDynamicStateCreateInfo {
3746 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO
3747 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003748 VkPipelineDynamicStateCreateFlags flags
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003749 u32 dynamicStateCount
3750 const VkDynamicState* pDynamicStates
Jesse Halld27f6aa2015-08-15 17:58:48 -07003751}
3752
3753class VkGraphicsPipelineCreateInfo {
Jesse Halla6429252015-11-29 18:59:42 -08003754 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO
3755 const void* pNext /// Pointer to next structure
3756 VkPipelineCreateFlags flags /// Pipeline creation flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07003757 u32 stageCount
Jesse Halla6429252015-11-29 18:59:42 -08003758 const VkPipelineShaderStageCreateInfo* pStages /// One entry for each active shader stage
Jesse Halld27f6aa2015-08-15 17:58:48 -07003759 const VkPipelineVertexInputStateCreateInfo* pVertexInputState
3760 const VkPipelineInputAssemblyStateCreateInfo* pInputAssemblyState
3761 const VkPipelineTessellationStateCreateInfo* pTessellationState
3762 const VkPipelineViewportStateCreateInfo* pViewportState
Jesse Hall3fbc8562015-11-29 22:10:52 -08003763 const VkPipelineRasterizationStateCreateInfo* pRasterizationState
Jesse Halld27f6aa2015-08-15 17:58:48 -07003764 const VkPipelineMultisampleStateCreateInfo* pMultisampleState
3765 const VkPipelineDepthStencilStateCreateInfo* pDepthStencilState
3766 const VkPipelineColorBlendStateCreateInfo* pColorBlendState
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003767 const VkPipelineDynamicStateCreateInfo* pDynamicState
Jesse Halla6429252015-11-29 18:59:42 -08003768 VkPipelineLayout layout /// Interface layout of the pipeline
Jesse Halld27f6aa2015-08-15 17:58:48 -07003769 VkRenderPass renderPass
3770 u32 subpass
Jesse Halla6429252015-11-29 18:59:42 -08003771 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
3772 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 -07003773}
3774
3775class VkPipelineCacheCreateInfo {
Jesse Hallb00daad2015-11-29 19:46:20 -08003776 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO
3777 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003778 VkPipelineCacheCreateFlags flags
Jesse Hallb00daad2015-11-29 19:46:20 -08003779 platform.size_t initialDataSize /// Size of initial data to populate cache, in bytes
3780 const void* pInitialData /// Initial data to populate cache
Jesse Halld27f6aa2015-08-15 17:58:48 -07003781}
3782
3783class VkPushConstantRange {
3784 VkShaderStageFlags stageFlags /// Which stages use the range
Jesse Hall03b6fe12015-11-24 12:44:21 -08003785 u32 offset /// Start of the range, in bytes
3786 u32 size /// Length of the range, in bytes
Jesse Halld27f6aa2015-08-15 17:58:48 -07003787}
3788
3789class VkPipelineLayoutCreateInfo {
3790 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO
3791 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003792 VkPipelineLayoutCreateFlags flags
Jesse Hall3dd678a2016-01-08 21:52:01 -08003793 u32 descriptorSetCount /// Number of descriptor sets interfaced by the pipeline
Jesse Halld27f6aa2015-08-15 17:58:48 -07003794 const VkDescriptorSetLayout* pSetLayouts /// Array of <setCount> number of descriptor set layout objects defining the layout of the
3795 u32 pushConstantRangeCount /// Number of push-constant ranges used by the pipeline
3796 const VkPushConstantRange* pPushConstantRanges /// Array of pushConstantRangeCount number of ranges used by various shader stages
3797}
3798
3799class VkSamplerCreateInfo {
3800 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO
3801 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003802 VkSamplerCreateFlags flags
Jesse Hall23ff73f2015-11-29 14:36:39 -08003803 VkFilter magFilter /// Filter mode for magnification
3804 VkFilter minFilter /// Filter mode for minifiation
3805 VkSamplerMipmapMode mipmapMode /// Mipmap selection mode
3806 VkSamplerAddressMode addressModeU
3807 VkSamplerAddressMode addressModeV
3808 VkSamplerAddressMode addressModeW
Jesse Halld27f6aa2015-08-15 17:58:48 -07003809 f32 mipLodBias
Jesse Hallf9fa9a52016-01-08 16:08:51 -08003810 VkBool32 anisotropyEnable
Jesse Halld27f6aa2015-08-15 17:58:48 -07003811 f32 maxAnisotropy
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003812 VkBool32 compareEnable
Jesse Halld27f6aa2015-08-15 17:58:48 -07003813 VkCompareOp compareOp
3814 f32 minLod
3815 f32 maxLod
3816 VkBorderColor borderColor
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003817 VkBool32 unnormalizedCoordinates
Jesse Halld27f6aa2015-08-15 17:58:48 -07003818}
3819
Jesse Hall3fbc8562015-11-29 22:10:52 -08003820class VkCommandPoolCreateInfo {
3821 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO
Jesse Halld27f6aa2015-08-15 17:58:48 -07003822 const void* pNext /// Pointer to next structure
Jesse Hall3fbc8562015-11-29 22:10:52 -08003823 VkCommandPoolCreateFlags flags /// Command pool creation flags
Jesse Halla6429252015-11-29 18:59:42 -08003824 u32 queueFamilyIndex
Jesse Halld27f6aa2015-08-15 17:58:48 -07003825}
3826
Jesse Hall3fbc8562015-11-29 22:10:52 -08003827class VkCommandBufferAllocateInfo {
Jesse Hallf4ab2b12015-11-30 16:04:55 -08003828 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO
Jesse Halld27f6aa2015-08-15 17:58:48 -07003829 const void* pNext /// Pointer to next structure
Jesse Hall3fbc8562015-11-29 22:10:52 -08003830 VkCommandPool commandPool
3831 VkCommandBufferLevel level
Jesse Hall3dd678a2016-01-08 21:52:01 -08003832 u32 commandBufferCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07003833}
3834
Jesse Hall3dd678a2016-01-08 21:52:01 -08003835class VkCommandBufferInheritanceInfo {
3836 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO
Jesse Halld27f6aa2015-08-15 17:58:48 -07003837 const void* pNext /// Pointer to next structure
Jesse Halld27f6aa2015-08-15 17:58:48 -07003838 VkRenderPass renderPass /// Render pass for secondary command buffers
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003839 u32 subpass
Jesse Halld27f6aa2015-08-15 17:58:48 -07003840 VkFramebuffer framebuffer /// Framebuffer for secondary command buffers
Jesse Hallf4ab2b12015-11-30 16:04:55 -08003841 VkBool32 occlusionQueryEnable
3842 VkQueryControlFlags queryFlags
3843 VkQueryPipelineStatisticFlags pipelineStatistics
Jesse Halld27f6aa2015-08-15 17:58:48 -07003844}
3845
Jesse Hall3dd678a2016-01-08 21:52:01 -08003846class VkCommandBufferBeginInfo {
3847 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO
3848 const void* pNext /// Pointer to next structure
3849 VkCommandBufferUsageFlags flags /// Command buffer usage flags
3850 const VkCommandBufferInheritanceInfo* pInheritanceInfo
3851}
3852
Jesse Halld27f6aa2015-08-15 17:58:48 -07003853class VkRenderPassBeginInfo {
3854 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO
3855 const void* pNext /// Pointer to next structure
3856 VkRenderPass renderPass
3857 VkFramebuffer framebuffer
3858 VkRect2D renderArea
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003859 u32 clearValueCount
3860 const VkClearValue* pClearValues
Jesse Halld27f6aa2015-08-15 17:58:48 -07003861}
3862
3863@union
3864/// Union allowing specification of floating point, integer, or unsigned integer color data. Actual value selected is based on image/attachment being cleared.
3865class VkClearColorValue {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003866 f32[4] float32
3867 s32[4] int32
3868 u32[4] uint32
Jesse Halld27f6aa2015-08-15 17:58:48 -07003869}
3870
3871class VkClearDepthStencilValue {
3872 f32 depth
3873 u32 stencil
3874}
3875
3876@union
3877/// Union allowing specification of color, depth, and stencil color values. Actual value selected is based on attachment being cleared.
3878class VkClearValue {
3879 VkClearColorValue color
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003880 VkClearDepthStencilValue depthStencil
Jesse Halld27f6aa2015-08-15 17:58:48 -07003881}
3882
Jesse Hallae38f732015-11-19 21:32:50 -08003883class VkClearAttachment {
3884 VkImageAspectFlags aspectMask
3885 u32 colorAttachment
3886 VkClearValue clearValue
3887}
3888
Jesse Halld27f6aa2015-08-15 17:58:48 -07003889class VkAttachmentDescription {
Jesse Halla6429252015-11-29 18:59:42 -08003890 VkAttachmentDescriptionFlags flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07003891 VkFormat format
Jesse Hall091ed9e2015-11-30 00:55:29 -08003892 VkSampleCountFlagBits samples
Jesse Halld27f6aa2015-08-15 17:58:48 -07003893 VkAttachmentLoadOp loadOp /// Load op for color or depth data
3894 VkAttachmentStoreOp storeOp /// Store op for color or depth data
3895 VkAttachmentLoadOp stencilLoadOp /// Load op for stencil data
3896 VkAttachmentStoreOp stencilStoreOp /// Store op for stencil data
3897 VkImageLayout initialLayout
3898 VkImageLayout finalLayout
3899}
3900
3901class VkAttachmentReference {
3902 u32 attachment
3903 VkImageLayout layout
3904}
3905
3906class VkSubpassDescription {
Jesse Halld27f6aa2015-08-15 17:58:48 -07003907 VkSubpassDescriptionFlags flags
Jesse Halla6429252015-11-29 18:59:42 -08003908 VkPipelineBindPoint pipelineBindPoint /// Must be VK_PIPELINE_BIND_POINT_GRAPHICS for now
Jesse Hall03b6fe12015-11-24 12:44:21 -08003909 u32 inputAttachmentCount
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003910 const VkAttachmentReference* pInputAttachments
Jesse Hall03b6fe12015-11-24 12:44:21 -08003911 u32 colorAttachmentCount
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003912 const VkAttachmentReference* pColorAttachments
3913 const VkAttachmentReference* pResolveAttachments
Jesse Hallc7467b72015-11-29 21:05:26 -08003914 const VkAttachmentReference* pDepthStencilAttachment
Jesse Hall03b6fe12015-11-24 12:44:21 -08003915 u32 preserveAttachmentCount
Jesse Hall3dd678a2016-01-08 21:52:01 -08003916 const u32* pPreserveAttachments
Jesse Halld27f6aa2015-08-15 17:58:48 -07003917}
3918
3919class VkSubpassDependency {
Jesse Halld27f6aa2015-08-15 17:58:48 -07003920 u32 srcSubpass
Jesse Hall3fbc8562015-11-29 22:10:52 -08003921 u32 dstSubpass
Jesse Halld27f6aa2015-08-15 17:58:48 -07003922 VkPipelineStageFlags srcStageMask
Jesse Hall3fbc8562015-11-29 22:10:52 -08003923 VkPipelineStageFlags dstStageMask
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08003924 VkAccessFlags srcAccessMask
3925 VkAccessFlags dstAccessMask
Jesse Halldc6d36c2015-11-29 19:12:15 -08003926 VkDependencyFlags dependencyFlags
Jesse Halld27f6aa2015-08-15 17:58:48 -07003927}
3928
3929class VkRenderPassCreateInfo {
3930 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO
3931 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003932 VkRenderPassCreateFlags flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07003933 u32 attachmentCount
3934 const VkAttachmentDescription* pAttachments
3935 u32 subpassCount
3936 const VkSubpassDescription* pSubpasses
3937 u32 dependencyCount
3938 const VkSubpassDependency* pDependencies
3939}
3940
3941class VkEventCreateInfo {
3942 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_EVENT_CREATE_INFO
3943 const void* pNext /// Pointer to next structure
3944 VkEventCreateFlags flags /// Event creation flags
3945}
3946
3947class VkFenceCreateInfo {
3948 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_FENCE_CREATE_INFO
3949 const void* pNext /// Pointer to next structure
3950 VkFenceCreateFlags flags /// Fence creation flags
3951}
3952
3953class VkPhysicalDeviceFeatures {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003954 VkBool32 robustBufferAccess /// out of bounds buffer accesses are well defined
3955 VkBool32 fullDrawIndexUint32 /// full 32-bit range of indices for indexed draw calls
3956 VkBool32 imageCubeArray /// image views which are arrays of cube maps
3957 VkBool32 independentBlend /// blending operations are controlled per-attachment
3958 VkBool32 geometryShader /// geometry stage
3959 VkBool32 tessellationShader /// tessellation control and evaluation stage
3960 VkBool32 sampleRateShading /// per-sample shading and interpolation
Jesse Hall3fbc8562015-11-29 22:10:52 -08003961 VkBool32 dualSrcBlend /// blend operations which take two sources
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003962 VkBool32 logicOp /// logic operations
3963 VkBool32 multiDrawIndirect /// multi draw indirect
Jesse Hall543a7ff2016-01-08 16:38:30 -08003964 VkBool32 drawIndirectFirstInstance
Jesse Hallae38f732015-11-19 21:32:50 -08003965 VkBool32 depthClamp /// depth clamping
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003966 VkBool32 depthBiasClamp /// depth bias clamping
3967 VkBool32 fillModeNonSolid /// point and wireframe fill modes
3968 VkBool32 depthBounds /// depth bounds test
3969 VkBool32 wideLines /// lines with width greater than 1
3970 VkBool32 largePoints /// points with size greater than 1
Jesse Hallfbf97b02015-11-20 14:17:03 -08003971 VkBool32 alphaToOne /// The fragment alpha channel can be forced to maximum representable alpha value
3972 VkBool32 multiViewport
3973 VkBool32 samplerAnisotropy
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003974 VkBool32 textureCompressionETC2 /// ETC texture compression formats
3975 VkBool32 textureCompressionASTC_LDR /// ASTC LDR texture compression formats
3976 VkBool32 textureCompressionBC /// BC1-7 texture compressed formats
Jesse Hall65ab5522015-11-30 00:07:16 -08003977 VkBool32 occlusionQueryPrecise
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003978 VkBool32 pipelineStatisticsQuery /// pipeline statistics query
Jesse Halldc6d36c2015-11-29 19:12:15 -08003979 VkBool32 vertexPipelineStoresAndAtomics
3980 VkBool32 fragmentStoresAndAtomics
3981 VkBool32 shaderTessellationAndGeometryPointSize
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003982 VkBool32 shaderImageGatherExtended /// texture gather with run-time values and independent offsets
3983 VkBool32 shaderStorageImageExtendedFormats /// the extended set of formats can be used for storage images
3984 VkBool32 shaderStorageImageMultisample /// multisample images can be used for storage images
Jesse Halld1af8122015-11-29 23:50:38 -08003985 VkBool32 shaderStorageImageReadWithoutFormat
3986 VkBool32 shaderStorageImageWriteWithoutFormat
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003987 VkBool32 shaderUniformBufferArrayDynamicIndexing /// arrays of uniform buffers can be accessed with dynamically uniform indices
3988 VkBool32 shaderSampledImageArrayDynamicIndexing /// arrays of sampled images can be accessed with dynamically uniform indices
3989 VkBool32 shaderStorageBufferArrayDynamicIndexing /// arrays of storage buffers can be accessed with dynamically uniform indices
3990 VkBool32 shaderStorageImageArrayDynamicIndexing /// arrays of storage images can be accessed with dynamically uniform indices
3991 VkBool32 shaderClipDistance /// clip distance in shaders
3992 VkBool32 shaderCullDistance /// cull distance in shaders
3993 VkBool32 shaderFloat64 /// 64-bit floats (doubles) in shaders
3994 VkBool32 shaderInt64 /// 64-bit integers in shaders
3995 VkBool32 shaderInt16 /// 16-bit integers in shaders
3996 VkBool32 shaderResourceResidency /// shader can use texture operations that return resource residency information (requires sparseNonResident support)
Jesse Hall65ab5522015-11-30 00:07:16 -08003997 VkBool32 shaderResourceMinLod /// shader can use texture operations that specify minimum resource LOD
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003998 VkBool32 sparseBinding /// Sparse resources support: Resource memory can be managed at opaque page level rather than object level
3999 VkBool32 sparseResidencyBuffer /// Sparse resources support: GPU can access partially resident buffers
4000 VkBool32 sparseResidencyImage2D /// Sparse resources support: GPU can access partially resident 2D (non-MSAA non-DepthStencil) images
4001 VkBool32 sparseResidencyImage3D /// Sparse resources support: GPU can access partially resident 3D images
4002 VkBool32 sparseResidency2Samples /// Sparse resources support: GPU can access partially resident MSAA 2D images with 2 samples
4003 VkBool32 sparseResidency4Samples /// Sparse resources support: GPU can access partially resident MSAA 2D images with 4 samples
4004 VkBool32 sparseResidency8Samples /// Sparse resources support: GPU can access partially resident MSAA 2D images with 8 samples
4005 VkBool32 sparseResidency16Samples /// Sparse resources support: GPU can access partially resident MSAA 2D images with 16 samples
4006 VkBool32 sparseResidencyAliased /// Sparse resources support: GPU can correctly access data aliased into multiple locations (opt-in)
Jesse Halld1af8122015-11-29 23:50:38 -08004007 VkBool32 variableMultisampleRate
Jesse Hallf9fa9a52016-01-08 16:08:51 -08004008 VkBool32 inheritedQueries
Jesse Halld27f6aa2015-08-15 17:58:48 -07004009}
4010
4011class VkPhysicalDeviceLimits {
4012 /// resource maximum sizes
4013 u32 maxImageDimension1D /// max 1D image dimension
4014 u32 maxImageDimension2D /// max 2D image dimension
4015 u32 maxImageDimension3D /// max 3D image dimension
4016 u32 maxImageDimensionCube /// max cubemap image dimension
4017 u32 maxImageArrayLayers /// max layers for image arrays
Jesse Hallb00daad2015-11-29 19:46:20 -08004018 u32 maxTexelBufferElements
Jesse Hallfbf97b02015-11-20 14:17:03 -08004019 u32 maxUniformBufferRange /// max uniform buffer size (bytes)
4020 u32 maxStorageBufferRange /// max storage buffer size (bytes)
Jesse Halld27f6aa2015-08-15 17:58:48 -07004021 u32 maxPushConstantsSize /// max size of the push constants pool (bytes)
4022 /// memory limits
4023 u32 maxMemoryAllocationCount /// max number of device memory allocations supported
Jesse Hall091ed9e2015-11-30 00:55:29 -08004024 u32 maxSamplerAllocationCount
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004025 VkDeviceSize bufferImageGranularity /// Granularity (in bytes) at which buffers and images can be bound to adjacent memory for simultaneous usage
4026 VkDeviceSize sparseAddressSpaceSize /// Total address space available for sparse allocations (bytes)
Jesse Halld27f6aa2015-08-15 17:58:48 -07004027 /// descriptor set limits
4028 u32 maxBoundDescriptorSets /// max number of descriptors sets that can be bound to a pipeline
Jesse Halld27f6aa2015-08-15 17:58:48 -07004029 u32 maxPerStageDescriptorSamplers /// max num of samplers allowed per-stage in a descriptor set
4030 u32 maxPerStageDescriptorUniformBuffers /// max num of uniform buffers allowed per-stage in a descriptor set
4031 u32 maxPerStageDescriptorStorageBuffers /// max num of storage buffers allowed per-stage in a descriptor set
4032 u32 maxPerStageDescriptorSampledImages /// max num of sampled images allowed per-stage in a descriptor set
4033 u32 maxPerStageDescriptorStorageImages /// max num of storage images allowed per-stage in a descriptor set
Jesse Halle1b12782015-11-30 11:27:32 -08004034 u32 maxPerStageDescriptorInputAttachments
Jesse Halldba27f72015-11-30 14:25:46 -08004035 u32 maxPerStageResources
Jesse Halld27f6aa2015-08-15 17:58:48 -07004036 u32 maxDescriptorSetSamplers /// max num of samplers allowed in all stages in a descriptor set
4037 u32 maxDescriptorSetUniformBuffers /// max num of uniform buffers allowed in all stages in a descriptor set
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004038 u32 maxDescriptorSetUniformBuffersDynamic /// max num of dynamic uniform buffers allowed in all stages in a descriptor set
Jesse Halld27f6aa2015-08-15 17:58:48 -07004039 u32 maxDescriptorSetStorageBuffers /// max num of storage buffers allowed in all stages in a descriptor set
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004040 u32 maxDescriptorSetStorageBuffersDynamic /// max num of dynamic storage buffers allowed in all stages in a descriptor set
Jesse Halld27f6aa2015-08-15 17:58:48 -07004041 u32 maxDescriptorSetSampledImages /// max num of sampled images allowed in all stages in a descriptor set
4042 u32 maxDescriptorSetStorageImages /// max num of storage images allowed in all stages in a descriptor set
Jesse Halle1b12782015-11-30 11:27:32 -08004043 u32 maxDescriptorSetInputAttachments
Jesse Halld27f6aa2015-08-15 17:58:48 -07004044 /// vertex stage limits
4045 u32 maxVertexInputAttributes /// max num of vertex input attribute slots
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004046 u32 maxVertexInputBindings /// max num of vertex input binding slots
Jesse Halld27f6aa2015-08-15 17:58:48 -07004047 u32 maxVertexInputAttributeOffset /// max vertex input attribute offset added to vertex buffer offset
4048 u32 maxVertexInputBindingStride /// max vertex input binding stride
4049 u32 maxVertexOutputComponents /// max num of output components written by vertex shader
4050 /// tessellation control stage limits
Jesse Hall3fbc8562015-11-29 22:10:52 -08004051 u32 maxTessellationGenerationLevel /// max level supported by tess primitive generator
Jesse Hallae38f732015-11-19 21:32:50 -08004052 u32 maxTessellationPatchSize /// max patch size (vertices)
4053 u32 maxTessellationControlPerVertexInputComponents /// max num of input components per-vertex in TCS
4054 u32 maxTessellationControlPerVertexOutputComponents /// max num of output components per-vertex in TCS
4055 u32 maxTessellationControlPerPatchOutputComponents /// max num of output components per-patch in TCS
4056 u32 maxTessellationControlTotalOutputComponents /// max total num of per-vertex and per-patch output components in TCS
4057 u32 maxTessellationEvaluationInputComponents /// max num of input components per vertex in TES
4058 u32 maxTessellationEvaluationOutputComponents /// max num of output components per vertex in TES
Jesse Halld27f6aa2015-08-15 17:58:48 -07004059 /// geometry stage limits
4060 u32 maxGeometryShaderInvocations /// max invocation count supported in geometry shader
4061 u32 maxGeometryInputComponents /// max num of input components read in geometry stage
4062 u32 maxGeometryOutputComponents /// max num of output components written in geometry stage
4063 u32 maxGeometryOutputVertices /// max num of vertices that can be emitted in geometry stage
4064 u32 maxGeometryTotalOutputComponents /// max total num of components (all vertices) written in geometry stage
4065 /// fragment stage limits
4066 u32 maxFragmentInputComponents /// max num of input compontents read in fragment stage
Jesse Hallfbf97b02015-11-20 14:17:03 -08004067 u32 maxFragmentOutputAttachments /// max num of output attachments written in fragment stage
Jesse Hall3fbc8562015-11-29 22:10:52 -08004068 u32 maxFragmentDualSrcAttachments /// max num of output attachments written when using dual source blending
Jesse Halld27f6aa2015-08-15 17:58:48 -07004069 u32 maxFragmentCombinedOutputResources /// max total num of storage buffers, storage images and output buffers
4070 /// compute stage limits
4071 u32 maxComputeSharedMemorySize /// max total storage size of work group local storage (bytes)
4072 u32[3] maxComputeWorkGroupCount /// max num of compute work groups that may be dispatched by a single command (x,y,z)
4073 u32 maxComputeWorkGroupInvocations /// max total compute invocations in a single local work group
4074 u32[3] maxComputeWorkGroupSize /// max local size of a compute work group (x,y,z)
4075
4076 u32 subPixelPrecisionBits /// num bits of subpixel precision in screen x and y
4077 u32 subTexelPrecisionBits /// num bits of subtexel precision
4078 u32 mipmapPrecisionBits /// num bits of mipmap precision
4079
4080 u32 maxDrawIndexedIndexValue /// max index value for indexed draw calls (for 32-bit indices)
Jesse Halldba27f72015-11-30 14:25:46 -08004081 u32 maxDrawIndirectCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07004082
4083 f32 maxSamplerLodBias /// max absolute sampler level of detail bias
4084 f32 maxSamplerAnisotropy /// max degree of sampler anisotropy
4085
4086 u32 maxViewports /// max number of active viewports
Jesse Halld27f6aa2015-08-15 17:58:48 -07004087 u32[2] maxViewportDimensions /// max viewport dimensions (x,y)
4088 f32[2] viewportBoundsRange /// viewport bounds range (min,max)
4089 u32 viewportSubPixelBits /// num bits of subpixel precision for viewport
4090
Jesse Halldc6d36c2015-11-29 19:12:15 -08004091 platform.size_t minMemoryMapAlignment /// min required alignment of pointers returned by MapMemory (bytes)
4092 VkDeviceSize minTexelBufferOffsetAlignment /// min required alignment for texel buffer offsets (bytes)
4093 VkDeviceSize minUniformBufferOffsetAlignment /// min required alignment for uniform buffer sizes and offsets (bytes)
4094 VkDeviceSize minStorageBufferOffsetAlignment /// min required alignment for storage buffer offsets (bytes)
Jesse Halld27f6aa2015-08-15 17:58:48 -07004095
Jesse Hallfbf97b02015-11-20 14:17:03 -08004096 s32 minTexelOffset /// min texel offset for OpTextureSampleOffset
Jesse Halld27f6aa2015-08-15 17:58:48 -07004097 u32 maxTexelOffset /// max texel offset for OpTextureSampleOffset
Jesse Hallfbf97b02015-11-20 14:17:03 -08004098 s32 minTexelGatherOffset /// min texel offset for OpTextureGatherOffset
Jesse Halld27f6aa2015-08-15 17:58:48 -07004099 u32 maxTexelGatherOffset /// max texel offset for OpTextureGatherOffset
4100 f32 minInterpolationOffset /// furthest negative offset for interpolateAtOffset
4101 f32 maxInterpolationOffset /// furthest positive offset for interpolateAtOffset
4102 u32 subPixelInterpolationOffsetBits /// num of subpixel bits for interpolateAtOffset
4103
4104 u32 maxFramebufferWidth /// max width for a framebuffer
4105 u32 maxFramebufferHeight /// max height for a framebuffer
4106 u32 maxFramebufferLayers /// max layer count for a layered framebuffer
Jesse Hall091ed9e2015-11-30 00:55:29 -08004107 VkSampleCountFlags framebufferColorSampleCounts
4108 VkSampleCountFlags framebufferDepthSampleCounts
4109 VkSampleCountFlags framebufferStencilSampleCounts
4110 VkSampleCountFlags framebufferNoAttachmentSampleCounts
Jesse Halld27f6aa2015-08-15 17:58:48 -07004111 u32 maxColorAttachments /// max num of framebuffer color attachments
4112
Jesse Hall091ed9e2015-11-30 00:55:29 -08004113 VkSampleCountFlags sampledImageColorSampleCounts
4114 VkSampleCountFlags sampledImageIntegerSampleCounts
4115 VkSampleCountFlags sampledImageDepthSampleCounts
4116 VkSampleCountFlags sampledImageStencilSampleCounts
4117 VkSampleCountFlags storageImageSampleCounts
Jesse Halld27f6aa2015-08-15 17:58:48 -07004118 u32 maxSampleMaskWords /// max num of sample mask words
Jesse Hallf9fa9a52016-01-08 16:08:51 -08004119 VkBool32 timestampComputeAndGraphics
Jesse Halld27f6aa2015-08-15 17:58:48 -07004120
Jesse Halla9bb62b2015-11-21 19:31:56 -08004121 f32 timestampPeriod
Jesse Halld27f6aa2015-08-15 17:58:48 -07004122
4123 u32 maxClipDistances /// max number of clip distances
4124 u32 maxCullDistances /// max number of cull distances
4125 u32 maxCombinedClipAndCullDistances /// max combined number of user clipping
4126
Jesse Hallfbf97b02015-11-20 14:17:03 -08004127 u32 discreteQueuePriorities
4128
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004129 f32[2] pointSizeRange /// range (min,max) of supported point sizes
4130 f32[2] lineWidthRange /// range (min,max) of supported line widths
Jesse Halld27f6aa2015-08-15 17:58:48 -07004131 f32 pointSizeGranularity /// granularity of supported point sizes
4132 f32 lineWidthGranularity /// granularity of supported line widths
Jesse Hall03b6fe12015-11-24 12:44:21 -08004133 VkBool32 strictLines
Jesse Hall091ed9e2015-11-30 00:55:29 -08004134 VkBool32 standardSampleLocations
Jesse Halla9bb62b2015-11-21 19:31:56 -08004135
Jesse Hall65ab5522015-11-30 00:07:16 -08004136 VkDeviceSize optimalBufferCopyOffsetAlignment
4137 VkDeviceSize optimalBufferCopyRowPitchAlignment
Jesse Halldba27f72015-11-30 14:25:46 -08004138 VkDeviceSize nonCoherentAtomSize
Jesse Halld27f6aa2015-08-15 17:58:48 -07004139}
4140
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004141class VkPhysicalDeviceSparseProperties {
4142 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 -08004143 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 -07004144 VkBool32 residencyStandard3DBlockShape /// Sparse resources support: GPU will access all 3D sparse resources using the standard block shapes (based on pixel format)
4145 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 -07004146 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
4147}
4148
Jesse Halld27f6aa2015-08-15 17:58:48 -07004149class VkSemaphoreCreateInfo {
4150 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO
4151 const void* pNext /// Pointer to next structure
4152 VkSemaphoreCreateFlags flags /// Semaphore creation flags
4153}
4154
4155class VkQueryPoolCreateInfo {
4156 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO
4157 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08004158 VkQueryPoolCreateFlags flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07004159 VkQueryType queryType
Jesse Hall3dd678a2016-01-08 21:52:01 -08004160 u32 queryCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07004161 VkQueryPipelineStatisticFlags pipelineStatistics /// Optional
4162}
4163
4164class VkFramebufferCreateInfo {
4165 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO
4166 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08004167 VkFramebufferCreateFlags flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07004168 VkRenderPass renderPass
4169 u32 attachmentCount
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004170 const VkImageView* pAttachments
Jesse Halld27f6aa2015-08-15 17:58:48 -07004171 u32 width
4172 u32 height
4173 u32 layers
4174}
4175
Jesse Hall3fbc8562015-11-29 22:10:52 -08004176class VkDrawIndirectCommand {
Jesse Halld27f6aa2015-08-15 17:58:48 -07004177 u32 vertexCount
4178 u32 instanceCount
4179 u32 firstVertex
4180 u32 firstInstance
4181}
4182
Jesse Hall3fbc8562015-11-29 22:10:52 -08004183class VkDrawIndexedIndirectCommand {
Jesse Halld27f6aa2015-08-15 17:58:48 -07004184 u32 indexCount
4185 u32 instanceCount
4186 u32 firstIndex
4187 s32 vertexOffset
4188 u32 firstInstance
4189}
4190
Jesse Hall3fbc8562015-11-29 22:10:52 -08004191class VkDispatchIndirectCommand {
Jesse Halld27f6aa2015-08-15 17:58:48 -07004192 u32 x
4193 u32 y
4194 u32 z
4195}
4196
Ian Elliott28bd2c32017-10-13 09:21:12 -06004197//@vulkan1_1 structures
Daniel Koch09f7bf92017-10-05 00:26:58 -04004198
4199class VkPhysicalDeviceSubgroupProperties {
4200 VkStructureType sType
4201 void* pNext
4202 u32 subgroupSize
4203 VkShaderStageFlags supportedStages
4204 VkSubgroupFeatureFlags supportedOperations
4205 VkBool32 quadOperationsInAllStages
4206}
4207
4208class VkBindBufferMemoryInfo {
4209 VkStructureType sType
4210 const void* pNext
4211 VkBuffer buffer
4212 VkDeviceMemory memory
4213 VkDeviceSize memoryOffset
4214}
4215
4216class VkBindImageMemoryInfo {
4217 VkStructureType sType
4218 const void* pNext
4219 VkImage image
4220 VkDeviceMemory memory
4221 VkDeviceSize memoryOffset
4222}
4223
4224class VkPhysicalDevice16BitStorageFeatures {
4225 VkStructureType sType
4226 void* pNext
4227 VkBool32 storageBuffer16BitAccess
4228 VkBool32 uniformAndStorageBuffer16BitAccess
4229 VkBool32 storagePushConstant16
4230 VkBool32 storageInputOutput16
4231}
4232
4233class VkMemoryDedicatedRequirements {
4234 VkStructureType sType
4235 void* pNext
4236 VkBool32 prefersDedicatedAllocation
4237 VkBool32 requiresDedicatedAllocation
4238}
4239
4240class VkMemoryDedicatedAllocateInfo {
4241 VkStructureType sType
4242 const void* pNext
4243 VkImage image
4244 VkBuffer buffer
4245}
4246
4247class VkMemoryAllocateFlagsInfo {
4248 VkStructureType sType
4249 const void* pNext
4250 VkMemoryAllocateFlags flags
4251 u32 deviceMask
4252}
4253
4254class VkDeviceGroupRenderPassBeginInfo {
4255 VkStructureType sType
4256 const void* pNext
4257 u32 deviceMask
4258 u32 deviceRenderAreaCount
4259 const VkRect2D* pDeviceRenderAreas
4260}
4261
4262class VkDeviceGroupCommandBufferBeginInfo {
4263 VkStructureType sType
4264 const void* pNext
4265 u32 deviceMask
4266}
4267
4268class VkDeviceGroupSubmitInfo {
4269 VkStructureType sType
4270 const void* pNext
4271 u32 waitSemaphoreCount
4272 const u32* pWaitSemaphoreDeviceIndices
4273 u32 commandBufferCount
4274 const u32* pCommandBufferDeviceMasks
4275 u32 signalSemaphoreCount
4276 const u32* pSignalSemaphoreDeviceIndices
4277}
4278
4279class VkDeviceGroupBindSparseInfo {
4280 VkStructureType sType
4281 const void* pNext
4282 u32 resourceDeviceIndex
4283 u32 memoryDeviceIndex
4284}
4285
4286class VkBindBufferMemoryDeviceGroupInfo {
4287 VkStructureType sType
4288 const void* pNext
4289 u32 deviceIndexCount
4290 const u32* pDeviceIndices
4291}
4292
4293class VkBindImageMemoryDeviceGroupInfo {
4294 VkStructureType sType
4295 const void* pNext
4296 u32 deviceIndexCount
4297 const u32* pDeviceIndices
Jesse Hall8c954d32018-01-17 22:06:20 -08004298 u32 splitInstanceBindRegionCount
4299 const VkRect2D* pSplitInstanceBindRegions
Daniel Koch09f7bf92017-10-05 00:26:58 -04004300}
4301
4302class VkPhysicalDeviceGroupProperties {
4303 VkStructureType sType
4304 void* pNext
4305 u32 physicalDeviceCount
4306 VkPhysicalDevice[VK_MAX_DEVICE_GROUP_SIZE] physicalDevices
4307 VkBool32 subsetAllocation
4308}
4309
4310class VkDeviceGroupDeviceCreateInfo {
4311 VkStructureType sType
4312 const void* pNext
4313 u32 physicalDeviceCount
4314 const VkPhysicalDevice* pPhysicalDevices
4315}
4316
4317class VkBufferMemoryRequirementsInfo2 {
4318 VkStructureType sType
4319 const void* pNext
4320 VkBuffer buffer
4321}
4322
4323class VkImageMemoryRequirementsInfo2 {
4324 VkStructureType sType
4325 const void* pNext
4326 VkImage image
4327}
4328
4329class VkImageSparseMemoryRequirementsInfo2 {
4330 VkStructureType sType
4331 const void* pNext
4332 VkImage image
4333}
4334
4335class VkMemoryRequirements2 {
4336 VkStructureType sType
4337 void* pNext
4338 VkMemoryRequirements memoryRequirements
4339}
4340
4341class VkSparseImageMemoryRequirements2 {
4342 VkStructureType sType
4343 void* pNext
4344 VkSparseImageMemoryRequirements memoryRequirements
4345}
4346
4347class VkPhysicalDeviceFeatures2 {
4348 VkStructureType sType
4349 void* pNext
4350 VkPhysicalDeviceFeatures features
4351}
4352
4353class VkPhysicalDeviceProperties2 {
4354 VkStructureType sType
4355 void* pNext
4356 VkPhysicalDeviceProperties properties
4357}
4358
4359class VkFormatProperties2 {
4360 VkStructureType sType
4361 void* pNext
4362 VkFormatProperties formatProperties
4363}
4364
4365class VkImageFormatProperties2 {
4366 VkStructureType sType
4367 void* pNext
4368 VkImageFormatProperties imageFormatProperties
4369}
4370
4371class VkPhysicalDeviceImageFormatInfo2 {
4372 VkStructureType sType
4373 const void* pNext
4374 VkFormat format
4375 VkImageType type
4376 VkImageTiling tiling
4377 VkImageUsageFlags usage
4378 VkImageCreateFlags flags
4379}
4380
4381class VkQueueFamilyProperties2 {
4382 VkStructureType sType
4383 void* pNext
4384 VkQueueFamilyProperties queueFamilyProperties
4385}
4386
4387class VkPhysicalDeviceMemoryProperties2 {
4388 VkStructureType sType
4389 void* pNext
4390 VkPhysicalDeviceMemoryProperties memoryProperties
4391}
4392
4393class VkSparseImageFormatProperties2 {
4394 VkStructureType sType
4395 void* pNext
4396 VkSparseImageFormatProperties properties
4397}
4398
4399class VkPhysicalDeviceSparseImageFormatInfo2 {
4400 VkStructureType sType
4401 const void* pNext
4402 VkFormat format
4403 VkImageType type
4404 VkSampleCountFlagBits samples
4405 VkImageUsageFlags usage
4406 VkImageTiling tiling
4407}
4408
4409class VkPhysicalDevicePointClippingProperties {
4410 VkStructureType sType
4411 void* pNext
4412 VkPointClippingBehavior pointClippingBehavior
4413}
4414
4415class VkInputAttachmentAspectReference {
4416 u32 subpass
4417 u32 inputAttachmentIndex
4418 VkImageAspectFlags aspectMask
4419}
4420
4421class VkRenderPassInputAttachmentAspectCreateInfo {
4422 VkStructureType sType
4423 const void* pNext
4424 u32 aspectReferenceCount
4425 const VkInputAttachmentAspectReference* pAspectReferences
4426}
4427
4428class VkImageViewUsageCreateInfo {
4429 VkStructureType sType
4430 const void* pNext
4431 VkImageUsageFlags usage
4432}
4433
4434class VkPipelineTessellationDomainOriginStateCreateInfo {
4435 VkStructureType sType
4436 const void* pNext
4437 VkTessellationDomainOrigin domainOrigin
4438}
4439
4440class VkRenderPassMultiviewCreateInfo {
4441 VkStructureType sType
4442 const void* pNext
4443 u32 subpassCount
4444 const u32* pViewMasks
4445 u32 dependencyCount
4446 const s32* pViewOffsets
4447 u32 correlationMaskCount
4448 const u32* pCorrelationMasks
4449}
4450
4451class VkPhysicalDeviceMultiviewFeatures {
4452 VkStructureType sType
4453 void* pNext
4454 VkBool32 multiview
4455 VkBool32 multiviewGeometryShader
4456 VkBool32 multiviewTessellationShader
4457}
4458
4459class VkPhysicalDeviceMultiviewProperties {
4460 VkStructureType sType
4461 void* pNext
4462 u32 maxMultiviewViewCount
4463 u32 maxMultiviewInstanceIndex
4464}
4465
4466class VkPhysicalDeviceVariablePointerFeatures {
4467 VkStructureType sType
4468 void* pNext
4469 VkBool32 variablePointersStorageBuffer
4470 VkBool32 variablePointers
4471}
4472
4473class VkPhysicalDeviceProtectedMemoryFeatures {
4474 VkStructureType sType
4475 void* pNext
4476 VkBool32 protectedMemory
4477}
4478
4479class VkPhysicalDeviceProtectedMemoryProperties {
4480 VkStructureType sType
4481 void* pNext
4482 VkBool32 protectedNoFault
4483}
4484
4485class VkDeviceQueueInfo2 {
4486 VkStructureType sType
4487 const void* pNext
4488 VkDeviceQueueCreateFlags flags
4489 u32 queueFamilyIndex
4490 u32 queueIndex
4491}
4492
4493class VkProtectedSubmitInfo {
4494 VkStructureType sType
4495 const void* pNext
4496 VkBool32 protectedSubmit
4497}
4498
4499class VkSamplerYcbcrConversionCreateInfo {
4500 VkStructureType sType
4501 const void* pNext
4502 VkFormat format
4503 VkSamplerYcbcrModelConversion ycbcrModel
4504 VkSamplerYcbcrRange ycbcrRange
4505 VkComponentMapping components
4506 VkChromaLocation xChromaOffset
4507 VkChromaLocation yChromaOffset
4508 VkFilter chromaFilter
4509 VkBool32 forceExplicitReconstruction
4510}
4511
4512class VkSamplerYcbcrConversionInfo {
4513 VkStructureType sType
4514 const void* pNext
4515 VkSamplerYcbcrConversion conversion
4516}
4517
4518class VkBindImagePlaneMemoryInfo {
4519 VkStructureType sType
4520 const void* pNext
4521 VkImageAspectFlagBits planeAspect
4522}
4523
4524class VkImagePlaneMemoryRequirementsInfo {
4525 VkStructureType sType
4526 const void* pNext
4527 VkImageAspectFlagBits planeAspect
4528}
4529
4530class VkPhysicalDeviceSamplerYcbcrConversionFeatures {
4531 VkStructureType sType
4532 void* pNext
4533 VkBool32 samplerYcbcrConversion
4534}
4535
4536class VkSamplerYcbcrConversionImageFormatProperties {
4537 VkStructureType sType
4538 void* pNext
4539 u32 combinedImageSamplerDescriptorCount
4540}
4541
4542class VkDescriptorUpdateTemplateEntry {
4543 u32 dstBinding
4544 u32 dstArrayElement
4545 u32 descriptorCount
4546 VkDescriptorType descriptorType
4547 platform.size_t offset
4548 platform.size_t stride
4549}
4550
4551class VkDescriptorUpdateTemplateCreateInfo {
4552 VkStructureType sType
4553 void* pNext
4554 VkDescriptorUpdateTemplateCreateFlags flags
4555 u32 descriptorUpdateEntryCount
4556 const VkDescriptorUpdateTemplateEntry* pDescriptorUpdateEntries
4557 VkDescriptorUpdateTemplateType templateType
4558 VkDescriptorSetLayout descriptorSetLayout
4559 VkPipelineBindPoint pipelineBindPoint
4560 VkPipelineLayout pipelineLayout
4561 u32 set
4562}
4563
4564class VkExternalMemoryProperties {
4565 VkExternalMemoryFeatureFlags externalMemoryFeatures
4566 VkExternalMemoryHandleTypeFlags exportFromImportedHandleTypes
4567 VkExternalMemoryHandleTypeFlags compatibleHandleTypes
4568}
4569
4570class VkPhysicalDeviceExternalImageFormatInfo {
4571 VkStructureType sType
4572 const void* pNext
4573 VkExternalMemoryHandleTypeFlagBits handleType
4574}
4575
4576class VkExternalImageFormatProperties {
4577 VkStructureType sType
4578 void* pNext
4579 VkExternalMemoryProperties externalMemoryProperties
4580}
4581
4582class VkPhysicalDeviceExternalBufferInfo {
4583 VkStructureType sType
4584 const void* pNext
4585 VkBufferCreateFlags flags
4586 VkBufferUsageFlags usage
4587 VkExternalMemoryHandleTypeFlagBits handleType
4588}
4589
4590class VkExternalBufferProperties {
4591 VkStructureType sType
4592 void* pNext
4593 VkExternalMemoryProperties externalMemoryProperties
4594}
4595
4596class VkPhysicalDeviceIDProperties {
4597 VkStructureType sType
4598 void* pNext
4599 u8[VK_UUID_SIZE] deviceUUID
4600 u8[VK_UUID_SIZE] driverUUID
4601 u8[VK_LUID_SIZE] deviceLUID
4602 u32 deviceNodeMask
4603 VkBool32 deviceLUIDValid
4604}
4605
4606class VkExternalMemoryImageCreateInfo {
4607 VkStructureType sType
4608 const void* pNext
4609 VkExternalMemoryHandleTypeFlags handleTypes
4610}
4611
4612class VkExternalMemoryBufferCreateInfo {
4613 VkStructureType sType
4614 const void* pNext
4615 VkExternalMemoryHandleTypeFlags handleTypes
4616}
4617
4618class VkExportMemoryAllocateInfo {
4619 VkStructureType sType
4620 const void* pNext
4621 VkExternalMemoryHandleTypeFlags handleTypes
4622}
4623
4624class VkPhysicalDeviceExternalFenceInfo {
4625 VkStructureType sType
4626 const void* pNext
4627 VkExternalFenceHandleTypeFlagBits handleType
4628}
4629
4630class VkExternalFenceProperties {
4631 VkStructureType sType
4632 void* pNext
4633 VkExternalFenceHandleTypeFlags exportFromImportedHandleTypes
4634 VkExternalFenceHandleTypeFlags compatibleHandleTypes
4635 VkExternalFenceFeatureFlags externalFenceFeatures
4636}
4637
4638class VkExportFenceCreateInfo {
4639 VkStructureType sType
4640 const void* pNext
4641 VkExternalFenceHandleTypeFlags handleTypes
4642}
4643
4644class VkExportSemaphoreCreateInfo {
4645 VkStructureType sType
4646 const void* pNext
4647 VkExternalSemaphoreHandleTypeFlags handleTypes
4648}
4649
4650class VkPhysicalDeviceExternalSemaphoreInfo {
4651 VkStructureType sType
4652 const void* pNext
4653 VkExternalSemaphoreHandleTypeFlagBits handleType
4654}
4655
4656class VkExternalSemaphoreProperties {
4657 VkStructureType sType
4658 void* pNext
4659 VkExternalSemaphoreHandleTypeFlags exportFromImportedHandleTypes
4660 VkExternalSemaphoreHandleTypeFlags compatibleHandleTypes
4661 VkExternalSemaphoreFeatureFlags externalSemaphoreFeatures
4662}
4663
4664class VkPhysicalDeviceMaintenance3Properties {
4665 VkStructureType sType
4666 void* pNext
4667 u32 maxPerSetDescriptors
4668 VkDeviceSize maxMemoryAllocationSize
4669}
4670
4671class VkDescriptorSetLayoutSupport {
4672 VkStructureType sType
4673 void* pNext
4674 VkBool32 supported
4675}
4676
4677class VkPhysicalDeviceShaderDrawParameterFeatures {
4678 VkStructureType sType
4679 void* pNext
4680 VkBool32 shaderDrawParameters
4681}
4682
4683
Jesse Hallad250842017-03-10 18:35:38 -08004684@extension("VK_KHR_surface") // 1
Jesse Hallb00daad2015-11-29 19:46:20 -08004685class VkSurfaceCapabilitiesKHR {
Jesse Hall1356b0d2015-11-23 17:24:58 -08004686 u32 minImageCount
4687 u32 maxImageCount
4688 VkExtent2D currentExtent
4689 VkExtent2D minImageExtent
4690 VkExtent2D maxImageExtent
Jesse Hallf4ab2b12015-11-30 16:04:55 -08004691 u32 maxImageArrayLayers
Jesse Hall1356b0d2015-11-23 17:24:58 -08004692 VkSurfaceTransformFlagsKHR supportedTransforms
Jesse Hallf4ab2b12015-11-30 16:04:55 -08004693 VkSurfaceTransformFlagBitsKHR currentTransform
Jesse Halla6429252015-11-29 18:59:42 -08004694 VkCompositeAlphaFlagsKHR supportedCompositeAlpha
Jesse Hall1356b0d2015-11-23 17:24:58 -08004695 VkImageUsageFlags supportedUsageFlags
Michael Lentine88594d72015-11-12 12:49:45 -08004696}
4697
Jesse Hallad250842017-03-10 18:35:38 -08004698@extension("VK_KHR_surface") // 1
Michael Lentine88594d72015-11-12 12:49:45 -08004699class VkSurfaceFormatKHR {
Jesse Hall1356b0d2015-11-23 17:24:58 -08004700 VkFormat format
4701 VkColorSpaceKHR colorSpace
Michael Lentine88594d72015-11-12 12:49:45 -08004702}
4703
Jesse Hallad250842017-03-10 18:35:38 -08004704@extension("VK_KHR_swapchain") // 2
Michael Lentine88594d72015-11-12 12:49:45 -08004705class VkSwapchainCreateInfoKHR {
Jesse Hall1356b0d2015-11-23 17:24:58 -08004706 VkStructureType sType
4707 const void* pNext
Jesse Hallf4ab2b12015-11-30 16:04:55 -08004708 VkSwapchainCreateFlagsKHR flags
Jesse Hall1356b0d2015-11-23 17:24:58 -08004709 VkSurfaceKHR surface
4710 u32 minImageCount
4711 VkFormat imageFormat
4712 VkColorSpaceKHR imageColorSpace
4713 VkExtent2D imageExtent
Jesse Hallf4ab2b12015-11-30 16:04:55 -08004714 u32 imageArrayLayers
4715 VkImageUsageFlags imageUsage
Jesse Hall1356b0d2015-11-23 17:24:58 -08004716 VkSharingMode sharingMode
Jesse Hall03b6fe12015-11-24 12:44:21 -08004717 u32 queueFamilyIndexCount
Jesse Hall1356b0d2015-11-23 17:24:58 -08004718 const u32* pQueueFamilyIndices
Jesse Hallf4ab2b12015-11-30 16:04:55 -08004719 VkSurfaceTransformFlagBitsKHR preTransform
4720 VkCompositeAlphaFlagBitsKHR compositeAlpha
Jesse Hall1356b0d2015-11-23 17:24:58 -08004721 VkPresentModeKHR presentMode
Jesse Hall1356b0d2015-11-23 17:24:58 -08004722 VkBool32 clipped
Jesse Hallf4ab2b12015-11-30 16:04:55 -08004723 VkSwapchainKHR oldSwapchain
Michael Lentine88594d72015-11-12 12:49:45 -08004724}
4725
Jesse Hallad250842017-03-10 18:35:38 -08004726@extension("VK_KHR_swapchain") // 2
Michael Lentine88594d72015-11-12 12:49:45 -08004727class VkPresentInfoKHR {
Jesse Hall1356b0d2015-11-23 17:24:58 -08004728 VkStructureType sType
4729 const void* pNext
Jesse Hallb00daad2015-11-29 19:46:20 -08004730 u32 waitSemaphoreCount
4731 const VkSemaphore* pWaitSemaphores
Jesse Hall1356b0d2015-11-23 17:24:58 -08004732 u32 swapchainCount
Jesse Hall03b6fe12015-11-24 12:44:21 -08004733 const VkSwapchainKHR* pSwapchains
Jesse Hallf4ab2b12015-11-30 16:04:55 -08004734 const u32* pImageIndices
Jesse Halle1b12782015-11-30 11:27:32 -08004735 VkResult* pResults
Michael Lentine88594d72015-11-12 12:49:45 -08004736}
4737
Ian Elliott28bd2c32017-10-13 09:21:12 -06004738@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04004739@extension("VK_KHR_swapchain") // 2
4740class VkImageSwapchainCreateInfoKHR {
4741 VkStructureType sType
4742 const void* pNext
4743 VkSwapchainKHR swapchain
4744}
4745
Ian Elliott28bd2c32017-10-13 09:21:12 -06004746@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04004747@extension("VK_KHR_swapchain") // 2
4748class VkBindImageMemorySwapchainInfoKHR {
4749 VkStructureType sType
4750 const void* pNext
4751 VkSwapchainKHR swapchain
4752 u32 imageIndex
4753}
4754
Ian Elliott28bd2c32017-10-13 09:21:12 -06004755@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04004756@extension("VK_KHR_swapchain") // 2
4757class VkAcquireNextImageInfoKHR {
4758 VkStructureType sType
4759 const void* pNext
4760 VkSwapchainKHR swapchain
4761 u64 timeout
4762 VkSemaphore semaphore
4763 VkFence fence
4764 u32 deviceMask
4765}
4766
Ian Elliott28bd2c32017-10-13 09:21:12 -06004767@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04004768@extension("VK_KHR_swapchain") // 2
4769class VkDeviceGroupPresentCapabilitiesKHR {
4770 VkStructureType sType
4771 const void* pNext
4772 u32[VK_MAX_DEVICE_GROUP_SIZE] presentMask
4773 VkDeviceGroupPresentModeFlagsKHR modes
4774}
4775
Ian Elliott28bd2c32017-10-13 09:21:12 -06004776@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04004777@extension("VK_KHR_swapchain") // 2
4778class VkDeviceGroupPresentInfoKHR {
4779 VkStructureType sType
4780 const void* pNext
4781 u32 swapchainCount
4782 const u32* pDeviceMasks
4783 VkDeviceGroupPresentModeFlagBitsKHR mode
4784}
4785
Ian Elliott28bd2c32017-10-13 09:21:12 -06004786@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04004787@extension("VK_KHR_swapchain") // 2
4788class VkDeviceGroupSwapchainCreateInfoKHR {
4789 VkStructureType sType
4790 const void* pNext
4791 VkDeviceGroupPresentModeFlagsKHR modes
4792}
4793
Jesse Hallad250842017-03-10 18:35:38 -08004794@extension("VK_KHR_display") // 3
Jesse Hall1356b0d2015-11-23 17:24:58 -08004795class VkDisplayPropertiesKHR {
4796 VkDisplayKHR display
4797 const char* displayName
4798 VkExtent2D physicalDimensions
4799 VkExtent2D physicalResolution
4800 VkSurfaceTransformFlagsKHR supportedTransforms
Jesse Hall1356b0d2015-11-23 17:24:58 -08004801 VkBool32 planeReorderPossible
Jesse Halla6429252015-11-29 18:59:42 -08004802 VkBool32 persistentContent
Michael Lentine88594d72015-11-12 12:49:45 -08004803}
4804
Jesse Hallad250842017-03-10 18:35:38 -08004805@extension("VK_KHR_display") // 3
Jesse Halla6429252015-11-29 18:59:42 -08004806class VkDisplayModeParametersKHR {
Jesse Hall1356b0d2015-11-23 17:24:58 -08004807 VkExtent2D visibleRegion
Jesse Halla6429252015-11-29 18:59:42 -08004808 u32 refreshRate
Michael Lentine88594d72015-11-12 12:49:45 -08004809}
Jesse Halld27f6aa2015-08-15 17:58:48 -07004810
Jesse Hallad250842017-03-10 18:35:38 -08004811@extension("VK_KHR_display") // 3
Jesse Hall1356b0d2015-11-23 17:24:58 -08004812class VkDisplayModePropertiesKHR {
4813 VkDisplayModeKHR displayMode
Jesse Halla6429252015-11-29 18:59:42 -08004814 VkDisplayModeParametersKHR parameters
Jesse Hall1356b0d2015-11-23 17:24:58 -08004815}
4816
Jesse Hallad250842017-03-10 18:35:38 -08004817@extension("VK_KHR_display") // 3
Jesse Hall1356b0d2015-11-23 17:24:58 -08004818class VkDisplayModeCreateInfoKHR {
4819 VkStructureType sType
4820 const void* pNext
Jesse Hall9ba8bc82015-11-30 16:22:16 -08004821 VkDisplayModeCreateFlagsKHR flags
Jesse Halla6429252015-11-29 18:59:42 -08004822 VkDisplayModeParametersKHR parameters
Jesse Hall1356b0d2015-11-23 17:24:58 -08004823}
4824
Jesse Hallad250842017-03-10 18:35:38 -08004825@extension("VK_KHR_display") // 3
Jesse Hall1356b0d2015-11-23 17:24:58 -08004826class VkDisplayPlanePropertiesKHR {
Jesse Halla6429252015-11-29 18:59:42 -08004827 VkDisplayKHR currentDisplay
4828 u32 currentStackIndex
4829}
4830
Jesse Hallad250842017-03-10 18:35:38 -08004831@extension("VK_KHR_display") // 3
Jesse Halla6429252015-11-29 18:59:42 -08004832class VkDisplayPlaneCapabilitiesKHR {
Jesse Hall1356b0d2015-11-23 17:24:58 -08004833 VkDisplayPlaneAlphaFlagsKHR supportedAlpha
4834 VkOffset2D minSrcPosition
4835 VkOffset2D maxSrcPosition
4836 VkExtent2D minSrcExtent
4837 VkExtent2D maxSrcExtent
4838 VkOffset2D minDstPosition
4839 VkOffset2D maxDstPosition
4840 VkExtent2D minDstExtent
4841 VkExtent2D maxDstExtent
4842}
4843
Jesse Hallad250842017-03-10 18:35:38 -08004844@extension("VK_KHR_display") // 3
Jesse Halla6429252015-11-29 18:59:42 -08004845class VkDisplaySurfaceCreateInfoKHR {
Jesse Hall1356b0d2015-11-23 17:24:58 -08004846 VkStructureType sType
4847 const void* pNext
Jesse Hallf4ab2b12015-11-30 16:04:55 -08004848 VkDisplaySurfaceCreateFlagsKHR flags
Jesse Hall1356b0d2015-11-23 17:24:58 -08004849 VkDisplayModeKHR displayMode
4850 u32 planeIndex
4851 u32 planeStackIndex
Jesse Hallf4ab2b12015-11-30 16:04:55 -08004852 VkSurfaceTransformFlagBitsKHR transform
Jesse Hall1356b0d2015-11-23 17:24:58 -08004853 f32 globalAlpha
Jesse Hallf4ab2b12015-11-30 16:04:55 -08004854 VkDisplayPlaneAlphaFlagBitsKHR alphaMode
4855 VkExtent2D imageExtent
Jesse Hall1356b0d2015-11-23 17:24:58 -08004856}
4857
Jesse Hallad250842017-03-10 18:35:38 -08004858@extension("VK_KHR_display_swapchain") // 4
Jesse Hall1356b0d2015-11-23 17:24:58 -08004859class VkDisplayPresentInfoKHR {
4860 VkStructureType sType
4861 const void* pNext
4862 VkRect2D srcRect
4863 VkRect2D dstRect
Jesse Halla6429252015-11-29 18:59:42 -08004864 VkBool32 persistent
Jesse Hall1356b0d2015-11-23 17:24:58 -08004865}
4866
Jesse Hallad250842017-03-10 18:35:38 -08004867@extension("VK_KHR_xlib_surface") // 5
Jesse Hallf9fa9a52016-01-08 16:08:51 -08004868class VkXlibSurfaceCreateInfoKHR {
4869 VkStructureType sType
4870 const void* pNext
4871 VkXlibSurfaceCreateFlagsKHR flags
4872 platform.Display* dpy
4873 platform.Window window
4874}
4875
Jesse Hallad250842017-03-10 18:35:38 -08004876@extension("VK_KHR_xcb_surface") // 6
Jesse Hallf9fa9a52016-01-08 16:08:51 -08004877class VkXcbSurfaceCreateInfoKHR {
4878 VkStructureType sType
4879 const void* pNext
4880 VkXcbSurfaceCreateFlagsKHR flags
4881 platform.xcb_connection_t* connection
4882 platform.xcb_window_t window
4883}
4884
Jesse Hallad250842017-03-10 18:35:38 -08004885@extension("VK_KHR_wayland_surface") // 7
Jesse Hallf9fa9a52016-01-08 16:08:51 -08004886class VkWaylandSurfaceCreateInfoKHR {
4887 VkStructureType sType
4888 const void* pNext
4889 VkWaylandSurfaceCreateFlagsKHR flags
4890 platform.wl_display* display
4891 platform.wl_surface* surface
4892}
4893
Jesse Hallad250842017-03-10 18:35:38 -08004894@extension("VK_KHR_mir_surface") // 8
Jesse Hallf9fa9a52016-01-08 16:08:51 -08004895class VkMirSurfaceCreateInfoKHR {
4896 VkStructureType sType
4897 const void* pNext
4898 VkMirSurfaceCreateFlagsKHR flags
4899 platform.MirConnection* connection
4900 platform.MirSurface* mirSurface
4901}
4902
Jesse Hallad250842017-03-10 18:35:38 -08004903@extension("VK_KHR_android_surface") // 9
Jesse Hallf9fa9a52016-01-08 16:08:51 -08004904class VkAndroidSurfaceCreateInfoKHR {
4905 VkStructureType sType
4906 const void* pNext
4907 VkAndroidSurfaceCreateFlagsKHR flags
4908 platform.ANativeWindow* window
4909}
4910
Jesse Hallad250842017-03-10 18:35:38 -08004911@extension("VK_KHR_win32_surface") // 10
Jesse Hallf9fa9a52016-01-08 16:08:51 -08004912class VkWin32SurfaceCreateInfoKHR {
4913 VkStructureType sType
4914 const void* pNext
4915 VkWin32SurfaceCreateFlagsKHR flags
4916 platform.HINSTANCE hinstance
4917 platform.HWND hwnd
4918}
4919
Jesse Hallad250842017-03-10 18:35:38 -08004920@extension("VK_ANDROID_native_buffer") // 11
Jesse Halld1abd742017-02-09 21:45:51 -08004921@internal class Gralloc1Usage {
4922 u64 consumer
4923 u64 producer
4924}
4925
Jesse Hallad250842017-03-10 18:35:38 -08004926@extension("VK_ANDROID_native_buffer") // 11
Chia-I Wub262ddc2016-03-22 07:38:20 +08004927class VkNativeBufferANDROID {
4928 VkStructureType sType
4929 const void* pNext
4930 platform.buffer_handle_t handle
Jesse Halld1abd742017-02-09 21:45:51 -08004931 s32 stride
4932 s32 format
4933 s32 usage
4934 Gralloc1Usage usage2
Chia-I Wub262ddc2016-03-22 07:38:20 +08004935}
4936
Jesse Hallad250842017-03-10 18:35:38 -08004937@extension("VK_ANDROID_native_buffer") // 11
Chris Forbes8e4438b2016-12-07 16:26:49 +13004938class VkSwapchainImageCreateInfoANDROID {
4939 VkStructureType sType
4940 const void* pNext
Chris Forbes134d9582017-01-12 14:26:37 +13004941 VkSwapchainImageUsageFlagsANDROID flags
Chris Forbes48853712017-01-12 14:09:33 +13004942}
Ian Elliott4c8bb2a2016-12-29 11:07:26 -07004943
Jesse Hallad250842017-03-10 18:35:38 -08004944@extension("VK_ANDROID_native_buffer") // 11
Chris Forbes1d4e5542017-02-15 19:38:50 +13004945class VkPhysicalDevicePresentationPropertiesANDROID {
4946 VkStructureType sType
4947 void* pNext
4948 VkBool32 sharedImage
4949}
4950
Jesse Hallad250842017-03-10 18:35:38 -08004951@extension("VK_EXT_debug_report") // 12
Jesse Hall715b86a2016-01-16 16:34:29 -08004952class VkDebugReportCallbackCreateInfoEXT {
4953 VkStructureType sType
4954 const void* pNext
4955 VkDebugReportFlagsEXT flags
4956 PFN_vkDebugReportCallbackEXT pfnCallback
4957 void* pUserData
4958}
4959
Jesse Hallad250842017-03-10 18:35:38 -08004960@extension("VK_AMD_rasterization_order") // 19
Jesse Hall26763382016-05-20 07:13:52 -07004961class VkPipelineRasterizationStateRasterizationOrderAMD {
4962 VkStructureType sType
4963 const void* pNext
4964 VkRasterizationOrderAMD rasterizationOrder
4965}
4966
Jesse Hallad250842017-03-10 18:35:38 -08004967@extension("VK_EXT_debug_marker") // 23
Jesse Hall26763382016-05-20 07:13:52 -07004968class VkDebugMarkerObjectNameInfoEXT {
4969 VkStructureType sType
4970 const void* pNext
4971 VkDebugReportObjectTypeEXT objectType
4972 u64 object
4973 const char* pObjectName
4974}
4975
Jesse Hallad250842017-03-10 18:35:38 -08004976@extension("VK_EXT_debug_marker") // 23
Jesse Hall26763382016-05-20 07:13:52 -07004977class VkDebugMarkerObjectTagInfoEXT {
4978 VkStructureType sType
4979 const void* pNext
4980 VkDebugReportObjectTypeEXT objectType
4981 u64 object
4982 u64 tagName
4983 platform.size_t tagSize
4984 const void* pTag
4985}
4986
Jesse Hallad250842017-03-10 18:35:38 -08004987@extension("VK_EXT_debug_marker") // 23
Jesse Hall26763382016-05-20 07:13:52 -07004988class VkDebugMarkerMarkerInfoEXT {
4989 VkStructureType sType
4990 const void* pNext
4991 const char* pMarkerName
4992 f32[4] color
4993}
4994
Jesse Hallad250842017-03-10 18:35:38 -08004995@extension("VK_NV_dedicated_allocation") // 27
Jesse Hall56d386a2016-07-26 15:20:40 -07004996class VkDedicatedAllocationImageCreateInfoNV {
4997 VkStructureType sType
4998 const void* pNext
4999 VkBool32 dedicatedAllocation
5000}
5001
Jesse Hallad250842017-03-10 18:35:38 -08005002@extension("VK_NV_dedicated_allocation") // 27
Jesse Hall56d386a2016-07-26 15:20:40 -07005003class VkDedicatedAllocationBufferCreateInfoNV {
5004 VkStructureType sType
5005 const void* pNext
5006 VkBool32 dedicatedAllocation
5007}
5008
Jesse Hallad250842017-03-10 18:35:38 -08005009@extension("VK_NV_dedicated_allocation") // 27
Jesse Hall56d386a2016-07-26 15:20:40 -07005010class VkDedicatedAllocationMemoryAllocateInfoNV {
5011 VkStructureType sType
5012 const void* pNext
5013 VkImage image
5014 VkBuffer buffer
5015}
5016
Jesse Hall7ba0ac72017-07-07 17:13:23 -07005017@extension("VK_AMD_texture_gather_bias_lod") // 42
5018class VkTextureLODGatherFormatPropertiesAMD {
5019 VkStructureType sType
5020 void* pNext
5021 VkBool32 supportsTextureGatherLODBiasAMD
5022}
5023
Jesse Hall8c954d32018-01-17 22:06:20 -08005024@extension("VK_AMD_shader_info") // 43
5025class VkShaderResourceUsageAMD {
5026 u32 numUsedVgprs
5027 u32 numUsedSgprs
5028 u32 ldsSizePerLocalWorkGroup
5029 platform.size_t ldsUsageSizeInBytes
5030 platform.size_t scratchMemUsageInBytes
5031}
5032
5033@extension("VK_AMD_shader_info") // 43
5034class VkShaderStatisticsInfoAMD {
5035 VkShaderStageFlags shaderStageMask
5036 VkShaderResourceUsageAMD resourceUsage
5037 u32 numPhysicalVgprs
5038 u32 numPhysicalSgprs
5039 u32 numAvailableVgprs
5040 u32 numAvailableSgprs
5041 u32[3] computeWorkGroupSize
5042}
5043
Daniel Koch09f7bf92017-10-05 00:26:58 -04005044@extension("VK_KHR_multiview") // 54
5045class VkRenderPassMultiviewCreateInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005046 VkStructureType sType
5047 const void* pNext
5048 u32 subpassCount
5049 const u32* pViewMasks
5050 u32 dependencyCount
5051 const s32* pViewOffsets
5052 u32 correlationMaskCount
5053 const u32* pCorrelationMasks
5054}
5055
Daniel Koch09f7bf92017-10-05 00:26:58 -04005056@extension("VK_KHR_multiview") // 54
5057class VkPhysicalDeviceMultiviewFeaturesKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005058 VkStructureType sType
5059 void* pNext
5060 VkBool32 multiview
5061 VkBool32 multiviewGeometryShader
5062 VkBool32 multiviewTessellationShader
5063}
5064
Daniel Koch09f7bf92017-10-05 00:26:58 -04005065@extension("VK_KHR_multiview") // 54
5066class VkPhysicalDeviceMultiviewPropertiesKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005067 VkStructureType sType
5068 void* pNext
5069 u32 maxMultiviewViewCount
5070 u32 maxMultiviewInstanceIndex
5071}
5072
5073@extension("VK_NV_external_memory_capabilities") // 56
Jesse Halleb02c472017-02-24 15:13:45 -08005074class VkExternalImageFormatPropertiesNV {
5075 VkImageFormatProperties imageFormatProperties
5076 VkExternalMemoryFeatureFlagsNV externalMemoryFeatures
5077 VkExternalMemoryHandleTypeFlagsNV exportFromImportedHandleTypes
5078 VkExternalMemoryHandleTypeFlagsNV compatibleHandleTypes
5079}
5080
Jesse Hallad250842017-03-10 18:35:38 -08005081@extension("VK_NV_external_memory") // 57
Jesse Halleb02c472017-02-24 15:13:45 -08005082class VkExternalMemoryImageCreateInfoNV {
5083 VkStructureType sType
5084 const void* pNext
5085 VkExternalMemoryHandleTypeFlagsNV handleTypes
5086}
5087
Jesse Hallad250842017-03-10 18:35:38 -08005088@extension("VK_NV_external_memory") // 57
Jesse Halleb02c472017-02-24 15:13:45 -08005089class VkExportMemoryAllocateInfoNV {
5090 VkStructureType sType
5091 const void* pNext
5092 VkExternalMemoryHandleTypeFlagsNV handleTypes
5093}
5094
Jesse Hallad250842017-03-10 18:35:38 -08005095@extension("VK_NV_external_memory_win32") // 58
Jesse Halleb02c472017-02-24 15:13:45 -08005096class VkImportMemoryWin32HandleInfoNV {
5097 VkStructureType sType
5098 const void* pNext
5099 VkExternalMemoryHandleTypeFlagsNV handleType
5100 platform.HANDLE handle
5101}
5102
Jesse Hallad250842017-03-10 18:35:38 -08005103@extension("VK_NV_external_memory_win32") // 58
Jesse Halleb02c472017-02-24 15:13:45 -08005104class VkExportMemoryWin32HandleInfoNV {
5105 VkStructureType sType
5106 const void* pNext
5107 const platform.SECURITY_ATTRIBUTES* pAttributes
5108 platform.DWORD dwAccess
5109}
5110
Jesse Hallad250842017-03-10 18:35:38 -08005111@extension("VK_NV_win32_keyed_mutex") // 59
Jesse Halleb02c472017-02-24 15:13:45 -08005112class VkWin32KeyedMutexAcquireReleaseInfoNV {
5113 VkStructureType sType
5114 const void* pNext
5115 u32 acquireCount
5116 const VkDeviceMemory* pAcquireSyncs
5117 const u64* pAcquireKeys
5118 const u32* pAcquireTimeoutMilliseconds
5119 u32 releaseCount
5120 const VkDeviceMemory* pReleaseSyncs
5121 const u64* pReleaseKeys
5122}
5123
Jesse Hallad250842017-03-10 18:35:38 -08005124@extension("VK_KHR_get_physical_device_properties2") // 60
Chris Forbes1194ede2016-12-30 16:29:25 +13005125class VkPhysicalDeviceFeatures2KHR {
5126 VkStructureType sType
5127 void* pNext
5128 VkPhysicalDeviceFeatures features
5129}
5130
Jesse Hallad250842017-03-10 18:35:38 -08005131@extension("VK_KHR_get_physical_device_properties2") // 60
Chris Forbes1194ede2016-12-30 16:29:25 +13005132class VkPhysicalDeviceProperties2KHR {
5133 VkStructureType sType
5134 void* pNext
5135 VkPhysicalDeviceProperties properties
5136}
5137
Jesse Hallad250842017-03-10 18:35:38 -08005138@extension("VK_KHR_get_physical_device_properties2") // 60
Chris Forbes1194ede2016-12-30 16:29:25 +13005139class VkFormatProperties2KHR {
5140 VkStructureType sType
5141 void* pNext
5142 VkFormatProperties formatProperties
5143}
5144
Jesse Hallad250842017-03-10 18:35:38 -08005145@extension("VK_KHR_get_physical_device_properties2") // 60
Chris Forbes1194ede2016-12-30 16:29:25 +13005146class VkImageFormatProperties2KHR {
5147 VkStructureType sType
5148 void* pNext
5149 VkImageFormatProperties imageFormatProperties
5150}
5151
Jesse Hallad250842017-03-10 18:35:38 -08005152@extension("VK_KHR_get_physical_device_properties2") // 60
Chris Forbes1194ede2016-12-30 16:29:25 +13005153class VkPhysicalDeviceImageFormatInfo2KHR {
5154 VkStructureType sType
5155 const void* pNext
5156 VkFormat format
5157 VkImageType type
5158 VkImageTiling tiling
5159 VkImageUsageFlags usage
5160 VkImageCreateFlags flags
5161}
5162
Jesse Hallad250842017-03-10 18:35:38 -08005163@extension("VK_KHR_get_physical_device_properties2") // 60
Chris Forbes1194ede2016-12-30 16:29:25 +13005164class VkQueueFamilyProperties2KHR {
5165 VkStructureType sType
5166 void* pNext
5167 VkQueueFamilyProperties queueFamilyProperties
5168}
5169
Jesse Hallad250842017-03-10 18:35:38 -08005170@extension("VK_KHR_get_physical_device_properties2") // 60
Chris Forbes1194ede2016-12-30 16:29:25 +13005171class VkPhysicalDeviceMemoryProperties2KHR {
5172 VkStructureType sType
5173 void* pNext
5174 VkPhysicalDeviceMemoryProperties memoryProperties
5175}
5176
Jesse Hallad250842017-03-10 18:35:38 -08005177@extension("VK_KHR_get_physical_device_properties2") // 60
Chris Forbes1194ede2016-12-30 16:29:25 +13005178class VkSparseImageFormatProperties2KHR {
5179 VkStructureType sType
5180 void* pNext
5181 VkSparseImageFormatProperties properties
5182}
5183
Jesse Hallad250842017-03-10 18:35:38 -08005184@extension("VK_KHR_get_physical_device_properties2") // 60
Chris Forbes1194ede2016-12-30 16:29:25 +13005185class VkPhysicalDeviceSparseImageFormatInfo2KHR {
5186 VkStructureType sType
5187 const void* pNext
5188 VkFormat format
5189 VkImageType type
5190 VkSampleCountFlagBits samples
5191 VkImageUsageFlags usage
5192 VkImageTiling tiling
5193}
5194
Daniel Koch09f7bf92017-10-05 00:26:58 -04005195@extension("VK_KHR_device_group") // 61
5196class VkMemoryAllocateFlagsInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005197 VkStructureType sType
5198 const void* pNext
Daniel Koch09f7bf92017-10-05 00:26:58 -04005199 VkMemoryAllocateFlagsKHR flags
Jesse Hallad250842017-03-10 18:35:38 -08005200 u32 deviceMask
5201}
5202
Daniel Koch09f7bf92017-10-05 00:26:58 -04005203@extension("VK_KHR_device_group") // 61
5204class VkBindBufferMemoryDeviceGroupInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005205 VkStructureType sType
5206 const void* pNext
Jesse Hallad250842017-03-10 18:35:38 -08005207 u32 deviceIndexCount
5208 const u32* pDeviceIndices
5209}
5210
Daniel Koch09f7bf92017-10-05 00:26:58 -04005211@extension("VK_KHR_device_group") // 61
5212class VkBindImageMemoryDeviceGroupInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005213 VkStructureType sType
5214 const void* pNext
Jesse Hallad250842017-03-10 18:35:38 -08005215 u32 deviceIndexCount
5216 const u32* pDeviceIndices
5217 u32 SFRRectCount
5218 const VkRect2D* pSFRRects
5219}
5220
Daniel Koch09f7bf92017-10-05 00:26:58 -04005221@extension("VK_KHR_device_group") // 61
5222class VkDeviceGroupRenderPassBeginInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005223 VkStructureType sType
5224 const void* pNext
5225 u32 deviceMask
5226 u32 deviceRenderAreaCount
5227 const VkRect2D* pDeviceRenderAreas
5228}
5229
Daniel Koch09f7bf92017-10-05 00:26:58 -04005230@extension("VK_KHR_device_group") // 61
5231class VkDeviceGroupCommandBufferBeginInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005232 VkStructureType sType
5233 const void* pNext
5234 u32 deviceMask
5235}
5236
Daniel Koch09f7bf92017-10-05 00:26:58 -04005237@extension("VK_KHR_device_group") // 61
5238class VkDeviceGroupSubmitInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005239 VkStructureType sType
5240 const void* pNext
5241 u32 waitSemaphoreCount
5242 const u32* pWaitSemaphoreDeviceIndices
5243 u32 commandBufferCount
5244 const u32* pCommandBufferDeviceMasks
5245 u32 signalSemaphoreCount
5246 const u32* pSignalSemaphoreDeviceIndices
5247}
5248
Daniel Koch09f7bf92017-10-05 00:26:58 -04005249@extension("VK_KHR_device_group") // 61
5250class VkDeviceGroupBindSparseInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005251 VkStructureType sType
5252 const void* pNext
5253 u32 resourceDeviceIndex
5254 u32 memoryDeviceIndex
5255}
5256
Jesse Hallad250842017-03-10 18:35:38 -08005257@extension("VK_EXT_validation_flags") // 62
Chris Forbes289cb792016-12-30 15:03:55 +13005258class VkValidationFlagsEXT {
5259 VkStructureType sType
5260 const void* pNext
5261 u32 disabledValidationCheckCount
5262 VkValidationCheckEXT* pDisabledValidationChecks
5263}
5264
Jesse Hallad250842017-03-10 18:35:38 -08005265@extension("VK_NN_vi_surface") // 63
Jesse Hall77ad05b2017-03-10 22:02:20 -08005266class VkViSurfaceCreateInfoNN {
5267 VkStructureType sType
5268 const void* pNext
5269 VkViSurfaceCreateFlagsNN flags
5270 void* window
5271}
5272
Daniel Koch09f7bf92017-10-05 00:26:58 -04005273@extension("VK_KHR_device_group_creation") // 71
5274class VkPhysicalDeviceGroupPropertiesKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005275 VkStructureType sType
Jesse Hallf5ad48b2017-03-20 13:09:19 -07005276 void* pNext
Jesse Hallad250842017-03-10 18:35:38 -08005277 u32 physicalDeviceCount
Daniel Koch09f7bf92017-10-05 00:26:58 -04005278 VkPhysicalDevice[VK_MAX_DEVICE_GROUP_SIZE] physicalDevices
Jesse Hallad250842017-03-10 18:35:38 -08005279 VkBool32 subsetAllocation
5280}
5281
Daniel Koch09f7bf92017-10-05 00:26:58 -04005282@extension("VK_KHR_device_group_creation") // 71
5283class VkDeviceGroupDeviceCreateInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005284 VkStructureType sType
5285 const void* pNext
5286 u32 physicalDeviceCount
5287 const VkPhysicalDevice* pPhysicalDevices
5288}
5289
Jesse Hall9492f992017-08-28 12:10:06 -07005290@extension("VK_KHR_external_memory_capabilities") // 72
5291class VkExternalMemoryPropertiesKHR {
5292 VkExternalMemoryFeatureFlagsKHR externalMemoryFeatures
5293 VkExternalMemoryHandleTypeFlagsKHR exportFromImportedHandleTypes
5294 VkExternalMemoryHandleTypeFlagsKHR compatibleHandleTypes
Jesse Hallad250842017-03-10 18:35:38 -08005295}
5296
Jesse Hall9492f992017-08-28 12:10:06 -07005297@extension("VK_KHR_external_memory_capabilities") // 72
5298class VkPhysicalDeviceExternalImageFormatInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005299 VkStructureType sType
5300 const void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005301 VkExternalMemoryHandleTypeFlagBitsKHR handleType
Jesse Hallad250842017-03-10 18:35:38 -08005302}
5303
Jesse Hall9492f992017-08-28 12:10:06 -07005304@extension("VK_KHR_external_memory_capabilities") // 72
5305class VkExternalImageFormatPropertiesKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005306 VkStructureType sType
5307 void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005308 VkExternalMemoryPropertiesKHR externalMemoryProperties
Jesse Hallad250842017-03-10 18:35:38 -08005309}
5310
Jesse Hall9492f992017-08-28 12:10:06 -07005311@extension("VK_KHR_external_memory_capabilities") // 72
5312class VkPhysicalDeviceExternalBufferInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005313 VkStructureType sType
5314 const void* pNext
5315 VkBufferCreateFlags flags
5316 VkBufferUsageFlags usage
Jesse Hall9492f992017-08-28 12:10:06 -07005317 VkExternalMemoryHandleTypeFlagBitsKHR handleType
Jesse Hallad250842017-03-10 18:35:38 -08005318}
5319
Jesse Hall9492f992017-08-28 12:10:06 -07005320@extension("VK_KHR_external_memory_capabilities") // 72
5321class VkExternalBufferPropertiesKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005322 VkStructureType sType
5323 void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005324 VkExternalMemoryPropertiesKHR externalMemoryProperties
Jesse Hallad250842017-03-10 18:35:38 -08005325}
5326
Jesse Hall9492f992017-08-28 12:10:06 -07005327@extension("VK_KHR_external_memory_capabilities") // 72
5328class VkPhysicalDeviceIDPropertiesKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005329 VkStructureType sType
5330 void* pNext
5331 u8[VK_UUID_SIZE] deviceUUID
5332 u8[VK_UUID_SIZE] driverUUID
Daniel Koch09f7bf92017-10-05 00:26:58 -04005333 u8[VK_LUID_SIZE] deviceLUID
Jesse Hall9492f992017-08-28 12:10:06 -07005334 u32 deviceNodeMask
Jesse Hallad250842017-03-10 18:35:38 -08005335 VkBool32 deviceLUIDValid
5336}
5337
Jesse Hall9492f992017-08-28 12:10:06 -07005338@extension("VK_KHR_external_memory") // 73
5339class VkExternalMemoryImageCreateInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005340 VkStructureType sType
5341 const void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005342 VkExternalMemoryHandleTypeFlagsKHR handleTypes
Jesse Hallad250842017-03-10 18:35:38 -08005343}
5344
Jesse Hall9492f992017-08-28 12:10:06 -07005345@extension("VK_KHR_external_memory") // 73
5346class VkExternalMemoryBufferCreateInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005347 VkStructureType sType
5348 const void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005349 VkExternalMemoryHandleTypeFlagsKHR handleTypes
Jesse Hallad250842017-03-10 18:35:38 -08005350}
5351
Jesse Hall9492f992017-08-28 12:10:06 -07005352@extension("VK_KHR_external_memory") // 73
5353class VkExportMemoryAllocateInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005354 VkStructureType sType
5355 const void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005356 VkExternalMemoryHandleTypeFlagsKHR handleTypes
Jesse Hallad250842017-03-10 18:35:38 -08005357}
5358
Jesse Hall9492f992017-08-28 12:10:06 -07005359@extension("VK_KHR_external_memory_win32") // 74
5360class VkImportMemoryWin32HandleInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005361 VkStructureType sType
5362 const void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005363 VkExternalMemoryHandleTypeFlagBitsKHR handleType
Jesse Hallad250842017-03-10 18:35:38 -08005364 platform.HANDLE handle
Jesse Hall9492f992017-08-28 12:10:06 -07005365 platform.LPCWSTR name
Jesse Hallad250842017-03-10 18:35:38 -08005366}
5367
Jesse Hall9492f992017-08-28 12:10:06 -07005368@extension("VK_KHR_external_memory_win32") // 74
5369class VkExportMemoryWin32HandleInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005370 VkStructureType sType
5371 const void* pNext
5372 const platform.SECURITY_ATTRIBUTES* pAttributes
5373 platform.DWORD dwAccess
5374 platform.LPCWSTR name
5375}
5376
Jesse Hall9492f992017-08-28 12:10:06 -07005377@extension("VK_KHR_external_memory_win32") // 74
5378class VkMemoryWin32HandlePropertiesKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005379 VkStructureType sType
5380 void* pNext
5381 u32 memoryTypeBits
5382}
5383
Jesse Hall9492f992017-08-28 12:10:06 -07005384@extension("VK_KHR_external_memory_win32") // 74
5385class VkMemoryGetWin32HandleInfoKHR {
5386 VkStructureType sType
5387 void* pNext
5388 VkDeviceMemory memory
5389 VkExternalMemoryHandleTypeFlagBitsKHR handleType
5390}
5391
5392@extension("VK_KHR_external_memory_fd") // 75
5393class VkImportMemoryFdInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005394 VkStructureType sType
5395 const void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005396 VkExternalMemoryHandleTypeFlagBitsKHR handleType
Jesse Hallad250842017-03-10 18:35:38 -08005397 int fd
5398}
5399
Jesse Hall9492f992017-08-28 12:10:06 -07005400@extension("VK_KHR_external_memory_fd") // 75
5401class VkMemoryFdPropertiesKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005402 VkStructureType sType
5403 void* pNext
5404 u32 memoryTypeBits
5405}
5406
Jesse Hall9492f992017-08-28 12:10:06 -07005407@extension("VK_KHR_external_memory_fd") // 75
5408class VkMemoryGetFdInfoKHR {
5409 VkStructureType sType
5410 void* pNext
5411 VkDeviceMemory memory
5412 VkExternalMemoryHandleTypeFlagBitsKHR handleType
5413}
5414
5415@extension("VK_KHR_win32_keyed_mutex") // 76
5416class VkWin32KeyedMutexAcquireReleaseInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005417 VkStructureType sType
5418 const void* pNext
5419 u32 acquireCount
5420 const VkDeviceMemory* pAcquireSyncs
5421 const u64* pAcquireKeys
5422 const u32* pAcquireTimeouts
5423 u32 releaseCount
5424 const VkDeviceMemory* pReleaseSyncs
5425 const u64* pReleaseKeys
5426}
5427
Jesse Hall9492f992017-08-28 12:10:06 -07005428@extension("VK_KHR_external_semaphore_capabilities") // 77
5429class VkPhysicalDeviceExternalSemaphoreInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005430 VkStructureType sType
5431 const void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005432 VkExternalSemaphoreHandleTypeFlagBitsKHR handleType
Jesse Hallad250842017-03-10 18:35:38 -08005433}
5434
Jesse Hall9492f992017-08-28 12:10:06 -07005435@extension("VK_KHR_external_semaphore_capabilities") // 77
5436class VkExternalSemaphorePropertiesKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005437 VkStructureType sType
5438 void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005439 VkExternalSemaphoreHandleTypeFlagsKHR exportFromImportedHandleTypes
5440 VkExternalSemaphoreHandleTypeFlagsKHR compatibleHandleTypes
5441 VkExternalSemaphoreFeatureFlagsKHR externalSemaphoreFeatures
Jesse Hallad250842017-03-10 18:35:38 -08005442}
5443
Jesse Hall9492f992017-08-28 12:10:06 -07005444@extension("VK_KHR_external_semaphore") // 78
5445class VkExportSemaphoreCreateInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005446 VkStructureType sType
5447 const void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005448 VkExternalSemaphoreHandleTypeFlagsKHR handleTypes
Jesse Hallad250842017-03-10 18:35:38 -08005449}
5450
Jesse Hall9492f992017-08-28 12:10:06 -07005451@extension("VK_KHR_external_semaphore_win32") // 79
5452class VkImportSemaphoreWin32HandleInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005453 VkStructureType sType
5454 const void* pNext
5455 VkSemaphore semaphore
Jesse Hall9492f992017-08-28 12:10:06 -07005456 VkSemaphoreImportFlagsKHR flags
5457 VkExternalSemaphoreHandleTypeFlagsKHR handleType
Jesse Hallad250842017-03-10 18:35:38 -08005458 platform.HANDLE handle
Jesse Hall9492f992017-08-28 12:10:06 -07005459 platform.LPCWSTR name
Jesse Hallad250842017-03-10 18:35:38 -08005460}
5461
Jesse Hall9492f992017-08-28 12:10:06 -07005462@extension("VK_KHR_external_semaphore_win32") // 79
5463class VkExportSemaphoreWin32HandleInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005464 VkStructureType sType
5465 const void* pNext
5466 const platform.SECURITY_ATTRIBUTES* pAttributes
5467 platform.DWORD dwAccess
5468 platform.LPCWSTR name
5469}
5470
Jesse Hall9492f992017-08-28 12:10:06 -07005471@extension("VK_KHR_external_semaphore_win32") // 79
5472class VkD3D12FenceSubmitInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005473 VkStructureType sType
5474 const void* pNext
5475 u32 waitSemaphoreValuesCount
5476 const u64* pWaitSemaphoreValues
5477 u32 signalSemaphoreValuesCount
5478 const u64* pSignalSemaphoreValues
5479}
5480
Jesse Hall9492f992017-08-28 12:10:06 -07005481@extension("VK_KHR_external_semaphore_win32") // 79
5482class VkSemaphoreGetWin32HandleInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005483 VkStructureType sType
5484 const void* pNext
5485 VkSemaphore semaphore
Jesse Hall9492f992017-08-28 12:10:06 -07005486 VkExternalSemaphoreHandleTypeFlagBitsKHR handleType
5487}
5488
5489@extension("VK_KHR_external_semaphore_fd") // 80
5490class VkImportSemaphoreFdInfoKHR {
5491 VkStructureType sType
5492 const void* pNext
5493 VkSemaphore semaphore
5494 VkSemaphoreImportFlagsKHR flags
5495 VkExternalSemaphoreHandleTypeFlagBitsKHR handleType
Jesse Hallad250842017-03-10 18:35:38 -08005496 s32 fd
5497}
5498
Jesse Hall9492f992017-08-28 12:10:06 -07005499@extension("VK_KHR_external_semaphore_fd") // 80
5500class VkSemaphoreGetFdInfoKHR {
5501 VkStructureType sType
5502 const void* pNext
5503 VkSemaphore semaphore
5504 VkExternalSemaphoreHandleTypeFlagBitsKHR handleType
5505}
5506
Jesse Hallad250842017-03-10 18:35:38 -08005507@extension("VK_KHR_push_descriptor") // 81
5508class VkPhysicalDevicePushDescriptorPropertiesKHR {
5509 VkStructureType sType
5510 void* pNext
5511 u32 maxPushDescriptors
5512}
5513
Jesse Hall9492f992017-08-28 12:10:06 -07005514@extension("VK_KHR_16bit_storage") // 84
5515class VkPhysicalDevice16BitStorageFeaturesKHR {
5516 VkStructureType sType
5517 void* pNext
5518 VkBool32 storageBuffer16BitAccess
5519 VkBool32 uniformAndStorageBuffer16BitAccess
5520 VkBool32 storagePushConstant16
5521 VkBool32 storageInputOutput16
5522}
5523
Jesse Hallad250842017-03-10 18:35:38 -08005524@extension("VK_KHR_incremental_present") // 85
5525class VkRectLayerKHR {
5526 VkOffset2D offset
5527 VkExtent2D extent
5528 u32 layer
5529}
5530
5531@extension("VK_KHR_incremental_present") // 85
5532class VkPresentRegionKHR {
5533 u32 rectangleCount
5534 const VkRectLayerKHR* pRectangles
5535}
5536
5537@extension("VK_KHR_incremental_present") // 85
5538class VkPresentRegionsKHR {
5539 VkStructureType sType
5540 const void* pNext
5541 u32 swapchainCount
5542 const VkPresentRegionKHR* pRegions
5543}
5544
5545@extension("VK_KHR_descriptor_update_template") // 86
5546class VkDescriptorUpdateTemplateEntryKHR {
5547 u32 dstBinding
5548 u32 dstArrayElement
5549 u32 descriptorCount
5550 VkDescriptorType descriptorType
5551 platform.size_t offset
5552 platform.size_t stride
5553}
5554
5555@extension("VK_KHR_descriptor_update_template") // 86
5556class VkDescriptorUpdateTemplateCreateInfoKHR {
5557 VkStructureType sType
5558 void* pNext
5559 VkDescriptorUpdateTemplateCreateFlagsKHR flags
5560 u32 descriptorUpdateEntryCount
5561 const VkDescriptorUpdateTemplateEntryKHR* pDescriptorUpdateEntries
5562 VkDescriptorUpdateTemplateTypeKHR templateType
5563 VkDescriptorSetLayout descriptorSetLayout
5564 VkPipelineBindPoint pipelineBindPoint
5565 VkPipelineLayout pipelineLayout
5566 u32 set
5567}
5568
5569@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13005570class VkDeviceGeneratedCommandsFeaturesNVX {
5571 VkStructureType sType
5572 const void* pNext
5573 VkBool32 computeBindingPointSupport
5574}
5575
Jesse Hallad250842017-03-10 18:35:38 -08005576@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13005577class VkDeviceGeneratedCommandsLimitsNVX {
5578 VkStructureType sType
5579 const void* pNext
5580 u32 maxIndirectCommandsLayoutTokenCount
5581 u32 maxObjectEntryCounts
5582 u32 minSequenceCountBufferOffsetAlignment
5583 u32 minSequenceIndexBufferOffsetAlignment
5584 u32 minCommandsTokenBufferOffsetAlignment
5585}
5586
Jesse Hallad250842017-03-10 18:35:38 -08005587@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13005588class VkIndirectCommandsTokenNVX {
5589 VkIndirectCommandsTokenTypeNVX tokenType
5590 VkBuffer buffer
5591 VkDeviceSize offset
5592}
5593
Jesse Hallad250842017-03-10 18:35:38 -08005594@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13005595class VkIndirectCommandsLayoutTokenNVX {
5596 VkIndirectCommandsTokenTypeNVX tokenType
5597 u32 bindingUnit
5598 u32 dynamicCount
5599 u32 divisor
5600}
5601
Jesse Hallad250842017-03-10 18:35:38 -08005602@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13005603class VkIndirectCommandsLayoutCreateInfoNVX {
5604 VkStructureType sType
5605 const void* pNext
5606 VkPipelineBindPoint pipelineBindPoint
5607 VkIndirectCommandsLayoutUsageFlagsNVX flags
5608 u32 tokenCount
5609 const VkIndirectCommandsLayoutTokenNVX* pTokens
5610}
5611
Jesse Hallad250842017-03-10 18:35:38 -08005612@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13005613class VkCmdProcessCommandsInfoNVX {
5614 VkStructureType sType
5615 const void* pNext
5616 VkObjectTableNVX objectTable
5617 VkIndirectCommandsLayoutNVX indirectCommandsLayout
5618 u32 indirectCommandsTokenCount
5619 const VkIndirectCommandsTokenNVX* pIndirectCommandsTokens
5620 u32 maxSequencesCount
5621 VkCommandBuffer targetCommandBuffer
5622 VkBuffer sequencesCountBuffer
5623 VkDeviceSize sequencesCountOffset
5624 VkBuffer sequencesIndexBuffer
5625 VkDeviceSize sequencesIndexOffset
5626}
5627
Jesse Hallad250842017-03-10 18:35:38 -08005628@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13005629class VkCmdReserveSpaceForCommandsInfoNVX {
5630 VkStructureType sType
5631 const void* pNext
5632 VkObjectTableNVX objectTable
5633 VkIndirectCommandsLayoutNVX indirectCommandsLayout
5634 u32 maxSequencesCount
5635}
5636
Jesse Hallad250842017-03-10 18:35:38 -08005637@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13005638class VkObjectTableCreateInfoNVX {
5639 VkStructureType sType
5640 const void* pNext
5641 u32 objectCount
5642 const VkObjectEntryTypeNVX* pObjectEntryTypes
5643 const u32* pObjectEntryCounts
5644 const VkObjectEntryUsageFlagsNVX* pObjectEntryUsageFlags
5645 u32 maxUniformBuffersPerDescriptor
5646 u32 maxStorageBuffersPerDescriptor
5647 u32 maxStorageImagesPerDescriptor
5648 u32 maxSampledImagesPerDescriptor
5649 u32 maxPipelineLayouts
5650}
5651
Jesse Hallad250842017-03-10 18:35:38 -08005652@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13005653class VkObjectTableEntryNVX {
5654 VkObjectEntryTypeNVX type
5655 VkObjectEntryUsageFlagsNVX flags
5656}
5657
Jesse Hallad250842017-03-10 18:35:38 -08005658@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13005659class VkObjectTablePipelineEntryNVX {
5660 VkObjectEntryTypeNVX type
5661 VkObjectEntryUsageFlagsNVX flags
5662 VkPipeline pipeline
5663}
5664
Jesse Hallad250842017-03-10 18:35:38 -08005665@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13005666class VkObjectTableDescriptorSetEntryNVX {
5667 VkObjectEntryTypeNVX type
5668 VkObjectEntryUsageFlagsNVX flags
5669 VkPipelineLayout pipelineLayout
5670 VkDescriptorSet descriptorSet
5671}
5672
Jesse Hallad250842017-03-10 18:35:38 -08005673@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13005674class VkObjectTableVertexBufferEntryNVX {
5675 VkObjectEntryTypeNVX type
5676 VkObjectEntryUsageFlagsNVX flags
5677 VkBuffer buffer
5678}
5679
Jesse Hallad250842017-03-10 18:35:38 -08005680@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13005681class VkObjectTableIndexBufferEntryNVX {
5682 VkObjectEntryTypeNVX type
5683 VkObjectEntryUsageFlagsNVX flags
5684 VkBuffer buffer
Jesse Hall77ad05b2017-03-10 22:02:20 -08005685 VkIndexType indexType
Chris Forbes289cb792016-12-30 15:03:55 +13005686}
5687
Jesse Hallad250842017-03-10 18:35:38 -08005688@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13005689class VkObjectTablePushConstantEntryNVX {
5690 VkObjectEntryTypeNVX type
5691 VkObjectEntryUsageFlagsNVX flags
5692 VkPipelineLayout pipelineLayout
5693 VkShaderStageFlags stageFlags
5694}
5695
Jesse Hallad250842017-03-10 18:35:38 -08005696@extension("VK_NV_clip_space_w_scaling") // 88
5697class VkViewportWScalingNV {
5698 f32 xcoeff
5699 f32 ycoeff
Jesse Hall889cd9a2017-02-25 22:12:23 -08005700}
5701
Jesse Hallad250842017-03-10 18:35:38 -08005702@extension("VK_NV_clip_space_w_scaling") // 88
5703class VkPipelineViewportWScalingStateCreateInfoNV {
Jesse Hall889cd9a2017-02-25 22:12:23 -08005704 VkStructureType sType
5705 const void* pNext
Jesse Hallad250842017-03-10 18:35:38 -08005706 VkBool32 viewportWScalingEnable
5707 u32 viewportCount
5708 const VkViewportWScalingNV* pViewportWScalings
Jesse Hall889cd9a2017-02-25 22:12:23 -08005709}
5710
Jesse Hallad250842017-03-10 18:35:38 -08005711@extension("VK_EXT_display_surface_counter") // 91
Jesse Hall77ad05b2017-03-10 22:02:20 -08005712class VkSurfaceCapabilities2EXT {
5713 VkStructureType sType
5714 void* pNext
5715 u32 minImageCount
5716 u32 maxImageCount
5717 VkExtent2D currentExtent
5718 VkExtent2D minImageExtent
5719 VkExtent2D maxImageExtent
5720 u32 maxImageArrayLayers
5721 VkSurfaceTransformFlagsKHR supportedTransforms
5722 VkSurfaceTransformFlagBitsKHR currentTransform
5723 VkCompositeAlphaFlagsKHR supportedCompositeAlpha
5724 VkImageUsageFlags supportedUsageFlags
5725 VkSurfaceCounterFlagsEXT supportedSurfaceCounters
5726}
5727
Jesse Hallad250842017-03-10 18:35:38 -08005728@extension("VK_EXT_display_control") // 92
Jesse Hall77ad05b2017-03-10 22:02:20 -08005729class VkDisplayPowerInfoEXT {
5730 VkStructureType sType
5731 const void* pNext
5732 VkDisplayPowerStateEXT powerState
5733}
5734
Jesse Hallad250842017-03-10 18:35:38 -08005735@extension("VK_EXT_display_control") // 92
Jesse Hall77ad05b2017-03-10 22:02:20 -08005736class VkDeviceEventInfoEXT {
5737 VkStructureType sType
5738 const void* pNext
5739 VkDeviceEventTypeEXT deviceEvent
5740}
5741
Jesse Hallad250842017-03-10 18:35:38 -08005742@extension("VK_EXT_display_control") // 92
Jesse Hall77ad05b2017-03-10 22:02:20 -08005743class VkDisplayEventInfoEXT {
5744 VkStructureType sType
5745 const void* pNext
5746 VkDisplayEventTypeEXT displayEvent
5747}
5748
Jesse Hallad250842017-03-10 18:35:38 -08005749@extension("VK_EXT_display_control") // 92
Jesse Hall77ad05b2017-03-10 22:02:20 -08005750class VkSwapchainCounterCreateInfoEXT {
5751 VkStructureType sType
5752 const void* pNext
5753 VkSurfaceCounterFlagsEXT surfaceCounters
5754}
5755
Jesse Hallad250842017-03-10 18:35:38 -08005756@extension("VK_GOOGLE_display_timing") // 93
5757class VkRefreshCycleDurationGOOGLE {
Jesse Hallfdc8ab32017-03-10 21:01:57 -08005758 u64 refreshDuration
Jesse Hallad250842017-03-10 18:35:38 -08005759}
5760
5761@extension("VK_GOOGLE_display_timing") // 93
5762class VkPastPresentationTimingGOOGLE {
Jesse Hallfdc8ab32017-03-10 21:01:57 -08005763 u32 presentID
5764 u64 desiredPresentTime
5765 u64 actualPresentTime
5766 u64 earliestPresentTime
5767 u64 presentMargin
Jesse Hallad250842017-03-10 18:35:38 -08005768}
5769
5770@extension("VK_GOOGLE_display_timing") // 93
5771class VkPresentTimeGOOGLE {
Jesse Hallfdc8ab32017-03-10 21:01:57 -08005772 u32 presentID
5773 u64 desiredPresentTime
Jesse Hallad250842017-03-10 18:35:38 -08005774}
5775
5776@extension("VK_GOOGLE_display_timing") // 93
5777class VkPresentTimesInfoGOOGLE {
Jesse Hallfdc8ab32017-03-10 21:01:57 -08005778 VkStructureType sType
5779 const void* pNext
5780 u32 swapchainCount
5781 const VkPresentTimeGOOGLE* pTimes
Jesse Hallad250842017-03-10 18:35:38 -08005782}
5783
5784@extension("VK_NVX_multiview_per_view_attributes") // 98
5785class VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX {
5786 VkStructureType sType
5787 void* pNext
5788 VkBool32 perViewPositionAllComponents
5789}
5790
5791@extension("VK_NV_viewport_swizzle") // 99
5792class VkViewportSwizzleNV {
5793 VkViewportCoordinateSwizzleNV x
5794 VkViewportCoordinateSwizzleNV y
5795 VkViewportCoordinateSwizzleNV z
5796 VkViewportCoordinateSwizzleNV w
5797}
5798
5799@extension("VK_NV_viewport_swizzle") // 99
5800class VkPipelineViewportSwizzleStateCreateInfoNV {
5801 VkStructureType sType
5802 const void* pNext
5803 VkPipelineViewportSwizzleStateCreateFlagsNV flags
5804 u32 viewportCount
5805 const VkViewportSwizzleNV* pViewportSwizzles
5806}
5807
5808@extension("VK_EXT_discard_rectangles") // 100
5809class VkPhysicalDeviceDiscardRectanglePropertiesEXT {
5810 VkStructureType sType
Jesse Hallf5ad48b2017-03-20 13:09:19 -07005811 void* pNext
Jesse Hallad250842017-03-10 18:35:38 -08005812 u32 maxDiscardRectangles
5813}
5814
5815@extension("VK_EXT_discard_rectangles") // 100
5816class VkPipelineDiscardRectangleStateCreateInfoEXT {
Jesse Hallfdc8ab32017-03-10 21:01:57 -08005817 VkStructureType sType
5818 const void* pNext
5819 VkPipelineDiscardRectangleStateCreateFlagsEXT flags
5820 VkDiscardRectangleModeEXT discardRectangleMode
5821 u32 discardRectangleCount
5822 const VkRect2D* pDiscardRectangles
Jesse Hallad250842017-03-10 18:35:38 -08005823}
5824
Jesse Hall8c954d32018-01-17 22:06:20 -08005825@extension("VK_EXT_conservative_rasterization") // 102
5826class VkPhysicalDeviceConservativeRasterizationPropertiesEXT {
5827 VkStructureType sType
5828 void* pNext
5829 f32 primitiveOverestimationSize
5830 f32 maxExtraPrimitiveOverestimationSize
5831 f32 extraPrimitiveOverestimationSizeGranularity
5832 VkBool32 primitiveUnderestimation
5833 VkBool32 conservativePointAndLineRasterization
5834 VkBool32 degenerateTrianglesRasterized
5835 VkBool32 degenerateLinesRasterized
5836 VkBool32 fullyCoveredFragmentShaderInputVariable
5837 VkBool32 conservativeRasterizationPostDepthCoverage
5838}
5839
5840@extension("VK_EXT_conservative_rasterization") // 102
5841class VkPipelineRasterizationConservativeStateCreateInfoEXT {
5842 VkStructureType sType
5843 const void* pNext
5844 VkPipelineRasterizationConservativeStateCreateFlagsEXT flags
5845 VkConservativeRasterizationModeEXT conservativeRasterizationMode
5846 f32 extraPrimitiveOverestimationSize
5847}
5848
Jesse Hallad250842017-03-10 18:35:38 -08005849@extension("VK_EXT_hdr_metadata") // 106
Courtney Goeltzenleuchterd634c482017-01-05 15:55:31 -07005850class VkXYColorEXT {
Jesse Hallfdc8ab32017-03-10 21:01:57 -08005851 f32 x
5852 f32 y
Courtney Goeltzenleuchterd634c482017-01-05 15:55:31 -07005853}
5854
Jesse Hallad250842017-03-10 18:35:38 -08005855@extension("VK_EXT_hdr_metadata") // 106
Courtney Goeltzenleuchterd634c482017-01-05 15:55:31 -07005856class VkHdrMetadataEXT {
Jesse Hallfdc8ab32017-03-10 21:01:57 -08005857 VkStructureType sType
5858 const void* pNext
5859 VkXYColorEXT displayPrimaryRed
5860 VkXYColorEXT displayPrimaryGreen
5861 VkXYColorEXT displayPrimaryBlue
5862 VkXYColorEXT whitePoint
5863 f32 maxLuminance
5864 f32 minLuminance
5865 f32 maxContentLightLevel
5866 f32 maxFrameAverageLightLevel
Courtney Goeltzenleuchterd634c482017-01-05 15:55:31 -07005867}
5868
Jesse Hall05556b12017-05-18 17:40:25 -07005869@extension("VK_KHR_shared_presentable_image") // 112
Chris Forbese2d3ee12017-03-16 16:10:15 +13005870class VkSharedPresentSurfaceCapabilitiesKHR {
5871 VkStructureType sType
5872 const void* pNext
5873 VkImageUsageFlags sharedPresentSupportedUsageFlags
5874}
5875
Jesse Hall9492f992017-08-28 12:10:06 -07005876@extension("VK_KHR_external_fence_capabilities") // 113
5877class VkPhysicalDeviceExternalFenceInfoKHR {
5878 VkStructureType sType
5879 const void* pNext
5880 VkExternalFenceHandleTypeFlagBitsKHR handleType
5881}
5882
5883@extension("VK_KHR_external_fence_capabilities") // 113
5884class VkExternalFencePropertiesKHR {
5885 VkStructureType sType
5886 void* pNext
5887 VkExternalFenceHandleTypeFlagsKHR exportFromImportedHandleTypes
5888 VkExternalFenceHandleTypeFlagsKHR compatibleHandleTypes
5889 VkExternalFenceFeatureFlagsKHR externalFenceFeatures
5890}
5891
5892@extension("VK_KHR_external_fence") // 114
5893class VkExportFenceCreateInfoKHR {
5894 VkStructureType sType
5895 const void* pNext
5896 VkExternalFenceHandleTypeFlagsKHR handleTypes
5897}
5898
5899@extension("VK_KHR_external_fence_win32") // 115
5900class VkImportFenceWin32HandleInfoKHR {
5901 VkStructureType sType
5902 const void* pNext
5903 VkFence fence
5904 VkFenceImportFlagsKHR flags
5905 VkExternalFenceHandleTypeFlagBitsKHR handleType
5906 platform.HANDLE handle
5907 platform.LPCWSTR name
5908}
5909
5910@extension("VK_KHR_external_fence_win32") // 115
5911class VkExportFenceWin32HandleInfoKHR {
5912 VkStructureType sType
5913 const void* pNext
5914 const platform.SECURITY_ATTRIBUTES* pAttributes
5915 platform.DWORD dwAccess
5916 platform.LPCWSTR name
5917}
5918
5919@extension("VK_KHR_external_fence_win32") // 115
5920class VkFenceGetWin32HandleInfoKHR {
5921 VkStructureType sType
5922 const void* pNext
5923 VkFence fence
5924 VkExternalFenceHandleTypeFlagBitsKHR handleType
5925}
5926
5927@extension("VK_KHR_external_fence_fd") // 116
5928class VkImportFenceFdInfoKHR {
5929 VkStructureType sType
5930 const void* pNext
5931 VkFence fence
5932 VkFenceImportFlagsKHR flags
5933 VkExternalFenceHandleTypeFlagBitsKHR handleType
5934 int fd
5935}
5936
5937@extension("VK_KHR_external_fence_fd") // 116
5938class VkFenceGetFdInfoKHR {
5939 VkStructureType sType
5940 const void* pNext
5941 VkFence fence
5942 VkExternalFenceHandleTypeFlagBitsKHR handleType
5943}
5944
Jesse Hall076f95d2017-09-20 11:34:47 -07005945@extension("VK_KHR_maintenance2") // 118
5946class VkPhysicalDevicePointClippingPropertiesKHR {
5947 VkStructureType sType
5948 void* pNext
5949 VkPointClippingBehaviorKHR pointClippingBehavior
5950}
5951
5952@extension("VK_KHR_maintenance2") // 118
5953class VkInputAttachmentAspectReferenceKHR {
5954 u32 subpass
5955 u32 inputAttachmentIndex
5956 VkImageAspectFlags aspectMask
5957}
5958
5959@extension("VK_KHR_maintenance2") // 118
5960class VkRenderPassInputAttachmentAspectCreateInfoKHR {
5961 VkStructureType sType
5962 const void* pNext
5963 u32 aspectReferenceCount
5964 const VkInputAttachmentAspectReferenceKHR* pAspectReferences
5965}
5966
5967@extension("VK_KHR_maintenance2") // 118
5968class VkImageViewUsageCreateInfoKHR {
5969 VkStructureType sType
5970 const void* pNext
5971 VkImageUsageFlags usage
5972}
5973
5974@extension("VK_KHR_maintenance2") // 118
5975class VkPipelineTessellationDomainOriginStateCreateInfoKHR {
5976 VkStructureType sType
5977 const void* pNext
5978 VkTessellationDomainOriginKHR domainOrigin
5979}
5980
Jesse Hall05556b12017-05-18 17:40:25 -07005981@extension("VK_KHR_get_surface_capabilities2") // 120
Chris Forbese2d3ee12017-03-16 16:10:15 +13005982class VkPhysicalDeviceSurfaceInfo2KHR {
5983 VkStructureType sType
5984 const void* pNext
5985 VkSurfaceKHR surface
5986}
5987
Jesse Hall05556b12017-05-18 17:40:25 -07005988@extension("VK_KHR_get_surface_capabilities2") // 120
Chris Forbese2d3ee12017-03-16 16:10:15 +13005989class VkSurfaceCapabilities2KHR {
5990 VkStructureType sType
5991 void* pNext
5992 VkSurfaceCapabilitiesKHR surfaceCapabilities
5993}
5994
Jesse Hall05556b12017-05-18 17:40:25 -07005995@extension("VK_KHR_get_surface_capabilities2") // 120
Chris Forbese2d3ee12017-03-16 16:10:15 +13005996class VkSurfaceFormat2KHR {
5997 VkStructureType sType
5998 void* pNext
5999 VkSurfaceFormatKHR surfaceFormat
6000}
6001
Jesse Hall9492f992017-08-28 12:10:06 -07006002@extension("VK_KHR_variable_pointers") // 121
6003class VkPhysicalDeviceVariablePointerFeaturesKHR {
6004 VkStructureType sType
6005 void* pNext
6006 VkBool32 variablePointersStorageBuffer
6007 VkBool32 variablePointers
6008}
6009
Jesse Hallad250842017-03-10 18:35:38 -08006010@extension("VK_MVK_ios_surface") // 123
6011class VkIOSSurfaceCreateInfoMVK {
6012 VkStructureType sType
6013 const void* pNext
6014 VkIOSSurfaceCreateFlagsMVK flags
6015 const void* pView
6016}
6017
6018@extension("VK_MVK_macos_surface") // 124
6019class VkMacOSSurfaceCreateInfoMVK {
6020 VkStructureType sType
6021 const void* pNext
6022 VkMacOSSurfaceCreateFlagsMVK flags
6023 const void* pView
6024}
6025
Jesse Hall9492f992017-08-28 12:10:06 -07006026@extension("VK_KHR_dedicated_allocation") // 128
6027class VkMemoryDedicatedRequirementsKHR {
6028 VkStructureType sType
6029 void* pNext
6030 VkBool32 prefersDedicatedAllocation
6031 VkBool32 requiresDedicatedAllocation
6032}
6033
6034@extension("VK_KHR_dedicated_allocation") // 128
6035class VkMemoryDedicatedAllocateInfoKHR {
6036 VkStructureType sType
6037 const void* pNext
6038 VkImage image
6039 VkBuffer buffer
6040}
6041
Jesse Hall8c954d32018-01-17 22:06:20 -08006042@extension("VK_EXT_debug_utils") // 129
6043class VkDebugUtilsObjectNameInfoEXT {
6044 VkStructureType sType
6045 const void* pNext
6046 VkObjectType objectType
6047 u64 objectHandle
6048 const char* pObjectName
6049}
Jesse Hall72e6a132018-04-06 13:00:44 -07006050
Jesse Hall8c954d32018-01-17 22:06:20 -08006051@extension("VK_EXT_debug_utils") // 129
6052class VkDebugUtilsObjectTagInfoEXT {
6053 VkStructureType sType
6054 const void* pNext
6055 VkObjectType objectType
6056 u64 objectHandle
6057 u64 tagName
6058 platform.size_t tagSize
6059 const void* pTag
6060}
Jesse Hall72e6a132018-04-06 13:00:44 -07006061
Jesse Hall8c954d32018-01-17 22:06:20 -08006062@extension("VK_EXT_debug_utils") // 129
6063class VkDebugUtilsLabelEXT {
6064 VkStructureType sType
6065 const void* pNext
6066 const char* pLabelName
6067 f32[4] color
6068}
6069
6070@extension("VK_EXT_debug_utils") // 129
6071class VkDebugUtilsMessengerCallbackDataEXT {
6072 VkStructureType sType
6073 const void* pNext
6074 VkDebugUtilsMessengerCallbackDataFlagsEXT flags
6075 const char* pMessageIdName
6076 s32 messageIdNumber
6077 const char* pMessage
6078 u32 queueLabelCount
6079 VkDebugUtilsLabelEXT* pQueueLabels
6080 u32 cmdBufLabelCount
6081 VkDebugUtilsLabelEXT* pCmdBufLabels
6082 u32 objectCount
6083 VkDebugUtilsObjectNameInfoEXT* pObjects
6084}
6085
6086@extension("VK_EXT_debug_utils") // 129
6087class VkDebugUtilsMessengerCreateInfoEXT {
6088 VkStructureType sType
6089 const void* pNext
6090 VkDebugUtilsMessengerCreateFlagsEXT flags
6091 VkDebugUtilsMessageSeverityFlagsEXT messageSeverity
6092 VkDebugUtilsMessageTypeFlagsEXT messageType
6093 PFN_vkDebugUtilsMessengerCallbackEXT pfnUserCallback
6094 void* pUserData
6095}
6096
Jesse Hall36215a92018-01-18 15:04:37 -08006097@extension("VK_ANDROID_external_memory_android_hardware_buffer") // 131
6098class VkAndroidHardwareBufferUsageANDROID {
6099 VkStructureType sType
6100 void* pNext
6101 u64 androidHardwareBufferUsage
6102}
6103
6104@extension("VK_ANDROID_external_memory_android_hardware_buffer") // 130
6105class VkAndroidHardwareBufferPropertiesANDROID {
6106 VkStructureType sType
6107 void* pNext
6108 VkDeviceSize allocationSize
6109 u32 memoryTypeBits
6110}
6111
6112@extension("VK_ANDROID_external_memory_android_hardware_buffer") // 130
6113class VkAndroidHardwareBufferFormatPropertiesANDROID {
6114 VkStructureType sType
6115 void* pNext
6116 VkFormat format
6117 u64 externalFormat
6118 VkFormatFeatureFlags formatFeatures
6119 VkComponentMapping samplerYcbcrConversionComponents
6120 VkSamplerYcbcrModelConversion suggestedYcbcrModel
6121 VkSamplerYcbcrRange suggestedYcbcrRange
6122 VkChromaLocation suggestedXChromaOffset
6123 VkChromaLocation suggestedYChromaOffset
6124}
6125
6126@extension("VK_ANDROID_external_memory_android_hardware_buffer") // 130
6127class VkImportAndroidHardwareBufferInfoANDROID {
6128 VkStructureType sType
6129 const void* pNext
6130 platform.AHardwareBuffer* buffer
6131}
6132
6133@extension("VK_ANDROID_external_memory_android_hardware_buffer") // 130
6134class VkMemoryGetAndroidHardwareBufferInfoANDROID {
6135 VkStructureType sType
6136 const void* pNext
6137 VkDeviceMemory memory
6138}
6139
6140@extension("VK_ANDROID_external_memory_android_hardware_buffer") // 130
6141class VkExternalFormatANDROID {
6142 VkStructureType sType
6143 void* pNext
6144 u64 externalFormat
6145}
6146
Jesse Hall7ba0ac72017-07-07 17:13:23 -07006147@extension("VK_EXT_sampler_filter_minmax") // 131
6148class VkSamplerReductionModeCreateInfoEXT {
6149 VkStructureType sType
6150 const void* pNext
6151 VkSamplerReductionModeEXT reductionMode
6152}
6153
6154@extension("VK_EXT_sampler_filter_minmax") // 131
6155class VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT {
6156 VkStructureType sType
6157 void* pNext
6158 VkBool32 filterMinmaxSingleComponentFormats
6159 VkBool32 filterMinmaxImageComponentMapping
6160}
6161
Jesse Hall77726222017-09-19 14:49:27 -05006162@extension("VK_EXT_sample_locations") // 144
6163class VkSampleLocationEXT {
6164 f32 x
6165 f32 y
6166}
6167
6168@extension("VK_EXT_sample_locations") // 144
6169class VkSampleLocationsInfoEXT {
6170 VkStructureType sType
6171 const void* pNext
6172 VkSampleCountFlagBits sampleLocationsPerPixel
6173 VkExtent2D sampleLocationGridSize
6174 u32 sampleLocationsCount
6175 const VkSampleLocationEXT* pSampleLocations
6176}
6177
6178@extension("VK_EXT_sample_locations") // 144
6179class VkAttachmentSampleLocationsEXT {
6180 u32 attachmentIndex
6181 VkSampleLocationsInfoEXT sampleLocationsInfo
6182}
6183
6184@extension("VK_EXT_sample_locations") // 144
6185class VkSubpassSampleLocationsEXT {
6186 u32 subpassIndex
6187 VkSampleLocationsInfoEXT sampleLocationsInfo
6188}
6189
6190@extension("VK_EXT_sample_locations") // 144
6191class VkRenderPassSampleLocationsBeginInfoEXT {
6192 VkStructureType sType
6193 const void* pNext
6194 u32 attachmentInitialSampleLocationsCount
6195 const VkAttachmentSampleLocationsEXT* pAttachmentInitialSampleLocations
6196 u32 postSubpassSampleLocationsCount
Jesse Hall8c954d32018-01-17 22:06:20 -08006197 const VkSubpassSampleLocationsEXT* pPostSubpassSampleLocations
Jesse Hall77726222017-09-19 14:49:27 -05006198}
6199
6200@extension("VK_EXT_sample_locations") // 144
6201class VkPipelineSampleLocationsStateCreateInfoEXT {
6202 VkStructureType sType
6203 const void* pNext
6204 VkBool32 sampleLocationsEnable
6205 VkSampleLocationsInfoEXT sampleLocationsInfo
6206}
6207
6208@extension("VK_EXT_sample_locations") // 144
6209class VkPhysicalDeviceSampleLocationsPropertiesEXT {
6210 VkStructureType sType
6211 void* pNext
6212 VkSampleCountFlags sampleLocationSampleCounts
6213 VkExtent2D maxSampleLocationGridSize
6214 f32[2] sampleLocationCoordinateRange
6215 u32 sampleLocationSubPixelBits
6216 VkBool32 variableSampleLocations
6217}
6218
6219@extension("VK_EXT_sample_locations") // 144
6220class VkMultisamplePropertiesEXT {
6221 VkStructureType sType
6222 void* pNext
6223 VkExtent2D maxSampleLocationGridSize
6224}
6225
Jesse Hall9492f992017-08-28 12:10:06 -07006226@extension("VK_KHR_get_memory_requirements2") // 147
6227class VkBufferMemoryRequirementsInfo2KHR {
6228 VkStructureType sType
6229 const void* pNext
6230 VkBuffer buffer
6231}
6232
6233@extension("VK_KHR_get_memory_requirements2") // 147
6234class VkImageMemoryRequirementsInfo2KHR {
6235 VkStructureType sType
6236 const void* pNext
6237 VkImage image
6238}
6239
6240@extension("VK_KHR_get_memory_requirements2") // 147
6241class VkImageSparseMemoryRequirementsInfo2KHR {
6242 VkStructureType sType
6243 const void* pNext
6244 VkImage image
6245}
6246
6247@extension("VK_KHR_get_memory_requirements2") // 147
6248class VkMemoryRequirements2KHR {
6249 VkStructureType sType
6250 void* pNext
6251 VkMemoryRequirements memoryRequirements
6252}
6253
6254@extension("VK_KHR_get_memory_requirements2") // 147
6255class VkSparseImageMemoryRequirements2KHR {
6256 VkStructureType sType
6257 void* pNext
6258 VkSparseImageMemoryRequirements memoryRequirements
6259}
6260
Jesse Hall076f95d2017-09-20 11:34:47 -07006261@extension("VK_KHR_image_format_list") // 148
6262class VkImageFormatListCreateInfoKHR {
6263 VkStructureType sType
6264 const void* pNext
6265 u32 viewFormatCount
6266 const VkFormat* pViewFormats
6267}
6268
Jesse Hall7ba0ac72017-07-07 17:13:23 -07006269@extension("VK_EXT_blend_operation_advanced") // 149
6270class VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT {
6271 VkStructureType sType
6272 void* pNext
6273 VkBool32 advancedBlendCoherentOperations
6274}
6275
6276@extension("VK_EXT_blend_operation_advanced") // 149
6277class VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT {
6278 VkStructureType sType
6279 void* pNext
6280 u32 advancedBlendMaxColorAttachments
6281 VkBool32 advancedBlendIndependentBlend
6282 VkBool32 advancedBlendNonPremultipliedSrcColor
6283 VkBool32 advancedBlendNonPremultipliedDstColor
6284 VkBool32 advancedBlendCorrelatedOverlap
6285 VkBool32 advancedBlendAllOperations
6286}
6287
6288@extension("VK_EXT_blend_operation_advanced") // 149
6289class VkPipelineColorBlendAdvancedStateCreateInfoEXT {
6290 VkStructureType sType
6291 const void* pNext
6292 VkBool32 srcPremultiplied
6293 VkBool32 dstPremultiplied
6294 VkBlendOverlapEXT blendOverlap
6295}
6296
6297@extension("VK_NV_fragment_coverage_to_color") // 150
6298class VkPipelineCoverageToColorStateCreateInfoNV {
6299 VkStructureType sType
6300 const void* pNext
6301 VkPipelineCoverageToColorStateCreateFlagsNV flags
6302 VkBool32 coverageToColorEnable
6303 u32 coverageToColorLocation
6304}
6305
6306@extension("VK_NV_framebuffer_mixed_samples") // 153
6307class VkPipelineCoverageModulationStateCreateInfoNV {
6308 VkStructureType sType
6309 const void* pNext
6310 VkPipelineCoverageModulationStateCreateFlagsNV flags
6311 VkCoverageModulationModeNV coverageModulationMode
6312 VkBool32 coverageModulationTableEnable
6313 u32 coverageModulationTableCount
6314 const f32* pCoverageModulationTable
6315}
6316
Jesse Hall076f95d2017-09-20 11:34:47 -07006317@extension("VK_KHR_sampler_ycbcr_conversion") // 157
6318class VkSamplerYcbcrConversionCreateInfoKHR {
6319 VkStructureType sType
6320 const void* pNext
6321 VkFormat format
6322 VkSamplerYcbcrModelConversionKHR ycbcrModel
6323 VkSamplerYcbcrRangeKHR ycbcrRange
6324 VkComponentMapping components
6325 VkChromaLocationKHR xChromaOffset
6326 VkChromaLocationKHR yChromaOffset
6327 VkFilter chromaFilter
6328 VkBool32 forceExplicitReconstruction
6329}
6330
6331@extension("VK_KHR_sampler_ycbcr_conversion") // 157
6332class VkSamplerYcbcrConversionInfoKHR {
6333 VkStructureType sType
6334 const void* pNext
6335 VkSamplerYcbcrConversionKHR conversion
6336}
6337
6338@extension("VK_KHR_sampler_ycbcr_conversion") // 157
6339class VkBindImagePlaneMemoryInfoKHR {
6340 VkStructureType sType
6341 const void* pNext
6342 VkImageAspectFlagBits planeAspect
6343}
6344
6345@extension("VK_KHR_sampler_ycbcr_conversion") // 157
6346class VkImagePlaneMemoryRequirementsInfoKHR {
6347 VkStructureType sType
6348 const void* pNext
6349 VkImageAspectFlagBits planeAspect
6350}
6351
6352@extension("VK_KHR_sampler_ycbcr_conversion") // 157
6353class VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR {
6354 VkStructureType sType
6355 void* pNext
6356 VkBool32 samplerYcbcrConversion
6357}
6358
6359@extension("VK_KHR_sampler_ycbcr_conversion") // 157
6360class VkSamplerYcbcrConversionImageFormatPropertiesKHR {
6361 VkStructureType sType
6362 void* pNext
6363 u32 combinedImageSamplerDescriptorCount
6364}
6365
6366@extension("VK_KHR_bind_memory2") // 158
6367class VkBindBufferMemoryInfoKHR {
6368 VkStructureType sType
6369 const void* pNext
6370 VkBuffer buffer
6371 VkDeviceMemory memory
6372 VkDeviceSize memoryOffset
6373}
6374
6375@extension("VK_KHR_bind_memory2") // 158
6376class VkBindImageMemoryInfoKHR {
6377 VkStructureType sType
6378 const void* pNext
6379 VkImage image
6380 VkDeviceMemory memory
6381 VkDeviceSize memoryOffset
6382}
6383
Jesse Hall77726222017-09-19 14:49:27 -05006384@extension("VK_EXT_validation_cache") // 161
6385class VkValidationCacheCreateInfoEXT {
6386 VkStructureType sType
6387 const void* pNext
6388 VkValidationCacheCreateFlagsEXT flags
6389 platform.size_t initialDataSize
6390 const void* pInitialData
6391}
6392
6393@extension("VK_EXT_validation_cache") // 161
6394class VkShaderModuleValidationCacheCreateInfoEXT {
6395 VkStructureType sType
6396 const void* pNext
6397 VkValidationCacheEXT validationCache
6398}
6399
Jesse Hall72e6a132018-04-06 13:00:44 -07006400@extension("VK_EXT_descriptor_indexing") // 162
6401class VkDescriptorSetLayoutBindingFlagsCreateInfoEXT {
6402 VkStructureType sType
6403 const void* pNext
6404 u32 bindingCount
6405 const VkDescriptorBindingFlagsEXT* pBindingFlags
6406}
6407
6408@extension("VK_EXT_descriptor_indexing") // 162
6409class VkPhysicalDeviceDescriptorIndexingFeaturesEXT {
6410 VkStructureType sType
6411 void* pNext
6412 VkBool32 shaderInputAttachmentArrayDynamicIndexing
6413 VkBool32 shaderUniformTexelBufferArrayDynamicIndexing
6414 VkBool32 shaderStorageTexelBufferArrayDynamicIndexing
6415 VkBool32 shaderUniformBufferArrayNonUniformIndexing
6416 VkBool32 shaderSampledImageArrayNonUniformIndexing
6417 VkBool32 shaderStorageBufferArrayNonUniformIndexing
6418 VkBool32 shaderStorageImageArrayNonUniformIndexing
6419 VkBool32 shaderInputAttachmentArrayNonUniformIndexing
6420 VkBool32 shaderUniformTexelBufferArrayNonUniformIndexing
6421 VkBool32 shaderStorageTexelBufferArrayNonUniformIndexing
6422 VkBool32 descriptorBindingUniformBufferUpdateAfterBind
6423 VkBool32 descriptorBindingSampledImageUpdateAfterBind
6424 VkBool32 descriptorBindingStorageImageUpdateAfterBind
6425 VkBool32 descriptorBindingStorageBufferUpdateAfterBind
6426 VkBool32 descriptorBindingUniformTexelBufferUpdateAfterBind
6427 VkBool32 descriptorBindingStorageTexelBufferUpdateAfterBind
6428 VkBool32 descriptorBindingUpdateUnusedWhilePending
6429 VkBool32 descriptorBindingPartiallyBound
6430 VkBool32 descriptorBindingVariableDescriptorCount
6431 VkBool32 runtimeDescriptorArray
6432}
6433
6434@extension("VK_EXT_descriptor_indexing") // 162
6435class VkPhysicalDeviceDescriptorIndexingPropertiesEXT {
6436 VkStructureType sType
6437 void* pNext
6438 u32 maxUpdateAfterBindDescriptorsInAllPools
6439 VkBool32 shaderUniformBufferArrayNonUniformIndexingNative
6440 VkBool32 shaderSampledImageArrayNonUniformIndexingNative
6441 VkBool32 shaderStorageBufferArrayNonUniformIndexingNative
6442 VkBool32 shaderStorageImageArrayNonUniformIndexingNative
6443 VkBool32 shaderInputAttachmentArrayNonUniformIndexingNative
6444 VkBool32 robustBufferAccessUpdateAfterBind
6445 VkBool32 quadDivergentImplicitLod
6446 u32 maxPerStageDescriptorUpdateAfterBindSamplers
6447 u32 maxPerStageDescriptorUpdateAfterBindUniformBuffers
6448 u32 maxPerStageDescriptorUpdateAfterBindStorageBuffers
6449 u32 maxPerStageDescriptorUpdateAfterBindSampledImages
6450 u32 maxPerStageDescriptorUpdateAfterBindStorageImages
6451 u32 maxPerStageDescriptorUpdateAfterBindInputAttachments
6452 u32 maxPerStageUpdateAfterBindResources
6453 u32 maxDescriptorSetUpdateAfterBindSamplers
6454 u32 maxDescriptorSetUpdateAfterBindUniformBuffers
6455 u32 maxDescriptorSetUpdateAfterBindUniformBuffersDynamic
6456 u32 maxDescriptorSetUpdateAfterBindStorageBuffers
6457 u32 maxDescriptorSetUpdateAfterBindStorageBuffersDynamic
6458 u32 maxDescriptorSetUpdateAfterBindSampledImages
6459 u32 maxDescriptorSetUpdateAfterBindStorageImages
6460 u32 maxDescriptorSetUpdateAfterBindInputAttachments
6461}
6462
6463@extension("VK_EXT_descriptor_indexing") // 162
6464class VkDescriptorSetVariableDescriptorCountAllocateInfoEXT {
6465 VkStructureType sType
6466 const void* pNext
6467 u32 descriptorSetCount
6468 const u32* pDescriptorCounts
6469}
6470
6471@extension("VK_EXT_descriptor_indexing") // 162
6472class VkDescriptorSetVariableDescriptorCountLayoutSupportEXT {
6473 VkStructureType sType
6474 void* pNext
6475 u32 maxVariableDescriptorCount
6476}
6477
Daniel Koch09f7bf92017-10-05 00:26:58 -04006478@extension("VK_KHR_maintenance3") // 169
6479class VkPhysicalDeviceMaintenance3PropertiesKHR {
6480 VkStructureType sType
6481 void* pNext
6482 u32 maxPerSetDescriptors
6483 VkDeviceSize maxMemoryAllocationSize
6484}
6485
6486@extension("VK_KHR_maintenance3") // 169
6487class VkDescriptorSetLayoutSupportKHR {
6488 VkStructureType sType
6489 void* pNext
6490 VkBool32 supported
6491}
6492
Jesse Hall8c954d32018-01-17 22:06:20 -08006493@extension("VK_EXT_global_priority") // 175
6494class VkDeviceQueueGlobalPriorityCreateInfoEXT {
6495 VkStructureType sType
6496 const void* pNext
6497 VkQueueGlobalPriorityEXT globalPriority
6498}
6499
6500@extension("VK_EXT_external_memory_host") // 179
6501class VkImportMemoryHostPointerInfoEXT {
6502 VkStructureType sType
6503 const void* pNext
6504 VkExternalMemoryHandleTypeFlagBits handleType
6505 void* pHostPointer
6506}
6507
6508@extension("VK_EXT_external_memory_host") // 179
6509class VkMemoryHostPointerPropertiesEXT {
6510 VkStructureType sType
6511 void* pNext
6512 u32 memoryTypeBits
6513}
6514
6515@extension("VK_EXT_external_memory_host") // 179
6516class VkPhysicalDeviceExternalMemoryHostPropertiesEXT {
6517 VkStructureType sType
6518 void* pNext
6519 VkDeviceSize minImportedHostPointerAlignment
6520}
6521
Jesse Hall72e6a132018-04-06 13:00:44 -07006522@extension("VK_AMD_shader_core_properties") // 186
6523class VkPhysicalDeviceShaderCorePropertiesAMD {
6524 VkStructureType sType
6525 void* pNext
6526 u32 shaderEngineCount
6527 u32 shaderArraysPerEngineCount
6528 u32 computeUnitsPerShaderArray
6529 u32 simdPerComputeUnit
6530 u32 wavefrontsPerSimd
6531 u32 wavefrontSize
6532 u32 sgprsPerSimd
6533 u32 minSgprAllocation
6534 u32 maxSgprAllocation
6535 u32 sgprAllocationGranularity
6536 u32 vgprsPerSimd
6537 u32 minVgprAllocation
6538 u32 maxVgprAllocation
6539 u32 vgprAllocationGranularity
6540}
6541
6542@extension("VK_EXT_vertex_attribute_divisor") // 191
6543class VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT {
6544 VkStructureType sType
6545 void* pNext
6546 u32 maxVertexAttribDivisor
6547}
6548
6549@extension("VK_EXT_vertex_attribute_divisor") // 191
6550class VkVertexInputBindingDivisorDescriptionEXT {
6551 u32 binding
6552 u32 divisor
6553}
6554
6555@extension("VK_EXT_vertex_attribute_divisor") // 191
6556class VkPipelineVertexInputDivisorStateCreateInfoEXT {
6557 VkStructureType sType
6558 const void* pNext
6559 u32 vertexBindingDivisorCount
6560 const VkVertexInputBindingDivisorDescriptionEXT* pVertexBindingDivisors
6561}
6562
Daniel Koch09f7bf92017-10-05 00:26:58 -04006563
Jesse Halld27f6aa2015-08-15 17:58:48 -07006564////////////////
6565// Commands //
6566////////////////
6567
6568// Function pointers. TODO: add support for function pointers.
6569
6570@external type void* PFN_vkVoidFunction
6571@pfn cmd void vkVoidFunction() {
6572}
6573
Jesse Hall3fbc8562015-11-29 22:10:52 -08006574@external type void* PFN_vkAllocationFunction
6575@pfn cmd void* vkAllocationFunction(
Jesse Halld27f6aa2015-08-15 17:58:48 -07006576 void* pUserData,
6577 platform.size_t size,
6578 platform.size_t alignment,
Jesse Hall3fbc8562015-11-29 22:10:52 -08006579 VkSystemAllocationScope allocationScope) {
Jesse Hall03b6fe12015-11-24 12:44:21 -08006580 return ?
6581}
6582
Jesse Hall3fbc8562015-11-29 22:10:52 -08006583@external type void* PFN_vkReallocationFunction
6584@pfn cmd void* vkReallocationFunction(
Jesse Hall03b6fe12015-11-24 12:44:21 -08006585 void* pUserData,
6586 void* pOriginal,
6587 platform.size_t size,
6588 platform.size_t alignment,
Jesse Hall3fbc8562015-11-29 22:10:52 -08006589 VkSystemAllocationScope allocationScope) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07006590 return ?
6591}
6592
6593@external type void* PFN_vkFreeFunction
6594@pfn cmd void vkFreeFunction(
6595 void* pUserData,
Jesse Hall3fbc8562015-11-29 22:10:52 -08006596 void* pMemory) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07006597}
6598
Jesse Hall3fbc8562015-11-29 22:10:52 -08006599@external type void* PFN_vkInternalAllocationNotification
6600@pfn cmd void vkInternalAllocationNotification(
Jesse Hall03b6fe12015-11-24 12:44:21 -08006601 void* pUserData,
6602 platform.size_t size,
Jesse Hall3fbc8562015-11-29 22:10:52 -08006603 VkInternalAllocationType allocationType,
6604 VkSystemAllocationScope allocationScope) {
Jesse Hall03b6fe12015-11-24 12:44:21 -08006605}
6606
6607@external type void* PFN_vkInternalFreeNotification
6608@pfn cmd void vkInternalFreeNotification(
6609 void* pUserData,
6610 platform.size_t size,
Jesse Hall3fbc8562015-11-29 22:10:52 -08006611 VkInternalAllocationType allocationType,
6612 VkSystemAllocationScope allocationScope) {
Jesse Hall03b6fe12015-11-24 12:44:21 -08006613}
Jesse Halld27f6aa2015-08-15 17:58:48 -07006614
6615// Global functions
6616
6617@threadSafety("system")
6618cmd VkResult vkCreateInstance(
6619 const VkInstanceCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08006620 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07006621 VkInstance* pInstance) {
6622 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO)
6623
6624 instance := ?
6625 pInstance[0] = instance
6626 State.Instances[instance] = new!InstanceObject()
6627
Jesse Hall3dd678a2016-01-08 21:52:01 -08006628 layers := pCreateInfo.ppEnabledLayerNames[0:pCreateInfo.enabledLayerCount]
6629 extensions := pCreateInfo.ppEnabledExtensionNames[0:pCreateInfo.enabledExtensionCount]
Jesse Halld27f6aa2015-08-15 17:58:48 -07006630
6631 return ?
6632}
6633
6634@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07006635cmd void vkDestroyInstance(
Jesse Hall03b6fe12015-11-24 12:44:21 -08006636 VkInstance instance,
Jesse Hall3fbc8562015-11-29 22:10:52 -08006637 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07006638 instanceObject := GetInstance(instance)
6639
6640 State.Instances[instance] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07006641}
6642
6643@threadSafety("system")
6644cmd VkResult vkEnumeratePhysicalDevices(
6645 VkInstance instance,
6646 u32* pPhysicalDeviceCount,
6647 VkPhysicalDevice* pPhysicalDevices) {
6648 instanceObject := GetInstance(instance)
6649
6650 physicalDeviceCount := as!u32(?)
6651 pPhysicalDeviceCount[0] = physicalDeviceCount
6652 physicalDevices := pPhysicalDevices[0:physicalDeviceCount]
6653
6654 for i in (0 .. physicalDeviceCount) {
6655 physicalDevice := ?
6656 physicalDevices[i] = physicalDevice
6657 if !(physicalDevice in State.PhysicalDevices) {
6658 State.PhysicalDevices[physicalDevice] = new!PhysicalDeviceObject(instance: instance)
6659 }
6660 }
6661
6662 return ?
6663}
6664
6665cmd PFN_vkVoidFunction vkGetDeviceProcAddr(
6666 VkDevice device,
6667 const char* pName) {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07006668 if device != NULL_HANDLE {
Jesse Halld27f6aa2015-08-15 17:58:48 -07006669 device := GetDevice(device)
6670 }
6671
6672 return ?
6673}
6674
6675cmd PFN_vkVoidFunction vkGetInstanceProcAddr(
6676 VkInstance instance,
6677 const char* pName) {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07006678 if instance != NULL_HANDLE {
Jesse Halld27f6aa2015-08-15 17:58:48 -07006679 instanceObject := GetInstance(instance)
6680 }
6681
6682 return ?
6683}
6684
Jesse Hall606a54e2015-11-19 22:17:28 -08006685cmd void vkGetPhysicalDeviceProperties(
Jesse Halld27f6aa2015-08-15 17:58:48 -07006686 VkPhysicalDevice physicalDevice,
6687 VkPhysicalDeviceProperties* pProperties) {
6688 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
6689
6690 properties := ?
6691 pProperties[0] = properties
Jesse Halld27f6aa2015-08-15 17:58:48 -07006692}
6693
Jesse Hall606a54e2015-11-19 22:17:28 -08006694cmd void vkGetPhysicalDeviceQueueFamilyProperties(
Jesse Halld27f6aa2015-08-15 17:58:48 -07006695 VkPhysicalDevice physicalDevice,
Jesse Hall03b6fe12015-11-24 12:44:21 -08006696 u32* pQueueFamilyPropertyCount,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07006697 VkQueueFamilyProperties* pQueueFamilyProperties) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07006698 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
Jesse Hall5ae3abb2015-10-08 14:00:22 -07006699 // TODO: Figure out how to express fetch-count-or-properties
6700 // This version fails 'apic validate' with 'fence not allowed in
6701 // *semantic.Branch'. Other attempts have failed with the same or other
6702 // errors.
6703 // if pQueueFamilyProperties != null {
6704 // queuesProperties := pQueueFamilyProperties[0:pCount[0]]
6705 // for i in (0 .. pCount[0]) {
6706 // queueProperties := as!VkQueueFamilyProperties(?)
6707 // queuesProperties[i] = queueProperties
6708 // }
6709 // } else {
6710 // count := ?
6711 // pCount[0] = count
6712 // }
Jesse Halld27f6aa2015-08-15 17:58:48 -07006713}
6714
Jesse Hall606a54e2015-11-19 22:17:28 -08006715cmd void vkGetPhysicalDeviceMemoryProperties(
Jesse Halld27f6aa2015-08-15 17:58:48 -07006716 VkPhysicalDevice physicalDevice,
6717 VkPhysicalDeviceMemoryProperties* pMemoryProperties) {
6718 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
6719
6720 memoryProperties := ?
6721 pMemoryProperties[0] = memoryProperties
Jesse Halld27f6aa2015-08-15 17:58:48 -07006722}
6723
Jesse Hall606a54e2015-11-19 22:17:28 -08006724cmd void vkGetPhysicalDeviceFeatures(
Jesse Halld27f6aa2015-08-15 17:58:48 -07006725 VkPhysicalDevice physicalDevice,
6726 VkPhysicalDeviceFeatures* pFeatures) {
6727 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
6728
6729 features := ?
6730 pFeatures[0] = features
Jesse Halld27f6aa2015-08-15 17:58:48 -07006731}
6732
Jesse Hall606a54e2015-11-19 22:17:28 -08006733cmd void vkGetPhysicalDeviceFormatProperties(
Jesse Halld27f6aa2015-08-15 17:58:48 -07006734 VkPhysicalDevice physicalDevice,
6735 VkFormat format,
6736 VkFormatProperties* pFormatProperties) {
6737 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
6738
6739 formatProperties := ?
6740 pFormatProperties[0] = formatProperties
Jesse Halld27f6aa2015-08-15 17:58:48 -07006741}
6742
Jesse Halla9e57032015-11-30 01:03:10 -08006743cmd VkResult vkGetPhysicalDeviceImageFormatProperties(
Jesse Halld27f6aa2015-08-15 17:58:48 -07006744 VkPhysicalDevice physicalDevice,
6745 VkFormat format,
6746 VkImageType type,
6747 VkImageTiling tiling,
6748 VkImageUsageFlags usage,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07006749 VkImageCreateFlags flags,
Jesse Halld27f6aa2015-08-15 17:58:48 -07006750 VkImageFormatProperties* pImageFormatProperties) {
6751 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
6752
6753 imageFormatProperties := ?
6754 pImageFormatProperties[0] = imageFormatProperties
Jesse Halla9e57032015-11-30 01:03:10 -08006755
6756 return ?
Jesse Halld27f6aa2015-08-15 17:58:48 -07006757}
6758
Jesse Halld27f6aa2015-08-15 17:58:48 -07006759
6760// Device functions
6761
6762@threadSafety("system")
6763cmd VkResult vkCreateDevice(
6764 VkPhysicalDevice physicalDevice,
6765 const VkDeviceCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08006766 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07006767 VkDevice* pDevice) {
6768 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO)
6769 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
6770
6771 device := ?
6772 pDevice[0] = device
6773 State.Devices[device] = new!DeviceObject(physicalDevice: physicalDevice)
6774
6775 return ?
6776}
6777
6778@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07006779cmd void vkDestroyDevice(
Jesse Hall03b6fe12015-11-24 12:44:21 -08006780 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08006781 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07006782 deviceObject := GetDevice(device)
6783
6784 State.Devices[device] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07006785}
6786
6787
6788// Extension discovery functions
6789
Jesse Hall5ae3abb2015-10-08 14:00:22 -07006790cmd VkResult vkEnumerateInstanceLayerProperties(
Jesse Hall03b6fe12015-11-24 12:44:21 -08006791 u32* pPropertyCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07006792 VkLayerProperties* pProperties) {
6793 count := as!u32(?)
Jesse Hall03b6fe12015-11-24 12:44:21 -08006794 pPropertyCount[0] = count
Jesse Halld27f6aa2015-08-15 17:58:48 -07006795
6796 properties := pProperties[0:count]
6797 for i in (0 .. count) {
6798 property := ?
6799 properties[i] = property
6800 }
6801
6802 return ?
6803}
6804
Jesse Hall5ae3abb2015-10-08 14:00:22 -07006805cmd VkResult vkEnumerateInstanceExtensionProperties(
Jesse Halld27f6aa2015-08-15 17:58:48 -07006806 const char* pLayerName,
Jesse Hall03b6fe12015-11-24 12:44:21 -08006807 u32* pPropertyCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07006808 VkExtensionProperties* pProperties) {
6809 count := as!u32(?)
Jesse Hall03b6fe12015-11-24 12:44:21 -08006810 pPropertyCount[0] = count
Jesse Halld27f6aa2015-08-15 17:58:48 -07006811
6812 properties := pProperties[0:count]
6813 for i in (0 .. count) {
6814 property := ?
6815 properties[i] = property
6816 }
6817
6818 return ?
6819}
6820
Jesse Hall5ae3abb2015-10-08 14:00:22 -07006821cmd VkResult vkEnumerateDeviceLayerProperties(
Jesse Halld27f6aa2015-08-15 17:58:48 -07006822 VkPhysicalDevice physicalDevice,
Jesse Hall03b6fe12015-11-24 12:44:21 -08006823 u32* pPropertyCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07006824 VkLayerProperties* pProperties) {
6825 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
6826 count := as!u32(?)
Jesse Hall03b6fe12015-11-24 12:44:21 -08006827 pPropertyCount[0] = count
Jesse Halld27f6aa2015-08-15 17:58:48 -07006828
6829 properties := pProperties[0:count]
6830 for i in (0 .. count) {
6831 property := ?
6832 properties[i] = property
6833 }
6834
6835 return ?
6836}
6837
Jesse Hall5ae3abb2015-10-08 14:00:22 -07006838cmd VkResult vkEnumerateDeviceExtensionProperties(
Jesse Halld27f6aa2015-08-15 17:58:48 -07006839 VkPhysicalDevice physicalDevice,
6840 const char* pLayerName,
Jesse Hall03b6fe12015-11-24 12:44:21 -08006841 u32* pPropertyCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07006842 VkExtensionProperties* pProperties) {
6843 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
6844
6845 count := as!u32(?)
Jesse Hall03b6fe12015-11-24 12:44:21 -08006846 pPropertyCount[0] = count
Jesse Halld27f6aa2015-08-15 17:58:48 -07006847
6848 properties := pProperties[0:count]
6849 for i in (0 .. count) {
6850 property := ?
6851 properties[i] = property
6852 }
6853
6854 return ?
6855}
6856
6857
6858// Queue functions
6859
6860@threadSafety("system")
Jesse Hall606a54e2015-11-19 22:17:28 -08006861cmd void vkGetDeviceQueue(
Jesse Halld27f6aa2015-08-15 17:58:48 -07006862 VkDevice device,
6863 u32 queueFamilyIndex,
6864 u32 queueIndex,
6865 VkQueue* pQueue) {
6866 deviceObject := GetDevice(device)
6867
6868 queue := ?
6869 pQueue[0] = queue
6870
6871 if !(queue in State.Queues) {
6872 State.Queues[queue] = new!QueueObject(device: device)
6873 }
Jesse Halld27f6aa2015-08-15 17:58:48 -07006874}
6875
6876@threadSafety("app")
6877cmd VkResult vkQueueSubmit(
6878 VkQueue queue,
Jesse Halla366a512015-11-19 22:30:07 -08006879 u32 submitCount,
Jesse Hallb00daad2015-11-29 19:46:20 -08006880 const VkSubmitInfo* pSubmits,
Jesse Halld27f6aa2015-08-15 17:58:48 -07006881 VkFence fence) {
6882 queueObject := GetQueue(queue)
6883
Jesse Hall5ae3abb2015-10-08 14:00:22 -07006884 if fence != NULL_HANDLE {
Jesse Halld27f6aa2015-08-15 17:58:48 -07006885 fenceObject := GetFence(fence)
6886 assert(fenceObject.device == queueObject.device)
6887 }
6888
Jesse Hall3fbc8562015-11-29 22:10:52 -08006889 // commandBuffers := pcommandBuffers[0:commandBufferCount]
6890 // for i in (0 .. commandBufferCount) {
6891 // commandBuffer := commandBuffers[i]
6892 // commandBufferObject := GetCommandBuffer(commandBuffer)
6893 // assert(commandBufferObject.device == queueObject.device)
Jesse Halla366a512015-11-19 22:30:07 -08006894 //
Jesse Hall3fbc8562015-11-29 22:10:52 -08006895 // validate("QueueCheck", commandBufferObject.queueFlags in queueObject.flags,
6896 // "vkQueueSubmit: enqueued commandBuffer requires missing queue capabilities.")
Jesse Halla366a512015-11-19 22:30:07 -08006897 // }
Jesse Halld27f6aa2015-08-15 17:58:48 -07006898
6899 return ?
6900}
6901
6902@threadSafety("system")
6903cmd VkResult vkQueueWaitIdle(
6904 VkQueue queue) {
6905 queueObject := GetQueue(queue)
6906
6907 return ?
6908}
6909
6910@threadSafety("system")
6911cmd VkResult vkDeviceWaitIdle(
6912 VkDevice device) {
6913 deviceObject := GetDevice(device)
6914
6915 return ?
6916}
6917
6918
6919// Memory functions
6920
6921@threadSafety("system")
Jesse Hall3fbc8562015-11-29 22:10:52 -08006922cmd VkResult vkAllocateMemory(
Jesse Halld27f6aa2015-08-15 17:58:48 -07006923 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08006924 const VkMemoryAllocateInfo* pAllocateInfo,
6925 const VkAllocationCallbacks* pAllocator,
6926 VkDeviceMemory* pMemory) {
Jesse Hallf4ab2b12015-11-30 16:04:55 -08006927 assert(pAllocateInfo.sType == VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO)
Jesse Halld27f6aa2015-08-15 17:58:48 -07006928 deviceObject := GetDevice(device)
6929
Jesse Hall3fbc8562015-11-29 22:10:52 -08006930 memory := ?
6931 pMemory[0] = memory
6932 State.DeviceMemories[memory] = new!DeviceMemoryObject(
Jesse Halld27f6aa2015-08-15 17:58:48 -07006933 device: device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08006934 allocationSize: pAllocateInfo[0].allocationSize)
Jesse Halld27f6aa2015-08-15 17:58:48 -07006935
6936 return ?
6937}
6938
6939@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07006940cmd void vkFreeMemory(
Jesse Halld27f6aa2015-08-15 17:58:48 -07006941 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08006942 VkDeviceMemory memory,
6943 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07006944 deviceObject := GetDevice(device)
Jesse Hall3fbc8562015-11-29 22:10:52 -08006945 memoryObject := GetDeviceMemory(memory)
6946 assert(memoryObject.device == device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07006947
6948 // Check that no objects are still bound before freeing.
Jesse Hall3fbc8562015-11-29 22:10:52 -08006949 validate("MemoryCheck", len(memoryObject.boundObjects) == 0,
Jesse Halld27f6aa2015-08-15 17:58:48 -07006950 "vkFreeMemory: objects still bound")
Jesse Hall3fbc8562015-11-29 22:10:52 -08006951 validate("MemoryCheck", len(memoryObject.boundCommandBuffers) == 0,
6952 "vkFreeMemory: commandBuffers still bound")
6953 State.DeviceMemories[memory] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07006954}
6955
6956@threadSafety("app")
6957cmd VkResult vkMapMemory(
6958 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08006959 VkDeviceMemory memory,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07006960 VkDeviceSize offset,
6961 VkDeviceSize size,
Jesse Halld27f6aa2015-08-15 17:58:48 -07006962 VkMemoryMapFlags flags,
6963 void** ppData) {
6964 deviceObject := GetDevice(device)
Jesse Hall3fbc8562015-11-29 22:10:52 -08006965 memoryObject := GetDeviceMemory(memory)
6966 assert(memoryObject.device == device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07006967
6968 assert(flags == as!VkMemoryMapFlags(0))
Jesse Hall3fbc8562015-11-29 22:10:52 -08006969 assert((offset + size) <= memoryObject.allocationSize)
Jesse Halld27f6aa2015-08-15 17:58:48 -07006970
6971 return ?
6972}
6973
6974@threadSafety("app")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07006975cmd void vkUnmapMemory(
Jesse Halld27f6aa2015-08-15 17:58:48 -07006976 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08006977 VkDeviceMemory memory) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07006978 deviceObject := GetDevice(device)
Jesse Hall3fbc8562015-11-29 22:10:52 -08006979 memoryObject := GetDeviceMemory(memory)
6980 assert(memoryObject.device == device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07006981}
6982
6983cmd VkResult vkFlushMappedMemoryRanges(
6984 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08006985 u32 memoryRangeCount
6986 const VkMappedMemoryRange* pMemoryRanges) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07006987 deviceObject := GetDevice(device)
6988
Jesse Hall3fbc8562015-11-29 22:10:52 -08006989 memoryRanges := pMemoryRanges[0:memoryRangeCount]
6990 for i in (0 .. memoryRangeCount) {
6991 memoryRange := memoryRanges[i]
6992 memoryObject := GetDeviceMemory(memoryRange.memory)
6993 assert(memoryObject.device == device)
6994 assert((memoryRange.offset + memoryRange.size) <= memoryObject.allocationSize)
Jesse Halld27f6aa2015-08-15 17:58:48 -07006995 }
6996
6997 return ?
6998}
6999
7000cmd VkResult vkInvalidateMappedMemoryRanges(
7001 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007002 u32 memoryRangeCount,
7003 const VkMappedMemoryRange* pMemoryRanges) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007004 deviceObject := GetDevice(device)
7005
Jesse Hall3fbc8562015-11-29 22:10:52 -08007006 memoryRanges := pMemoryRanges[0:memoryRangeCount]
7007 for i in (0 .. memoryRangeCount) {
7008 memoryRange := memoryRanges[i]
7009 memoryObject := GetDeviceMemory(memoryRange.memory)
7010 assert(memoryObject.device == device)
7011 assert((memoryRange.offset + memoryRange.size) <= memoryObject.allocationSize)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007012 }
7013
7014 return ?
7015}
7016
7017
7018// Memory management API functions
7019
Jesse Hall606a54e2015-11-19 22:17:28 -08007020cmd void vkGetDeviceMemoryCommitment(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007021 VkDevice device,
7022 VkDeviceMemory memory,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007023 VkDeviceSize* pCommittedMemoryInBytes) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007024 deviceObject := GetDevice(device)
7025
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007026 if memory != NULL_HANDLE {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007027 memoryObject := GetDeviceMemory(memory)
7028 assert(memoryObject.device == device)
7029 }
7030
7031 committedMemoryInBytes := ?
7032 pCommittedMemoryInBytes[0] = committedMemoryInBytes
Jesse Halld27f6aa2015-08-15 17:58:48 -07007033}
7034
Jesse Hall606a54e2015-11-19 22:17:28 -08007035cmd void vkGetBufferMemoryRequirements(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007036 VkDevice device,
7037 VkBuffer buffer,
7038 VkMemoryRequirements* pMemoryRequirements) {
7039 deviceObject := GetDevice(device)
7040 bufferObject := GetBuffer(buffer)
7041 assert(bufferObject.device == device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007042}
7043
7044cmd VkResult vkBindBufferMemory(
7045 VkDevice device,
7046 VkBuffer buffer,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007047 VkDeviceMemory memory,
7048 VkDeviceSize memoryOffset) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007049 deviceObject := GetDevice(device)
7050 bufferObject := GetBuffer(buffer)
7051 assert(bufferObject.device == device)
7052
7053 // Unbind buffer from previous memory object, if not VK_NULL_HANDLE.
Jesse Hall3fbc8562015-11-29 22:10:52 -08007054 if bufferObject.memory != NULL_HANDLE {
7055 memoryObject := GetDeviceMemory(bufferObject.memory)
7056 memoryObject.boundObjects[as!u64(buffer)] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07007057 }
7058
7059 // Bind buffer to given memory object, if not VK_NULL_HANDLE.
Jesse Hall3fbc8562015-11-29 22:10:52 -08007060 if memory != NULL_HANDLE {
7061 memoryObject := GetDeviceMemory(memory)
7062 assert(memoryObject.device == device)
7063 memoryObject.boundObjects[as!u64(buffer)] = memoryOffset
Jesse Halld27f6aa2015-08-15 17:58:48 -07007064 }
Jesse Hall3fbc8562015-11-29 22:10:52 -08007065 bufferObject.memory = memory
7066 bufferObject.memoryOffset = memoryOffset
Jesse Halld27f6aa2015-08-15 17:58:48 -07007067
7068 return ?
7069}
7070
Jesse Hall606a54e2015-11-19 22:17:28 -08007071cmd void vkGetImageMemoryRequirements(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007072 VkDevice device,
7073 VkImage image,
7074 VkMemoryRequirements* pMemoryRequirements) {
7075 deviceObject := GetDevice(device)
7076 imageObject := GetImage(image)
7077 assert(imageObject.device == device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007078}
7079
7080cmd VkResult vkBindImageMemory(
7081 VkDevice device,
7082 VkImage image,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007083 VkDeviceMemory memory,
7084 VkDeviceSize memoryOffset) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007085 deviceObject := GetDevice(device)
7086 imageObject := GetImage(image)
7087 assert(imageObject.device == device)
7088
7089 // Unbind image from previous memory object, if not VK_NULL_HANDLE.
Jesse Hall3fbc8562015-11-29 22:10:52 -08007090 if imageObject.memory != NULL_HANDLE {
7091 memoryObject := GetDeviceMemory(imageObject.memory)
7092 memoryObject.boundObjects[as!u64(image)] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07007093 }
7094
7095 // Bind image to given memory object, if not VK_NULL_HANDLE.
Jesse Hall3fbc8562015-11-29 22:10:52 -08007096 if memory != NULL_HANDLE {
7097 memoryObject := GetDeviceMemory(memory)
7098 assert(memoryObject.device == device)
7099 memoryObject.boundObjects[as!u64(image)] = memoryOffset
Jesse Halld27f6aa2015-08-15 17:58:48 -07007100 }
Jesse Hall3fbc8562015-11-29 22:10:52 -08007101 imageObject.memory = memory
7102 imageObject.memoryOffset = memoryOffset
Jesse Halld27f6aa2015-08-15 17:58:48 -07007103
7104 return ?
7105}
7106
Jesse Hall606a54e2015-11-19 22:17:28 -08007107cmd void vkGetImageSparseMemoryRequirements(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007108 VkDevice device,
7109 VkImage image,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007110 u32* pSparseMemoryRequirementCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007111 VkSparseImageMemoryRequirements* pSparseMemoryRequirements) {
7112 deviceObject := GetDevice(device)
7113 imageObject := GetImage(image)
7114 assert(imageObject.device == device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007115}
7116
Jesse Hall606a54e2015-11-19 22:17:28 -08007117cmd void vkGetPhysicalDeviceSparseImageFormatProperties(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007118 VkPhysicalDevice physicalDevice,
7119 VkFormat format,
7120 VkImageType type,
Jesse Hall091ed9e2015-11-30 00:55:29 -08007121 VkSampleCountFlagBits samples,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007122 VkImageUsageFlags usage,
7123 VkImageTiling tiling,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007124 u32* pPropertyCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007125 VkSparseImageFormatProperties* pProperties) {
7126 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007127}
7128
Jesse Halla6429252015-11-29 18:59:42 -08007129cmd VkResult vkQueueBindSparse(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007130 VkQueue queue,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007131 u32 bindInfoCount,
Jesse Halla6429252015-11-29 18:59:42 -08007132 const VkBindSparseInfo* pBindInfo,
7133 VkFence fence) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007134 queueObject := GetQueue(queue)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007135
7136 return ?
7137}
7138
7139
7140// Fence functions
7141
7142@threadSafety("system")
7143cmd VkResult vkCreateFence(
7144 VkDevice device,
7145 const VkFenceCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007146 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007147 VkFence* pFence) {
7148 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_FENCE_CREATE_INFO)
7149 deviceObject := GetDevice(device)
7150
7151 fence := ?
7152 pFence[0] = fence
7153 State.Fences[fence] = new!FenceObject(
Jesse Halld8bade02015-11-24 10:24:18 -08007154 device: device, signaled: (pCreateInfo.flags == as!VkFenceCreateFlags(VK_FENCE_CREATE_SIGNALED_BIT)))
Jesse Halld27f6aa2015-08-15 17:58:48 -07007155
7156 return ?
7157}
7158
7159@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007160cmd void vkDestroyFence(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007161 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007162 VkFence fence,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007163 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007164 deviceObject := GetDevice(device)
7165 fenceObject := GetFence(fence)
7166 assert(fenceObject.device == device)
7167
7168 State.Fences[fence] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07007169}
7170
7171@threadSafety("system")
7172cmd VkResult vkResetFences(
7173 VkDevice device,
7174 u32 fenceCount,
7175 const VkFence* pFences) {
7176 deviceObject := GetDevice(device)
7177
7178 fences := pFences[0:fenceCount]
7179 for i in (0 .. fenceCount) {
7180 fence := fences[i]
7181 fenceObject := GetFence(fence)
7182 assert(fenceObject.device == device)
7183 fenceObject.signaled = false
7184 }
7185
7186 return ?
7187}
7188
7189@threadSafety("system")
7190cmd VkResult vkGetFenceStatus(
7191 VkDevice device,
7192 VkFence fence) {
7193 deviceObject := GetDevice(device)
7194 fenceObject := GetFence(fence)
7195 assert(fenceObject.device == device)
7196
7197 return ?
7198}
7199
7200@threadSafety("system")
7201cmd VkResult vkWaitForFences(
7202 VkDevice device,
7203 u32 fenceCount,
7204 const VkFence* pFences,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007205 VkBool32 waitAll,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007206 u64 timeout) { /// timeout in nanoseconds
7207 deviceObject := GetDevice(device)
7208
7209 fences := pFences[0:fenceCount]
7210 for i in (0 .. fenceCount) {
7211 fence := fences[i]
7212 fenceObject := GetFence(fence)
7213 assert(fenceObject.device == device)
7214 }
7215
7216 return ?
7217}
7218
7219
7220// Queue semaphore functions
7221
7222@threadSafety("system")
7223cmd VkResult vkCreateSemaphore(
7224 VkDevice device,
7225 const VkSemaphoreCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007226 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007227 VkSemaphore* pSemaphore) {
7228 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO)
7229 deviceObject := GetDevice(device)
7230
7231 semaphore := ?
7232 pSemaphore[0] = semaphore
7233 State.Semaphores[semaphore] = new!SemaphoreObject(device: device)
7234
7235 return ?
7236}
7237
7238@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007239cmd void vkDestroySemaphore(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007240 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007241 VkSemaphore semaphore,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007242 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007243 deviceObject := GetDevice(device)
7244 semaphoreObject := GetSemaphore(semaphore)
7245 assert(semaphoreObject.device == device)
7246
7247 State.Semaphores[semaphore] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07007248}
7249
Jesse Halld27f6aa2015-08-15 17:58:48 -07007250
7251// Event functions
7252
7253@threadSafety("system")
7254cmd VkResult vkCreateEvent(
7255 VkDevice device,
7256 const VkEventCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007257 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007258 VkEvent* pEvent) {
7259 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_EVENT_CREATE_INFO)
7260 deviceObject := GetDevice(device)
7261
7262 event := ?
7263 pEvent[0] = event
7264 State.Events[event] = new!EventObject(device: device)
7265
7266 return ?
7267}
7268
7269@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007270cmd void vkDestroyEvent(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007271 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007272 VkEvent event,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007273 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007274 deviceObject := GetDevice(device)
7275 eventObject := GetEvent(event)
7276 assert(eventObject.device == device)
7277
7278 State.Events[event] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07007279}
7280
7281@threadSafety("system")
7282cmd VkResult vkGetEventStatus(
7283 VkDevice device,
7284 VkEvent event) {
7285 deviceObject := GetDevice(device)
7286 eventObject := GetEvent(event)
7287 assert(eventObject.device == device)
7288
7289 return ?
7290}
7291
7292@threadSafety("system")
7293cmd VkResult vkSetEvent(
7294 VkDevice device,
7295 VkEvent event) {
7296 deviceObject := GetDevice(device)
7297 eventObject := GetEvent(event)
7298 assert(eventObject.device == device)
7299
7300 return ?
7301}
7302
7303@threadSafety("system")
7304cmd VkResult vkResetEvent(
7305 VkDevice device,
7306 VkEvent event) {
7307 deviceObject := GetDevice(device)
7308 eventObject := GetEvent(event)
7309 assert(eventObject.device == device)
7310
7311 return ?
7312}
7313
7314
7315// Query functions
7316
7317@threadSafety("system")
7318cmd VkResult vkCreateQueryPool(
7319 VkDevice device,
7320 const VkQueryPoolCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007321 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007322 VkQueryPool* pQueryPool) {
7323 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO)
7324 deviceObject := GetDevice(device)
7325
7326 queryPool := ?
7327 pQueryPool[0] = queryPool
7328 State.QueryPools[queryPool] = new!QueryPoolObject(device: device)
7329
7330 return ?
7331}
7332
7333@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007334cmd void vkDestroyQueryPool(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007335 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007336 VkQueryPool queryPool,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007337 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007338 deviceObject := GetDevice(device)
7339 queryPoolObject := GetQueryPool(queryPool)
7340 assert(queryPoolObject.device == device)
7341
7342 State.QueryPools[queryPool] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07007343}
7344
7345@threadSafety("system")
7346cmd VkResult vkGetQueryPoolResults(
7347 VkDevice device,
7348 VkQueryPool queryPool,
Jesse Hallf9fa9a52016-01-08 16:08:51 -08007349 u32 firstQuery,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007350 u32 queryCount,
Jesse Halla9bb62b2015-11-21 19:31:56 -08007351 platform.size_t dataSize,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007352 void* pData,
Jesse Halla9bb62b2015-11-21 19:31:56 -08007353 VkDeviceSize stride,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007354 VkQueryResultFlags flags) {
7355 deviceObject := GetDevice(device)
7356 queryPoolObject := GetQueryPool(queryPool)
7357 assert(queryPoolObject.device == device)
7358
Jesse Halld27f6aa2015-08-15 17:58:48 -07007359 data := pData[0:dataSize]
7360
7361 return ?
7362}
7363
7364// Buffer functions
7365
7366@threadSafety("system")
7367cmd VkResult vkCreateBuffer(
7368 VkDevice device,
7369 const VkBufferCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007370 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007371 VkBuffer* pBuffer) {
7372 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO)
7373 deviceObject := GetDevice(device)
7374
7375 buffer := ?
7376 pBuffer[0] = buffer
7377 State.Buffers[buffer] = new!BufferObject(device: device)
7378
7379 return ?
7380}
7381
7382@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007383cmd void vkDestroyBuffer(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007384 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007385 VkBuffer buffer,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007386 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007387 deviceObject := GetDevice(device)
7388 bufferObject := GetBuffer(buffer)
7389 assert(bufferObject.device == device)
7390
Jesse Hall3fbc8562015-11-29 22:10:52 -08007391 assert(bufferObject.memory == 0)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007392 State.Buffers[buffer] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07007393}
7394
7395
7396// Buffer view functions
7397
7398@threadSafety("system")
7399cmd VkResult vkCreateBufferView(
7400 VkDevice device,
7401 const VkBufferViewCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007402 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007403 VkBufferView* pView) {
7404 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO)
7405 deviceObject := GetDevice(device)
7406
7407 bufferObject := GetBuffer(pCreateInfo.buffer)
7408 assert(bufferObject.device == device)
7409
7410 view := ?
7411 pView[0] = view
7412 State.BufferViews[view] = new!BufferViewObject(device: device, buffer: pCreateInfo.buffer)
7413
7414 return ?
7415}
7416
7417@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007418cmd void vkDestroyBufferView(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007419 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007420 VkBufferView bufferView,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007421 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007422 deviceObject := GetDevice(device)
7423 bufferViewObject := GetBufferView(bufferView)
7424 assert(bufferViewObject.device == device)
7425
7426 State.BufferViews[bufferView] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07007427}
7428
7429
7430// Image functions
7431
7432@threadSafety("system")
7433cmd VkResult vkCreateImage(
7434 VkDevice device,
7435 const VkImageCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007436 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007437 VkImage* pImage) {
7438 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO)
7439 deviceObject := GetDevice(device)
7440
7441 image := ?
7442 pImage[0] = image
7443 State.Images[image] = new!ImageObject(device: device)
7444
7445 return ?
7446}
7447
7448@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007449cmd void vkDestroyImage(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007450 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007451 VkImage image,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007452 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007453 deviceObject := GetDevice(device)
7454 imageObject := GetImage(image)
7455 assert(imageObject.device == device)
7456
Jesse Hall3fbc8562015-11-29 22:10:52 -08007457 assert(imageObject.memory == 0)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007458 State.Images[image] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07007459}
7460
Jesse Hall606a54e2015-11-19 22:17:28 -08007461cmd void vkGetImageSubresourceLayout(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007462 VkDevice device,
7463 VkImage image,
7464 const VkImageSubresource* pSubresource,
7465 VkSubresourceLayout* pLayout) {
7466 deviceObject := GetDevice(device)
7467 imageObject := GetImage(image)
7468 assert(imageObject.device == device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007469}
7470
7471
7472// Image view functions
7473
7474@threadSafety("system")
7475cmd VkResult vkCreateImageView(
7476 VkDevice device,
7477 const VkImageViewCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007478 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007479 VkImageView* pView) {
7480 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO)
7481 deviceObject := GetDevice(device)
7482
7483 imageObject := GetImage(pCreateInfo.image)
7484 assert(imageObject.device == device)
7485
7486 view := ?
7487 pView[0] = view
7488 State.ImageViews[view] = new!ImageViewObject(device: device, image: pCreateInfo.image)
7489
7490 return ?
7491}
7492
7493@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007494cmd void vkDestroyImageView(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007495 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007496 VkImageView imageView,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007497 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007498 deviceObject := GetDevice(device)
7499 imageViewObject := GetImageView(imageView)
7500 assert(imageViewObject.device == device)
7501
7502 State.ImageViews[imageView] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07007503}
7504
7505
7506// Shader functions
7507
7508cmd VkResult vkCreateShaderModule(
7509 VkDevice device,
7510 const VkShaderModuleCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007511 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007512 VkShaderModule* pShaderModule) {
7513 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO)
7514 deviceObject := GetDevice(device)
7515
7516 shaderModule := ?
7517 pShaderModule[0] = shaderModule
7518 State.ShaderModules[shaderModule] = new!ShaderModuleObject(device: device)
7519
7520 return ?
7521}
7522
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007523cmd void vkDestroyShaderModule(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007524 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007525 VkShaderModule shaderModule,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007526 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007527 deviceObject := GetDevice(device)
7528 shaderModuleObject := GetShaderModule(shaderModule)
7529 assert(shaderModuleObject.device == device)
7530
7531 State.ShaderModules[shaderModule] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07007532}
7533
Jesse Halld27f6aa2015-08-15 17:58:48 -07007534
7535// Pipeline functions
7536
7537cmd VkResult vkCreatePipelineCache(
7538 VkDevice device,
7539 const VkPipelineCacheCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007540 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007541 VkPipelineCache* pPipelineCache) {
7542 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO)
7543 deviceObject := GetDevice(device)
7544
7545 pipelineCache := ?
7546 pPipelineCache[0] = pipelineCache
7547 State.PipelineCaches[pipelineCache] = new!PipelineCacheObject(device: device)
7548
7549 return ?
7550}
7551
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007552cmd void vkDestroyPipelineCache(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007553 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007554 VkPipelineCache pipelineCache,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007555 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007556 deviceObject := GetDevice(device)
7557 pipelineCacheObject := GetPipelineCache(pipelineCache)
7558 assert(pipelineCacheObject.device == device)
7559
7560 State.PipelineCaches[pipelineCache] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07007561}
7562
Jesse Halld27f6aa2015-08-15 17:58:48 -07007563cmd VkResult vkGetPipelineCacheData(
7564 VkDevice device,
7565 VkPipelineCache pipelineCache,
Jesse Halla9bb62b2015-11-21 19:31:56 -08007566 platform.size_t* pDataSize,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007567 void* pData) {
7568 deviceObject := GetDevice(device)
7569 pipelineCacheObject := GetPipelineCache(pipelineCache)
7570 assert(pipelineCacheObject.device == device)
7571
7572 return ?
7573}
7574
7575cmd VkResult vkMergePipelineCaches(
7576 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007577 VkPipelineCache dstCache,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007578 u32 srcCacheCount,
7579 const VkPipelineCache* pSrcCaches) {
7580 deviceObject := GetDevice(device)
Jesse Hall3fbc8562015-11-29 22:10:52 -08007581 dstCacheObject := GetPipelineCache(dstCache)
7582 assert(dstCacheObject.device == device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007583
7584 srcCaches := pSrcCaches[0:srcCacheCount]
7585 for i in (0 .. srcCacheCount) {
7586 srcCache := srcCaches[i]
7587 srcCacheObject := GetPipelineCache(srcCache)
7588 assert(srcCacheObject.device == device)
7589 }
7590
7591 return ?
7592}
7593
7594cmd VkResult vkCreateGraphicsPipelines(
7595 VkDevice device,
7596 VkPipelineCache pipelineCache,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007597 u32 createInfoCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007598 const VkGraphicsPipelineCreateInfo* pCreateInfos,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007599 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007600 VkPipeline* pPipelines) {
7601 deviceObject := GetDevice(device)
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007602 if pipelineCache != NULL_HANDLE {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007603 pipelineCacheObject := GetPipelineCache(pipelineCache)
7604 assert(pipelineCacheObject.device == device)
7605 }
7606
Jesse Hall03b6fe12015-11-24 12:44:21 -08007607 createInfos := pCreateInfos[0:createInfoCount]
7608 pipelines := pPipelines[0:createInfoCount]
7609 for i in (0 .. createInfoCount) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007610 pipeline := ?
7611 pipelines[i] = pipeline
7612 State.Pipelines[pipeline] = new!PipelineObject(device: device)
7613 }
7614
7615 return ?
7616}
7617
7618cmd VkResult vkCreateComputePipelines(
7619 VkDevice device,
7620 VkPipelineCache pipelineCache,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007621 u32 createInfoCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007622 const VkComputePipelineCreateInfo* pCreateInfos,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007623 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007624 VkPipeline* pPipelines) {
7625 deviceObject := GetDevice(device)
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007626 if pipelineCache != NULL_HANDLE {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007627 pipelineCacheObject := GetPipelineCache(pipelineCache)
7628 assert(pipelineCacheObject.device == device)
7629 }
7630
Jesse Hall03b6fe12015-11-24 12:44:21 -08007631 createInfos := pCreateInfos[0:createInfoCount]
7632 pipelines := pPipelines[0:createInfoCount]
7633 for i in (0 .. createInfoCount) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007634 pipeline := ?
7635 pipelines[i] = pipeline
7636 State.Pipelines[pipeline] = new!PipelineObject(device: device)
7637 }
7638
7639 return ?
7640}
7641
7642@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007643cmd void vkDestroyPipeline(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007644 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007645 VkPipeline pipeline,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007646 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007647 deviceObject := GetDevice(device)
7648 pipelineObjects := GetPipeline(pipeline)
7649 assert(pipelineObjects.device == device)
7650
7651 State.Pipelines[pipeline] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07007652}
7653
7654
7655// Pipeline layout functions
7656
7657@threadSafety("system")
7658cmd VkResult vkCreatePipelineLayout(
7659 VkDevice device,
7660 const VkPipelineLayoutCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007661 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007662 VkPipelineLayout* pPipelineLayout) {
7663 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO)
7664 deviceObject := GetDevice(device)
7665
7666 pipelineLayout := ?
7667 pPipelineLayout[0] = pipelineLayout
7668 State.PipelineLayouts[pipelineLayout] = new!PipelineLayoutObject(device: device)
7669
7670 return ?
7671}
7672
7673@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007674cmd void vkDestroyPipelineLayout(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007675 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007676 VkPipelineLayout pipelineLayout,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007677 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007678 deviceObject := GetDevice(device)
7679 pipelineLayoutObjects := GetPipelineLayout(pipelineLayout)
7680 assert(pipelineLayoutObjects.device == device)
7681
7682 State.PipelineLayouts[pipelineLayout] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07007683}
7684
7685
7686// Sampler functions
7687
7688@threadSafety("system")
7689cmd VkResult vkCreateSampler(
7690 VkDevice device,
7691 const VkSamplerCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007692 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007693 VkSampler* pSampler) {
7694 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO)
7695 deviceObject := GetDevice(device)
7696
7697 sampler := ?
7698 pSampler[0] = sampler
7699 State.Samplers[sampler] = new!SamplerObject(device: device)
7700
7701 return ?
7702}
7703
7704@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007705cmd void vkDestroySampler(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007706 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007707 VkSampler sampler,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007708 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007709 deviceObject := GetDevice(device)
7710 samplerObject := GetSampler(sampler)
7711 assert(samplerObject.device == device)
7712
7713 State.Samplers[sampler] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07007714}
7715
7716
7717// Descriptor set functions
7718
7719@threadSafety("system")
7720cmd VkResult vkCreateDescriptorSetLayout(
7721 VkDevice device,
7722 const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007723 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007724 VkDescriptorSetLayout* pSetLayout) {
7725 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO)
7726 deviceObject := GetDevice(device)
7727
7728 setLayout := ?
7729 pSetLayout[0] = setLayout
7730 State.DescriptorSetLayouts[setLayout] = new!DescriptorSetLayoutObject(device: device)
7731
7732 return ?
7733}
7734
7735@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007736cmd void vkDestroyDescriptorSetLayout(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007737 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007738 VkDescriptorSetLayout descriptorSetLayout,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007739 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007740 deviceObject := GetDevice(device)
7741 descriptorSetLayoutObject := GetDescriptorSetLayout(descriptorSetLayout)
7742 assert(descriptorSetLayoutObject.device == device)
7743
7744 State.DescriptorSetLayouts[descriptorSetLayout] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07007745}
7746
7747@threadSafety("system")
7748cmd VkResult vkCreateDescriptorPool(
7749 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007750 const VkDescriptorPoolCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007751 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007752 VkDescriptorPool* pDescriptorPool) {
7753 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO)
7754 deviceObject := GetDevice(device)
7755
7756 descriptorPool := ?
7757 pDescriptorPool[0] = descriptorPool
7758 State.DescriptorPools[descriptorPool] = new!DescriptorPoolObject(device: device)
7759
7760 return ?
7761}
7762
7763@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007764cmd void vkDestroyDescriptorPool(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007765 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007766 VkDescriptorPool descriptorPool,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007767 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007768 deviceObject := GetDevice(device)
7769 descriptorPoolObject := GetDescriptorPool(descriptorPool)
7770 assert(descriptorPoolObject.device == device)
7771
7772 State.DescriptorPools[descriptorPool] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07007773}
7774
7775@threadSafety("app")
7776cmd VkResult vkResetDescriptorPool(
7777 VkDevice device,
Jesse Hallfbf97b02015-11-20 14:17:03 -08007778 VkDescriptorPool descriptorPool,
7779 VkDescriptorPoolResetFlags flags) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007780 deviceObject := GetDevice(device)
7781 descriptorPoolObject := GetDescriptorPool(descriptorPool)
7782 assert(descriptorPoolObject.device == device)
7783
7784 return ?
7785}
7786
7787@threadSafety("app")
Jesse Hall3fbc8562015-11-29 22:10:52 -08007788cmd VkResult vkAllocateDescriptorSets(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007789 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007790 const VkDescriptorSetAllocateInfo* pAllocateInfo,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007791 VkDescriptorSet* pDescriptorSets) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007792 deviceObject := GetDevice(device)
Jesse Hall3fbc8562015-11-29 22:10:52 -08007793 allocInfo := pAllocateInfo[0]
Jesse Hallfbf97b02015-11-20 14:17:03 -08007794 descriptorPoolObject := GetDescriptorPool(allocInfo.descriptorPool)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007795
Jesse Hall03b6fe12015-11-24 12:44:21 -08007796 setLayouts := allocInfo.pSetLayouts[0:allocInfo.setCount]
7797 for i in (0 .. allocInfo.setCount) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007798 setLayout := setLayouts[i]
7799 setLayoutObject := GetDescriptorSetLayout(setLayout)
7800 assert(setLayoutObject.device == device)
7801 }
7802
Jesse Hall03b6fe12015-11-24 12:44:21 -08007803 descriptorSets := pDescriptorSets[0:allocInfo.setCount]
7804 for i in (0 .. allocInfo.setCount) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007805 descriptorSet := ?
7806 descriptorSets[i] = descriptorSet
7807 State.DescriptorSets[descriptorSet] = new!DescriptorSetObject(device: device)
7808 }
7809
7810 return ?
7811}
7812
Jesse Hallf09c6b12015-08-15 19:54:28 -07007813cmd VkResult vkFreeDescriptorSets(
7814 VkDevice device,
7815 VkDescriptorPool descriptorPool,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007816 u32 descriptorSetCount,
Jesse Hallf09c6b12015-08-15 19:54:28 -07007817 const VkDescriptorSet* pDescriptorSets) {
7818 deviceObject := GetDevice(device)
7819 descriptorPoolObject := GetDescriptorPool(descriptorPool)
7820
Jesse Hall03b6fe12015-11-24 12:44:21 -08007821 descriptorSets := pDescriptorSets[0:descriptorSetCount]
7822 for i in (0 .. descriptorSetCount) {
Jesse Hallf09c6b12015-08-15 19:54:28 -07007823 descriptorSet := descriptorSets[i]
7824 descriptorSetObject := GetDescriptorSet(descriptorSet)
7825 assert(descriptorSetObject.device == device)
7826 State.DescriptorSets[descriptorSet] = null
7827 }
7828
7829 return ?
7830}
7831
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007832cmd void vkUpdateDescriptorSets(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007833 VkDevice device,
Jesse Hallb00daad2015-11-29 19:46:20 -08007834 u32 descriptorWriteCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007835 const VkWriteDescriptorSet* pDescriptorWrites,
Jesse Hallb00daad2015-11-29 19:46:20 -08007836 u32 descriptorCopyCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007837 const VkCopyDescriptorSet* pDescriptorCopies) {
7838 deviceObject := GetDevice(device)
7839
Jesse Hallb00daad2015-11-29 19:46:20 -08007840 descriptorWrites := pDescriptorWrites[0:descriptorWriteCount]
7841 for i in (0 .. descriptorWriteCount) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007842 descriptorWrite := descriptorWrites[i]
Jesse Hall3fbc8562015-11-29 22:10:52 -08007843 descriptorWriteObject := GetDescriptorSet(descriptorWrite.dstSet)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007844 assert(descriptorWriteObject.device == device)
7845 }
7846
Jesse Hallb00daad2015-11-29 19:46:20 -08007847 descriptorCopies := pDescriptorCopies[0:descriptorCopyCount]
7848 for i in (0 .. descriptorCopyCount) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007849 descriptorCopy := descriptorCopies[i]
Jesse Hall3fbc8562015-11-29 22:10:52 -08007850 descriptorCopyObject := GetDescriptorSet(descriptorCopy.dstSet)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007851 assert(descriptorCopyObject.device == device)
7852 }
Jesse Halld27f6aa2015-08-15 17:58:48 -07007853}
7854
7855
7856// Framebuffer functions
7857
7858@threadSafety("system")
7859cmd VkResult vkCreateFramebuffer(
7860 VkDevice device,
7861 const VkFramebufferCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007862 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007863 VkFramebuffer* pFramebuffer) {
7864 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO)
7865 deviceObject := GetDevice(device)
7866
7867 framebuffer := ?
7868 pFramebuffer[0] = framebuffer
7869 State.Framebuffers[framebuffer] = new!FramebufferObject(device: device)
7870
7871 return ?
7872}
7873
7874@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007875cmd void vkDestroyFramebuffer(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007876 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007877 VkFramebuffer framebuffer,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007878 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007879 deviceObject := GetDevice(device)
7880 framebufferObject := GetFramebuffer(framebuffer)
7881 assert(framebufferObject.device == device)
7882
7883 State.Framebuffers[framebuffer] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07007884}
7885
7886
7887// Renderpass functions
7888
7889@threadSafety("system")
7890cmd VkResult vkCreateRenderPass(
7891 VkDevice device,
7892 const VkRenderPassCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007893 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007894 VkRenderPass* pRenderPass) {
7895 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO)
7896 deviceObject := GetDevice(device)
7897
7898 renderpass := ?
7899 pRenderPass[0] = renderpass
7900 State.RenderPasses[renderpass] = new!RenderPassObject(device: device)
7901
7902 return ?
7903}
7904
7905@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007906cmd void vkDestroyRenderPass(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007907 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007908 VkRenderPass renderPass,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007909 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007910 deviceObject := GetDevice(device)
7911 renderPassObject := GetRenderPass(renderPass)
7912 assert(renderPassObject.device == device)
7913
7914 State.RenderPasses[renderPass] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07007915}
7916
Jesse Hall606a54e2015-11-19 22:17:28 -08007917cmd void vkGetRenderAreaGranularity(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007918 VkDevice device,
7919 VkRenderPass renderPass,
7920 VkExtent2D* pGranularity) {
7921 deviceObject := GetDevice(device)
7922 renderPassObject := GetRenderPass(renderPass)
7923
7924 granularity := ?
7925 pGranularity[0] = granularity
Jesse Halld27f6aa2015-08-15 17:58:48 -07007926}
7927
7928// Command pool functions
7929
7930cmd VkResult vkCreateCommandPool(
7931 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007932 const VkCommandPoolCreateInfo* pCreateInfo,
7933 const VkAllocationCallbacks* pAllocator,
7934 VkCommandPool* pCommandPool) {
7935 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007936 deviceObject := GetDevice(device)
7937
Jesse Hall3fbc8562015-11-29 22:10:52 -08007938 commandPool := ?
7939 pCommandPool[0] = commandPool
7940 State.CommandPools[commandPool] = new!CommandPoolObject(device: device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007941
7942 return ?
7943}
7944
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007945cmd void vkDestroyCommandPool(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007946 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007947 VkCommandPool commandPool,
7948 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007949 deviceObject := GetDevice(device)
Jesse Hall3fbc8562015-11-29 22:10:52 -08007950 commandPoolObject := GetCommandPool(commandPool)
7951 assert(commandPoolObject.device == device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007952
Jesse Hall3fbc8562015-11-29 22:10:52 -08007953 State.CommandPools[commandPool] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07007954}
7955
7956cmd VkResult vkResetCommandPool(
7957 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007958 VkCommandPool commandPool,
7959 VkCommandPoolResetFlags flags) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007960 deviceObject := GetDevice(device)
Jesse Hall3fbc8562015-11-29 22:10:52 -08007961 commandPoolObject := GetCommandPool(commandPool)
7962 assert(commandPoolObject.device == device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007963
7964 return ?
7965}
7966
7967// Command buffer functions
7968
Jesse Hall3fbc8562015-11-29 22:10:52 -08007969macro void bindCommandBuffer(VkCommandBuffer commandBuffer, any obj, VkDeviceMemory memory) {
7970 memoryObject := GetDeviceMemory(memory)
7971 memoryObject.boundCommandBuffers[commandBuffer] = commandBuffer
Jesse Halld27f6aa2015-08-15 17:58:48 -07007972
Jesse Hall3fbc8562015-11-29 22:10:52 -08007973 commandBufferObject := GetCommandBuffer(commandBuffer)
7974 commandBufferObject.boundObjects[as!u64(obj)] = memory
Jesse Halld27f6aa2015-08-15 17:58:48 -07007975}
7976
Jesse Hall3fbc8562015-11-29 22:10:52 -08007977macro void unbindCommandBuffer(VkCommandBuffer commandBuffer, any obj, VkDeviceMemory memory) {
7978 memoryObject := GetDeviceMemory(memory)
7979 memoryObject.boundCommandBuffers[commandBuffer] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07007980
Jesse Hall3fbc8562015-11-29 22:10:52 -08007981 commandBufferObject := GetCommandBuffer(commandBuffer)
7982 commandBufferObject.boundObjects[as!u64(obj)] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07007983}
7984
7985@threadSafety("system")
Jesse Hall3fbc8562015-11-29 22:10:52 -08007986cmd VkResult vkAllocateCommandBuffers(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007987 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007988 const VkCommandBufferAllocateInfo* pAllocateInfo,
7989 VkCommandBuffer* pCommandBuffers) {
Jesse Hallf4ab2b12015-11-30 16:04:55 -08007990 assert(pAllocateInfo[0].sType == VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007991
Jesse Hall3dd678a2016-01-08 21:52:01 -08007992 count := pAllocateInfo[0].commandBufferCount
Jesse Hall3fbc8562015-11-29 22:10:52 -08007993 commandBuffers := pCommandBuffers[0:count]
Jesse Hallfbf97b02015-11-20 14:17:03 -08007994 for i in (0 .. count) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08007995 commandBuffer := ?
7996 commandBuffers[i] = commandBuffer
7997 State.CommandBuffers[commandBuffer] = new!CommandBufferObject(device: device)
Jesse Hallfbf97b02015-11-20 14:17:03 -08007998 }
Jesse Halld27f6aa2015-08-15 17:58:48 -07007999
8000 return ?
8001}
8002
8003@threadSafety("system")
Jesse Hallfbf97b02015-11-20 14:17:03 -08008004cmd void vkFreeCommandBuffers(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008005 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008006 VkCommandPool commandPool,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008007 u32 commandBufferCount,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008008 const VkCommandBuffer* pCommandBuffers) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008009 deviceObject := GetDevice(device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008010
Jesse Hall3fbc8562015-11-29 22:10:52 -08008011 commandBuffers := pCommandBuffers[0:commandBufferCount]
Jesse Hall03b6fe12015-11-24 12:44:21 -08008012 for i in (0 .. commandBufferCount) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008013 commandBufferObject := GetCommandBuffer(commandBuffers[i])
8014 assert(commandBufferObject.device == device)
Jesse Hallfbf97b02015-11-20 14:17:03 -08008015 // TODO: iterate over boundObjects and clear memory bindings
Jesse Hall3fbc8562015-11-29 22:10:52 -08008016 State.CommandBuffers[commandBuffers[i]] = null
Jesse Hallfbf97b02015-11-20 14:17:03 -08008017 }
Jesse Halld27f6aa2015-08-15 17:58:48 -07008018}
8019
8020@threadSafety("app")
8021cmd VkResult vkBeginCommandBuffer(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008022 VkCommandBuffer commandBuffer,
8023 const VkCommandBufferBeginInfo* pBeginInfo) {
8024 assert(pBeginInfo.sType == VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO)
8025 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008026
8027 // TODO: iterate over boundObjects and clear memory bindings
8028
8029 return ?
8030}
8031
8032@threadSafety("app")
8033cmd VkResult vkEndCommandBuffer(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008034 VkCommandBuffer commandBuffer) {
8035 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008036
8037 return ?
8038}
8039
8040@threadSafety("app")
8041cmd VkResult vkResetCommandBuffer(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008042 VkCommandBuffer commandBuffer,
8043 VkCommandBufferResetFlags flags) {
8044 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008045
8046 // TODO: iterate over boundObjects and clear memory bindings
8047
8048 return ?
8049}
8050
8051
8052// Command buffer building functions
8053
8054@threadSafety("app")
8055cmd void vkCmdBindPipeline(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008056 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008057 VkPipelineBindPoint pipelineBindPoint,
8058 VkPipeline pipeline) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008059 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008060 pipelineObject := GetPipeline(pipeline)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008061 assert(commandBufferObject.device == pipelineObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008062
Jesse Halld8bade02015-11-24 10:24:18 -08008063 queue := switch (pipelineBindPoint) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008064 case VK_PIPELINE_BIND_POINT_COMPUTE: VK_QUEUE_COMPUTE_BIT
8065 case VK_PIPELINE_BIND_POINT_GRAPHICS: VK_QUEUE_GRAPHICS_BIT
8066 }
Jesse Hall3fbc8562015-11-29 22:10:52 -08008067 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, queue)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008068}
8069
8070@threadSafety("app")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008071cmd void vkCmdSetViewport(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008072 VkCommandBuffer commandBuffer,
Jesse Hallf9fa9a52016-01-08 16:08:51 -08008073 u32 firstViewport,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008074 u32 viewportCount,
8075 const VkViewport* pViewports) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008076 commandBufferObject := GetCommandBuffer(commandBuffer)
8077 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008078}
8079
8080@threadSafety("app")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008081cmd void vkCmdSetScissor(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008082 VkCommandBuffer commandBuffer,
Jesse Hallf9fa9a52016-01-08 16:08:51 -08008083 u32 firstScissor,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008084 u32 scissorCount,
8085 const VkRect2D* pScissors) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008086 commandBufferObject := GetCommandBuffer(commandBuffer)
8087 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008088}
8089
8090@threadSafety("app")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008091cmd void vkCmdSetLineWidth(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008092 VkCommandBuffer commandBuffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008093 f32 lineWidth) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008094 commandBufferObject := GetCommandBuffer(commandBuffer)
8095 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008096}
8097
8098@threadSafety("app")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008099cmd void vkCmdSetDepthBias(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008100 VkCommandBuffer commandBuffer,
Jesse Halla9bb62b2015-11-21 19:31:56 -08008101 f32 depthBiasConstantFactor,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008102 f32 depthBiasClamp,
Jesse Halla9bb62b2015-11-21 19:31:56 -08008103 f32 depthBiasSlopeFactor) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008104 commandBufferObject := GetCommandBuffer(commandBuffer)
8105 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008106}
Jesse Halld27f6aa2015-08-15 17:58:48 -07008107
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008108@threadSafety("app")
8109cmd void vkCmdSetBlendConstants(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008110 VkCommandBuffer commandBuffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008111 // TODO(jessehall): apic only supports 'const' on pointer types. Using
8112 // an annotation as a quick hack to pass this to the template without
8113 // having to modify the AST and semantic model.
Jesse Hallb00daad2015-11-29 19:46:20 -08008114 @readonly f32[4] blendConstants) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008115 commandBufferObject := GetCommandBuffer(commandBuffer)
8116 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008117}
8118
8119@threadSafety("app")
8120cmd void vkCmdSetDepthBounds(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008121 VkCommandBuffer commandBuffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008122 f32 minDepthBounds,
8123 f32 maxDepthBounds) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008124 commandBufferObject := GetCommandBuffer(commandBuffer)
8125 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008126}
8127
8128@threadSafety("app")
8129cmd void vkCmdSetStencilCompareMask(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008130 VkCommandBuffer commandBuffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008131 VkStencilFaceFlags faceMask,
Jesse Hall65ab5522015-11-30 00:07:16 -08008132 u32 compareMask) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008133 commandBufferObject := GetCommandBuffer(commandBuffer)
8134 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008135}
8136
8137@threadSafety("app")
8138cmd void vkCmdSetStencilWriteMask(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008139 VkCommandBuffer commandBuffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008140 VkStencilFaceFlags faceMask,
Jesse Hall65ab5522015-11-30 00:07:16 -08008141 u32 writeMask) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008142 commandBufferObject := GetCommandBuffer(commandBuffer)
8143 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008144}
8145
8146@threadSafety("app")
8147cmd void vkCmdSetStencilReference(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008148 VkCommandBuffer commandBuffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008149 VkStencilFaceFlags faceMask,
Jesse Hall65ab5522015-11-30 00:07:16 -08008150 u32 reference) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008151 commandBufferObject := GetCommandBuffer(commandBuffer)
8152 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008153}
8154
8155@threadSafety("app")
8156cmd void vkCmdBindDescriptorSets(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008157 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008158 VkPipelineBindPoint pipelineBindPoint,
8159 VkPipelineLayout layout,
8160 u32 firstSet,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008161 u32 descriptorSetCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008162 const VkDescriptorSet* pDescriptorSets,
8163 u32 dynamicOffsetCount,
8164 const u32* pDynamicOffsets) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008165 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008166
Jesse Hall03b6fe12015-11-24 12:44:21 -08008167 descriptorSets := pDescriptorSets[0:descriptorSetCount]
8168 for i in (0 .. descriptorSetCount) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008169 descriptorSet := descriptorSets[i]
8170 descriptorSetObject := GetDescriptorSet(descriptorSet)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008171 assert(commandBufferObject.device == descriptorSetObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008172 }
8173
8174 dynamicOffsets := pDynamicOffsets[0:dynamicOffsetCount]
8175 for i in (0 .. dynamicOffsetCount) {
8176 dynamicOffset := dynamicOffsets[i]
8177 }
8178
Jesse Halld8bade02015-11-24 10:24:18 -08008179 queue := switch (pipelineBindPoint) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008180 case VK_PIPELINE_BIND_POINT_COMPUTE: VK_QUEUE_COMPUTE_BIT
8181 case VK_PIPELINE_BIND_POINT_GRAPHICS: VK_QUEUE_GRAPHICS_BIT
8182 }
Jesse Hall3fbc8562015-11-29 22:10:52 -08008183 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, queue)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008184}
8185
8186@threadSafety("app")
8187cmd void vkCmdBindIndexBuffer(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008188 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008189 VkBuffer buffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008190 VkDeviceSize offset,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008191 VkIndexType indexType) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008192 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008193 bufferObject := GetBuffer(buffer)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008194 assert(commandBufferObject.device == bufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008195
Jesse Hall3fbc8562015-11-29 22:10:52 -08008196 bindCommandBuffer(commandBuffer, buffer, bufferObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008197
Jesse Hall3fbc8562015-11-29 22:10:52 -08008198 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008199}
8200
8201@threadSafety("app")
8202cmd void vkCmdBindVertexBuffers(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008203 VkCommandBuffer commandBuffer,
Jesse Hallf9fa9a52016-01-08 16:08:51 -08008204 u32 firstBinding,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008205 u32 bindingCount,
8206 const VkBuffer* pBuffers,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008207 const VkDeviceSize* pOffsets) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008208 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008209
Jesse Hallf9fa9a52016-01-08 16:08:51 -08008210 // TODO: check if not [firstBinding:firstBinding+bindingCount]
Jesse Halld27f6aa2015-08-15 17:58:48 -07008211 buffers := pBuffers[0:bindingCount]
8212 offsets := pOffsets[0:bindingCount]
8213 for i in (0 .. bindingCount) {
8214 buffer := buffers[i]
8215 offset := offsets[i]
8216 bufferObject := GetBuffer(buffer)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008217 assert(commandBufferObject.device == bufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008218
Jesse Hall3fbc8562015-11-29 22:10:52 -08008219 bindCommandBuffer(commandBuffer, buffer, bufferObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008220 }
8221
Jesse Hall3fbc8562015-11-29 22:10:52 -08008222 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008223}
8224
8225@threadSafety("app")
8226cmd void vkCmdDraw(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008227 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008228 u32 vertexCount,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008229 u32 instanceCount,
8230 u32 firstVertex,
8231 u32 firstInstance) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008232 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008233
Jesse Hall3fbc8562015-11-29 22:10:52 -08008234 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008235}
8236
8237@threadSafety("app")
8238cmd void vkCmdDrawIndexed(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008239 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008240 u32 indexCount,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008241 u32 instanceCount,
8242 u32 firstIndex,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008243 s32 vertexOffset,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008244 u32 firstInstance) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008245 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008246
Jesse Hall3fbc8562015-11-29 22:10:52 -08008247 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008248}
8249
8250@threadSafety("app")
8251cmd void vkCmdDrawIndirect(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008252 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008253 VkBuffer buffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008254 VkDeviceSize offset,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008255 u32 drawCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008256 u32 stride) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008257 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008258 bufferObject := GetBuffer(buffer)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008259 assert(commandBufferObject.device == bufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008260
Jesse Hall3fbc8562015-11-29 22:10:52 -08008261 bindCommandBuffer(commandBuffer, buffer, bufferObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008262
Jesse Hall3fbc8562015-11-29 22:10:52 -08008263 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008264}
8265
8266@threadSafety("app")
8267cmd void vkCmdDrawIndexedIndirect(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008268 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008269 VkBuffer buffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008270 VkDeviceSize offset,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008271 u32 drawCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008272 u32 stride) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008273 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008274 bufferObject := GetBuffer(buffer)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008275 assert(commandBufferObject.device == bufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008276
Jesse Hall3fbc8562015-11-29 22:10:52 -08008277 bindCommandBuffer(commandBuffer, buffer, bufferObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008278
Jesse Hall3fbc8562015-11-29 22:10:52 -08008279 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008280}
8281
8282@threadSafety("app")
8283cmd void vkCmdDispatch(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008284 VkCommandBuffer commandBuffer,
Jesse Hallad250842017-03-10 18:35:38 -08008285 u32 groupCountX,
8286 u32 groupCountY,
8287 u32 groupCountZ) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008288 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008289
Jesse Hall3fbc8562015-11-29 22:10:52 -08008290 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_COMPUTE_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008291}
8292
8293@threadSafety("app")
8294cmd void vkCmdDispatchIndirect(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008295 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008296 VkBuffer buffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008297 VkDeviceSize offset) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008298 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008299 bufferObject := GetBuffer(buffer)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008300 assert(commandBufferObject.device == bufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008301
Jesse Hall3fbc8562015-11-29 22:10:52 -08008302 bindCommandBuffer(commandBuffer, buffer, bufferObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008303
Jesse Hall3fbc8562015-11-29 22:10:52 -08008304 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_COMPUTE_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008305}
8306
8307@threadSafety("app")
8308cmd void vkCmdCopyBuffer(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008309 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008310 VkBuffer srcBuffer,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008311 VkBuffer dstBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008312 u32 regionCount,
8313 const VkBufferCopy* pRegions) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008314 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008315 srcBufferObject := GetBuffer(srcBuffer)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008316 dstBufferObject := GetBuffer(dstBuffer)
8317 assert(commandBufferObject.device == srcBufferObject.device)
8318 assert(commandBufferObject.device == dstBufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008319
8320 regions := pRegions[0:regionCount]
8321 for i in (0 .. regionCount) {
8322 region := regions[i]
8323 }
8324
Jesse Hall3fbc8562015-11-29 22:10:52 -08008325 bindCommandBuffer(commandBuffer, srcBuffer, srcBufferObject.memory)
8326 bindCommandBuffer(commandBuffer, dstBuffer, dstBufferObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008327
Jesse Hall65ab5522015-11-30 00:07:16 -08008328 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_TRANSFER_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008329}
8330
8331@threadSafety("app")
8332cmd void vkCmdCopyImage(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008333 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008334 VkImage srcImage,
8335 VkImageLayout srcImageLayout,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008336 VkImage dstImage,
8337 VkImageLayout dstImageLayout,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008338 u32 regionCount,
8339 const VkImageCopy* pRegions) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008340 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008341 srcImageObject := GetImage(srcImage)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008342 dstImageObject := GetImage(dstImage)
8343 assert(commandBufferObject.device == srcImageObject.device)
8344 assert(commandBufferObject.device == dstImageObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008345
8346 regions := pRegions[0:regionCount]
8347 for i in (0 .. regionCount) {
8348 region := regions[i]
8349 }
8350
Jesse Hall3fbc8562015-11-29 22:10:52 -08008351 bindCommandBuffer(commandBuffer, srcImage, srcImageObject.memory)
8352 bindCommandBuffer(commandBuffer, dstImage, dstImageObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008353
Jesse Hall65ab5522015-11-30 00:07:16 -08008354 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_TRANSFER_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008355}
8356
8357@threadSafety("app")
8358cmd void vkCmdBlitImage(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008359 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008360 VkImage srcImage,
8361 VkImageLayout srcImageLayout,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008362 VkImage dstImage,
8363 VkImageLayout dstImageLayout,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008364 u32 regionCount,
8365 const VkImageBlit* pRegions,
Jesse Hall23ff73f2015-11-29 14:36:39 -08008366 VkFilter filter) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008367 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008368 srcImageObject := GetImage(srcImage)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008369 dstImageObject := GetImage(dstImage)
8370 assert(commandBufferObject.device == srcImageObject.device)
8371 assert(commandBufferObject.device == dstImageObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008372
8373 regions := pRegions[0:regionCount]
8374 for i in (0 .. regionCount) {
8375 region := regions[i]
8376 }
8377
Jesse Hall3fbc8562015-11-29 22:10:52 -08008378 bindCommandBuffer(commandBuffer, srcImage, srcImageObject.memory)
8379 bindCommandBuffer(commandBuffer, dstImage, dstImageObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008380
Jesse Hall3fbc8562015-11-29 22:10:52 -08008381 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008382}
8383
8384@threadSafety("app")
8385cmd void vkCmdCopyBufferToImage(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008386 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008387 VkBuffer srcBuffer,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008388 VkImage dstImage,
8389 VkImageLayout dstImageLayout,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008390 u32 regionCount,
8391 const VkBufferImageCopy* pRegions) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008392 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008393 srcBufferObject := GetBuffer(srcBuffer)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008394 dstImageObject := GetImage(dstImage)
8395 assert(commandBufferObject.device == srcBufferObject.device)
8396 assert(commandBufferObject.device == dstImageObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008397
8398 regions := pRegions[0:regionCount]
8399 for i in (0 .. regionCount) {
8400 region := regions[i]
8401 }
8402
Jesse Hall3fbc8562015-11-29 22:10:52 -08008403 bindCommandBuffer(commandBuffer, srcBuffer, srcBufferObject.memory)
8404 bindCommandBuffer(commandBuffer, dstImage, dstImageObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008405
Jesse Hall65ab5522015-11-30 00:07:16 -08008406 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_TRANSFER_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008407}
8408
8409@threadSafety("app")
8410cmd void vkCmdCopyImageToBuffer(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008411 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008412 VkImage srcImage,
8413 VkImageLayout srcImageLayout,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008414 VkBuffer dstBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008415 u32 regionCount,
8416 const VkBufferImageCopy* pRegions) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008417 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008418 srcImageObject := GetImage(srcImage)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008419 dstBufferObject := GetBuffer(dstBuffer)
8420 assert(commandBufferObject.device == srcImageObject.device)
8421 assert(commandBufferObject.device == dstBufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008422
8423 regions := pRegions[0:regionCount]
8424 for i in (0 .. regionCount) {
8425 region := regions[i]
8426 }
8427
Jesse Hall3fbc8562015-11-29 22:10:52 -08008428 bindCommandBuffer(commandBuffer, srcImage, srcImageObject.memory)
8429 bindCommandBuffer(commandBuffer, dstBuffer, dstBufferObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008430
Jesse Hall65ab5522015-11-30 00:07:16 -08008431 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_TRANSFER_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008432}
8433
8434@threadSafety("app")
8435cmd void vkCmdUpdateBuffer(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008436 VkCommandBuffer commandBuffer,
8437 VkBuffer dstBuffer,
8438 VkDeviceSize dstOffset,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008439 VkDeviceSize dataSize,
Jesse Hall56d386a2016-07-26 15:20:40 -07008440 const void* pData) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008441 commandBufferObject := GetCommandBuffer(commandBuffer)
8442 dstBufferObject := GetBuffer(dstBuffer)
8443 assert(commandBufferObject.device == dstBufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008444
8445 data := pData[0:dataSize]
8446
Jesse Hall3fbc8562015-11-29 22:10:52 -08008447 bindCommandBuffer(commandBuffer, dstBuffer, dstBufferObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008448
Jesse Hall65ab5522015-11-30 00:07:16 -08008449 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_TRANSFER_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008450}
8451
8452@threadSafety("app")
8453cmd void vkCmdFillBuffer(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008454 VkCommandBuffer commandBuffer,
8455 VkBuffer dstBuffer,
8456 VkDeviceSize dstOffset,
Jesse Hallb00daad2015-11-29 19:46:20 -08008457 VkDeviceSize size,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008458 u32 data) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008459 commandBufferObject := GetCommandBuffer(commandBuffer)
8460 dstBufferObject := GetBuffer(dstBuffer)
8461 assert(commandBufferObject.device == dstBufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008462
Jesse Hall65ab5522015-11-30 00:07:16 -08008463 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_TRANSFER_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008464}
8465
8466@threadSafety("app")
8467cmd void vkCmdClearColorImage(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008468 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008469 VkImage image,
8470 VkImageLayout imageLayout,
8471 const VkClearColorValue* pColor,
8472 u32 rangeCount,
8473 const VkImageSubresourceRange* pRanges) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008474 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008475 imageObject := GetImage(image)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008476 assert(commandBufferObject.device == imageObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008477
8478 ranges := pRanges[0:rangeCount]
8479 for i in (0 .. rangeCount) {
8480 range := ranges[i]
8481 }
8482
Jesse Hall3fbc8562015-11-29 22:10:52 -08008483 bindCommandBuffer(commandBuffer, image, imageObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008484
Jesse Hall3fbc8562015-11-29 22:10:52 -08008485 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008486}
8487
8488@threadSafety("app")
8489cmd void vkCmdClearDepthStencilImage(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008490 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008491 VkImage image,
8492 VkImageLayout imageLayout,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008493 const VkClearDepthStencilValue* pDepthStencil,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008494 u32 rangeCount,
8495 const VkImageSubresourceRange* pRanges) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008496 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008497 imageObject := GetImage(image)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008498 assert(commandBufferObject.device == imageObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008499
8500 ranges := pRanges[0:rangeCount]
8501 for i in (0 .. rangeCount) {
8502 range := ranges[i]
8503 }
8504
Jesse Hall3fbc8562015-11-29 22:10:52 -08008505 bindCommandBuffer(commandBuffer, image, imageObject.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")
Jesse Hallae38f732015-11-19 21:32:50 -08008511cmd void vkCmdClearAttachments(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008512 VkCommandBuffer commandBuffer,
Jesse Hallae38f732015-11-19 21:32:50 -08008513 u32 attachmentCount,
8514 const VkClearAttachment* pAttachments,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008515 u32 rectCount,
Jesse Halla15a4bf2015-11-19 22:48:02 -08008516 const VkClearRect* pRects) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008517 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008518
8519 rects := pRects[0:rectCount]
8520 for i in (0 .. rectCount) {
8521 rect := rects[i]
8522 }
8523
Jesse Hall3fbc8562015-11-29 22:10:52 -08008524 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008525}
8526
8527@threadSafety("app")
8528cmd void vkCmdResolveImage(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008529 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008530 VkImage srcImage,
8531 VkImageLayout srcImageLayout,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008532 VkImage dstImage,
8533 VkImageLayout dstImageLayout,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008534 u32 regionCount,
8535 const VkImageResolve* pRegions) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008536 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008537 srcImageObject := GetImage(srcImage)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008538 dstImageObject := GetImage(dstImage)
8539 assert(commandBufferObject.device == srcImageObject.device)
8540 assert(commandBufferObject.device == dstImageObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008541
8542 regions := pRegions[0:regionCount]
8543 for i in (0 .. regionCount) {
8544 region := regions[i]
8545 }
8546
Jesse Hall3fbc8562015-11-29 22:10:52 -08008547 bindCommandBuffer(commandBuffer, srcImage, srcImageObject.memory)
8548 bindCommandBuffer(commandBuffer, dstImage, dstImageObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008549
Jesse Hall3fbc8562015-11-29 22:10:52 -08008550 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008551}
8552
8553@threadSafety("app")
8554cmd void vkCmdSetEvent(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008555 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008556 VkEvent event,
8557 VkPipelineStageFlags stageMask) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008558 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008559 eventObject := GetEvent(event)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008560 assert(commandBufferObject.device == eventObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008561}
8562
8563@threadSafety("app")
8564cmd void vkCmdResetEvent(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008565 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008566 VkEvent event,
8567 VkPipelineStageFlags stageMask) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008568 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008569 eventObject := GetEvent(event)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008570 assert(commandBufferObject.device == eventObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008571}
8572
8573@threadSafety("app")
8574cmd void vkCmdWaitEvents(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008575 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008576 u32 eventCount,
8577 const VkEvent* pEvents,
8578 VkPipelineStageFlags srcStageMask,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008579 VkPipelineStageFlags dstStageMask,
8580 u32 memoryBarrierCount,
Jesse Hall3dd678a2016-01-08 21:52:01 -08008581 const VkMemoryBarrier* pMemoryBarriers,
8582 u32 bufferMemoryBarrierCount,
8583 const VkBufferMemoryBarrier* pBufferMemoryBarriers,
8584 u32 imageMemoryBarrierCount,
8585 const VkImageMemoryBarrier* pImageMemoryBarriers) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008586 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008587
8588 events := pEvents[0:eventCount]
8589 for i in (0 .. eventCount) {
8590 event := events[i]
8591 eventObject := GetEvent(event)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008592 assert(commandBufferObject.device == eventObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008593 }
8594
Jesse Hall3dd678a2016-01-08 21:52:01 -08008595 memoryBarriers := pMemoryBarriers[0:memoryBarrierCount]
Jesse Hall3fbc8562015-11-29 22:10:52 -08008596 for i in (0 .. memoryBarrierCount) {
Jesse Hall3dd678a2016-01-08 21:52:01 -08008597 memoryBarrier := memoryBarriers[i]
8598 }
8599 bufferMemoryBarriers := pBufferMemoryBarriers[0:bufferMemoryBarrierCount]
8600 for i in (0 .. bufferMemoryBarrierCount) {
8601 bufferMemoryBarrier := bufferMemoryBarriers[i]
8602 bufferObject := GetBuffer(bufferMemoryBarrier.buffer)
8603 assert(bufferObject.device == commandBufferObject.device)
8604 }
8605 imageMemoryBarriers := pImageMemoryBarriers[0:imageMemoryBarrierCount]
8606 for i in (0 .. imageMemoryBarrierCount) {
8607 imageMemoryBarrier := imageMemoryBarriers[i]
8608 imageObject := GetImage(imageMemoryBarrier.image)
8609 assert(imageObject.device == commandBufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008610 }
8611}
8612
8613@threadSafety("app")
8614cmd void vkCmdPipelineBarrier(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008615 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008616 VkPipelineStageFlags srcStageMask,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008617 VkPipelineStageFlags dstStageMask,
Jesse Halldc6d36c2015-11-29 19:12:15 -08008618 VkDependencyFlags dependencyFlags,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008619 u32 memoryBarrierCount,
Jesse Hall3dd678a2016-01-08 21:52:01 -08008620 const VkMemoryBarrier* pMemoryBarriers,
8621 u32 bufferMemoryBarrierCount,
8622 const VkBufferMemoryBarrier* pBufferMemoryBarriers,
8623 u32 imageMemoryBarrierCount,
8624 const VkImageMemoryBarrier* pImageMemoryBarriers) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008625 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008626
Jesse Hall3dd678a2016-01-08 21:52:01 -08008627 memoryBarriers := pMemoryBarriers[0:memoryBarrierCount]
Jesse Hall3fbc8562015-11-29 22:10:52 -08008628 for i in (0 .. memoryBarrierCount) {
Jesse Hall3dd678a2016-01-08 21:52:01 -08008629 memoryBarrier := memoryBarriers[i]
8630 }
8631 bufferMemoryBarriers := pBufferMemoryBarriers[0:bufferMemoryBarrierCount]
8632 for i in (0 .. bufferMemoryBarrierCount) {
8633 bufferMemoryBarrier := bufferMemoryBarriers[i]
8634 bufferObject := GetBuffer(bufferMemoryBarrier.buffer)
8635 assert(bufferObject.device == commandBufferObject.device)
8636 }
8637 imageMemoryBarriers := pImageMemoryBarriers[0:imageMemoryBarrierCount]
8638 for i in (0 .. imageMemoryBarrierCount) {
8639 imageMemoryBarrier := imageMemoryBarriers[i]
8640 imageObject := GetImage(imageMemoryBarrier.image)
8641 assert(imageObject.device == commandBufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008642 }
8643}
8644
8645@threadSafety("app")
8646cmd void vkCmdBeginQuery(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008647 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008648 VkQueryPool queryPool,
Jesse Hall3dd678a2016-01-08 21:52:01 -08008649 u32 query,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008650 VkQueryControlFlags flags) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008651 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008652 queryPoolObject := GetQueryPool(queryPool)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008653 assert(commandBufferObject.device == queryPoolObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008654}
8655
8656@threadSafety("app")
8657cmd void vkCmdEndQuery(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008658 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008659 VkQueryPool queryPool,
Jesse Hall3dd678a2016-01-08 21:52:01 -08008660 u32 query) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008661 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008662 queryPoolObject := GetQueryPool(queryPool)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008663 assert(commandBufferObject.device == queryPoolObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008664}
8665
8666@threadSafety("app")
8667cmd void vkCmdResetQueryPool(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008668 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008669 VkQueryPool queryPool,
Jesse Hallf9fa9a52016-01-08 16:08:51 -08008670 u32 firstQuery,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008671 u32 queryCount) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008672 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008673 queryPoolObject := GetQueryPool(queryPool)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008674 assert(commandBufferObject.device == queryPoolObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008675}
8676
8677@threadSafety("app")
8678cmd void vkCmdWriteTimestamp(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008679 VkCommandBuffer commandBuffer,
Jesse Hall6f39a6d2015-11-24 11:08:36 -08008680 VkPipelineStageFlagBits pipelineStage,
Jesse Halla3a7a1d2015-11-24 11:37:23 -08008681 VkQueryPool queryPool,
Jesse Hall3dd678a2016-01-08 21:52:01 -08008682 u32 query) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008683 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halla3a7a1d2015-11-24 11:37:23 -08008684 queryPoolObject := GetQueryPool(queryPool)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008685 assert(commandBufferObject.device == queryPoolObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008686}
8687
8688@threadSafety("app")
8689cmd void vkCmdCopyQueryPoolResults(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008690 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008691 VkQueryPool queryPool,
Jesse Hallf9fa9a52016-01-08 16:08:51 -08008692 u32 firstQuery,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008693 u32 queryCount,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008694 VkBuffer dstBuffer,
8695 VkDeviceSize dstOffset,
Jesse Halla9bb62b2015-11-21 19:31:56 -08008696 VkDeviceSize stride,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008697 VkQueryResultFlags flags) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008698 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008699 queryPoolObject := GetQueryPool(queryPool)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008700 dstBufferObject := GetBuffer(dstBuffer)
8701 assert(commandBufferObject.device == queryPoolObject.device)
8702 assert(commandBufferObject.device == dstBufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008703}
8704
8705cmd void vkCmdPushConstants(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008706 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008707 VkPipelineLayout layout,
8708 VkShaderStageFlags stageFlags,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008709 u32 offset,
8710 u32 size,
Jesse Hallf4ab2b12015-11-30 16:04:55 -08008711 const void* pValues) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008712 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008713 layoutObject := GetPipelineLayout(layout)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008714 assert(commandBufferObject.device == layoutObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008715}
8716
8717@threadSafety("app")
8718cmd void vkCmdBeginRenderPass(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008719 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008720 const VkRenderPassBeginInfo* pRenderPassBegin,
Jesse Hall65ab5522015-11-30 00:07:16 -08008721 VkSubpassContents contents) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008722 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008723 renderPassObject := GetRenderPass(pRenderPassBegin.renderPass)
8724 framebufferObject := GetFramebuffer(pRenderPassBegin.framebuffer)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008725 assert(commandBufferObject.device == renderPassObject.device)
8726 assert(commandBufferObject.device == framebufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008727
Jesse Hall3fbc8562015-11-29 22:10:52 -08008728 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008729}
8730
8731cmd void vkCmdNextSubpass(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008732 VkCommandBuffer commandBuffer,
Jesse Hall65ab5522015-11-30 00:07:16 -08008733 VkSubpassContents contents) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008734 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008735}
8736
8737@threadSafety("app")
8738cmd void vkCmdEndRenderPass(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008739 VkCommandBuffer commandBuffer) {
8740 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008741
Jesse Hall3fbc8562015-11-29 22:10:52 -08008742 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008743}
8744
8745cmd void vkCmdExecuteCommands(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008746 VkCommandBuffer commandBuffer,
Jesse Hall3dd678a2016-01-08 21:52:01 -08008747 u32 commandBufferCount,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008748 const VkCommandBuffer* pCommandBuffers) {
8749 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008750
Jesse Hall3dd678a2016-01-08 21:52:01 -08008751 commandBuffers := pCommandBuffers[0:commandBufferCount]
8752 for i in (0 .. commandBufferCount) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008753 secondaryCommandBuffer := commandBuffers[i]
8754 secondaryCommandBufferObject := GetCommandBuffer(secondaryCommandBuffer)
8755 assert(commandBufferObject.device == secondaryCommandBufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008756 }
8757}
8758
Ian Elliott28bd2c32017-10-13 09:21:12 -06008759//@vulkan1_1 functions
Daniel Koch09f7bf92017-10-05 00:26:58 -04008760
Ian Elliott28bd2c32017-10-13 09:21:12 -06008761@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04008762cmd VkResult vkEnumerateInstanceVersion(
8763 u32* pApiVersion) {
8764 return ?
8765}
8766
Ian Elliott28bd2c32017-10-13 09:21:12 -06008767@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04008768cmd VkResult vkBindBufferMemory2(
8769 VkDevice device,
8770 u32 bindInfoCount,
8771 const VkBindBufferMemoryInfo* pBindInfos) {
8772 return ?
8773}
8774
Ian Elliott28bd2c32017-10-13 09:21:12 -06008775@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04008776cmd VkResult vkBindImageMemory2(
8777 VkDevice device,
8778 u32 bindInfoCount,
8779 const VkBindImageMemoryInfo* pBindInfos) {
8780 return ?
8781}
8782
Ian Elliott28bd2c32017-10-13 09:21:12 -06008783@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04008784cmd void vkGetDeviceGroupPeerMemoryFeatures(
8785 VkDevice device,
8786 u32 heapIndex,
8787 u32 localDeviceIndex,
8788 u32 remoteDeviceIndex,
8789 VkPeerMemoryFeatureFlags* pPeerMemoryFeatures) {
8790}
8791
Ian Elliott28bd2c32017-10-13 09:21:12 -06008792@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04008793cmd void vkCmdSetDeviceMask(
8794 VkCommandBuffer commandBuffer,
8795 u32 deviceMask) {
8796}
8797
Ian Elliott28bd2c32017-10-13 09:21:12 -06008798@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04008799cmd void vkCmdDispatchBase(
8800 VkCommandBuffer commandBuffer,
8801 u32 baseGroupX,
8802 u32 baseGroupY,
8803 u32 baseGroupZ,
8804 u32 groupCountX,
8805 u32 groupCountY,
8806 u32 groupCountZ) {
8807}
8808
8809@threadSafety("system")
Ian Elliott28bd2c32017-10-13 09:21:12 -06008810@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04008811cmd VkResult vkEnumeratePhysicalDeviceGroups(
8812 VkInstance instance,
8813 u32* pPhysicalDeviceGroupCount,
8814 VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties) {
8815 instanceObject := GetInstance(instance)
8816
8817 physicalDeviceGroupCount := as!u32(?)
8818 pPhysicalDeviceGroupCount[0] = physicalDeviceGroupCount
8819 physicalDevices := pPhysicalDeviceGroupProperties[0:physicalDeviceGroupCount]
8820
8821 for i in (0 .. physicalDeviceGroupCount) {
8822 physicalDevice := ?
8823 physicalDevices[i] = physicalDevice
8824 if !(physicalDevice in State.PhysicalDevices) {
8825 State.PhysicalDevices[physicalDevice] = new!PhysicalDeviceObject(instance: instance)
8826 }
8827 }
8828
8829 return ?
8830}
8831
Ian Elliott28bd2c32017-10-13 09:21:12 -06008832@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04008833cmd void vkGetImageMemoryRequirements2(
8834 VkDevice device,
8835 const VkImageMemoryRequirementsInfo2* pInfo,
8836 VkMemoryRequirements2* pMemoryRequirements) {
8837}
8838
Ian Elliott28bd2c32017-10-13 09:21:12 -06008839@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04008840cmd void vkGetBufferMemoryRequirements2(
8841 VkDevice device,
8842 const VkBufferMemoryRequirementsInfo2* pInfo,
8843 VkMemoryRequirements2* pMemoryRequirements) {
8844}
8845
Ian Elliott28bd2c32017-10-13 09:21:12 -06008846@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04008847cmd void vkGetImageSparseMemoryRequirements2(
8848 VkDevice device,
8849 const VkImageSparseMemoryRequirementsInfo2* pInfo,
8850 u32* pSparseMemoryRequirementCount,
8851 VkSparseImageMemoryRequirements2* pSparseMemoryRequirements) {
8852}
8853
Ian Elliott28bd2c32017-10-13 09:21:12 -06008854@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04008855cmd void vkGetPhysicalDeviceFeatures2(
8856 VkPhysicalDevice physicalDevice,
8857 VkPhysicalDeviceFeatures2* pFeatures) {
8858}
8859
Ian Elliott28bd2c32017-10-13 09:21:12 -06008860@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04008861cmd void vkGetPhysicalDeviceProperties2(
8862 VkPhysicalDevice physicalDevice,
8863 VkPhysicalDeviceProperties2* pProperties) {
8864}
8865
Ian Elliott28bd2c32017-10-13 09:21:12 -06008866@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04008867cmd void vkGetPhysicalDeviceFormatProperties2(
8868 VkPhysicalDevice physicalDevice,
8869 VkFormat format,
8870 VkFormatProperties2* pFormatProperties) {
8871}
8872
Ian Elliott28bd2c32017-10-13 09:21:12 -06008873@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04008874cmd VkResult vkGetPhysicalDeviceImageFormatProperties2(
8875 VkPhysicalDevice physicalDevice,
8876 const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo,
8877 VkImageFormatProperties2* pImageFormatProperties) {
8878 return ?
8879}
8880
Ian Elliott28bd2c32017-10-13 09:21:12 -06008881@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04008882cmd void vkGetPhysicalDeviceQueueFamilyProperties2(
8883 VkPhysicalDevice physicalDevice,
8884 u32* pQueueFamilyPropertyCount,
8885 VkQueueFamilyProperties2* pQueueFamilyProperties) {
8886}
8887
Ian Elliott28bd2c32017-10-13 09:21:12 -06008888@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04008889cmd void vkGetPhysicalDeviceMemoryProperties2(
8890 VkPhysicalDevice physicalDevice,
8891 VkPhysicalDeviceMemoryProperties2* pMemoryProperties) {
8892}
8893
Ian Elliott28bd2c32017-10-13 09:21:12 -06008894@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04008895cmd void vkGetPhysicalDeviceSparseImageFormatProperties2(
8896 VkPhysicalDevice physicalDevice,
8897 const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo,
8898 u32* pPropertyCount,
8899 VkSparseImageFormatProperties2* pProperties) {
8900}
8901
Ian Elliott28bd2c32017-10-13 09:21:12 -06008902@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04008903cmd void vkTrimCommandPool(
8904 VkDevice device,
8905 VkCommandPool commandPool,
8906 VkCommandPoolTrimFlags flags) {
8907}
8908
8909
Ian Elliott28bd2c32017-10-13 09:21:12 -06008910@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04008911cmd void vkGetDeviceQueue2(
8912 VkDevice device,
8913 const VkDeviceQueueInfo2* pQueueInfo,
8914 VkQueue* pQueue) {
8915 deviceObject := GetDevice(device)
8916
8917 queue := ?
8918 pQueue[0] = queue
8919
8920 if !(queue in State.Queues) {
8921 State.Queues[queue] = new!QueueObject(device: device)
8922 }
8923}
8924
Ian Elliott28bd2c32017-10-13 09:21:12 -06008925@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04008926cmd VkResult vkCreateSamplerYcbcrConversion(
8927 VkDevice device,
8928 const VkSamplerYcbcrConversionCreateInfo* pCreateInfo,
8929 const VkAllocationCallbacks* pAllocator,
8930 VkSamplerYcbcrConversion* pYcbcrConversion) {
8931 return ?
8932}
8933
Ian Elliott28bd2c32017-10-13 09:21:12 -06008934@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04008935cmd void vkDestroySamplerYcbcrConversion(
8936 VkDevice device,
8937 VkSamplerYcbcrConversion ycbcrConversion,
8938 const VkAllocationCallbacks* pAllocator) {
8939}
8940
Ian Elliott28bd2c32017-10-13 09:21:12 -06008941@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04008942cmd VkResult vkCreateDescriptorUpdateTemplate(
8943 VkDevice device,
8944 const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo,
8945 const VkAllocationCallbacks* pAllocator,
8946 VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate) {
8947 return ?
8948}
8949
Ian Elliott28bd2c32017-10-13 09:21:12 -06008950@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04008951cmd void vkDestroyDescriptorUpdateTemplate(
8952 VkDevice device,
8953 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
8954 const VkAllocationCallbacks* pAllocator) {
8955}
8956
Ian Elliott28bd2c32017-10-13 09:21:12 -06008957@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04008958cmd void vkUpdateDescriptorSetWithTemplate(
8959 VkDevice device,
8960 VkDescriptorSet descriptorSet,
8961 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
8962 const void* pData) {
8963}
8964
Ian Elliott28bd2c32017-10-13 09:21:12 -06008965@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04008966cmd void vkGetPhysicalDeviceExternalBufferProperties(
8967 VkPhysicalDevice physicalDevice,
8968 const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo,
8969 VkExternalBufferProperties* pExternalBufferProperties) {
8970}
8971
Ian Elliott28bd2c32017-10-13 09:21:12 -06008972@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04008973cmd void vkGetPhysicalDeviceExternalFenceProperties(
8974 VkPhysicalDevice physicalDevice,
8975 const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo,
8976 VkExternalFenceProperties* pExternalFenceProperties) {
8977}
8978
Ian Elliott28bd2c32017-10-13 09:21:12 -06008979@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04008980cmd void vkGetPhysicalDeviceExternalSemaphoreProperties(
8981 VkPhysicalDevice physicalDevice,
8982 const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo,
8983 VkExternalSemaphoreProperties* pExternalSemaphoreProperties) {
8984}
8985
Ian Elliott28bd2c32017-10-13 09:21:12 -06008986@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04008987cmd void vkGetDescriptorSetLayoutSupport(
8988 VkDevice device,
8989 const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
8990 VkDescriptorSetLayoutSupport* pSupport) {
8991}
8992
8993
Jesse Hallad250842017-03-10 18:35:38 -08008994@extension("VK_KHR_surface") // 1
Jesse Hall1356b0d2015-11-23 17:24:58 -08008995cmd void vkDestroySurfaceKHR(
8996 VkInstance instance,
Jesse Hall0e74f002015-11-30 11:37:59 -08008997 VkSurfaceKHR surface,
8998 const VkAllocationCallbacks* pAllocator) {
Jesse Hall1356b0d2015-11-23 17:24:58 -08008999 instanceObject := GetInstance(instance)
9000 surfaceObject := GetSurface(surface)
9001 assert(surfaceObject.instance == instance)
Michael Lentine88594d72015-11-12 12:49:45 -08009002
Jesse Hall1356b0d2015-11-23 17:24:58 -08009003 State.Surfaces[surface] = null
Jesse Hall2818f932015-11-19 21:19:17 -08009004}
9005
Jesse Hallad250842017-03-10 18:35:38 -08009006@extension("VK_KHR_surface") // 1
Jesse Halla6429252015-11-29 18:59:42 -08009007cmd VkResult vkGetPhysicalDeviceSurfaceSupportKHR(
Jesse Hall1356b0d2015-11-23 17:24:58 -08009008 VkPhysicalDevice physicalDevice,
9009 u32 queueFamilyIndex,
Jesse Hall1356b0d2015-11-23 17:24:58 -08009010 VkSurfaceKHR surface,
Jesse Hallb00daad2015-11-29 19:46:20 -08009011 VkBool32* pSupported) {
9012 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
Michael Lentine88594d72015-11-12 12:49:45 -08009013
9014 return ?
9015}
9016
Jesse Hallad250842017-03-10 18:35:38 -08009017@extension("VK_KHR_surface") // 1
Jesse Hallb00daad2015-11-29 19:46:20 -08009018cmd VkResult vkGetPhysicalDeviceSurfaceCapabilitiesKHR(
9019 VkPhysicalDevice physicalDevice,
9020 VkSurfaceKHR surface,
9021 VkSurfaceCapabilitiesKHR* pSurfaceCapabilities) {
9022 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
9023
9024 surfaceCapabilities := ?
9025 pSurfaceCapabilities[0] = surfaceCapabilities
9026
9027 return ?
9028}
9029
Jesse Hallad250842017-03-10 18:35:38 -08009030@extension("VK_KHR_surface") // 1
Jesse Hallb00daad2015-11-29 19:46:20 -08009031cmd VkResult vkGetPhysicalDeviceSurfaceFormatsKHR(
9032 VkPhysicalDevice physicalDevice,
Jesse Hall1356b0d2015-11-23 17:24:58 -08009033 VkSurfaceKHR surface,
Jesse Hall03b6fe12015-11-24 12:44:21 -08009034 u32* pSurfaceFormatCount,
Jesse Hall1356b0d2015-11-23 17:24:58 -08009035 VkSurfaceFormatKHR* pSurfaceFormats) {
Jesse Hallb00daad2015-11-29 19:46:20 -08009036 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
Michael Lentine88594d72015-11-12 12:49:45 -08009037
9038 count := as!u32(?)
Jesse Hall03b6fe12015-11-24 12:44:21 -08009039 pSurfaceFormatCount[0] = count
Michael Lentine88594d72015-11-12 12:49:45 -08009040 surfaceFormats := pSurfaceFormats[0:count]
9041
9042 for i in (0 .. count) {
9043 surfaceFormat := ?
9044 surfaceFormats[i] = surfaceFormat
9045 }
9046
9047 return ?
9048}
9049
Jesse Hallad250842017-03-10 18:35:38 -08009050@extension("VK_KHR_surface") // 1
Jesse Hallb00daad2015-11-29 19:46:20 -08009051cmd VkResult vkGetPhysicalDeviceSurfacePresentModesKHR(
9052 VkPhysicalDevice physicalDevice,
Jesse Hall1356b0d2015-11-23 17:24:58 -08009053 VkSurfaceKHR surface,
Jesse Hall03b6fe12015-11-24 12:44:21 -08009054 u32* pPresentModeCount,
Jesse Hall1356b0d2015-11-23 17:24:58 -08009055 VkPresentModeKHR* pPresentModes) {
Jesse Hallb00daad2015-11-29 19:46:20 -08009056 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
Michael Lentine88594d72015-11-12 12:49:45 -08009057
9058 count := as!u32(?)
Jesse Hall03b6fe12015-11-24 12:44:21 -08009059 pPresentModeCount[0] = count
Michael Lentine88594d72015-11-12 12:49:45 -08009060 presentModes := pPresentModes[0:count]
9061
9062 for i in (0 .. count) {
9063 presentMode := ?
9064 presentModes[i] = presentMode
9065 }
9066
9067 return ?
9068}
9069
Jesse Hallad250842017-03-10 18:35:38 -08009070@extension("VK_KHR_swapchain") // 2
Michael Lentine88594d72015-11-12 12:49:45 -08009071cmd VkResult vkCreateSwapchainKHR(
9072 VkDevice device,
9073 const VkSwapchainCreateInfoKHR* pCreateInfo,
Jesse Hall0e74f002015-11-30 11:37:59 -08009074 const VkAllocationCallbacks* pAllocator,
Michael Lentine88594d72015-11-12 12:49:45 -08009075 VkSwapchainKHR* pSwapchain) {
Jesse Hall1356b0d2015-11-23 17:24:58 -08009076 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR)
Michael Lentine88594d72015-11-12 12:49:45 -08009077 deviceObject := GetDevice(device)
9078
9079 swapchain := ?
9080 pSwapchain[0] = swapchain
9081 State.Swapchains[swapchain] = new!SwapchainObject(device: device)
9082
9083 return ?
9084}
9085
Jesse Hallad250842017-03-10 18:35:38 -08009086@extension("VK_KHR_swapchain") // 2
Jesse Hall1356b0d2015-11-23 17:24:58 -08009087cmd void vkDestroySwapchainKHR(
Michael Lentine88594d72015-11-12 12:49:45 -08009088 VkDevice device,
Jesse Hall0e74f002015-11-30 11:37:59 -08009089 VkSwapchainKHR swapchain,
9090 const VkAllocationCallbacks* pAllocator) {
Michael Lentine88594d72015-11-12 12:49:45 -08009091 deviceObject := GetDevice(device)
9092 swapchainObject := GetSwapchain(swapchain)
9093 assert(swapchainObject.device == device)
9094
9095 State.Swapchains[swapchain] = null
Michael Lentine88594d72015-11-12 12:49:45 -08009096}
9097
Jesse Hallad250842017-03-10 18:35:38 -08009098@extension("VK_KHR_swapchain") // 2
Michael Lentine88594d72015-11-12 12:49:45 -08009099cmd VkResult vkGetSwapchainImagesKHR(
9100 VkDevice device,
9101 VkSwapchainKHR swapchain,
Jesse Hall03b6fe12015-11-24 12:44:21 -08009102 u32* pSwapchainImageCount,
Michael Lentine88594d72015-11-12 12:49:45 -08009103 VkImage* pSwapchainImages) {
9104 deviceObject := GetDevice(device)
9105
9106 count := as!u32(?)
Jesse Hall03b6fe12015-11-24 12:44:21 -08009107 pSwapchainImageCount[0] = count
Michael Lentine88594d72015-11-12 12:49:45 -08009108 swapchainImages := pSwapchainImages[0:count]
9109
9110 for i in (0 .. count) {
9111 swapchainImage := ?
9112 swapchainImages[i] = swapchainImage
Jesse Hall1356b0d2015-11-23 17:24:58 -08009113 State.Images[swapchainImage] = new!ImageObject(device: device)
Michael Lentine88594d72015-11-12 12:49:45 -08009114 }
9115
9116 return ?
9117}
9118
Jesse Hallad250842017-03-10 18:35:38 -08009119@extension("VK_KHR_swapchain") // 2
Michael Lentine88594d72015-11-12 12:49:45 -08009120cmd VkResult vkAcquireNextImageKHR(
9121 VkDevice device,
9122 VkSwapchainKHR swapchain,
9123 u64 timeout,
9124 VkSemaphore semaphore,
Jesse Hall1356b0d2015-11-23 17:24:58 -08009125 VkFence fence,
Michael Lentine88594d72015-11-12 12:49:45 -08009126 u32* pImageIndex) {
9127 deviceObject := GetDevice(device)
9128 swapchainObject := GetSwapchain(swapchain)
9129
9130 imageIndex := ?
9131 pImageIndex[0] = imageIndex
9132
9133 return ?
9134}
9135
Jesse Hallad250842017-03-10 18:35:38 -08009136@extension("VK_KHR_swapchain") // 2
Michael Lentine88594d72015-11-12 12:49:45 -08009137cmd VkResult vkQueuePresentKHR(
9138 VkQueue queue,
Jesse Hallf4ab2b12015-11-30 16:04:55 -08009139 const VkPresentInfoKHR* pPresentInfo) {
Michael Lentine88594d72015-11-12 12:49:45 -08009140 queueObject := GetQueue(queue)
9141
9142 presentInfo := ?
9143 pPresentInfo[0] = presentInfo
9144
9145 return ?
9146}
9147
Ian Elliott28bd2c32017-10-13 09:21:12 -06009148@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009149@extension("VK_KHR_swapchain") // 2
9150cmd VkResult vkGetDeviceGroupPresentCapabilitiesKHR(
9151 VkDevice device,
9152 VkDeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities) {
9153 return ?
9154}
9155
Ian Elliott28bd2c32017-10-13 09:21:12 -06009156@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009157@extension("VK_KHR_swapchain") // 2
9158cmd VkResult vkGetDeviceGroupSurfacePresentModesKHR(
9159 VkDevice device,
9160 VkSurfaceKHR surface,
9161 VkDeviceGroupPresentModeFlagsKHR* pModes) {
9162 return ?
9163}
9164
Ian Elliott28bd2c32017-10-13 09:21:12 -06009165@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009166@extension("VK_KHR_swapchain") // 2
9167cmd VkResult vkGetPhysicalDevicePresentRectanglesKHR(
9168 VkPhysicalDevice physicalDevice,
9169 VkSurfaceKHR surface,
9170 u32* pRectCount,
9171 VkRect2D* pRects) {
9172 return ?
9173}
9174
Ian Elliott28bd2c32017-10-13 09:21:12 -06009175@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009176@extension("VK_KHR_swapchain") // 2
9177cmd VkResult vkAcquireNextImage2KHR(
9178 VkDevice device,
9179 const VkAcquireNextImageInfoKHR* pAcquireInfo,
9180 u32* pImageIndex) {
9181 return ?
9182}
9183
Jesse Hallad250842017-03-10 18:35:38 -08009184@extension("VK_KHR_display") // 3
Jesse Hall1356b0d2015-11-23 17:24:58 -08009185cmd VkResult vkGetPhysicalDeviceDisplayPropertiesKHR(
9186 VkPhysicalDevice physicalDevice,
Jesse Hall03b6fe12015-11-24 12:44:21 -08009187 u32* pPropertyCount,
Jesse Hall1356b0d2015-11-23 17:24:58 -08009188 VkDisplayPropertiesKHR* pProperties) {
9189 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
9190 return ?
9191}
9192
Jesse Hallad250842017-03-10 18:35:38 -08009193@extension("VK_KHR_display") // 3
Jesse Halla6429252015-11-29 18:59:42 -08009194cmd VkResult vkGetPhysicalDeviceDisplayPlanePropertiesKHR(
9195 VkPhysicalDevice physicalDevice,
9196 u32* pPropertyCount,
9197 VkDisplayPlanePropertiesKHR* pProperties) {
9198 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
9199 return ?
9200}
9201
Jesse Hallad250842017-03-10 18:35:38 -08009202@extension("VK_KHR_display") // 3
Jesse Halla6429252015-11-29 18:59:42 -08009203cmd VkResult vkGetDisplayPlaneSupportedDisplaysKHR(
9204 VkPhysicalDevice physicalDevice,
Jesse Hall3dd678a2016-01-08 21:52:01 -08009205 u32 planeIndex,
Jesse Hallf4ab2b12015-11-30 16:04:55 -08009206 u32* pDisplayCount,
9207 VkDisplayKHR* pDisplays) {
Jesse Halla6429252015-11-29 18:59:42 -08009208 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
9209 return ?
9210}
9211
Jesse Hallad250842017-03-10 18:35:38 -08009212@extension("VK_KHR_display") // 3
Jesse Hall1356b0d2015-11-23 17:24:58 -08009213cmd VkResult vkGetDisplayModePropertiesKHR(
9214 VkPhysicalDevice physicalDevice,
9215 VkDisplayKHR display,
Jesse Hall03b6fe12015-11-24 12:44:21 -08009216 u32* pPropertyCount,
9217 VkDisplayModePropertiesKHR* pProperties) {
Jesse Hall1356b0d2015-11-23 17:24:58 -08009218 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
9219 return ?
9220}
9221
Jesse Hallad250842017-03-10 18:35:38 -08009222@extension("VK_KHR_display") // 3
Jesse Hall1356b0d2015-11-23 17:24:58 -08009223cmd VkResult vkCreateDisplayModeKHR(
9224 VkPhysicalDevice physicalDevice,
9225 VkDisplayKHR display,
9226 const VkDisplayModeCreateInfoKHR* pCreateInfo,
Jesse Hall0e74f002015-11-30 11:37:59 -08009227 const VkAllocationCallbacks* pAllocator,
Jesse Hall1356b0d2015-11-23 17:24:58 -08009228 VkDisplayModeKHR* pMode) {
9229 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
9230 return ?
9231}
9232
Jesse Hallad250842017-03-10 18:35:38 -08009233@extension("VK_KHR_display") // 3
Jesse Halla6429252015-11-29 18:59:42 -08009234cmd VkResult vkGetDisplayPlaneCapabilitiesKHR(
Jesse Hall1356b0d2015-11-23 17:24:58 -08009235 VkPhysicalDevice physicalDevice,
Jesse Hall9ba8bc82015-11-30 16:22:16 -08009236 VkDisplayModeKHR mode,
Jesse Hall1356b0d2015-11-23 17:24:58 -08009237 u32 planeIndex,
Jesse Halla6429252015-11-29 18:59:42 -08009238 VkDisplayPlaneCapabilitiesKHR* pCapabilities) {
Jesse Hall1356b0d2015-11-23 17:24:58 -08009239 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
9240 return ?
9241}
9242
Jesse Hallad250842017-03-10 18:35:38 -08009243@extension("VK_KHR_display") // 3
Jesse Halla6429252015-11-29 18:59:42 -08009244cmd VkResult vkCreateDisplayPlaneSurfaceKHR(
9245 VkInstance instance,
9246 const VkDisplaySurfaceCreateInfoKHR* pCreateInfo,
Jesse Hall0e74f002015-11-30 11:37:59 -08009247 const VkAllocationCallbacks* pAllocator,
Jesse Halla6429252015-11-29 18:59:42 -08009248 VkSurfaceKHR* pSurface) {
9249 return ?
9250}
9251
Jesse Hallad250842017-03-10 18:35:38 -08009252@extension("VK_KHR_display_swapchain") // 4
Jesse Hall9ba8bc82015-11-30 16:22:16 -08009253cmd VkResult vkCreateSharedSwapchainsKHR(
9254 VkDevice device,
9255 u32 swapchainCount,
9256 const VkSwapchainCreateInfoKHR* pCreateInfos,
9257 const VkAllocationCallbacks* pAllocator,
9258 VkSwapchainKHR* pSwapchains) {
9259 return ?
9260}
9261
Jesse Hallad250842017-03-10 18:35:38 -08009262@extension("VK_KHR_xlib_surface") // 5
Jesse Halla6429252015-11-29 18:59:42 -08009263cmd VkResult vkCreateXlibSurfaceKHR(
Jesse Hall1356b0d2015-11-23 17:24:58 -08009264 VkInstance instance,
Jesse Hallf9fa9a52016-01-08 16:08:51 -08009265 const VkXlibSurfaceCreateInfoKHR* pCreateInfo,
Jesse Hall0e74f002015-11-30 11:37:59 -08009266 const VkAllocationCallbacks* pAllocator,
Jesse Hall1356b0d2015-11-23 17:24:58 -08009267 VkSurfaceKHR* pSurface) {
9268 instanceObject := GetInstance(instance)
9269 return ?
9270}
9271
Jesse Hallad250842017-03-10 18:35:38 -08009272@extension("VK_KHR_xlib_surface") // 5
Jesse Halla6429252015-11-29 18:59:42 -08009273cmd VkBool32 vkGetPhysicalDeviceXlibPresentationSupportKHR(
9274 VkPhysicalDevice physicalDevice,
9275 u32 queueFamilyIndex,
9276 platform.Display* dpy,
Jesse Hall65ab5522015-11-30 00:07:16 -08009277 platform.VisualID visualID) {
Jesse Halla6429252015-11-29 18:59:42 -08009278 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
9279 return ?
9280}
9281
Jesse Hallad250842017-03-10 18:35:38 -08009282@extension("VK_KHR_xcb_surface") // 6
Jesse Hallf9fa9a52016-01-08 16:08:51 -08009283cmd VkResult vkCreateXcbSurfaceKHR(
Jesse Hall1356b0d2015-11-23 17:24:58 -08009284 VkInstance instance,
Jesse Hallf9fa9a52016-01-08 16:08:51 -08009285 const VkXcbSurfaceCreateInfoKHR* pCreateInfo,
Jesse Hall0e74f002015-11-30 11:37:59 -08009286 const VkAllocationCallbacks* pAllocator,
Jesse Hall1356b0d2015-11-23 17:24:58 -08009287 VkSurfaceKHR* pSurface) {
9288 instanceObject := GetInstance(instance)
9289 return ?
9290}
9291
Jesse Hallad250842017-03-10 18:35:38 -08009292@extension("VK_KHR_xcb_surface") // 6
Jesse Halla6429252015-11-29 18:59:42 -08009293cmd VkBool32 vkGetPhysicalDeviceXcbPresentationSupportKHR(
9294 VkPhysicalDevice physicalDevice,
9295 u32 queueFamilyIndex,
9296 platform.xcb_connection_t* connection,
9297 platform.xcb_visualid_t visual_id) {
9298 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
9299 return ?
9300}
9301
Jesse Hallad250842017-03-10 18:35:38 -08009302@extension("VK_KHR_wayland_surface") // 7
Jesse Hall1356b0d2015-11-23 17:24:58 -08009303cmd VkResult vkCreateWaylandSurfaceKHR(
9304 VkInstance instance,
Jesse Hallf9fa9a52016-01-08 16:08:51 -08009305 const VkWaylandSurfaceCreateInfoKHR* pCreateInfo,
Jesse Hall0e74f002015-11-30 11:37:59 -08009306 const VkAllocationCallbacks* pAllocator,
Jesse Hall1356b0d2015-11-23 17:24:58 -08009307 VkSurfaceKHR* pSurface) {
9308 instanceObject := GetInstance(instance)
9309 return ?
9310}
9311
Jesse Hallad250842017-03-10 18:35:38 -08009312@extension("VK_KHR_wayland_surface") // 7
Jesse Halla6429252015-11-29 18:59:42 -08009313cmd VkBool32 vkGetPhysicalDeviceWaylandPresentationSupportKHR(
9314 VkPhysicalDevice physicalDevice,
9315 u32 queueFamilyIndex,
9316 platform.wl_display* display) {
9317 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
9318 return ?
9319}
9320
Jesse Hallad250842017-03-10 18:35:38 -08009321@extension("VK_KHR_mir_surface") // 8
Jesse Hall1356b0d2015-11-23 17:24:58 -08009322cmd VkResult vkCreateMirSurfaceKHR(
9323 VkInstance instance,
Jesse Hallf9fa9a52016-01-08 16:08:51 -08009324 const VkMirSurfaceCreateInfoKHR* pCreateInfo,
Jesse Hall0e74f002015-11-30 11:37:59 -08009325 const VkAllocationCallbacks* pAllocator,
Jesse Hall1356b0d2015-11-23 17:24:58 -08009326 VkSurfaceKHR* pSurface) {
9327 instanceObject := GetInstance(instance)
9328 return ?
9329}
9330
Jesse Hallad250842017-03-10 18:35:38 -08009331@extension("VK_KHR_mir_surface") // 8
Jesse Halla6429252015-11-29 18:59:42 -08009332cmd VkBool32 vkGetPhysicalDeviceMirPresentationSupportKHR(
9333 VkPhysicalDevice physicalDevice,
9334 u32 queueFamilyIndex,
9335 platform.MirConnection* connection) {
9336 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
9337 return ?
9338}
9339
Jesse Hallad250842017-03-10 18:35:38 -08009340@extension("VK_KHR_android_surface") // 9
Jesse Hall1356b0d2015-11-23 17:24:58 -08009341cmd VkResult vkCreateAndroidSurfaceKHR(
9342 VkInstance instance,
Jesse Hallf9fa9a52016-01-08 16:08:51 -08009343 const VkAndroidSurfaceCreateInfoKHR* pCreateInfo,
Jesse Hall0e74f002015-11-30 11:37:59 -08009344 const VkAllocationCallbacks* pAllocator,
Jesse Hall1356b0d2015-11-23 17:24:58 -08009345 VkSurfaceKHR* pSurface) {
9346 instanceObject := GetInstance(instance)
9347 return ?
9348}
9349
Jesse Hallad250842017-03-10 18:35:38 -08009350@extension("VK_KHR_win32_surface") // 10
Jesse Hall1356b0d2015-11-23 17:24:58 -08009351cmd VkResult vkCreateWin32SurfaceKHR(
9352 VkInstance instance,
Jesse Hallf9fa9a52016-01-08 16:08:51 -08009353 const VkWin32SurfaceCreateInfoKHR* pCreateInfo,
Jesse Hall0e74f002015-11-30 11:37:59 -08009354 const VkAllocationCallbacks* pAllocator,
Jesse Hall1356b0d2015-11-23 17:24:58 -08009355 VkSurfaceKHR* pSurface) {
9356 instanceObject := GetInstance(instance)
9357 return ?
9358}
9359
Jesse Hallad250842017-03-10 18:35:38 -08009360@extension("VK_KHR_win32_surface") // 10
Jesse Halla6429252015-11-29 18:59:42 -08009361cmd VkResult vkGetPhysicalDeviceWin32PresentationSupportKHR(
9362 VkPhysicalDevice physicalDevice,
9363 u32 queueFamilyIndex) {
Jesse Halle2948d82016-02-25 04:19:32 -08009364 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
Jesse Halla6429252015-11-29 18:59:42 -08009365 return ?
9366}
9367
Jesse Hallad250842017-03-10 18:35:38 -08009368@extension("VK_ANDROID_native_buffer") // 11
Jesse Halld1abd742017-02-09 21:45:51 -08009369@optional
Chia-I Wub262ddc2016-03-22 07:38:20 +08009370cmd VkResult vkGetSwapchainGrallocUsageANDROID(
9371 VkDevice device,
9372 VkFormat format,
9373 VkImageUsageFlags imageUsage,
Jesse Halld1abd742017-02-09 21:45:51 -08009374 s32* grallocUsage) {
Chia-I Wub262ddc2016-03-22 07:38:20 +08009375 return ?
9376}
9377
Jesse Hallad250842017-03-10 18:35:38 -08009378@extension("VK_ANDROID_native_buffer") // 11
Jesse Halld1abd742017-02-09 21:45:51 -08009379@optional
Chris Forbes8e4438b2016-12-07 16:26:49 +13009380cmd VkResult vkGetSwapchainGrallocUsage2ANDROID(
9381 VkDevice device,
9382 VkFormat format,
9383 VkImageUsageFlags imageUsage,
9384 VkSwapchainImageUsageFlagsANDROID swapchainImageUsage,
Jesse Halld1abd742017-02-09 21:45:51 -08009385 u64* grallocConsumerUsage,
9386 u64* grallocProducerUsage) {
Chris Forbes8e4438b2016-12-07 16:26:49 +13009387 return ?
9388}
9389
Jesse Hallad250842017-03-10 18:35:38 -08009390@extension("VK_ANDROID_native_buffer") // 11
Chia-I Wub262ddc2016-03-22 07:38:20 +08009391cmd VkResult vkAcquireImageANDROID(
9392 VkDevice device,
9393 VkImage image,
9394 int nativeFenceFd,
9395 VkSemaphore semaphore,
9396 VkFence fence) {
9397 return ?
9398}
9399
Jesse Hallad250842017-03-10 18:35:38 -08009400@extension("VK_ANDROID_native_buffer") // 11
Chia-I Wub262ddc2016-03-22 07:38:20 +08009401cmd VkResult vkQueueSignalReleaseImageANDROID(
9402 VkQueue queue,
9403 u32 waitSemaphoreCount,
9404 const VkSemaphore* pWaitSemaphores,
9405 VkImage image,
9406 int* pNativeFenceFd) {
9407 return ?
9408}
9409
Jesse Hallad250842017-03-10 18:35:38 -08009410@extension("VK_EXT_debug_report") // 12
9411@external type void* PFN_vkDebugReportCallbackEXT
9412@extension("VK_EXT_debug_report") // 12
9413@pfn cmd VkBool32 vkDebugReportCallbackEXT(
9414 VkDebugReportFlagsEXT flags,
9415 VkDebugReportObjectTypeEXT objectType,
9416 u64 object,
9417 platform.size_t location,
9418 s32 messageCode,
9419 const char* pLayerPrefix,
9420 const char* pMessage,
9421 void* pUserData) {
9422 return ?
9423}
9424
9425@extension("VK_EXT_debug_report") // 12
9426cmd VkResult vkCreateDebugReportCallbackEXT(
9427 VkInstance instance,
9428 const VkDebugReportCallbackCreateInfoEXT* pCreateInfo,
9429 const VkAllocationCallbacks* pAllocator,
9430 VkDebugReportCallbackEXT* pCallback) {
9431 return ?
9432}
9433
9434@extension("VK_EXT_debug_report") // 12
9435cmd void vkDestroyDebugReportCallbackEXT(
9436 VkInstance instance,
9437 VkDebugReportCallbackEXT callback,
9438 const VkAllocationCallbacks* pAllocator) {
9439}
9440
9441@extension("VK_EXT_debug_report") // 12
9442cmd void vkDebugReportMessageEXT(
9443 VkInstance instance,
9444 VkDebugReportFlagsEXT flags,
9445 VkDebugReportObjectTypeEXT objectType,
9446 u64 object,
9447 platform.size_t location,
9448 s32 messageCode,
9449 const char* pLayerPrefix,
9450 const char* pMessage) {
9451}
9452
9453@extension("VK_EXT_debug_marker") // 23
9454cmd VkResult vkDebugMarkerSetObjectTagEXT(
9455 VkDevice device,
Jesse Hall77726222017-09-19 14:49:27 -05009456 const VkDebugMarkerObjectTagInfoEXT* pTagInfo) {
Jesse Hallad250842017-03-10 18:35:38 -08009457 return ?
9458}
9459
9460@extension("VK_EXT_debug_marker") // 23
9461cmd VkResult vkDebugMarkerSetObjectNameEXT(
9462 VkDevice device,
Jesse Hall77726222017-09-19 14:49:27 -05009463 const VkDebugMarkerObjectNameInfoEXT* pNameInfo) {
Jesse Hallad250842017-03-10 18:35:38 -08009464 return ?
9465}
9466
9467@extension("VK_EXT_debug_marker") // 23
9468cmd void vkCmdDebugMarkerBeginEXT(
9469 VkCommandBuffer commandBuffer,
Jesse Hall77726222017-09-19 14:49:27 -05009470 const VkDebugMarkerMarkerInfoEXT* pMarkerInfo) {
Jesse Hallad250842017-03-10 18:35:38 -08009471}
9472
9473@extension("VK_EXT_debug_marker") // 23
9474cmd void vkCmdDebugMarkerEndEXT(
9475 VkCommandBuffer commandBuffer) {
9476}
9477
9478@extension("VK_EXT_debug_marker") // 23
9479cmd void vkCmdDebugMarkerInsertEXT(
9480 VkCommandBuffer commandBuffer,
Jesse Hall77726222017-09-19 14:49:27 -05009481 const VkDebugMarkerMarkerInfoEXT* pMarkerInfo) {
Jesse Hallad250842017-03-10 18:35:38 -08009482}
9483
9484@extension("VK_AMD_draw_indirect_count") // 34
9485cmd void vkCmdDrawIndirectCountAMD(
9486 VkCommandBuffer commandBuffer,
9487 VkBuffer buffer,
9488 VkDeviceSize offset,
9489 VkBuffer countBuffer,
9490 VkDeviceSize countBufferOffset,
9491 u32 maxDrawCount,
9492 u32 stride) {
9493}
9494
9495@extension("VK_AMD_draw_indirect_count") // 34
9496cmd void vkCmdDrawIndexedIndirectCountAMD(
9497 VkCommandBuffer commandBuffer,
9498 VkBuffer buffer,
9499 VkDeviceSize offset,
9500 VkBuffer countBuffer,
9501 VkDeviceSize countBufferOffset,
9502 u32 maxDrawCount,
9503 u32 stride) {
9504}
9505
Jesse Hall8c954d32018-01-17 22:06:20 -08009506@extension("VK_AMD_shader_info") // 43
9507cmd VkResult vkGetShaderInfoAMD(
9508 VkDevice device,
9509 VkPipeline pipeline,
9510 VkShaderStageFlagBits shaderStage,
9511 VkShaderInfoTypeAMD infoType,
9512 platform.size_t* pInfoSize,
9513 void* pInfo) {
9514 return ?
9515}
9516
Jesse Hallad250842017-03-10 18:35:38 -08009517@extension("VK_NV_external_memory_capabilities") // 56
9518cmd VkResult vkGetPhysicalDeviceExternalImageFormatPropertiesNV(
9519 VkPhysicalDevice physicalDevice,
9520 VkFormat format,
9521 VkImageType type,
9522 VkImageTiling tiling,
9523 VkImageUsageFlags usage,
9524 VkImageCreateFlags flags,
9525 VkExternalMemoryHandleTypeFlagsNV externalHandleType,
9526 VkExternalImageFormatPropertiesNV* pExternalImageFormatProperties) {
9527 return ?
9528}
9529
9530@extension("VK_NV_external_memory_win32") // 58
9531cmd VkResult vkGetMemoryWin32HandleNV(
9532 VkDevice device,
9533 VkDeviceMemory memory,
9534 VkExternalMemoryHandleTypeFlagsNV handleType,
9535 platform.HANDLE* pHandle) {
9536 return ?
9537}
9538
9539@extension("VK_KHR_get_physical_device_properties2") // 60
9540cmd void vkGetPhysicalDeviceFeatures2KHR(
9541 VkPhysicalDevice physicalDevice,
9542 VkPhysicalDeviceFeatures2KHR* pFeatures) {
9543}
9544
9545@extension("VK_KHR_get_physical_device_properties2") // 60
9546cmd void vkGetPhysicalDeviceProperties2KHR(
9547 VkPhysicalDevice physicalDevice,
9548 VkPhysicalDeviceProperties2KHR* pProperties) {
9549}
9550
9551@extension("VK_KHR_get_physical_device_properties2") // 60
9552cmd void vkGetPhysicalDeviceFormatProperties2KHR(
9553 VkPhysicalDevice physicalDevice,
9554 VkFormat format,
9555 VkFormatProperties2KHR* pFormatProperties) {
9556}
9557
9558@extension("VK_KHR_get_physical_device_properties2") // 60
9559cmd VkResult vkGetPhysicalDeviceImageFormatProperties2KHR(
9560 VkPhysicalDevice physicalDevice,
9561 const VkPhysicalDeviceImageFormatInfo2KHR* pImageFormatInfo,
9562 VkImageFormatProperties2KHR* pImageFormatProperties) {
9563 return ?
9564}
9565
9566@extension("VK_KHR_get_physical_device_properties2") // 60
9567cmd void vkGetPhysicalDeviceQueueFamilyProperties2KHR(
9568 VkPhysicalDevice physicalDevice,
9569 u32* pQueueFamilyPropertyCount,
9570 VkQueueFamilyProperties2KHR* pQueueFamilyProperties) {
9571}
9572
9573@extension("VK_KHR_get_physical_device_properties2") // 60
9574cmd void vkGetPhysicalDeviceMemoryProperties2KHR(
9575 VkPhysicalDevice physicalDevice,
9576 VkPhysicalDeviceMemoryProperties2KHR* pMemoryProperties) {
9577}
9578
9579@extension("VK_KHR_get_physical_device_properties2") // 60
9580cmd void vkGetPhysicalDeviceSparseImageFormatProperties2KHR(
9581 VkPhysicalDevice physicalDevice,
9582 const VkPhysicalDeviceSparseImageFormatInfo2KHR* pFormatInfo,
9583 u32* pPropertyCount,
9584 VkSparseImageFormatProperties2KHR* pProperties) {
9585}
9586
Daniel Koch09f7bf92017-10-05 00:26:58 -04009587@extension("VK_KHR_device_group") // 61
9588cmd void vkGetDeviceGroupPeerMemoryFeaturesKHR(
Jesse Hallad250842017-03-10 18:35:38 -08009589 VkDevice device,
9590 u32 heapIndex,
9591 u32 localDeviceIndex,
9592 u32 remoteDeviceIndex,
Daniel Koch09f7bf92017-10-05 00:26:58 -04009593 VkPeerMemoryFeatureFlagsKHR* pPeerMemoryFeatures) {
Jesse Hallad250842017-03-10 18:35:38 -08009594}
9595
Daniel Koch09f7bf92017-10-05 00:26:58 -04009596@extension("VK_KHR_device_group") // 61
9597cmd void vkCmdSetDeviceMaskKHR(
Jesse Hallad250842017-03-10 18:35:38 -08009598 VkCommandBuffer commandBuffer,
9599 u32 deviceMask) {
9600}
9601
Jesse Hallad250842017-03-10 18:35:38 -08009602
Daniel Koch09f7bf92017-10-05 00:26:58 -04009603@extension("VK_KHR_device_group") // 61
9604cmd void vkCmdDispatchBaseKHR(
Jesse Hallad250842017-03-10 18:35:38 -08009605 VkCommandBuffer commandBuffer,
9606 u32 baseGroupX,
9607 u32 baseGroupY,
9608 u32 baseGroupZ,
9609 u32 groupCountX,
9610 u32 groupCountY,
9611 u32 groupCountZ) {
9612}
9613
Jesse Hallad250842017-03-10 18:35:38 -08009614@extension("VK_NN_vi_surface") // 63
9615cmd VkResult vkCreateViSurfaceNN(
9616 VkInstance instance,
9617 const VkViSurfaceCreateInfoNN* pCreateInfo,
9618 const VkAllocationCallbacks* pAllocator,
9619 VkSurfaceKHR* pSurface) {
9620 return ?
9621}
9622
9623@extension("VK_KHR_maintenance1") // 70
9624cmd void vkTrimCommandPoolKHR(
9625 VkDevice device,
9626 VkCommandPool commandPool,
9627 VkCommandPoolTrimFlagsKHR flags) {
9628}
9629
Daniel Koch09f7bf92017-10-05 00:26:58 -04009630@extension("VK_KHR_device_group_creation") // 71
9631@threadSafety("system")
9632cmd VkResult vkEnumeratePhysicalDeviceGroupsKHR(
Jesse Hallad250842017-03-10 18:35:38 -08009633 VkInstance instance,
9634 u32* pPhysicalDeviceGroupCount,
Daniel Koch09f7bf92017-10-05 00:26:58 -04009635 VkPhysicalDeviceGroupPropertiesKHR* pPhysicalDeviceGroupProperties) {
9636 instanceObject := GetInstance(instance)
9637
9638 physicalDeviceGroupCount := as!u32(?)
9639 pPhysicalDeviceGroupCount[0] = physicalDeviceGroupCount
9640 physicalDevices := pPhysicalDeviceGroupProperties[0:physicalDeviceGroupCount]
9641
9642 for i in (0 .. physicalDeviceGroupCount) {
9643 physicalDevice := ?
9644 physicalDevices[i] = physicalDevice
9645 if !(physicalDevice in State.PhysicalDevices) {
9646 State.PhysicalDevices[physicalDevice] = new!PhysicalDeviceObject(instance: instance)
9647 }
9648 }
9649
Jesse Hallad250842017-03-10 18:35:38 -08009650 return ?
9651}
9652
Jesse Hall9492f992017-08-28 12:10:06 -07009653@extension("VK_KHR_external_memory_capabilities") // 72
9654cmd void vkGetPhysicalDeviceExternalBufferPropertiesKHR(
Jesse Hallad250842017-03-10 18:35:38 -08009655 VkPhysicalDevice physicalDevice,
Jesse Hall9492f992017-08-28 12:10:06 -07009656 const VkPhysicalDeviceExternalBufferInfoKHR* pExternalBufferInfo,
9657 VkExternalBufferPropertiesKHR* pExternalBufferProperties) {
Jesse Hallad250842017-03-10 18:35:38 -08009658}
9659
Jesse Hall9492f992017-08-28 12:10:06 -07009660@extension("VK_KHR_external_memory_win32") // 74
9661cmd VkResult vkGetMemoryWin32HandleKHR(
Jesse Hallad250842017-03-10 18:35:38 -08009662 VkDevice device,
Jesse Hall9492f992017-08-28 12:10:06 -07009663 const VkMemoryGetWin32HandleInfoKHR* pGetWin32HandleInfo,
Jesse Hallad250842017-03-10 18:35:38 -08009664 platform.HANDLE* pHandle) {
9665 return ?
9666}
9667
Jesse Hall9492f992017-08-28 12:10:06 -07009668@extension("VK_KHR_external_memory_win32") // 74
9669cmd VkResult vkGetMemoryWin32HandlePropertiesKHR(
Jesse Hallad250842017-03-10 18:35:38 -08009670 VkDevice device,
Jesse Hall9492f992017-08-28 12:10:06 -07009671 VkExternalMemoryHandleTypeFlagBitsKHR handleType,
Jesse Hallad250842017-03-10 18:35:38 -08009672 platform.HANDLE handle,
Jesse Hall9492f992017-08-28 12:10:06 -07009673 VkMemoryWin32HandlePropertiesKHR* pMemoryWin32HandleProperties) {
Jesse Hallad250842017-03-10 18:35:38 -08009674 return ?
9675}
9676
Jesse Hall9492f992017-08-28 12:10:06 -07009677@extension("VK_KHR_external_memory_fd") // 75
9678cmd VkResult vkGetMemoryFdKHR(
Jesse Hallad250842017-03-10 18:35:38 -08009679 VkDevice device,
Jesse Hall9492f992017-08-28 12:10:06 -07009680 const VkMemoryGetFdInfoKHR* pGetFdInfo,
Jesse Hallad250842017-03-10 18:35:38 -08009681 s32* pFd) {
9682 return ?
9683}
9684
Jesse Hall9492f992017-08-28 12:10:06 -07009685@extension("VK_KHR_external_memory_fd") // 75
9686cmd VkResult vkGetMemoryFdPropertiesKHR(
Jesse Hallad250842017-03-10 18:35:38 -08009687 VkDevice device,
Jesse Hall9492f992017-08-28 12:10:06 -07009688 VkExternalMemoryHandleTypeFlagBitsKHR handleType,
Jesse Hallad250842017-03-10 18:35:38 -08009689 s32 fd,
Jesse Hall9492f992017-08-28 12:10:06 -07009690 VkMemoryFdPropertiesKHR* pMemoryFdProperties) {
Jesse Hallad250842017-03-10 18:35:38 -08009691 return ?
9692}
9693
Jesse Hall9492f992017-08-28 12:10:06 -07009694@extension("VK_KHR_external_semaphore_capabilities") // 77
9695cmd void vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(
Jesse Hallad250842017-03-10 18:35:38 -08009696 VkPhysicalDevice physicalDevice,
Jesse Hall9492f992017-08-28 12:10:06 -07009697 const VkPhysicalDeviceExternalSemaphoreInfoKHR* pExternalSemaphoreInfo,
9698 VkExternalSemaphorePropertiesKHR* pExternalSemaphoreProperties) {
Jesse Hallad250842017-03-10 18:35:38 -08009699}
9700
Jesse Hall9492f992017-08-28 12:10:06 -07009701@extension("VK_KHR_external_semaphore_win32") // 79
9702cmd VkResult vkImportSemaphoreWin32HandleKHR(
Jesse Hallad250842017-03-10 18:35:38 -08009703 VkDevice device,
Jesse Hall9492f992017-08-28 12:10:06 -07009704 const VkImportSemaphoreWin32HandleInfoKHR* pImportSemaphoreWin32HandleInfo) {
Jesse Hallad250842017-03-10 18:35:38 -08009705 return ?
9706}
9707
Jesse Hall9492f992017-08-28 12:10:06 -07009708@extension("VK_KHR_external_semaphore_win32") // 79
9709cmd VkResult vkGetSemaphoreWin32HandleKHR(
Jesse Hallad250842017-03-10 18:35:38 -08009710 VkDevice device,
Jesse Hall9492f992017-08-28 12:10:06 -07009711 const VkSemaphoreGetWin32HandleInfoKHR* pGetWin32HandleInfo,
Jesse Hallad250842017-03-10 18:35:38 -08009712 platform.HANDLE* pHandle) {
9713 return ?
9714}
9715
Jesse Hall9492f992017-08-28 12:10:06 -07009716@extension("VK_KHR_external_semaphore_fd") // 80
9717cmd VkResult vkImportSemaphoreFdKHR(
Jesse Hallad250842017-03-10 18:35:38 -08009718 VkDevice device,
Jesse Hall9492f992017-08-28 12:10:06 -07009719 const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo) {
Jesse Hallad250842017-03-10 18:35:38 -08009720 return ?
9721}
9722
Jesse Hall9492f992017-08-28 12:10:06 -07009723@extension("VK_KHR_external_semaphore_fd") // 80
9724cmd VkResult vkGetSemaphoreFdKHR(
Jesse Hallad250842017-03-10 18:35:38 -08009725 VkDevice device,
Jesse Hall9492f992017-08-28 12:10:06 -07009726 const VkSemaphoreGetFdInfoKHR* pGetFdInfo,
Jesse Hallad250842017-03-10 18:35:38 -08009727 s32* pFd) {
9728 return ?
9729}
9730
9731@extension("VK_KHR_push_descriptor") // 81
9732cmd void vkCmdPushDescriptorSetKHR(
9733 VkCommandBuffer commandBuffer,
9734 VkPipelineBindPoint pipelineBindPoint,
9735 VkPipelineLayout layout,
9736 u32 set,
9737 u32 descriptorWriteCount,
9738 const VkWriteDescriptorSet* pDescriptorWrites) {
9739}
9740
9741@extension("VK_KHR_descriptor_update_template") // 86
9742cmd VkResult vkCreateDescriptorUpdateTemplateKHR(
9743 VkDevice device,
9744 const VkDescriptorUpdateTemplateCreateInfoKHR* pCreateInfo,
9745 const VkAllocationCallbacks* pAllocator,
9746 VkDescriptorUpdateTemplateKHR* pDescriptorUpdateTemplate) {
9747 return ?
9748}
9749
9750@extension("VK_KHR_descriptor_update_template") // 86
9751cmd void vkDestroyDescriptorUpdateTemplateKHR(
9752 VkDevice device,
9753 VkDescriptorUpdateTemplateKHR descriptorUpdateTemplate,
9754 const VkAllocationCallbacks* pAllocator) {
9755}
9756
9757@extension("VK_KHR_descriptor_update_template") // 86
9758cmd void vkUpdateDescriptorSetWithTemplateKHR(
9759 VkDevice device,
9760 VkDescriptorSet descriptorSet,
9761 VkDescriptorUpdateTemplateKHR descriptorUpdateTemplate,
9762 const void* pData) {
9763}
9764
9765@extension("VK_KHR_descriptor_update_template") // 86
9766cmd void vkCmdPushDescriptorSetWithTemplateKHR(
9767 VkCommandBuffer commandBuffer,
9768 VkDescriptorUpdateTemplateKHR descriptorUpdateTemplate,
9769 VkPipelineLayout layout,
9770 u32 set,
9771 const void* pData) {
9772}
9773
9774@extension("VK_NVX_device_generated_commands") // 87
9775cmd void vkCmdProcessCommandsNVX(
9776 VkCommandBuffer commandBuffer,
9777 const VkCmdProcessCommandsInfoNVX* pProcessCommandsInfo) {
9778}
9779
9780@extension("VK_NVX_device_generated_commands") // 87
9781cmd void vkCmdReserveSpaceForCommandsNVX(
9782 VkCommandBuffer commandBuffer,
9783 const VkCmdReserveSpaceForCommandsInfoNVX* pReserveSpaceInfo) {
9784}
9785
9786@extension("VK_NVX_device_generated_commands") // 87
9787cmd VkResult vkCreateIndirectCommandsLayoutNVX(
9788 VkDevice device,
9789 const VkIndirectCommandsLayoutCreateInfoNVX* pCreateInfo,
9790 const VkAllocationCallbacks* pAllocator,
9791 VkIndirectCommandsLayoutNVX* pIndirectCommandsLayout) {
9792 return ?
9793}
9794
9795@extension("VK_NVX_device_generated_commands") // 87
9796cmd void vkDestroyIndirectCommandsLayoutNVX(
9797 VkDevice device,
9798 VkIndirectCommandsLayoutNVX indirectCommandsLayout,
9799 const VkAllocationCallbacks* pAllocator) {
9800}
9801
9802@extension("VK_NVX_device_generated_commands") // 87
9803cmd VkResult vkCreateObjectTableNVX(
9804 VkDevice device,
9805 const VkObjectTableCreateInfoNVX* pCreateInfo,
9806 const VkAllocationCallbacks* pAllocator,
9807 VkObjectTableNVX* pObjectTable) {
9808 return ?
9809}
9810
9811@extension("VK_NVX_device_generated_commands") // 87
9812cmd void vkDestroyObjectTableNVX(
9813 VkDevice device,
9814 VkObjectTableNVX objectTable,
9815 const VkAllocationCallbacks* pAllocator) {
9816}
9817
9818@extension("VK_NVX_device_generated_commands") // 87
9819cmd VkResult vkRegisterObjectsNVX(
9820 VkDevice device,
9821 VkObjectTableNVX objectTable,
9822 u32 objectCount,
9823 const VkObjectTableEntryNVX* const* ppObjectTableEntries,
9824 const u32* pObjectIndices) {
9825 return ?
9826}
9827
9828@extension("VK_NVX_device_generated_commands") // 87
9829cmd VkResult vkUnregisterObjectsNVX(
9830 VkDevice device,
9831 VkObjectTableNVX objectTable,
9832 u32 objectCount,
9833 const VkObjectEntryTypeNVX* pObjectEntryTypes,
9834 const u32* pObjectIndices) {
9835 return ?
9836}
9837
9838@extension("VK_NVX_device_generated_commands") // 87
9839cmd void vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX(
9840 VkPhysicalDevice physicalDevice,
9841 VkDeviceGeneratedCommandsFeaturesNVX* pFeatures,
9842 VkDeviceGeneratedCommandsLimitsNVX* pLimits) {
9843}
9844
9845@extension("VK_NV_clip_space_w_scaling") // 88
9846cmd void vkCmdSetViewportWScalingNV(
9847 VkCommandBuffer commandBuffer,
9848 u32 firstViewport,
9849 u32 viewportCount,
9850 const VkViewportWScalingNV* pViewportWScalings) {
9851}
9852
9853@extension("VK_EXT_direct_mode_display") // 89
9854cmd VkResult vkReleaseDisplayEXT(
9855 VkPhysicalDevice physicalDevice,
9856 VkDisplayKHR display) {
9857 return ?
9858}
9859
9860@extension("VK_EXT_acquire_xlib_display") // 90
9861cmd VkResult vkAcquireXlibDisplayEXT(
9862 VkPhysicalDevice physicalDevice,
9863 platform.Display* dpy,
9864 VkDisplayKHR display) {
9865 return ?
9866}
9867
9868@extension("VK_EXT_acquire_xlib_display") // 90
9869cmd VkResult vkGetRandROutputDisplayEXT(
9870 VkPhysicalDevice physicalDevice,
9871 platform.Display* dpy,
9872 platform.RROutput rrOutput,
9873 VkDisplayKHR* pDisplay) {
9874 return ?
9875}
9876
9877@extension("VK_EXT_display_surface_counter") // 91
9878cmd VkResult vkGetPhysicalDeviceSurfaceCapabilities2EXT(
9879 VkPhysicalDevice physicalDevice,
9880 VkSurfaceKHR surface,
9881 VkSurfaceCapabilities2EXT* pSurfaceCapabilities) {
9882 return ?
9883}
9884
9885@extension("VK_EXT_display_control") // 92
9886cmd VkResult vkDisplayPowerControlEXT(
9887 VkDevice device,
9888 VkDisplayKHR display,
9889 const VkDisplayPowerInfoEXT* pDisplayPowerInfo) {
9890 return ?
9891}
9892
9893@extension("VK_EXT_display_control") // 92
9894cmd VkResult vkRegisterDeviceEventEXT(
9895 VkDevice device,
9896 const VkDeviceEventInfoEXT* pDeviceEventInfo,
9897 const VkAllocationCallbacks* pAllocator,
9898 VkFence* pFence) {
9899 return ?
9900}
9901
9902@extension("VK_EXT_display_control") // 92
9903cmd VkResult vkRegisterDisplayEventEXT(
9904 VkDevice device,
9905 VkDisplayKHR display,
9906 const VkDisplayEventInfoEXT* pDisplayEventInfo,
9907 const VkAllocationCallbacks* pAllocator,
9908 VkFence* pFence) {
9909 return ?
9910}
9911
9912@extension("VK_EXT_display_control") // 92
9913cmd VkResult vkGetSwapchainCounterEXT(
9914 VkDevice device,
9915 VkSwapchainKHR swapchain,
9916 VkSurfaceCounterFlagBitsEXT counter,
9917 u64* pCounterValue) {
9918 return ?
9919}
9920
9921@extension("VK_GOOGLE_display_timing") // 93
Ian Elliott4c8bb2a2016-12-29 11:07:26 -07009922cmd VkResult vkGetRefreshCycleDurationGOOGLE(
Jesse Hallfdc8ab32017-03-10 21:01:57 -08009923 VkDevice device,
9924 VkSwapchainKHR swapchain,
9925 VkRefreshCycleDurationGOOGLE* pDisplayTimingProperties) {
Ian Elliott4c8bb2a2016-12-29 11:07:26 -07009926 deviceObject := GetDevice(device)
9927 swapchainObject := GetSwapchain(swapchain)
9928
9929 displayTimingProperties := ?
9930 pDisplayTimingProperties[0] = displayTimingProperties
9931
9932 return ?
9933}
9934
Jesse Hallad250842017-03-10 18:35:38 -08009935@extension("VK_GOOGLE_display_timing") // 93
Ian Elliott4c8bb2a2016-12-29 11:07:26 -07009936cmd VkResult vkGetPastPresentationTimingGOOGLE(
Jesse Hallfdc8ab32017-03-10 21:01:57 -08009937 VkDevice device,
9938 VkSwapchainKHR swapchain,
9939 u32* pPresentationTimingCount,
9940 VkPastPresentationTimingGOOGLE* pPresentationTimings) {
Ian Elliott4c8bb2a2016-12-29 11:07:26 -07009941 return ?
9942}
9943
Jesse Hallad250842017-03-10 18:35:38 -08009944@extension("VK_EXT_discard_rectangles") // 100
9945cmd void vkCmdSetDiscardRectangleEXT(
Jesse Hall26763382016-05-20 07:13:52 -07009946 VkCommandBuffer commandBuffer,
Jesse Hallad250842017-03-10 18:35:38 -08009947 u32 firstDiscardRectangle,
9948 u32 discardRectangleCount,
9949 const VkRect2D* pDiscardRectangles) {
Jesse Hall26763382016-05-20 07:13:52 -07009950}
9951
Jesse Hallad250842017-03-10 18:35:38 -08009952@extension("VK_EXT_hdr_metadata") // 106
Jesse Hall889cd9a2017-02-25 22:12:23 -08009953cmd void vkSetHdrMetadataEXT(
Jesse Hallfdc8ab32017-03-10 21:01:57 -08009954 VkDevice device,
9955 u32 swapchainCount,
9956 const VkSwapchainKHR* pSwapchains,
9957 const VkHdrMetadataEXT* pMetadata) {
Jesse Hall889cd9a2017-02-25 22:12:23 -08009958}
9959
Jesse Hallad250842017-03-10 18:35:38 -08009960@extension("VK_KHR_shared_presentable_image") // 112
Chris Forbes2e12cb82017-01-18 11:45:17 +13009961cmd VkResult vkGetSwapchainStatusKHR(
9962 VkDevice device,
9963 VkSwapchainKHR swapchain) {
9964 return ?
9965}
9966
Jesse Hall9492f992017-08-28 12:10:06 -07009967@extension("VK_KHR_external_fence_capabilities") // 113
9968cmd void vkGetPhysicalDeviceExternalFencePropertiesKHR(
9969 VkPhysicalDevice physicalDevice,
9970 const VkPhysicalDeviceExternalFenceInfoKHR* pExternalFenceInfo,
9971 VkExternalFencePropertiesKHR* pExternalFenceProperties) {
9972}
9973
9974@extension("VK_KHR_external_fence_win32") // 115
9975cmd VkResult vkImportFenceWin32HandleKHR(
9976 VkDevice device,
9977 const VkImportFenceWin32HandleInfoKHR* pImportFenceWin32HandleInfo) {
9978 return ?
9979}
9980
9981@extension("VK_KHR_external_fence_win32") // 115
9982cmd VkResult vkGetFenceWin32HandleKHR(
9983 VkDevice device,
9984 const VkFenceGetWin32HandleInfoKHR* pGetWin32HandleInfo,
9985 platform.HANDLE* pHandle) {
9986 return ?
9987}
9988
9989@extension("VK_KHR_external_fence_fd") // 116
9990cmd VkResult vkImportFenceFdKHR(
9991 VkDevice device,
9992 const VkImportFenceFdInfoKHR* pImportFenceFdInfo) {
9993 return ?
9994}
9995
9996@extension("VK_KHR_external_fence_fd") // 116
9997cmd VkResult vkGetFenceFdKHR(
9998 VkDevice device,
9999 const VkFenceGetFdInfoKHR* pGetFdInfo,
10000 int* pFd) {
10001 return ?
10002}
10003
Jesse Hall05556b12017-05-18 17:40:25 -070010004@extension("VK_KHR_get_surface_capabilities2") // 120
Chris Forbese2d3ee12017-03-16 16:10:15 +130010005cmd VkResult vkGetPhysicalDeviceSurfaceCapabilities2KHR(
10006 VkPhysicalDevice physicalDevice,
10007 const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo,
10008 VkSurfaceCapabilities2KHR* pSurfaceCapabilities) {
10009 return ?
10010}
10011
Jesse Hall05556b12017-05-18 17:40:25 -070010012@extension("VK_KHR_get_surface_capabilities2") // 120
Chris Forbese2d3ee12017-03-16 16:10:15 +130010013cmd VkResult vkGetPhysicalDeviceSurfaceFormats2KHR(
10014 VkPhysicalDevice physicalDevice,
10015 const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo,
10016 u32* pSurfaceFormatCount,
10017 VkSurfaceFormat2KHR* pSurfaceFormats) {
10018 return ?
10019}
10020
Jesse Hallad250842017-03-10 18:35:38 -080010021@extension("VK_MVK_ios_surface") // 123
10022cmd VkResult vkCreateIOSSurfaceMVK(
10023 VkInstance instance,
10024 const VkIOSSurfaceCreateInfoMVK* pCreateInfo,
10025 const VkAllocationCallbacks* pAllocator,
10026 VkSurfaceKHR* pSurface) {
10027 return ?
10028}
10029
10030@extension("VK_MVK_macos_surface") // 124
10031cmd VkResult vkCreateMacOSSurfaceMVK(
10032 VkInstance instance,
10033 const VkMacOSSurfaceCreateInfoMVK* pCreateInfo,
10034 const VkAllocationCallbacks* pAllocator,
10035 VkSurfaceKHR* pSurface) {
10036 return ?
10037}
10038
Jesse Hall8c954d32018-01-17 22:06:20 -080010039@extension("VK_EXT_debug_utils") // 129
10040@external type void* PFN_vkDebugUtilsMessengerCallbackEXT
10041@extension("VK_EXT_debug_utils") // 129
10042@pfn cmd VkBool32 vkDebugUtilsMessengerCallbackEXT(
10043 VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity,
10044 VkDebugUtilsMessageTypeFlagsEXT messageType,
10045 const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData,
10046 void* pUserData) {
10047 return ?
10048}
10049
10050@extension("VK_EXT_debug_utils") // 129
10051cmd VkResult vkSetDebugUtilsObjectNameEXT(
10052 VkDevice device,
10053 const VkDebugUtilsObjectNameInfoEXT* pNameInfo) {
10054 return ?
10055}
Jesse Hall72e6a132018-04-06 13:00:44 -070010056
Jesse Hall8c954d32018-01-17 22:06:20 -080010057@extension("VK_EXT_debug_utils") // 129
10058cmd VkResult vkSetDebugUtilsObjectTagEXT(
10059 VkDevice device,
10060 const VkDebugUtilsObjectTagInfoEXT* pTagInfo) {
10061 return ?
10062}
Jesse Hall72e6a132018-04-06 13:00:44 -070010063
Jesse Hall8c954d32018-01-17 22:06:20 -080010064@extension("VK_EXT_debug_utils") // 129
10065cmd void vkQueueBeginDebugUtilsLabelEXT(
10066 VkQueue queue,
10067 const VkDebugUtilsLabelEXT* pLabelInfo) {
10068}
Jesse Hall72e6a132018-04-06 13:00:44 -070010069
Jesse Hall8c954d32018-01-17 22:06:20 -080010070@extension("VK_EXT_debug_utils") // 129
10071cmd void vkQueueEndDebugUtilsLabelEXT(VkQueue queue) {
10072}
Jesse Hall72e6a132018-04-06 13:00:44 -070010073
Jesse Hall8c954d32018-01-17 22:06:20 -080010074@extension("VK_EXT_debug_utils") // 129
10075cmd void vkQueueInsertDebugUtilsLabelEXT(
10076 VkQueue queue,
10077 const VkDebugUtilsLabelEXT* pLabelInfo) {
10078}
Jesse Hall72e6a132018-04-06 13:00:44 -070010079
Jesse Hall8c954d32018-01-17 22:06:20 -080010080@extension("VK_EXT_debug_utils") // 129
10081cmd void vkCmdBeginDebugUtilsLabelEXT(
10082 VkCommandBuffer commandBuffer,
10083 const VkDebugUtilsLabelEXT* pLabelInfo) {
10084}
Jesse Hall72e6a132018-04-06 13:00:44 -070010085
Jesse Hall8c954d32018-01-17 22:06:20 -080010086@extension("VK_EXT_debug_utils") // 129
10087cmd void vkCmdEndDebugUtilsLabelEXT(VkCommandBuffer commandBuffer) {
10088}
10089
10090@extension("VK_EXT_debug_utils") // 129
10091cmd void vkCmdInsertDebugUtilsLabelEXT(
10092 VkCommandBuffer commandBuffer,
10093 const VkDebugUtilsLabelEXT* pLabelInfo) {
10094}
10095
10096@extension("VK_EXT_debug_utils") // 129
10097cmd VkResult vkCreateDebugUtilsMessengerEXT(
10098 VkInstance instance,
10099 const VkDebugUtilsMessengerCreateInfoEXT* pCreateInfo,
10100 const VkAllocationCallbacks* pAllocator,
10101 VkDebugUtilsMessengerEXT* pMessenger) {
10102 return ?
10103}
10104
10105@extension("VK_EXT_debug_utils") // 129
10106cmd void vkDestroyDebugUtilsMessengerEXT(
10107 VkInstance instance,
10108 VkDebugUtilsMessengerEXT messenger,
10109 const VkAllocationCallbacks* pAllocator) {
10110}
10111
10112@extension("VK_EXT_debug_utils") // 129
10113cmd void vkSubmitDebugUtilsMessageEXT(
10114 VkInstance instance,
10115 VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity,
10116 VkDebugUtilsMessageTypeFlagsEXT messageTypes,
10117 const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData) {
10118}
10119
Jesse Hall36215a92018-01-18 15:04:37 -080010120@extension("VK_ANDROID_external_memory_android_hardware_buffer") // 130
10121@vulkan1_1 // extension requires 1.1, and should become non-optional when 1.1 does
10122cmd VkResult vkGetAndroidHardwareBufferPropertiesANDROID(
10123 VkDevice device,
10124 const platform.AHardwareBuffer* buffer,
10125 VkAndroidHardwareBufferPropertiesANDROID* pProperties) {
10126 return ?
10127}
10128
10129@extension("VK_ANDROID_external_memory_android_hardware_buffer") // 130
10130@vulkan1_1 // extension requires 1.1, and should become non-optional when 1.1 does
10131cmd VkResult vkGetMemoryAndroidHardwareBufferANDROID(
10132 VkDevice device,
10133 const VkMemoryGetAndroidHardwareBufferInfoANDROID* pInfo,
10134 platform.AHardwareBuffer** pBuffer) {
10135 return ?
10136}
10137
Jesse Hall77726222017-09-19 14:49:27 -050010138@extension("VK_EXT_sample_locations") // 144
10139cmd void vkCmdSetSampleLocationsEXT(
10140 VkCommandBuffer commandBuffer,
10141 const VkSampleLocationsInfoEXT* pSampleLocationsInfo) {
10142}
10143
10144@extension("VK_EXT_sample_locations") // 144
10145cmd void vkGetPhysicalDeviceMultisamplePropertiesEXT(
10146 VkPhysicalDevice physicalDevice,
10147 VkSampleCountFlagBits samples,
10148 VkMultisamplePropertiesEXT* pMultisampleProperties) {
10149}
10150
Jesse Hall9492f992017-08-28 12:10:06 -070010151@extension("VK_KHR_get_memory_requirements2") // 147
10152cmd void vkGetImageMemoryRequirements2KHR(
10153 VkDevice device,
10154 const VkImageMemoryRequirementsInfo2KHR* pInfo,
10155 VkMemoryRequirements2KHR* pMemoryRequirements) {
10156}
10157
10158@extension("VK_KHR_get_memory_requirements2") // 147
10159cmd void vkGetBufferMemoryRequirements2KHR(
10160 VkDevice device,
10161 const VkBufferMemoryRequirementsInfo2KHR* pInfo,
10162 VkMemoryRequirements2KHR* pMemoryRequirements) {
10163}
10164
10165@extension("VK_KHR_get_memory_requirements2") // 147
10166cmd void vkGetImageSparseMemoryRequirements2KHR(
10167 VkDevice device,
10168 const VkImageSparseMemoryRequirementsInfo2KHR* pInfo,
10169 u32* pSparseMemoryRequirementCount,
10170 VkSparseImageMemoryRequirements2KHR* pSparseMemoryRequirements) {
10171}
10172
Jesse Hall076f95d2017-09-20 11:34:47 -070010173@extension("VK_KHR_sampler_ycbcr_conversion") // 157
10174cmd VkResult vkCreateSamplerYcbcrConversionKHR(
10175 VkDevice device,
10176 const VkSamplerYcbcrConversionCreateInfoKHR* pCreateInfo,
10177 const VkAllocationCallbacks* pAllocator,
10178 VkSamplerYcbcrConversionKHR* pYcbcrConversion) {
10179 return ?
10180}
10181
10182@extension("VK_KHR_sampler_ycbcr_conversion") // 157
10183cmd void vkDestroySamplerYcbcrConversionKHR(
10184 VkDevice device,
10185 VkSamplerYcbcrConversionKHR ycbcrConversion,
10186 const VkAllocationCallbacks* pAllocator) {
10187}
10188
10189@extension("VK_KHR_bind_memory2") // 158
10190cmd VkResult vkBindBufferMemory2KHR(
10191 VkDevice device,
10192 u32 bindInfoCount,
10193 const VkBindBufferMemoryInfoKHR* pBindInfos) {
10194 return ?
10195}
10196
10197@extension("VK_KHR_bind_memory2") // 158
10198cmd VkResult vkBindImageMemory2KHR(
10199 VkDevice device,
10200 u32 bindInfoCount,
10201 const VkBindImageMemoryInfoKHR* pBindInfos) {
10202 return ?
10203}
10204
Jesse Hall77726222017-09-19 14:49:27 -050010205@extension("VK_EXT_validation_cache") // 161
10206cmd VkResult vkCreateValidationCacheEXT(
10207 VkDevice device,
10208 const VkValidationCacheCreateInfoEXT* pCreateInfo,
10209 const VkAllocationCallbacks* pAllocator,
10210 VkValidationCacheEXT* pValidationCache) {
10211 return ?
10212}
10213
10214@extension("VK_EXT_validation_cache") // 161
10215cmd void vkDestroyValidationCacheEXT(
10216 VkDevice device,
10217 VkValidationCacheEXT validationCache,
10218 const VkAllocationCallbacks* pAllocator) {
10219}
10220
10221@extension("VK_EXT_validation_cache") // 161
10222cmd VkResult vkMergeValidationCachesEXT(
10223 VkDevice device,
10224 VkValidationCacheEXT dstCache,
10225 u32 srcCacheCount,
10226 const VkValidationCacheEXT* pSrcCaches) {
10227 return ?
10228}
10229
10230@extension("VK_EXT_validation_cache") // 161
10231cmd VkResult vkGetValidationCacheDataEXT(
10232 VkDevice device,
10233 VkValidationCacheEXT validationCache,
10234 platform.size_t* pDataSize,
10235 void* pData) {
10236 return ?
10237}
10238
Daniel Koch09f7bf92017-10-05 00:26:58 -040010239@extension("VK_KHR_maintenance3") // 169
10240cmd void vkGetDescriptorSetLayoutSupportKHR(
10241 VkDevice device,
10242 const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
10243 VkDescriptorSetLayoutSupportKHR* pSupport) {
10244}
10245
Jesse Hall8c954d32018-01-17 22:06:20 -080010246@extension("VK_EXT_external_memory_host") // 179
10247cmd VkResult vkGetMemoryHostPointerPropertiesEXT(
10248 VkDevice device,
10249 VkExternalMemoryHandleTypeFlagBits handleType,
10250 const void* pHostPointer,
10251 VkMemoryHostPointerPropertiesEXT* pMemoryHostPointerProperties) {
10252 return ?
10253}
10254
Jesse Hall72e6a132018-04-06 13:00:44 -070010255@extension("VK_AMD_buffer_marker") // 180
10256cmd void vkCmdWriteBufferMarkerAMD(
10257 VkCommandBuffer commandBuffer,
10258 VkPipelineStageFlagBits pipelineStage,
10259 VkBuffer dstBuffer,
10260 VkDeviceSize dstOffset,
10261 u32 marker) {
10262}
10263
Jesse Halld27f6aa2015-08-15 17:58:48 -070010264////////////////
10265// Validation //
10266////////////////
10267
10268extern void validate(string layerName, bool condition, string message)
10269
10270
10271/////////////////////////////
10272// Internal State Tracking //
10273/////////////////////////////
10274
10275StateObject State
10276
10277@internal class StateObject {
10278 // Dispatchable objects.
10279 map!(VkInstance, ref!InstanceObject) Instances
10280 map!(VkPhysicalDevice, ref!PhysicalDeviceObject) PhysicalDevices
10281 map!(VkDevice, ref!DeviceObject) Devices
10282 map!(VkQueue, ref!QueueObject) Queues
Jesse Hall3fbc8562015-11-29 22:10:52 -080010283 map!(VkCommandBuffer, ref!CommandBufferObject) CommandBuffers
Jesse Halld27f6aa2015-08-15 17:58:48 -070010284
10285 // Non-dispatchable objects.
10286 map!(VkDeviceMemory, ref!DeviceMemoryObject) DeviceMemories
10287 map!(VkBuffer, ref!BufferObject) Buffers
10288 map!(VkBufferView, ref!BufferViewObject) BufferViews
10289 map!(VkImage, ref!ImageObject) Images
10290 map!(VkImageView, ref!ImageViewObject) ImageViews
Jesse Halld27f6aa2015-08-15 17:58:48 -070010291 map!(VkShaderModule, ref!ShaderModuleObject) ShaderModules
Jesse Halld27f6aa2015-08-15 17:58:48 -070010292 map!(VkPipeline, ref!PipelineObject) Pipelines
10293 map!(VkPipelineLayout, ref!PipelineLayoutObject) PipelineLayouts
10294 map!(VkSampler, ref!SamplerObject) Samplers
10295 map!(VkDescriptorSet, ref!DescriptorSetObject) DescriptorSets
10296 map!(VkDescriptorSetLayout, ref!DescriptorSetLayoutObject) DescriptorSetLayouts
10297 map!(VkDescriptorPool, ref!DescriptorPoolObject) DescriptorPools
Jesse Halld27f6aa2015-08-15 17:58:48 -070010298 map!(VkFence, ref!FenceObject) Fences
10299 map!(VkSemaphore, ref!SemaphoreObject) Semaphores
10300 map!(VkEvent, ref!EventObject) Events
10301 map!(VkQueryPool, ref!QueryPoolObject) QueryPools
10302 map!(VkFramebuffer, ref!FramebufferObject) Framebuffers
10303 map!(VkRenderPass, ref!RenderPassObject) RenderPasses
10304 map!(VkPipelineCache, ref!PipelineCacheObject) PipelineCaches
Jesse Hall3fbc8562015-11-29 22:10:52 -080010305 map!(VkCommandPool, ref!CommandPoolObject) CommandPools
Jesse Hall1356b0d2015-11-23 17:24:58 -080010306 map!(VkSurfaceKHR, ref!SurfaceObject) Surfaces
Michael Lentine88594d72015-11-12 12:49:45 -080010307 map!(VkSwapchainKHR, ref!SwapchainObject) Swapchains
Jesse Halld27f6aa2015-08-15 17:58:48 -070010308}
10309
10310@internal class InstanceObject {
10311}
10312
10313@internal class PhysicalDeviceObject {
10314 VkInstance instance
10315}
10316
10317@internal class DeviceObject {
10318 VkPhysicalDevice physicalDevice
10319}
10320
10321@internal class QueueObject {
10322 VkDevice device
10323 VkQueueFlags flags
10324}
10325
Jesse Hall3fbc8562015-11-29 22:10:52 -080010326@internal class CommandBufferObject {
Jesse Halld27f6aa2015-08-15 17:58:48 -070010327 VkDevice device
10328 map!(u64, VkDeviceMemory) boundObjects
10329 VkQueueFlags queueFlags
10330}
10331
10332@internal class DeviceMemoryObject {
Jesse Hall3fbc8562015-11-29 22:10:52 -080010333 VkDevice device
10334 VkDeviceSize allocationSize
10335 map!(u64, VkDeviceSize) boundObjects
10336 map!(VkCommandBuffer, VkCommandBuffer) boundCommandBuffers
Jesse Halld27f6aa2015-08-15 17:58:48 -070010337}
10338
10339@internal class BufferObject {
10340 VkDevice device
Jesse Hall3fbc8562015-11-29 22:10:52 -080010341 VkDeviceMemory memory
10342 VkDeviceSize memoryOffset
Jesse Halld27f6aa2015-08-15 17:58:48 -070010343}
10344
10345@internal class BufferViewObject {
10346 VkDevice device
10347 VkBuffer buffer
10348}
10349
10350@internal class ImageObject {
10351 VkDevice device
Jesse Hall3fbc8562015-11-29 22:10:52 -080010352 VkDeviceMemory memory
10353 VkDeviceSize memoryOffset
Jesse Halld27f6aa2015-08-15 17:58:48 -070010354}
10355
10356@internal class ImageViewObject {
10357 VkDevice device
10358 VkImage image
10359}
10360
Jesse Halld27f6aa2015-08-15 17:58:48 -070010361@internal class ShaderObject {
10362 VkDevice device
10363}
10364
10365@internal class ShaderModuleObject {
10366 VkDevice device
10367}
10368
10369@internal class PipelineObject {
10370 VkDevice device
10371}
10372
10373@internal class PipelineLayoutObject {
10374 VkDevice device
10375}
10376
10377@internal class SamplerObject {
10378 VkDevice device
10379}
10380
10381@internal class DescriptorSetObject {
10382 VkDevice device
10383}
10384
10385@internal class DescriptorSetLayoutObject {
10386 VkDevice device
10387}
10388
10389@internal class DescriptorPoolObject {
10390 VkDevice device
10391}
10392
Jesse Halld27f6aa2015-08-15 17:58:48 -070010393@internal class FenceObject {
10394 VkDevice device
10395 bool signaled
10396}
10397
10398@internal class SemaphoreObject {
10399 VkDevice device
10400}
10401
10402@internal class EventObject {
10403 VkDevice device
10404}
10405
10406@internal class QueryPoolObject {
10407 VkDevice device
10408}
10409
10410@internal class FramebufferObject {
10411 VkDevice device
10412}
10413
10414@internal class RenderPassObject {
10415 VkDevice device
10416}
10417
10418@internal class PipelineCacheObject {
10419 VkDevice device
10420}
10421
Jesse Hall3fbc8562015-11-29 22:10:52 -080010422@internal class CommandPoolObject {
Jesse Halld27f6aa2015-08-15 17:58:48 -070010423 VkDevice device
10424}
10425
Jesse Hall1356b0d2015-11-23 17:24:58 -080010426@internal class SurfaceObject {
10427 VkInstance instance
10428}
10429
Michael Lentine88594d72015-11-12 12:49:45 -080010430@internal class SwapchainObject {
10431 VkDevice device
10432}
10433
Jesse Halld27f6aa2015-08-15 17:58:48 -070010434macro ref!InstanceObject GetInstance(VkInstance instance) {
10435 assert(instance in State.Instances)
10436 return State.Instances[instance]
10437}
10438
10439macro ref!PhysicalDeviceObject GetPhysicalDevice(VkPhysicalDevice physicalDevice) {
10440 assert(physicalDevice in State.PhysicalDevices)
10441 return State.PhysicalDevices[physicalDevice]
10442}
10443
10444macro ref!DeviceObject GetDevice(VkDevice device) {
10445 assert(device in State.Devices)
10446 return State.Devices[device]
10447}
10448
10449macro ref!QueueObject GetQueue(VkQueue queue) {
10450 assert(queue in State.Queues)
10451 return State.Queues[queue]
10452}
10453
Jesse Hall3fbc8562015-11-29 22:10:52 -080010454macro ref!CommandBufferObject GetCommandBuffer(VkCommandBuffer commandBuffer) {
10455 assert(commandBuffer in State.CommandBuffers)
10456 return State.CommandBuffers[commandBuffer]
Jesse Halld27f6aa2015-08-15 17:58:48 -070010457}
10458
Jesse Hall3fbc8562015-11-29 22:10:52 -080010459macro ref!DeviceMemoryObject GetDeviceMemory(VkDeviceMemory memory) {
10460 assert(memory in State.DeviceMemories)
10461 return State.DeviceMemories[memory]
Jesse Halld27f6aa2015-08-15 17:58:48 -070010462}
10463
10464macro ref!BufferObject GetBuffer(VkBuffer buffer) {
10465 assert(buffer in State.Buffers)
10466 return State.Buffers[buffer]
10467}
10468
10469macro ref!BufferViewObject GetBufferView(VkBufferView bufferView) {
10470 assert(bufferView in State.BufferViews)
10471 return State.BufferViews[bufferView]
10472}
10473
10474macro ref!ImageObject GetImage(VkImage image) {
10475 assert(image in State.Images)
10476 return State.Images[image]
10477}
10478
10479macro ref!ImageViewObject GetImageView(VkImageView imageView) {
10480 assert(imageView in State.ImageViews)
10481 return State.ImageViews[imageView]
10482}
10483
Jesse Halld27f6aa2015-08-15 17:58:48 -070010484macro ref!ShaderModuleObject GetShaderModule(VkShaderModule shaderModule) {
10485 assert(shaderModule in State.ShaderModules)
10486 return State.ShaderModules[shaderModule]
10487}
10488
10489macro ref!PipelineObject GetPipeline(VkPipeline pipeline) {
10490 assert(pipeline in State.Pipelines)
10491 return State.Pipelines[pipeline]
10492}
10493
10494macro ref!PipelineLayoutObject GetPipelineLayout(VkPipelineLayout pipelineLayout) {
10495 assert(pipelineLayout in State.PipelineLayouts)
10496 return State.PipelineLayouts[pipelineLayout]
10497}
10498
10499macro ref!SamplerObject GetSampler(VkSampler sampler) {
10500 assert(sampler in State.Samplers)
10501 return State.Samplers[sampler]
10502}
10503
10504macro ref!DescriptorSetObject GetDescriptorSet(VkDescriptorSet descriptorSet) {
10505 assert(descriptorSet in State.DescriptorSets)
10506 return State.DescriptorSets[descriptorSet]
10507}
10508
10509macro ref!DescriptorSetLayoutObject GetDescriptorSetLayout(VkDescriptorSetLayout descriptorSetLayout) {
10510 assert(descriptorSetLayout in State.DescriptorSetLayouts)
10511 return State.DescriptorSetLayouts[descriptorSetLayout]
10512}
10513
10514macro ref!DescriptorPoolObject GetDescriptorPool(VkDescriptorPool descriptorPool) {
10515 assert(descriptorPool in State.DescriptorPools)
10516 return State.DescriptorPools[descriptorPool]
10517}
10518
Jesse Halld27f6aa2015-08-15 17:58:48 -070010519macro ref!FenceObject GetFence(VkFence fence) {
10520 assert(fence in State.Fences)
10521 return State.Fences[fence]
10522}
10523
10524macro ref!SemaphoreObject GetSemaphore(VkSemaphore semaphore) {
10525 assert(semaphore in State.Semaphores)
10526 return State.Semaphores[semaphore]
10527}
10528
10529macro ref!EventObject GetEvent(VkEvent event) {
10530 assert(event in State.Events)
10531 return State.Events[event]
10532}
10533
10534macro ref!QueryPoolObject GetQueryPool(VkQueryPool queryPool) {
10535 assert(queryPool in State.QueryPools)
10536 return State.QueryPools[queryPool]
10537}
10538
10539macro ref!FramebufferObject GetFramebuffer(VkFramebuffer framebuffer) {
10540 assert(framebuffer in State.Framebuffers)
10541 return State.Framebuffers[framebuffer]
10542}
10543
10544macro ref!RenderPassObject GetRenderPass(VkRenderPass renderPass) {
10545 assert(renderPass in State.RenderPasses)
10546 return State.RenderPasses[renderPass]
10547}
10548
10549macro ref!PipelineCacheObject GetPipelineCache(VkPipelineCache pipelineCache) {
10550 assert(pipelineCache in State.PipelineCaches)
10551 return State.PipelineCaches[pipelineCache]
10552}
10553
Jesse Hall3fbc8562015-11-29 22:10:52 -080010554macro ref!CommandPoolObject GetCommandPool(VkCommandPool commandPool) {
10555 assert(commandPool in State.CommandPools)
10556 return State.CommandPools[commandPool]
Jesse Hallf09c6b12015-08-15 19:54:28 -070010557}
Michael Lentine88594d72015-11-12 12:49:45 -080010558
Jesse Hall1356b0d2015-11-23 17:24:58 -080010559macro ref!SurfaceObject GetSurface(VkSurfaceKHR surface) {
10560 assert(surface in State.Surfaces)
10561 return State.Surfaces[surface]
10562}
10563
Michael Lentine88594d72015-11-12 12:49:45 -080010564macro ref!SwapchainObject GetSwapchain(VkSwapchainKHR swapchain) {
10565 assert(swapchain in State.Swapchains)
10566 return State.Swapchains[swapchain]
10567}
Jesse Halld8bade02015-11-24 10:24:18 -080010568
10569macro VkQueueFlags AddQueueFlag(VkQueueFlags flags, VkQueueFlagBits bit) {
10570 return as!VkQueueFlags(as!u32(flags) | as!u32(bit))
10571}