blob: 832a8e9152b5e267204d2798cc069dde20badbee [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 Hall54f8d132018-04-18 08:16:59 -070031define VERSION_PATCH 76
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 Hall54f8d132018-04-18 08:16:59 -0700380// 122
381@extension("VK_KHR_get_display_properties2") define VK_KHR_GET_DISPLAY_PROPERTIES_2_SPEC_VERSION 1
382@extension("VK_KHR_get_display_properties2") define VK_KHR_GET_DISPLAY_PROPERTIES_2_EXTENSION_NAME "VK_KHR_get_display_properties2"
383
Jesse Hallad250842017-03-10 18:35:38 -0800384// 123
385@extension("VK_MVK_ios_surface") define VK_MVK_IOS_SURFACE_SPEC_VERSION 1
386@extension("VK_MVK_ios_surface") define VK_MVK_IOS_SURFACE_EXTENSION_NAME "VK_MVK_ios_surface"
387
388// 124
389@extension("VK_MVK_macos_surface") define VK_MVK_MACOS_SURFACE_SPEC_VERSION 1
390@extension("VK_MVK_macos_surface") define VK_MVK_MACOS_SURFACE_EXTENSION_NAME "VK_MVK_macos_surface"
391
Jesse Hall8c954d32018-01-17 22:06:20 -0800392// 126
393@extension("VK_EXT_external_memory_dma_buf") define VK_EXT_EXTERNAL_MEMORY_DMA_BUF_SPEC_VERSION 1
394@extension("VK_EXT_external_memory_dma_buf") define VK_EXT_EXTERNAL_MEMORY_DMA_BUF_EXTENSION_NAME "VK_EXT_external_memory_dma_buf"
395
396// 127
397@extension("VK_EXT_queue_family_foreign") define VK_EXT_QUEUE_FAMILY_FOREIGN_SPEC_VERSION 1
398@extension("VK_EXT_queue_family_foreign") define VK_EXT_QUEUE_FAMILY_FOREIGN_EXTENSION_NAME "VK_EXT_queue_family_foreign"
399
Jesse Hall9492f992017-08-28 12:10:06 -0700400// 128
Jesse Hall77726222017-09-19 14:49:27 -0500401@extension("VK_KHR_dedicated_allocation") define VK_KHR_DEDICATED_ALLOCATION_SPEC_VERSION 3
Jesse Hall9492f992017-08-28 12:10:06 -0700402@extension("VK_KHR_dedicated_allocation") define VK_KHR_DEDICATED_ALLOCATION_EXTENSION_NAME "VK_KHR_dedicated_allocation"
403
Jesse Hall8c954d32018-01-17 22:06:20 -0800404// 128
405@extension("VK_EXT_debug_utils") define VK_EXT_DEBUG_UTILS_SPEC_VERSION 1
406@extension("VK_EXT_debug_utils") define VK_EXT_DEBUG_UTILS_EXTENSION_NAME "VK_EXT_debug_utils"
407
Jesse Hall36215a92018-01-18 15:04:37 -0800408// 130
Jesse Hall72e6a132018-04-06 13:00:44 -0700409@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 -0800410@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"
411
Jesse Hall7ba0ac72017-07-07 17:13:23 -0700412// 131
413@extension("VK_EXT_sampler_filter_minmax") define VK_EXT_SAMPLER_FILTER_MINMAX_SPEC_VERSION 1
414@extension("VK_EXT_sampler_filter_minmax") define VK_EXT_SAMPLER_FILTER_MINMAX_EXTENSION_NAME "VK_EXT_sampler_filter_minmax"
415
Jesse Hall9492f992017-08-28 12:10:06 -0700416// 132
417@extension("VK_KHR_storage_buffer_storage_class") define VK_KHR_STORAGE_BUFFER_STORAGE_CLASS_SPEC_VERSION 1
418@extension("VK_KHR_storage_buffer_storage_class") define VK_KHR_STORAGE_BUFFER_STORAGE_CLASS_EXTENSION_NAME "VK_KHR_storage_buffer_storage_class"
419
Jesse Hall7ba0ac72017-07-07 17:13:23 -0700420// 133
421@extension("VK_AMD_gpu_shader_int16") define VK_AMD_GPU_SHADER_INT16_SPEC_VERSION 1
422@extension("VK_AMD_gpu_shader_int16") define VK_AMD_GPU_SHADER_INT16_EXTENSION_NAME "VK_AMD_gpu_shader_int16"
423
Jesse Hall77726222017-09-19 14:49:27 -0500424// 137
425@extension("VK_AMD_mixed_attachment_samples") define VK_AMD_MIXED_ATTACHMENT_SAMPLES_SPEC_VERSION 1
426@extension("VK_AMD_mixed_attachment_samples") define VK_AMD_MIXED_ATTACHMENT_SAMPLES_EXTENSION_NAME "VK_AMD_mixed_attachment_samples"
427
428// 138
429@extension("VK_AMD_shader_fragment_mask") define VK_AMD_SHADER_FRAGMENT_MASK_SPEC_VERSION 1
430@extension("VK_AMD_shader_fragment_mask") define VK_AMD_SHADER_FRAGMENT_MASK_EXTENSION_NAME "VK_AMD_shader_fragment_mask"
431
432// 141
433@extension("VK_EXT_shader_stencil_export") define VK_EXT_SHADER_STENCIL_EXPORT_SPEC_VERSION 1
434@extension("VK_EXT_shader_stencil_export") define VK_EXT_SHADER_STENCIL_EXPORT_EXTENSION_NAME "VK_EXT_shader_stencil_export"
435
436// 144
437@extension("VK_EXT_sample_locations") define VK_EXT_SAMPLE_LOCATIONS_SPEC_VERSION 1
438@extension("VK_EXT_sample_locations") define VK_EXT_SAMPLE_LOCATIONS_EXTENSION_NAME "VK_EXT_sample_locations"
439
440// 145
441@extension("VK_KHR_relaxed_block_layout") define VK_KHR_RELAXED_BLOCK_LAYOUT_SPEC_VERSION 1
442@extension("VK_KHR_relaxed_block_layout") define VK_KHR_RELAXED_BLOCK_LAYOUT_EXTENSION_NAME "VK_KHR_relaxed_block_layout"
443
Jesse Hall9492f992017-08-28 12:10:06 -0700444// 147
445@extension("VK_KHR_get_memory_requirements2") define VK_KHR_GET_MEMORY_REQUIREMENTS2_SPEC_VERSION 1
446@extension("VK_KHR_get_memory_requirements2") define VK_KHR_GET_MEMORY_REQUIREMENTS2_EXTENSION_NAME "VK_KHR_get_memory_requirements2"
447
Jesse Hall076f95d2017-09-20 11:34:47 -0700448// 148
449@extension("VK_KHR_image_format_list") define VK_KHR_IMAGE_FORMAT_LIST_SPEC_VERSION 1
450@extension("VK_KHR_image_format_list") define VK_KHR_IMAGE_FORMAT_LIST_EXTENSION_NAME "VK_KHR_image_format_list"
451
Jesse Hall7ba0ac72017-07-07 17:13:23 -0700452// 149
453@extension("VK_EXT_blend_operation_advanced") define VK_EXT_BLEND_OPERATION_ADVANCED_SPEC_VERSION 2
454@extension("VK_EXT_blend_operation_advanced") define VK_EXT_BLEND_OPERATION_ADVANCED_EXTENSION_NAME "VK_EXT_blend_operation_advanced"
455
456// 150
457@extension("VK_NV_fragment_coverage_to_color") define VK_NV_FRAGMENT_COVERAGE_TO_COLOR_SPEC_VERSION 1
458@extension("VK_NV_fragment_coverage_to_color") define VK_NV_FRAGMENT_COVERAGE_TO_COLOR_EXTENSION_NAME "VK_NV_fragment_coverage_to_color"
459
460// 153
461@extension("VK_NV_framebuffer_mixed_samples") define VK_NV_FRAMEBUFFER_MIXED_SAMPLES_SPEC_VERSION 1
462@extension("VK_NV_framebuffer_mixed_samples") define VK_NV_FRAMEBUFFER_MIXED_SAMPLES_EXTENSION_NAME "VK_NV_framebuffer_mixed_samples"
463
464// 154
465@extension("VK_NV_fill_rectangle") define VK_NV_FILL_RECTANGLE_SPEC_VERSION 1
466@extension("VK_NV_fill_rectangle") define VK_NV_FILL_RECTANGLE_EXTENSION_NAME "VK_NV_fill_rectangle"
467
Jesse Hall77726222017-09-19 14:49:27 -0500468// 156
469@extension("VK_EXT_post_depth_coverage") define VK_EXT_POST_DEPTH_COVERAGE_SPEC_VERSION 1
470@extension("VK_EXT_post_depth_coverage") define VK_EXT_POST_DEPTH_COVERAGE_EXTENSION_NAME "VK_EXT_post_depth_coverage"
471
Jesse Hall076f95d2017-09-20 11:34:47 -0700472// 157
473@extension("VK_KHR_sampler_ycbcr_conversion") define VK_KHR_SAMPLER_YCBCR_CONVERSION_SPEC_VERSION 1
474@extension("VK_KHR_sampler_ycbcr_conversion") define VK_KHR_SAMPLER_YCBCR_CONVERSION_EXTENSION_NAME "VK_KHR_sampler_ycbcr_conversion"
475
476// 158
477@extension("VK_KHR_bind_memory2") define VK_KHR_BIND_MEMORY2_SPEC_VERSION 1
478@extension("VK_KHR_bind_memory2") define VK_KHR_BIND_MEMORY2_EXTENSION_NAME "VK_KHR_bind_memory2"
479
Jesse Hall77726222017-09-19 14:49:27 -0500480// 161
481@extension("VK_EXT_validation_cache") define VK_EXT_VALIDATION_CACHE_SPEC_VERSION 1
482@extension("VK_EXT_validation_cache") define VK_EXT_VALIDATION_CACHE_EXTENSION_NAME "VK_EXT_validation_cache"
483
Jesse Hall72e6a132018-04-06 13:00:44 -0700484// 162
485@extension("VK_EXT_descriptor_indexing") define VK_EXT_DESCRIPTOR_INDEXING_SPEC_VERSION 2
486@extension("VK_EXT_descriptor_indexing") define VK_EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME "VK_EXT_descriptor_indexing"
487
Jesse Hall77726222017-09-19 14:49:27 -0500488// 165
489@extension("VK_EXT_shader_viewport_index_layer") define VK_EXT_SHADER_VIEWPORT_INDEX_LAYER_SPEC_VERSION 1
490@extension("VK_EXT_shader_viewport_index_layer") define VK_EXT_SHADER_VIEWPORT_INDEX_LAYER_EXTENSION_NAME "VK_EXT_shader_viewport_index_layer"
491
Daniel Koch09f7bf92017-10-05 00:26:58 -0400492// 169
493@extension("VK_KHR_maintenance3") define VK_KHR_MAINTENANCE3_SPEC_VERSION 1
494@extension("VK_KHR_maintenance3") define VK_KHR_MAINTENANCE3_EXTENSION_NAME "VK_KHR_maintenance3"
495
Jesse Hall54f8d132018-04-18 08:16:59 -0700496// 170
497@extension("VK_KHR_draw_indirect_count") define VK_KHR_DRAW_INDIRECT_COUNT_SPEC_VERSION 1
498@extension("VK_KHR_draw_indirect_count") define VK_KHR_DRAW_INDIRECT_COUNT_EXTENSION_NAME "VK_KHR_draw_indirect_count"
499
Jesse Hall8c954d32018-01-17 22:06:20 -0800500// 175
501@extension("VK_EXT_global_priority") define VK_EXT_GLOBAL_PRIORITY_SPEC_VERSION 1
502@extension("VK_EXT_global_priority") define VK_EXT_GLOBAL_PRIORITY_EXTENSION_NAME "VK_EXT_global_priority"
503
504// 179
505@extension("VK_EXT_external_memory_host") define VK_EXT_EXTERNAL_MEMORY_HOST_SPEC_VERSION 1
506@extension("VK_EXT_external_memory_host") define VK_EXT_EXTERNAL_MEMORY_HOST_EXTENSION_NAME "VK_EXT_external_memory_host"
507
Jesse Hall72e6a132018-04-06 13:00:44 -0700508// 180
509@extension("VK_AMD_buffer_marker") define VK_AMD_BUFFER_MARKER_SPEC_VERSION 1
510@extension("VK_AMD_buffer_marker") define VK_AMD_BUFFER_MARKER_EXTENSION_NAME "VK_AMD_buffer_marker"
511
512// 186
513@extension("VK_AMD_shader_core_properties") define VK_AMD_SHADER_CORE_PROPERTIES_SPEC_VERSION 1
514@extension("VK_AMD_shader_core_properties") define VK_AMD_SHADER_CORE_PROPERTIES_EXTENSION_NAME "VK_AMD_shader_core_properties"
515
516// 191
517@extension("VK_EXT_vertex_attribute_divisor") define VK_AMD_SHADER_CORE_PROPERTIES_SPEC_VERSION 1
518@extension("VK_EXT_vertex_attribute_divisor") define VK_AMD_BUFFER_MARKER_EXTENSION_NAME "VK_EXT_vertex_attribute_divisor"
519
520// 199
521@extension("VK_NV_shader_subgroup_partitioned") define VK_NV_SHADER_SUBGROUP_PARTITIONED_SPEC_VERSION 1
522@extension("VK_NV_shader_subgroup_partitioned") define VK_NV_SHADER_SUBGROUP_PARTITIONED_EXTENSION_NAME "VK_NV_shader_subgroup_partitioned"
523
Jesse Halld27f6aa2015-08-15 17:58:48 -0700524/////////////
525// Types //
526/////////////
527
Jesse Hall5ae3abb2015-10-08 14:00:22 -0700528type u32 VkBool32
529type u32 VkFlags
530type u64 VkDeviceSize
531type u32 VkSampleMask
532
Jesse Halld27f6aa2015-08-15 17:58:48 -0700533/// Dispatchable handle types.
534@dispatchHandle type u64 VkInstance
535@dispatchHandle type u64 VkPhysicalDevice
536@dispatchHandle type u64 VkDevice
537@dispatchHandle type u64 VkQueue
Jesse Hall3fbc8562015-11-29 22:10:52 -0800538@dispatchHandle type u64 VkCommandBuffer
Jesse Halld27f6aa2015-08-15 17:58:48 -0700539
540/// Non dispatchable handle types.
541@nonDispatchHandle type u64 VkDeviceMemory
Jesse Hall3fbc8562015-11-29 22:10:52 -0800542@nonDispatchHandle type u64 VkCommandPool
Jesse Halld27f6aa2015-08-15 17:58:48 -0700543@nonDispatchHandle type u64 VkBuffer
544@nonDispatchHandle type u64 VkBufferView
545@nonDispatchHandle type u64 VkImage
546@nonDispatchHandle type u64 VkImageView
Jesse Halld27f6aa2015-08-15 17:58:48 -0700547@nonDispatchHandle type u64 VkShaderModule
Jesse Halld27f6aa2015-08-15 17:58:48 -0700548@nonDispatchHandle type u64 VkPipeline
549@nonDispatchHandle type u64 VkPipelineLayout
550@nonDispatchHandle type u64 VkSampler
551@nonDispatchHandle type u64 VkDescriptorSet
552@nonDispatchHandle type u64 VkDescriptorSetLayout
553@nonDispatchHandle type u64 VkDescriptorPool
Jesse Halld27f6aa2015-08-15 17:58:48 -0700554@nonDispatchHandle type u64 VkFence
555@nonDispatchHandle type u64 VkSemaphore
556@nonDispatchHandle type u64 VkEvent
557@nonDispatchHandle type u64 VkQueryPool
558@nonDispatchHandle type u64 VkFramebuffer
559@nonDispatchHandle type u64 VkRenderPass
560@nonDispatchHandle type u64 VkPipelineCache
Jesse Hall1356b0d2015-11-23 17:24:58 -0800561
Ian Elliott28bd2c32017-10-13 09:21:12 -0600562@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -0400563@nonDispatchHandle type u64 VkSamplerYcbcrConversion
564@nonDispatchHandle type u64 VkDescriptorUpdateTemplate
565
Jesse Hallad250842017-03-10 18:35:38 -0800566// 1
Jesse Hall3e0dc8f2015-11-30 00:42:57 -0800567@extension("VK_KHR_surface") @nonDispatchHandle type u64 VkSurfaceKHR
Jesse Hall1356b0d2015-11-23 17:24:58 -0800568
Jesse Hallad250842017-03-10 18:35:38 -0800569// 2
Jesse Hall3e0dc8f2015-11-30 00:42:57 -0800570@extension("VK_KHR_swapchain") @nonDispatchHandle type u64 VkSwapchainKHR
Jesse Hall1356b0d2015-11-23 17:24:58 -0800571
Jesse Hallad250842017-03-10 18:35:38 -0800572// 3
Jesse Hall3e0dc8f2015-11-30 00:42:57 -0800573@extension("VK_KHR_display") @nonDispatchHandle type u64 VkDisplayKHR
574@extension("VK_KHR_display") @nonDispatchHandle type u64 VkDisplayModeKHR
Jesse Halld27f6aa2015-08-15 17:58:48 -0700575
Jesse Hallad250842017-03-10 18:35:38 -0800576// 12
Jesse Hall715b86a2016-01-16 16:34:29 -0800577@extension("VK_EXT_debug_report") @nonDispatchHandle type u64 VkDebugReportCallbackEXT
578
Jesse Hallad250842017-03-10 18:35:38 -0800579// 86
580@extension("VK_KHR_descriptor_update_template") @nonDispatchHandle type u64 VkDescriptorUpdateTemplateKHR
581
582// 87
Chris Forbes289cb792016-12-30 15:03:55 +1300583@extension("VK_NVX_device_generated_commands") @nonDispatchHandle type u64 VkObjectTableNVX
584@extension("VK_NVX_device_generated_commands") @nonDispatchHandle type u64 VkIndirectCommandsLayoutNVX
585
Jesse Hall8c954d32018-01-17 22:06:20 -0800586// 129
587@extension("VK_EXT_debug_utils") @nonDispatchHandle type u64 VkDebugUtilsMessengerEXT
588
Jesse Hall076f95d2017-09-20 11:34:47 -0700589// 157
590@extension("VK_KHR_sampler_ycbcr_conversion") @nonDispatchHandle type u64 VkSamplerYcbcrConversionKHR
591
Jesse Hall77726222017-09-19 14:49:27 -0500592// 161
593@extension("VK_EXT_validation_cache") @nonDispatchHandle type u64 VkValidationCacheEXT
Jesse Halld27f6aa2015-08-15 17:58:48 -0700594
595/////////////
596// Enums //
597/////////////
598
599enum VkImageLayout {
600 VK_IMAGE_LAYOUT_UNDEFINED = 0x00000000, /// Implicit layout an image is when its contents are undefined due to various reasons (e.g. right after creation)
601 VK_IMAGE_LAYOUT_GENERAL = 0x00000001, /// General layout when image can be used for any kind of access
602 VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL = 0x00000002, /// Optimal layout when image is only used for color attachment read/write
603 VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL = 0x00000003, /// Optimal layout when image is only used for depth/stencil attachment read/write
604 VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL = 0x00000004, /// Optimal layout when image is used for read only depth/stencil attachment and shader access
605 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 -0800606 VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL = 0x00000006, /// Optimal layout when image is used only as source of transfer operations
607 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 -0700608 VK_IMAGE_LAYOUT_PREINITIALIZED = 0x00000008, /// Initial layout used when the data is populated by the CPU
Jesse Hall1356b0d2015-11-23 17:24:58 -0800609
Ian Elliott28bd2c32017-10-13 09:21:12 -0600610 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -0400611 VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL = 1000117000,
612 VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL = 1000117001,
613
Jesse Hallad250842017-03-10 18:35:38 -0800614 //@extension("VK_KHR_swapchain") // 2
Jesse Hallbd888842015-11-30 21:44:14 -0800615 VK_IMAGE_LAYOUT_PRESENT_SRC_KHR = 1000001002,
Chris Forbesaf3a1112017-01-31 15:37:03 +1300616
Jesse Hall05556b12017-05-18 17:40:25 -0700617 //@extension("VK_KHR_shared_presentable_image") // 112
Chris Forbesaf3a1112017-01-31 15:37:03 +1300618 VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR = 1000111000,
Jesse Hall076f95d2017-09-20 11:34:47 -0700619
620 //@extension("VK_KHR_maintenance2") // 118
621 VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL_KHR = 1000117000,
622 VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL_KHR = 1000117001,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700623}
624
625enum VkAttachmentLoadOp {
626 VK_ATTACHMENT_LOAD_OP_LOAD = 0x00000000,
627 VK_ATTACHMENT_LOAD_OP_CLEAR = 0x00000001,
628 VK_ATTACHMENT_LOAD_OP_DONT_CARE = 0x00000002,
629}
630
631enum VkAttachmentStoreOp {
632 VK_ATTACHMENT_STORE_OP_STORE = 0x00000000,
633 VK_ATTACHMENT_STORE_OP_DONT_CARE = 0x00000001,
634}
635
636enum VkImageType {
637 VK_IMAGE_TYPE_1D = 0x00000000,
638 VK_IMAGE_TYPE_2D = 0x00000001,
639 VK_IMAGE_TYPE_3D = 0x00000002,
640}
641
642enum VkImageTiling {
Jesse Hallc7467b72015-11-29 21:05:26 -0800643 VK_IMAGE_TILING_OPTIMAL = 0x00000000,
644 VK_IMAGE_TILING_LINEAR = 0x00000001,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700645}
646
647enum VkImageViewType {
648 VK_IMAGE_VIEW_TYPE_1D = 0x00000000,
649 VK_IMAGE_VIEW_TYPE_2D = 0x00000001,
650 VK_IMAGE_VIEW_TYPE_3D = 0x00000002,
651 VK_IMAGE_VIEW_TYPE_CUBE = 0x00000003,
652 VK_IMAGE_VIEW_TYPE_1D_ARRAY = 0x00000004,
653 VK_IMAGE_VIEW_TYPE_2D_ARRAY = 0x00000005,
654 VK_IMAGE_VIEW_TYPE_CUBE_ARRAY = 0x00000006,
655}
656
Jesse Hall3fbc8562015-11-29 22:10:52 -0800657enum VkCommandBufferLevel {
658 VK_COMMAND_BUFFER_LEVEL_PRIMARY = 0x00000000,
659 VK_COMMAND_BUFFER_LEVEL_SECONDARY = 0x00000001,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700660}
661
Jesse Hall65ab5522015-11-30 00:07:16 -0800662enum VkComponentSwizzle {
663 VK_COMPONENT_SWIZZLE_IDENTITY = 0x00000000,
664 VK_COMPONENT_SWIZZLE_ZERO = 0x00000001,
665 VK_COMPONENT_SWIZZLE_ONE = 0x00000002,
666 VK_COMPONENT_SWIZZLE_R = 0x00000003,
667 VK_COMPONENT_SWIZZLE_G = 0x00000004,
668 VK_COMPONENT_SWIZZLE_B = 0x00000005,
669 VK_COMPONENT_SWIZZLE_A = 0x00000006,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700670}
671
672enum VkDescriptorType {
673 VK_DESCRIPTOR_TYPE_SAMPLER = 0x00000000,
674 VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER = 0x00000001,
675 VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE = 0x00000002,
676 VK_DESCRIPTOR_TYPE_STORAGE_IMAGE = 0x00000003,
677 VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER = 0x00000004,
678 VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER = 0x00000005,
679 VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER = 0x00000006,
680 VK_DESCRIPTOR_TYPE_STORAGE_BUFFER = 0x00000007,
681 VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC = 0x00000008,
682 VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC = 0x00000009,
683 VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT = 0x0000000a,
684}
685
Jesse Halld27f6aa2015-08-15 17:58:48 -0700686enum VkQueryType {
687 VK_QUERY_TYPE_OCCLUSION = 0x00000000,
688 VK_QUERY_TYPE_PIPELINE_STATISTICS = 0x00000001, /// Optional
Jesse Halla3a7a1d2015-11-24 11:37:23 -0800689 VK_QUERY_TYPE_TIMESTAMP = 0x00000002,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700690}
691
Jesse Halld27f6aa2015-08-15 17:58:48 -0700692enum VkBorderColor {
693 VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK = 0x00000000,
694 VK_BORDER_COLOR_INT_TRANSPARENT_BLACK = 0x00000001,
695 VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK = 0x00000002,
696 VK_BORDER_COLOR_INT_OPAQUE_BLACK = 0x00000003,
697 VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE = 0x00000004,
698 VK_BORDER_COLOR_INT_OPAQUE_WHITE = 0x00000005,
699}
700
701enum VkPipelineBindPoint {
Jesse Hallc7467b72015-11-29 21:05:26 -0800702 VK_PIPELINE_BIND_POINT_GRAPHICS = 0x00000000,
703 VK_PIPELINE_BIND_POINT_COMPUTE = 0x00000001,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700704}
705
706enum VkPrimitiveTopology {
707 VK_PRIMITIVE_TOPOLOGY_POINT_LIST = 0x00000000,
708 VK_PRIMITIVE_TOPOLOGY_LINE_LIST = 0x00000001,
709 VK_PRIMITIVE_TOPOLOGY_LINE_STRIP = 0x00000002,
710 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST = 0x00000003,
711 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP = 0x00000004,
712 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN = 0x00000005,
Jesse Hall3fbc8562015-11-29 22:10:52 -0800713 VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY = 0x00000006,
714 VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY = 0x00000007,
715 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY = 0x00000008,
716 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY = 0x00000009,
Jesse Hall091ed9e2015-11-30 00:55:29 -0800717 VK_PRIMITIVE_TOPOLOGY_PATCH_LIST = 0x0000000a,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700718}
719
720enum VkSharingMode {
721 VK_SHARING_MODE_EXCLUSIVE = 0x00000000,
722 VK_SHARING_MODE_CONCURRENT = 0x00000001,
723}
724
725enum VkIndexType {
726 VK_INDEX_TYPE_UINT16 = 0x00000000,
727 VK_INDEX_TYPE_UINT32 = 0x00000001,
728}
729
Jesse Hall23ff73f2015-11-29 14:36:39 -0800730enum VkFilter {
731 VK_FILTER_NEAREST = 0x00000000,
732 VK_FILTER_LINEAR = 0x00000001,
Jesse Hall26763382016-05-20 07:13:52 -0700733
Jesse Hallad250842017-03-10 18:35:38 -0800734 //@extension("VK_IMG_filter_cubic") // 16
Jesse Hall26763382016-05-20 07:13:52 -0700735 VK_FILTER_CUBIC_IMG = 1000015000,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700736}
737
Jesse Hall23ff73f2015-11-29 14:36:39 -0800738enum VkSamplerMipmapMode {
Jesse Hall23ff73f2015-11-29 14:36:39 -0800739 VK_SAMPLER_MIPMAP_MODE_NEAREST = 0x00000001, /// Choose nearest mip level
740 VK_SAMPLER_MIPMAP_MODE_LINEAR = 0x00000002, /// Linear filter between mip levels
Jesse Halld27f6aa2015-08-15 17:58:48 -0700741}
742
Jesse Hall23ff73f2015-11-29 14:36:39 -0800743enum VkSamplerAddressMode {
Jesse Hallc7467b72015-11-29 21:05:26 -0800744 VK_SAMPLER_ADDRESS_MODE_REPEAT = 0x00000000,
745 VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT = 0x00000001,
746 VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE = 0x00000002,
747 VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER = 0x00000003,
748 VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE = 0x00000004,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700749}
750
751enum VkCompareOp {
752 VK_COMPARE_OP_NEVER = 0x00000000,
753 VK_COMPARE_OP_LESS = 0x00000001,
754 VK_COMPARE_OP_EQUAL = 0x00000002,
Jesse Hall3fbc8562015-11-29 22:10:52 -0800755 VK_COMPARE_OP_LESS_OR_EQUAL = 0x00000003,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700756 VK_COMPARE_OP_GREATER = 0x00000004,
757 VK_COMPARE_OP_NOT_EQUAL = 0x00000005,
Jesse Hall3fbc8562015-11-29 22:10:52 -0800758 VK_COMPARE_OP_GREATER_OR_EQUAL = 0x00000006,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700759 VK_COMPARE_OP_ALWAYS = 0x00000007,
760}
761
Jesse Hall65ab5522015-11-30 00:07:16 -0800762enum VkPolygonMode {
763 VK_POLYGON_MODE_FILL = 0x00000000,
764 VK_POLYGON_MODE_LINE = 0x00000001,
765 VK_POLYGON_MODE_POINT = 0x00000002,
Jesse Hall7ba0ac72017-07-07 17:13:23 -0700766
767 //@extension("VK_NV_fill_rectangle") // 154
768 VK_POLYGON_MODE_FILL_RECTANGLE_NV = 1000153000,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700769}
770
771enum VkFrontFace {
Jesse Hall3fbc8562015-11-29 22:10:52 -0800772 VK_FRONT_FACE_COUNTER_CLOCKWISE = 0x00000000,
773 VK_FRONT_FACE_CLOCKWISE = 0x00000001,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700774}
775
Jesse Hall65ab5522015-11-30 00:07:16 -0800776enum VkBlendFactor {
777 VK_BLEND_FACTOR_ZERO = 0x00000000,
778 VK_BLEND_FACTOR_ONE = 0x00000001,
779 VK_BLEND_FACTOR_SRC_COLOR = 0x00000002,
780 VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR = 0x00000003,
781 VK_BLEND_FACTOR_DST_COLOR = 0x00000004,
782 VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR = 0x00000005,
783 VK_BLEND_FACTOR_SRC_ALPHA = 0x00000006,
784 VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA = 0x00000007,
785 VK_BLEND_FACTOR_DST_ALPHA = 0x00000008,
786 VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA = 0x00000009,
787 VK_BLEND_FACTOR_CONSTANT_COLOR = 0x0000000a,
788 VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR = 0x0000000b,
789 VK_BLEND_FACTOR_CONSTANT_ALPHA = 0x0000000c,
790 VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA = 0x0000000d,
791 VK_BLEND_FACTOR_SRC_ALPHA_SATURATE = 0x0000000e,
792 VK_BLEND_FACTOR_SRC1_COLOR = 0x0000000f,
793 VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR = 0x00000010,
794 VK_BLEND_FACTOR_SRC1_ALPHA = 0x00000011,
795 VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA = 0x00000012,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700796}
797
798enum VkBlendOp {
799 VK_BLEND_OP_ADD = 0x00000000,
800 VK_BLEND_OP_SUBTRACT = 0x00000001,
801 VK_BLEND_OP_REVERSE_SUBTRACT = 0x00000002,
802 VK_BLEND_OP_MIN = 0x00000003,
803 VK_BLEND_OP_MAX = 0x00000004,
Jesse Hall7ba0ac72017-07-07 17:13:23 -0700804
805 //@extension("VK_EXT_blend_operation_advanced") // 149
806 VK_BLEND_OP_ZERO_EXT = 1000148000,
807 VK_BLEND_OP_SRC_EXT = 1000148001,
808 VK_BLEND_OP_DST_EXT = 1000148002,
809 VK_BLEND_OP_SRC_OVER_EXT = 1000148003,
810 VK_BLEND_OP_DST_OVER_EXT = 1000148004,
811 VK_BLEND_OP_SRC_IN_EXT = 1000148005,
812 VK_BLEND_OP_DST_IN_EXT = 1000148006,
813 VK_BLEND_OP_SRC_OUT_EXT = 1000148007,
814 VK_BLEND_OP_DST_OUT_EXT = 1000148008,
815 VK_BLEND_OP_SRC_ATOP_EXT = 1000148009,
816 VK_BLEND_OP_DST_ATOP_EXT = 1000148010,
817 VK_BLEND_OP_XOR_EXT = 1000148011,
818 VK_BLEND_OP_MULTIPLY_EXT = 1000148012,
819 VK_BLEND_OP_SCREEN_EXT = 1000148013,
820 VK_BLEND_OP_OVERLAY_EXT = 1000148014,
821 VK_BLEND_OP_DARKEN_EXT = 1000148015,
822 VK_BLEND_OP_LIGHTEN_EXT = 1000148016,
823 VK_BLEND_OP_COLORDODGE_EXT = 1000148017,
824 VK_BLEND_OP_COLORBURN_EXT = 1000148018,
825 VK_BLEND_OP_HARDLIGHT_EXT = 1000148019,
826 VK_BLEND_OP_SOFTLIGHT_EXT = 1000148020,
827 VK_BLEND_OP_DIFFERENCE_EXT = 1000148021,
828 VK_BLEND_OP_EXCLUSION_EXT = 1000148022,
829 VK_BLEND_OP_INVERT_EXT = 1000148023,
830 VK_BLEND_OP_INVERT_RGB_EXT = 1000148024,
831 VK_BLEND_OP_LINEARDODGE_EXT = 1000148025,
832 VK_BLEND_OP_LINEARBURN_EXT = 1000148026,
833 VK_BLEND_OP_VIVIDLIGHT_EXT = 1000148027,
834 VK_BLEND_OP_LINEARLIGHT_EXT = 1000148028,
835 VK_BLEND_OP_PINLIGHT_EXT = 1000148029,
836 VK_BLEND_OP_HARDMIX_EXT = 1000148030,
837 VK_BLEND_OP_HSL_HUE_EXT = 1000148031,
838 VK_BLEND_OP_HSL_SATURATION_EXT = 1000148032,
839 VK_BLEND_OP_HSL_COLOR_EXT = 1000148033,
840 VK_BLEND_OP_HSL_LUMINOSITY_EXT = 1000148034,
841 VK_BLEND_OP_PLUS_EXT = 1000148035,
842 VK_BLEND_OP_PLUS_CLAMPED_EXT = 1000148036,
843 VK_BLEND_OP_PLUS_CLAMPED_ALPHA_EXT = 1000148037,
844 VK_BLEND_OP_PLUS_DARKER_EXT = 1000148038,
845 VK_BLEND_OP_MINUS_EXT = 1000148039,
846 VK_BLEND_OP_MINUS_CLAMPED_EXT = 1000148040,
847 VK_BLEND_OP_CONTRAST_EXT = 1000148041,
848 VK_BLEND_OP_INVERT_OVG_EXT = 1000148042,
849 VK_BLEND_OP_RED_EXT = 1000148043,
850 VK_BLEND_OP_GREEN_EXT = 1000148044,
851 VK_BLEND_OP_BLUE_EXT = 1000148045,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700852}
853
854enum VkStencilOp {
855 VK_STENCIL_OP_KEEP = 0x00000000,
856 VK_STENCIL_OP_ZERO = 0x00000001,
857 VK_STENCIL_OP_REPLACE = 0x00000002,
Jesse Hall3fbc8562015-11-29 22:10:52 -0800858 VK_STENCIL_OP_INCREMENT_AND_CLAMP = 0x00000003,
859 VK_STENCIL_OP_DECREMENT_AND_CLAMP = 0x00000004,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700860 VK_STENCIL_OP_INVERT = 0x00000005,
Jesse Hall3fbc8562015-11-29 22:10:52 -0800861 VK_STENCIL_OP_INCREMENT_AND_WRAP = 0x00000006,
862 VK_STENCIL_OP_DECREMENT_AND_WRAP = 0x00000007,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700863}
864
865enum VkLogicOp {
866 VK_LOGIC_OP_CLEAR = 0x00000000,
867 VK_LOGIC_OP_AND = 0x00000001,
868 VK_LOGIC_OP_AND_REVERSE = 0x00000002,
869 VK_LOGIC_OP_COPY = 0x00000003,
870 VK_LOGIC_OP_AND_INVERTED = 0x00000004,
Jesse Hall3fbc8562015-11-29 22:10:52 -0800871 VK_LOGIC_OP_NO_OP = 0x00000005,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700872 VK_LOGIC_OP_XOR = 0x00000006,
873 VK_LOGIC_OP_OR = 0x00000007,
874 VK_LOGIC_OP_NOR = 0x00000008,
Jesse Hall3fbc8562015-11-29 22:10:52 -0800875 VK_LOGIC_OP_EQUIVALENT = 0x00000009,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700876 VK_LOGIC_OP_INVERT = 0x0000000a,
877 VK_LOGIC_OP_OR_REVERSE = 0x0000000b,
878 VK_LOGIC_OP_COPY_INVERTED = 0x0000000c,
879 VK_LOGIC_OP_OR_INVERTED = 0x0000000d,
880 VK_LOGIC_OP_NAND = 0x0000000e,
881 VK_LOGIC_OP_SET = 0x0000000f,
882}
883
Jesse Hall3fbc8562015-11-29 22:10:52 -0800884enum VkSystemAllocationScope {
Jesse Hall3e0dc8f2015-11-30 00:42:57 -0800885 VK_SYSTEM_ALLOCATION_SCOPE_COMMAND = 0x00000000,
Jesse Hall3fbc8562015-11-29 22:10:52 -0800886 VK_SYSTEM_ALLOCATION_SCOPE_OBJECT = 0x00000001,
887 VK_SYSTEM_ALLOCATION_SCOPE_CACHE = 0x00000002,
888 VK_SYSTEM_ALLOCATION_SCOPE_DEVICE = 0x00000003,
889 VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE = 0x00000004,
Jesse Hall03b6fe12015-11-24 12:44:21 -0800890}
891
Jesse Hall3fbc8562015-11-29 22:10:52 -0800892enum VkInternalAllocationType {
893 VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE = 0x00000000,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700894}
895
896enum VkPhysicalDeviceType {
897 VK_PHYSICAL_DEVICE_TYPE_OTHER = 0x00000000,
898 VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU = 0x00000001,
899 VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU = 0x00000002,
900 VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU = 0x00000003,
901 VK_PHYSICAL_DEVICE_TYPE_CPU = 0x00000004,
902}
903
Jesse Hall65ab5522015-11-30 00:07:16 -0800904enum VkVertexInputRate {
905 VK_VERTEX_INPUT_RATE_VERTEX = 0x00000000,
906 VK_VERTEX_INPUT_RATE_INSTANCE = 0x00000001,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700907}
908
909/// Vulkan format definitions
910enum VkFormat {
Jesse Hallf4ab2b12015-11-30 16:04:55 -0800911 VK_FORMAT_UNDEFINED = 0,
912 VK_FORMAT_R4G4_UNORM_PACK8 = 1,
913 VK_FORMAT_R4G4B4A4_UNORM_PACK16 = 2,
914 VK_FORMAT_B4G4R4A4_UNORM_PACK16 = 3,
915 VK_FORMAT_R5G6B5_UNORM_PACK16 = 4,
916 VK_FORMAT_B5G6R5_UNORM_PACK16 = 5,
917 VK_FORMAT_R5G5B5A1_UNORM_PACK16 = 6,
918 VK_FORMAT_B5G5R5A1_UNORM_PACK16 = 7,
919 VK_FORMAT_A1R5G5B5_UNORM_PACK16 = 8,
920 VK_FORMAT_R8_UNORM = 9,
921 VK_FORMAT_R8_SNORM = 10,
922 VK_FORMAT_R8_USCALED = 11,
923 VK_FORMAT_R8_SSCALED = 12,
924 VK_FORMAT_R8_UINT = 13,
925 VK_FORMAT_R8_SINT = 14,
926 VK_FORMAT_R8_SRGB = 15,
927 VK_FORMAT_R8G8_UNORM = 16,
928 VK_FORMAT_R8G8_SNORM = 17,
929 VK_FORMAT_R8G8_USCALED = 18,
930 VK_FORMAT_R8G8_SSCALED = 19,
931 VK_FORMAT_R8G8_UINT = 20,
932 VK_FORMAT_R8G8_SINT = 21,
933 VK_FORMAT_R8G8_SRGB = 22,
934 VK_FORMAT_R8G8B8_UNORM = 23,
935 VK_FORMAT_R8G8B8_SNORM = 24,
936 VK_FORMAT_R8G8B8_USCALED = 25,
937 VK_FORMAT_R8G8B8_SSCALED = 26,
938 VK_FORMAT_R8G8B8_UINT = 27,
939 VK_FORMAT_R8G8B8_SINT = 28,
940 VK_FORMAT_R8G8B8_SRGB = 29,
941 VK_FORMAT_B8G8R8_UNORM = 30,
942 VK_FORMAT_B8G8R8_SNORM = 31,
943 VK_FORMAT_B8G8R8_USCALED = 32,
944 VK_FORMAT_B8G8R8_SSCALED = 33,
945 VK_FORMAT_B8G8R8_UINT = 34,
946 VK_FORMAT_B8G8R8_SINT = 35,
947 VK_FORMAT_B8G8R8_SRGB = 36,
948 VK_FORMAT_R8G8B8A8_UNORM = 37,
949 VK_FORMAT_R8G8B8A8_SNORM = 38,
950 VK_FORMAT_R8G8B8A8_USCALED = 39,
951 VK_FORMAT_R8G8B8A8_SSCALED = 40,
952 VK_FORMAT_R8G8B8A8_UINT = 41,
953 VK_FORMAT_R8G8B8A8_SINT = 42,
954 VK_FORMAT_R8G8B8A8_SRGB = 43,
955 VK_FORMAT_B8G8R8A8_UNORM = 44,
956 VK_FORMAT_B8G8R8A8_SNORM = 45,
957 VK_FORMAT_B8G8R8A8_USCALED = 46,
958 VK_FORMAT_B8G8R8A8_SSCALED = 47,
959 VK_FORMAT_B8G8R8A8_UINT = 48,
960 VK_FORMAT_B8G8R8A8_SINT = 49,
961 VK_FORMAT_B8G8R8A8_SRGB = 50,
962 VK_FORMAT_A8B8G8R8_UNORM_PACK32 = 51,
963 VK_FORMAT_A8B8G8R8_SNORM_PACK32 = 52,
964 VK_FORMAT_A8B8G8R8_USCALED_PACK32 = 53,
965 VK_FORMAT_A8B8G8R8_SSCALED_PACK32 = 54,
966 VK_FORMAT_A8B8G8R8_UINT_PACK32 = 55,
967 VK_FORMAT_A8B8G8R8_SINT_PACK32 = 56,
968 VK_FORMAT_A8B8G8R8_SRGB_PACK32 = 57,
969 VK_FORMAT_A2R10G10B10_UNORM_PACK32 = 58,
970 VK_FORMAT_A2R10G10B10_SNORM_PACK32 = 59,
971 VK_FORMAT_A2R10G10B10_USCALED_PACK32 = 60,
972 VK_FORMAT_A2R10G10B10_SSCALED_PACK32 = 61,
973 VK_FORMAT_A2R10G10B10_UINT_PACK32 = 62,
974 VK_FORMAT_A2R10G10B10_SINT_PACK32 = 63,
975 VK_FORMAT_A2B10G10R10_UNORM_PACK32 = 64,
976 VK_FORMAT_A2B10G10R10_SNORM_PACK32 = 65,
977 VK_FORMAT_A2B10G10R10_USCALED_PACK32 = 66,
978 VK_FORMAT_A2B10G10R10_SSCALED_PACK32 = 67,
979 VK_FORMAT_A2B10G10R10_UINT_PACK32 = 68,
980 VK_FORMAT_A2B10G10R10_SINT_PACK32 = 69,
981 VK_FORMAT_R16_UNORM = 70,
982 VK_FORMAT_R16_SNORM = 71,
983 VK_FORMAT_R16_USCALED = 72,
984 VK_FORMAT_R16_SSCALED = 73,
985 VK_FORMAT_R16_UINT = 74,
986 VK_FORMAT_R16_SINT = 75,
987 VK_FORMAT_R16_SFLOAT = 76,
988 VK_FORMAT_R16G16_UNORM = 77,
989 VK_FORMAT_R16G16_SNORM = 78,
990 VK_FORMAT_R16G16_USCALED = 79,
991 VK_FORMAT_R16G16_SSCALED = 80,
992 VK_FORMAT_R16G16_UINT = 81,
993 VK_FORMAT_R16G16_SINT = 82,
994 VK_FORMAT_R16G16_SFLOAT = 83,
995 VK_FORMAT_R16G16B16_UNORM = 84,
996 VK_FORMAT_R16G16B16_SNORM = 85,
997 VK_FORMAT_R16G16B16_USCALED = 86,
998 VK_FORMAT_R16G16B16_SSCALED = 87,
999 VK_FORMAT_R16G16B16_UINT = 88,
1000 VK_FORMAT_R16G16B16_SINT = 89,
1001 VK_FORMAT_R16G16B16_SFLOAT = 90,
1002 VK_FORMAT_R16G16B16A16_UNORM = 91,
1003 VK_FORMAT_R16G16B16A16_SNORM = 92,
1004 VK_FORMAT_R16G16B16A16_USCALED = 93,
1005 VK_FORMAT_R16G16B16A16_SSCALED = 94,
1006 VK_FORMAT_R16G16B16A16_UINT = 95,
1007 VK_FORMAT_R16G16B16A16_SINT = 96,
1008 VK_FORMAT_R16G16B16A16_SFLOAT = 97,
1009 VK_FORMAT_R32_UINT = 98,
1010 VK_FORMAT_R32_SINT = 99,
1011 VK_FORMAT_R32_SFLOAT = 100,
1012 VK_FORMAT_R32G32_UINT = 101,
1013 VK_FORMAT_R32G32_SINT = 102,
1014 VK_FORMAT_R32G32_SFLOAT = 103,
1015 VK_FORMAT_R32G32B32_UINT = 104,
1016 VK_FORMAT_R32G32B32_SINT = 105,
1017 VK_FORMAT_R32G32B32_SFLOAT = 106,
1018 VK_FORMAT_R32G32B32A32_UINT = 107,
1019 VK_FORMAT_R32G32B32A32_SINT = 108,
1020 VK_FORMAT_R32G32B32A32_SFLOAT = 109,
1021 VK_FORMAT_R64_UINT = 110,
1022 VK_FORMAT_R64_SINT = 111,
1023 VK_FORMAT_R64_SFLOAT = 112,
1024 VK_FORMAT_R64G64_UINT = 113,
1025 VK_FORMAT_R64G64_SINT = 114,
1026 VK_FORMAT_R64G64_SFLOAT = 115,
1027 VK_FORMAT_R64G64B64_UINT = 116,
1028 VK_FORMAT_R64G64B64_SINT = 117,
1029 VK_FORMAT_R64G64B64_SFLOAT = 118,
1030 VK_FORMAT_R64G64B64A64_UINT = 119,
1031 VK_FORMAT_R64G64B64A64_SINT = 120,
1032 VK_FORMAT_R64G64B64A64_SFLOAT = 121,
1033 VK_FORMAT_B10G11R11_UFLOAT_PACK32 = 122,
1034 VK_FORMAT_E5B9G9R9_UFLOAT_PACK32 = 123,
1035 VK_FORMAT_D16_UNORM = 124,
1036 VK_FORMAT_X8_D24_UNORM_PACK32 = 125,
1037 VK_FORMAT_D32_SFLOAT = 126,
1038 VK_FORMAT_S8_UINT = 127,
1039 VK_FORMAT_D16_UNORM_S8_UINT = 128,
1040 VK_FORMAT_D24_UNORM_S8_UINT = 129,
1041 VK_FORMAT_D32_SFLOAT_S8_UINT = 130,
1042 VK_FORMAT_BC1_RGB_UNORM_BLOCK = 131,
1043 VK_FORMAT_BC1_RGB_SRGB_BLOCK = 132,
1044 VK_FORMAT_BC1_RGBA_UNORM_BLOCK = 133,
1045 VK_FORMAT_BC1_RGBA_SRGB_BLOCK = 134,
1046 VK_FORMAT_BC2_UNORM_BLOCK = 135,
1047 VK_FORMAT_BC2_SRGB_BLOCK = 136,
1048 VK_FORMAT_BC3_UNORM_BLOCK = 137,
1049 VK_FORMAT_BC3_SRGB_BLOCK = 138,
1050 VK_FORMAT_BC4_UNORM_BLOCK = 139,
1051 VK_FORMAT_BC4_SNORM_BLOCK = 140,
1052 VK_FORMAT_BC5_UNORM_BLOCK = 141,
1053 VK_FORMAT_BC5_SNORM_BLOCK = 142,
1054 VK_FORMAT_BC6H_UFLOAT_BLOCK = 143,
1055 VK_FORMAT_BC6H_SFLOAT_BLOCK = 144,
1056 VK_FORMAT_BC7_UNORM_BLOCK = 145,
1057 VK_FORMAT_BC7_SRGB_BLOCK = 146,
1058 VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK = 147,
1059 VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK = 148,
1060 VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK = 149,
1061 VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK = 150,
1062 VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK = 151,
1063 VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK = 152,
1064 VK_FORMAT_EAC_R11_UNORM_BLOCK = 153,
1065 VK_FORMAT_EAC_R11_SNORM_BLOCK = 154,
1066 VK_FORMAT_EAC_R11G11_UNORM_BLOCK = 155,
1067 VK_FORMAT_EAC_R11G11_SNORM_BLOCK = 156,
1068 VK_FORMAT_ASTC_4x4_UNORM_BLOCK = 157,
1069 VK_FORMAT_ASTC_4x4_SRGB_BLOCK = 158,
1070 VK_FORMAT_ASTC_5x4_UNORM_BLOCK = 159,
1071 VK_FORMAT_ASTC_5x4_SRGB_BLOCK = 160,
1072 VK_FORMAT_ASTC_5x5_UNORM_BLOCK = 161,
1073 VK_FORMAT_ASTC_5x5_SRGB_BLOCK = 162,
1074 VK_FORMAT_ASTC_6x5_UNORM_BLOCK = 163,
1075 VK_FORMAT_ASTC_6x5_SRGB_BLOCK = 164,
1076 VK_FORMAT_ASTC_6x6_UNORM_BLOCK = 165,
1077 VK_FORMAT_ASTC_6x6_SRGB_BLOCK = 166,
1078 VK_FORMAT_ASTC_8x5_UNORM_BLOCK = 167,
1079 VK_FORMAT_ASTC_8x5_SRGB_BLOCK = 168,
1080 VK_FORMAT_ASTC_8x6_UNORM_BLOCK = 169,
1081 VK_FORMAT_ASTC_8x6_SRGB_BLOCK = 170,
1082 VK_FORMAT_ASTC_8x8_UNORM_BLOCK = 171,
1083 VK_FORMAT_ASTC_8x8_SRGB_BLOCK = 172,
1084 VK_FORMAT_ASTC_10x5_UNORM_BLOCK = 173,
1085 VK_FORMAT_ASTC_10x5_SRGB_BLOCK = 174,
1086 VK_FORMAT_ASTC_10x6_UNORM_BLOCK = 175,
1087 VK_FORMAT_ASTC_10x6_SRGB_BLOCK = 176,
1088 VK_FORMAT_ASTC_10x8_UNORM_BLOCK = 177,
1089 VK_FORMAT_ASTC_10x8_SRGB_BLOCK = 178,
1090 VK_FORMAT_ASTC_10x10_UNORM_BLOCK = 179,
1091 VK_FORMAT_ASTC_10x10_SRGB_BLOCK = 180,
1092 VK_FORMAT_ASTC_12x10_UNORM_BLOCK = 181,
1093 VK_FORMAT_ASTC_12x10_SRGB_BLOCK = 182,
1094 VK_FORMAT_ASTC_12x12_UNORM_BLOCK = 183,
1095 VK_FORMAT_ASTC_12x12_SRGB_BLOCK = 184,
Chris Forbes289cb792016-12-30 15:03:55 +13001096
Ian Elliott28bd2c32017-10-13 09:21:12 -06001097 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04001098 VK_FORMAT_G8B8G8R8_422_UNORM = 1000156000,
1099 VK_FORMAT_B8G8R8G8_422_UNORM = 1000156001,
1100 VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM = 1000156002,
1101 VK_FORMAT_G8_B8R8_2PLANE_420_UNORM = 1000156003,
1102 VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM = 1000156004,
1103 VK_FORMAT_G8_B8R8_2PLANE_422_UNORM = 1000156005,
1104 VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM = 1000156006,
1105 VK_FORMAT_R10X6_UNORM_PACK16 = 1000156007,
1106 VK_FORMAT_R10X6G10X6_UNORM_2PACK16 = 1000156008,
1107 VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16 = 1000156009,
1108 VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16 = 1000156010,
1109 VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16 = 1000156011,
1110 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16 = 1000156012,
1111 VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16 = 1000156013,
1112 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16 = 1000156014,
1113 VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16 = 1000156015,
1114 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16 = 1000156016,
1115 VK_FORMAT_R12X4_UNORM_PACK16 = 1000156017,
1116 VK_FORMAT_R12X4G12X4_UNORM_2PACK16 = 1000156018,
1117 VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16 = 1000156019,
1118 VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16 = 1000156020,
1119 VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16 = 1000156021,
1120 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16 = 1000156022,
1121 VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16 = 1000156023,
1122 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16 = 1000156024,
1123 VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16 = 1000156025,
1124 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16 = 1000156026,
1125 VK_FORMAT_G16B16G16R16_422_UNORM = 1000156027,
1126 VK_FORMAT_B16G16R16G16_422_UNORM = 1000156028,
1127 VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM = 1000156029,
1128 VK_FORMAT_G16_B16R16_2PLANE_420_UNORM = 1000156030,
1129 VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM = 1000156031,
1130 VK_FORMAT_G16_B16R16_2PLANE_422_UNORM = 1000156032,
1131 VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM = 1000156033,
1132
Jesse Hallad250842017-03-10 18:35:38 -08001133 //@extension("VK_IMG_format_pvrtc") // 28
Jesse Halleb02c472017-02-24 15:13:45 -08001134 VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG = 1000054000,
1135 VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG = 1000054001,
1136 VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG = 1000054002,
1137 VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG = 1000054003,
1138 VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG = 1000054004,
1139 VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG = 1000054005,
1140 VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG = 1000054006,
1141 VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG = 1000054007,
Jesse Hall076f95d2017-09-20 11:34:47 -07001142
1143 //@extension("VK_KHR_sampler_ycbcr_conversion") // 157
1144 VK_FORMAT_G8B8G8R8_422_UNORM_KHR = 1000156000,
1145 VK_FORMAT_B8G8R8G8_422_UNORM_KHR = 1000156001,
1146 VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM_KHR = 1000156002,
1147 VK_FORMAT_G8_B8R8_2PLANE_420_UNORM_KHR = 1000156003,
1148 VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM_KHR = 1000156004,
1149 VK_FORMAT_G8_B8R8_2PLANE_422_UNORM_KHR = 1000156005,
1150 VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM_KHR = 1000156006,
1151 VK_FORMAT_R10X6_UNORM_PACK16_KHR = 1000156007,
1152 VK_FORMAT_R10X6G10X6_UNORM_2PACK16_KHR = 1000156008,
1153 VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16_KHR = 1000156009,
1154 VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16_KHR = 1000156010,
1155 VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16_KHR = 1000156011,
1156 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16_KHR = 1000156012,
1157 VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16_KHR = 1000156013,
1158 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16_KHR = 1000156014,
1159 VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16_KHR = 1000156015,
1160 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16_KHR = 1000156016,
1161 VK_FORMAT_R12X4_UNORM_PACK16_KHR = 1000156017,
1162 VK_FORMAT_R12X4G12X4_UNORM_2PACK16_KHR = 1000156018,
1163 VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16_KHR = 1000156019,
1164 VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16_KHR = 1000156020,
1165 VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16_KHR = 1000156021,
1166 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16_KHR = 1000156022,
1167 VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16_KHR = 1000156023,
1168 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16_KHR = 1000156024,
1169 VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16_KHR = 1000156025,
1170 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16_KHR = 1000156026,
1171 VK_FORMAT_G16B16G16R16_422_UNORM_KHR = 1000156027,
1172 VK_FORMAT_B16G16R16G16_422_UNORM_KHR = 1000156028,
1173 VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM_KHR = 1000156029,
1174 VK_FORMAT_G16_B16R16_2PLANE_420_UNORM_KHR = 1000156030,
1175 VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM_KHR = 1000156031,
1176 VK_FORMAT_G16_B16R16_2PLANE_422_UNORM_KHR = 1000156032,
1177 VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM_KHR = 1000156033,
Jesse Halld27f6aa2015-08-15 17:58:48 -07001178}
1179
Jesse Halld27f6aa2015-08-15 17:58:48 -07001180/// Structure type enumerant
1181enum VkStructureType {
1182 VK_STRUCTURE_TYPE_APPLICATION_INFO = 0,
Jesse Hallc7467b72015-11-29 21:05:26 -08001183 VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO = 1,
1184 VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO = 2,
1185 VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO = 3,
1186 VK_STRUCTURE_TYPE_SUBMIT_INFO = 4,
Jesse Hallf4ab2b12015-11-30 16:04:55 -08001187 VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO = 5,
Jesse Hallc7467b72015-11-29 21:05:26 -08001188 VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE = 6,
1189 VK_STRUCTURE_TYPE_BIND_SPARSE_INFO = 7,
1190 VK_STRUCTURE_TYPE_FENCE_CREATE_INFO = 8,
1191 VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO = 9,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07001192 VK_STRUCTURE_TYPE_EVENT_CREATE_INFO = 10,
Jesse Hallc7467b72015-11-29 21:05:26 -08001193 VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO = 11,
1194 VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO = 12,
1195 VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO = 13,
1196 VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO = 14,
1197 VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO = 15,
1198 VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO = 16,
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08001199 VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO = 17,
1200 VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO = 18,
1201 VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO = 19,
1202 VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO = 20,
1203 VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO = 21,
1204 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO = 22,
1205 VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO = 23,
1206 VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO = 24,
1207 VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO = 25,
1208 VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO = 26,
1209 VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO = 27,
1210 VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO = 28,
1211 VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO = 29,
1212 VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO = 30,
1213 VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO = 31,
1214 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO = 32,
1215 VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO = 33,
Jesse Hallf4ab2b12015-11-30 16:04:55 -08001216 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO = 34,
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08001217 VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET = 35,
1218 VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET = 36,
1219 VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO = 37,
1220 VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO = 38,
1221 VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO = 39,
Jesse Hallf4ab2b12015-11-30 16:04:55 -08001222 VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO = 40,
Jesse Hall3dd678a2016-01-08 21:52:01 -08001223 VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO = 41,
1224 VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO = 42,
1225 VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO = 43,
1226 VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER = 44,
1227 VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER = 45,
1228 VK_STRUCTURE_TYPE_MEMORY_BARRIER = 46,
1229 VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO = 47,
1230 VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO = 48,
Jesse Hall1356b0d2015-11-23 17:24:58 -08001231
Ian Elliott28bd2c32017-10-13 09:21:12 -06001232 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04001233 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES = 1000094000,
1234 VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO = 1000157000,
1235 VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO = 1000157001,
1236 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES = 1000083000,
1237 VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS = 1000127000,
1238 VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO = 1000127001,
1239 VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO = 1000060000,
1240 VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO = 1000060003,
1241 VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO = 1000060004,
1242 VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO = 1000060005,
1243 VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO = 1000060006,
1244 VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO = 1000060013,
1245 VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO = 1000060014,
1246 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES = 1000070000,
1247 VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO = 1000070001,
1248 VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2 = 1000146000,
1249 VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2 = 1000146001,
1250 VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2 = 1000146002,
1251 VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2 = 1000146003,
1252 VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2 = 1000146004,
1253 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2 = 1000059000,
1254 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2 = 1000059001,
1255 VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2 = 1000059002,
1256 VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2 = 1000059003,
1257 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2 = 1000059004,
1258 VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2 = 1000059005,
1259 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2 = 1000059006,
1260 VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2 = 1000059007,
1261 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2 = 1000059008,
1262 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES = 1000117000,
1263 VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO = 1000117001,
1264 VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO = 1000117002,
1265 VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO = 1000117003,
1266 VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO = 1000053000,
1267 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES = 1000053001,
1268 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES = 1000053002,
1269 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES = 1000120000,
1270 VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO = 1000145000,
1271 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES = 1000145001,
1272 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES = 1000145002,
1273 VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2 = 1000145003,
1274 VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO = 1000156000,
1275 VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO = 1000156001,
1276 VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO = 1000156002,
1277 VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO = 1000156003,
1278 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES = 1000156004,
1279 VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES = 1000156005,
1280 VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO = 1000085000,
1281 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO = 1000071000,
1282 VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES = 1000071001,
1283 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO = 1000071002,
1284 VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES = 1000071003,
1285 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES = 1000071004,
1286 VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO = 1000072000,
1287 VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO = 1000072001,
1288 VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO = 1000072002,
1289 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO = 1000112000,
1290 VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES = 1000112001,
1291 VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO = 1000113000,
1292 VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO = 1000077000,
1293 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO = 1000076000,
1294 VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES = 1000076001,
1295 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES = 1000168000,
1296 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT = 1000168001,
1297 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES = 1000063000,
1298 VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR = 1000060007,
1299
Jesse Hallad250842017-03-10 18:35:38 -08001300 //@extension("VK_KHR_swapchain") // 2
Jesse Hallbd888842015-11-30 21:44:14 -08001301 VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR = 1000001000,
1302 VK_STRUCTURE_TYPE_PRESENT_INFO_KHR = 1000001001,
Daniel Koch09f7bf92017-10-05 00:26:58 -04001303 // added as interaction from VK_KHR_device_group / VK 1.1
1304 VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR = 1000060008,
1305 VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR = 1000060009,
1306 VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR = 1000060010,
1307 VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR = 1000060011,
1308 VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR = 1000060012,
Jesse Hall1356b0d2015-11-23 17:24:58 -08001309
Jesse Hallad250842017-03-10 18:35:38 -08001310 //@extension("VK_KHR_display") // 3
Jesse Hallbd888842015-11-30 21:44:14 -08001311 VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR = 1000002000,
1312 VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR = 1000002001,
Jesse Hall1356b0d2015-11-23 17:24:58 -08001313
Jesse Hallad250842017-03-10 18:35:38 -08001314 //@extension("VK_KHR_display_swapchain") // 4
Jesse Hallbd888842015-11-30 21:44:14 -08001315 VK_STRUCTURE_TYPE_DISPLAY_DISPLAY_PRESENT_INFO_KHR = 1000003000,
Jesse Hallf9fa9a52016-01-08 16:08:51 -08001316
Jesse Hallad250842017-03-10 18:35:38 -08001317 //@extension("VK_KHR_xlib_surface") // 5
Jesse Hallf9fa9a52016-01-08 16:08:51 -08001318 VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR = 1000004000,
1319
Jesse Hallad250842017-03-10 18:35:38 -08001320 //@extension("VK_KHR_xcb_surface") // 6
Jesse Hallf9fa9a52016-01-08 16:08:51 -08001321 VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR = 1000005000,
1322
Jesse Hallad250842017-03-10 18:35:38 -08001323 //@extension("VK_KHR_wayland_surface") // 7
Jesse Hallf9fa9a52016-01-08 16:08:51 -08001324 VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR = 1000006000,
1325
Jesse Hallad250842017-03-10 18:35:38 -08001326 //@extension("VK_KHR_mir_surface") // 8
Jesse Hallf9fa9a52016-01-08 16:08:51 -08001327 VK_STRUCTURE_TYPE_MIR_SURFACE_CREATE_INFO_KHR = 1000007000,
1328
Jesse Hallad250842017-03-10 18:35:38 -08001329 //@extension("VK_KHR_android_surface") // 9
Jesse Hallf9fa9a52016-01-08 16:08:51 -08001330 VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR = 1000008000,
1331
Jesse Hallad250842017-03-10 18:35:38 -08001332 //@extension("VK_KHR_win32_surface") // 10
Jesse Hallf9fa9a52016-01-08 16:08:51 -08001333 VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR = 1000009000,
Jesse Hall543a7ff2016-01-08 16:38:30 -08001334
Jesse Hallad250842017-03-10 18:35:38 -08001335 //@extension("VK_ANDROID_native_buffer") // 11
Chia-I Wub262ddc2016-03-22 07:38:20 +08001336 VK_STRUCTURE_TYPE_NATIVE_BUFFER_ANDROID = 1000010000,
Chris Forbes8e4438b2016-12-07 16:26:49 +13001337 VK_STRUCTURE_TYPE_SWAPCHAIN_IMAGE_CREATE_INFO_ANDROID = 1000010001,
Chris Forbes1d4e5542017-02-15 19:38:50 +13001338 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENTATION_PROPERTIES_ANDROID = 1000010002,
Chia-I Wub262ddc2016-03-22 07:38:20 +08001339
Jesse Hallad250842017-03-10 18:35:38 -08001340 //@extension("VK_EXT_debug_report") // 12
Jesse Hall26763382016-05-20 07:13:52 -07001341 VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT = 1000011000,
1342
Jesse Hallad250842017-03-10 18:35:38 -08001343 //@extension("VK_AMD_rasterization_order") // 19
Jesse Hall26763382016-05-20 07:13:52 -07001344 VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD = 1000018000,
1345
Jesse Hallad250842017-03-10 18:35:38 -08001346 //@extension("VK_EXT_debug_marker") // 23
Jesse Hall26763382016-05-20 07:13:52 -07001347 VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT = 1000022000,
Jesse Hall26763382016-05-20 07:13:52 -07001348 VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT = 1000022001,
Jesse Hall26763382016-05-20 07:13:52 -07001349 VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT = 1000022002,
Jesse Hall56d386a2016-07-26 15:20:40 -07001350
Jesse Hallad250842017-03-10 18:35:38 -08001351 //@extension("VK_NV_dedicated_allocation") // 27
Jesse Hall56d386a2016-07-26 15:20:40 -07001352 VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV = 1000026000,
Jesse Hall56d386a2016-07-26 15:20:40 -07001353 VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV = 1000026001,
Jesse Hall56d386a2016-07-26 15:20:40 -07001354 VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV = 1000026002,
Chris Forbes289cb792016-12-30 15:03:55 +13001355
Jesse Hall7ba0ac72017-07-07 17:13:23 -07001356 //@extension("VK_AMD_texture_gather_bias_lod") // 42
1357 VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD = 1000041000,
1358
Daniel Koch09f7bf92017-10-05 00:26:58 -04001359 //@extension("VK_KHR_multiview") // 54
1360 VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO_KHR = 1000053000,
1361 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES_KHR = 1000053001,
1362 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES_KHR = 1000053002,
Jesse Hallad250842017-03-10 18:35:38 -08001363
1364 //@extension("VK_NV_external_memory") // 57
Jesse Halleb02c472017-02-24 15:13:45 -08001365 VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV = 1000056000,
1366 VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV = 1000056001,
Chris Forbes289cb792016-12-30 15:03:55 +13001367
Jesse Hallad250842017-03-10 18:35:38 -08001368 //@extension("VK_NV_external_memory_win32") // 58
Jesse Halleb02c472017-02-24 15:13:45 -08001369 VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV = 1000057000,
1370 VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV = 1000057001,
Chris Forbes289cb792016-12-30 15:03:55 +13001371
Jesse Hallad250842017-03-10 18:35:38 -08001372 //@extension("VK_NV_win32_keyed_mutex") // 59
Chris Forbes289cb792016-12-30 15:03:55 +13001373 VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV = 1000058000,
1374
Jesse Hallad250842017-03-10 18:35:38 -08001375 //@extension("VK_KHR_get_physical_device_properties2") // 60
Jesse Hall889cd9a2017-02-25 22:12:23 -08001376 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2_KHR = 1000059000,
1377 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2_KHR = 1000059001,
1378 VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2_KHR = 1000059002,
1379 VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2_KHR = 1000059003,
1380 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2_KHR = 1000059004,
1381 VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2_KHR = 1000059005,
1382 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2_KHR = 1000059006,
1383 VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2_KHR = 1000059007,
Chris Forbes1194ede2016-12-30 16:29:25 +13001384 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2_KHR = 1000059008,
1385
Daniel Koch09f7bf92017-10-05 00:26:58 -04001386 //@extension("VK_KHR_device_group") // 61
1387 VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO_KHR = 1000060000,
1388 VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO_KHR = 1000060003,
1389 VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO_KHR = 1000060004,
1390 VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO_KHR = 1000060005,
1391 VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO_KHR = 1000060006,
1392 VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR = 1000060007,
1393 // tokens 08-12 are listed with VK_KHR_swapchain
1394 VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO_KHR = 1000060013,
1395 VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO_KHR = 1000060014,
Jesse Hallad250842017-03-10 18:35:38 -08001396
1397 //@extension("VK_EXT_validation_flags") // 62
Jesse Halleb02c472017-02-24 15:13:45 -08001398 VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT = 1000061000,
Chris Forbes289cb792016-12-30 15:03:55 +13001399
Jesse Hallad250842017-03-10 18:35:38 -08001400 //@extension("VK_NN_vi_surface") // 63
Jesse Hall77ad05b2017-03-10 22:02:20 -08001401 VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN = 1000062000,
1402
Daniel Koch09f7bf92017-10-05 00:26:58 -04001403 //@extension("VK_KHR_device_group_creation") // 71
1404 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES_KHR = 1000070000,
1405 VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO_KHR = 1000070001,
Jesse Hallad250842017-03-10 18:35:38 -08001406
Jesse Hall9492f992017-08-28 12:10:06 -07001407 //@extension("VK_KHR_external_memory_capabilities") // 72
1408 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO_KHR = 1000071000,
1409 VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES_KHR = 1000071001,
1410 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO_KHR = 1000071002,
1411 VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES_KHR = 1000071003,
1412 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES_KHR = 1000071004,
Jesse Hallad250842017-03-10 18:35:38 -08001413
Jesse Hall9492f992017-08-28 12:10:06 -07001414 //@extension("VK_KHR_external_memory") // 73
1415 VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO_KHR = 1000072000,
1416 VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_KHR = 1000072001,
1417 VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_KHR = 1000072002,
Jesse Hallad250842017-03-10 18:35:38 -08001418
Jesse Hall9492f992017-08-28 12:10:06 -07001419 //@extension("VK_KHR_external_memory_win32") // 74
1420 VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR = 1000073000,
1421 VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR = 1000073001,
1422 VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR = 1000073002,
Jesse Hallad250842017-03-10 18:35:38 -08001423
Jesse Hall9492f992017-08-28 12:10:06 -07001424 //@extension("VK_KHR_external_memory_fd") // 75
1425 VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR = 1000074000,
1426 VK_STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR = 1000074001,
Jesse Hallad250842017-03-10 18:35:38 -08001427
Jesse Hall9492f992017-08-28 12:10:06 -07001428 //@extension("VK_KHR_win32_keyed_mutex") // 76
1429 VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR = 1000075000,
Jesse Hallad250842017-03-10 18:35:38 -08001430
Jesse Hall9492f992017-08-28 12:10:06 -07001431 //@extension("VK_KHR_external_semaphore_capabilities") // 77
1432 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO_KHR = 1000076000,
1433 VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES_KHR = 1000076001,
Jesse Hallad250842017-03-10 18:35:38 -08001434
Jesse Hall9492f992017-08-28 12:10:06 -07001435 //@extension("VK_KHR_external_semaphore") // 78
1436 VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO_KHR = 1000077000,
Jesse Hallad250842017-03-10 18:35:38 -08001437
Jesse Hall9492f992017-08-28 12:10:06 -07001438 //@extension("VK_KHR_external_semaphore_win32") // 79
1439 VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR = 1000078000,
1440 VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR = 1000078001,
1441 VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR = 1000078002,
Jesse Hallad250842017-03-10 18:35:38 -08001442
Jesse Hall9492f992017-08-28 12:10:06 -07001443 //@extension("VK_KHR_external_semaphore_fd") // 80
1444 VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR = 1000079000,
1445 VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR = 1000079001,
Jesse Hallad250842017-03-10 18:35:38 -08001446
1447 //@extension("VK_KHR_push_descriptor") // 81
1448 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR = 1000080000,
1449
Jesse Hall9492f992017-08-28 12:10:06 -07001450 //@extension("VK_KHR_16bit_storage") // 84
1451 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES_KHR = 1000083000,
1452
Jesse Hallad250842017-03-10 18:35:38 -08001453 //@extension("VK_KHR_incremental_present") // 85
Jesse Hall889cd9a2017-02-25 22:12:23 -08001454 VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR = 1000084000,
Chris Forbes289cb792016-12-30 15:03:55 +13001455
Jesse Hallad250842017-03-10 18:35:38 -08001456 //@extension("VK_KHR_descriptor_update_template") // 86
1457 VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO_KHR = 1000085000,
1458
1459 //@extension("VK_NVX_device_generated_commands") // 87
Jesse Halleb02c472017-02-24 15:13:45 -08001460 VK_STRUCTURE_TYPE_OBJECT_TABLE_CREATE_INFO_NVX = 1000086000,
1461 VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NVX = 1000086001,
1462 VK_STRUCTURE_TYPE_CMD_PROCESS_COMMANDS_INFO_NVX = 1000086002,
1463 VK_STRUCTURE_TYPE_CMD_RESERVE_SPACE_FOR_COMMANDS_INFO_NVX = 1000086003,
1464 VK_STRUCTURE_TYPE_DEVICE_GENERATED_COMMANDS_LIMITS_NVX = 1000086004,
1465 VK_STRUCTURE_TYPE_DEVICE_GENERATED_COMMANDS_FEATURES_NVX = 1000086005,
Jesse Hall77ad05b2017-03-10 22:02:20 -08001466
Jesse Hallad250842017-03-10 18:35:38 -08001467 //@extension("VK_NV_clip_space_w_scaling") // 88
1468 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV = 1000087000,
1469
1470 //@extension("VK_EXT_display_surface_counter") // 91
Jesse Hall77726222017-09-19 14:49:27 -05001471 VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT = 1000090000,
Jesse Hall77ad05b2017-03-10 22:02:20 -08001472
Jesse Hallad250842017-03-10 18:35:38 -08001473 //@extension("VK_EXT_display_control") // 92
Jesse Hall77ad05b2017-03-10 22:02:20 -08001474 VK_STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT = 1000091000,
1475 VK_STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT = 1000091001,
1476 VK_STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT = 1000091002,
1477 VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT = 1000091003,
Jesse Hallad250842017-03-10 18:35:38 -08001478
1479 //@extension("VK_GOOGLE_display_timing") // 93
1480 VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE = 1000092000,
1481
1482 //@extension("VK_NVX_multiview_per_view_attributes") // 98
1483 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX = 1000097000,
1484
1485 //@extension("VK_NV_viewport_swizzle") // 99
1486 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV = 1000098000,
1487
1488 //@extension("VK_EXT_discard_rectangles") // 100
1489 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT = 1000099000,
1490 VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT = 1000099001,
1491
Jesse Hall8c954d32018-01-17 22:06:20 -08001492 //@extension("VK_EXT_conservative_rasterization") // 102
1493 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT = 1000101000,
1494 VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT = 1000101001,
1495
Jesse Hallfdc8ab32017-03-10 21:01:57 -08001496 //@extension("VK_EXT_hdr_metadata") // 106
1497 VK_STRUCTURE_TYPE_HDR_METADATA_EXT = 1000105000,
1498
Jesse Hall05556b12017-05-18 17:40:25 -07001499 //@extension("VK_KHR_shared_presentable_image") // 112
Chris Forbese2d3ee12017-03-16 16:10:15 +13001500 VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR = 1000111000,
1501
Jesse Hall9492f992017-08-28 12:10:06 -07001502 //@extension("VK_KHR_external_fence_capabilities") // 113
1503 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO_KHR = 1000112000,
1504 VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES_KHR = 1000112001,
1505
1506 //@extension("VK_KHR_external_fence") // 114
1507 VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO_KHR = 1000113000,
1508
1509 //@extension("VK_KHR_external_fence_win32") // 115
1510 VK_STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR = 1000114000,
1511 VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR = 1000114001,
1512 VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR = 1000114002,
1513
1514 //@extension("VK_KHR_external_fence_fd") // 117
1515 VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR = 1000115000,
1516 VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR = 1000115001,
1517
Jesse Hall076f95d2017-09-20 11:34:47 -07001518 //@extension("VK_KHR_maintenance2") // 118
1519 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES_KHR = 1000117000,
1520 VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO_KHR = 1000117001,
1521 VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO_KHR = 1000117002,
1522 VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO_KHR = 1000117003,
1523
Jesse Hall05556b12017-05-18 17:40:25 -07001524 //@extension("VK_KHR_get_surface_capabilities2") // 120
Chris Forbese2d3ee12017-03-16 16:10:15 +13001525 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR = 1000119000,
1526 VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR = 1000119001,
1527 VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR = 1000119002,
1528
Jesse Hall9492f992017-08-28 12:10:06 -07001529 //@extension("VK_KHR_variable_pointers") // 121
1530 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES_KHR = 1000120000,
1531
Jesse Hall54f8d132018-04-18 08:16:59 -07001532 //@extension("VK_KHR_display_properties2") // 122
1533 VK_STRUCTURE_TYPE_DISPLAY_PROPERTIES_2_KHR = 1000121000,
1534 VK_STRUCTURE_TYPE_DISPLAY_PLANE_PROPERTIES_2_KHR = 1000121001,
1535 VK_STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR = 1000121002,
1536 VK_STRUCTURE_TYPE_DISPLAY_PLANE_INFO_2_KHR = 1000121003,
1537 VK_STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR = 1000121004,
1538
Jesse Hallad250842017-03-10 18:35:38 -08001539 //@extension("VK_MVK_ios_surface") // 123
1540 VK_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK = 1000122000,
1541
1542 //@extension("VK_MVK_macos_surface") // 124
1543 VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK = 1000123000,
Jesse Hall7ba0ac72017-07-07 17:13:23 -07001544
Jesse Hall9492f992017-08-28 12:10:06 -07001545 //@extension("VK_KHR_dedicated_allocation") // 128
1546 VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS_KHR = 1000127000,
1547 VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO_KHR = 1000127001,
1548
Jesse Hall8c954d32018-01-17 22:06:20 -08001549 //@extension("VK_EXT_debug_utils") // 129
1550 VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT = 1000128000,
1551 VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT = 1000128001,
1552 VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT = 1000128002,
1553 VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT = 1000128003,
1554 VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT = 1000128004,
1555
Jesse Hall36215a92018-01-18 15:04:37 -08001556 //@extension("VK_ANDROID_external_memory_android_hardware_buffer") // 130
1557 VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID = 1000129000,
1558 VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID = 1000129001,
1559 VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID = 1000129002,
1560 VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID = 1000129003,
1561 VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID = 1000129004,
1562 VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID = 1000129005,
1563
Jesse Hall7ba0ac72017-07-07 17:13:23 -07001564 //@extension("VK_EXT_sampler_filter_minmax") // 131
1565 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES_EXT = 1000130000,
1566 VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO_EXT = 1000130001,
1567
Jesse Hall77726222017-09-19 14:49:27 -05001568 //@extension("VK_EXT_sample_locations") // 144
1569 VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT = 1000143000,
1570 VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT = 1000143001,
1571 VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT = 1000143002,
1572 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT = 1000143003,
1573 VK_STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT = 1000143004,
1574
Jesse Hall9492f992017-08-28 12:10:06 -07001575 //@extension("VK_KHR_get_memory_requirements2") // 147
1576 VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2_KHR = 1000146000,
1577 VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2_KHR = 1000146001,
1578 VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2_KHR = 1000146002,
1579 VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2_KHR = 1000146003,
1580 VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2_KHR = 1000146004,
1581
Jesse Hall076f95d2017-09-20 11:34:47 -07001582 //@extension("VK_KHR_image_format_list") // 148
1583 VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO_KHR = 1000147000,
1584
Jesse Hall7ba0ac72017-07-07 17:13:23 -07001585 //@extension("VK_EXT_blend_operation_advanced") // 149
1586 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT = 1000148000,
1587 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT = 1000148001,
1588 VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT = 1000148002,
1589
1590 //@extension("VK_NV_fragment_coverage_to_color") // 150
1591 VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV = 1000149000,
1592
Jesse Hall77726222017-09-19 14:49:27 -05001593 //@extension("VK_NV_framebuffer_mixed_samples") // 153
Jesse Hall7ba0ac72017-07-07 17:13:23 -07001594 VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV = 1000152000,
Jesse Hall77726222017-09-19 14:49:27 -05001595
Jesse Hall076f95d2017-09-20 11:34:47 -07001596 //@extension("VK_KHR_sampler_ycbcr_conversion") // 157
1597 VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO_KHR = 1000156000,
1598 VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO_KHR = 1000156001,
1599 VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO_KHR = 1000156002,
1600 VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO_KHR = 1000156003,
1601 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES_KHR = 1000156004,
1602 VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES_KHR = 1000156005,
1603
1604 //@extension("VK_KHR_bind_memory2") // 158
1605 VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO_KHR = 1000157000,
1606 VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO_KHR = 1000157001,
1607
Jesse Hall77726222017-09-19 14:49:27 -05001608 //@extension("VK_EXT_validation_cache") // 161
1609 VK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT = 1000160000,
1610 VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT = 1000160001,
Daniel Koch09f7bf92017-10-05 00:26:58 -04001611
Jesse Hall72e6a132018-04-06 13:00:44 -07001612 //@extension("VK_EXT_descriptor_indexing") // 162
1613 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO_EXT = 1000161000,
1614 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES_EXT = 1000161001,
1615 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES_EXT = 1000161002,
1616 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO_EXT = 1000161003,
1617 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT_EXT = 1000161004,
1618
Daniel Koch09f7bf92017-10-05 00:26:58 -04001619 //@extension("VK_KHR_maintenance3") // 169
1620 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES_KHR = 1000168000,
1621 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT_KHR = 1000168001,
Jesse Hall8c954d32018-01-17 22:06:20 -08001622
1623 //@extension("VK_EXT_global_priority") // 175
1624 VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT = 1000174000,
1625
1626 //@extension("VK_EXT_external_memory_host") // 179
1627 VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT = 1000178000,
1628 VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT = 1000178001,
1629 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT = 1000178002,
Jesse Hall72e6a132018-04-06 13:00:44 -07001630
1631 //@extension("VK_AMD_shader_core_properties") // 186
1632 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD = 1000185000,
1633
1634 //@extension("VK_EXT_vertex_attribute_divisor") // 191
1635 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT = 1000190000,
1636 VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT = 1000190001,
Jesse Halld27f6aa2015-08-15 17:58:48 -07001637}
1638
Jesse Hall65ab5522015-11-30 00:07:16 -08001639enum VkSubpassContents {
1640 VK_SUBPASS_CONTENTS_INLINE = 0x00000000,
1641 VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS = 0x00000001,
Jesse Halld27f6aa2015-08-15 17:58:48 -07001642}
1643
Jesse Hall543a7ff2016-01-08 16:38:30 -08001644enum VkPipelineCacheHeaderVersion {
1645 VK_PIPELINE_CACHE_HEADER_VERSION_ONE = 1,
1646}
1647
Jesse Hallbd888842015-11-30 21:44:14 -08001648@lastUnused(-11)
Jesse Halld27f6aa2015-08-15 17:58:48 -07001649/// Error and return codes
1650enum VkResult {
1651 // Return codes for successful operation execution (positive values)
Jesse Hallbd888842015-11-30 21:44:14 -08001652 VK_SUCCESS = 0,
1653 VK_NOT_READY = 1,
1654 VK_TIMEOUT = 2,
1655 VK_EVENT_SET = 3,
1656 VK_EVENT_RESET = 4,
1657 VK_INCOMPLETE = 5,
Jesse Halld27f6aa2015-08-15 17:58:48 -07001658
Jesse Hallad250842017-03-10 18:35:38 -08001659 //@extension("VK_KHR_swapchain") // 2
Jesse Hallbd888842015-11-30 21:44:14 -08001660 VK_SUBOPTIMAL_KHR = 1000001003,
Jesse Hall1356b0d2015-11-23 17:24:58 -08001661
Jesse Halld27f6aa2015-08-15 17:58:48 -07001662 // Error codes (negative values)
Jesse Hallbd888842015-11-30 21:44:14 -08001663 VK_ERROR_OUT_OF_HOST_MEMORY = 0xFFFFFFFF, // -1
1664 VK_ERROR_OUT_OF_DEVICE_MEMORY = 0xFFFFFFFE, // -2
1665 VK_ERROR_INITIALIZATION_FAILED = 0xFFFFFFFD, // -3
1666 VK_ERROR_DEVICE_LOST = 0xFFFFFFFC, // -4
1667 VK_ERROR_MEMORY_MAP_FAILED = 0xFFFFFFFB, // -5
1668 VK_ERROR_LAYER_NOT_PRESENT = 0xFFFFFFFA, // -6
1669 VK_ERROR_EXTENSION_NOT_PRESENT = 0xFFFFFFF9, // -7
1670 VK_ERROR_FEATURE_NOT_PRESENT = 0xFFFFFFF8, // -8
1671 VK_ERROR_INCOMPATIBLE_DRIVER = 0xFFFFFFF7, // -9
1672 VK_ERROR_TOO_MANY_OBJECTS = 0xFFFFFFF6, // -10
1673 VK_ERROR_FORMAT_NOT_SUPPORTED = 0xFFFFFFF5, // -11
Jesse Hall56d386a2016-07-26 15:20:40 -07001674 VK_ERROR_FRAGMENTED_POOL = 0xFFFFFFF4, // -12
Jesse Hall1356b0d2015-11-23 17:24:58 -08001675
Ian Elliott28bd2c32017-10-13 09:21:12 -06001676 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04001677 VK_ERROR_OUT_OF_POOL_MEMORY = 0xC4642878, // -1000069000
1678 VK_ERROR_INVALID_EXTERNAL_HANDLE = 0xC4641CBD, // -1000072003
1679
Jesse Hallad250842017-03-10 18:35:38 -08001680 //@extension("VK_KHR_surface") // 1
Jesse Hallbd888842015-11-30 21:44:14 -08001681 VK_ERROR_SURFACE_LOST_KHR = 0xC4653600, // -1000000000
Jesse Hallad250842017-03-10 18:35:38 -08001682 VK_ERROR_NATIVE_WINDOW_IN_USE_KHR = 0xC46535FF, // -1000000001
Jesse Halla6429252015-11-29 18:59:42 -08001683
Jesse Hallad250842017-03-10 18:35:38 -08001684 //@extension("VK_KHR_swapchain") // 2
Jesse Hallbd888842015-11-30 21:44:14 -08001685 VK_ERROR_OUT_OF_DATE_KHR = 0xC4653214, // -1000001004
Jesse Hall1356b0d2015-11-23 17:24:58 -08001686
Jesse Hallad250842017-03-10 18:35:38 -08001687 //@extension("VK_KHR_display_swapchain") // 4
Jesse Hallbd888842015-11-30 21:44:14 -08001688 VK_ERROR_INCOMPATIBLE_DISPLAY_KHR = 0xC4652A47, // -1000003001
Jesse Hall1356b0d2015-11-23 17:24:58 -08001689
Jesse Hallad250842017-03-10 18:35:38 -08001690 //@extension("VK_EXT_debug_report") // 12
Jesse Hall543a7ff2016-01-08 16:38:30 -08001691 VK_ERROR_VALIDATION_FAILED_EXT = 0xC4650B07, // -1000011001
Jesse Hall26763382016-05-20 07:13:52 -07001692
Jesse Hallad250842017-03-10 18:35:38 -08001693 //@extension("VK_NV_glsl_shader") // 13
Jesse Hall26763382016-05-20 07:13:52 -07001694 VK_ERROR_INVALID_SHADER_NV = 0xC4650720, // -1000012000
Jesse Hall77ad05b2017-03-10 22:02:20 -08001695
Jesse Hallad250842017-03-10 18:35:38 -08001696 //@extension("VK_KHR_maintenance1") // 70
Jesse Hall77ad05b2017-03-10 22:02:20 -08001697 VK_ERROR_OUT_OF_POOL_MEMORY_KHR = 0xC4642878, // -1000069000
Jesse Hallad250842017-03-10 18:35:38 -08001698
Jesse Hall8c954d32018-01-17 22:06:20 -08001699 //@extension("VK_EXT_global_priority") // 175
1700 VK_ERROR_NOT_PERMITTED_EXT = 0xC4628E4F, // -1000174001
1701
Jesse Hall9492f992017-08-28 12:10:06 -07001702 //@extension("VK_KHR_external_memory") // 73
1703 VK_ERROR_INVALID_EXTERNAL_HANDLE_KHR = 0xC4641CBD, // -1000072003
Jesse Hall72e6a132018-04-06 13:00:44 -07001704
1705 //@extension("VK_EXT_descriptor_indexing") // 162
1706 VK_ERROR_FRAGMENTATION_EXT = 0xc462c118, // -1000161000
Jesse Hall5ae3abb2015-10-08 14:00:22 -07001707}
1708
1709enum VkDynamicState {
1710 VK_DYNAMIC_STATE_VIEWPORT = 0x00000000,
1711 VK_DYNAMIC_STATE_SCISSOR = 0x00000001,
1712 VK_DYNAMIC_STATE_LINE_WIDTH = 0x00000002,
1713 VK_DYNAMIC_STATE_DEPTH_BIAS = 0x00000003,
1714 VK_DYNAMIC_STATE_BLEND_CONSTANTS = 0x00000004,
1715 VK_DYNAMIC_STATE_DEPTH_BOUNDS = 0x00000005,
1716 VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK = 0x00000006,
1717 VK_DYNAMIC_STATE_STENCIL_WRITE_MASK = 0x00000007,
1718 VK_DYNAMIC_STATE_STENCIL_REFERENCE = 0x00000008,
Jesse Hallad250842017-03-10 18:35:38 -08001719
1720 //@extension("VK_NV_clip_space_w_scaling") // 88
1721 VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV = 1000087000,
1722
1723 //@extension("VK_EXT_discard_rectangles") // 100
1724 VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT = 1000099000,
Jesse Hall77726222017-09-19 14:49:27 -05001725
1726 //@extension("VK_EXT_sample_locations") // 144
1727 VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT = 1000143000,
Jesse Halld27f6aa2015-08-15 17:58:48 -07001728}
1729
Jesse Hall05556b12017-05-18 17:40:25 -07001730enum VkObjectType {
1731 VK_OBJECT_TYPE_UNKNOWN = 0,
1732 VK_OBJECT_TYPE_INSTANCE = 1,
1733 VK_OBJECT_TYPE_PHYSICAL_DEVICE = 2,
1734 VK_OBJECT_TYPE_DEVICE = 3,
1735 VK_OBJECT_TYPE_QUEUE = 4,
1736 VK_OBJECT_TYPE_SEMAPHORE = 5,
1737 VK_OBJECT_TYPE_COMMAND_BUFFER = 6,
1738 VK_OBJECT_TYPE_FENCE = 7,
1739 VK_OBJECT_TYPE_DEVICE_MEMORY = 8,
1740 VK_OBJECT_TYPE_BUFFER = 9,
1741 VK_OBJECT_TYPE_IMAGE = 10,
1742 VK_OBJECT_TYPE_EVENT = 11,
1743 VK_OBJECT_TYPE_QUERY_POOL = 12,
1744 VK_OBJECT_TYPE_BUFFER_VIEW = 13,
1745 VK_OBJECT_TYPE_IMAGE_VIEW = 14,
1746 VK_OBJECT_TYPE_SHADER_MODULE = 15,
1747 VK_OBJECT_TYPE_PIPELINE_CACHE = 16,
1748 VK_OBJECT_TYPE_PIPELINE_LAYOUT = 17,
1749 VK_OBJECT_TYPE_RENDER_PASS = 18,
1750 VK_OBJECT_TYPE_PIPELINE = 19,
1751 VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT = 20,
1752 VK_OBJECT_TYPE_SAMPLER = 21,
1753 VK_OBJECT_TYPE_DESCRIPTOR_POOL = 22,
1754 VK_OBJECT_TYPE_DESCRIPTOR_SET = 23,
1755 VK_OBJECT_TYPE_FRAMEBUFFER = 24,
1756 VK_OBJECT_TYPE_COMMAND_POOL = 25,
1757
Ian Elliott28bd2c32017-10-13 09:21:12 -06001758 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04001759 VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION = 1000156000,
1760 VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE = 1000085000,
1761
Jesse Hall05556b12017-05-18 17:40:25 -07001762 //@extension("VK_KHR_surface") // 1
1763 VK_OBJECT_TYPE_SURFACE_KHR = 1000000000,
1764
1765 //@extension("VK_KHR_swapchain") // 2
1766 VK_OBJECT_TYPE_SWAPCHAIN_KHR = 1000001000,
1767
1768 //@extension("VK_KHR_display") // 3
1769 VK_OBJECT_TYPE_DISPLAY_KHR = 1000002000,
1770 VK_OBJECT_TYPE_DISPLAY_MODE_KHR = 1000002001,
1771
1772 //@extension("VK_KHR_debug_report") // 12
1773 VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT = 1000011000,
1774
1775 //@extension("VK_KHR_descriptor_update_template") // 86
1776 VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR = 1000085000,
1777
1778 //@extension("VK_NVX_device_generated_commands") // 87
1779 VK_OBJECT_TYPE_OBJECT_TABLE_NVX = 1000086000,
1780 VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX = 1000086001,
Jesse Hall77726222017-09-19 14:49:27 -05001781
Jesse Hall8c954d32018-01-17 22:06:20 -08001782 //@extension("VK_EXT_debug_utils") // 129
1783 VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT = 1000128000,
1784
Jesse Hall076f95d2017-09-20 11:34:47 -07001785 //@extension("VK_KHR_sampler_ycbcr_conversion") // 157
1786 VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR = 1000156000,
1787
Jesse Hall77726222017-09-19 14:49:27 -05001788 //@extension("VK_EXT_validation_cache") // 161
1789 VK_OBJECT_TYPE_VALIDATION_CACHE_EXT = 1000160000,
Jesse Hall05556b12017-05-18 17:40:25 -07001790}
1791
Daniel Koch09f7bf92017-10-05 00:26:58 -04001792
Ian Elliott28bd2c32017-10-13 09:21:12 -06001793//@vulkan1_1 enums
Daniel Koch09f7bf92017-10-05 00:26:58 -04001794
1795enum VkPointClippingBehavior {
1796 VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES = 0,
1797 VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY = 1,
1798}
1799
1800enum VkTessellationDomainOrigin {
1801 VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT = 0,
1802 VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT = 1,
1803}
1804
1805enum VkSamplerYcbcrModelConversion {
1806 VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY = 0,
1807 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY = 1,
1808 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709 = 2,
1809 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601 = 3,
1810 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020 = 4,
1811}
1812
1813enum VkSamplerYcbcrRange {
1814 VK_SAMPLER_YCBCR_RANGE_ITU_FULL = 0,
1815 VK_SAMPLER_YCBCR_RANGE_ITU_NARROW = 1,
1816}
1817
1818enum VkChromaLocation {
1819 VK_CHROMA_LOCATION_COSITED_EVEN = 0,
1820 VK_CHROMA_LOCATION_MIDPOINT = 1,
1821}
1822
1823enum VkDescriptorUpdateTemplateType {
1824 VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET = 0,
1825 VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR = 1,
1826}
1827
Jesse Hallad250842017-03-10 18:35:38 -08001828@extension("VK_KHR_surface") // 1
Michael Lentine88594d72015-11-12 12:49:45 -08001829enum VkPresentModeKHR {
1830 VK_PRESENT_MODE_IMMEDIATE_KHR = 0x00000000,
1831 VK_PRESENT_MODE_MAILBOX_KHR = 0x00000001,
1832 VK_PRESENT_MODE_FIFO_KHR = 0x00000002,
Jesse Hall03b6fe12015-11-24 12:44:21 -08001833 VK_PRESENT_MODE_FIFO_RELAXED_KHR = 0x00000003,
Jesse Hall77ad05b2017-03-10 22:02:20 -08001834
Jesse Hall05556b12017-05-18 17:40:25 -07001835 //@extension("VK_KHR_shared_presentable_image") // 112
Jesse Hall77ad05b2017-03-10 22:02:20 -08001836 VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR = 1000111000,
1837 VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR = 1000111001,
Michael Lentine88594d72015-11-12 12:49:45 -08001838}
1839
Jesse Hallad250842017-03-10 18:35:38 -08001840@extension("VK_KHR_surface") // 1
Michael Lentine88594d72015-11-12 12:49:45 -08001841enum VkColorSpaceKHR {
Daniel Koch09f7bf92017-10-05 00:26:58 -04001842 VK_COLOR_SPACE_SRGB_NONLINEAR_KHR = 0x00000000,
Jesse Hall77ad05b2017-03-10 22:02:20 -08001843
Jesse Hallf5ad48b2017-03-20 13:09:19 -07001844 //@extension("VK_EXT_swapchain_colorspace") // 105
1845 VK_COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT = 1000104001,
1846 VK_COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT = 1000104002,
1847 VK_COLOR_SPACE_DCI_P3_LINEAR_EXT = 1000104003,
1848 VK_COLOR_SPACE_DCI_P3_NONLINEAR_EXT = 1000104004,
1849 VK_COLOR_SPACE_BT709_LINEAR_EXT = 1000104005,
1850 VK_COLOR_SPACE_BT709_NONLINEAR_EXT = 1000104006,
1851 VK_COLOR_SPACE_BT2020_LINEAR_EXT = 1000104007,
1852 VK_COLOR_SPACE_HDR10_ST2084_EXT = 1000104008,
1853 VK_COLOR_SPACE_DOLBYVISION_EXT = 1000104009,
1854 VK_COLOR_SPACE_HDR10_HLG_EXT = 1000104010,
Courtney Goeltzenleuchter7f558ed2017-01-23 17:15:24 -07001855 VK_COLOR_SPACE_ADOBERGB_LINEAR_EXT = 1000104011,
1856 VK_COLOR_SPACE_ADOBERGB_NONLINEAR_EXT = 1000104012,
Jesse Hallf5ad48b2017-03-20 13:09:19 -07001857 VK_COLOR_SPACE_PASS_THROUGH_EXT = 1000104013,
Jesse Hall77726222017-09-19 14:49:27 -05001858 VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT = 1000104014,
Michael Lentine88594d72015-11-12 12:49:45 -08001859}
Jesse Halld27f6aa2015-08-15 17:58:48 -07001860
Jesse Hallad250842017-03-10 18:35:38 -08001861@extension("VK_EXT_debug_report") // 12
Jesse Hall715b86a2016-01-16 16:34:29 -08001862enum VkDebugReportObjectTypeEXT {
1863 VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT = 0,
1864 VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT = 1,
1865 VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT = 2,
1866 VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT = 3,
1867 VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT = 4,
1868 VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT = 5,
1869 VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT = 6,
1870 VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT = 7,
1871 VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT = 8,
1872 VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT = 9,
1873 VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT = 10,
1874 VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT = 11,
1875 VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT = 12,
1876 VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT = 13,
1877 VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT = 14,
1878 VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT = 15,
1879 VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT = 16,
1880 VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT = 17,
1881 VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT = 18,
1882 VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT = 19,
1883 VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT = 20,
1884 VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT = 21,
1885 VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT = 22,
1886 VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT = 23,
1887 VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT = 24,
1888 VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT = 25,
1889 VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT = 26,
1890 VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT = 27,
Jesse Hall7ba0ac72017-07-07 17:13:23 -07001891 VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT = 28,
Chris Forbes289cb792016-12-30 15:03:55 +13001892 VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT = 29,
1893 VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT = 30,
1894 VK_DEBUG_REPORT_OBJECT_TYPE_OBJECT_TABLE_NVX_EXT = 31,
1895 VK_DEBUG_REPORT_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX_EXT = 32,
Jesse Hallf5ad48b2017-03-20 13:09:19 -07001896
Jesse Hall77726222017-09-19 14:49:27 -05001897 //extension("VK_EXT_validation_cache") // 161
Jesse Hall8c954d32018-01-17 22:06:20 -08001898 VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT = 33,
Jesse Hall77726222017-09-19 14:49:27 -05001899
Jesse Hallf5ad48b2017-03-20 13:09:19 -07001900 //extension("VK_KHR_descriptor_update_template") // 86
1901 VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR_EXT = 1000085000,
Jesse Hall77726222017-09-19 14:49:27 -05001902
Jesse Hall076f95d2017-09-20 11:34:47 -07001903 //@extension("VK_KHR_sampler_ycbcr_conversion") // 157
1904 VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR_EXT = 1000156000,
Jesse Hall715b86a2016-01-16 16:34:29 -08001905}
1906
Jesse Hallad250842017-03-10 18:35:38 -08001907@extension("VK_AMD_rasterization_order") // 19
Jesse Hall26763382016-05-20 07:13:52 -07001908enum VkRasterizationOrderAMD {
1909 VK_RASTERIZATION_ORDER_STRICT_AMD = 0,
1910 VK_RASTERIZATION_ORDER_RELAXED_AMD = 1,
1911}
1912
Jesse Hall8c954d32018-01-17 22:06:20 -08001913@extension("VK_AMD_shader_info") // 43
1914enum VkShaderInfoTypeAMD {
1915 VK_SHADER_INFO_TYPE_STATISTICS_AMD = 0,
1916 VK_SHADER_INFO_TYPE_BINARY_AMD = 1,
1917 VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD = 2,
1918}
1919
Jesse Hallad250842017-03-10 18:35:38 -08001920@extension("VK_EXT_validation_flags") // 62
Chris Forbes289cb792016-12-30 15:03:55 +13001921enum VkValidationCheckEXT {
1922 VK_VALIDATION_CHECK_ALL_EXT = 0,
Jesse Hall7ba0ac72017-07-07 17:13:23 -07001923 VK_VALIDATION_CHECK_SHADERS_EXT = 1,
Chris Forbes289cb792016-12-30 15:03:55 +13001924}
1925
Jesse Hallad250842017-03-10 18:35:38 -08001926@extension("VK_KHR_descriptor_update_template") // 86
1927enum VkDescriptorUpdateTemplateTypeKHR {
1928 VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET_KHR = 0,
1929 VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR = 1,
1930}
1931
1932@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13001933enum VkIndirectCommandsTokenTypeNVX {
Jesse Hall7ba0ac72017-07-07 17:13:23 -07001934 VK_INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NVX = 0,
1935 VK_INDIRECT_COMMANDS_TOKEN_TYPE_DESCRIPTOR_SET_NVX = 1,
1936 VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NVX = 2,
1937 VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NVX = 3,
1938 VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NVX = 4,
1939 VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NVX = 5,
1940 VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NVX = 6,
1941 VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NVX = 7,
Chris Forbes289cb792016-12-30 15:03:55 +13001942}
1943
Jesse Hallad250842017-03-10 18:35:38 -08001944@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13001945enum VkObjectEntryTypeNVX {
Jesse Hall7ba0ac72017-07-07 17:13:23 -07001946 VK_OBJECT_ENTRY_TYPE_DESCRIPTOR_SET_NVX = 0,
1947 VK_OBJECT_ENTRY_TYPE_PIPELINE_NVX = 1,
1948 VK_OBJECT_ENTRY_TYPE_INDEX_BUFFER_NVX = 2,
1949 VK_OBJECT_ENTRY_TYPE_VERTEX_BUFFER_NVX = 3,
1950 VK_OBJECT_ENTRY_TYPE_PUSH_CONSTANT_NVX = 4,
Chris Forbes289cb792016-12-30 15:03:55 +13001951}
Jesse Hall715b86a2016-01-16 16:34:29 -08001952
Jesse Hallad250842017-03-10 18:35:38 -08001953@extension("VK_EXT_display_control") // 92
Jesse Hall77ad05b2017-03-10 22:02:20 -08001954enum VkDisplayPowerStateEXT {
1955 VK_DISPLAY_POWER_STATE_OFF_EXT = 0,
1956 VK_DISPLAY_POWER_STATE_SUSPEND_EXT = 1,
1957 VK_DISPLAY_POWER_STATE_ON_EXT = 2,
1958}
1959
Jesse Hallad250842017-03-10 18:35:38 -08001960@extension("VK_EXT_display_control") // 92
Jesse Hall77ad05b2017-03-10 22:02:20 -08001961enum VkDeviceEventTypeEXT {
1962 VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT = 0,
1963}
1964
Jesse Hallad250842017-03-10 18:35:38 -08001965@extension("VK_EXT_display_control") // 92
Jesse Hall77ad05b2017-03-10 22:02:20 -08001966enum VkDisplayEventTypeEXT {
1967 VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT = 0,
1968}
1969
Jesse Hallad250842017-03-10 18:35:38 -08001970@extension("VK_NV_viewport_swizzle") // 99
1971enum VkViewportCoordinateSwizzleNV {
1972 VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV = 0,
1973 VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV = 1,
1974 VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV = 2,
1975 VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV = 3,
1976 VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV = 4,
1977 VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV = 5,
1978 VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV = 6,
1979 VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV = 7,
1980}
1981
1982@extension("VK_EXT_discard_rectangles") // 100
1983enum VkDiscardRectangleModeEXT {
1984 VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT = 0,
1985 VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT = 1,
1986}
1987
Jesse Hall8c954d32018-01-17 22:06:20 -08001988@extension("VK_EXT_conservative_rasterization") // 102
1989enum VkConservativeRasterizationModeEXT {
1990 VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT = 0,
1991 VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT = 1,
1992 VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT = 2,
1993}
1994
Jesse Hall076f95d2017-09-20 11:34:47 -07001995@extension("VK_KHR_maintenance2") // 118
1996enum VkPointClippingBehaviorKHR {
1997 VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES_KHR = 0,
1998 VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY_KHR = 1,
1999}
2000
2001@extension("VK_KHR_maintenance2") // 118
2002enum VkTessellationDomainOriginKHR {
2003 VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT_KHR = 0,
2004 VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT_KHR = 1,
2005}
2006
Jesse Hall7ba0ac72017-07-07 17:13:23 -07002007@extension("VK_EXT_sampler_filter_minmax") // 131
2008enum VkSamplerReductionModeEXT {
2009 VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_EXT = 0,
2010 VK_SAMPLER_REDUCTION_MODE_MIN_EXT = 1,
2011 VK_SAMPLER_REDUCTION_MODE_MAX_EXT = 2,
2012}
2013
2014@extension("VK_EXT_blend_operation_advanced") // 149
2015enum VkBlendOverlapEXT {
2016 VK_BLEND_OVERLAP_UNCORRELATED_EXT = 0,
2017 VK_BLEND_OVERLAP_DISJOINT_EXT = 1,
2018 VK_BLEND_OVERLAP_CONJOINT_EXT = 2,
2019}
2020
2021@extension("VK_NV_framebuffer_mixed_samples") // 153
2022enum VkCoverageModulationModeNV {
2023 VK_COVERAGE_MODULATION_MODE_NONE_NV = 0,
2024 VK_COVERAGE_MODULATION_MODE_RGB_NV = 1,
2025 VK_COVERAGE_MODULATION_MODE_ALPHA_NV = 2,
2026 VK_COVERAGE_MODULATION_MODE_RGBA_NV = 3,
2027}
2028
Jesse Hall076f95d2017-09-20 11:34:47 -07002029@extension("VK_KHR_sampler_ycbcr_conversion") // 157
2030enum VkSamplerYcbcrModelConversionKHR {
2031 VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY_KHR = 0,
2032 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY_KHR = 1,
2033 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709_KHR = 2,
2034 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601_KHR = 3,
2035 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020_KHR = 4,
2036}
2037
2038@extension("VK_KHR_sampler_ycbcr_conversion") // 157
2039enum VkSamplerYcbcrRangeKHR {
2040 VK_SAMPLER_YCBCR_RANGE_ITU_FULL_KHR = 0,
2041 VK_SAMPLER_YCBCR_RANGE_ITU_NARROW_KHR = 1,
2042}
2043
2044@extension("VK_KHR_sampler_ycbcr_conversion") // 157
2045enum VkChromaLocationKHR {
2046 VK_CHROMA_LOCATION_COSITED_EVEN_KHR = 0,
2047 VK_CHROMA_LOCATION_MIDPOINT_KHR = 1,
2048}
2049
Jesse Hall77726222017-09-19 14:49:27 -05002050@extension("VK_EXT_validation_cache") // 161
2051enum VkValidationCacheHeaderVersionEXT {
2052 VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT = 1,
2053}
2054
Jesse Hall8c954d32018-01-17 22:06:20 -08002055@extension("VK_EXT_global_priority") // 175
2056enum VkQueueGlobalPriorityEXT {
2057 VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT = 128,
2058 VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT = 256,
2059 VK_QUEUE_GLOBAL_PRIORITY_HIGH_EXT = 512,
2060 VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT = 1024,
2061}
2062
Jesse Halld27f6aa2015-08-15 17:58:48 -07002063/////////////////
2064// Bitfields //
2065/////////////////
2066
Jesse Halld27f6aa2015-08-15 17:58:48 -07002067/// Queue capabilities
Jesse Halld8bade02015-11-24 10:24:18 -08002068type VkFlags VkQueueFlags
2069bitfield VkQueueFlagBits {
Jesse Halld27f6aa2015-08-15 17:58:48 -07002070 VK_QUEUE_GRAPHICS_BIT = 0x00000001, /// Queue supports graphics operations
2071 VK_QUEUE_COMPUTE_BIT = 0x00000002, /// Queue supports compute operations
Jesse Hall65ab5522015-11-30 00:07:16 -08002072 VK_QUEUE_TRANSFER_BIT = 0x00000004, /// Queue supports transfer operations
Jesse Hallb00daad2015-11-29 19:46:20 -08002073 VK_QUEUE_SPARSE_BINDING_BIT = 0x00000008, /// Queue supports sparse resource memory management operations
Daniel Koch09f7bf92017-10-05 00:26:58 -04002074
Ian Elliott28bd2c32017-10-13 09:21:12 -06002075 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04002076 VK_QUEUE_PROTECTED_BIT = 0x00000010,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002077}
2078
2079/// Memory properties passed into vkAllocMemory().
Jesse Halld8bade02015-11-24 10:24:18 -08002080type VkFlags VkMemoryPropertyFlags
2081bitfield VkMemoryPropertyFlagBits {
Jesse Halld1af8122015-11-29 23:50:38 -08002082 VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT = 0x00000001,
2083 VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT = 0x00000002,
2084 VK_MEMORY_PROPERTY_HOST_COHERENT_BIT = 0x00000004,
2085 VK_MEMORY_PROPERTY_HOST_CACHED_BIT = 0x00000008,
2086 VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT = 0x00000010,
Daniel Koch09f7bf92017-10-05 00:26:58 -04002087
Ian Elliott28bd2c32017-10-13 09:21:12 -06002088 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04002089 VK_MEMORY_PROPERTY_PROTECTED_BIT = 0x00000020,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002090}
2091
2092/// Memory heap flags
Jesse Halld8bade02015-11-24 10:24:18 -08002093type VkFlags VkMemoryHeapFlags
2094bitfield VkMemoryHeapFlagBits {
Jesse Halld1af8122015-11-29 23:50:38 -08002095 VK_MEMORY_HEAP_DEVICE_LOCAL_BIT = 0x00000001,
Jesse Hallad250842017-03-10 18:35:38 -08002096
Ian Elliott28bd2c32017-10-13 09:21:12 -06002097 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04002098 VK_MEMORY_HEAP_MULTI_INSTANCE_BIT = 0x00000002,
2099
2100 //@extension("VK_KHR_device_group_creation") // 71
2101 VK_MEMORY_HEAP_MULTI_INSTANCE_BIT_KHR = 0x00000002,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002102}
2103
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08002104/// Access flags
2105type VkFlags VkAccessFlags
2106bitfield VkAccessFlagBits {
2107 VK_ACCESS_INDIRECT_COMMAND_READ_BIT = 0x00000001,
2108 VK_ACCESS_INDEX_READ_BIT = 0x00000002,
2109 VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT = 0x00000004,
2110 VK_ACCESS_UNIFORM_READ_BIT = 0x00000008,
2111 VK_ACCESS_INPUT_ATTACHMENT_READ_BIT = 0x00000010,
2112 VK_ACCESS_SHADER_READ_BIT = 0x00000020,
2113 VK_ACCESS_SHADER_WRITE_BIT = 0x00000040,
2114 VK_ACCESS_COLOR_ATTACHMENT_READ_BIT = 0x00000080,
2115 VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT = 0x00000100,
2116 VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT = 0x00000200,
2117 VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT = 0x00000400,
2118 VK_ACCESS_TRANSFER_READ_BIT = 0x00000800,
2119 VK_ACCESS_TRANSFER_WRITE_BIT = 0x00001000,
2120 VK_ACCESS_HOST_READ_BIT = 0x00002000,
2121 VK_ACCESS_HOST_WRITE_BIT = 0x00004000,
2122 VK_ACCESS_MEMORY_READ_BIT = 0x00008000,
2123 VK_ACCESS_MEMORY_WRITE_BIT = 0x00010000,
Chris Forbes289cb792016-12-30 15:03:55 +13002124
Jesse Hallad250842017-03-10 18:35:38 -08002125 //@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13002126 VK_ACCESS_COMMAND_PROCESS_READ_BIT_NVX = 0x00020000,
Chris Forbes289cb792016-12-30 15:03:55 +13002127 VK_ACCESS_COMMAND_PROCESS_WRITE_BIT_NVX = 0x00040000,
Jesse Hall7ba0ac72017-07-07 17:13:23 -07002128
2129 //@extension("VK_EXT_blend_operation_advanced") // 149
2130 VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT = 0x00080000,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002131}
2132
2133/// Buffer usage flags
Jesse Halld8bade02015-11-24 10:24:18 -08002134type VkFlags VkBufferUsageFlags
2135bitfield VkBufferUsageFlagBits {
Jesse Hall3fbc8562015-11-29 22:10:52 -08002136 VK_BUFFER_USAGE_TRANSFER_SRC_BIT = 0x00000001, /// Can be used as a source of transfer operations
2137 VK_BUFFER_USAGE_TRANSFER_DST_BIT = 0x00000002, /// Can be used as a destination of transfer operations
Jesse Halld27f6aa2015-08-15 17:58:48 -07002138 VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT = 0x00000004, /// Can be used as TBO
2139 VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT = 0x00000008, /// Can be used as IBO
2140 VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT = 0x00000010, /// Can be used as UBO
2141 VK_BUFFER_USAGE_STORAGE_BUFFER_BIT = 0x00000020, /// Can be used as SSBO
2142 VK_BUFFER_USAGE_INDEX_BUFFER_BIT = 0x00000040, /// Can be used as source of fixed function index fetch (index buffer)
2143 VK_BUFFER_USAGE_VERTEX_BUFFER_BIT = 0x00000080, /// Can be used as source of fixed function vertex fetch (VBO)
2144 VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT = 0x00000100, /// Can be the source of indirect parameters (e.g. indirect buffer, parameter buffer)
2145}
2146
2147/// Buffer creation flags
Jesse Halld8bade02015-11-24 10:24:18 -08002148type VkFlags VkBufferCreateFlags
2149bitfield VkBufferCreateFlagBits {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07002150 VK_BUFFER_CREATE_SPARSE_BINDING_BIT = 0x00000001, /// Buffer should support sparse backing
Jesse Halld27f6aa2015-08-15 17:58:48 -07002151 VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT = 0x00000002, /// Buffer should support sparse backing with partial residency
2152 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 -04002153
Ian Elliott28bd2c32017-10-13 09:21:12 -06002154 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04002155 VK_BUFFER_CREATE_PROTECTED_BIT = 0x00000008,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002156}
2157
2158/// Shader stage flags
Jesse Halld8bade02015-11-24 10:24:18 -08002159type VkFlags VkShaderStageFlags
2160bitfield VkShaderStageFlagBits {
Jesse Halld27f6aa2015-08-15 17:58:48 -07002161 VK_SHADER_STAGE_VERTEX_BIT = 0x00000001,
Jesse Hallae38f732015-11-19 21:32:50 -08002162 VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT = 0x00000002,
2163 VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT = 0x00000004,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002164 VK_SHADER_STAGE_GEOMETRY_BIT = 0x00000008,
2165 VK_SHADER_STAGE_FRAGMENT_BIT = 0x00000010,
2166 VK_SHADER_STAGE_COMPUTE_BIT = 0x00000020,
Jesse Hallc7467b72015-11-29 21:05:26 -08002167 VK_SHADER_STAGE_ALL_GRAPHICS = 0x0000001F,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002168
2169 VK_SHADER_STAGE_ALL = 0x7FFFFFFF,
2170}
2171
Jesse Hallfbf97b02015-11-20 14:17:03 -08002172/// Descriptor pool create flags
Jesse Halld8bade02015-11-24 10:24:18 -08002173type VkFlags VkDescriptorPoolCreateFlags
2174bitfield VkDescriptorPoolCreateFlagBits {
Jesse Hallfbf97b02015-11-20 14:17:03 -08002175 VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT = 0x00000001,
Jesse Hall72e6a132018-04-06 13:00:44 -07002176
2177 //@extension("VK_EXT_descriptor_indexing") // 162
2178 VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT_EXT = 0x00000002,
Jesse Hallfbf97b02015-11-20 14:17:03 -08002179}
2180
2181/// Descriptor pool reset flags
Jesse Halld8bade02015-11-24 10:24:18 -08002182type VkFlags VkDescriptorPoolResetFlags
Jesse Halla6429252015-11-29 18:59:42 -08002183//bitfield VkDescriptorPoolResetFlagBits {
2184//}
Jesse Hallfbf97b02015-11-20 14:17:03 -08002185
Jesse Halld27f6aa2015-08-15 17:58:48 -07002186/// Image usage flags
Jesse Halld8bade02015-11-24 10:24:18 -08002187type VkFlags VkImageUsageFlags
2188bitfield VkImageUsageFlagBits {
Jesse Hall3fbc8562015-11-29 22:10:52 -08002189 VK_IMAGE_USAGE_TRANSFER_SRC_BIT = 0x00000001, /// Can be used as a source of transfer operations
2190 VK_IMAGE_USAGE_TRANSFER_DST_BIT = 0x00000002, /// Can be used as a destination of transfer operations
Jesse Halld27f6aa2015-08-15 17:58:48 -07002191 VK_IMAGE_USAGE_SAMPLED_BIT = 0x00000004, /// Can be sampled from (SAMPLED_IMAGE and COMBINED_IMAGE_SAMPLER descriptor types)
2192 VK_IMAGE_USAGE_STORAGE_BIT = 0x00000008, /// Can be used as storage image (STORAGE_IMAGE descriptor type)
2193 VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT = 0x00000010, /// Can be used as framebuffer color attachment
Jesse Hall5ae3abb2015-10-08 14:00:22 -07002194 VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000020, /// Can be used as framebuffer depth/stencil attachment
Jesse Halld27f6aa2015-08-15 17:58:48 -07002195 VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT = 0x00000040, /// Image data not needed outside of rendering
2196 VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT = 0x00000080, /// Can be used as framebuffer input attachment
2197}
2198
2199/// Image creation flags
Jesse Halld8bade02015-11-24 10:24:18 -08002200type VkFlags VkImageCreateFlags
2201bitfield VkImageCreateFlagBits {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07002202 VK_IMAGE_CREATE_SPARSE_BINDING_BIT = 0x00000001, /// Image should support sparse backing
Jesse Halld27f6aa2015-08-15 17:58:48 -07002203 VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT = 0x00000002, /// Image should support sparse backing with partial residency
2204 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 -07002205 VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT = 0x00000008, /// Allows image views to have different format than the base image
2206 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 -08002207
Ian Elliott28bd2c32017-10-13 09:21:12 -06002208 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04002209 VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT = 0x00000020,
Jesse Hall8c954d32018-01-17 22:06:20 -08002210 VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT = 0x00000040,
Daniel Koch09f7bf92017-10-05 00:26:58 -04002211 VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT = 0x00000080,
2212 VK_IMAGE_CREATE_EXTENDED_USAGE_BIT = 0x00000100,
Daniel Koch09f7bf92017-10-05 00:26:58 -04002213 VK_IMAGE_CREATE_DISJOINT_BIT = 0x00000200,
Ian Elliott28bd2c32017-10-13 09:21:12 -06002214 VK_IMAGE_CREATE_ALIAS_BIT = 0x00000400,
2215 VK_IMAGE_CREATE_PROTECTED_BIT = 0x00000800,
Daniel Koch09f7bf92017-10-05 00:26:58 -04002216
Jesse Hallad250842017-03-10 18:35:38 -08002217 //@extension("VK_KHR_maintenance1") // 70
Jesse Hall77ad05b2017-03-10 22:02:20 -08002218 VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT_KHR = 0x00000020,
Jesse Hallad250842017-03-10 18:35:38 -08002219
Daniel Koch09f7bf92017-10-05 00:26:58 -04002220 //@extension("VK_KHR_device_group") // 61
2221 VK_IMAGE_CREATE_BIND_SFR_BIT_KHR = 0x00000040,
Jesse Hall77726222017-09-19 14:49:27 -05002222
Jesse Hall076f95d2017-09-20 11:34:47 -07002223 //@extension("VK_KHR_maintenance2") // 118
2224 VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT_KHR = 0x00000080,
2225 VK_IMAGE_CREATE_EXTENDED_USAGE_BIT_KHR = 0x00000100,
2226
2227 //@extension("VK_KHR_sampler_ycbcr_conversion") // 157
2228 VK_IMAGE_CREATE_DISJOINT_BIT_KHR = 0x00000200,
2229
2230 //@extension("VK_KHR_bind_memory2") // 158
2231 VK_IMAGE_CREATE_ALIAS_BIT_KHR = 0x00000400,
Ian Elliott28bd2c32017-10-13 09:21:12 -06002232
2233 //@extension("VK_EXT_sample_locations") // 144
2234 VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT = 0x00001000,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002235}
2236
Jesse Hallb00daad2015-11-29 19:46:20 -08002237/// Image view creation flags
Jesse Halld8bade02015-11-24 10:24:18 -08002238type VkFlags VkImageViewCreateFlags
Jesse Hallb00daad2015-11-29 19:46:20 -08002239//bitfield VkImageViewCreateFlagBits {
2240//}
Jesse Halld27f6aa2015-08-15 17:58:48 -07002241
2242/// Pipeline creation flags
Jesse Halld8bade02015-11-24 10:24:18 -08002243type VkFlags VkPipelineCreateFlags
2244bitfield VkPipelineCreateFlagBits {
Jesse Halld27f6aa2015-08-15 17:58:48 -07002245 VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT = 0x00000001,
2246 VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT = 0x00000002,
2247 VK_PIPELINE_CREATE_DERIVATIVE_BIT = 0x00000004,
Jesse Hallad250842017-03-10 18:35:38 -08002248
Ian Elliott28bd2c32017-10-13 09:21:12 -06002249 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04002250 VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT = 0x00000008,
2251 VK_PIPELINE_CREATE_DISPATCH_BASE = 0x00000010,
2252
2253 //@extension("VK_KHR_device_group") // 61
2254 VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR = 0x00000008,
2255 VK_PIPELINE_CREATE_DISPATCH_BASE_KHR = 0x00000010,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002256}
2257
Jesse Hall65ab5522015-11-30 00:07:16 -08002258/// Color component flags
2259type VkFlags VkColorComponentFlags
2260bitfield VkColorComponentFlagBits {
2261 VK_COLOR_COMPONENT_R_BIT = 0x00000001,
2262 VK_COLOR_COMPONENT_G_BIT = 0x00000002,
2263 VK_COLOR_COMPONENT_B_BIT = 0x00000004,
2264 VK_COLOR_COMPONENT_A_BIT = 0x00000008,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002265}
2266
2267/// Fence creation flags
Jesse Halld8bade02015-11-24 10:24:18 -08002268type VkFlags VkFenceCreateFlags
2269bitfield VkFenceCreateFlagBits {
Jesse Halld27f6aa2015-08-15 17:58:48 -07002270 VK_FENCE_CREATE_SIGNALED_BIT = 0x00000001,
2271}
2272
2273/// Semaphore creation flags
Jesse Halld8bade02015-11-24 10:24:18 -08002274type VkFlags VkSemaphoreCreateFlags
Jesse Halla6429252015-11-29 18:59:42 -08002275//bitfield VkSemaphoreCreateFlagBits {
2276//}
Jesse Halld27f6aa2015-08-15 17:58:48 -07002277
2278/// Format capability flags
Jesse Halld8bade02015-11-24 10:24:18 -08002279type VkFlags VkFormatFeatureFlags
2280bitfield VkFormatFeatureFlagBits {
Jesse Halld27f6aa2015-08-15 17:58:48 -07002281 VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT = 0x00000001, /// Format can be used for sampled images (SAMPLED_IMAGE and COMBINED_IMAGE_SAMPLER descriptor types)
2282 VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT = 0x00000002, /// Format can be used for storage images (STORAGE_IMAGE descriptor type)
2283 VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT = 0x00000004, /// Format supports atomic operations in case it's used for storage images
2284 VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT = 0x00000008, /// Format can be used for uniform texel buffers (TBOs)
2285 VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT = 0x00000010, /// Format can be used for storage texel buffers (IBOs)
2286 VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT = 0x00000020, /// Format supports atomic operations in case it's used for storage texel buffers
2287 VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT = 0x00000040, /// Format can be used for vertex buffers (VBOs)
2288 VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT = 0x00000080, /// Format can be used for color attachment images
2289 VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT = 0x00000100, /// Format supports blending in case it's used for color attachment images
2290 VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000200, /// Format can be used for depth/stencil attachment images
Jesse Hall3fbc8562015-11-29 22:10:52 -08002291 VK_FORMAT_FEATURE_BLIT_SRC_BIT = 0x00000400, /// Format can be used as the source image of blits with vkCommandBlitImage
2292 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 -08002293 VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT = 0x00001000,
Jesse Hall26763382016-05-20 07:13:52 -07002294
Ian Elliott28bd2c32017-10-13 09:21:12 -06002295 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04002296 VK_FORMAT_FEATURE_TRANSFER_SRC_BIT = 0x00004000,
2297 VK_FORMAT_FEATURE_TRANSFER_DST_BIT = 0x00008000,
2298 VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT = 0x00020000,
2299 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT = 0x00040000,
2300 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT = 0x00080000,
2301 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT = 0x00100000,
2302 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT = 0x00200000,
2303 VK_FORMAT_FEATURE_DISJOINT_BIT = 0x00400000,
2304 VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT = 0x00800000,
2305
Jesse Hallad250842017-03-10 18:35:38 -08002306 //@extension("VK_IMG_filter_cubic") // 16
Jesse Hall26763382016-05-20 07:13:52 -07002307 VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG = 0x00002000,
Jesse Hall77ad05b2017-03-10 22:02:20 -08002308
Jesse Hallad250842017-03-10 18:35:38 -08002309 //@extension("VK_KHR_maintenance1") // 70
Jesse Hall77ad05b2017-03-10 22:02:20 -08002310 VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR = 0x00004000,
2311 VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR = 0x00008000,
Jesse Hall7ba0ac72017-07-07 17:13:23 -07002312
2313 //@extension("VK_EXT_sampler_filter_minmax") // 131
2314 VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT_EXT = 0x00010000,
Jesse Hall076f95d2017-09-20 11:34:47 -07002315
2316 //@extension("VK_KHR_sampler_ycbcr_conversion") // 157
2317 VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT_KHR = 0x00020000,
2318 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT_KHR = 0x00040000,
2319 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT_KHR = 0x00080000,
2320 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT_KHR = 0x00100000,
2321 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT_KHR = 0x00200000,
2322 VK_FORMAT_FEATURE_DISJOINT_BIT_KHR = 0x00400000,
2323 VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT_KHR = 0x00800000,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002324}
2325
2326/// Query control flags
Jesse Halld8bade02015-11-24 10:24:18 -08002327type VkFlags VkQueryControlFlags
2328bitfield VkQueryControlFlagBits {
Jesse Hall65ab5522015-11-30 00:07:16 -08002329 VK_QUERY_CONTROL_PRECISE_BIT = 0x00000001,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002330}
2331
2332/// Query result flags
Jesse Halld8bade02015-11-24 10:24:18 -08002333type VkFlags VkQueryResultFlags
2334bitfield VkQueryResultFlagBits {
Jesse Halld27f6aa2015-08-15 17:58:48 -07002335 VK_QUERY_RESULT_64_BIT = 0x00000001, /// Results of the queries are written to the destination buffer as 64-bit values
2336 VK_QUERY_RESULT_WAIT_BIT = 0x00000002, /// Results of the queries are waited on before proceeding with the result copy
2337 VK_QUERY_RESULT_WITH_AVAILABILITY_BIT = 0x00000004, /// Besides the results of the query, the availability of the results is also written
2338 VK_QUERY_RESULT_PARTIAL_BIT = 0x00000008, /// Copy the partial results of the query even if the final results aren't available
2339}
2340
2341/// Shader module creation flags
Jesse Halld8bade02015-11-24 10:24:18 -08002342type VkFlags VkShaderModuleCreateFlags
Jesse Halla6429252015-11-29 18:59:42 -08002343//bitfield VkShaderModuleCreateFlagBits {
2344//}
Jesse Halld27f6aa2015-08-15 17:58:48 -07002345
Jesse Halld27f6aa2015-08-15 17:58:48 -07002346/// Event creation flags
Jesse Halld8bade02015-11-24 10:24:18 -08002347type VkFlags VkEventCreateFlags
Jesse Halla6429252015-11-29 18:59:42 -08002348//bitfield VkEventCreateFlagBits {
2349//}
Jesse Halld27f6aa2015-08-15 17:58:48 -07002350
Jesse Halla15a4bf2015-11-19 22:48:02 -08002351/// Command buffer usage flags
Jesse Hall3fbc8562015-11-29 22:10:52 -08002352type VkFlags VkCommandBufferUsageFlags
2353bitfield VkCommandBufferUsageFlagBits {
2354 VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT = 0x00000001,
2355 VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT = 0x00000002,
2356 VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT = 0x00000004,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002357}
2358
2359/// Pipeline statistics flags
Jesse Halld8bade02015-11-24 10:24:18 -08002360type VkFlags VkQueryPipelineStatisticFlags
2361bitfield VkQueryPipelineStatisticFlagBits {
Jesse Hallae38f732015-11-19 21:32:50 -08002362 VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT = 0x00000001, /// Optional
2363 VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT = 0x00000002, /// Optional
2364 VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT = 0x00000004, /// Optional
2365 VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT = 0x00000008, /// Optional
2366 VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT = 0x00000010, /// Optional
2367 VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT = 0x00000020, /// Optional
2368 VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT = 0x00000040, /// Optional
2369 VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT = 0x00000080, /// Optional
2370 VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT = 0x00000100, /// Optional
2371 VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT = 0x00000200, /// Optional
2372 VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT = 0x00000400, /// Optional
Jesse Halld27f6aa2015-08-15 17:58:48 -07002373}
2374
2375/// Memory mapping flags
Jesse Halld8bade02015-11-24 10:24:18 -08002376type VkFlags VkMemoryMapFlags
Jesse Halla6429252015-11-29 18:59:42 -08002377//bitfield VkMemoryMapFlagBits {
2378//}
Jesse Halld27f6aa2015-08-15 17:58:48 -07002379
2380/// Bitfield of image aspects
Jesse Halld8bade02015-11-24 10:24:18 -08002381type VkFlags VkImageAspectFlags
2382bitfield VkImageAspectFlagBits {
Jesse Halld27f6aa2015-08-15 17:58:48 -07002383 VK_IMAGE_ASPECT_COLOR_BIT = 0x00000001,
2384 VK_IMAGE_ASPECT_DEPTH_BIT = 0x00000002,
2385 VK_IMAGE_ASPECT_STENCIL_BIT = 0x00000004,
2386 VK_IMAGE_ASPECT_METADATA_BIT = 0x00000008,
Jesse Hall076f95d2017-09-20 11:34:47 -07002387
Ian Elliott28bd2c32017-10-13 09:21:12 -06002388 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04002389 VK_IMAGE_ASPECT_PLANE_0_BIT = 0x00000010,
2390 VK_IMAGE_ASPECT_PLANE_1_BIT = 0x00000020,
2391 VK_IMAGE_ASPECT_PLANE_2_BIT = 0x00000040,
2392
Jesse Hall076f95d2017-09-20 11:34:47 -07002393 //@extension("VK_KHR_sampler_ycbcr_conversion") // 157
2394 VK_IMAGE_ASPECT_PLANE_0_BIT_KHR = 0x00000010,
2395 VK_IMAGE_ASPECT_PLANE_1_BIT_KHR = 0x00000020,
2396 VK_IMAGE_ASPECT_PLANE_2_BIT_KHR = 0x00000040,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002397}
2398
2399/// Sparse memory bind flags
Jesse Halld8bade02015-11-24 10:24:18 -08002400type VkFlags VkSparseMemoryBindFlags
Jesse Hall091ed9e2015-11-30 00:55:29 -08002401bitfield VkSparseMemoryBindFlagBits {
2402 VK_SPARSE_MEMORY_BIND_METADATA_BIT = 0x00000001,
2403}
Jesse Halld27f6aa2015-08-15 17:58:48 -07002404
2405/// Sparse image memory requirements flags
Jesse Halld8bade02015-11-24 10:24:18 -08002406type VkFlags VkSparseImageFormatFlags
2407bitfield VkSparseImageFormatFlagBits {
Jesse Hallb00daad2015-11-29 19:46:20 -08002408 VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT = 0x00000001, /// Image uses a single miptail region for all array slices
2409 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.
2410 VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT = 0x00000004, /// Image uses a non-standard sparse block size
Jesse Halld27f6aa2015-08-15 17:58:48 -07002411}
2412
2413/// Pipeline stages
Jesse Halld8bade02015-11-24 10:24:18 -08002414type VkFlags VkPipelineStageFlags
2415bitfield VkPipelineStageFlagBits {
Jesse Halld27f6aa2015-08-15 17:58:48 -07002416 VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT = 0x00000001, /// Before subsequent commands are processed
2417 VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT = 0x00000002, /// Draw/DispatchIndirect command fetch
2418 VK_PIPELINE_STAGE_VERTEX_INPUT_BIT = 0x00000004, /// Vertex/index fetch
2419 VK_PIPELINE_STAGE_VERTEX_SHADER_BIT = 0x00000008, /// Vertex shading
Jesse Hallae38f732015-11-19 21:32:50 -08002420 VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT = 0x00000010, /// Tessellation control shading
2421 VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT = 0x00000020, /// Tessellation evaluation shading
Jesse Halld27f6aa2015-08-15 17:58:48 -07002422 VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT = 0x00000040, /// Geometry shading
2423 VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT = 0x00000080, /// Fragment shading
2424 VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT = 0x00000100, /// Early fragment (depth/stencil) tests
2425 VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT = 0x00000200, /// Late fragment (depth/stencil) tests
2426 VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT = 0x00000400, /// Color attachment writes
2427 VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT = 0x00000800, /// Compute shading
2428 VK_PIPELINE_STAGE_TRANSFER_BIT = 0x00001000, /// Transfer/copy operations
Jesse Hall543a7ff2016-01-08 16:38:30 -08002429 VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT = 0x00002000,
2430 VK_PIPELINE_STAGE_HOST_BIT = 0x00004000, /// Indicates host (CPU) is a source/sink of the dependency
Jesse Halld27f6aa2015-08-15 17:58:48 -07002431
Jesse Hall543a7ff2016-01-08 16:38:30 -08002432 VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT = 0x00008000, /// All stages of the graphics pipeline
2433 VK_PIPELINE_STAGE_ALL_COMMANDS_BIT = 0x00010000, /// All graphics, compute, copy, and transition commands
Chris Forbes289cb792016-12-30 15:03:55 +13002434
Jesse Hallad250842017-03-10 18:35:38 -08002435 //@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13002436 VK_PIPELINE_STAGE_COMMAND_PROCESS_BIT_NVX = 0x00020000,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07002437}
2438
2439/// Render pass attachment description flags
Jesse Halld8bade02015-11-24 10:24:18 -08002440type VkFlags VkAttachmentDescriptionFlags
2441bitfield VkAttachmentDescriptionFlagBits {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07002442 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 -07002443}
2444
2445/// Subpass description flags
Jesse Halld8bade02015-11-24 10:24:18 -08002446type VkFlags VkSubpassDescriptionFlags
2447bitfield VkSubpassDescriptionFlagBits {
Jesse Hallad250842017-03-10 18:35:38 -08002448 //@extension("VK_NVX_multiview_per_view_attributes") // 98
2449 VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX = 0x00000001,
2450 VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX = 0x00000002,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002451}
2452
2453/// Command pool creation flags
Jesse Hall3fbc8562015-11-29 22:10:52 -08002454type VkFlags VkCommandPoolCreateFlags
2455bitfield VkCommandPoolCreateFlagBits {
2456 VK_COMMAND_POOL_CREATE_TRANSIENT_BIT = 0x00000001, /// Command buffers have a short lifetime
2457 VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT = 0x00000002, /// Command buffers may release their memory individually
Daniel Koch09f7bf92017-10-05 00:26:58 -04002458
Ian Elliott28bd2c32017-10-13 09:21:12 -06002459 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04002460 VK_COMMAND_POOL_CREATE_PROTECTED_BIT = 0x00000004,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002461}
2462
2463/// Command pool reset flags
Jesse Hall3fbc8562015-11-29 22:10:52 -08002464type VkFlags VkCommandPoolResetFlags
2465bitfield VkCommandPoolResetFlagBits {
2466 VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT = 0x00000001, /// Release resources owned by the pool
Jesse Halld27f6aa2015-08-15 17:58:48 -07002467}
2468
Jesse Hall3fbc8562015-11-29 22:10:52 -08002469type VkFlags VkCommandBufferResetFlags
2470bitfield VkCommandBufferResetFlagBits {
2471 VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT = 0x00000001, /// Release resources owned by the buffer
Jesse Hall5ae3abb2015-10-08 14:00:22 -07002472}
2473
Jesse Halld8bade02015-11-24 10:24:18 -08002474type VkFlags VkSampleCountFlags
2475bitfield VkSampleCountFlagBits {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07002476 VK_SAMPLE_COUNT_1_BIT = 0x00000001,
2477 VK_SAMPLE_COUNT_2_BIT = 0x00000002,
2478 VK_SAMPLE_COUNT_4_BIT = 0x00000004,
2479 VK_SAMPLE_COUNT_8_BIT = 0x00000008,
2480 VK_SAMPLE_COUNT_16_BIT = 0x00000010,
2481 VK_SAMPLE_COUNT_32_BIT = 0x00000020,
2482 VK_SAMPLE_COUNT_64_BIT = 0x00000040,
2483}
2484
Jesse Halld8bade02015-11-24 10:24:18 -08002485type VkFlags VkStencilFaceFlags
2486bitfield VkStencilFaceFlagBits {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07002487 VK_STENCIL_FACE_FRONT_BIT = 0x00000001, /// Front face
2488 VK_STENCIL_FACE_BACK_BIT = 0x00000002, /// Back face
Jesse Hallc7467b72015-11-29 21:05:26 -08002489 VK_STENCIL_FRONT_AND_BACK = 0x00000003,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002490}
2491
Jesse Halla6429252015-11-29 18:59:42 -08002492/// Instance creation flags
2493type VkFlags VkInstanceCreateFlags
2494//bitfield VkInstanceCreateFlagBits {
2495//}
2496
2497/// Device creation flags
2498type VkFlags VkDeviceCreateFlags
2499//bitfield VkDeviceCreateFlagBits {
2500//}
2501
2502/// Device queue creation flags
2503type VkFlags VkDeviceQueueCreateFlags
Ian Elliott28bd2c32017-10-13 09:21:12 -06002504@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04002505bitfield VkDeviceQueueCreateFlagBits {
2506 VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT = 0x00000001,
2507}
Jesse Halla6429252015-11-29 18:59:42 -08002508
2509/// Query pool creation flags
2510type VkFlags VkQueryPoolCreateFlags
2511//bitfield VkQueryPoolCreateFlagBits {
2512//}
2513
2514/// Buffer view creation flags
2515type VkFlags VkBufferViewCreateFlags
2516//bitfield VkBufferViewCreateFlagBits {
2517//}
2518
2519/// Pipeline cache creation flags
2520type VkFlags VkPipelineCacheCreateFlags
2521//bitfield VkPipelineCacheCreateFlagBits {
2522//}
2523
2524/// Pipeline shader stage creation flags
2525type VkFlags VkPipelineShaderStageCreateFlags
2526//bitfield VkPipelineShaderStageCreateFlagBits {
2527//}
2528
2529/// Descriptor set layout creation flags
2530type VkFlags VkDescriptorSetLayoutCreateFlags
Jesse Hallad250842017-03-10 18:35:38 -08002531bitfield VkDescriptorSetLayoutCreateFlagBits {
2532 //@extension("VK_KHR_push_descriptor") // 81
2533 VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR = 0x00000001,
Jesse Hall72e6a132018-04-06 13:00:44 -07002534
2535 //@extension("VK_EXT_descriptor_indexing") // 162
2536 VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT = 0x00000002,
Jesse Hallad250842017-03-10 18:35:38 -08002537}
Jesse Halla6429252015-11-29 18:59:42 -08002538
2539/// Pipeline vertex input state creation flags
2540type VkFlags VkPipelineVertexInputStateCreateFlags
2541//bitfield VkPipelineVertexInputStateCreateFlagBits {
2542//}
2543
2544/// Pipeline input assembly state creation flags
2545type VkFlags VkPipelineInputAssemblyStateCreateFlags
2546//bitfield VkPipelineInputAssemblyStateCreateFlagBits {
2547//}
2548
2549/// Tessellation state creation flags
2550type VkFlags VkPipelineTessellationStateCreateFlags
2551//bitfield VkPipelineTessellationStateCreateFlagBits {
2552//}
2553
2554/// Viewport state creation flags
2555type VkFlags VkPipelineViewportStateCreateFlags
2556//bitfield VkPipelineViewportStateCreateFlagBits {
2557//}
2558
Jesse Hall3fbc8562015-11-29 22:10:52 -08002559/// Rasterization state creation flags
2560type VkFlags VkPipelineRasterizationStateCreateFlags
2561//bitfield VkPipelineRasterizationStateCreateFlagBits {
Jesse Halla6429252015-11-29 18:59:42 -08002562//}
2563
2564/// Multisample state creation flags
2565type VkFlags VkPipelineMultisampleStateCreateFlags
2566//bitfield VkPipelineMultisampleStateCreateFlagBits {
2567//}
2568
2569/// Color blend state creation flags
2570type VkFlags VkPipelineColorBlendStateCreateFlags
2571//bitfield VkPipelineColorBlendStateCreateFlagBits {
2572//}
2573
2574/// Depth/stencil state creation flags
2575type VkFlags VkPipelineDepthStencilStateCreateFlags
2576//bitfield VkPipelineDepthStencilStateCreateFlagBits {
2577//}
2578
2579/// Dynamic state creation flags
2580type VkFlags VkPipelineDynamicStateCreateFlags
2581//bitfield VkPipelineDynamicStateCreateFlagBits {
2582//}
2583
2584/// Pipeline layout creation flags
2585type VkFlags VkPipelineLayoutCreateFlags
2586//bitfield VkPipelineLayoutCreateFlagBits {
2587//}
2588
2589/// Sampler creation flags
2590type VkFlags VkSamplerCreateFlags
2591//bitfield VkSamplerCreateFlagBits {
2592//}
2593
2594/// Render pass creation flags
2595type VkFlags VkRenderPassCreateFlags
2596//bitfield VkRenderPassCreateFlagBits {
2597//}
2598
2599/// Framebuffer creation flags
2600type VkFlags VkFramebufferCreateFlags
2601//bitfield VkFramebufferCreateFlagBits {
2602//}
2603
Jesse Halldc6d36c2015-11-29 19:12:15 -08002604/// Dependency flags
2605type VkFlags VkDependencyFlags
2606bitfield VkDependencyFlagBits {
2607 VK_DEPENDENCY_BY_REGION_BIT = 0x00000001,
Jesse Hallad250842017-03-10 18:35:38 -08002608
Ian Elliott28bd2c32017-10-13 09:21:12 -06002609 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04002610 VK_DEPENDENCY_DEVICE_GROUP_BIT = 0x00000004,
2611 VK_DEPENDENCY_VIEW_LOCAL_BIT = 0x00000002,
Jesse Hallad250842017-03-10 18:35:38 -08002612
Daniel Koch09f7bf92017-10-05 00:26:58 -04002613 //@extension("VK_KHR_multiview") // 54
2614 VK_DEPENDENCY_VIEW_LOCAL_BIT_KHR = 0x00000002,
2615
2616 //@extension("VK_KHR_device_group") // 61
2617 VK_DEPENDENCY_DEVICE_GROUP_BIT_KHR = 0x00000004,
Jesse Halldc6d36c2015-11-29 19:12:15 -08002618}
2619
Jesse Hallc7467b72015-11-29 21:05:26 -08002620/// Cull mode flags
2621type VkFlags VkCullModeFlags
2622bitfield VkCullModeFlagBits {
2623 VK_CULL_MODE_NONE = 0x00000000,
2624 VK_CULL_MODE_FRONT_BIT = 0x00000001,
2625 VK_CULL_MODE_BACK_BIT = 0x00000002,
2626 VK_CULL_MODE_FRONT_AND_BACK = 0x00000003,
2627}
2628
Ian Elliott28bd2c32017-10-13 09:21:12 -06002629//@vulkan1_1 flags
Daniel Koch09f7bf92017-10-05 00:26:58 -04002630
2631/// Subgroup feature flags
2632type VkFlags VkSubgroupFeatureFlags
2633bitfield VkSubgroupFeatureFlagBits {
2634 VK_SUBGROUP_FEATURE_BASIC_BIT = 0x00000001,
2635 VK_SUBGROUP_FEATURE_VOTE_BIT = 0x00000002,
2636 VK_SUBGROUP_FEATURE_ARITHMETIC_BIT = 0x00000004,
2637 VK_SUBGROUP_FEATURE_BALLOT_BIT = 0x00000008,
2638 VK_SUBGROUP_FEATURE_SHUFFLE_BIT = 0x00000010,
2639 VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT = 0x00000020,
2640 VK_SUBGROUP_FEATURE_CLUSTERED_BIT = 0x00000040,
2641 VK_SUBGROUP_FEATURE_QUAD_BIT = 0x00000080,
Jesse Hall72e6a132018-04-06 13:00:44 -07002642
2643 //@extension("VK_NV_shader_subgroup_partitioned") // 199
2644 VK_SUBGROUP_FEATURE_PARTITIONED_BIT_NV = 0x00000100,
Daniel Koch09f7bf92017-10-05 00:26:58 -04002645}
2646
2647/// Peer memory feature flags
2648type VkFlags VkPeerMemoryFeatureFlags
2649bitfield VkPeerMemoryFeatureFlagBits {
2650 VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT = 0x00000001,
2651 VK_PEER_MEMORY_FEATURE_COPY_DST_BIT = 0x00000002,
2652 VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT = 0x00000004,
2653 VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT = 0x00000008,
2654}
2655
2656/// Memory allocation flags
2657type VkFlags VkMemoryAllocateFlags
2658bitfield VkMemoryAllocateFlagBits {
2659 VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT = 0x00000001,
2660}
2661
2662type VkFlags VkCommandPoolTrimFlags
2663//bitfield VkCommandPoolTrimFlagBits {
2664//}
2665
2666type VkFlags VkDescriptorUpdateTemplateCreateFlags
2667//bitfield VkDescriptorUpdateTemplateCreateFlagBits {
2668//}
2669
2670/// External memory handle type flags
2671type VkFlags VkExternalMemoryHandleTypeFlags
2672bitfield VkExternalMemoryHandleTypeFlagBits {
2673 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT = 0x00000001,
2674 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT = 0x00000002,
2675 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 0x00000004,
2676 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT = 0x00000008,
2677 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT = 0x00000010,
2678 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT = 0x00000020,
2679 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT = 0x00000040,
Jesse Hall8c954d32018-01-17 22:06:20 -08002680
Jesse Hall8c954d32018-01-17 22:06:20 -08002681 //@extension("VK_EXT_external_memory_host") // 179
Jesse Hall36215a92018-01-18 15:04:37 -08002682 VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT = 0x00000080,
2683 VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT = 0x00000100,
2684
2685 //@extension("VK_EXT_external_memory_dma_buf") // 126
2686 VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT = 0x00000200,
2687
2688 //@extension("VK_ANDROID_external_memory_android_hardware_buffer") // 130
2689 VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID = 0x00000400,
Daniel Koch09f7bf92017-10-05 00:26:58 -04002690}
2691
2692/// External memory feature flags
2693type VkFlags VkExternalMemoryFeatureFlags
2694bitfield VkExternalMemoryFeatureFlagBits {
2695 VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT = 0x00000001,
2696 VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT = 0x00000002,
2697 VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT = 0x00000004,
2698}
2699
2700/// External fence handle type flags
2701type VkFlags VkExternalFenceHandleTypeFlags
2702bitfield VkExternalFenceHandleTypeFlagBits {
2703 VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT = 0x00000001,
2704 VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT = 0x00000002,
2705 VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 0x00000004,
2706 VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT = 0x00000008,
2707}
2708
2709/// External fence feature flags
2710type VkFlags VkExternalFenceFeatureFlags
2711bitfield VkExternalFenceFeatureFlagBits {
2712 VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT = 0x00000001,
2713 VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT = 0x00000002,
2714}
2715
2716/// Fence import flags
2717type VkFlags VkFenceImportFlags
2718bitfield VkFenceImportFlagBits {
2719 VK_FENCE_IMPORT_TEMPORARY_BIT = 0x00000001,
2720}
2721
2722/// Semaphore import flags
2723type VkFlags VkSemaphoreImportFlags
2724bitfield VkSemaphoreImportFlagBits {
2725 VK_SEMAPHORE_IMPORT_TEMPORARY_BIT = 0x00000001,
2726}
2727
2728/// External semaphore handle type flags
2729type VkFlags VkExternalSemaphoreHandleTypeFlags
2730bitfield VkExternalSemaphoreHandleTypeFlagBits {
2731 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT = 0x00000001,
2732 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT = 0x00000002,
2733 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 0x00000004,
2734 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT = 0x00000008,
2735 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT = 0x00000010,
2736}
2737
2738/// External semaphore feature flags
2739type VkFlags VkExternalSemaphoreFeatureFlags
2740bitfield VkExternalSemaphoreFeatureFlagBits {
2741 VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT = 0x00000001,
2742 VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT = 0x00000002,
2743}
2744
Jesse Hallad250842017-03-10 18:35:38 -08002745@extension("VK_KHR_surface") // 1
Jesse Halld8bade02015-11-24 10:24:18 -08002746type VkFlags VkSurfaceTransformFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08002747@extension("VK_KHR_surface") // 1
Jesse Halld8bade02015-11-24 10:24:18 -08002748bitfield VkSurfaceTransformFlagBitsKHR {
Jesse Hallf9fa9a52016-01-08 16:08:51 -08002749 VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR = 0x00000001,
Jesse Hall9ba8bc82015-11-30 16:22:16 -08002750 VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR = 0x00000002,
2751 VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR = 0x00000004,
2752 VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR = 0x00000008,
2753 VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR = 0x00000010,
2754 VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR = 0x00000020,
2755 VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR = 0x00000040,
2756 VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR = 0x00000080,
2757 VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR = 0x00000100,
Michael Lentine88594d72015-11-12 12:49:45 -08002758}
Jesse Halld27f6aa2015-08-15 17:58:48 -07002759
Jesse Hallad250842017-03-10 18:35:38 -08002760@extension("VK_KHR_surface") // 1
Jesse Halla6429252015-11-29 18:59:42 -08002761type VkFlags VkCompositeAlphaFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08002762@extension("VK_KHR_surface") // 1
Jesse Halla6429252015-11-29 18:59:42 -08002763bitfield VkCompositeAlphaFlagBitsKHR {
2764 VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR = 0x00000001,
2765 VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR = 0x00000002,
2766 VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR = 0x00000004,
2767 VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR = 0x00000008,
2768}
2769
Jesse Hallad250842017-03-10 18:35:38 -08002770@extension("VK_KHR_swapchain") // 2
Jesse Hallf4ab2b12015-11-30 16:04:55 -08002771type VkFlags VkSwapchainCreateFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08002772@extension("VK_KHR_swapchain") // 2
2773bitfield VkSwapchainCreateFlagBitsKHR {
Ian Elliott28bd2c32017-10-13 09:21:12 -06002774 //@vulkan1_1
Jesse Hall8c954d32018-01-17 22:06:20 -08002775 VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR = 0x00000001,
Daniel Koch09f7bf92017-10-05 00:26:58 -04002776 VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR = 0x00000002,
2777}
2778
Ian Elliott28bd2c32017-10-13 09:21:12 -06002779@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04002780@extension("VK_KHR_swapchain") // 2
2781type VkFlags VkDeviceGroupPresentModeFlagsKHR
Ian Elliott28bd2c32017-10-13 09:21:12 -06002782@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04002783@extension("VK_KHR_swapchain") // 2
2784bitfield VkDeviceGroupPresentModeFlagBitsKHR {
2785 VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR = 0x00000001,
2786 VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR = 0x00000002,
2787 VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR = 0x00000004,
2788 VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR = 0x00000008,
Jesse Hallad250842017-03-10 18:35:38 -08002789}
Jesse Hallf4ab2b12015-11-30 16:04:55 -08002790
Jesse Hallad250842017-03-10 18:35:38 -08002791@extension("VK_KHR_display") // 3
Jesse Halld8bade02015-11-24 10:24:18 -08002792type VkFlags VkDisplayPlaneAlphaFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08002793@extension("VK_KHR_display") // 3
Jesse Halld8bade02015-11-24 10:24:18 -08002794bitfield VkDisplayPlaneAlphaFlagBitsKHR {
Jesse Hallf4ab2b12015-11-30 16:04:55 -08002795 VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR = 0x00000001,
2796 VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR = 0x00000002,
2797 VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR = 0x00000004,
2798 VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR = 0x00000008,
Jesse Hall1356b0d2015-11-23 17:24:58 -08002799}
2800
Jesse Hallad250842017-03-10 18:35:38 -08002801@extension("VK_KHR_display") // 3
Jesse Hallf4ab2b12015-11-30 16:04:55 -08002802type VkFlags VkDisplaySurfaceCreateFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08002803//@extension("VK_KHR_display") // 3
Jesse Hallf4ab2b12015-11-30 16:04:55 -08002804//bitfield VkDisplaySurfaceCreateFlagBitsKHR {
2805//}
2806
Jesse Hallad250842017-03-10 18:35:38 -08002807@extension("VK_KHR_display") // 3
Jesse Hall9ba8bc82015-11-30 16:22:16 -08002808type VkFlags VkDisplayModeCreateFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08002809//@extension("VK_KHR_display") // 3
Jesse Hall9ba8bc82015-11-30 16:22:16 -08002810//bitfield VkDisplayModeCreateFlagBitsKHR {
2811//}
2812
Jesse Hallad250842017-03-10 18:35:38 -08002813@extension("VK_KHR_xlib_surface") // 5
Jesse Hallf9fa9a52016-01-08 16:08:51 -08002814type VkFlags VkXlibSurfaceCreateFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08002815//@extension("VK_KHR_xlib_surface") // 5
Jesse Hallf9fa9a52016-01-08 16:08:51 -08002816//bitfield VkXlibSurfaceCreateFlagBitsKHR {
2817//}
2818
Jesse Hallad250842017-03-10 18:35:38 -08002819@extension("VK_KHR_xcb_surface") // 6
Jesse Hallf9fa9a52016-01-08 16:08:51 -08002820type VkFlags VkXcbSurfaceCreateFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08002821//@extension("VK_KHR_xcb_surface") // 6
Jesse Hallf9fa9a52016-01-08 16:08:51 -08002822//bitfield VkXcbSurfaceCreateFlagBitsKHR {
2823//}
2824
Jesse Hallad250842017-03-10 18:35:38 -08002825@extension("VK_KHR_wayland_surface") // 7
Jesse Hallf9fa9a52016-01-08 16:08:51 -08002826type VkFlags VkWaylandSurfaceCreateFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08002827//@extension("VK_KHR_wayland_surface") // 7
Jesse Hallf9fa9a52016-01-08 16:08:51 -08002828//bitfield VkWaylandSurfaceCreateFlagBitsKHR {
2829//}
2830
Jesse Hallad250842017-03-10 18:35:38 -08002831@extension("VK_KHR_mir_surface") // 8
Jesse Hallf9fa9a52016-01-08 16:08:51 -08002832type VkFlags VkMirSurfaceCreateFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08002833//@extension("VK_KHR_mir_surface") // 8
Jesse Hallf9fa9a52016-01-08 16:08:51 -08002834//bitfield VkMirSurfaceCreateFlagBitsKHR {
2835//}
2836
Jesse Hallad250842017-03-10 18:35:38 -08002837@extension("VK_KHR_android_surface") // 9
Jesse Hallf9fa9a52016-01-08 16:08:51 -08002838type VkFlags VkAndroidSurfaceCreateFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08002839//@extension("VK_KHR_android_surface") // 9
Jesse Hallf9fa9a52016-01-08 16:08:51 -08002840//bitfield VkAndroidSurfaceCreateFlagBitsKHR {
2841//}
2842
Jesse Hallad250842017-03-10 18:35:38 -08002843@extension("VK_KHR_win32_surface") // 10
Jesse Hallf9fa9a52016-01-08 16:08:51 -08002844type VkFlags VkWin32SurfaceCreateFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08002845//@extension("VK_KHR_win32_surface") // 10
Jesse Hallf9fa9a52016-01-08 16:08:51 -08002846//bitfield VkWin32SurfaceCreateFlagBitsKHR {
2847//}
2848
Jesse Hallad250842017-03-10 18:35:38 -08002849@extension("VK_ANDROID_native_buffer") // 11
Jesse Hall889cd9a2017-02-25 22:12:23 -08002850type VkFlags VkSwapchainImageUsageFlagsANDROID
Jesse Hallad250842017-03-10 18:35:38 -08002851@extension("VK_ANDROID_native_buffer") // 11
Jesse Hall889cd9a2017-02-25 22:12:23 -08002852bitfield VkSwapchainImageUsageFlagBitsANDROID {
2853 VK_SWAPCHAIN_IMAGE_USAGE_FLAGS_SHARED_BIT_ANDROID = 0x00000001,
2854}
2855
Jesse Hallad250842017-03-10 18:35:38 -08002856@extension("VK_EXT_debug_report") // 12
Jesse Hall715b86a2016-01-16 16:34:29 -08002857type VkFlags VkDebugReportFlagsEXT
Jesse Hallad250842017-03-10 18:35:38 -08002858@extension("VK_EXT_debug_report") // 12
Jesse Hall715b86a2016-01-16 16:34:29 -08002859bitfield VkDebugReportFlagBitsEXT {
Jesse Halle2948d82016-02-25 04:19:32 -08002860 VK_DEBUG_REPORT_INFORMATION_BIT_EXT = 0x00000001,
2861 VK_DEBUG_REPORT_WARNING_BIT_EXT = 0x00000002,
2862 VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT = 0x00000004,
Jesse Hall715b86a2016-01-16 16:34:29 -08002863 VK_DEBUG_REPORT_ERROR_BIT_EXT = 0x00000008,
2864 VK_DEBUG_REPORT_DEBUG_BIT_EXT = 0x00000010,
2865}
2866
Jesse Hallad250842017-03-10 18:35:38 -08002867@extension("VK_NV_external_memory_capabilities") // 56
Chris Forbes289cb792016-12-30 15:03:55 +13002868type VkFlags VkExternalMemoryHandleTypeFlagsNV
Jesse Hallad250842017-03-10 18:35:38 -08002869@extension("VK_NV_external_memory_capabilities") // 56
Chris Forbes289cb792016-12-30 15:03:55 +13002870bitfield VkExternalMemoryHandleTypeFlagBitsNV {
Jesse Halleb02c472017-02-24 15:13:45 -08002871 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV = 0x00000001,
2872 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV = 0x00000002,
2873 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV = 0x00000004,
2874 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV = 0x00000008,
Chris Forbes289cb792016-12-30 15:03:55 +13002875}
2876
Jesse Hallad250842017-03-10 18:35:38 -08002877@extension("VK_NV_external_memory_capabilities") // 56
Chris Forbes289cb792016-12-30 15:03:55 +13002878type VkFlags VkExternalMemoryFeatureFlagsNV
Jesse Hallad250842017-03-10 18:35:38 -08002879@extension("VK_NV_external_memory_capabilities") // 56
Chris Forbes289cb792016-12-30 15:03:55 +13002880bitfield VkExternalMemoryFeatureFlagBitsNV {
Jesse Halleb02c472017-02-24 15:13:45 -08002881 VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV = 0x00000001,
2882 VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV = 0x00000002,
2883 VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV = 0x00000004,
Chris Forbes289cb792016-12-30 15:03:55 +13002884}
2885
Daniel Koch09f7bf92017-10-05 00:26:58 -04002886@extension("VK_KHR_device_group") // 61
2887type VkFlags VkPeerMemoryFeatureFlagsKHR
2888@extension("VK_KHR_device_group") // 61
2889bitfield VkPeerMemoryFeatureFlagBitsKHR {
2890 VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT_KHR = 0x00000001,
2891 VK_PEER_MEMORY_FEATURE_COPY_DST_BIT_KHR = 0x00000002,
2892 VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT_KHR = 0x00000004,
2893 VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT_KHR = 0x00000008,
Jesse Hallad250842017-03-10 18:35:38 -08002894}
2895
Daniel Koch09f7bf92017-10-05 00:26:58 -04002896@extension("VK_KHR_device_group") // 61
2897type VkFlags VkMemoryAllocateFlagsKHR
2898@extension("VK_KHR_device_group") // 61
2899bitfield VkMemoryAllocateFlagBitsKHR {
2900 VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT_KHR = 0x00000001,
Jesse Hallad250842017-03-10 18:35:38 -08002901}
2902
2903@extension("VK_NN_vi_surface") // 63
Jesse Hall77ad05b2017-03-10 22:02:20 -08002904type VkFlags VkViSurfaceCreateFlagsNN
Jesse Hallad250842017-03-10 18:35:38 -08002905//@extension("VK_NN_vi_surface") // 63
Jesse Hall77ad05b2017-03-10 22:02:20 -08002906//bitfield VkViSurfaceCreateFlagBitsNN {
2907//}
2908
Jesse Hallad250842017-03-10 18:35:38 -08002909@extension("VK_KHR_maintenance1") // 70
Jesse Hall77ad05b2017-03-10 22:02:20 -08002910type VkFlags VkCommandPoolTrimFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08002911//@extension("VK_KHR_maintenance1") // 70
Jesse Hall77ad05b2017-03-10 22:02:20 -08002912//bitfield VkCommandPoolTrimFlagBitsKHR {
2913//}
2914
Jesse Hall9492f992017-08-28 12:10:06 -07002915@extension("VK_KHR_external_memory_capabilities") // 72
2916type VkFlags VkExternalMemoryHandleTypeFlagsKHR
2917@extension("VK_KHR_external_memory_capabilities") // 72
2918bitfield VkExternalMemoryHandleTypeFlagBitsKHR {
2919 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = 0x00000001,
2920 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = 0x00000002,
2921 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = 0x00000004,
2922 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT_KHR = 0x00000008,
2923 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT_KHR = 0x00000010,
2924 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT_KHR = 0x00000020,
2925 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT_KHR = 0x00000040,
Jesse Hallad250842017-03-10 18:35:38 -08002926}
2927
Jesse Hall9492f992017-08-28 12:10:06 -07002928@extension("VK_KHR_external_memory_capabilities") // 72
2929type VkFlags VkExternalMemoryFeatureFlagsKHR
2930@extension("VK_KHR_external_memory_capabilities") // 72
2931bitfield VkExternalMemoryFeatureFlagBitsKHR {
2932 VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_KHR = 0x00000001,
2933 VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_KHR = 0x00000002,
2934 VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_KHR = 0x00000004,
Jesse Hallad250842017-03-10 18:35:38 -08002935}
2936
Jesse Hall9492f992017-08-28 12:10:06 -07002937@extension("VK_KHR_external_semaphore_capabilities") // 77
2938type VkFlags VkExternalSemaphoreHandleTypeFlagsKHR
2939@extension("VK_KHR_external_semaphore_capabilities") // 77
2940bitfield VkExternalSemaphoreHandleTypeFlagBitsKHR {
2941 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = 0x00000001
2942 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = 0x00000002
2943 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = 0x00000004
2944 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT_KHR = 0x00000008
2945 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_FENCE_FD_BIT_KHR = 0x00000010
Jesse Hallad250842017-03-10 18:35:38 -08002946}
2947
Jesse Hall9492f992017-08-28 12:10:06 -07002948@extension("VK_KHR_external_semaphore_capabilities") // 77
2949type VkFlags VkExternalSemaphoreFeatureFlagsKHR
2950@extension("VK_KHR_external_semaphore_capabilities") // 77
2951bitfield VkExternalSemaphoreFeatureFlagBitsKHR {
2952 VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT_KHR = 0x00000001,
2953 VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT_KHR = 0x00000002,
2954}
2955
2956@extension("VK_KHR_external_semaphore") // 78
2957type VkFlags VkSemaphoreImportFlagsKHR
2958@extension("VK_KHR_external_semaphore") // 78
2959bitfield VkSemaphoreImportFlagBitsKHR {
2960 VK_SEMAPHORE_IMPORT_TEMPORARY_BIT_KHR = 0x00000001,
Jesse Hallad250842017-03-10 18:35:38 -08002961}
2962
2963@extension("VK_KHR_descriptor_update_template") // 86
2964type VkFlags VkDescriptorUpdateTemplateCreateFlagsKHR
2965//@extension("VK_KHR_descriptor_update_template") // 86
2966//bitfield VkDescriptorUpdateTemplateCreateFlagBitsKHR {
2967//}
2968
2969@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13002970type VkFlags VkIndirectCommandsLayoutUsageFlagsNVX
Jesse Hallad250842017-03-10 18:35:38 -08002971@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13002972bitfield VkIndirectCommandsLayoutUsageFlagBitsNVX {
Jesse Halleb02c472017-02-24 15:13:45 -08002973 VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NVX = 0x00000001,
2974 VK_INDIRECT_COMMANDS_LAYOUT_USAGE_SPARSE_SEQUENCES_BIT_NVX = 0x00000002,
2975 VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EMPTY_EXECUTIONS_BIT_NVX = 0x00000004,
2976 VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NVX = 0x00000008,
Chris Forbes289cb792016-12-30 15:03:55 +13002977}
2978
Jesse Hallad250842017-03-10 18:35:38 -08002979@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13002980type VkFlags VkObjectEntryUsageFlagsNVX
Jesse Hallad250842017-03-10 18:35:38 -08002981@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13002982bitfield VkObjectEntryUsageFlagBitsNVX {
Jesse Halleb02c472017-02-24 15:13:45 -08002983 VK_OBJECT_ENTRY_USAGE_GRAPHICS_BIT_NVX = 0x00000001,
2984 VK_OBJECT_ENTRY_USAGE_COMPUTE_BIT_NVX = 0x00000002,
Chris Forbes289cb792016-12-30 15:03:55 +13002985}
2986
Jesse Hallad250842017-03-10 18:35:38 -08002987@extension("VK_EXT_display_surface_counter") // 91
Jesse Hall77ad05b2017-03-10 22:02:20 -08002988type VkFlags VkSurfaceCounterFlagsEXT
Jesse Hallad250842017-03-10 18:35:38 -08002989@extension("VK_EXT_display_surface_counter") // 91
Jesse Hall77ad05b2017-03-10 22:02:20 -08002990bitfield VkSurfaceCounterFlagBitsEXT {
2991 VK_SURFACE_COUNTER_VBLANK_EXT = 0x00000001,
2992}
2993
Jesse Hallad250842017-03-10 18:35:38 -08002994@extension("VK_NV_viewport_swizzle") // 99
2995type VkFlags VkPipelineViewportSwizzleStateCreateFlagsNV
2996//@extension("VK_NV_viewport_swizzle") // 99
2997//bitfield VkPipelineViewportSwizzleStateCreateFlagBitsNV {
2998//}
2999
3000@extension("VK_EXT_discard_rectangles") // 100
3001type VkFlags VkPipelineDiscardRectangleStateCreateFlagsEXT
3002//@extension("VK_EXT_discard_rectangles") // 100
3003//bitfield VkPipelineDiscardRectangleStateCreateFlagBitsEXT {
3004//}
3005
Jesse Hall8c954d32018-01-17 22:06:20 -08003006@extension("VK_EXT_conservative_rasterization") // 102
3007type VkFlags VkPipelineRasterizationConservativeStateCreateFlagsEXT
3008//@extension("VK_EXT_conservative_rasterization") // 102
3009//bitfield VkPipelineRasterizationConservativeStateCreateFlagBitsEXT {
3010//}
3011
Jesse Hall9492f992017-08-28 12:10:06 -07003012@extension("VK_KHR_external_fence_capabilities") // 113
3013type VkFlags VkExternalFenceHandleTypeFlagsKHR
3014@extension("VK_KHR_external_fence_capabilities") // 113
3015bitfield VkExternalFenceHandleTypeFlagBitsKHR {
3016 VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = 0x00000001,
3017 VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = 0x00000002,
3018 VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = 0x00000004,
3019 VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT_KHR = 0x00000008,
3020}
3021
3022@extension("VK_KHR_external_fence_capabilities") // 113
3023type VkFlags VkExternalFenceFeatureFlagsKHR
3024@extension("VK_KHR_external_fence_capabilities") // 113
3025bitfield VkExternalFenceFeatureFlagBitsKHR {
3026 VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT_KHR = 0x00000001,
3027 VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT_KHR = 0x00000002,
3028}
3029
3030@extension("VK_KHR_external_fence") // 114
3031type VkFlags VkFenceImportFlagsKHR
3032@extension("VK_KHR_external_fence") // 114
3033bitfield VkFenceImportFlagBitsKHR {
3034 VK_FENCE_IMPORT_TEMPORARY_BIT_KHR = 0x00000001,
3035}
3036
Jesse Hallad250842017-03-10 18:35:38 -08003037@extension("VK_MVK_ios_surface") // 123
3038type VkFlags VkIOSSurfaceCreateFlagsMVK
3039//@extension("VK_MVK_ios_surface") // 123
3040//bitfield VkIOSSurfaceCreateFlagBitsMVK {
3041//}
3042
3043@extension("VK_MVK_macos_surface") // 124
3044type VkFlags VkMacOSSurfaceCreateFlagsMVK
3045//@extension("VK_MVK_macos_surface") // 124
3046//bitfield VkMacOSSurfaceCreateFlagBitsMVK {
3047//}
3048
Jesse Hall8c954d32018-01-17 22:06:20 -08003049@extension("VK_EXT_debug_utils") // 129
3050type VkFlags VkDebugUtilsMessengerCallbackDataFlagsEXT
3051//@extension("VK_EXT_debug_utils") // 129
3052//bitfield VkDebugUtilsMessengerCallbackDataFlagBitsEXT {
3053//}
3054
3055@extension("VK_EXT_debug_utils") // 129
3056type VkFlags VkDebugUtilsMessengerCreateFlagsEXT
3057//@extension("VK_EXT_debug_utils") // 129
3058//bitfield VkDebugUtilsMessengerCreateFlagBitsEXT {
3059//}
3060
3061@extension("VK_EXT_debug_utils") // 129
3062type VkFlags VkDebugUtilsMessageSeverityFlagsEXT
3063@extension("VK_EXT_debug_utils") // 129
3064bitfield VkDebugUtilsMessageSeverityFlagBitsEXT {
3065 VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT = 0x00000001,
3066 VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT = 0x00000010,
3067 VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT = 0x00000100,
3068 VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT = 0x00001000,
3069}
3070
3071@extension("VK_EXT_debug_utils") // 129
3072type VkFlags VkDebugUtilsMessageTypeFlagsEXT
3073@extension("VK_EXT_debug_utils") // 129
3074bitfield VkDebugUtilsMessageTypeFlagBitsEXT {
3075 VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT = 0x00000001,
3076 VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT = 0x00000002,
3077 VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT = 0x00000004,
3078}
3079
Jesse Hall7ba0ac72017-07-07 17:13:23 -07003080@extension("VK_NV_fragment_coverage_to_color") // 150
3081type VkFlags VkPipelineCoverageToColorStateCreateFlagsNV
3082@extension("VK_NV_fragment_coverage_to_color") // 150
3083//bitfield VkPipelineCoverageToColorStateCreateFlagBitsNV {
3084//}
3085
3086@extension("VK_NV_framebuffer_mixed_samples") // 153
3087type VkFlags VkPipelineCoverageModulationStateCreateFlagsNV
3088@extension("VK_NV_framebuffer_mixed_samples") // 153
3089//bitfield VkPipelineCoverageModulationStateCreateFlagBitsNV {
3090//}
3091
Jesse Hall77726222017-09-19 14:49:27 -05003092@extension("VK_EXT_validation_cache") // 161
3093type VkFlags VkValidationCacheCreateFlagsEXT
3094@extension("VK_EXT_validation_cache") // 161
3095//bitfield VkValidationCacheCreateFlagBitsEXT {
3096//}
3097
Jesse Hall72e6a132018-04-06 13:00:44 -07003098@extension("VK_EXT_descriptor_indexing") // 162
3099type VkFlags VkDescriptorBindingFlagsEXT
3100@extension("VK_EXT_descriptor_indexing") // 162
3101bitfield VkDescriptorBindingFlagBitsEXT {
3102 VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT_EXT = 0x00000001,
3103 VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT_EXT = 0x00000002,
3104 VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT_EXT = 0x00000004,
3105 VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT_EXT = 0x00000008,
3106}
3107
Jesse Halld27f6aa2015-08-15 17:58:48 -07003108//////////////////
3109// Structures //
3110//////////////////
3111
3112class VkOffset2D {
3113 s32 x
3114 s32 y
3115}
3116
3117class VkOffset3D {
3118 s32 x
3119 s32 y
3120 s32 z
3121}
3122
3123class VkExtent2D {
Jesse Hall3dd678a2016-01-08 21:52:01 -08003124 u32 width
3125 u32 height
Jesse Halld27f6aa2015-08-15 17:58:48 -07003126}
3127
3128class VkExtent3D {
Jesse Hall3dd678a2016-01-08 21:52:01 -08003129 u32 width
3130 u32 height
3131 u32 depth
Jesse Halld27f6aa2015-08-15 17:58:48 -07003132}
3133
3134class VkViewport {
Jesse Hall65ab5522015-11-30 00:07:16 -08003135 f32 x
3136 f32 y
Jesse Halld27f6aa2015-08-15 17:58:48 -07003137 f32 width
3138 f32 height
3139 f32 minDepth
3140 f32 maxDepth
3141}
3142
3143class VkRect2D {
3144 VkOffset2D offset
3145 VkExtent2D extent
3146}
3147
Jesse Halla15a4bf2015-11-19 22:48:02 -08003148class VkClearRect {
3149 VkRect2D rect
3150 u32 baseArrayLayer
Jesse Hall3fbc8562015-11-29 22:10:52 -08003151 u32 layerCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07003152}
3153
Jesse Hall65ab5522015-11-30 00:07:16 -08003154class VkComponentMapping {
3155 VkComponentSwizzle r
3156 VkComponentSwizzle g
3157 VkComponentSwizzle b
3158 VkComponentSwizzle a
Jesse Halld27f6aa2015-08-15 17:58:48 -07003159}
3160
3161class VkPhysicalDeviceProperties {
3162 u32 apiVersion
3163 u32 driverVersion
Jesse Hall65ab5522015-11-30 00:07:16 -08003164 u32 vendorID
3165 u32 deviceID
Jesse Halld27f6aa2015-08-15 17:58:48 -07003166 VkPhysicalDeviceType deviceType
Jesse Hall65ab5522015-11-30 00:07:16 -08003167 char[VK_MAX_PHYSICAL_DEVICE_NAME_SIZE] deviceName
3168 u8[VK_UUID_SIZE] pipelineCacheUUID
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003169 VkPhysicalDeviceLimits limits
3170 VkPhysicalDeviceSparseProperties sparseProperties
Jesse Halld27f6aa2015-08-15 17:58:48 -07003171}
3172
3173class VkExtensionProperties {
Jesse Hall65ab5522015-11-30 00:07:16 -08003174 char[VK_MAX_EXTENSION_NAME_SIZE] extensionName /// extension name
Jesse Halld27f6aa2015-08-15 17:58:48 -07003175 u32 specVersion /// version of the extension specification implemented
3176}
3177
3178class VkLayerProperties {
Jesse Hall65ab5522015-11-30 00:07:16 -08003179 char[VK_MAX_EXTENSION_NAME_SIZE] layerName /// layer name
Jesse Hall3fbc8562015-11-29 22:10:52 -08003180 u32 specVersion /// version of the layer specification implemented
3181 u32 implementationVersion /// build or release version of the layer's library
Jesse Hall65ab5522015-11-30 00:07:16 -08003182 char[VK_MAX_DESCRIPTION_SIZE] description /// Free-form description of the layer
Jesse Halld27f6aa2015-08-15 17:58:48 -07003183}
3184
Jesse Halla366a512015-11-19 22:30:07 -08003185class VkSubmitInfo {
Jesse Hall03b6fe12015-11-24 12:44:21 -08003186 VkStructureType sType /// Type of structure. Should be VK_STRUCTURE_TYPE_SUBMIT_INFO
3187 const void* pNext /// Next structure in chain
3188 u32 waitSemaphoreCount
Jesse Halla366a512015-11-19 22:30:07 -08003189 const VkSemaphore* pWaitSemaphores
Jesse Hall543a7ff2016-01-08 16:38:30 -08003190 const VkPipelineStageFlags* pWaitDstStageMask
Jesse Hall03b6fe12015-11-24 12:44:21 -08003191 u32 commandBufferCount
Jesse Hall3fbc8562015-11-29 22:10:52 -08003192 const VkCommandBuffer* pCommandBuffers
Jesse Hall03b6fe12015-11-24 12:44:21 -08003193 u32 signalSemaphoreCount
Jesse Halla366a512015-11-19 22:30:07 -08003194 const VkSemaphore* pSignalSemaphores
3195}
3196
Jesse Halld27f6aa2015-08-15 17:58:48 -07003197class VkApplicationInfo {
3198 VkStructureType sType /// Type of structure. Should be VK_STRUCTURE_TYPE_APPLICATION_INFO
3199 const void* pNext /// Next structure in chain
Jesse Hall3fbc8562015-11-29 22:10:52 -08003200 const char* pApplicationName
3201 u32 applicationVersion
Jesse Halld27f6aa2015-08-15 17:58:48 -07003202 const char* pEngineName
3203 u32 engineVersion
3204 u32 apiVersion
3205}
3206
Jesse Hall3fbc8562015-11-29 22:10:52 -08003207class VkAllocationCallbacks {
Jesse Halld27f6aa2015-08-15 17:58:48 -07003208 void* pUserData
Jesse Hall3fbc8562015-11-29 22:10:52 -08003209 PFN_vkAllocationFunction pfnAllocation
3210 PFN_vkReallocationFunction pfnReallocation
Jesse Halld27f6aa2015-08-15 17:58:48 -07003211 PFN_vkFreeFunction pfnFree
Jesse Hall3fbc8562015-11-29 22:10:52 -08003212 PFN_vkInternalAllocationNotification pfnInternalAllocation
Jesse Hall03b6fe12015-11-24 12:44:21 -08003213 PFN_vkInternalFreeNotification pfnInternalFree
Jesse Halld27f6aa2015-08-15 17:58:48 -07003214}
3215
3216class VkDeviceQueueCreateInfo {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003217 VkStructureType sStype /// Should be VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO
3218 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003219 VkDeviceQueueCreateFlags flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07003220 u32 queueFamilyIndex
Jesse Halldba27f72015-11-30 14:25:46 -08003221 u32 queueCount
Jesse Hallfbf97b02015-11-20 14:17:03 -08003222 const f32* pQueuePriorities
Jesse Halld27f6aa2015-08-15 17:58:48 -07003223}
3224
3225class VkDeviceCreateInfo {
3226 VkStructureType sType /// Should be VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO
3227 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003228 VkDeviceCreateFlags flags
Jesse Halldba27f72015-11-30 14:25:46 -08003229 u32 queueCreateInfoCount
3230 const VkDeviceQueueCreateInfo* pQueueCreateInfos
Jesse Hall3dd678a2016-01-08 21:52:01 -08003231 u32 enabledLayerCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07003232 const char* const* ppEnabledLayerNames /// Ordered list of layer names to be enabled
Jesse Hall3dd678a2016-01-08 21:52:01 -08003233 u32 enabledExtensionCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07003234 const char* const* ppEnabledExtensionNames
3235 const VkPhysicalDeviceFeatures* pEnabledFeatures
Jesse Halld27f6aa2015-08-15 17:58:48 -07003236}
3237
3238class VkInstanceCreateInfo {
3239 VkStructureType sType /// Should be VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO
3240 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003241 VkInstanceCreateFlags flags
Jesse Hall3fbc8562015-11-29 22:10:52 -08003242 const VkApplicationInfo* pApplicationInfo
Jesse Hall3dd678a2016-01-08 21:52:01 -08003243 u32 enabledLayerCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07003244 const char* const* ppEnabledLayerNames /// Ordered list of layer names to be enabled
Jesse Hall3dd678a2016-01-08 21:52:01 -08003245 u32 enabledExtensionCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07003246 const char* const* ppEnabledExtensionNames /// Extension names to be enabled
3247}
3248
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003249class VkQueueFamilyProperties {
Jesse Halld27f6aa2015-08-15 17:58:48 -07003250 VkQueueFlags queueFlags /// Queue flags
3251 u32 queueCount
Jesse Hallacfa5342015-11-19 21:51:33 -08003252 u32 timestampValidBits
Jesse Hall65ab5522015-11-30 00:07:16 -08003253 VkExtent3D minImageTransferGranularity
Jesse Halld27f6aa2015-08-15 17:58:48 -07003254}
3255
3256class VkPhysicalDeviceMemoryProperties {
3257 u32 memoryTypeCount
3258 VkMemoryType[VK_MAX_MEMORY_TYPES] memoryTypes
3259 u32 memoryHeapCount
3260 VkMemoryHeap[VK_MAX_MEMORY_HEAPS] memoryHeaps
3261}
3262
Jesse Hall3fbc8562015-11-29 22:10:52 -08003263class VkMemoryAllocateInfo {
Jesse Hallf4ab2b12015-11-30 16:04:55 -08003264 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO
Jesse Halld27f6aa2015-08-15 17:58:48 -07003265 const void* pNext /// Pointer to next structure
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003266 VkDeviceSize allocationSize /// Size of memory allocation
Jesse Halld27f6aa2015-08-15 17:58:48 -07003267 u32 memoryTypeIndex /// Index of the of the memory type to allocate from
3268}
3269
3270class VkMemoryRequirements {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003271 VkDeviceSize size /// Specified in bytes
3272 VkDeviceSize alignment /// Specified in bytes
Jesse Halld27f6aa2015-08-15 17:58:48 -07003273 u32 memoryTypeBits /// Bitfield of the allowed memory type indices into memoryTypes[] for this object
3274}
3275
3276class VkSparseImageFormatProperties {
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08003277 VkImageAspectFlagBits aspectMask
Jesse Halld27f6aa2015-08-15 17:58:48 -07003278 VkExtent3D imageGranularity
3279 VkSparseImageFormatFlags flags
3280}
3281
3282class VkSparseImageMemoryRequirements {
Jesse Hallb00daad2015-11-29 19:46:20 -08003283 VkSparseImageFormatProperties formatProperties
Jesse Hallf9fa9a52016-01-08 16:08:51 -08003284 u32 imageMipTailFirstLod
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003285 VkDeviceSize imageMipTailSize /// Specified in bytes, must be a multiple of image block size / alignment
3286 VkDeviceSize imageMipTailOffset /// Specified in bytes, must be a multiple of image block size / alignment
3287 VkDeviceSize imageMipTailStride /// Specified in bytes, must be a multiple of image block size / alignment
Jesse Halld27f6aa2015-08-15 17:58:48 -07003288}
3289
3290class VkMemoryType {
3291 VkMemoryPropertyFlags propertyFlags /// Memory properties of this memory type
3292 u32 heapIndex /// Index of the memory heap allocations of this memory type are taken from
3293}
3294
3295class VkMemoryHeap {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003296 VkDeviceSize size /// Available memory in the heap
Jesse Halld27f6aa2015-08-15 17:58:48 -07003297 VkMemoryHeapFlags flags /// Flags for the heap
3298}
3299
3300class VkMappedMemoryRange {
3301 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE
3302 const void* pNext /// Pointer to next structure
Jesse Hall3fbc8562015-11-29 22:10:52 -08003303 VkDeviceMemory memory /// Mapped memory object
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003304 VkDeviceSize offset /// Offset within the mapped memory the range starts from
3305 VkDeviceSize size /// Size of the range within the mapped memory
Jesse Halld27f6aa2015-08-15 17:58:48 -07003306}
3307
3308class VkFormatProperties {
3309 VkFormatFeatureFlags linearTilingFeatures /// Format features in case of linear tiling
3310 VkFormatFeatureFlags optimalTilingFeatures /// Format features in case of optimal tiling
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003311 VkFormatFeatureFlags bufferFeatures /// Format features supported by buffers
Jesse Halld27f6aa2015-08-15 17:58:48 -07003312}
3313
3314class VkImageFormatProperties {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003315 VkExtent3D maxExtent /// max image dimensions for this resource type
3316 u32 maxMipLevels /// max number of mipmap levels for this resource type
Jesse Halla15a4bf2015-11-19 22:48:02 -08003317 u32 maxArrayLayers /// max array layers for this resource type
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003318 VkSampleCountFlags sampleCounts /// supported sample counts for this resource type
3319 VkDeviceSize maxResourceSize /// max size (in bytes) of this resource type
3320}
3321
Jesse Halla15a4bf2015-11-19 22:48:02 -08003322class VkDescriptorImageInfo {
3323 VkSampler sampler
3324 VkImageView imageView
3325 VkImageLayout imageLayout
3326}
3327
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003328class VkDescriptorBufferInfo {
3329 VkBuffer buffer /// Buffer used for this descriptor when the descriptor is UNIFORM_BUFFER[_DYNAMIC]
3330 VkDeviceSize offset /// Base offset from buffer start in bytes to update in the descriptor set.
3331 VkDeviceSize range /// Size in bytes of the buffer resource for this descriptor update.
Jesse Halld27f6aa2015-08-15 17:58:48 -07003332}
3333
Jesse Halld27f6aa2015-08-15 17:58:48 -07003334class VkWriteDescriptorSet {
3335 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET
3336 const void* pNext /// Pointer to next structure
Jesse Hall3fbc8562015-11-29 22:10:52 -08003337 VkDescriptorSet dstSet /// Destination descriptor set
3338 u32 dstBinding /// Binding within the destination descriptor set to write
3339 u32 dstArrayElement /// Array element within the destination binding to write
Jesse Hall03b6fe12015-11-24 12:44:21 -08003340 u32 descriptorCount /// Number of descriptors to write (determines the size of the array pointed by <pDescriptors>)
Jesse Halld27f6aa2015-08-15 17:58:48 -07003341 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 -08003342 const VkDescriptorImageInfo* pImageInfo
3343 const VkDescriptorBufferInfo* pBufferInfo
3344 const VkBufferView* pTexelBufferView
Jesse Halld27f6aa2015-08-15 17:58:48 -07003345}
3346
3347class VkCopyDescriptorSet {
3348 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET
3349 const void* pNext /// Pointer to next structure
3350 VkDescriptorSet srcSet /// Source descriptor set
3351 u32 srcBinding /// Binding within the source descriptor set to copy from
3352 u32 srcArrayElement /// Array element within the source binding to copy from
Jesse Hall3fbc8562015-11-29 22:10:52 -08003353 VkDescriptorSet dstSet /// Destination descriptor set
3354 u32 dstBinding /// Binding within the destination descriptor set to copy to
3355 u32 dstArrayElement /// Array element within the destination binding to copy to
Jesse Hall03b6fe12015-11-24 12:44:21 -08003356 u32 descriptorCount /// Number of descriptors to copy
Jesse Halld27f6aa2015-08-15 17:58:48 -07003357}
3358
3359class VkBufferCreateInfo {
3360 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO
3361 const void* pNext /// Pointer to next structure.
Jesse Halla6429252015-11-29 18:59:42 -08003362 VkBufferCreateFlags flags /// Buffer creation flags
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003363 VkDeviceSize size /// Specified in bytes
Jesse Halld27f6aa2015-08-15 17:58:48 -07003364 VkBufferUsageFlags usage /// Buffer usage flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07003365 VkSharingMode sharingMode
Jesse Hall03b6fe12015-11-24 12:44:21 -08003366 u32 queueFamilyIndexCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07003367 const u32* pQueueFamilyIndices
3368}
3369
3370class VkBufferViewCreateInfo {
3371 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO
3372 const void* pNext /// Pointer to next structure.
Jesse Halla6429252015-11-29 18:59:42 -08003373 VkBufferViewCreateFlags flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07003374 VkBuffer buffer
Jesse Halld27f6aa2015-08-15 17:58:48 -07003375 VkFormat format /// Optionally specifies format of elements
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003376 VkDeviceSize offset /// Specified in bytes
3377 VkDeviceSize range /// View size specified in bytes
Jesse Halld27f6aa2015-08-15 17:58:48 -07003378}
3379
3380class VkImageSubresource {
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08003381 VkImageAspectFlagBits aspectMask
Jesse Halld27f6aa2015-08-15 17:58:48 -07003382 u32 mipLevel
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003383 u32 arrayLayer
Jesse Halld27f6aa2015-08-15 17:58:48 -07003384}
3385
3386class VkImageSubresourceRange {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003387 VkImageAspectFlags aspectMask
Jesse Halld27f6aa2015-08-15 17:58:48 -07003388 u32 baseMipLevel
Jesse Hall3fbc8562015-11-29 22:10:52 -08003389 u32 levelCount
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003390 u32 baseArrayLayer
Jesse Hall3fbc8562015-11-29 22:10:52 -08003391 u32 layerCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07003392}
3393
3394class VkMemoryBarrier {
3395 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_MEMORY_BARRIER
3396 const void* pNext /// Pointer to next structure.
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08003397 VkAccessFlags srcAccessMask
3398 VkAccessFlags dstAccessMask
Jesse Halld27f6aa2015-08-15 17:58:48 -07003399}
3400
3401class VkBufferMemoryBarrier {
3402 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER
3403 const void* pNext /// Pointer to next structure.
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08003404 VkAccessFlags srcAccessMask
3405 VkAccessFlags dstAccessMask
Jesse Halld27f6aa2015-08-15 17:58:48 -07003406 u32 srcQueueFamilyIndex /// Queue family to transition ownership from
Jesse Hall3fbc8562015-11-29 22:10:52 -08003407 u32 dstQueueFamilyIndex /// Queue family to transition ownership to
Jesse Halld27f6aa2015-08-15 17:58:48 -07003408 VkBuffer buffer /// Buffer to sync
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003409 VkDeviceSize offset /// Offset within the buffer to sync
3410 VkDeviceSize size /// Amount of bytes to sync
Jesse Halld27f6aa2015-08-15 17:58:48 -07003411}
3412
3413class VkImageMemoryBarrier {
3414 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER
3415 const void* pNext /// Pointer to next structure.
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08003416 VkAccessFlags srcAccessMask
3417 VkAccessFlags dstAccessMask
Jesse Halld27f6aa2015-08-15 17:58:48 -07003418 VkImageLayout oldLayout /// Current layout of the image
3419 VkImageLayout newLayout /// New layout to transition the image to
3420 u32 srcQueueFamilyIndex /// Queue family to transition ownership from
Jesse Hall3fbc8562015-11-29 22:10:52 -08003421 u32 dstQueueFamilyIndex /// Queue family to transition ownership to
Jesse Halld27f6aa2015-08-15 17:58:48 -07003422 VkImage image /// Image to sync
3423 VkImageSubresourceRange subresourceRange /// Subresource range to sync
3424}
3425
3426class VkImageCreateInfo {
3427 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO
3428 const void* pNext /// Pointer to next structure.
Jesse Halla6429252015-11-29 18:59:42 -08003429 VkImageCreateFlags flags /// Image creation flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07003430 VkImageType imageType
3431 VkFormat format
3432 VkExtent3D extent
3433 u32 mipLevels
Jesse Halla15a4bf2015-11-19 22:48:02 -08003434 u32 arrayLayers
Jesse Hall091ed9e2015-11-30 00:55:29 -08003435 VkSampleCountFlagBits samples
Jesse Halld27f6aa2015-08-15 17:58:48 -07003436 VkImageTiling tiling
3437 VkImageUsageFlags usage /// Image usage flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07003438 VkSharingMode sharingMode /// Cross-queue-family sharing mode
Jesse Hall03b6fe12015-11-24 12:44:21 -08003439 u32 queueFamilyIndexCount /// Number of queue families to share across
Jesse Halld27f6aa2015-08-15 17:58:48 -07003440 const u32* pQueueFamilyIndices /// Array of queue family indices to share across
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003441 VkImageLayout initialLayout /// Initial image layout for all subresources
Jesse Halld27f6aa2015-08-15 17:58:48 -07003442}
3443
3444class VkSubresourceLayout {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003445 VkDeviceSize offset /// Specified in bytes
3446 VkDeviceSize size /// Specified in bytes
3447 VkDeviceSize rowPitch /// Specified in bytes
Jesse Hall543a7ff2016-01-08 16:38:30 -08003448 VkDeviceSize arrayPitch /// Specified in bytes
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003449 VkDeviceSize depthPitch /// Specified in bytes
Jesse Halld27f6aa2015-08-15 17:58:48 -07003450}
3451
3452class VkImageViewCreateInfo {
3453 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO
3454 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003455 VkImageViewCreateFlags flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07003456 VkImage image
3457 VkImageViewType viewType
3458 VkFormat format
Jesse Hall65ab5522015-11-30 00:07:16 -08003459 VkComponentMapping components
Jesse Halld27f6aa2015-08-15 17:58:48 -07003460 VkImageSubresourceRange subresourceRange
Jesse Halld27f6aa2015-08-15 17:58:48 -07003461}
3462
3463class VkBufferCopy {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003464 VkDeviceSize srcOffset /// Specified in bytes
Jesse Hall3fbc8562015-11-29 22:10:52 -08003465 VkDeviceSize dstOffset /// Specified in bytes
Jesse Hallb00daad2015-11-29 19:46:20 -08003466 VkDeviceSize size /// Specified in bytes
Jesse Halld27f6aa2015-08-15 17:58:48 -07003467}
3468
Jesse Halla6429252015-11-29 18:59:42 -08003469class VkSparseMemoryBind {
Jesse Hallb00daad2015-11-29 19:46:20 -08003470 VkDeviceSize resourceOffset /// Specified in bytes
3471 VkDeviceSize size /// Specified in bytes
Jesse Hall3fbc8562015-11-29 22:10:52 -08003472 VkDeviceMemory memory
3473 VkDeviceSize memoryOffset /// Specified in bytes
Jesse Halld27f6aa2015-08-15 17:58:48 -07003474 VkSparseMemoryBindFlags flags
3475}
3476
Jesse Halla6429252015-11-29 18:59:42 -08003477class VkSparseImageMemoryBind {
Jesse Halld27f6aa2015-08-15 17:58:48 -07003478 VkImageSubresource subresource
3479 VkOffset3D offset
3480 VkExtent3D extent
Jesse Hall3fbc8562015-11-29 22:10:52 -08003481 VkDeviceMemory memory
3482 VkDeviceSize memoryOffset /// Specified in bytes
Jesse Halld27f6aa2015-08-15 17:58:48 -07003483 VkSparseMemoryBindFlags flags
3484}
3485
Jesse Halla6429252015-11-29 18:59:42 -08003486class VkSparseBufferMemoryBindInfo {
3487 VkBuffer buffer
3488 u32 bindCount
3489 const VkSparseMemoryBind* pBinds
3490}
3491
3492class VkSparseImageOpaqueMemoryBindInfo {
3493 VkImage image
3494 u32 bindCount
3495 const VkSparseMemoryBind* pBinds
3496}
3497
3498class VkSparseImageMemoryBindInfo {
3499 VkImage image
3500 u32 bindCount
3501 const VkSparseMemoryBind* pBinds
3502}
3503
3504class VkBindSparseInfo {
3505 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_BIND_SPARSE_INFO
3506 const void* pNext
3507 u32 waitSemaphoreCount
3508 const VkSemaphore* pWaitSemaphores
3509 u32 numBufferBinds
3510 const VkSparseBufferMemoryBindInfo* pBufferBinds
3511 u32 numImageOpaqueBinds
3512 const VkSparseImageOpaqueMemoryBindInfo* pImageOpaqueBinds
3513 u32 numImageBinds
3514 const VkSparseImageMemoryBindInfo* pImageBinds
3515 u32 signalSemaphoreCount
3516 const VkSemaphore* pSignalSemaphores
3517}
3518
Jesse Hall65ab5522015-11-30 00:07:16 -08003519class VkImageSubresourceLayers {
3520 VkImageAspectFlags aspectMask
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003521 u32 mipLevel
Jesse Halla15a4bf2015-11-19 22:48:02 -08003522 u32 baseArrayLayer
Jesse Hall3fbc8562015-11-29 22:10:52 -08003523 u32 layerCount
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003524}
3525
Jesse Halld27f6aa2015-08-15 17:58:48 -07003526class VkImageCopy {
Jesse Hall65ab5522015-11-30 00:07:16 -08003527 VkImageSubresourceLayers srcSubresource
Jesse Halld27f6aa2015-08-15 17:58:48 -07003528 VkOffset3D srcOffset /// Specified in pixels for both compressed and uncompressed images
Jesse Hall65ab5522015-11-30 00:07:16 -08003529 VkImageSubresourceLayers dstSubresource
Jesse Hall3fbc8562015-11-29 22:10:52 -08003530 VkOffset3D dstOffset /// Specified in pixels for both compressed and uncompressed images
Jesse Halld27f6aa2015-08-15 17:58:48 -07003531 VkExtent3D extent /// Specified in pixels for both compressed and uncompressed images
3532}
3533
3534class VkImageBlit {
Jesse Hall65ab5522015-11-30 00:07:16 -08003535 VkImageSubresourceLayers srcSubresource
Jesse Hall3dd678a2016-01-08 21:52:01 -08003536 VkOffset3D[2] srcOffsets
Jesse Hall65ab5522015-11-30 00:07:16 -08003537 VkImageSubresourceLayers dstSubresource
Jesse Hall3dd678a2016-01-08 21:52:01 -08003538 VkOffset3D[2] dstOffsets
Jesse Halld27f6aa2015-08-15 17:58:48 -07003539}
3540
3541class VkBufferImageCopy {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003542 VkDeviceSize bufferOffset /// Specified in bytes
Jesse Halld27f6aa2015-08-15 17:58:48 -07003543 u32 bufferRowLength /// Specified in texels
3544 u32 bufferImageHeight
Jesse Hall65ab5522015-11-30 00:07:16 -08003545 VkImageSubresourceLayers imageSubresource
Jesse Halld27f6aa2015-08-15 17:58:48 -07003546 VkOffset3D imageOffset /// Specified in pixels for both compressed and uncompressed images
3547 VkExtent3D imageExtent /// Specified in pixels for both compressed and uncompressed images
3548}
3549
3550class VkImageResolve {
Jesse Hall65ab5522015-11-30 00:07:16 -08003551 VkImageSubresourceLayers srcSubresource
Jesse Halld27f6aa2015-08-15 17:58:48 -07003552 VkOffset3D srcOffset
Jesse Hall65ab5522015-11-30 00:07:16 -08003553 VkImageSubresourceLayers dstSubresource
Jesse Hall3fbc8562015-11-29 22:10:52 -08003554 VkOffset3D dstOffset
Jesse Halld27f6aa2015-08-15 17:58:48 -07003555 VkExtent3D extent
3556}
3557
3558class VkShaderModuleCreateInfo {
3559 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO
3560 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003561 VkShaderModuleCreateFlags flags /// Reserved
Jesse Halld27f6aa2015-08-15 17:58:48 -07003562 platform.size_t codeSize /// Specified in bytes
Jesse Halla9bb62b2015-11-21 19:31:56 -08003563 const u32* pCode /// Binary code of size codeSize
Jesse Halld27f6aa2015-08-15 17:58:48 -07003564}
3565
Jesse Halld27f6aa2015-08-15 17:58:48 -07003566class VkDescriptorSetLayoutBinding {
Jesse Hall091ed9e2015-11-30 00:55:29 -08003567 u32 binding
Jesse Halld27f6aa2015-08-15 17:58:48 -07003568 VkDescriptorType descriptorType /// Type of the descriptors in this binding
Jesse Halldba27f72015-11-30 14:25:46 -08003569 u32 descriptorCount /// Number of descriptors in this binding
Jesse Halld27f6aa2015-08-15 17:58:48 -07003570 VkShaderStageFlags stageFlags /// Shader stages this binding is visible to
3571 const VkSampler* pImmutableSamplers /// Immutable samplers (used if descriptor type is SAMPLER or COMBINED_IMAGE_SAMPLER, is either NULL or contains <count> number of elements)
3572}
3573
3574class VkDescriptorSetLayoutCreateInfo {
3575 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO
3576 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003577 VkDescriptorSetLayoutCreateFlags flags
Jesse Hall03b6fe12015-11-24 12:44:21 -08003578 u32 bindingCount /// Number of bindings in the descriptor set layout
Jesse Hall543a7ff2016-01-08 16:38:30 -08003579 const VkDescriptorSetLayoutBinding* pBindings /// Array of descriptor set layout bindings
Jesse Halld27f6aa2015-08-15 17:58:48 -07003580}
3581
Jesse Hall65ab5522015-11-30 00:07:16 -08003582class VkDescriptorPoolSize {
Jesse Halld27f6aa2015-08-15 17:58:48 -07003583 VkDescriptorType type
Jesse Hall03b6fe12015-11-24 12:44:21 -08003584 u32 descriptorCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07003585}
3586
3587class VkDescriptorPoolCreateInfo {
3588 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO
3589 const void* pNext /// Pointer to next structure
Jesse Hallfbf97b02015-11-20 14:17:03 -08003590 VkDescriptorPoolCreateFlags flags
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003591 u32 maxSets
Jesse Hall65ab5522015-11-30 00:07:16 -08003592 u32 poolSizeCount
3593 const VkDescriptorPoolSize* pPoolSizes
Jesse Halld27f6aa2015-08-15 17:58:48 -07003594}
3595
Jesse Hall3fbc8562015-11-29 22:10:52 -08003596class VkDescriptorSetAllocateInfo {
Jesse Hallf4ab2b12015-11-30 16:04:55 -08003597 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO
Jesse Hallfbf97b02015-11-20 14:17:03 -08003598 const void* pNext /// Pointer to next structure
3599 VkDescriptorPool descriptorPool
Jesse Hall03b6fe12015-11-24 12:44:21 -08003600 u32 setCount
Jesse Hallfbf97b02015-11-20 14:17:03 -08003601 const VkDescriptorSetLayout* pSetLayouts
3602}
3603
Jesse Halld27f6aa2015-08-15 17:58:48 -07003604class VkSpecializationMapEntry {
Jesse Hall65ab5522015-11-30 00:07:16 -08003605 u32 constantID /// The SpecConstant ID specified in the BIL
Jesse Halld27f6aa2015-08-15 17:58:48 -07003606 u32 offset /// Offset of the value in the data block
Jesse Hallb00daad2015-11-29 19:46:20 -08003607 platform.size_t size /// Size in bytes of the SpecConstant
Jesse Halld27f6aa2015-08-15 17:58:48 -07003608}
3609
3610class VkSpecializationInfo {
3611 u32 mapEntryCount /// Number of entries in the map
Jesse Hallb00daad2015-11-29 19:46:20 -08003612 const VkSpecializationMapEntry* pMapEntries /// Array of map entries
Jesse Halld27f6aa2015-08-15 17:58:48 -07003613 platform.size_t dataSize /// Size in bytes of pData
3614 const void* pData /// Pointer to SpecConstant data
3615}
3616
3617class VkPipelineShaderStageCreateInfo {
3618 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO
3619 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003620 VkPipelineShaderStageCreateFlags flags
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08003621 VkShaderStageFlagBits stage
3622 VkShaderModule module
3623 const char* pName
Jesse Halld27f6aa2015-08-15 17:58:48 -07003624 const VkSpecializationInfo* pSpecializationInfo
3625}
3626
3627class VkComputePipelineCreateInfo {
3628 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO
3629 const void* pNext /// Pointer to next structure
Jesse Halld27f6aa2015-08-15 17:58:48 -07003630 VkPipelineCreateFlags flags /// Pipeline creation flags
Jesse Halla6429252015-11-29 18:59:42 -08003631 VkPipelineShaderStageCreateInfo stage
Jesse Halld27f6aa2015-08-15 17:58:48 -07003632 VkPipelineLayout layout /// Interface layout of the pipeline
3633 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
3634 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
3635}
3636
3637class VkVertexInputBindingDescription {
Jesse Hallb00daad2015-11-29 19:46:20 -08003638 u32 binding /// Vertex buffer binding id
3639 u32 stride /// Distance between vertices in bytes (0 = no advancement)
Jesse Hall65ab5522015-11-30 00:07:16 -08003640 VkVertexInputRate inputRate /// Rate at which binding is incremented
Jesse Halld27f6aa2015-08-15 17:58:48 -07003641}
3642
3643class VkVertexInputAttributeDescription {
Jesse Hallb00daad2015-11-29 19:46:20 -08003644 u32 location /// location of the shader vertex attrib
3645 u32 binding /// Vertex buffer binding id
3646 VkFormat format /// format of source data
3647 u32 offset /// Offset of first element in bytes from base of vertex
Jesse Halld27f6aa2015-08-15 17:58:48 -07003648}
3649
3650class VkPipelineVertexInputStateCreateInfo {
Jesse Hall03b6fe12015-11-24 12:44:21 -08003651 VkStructureType sType /// Should be VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO
3652 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003653 VkPipelineVertexInputStateCreateFlags flags
Jesse Hall03b6fe12015-11-24 12:44:21 -08003654 u32 vertexBindingDescriptionCount /// number of bindings
Jesse Halld27f6aa2015-08-15 17:58:48 -07003655 const VkVertexInputBindingDescription* pVertexBindingDescriptions
Jesse Hall03b6fe12015-11-24 12:44:21 -08003656 u32 vertexAttributeDescriptionCount /// number of attributes
Jesse Halld27f6aa2015-08-15 17:58:48 -07003657 const VkVertexInputAttributeDescription* pVertexAttributeDescriptions
3658}
3659
3660class VkPipelineInputAssemblyStateCreateInfo {
3661 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO
3662 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003663 VkPipelineInputAssemblyStateCreateFlags flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07003664 VkPrimitiveTopology topology
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003665 VkBool32 primitiveRestartEnable
Jesse Halld27f6aa2015-08-15 17:58:48 -07003666}
3667
3668class VkPipelineTessellationStateCreateInfo {
3669 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO
3670 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003671 VkPipelineTessellationStateCreateFlags flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07003672 u32 patchControlPoints
3673}
3674
3675class VkPipelineViewportStateCreateInfo {
3676 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO
3677 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003678 VkPipelineViewportStateCreateFlags flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07003679 u32 viewportCount
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003680 const VkViewport* pViewports
3681 u32 scissorCount
3682 const VkRect2D* pScissors
Jesse Halld27f6aa2015-08-15 17:58:48 -07003683}
3684
Jesse Hall3fbc8562015-11-29 22:10:52 -08003685class VkPipelineRasterizationStateCreateInfo {
Jesse Hall65ab5522015-11-30 00:07:16 -08003686 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO
Jesse Halld27f6aa2015-08-15 17:58:48 -07003687 const void* pNext /// Pointer to next structure
Jesse Hall3fbc8562015-11-29 22:10:52 -08003688 VkPipelineRasterizationStateCreateFlags flags
Jesse Hallae38f732015-11-19 21:32:50 -08003689 VkBool32 depthClampEnable
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003690 VkBool32 rasterizerDiscardEnable
Jesse Hall65ab5522015-11-30 00:07:16 -08003691 VkPolygonMode polygonMode /// optional (GL45)
Jesse Hallc7467b72015-11-29 21:05:26 -08003692 VkCullModeFlags cullMode
Jesse Halld27f6aa2015-08-15 17:58:48 -07003693 VkFrontFace frontFace
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003694 VkBool32 depthBiasEnable
Jesse Halla9bb62b2015-11-21 19:31:56 -08003695 f32 depthBiasConstantFactor
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003696 f32 depthBiasClamp
Jesse Halla9bb62b2015-11-21 19:31:56 -08003697 f32 depthBiasSlopeFactor
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003698 f32 lineWidth
Jesse Halld27f6aa2015-08-15 17:58:48 -07003699}
3700
3701class VkPipelineMultisampleStateCreateInfo {
3702 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO
3703 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003704 VkPipelineMultisampleStateCreateFlags flags
Jesse Hall091ed9e2015-11-30 00:55:29 -08003705 VkSampleCountFlagBits rasterizationSamples /// Number of samples used for rasterization
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003706 VkBool32 sampleShadingEnable /// optional (GL45)
Jesse Halld27f6aa2015-08-15 17:58:48 -07003707 f32 minSampleShading /// optional (GL45)
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003708 const VkSampleMask* pSampleMask
Jesse Hallacfa5342015-11-19 21:51:33 -08003709 VkBool32 alphaToCoverageEnable
3710 VkBool32 alphaToOneEnable
Jesse Halld27f6aa2015-08-15 17:58:48 -07003711}
3712
3713class VkPipelineColorBlendAttachmentState {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003714 VkBool32 blendEnable
Jesse Hall65ab5522015-11-30 00:07:16 -08003715 VkBlendFactor srcColorBlendFactor
3716 VkBlendFactor dstColorBlendFactor
3717 VkBlendOp colorBlendOp
3718 VkBlendFactor srcAlphaBlendFactor
3719 VkBlendFactor dstAlphaBlendFactor
3720 VkBlendOp alphaBlendOp
3721 VkColorComponentFlags colorWriteMask
Jesse Halld27f6aa2015-08-15 17:58:48 -07003722}
3723
3724class VkPipelineColorBlendStateCreateInfo {
3725 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO
3726 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003727 VkPipelineColorBlendStateCreateFlags flags
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003728 VkBool32 logicOpEnable
Jesse Halld27f6aa2015-08-15 17:58:48 -07003729 VkLogicOp logicOp
3730 u32 attachmentCount /// # of pAttachments
3731 const VkPipelineColorBlendAttachmentState* pAttachments
Jesse Hallb00daad2015-11-29 19:46:20 -08003732 f32[4] blendConstants
Jesse Halld27f6aa2015-08-15 17:58:48 -07003733}
3734
3735class VkStencilOpState {
Jesse Hall65ab5522015-11-30 00:07:16 -08003736 VkStencilOp failOp
3737 VkStencilOp passOp
3738 VkStencilOp depthFailOp
3739 VkCompareOp compareOp
3740 u32 compareMask
3741 u32 writeMask
3742 u32 reference
Jesse Halld27f6aa2015-08-15 17:58:48 -07003743}
3744
3745class VkPipelineDepthStencilStateCreateInfo {
3746 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO
3747 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003748 VkPipelineDepthStencilStateCreateFlags flags
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003749 VkBool32 depthTestEnable
3750 VkBool32 depthWriteEnable
Jesse Halld27f6aa2015-08-15 17:58:48 -07003751 VkCompareOp depthCompareOp
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003752 VkBool32 depthBoundsTestEnable /// optional (depth_bounds_test)
3753 VkBool32 stencilTestEnable
Jesse Halld27f6aa2015-08-15 17:58:48 -07003754 VkStencilOpState front
3755 VkStencilOpState back
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003756 f32 minDepthBounds
3757 f32 maxDepthBounds
3758}
3759
3760class VkPipelineDynamicStateCreateInfo {
3761 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO
3762 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003763 VkPipelineDynamicStateCreateFlags flags
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003764 u32 dynamicStateCount
3765 const VkDynamicState* pDynamicStates
Jesse Halld27f6aa2015-08-15 17:58:48 -07003766}
3767
3768class VkGraphicsPipelineCreateInfo {
Jesse Halla6429252015-11-29 18:59:42 -08003769 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO
3770 const void* pNext /// Pointer to next structure
3771 VkPipelineCreateFlags flags /// Pipeline creation flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07003772 u32 stageCount
Jesse Halla6429252015-11-29 18:59:42 -08003773 const VkPipelineShaderStageCreateInfo* pStages /// One entry for each active shader stage
Jesse Halld27f6aa2015-08-15 17:58:48 -07003774 const VkPipelineVertexInputStateCreateInfo* pVertexInputState
3775 const VkPipelineInputAssemblyStateCreateInfo* pInputAssemblyState
3776 const VkPipelineTessellationStateCreateInfo* pTessellationState
3777 const VkPipelineViewportStateCreateInfo* pViewportState
Jesse Hall3fbc8562015-11-29 22:10:52 -08003778 const VkPipelineRasterizationStateCreateInfo* pRasterizationState
Jesse Halld27f6aa2015-08-15 17:58:48 -07003779 const VkPipelineMultisampleStateCreateInfo* pMultisampleState
3780 const VkPipelineDepthStencilStateCreateInfo* pDepthStencilState
3781 const VkPipelineColorBlendStateCreateInfo* pColorBlendState
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003782 const VkPipelineDynamicStateCreateInfo* pDynamicState
Jesse Halla6429252015-11-29 18:59:42 -08003783 VkPipelineLayout layout /// Interface layout of the pipeline
Jesse Halld27f6aa2015-08-15 17:58:48 -07003784 VkRenderPass renderPass
3785 u32 subpass
Jesse Halla6429252015-11-29 18:59:42 -08003786 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
3787 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 -07003788}
3789
3790class VkPipelineCacheCreateInfo {
Jesse Hallb00daad2015-11-29 19:46:20 -08003791 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO
3792 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003793 VkPipelineCacheCreateFlags flags
Jesse Hallb00daad2015-11-29 19:46:20 -08003794 platform.size_t initialDataSize /// Size of initial data to populate cache, in bytes
3795 const void* pInitialData /// Initial data to populate cache
Jesse Halld27f6aa2015-08-15 17:58:48 -07003796}
3797
3798class VkPushConstantRange {
3799 VkShaderStageFlags stageFlags /// Which stages use the range
Jesse Hall03b6fe12015-11-24 12:44:21 -08003800 u32 offset /// Start of the range, in bytes
3801 u32 size /// Length of the range, in bytes
Jesse Halld27f6aa2015-08-15 17:58:48 -07003802}
3803
3804class VkPipelineLayoutCreateInfo {
3805 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO
3806 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003807 VkPipelineLayoutCreateFlags flags
Jesse Hall3dd678a2016-01-08 21:52:01 -08003808 u32 descriptorSetCount /// Number of descriptor sets interfaced by the pipeline
Jesse Halld27f6aa2015-08-15 17:58:48 -07003809 const VkDescriptorSetLayout* pSetLayouts /// Array of <setCount> number of descriptor set layout objects defining the layout of the
3810 u32 pushConstantRangeCount /// Number of push-constant ranges used by the pipeline
3811 const VkPushConstantRange* pPushConstantRanges /// Array of pushConstantRangeCount number of ranges used by various shader stages
3812}
3813
3814class VkSamplerCreateInfo {
3815 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO
3816 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003817 VkSamplerCreateFlags flags
Jesse Hall23ff73f2015-11-29 14:36:39 -08003818 VkFilter magFilter /// Filter mode for magnification
3819 VkFilter minFilter /// Filter mode for minifiation
3820 VkSamplerMipmapMode mipmapMode /// Mipmap selection mode
3821 VkSamplerAddressMode addressModeU
3822 VkSamplerAddressMode addressModeV
3823 VkSamplerAddressMode addressModeW
Jesse Halld27f6aa2015-08-15 17:58:48 -07003824 f32 mipLodBias
Jesse Hallf9fa9a52016-01-08 16:08:51 -08003825 VkBool32 anisotropyEnable
Jesse Halld27f6aa2015-08-15 17:58:48 -07003826 f32 maxAnisotropy
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003827 VkBool32 compareEnable
Jesse Halld27f6aa2015-08-15 17:58:48 -07003828 VkCompareOp compareOp
3829 f32 minLod
3830 f32 maxLod
3831 VkBorderColor borderColor
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003832 VkBool32 unnormalizedCoordinates
Jesse Halld27f6aa2015-08-15 17:58:48 -07003833}
3834
Jesse Hall3fbc8562015-11-29 22:10:52 -08003835class VkCommandPoolCreateInfo {
3836 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO
Jesse Halld27f6aa2015-08-15 17:58:48 -07003837 const void* pNext /// Pointer to next structure
Jesse Hall3fbc8562015-11-29 22:10:52 -08003838 VkCommandPoolCreateFlags flags /// Command pool creation flags
Jesse Halla6429252015-11-29 18:59:42 -08003839 u32 queueFamilyIndex
Jesse Halld27f6aa2015-08-15 17:58:48 -07003840}
3841
Jesse Hall3fbc8562015-11-29 22:10:52 -08003842class VkCommandBufferAllocateInfo {
Jesse Hallf4ab2b12015-11-30 16:04:55 -08003843 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO
Jesse Halld27f6aa2015-08-15 17:58:48 -07003844 const void* pNext /// Pointer to next structure
Jesse Hall3fbc8562015-11-29 22:10:52 -08003845 VkCommandPool commandPool
3846 VkCommandBufferLevel level
Jesse Hall3dd678a2016-01-08 21:52:01 -08003847 u32 commandBufferCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07003848}
3849
Jesse Hall3dd678a2016-01-08 21:52:01 -08003850class VkCommandBufferInheritanceInfo {
3851 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO
Jesse Halld27f6aa2015-08-15 17:58:48 -07003852 const void* pNext /// Pointer to next structure
Jesse Halld27f6aa2015-08-15 17:58:48 -07003853 VkRenderPass renderPass /// Render pass for secondary command buffers
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003854 u32 subpass
Jesse Halld27f6aa2015-08-15 17:58:48 -07003855 VkFramebuffer framebuffer /// Framebuffer for secondary command buffers
Jesse Hallf4ab2b12015-11-30 16:04:55 -08003856 VkBool32 occlusionQueryEnable
3857 VkQueryControlFlags queryFlags
3858 VkQueryPipelineStatisticFlags pipelineStatistics
Jesse Halld27f6aa2015-08-15 17:58:48 -07003859}
3860
Jesse Hall3dd678a2016-01-08 21:52:01 -08003861class VkCommandBufferBeginInfo {
3862 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO
3863 const void* pNext /// Pointer to next structure
3864 VkCommandBufferUsageFlags flags /// Command buffer usage flags
3865 const VkCommandBufferInheritanceInfo* pInheritanceInfo
3866}
3867
Jesse Halld27f6aa2015-08-15 17:58:48 -07003868class VkRenderPassBeginInfo {
3869 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO
3870 const void* pNext /// Pointer to next structure
3871 VkRenderPass renderPass
3872 VkFramebuffer framebuffer
3873 VkRect2D renderArea
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003874 u32 clearValueCount
3875 const VkClearValue* pClearValues
Jesse Halld27f6aa2015-08-15 17:58:48 -07003876}
3877
3878@union
3879/// Union allowing specification of floating point, integer, or unsigned integer color data. Actual value selected is based on image/attachment being cleared.
3880class VkClearColorValue {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003881 f32[4] float32
3882 s32[4] int32
3883 u32[4] uint32
Jesse Halld27f6aa2015-08-15 17:58:48 -07003884}
3885
3886class VkClearDepthStencilValue {
3887 f32 depth
3888 u32 stencil
3889}
3890
3891@union
3892/// Union allowing specification of color, depth, and stencil color values. Actual value selected is based on attachment being cleared.
3893class VkClearValue {
3894 VkClearColorValue color
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003895 VkClearDepthStencilValue depthStencil
Jesse Halld27f6aa2015-08-15 17:58:48 -07003896}
3897
Jesse Hallae38f732015-11-19 21:32:50 -08003898class VkClearAttachment {
3899 VkImageAspectFlags aspectMask
3900 u32 colorAttachment
3901 VkClearValue clearValue
3902}
3903
Jesse Halld27f6aa2015-08-15 17:58:48 -07003904class VkAttachmentDescription {
Jesse Halla6429252015-11-29 18:59:42 -08003905 VkAttachmentDescriptionFlags flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07003906 VkFormat format
Jesse Hall091ed9e2015-11-30 00:55:29 -08003907 VkSampleCountFlagBits samples
Jesse Halld27f6aa2015-08-15 17:58:48 -07003908 VkAttachmentLoadOp loadOp /// Load op for color or depth data
3909 VkAttachmentStoreOp storeOp /// Store op for color or depth data
3910 VkAttachmentLoadOp stencilLoadOp /// Load op for stencil data
3911 VkAttachmentStoreOp stencilStoreOp /// Store op for stencil data
3912 VkImageLayout initialLayout
3913 VkImageLayout finalLayout
3914}
3915
3916class VkAttachmentReference {
3917 u32 attachment
3918 VkImageLayout layout
3919}
3920
3921class VkSubpassDescription {
Jesse Halld27f6aa2015-08-15 17:58:48 -07003922 VkSubpassDescriptionFlags flags
Jesse Halla6429252015-11-29 18:59:42 -08003923 VkPipelineBindPoint pipelineBindPoint /// Must be VK_PIPELINE_BIND_POINT_GRAPHICS for now
Jesse Hall03b6fe12015-11-24 12:44:21 -08003924 u32 inputAttachmentCount
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003925 const VkAttachmentReference* pInputAttachments
Jesse Hall03b6fe12015-11-24 12:44:21 -08003926 u32 colorAttachmentCount
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003927 const VkAttachmentReference* pColorAttachments
3928 const VkAttachmentReference* pResolveAttachments
Jesse Hallc7467b72015-11-29 21:05:26 -08003929 const VkAttachmentReference* pDepthStencilAttachment
Jesse Hall03b6fe12015-11-24 12:44:21 -08003930 u32 preserveAttachmentCount
Jesse Hall3dd678a2016-01-08 21:52:01 -08003931 const u32* pPreserveAttachments
Jesse Halld27f6aa2015-08-15 17:58:48 -07003932}
3933
3934class VkSubpassDependency {
Jesse Halld27f6aa2015-08-15 17:58:48 -07003935 u32 srcSubpass
Jesse Hall3fbc8562015-11-29 22:10:52 -08003936 u32 dstSubpass
Jesse Halld27f6aa2015-08-15 17:58:48 -07003937 VkPipelineStageFlags srcStageMask
Jesse Hall3fbc8562015-11-29 22:10:52 -08003938 VkPipelineStageFlags dstStageMask
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08003939 VkAccessFlags srcAccessMask
3940 VkAccessFlags dstAccessMask
Jesse Halldc6d36c2015-11-29 19:12:15 -08003941 VkDependencyFlags dependencyFlags
Jesse Halld27f6aa2015-08-15 17:58:48 -07003942}
3943
3944class VkRenderPassCreateInfo {
3945 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO
3946 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003947 VkRenderPassCreateFlags flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07003948 u32 attachmentCount
3949 const VkAttachmentDescription* pAttachments
3950 u32 subpassCount
3951 const VkSubpassDescription* pSubpasses
3952 u32 dependencyCount
3953 const VkSubpassDependency* pDependencies
3954}
3955
3956class VkEventCreateInfo {
3957 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_EVENT_CREATE_INFO
3958 const void* pNext /// Pointer to next structure
3959 VkEventCreateFlags flags /// Event creation flags
3960}
3961
3962class VkFenceCreateInfo {
3963 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_FENCE_CREATE_INFO
3964 const void* pNext /// Pointer to next structure
3965 VkFenceCreateFlags flags /// Fence creation flags
3966}
3967
3968class VkPhysicalDeviceFeatures {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003969 VkBool32 robustBufferAccess /// out of bounds buffer accesses are well defined
3970 VkBool32 fullDrawIndexUint32 /// full 32-bit range of indices for indexed draw calls
3971 VkBool32 imageCubeArray /// image views which are arrays of cube maps
3972 VkBool32 independentBlend /// blending operations are controlled per-attachment
3973 VkBool32 geometryShader /// geometry stage
3974 VkBool32 tessellationShader /// tessellation control and evaluation stage
3975 VkBool32 sampleRateShading /// per-sample shading and interpolation
Jesse Hall3fbc8562015-11-29 22:10:52 -08003976 VkBool32 dualSrcBlend /// blend operations which take two sources
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003977 VkBool32 logicOp /// logic operations
3978 VkBool32 multiDrawIndirect /// multi draw indirect
Jesse Hall543a7ff2016-01-08 16:38:30 -08003979 VkBool32 drawIndirectFirstInstance
Jesse Hallae38f732015-11-19 21:32:50 -08003980 VkBool32 depthClamp /// depth clamping
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003981 VkBool32 depthBiasClamp /// depth bias clamping
3982 VkBool32 fillModeNonSolid /// point and wireframe fill modes
3983 VkBool32 depthBounds /// depth bounds test
3984 VkBool32 wideLines /// lines with width greater than 1
3985 VkBool32 largePoints /// points with size greater than 1
Jesse Hallfbf97b02015-11-20 14:17:03 -08003986 VkBool32 alphaToOne /// The fragment alpha channel can be forced to maximum representable alpha value
3987 VkBool32 multiViewport
3988 VkBool32 samplerAnisotropy
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003989 VkBool32 textureCompressionETC2 /// ETC texture compression formats
3990 VkBool32 textureCompressionASTC_LDR /// ASTC LDR texture compression formats
3991 VkBool32 textureCompressionBC /// BC1-7 texture compressed formats
Jesse Hall65ab5522015-11-30 00:07:16 -08003992 VkBool32 occlusionQueryPrecise
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003993 VkBool32 pipelineStatisticsQuery /// pipeline statistics query
Jesse Halldc6d36c2015-11-29 19:12:15 -08003994 VkBool32 vertexPipelineStoresAndAtomics
3995 VkBool32 fragmentStoresAndAtomics
3996 VkBool32 shaderTessellationAndGeometryPointSize
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003997 VkBool32 shaderImageGatherExtended /// texture gather with run-time values and independent offsets
3998 VkBool32 shaderStorageImageExtendedFormats /// the extended set of formats can be used for storage images
3999 VkBool32 shaderStorageImageMultisample /// multisample images can be used for storage images
Jesse Halld1af8122015-11-29 23:50:38 -08004000 VkBool32 shaderStorageImageReadWithoutFormat
4001 VkBool32 shaderStorageImageWriteWithoutFormat
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004002 VkBool32 shaderUniformBufferArrayDynamicIndexing /// arrays of uniform buffers can be accessed with dynamically uniform indices
4003 VkBool32 shaderSampledImageArrayDynamicIndexing /// arrays of sampled images can be accessed with dynamically uniform indices
4004 VkBool32 shaderStorageBufferArrayDynamicIndexing /// arrays of storage buffers can be accessed with dynamically uniform indices
4005 VkBool32 shaderStorageImageArrayDynamicIndexing /// arrays of storage images can be accessed with dynamically uniform indices
4006 VkBool32 shaderClipDistance /// clip distance in shaders
4007 VkBool32 shaderCullDistance /// cull distance in shaders
4008 VkBool32 shaderFloat64 /// 64-bit floats (doubles) in shaders
4009 VkBool32 shaderInt64 /// 64-bit integers in shaders
4010 VkBool32 shaderInt16 /// 16-bit integers in shaders
4011 VkBool32 shaderResourceResidency /// shader can use texture operations that return resource residency information (requires sparseNonResident support)
Jesse Hall65ab5522015-11-30 00:07:16 -08004012 VkBool32 shaderResourceMinLod /// shader can use texture operations that specify minimum resource LOD
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004013 VkBool32 sparseBinding /// Sparse resources support: Resource memory can be managed at opaque page level rather than object level
4014 VkBool32 sparseResidencyBuffer /// Sparse resources support: GPU can access partially resident buffers
4015 VkBool32 sparseResidencyImage2D /// Sparse resources support: GPU can access partially resident 2D (non-MSAA non-DepthStencil) images
4016 VkBool32 sparseResidencyImage3D /// Sparse resources support: GPU can access partially resident 3D images
4017 VkBool32 sparseResidency2Samples /// Sparse resources support: GPU can access partially resident MSAA 2D images with 2 samples
4018 VkBool32 sparseResidency4Samples /// Sparse resources support: GPU can access partially resident MSAA 2D images with 4 samples
4019 VkBool32 sparseResidency8Samples /// Sparse resources support: GPU can access partially resident MSAA 2D images with 8 samples
4020 VkBool32 sparseResidency16Samples /// Sparse resources support: GPU can access partially resident MSAA 2D images with 16 samples
4021 VkBool32 sparseResidencyAliased /// Sparse resources support: GPU can correctly access data aliased into multiple locations (opt-in)
Jesse Halld1af8122015-11-29 23:50:38 -08004022 VkBool32 variableMultisampleRate
Jesse Hallf9fa9a52016-01-08 16:08:51 -08004023 VkBool32 inheritedQueries
Jesse Halld27f6aa2015-08-15 17:58:48 -07004024}
4025
4026class VkPhysicalDeviceLimits {
4027 /// resource maximum sizes
4028 u32 maxImageDimension1D /// max 1D image dimension
4029 u32 maxImageDimension2D /// max 2D image dimension
4030 u32 maxImageDimension3D /// max 3D image dimension
4031 u32 maxImageDimensionCube /// max cubemap image dimension
4032 u32 maxImageArrayLayers /// max layers for image arrays
Jesse Hallb00daad2015-11-29 19:46:20 -08004033 u32 maxTexelBufferElements
Jesse Hallfbf97b02015-11-20 14:17:03 -08004034 u32 maxUniformBufferRange /// max uniform buffer size (bytes)
4035 u32 maxStorageBufferRange /// max storage buffer size (bytes)
Jesse Halld27f6aa2015-08-15 17:58:48 -07004036 u32 maxPushConstantsSize /// max size of the push constants pool (bytes)
4037 /// memory limits
4038 u32 maxMemoryAllocationCount /// max number of device memory allocations supported
Jesse Hall091ed9e2015-11-30 00:55:29 -08004039 u32 maxSamplerAllocationCount
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004040 VkDeviceSize bufferImageGranularity /// Granularity (in bytes) at which buffers and images can be bound to adjacent memory for simultaneous usage
4041 VkDeviceSize sparseAddressSpaceSize /// Total address space available for sparse allocations (bytes)
Jesse Halld27f6aa2015-08-15 17:58:48 -07004042 /// descriptor set limits
4043 u32 maxBoundDescriptorSets /// max number of descriptors sets that can be bound to a pipeline
Jesse Halld27f6aa2015-08-15 17:58:48 -07004044 u32 maxPerStageDescriptorSamplers /// max num of samplers allowed per-stage in a descriptor set
4045 u32 maxPerStageDescriptorUniformBuffers /// max num of uniform buffers allowed per-stage in a descriptor set
4046 u32 maxPerStageDescriptorStorageBuffers /// max num of storage buffers allowed per-stage in a descriptor set
4047 u32 maxPerStageDescriptorSampledImages /// max num of sampled images allowed per-stage in a descriptor set
4048 u32 maxPerStageDescriptorStorageImages /// max num of storage images allowed per-stage in a descriptor set
Jesse Halle1b12782015-11-30 11:27:32 -08004049 u32 maxPerStageDescriptorInputAttachments
Jesse Halldba27f72015-11-30 14:25:46 -08004050 u32 maxPerStageResources
Jesse Halld27f6aa2015-08-15 17:58:48 -07004051 u32 maxDescriptorSetSamplers /// max num of samplers allowed in all stages in a descriptor set
4052 u32 maxDescriptorSetUniformBuffers /// max num of uniform buffers allowed in all stages in a descriptor set
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004053 u32 maxDescriptorSetUniformBuffersDynamic /// max num of dynamic uniform buffers allowed in all stages in a descriptor set
Jesse Halld27f6aa2015-08-15 17:58:48 -07004054 u32 maxDescriptorSetStorageBuffers /// max num of storage buffers allowed in all stages in a descriptor set
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004055 u32 maxDescriptorSetStorageBuffersDynamic /// max num of dynamic storage buffers allowed in all stages in a descriptor set
Jesse Halld27f6aa2015-08-15 17:58:48 -07004056 u32 maxDescriptorSetSampledImages /// max num of sampled images allowed in all stages in a descriptor set
4057 u32 maxDescriptorSetStorageImages /// max num of storage images allowed in all stages in a descriptor set
Jesse Halle1b12782015-11-30 11:27:32 -08004058 u32 maxDescriptorSetInputAttachments
Jesse Halld27f6aa2015-08-15 17:58:48 -07004059 /// vertex stage limits
4060 u32 maxVertexInputAttributes /// max num of vertex input attribute slots
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004061 u32 maxVertexInputBindings /// max num of vertex input binding slots
Jesse Halld27f6aa2015-08-15 17:58:48 -07004062 u32 maxVertexInputAttributeOffset /// max vertex input attribute offset added to vertex buffer offset
4063 u32 maxVertexInputBindingStride /// max vertex input binding stride
4064 u32 maxVertexOutputComponents /// max num of output components written by vertex shader
4065 /// tessellation control stage limits
Jesse Hall3fbc8562015-11-29 22:10:52 -08004066 u32 maxTessellationGenerationLevel /// max level supported by tess primitive generator
Jesse Hallae38f732015-11-19 21:32:50 -08004067 u32 maxTessellationPatchSize /// max patch size (vertices)
4068 u32 maxTessellationControlPerVertexInputComponents /// max num of input components per-vertex in TCS
4069 u32 maxTessellationControlPerVertexOutputComponents /// max num of output components per-vertex in TCS
4070 u32 maxTessellationControlPerPatchOutputComponents /// max num of output components per-patch in TCS
4071 u32 maxTessellationControlTotalOutputComponents /// max total num of per-vertex and per-patch output components in TCS
4072 u32 maxTessellationEvaluationInputComponents /// max num of input components per vertex in TES
4073 u32 maxTessellationEvaluationOutputComponents /// max num of output components per vertex in TES
Jesse Halld27f6aa2015-08-15 17:58:48 -07004074 /// geometry stage limits
4075 u32 maxGeometryShaderInvocations /// max invocation count supported in geometry shader
4076 u32 maxGeometryInputComponents /// max num of input components read in geometry stage
4077 u32 maxGeometryOutputComponents /// max num of output components written in geometry stage
4078 u32 maxGeometryOutputVertices /// max num of vertices that can be emitted in geometry stage
4079 u32 maxGeometryTotalOutputComponents /// max total num of components (all vertices) written in geometry stage
4080 /// fragment stage limits
4081 u32 maxFragmentInputComponents /// max num of input compontents read in fragment stage
Jesse Hallfbf97b02015-11-20 14:17:03 -08004082 u32 maxFragmentOutputAttachments /// max num of output attachments written in fragment stage
Jesse Hall3fbc8562015-11-29 22:10:52 -08004083 u32 maxFragmentDualSrcAttachments /// max num of output attachments written when using dual source blending
Jesse Halld27f6aa2015-08-15 17:58:48 -07004084 u32 maxFragmentCombinedOutputResources /// max total num of storage buffers, storage images and output buffers
4085 /// compute stage limits
4086 u32 maxComputeSharedMemorySize /// max total storage size of work group local storage (bytes)
4087 u32[3] maxComputeWorkGroupCount /// max num of compute work groups that may be dispatched by a single command (x,y,z)
4088 u32 maxComputeWorkGroupInvocations /// max total compute invocations in a single local work group
4089 u32[3] maxComputeWorkGroupSize /// max local size of a compute work group (x,y,z)
4090
4091 u32 subPixelPrecisionBits /// num bits of subpixel precision in screen x and y
4092 u32 subTexelPrecisionBits /// num bits of subtexel precision
4093 u32 mipmapPrecisionBits /// num bits of mipmap precision
4094
4095 u32 maxDrawIndexedIndexValue /// max index value for indexed draw calls (for 32-bit indices)
Jesse Halldba27f72015-11-30 14:25:46 -08004096 u32 maxDrawIndirectCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07004097
4098 f32 maxSamplerLodBias /// max absolute sampler level of detail bias
4099 f32 maxSamplerAnisotropy /// max degree of sampler anisotropy
4100
4101 u32 maxViewports /// max number of active viewports
Jesse Halld27f6aa2015-08-15 17:58:48 -07004102 u32[2] maxViewportDimensions /// max viewport dimensions (x,y)
4103 f32[2] viewportBoundsRange /// viewport bounds range (min,max)
4104 u32 viewportSubPixelBits /// num bits of subpixel precision for viewport
4105
Jesse Halldc6d36c2015-11-29 19:12:15 -08004106 platform.size_t minMemoryMapAlignment /// min required alignment of pointers returned by MapMemory (bytes)
4107 VkDeviceSize minTexelBufferOffsetAlignment /// min required alignment for texel buffer offsets (bytes)
4108 VkDeviceSize minUniformBufferOffsetAlignment /// min required alignment for uniform buffer sizes and offsets (bytes)
4109 VkDeviceSize minStorageBufferOffsetAlignment /// min required alignment for storage buffer offsets (bytes)
Jesse Halld27f6aa2015-08-15 17:58:48 -07004110
Jesse Hallfbf97b02015-11-20 14:17:03 -08004111 s32 minTexelOffset /// min texel offset for OpTextureSampleOffset
Jesse Halld27f6aa2015-08-15 17:58:48 -07004112 u32 maxTexelOffset /// max texel offset for OpTextureSampleOffset
Jesse Hallfbf97b02015-11-20 14:17:03 -08004113 s32 minTexelGatherOffset /// min texel offset for OpTextureGatherOffset
Jesse Halld27f6aa2015-08-15 17:58:48 -07004114 u32 maxTexelGatherOffset /// max texel offset for OpTextureGatherOffset
4115 f32 minInterpolationOffset /// furthest negative offset for interpolateAtOffset
4116 f32 maxInterpolationOffset /// furthest positive offset for interpolateAtOffset
4117 u32 subPixelInterpolationOffsetBits /// num of subpixel bits for interpolateAtOffset
4118
4119 u32 maxFramebufferWidth /// max width for a framebuffer
4120 u32 maxFramebufferHeight /// max height for a framebuffer
4121 u32 maxFramebufferLayers /// max layer count for a layered framebuffer
Jesse Hall091ed9e2015-11-30 00:55:29 -08004122 VkSampleCountFlags framebufferColorSampleCounts
4123 VkSampleCountFlags framebufferDepthSampleCounts
4124 VkSampleCountFlags framebufferStencilSampleCounts
4125 VkSampleCountFlags framebufferNoAttachmentSampleCounts
Jesse Halld27f6aa2015-08-15 17:58:48 -07004126 u32 maxColorAttachments /// max num of framebuffer color attachments
4127
Jesse Hall091ed9e2015-11-30 00:55:29 -08004128 VkSampleCountFlags sampledImageColorSampleCounts
4129 VkSampleCountFlags sampledImageIntegerSampleCounts
4130 VkSampleCountFlags sampledImageDepthSampleCounts
4131 VkSampleCountFlags sampledImageStencilSampleCounts
4132 VkSampleCountFlags storageImageSampleCounts
Jesse Halld27f6aa2015-08-15 17:58:48 -07004133 u32 maxSampleMaskWords /// max num of sample mask words
Jesse Hallf9fa9a52016-01-08 16:08:51 -08004134 VkBool32 timestampComputeAndGraphics
Jesse Halld27f6aa2015-08-15 17:58:48 -07004135
Jesse Halla9bb62b2015-11-21 19:31:56 -08004136 f32 timestampPeriod
Jesse Halld27f6aa2015-08-15 17:58:48 -07004137
4138 u32 maxClipDistances /// max number of clip distances
4139 u32 maxCullDistances /// max number of cull distances
4140 u32 maxCombinedClipAndCullDistances /// max combined number of user clipping
4141
Jesse Hallfbf97b02015-11-20 14:17:03 -08004142 u32 discreteQueuePriorities
4143
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004144 f32[2] pointSizeRange /// range (min,max) of supported point sizes
4145 f32[2] lineWidthRange /// range (min,max) of supported line widths
Jesse Halld27f6aa2015-08-15 17:58:48 -07004146 f32 pointSizeGranularity /// granularity of supported point sizes
4147 f32 lineWidthGranularity /// granularity of supported line widths
Jesse Hall03b6fe12015-11-24 12:44:21 -08004148 VkBool32 strictLines
Jesse Hall091ed9e2015-11-30 00:55:29 -08004149 VkBool32 standardSampleLocations
Jesse Halla9bb62b2015-11-21 19:31:56 -08004150
Jesse Hall65ab5522015-11-30 00:07:16 -08004151 VkDeviceSize optimalBufferCopyOffsetAlignment
4152 VkDeviceSize optimalBufferCopyRowPitchAlignment
Jesse Halldba27f72015-11-30 14:25:46 -08004153 VkDeviceSize nonCoherentAtomSize
Jesse Halld27f6aa2015-08-15 17:58:48 -07004154}
4155
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004156class VkPhysicalDeviceSparseProperties {
4157 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 -08004158 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 -07004159 VkBool32 residencyStandard3DBlockShape /// Sparse resources support: GPU will access all 3D sparse resources using the standard block shapes (based on pixel format)
4160 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 -07004161 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
4162}
4163
Jesse Halld27f6aa2015-08-15 17:58:48 -07004164class VkSemaphoreCreateInfo {
4165 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO
4166 const void* pNext /// Pointer to next structure
4167 VkSemaphoreCreateFlags flags /// Semaphore creation flags
4168}
4169
4170class VkQueryPoolCreateInfo {
4171 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO
4172 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08004173 VkQueryPoolCreateFlags flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07004174 VkQueryType queryType
Jesse Hall3dd678a2016-01-08 21:52:01 -08004175 u32 queryCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07004176 VkQueryPipelineStatisticFlags pipelineStatistics /// Optional
4177}
4178
4179class VkFramebufferCreateInfo {
4180 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO
4181 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08004182 VkFramebufferCreateFlags flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07004183 VkRenderPass renderPass
4184 u32 attachmentCount
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004185 const VkImageView* pAttachments
Jesse Halld27f6aa2015-08-15 17:58:48 -07004186 u32 width
4187 u32 height
4188 u32 layers
4189}
4190
Jesse Hall3fbc8562015-11-29 22:10:52 -08004191class VkDrawIndirectCommand {
Jesse Halld27f6aa2015-08-15 17:58:48 -07004192 u32 vertexCount
4193 u32 instanceCount
4194 u32 firstVertex
4195 u32 firstInstance
4196}
4197
Jesse Hall3fbc8562015-11-29 22:10:52 -08004198class VkDrawIndexedIndirectCommand {
Jesse Halld27f6aa2015-08-15 17:58:48 -07004199 u32 indexCount
4200 u32 instanceCount
4201 u32 firstIndex
4202 s32 vertexOffset
4203 u32 firstInstance
4204}
4205
Jesse Hall3fbc8562015-11-29 22:10:52 -08004206class VkDispatchIndirectCommand {
Jesse Halld27f6aa2015-08-15 17:58:48 -07004207 u32 x
4208 u32 y
4209 u32 z
4210}
4211
Jesse Hall54f8d132018-04-18 08:16:59 -07004212class VkBaseOutStructure {
4213 VkStructureType sType
4214 void* pNext
4215}
4216
4217class VkBaseInStructure {
4218 VkStructureType sType
4219 const void* pNext
4220}
4221
Ian Elliott28bd2c32017-10-13 09:21:12 -06004222//@vulkan1_1 structures
Daniel Koch09f7bf92017-10-05 00:26:58 -04004223
4224class VkPhysicalDeviceSubgroupProperties {
4225 VkStructureType sType
4226 void* pNext
4227 u32 subgroupSize
4228 VkShaderStageFlags supportedStages
4229 VkSubgroupFeatureFlags supportedOperations
4230 VkBool32 quadOperationsInAllStages
4231}
4232
4233class VkBindBufferMemoryInfo {
4234 VkStructureType sType
4235 const void* pNext
4236 VkBuffer buffer
4237 VkDeviceMemory memory
4238 VkDeviceSize memoryOffset
4239}
4240
4241class VkBindImageMemoryInfo {
4242 VkStructureType sType
4243 const void* pNext
4244 VkImage image
4245 VkDeviceMemory memory
4246 VkDeviceSize memoryOffset
4247}
4248
4249class VkPhysicalDevice16BitStorageFeatures {
4250 VkStructureType sType
4251 void* pNext
4252 VkBool32 storageBuffer16BitAccess
4253 VkBool32 uniformAndStorageBuffer16BitAccess
4254 VkBool32 storagePushConstant16
4255 VkBool32 storageInputOutput16
4256}
4257
4258class VkMemoryDedicatedRequirements {
4259 VkStructureType sType
4260 void* pNext
4261 VkBool32 prefersDedicatedAllocation
4262 VkBool32 requiresDedicatedAllocation
4263}
4264
4265class VkMemoryDedicatedAllocateInfo {
4266 VkStructureType sType
4267 const void* pNext
4268 VkImage image
4269 VkBuffer buffer
4270}
4271
4272class VkMemoryAllocateFlagsInfo {
4273 VkStructureType sType
4274 const void* pNext
4275 VkMemoryAllocateFlags flags
4276 u32 deviceMask
4277}
4278
4279class VkDeviceGroupRenderPassBeginInfo {
4280 VkStructureType sType
4281 const void* pNext
4282 u32 deviceMask
4283 u32 deviceRenderAreaCount
4284 const VkRect2D* pDeviceRenderAreas
4285}
4286
4287class VkDeviceGroupCommandBufferBeginInfo {
4288 VkStructureType sType
4289 const void* pNext
4290 u32 deviceMask
4291}
4292
4293class VkDeviceGroupSubmitInfo {
4294 VkStructureType sType
4295 const void* pNext
4296 u32 waitSemaphoreCount
4297 const u32* pWaitSemaphoreDeviceIndices
4298 u32 commandBufferCount
4299 const u32* pCommandBufferDeviceMasks
4300 u32 signalSemaphoreCount
4301 const u32* pSignalSemaphoreDeviceIndices
4302}
4303
4304class VkDeviceGroupBindSparseInfo {
4305 VkStructureType sType
4306 const void* pNext
4307 u32 resourceDeviceIndex
4308 u32 memoryDeviceIndex
4309}
4310
4311class VkBindBufferMemoryDeviceGroupInfo {
4312 VkStructureType sType
4313 const void* pNext
4314 u32 deviceIndexCount
4315 const u32* pDeviceIndices
4316}
4317
4318class VkBindImageMemoryDeviceGroupInfo {
4319 VkStructureType sType
4320 const void* pNext
4321 u32 deviceIndexCount
4322 const u32* pDeviceIndices
Jesse Hall8c954d32018-01-17 22:06:20 -08004323 u32 splitInstanceBindRegionCount
4324 const VkRect2D* pSplitInstanceBindRegions
Daniel Koch09f7bf92017-10-05 00:26:58 -04004325}
4326
4327class VkPhysicalDeviceGroupProperties {
4328 VkStructureType sType
4329 void* pNext
4330 u32 physicalDeviceCount
4331 VkPhysicalDevice[VK_MAX_DEVICE_GROUP_SIZE] physicalDevices
4332 VkBool32 subsetAllocation
4333}
4334
4335class VkDeviceGroupDeviceCreateInfo {
4336 VkStructureType sType
4337 const void* pNext
4338 u32 physicalDeviceCount
4339 const VkPhysicalDevice* pPhysicalDevices
4340}
4341
4342class VkBufferMemoryRequirementsInfo2 {
4343 VkStructureType sType
4344 const void* pNext
4345 VkBuffer buffer
4346}
4347
4348class VkImageMemoryRequirementsInfo2 {
4349 VkStructureType sType
4350 const void* pNext
4351 VkImage image
4352}
4353
4354class VkImageSparseMemoryRequirementsInfo2 {
4355 VkStructureType sType
4356 const void* pNext
4357 VkImage image
4358}
4359
4360class VkMemoryRequirements2 {
4361 VkStructureType sType
4362 void* pNext
4363 VkMemoryRequirements memoryRequirements
4364}
4365
4366class VkSparseImageMemoryRequirements2 {
4367 VkStructureType sType
4368 void* pNext
4369 VkSparseImageMemoryRequirements memoryRequirements
4370}
4371
4372class VkPhysicalDeviceFeatures2 {
4373 VkStructureType sType
4374 void* pNext
4375 VkPhysicalDeviceFeatures features
4376}
4377
4378class VkPhysicalDeviceProperties2 {
4379 VkStructureType sType
4380 void* pNext
4381 VkPhysicalDeviceProperties properties
4382}
4383
4384class VkFormatProperties2 {
4385 VkStructureType sType
4386 void* pNext
4387 VkFormatProperties formatProperties
4388}
4389
4390class VkImageFormatProperties2 {
4391 VkStructureType sType
4392 void* pNext
4393 VkImageFormatProperties imageFormatProperties
4394}
4395
4396class VkPhysicalDeviceImageFormatInfo2 {
4397 VkStructureType sType
4398 const void* pNext
4399 VkFormat format
4400 VkImageType type
4401 VkImageTiling tiling
4402 VkImageUsageFlags usage
4403 VkImageCreateFlags flags
4404}
4405
4406class VkQueueFamilyProperties2 {
4407 VkStructureType sType
4408 void* pNext
4409 VkQueueFamilyProperties queueFamilyProperties
4410}
4411
4412class VkPhysicalDeviceMemoryProperties2 {
4413 VkStructureType sType
4414 void* pNext
4415 VkPhysicalDeviceMemoryProperties memoryProperties
4416}
4417
4418class VkSparseImageFormatProperties2 {
4419 VkStructureType sType
4420 void* pNext
4421 VkSparseImageFormatProperties properties
4422}
4423
4424class VkPhysicalDeviceSparseImageFormatInfo2 {
4425 VkStructureType sType
4426 const void* pNext
4427 VkFormat format
4428 VkImageType type
4429 VkSampleCountFlagBits samples
4430 VkImageUsageFlags usage
4431 VkImageTiling tiling
4432}
4433
4434class VkPhysicalDevicePointClippingProperties {
4435 VkStructureType sType
4436 void* pNext
4437 VkPointClippingBehavior pointClippingBehavior
4438}
4439
4440class VkInputAttachmentAspectReference {
4441 u32 subpass
4442 u32 inputAttachmentIndex
4443 VkImageAspectFlags aspectMask
4444}
4445
4446class VkRenderPassInputAttachmentAspectCreateInfo {
4447 VkStructureType sType
4448 const void* pNext
4449 u32 aspectReferenceCount
4450 const VkInputAttachmentAspectReference* pAspectReferences
4451}
4452
4453class VkImageViewUsageCreateInfo {
4454 VkStructureType sType
4455 const void* pNext
4456 VkImageUsageFlags usage
4457}
4458
4459class VkPipelineTessellationDomainOriginStateCreateInfo {
4460 VkStructureType sType
4461 const void* pNext
4462 VkTessellationDomainOrigin domainOrigin
4463}
4464
4465class VkRenderPassMultiviewCreateInfo {
4466 VkStructureType sType
4467 const void* pNext
4468 u32 subpassCount
4469 const u32* pViewMasks
4470 u32 dependencyCount
4471 const s32* pViewOffsets
4472 u32 correlationMaskCount
4473 const u32* pCorrelationMasks
4474}
4475
4476class VkPhysicalDeviceMultiviewFeatures {
4477 VkStructureType sType
4478 void* pNext
4479 VkBool32 multiview
4480 VkBool32 multiviewGeometryShader
4481 VkBool32 multiviewTessellationShader
4482}
4483
4484class VkPhysicalDeviceMultiviewProperties {
4485 VkStructureType sType
4486 void* pNext
4487 u32 maxMultiviewViewCount
4488 u32 maxMultiviewInstanceIndex
4489}
4490
4491class VkPhysicalDeviceVariablePointerFeatures {
4492 VkStructureType sType
4493 void* pNext
4494 VkBool32 variablePointersStorageBuffer
4495 VkBool32 variablePointers
4496}
4497
4498class VkPhysicalDeviceProtectedMemoryFeatures {
4499 VkStructureType sType
4500 void* pNext
4501 VkBool32 protectedMemory
4502}
4503
4504class VkPhysicalDeviceProtectedMemoryProperties {
4505 VkStructureType sType
4506 void* pNext
4507 VkBool32 protectedNoFault
4508}
4509
4510class VkDeviceQueueInfo2 {
4511 VkStructureType sType
4512 const void* pNext
4513 VkDeviceQueueCreateFlags flags
4514 u32 queueFamilyIndex
4515 u32 queueIndex
4516}
4517
4518class VkProtectedSubmitInfo {
4519 VkStructureType sType
4520 const void* pNext
4521 VkBool32 protectedSubmit
4522}
4523
4524class VkSamplerYcbcrConversionCreateInfo {
4525 VkStructureType sType
4526 const void* pNext
4527 VkFormat format
4528 VkSamplerYcbcrModelConversion ycbcrModel
4529 VkSamplerYcbcrRange ycbcrRange
4530 VkComponentMapping components
4531 VkChromaLocation xChromaOffset
4532 VkChromaLocation yChromaOffset
4533 VkFilter chromaFilter
4534 VkBool32 forceExplicitReconstruction
4535}
4536
4537class VkSamplerYcbcrConversionInfo {
4538 VkStructureType sType
4539 const void* pNext
4540 VkSamplerYcbcrConversion conversion
4541}
4542
4543class VkBindImagePlaneMemoryInfo {
4544 VkStructureType sType
4545 const void* pNext
4546 VkImageAspectFlagBits planeAspect
4547}
4548
4549class VkImagePlaneMemoryRequirementsInfo {
4550 VkStructureType sType
4551 const void* pNext
4552 VkImageAspectFlagBits planeAspect
4553}
4554
4555class VkPhysicalDeviceSamplerYcbcrConversionFeatures {
4556 VkStructureType sType
4557 void* pNext
4558 VkBool32 samplerYcbcrConversion
4559}
4560
4561class VkSamplerYcbcrConversionImageFormatProperties {
4562 VkStructureType sType
4563 void* pNext
4564 u32 combinedImageSamplerDescriptorCount
4565}
4566
4567class VkDescriptorUpdateTemplateEntry {
4568 u32 dstBinding
4569 u32 dstArrayElement
4570 u32 descriptorCount
4571 VkDescriptorType descriptorType
4572 platform.size_t offset
4573 platform.size_t stride
4574}
4575
4576class VkDescriptorUpdateTemplateCreateInfo {
4577 VkStructureType sType
4578 void* pNext
4579 VkDescriptorUpdateTemplateCreateFlags flags
4580 u32 descriptorUpdateEntryCount
4581 const VkDescriptorUpdateTemplateEntry* pDescriptorUpdateEntries
4582 VkDescriptorUpdateTemplateType templateType
4583 VkDescriptorSetLayout descriptorSetLayout
4584 VkPipelineBindPoint pipelineBindPoint
4585 VkPipelineLayout pipelineLayout
4586 u32 set
4587}
4588
4589class VkExternalMemoryProperties {
4590 VkExternalMemoryFeatureFlags externalMemoryFeatures
4591 VkExternalMemoryHandleTypeFlags exportFromImportedHandleTypes
4592 VkExternalMemoryHandleTypeFlags compatibleHandleTypes
4593}
4594
4595class VkPhysicalDeviceExternalImageFormatInfo {
4596 VkStructureType sType
4597 const void* pNext
4598 VkExternalMemoryHandleTypeFlagBits handleType
4599}
4600
4601class VkExternalImageFormatProperties {
4602 VkStructureType sType
4603 void* pNext
4604 VkExternalMemoryProperties externalMemoryProperties
4605}
4606
4607class VkPhysicalDeviceExternalBufferInfo {
4608 VkStructureType sType
4609 const void* pNext
4610 VkBufferCreateFlags flags
4611 VkBufferUsageFlags usage
4612 VkExternalMemoryHandleTypeFlagBits handleType
4613}
4614
4615class VkExternalBufferProperties {
4616 VkStructureType sType
4617 void* pNext
4618 VkExternalMemoryProperties externalMemoryProperties
4619}
4620
4621class VkPhysicalDeviceIDProperties {
4622 VkStructureType sType
4623 void* pNext
4624 u8[VK_UUID_SIZE] deviceUUID
4625 u8[VK_UUID_SIZE] driverUUID
4626 u8[VK_LUID_SIZE] deviceLUID
4627 u32 deviceNodeMask
4628 VkBool32 deviceLUIDValid
4629}
4630
4631class VkExternalMemoryImageCreateInfo {
4632 VkStructureType sType
4633 const void* pNext
4634 VkExternalMemoryHandleTypeFlags handleTypes
4635}
4636
4637class VkExternalMemoryBufferCreateInfo {
4638 VkStructureType sType
4639 const void* pNext
4640 VkExternalMemoryHandleTypeFlags handleTypes
4641}
4642
4643class VkExportMemoryAllocateInfo {
4644 VkStructureType sType
4645 const void* pNext
4646 VkExternalMemoryHandleTypeFlags handleTypes
4647}
4648
4649class VkPhysicalDeviceExternalFenceInfo {
4650 VkStructureType sType
4651 const void* pNext
4652 VkExternalFenceHandleTypeFlagBits handleType
4653}
4654
4655class VkExternalFenceProperties {
4656 VkStructureType sType
4657 void* pNext
4658 VkExternalFenceHandleTypeFlags exportFromImportedHandleTypes
4659 VkExternalFenceHandleTypeFlags compatibleHandleTypes
4660 VkExternalFenceFeatureFlags externalFenceFeatures
4661}
4662
4663class VkExportFenceCreateInfo {
4664 VkStructureType sType
4665 const void* pNext
4666 VkExternalFenceHandleTypeFlags handleTypes
4667}
4668
4669class VkExportSemaphoreCreateInfo {
4670 VkStructureType sType
4671 const void* pNext
4672 VkExternalSemaphoreHandleTypeFlags handleTypes
4673}
4674
4675class VkPhysicalDeviceExternalSemaphoreInfo {
4676 VkStructureType sType
4677 const void* pNext
4678 VkExternalSemaphoreHandleTypeFlagBits handleType
4679}
4680
4681class VkExternalSemaphoreProperties {
4682 VkStructureType sType
4683 void* pNext
4684 VkExternalSemaphoreHandleTypeFlags exportFromImportedHandleTypes
4685 VkExternalSemaphoreHandleTypeFlags compatibleHandleTypes
4686 VkExternalSemaphoreFeatureFlags externalSemaphoreFeatures
4687}
4688
4689class VkPhysicalDeviceMaintenance3Properties {
4690 VkStructureType sType
4691 void* pNext
4692 u32 maxPerSetDescriptors
4693 VkDeviceSize maxMemoryAllocationSize
4694}
4695
4696class VkDescriptorSetLayoutSupport {
4697 VkStructureType sType
4698 void* pNext
4699 VkBool32 supported
4700}
4701
4702class VkPhysicalDeviceShaderDrawParameterFeatures {
4703 VkStructureType sType
4704 void* pNext
4705 VkBool32 shaderDrawParameters
4706}
4707
4708
Jesse Hallad250842017-03-10 18:35:38 -08004709@extension("VK_KHR_surface") // 1
Jesse Hallb00daad2015-11-29 19:46:20 -08004710class VkSurfaceCapabilitiesKHR {
Jesse Hall1356b0d2015-11-23 17:24:58 -08004711 u32 minImageCount
4712 u32 maxImageCount
4713 VkExtent2D currentExtent
4714 VkExtent2D minImageExtent
4715 VkExtent2D maxImageExtent
Jesse Hallf4ab2b12015-11-30 16:04:55 -08004716 u32 maxImageArrayLayers
Jesse Hall1356b0d2015-11-23 17:24:58 -08004717 VkSurfaceTransformFlagsKHR supportedTransforms
Jesse Hallf4ab2b12015-11-30 16:04:55 -08004718 VkSurfaceTransformFlagBitsKHR currentTransform
Jesse Halla6429252015-11-29 18:59:42 -08004719 VkCompositeAlphaFlagsKHR supportedCompositeAlpha
Jesse Hall1356b0d2015-11-23 17:24:58 -08004720 VkImageUsageFlags supportedUsageFlags
Michael Lentine88594d72015-11-12 12:49:45 -08004721}
4722
Jesse Hallad250842017-03-10 18:35:38 -08004723@extension("VK_KHR_surface") // 1
Michael Lentine88594d72015-11-12 12:49:45 -08004724class VkSurfaceFormatKHR {
Jesse Hall1356b0d2015-11-23 17:24:58 -08004725 VkFormat format
4726 VkColorSpaceKHR colorSpace
Michael Lentine88594d72015-11-12 12:49:45 -08004727}
4728
Jesse Hallad250842017-03-10 18:35:38 -08004729@extension("VK_KHR_swapchain") // 2
Michael Lentine88594d72015-11-12 12:49:45 -08004730class VkSwapchainCreateInfoKHR {
Jesse Hall1356b0d2015-11-23 17:24:58 -08004731 VkStructureType sType
4732 const void* pNext
Jesse Hallf4ab2b12015-11-30 16:04:55 -08004733 VkSwapchainCreateFlagsKHR flags
Jesse Hall1356b0d2015-11-23 17:24:58 -08004734 VkSurfaceKHR surface
4735 u32 minImageCount
4736 VkFormat imageFormat
4737 VkColorSpaceKHR imageColorSpace
4738 VkExtent2D imageExtent
Jesse Hallf4ab2b12015-11-30 16:04:55 -08004739 u32 imageArrayLayers
4740 VkImageUsageFlags imageUsage
Jesse Hall1356b0d2015-11-23 17:24:58 -08004741 VkSharingMode sharingMode
Jesse Hall03b6fe12015-11-24 12:44:21 -08004742 u32 queueFamilyIndexCount
Jesse Hall1356b0d2015-11-23 17:24:58 -08004743 const u32* pQueueFamilyIndices
Jesse Hallf4ab2b12015-11-30 16:04:55 -08004744 VkSurfaceTransformFlagBitsKHR preTransform
4745 VkCompositeAlphaFlagBitsKHR compositeAlpha
Jesse Hall1356b0d2015-11-23 17:24:58 -08004746 VkPresentModeKHR presentMode
Jesse Hall1356b0d2015-11-23 17:24:58 -08004747 VkBool32 clipped
Jesse Hallf4ab2b12015-11-30 16:04:55 -08004748 VkSwapchainKHR oldSwapchain
Michael Lentine88594d72015-11-12 12:49:45 -08004749}
4750
Jesse Hallad250842017-03-10 18:35:38 -08004751@extension("VK_KHR_swapchain") // 2
Michael Lentine88594d72015-11-12 12:49:45 -08004752class VkPresentInfoKHR {
Jesse Hall1356b0d2015-11-23 17:24:58 -08004753 VkStructureType sType
4754 const void* pNext
Jesse Hallb00daad2015-11-29 19:46:20 -08004755 u32 waitSemaphoreCount
4756 const VkSemaphore* pWaitSemaphores
Jesse Hall1356b0d2015-11-23 17:24:58 -08004757 u32 swapchainCount
Jesse Hall03b6fe12015-11-24 12:44:21 -08004758 const VkSwapchainKHR* pSwapchains
Jesse Hallf4ab2b12015-11-30 16:04:55 -08004759 const u32* pImageIndices
Jesse Halle1b12782015-11-30 11:27:32 -08004760 VkResult* pResults
Michael Lentine88594d72015-11-12 12:49:45 -08004761}
4762
Ian Elliott28bd2c32017-10-13 09:21:12 -06004763@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04004764@extension("VK_KHR_swapchain") // 2
4765class VkImageSwapchainCreateInfoKHR {
4766 VkStructureType sType
4767 const void* pNext
4768 VkSwapchainKHR swapchain
4769}
4770
Ian Elliott28bd2c32017-10-13 09:21:12 -06004771@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04004772@extension("VK_KHR_swapchain") // 2
4773class VkBindImageMemorySwapchainInfoKHR {
4774 VkStructureType sType
4775 const void* pNext
4776 VkSwapchainKHR swapchain
4777 u32 imageIndex
4778}
4779
Ian Elliott28bd2c32017-10-13 09:21:12 -06004780@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04004781@extension("VK_KHR_swapchain") // 2
4782class VkAcquireNextImageInfoKHR {
4783 VkStructureType sType
4784 const void* pNext
4785 VkSwapchainKHR swapchain
4786 u64 timeout
4787 VkSemaphore semaphore
4788 VkFence fence
4789 u32 deviceMask
4790}
4791
Ian Elliott28bd2c32017-10-13 09:21:12 -06004792@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04004793@extension("VK_KHR_swapchain") // 2
4794class VkDeviceGroupPresentCapabilitiesKHR {
4795 VkStructureType sType
4796 const void* pNext
4797 u32[VK_MAX_DEVICE_GROUP_SIZE] presentMask
4798 VkDeviceGroupPresentModeFlagsKHR modes
4799}
4800
Ian Elliott28bd2c32017-10-13 09:21:12 -06004801@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04004802@extension("VK_KHR_swapchain") // 2
4803class VkDeviceGroupPresentInfoKHR {
4804 VkStructureType sType
4805 const void* pNext
4806 u32 swapchainCount
4807 const u32* pDeviceMasks
4808 VkDeviceGroupPresentModeFlagBitsKHR mode
4809}
4810
Ian Elliott28bd2c32017-10-13 09:21:12 -06004811@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04004812@extension("VK_KHR_swapchain") // 2
4813class VkDeviceGroupSwapchainCreateInfoKHR {
4814 VkStructureType sType
4815 const void* pNext
4816 VkDeviceGroupPresentModeFlagsKHR modes
4817}
4818
Jesse Hallad250842017-03-10 18:35:38 -08004819@extension("VK_KHR_display") // 3
Jesse Hall1356b0d2015-11-23 17:24:58 -08004820class VkDisplayPropertiesKHR {
4821 VkDisplayKHR display
4822 const char* displayName
4823 VkExtent2D physicalDimensions
4824 VkExtent2D physicalResolution
4825 VkSurfaceTransformFlagsKHR supportedTransforms
Jesse Hall1356b0d2015-11-23 17:24:58 -08004826 VkBool32 planeReorderPossible
Jesse Halla6429252015-11-29 18:59:42 -08004827 VkBool32 persistentContent
Michael Lentine88594d72015-11-12 12:49:45 -08004828}
4829
Jesse Hallad250842017-03-10 18:35:38 -08004830@extension("VK_KHR_display") // 3
Jesse Halla6429252015-11-29 18:59:42 -08004831class VkDisplayModeParametersKHR {
Jesse Hall1356b0d2015-11-23 17:24:58 -08004832 VkExtent2D visibleRegion
Jesse Halla6429252015-11-29 18:59:42 -08004833 u32 refreshRate
Michael Lentine88594d72015-11-12 12:49:45 -08004834}
Jesse Halld27f6aa2015-08-15 17:58:48 -07004835
Jesse Hallad250842017-03-10 18:35:38 -08004836@extension("VK_KHR_display") // 3
Jesse Hall1356b0d2015-11-23 17:24:58 -08004837class VkDisplayModePropertiesKHR {
4838 VkDisplayModeKHR displayMode
Jesse Halla6429252015-11-29 18:59:42 -08004839 VkDisplayModeParametersKHR parameters
Jesse Hall1356b0d2015-11-23 17:24:58 -08004840}
4841
Jesse Hallad250842017-03-10 18:35:38 -08004842@extension("VK_KHR_display") // 3
Jesse Hall1356b0d2015-11-23 17:24:58 -08004843class VkDisplayModeCreateInfoKHR {
4844 VkStructureType sType
4845 const void* pNext
Jesse Hall9ba8bc82015-11-30 16:22:16 -08004846 VkDisplayModeCreateFlagsKHR flags
Jesse Halla6429252015-11-29 18:59:42 -08004847 VkDisplayModeParametersKHR parameters
Jesse Hall1356b0d2015-11-23 17:24:58 -08004848}
4849
Jesse Hallad250842017-03-10 18:35:38 -08004850@extension("VK_KHR_display") // 3
Jesse Hall1356b0d2015-11-23 17:24:58 -08004851class VkDisplayPlanePropertiesKHR {
Jesse Halla6429252015-11-29 18:59:42 -08004852 VkDisplayKHR currentDisplay
4853 u32 currentStackIndex
4854}
4855
Jesse Hallad250842017-03-10 18:35:38 -08004856@extension("VK_KHR_display") // 3
Jesse Halla6429252015-11-29 18:59:42 -08004857class VkDisplayPlaneCapabilitiesKHR {
Jesse Hall1356b0d2015-11-23 17:24:58 -08004858 VkDisplayPlaneAlphaFlagsKHR supportedAlpha
4859 VkOffset2D minSrcPosition
4860 VkOffset2D maxSrcPosition
4861 VkExtent2D minSrcExtent
4862 VkExtent2D maxSrcExtent
4863 VkOffset2D minDstPosition
4864 VkOffset2D maxDstPosition
4865 VkExtent2D minDstExtent
4866 VkExtent2D maxDstExtent
4867}
4868
Jesse Hallad250842017-03-10 18:35:38 -08004869@extension("VK_KHR_display") // 3
Jesse Halla6429252015-11-29 18:59:42 -08004870class VkDisplaySurfaceCreateInfoKHR {
Jesse Hall1356b0d2015-11-23 17:24:58 -08004871 VkStructureType sType
4872 const void* pNext
Jesse Hallf4ab2b12015-11-30 16:04:55 -08004873 VkDisplaySurfaceCreateFlagsKHR flags
Jesse Hall1356b0d2015-11-23 17:24:58 -08004874 VkDisplayModeKHR displayMode
4875 u32 planeIndex
4876 u32 planeStackIndex
Jesse Hallf4ab2b12015-11-30 16:04:55 -08004877 VkSurfaceTransformFlagBitsKHR transform
Jesse Hall1356b0d2015-11-23 17:24:58 -08004878 f32 globalAlpha
Jesse Hallf4ab2b12015-11-30 16:04:55 -08004879 VkDisplayPlaneAlphaFlagBitsKHR alphaMode
4880 VkExtent2D imageExtent
Jesse Hall1356b0d2015-11-23 17:24:58 -08004881}
4882
Jesse Hallad250842017-03-10 18:35:38 -08004883@extension("VK_KHR_display_swapchain") // 4
Jesse Hall1356b0d2015-11-23 17:24:58 -08004884class VkDisplayPresentInfoKHR {
4885 VkStructureType sType
4886 const void* pNext
4887 VkRect2D srcRect
4888 VkRect2D dstRect
Jesse Halla6429252015-11-29 18:59:42 -08004889 VkBool32 persistent
Jesse Hall1356b0d2015-11-23 17:24:58 -08004890}
4891
Jesse Hallad250842017-03-10 18:35:38 -08004892@extension("VK_KHR_xlib_surface") // 5
Jesse Hallf9fa9a52016-01-08 16:08:51 -08004893class VkXlibSurfaceCreateInfoKHR {
4894 VkStructureType sType
4895 const void* pNext
4896 VkXlibSurfaceCreateFlagsKHR flags
4897 platform.Display* dpy
4898 platform.Window window
4899}
4900
Jesse Hallad250842017-03-10 18:35:38 -08004901@extension("VK_KHR_xcb_surface") // 6
Jesse Hallf9fa9a52016-01-08 16:08:51 -08004902class VkXcbSurfaceCreateInfoKHR {
4903 VkStructureType sType
4904 const void* pNext
4905 VkXcbSurfaceCreateFlagsKHR flags
4906 platform.xcb_connection_t* connection
4907 platform.xcb_window_t window
4908}
4909
Jesse Hallad250842017-03-10 18:35:38 -08004910@extension("VK_KHR_wayland_surface") // 7
Jesse Hallf9fa9a52016-01-08 16:08:51 -08004911class VkWaylandSurfaceCreateInfoKHR {
4912 VkStructureType sType
4913 const void* pNext
4914 VkWaylandSurfaceCreateFlagsKHR flags
4915 platform.wl_display* display
4916 platform.wl_surface* surface
4917}
4918
Jesse Hallad250842017-03-10 18:35:38 -08004919@extension("VK_KHR_mir_surface") // 8
Jesse Hallf9fa9a52016-01-08 16:08:51 -08004920class VkMirSurfaceCreateInfoKHR {
4921 VkStructureType sType
4922 const void* pNext
4923 VkMirSurfaceCreateFlagsKHR flags
4924 platform.MirConnection* connection
4925 platform.MirSurface* mirSurface
4926}
4927
Jesse Hallad250842017-03-10 18:35:38 -08004928@extension("VK_KHR_android_surface") // 9
Jesse Hallf9fa9a52016-01-08 16:08:51 -08004929class VkAndroidSurfaceCreateInfoKHR {
4930 VkStructureType sType
4931 const void* pNext
4932 VkAndroidSurfaceCreateFlagsKHR flags
4933 platform.ANativeWindow* window
4934}
4935
Jesse Hallad250842017-03-10 18:35:38 -08004936@extension("VK_KHR_win32_surface") // 10
Jesse Hallf9fa9a52016-01-08 16:08:51 -08004937class VkWin32SurfaceCreateInfoKHR {
4938 VkStructureType sType
4939 const void* pNext
4940 VkWin32SurfaceCreateFlagsKHR flags
4941 platform.HINSTANCE hinstance
4942 platform.HWND hwnd
4943}
4944
Jesse Hallad250842017-03-10 18:35:38 -08004945@extension("VK_ANDROID_native_buffer") // 11
Jesse Halld1abd742017-02-09 21:45:51 -08004946@internal class Gralloc1Usage {
4947 u64 consumer
4948 u64 producer
4949}
4950
Jesse Hallad250842017-03-10 18:35:38 -08004951@extension("VK_ANDROID_native_buffer") // 11
Chia-I Wub262ddc2016-03-22 07:38:20 +08004952class VkNativeBufferANDROID {
4953 VkStructureType sType
4954 const void* pNext
4955 platform.buffer_handle_t handle
Jesse Halld1abd742017-02-09 21:45:51 -08004956 s32 stride
4957 s32 format
4958 s32 usage
4959 Gralloc1Usage usage2
Chia-I Wub262ddc2016-03-22 07:38:20 +08004960}
4961
Jesse Hallad250842017-03-10 18:35:38 -08004962@extension("VK_ANDROID_native_buffer") // 11
Chris Forbes8e4438b2016-12-07 16:26:49 +13004963class VkSwapchainImageCreateInfoANDROID {
4964 VkStructureType sType
4965 const void* pNext
Chris Forbes134d9582017-01-12 14:26:37 +13004966 VkSwapchainImageUsageFlagsANDROID flags
Chris Forbes48853712017-01-12 14:09:33 +13004967}
Ian Elliott4c8bb2a2016-12-29 11:07:26 -07004968
Jesse Hallad250842017-03-10 18:35:38 -08004969@extension("VK_ANDROID_native_buffer") // 11
Chris Forbes1d4e5542017-02-15 19:38:50 +13004970class VkPhysicalDevicePresentationPropertiesANDROID {
4971 VkStructureType sType
4972 void* pNext
4973 VkBool32 sharedImage
4974}
4975
Jesse Hallad250842017-03-10 18:35:38 -08004976@extension("VK_EXT_debug_report") // 12
Jesse Hall715b86a2016-01-16 16:34:29 -08004977class VkDebugReportCallbackCreateInfoEXT {
4978 VkStructureType sType
4979 const void* pNext
4980 VkDebugReportFlagsEXT flags
4981 PFN_vkDebugReportCallbackEXT pfnCallback
4982 void* pUserData
4983}
4984
Jesse Hallad250842017-03-10 18:35:38 -08004985@extension("VK_AMD_rasterization_order") // 19
Jesse Hall26763382016-05-20 07:13:52 -07004986class VkPipelineRasterizationStateRasterizationOrderAMD {
4987 VkStructureType sType
4988 const void* pNext
4989 VkRasterizationOrderAMD rasterizationOrder
4990}
4991
Jesse Hallad250842017-03-10 18:35:38 -08004992@extension("VK_EXT_debug_marker") // 23
Jesse Hall26763382016-05-20 07:13:52 -07004993class VkDebugMarkerObjectNameInfoEXT {
4994 VkStructureType sType
4995 const void* pNext
4996 VkDebugReportObjectTypeEXT objectType
4997 u64 object
4998 const char* pObjectName
4999}
5000
Jesse Hallad250842017-03-10 18:35:38 -08005001@extension("VK_EXT_debug_marker") // 23
Jesse Hall26763382016-05-20 07:13:52 -07005002class VkDebugMarkerObjectTagInfoEXT {
5003 VkStructureType sType
5004 const void* pNext
5005 VkDebugReportObjectTypeEXT objectType
5006 u64 object
5007 u64 tagName
5008 platform.size_t tagSize
5009 const void* pTag
5010}
5011
Jesse Hallad250842017-03-10 18:35:38 -08005012@extension("VK_EXT_debug_marker") // 23
Jesse Hall26763382016-05-20 07:13:52 -07005013class VkDebugMarkerMarkerInfoEXT {
5014 VkStructureType sType
5015 const void* pNext
5016 const char* pMarkerName
5017 f32[4] color
5018}
5019
Jesse Hallad250842017-03-10 18:35:38 -08005020@extension("VK_NV_dedicated_allocation") // 27
Jesse Hall56d386a2016-07-26 15:20:40 -07005021class VkDedicatedAllocationImageCreateInfoNV {
5022 VkStructureType sType
5023 const void* pNext
5024 VkBool32 dedicatedAllocation
5025}
5026
Jesse Hallad250842017-03-10 18:35:38 -08005027@extension("VK_NV_dedicated_allocation") // 27
Jesse Hall56d386a2016-07-26 15:20:40 -07005028class VkDedicatedAllocationBufferCreateInfoNV {
5029 VkStructureType sType
5030 const void* pNext
5031 VkBool32 dedicatedAllocation
5032}
5033
Jesse Hallad250842017-03-10 18:35:38 -08005034@extension("VK_NV_dedicated_allocation") // 27
Jesse Hall56d386a2016-07-26 15:20:40 -07005035class VkDedicatedAllocationMemoryAllocateInfoNV {
5036 VkStructureType sType
5037 const void* pNext
5038 VkImage image
5039 VkBuffer buffer
5040}
5041
Jesse Hall7ba0ac72017-07-07 17:13:23 -07005042@extension("VK_AMD_texture_gather_bias_lod") // 42
5043class VkTextureLODGatherFormatPropertiesAMD {
5044 VkStructureType sType
5045 void* pNext
5046 VkBool32 supportsTextureGatherLODBiasAMD
5047}
5048
Jesse Hall8c954d32018-01-17 22:06:20 -08005049@extension("VK_AMD_shader_info") // 43
5050class VkShaderResourceUsageAMD {
5051 u32 numUsedVgprs
5052 u32 numUsedSgprs
5053 u32 ldsSizePerLocalWorkGroup
5054 platform.size_t ldsUsageSizeInBytes
5055 platform.size_t scratchMemUsageInBytes
5056}
5057
5058@extension("VK_AMD_shader_info") // 43
5059class VkShaderStatisticsInfoAMD {
5060 VkShaderStageFlags shaderStageMask
5061 VkShaderResourceUsageAMD resourceUsage
5062 u32 numPhysicalVgprs
5063 u32 numPhysicalSgprs
5064 u32 numAvailableVgprs
5065 u32 numAvailableSgprs
5066 u32[3] computeWorkGroupSize
5067}
5068
Daniel Koch09f7bf92017-10-05 00:26:58 -04005069@extension("VK_KHR_multiview") // 54
5070class VkRenderPassMultiviewCreateInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005071 VkStructureType sType
5072 const void* pNext
5073 u32 subpassCount
5074 const u32* pViewMasks
5075 u32 dependencyCount
5076 const s32* pViewOffsets
5077 u32 correlationMaskCount
5078 const u32* pCorrelationMasks
5079}
5080
Daniel Koch09f7bf92017-10-05 00:26:58 -04005081@extension("VK_KHR_multiview") // 54
5082class VkPhysicalDeviceMultiviewFeaturesKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005083 VkStructureType sType
5084 void* pNext
5085 VkBool32 multiview
5086 VkBool32 multiviewGeometryShader
5087 VkBool32 multiviewTessellationShader
5088}
5089
Daniel Koch09f7bf92017-10-05 00:26:58 -04005090@extension("VK_KHR_multiview") // 54
5091class VkPhysicalDeviceMultiviewPropertiesKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005092 VkStructureType sType
5093 void* pNext
5094 u32 maxMultiviewViewCount
5095 u32 maxMultiviewInstanceIndex
5096}
5097
5098@extension("VK_NV_external_memory_capabilities") // 56
Jesse Halleb02c472017-02-24 15:13:45 -08005099class VkExternalImageFormatPropertiesNV {
5100 VkImageFormatProperties imageFormatProperties
5101 VkExternalMemoryFeatureFlagsNV externalMemoryFeatures
5102 VkExternalMemoryHandleTypeFlagsNV exportFromImportedHandleTypes
5103 VkExternalMemoryHandleTypeFlagsNV compatibleHandleTypes
5104}
5105
Jesse Hallad250842017-03-10 18:35:38 -08005106@extension("VK_NV_external_memory") // 57
Jesse Halleb02c472017-02-24 15:13:45 -08005107class VkExternalMemoryImageCreateInfoNV {
5108 VkStructureType sType
5109 const void* pNext
5110 VkExternalMemoryHandleTypeFlagsNV handleTypes
5111}
5112
Jesse Hallad250842017-03-10 18:35:38 -08005113@extension("VK_NV_external_memory") // 57
Jesse Halleb02c472017-02-24 15:13:45 -08005114class VkExportMemoryAllocateInfoNV {
5115 VkStructureType sType
5116 const void* pNext
5117 VkExternalMemoryHandleTypeFlagsNV handleTypes
5118}
5119
Jesse Hallad250842017-03-10 18:35:38 -08005120@extension("VK_NV_external_memory_win32") // 58
Jesse Halleb02c472017-02-24 15:13:45 -08005121class VkImportMemoryWin32HandleInfoNV {
5122 VkStructureType sType
5123 const void* pNext
5124 VkExternalMemoryHandleTypeFlagsNV handleType
5125 platform.HANDLE handle
5126}
5127
Jesse Hallad250842017-03-10 18:35:38 -08005128@extension("VK_NV_external_memory_win32") // 58
Jesse Halleb02c472017-02-24 15:13:45 -08005129class VkExportMemoryWin32HandleInfoNV {
5130 VkStructureType sType
5131 const void* pNext
5132 const platform.SECURITY_ATTRIBUTES* pAttributes
5133 platform.DWORD dwAccess
5134}
5135
Jesse Hallad250842017-03-10 18:35:38 -08005136@extension("VK_NV_win32_keyed_mutex") // 59
Jesse Halleb02c472017-02-24 15:13:45 -08005137class VkWin32KeyedMutexAcquireReleaseInfoNV {
5138 VkStructureType sType
5139 const void* pNext
5140 u32 acquireCount
5141 const VkDeviceMemory* pAcquireSyncs
5142 const u64* pAcquireKeys
5143 const u32* pAcquireTimeoutMilliseconds
5144 u32 releaseCount
5145 const VkDeviceMemory* pReleaseSyncs
5146 const u64* pReleaseKeys
5147}
5148
Jesse Hallad250842017-03-10 18:35:38 -08005149@extension("VK_KHR_get_physical_device_properties2") // 60
Chris Forbes1194ede2016-12-30 16:29:25 +13005150class VkPhysicalDeviceFeatures2KHR {
5151 VkStructureType sType
5152 void* pNext
5153 VkPhysicalDeviceFeatures features
5154}
5155
Jesse Hallad250842017-03-10 18:35:38 -08005156@extension("VK_KHR_get_physical_device_properties2") // 60
Chris Forbes1194ede2016-12-30 16:29:25 +13005157class VkPhysicalDeviceProperties2KHR {
5158 VkStructureType sType
5159 void* pNext
5160 VkPhysicalDeviceProperties properties
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 VkFormatProperties2KHR {
5165 VkStructureType sType
5166 void* pNext
5167 VkFormatProperties formatProperties
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 VkImageFormatProperties2KHR {
5172 VkStructureType sType
5173 void* pNext
5174 VkImageFormatProperties imageFormatProperties
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 VkPhysicalDeviceImageFormatInfo2KHR {
5179 VkStructureType sType
5180 const void* pNext
5181 VkFormat format
5182 VkImageType type
5183 VkImageTiling tiling
5184 VkImageUsageFlags usage
5185 VkImageCreateFlags flags
5186}
5187
Jesse Hallad250842017-03-10 18:35:38 -08005188@extension("VK_KHR_get_physical_device_properties2") // 60
Chris Forbes1194ede2016-12-30 16:29:25 +13005189class VkQueueFamilyProperties2KHR {
5190 VkStructureType sType
5191 void* pNext
5192 VkQueueFamilyProperties queueFamilyProperties
5193}
5194
Jesse Hallad250842017-03-10 18:35:38 -08005195@extension("VK_KHR_get_physical_device_properties2") // 60
Chris Forbes1194ede2016-12-30 16:29:25 +13005196class VkPhysicalDeviceMemoryProperties2KHR {
5197 VkStructureType sType
5198 void* pNext
5199 VkPhysicalDeviceMemoryProperties memoryProperties
5200}
5201
Jesse Hallad250842017-03-10 18:35:38 -08005202@extension("VK_KHR_get_physical_device_properties2") // 60
Chris Forbes1194ede2016-12-30 16:29:25 +13005203class VkSparseImageFormatProperties2KHR {
5204 VkStructureType sType
5205 void* pNext
5206 VkSparseImageFormatProperties properties
5207}
5208
Jesse Hallad250842017-03-10 18:35:38 -08005209@extension("VK_KHR_get_physical_device_properties2") // 60
Chris Forbes1194ede2016-12-30 16:29:25 +13005210class VkPhysicalDeviceSparseImageFormatInfo2KHR {
5211 VkStructureType sType
5212 const void* pNext
5213 VkFormat format
5214 VkImageType type
5215 VkSampleCountFlagBits samples
5216 VkImageUsageFlags usage
5217 VkImageTiling tiling
5218}
5219
Daniel Koch09f7bf92017-10-05 00:26:58 -04005220@extension("VK_KHR_device_group") // 61
5221class VkMemoryAllocateFlagsInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005222 VkStructureType sType
5223 const void* pNext
Daniel Koch09f7bf92017-10-05 00:26:58 -04005224 VkMemoryAllocateFlagsKHR flags
Jesse Hallad250842017-03-10 18:35:38 -08005225 u32 deviceMask
5226}
5227
Daniel Koch09f7bf92017-10-05 00:26:58 -04005228@extension("VK_KHR_device_group") // 61
5229class VkBindBufferMemoryDeviceGroupInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005230 VkStructureType sType
5231 const void* pNext
Jesse Hallad250842017-03-10 18:35:38 -08005232 u32 deviceIndexCount
5233 const u32* pDeviceIndices
5234}
5235
Daniel Koch09f7bf92017-10-05 00:26:58 -04005236@extension("VK_KHR_device_group") // 61
5237class VkBindImageMemoryDeviceGroupInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005238 VkStructureType sType
5239 const void* pNext
Jesse Hallad250842017-03-10 18:35:38 -08005240 u32 deviceIndexCount
5241 const u32* pDeviceIndices
5242 u32 SFRRectCount
5243 const VkRect2D* pSFRRects
5244}
5245
Daniel Koch09f7bf92017-10-05 00:26:58 -04005246@extension("VK_KHR_device_group") // 61
5247class VkDeviceGroupRenderPassBeginInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005248 VkStructureType sType
5249 const void* pNext
5250 u32 deviceMask
5251 u32 deviceRenderAreaCount
5252 const VkRect2D* pDeviceRenderAreas
5253}
5254
Daniel Koch09f7bf92017-10-05 00:26:58 -04005255@extension("VK_KHR_device_group") // 61
5256class VkDeviceGroupCommandBufferBeginInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005257 VkStructureType sType
5258 const void* pNext
5259 u32 deviceMask
5260}
5261
Daniel Koch09f7bf92017-10-05 00:26:58 -04005262@extension("VK_KHR_device_group") // 61
5263class VkDeviceGroupSubmitInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005264 VkStructureType sType
5265 const void* pNext
5266 u32 waitSemaphoreCount
5267 const u32* pWaitSemaphoreDeviceIndices
5268 u32 commandBufferCount
5269 const u32* pCommandBufferDeviceMasks
5270 u32 signalSemaphoreCount
5271 const u32* pSignalSemaphoreDeviceIndices
5272}
5273
Daniel Koch09f7bf92017-10-05 00:26:58 -04005274@extension("VK_KHR_device_group") // 61
5275class VkDeviceGroupBindSparseInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005276 VkStructureType sType
5277 const void* pNext
5278 u32 resourceDeviceIndex
5279 u32 memoryDeviceIndex
5280}
5281
Jesse Hallad250842017-03-10 18:35:38 -08005282@extension("VK_EXT_validation_flags") // 62
Chris Forbes289cb792016-12-30 15:03:55 +13005283class VkValidationFlagsEXT {
5284 VkStructureType sType
5285 const void* pNext
5286 u32 disabledValidationCheckCount
5287 VkValidationCheckEXT* pDisabledValidationChecks
5288}
5289
Jesse Hallad250842017-03-10 18:35:38 -08005290@extension("VK_NN_vi_surface") // 63
Jesse Hall77ad05b2017-03-10 22:02:20 -08005291class VkViSurfaceCreateInfoNN {
5292 VkStructureType sType
5293 const void* pNext
5294 VkViSurfaceCreateFlagsNN flags
5295 void* window
5296}
5297
Daniel Koch09f7bf92017-10-05 00:26:58 -04005298@extension("VK_KHR_device_group_creation") // 71
5299class VkPhysicalDeviceGroupPropertiesKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005300 VkStructureType sType
Jesse Hallf5ad48b2017-03-20 13:09:19 -07005301 void* pNext
Jesse Hallad250842017-03-10 18:35:38 -08005302 u32 physicalDeviceCount
Daniel Koch09f7bf92017-10-05 00:26:58 -04005303 VkPhysicalDevice[VK_MAX_DEVICE_GROUP_SIZE] physicalDevices
Jesse Hallad250842017-03-10 18:35:38 -08005304 VkBool32 subsetAllocation
5305}
5306
Daniel Koch09f7bf92017-10-05 00:26:58 -04005307@extension("VK_KHR_device_group_creation") // 71
5308class VkDeviceGroupDeviceCreateInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005309 VkStructureType sType
5310 const void* pNext
5311 u32 physicalDeviceCount
5312 const VkPhysicalDevice* pPhysicalDevices
5313}
5314
Jesse Hall9492f992017-08-28 12:10:06 -07005315@extension("VK_KHR_external_memory_capabilities") // 72
5316class VkExternalMemoryPropertiesKHR {
5317 VkExternalMemoryFeatureFlagsKHR externalMemoryFeatures
5318 VkExternalMemoryHandleTypeFlagsKHR exportFromImportedHandleTypes
5319 VkExternalMemoryHandleTypeFlagsKHR compatibleHandleTypes
Jesse Hallad250842017-03-10 18:35:38 -08005320}
5321
Jesse Hall9492f992017-08-28 12:10:06 -07005322@extension("VK_KHR_external_memory_capabilities") // 72
5323class VkPhysicalDeviceExternalImageFormatInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005324 VkStructureType sType
5325 const void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005326 VkExternalMemoryHandleTypeFlagBitsKHR handleType
Jesse Hallad250842017-03-10 18:35:38 -08005327}
5328
Jesse Hall9492f992017-08-28 12:10:06 -07005329@extension("VK_KHR_external_memory_capabilities") // 72
5330class VkExternalImageFormatPropertiesKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005331 VkStructureType sType
5332 void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005333 VkExternalMemoryPropertiesKHR externalMemoryProperties
Jesse Hallad250842017-03-10 18:35:38 -08005334}
5335
Jesse Hall9492f992017-08-28 12:10:06 -07005336@extension("VK_KHR_external_memory_capabilities") // 72
5337class VkPhysicalDeviceExternalBufferInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005338 VkStructureType sType
5339 const void* pNext
5340 VkBufferCreateFlags flags
5341 VkBufferUsageFlags usage
Jesse Hall9492f992017-08-28 12:10:06 -07005342 VkExternalMemoryHandleTypeFlagBitsKHR handleType
Jesse Hallad250842017-03-10 18:35:38 -08005343}
5344
Jesse Hall9492f992017-08-28 12:10:06 -07005345@extension("VK_KHR_external_memory_capabilities") // 72
5346class VkExternalBufferPropertiesKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005347 VkStructureType sType
5348 void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005349 VkExternalMemoryPropertiesKHR externalMemoryProperties
Jesse Hallad250842017-03-10 18:35:38 -08005350}
5351
Jesse Hall9492f992017-08-28 12:10:06 -07005352@extension("VK_KHR_external_memory_capabilities") // 72
5353class VkPhysicalDeviceIDPropertiesKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005354 VkStructureType sType
5355 void* pNext
5356 u8[VK_UUID_SIZE] deviceUUID
5357 u8[VK_UUID_SIZE] driverUUID
Daniel Koch09f7bf92017-10-05 00:26:58 -04005358 u8[VK_LUID_SIZE] deviceLUID
Jesse Hall9492f992017-08-28 12:10:06 -07005359 u32 deviceNodeMask
Jesse Hallad250842017-03-10 18:35:38 -08005360 VkBool32 deviceLUIDValid
5361}
5362
Jesse Hall9492f992017-08-28 12:10:06 -07005363@extension("VK_KHR_external_memory") // 73
5364class VkExternalMemoryImageCreateInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005365 VkStructureType sType
5366 const void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005367 VkExternalMemoryHandleTypeFlagsKHR handleTypes
Jesse Hallad250842017-03-10 18:35:38 -08005368}
5369
Jesse Hall9492f992017-08-28 12:10:06 -07005370@extension("VK_KHR_external_memory") // 73
5371class VkExternalMemoryBufferCreateInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005372 VkStructureType sType
5373 const void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005374 VkExternalMemoryHandleTypeFlagsKHR handleTypes
Jesse Hallad250842017-03-10 18:35:38 -08005375}
5376
Jesse Hall9492f992017-08-28 12:10:06 -07005377@extension("VK_KHR_external_memory") // 73
5378class VkExportMemoryAllocateInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005379 VkStructureType sType
5380 const void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005381 VkExternalMemoryHandleTypeFlagsKHR handleTypes
Jesse Hallad250842017-03-10 18:35:38 -08005382}
5383
Jesse Hall9492f992017-08-28 12:10:06 -07005384@extension("VK_KHR_external_memory_win32") // 74
5385class VkImportMemoryWin32HandleInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005386 VkStructureType sType
5387 const void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005388 VkExternalMemoryHandleTypeFlagBitsKHR handleType
Jesse Hallad250842017-03-10 18:35:38 -08005389 platform.HANDLE handle
Jesse Hall9492f992017-08-28 12:10:06 -07005390 platform.LPCWSTR name
Jesse Hallad250842017-03-10 18:35:38 -08005391}
5392
Jesse Hall9492f992017-08-28 12:10:06 -07005393@extension("VK_KHR_external_memory_win32") // 74
5394class VkExportMemoryWin32HandleInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005395 VkStructureType sType
5396 const void* pNext
5397 const platform.SECURITY_ATTRIBUTES* pAttributes
5398 platform.DWORD dwAccess
5399 platform.LPCWSTR name
5400}
5401
Jesse Hall9492f992017-08-28 12:10:06 -07005402@extension("VK_KHR_external_memory_win32") // 74
5403class VkMemoryWin32HandlePropertiesKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005404 VkStructureType sType
5405 void* pNext
5406 u32 memoryTypeBits
5407}
5408
Jesse Hall9492f992017-08-28 12:10:06 -07005409@extension("VK_KHR_external_memory_win32") // 74
5410class VkMemoryGetWin32HandleInfoKHR {
5411 VkStructureType sType
5412 void* pNext
5413 VkDeviceMemory memory
5414 VkExternalMemoryHandleTypeFlagBitsKHR handleType
5415}
5416
5417@extension("VK_KHR_external_memory_fd") // 75
5418class VkImportMemoryFdInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005419 VkStructureType sType
5420 const void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005421 VkExternalMemoryHandleTypeFlagBitsKHR handleType
Jesse Hallad250842017-03-10 18:35:38 -08005422 int fd
5423}
5424
Jesse Hall9492f992017-08-28 12:10:06 -07005425@extension("VK_KHR_external_memory_fd") // 75
5426class VkMemoryFdPropertiesKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005427 VkStructureType sType
5428 void* pNext
5429 u32 memoryTypeBits
5430}
5431
Jesse Hall9492f992017-08-28 12:10:06 -07005432@extension("VK_KHR_external_memory_fd") // 75
5433class VkMemoryGetFdInfoKHR {
5434 VkStructureType sType
5435 void* pNext
5436 VkDeviceMemory memory
5437 VkExternalMemoryHandleTypeFlagBitsKHR handleType
5438}
5439
5440@extension("VK_KHR_win32_keyed_mutex") // 76
5441class VkWin32KeyedMutexAcquireReleaseInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005442 VkStructureType sType
5443 const void* pNext
5444 u32 acquireCount
5445 const VkDeviceMemory* pAcquireSyncs
5446 const u64* pAcquireKeys
5447 const u32* pAcquireTimeouts
5448 u32 releaseCount
5449 const VkDeviceMemory* pReleaseSyncs
5450 const u64* pReleaseKeys
5451}
5452
Jesse Hall9492f992017-08-28 12:10:06 -07005453@extension("VK_KHR_external_semaphore_capabilities") // 77
5454class VkPhysicalDeviceExternalSemaphoreInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005455 VkStructureType sType
5456 const void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005457 VkExternalSemaphoreHandleTypeFlagBitsKHR handleType
Jesse Hallad250842017-03-10 18:35:38 -08005458}
5459
Jesse Hall9492f992017-08-28 12:10:06 -07005460@extension("VK_KHR_external_semaphore_capabilities") // 77
5461class VkExternalSemaphorePropertiesKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005462 VkStructureType sType
5463 void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005464 VkExternalSemaphoreHandleTypeFlagsKHR exportFromImportedHandleTypes
5465 VkExternalSemaphoreHandleTypeFlagsKHR compatibleHandleTypes
5466 VkExternalSemaphoreFeatureFlagsKHR externalSemaphoreFeatures
Jesse Hallad250842017-03-10 18:35:38 -08005467}
5468
Jesse Hall9492f992017-08-28 12:10:06 -07005469@extension("VK_KHR_external_semaphore") // 78
5470class VkExportSemaphoreCreateInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005471 VkStructureType sType
5472 const void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005473 VkExternalSemaphoreHandleTypeFlagsKHR handleTypes
Jesse Hallad250842017-03-10 18:35:38 -08005474}
5475
Jesse Hall9492f992017-08-28 12:10:06 -07005476@extension("VK_KHR_external_semaphore_win32") // 79
5477class VkImportSemaphoreWin32HandleInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005478 VkStructureType sType
5479 const void* pNext
5480 VkSemaphore semaphore
Jesse Hall9492f992017-08-28 12:10:06 -07005481 VkSemaphoreImportFlagsKHR flags
5482 VkExternalSemaphoreHandleTypeFlagsKHR handleType
Jesse Hallad250842017-03-10 18:35:38 -08005483 platform.HANDLE handle
Jesse Hall9492f992017-08-28 12:10:06 -07005484 platform.LPCWSTR name
Jesse Hallad250842017-03-10 18:35:38 -08005485}
5486
Jesse Hall9492f992017-08-28 12:10:06 -07005487@extension("VK_KHR_external_semaphore_win32") // 79
5488class VkExportSemaphoreWin32HandleInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005489 VkStructureType sType
5490 const void* pNext
5491 const platform.SECURITY_ATTRIBUTES* pAttributes
5492 platform.DWORD dwAccess
5493 platform.LPCWSTR name
5494}
5495
Jesse Hall9492f992017-08-28 12:10:06 -07005496@extension("VK_KHR_external_semaphore_win32") // 79
5497class VkD3D12FenceSubmitInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005498 VkStructureType sType
5499 const void* pNext
5500 u32 waitSemaphoreValuesCount
5501 const u64* pWaitSemaphoreValues
5502 u32 signalSemaphoreValuesCount
5503 const u64* pSignalSemaphoreValues
5504}
5505
Jesse Hall9492f992017-08-28 12:10:06 -07005506@extension("VK_KHR_external_semaphore_win32") // 79
5507class VkSemaphoreGetWin32HandleInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005508 VkStructureType sType
5509 const void* pNext
5510 VkSemaphore semaphore
Jesse Hall9492f992017-08-28 12:10:06 -07005511 VkExternalSemaphoreHandleTypeFlagBitsKHR handleType
5512}
5513
5514@extension("VK_KHR_external_semaphore_fd") // 80
5515class VkImportSemaphoreFdInfoKHR {
5516 VkStructureType sType
5517 const void* pNext
5518 VkSemaphore semaphore
5519 VkSemaphoreImportFlagsKHR flags
5520 VkExternalSemaphoreHandleTypeFlagBitsKHR handleType
Jesse Hallad250842017-03-10 18:35:38 -08005521 s32 fd
5522}
5523
Jesse Hall9492f992017-08-28 12:10:06 -07005524@extension("VK_KHR_external_semaphore_fd") // 80
5525class VkSemaphoreGetFdInfoKHR {
5526 VkStructureType sType
5527 const void* pNext
5528 VkSemaphore semaphore
5529 VkExternalSemaphoreHandleTypeFlagBitsKHR handleType
5530}
5531
Jesse Hallad250842017-03-10 18:35:38 -08005532@extension("VK_KHR_push_descriptor") // 81
5533class VkPhysicalDevicePushDescriptorPropertiesKHR {
5534 VkStructureType sType
5535 void* pNext
5536 u32 maxPushDescriptors
5537}
5538
Jesse Hall9492f992017-08-28 12:10:06 -07005539@extension("VK_KHR_16bit_storage") // 84
5540class VkPhysicalDevice16BitStorageFeaturesKHR {
5541 VkStructureType sType
5542 void* pNext
5543 VkBool32 storageBuffer16BitAccess
5544 VkBool32 uniformAndStorageBuffer16BitAccess
5545 VkBool32 storagePushConstant16
5546 VkBool32 storageInputOutput16
5547}
5548
Jesse Hallad250842017-03-10 18:35:38 -08005549@extension("VK_KHR_incremental_present") // 85
5550class VkRectLayerKHR {
5551 VkOffset2D offset
5552 VkExtent2D extent
5553 u32 layer
5554}
5555
5556@extension("VK_KHR_incremental_present") // 85
5557class VkPresentRegionKHR {
5558 u32 rectangleCount
5559 const VkRectLayerKHR* pRectangles
5560}
5561
5562@extension("VK_KHR_incremental_present") // 85
5563class VkPresentRegionsKHR {
5564 VkStructureType sType
5565 const void* pNext
5566 u32 swapchainCount
5567 const VkPresentRegionKHR* pRegions
5568}
5569
5570@extension("VK_KHR_descriptor_update_template") // 86
5571class VkDescriptorUpdateTemplateEntryKHR {
5572 u32 dstBinding
5573 u32 dstArrayElement
5574 u32 descriptorCount
5575 VkDescriptorType descriptorType
5576 platform.size_t offset
5577 platform.size_t stride
5578}
5579
5580@extension("VK_KHR_descriptor_update_template") // 86
5581class VkDescriptorUpdateTemplateCreateInfoKHR {
5582 VkStructureType sType
5583 void* pNext
5584 VkDescriptorUpdateTemplateCreateFlagsKHR flags
5585 u32 descriptorUpdateEntryCount
5586 const VkDescriptorUpdateTemplateEntryKHR* pDescriptorUpdateEntries
5587 VkDescriptorUpdateTemplateTypeKHR templateType
5588 VkDescriptorSetLayout descriptorSetLayout
5589 VkPipelineBindPoint pipelineBindPoint
5590 VkPipelineLayout pipelineLayout
5591 u32 set
5592}
5593
5594@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13005595class VkDeviceGeneratedCommandsFeaturesNVX {
5596 VkStructureType sType
5597 const void* pNext
5598 VkBool32 computeBindingPointSupport
5599}
5600
Jesse Hallad250842017-03-10 18:35:38 -08005601@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13005602class VkDeviceGeneratedCommandsLimitsNVX {
5603 VkStructureType sType
5604 const void* pNext
5605 u32 maxIndirectCommandsLayoutTokenCount
5606 u32 maxObjectEntryCounts
5607 u32 minSequenceCountBufferOffsetAlignment
5608 u32 minSequenceIndexBufferOffsetAlignment
5609 u32 minCommandsTokenBufferOffsetAlignment
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 VkIndirectCommandsTokenNVX {
5614 VkIndirectCommandsTokenTypeNVX tokenType
5615 VkBuffer buffer
5616 VkDeviceSize offset
5617}
5618
Jesse Hallad250842017-03-10 18:35:38 -08005619@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13005620class VkIndirectCommandsLayoutTokenNVX {
5621 VkIndirectCommandsTokenTypeNVX tokenType
5622 u32 bindingUnit
5623 u32 dynamicCount
5624 u32 divisor
5625}
5626
Jesse Hallad250842017-03-10 18:35:38 -08005627@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13005628class VkIndirectCommandsLayoutCreateInfoNVX {
5629 VkStructureType sType
5630 const void* pNext
5631 VkPipelineBindPoint pipelineBindPoint
5632 VkIndirectCommandsLayoutUsageFlagsNVX flags
5633 u32 tokenCount
5634 const VkIndirectCommandsLayoutTokenNVX* pTokens
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 VkCmdProcessCommandsInfoNVX {
5639 VkStructureType sType
5640 const void* pNext
5641 VkObjectTableNVX objectTable
5642 VkIndirectCommandsLayoutNVX indirectCommandsLayout
5643 u32 indirectCommandsTokenCount
5644 const VkIndirectCommandsTokenNVX* pIndirectCommandsTokens
5645 u32 maxSequencesCount
5646 VkCommandBuffer targetCommandBuffer
5647 VkBuffer sequencesCountBuffer
5648 VkDeviceSize sequencesCountOffset
5649 VkBuffer sequencesIndexBuffer
5650 VkDeviceSize sequencesIndexOffset
5651}
5652
Jesse Hallad250842017-03-10 18:35:38 -08005653@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13005654class VkCmdReserveSpaceForCommandsInfoNVX {
5655 VkStructureType sType
5656 const void* pNext
5657 VkObjectTableNVX objectTable
5658 VkIndirectCommandsLayoutNVX indirectCommandsLayout
5659 u32 maxSequencesCount
5660}
5661
Jesse Hallad250842017-03-10 18:35:38 -08005662@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13005663class VkObjectTableCreateInfoNVX {
5664 VkStructureType sType
5665 const void* pNext
5666 u32 objectCount
5667 const VkObjectEntryTypeNVX* pObjectEntryTypes
5668 const u32* pObjectEntryCounts
5669 const VkObjectEntryUsageFlagsNVX* pObjectEntryUsageFlags
5670 u32 maxUniformBuffersPerDescriptor
5671 u32 maxStorageBuffersPerDescriptor
5672 u32 maxStorageImagesPerDescriptor
5673 u32 maxSampledImagesPerDescriptor
5674 u32 maxPipelineLayouts
5675}
5676
Jesse Hallad250842017-03-10 18:35:38 -08005677@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13005678class VkObjectTableEntryNVX {
5679 VkObjectEntryTypeNVX type
5680 VkObjectEntryUsageFlagsNVX flags
5681}
5682
Jesse Hallad250842017-03-10 18:35:38 -08005683@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13005684class VkObjectTablePipelineEntryNVX {
5685 VkObjectEntryTypeNVX type
5686 VkObjectEntryUsageFlagsNVX flags
5687 VkPipeline pipeline
5688}
5689
Jesse Hallad250842017-03-10 18:35:38 -08005690@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13005691class VkObjectTableDescriptorSetEntryNVX {
5692 VkObjectEntryTypeNVX type
5693 VkObjectEntryUsageFlagsNVX flags
5694 VkPipelineLayout pipelineLayout
5695 VkDescriptorSet descriptorSet
5696}
5697
Jesse Hallad250842017-03-10 18:35:38 -08005698@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13005699class VkObjectTableVertexBufferEntryNVX {
5700 VkObjectEntryTypeNVX type
5701 VkObjectEntryUsageFlagsNVX flags
5702 VkBuffer buffer
5703}
5704
Jesse Hallad250842017-03-10 18:35:38 -08005705@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13005706class VkObjectTableIndexBufferEntryNVX {
5707 VkObjectEntryTypeNVX type
5708 VkObjectEntryUsageFlagsNVX flags
5709 VkBuffer buffer
Jesse Hall77ad05b2017-03-10 22:02:20 -08005710 VkIndexType indexType
Chris Forbes289cb792016-12-30 15:03:55 +13005711}
5712
Jesse Hallad250842017-03-10 18:35:38 -08005713@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13005714class VkObjectTablePushConstantEntryNVX {
5715 VkObjectEntryTypeNVX type
5716 VkObjectEntryUsageFlagsNVX flags
5717 VkPipelineLayout pipelineLayout
5718 VkShaderStageFlags stageFlags
5719}
5720
Jesse Hallad250842017-03-10 18:35:38 -08005721@extension("VK_NV_clip_space_w_scaling") // 88
5722class VkViewportWScalingNV {
5723 f32 xcoeff
5724 f32 ycoeff
Jesse Hall889cd9a2017-02-25 22:12:23 -08005725}
5726
Jesse Hallad250842017-03-10 18:35:38 -08005727@extension("VK_NV_clip_space_w_scaling") // 88
5728class VkPipelineViewportWScalingStateCreateInfoNV {
Jesse Hall889cd9a2017-02-25 22:12:23 -08005729 VkStructureType sType
5730 const void* pNext
Jesse Hallad250842017-03-10 18:35:38 -08005731 VkBool32 viewportWScalingEnable
5732 u32 viewportCount
5733 const VkViewportWScalingNV* pViewportWScalings
Jesse Hall889cd9a2017-02-25 22:12:23 -08005734}
5735
Jesse Hallad250842017-03-10 18:35:38 -08005736@extension("VK_EXT_display_surface_counter") // 91
Jesse Hall77ad05b2017-03-10 22:02:20 -08005737class VkSurfaceCapabilities2EXT {
5738 VkStructureType sType
5739 void* pNext
5740 u32 minImageCount
5741 u32 maxImageCount
5742 VkExtent2D currentExtent
5743 VkExtent2D minImageExtent
5744 VkExtent2D maxImageExtent
5745 u32 maxImageArrayLayers
5746 VkSurfaceTransformFlagsKHR supportedTransforms
5747 VkSurfaceTransformFlagBitsKHR currentTransform
5748 VkCompositeAlphaFlagsKHR supportedCompositeAlpha
5749 VkImageUsageFlags supportedUsageFlags
5750 VkSurfaceCounterFlagsEXT supportedSurfaceCounters
5751}
5752
Jesse Hallad250842017-03-10 18:35:38 -08005753@extension("VK_EXT_display_control") // 92
Jesse Hall77ad05b2017-03-10 22:02:20 -08005754class VkDisplayPowerInfoEXT {
5755 VkStructureType sType
5756 const void* pNext
5757 VkDisplayPowerStateEXT powerState
5758}
5759
Jesse Hallad250842017-03-10 18:35:38 -08005760@extension("VK_EXT_display_control") // 92
Jesse Hall77ad05b2017-03-10 22:02:20 -08005761class VkDeviceEventInfoEXT {
5762 VkStructureType sType
5763 const void* pNext
5764 VkDeviceEventTypeEXT deviceEvent
5765}
5766
Jesse Hallad250842017-03-10 18:35:38 -08005767@extension("VK_EXT_display_control") // 92
Jesse Hall77ad05b2017-03-10 22:02:20 -08005768class VkDisplayEventInfoEXT {
5769 VkStructureType sType
5770 const void* pNext
5771 VkDisplayEventTypeEXT displayEvent
5772}
5773
Jesse Hallad250842017-03-10 18:35:38 -08005774@extension("VK_EXT_display_control") // 92
Jesse Hall77ad05b2017-03-10 22:02:20 -08005775class VkSwapchainCounterCreateInfoEXT {
5776 VkStructureType sType
5777 const void* pNext
5778 VkSurfaceCounterFlagsEXT surfaceCounters
5779}
5780
Jesse Hallad250842017-03-10 18:35:38 -08005781@extension("VK_GOOGLE_display_timing") // 93
5782class VkRefreshCycleDurationGOOGLE {
Jesse Hallfdc8ab32017-03-10 21:01:57 -08005783 u64 refreshDuration
Jesse Hallad250842017-03-10 18:35:38 -08005784}
5785
5786@extension("VK_GOOGLE_display_timing") // 93
5787class VkPastPresentationTimingGOOGLE {
Jesse Hallfdc8ab32017-03-10 21:01:57 -08005788 u32 presentID
5789 u64 desiredPresentTime
5790 u64 actualPresentTime
5791 u64 earliestPresentTime
5792 u64 presentMargin
Jesse Hallad250842017-03-10 18:35:38 -08005793}
5794
5795@extension("VK_GOOGLE_display_timing") // 93
5796class VkPresentTimeGOOGLE {
Jesse Hallfdc8ab32017-03-10 21:01:57 -08005797 u32 presentID
5798 u64 desiredPresentTime
Jesse Hallad250842017-03-10 18:35:38 -08005799}
5800
5801@extension("VK_GOOGLE_display_timing") // 93
5802class VkPresentTimesInfoGOOGLE {
Jesse Hallfdc8ab32017-03-10 21:01:57 -08005803 VkStructureType sType
5804 const void* pNext
5805 u32 swapchainCount
5806 const VkPresentTimeGOOGLE* pTimes
Jesse Hallad250842017-03-10 18:35:38 -08005807}
5808
5809@extension("VK_NVX_multiview_per_view_attributes") // 98
5810class VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX {
5811 VkStructureType sType
5812 void* pNext
5813 VkBool32 perViewPositionAllComponents
5814}
5815
5816@extension("VK_NV_viewport_swizzle") // 99
5817class VkViewportSwizzleNV {
5818 VkViewportCoordinateSwizzleNV x
5819 VkViewportCoordinateSwizzleNV y
5820 VkViewportCoordinateSwizzleNV z
5821 VkViewportCoordinateSwizzleNV w
5822}
5823
5824@extension("VK_NV_viewport_swizzle") // 99
5825class VkPipelineViewportSwizzleStateCreateInfoNV {
5826 VkStructureType sType
5827 const void* pNext
5828 VkPipelineViewportSwizzleStateCreateFlagsNV flags
5829 u32 viewportCount
5830 const VkViewportSwizzleNV* pViewportSwizzles
5831}
5832
5833@extension("VK_EXT_discard_rectangles") // 100
5834class VkPhysicalDeviceDiscardRectanglePropertiesEXT {
5835 VkStructureType sType
Jesse Hallf5ad48b2017-03-20 13:09:19 -07005836 void* pNext
Jesse Hallad250842017-03-10 18:35:38 -08005837 u32 maxDiscardRectangles
5838}
5839
5840@extension("VK_EXT_discard_rectangles") // 100
5841class VkPipelineDiscardRectangleStateCreateInfoEXT {
Jesse Hallfdc8ab32017-03-10 21:01:57 -08005842 VkStructureType sType
5843 const void* pNext
5844 VkPipelineDiscardRectangleStateCreateFlagsEXT flags
5845 VkDiscardRectangleModeEXT discardRectangleMode
5846 u32 discardRectangleCount
5847 const VkRect2D* pDiscardRectangles
Jesse Hallad250842017-03-10 18:35:38 -08005848}
5849
Jesse Hall8c954d32018-01-17 22:06:20 -08005850@extension("VK_EXT_conservative_rasterization") // 102
5851class VkPhysicalDeviceConservativeRasterizationPropertiesEXT {
5852 VkStructureType sType
5853 void* pNext
5854 f32 primitiveOverestimationSize
5855 f32 maxExtraPrimitiveOverestimationSize
5856 f32 extraPrimitiveOverestimationSizeGranularity
5857 VkBool32 primitiveUnderestimation
5858 VkBool32 conservativePointAndLineRasterization
5859 VkBool32 degenerateTrianglesRasterized
5860 VkBool32 degenerateLinesRasterized
5861 VkBool32 fullyCoveredFragmentShaderInputVariable
5862 VkBool32 conservativeRasterizationPostDepthCoverage
5863}
5864
5865@extension("VK_EXT_conservative_rasterization") // 102
5866class VkPipelineRasterizationConservativeStateCreateInfoEXT {
5867 VkStructureType sType
5868 const void* pNext
5869 VkPipelineRasterizationConservativeStateCreateFlagsEXT flags
5870 VkConservativeRasterizationModeEXT conservativeRasterizationMode
5871 f32 extraPrimitiveOverestimationSize
5872}
5873
Jesse Hallad250842017-03-10 18:35:38 -08005874@extension("VK_EXT_hdr_metadata") // 106
Courtney Goeltzenleuchterd634c482017-01-05 15:55:31 -07005875class VkXYColorEXT {
Jesse Hallfdc8ab32017-03-10 21:01:57 -08005876 f32 x
5877 f32 y
Courtney Goeltzenleuchterd634c482017-01-05 15:55:31 -07005878}
5879
Jesse Hallad250842017-03-10 18:35:38 -08005880@extension("VK_EXT_hdr_metadata") // 106
Courtney Goeltzenleuchterd634c482017-01-05 15:55:31 -07005881class VkHdrMetadataEXT {
Jesse Hallfdc8ab32017-03-10 21:01:57 -08005882 VkStructureType sType
5883 const void* pNext
5884 VkXYColorEXT displayPrimaryRed
5885 VkXYColorEXT displayPrimaryGreen
5886 VkXYColorEXT displayPrimaryBlue
5887 VkXYColorEXT whitePoint
5888 f32 maxLuminance
5889 f32 minLuminance
5890 f32 maxContentLightLevel
5891 f32 maxFrameAverageLightLevel
Courtney Goeltzenleuchterd634c482017-01-05 15:55:31 -07005892}
5893
Jesse Hall05556b12017-05-18 17:40:25 -07005894@extension("VK_KHR_shared_presentable_image") // 112
Chris Forbese2d3ee12017-03-16 16:10:15 +13005895class VkSharedPresentSurfaceCapabilitiesKHR {
5896 VkStructureType sType
5897 const void* pNext
5898 VkImageUsageFlags sharedPresentSupportedUsageFlags
5899}
5900
Jesse Hall9492f992017-08-28 12:10:06 -07005901@extension("VK_KHR_external_fence_capabilities") // 113
5902class VkPhysicalDeviceExternalFenceInfoKHR {
5903 VkStructureType sType
5904 const void* pNext
5905 VkExternalFenceHandleTypeFlagBitsKHR handleType
5906}
5907
5908@extension("VK_KHR_external_fence_capabilities") // 113
5909class VkExternalFencePropertiesKHR {
5910 VkStructureType sType
5911 void* pNext
5912 VkExternalFenceHandleTypeFlagsKHR exportFromImportedHandleTypes
5913 VkExternalFenceHandleTypeFlagsKHR compatibleHandleTypes
5914 VkExternalFenceFeatureFlagsKHR externalFenceFeatures
5915}
5916
5917@extension("VK_KHR_external_fence") // 114
5918class VkExportFenceCreateInfoKHR {
5919 VkStructureType sType
5920 const void* pNext
5921 VkExternalFenceHandleTypeFlagsKHR handleTypes
5922}
5923
5924@extension("VK_KHR_external_fence_win32") // 115
5925class VkImportFenceWin32HandleInfoKHR {
5926 VkStructureType sType
5927 const void* pNext
5928 VkFence fence
5929 VkFenceImportFlagsKHR flags
5930 VkExternalFenceHandleTypeFlagBitsKHR handleType
5931 platform.HANDLE handle
5932 platform.LPCWSTR name
5933}
5934
5935@extension("VK_KHR_external_fence_win32") // 115
5936class VkExportFenceWin32HandleInfoKHR {
5937 VkStructureType sType
5938 const void* pNext
5939 const platform.SECURITY_ATTRIBUTES* pAttributes
5940 platform.DWORD dwAccess
5941 platform.LPCWSTR name
5942}
5943
5944@extension("VK_KHR_external_fence_win32") // 115
5945class VkFenceGetWin32HandleInfoKHR {
5946 VkStructureType sType
5947 const void* pNext
5948 VkFence fence
5949 VkExternalFenceHandleTypeFlagBitsKHR handleType
5950}
5951
5952@extension("VK_KHR_external_fence_fd") // 116
5953class VkImportFenceFdInfoKHR {
5954 VkStructureType sType
5955 const void* pNext
5956 VkFence fence
5957 VkFenceImportFlagsKHR flags
5958 VkExternalFenceHandleTypeFlagBitsKHR handleType
5959 int fd
5960}
5961
5962@extension("VK_KHR_external_fence_fd") // 116
5963class VkFenceGetFdInfoKHR {
5964 VkStructureType sType
5965 const void* pNext
5966 VkFence fence
5967 VkExternalFenceHandleTypeFlagBitsKHR handleType
5968}
5969
Jesse Hall076f95d2017-09-20 11:34:47 -07005970@extension("VK_KHR_maintenance2") // 118
5971class VkPhysicalDevicePointClippingPropertiesKHR {
5972 VkStructureType sType
5973 void* pNext
5974 VkPointClippingBehaviorKHR pointClippingBehavior
5975}
5976
5977@extension("VK_KHR_maintenance2") // 118
5978class VkInputAttachmentAspectReferenceKHR {
5979 u32 subpass
5980 u32 inputAttachmentIndex
5981 VkImageAspectFlags aspectMask
5982}
5983
5984@extension("VK_KHR_maintenance2") // 118
5985class VkRenderPassInputAttachmentAspectCreateInfoKHR {
5986 VkStructureType sType
5987 const void* pNext
5988 u32 aspectReferenceCount
5989 const VkInputAttachmentAspectReferenceKHR* pAspectReferences
5990}
5991
5992@extension("VK_KHR_maintenance2") // 118
5993class VkImageViewUsageCreateInfoKHR {
5994 VkStructureType sType
5995 const void* pNext
5996 VkImageUsageFlags usage
5997}
5998
5999@extension("VK_KHR_maintenance2") // 118
6000class VkPipelineTessellationDomainOriginStateCreateInfoKHR {
6001 VkStructureType sType
6002 const void* pNext
6003 VkTessellationDomainOriginKHR domainOrigin
6004}
6005
Jesse Hall05556b12017-05-18 17:40:25 -07006006@extension("VK_KHR_get_surface_capabilities2") // 120
Chris Forbese2d3ee12017-03-16 16:10:15 +13006007class VkPhysicalDeviceSurfaceInfo2KHR {
6008 VkStructureType sType
6009 const void* pNext
6010 VkSurfaceKHR surface
6011}
6012
Jesse Hall05556b12017-05-18 17:40:25 -07006013@extension("VK_KHR_get_surface_capabilities2") // 120
Chris Forbese2d3ee12017-03-16 16:10:15 +13006014class VkSurfaceCapabilities2KHR {
6015 VkStructureType sType
6016 void* pNext
6017 VkSurfaceCapabilitiesKHR surfaceCapabilities
6018}
6019
Jesse Hall05556b12017-05-18 17:40:25 -07006020@extension("VK_KHR_get_surface_capabilities2") // 120
Chris Forbese2d3ee12017-03-16 16:10:15 +13006021class VkSurfaceFormat2KHR {
6022 VkStructureType sType
6023 void* pNext
6024 VkSurfaceFormatKHR surfaceFormat
6025}
6026
Jesse Hall9492f992017-08-28 12:10:06 -07006027@extension("VK_KHR_variable_pointers") // 121
6028class VkPhysicalDeviceVariablePointerFeaturesKHR {
6029 VkStructureType sType
6030 void* pNext
6031 VkBool32 variablePointersStorageBuffer
6032 VkBool32 variablePointers
6033}
6034
Jesse Hall54f8d132018-04-18 08:16:59 -07006035@extension("VK_KHR_display_properties2") // 122
6036class VkDisplayProperties2KHR {
6037 VkStructureType sType
6038 void* pNext
6039 VkDisplayPropertiesKHR displayProperties
6040}
6041
6042@extension("VK_KHR_display_properties2") // 122
6043class VkDisplayPlaneProperties2KHR {
6044 VkStructureType sType
6045 void* pNext
6046 VkDisplayPlanePropertiesKHR displayPlaneProperties
6047}
6048
6049@extension("VK_KHR_display_properties2") // 122
6050class VkDisplayModeProperties2KHR {
6051 VkStructureType sType
6052 void* pNext
6053 VkDisplayModePropertiesKHR displayModeProperties
6054}
6055
6056@extension("VK_KHR_display_properties2") // 122
6057class VkDisplayPlaneInfo2KHR {
6058 VkStructureType sType
6059 const void* pNext
6060 VkDisplayModeKHR mode
6061 u32 planeIndex
6062}
6063
6064@extension("VK_KHR_display_properties2") // 122
6065class VkDisplayPlaneCapabilities2KHR {
6066 VkStructureType sType
6067 void* pNext
6068 VkDisplayPlaneCapabilitiesKHR capabilities
6069}
6070
Jesse Hallad250842017-03-10 18:35:38 -08006071@extension("VK_MVK_ios_surface") // 123
6072class VkIOSSurfaceCreateInfoMVK {
6073 VkStructureType sType
6074 const void* pNext
6075 VkIOSSurfaceCreateFlagsMVK flags
6076 const void* pView
6077}
6078
6079@extension("VK_MVK_macos_surface") // 124
6080class VkMacOSSurfaceCreateInfoMVK {
6081 VkStructureType sType
6082 const void* pNext
6083 VkMacOSSurfaceCreateFlagsMVK flags
6084 const void* pView
6085}
6086
Jesse Hall9492f992017-08-28 12:10:06 -07006087@extension("VK_KHR_dedicated_allocation") // 128
6088class VkMemoryDedicatedRequirementsKHR {
6089 VkStructureType sType
6090 void* pNext
6091 VkBool32 prefersDedicatedAllocation
6092 VkBool32 requiresDedicatedAllocation
6093}
6094
6095@extension("VK_KHR_dedicated_allocation") // 128
6096class VkMemoryDedicatedAllocateInfoKHR {
6097 VkStructureType sType
6098 const void* pNext
6099 VkImage image
6100 VkBuffer buffer
6101}
6102
Jesse Hall8c954d32018-01-17 22:06:20 -08006103@extension("VK_EXT_debug_utils") // 129
6104class VkDebugUtilsObjectNameInfoEXT {
6105 VkStructureType sType
6106 const void* pNext
6107 VkObjectType objectType
6108 u64 objectHandle
6109 const char* pObjectName
6110}
Jesse Hall72e6a132018-04-06 13:00:44 -07006111
Jesse Hall8c954d32018-01-17 22:06:20 -08006112@extension("VK_EXT_debug_utils") // 129
6113class VkDebugUtilsObjectTagInfoEXT {
6114 VkStructureType sType
6115 const void* pNext
6116 VkObjectType objectType
6117 u64 objectHandle
6118 u64 tagName
6119 platform.size_t tagSize
6120 const void* pTag
6121}
Jesse Hall72e6a132018-04-06 13:00:44 -07006122
Jesse Hall8c954d32018-01-17 22:06:20 -08006123@extension("VK_EXT_debug_utils") // 129
6124class VkDebugUtilsLabelEXT {
6125 VkStructureType sType
6126 const void* pNext
6127 const char* pLabelName
6128 f32[4] color
6129}
6130
6131@extension("VK_EXT_debug_utils") // 129
6132class VkDebugUtilsMessengerCallbackDataEXT {
6133 VkStructureType sType
6134 const void* pNext
6135 VkDebugUtilsMessengerCallbackDataFlagsEXT flags
6136 const char* pMessageIdName
6137 s32 messageIdNumber
6138 const char* pMessage
6139 u32 queueLabelCount
6140 VkDebugUtilsLabelEXT* pQueueLabels
6141 u32 cmdBufLabelCount
6142 VkDebugUtilsLabelEXT* pCmdBufLabels
6143 u32 objectCount
6144 VkDebugUtilsObjectNameInfoEXT* pObjects
6145}
6146
6147@extension("VK_EXT_debug_utils") // 129
6148class VkDebugUtilsMessengerCreateInfoEXT {
6149 VkStructureType sType
6150 const void* pNext
6151 VkDebugUtilsMessengerCreateFlagsEXT flags
6152 VkDebugUtilsMessageSeverityFlagsEXT messageSeverity
6153 VkDebugUtilsMessageTypeFlagsEXT messageType
6154 PFN_vkDebugUtilsMessengerCallbackEXT pfnUserCallback
6155 void* pUserData
6156}
6157
Jesse Hall36215a92018-01-18 15:04:37 -08006158@extension("VK_ANDROID_external_memory_android_hardware_buffer") // 131
6159class VkAndroidHardwareBufferUsageANDROID {
6160 VkStructureType sType
6161 void* pNext
6162 u64 androidHardwareBufferUsage
6163}
6164
6165@extension("VK_ANDROID_external_memory_android_hardware_buffer") // 130
6166class VkAndroidHardwareBufferPropertiesANDROID {
6167 VkStructureType sType
6168 void* pNext
6169 VkDeviceSize allocationSize
6170 u32 memoryTypeBits
6171}
6172
6173@extension("VK_ANDROID_external_memory_android_hardware_buffer") // 130
6174class VkAndroidHardwareBufferFormatPropertiesANDROID {
6175 VkStructureType sType
6176 void* pNext
6177 VkFormat format
6178 u64 externalFormat
6179 VkFormatFeatureFlags formatFeatures
6180 VkComponentMapping samplerYcbcrConversionComponents
6181 VkSamplerYcbcrModelConversion suggestedYcbcrModel
6182 VkSamplerYcbcrRange suggestedYcbcrRange
6183 VkChromaLocation suggestedXChromaOffset
6184 VkChromaLocation suggestedYChromaOffset
6185}
6186
6187@extension("VK_ANDROID_external_memory_android_hardware_buffer") // 130
6188class VkImportAndroidHardwareBufferInfoANDROID {
6189 VkStructureType sType
6190 const void* pNext
6191 platform.AHardwareBuffer* buffer
6192}
6193
6194@extension("VK_ANDROID_external_memory_android_hardware_buffer") // 130
6195class VkMemoryGetAndroidHardwareBufferInfoANDROID {
6196 VkStructureType sType
6197 const void* pNext
6198 VkDeviceMemory memory
6199}
6200
6201@extension("VK_ANDROID_external_memory_android_hardware_buffer") // 130
6202class VkExternalFormatANDROID {
6203 VkStructureType sType
6204 void* pNext
6205 u64 externalFormat
6206}
6207
Jesse Hall7ba0ac72017-07-07 17:13:23 -07006208@extension("VK_EXT_sampler_filter_minmax") // 131
6209class VkSamplerReductionModeCreateInfoEXT {
6210 VkStructureType sType
6211 const void* pNext
6212 VkSamplerReductionModeEXT reductionMode
6213}
6214
6215@extension("VK_EXT_sampler_filter_minmax") // 131
6216class VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT {
6217 VkStructureType sType
6218 void* pNext
6219 VkBool32 filterMinmaxSingleComponentFormats
6220 VkBool32 filterMinmaxImageComponentMapping
6221}
6222
Jesse Hall77726222017-09-19 14:49:27 -05006223@extension("VK_EXT_sample_locations") // 144
6224class VkSampleLocationEXT {
6225 f32 x
6226 f32 y
6227}
6228
6229@extension("VK_EXT_sample_locations") // 144
6230class VkSampleLocationsInfoEXT {
6231 VkStructureType sType
6232 const void* pNext
6233 VkSampleCountFlagBits sampleLocationsPerPixel
6234 VkExtent2D sampleLocationGridSize
6235 u32 sampleLocationsCount
6236 const VkSampleLocationEXT* pSampleLocations
6237}
6238
6239@extension("VK_EXT_sample_locations") // 144
6240class VkAttachmentSampleLocationsEXT {
6241 u32 attachmentIndex
6242 VkSampleLocationsInfoEXT sampleLocationsInfo
6243}
6244
6245@extension("VK_EXT_sample_locations") // 144
6246class VkSubpassSampleLocationsEXT {
6247 u32 subpassIndex
6248 VkSampleLocationsInfoEXT sampleLocationsInfo
6249}
6250
6251@extension("VK_EXT_sample_locations") // 144
6252class VkRenderPassSampleLocationsBeginInfoEXT {
6253 VkStructureType sType
6254 const void* pNext
6255 u32 attachmentInitialSampleLocationsCount
6256 const VkAttachmentSampleLocationsEXT* pAttachmentInitialSampleLocations
6257 u32 postSubpassSampleLocationsCount
Jesse Hall8c954d32018-01-17 22:06:20 -08006258 const VkSubpassSampleLocationsEXT* pPostSubpassSampleLocations
Jesse Hall77726222017-09-19 14:49:27 -05006259}
6260
6261@extension("VK_EXT_sample_locations") // 144
6262class VkPipelineSampleLocationsStateCreateInfoEXT {
6263 VkStructureType sType
6264 const void* pNext
6265 VkBool32 sampleLocationsEnable
6266 VkSampleLocationsInfoEXT sampleLocationsInfo
6267}
6268
6269@extension("VK_EXT_sample_locations") // 144
6270class VkPhysicalDeviceSampleLocationsPropertiesEXT {
6271 VkStructureType sType
6272 void* pNext
6273 VkSampleCountFlags sampleLocationSampleCounts
6274 VkExtent2D maxSampleLocationGridSize
6275 f32[2] sampleLocationCoordinateRange
6276 u32 sampleLocationSubPixelBits
6277 VkBool32 variableSampleLocations
6278}
6279
6280@extension("VK_EXT_sample_locations") // 144
6281class VkMultisamplePropertiesEXT {
6282 VkStructureType sType
6283 void* pNext
6284 VkExtent2D maxSampleLocationGridSize
6285}
6286
Jesse Hall9492f992017-08-28 12:10:06 -07006287@extension("VK_KHR_get_memory_requirements2") // 147
6288class VkBufferMemoryRequirementsInfo2KHR {
6289 VkStructureType sType
6290 const void* pNext
6291 VkBuffer buffer
6292}
6293
6294@extension("VK_KHR_get_memory_requirements2") // 147
6295class VkImageMemoryRequirementsInfo2KHR {
6296 VkStructureType sType
6297 const void* pNext
6298 VkImage image
6299}
6300
6301@extension("VK_KHR_get_memory_requirements2") // 147
6302class VkImageSparseMemoryRequirementsInfo2KHR {
6303 VkStructureType sType
6304 const void* pNext
6305 VkImage image
6306}
6307
6308@extension("VK_KHR_get_memory_requirements2") // 147
6309class VkMemoryRequirements2KHR {
6310 VkStructureType sType
6311 void* pNext
6312 VkMemoryRequirements memoryRequirements
6313}
6314
6315@extension("VK_KHR_get_memory_requirements2") // 147
6316class VkSparseImageMemoryRequirements2KHR {
6317 VkStructureType sType
6318 void* pNext
6319 VkSparseImageMemoryRequirements memoryRequirements
6320}
6321
Jesse Hall076f95d2017-09-20 11:34:47 -07006322@extension("VK_KHR_image_format_list") // 148
6323class VkImageFormatListCreateInfoKHR {
6324 VkStructureType sType
6325 const void* pNext
6326 u32 viewFormatCount
6327 const VkFormat* pViewFormats
6328}
6329
Jesse Hall7ba0ac72017-07-07 17:13:23 -07006330@extension("VK_EXT_blend_operation_advanced") // 149
6331class VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT {
6332 VkStructureType sType
6333 void* pNext
6334 VkBool32 advancedBlendCoherentOperations
6335}
6336
6337@extension("VK_EXT_blend_operation_advanced") // 149
6338class VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT {
6339 VkStructureType sType
6340 void* pNext
6341 u32 advancedBlendMaxColorAttachments
6342 VkBool32 advancedBlendIndependentBlend
6343 VkBool32 advancedBlendNonPremultipliedSrcColor
6344 VkBool32 advancedBlendNonPremultipliedDstColor
6345 VkBool32 advancedBlendCorrelatedOverlap
6346 VkBool32 advancedBlendAllOperations
6347}
6348
6349@extension("VK_EXT_blend_operation_advanced") // 149
6350class VkPipelineColorBlendAdvancedStateCreateInfoEXT {
6351 VkStructureType sType
6352 const void* pNext
6353 VkBool32 srcPremultiplied
6354 VkBool32 dstPremultiplied
6355 VkBlendOverlapEXT blendOverlap
6356}
6357
6358@extension("VK_NV_fragment_coverage_to_color") // 150
6359class VkPipelineCoverageToColorStateCreateInfoNV {
6360 VkStructureType sType
6361 const void* pNext
6362 VkPipelineCoverageToColorStateCreateFlagsNV flags
6363 VkBool32 coverageToColorEnable
6364 u32 coverageToColorLocation
6365}
6366
6367@extension("VK_NV_framebuffer_mixed_samples") // 153
6368class VkPipelineCoverageModulationStateCreateInfoNV {
6369 VkStructureType sType
6370 const void* pNext
6371 VkPipelineCoverageModulationStateCreateFlagsNV flags
6372 VkCoverageModulationModeNV coverageModulationMode
6373 VkBool32 coverageModulationTableEnable
6374 u32 coverageModulationTableCount
6375 const f32* pCoverageModulationTable
6376}
6377
Jesse Hall076f95d2017-09-20 11:34:47 -07006378@extension("VK_KHR_sampler_ycbcr_conversion") // 157
6379class VkSamplerYcbcrConversionCreateInfoKHR {
6380 VkStructureType sType
6381 const void* pNext
6382 VkFormat format
6383 VkSamplerYcbcrModelConversionKHR ycbcrModel
6384 VkSamplerYcbcrRangeKHR ycbcrRange
6385 VkComponentMapping components
6386 VkChromaLocationKHR xChromaOffset
6387 VkChromaLocationKHR yChromaOffset
6388 VkFilter chromaFilter
6389 VkBool32 forceExplicitReconstruction
6390}
6391
6392@extension("VK_KHR_sampler_ycbcr_conversion") // 157
6393class VkSamplerYcbcrConversionInfoKHR {
6394 VkStructureType sType
6395 const void* pNext
6396 VkSamplerYcbcrConversionKHR conversion
6397}
6398
6399@extension("VK_KHR_sampler_ycbcr_conversion") // 157
6400class VkBindImagePlaneMemoryInfoKHR {
6401 VkStructureType sType
6402 const void* pNext
6403 VkImageAspectFlagBits planeAspect
6404}
6405
6406@extension("VK_KHR_sampler_ycbcr_conversion") // 157
6407class VkImagePlaneMemoryRequirementsInfoKHR {
6408 VkStructureType sType
6409 const void* pNext
6410 VkImageAspectFlagBits planeAspect
6411}
6412
6413@extension("VK_KHR_sampler_ycbcr_conversion") // 157
6414class VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR {
6415 VkStructureType sType
6416 void* pNext
6417 VkBool32 samplerYcbcrConversion
6418}
6419
6420@extension("VK_KHR_sampler_ycbcr_conversion") // 157
6421class VkSamplerYcbcrConversionImageFormatPropertiesKHR {
6422 VkStructureType sType
6423 void* pNext
6424 u32 combinedImageSamplerDescriptorCount
6425}
6426
6427@extension("VK_KHR_bind_memory2") // 158
6428class VkBindBufferMemoryInfoKHR {
6429 VkStructureType sType
6430 const void* pNext
6431 VkBuffer buffer
6432 VkDeviceMemory memory
6433 VkDeviceSize memoryOffset
6434}
6435
6436@extension("VK_KHR_bind_memory2") // 158
6437class VkBindImageMemoryInfoKHR {
6438 VkStructureType sType
6439 const void* pNext
6440 VkImage image
6441 VkDeviceMemory memory
6442 VkDeviceSize memoryOffset
6443}
6444
Jesse Hall77726222017-09-19 14:49:27 -05006445@extension("VK_EXT_validation_cache") // 161
6446class VkValidationCacheCreateInfoEXT {
6447 VkStructureType sType
6448 const void* pNext
6449 VkValidationCacheCreateFlagsEXT flags
6450 platform.size_t initialDataSize
6451 const void* pInitialData
6452}
6453
6454@extension("VK_EXT_validation_cache") // 161
6455class VkShaderModuleValidationCacheCreateInfoEXT {
6456 VkStructureType sType
6457 const void* pNext
6458 VkValidationCacheEXT validationCache
6459}
6460
Jesse Hall72e6a132018-04-06 13:00:44 -07006461@extension("VK_EXT_descriptor_indexing") // 162
6462class VkDescriptorSetLayoutBindingFlagsCreateInfoEXT {
6463 VkStructureType sType
6464 const void* pNext
6465 u32 bindingCount
6466 const VkDescriptorBindingFlagsEXT* pBindingFlags
6467}
6468
6469@extension("VK_EXT_descriptor_indexing") // 162
6470class VkPhysicalDeviceDescriptorIndexingFeaturesEXT {
6471 VkStructureType sType
6472 void* pNext
6473 VkBool32 shaderInputAttachmentArrayDynamicIndexing
6474 VkBool32 shaderUniformTexelBufferArrayDynamicIndexing
6475 VkBool32 shaderStorageTexelBufferArrayDynamicIndexing
6476 VkBool32 shaderUniformBufferArrayNonUniformIndexing
6477 VkBool32 shaderSampledImageArrayNonUniformIndexing
6478 VkBool32 shaderStorageBufferArrayNonUniformIndexing
6479 VkBool32 shaderStorageImageArrayNonUniformIndexing
6480 VkBool32 shaderInputAttachmentArrayNonUniformIndexing
6481 VkBool32 shaderUniformTexelBufferArrayNonUniformIndexing
6482 VkBool32 shaderStorageTexelBufferArrayNonUniformIndexing
6483 VkBool32 descriptorBindingUniformBufferUpdateAfterBind
6484 VkBool32 descriptorBindingSampledImageUpdateAfterBind
6485 VkBool32 descriptorBindingStorageImageUpdateAfterBind
6486 VkBool32 descriptorBindingStorageBufferUpdateAfterBind
6487 VkBool32 descriptorBindingUniformTexelBufferUpdateAfterBind
6488 VkBool32 descriptorBindingStorageTexelBufferUpdateAfterBind
6489 VkBool32 descriptorBindingUpdateUnusedWhilePending
6490 VkBool32 descriptorBindingPartiallyBound
6491 VkBool32 descriptorBindingVariableDescriptorCount
6492 VkBool32 runtimeDescriptorArray
6493}
6494
6495@extension("VK_EXT_descriptor_indexing") // 162
6496class VkPhysicalDeviceDescriptorIndexingPropertiesEXT {
6497 VkStructureType sType
6498 void* pNext
6499 u32 maxUpdateAfterBindDescriptorsInAllPools
6500 VkBool32 shaderUniformBufferArrayNonUniformIndexingNative
6501 VkBool32 shaderSampledImageArrayNonUniformIndexingNative
6502 VkBool32 shaderStorageBufferArrayNonUniformIndexingNative
6503 VkBool32 shaderStorageImageArrayNonUniformIndexingNative
6504 VkBool32 shaderInputAttachmentArrayNonUniformIndexingNative
6505 VkBool32 robustBufferAccessUpdateAfterBind
6506 VkBool32 quadDivergentImplicitLod
6507 u32 maxPerStageDescriptorUpdateAfterBindSamplers
6508 u32 maxPerStageDescriptorUpdateAfterBindUniformBuffers
6509 u32 maxPerStageDescriptorUpdateAfterBindStorageBuffers
6510 u32 maxPerStageDescriptorUpdateAfterBindSampledImages
6511 u32 maxPerStageDescriptorUpdateAfterBindStorageImages
6512 u32 maxPerStageDescriptorUpdateAfterBindInputAttachments
6513 u32 maxPerStageUpdateAfterBindResources
6514 u32 maxDescriptorSetUpdateAfterBindSamplers
6515 u32 maxDescriptorSetUpdateAfterBindUniformBuffers
6516 u32 maxDescriptorSetUpdateAfterBindUniformBuffersDynamic
6517 u32 maxDescriptorSetUpdateAfterBindStorageBuffers
6518 u32 maxDescriptorSetUpdateAfterBindStorageBuffersDynamic
6519 u32 maxDescriptorSetUpdateAfterBindSampledImages
6520 u32 maxDescriptorSetUpdateAfterBindStorageImages
6521 u32 maxDescriptorSetUpdateAfterBindInputAttachments
6522}
6523
6524@extension("VK_EXT_descriptor_indexing") // 162
6525class VkDescriptorSetVariableDescriptorCountAllocateInfoEXT {
6526 VkStructureType sType
6527 const void* pNext
6528 u32 descriptorSetCount
6529 const u32* pDescriptorCounts
6530}
6531
6532@extension("VK_EXT_descriptor_indexing") // 162
6533class VkDescriptorSetVariableDescriptorCountLayoutSupportEXT {
6534 VkStructureType sType
6535 void* pNext
6536 u32 maxVariableDescriptorCount
6537}
6538
Daniel Koch09f7bf92017-10-05 00:26:58 -04006539@extension("VK_KHR_maintenance3") // 169
6540class VkPhysicalDeviceMaintenance3PropertiesKHR {
6541 VkStructureType sType
6542 void* pNext
6543 u32 maxPerSetDescriptors
6544 VkDeviceSize maxMemoryAllocationSize
6545}
6546
6547@extension("VK_KHR_maintenance3") // 169
6548class VkDescriptorSetLayoutSupportKHR {
6549 VkStructureType sType
6550 void* pNext
6551 VkBool32 supported
6552}
6553
Jesse Hall8c954d32018-01-17 22:06:20 -08006554@extension("VK_EXT_global_priority") // 175
6555class VkDeviceQueueGlobalPriorityCreateInfoEXT {
6556 VkStructureType sType
6557 const void* pNext
6558 VkQueueGlobalPriorityEXT globalPriority
6559}
6560
6561@extension("VK_EXT_external_memory_host") // 179
6562class VkImportMemoryHostPointerInfoEXT {
6563 VkStructureType sType
6564 const void* pNext
6565 VkExternalMemoryHandleTypeFlagBits handleType
6566 void* pHostPointer
6567}
6568
6569@extension("VK_EXT_external_memory_host") // 179
6570class VkMemoryHostPointerPropertiesEXT {
6571 VkStructureType sType
6572 void* pNext
6573 u32 memoryTypeBits
6574}
6575
6576@extension("VK_EXT_external_memory_host") // 179
6577class VkPhysicalDeviceExternalMemoryHostPropertiesEXT {
6578 VkStructureType sType
6579 void* pNext
6580 VkDeviceSize minImportedHostPointerAlignment
6581}
6582
Jesse Hall72e6a132018-04-06 13:00:44 -07006583@extension("VK_AMD_shader_core_properties") // 186
6584class VkPhysicalDeviceShaderCorePropertiesAMD {
6585 VkStructureType sType
6586 void* pNext
6587 u32 shaderEngineCount
6588 u32 shaderArraysPerEngineCount
6589 u32 computeUnitsPerShaderArray
6590 u32 simdPerComputeUnit
6591 u32 wavefrontsPerSimd
6592 u32 wavefrontSize
6593 u32 sgprsPerSimd
6594 u32 minSgprAllocation
6595 u32 maxSgprAllocation
6596 u32 sgprAllocationGranularity
6597 u32 vgprsPerSimd
6598 u32 minVgprAllocation
6599 u32 maxVgprAllocation
6600 u32 vgprAllocationGranularity
6601}
6602
6603@extension("VK_EXT_vertex_attribute_divisor") // 191
6604class VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT {
6605 VkStructureType sType
6606 void* pNext
6607 u32 maxVertexAttribDivisor
6608}
6609
6610@extension("VK_EXT_vertex_attribute_divisor") // 191
6611class VkVertexInputBindingDivisorDescriptionEXT {
6612 u32 binding
6613 u32 divisor
6614}
6615
6616@extension("VK_EXT_vertex_attribute_divisor") // 191
6617class VkPipelineVertexInputDivisorStateCreateInfoEXT {
6618 VkStructureType sType
6619 const void* pNext
6620 u32 vertexBindingDivisorCount
6621 const VkVertexInputBindingDivisorDescriptionEXT* pVertexBindingDivisors
6622}
6623
Daniel Koch09f7bf92017-10-05 00:26:58 -04006624
Jesse Halld27f6aa2015-08-15 17:58:48 -07006625////////////////
6626// Commands //
6627////////////////
6628
6629// Function pointers. TODO: add support for function pointers.
6630
6631@external type void* PFN_vkVoidFunction
6632@pfn cmd void vkVoidFunction() {
6633}
6634
Jesse Hall3fbc8562015-11-29 22:10:52 -08006635@external type void* PFN_vkAllocationFunction
6636@pfn cmd void* vkAllocationFunction(
Jesse Halld27f6aa2015-08-15 17:58:48 -07006637 void* pUserData,
6638 platform.size_t size,
6639 platform.size_t alignment,
Jesse Hall3fbc8562015-11-29 22:10:52 -08006640 VkSystemAllocationScope allocationScope) {
Jesse Hall03b6fe12015-11-24 12:44:21 -08006641 return ?
6642}
6643
Jesse Hall3fbc8562015-11-29 22:10:52 -08006644@external type void* PFN_vkReallocationFunction
6645@pfn cmd void* vkReallocationFunction(
Jesse Hall03b6fe12015-11-24 12:44:21 -08006646 void* pUserData,
6647 void* pOriginal,
6648 platform.size_t size,
6649 platform.size_t alignment,
Jesse Hall3fbc8562015-11-29 22:10:52 -08006650 VkSystemAllocationScope allocationScope) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07006651 return ?
6652}
6653
6654@external type void* PFN_vkFreeFunction
6655@pfn cmd void vkFreeFunction(
6656 void* pUserData,
Jesse Hall3fbc8562015-11-29 22:10:52 -08006657 void* pMemory) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07006658}
6659
Jesse Hall3fbc8562015-11-29 22:10:52 -08006660@external type void* PFN_vkInternalAllocationNotification
6661@pfn cmd void vkInternalAllocationNotification(
Jesse Hall03b6fe12015-11-24 12:44:21 -08006662 void* pUserData,
6663 platform.size_t size,
Jesse Hall3fbc8562015-11-29 22:10:52 -08006664 VkInternalAllocationType allocationType,
6665 VkSystemAllocationScope allocationScope) {
Jesse Hall03b6fe12015-11-24 12:44:21 -08006666}
6667
6668@external type void* PFN_vkInternalFreeNotification
6669@pfn cmd void vkInternalFreeNotification(
6670 void* pUserData,
6671 platform.size_t size,
Jesse Hall3fbc8562015-11-29 22:10:52 -08006672 VkInternalAllocationType allocationType,
6673 VkSystemAllocationScope allocationScope) {
Jesse Hall03b6fe12015-11-24 12:44:21 -08006674}
Jesse Halld27f6aa2015-08-15 17:58:48 -07006675
6676// Global functions
6677
6678@threadSafety("system")
6679cmd VkResult vkCreateInstance(
6680 const VkInstanceCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08006681 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07006682 VkInstance* pInstance) {
6683 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO)
6684
6685 instance := ?
6686 pInstance[0] = instance
6687 State.Instances[instance] = new!InstanceObject()
6688
Jesse Hall3dd678a2016-01-08 21:52:01 -08006689 layers := pCreateInfo.ppEnabledLayerNames[0:pCreateInfo.enabledLayerCount]
6690 extensions := pCreateInfo.ppEnabledExtensionNames[0:pCreateInfo.enabledExtensionCount]
Jesse Halld27f6aa2015-08-15 17:58:48 -07006691
6692 return ?
6693}
6694
6695@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07006696cmd void vkDestroyInstance(
Jesse Hall03b6fe12015-11-24 12:44:21 -08006697 VkInstance instance,
Jesse Hall3fbc8562015-11-29 22:10:52 -08006698 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07006699 instanceObject := GetInstance(instance)
6700
6701 State.Instances[instance] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07006702}
6703
6704@threadSafety("system")
6705cmd VkResult vkEnumeratePhysicalDevices(
6706 VkInstance instance,
6707 u32* pPhysicalDeviceCount,
6708 VkPhysicalDevice* pPhysicalDevices) {
6709 instanceObject := GetInstance(instance)
6710
6711 physicalDeviceCount := as!u32(?)
6712 pPhysicalDeviceCount[0] = physicalDeviceCount
6713 physicalDevices := pPhysicalDevices[0:physicalDeviceCount]
6714
6715 for i in (0 .. physicalDeviceCount) {
6716 physicalDevice := ?
6717 physicalDevices[i] = physicalDevice
6718 if !(physicalDevice in State.PhysicalDevices) {
6719 State.PhysicalDevices[physicalDevice] = new!PhysicalDeviceObject(instance: instance)
6720 }
6721 }
6722
6723 return ?
6724}
6725
6726cmd PFN_vkVoidFunction vkGetDeviceProcAddr(
6727 VkDevice device,
6728 const char* pName) {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07006729 if device != NULL_HANDLE {
Jesse Halld27f6aa2015-08-15 17:58:48 -07006730 device := GetDevice(device)
6731 }
6732
6733 return ?
6734}
6735
6736cmd PFN_vkVoidFunction vkGetInstanceProcAddr(
6737 VkInstance instance,
6738 const char* pName) {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07006739 if instance != NULL_HANDLE {
Jesse Halld27f6aa2015-08-15 17:58:48 -07006740 instanceObject := GetInstance(instance)
6741 }
6742
6743 return ?
6744}
6745
Jesse Hall606a54e2015-11-19 22:17:28 -08006746cmd void vkGetPhysicalDeviceProperties(
Jesse Halld27f6aa2015-08-15 17:58:48 -07006747 VkPhysicalDevice physicalDevice,
6748 VkPhysicalDeviceProperties* pProperties) {
6749 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
6750
6751 properties := ?
6752 pProperties[0] = properties
Jesse Halld27f6aa2015-08-15 17:58:48 -07006753}
6754
Jesse Hall606a54e2015-11-19 22:17:28 -08006755cmd void vkGetPhysicalDeviceQueueFamilyProperties(
Jesse Halld27f6aa2015-08-15 17:58:48 -07006756 VkPhysicalDevice physicalDevice,
Jesse Hall03b6fe12015-11-24 12:44:21 -08006757 u32* pQueueFamilyPropertyCount,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07006758 VkQueueFamilyProperties* pQueueFamilyProperties) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07006759 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
Jesse Hall5ae3abb2015-10-08 14:00:22 -07006760 // TODO: Figure out how to express fetch-count-or-properties
6761 // This version fails 'apic validate' with 'fence not allowed in
6762 // *semantic.Branch'. Other attempts have failed with the same or other
6763 // errors.
6764 // if pQueueFamilyProperties != null {
6765 // queuesProperties := pQueueFamilyProperties[0:pCount[0]]
6766 // for i in (0 .. pCount[0]) {
6767 // queueProperties := as!VkQueueFamilyProperties(?)
6768 // queuesProperties[i] = queueProperties
6769 // }
6770 // } else {
6771 // count := ?
6772 // pCount[0] = count
6773 // }
Jesse Halld27f6aa2015-08-15 17:58:48 -07006774}
6775
Jesse Hall606a54e2015-11-19 22:17:28 -08006776cmd void vkGetPhysicalDeviceMemoryProperties(
Jesse Halld27f6aa2015-08-15 17:58:48 -07006777 VkPhysicalDevice physicalDevice,
6778 VkPhysicalDeviceMemoryProperties* pMemoryProperties) {
6779 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
6780
6781 memoryProperties := ?
6782 pMemoryProperties[0] = memoryProperties
Jesse Halld27f6aa2015-08-15 17:58:48 -07006783}
6784
Jesse Hall606a54e2015-11-19 22:17:28 -08006785cmd void vkGetPhysicalDeviceFeatures(
Jesse Halld27f6aa2015-08-15 17:58:48 -07006786 VkPhysicalDevice physicalDevice,
6787 VkPhysicalDeviceFeatures* pFeatures) {
6788 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
6789
6790 features := ?
6791 pFeatures[0] = features
Jesse Halld27f6aa2015-08-15 17:58:48 -07006792}
6793
Jesse Hall606a54e2015-11-19 22:17:28 -08006794cmd void vkGetPhysicalDeviceFormatProperties(
Jesse Halld27f6aa2015-08-15 17:58:48 -07006795 VkPhysicalDevice physicalDevice,
6796 VkFormat format,
6797 VkFormatProperties* pFormatProperties) {
6798 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
6799
6800 formatProperties := ?
6801 pFormatProperties[0] = formatProperties
Jesse Halld27f6aa2015-08-15 17:58:48 -07006802}
6803
Jesse Halla9e57032015-11-30 01:03:10 -08006804cmd VkResult vkGetPhysicalDeviceImageFormatProperties(
Jesse Halld27f6aa2015-08-15 17:58:48 -07006805 VkPhysicalDevice physicalDevice,
6806 VkFormat format,
6807 VkImageType type,
6808 VkImageTiling tiling,
6809 VkImageUsageFlags usage,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07006810 VkImageCreateFlags flags,
Jesse Halld27f6aa2015-08-15 17:58:48 -07006811 VkImageFormatProperties* pImageFormatProperties) {
6812 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
6813
6814 imageFormatProperties := ?
6815 pImageFormatProperties[0] = imageFormatProperties
Jesse Halla9e57032015-11-30 01:03:10 -08006816
6817 return ?
Jesse Halld27f6aa2015-08-15 17:58:48 -07006818}
6819
Jesse Halld27f6aa2015-08-15 17:58:48 -07006820
6821// Device functions
6822
6823@threadSafety("system")
6824cmd VkResult vkCreateDevice(
6825 VkPhysicalDevice physicalDevice,
6826 const VkDeviceCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08006827 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07006828 VkDevice* pDevice) {
6829 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO)
6830 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
6831
6832 device := ?
6833 pDevice[0] = device
6834 State.Devices[device] = new!DeviceObject(physicalDevice: physicalDevice)
6835
6836 return ?
6837}
6838
6839@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07006840cmd void vkDestroyDevice(
Jesse Hall03b6fe12015-11-24 12:44:21 -08006841 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08006842 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07006843 deviceObject := GetDevice(device)
6844
6845 State.Devices[device] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07006846}
6847
6848
6849// Extension discovery functions
6850
Jesse Hall5ae3abb2015-10-08 14:00:22 -07006851cmd VkResult vkEnumerateInstanceLayerProperties(
Jesse Hall03b6fe12015-11-24 12:44:21 -08006852 u32* pPropertyCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07006853 VkLayerProperties* pProperties) {
6854 count := as!u32(?)
Jesse Hall03b6fe12015-11-24 12:44:21 -08006855 pPropertyCount[0] = count
Jesse Halld27f6aa2015-08-15 17:58:48 -07006856
6857 properties := pProperties[0:count]
6858 for i in (0 .. count) {
6859 property := ?
6860 properties[i] = property
6861 }
6862
6863 return ?
6864}
6865
Jesse Hall5ae3abb2015-10-08 14:00:22 -07006866cmd VkResult vkEnumerateInstanceExtensionProperties(
Jesse Halld27f6aa2015-08-15 17:58:48 -07006867 const char* pLayerName,
Jesse Hall03b6fe12015-11-24 12:44:21 -08006868 u32* pPropertyCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07006869 VkExtensionProperties* pProperties) {
6870 count := as!u32(?)
Jesse Hall03b6fe12015-11-24 12:44:21 -08006871 pPropertyCount[0] = count
Jesse Halld27f6aa2015-08-15 17:58:48 -07006872
6873 properties := pProperties[0:count]
6874 for i in (0 .. count) {
6875 property := ?
6876 properties[i] = property
6877 }
6878
6879 return ?
6880}
6881
Jesse Hall5ae3abb2015-10-08 14:00:22 -07006882cmd VkResult vkEnumerateDeviceLayerProperties(
Jesse Halld27f6aa2015-08-15 17:58:48 -07006883 VkPhysicalDevice physicalDevice,
Jesse Hall03b6fe12015-11-24 12:44:21 -08006884 u32* pPropertyCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07006885 VkLayerProperties* pProperties) {
6886 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
6887 count := as!u32(?)
Jesse Hall03b6fe12015-11-24 12:44:21 -08006888 pPropertyCount[0] = count
Jesse Halld27f6aa2015-08-15 17:58:48 -07006889
6890 properties := pProperties[0:count]
6891 for i in (0 .. count) {
6892 property := ?
6893 properties[i] = property
6894 }
6895
6896 return ?
6897}
6898
Jesse Hall5ae3abb2015-10-08 14:00:22 -07006899cmd VkResult vkEnumerateDeviceExtensionProperties(
Jesse Halld27f6aa2015-08-15 17:58:48 -07006900 VkPhysicalDevice physicalDevice,
6901 const char* pLayerName,
Jesse Hall03b6fe12015-11-24 12:44:21 -08006902 u32* pPropertyCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07006903 VkExtensionProperties* pProperties) {
6904 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
6905
6906 count := as!u32(?)
Jesse Hall03b6fe12015-11-24 12:44:21 -08006907 pPropertyCount[0] = count
Jesse Halld27f6aa2015-08-15 17:58:48 -07006908
6909 properties := pProperties[0:count]
6910 for i in (0 .. count) {
6911 property := ?
6912 properties[i] = property
6913 }
6914
6915 return ?
6916}
6917
6918
6919// Queue functions
6920
6921@threadSafety("system")
Jesse Hall606a54e2015-11-19 22:17:28 -08006922cmd void vkGetDeviceQueue(
Jesse Halld27f6aa2015-08-15 17:58:48 -07006923 VkDevice device,
6924 u32 queueFamilyIndex,
6925 u32 queueIndex,
6926 VkQueue* pQueue) {
6927 deviceObject := GetDevice(device)
6928
6929 queue := ?
6930 pQueue[0] = queue
6931
6932 if !(queue in State.Queues) {
6933 State.Queues[queue] = new!QueueObject(device: device)
6934 }
Jesse Halld27f6aa2015-08-15 17:58:48 -07006935}
6936
6937@threadSafety("app")
6938cmd VkResult vkQueueSubmit(
6939 VkQueue queue,
Jesse Halla366a512015-11-19 22:30:07 -08006940 u32 submitCount,
Jesse Hallb00daad2015-11-29 19:46:20 -08006941 const VkSubmitInfo* pSubmits,
Jesse Halld27f6aa2015-08-15 17:58:48 -07006942 VkFence fence) {
6943 queueObject := GetQueue(queue)
6944
Jesse Hall5ae3abb2015-10-08 14:00:22 -07006945 if fence != NULL_HANDLE {
Jesse Halld27f6aa2015-08-15 17:58:48 -07006946 fenceObject := GetFence(fence)
6947 assert(fenceObject.device == queueObject.device)
6948 }
6949
Jesse Hall3fbc8562015-11-29 22:10:52 -08006950 // commandBuffers := pcommandBuffers[0:commandBufferCount]
6951 // for i in (0 .. commandBufferCount) {
6952 // commandBuffer := commandBuffers[i]
6953 // commandBufferObject := GetCommandBuffer(commandBuffer)
6954 // assert(commandBufferObject.device == queueObject.device)
Jesse Halla366a512015-11-19 22:30:07 -08006955 //
Jesse Hall3fbc8562015-11-29 22:10:52 -08006956 // validate("QueueCheck", commandBufferObject.queueFlags in queueObject.flags,
6957 // "vkQueueSubmit: enqueued commandBuffer requires missing queue capabilities.")
Jesse Halla366a512015-11-19 22:30:07 -08006958 // }
Jesse Halld27f6aa2015-08-15 17:58:48 -07006959
6960 return ?
6961}
6962
6963@threadSafety("system")
6964cmd VkResult vkQueueWaitIdle(
6965 VkQueue queue) {
6966 queueObject := GetQueue(queue)
6967
6968 return ?
6969}
6970
6971@threadSafety("system")
6972cmd VkResult vkDeviceWaitIdle(
6973 VkDevice device) {
6974 deviceObject := GetDevice(device)
6975
6976 return ?
6977}
6978
6979
6980// Memory functions
6981
6982@threadSafety("system")
Jesse Hall3fbc8562015-11-29 22:10:52 -08006983cmd VkResult vkAllocateMemory(
Jesse Halld27f6aa2015-08-15 17:58:48 -07006984 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08006985 const VkMemoryAllocateInfo* pAllocateInfo,
6986 const VkAllocationCallbacks* pAllocator,
6987 VkDeviceMemory* pMemory) {
Jesse Hallf4ab2b12015-11-30 16:04:55 -08006988 assert(pAllocateInfo.sType == VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO)
Jesse Halld27f6aa2015-08-15 17:58:48 -07006989 deviceObject := GetDevice(device)
6990
Jesse Hall3fbc8562015-11-29 22:10:52 -08006991 memory := ?
6992 pMemory[0] = memory
6993 State.DeviceMemories[memory] = new!DeviceMemoryObject(
Jesse Halld27f6aa2015-08-15 17:58:48 -07006994 device: device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08006995 allocationSize: pAllocateInfo[0].allocationSize)
Jesse Halld27f6aa2015-08-15 17:58:48 -07006996
6997 return ?
6998}
6999
7000@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007001cmd void vkFreeMemory(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007002 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007003 VkDeviceMemory memory,
7004 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007005 deviceObject := GetDevice(device)
Jesse Hall3fbc8562015-11-29 22:10:52 -08007006 memoryObject := GetDeviceMemory(memory)
7007 assert(memoryObject.device == device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007008
7009 // Check that no objects are still bound before freeing.
Jesse Hall3fbc8562015-11-29 22:10:52 -08007010 validate("MemoryCheck", len(memoryObject.boundObjects) == 0,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007011 "vkFreeMemory: objects still bound")
Jesse Hall3fbc8562015-11-29 22:10:52 -08007012 validate("MemoryCheck", len(memoryObject.boundCommandBuffers) == 0,
7013 "vkFreeMemory: commandBuffers still bound")
7014 State.DeviceMemories[memory] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07007015}
7016
7017@threadSafety("app")
7018cmd VkResult vkMapMemory(
7019 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007020 VkDeviceMemory memory,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007021 VkDeviceSize offset,
7022 VkDeviceSize size,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007023 VkMemoryMapFlags flags,
7024 void** ppData) {
7025 deviceObject := GetDevice(device)
Jesse Hall3fbc8562015-11-29 22:10:52 -08007026 memoryObject := GetDeviceMemory(memory)
7027 assert(memoryObject.device == device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007028
7029 assert(flags == as!VkMemoryMapFlags(0))
Jesse Hall3fbc8562015-11-29 22:10:52 -08007030 assert((offset + size) <= memoryObject.allocationSize)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007031
7032 return ?
7033}
7034
7035@threadSafety("app")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007036cmd void vkUnmapMemory(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007037 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007038 VkDeviceMemory memory) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007039 deviceObject := GetDevice(device)
Jesse Hall3fbc8562015-11-29 22:10:52 -08007040 memoryObject := GetDeviceMemory(memory)
7041 assert(memoryObject.device == device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007042}
7043
7044cmd VkResult vkFlushMappedMemoryRanges(
7045 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007046 u32 memoryRangeCount
7047 const VkMappedMemoryRange* pMemoryRanges) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007048 deviceObject := GetDevice(device)
7049
Jesse Hall3fbc8562015-11-29 22:10:52 -08007050 memoryRanges := pMemoryRanges[0:memoryRangeCount]
7051 for i in (0 .. memoryRangeCount) {
7052 memoryRange := memoryRanges[i]
7053 memoryObject := GetDeviceMemory(memoryRange.memory)
7054 assert(memoryObject.device == device)
7055 assert((memoryRange.offset + memoryRange.size) <= memoryObject.allocationSize)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007056 }
7057
7058 return ?
7059}
7060
7061cmd VkResult vkInvalidateMappedMemoryRanges(
7062 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007063 u32 memoryRangeCount,
7064 const VkMappedMemoryRange* pMemoryRanges) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007065 deviceObject := GetDevice(device)
7066
Jesse Hall3fbc8562015-11-29 22:10:52 -08007067 memoryRanges := pMemoryRanges[0:memoryRangeCount]
7068 for i in (0 .. memoryRangeCount) {
7069 memoryRange := memoryRanges[i]
7070 memoryObject := GetDeviceMemory(memoryRange.memory)
7071 assert(memoryObject.device == device)
7072 assert((memoryRange.offset + memoryRange.size) <= memoryObject.allocationSize)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007073 }
7074
7075 return ?
7076}
7077
7078
7079// Memory management API functions
7080
Jesse Hall606a54e2015-11-19 22:17:28 -08007081cmd void vkGetDeviceMemoryCommitment(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007082 VkDevice device,
7083 VkDeviceMemory memory,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007084 VkDeviceSize* pCommittedMemoryInBytes) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007085 deviceObject := GetDevice(device)
7086
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007087 if memory != NULL_HANDLE {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007088 memoryObject := GetDeviceMemory(memory)
7089 assert(memoryObject.device == device)
7090 }
7091
7092 committedMemoryInBytes := ?
7093 pCommittedMemoryInBytes[0] = committedMemoryInBytes
Jesse Halld27f6aa2015-08-15 17:58:48 -07007094}
7095
Jesse Hall606a54e2015-11-19 22:17:28 -08007096cmd void vkGetBufferMemoryRequirements(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007097 VkDevice device,
7098 VkBuffer buffer,
7099 VkMemoryRequirements* pMemoryRequirements) {
7100 deviceObject := GetDevice(device)
7101 bufferObject := GetBuffer(buffer)
7102 assert(bufferObject.device == device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007103}
7104
7105cmd VkResult vkBindBufferMemory(
7106 VkDevice device,
7107 VkBuffer buffer,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007108 VkDeviceMemory memory,
7109 VkDeviceSize memoryOffset) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007110 deviceObject := GetDevice(device)
7111 bufferObject := GetBuffer(buffer)
7112 assert(bufferObject.device == device)
7113
7114 // Unbind buffer from previous memory object, if not VK_NULL_HANDLE.
Jesse Hall3fbc8562015-11-29 22:10:52 -08007115 if bufferObject.memory != NULL_HANDLE {
7116 memoryObject := GetDeviceMemory(bufferObject.memory)
7117 memoryObject.boundObjects[as!u64(buffer)] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07007118 }
7119
7120 // Bind buffer to given memory object, if not VK_NULL_HANDLE.
Jesse Hall3fbc8562015-11-29 22:10:52 -08007121 if memory != NULL_HANDLE {
7122 memoryObject := GetDeviceMemory(memory)
7123 assert(memoryObject.device == device)
7124 memoryObject.boundObjects[as!u64(buffer)] = memoryOffset
Jesse Halld27f6aa2015-08-15 17:58:48 -07007125 }
Jesse Hall3fbc8562015-11-29 22:10:52 -08007126 bufferObject.memory = memory
7127 bufferObject.memoryOffset = memoryOffset
Jesse Halld27f6aa2015-08-15 17:58:48 -07007128
7129 return ?
7130}
7131
Jesse Hall606a54e2015-11-19 22:17:28 -08007132cmd void vkGetImageMemoryRequirements(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007133 VkDevice device,
7134 VkImage image,
7135 VkMemoryRequirements* pMemoryRequirements) {
7136 deviceObject := GetDevice(device)
7137 imageObject := GetImage(image)
7138 assert(imageObject.device == device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007139}
7140
7141cmd VkResult vkBindImageMemory(
7142 VkDevice device,
7143 VkImage image,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007144 VkDeviceMemory memory,
7145 VkDeviceSize memoryOffset) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007146 deviceObject := GetDevice(device)
7147 imageObject := GetImage(image)
7148 assert(imageObject.device == device)
7149
7150 // Unbind image from previous memory object, if not VK_NULL_HANDLE.
Jesse Hall3fbc8562015-11-29 22:10:52 -08007151 if imageObject.memory != NULL_HANDLE {
7152 memoryObject := GetDeviceMemory(imageObject.memory)
7153 memoryObject.boundObjects[as!u64(image)] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07007154 }
7155
7156 // Bind image to given memory object, if not VK_NULL_HANDLE.
Jesse Hall3fbc8562015-11-29 22:10:52 -08007157 if memory != NULL_HANDLE {
7158 memoryObject := GetDeviceMemory(memory)
7159 assert(memoryObject.device == device)
7160 memoryObject.boundObjects[as!u64(image)] = memoryOffset
Jesse Halld27f6aa2015-08-15 17:58:48 -07007161 }
Jesse Hall3fbc8562015-11-29 22:10:52 -08007162 imageObject.memory = memory
7163 imageObject.memoryOffset = memoryOffset
Jesse Halld27f6aa2015-08-15 17:58:48 -07007164
7165 return ?
7166}
7167
Jesse Hall606a54e2015-11-19 22:17:28 -08007168cmd void vkGetImageSparseMemoryRequirements(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007169 VkDevice device,
7170 VkImage image,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007171 u32* pSparseMemoryRequirementCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007172 VkSparseImageMemoryRequirements* pSparseMemoryRequirements) {
7173 deviceObject := GetDevice(device)
7174 imageObject := GetImage(image)
7175 assert(imageObject.device == device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007176}
7177
Jesse Hall606a54e2015-11-19 22:17:28 -08007178cmd void vkGetPhysicalDeviceSparseImageFormatProperties(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007179 VkPhysicalDevice physicalDevice,
7180 VkFormat format,
7181 VkImageType type,
Jesse Hall091ed9e2015-11-30 00:55:29 -08007182 VkSampleCountFlagBits samples,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007183 VkImageUsageFlags usage,
7184 VkImageTiling tiling,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007185 u32* pPropertyCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007186 VkSparseImageFormatProperties* pProperties) {
7187 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007188}
7189
Jesse Halla6429252015-11-29 18:59:42 -08007190cmd VkResult vkQueueBindSparse(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007191 VkQueue queue,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007192 u32 bindInfoCount,
Jesse Halla6429252015-11-29 18:59:42 -08007193 const VkBindSparseInfo* pBindInfo,
7194 VkFence fence) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007195 queueObject := GetQueue(queue)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007196
7197 return ?
7198}
7199
7200
7201// Fence functions
7202
7203@threadSafety("system")
7204cmd VkResult vkCreateFence(
7205 VkDevice device,
7206 const VkFenceCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007207 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007208 VkFence* pFence) {
7209 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_FENCE_CREATE_INFO)
7210 deviceObject := GetDevice(device)
7211
7212 fence := ?
7213 pFence[0] = fence
7214 State.Fences[fence] = new!FenceObject(
Jesse Halld8bade02015-11-24 10:24:18 -08007215 device: device, signaled: (pCreateInfo.flags == as!VkFenceCreateFlags(VK_FENCE_CREATE_SIGNALED_BIT)))
Jesse Halld27f6aa2015-08-15 17:58:48 -07007216
7217 return ?
7218}
7219
7220@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007221cmd void vkDestroyFence(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007222 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007223 VkFence fence,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007224 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007225 deviceObject := GetDevice(device)
7226 fenceObject := GetFence(fence)
7227 assert(fenceObject.device == device)
7228
7229 State.Fences[fence] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07007230}
7231
7232@threadSafety("system")
7233cmd VkResult vkResetFences(
7234 VkDevice device,
7235 u32 fenceCount,
7236 const VkFence* pFences) {
7237 deviceObject := GetDevice(device)
7238
7239 fences := pFences[0:fenceCount]
7240 for i in (0 .. fenceCount) {
7241 fence := fences[i]
7242 fenceObject := GetFence(fence)
7243 assert(fenceObject.device == device)
7244 fenceObject.signaled = false
7245 }
7246
7247 return ?
7248}
7249
7250@threadSafety("system")
7251cmd VkResult vkGetFenceStatus(
7252 VkDevice device,
7253 VkFence fence) {
7254 deviceObject := GetDevice(device)
7255 fenceObject := GetFence(fence)
7256 assert(fenceObject.device == device)
7257
7258 return ?
7259}
7260
7261@threadSafety("system")
7262cmd VkResult vkWaitForFences(
7263 VkDevice device,
7264 u32 fenceCount,
7265 const VkFence* pFences,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007266 VkBool32 waitAll,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007267 u64 timeout) { /// timeout in nanoseconds
7268 deviceObject := GetDevice(device)
7269
7270 fences := pFences[0:fenceCount]
7271 for i in (0 .. fenceCount) {
7272 fence := fences[i]
7273 fenceObject := GetFence(fence)
7274 assert(fenceObject.device == device)
7275 }
7276
7277 return ?
7278}
7279
7280
7281// Queue semaphore functions
7282
7283@threadSafety("system")
7284cmd VkResult vkCreateSemaphore(
7285 VkDevice device,
7286 const VkSemaphoreCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007287 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007288 VkSemaphore* pSemaphore) {
7289 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO)
7290 deviceObject := GetDevice(device)
7291
7292 semaphore := ?
7293 pSemaphore[0] = semaphore
7294 State.Semaphores[semaphore] = new!SemaphoreObject(device: device)
7295
7296 return ?
7297}
7298
7299@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007300cmd void vkDestroySemaphore(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007301 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007302 VkSemaphore semaphore,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007303 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007304 deviceObject := GetDevice(device)
7305 semaphoreObject := GetSemaphore(semaphore)
7306 assert(semaphoreObject.device == device)
7307
7308 State.Semaphores[semaphore] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07007309}
7310
Jesse Halld27f6aa2015-08-15 17:58:48 -07007311
7312// Event functions
7313
7314@threadSafety("system")
7315cmd VkResult vkCreateEvent(
7316 VkDevice device,
7317 const VkEventCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007318 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007319 VkEvent* pEvent) {
7320 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_EVENT_CREATE_INFO)
7321 deviceObject := GetDevice(device)
7322
7323 event := ?
7324 pEvent[0] = event
7325 State.Events[event] = new!EventObject(device: device)
7326
7327 return ?
7328}
7329
7330@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007331cmd void vkDestroyEvent(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007332 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007333 VkEvent event,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007334 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007335 deviceObject := GetDevice(device)
7336 eventObject := GetEvent(event)
7337 assert(eventObject.device == device)
7338
7339 State.Events[event] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07007340}
7341
7342@threadSafety("system")
7343cmd VkResult vkGetEventStatus(
7344 VkDevice device,
7345 VkEvent event) {
7346 deviceObject := GetDevice(device)
7347 eventObject := GetEvent(event)
7348 assert(eventObject.device == device)
7349
7350 return ?
7351}
7352
7353@threadSafety("system")
7354cmd VkResult vkSetEvent(
7355 VkDevice device,
7356 VkEvent event) {
7357 deviceObject := GetDevice(device)
7358 eventObject := GetEvent(event)
7359 assert(eventObject.device == device)
7360
7361 return ?
7362}
7363
7364@threadSafety("system")
7365cmd VkResult vkResetEvent(
7366 VkDevice device,
7367 VkEvent event) {
7368 deviceObject := GetDevice(device)
7369 eventObject := GetEvent(event)
7370 assert(eventObject.device == device)
7371
7372 return ?
7373}
7374
7375
7376// Query functions
7377
7378@threadSafety("system")
7379cmd VkResult vkCreateQueryPool(
7380 VkDevice device,
7381 const VkQueryPoolCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007382 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007383 VkQueryPool* pQueryPool) {
7384 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO)
7385 deviceObject := GetDevice(device)
7386
7387 queryPool := ?
7388 pQueryPool[0] = queryPool
7389 State.QueryPools[queryPool] = new!QueryPoolObject(device: device)
7390
7391 return ?
7392}
7393
7394@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007395cmd void vkDestroyQueryPool(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007396 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007397 VkQueryPool queryPool,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007398 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007399 deviceObject := GetDevice(device)
7400 queryPoolObject := GetQueryPool(queryPool)
7401 assert(queryPoolObject.device == device)
7402
7403 State.QueryPools[queryPool] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07007404}
7405
7406@threadSafety("system")
7407cmd VkResult vkGetQueryPoolResults(
7408 VkDevice device,
7409 VkQueryPool queryPool,
Jesse Hallf9fa9a52016-01-08 16:08:51 -08007410 u32 firstQuery,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007411 u32 queryCount,
Jesse Halla9bb62b2015-11-21 19:31:56 -08007412 platform.size_t dataSize,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007413 void* pData,
Jesse Halla9bb62b2015-11-21 19:31:56 -08007414 VkDeviceSize stride,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007415 VkQueryResultFlags flags) {
7416 deviceObject := GetDevice(device)
7417 queryPoolObject := GetQueryPool(queryPool)
7418 assert(queryPoolObject.device == device)
7419
Jesse Halld27f6aa2015-08-15 17:58:48 -07007420 data := pData[0:dataSize]
7421
7422 return ?
7423}
7424
7425// Buffer functions
7426
7427@threadSafety("system")
7428cmd VkResult vkCreateBuffer(
7429 VkDevice device,
7430 const VkBufferCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007431 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007432 VkBuffer* pBuffer) {
7433 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO)
7434 deviceObject := GetDevice(device)
7435
7436 buffer := ?
7437 pBuffer[0] = buffer
7438 State.Buffers[buffer] = new!BufferObject(device: device)
7439
7440 return ?
7441}
7442
7443@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007444cmd void vkDestroyBuffer(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007445 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007446 VkBuffer buffer,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007447 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007448 deviceObject := GetDevice(device)
7449 bufferObject := GetBuffer(buffer)
7450 assert(bufferObject.device == device)
7451
Jesse Hall3fbc8562015-11-29 22:10:52 -08007452 assert(bufferObject.memory == 0)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007453 State.Buffers[buffer] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07007454}
7455
7456
7457// Buffer view functions
7458
7459@threadSafety("system")
7460cmd VkResult vkCreateBufferView(
7461 VkDevice device,
7462 const VkBufferViewCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007463 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007464 VkBufferView* pView) {
7465 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO)
7466 deviceObject := GetDevice(device)
7467
7468 bufferObject := GetBuffer(pCreateInfo.buffer)
7469 assert(bufferObject.device == device)
7470
7471 view := ?
7472 pView[0] = view
7473 State.BufferViews[view] = new!BufferViewObject(device: device, buffer: pCreateInfo.buffer)
7474
7475 return ?
7476}
7477
7478@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007479cmd void vkDestroyBufferView(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007480 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007481 VkBufferView bufferView,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007482 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007483 deviceObject := GetDevice(device)
7484 bufferViewObject := GetBufferView(bufferView)
7485 assert(bufferViewObject.device == device)
7486
7487 State.BufferViews[bufferView] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07007488}
7489
7490
7491// Image functions
7492
7493@threadSafety("system")
7494cmd VkResult vkCreateImage(
7495 VkDevice device,
7496 const VkImageCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007497 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007498 VkImage* pImage) {
7499 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO)
7500 deviceObject := GetDevice(device)
7501
7502 image := ?
7503 pImage[0] = image
7504 State.Images[image] = new!ImageObject(device: device)
7505
7506 return ?
7507}
7508
7509@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007510cmd void vkDestroyImage(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007511 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007512 VkImage image,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007513 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007514 deviceObject := GetDevice(device)
7515 imageObject := GetImage(image)
7516 assert(imageObject.device == device)
7517
Jesse Hall3fbc8562015-11-29 22:10:52 -08007518 assert(imageObject.memory == 0)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007519 State.Images[image] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07007520}
7521
Jesse Hall606a54e2015-11-19 22:17:28 -08007522cmd void vkGetImageSubresourceLayout(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007523 VkDevice device,
7524 VkImage image,
7525 const VkImageSubresource* pSubresource,
7526 VkSubresourceLayout* pLayout) {
7527 deviceObject := GetDevice(device)
7528 imageObject := GetImage(image)
7529 assert(imageObject.device == device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007530}
7531
7532
7533// Image view functions
7534
7535@threadSafety("system")
7536cmd VkResult vkCreateImageView(
7537 VkDevice device,
7538 const VkImageViewCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007539 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007540 VkImageView* pView) {
7541 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO)
7542 deviceObject := GetDevice(device)
7543
7544 imageObject := GetImage(pCreateInfo.image)
7545 assert(imageObject.device == device)
7546
7547 view := ?
7548 pView[0] = view
7549 State.ImageViews[view] = new!ImageViewObject(device: device, image: pCreateInfo.image)
7550
7551 return ?
7552}
7553
7554@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007555cmd void vkDestroyImageView(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007556 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007557 VkImageView imageView,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007558 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007559 deviceObject := GetDevice(device)
7560 imageViewObject := GetImageView(imageView)
7561 assert(imageViewObject.device == device)
7562
7563 State.ImageViews[imageView] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07007564}
7565
7566
7567// Shader functions
7568
7569cmd VkResult vkCreateShaderModule(
7570 VkDevice device,
7571 const VkShaderModuleCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007572 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007573 VkShaderModule* pShaderModule) {
7574 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO)
7575 deviceObject := GetDevice(device)
7576
7577 shaderModule := ?
7578 pShaderModule[0] = shaderModule
7579 State.ShaderModules[shaderModule] = new!ShaderModuleObject(device: device)
7580
7581 return ?
7582}
7583
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007584cmd void vkDestroyShaderModule(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007585 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007586 VkShaderModule shaderModule,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007587 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007588 deviceObject := GetDevice(device)
7589 shaderModuleObject := GetShaderModule(shaderModule)
7590 assert(shaderModuleObject.device == device)
7591
7592 State.ShaderModules[shaderModule] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07007593}
7594
Jesse Halld27f6aa2015-08-15 17:58:48 -07007595
7596// Pipeline functions
7597
7598cmd VkResult vkCreatePipelineCache(
7599 VkDevice device,
7600 const VkPipelineCacheCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007601 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007602 VkPipelineCache* pPipelineCache) {
7603 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO)
7604 deviceObject := GetDevice(device)
7605
7606 pipelineCache := ?
7607 pPipelineCache[0] = pipelineCache
7608 State.PipelineCaches[pipelineCache] = new!PipelineCacheObject(device: device)
7609
7610 return ?
7611}
7612
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007613cmd void vkDestroyPipelineCache(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007614 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007615 VkPipelineCache pipelineCache,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007616 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007617 deviceObject := GetDevice(device)
7618 pipelineCacheObject := GetPipelineCache(pipelineCache)
7619 assert(pipelineCacheObject.device == device)
7620
7621 State.PipelineCaches[pipelineCache] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07007622}
7623
Jesse Halld27f6aa2015-08-15 17:58:48 -07007624cmd VkResult vkGetPipelineCacheData(
7625 VkDevice device,
7626 VkPipelineCache pipelineCache,
Jesse Halla9bb62b2015-11-21 19:31:56 -08007627 platform.size_t* pDataSize,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007628 void* pData) {
7629 deviceObject := GetDevice(device)
7630 pipelineCacheObject := GetPipelineCache(pipelineCache)
7631 assert(pipelineCacheObject.device == device)
7632
7633 return ?
7634}
7635
7636cmd VkResult vkMergePipelineCaches(
7637 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007638 VkPipelineCache dstCache,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007639 u32 srcCacheCount,
7640 const VkPipelineCache* pSrcCaches) {
7641 deviceObject := GetDevice(device)
Jesse Hall3fbc8562015-11-29 22:10:52 -08007642 dstCacheObject := GetPipelineCache(dstCache)
7643 assert(dstCacheObject.device == device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007644
7645 srcCaches := pSrcCaches[0:srcCacheCount]
7646 for i in (0 .. srcCacheCount) {
7647 srcCache := srcCaches[i]
7648 srcCacheObject := GetPipelineCache(srcCache)
7649 assert(srcCacheObject.device == device)
7650 }
7651
7652 return ?
7653}
7654
7655cmd VkResult vkCreateGraphicsPipelines(
7656 VkDevice device,
7657 VkPipelineCache pipelineCache,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007658 u32 createInfoCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007659 const VkGraphicsPipelineCreateInfo* pCreateInfos,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007660 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007661 VkPipeline* pPipelines) {
7662 deviceObject := GetDevice(device)
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007663 if pipelineCache != NULL_HANDLE {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007664 pipelineCacheObject := GetPipelineCache(pipelineCache)
7665 assert(pipelineCacheObject.device == device)
7666 }
7667
Jesse Hall03b6fe12015-11-24 12:44:21 -08007668 createInfos := pCreateInfos[0:createInfoCount]
7669 pipelines := pPipelines[0:createInfoCount]
7670 for i in (0 .. createInfoCount) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007671 pipeline := ?
7672 pipelines[i] = pipeline
7673 State.Pipelines[pipeline] = new!PipelineObject(device: device)
7674 }
7675
7676 return ?
7677}
7678
7679cmd VkResult vkCreateComputePipelines(
7680 VkDevice device,
7681 VkPipelineCache pipelineCache,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007682 u32 createInfoCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007683 const VkComputePipelineCreateInfo* pCreateInfos,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007684 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007685 VkPipeline* pPipelines) {
7686 deviceObject := GetDevice(device)
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007687 if pipelineCache != NULL_HANDLE {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007688 pipelineCacheObject := GetPipelineCache(pipelineCache)
7689 assert(pipelineCacheObject.device == device)
7690 }
7691
Jesse Hall03b6fe12015-11-24 12:44:21 -08007692 createInfos := pCreateInfos[0:createInfoCount]
7693 pipelines := pPipelines[0:createInfoCount]
7694 for i in (0 .. createInfoCount) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007695 pipeline := ?
7696 pipelines[i] = pipeline
7697 State.Pipelines[pipeline] = new!PipelineObject(device: device)
7698 }
7699
7700 return ?
7701}
7702
7703@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007704cmd void vkDestroyPipeline(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007705 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007706 VkPipeline pipeline,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007707 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007708 deviceObject := GetDevice(device)
7709 pipelineObjects := GetPipeline(pipeline)
7710 assert(pipelineObjects.device == device)
7711
7712 State.Pipelines[pipeline] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07007713}
7714
7715
7716// Pipeline layout functions
7717
7718@threadSafety("system")
7719cmd VkResult vkCreatePipelineLayout(
7720 VkDevice device,
7721 const VkPipelineLayoutCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007722 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007723 VkPipelineLayout* pPipelineLayout) {
7724 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO)
7725 deviceObject := GetDevice(device)
7726
7727 pipelineLayout := ?
7728 pPipelineLayout[0] = pipelineLayout
7729 State.PipelineLayouts[pipelineLayout] = new!PipelineLayoutObject(device: device)
7730
7731 return ?
7732}
7733
7734@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007735cmd void vkDestroyPipelineLayout(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007736 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007737 VkPipelineLayout pipelineLayout,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007738 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007739 deviceObject := GetDevice(device)
7740 pipelineLayoutObjects := GetPipelineLayout(pipelineLayout)
7741 assert(pipelineLayoutObjects.device == device)
7742
7743 State.PipelineLayouts[pipelineLayout] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07007744}
7745
7746
7747// Sampler functions
7748
7749@threadSafety("system")
7750cmd VkResult vkCreateSampler(
7751 VkDevice device,
7752 const VkSamplerCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007753 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007754 VkSampler* pSampler) {
7755 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO)
7756 deviceObject := GetDevice(device)
7757
7758 sampler := ?
7759 pSampler[0] = sampler
7760 State.Samplers[sampler] = new!SamplerObject(device: device)
7761
7762 return ?
7763}
7764
7765@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007766cmd void vkDestroySampler(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007767 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007768 VkSampler sampler,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007769 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007770 deviceObject := GetDevice(device)
7771 samplerObject := GetSampler(sampler)
7772 assert(samplerObject.device == device)
7773
7774 State.Samplers[sampler] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07007775}
7776
7777
7778// Descriptor set functions
7779
7780@threadSafety("system")
7781cmd VkResult vkCreateDescriptorSetLayout(
7782 VkDevice device,
7783 const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007784 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007785 VkDescriptorSetLayout* pSetLayout) {
7786 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO)
7787 deviceObject := GetDevice(device)
7788
7789 setLayout := ?
7790 pSetLayout[0] = setLayout
7791 State.DescriptorSetLayouts[setLayout] = new!DescriptorSetLayoutObject(device: device)
7792
7793 return ?
7794}
7795
7796@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007797cmd void vkDestroyDescriptorSetLayout(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007798 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007799 VkDescriptorSetLayout descriptorSetLayout,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007800 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007801 deviceObject := GetDevice(device)
7802 descriptorSetLayoutObject := GetDescriptorSetLayout(descriptorSetLayout)
7803 assert(descriptorSetLayoutObject.device == device)
7804
7805 State.DescriptorSetLayouts[descriptorSetLayout] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07007806}
7807
7808@threadSafety("system")
7809cmd VkResult vkCreateDescriptorPool(
7810 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007811 const VkDescriptorPoolCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007812 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007813 VkDescriptorPool* pDescriptorPool) {
7814 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO)
7815 deviceObject := GetDevice(device)
7816
7817 descriptorPool := ?
7818 pDescriptorPool[0] = descriptorPool
7819 State.DescriptorPools[descriptorPool] = new!DescriptorPoolObject(device: device)
7820
7821 return ?
7822}
7823
7824@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007825cmd void vkDestroyDescriptorPool(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007826 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007827 VkDescriptorPool descriptorPool,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007828 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007829 deviceObject := GetDevice(device)
7830 descriptorPoolObject := GetDescriptorPool(descriptorPool)
7831 assert(descriptorPoolObject.device == device)
7832
7833 State.DescriptorPools[descriptorPool] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07007834}
7835
7836@threadSafety("app")
7837cmd VkResult vkResetDescriptorPool(
7838 VkDevice device,
Jesse Hallfbf97b02015-11-20 14:17:03 -08007839 VkDescriptorPool descriptorPool,
7840 VkDescriptorPoolResetFlags flags) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007841 deviceObject := GetDevice(device)
7842 descriptorPoolObject := GetDescriptorPool(descriptorPool)
7843 assert(descriptorPoolObject.device == device)
7844
7845 return ?
7846}
7847
7848@threadSafety("app")
Jesse Hall3fbc8562015-11-29 22:10:52 -08007849cmd VkResult vkAllocateDescriptorSets(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007850 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007851 const VkDescriptorSetAllocateInfo* pAllocateInfo,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007852 VkDescriptorSet* pDescriptorSets) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007853 deviceObject := GetDevice(device)
Jesse Hall3fbc8562015-11-29 22:10:52 -08007854 allocInfo := pAllocateInfo[0]
Jesse Hallfbf97b02015-11-20 14:17:03 -08007855 descriptorPoolObject := GetDescriptorPool(allocInfo.descriptorPool)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007856
Jesse Hall03b6fe12015-11-24 12:44:21 -08007857 setLayouts := allocInfo.pSetLayouts[0:allocInfo.setCount]
7858 for i in (0 .. allocInfo.setCount) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007859 setLayout := setLayouts[i]
7860 setLayoutObject := GetDescriptorSetLayout(setLayout)
7861 assert(setLayoutObject.device == device)
7862 }
7863
Jesse Hall03b6fe12015-11-24 12:44:21 -08007864 descriptorSets := pDescriptorSets[0:allocInfo.setCount]
7865 for i in (0 .. allocInfo.setCount) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007866 descriptorSet := ?
7867 descriptorSets[i] = descriptorSet
7868 State.DescriptorSets[descriptorSet] = new!DescriptorSetObject(device: device)
7869 }
7870
7871 return ?
7872}
7873
Jesse Hallf09c6b12015-08-15 19:54:28 -07007874cmd VkResult vkFreeDescriptorSets(
7875 VkDevice device,
7876 VkDescriptorPool descriptorPool,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007877 u32 descriptorSetCount,
Jesse Hallf09c6b12015-08-15 19:54:28 -07007878 const VkDescriptorSet* pDescriptorSets) {
7879 deviceObject := GetDevice(device)
7880 descriptorPoolObject := GetDescriptorPool(descriptorPool)
7881
Jesse Hall03b6fe12015-11-24 12:44:21 -08007882 descriptorSets := pDescriptorSets[0:descriptorSetCount]
7883 for i in (0 .. descriptorSetCount) {
Jesse Hallf09c6b12015-08-15 19:54:28 -07007884 descriptorSet := descriptorSets[i]
7885 descriptorSetObject := GetDescriptorSet(descriptorSet)
7886 assert(descriptorSetObject.device == device)
7887 State.DescriptorSets[descriptorSet] = null
7888 }
7889
7890 return ?
7891}
7892
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007893cmd void vkUpdateDescriptorSets(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007894 VkDevice device,
Jesse Hallb00daad2015-11-29 19:46:20 -08007895 u32 descriptorWriteCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007896 const VkWriteDescriptorSet* pDescriptorWrites,
Jesse Hallb00daad2015-11-29 19:46:20 -08007897 u32 descriptorCopyCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007898 const VkCopyDescriptorSet* pDescriptorCopies) {
7899 deviceObject := GetDevice(device)
7900
Jesse Hallb00daad2015-11-29 19:46:20 -08007901 descriptorWrites := pDescriptorWrites[0:descriptorWriteCount]
7902 for i in (0 .. descriptorWriteCount) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007903 descriptorWrite := descriptorWrites[i]
Jesse Hall3fbc8562015-11-29 22:10:52 -08007904 descriptorWriteObject := GetDescriptorSet(descriptorWrite.dstSet)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007905 assert(descriptorWriteObject.device == device)
7906 }
7907
Jesse Hallb00daad2015-11-29 19:46:20 -08007908 descriptorCopies := pDescriptorCopies[0:descriptorCopyCount]
7909 for i in (0 .. descriptorCopyCount) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007910 descriptorCopy := descriptorCopies[i]
Jesse Hall3fbc8562015-11-29 22:10:52 -08007911 descriptorCopyObject := GetDescriptorSet(descriptorCopy.dstSet)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007912 assert(descriptorCopyObject.device == device)
7913 }
Jesse Halld27f6aa2015-08-15 17:58:48 -07007914}
7915
7916
7917// Framebuffer functions
7918
7919@threadSafety("system")
7920cmd VkResult vkCreateFramebuffer(
7921 VkDevice device,
7922 const VkFramebufferCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007923 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007924 VkFramebuffer* pFramebuffer) {
7925 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO)
7926 deviceObject := GetDevice(device)
7927
7928 framebuffer := ?
7929 pFramebuffer[0] = framebuffer
7930 State.Framebuffers[framebuffer] = new!FramebufferObject(device: device)
7931
7932 return ?
7933}
7934
7935@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007936cmd void vkDestroyFramebuffer(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007937 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007938 VkFramebuffer framebuffer,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007939 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007940 deviceObject := GetDevice(device)
7941 framebufferObject := GetFramebuffer(framebuffer)
7942 assert(framebufferObject.device == device)
7943
7944 State.Framebuffers[framebuffer] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07007945}
7946
7947
7948// Renderpass functions
7949
7950@threadSafety("system")
7951cmd VkResult vkCreateRenderPass(
7952 VkDevice device,
7953 const VkRenderPassCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007954 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007955 VkRenderPass* pRenderPass) {
7956 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO)
7957 deviceObject := GetDevice(device)
7958
7959 renderpass := ?
7960 pRenderPass[0] = renderpass
7961 State.RenderPasses[renderpass] = new!RenderPassObject(device: device)
7962
7963 return ?
7964}
7965
7966@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007967cmd void vkDestroyRenderPass(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007968 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007969 VkRenderPass renderPass,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007970 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007971 deviceObject := GetDevice(device)
7972 renderPassObject := GetRenderPass(renderPass)
7973 assert(renderPassObject.device == device)
7974
7975 State.RenderPasses[renderPass] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07007976}
7977
Jesse Hall606a54e2015-11-19 22:17:28 -08007978cmd void vkGetRenderAreaGranularity(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007979 VkDevice device,
7980 VkRenderPass renderPass,
7981 VkExtent2D* pGranularity) {
7982 deviceObject := GetDevice(device)
7983 renderPassObject := GetRenderPass(renderPass)
7984
7985 granularity := ?
7986 pGranularity[0] = granularity
Jesse Halld27f6aa2015-08-15 17:58:48 -07007987}
7988
7989// Command pool functions
7990
7991cmd VkResult vkCreateCommandPool(
7992 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007993 const VkCommandPoolCreateInfo* pCreateInfo,
7994 const VkAllocationCallbacks* pAllocator,
7995 VkCommandPool* pCommandPool) {
7996 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007997 deviceObject := GetDevice(device)
7998
Jesse Hall3fbc8562015-11-29 22:10:52 -08007999 commandPool := ?
8000 pCommandPool[0] = commandPool
8001 State.CommandPools[commandPool] = new!CommandPoolObject(device: device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008002
8003 return ?
8004}
8005
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008006cmd void vkDestroyCommandPool(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008007 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008008 VkCommandPool commandPool,
8009 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008010 deviceObject := GetDevice(device)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008011 commandPoolObject := GetCommandPool(commandPool)
8012 assert(commandPoolObject.device == device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008013
Jesse Hall3fbc8562015-11-29 22:10:52 -08008014 State.CommandPools[commandPool] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008015}
8016
8017cmd VkResult vkResetCommandPool(
8018 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008019 VkCommandPool commandPool,
8020 VkCommandPoolResetFlags flags) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008021 deviceObject := GetDevice(device)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008022 commandPoolObject := GetCommandPool(commandPool)
8023 assert(commandPoolObject.device == device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008024
8025 return ?
8026}
8027
8028// Command buffer functions
8029
Jesse Hall3fbc8562015-11-29 22:10:52 -08008030macro void bindCommandBuffer(VkCommandBuffer commandBuffer, any obj, VkDeviceMemory memory) {
8031 memoryObject := GetDeviceMemory(memory)
8032 memoryObject.boundCommandBuffers[commandBuffer] = commandBuffer
Jesse Halld27f6aa2015-08-15 17:58:48 -07008033
Jesse Hall3fbc8562015-11-29 22:10:52 -08008034 commandBufferObject := GetCommandBuffer(commandBuffer)
8035 commandBufferObject.boundObjects[as!u64(obj)] = memory
Jesse Halld27f6aa2015-08-15 17:58:48 -07008036}
8037
Jesse Hall3fbc8562015-11-29 22:10:52 -08008038macro void unbindCommandBuffer(VkCommandBuffer commandBuffer, any obj, VkDeviceMemory memory) {
8039 memoryObject := GetDeviceMemory(memory)
8040 memoryObject.boundCommandBuffers[commandBuffer] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008041
Jesse Hall3fbc8562015-11-29 22:10:52 -08008042 commandBufferObject := GetCommandBuffer(commandBuffer)
8043 commandBufferObject.boundObjects[as!u64(obj)] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008044}
8045
8046@threadSafety("system")
Jesse Hall3fbc8562015-11-29 22:10:52 -08008047cmd VkResult vkAllocateCommandBuffers(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008048 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008049 const VkCommandBufferAllocateInfo* pAllocateInfo,
8050 VkCommandBuffer* pCommandBuffers) {
Jesse Hallf4ab2b12015-11-30 16:04:55 -08008051 assert(pAllocateInfo[0].sType == VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008052
Jesse Hall3dd678a2016-01-08 21:52:01 -08008053 count := pAllocateInfo[0].commandBufferCount
Jesse Hall3fbc8562015-11-29 22:10:52 -08008054 commandBuffers := pCommandBuffers[0:count]
Jesse Hallfbf97b02015-11-20 14:17:03 -08008055 for i in (0 .. count) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008056 commandBuffer := ?
8057 commandBuffers[i] = commandBuffer
8058 State.CommandBuffers[commandBuffer] = new!CommandBufferObject(device: device)
Jesse Hallfbf97b02015-11-20 14:17:03 -08008059 }
Jesse Halld27f6aa2015-08-15 17:58:48 -07008060
8061 return ?
8062}
8063
8064@threadSafety("system")
Jesse Hallfbf97b02015-11-20 14:17:03 -08008065cmd void vkFreeCommandBuffers(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008066 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008067 VkCommandPool commandPool,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008068 u32 commandBufferCount,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008069 const VkCommandBuffer* pCommandBuffers) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008070 deviceObject := GetDevice(device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008071
Jesse Hall3fbc8562015-11-29 22:10:52 -08008072 commandBuffers := pCommandBuffers[0:commandBufferCount]
Jesse Hall03b6fe12015-11-24 12:44:21 -08008073 for i in (0 .. commandBufferCount) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008074 commandBufferObject := GetCommandBuffer(commandBuffers[i])
8075 assert(commandBufferObject.device == device)
Jesse Hallfbf97b02015-11-20 14:17:03 -08008076 // TODO: iterate over boundObjects and clear memory bindings
Jesse Hall3fbc8562015-11-29 22:10:52 -08008077 State.CommandBuffers[commandBuffers[i]] = null
Jesse Hallfbf97b02015-11-20 14:17:03 -08008078 }
Jesse Halld27f6aa2015-08-15 17:58:48 -07008079}
8080
8081@threadSafety("app")
8082cmd VkResult vkBeginCommandBuffer(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008083 VkCommandBuffer commandBuffer,
8084 const VkCommandBufferBeginInfo* pBeginInfo) {
8085 assert(pBeginInfo.sType == VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO)
8086 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008087
8088 // TODO: iterate over boundObjects and clear memory bindings
8089
8090 return ?
8091}
8092
8093@threadSafety("app")
8094cmd VkResult vkEndCommandBuffer(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008095 VkCommandBuffer commandBuffer) {
8096 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008097
8098 return ?
8099}
8100
8101@threadSafety("app")
8102cmd VkResult vkResetCommandBuffer(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008103 VkCommandBuffer commandBuffer,
8104 VkCommandBufferResetFlags flags) {
8105 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008106
8107 // TODO: iterate over boundObjects and clear memory bindings
8108
8109 return ?
8110}
8111
8112
8113// Command buffer building functions
8114
8115@threadSafety("app")
8116cmd void vkCmdBindPipeline(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008117 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008118 VkPipelineBindPoint pipelineBindPoint,
8119 VkPipeline pipeline) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008120 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008121 pipelineObject := GetPipeline(pipeline)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008122 assert(commandBufferObject.device == pipelineObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008123
Jesse Halld8bade02015-11-24 10:24:18 -08008124 queue := switch (pipelineBindPoint) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008125 case VK_PIPELINE_BIND_POINT_COMPUTE: VK_QUEUE_COMPUTE_BIT
8126 case VK_PIPELINE_BIND_POINT_GRAPHICS: VK_QUEUE_GRAPHICS_BIT
8127 }
Jesse Hall3fbc8562015-11-29 22:10:52 -08008128 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, queue)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008129}
8130
8131@threadSafety("app")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008132cmd void vkCmdSetViewport(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008133 VkCommandBuffer commandBuffer,
Jesse Hallf9fa9a52016-01-08 16:08:51 -08008134 u32 firstViewport,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008135 u32 viewportCount,
8136 const VkViewport* pViewports) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008137 commandBufferObject := GetCommandBuffer(commandBuffer)
8138 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008139}
8140
8141@threadSafety("app")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008142cmd void vkCmdSetScissor(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008143 VkCommandBuffer commandBuffer,
Jesse Hallf9fa9a52016-01-08 16:08:51 -08008144 u32 firstScissor,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008145 u32 scissorCount,
8146 const VkRect2D* pScissors) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008147 commandBufferObject := GetCommandBuffer(commandBuffer)
8148 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008149}
8150
8151@threadSafety("app")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008152cmd void vkCmdSetLineWidth(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008153 VkCommandBuffer commandBuffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008154 f32 lineWidth) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008155 commandBufferObject := GetCommandBuffer(commandBuffer)
8156 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008157}
8158
8159@threadSafety("app")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008160cmd void vkCmdSetDepthBias(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008161 VkCommandBuffer commandBuffer,
Jesse Halla9bb62b2015-11-21 19:31:56 -08008162 f32 depthBiasConstantFactor,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008163 f32 depthBiasClamp,
Jesse Halla9bb62b2015-11-21 19:31:56 -08008164 f32 depthBiasSlopeFactor) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008165 commandBufferObject := GetCommandBuffer(commandBuffer)
8166 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008167}
Jesse Halld27f6aa2015-08-15 17:58:48 -07008168
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008169@threadSafety("app")
8170cmd void vkCmdSetBlendConstants(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008171 VkCommandBuffer commandBuffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008172 // TODO(jessehall): apic only supports 'const' on pointer types. Using
8173 // an annotation as a quick hack to pass this to the template without
8174 // having to modify the AST and semantic model.
Jesse Hallb00daad2015-11-29 19:46:20 -08008175 @readonly f32[4] blendConstants) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008176 commandBufferObject := GetCommandBuffer(commandBuffer)
8177 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008178}
8179
8180@threadSafety("app")
8181cmd void vkCmdSetDepthBounds(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008182 VkCommandBuffer commandBuffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008183 f32 minDepthBounds,
8184 f32 maxDepthBounds) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008185 commandBufferObject := GetCommandBuffer(commandBuffer)
8186 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008187}
8188
8189@threadSafety("app")
8190cmd void vkCmdSetStencilCompareMask(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008191 VkCommandBuffer commandBuffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008192 VkStencilFaceFlags faceMask,
Jesse Hall65ab5522015-11-30 00:07:16 -08008193 u32 compareMask) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008194 commandBufferObject := GetCommandBuffer(commandBuffer)
8195 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008196}
8197
8198@threadSafety("app")
8199cmd void vkCmdSetStencilWriteMask(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008200 VkCommandBuffer commandBuffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008201 VkStencilFaceFlags faceMask,
Jesse Hall65ab5522015-11-30 00:07:16 -08008202 u32 writeMask) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008203 commandBufferObject := GetCommandBuffer(commandBuffer)
8204 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008205}
8206
8207@threadSafety("app")
8208cmd void vkCmdSetStencilReference(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008209 VkCommandBuffer commandBuffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008210 VkStencilFaceFlags faceMask,
Jesse Hall65ab5522015-11-30 00:07:16 -08008211 u32 reference) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008212 commandBufferObject := GetCommandBuffer(commandBuffer)
8213 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008214}
8215
8216@threadSafety("app")
8217cmd void vkCmdBindDescriptorSets(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008218 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008219 VkPipelineBindPoint pipelineBindPoint,
8220 VkPipelineLayout layout,
8221 u32 firstSet,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008222 u32 descriptorSetCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008223 const VkDescriptorSet* pDescriptorSets,
8224 u32 dynamicOffsetCount,
8225 const u32* pDynamicOffsets) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008226 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008227
Jesse Hall03b6fe12015-11-24 12:44:21 -08008228 descriptorSets := pDescriptorSets[0:descriptorSetCount]
8229 for i in (0 .. descriptorSetCount) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008230 descriptorSet := descriptorSets[i]
8231 descriptorSetObject := GetDescriptorSet(descriptorSet)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008232 assert(commandBufferObject.device == descriptorSetObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008233 }
8234
8235 dynamicOffsets := pDynamicOffsets[0:dynamicOffsetCount]
8236 for i in (0 .. dynamicOffsetCount) {
8237 dynamicOffset := dynamicOffsets[i]
8238 }
8239
Jesse Halld8bade02015-11-24 10:24:18 -08008240 queue := switch (pipelineBindPoint) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008241 case VK_PIPELINE_BIND_POINT_COMPUTE: VK_QUEUE_COMPUTE_BIT
8242 case VK_PIPELINE_BIND_POINT_GRAPHICS: VK_QUEUE_GRAPHICS_BIT
8243 }
Jesse Hall3fbc8562015-11-29 22:10:52 -08008244 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, queue)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008245}
8246
8247@threadSafety("app")
8248cmd void vkCmdBindIndexBuffer(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008249 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008250 VkBuffer buffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008251 VkDeviceSize offset,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008252 VkIndexType indexType) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008253 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008254 bufferObject := GetBuffer(buffer)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008255 assert(commandBufferObject.device == bufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008256
Jesse Hall3fbc8562015-11-29 22:10:52 -08008257 bindCommandBuffer(commandBuffer, buffer, bufferObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008258
Jesse Hall3fbc8562015-11-29 22:10:52 -08008259 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008260}
8261
8262@threadSafety("app")
8263cmd void vkCmdBindVertexBuffers(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008264 VkCommandBuffer commandBuffer,
Jesse Hallf9fa9a52016-01-08 16:08:51 -08008265 u32 firstBinding,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008266 u32 bindingCount,
8267 const VkBuffer* pBuffers,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008268 const VkDeviceSize* pOffsets) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008269 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008270
Jesse Hallf9fa9a52016-01-08 16:08:51 -08008271 // TODO: check if not [firstBinding:firstBinding+bindingCount]
Jesse Halld27f6aa2015-08-15 17:58:48 -07008272 buffers := pBuffers[0:bindingCount]
8273 offsets := pOffsets[0:bindingCount]
8274 for i in (0 .. bindingCount) {
8275 buffer := buffers[i]
8276 offset := offsets[i]
8277 bufferObject := GetBuffer(buffer)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008278 assert(commandBufferObject.device == bufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008279
Jesse Hall3fbc8562015-11-29 22:10:52 -08008280 bindCommandBuffer(commandBuffer, buffer, bufferObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008281 }
8282
Jesse Hall3fbc8562015-11-29 22:10:52 -08008283 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008284}
8285
8286@threadSafety("app")
8287cmd void vkCmdDraw(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008288 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008289 u32 vertexCount,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008290 u32 instanceCount,
8291 u32 firstVertex,
8292 u32 firstInstance) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008293 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008294
Jesse Hall3fbc8562015-11-29 22:10:52 -08008295 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008296}
8297
8298@threadSafety("app")
8299cmd void vkCmdDrawIndexed(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008300 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008301 u32 indexCount,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008302 u32 instanceCount,
8303 u32 firstIndex,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008304 s32 vertexOffset,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008305 u32 firstInstance) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008306 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008307
Jesse Hall3fbc8562015-11-29 22:10:52 -08008308 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008309}
8310
8311@threadSafety("app")
8312cmd void vkCmdDrawIndirect(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008313 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008314 VkBuffer buffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008315 VkDeviceSize offset,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008316 u32 drawCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008317 u32 stride) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008318 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008319 bufferObject := GetBuffer(buffer)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008320 assert(commandBufferObject.device == bufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008321
Jesse Hall3fbc8562015-11-29 22:10:52 -08008322 bindCommandBuffer(commandBuffer, buffer, bufferObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008323
Jesse Hall3fbc8562015-11-29 22:10:52 -08008324 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008325}
8326
8327@threadSafety("app")
8328cmd void vkCmdDrawIndexedIndirect(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008329 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008330 VkBuffer buffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008331 VkDeviceSize offset,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008332 u32 drawCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008333 u32 stride) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008334 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008335 bufferObject := GetBuffer(buffer)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008336 assert(commandBufferObject.device == bufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008337
Jesse Hall3fbc8562015-11-29 22:10:52 -08008338 bindCommandBuffer(commandBuffer, buffer, bufferObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008339
Jesse Hall3fbc8562015-11-29 22:10:52 -08008340 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008341}
8342
8343@threadSafety("app")
8344cmd void vkCmdDispatch(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008345 VkCommandBuffer commandBuffer,
Jesse Hallad250842017-03-10 18:35:38 -08008346 u32 groupCountX,
8347 u32 groupCountY,
8348 u32 groupCountZ) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008349 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008350
Jesse Hall3fbc8562015-11-29 22:10:52 -08008351 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_COMPUTE_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008352}
8353
8354@threadSafety("app")
8355cmd void vkCmdDispatchIndirect(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008356 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008357 VkBuffer buffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008358 VkDeviceSize offset) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008359 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008360 bufferObject := GetBuffer(buffer)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008361 assert(commandBufferObject.device == bufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008362
Jesse Hall3fbc8562015-11-29 22:10:52 -08008363 bindCommandBuffer(commandBuffer, buffer, bufferObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008364
Jesse Hall3fbc8562015-11-29 22:10:52 -08008365 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_COMPUTE_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008366}
8367
8368@threadSafety("app")
8369cmd void vkCmdCopyBuffer(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008370 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008371 VkBuffer srcBuffer,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008372 VkBuffer dstBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008373 u32 regionCount,
8374 const VkBufferCopy* pRegions) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008375 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008376 srcBufferObject := GetBuffer(srcBuffer)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008377 dstBufferObject := GetBuffer(dstBuffer)
8378 assert(commandBufferObject.device == srcBufferObject.device)
8379 assert(commandBufferObject.device == dstBufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008380
8381 regions := pRegions[0:regionCount]
8382 for i in (0 .. regionCount) {
8383 region := regions[i]
8384 }
8385
Jesse Hall3fbc8562015-11-29 22:10:52 -08008386 bindCommandBuffer(commandBuffer, srcBuffer, srcBufferObject.memory)
8387 bindCommandBuffer(commandBuffer, dstBuffer, dstBufferObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008388
Jesse Hall65ab5522015-11-30 00:07:16 -08008389 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_TRANSFER_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008390}
8391
8392@threadSafety("app")
8393cmd void vkCmdCopyImage(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008394 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008395 VkImage srcImage,
8396 VkImageLayout srcImageLayout,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008397 VkImage dstImage,
8398 VkImageLayout dstImageLayout,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008399 u32 regionCount,
8400 const VkImageCopy* pRegions) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008401 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008402 srcImageObject := GetImage(srcImage)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008403 dstImageObject := GetImage(dstImage)
8404 assert(commandBufferObject.device == srcImageObject.device)
8405 assert(commandBufferObject.device == dstImageObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008406
8407 regions := pRegions[0:regionCount]
8408 for i in (0 .. regionCount) {
8409 region := regions[i]
8410 }
8411
Jesse Hall3fbc8562015-11-29 22:10:52 -08008412 bindCommandBuffer(commandBuffer, srcImage, srcImageObject.memory)
8413 bindCommandBuffer(commandBuffer, dstImage, dstImageObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008414
Jesse Hall65ab5522015-11-30 00:07:16 -08008415 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_TRANSFER_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008416}
8417
8418@threadSafety("app")
8419cmd void vkCmdBlitImage(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008420 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008421 VkImage srcImage,
8422 VkImageLayout srcImageLayout,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008423 VkImage dstImage,
8424 VkImageLayout dstImageLayout,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008425 u32 regionCount,
8426 const VkImageBlit* pRegions,
Jesse Hall23ff73f2015-11-29 14:36:39 -08008427 VkFilter filter) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008428 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008429 srcImageObject := GetImage(srcImage)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008430 dstImageObject := GetImage(dstImage)
8431 assert(commandBufferObject.device == srcImageObject.device)
8432 assert(commandBufferObject.device == dstImageObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008433
8434 regions := pRegions[0:regionCount]
8435 for i in (0 .. regionCount) {
8436 region := regions[i]
8437 }
8438
Jesse Hall3fbc8562015-11-29 22:10:52 -08008439 bindCommandBuffer(commandBuffer, srcImage, srcImageObject.memory)
8440 bindCommandBuffer(commandBuffer, dstImage, dstImageObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008441
Jesse Hall3fbc8562015-11-29 22:10:52 -08008442 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008443}
8444
8445@threadSafety("app")
8446cmd void vkCmdCopyBufferToImage(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008447 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008448 VkBuffer srcBuffer,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008449 VkImage dstImage,
8450 VkImageLayout dstImageLayout,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008451 u32 regionCount,
8452 const VkBufferImageCopy* pRegions) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008453 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008454 srcBufferObject := GetBuffer(srcBuffer)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008455 dstImageObject := GetImage(dstImage)
8456 assert(commandBufferObject.device == srcBufferObject.device)
8457 assert(commandBufferObject.device == dstImageObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008458
8459 regions := pRegions[0:regionCount]
8460 for i in (0 .. regionCount) {
8461 region := regions[i]
8462 }
8463
Jesse Hall3fbc8562015-11-29 22:10:52 -08008464 bindCommandBuffer(commandBuffer, srcBuffer, srcBufferObject.memory)
8465 bindCommandBuffer(commandBuffer, dstImage, dstImageObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008466
Jesse Hall65ab5522015-11-30 00:07:16 -08008467 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_TRANSFER_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008468}
8469
8470@threadSafety("app")
8471cmd void vkCmdCopyImageToBuffer(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008472 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008473 VkImage srcImage,
8474 VkImageLayout srcImageLayout,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008475 VkBuffer dstBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008476 u32 regionCount,
8477 const VkBufferImageCopy* pRegions) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008478 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008479 srcImageObject := GetImage(srcImage)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008480 dstBufferObject := GetBuffer(dstBuffer)
8481 assert(commandBufferObject.device == srcImageObject.device)
8482 assert(commandBufferObject.device == dstBufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008483
8484 regions := pRegions[0:regionCount]
8485 for i in (0 .. regionCount) {
8486 region := regions[i]
8487 }
8488
Jesse Hall3fbc8562015-11-29 22:10:52 -08008489 bindCommandBuffer(commandBuffer, srcImage, srcImageObject.memory)
8490 bindCommandBuffer(commandBuffer, dstBuffer, dstBufferObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008491
Jesse Hall65ab5522015-11-30 00:07:16 -08008492 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_TRANSFER_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008493}
8494
8495@threadSafety("app")
8496cmd void vkCmdUpdateBuffer(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008497 VkCommandBuffer commandBuffer,
8498 VkBuffer dstBuffer,
8499 VkDeviceSize dstOffset,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008500 VkDeviceSize dataSize,
Jesse Hall56d386a2016-07-26 15:20:40 -07008501 const void* pData) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008502 commandBufferObject := GetCommandBuffer(commandBuffer)
8503 dstBufferObject := GetBuffer(dstBuffer)
8504 assert(commandBufferObject.device == dstBufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008505
8506 data := pData[0:dataSize]
8507
Jesse Hall3fbc8562015-11-29 22:10:52 -08008508 bindCommandBuffer(commandBuffer, dstBuffer, dstBufferObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008509
Jesse Hall65ab5522015-11-30 00:07:16 -08008510 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_TRANSFER_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008511}
8512
8513@threadSafety("app")
8514cmd void vkCmdFillBuffer(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008515 VkCommandBuffer commandBuffer,
8516 VkBuffer dstBuffer,
8517 VkDeviceSize dstOffset,
Jesse Hallb00daad2015-11-29 19:46:20 -08008518 VkDeviceSize size,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008519 u32 data) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008520 commandBufferObject := GetCommandBuffer(commandBuffer)
8521 dstBufferObject := GetBuffer(dstBuffer)
8522 assert(commandBufferObject.device == dstBufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008523
Jesse Hall65ab5522015-11-30 00:07:16 -08008524 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_TRANSFER_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008525}
8526
8527@threadSafety("app")
8528cmd void vkCmdClearColorImage(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008529 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008530 VkImage image,
8531 VkImageLayout imageLayout,
8532 const VkClearColorValue* pColor,
8533 u32 rangeCount,
8534 const VkImageSubresourceRange* pRanges) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008535 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008536 imageObject := GetImage(image)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008537 assert(commandBufferObject.device == imageObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008538
8539 ranges := pRanges[0:rangeCount]
8540 for i in (0 .. rangeCount) {
8541 range := ranges[i]
8542 }
8543
Jesse Hall3fbc8562015-11-29 22:10:52 -08008544 bindCommandBuffer(commandBuffer, image, imageObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008545
Jesse Hall3fbc8562015-11-29 22:10:52 -08008546 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008547}
8548
8549@threadSafety("app")
8550cmd void vkCmdClearDepthStencilImage(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008551 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008552 VkImage image,
8553 VkImageLayout imageLayout,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008554 const VkClearDepthStencilValue* pDepthStencil,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008555 u32 rangeCount,
8556 const VkImageSubresourceRange* pRanges) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008557 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008558 imageObject := GetImage(image)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008559 assert(commandBufferObject.device == imageObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008560
8561 ranges := pRanges[0:rangeCount]
8562 for i in (0 .. rangeCount) {
8563 range := ranges[i]
8564 }
8565
Jesse Hall3fbc8562015-11-29 22:10:52 -08008566 bindCommandBuffer(commandBuffer, image, imageObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008567
Jesse Hall3fbc8562015-11-29 22:10:52 -08008568 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008569}
8570
8571@threadSafety("app")
Jesse Hallae38f732015-11-19 21:32:50 -08008572cmd void vkCmdClearAttachments(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008573 VkCommandBuffer commandBuffer,
Jesse Hallae38f732015-11-19 21:32:50 -08008574 u32 attachmentCount,
8575 const VkClearAttachment* pAttachments,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008576 u32 rectCount,
Jesse Halla15a4bf2015-11-19 22:48:02 -08008577 const VkClearRect* pRects) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008578 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008579
8580 rects := pRects[0:rectCount]
8581 for i in (0 .. rectCount) {
8582 rect := rects[i]
8583 }
8584
Jesse Hall3fbc8562015-11-29 22:10:52 -08008585 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008586}
8587
8588@threadSafety("app")
8589cmd void vkCmdResolveImage(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008590 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008591 VkImage srcImage,
8592 VkImageLayout srcImageLayout,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008593 VkImage dstImage,
8594 VkImageLayout dstImageLayout,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008595 u32 regionCount,
8596 const VkImageResolve* pRegions) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008597 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008598 srcImageObject := GetImage(srcImage)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008599 dstImageObject := GetImage(dstImage)
8600 assert(commandBufferObject.device == srcImageObject.device)
8601 assert(commandBufferObject.device == dstImageObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008602
8603 regions := pRegions[0:regionCount]
8604 for i in (0 .. regionCount) {
8605 region := regions[i]
8606 }
8607
Jesse Hall3fbc8562015-11-29 22:10:52 -08008608 bindCommandBuffer(commandBuffer, srcImage, srcImageObject.memory)
8609 bindCommandBuffer(commandBuffer, dstImage, dstImageObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008610
Jesse Hall3fbc8562015-11-29 22:10:52 -08008611 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008612}
8613
8614@threadSafety("app")
8615cmd void vkCmdSetEvent(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008616 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008617 VkEvent event,
8618 VkPipelineStageFlags stageMask) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008619 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008620 eventObject := GetEvent(event)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008621 assert(commandBufferObject.device == eventObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008622}
8623
8624@threadSafety("app")
8625cmd void vkCmdResetEvent(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008626 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008627 VkEvent event,
8628 VkPipelineStageFlags stageMask) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008629 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008630 eventObject := GetEvent(event)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008631 assert(commandBufferObject.device == eventObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008632}
8633
8634@threadSafety("app")
8635cmd void vkCmdWaitEvents(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008636 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008637 u32 eventCount,
8638 const VkEvent* pEvents,
8639 VkPipelineStageFlags srcStageMask,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008640 VkPipelineStageFlags dstStageMask,
8641 u32 memoryBarrierCount,
Jesse Hall3dd678a2016-01-08 21:52:01 -08008642 const VkMemoryBarrier* pMemoryBarriers,
8643 u32 bufferMemoryBarrierCount,
8644 const VkBufferMemoryBarrier* pBufferMemoryBarriers,
8645 u32 imageMemoryBarrierCount,
8646 const VkImageMemoryBarrier* pImageMemoryBarriers) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008647 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008648
8649 events := pEvents[0:eventCount]
8650 for i in (0 .. eventCount) {
8651 event := events[i]
8652 eventObject := GetEvent(event)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008653 assert(commandBufferObject.device == eventObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008654 }
8655
Jesse Hall3dd678a2016-01-08 21:52:01 -08008656 memoryBarriers := pMemoryBarriers[0:memoryBarrierCount]
Jesse Hall3fbc8562015-11-29 22:10:52 -08008657 for i in (0 .. memoryBarrierCount) {
Jesse Hall3dd678a2016-01-08 21:52:01 -08008658 memoryBarrier := memoryBarriers[i]
8659 }
8660 bufferMemoryBarriers := pBufferMemoryBarriers[0:bufferMemoryBarrierCount]
8661 for i in (0 .. bufferMemoryBarrierCount) {
8662 bufferMemoryBarrier := bufferMemoryBarriers[i]
8663 bufferObject := GetBuffer(bufferMemoryBarrier.buffer)
8664 assert(bufferObject.device == commandBufferObject.device)
8665 }
8666 imageMemoryBarriers := pImageMemoryBarriers[0:imageMemoryBarrierCount]
8667 for i in (0 .. imageMemoryBarrierCount) {
8668 imageMemoryBarrier := imageMemoryBarriers[i]
8669 imageObject := GetImage(imageMemoryBarrier.image)
8670 assert(imageObject.device == commandBufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008671 }
8672}
8673
8674@threadSafety("app")
8675cmd void vkCmdPipelineBarrier(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008676 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008677 VkPipelineStageFlags srcStageMask,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008678 VkPipelineStageFlags dstStageMask,
Jesse Halldc6d36c2015-11-29 19:12:15 -08008679 VkDependencyFlags dependencyFlags,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008680 u32 memoryBarrierCount,
Jesse Hall3dd678a2016-01-08 21:52:01 -08008681 const VkMemoryBarrier* pMemoryBarriers,
8682 u32 bufferMemoryBarrierCount,
8683 const VkBufferMemoryBarrier* pBufferMemoryBarriers,
8684 u32 imageMemoryBarrierCount,
8685 const VkImageMemoryBarrier* pImageMemoryBarriers) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008686 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008687
Jesse Hall3dd678a2016-01-08 21:52:01 -08008688 memoryBarriers := pMemoryBarriers[0:memoryBarrierCount]
Jesse Hall3fbc8562015-11-29 22:10:52 -08008689 for i in (0 .. memoryBarrierCount) {
Jesse Hall3dd678a2016-01-08 21:52:01 -08008690 memoryBarrier := memoryBarriers[i]
8691 }
8692 bufferMemoryBarriers := pBufferMemoryBarriers[0:bufferMemoryBarrierCount]
8693 for i in (0 .. bufferMemoryBarrierCount) {
8694 bufferMemoryBarrier := bufferMemoryBarriers[i]
8695 bufferObject := GetBuffer(bufferMemoryBarrier.buffer)
8696 assert(bufferObject.device == commandBufferObject.device)
8697 }
8698 imageMemoryBarriers := pImageMemoryBarriers[0:imageMemoryBarrierCount]
8699 for i in (0 .. imageMemoryBarrierCount) {
8700 imageMemoryBarrier := imageMemoryBarriers[i]
8701 imageObject := GetImage(imageMemoryBarrier.image)
8702 assert(imageObject.device == commandBufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008703 }
8704}
8705
8706@threadSafety("app")
8707cmd void vkCmdBeginQuery(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008708 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008709 VkQueryPool queryPool,
Jesse Hall3dd678a2016-01-08 21:52:01 -08008710 u32 query,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008711 VkQueryControlFlags flags) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008712 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008713 queryPoolObject := GetQueryPool(queryPool)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008714 assert(commandBufferObject.device == queryPoolObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008715}
8716
8717@threadSafety("app")
8718cmd void vkCmdEndQuery(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008719 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008720 VkQueryPool queryPool,
Jesse Hall3dd678a2016-01-08 21:52:01 -08008721 u32 query) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008722 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008723 queryPoolObject := GetQueryPool(queryPool)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008724 assert(commandBufferObject.device == queryPoolObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008725}
8726
8727@threadSafety("app")
8728cmd void vkCmdResetQueryPool(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008729 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008730 VkQueryPool queryPool,
Jesse Hallf9fa9a52016-01-08 16:08:51 -08008731 u32 firstQuery,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008732 u32 queryCount) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008733 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008734 queryPoolObject := GetQueryPool(queryPool)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008735 assert(commandBufferObject.device == queryPoolObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008736}
8737
8738@threadSafety("app")
8739cmd void vkCmdWriteTimestamp(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008740 VkCommandBuffer commandBuffer,
Jesse Hall6f39a6d2015-11-24 11:08:36 -08008741 VkPipelineStageFlagBits pipelineStage,
Jesse Halla3a7a1d2015-11-24 11:37:23 -08008742 VkQueryPool queryPool,
Jesse Hall3dd678a2016-01-08 21:52:01 -08008743 u32 query) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008744 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halla3a7a1d2015-11-24 11:37:23 -08008745 queryPoolObject := GetQueryPool(queryPool)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008746 assert(commandBufferObject.device == queryPoolObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008747}
8748
8749@threadSafety("app")
8750cmd void vkCmdCopyQueryPoolResults(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008751 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008752 VkQueryPool queryPool,
Jesse Hallf9fa9a52016-01-08 16:08:51 -08008753 u32 firstQuery,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008754 u32 queryCount,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008755 VkBuffer dstBuffer,
8756 VkDeviceSize dstOffset,
Jesse Halla9bb62b2015-11-21 19:31:56 -08008757 VkDeviceSize stride,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008758 VkQueryResultFlags flags) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008759 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008760 queryPoolObject := GetQueryPool(queryPool)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008761 dstBufferObject := GetBuffer(dstBuffer)
8762 assert(commandBufferObject.device == queryPoolObject.device)
8763 assert(commandBufferObject.device == dstBufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008764}
8765
8766cmd void vkCmdPushConstants(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008767 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008768 VkPipelineLayout layout,
8769 VkShaderStageFlags stageFlags,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008770 u32 offset,
8771 u32 size,
Jesse Hallf4ab2b12015-11-30 16:04:55 -08008772 const void* pValues) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008773 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008774 layoutObject := GetPipelineLayout(layout)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008775 assert(commandBufferObject.device == layoutObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008776}
8777
8778@threadSafety("app")
8779cmd void vkCmdBeginRenderPass(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008780 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008781 const VkRenderPassBeginInfo* pRenderPassBegin,
Jesse Hall65ab5522015-11-30 00:07:16 -08008782 VkSubpassContents contents) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008783 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008784 renderPassObject := GetRenderPass(pRenderPassBegin.renderPass)
8785 framebufferObject := GetFramebuffer(pRenderPassBegin.framebuffer)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008786 assert(commandBufferObject.device == renderPassObject.device)
8787 assert(commandBufferObject.device == framebufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008788
Jesse Hall3fbc8562015-11-29 22:10:52 -08008789 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008790}
8791
8792cmd void vkCmdNextSubpass(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008793 VkCommandBuffer commandBuffer,
Jesse Hall65ab5522015-11-30 00:07:16 -08008794 VkSubpassContents contents) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008795 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008796}
8797
8798@threadSafety("app")
8799cmd void vkCmdEndRenderPass(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008800 VkCommandBuffer commandBuffer) {
8801 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008802
Jesse Hall3fbc8562015-11-29 22:10:52 -08008803 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008804}
8805
8806cmd void vkCmdExecuteCommands(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008807 VkCommandBuffer commandBuffer,
Jesse Hall3dd678a2016-01-08 21:52:01 -08008808 u32 commandBufferCount,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008809 const VkCommandBuffer* pCommandBuffers) {
8810 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008811
Jesse Hall3dd678a2016-01-08 21:52:01 -08008812 commandBuffers := pCommandBuffers[0:commandBufferCount]
8813 for i in (0 .. commandBufferCount) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008814 secondaryCommandBuffer := commandBuffers[i]
8815 secondaryCommandBufferObject := GetCommandBuffer(secondaryCommandBuffer)
8816 assert(commandBufferObject.device == secondaryCommandBufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008817 }
8818}
8819
Ian Elliott28bd2c32017-10-13 09:21:12 -06008820//@vulkan1_1 functions
Daniel Koch09f7bf92017-10-05 00:26:58 -04008821
Ian Elliott28bd2c32017-10-13 09:21:12 -06008822@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04008823cmd VkResult vkEnumerateInstanceVersion(
8824 u32* pApiVersion) {
8825 return ?
8826}
8827
Ian Elliott28bd2c32017-10-13 09:21:12 -06008828@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04008829cmd VkResult vkBindBufferMemory2(
8830 VkDevice device,
8831 u32 bindInfoCount,
8832 const VkBindBufferMemoryInfo* pBindInfos) {
8833 return ?
8834}
8835
Ian Elliott28bd2c32017-10-13 09:21:12 -06008836@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04008837cmd VkResult vkBindImageMemory2(
8838 VkDevice device,
8839 u32 bindInfoCount,
8840 const VkBindImageMemoryInfo* pBindInfos) {
8841 return ?
8842}
8843
Ian Elliott28bd2c32017-10-13 09:21:12 -06008844@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04008845cmd void vkGetDeviceGroupPeerMemoryFeatures(
8846 VkDevice device,
8847 u32 heapIndex,
8848 u32 localDeviceIndex,
8849 u32 remoteDeviceIndex,
8850 VkPeerMemoryFeatureFlags* pPeerMemoryFeatures) {
8851}
8852
Ian Elliott28bd2c32017-10-13 09:21:12 -06008853@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04008854cmd void vkCmdSetDeviceMask(
8855 VkCommandBuffer commandBuffer,
8856 u32 deviceMask) {
8857}
8858
Ian Elliott28bd2c32017-10-13 09:21:12 -06008859@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04008860cmd void vkCmdDispatchBase(
8861 VkCommandBuffer commandBuffer,
8862 u32 baseGroupX,
8863 u32 baseGroupY,
8864 u32 baseGroupZ,
8865 u32 groupCountX,
8866 u32 groupCountY,
8867 u32 groupCountZ) {
8868}
8869
8870@threadSafety("system")
Ian Elliott28bd2c32017-10-13 09:21:12 -06008871@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04008872cmd VkResult vkEnumeratePhysicalDeviceGroups(
8873 VkInstance instance,
8874 u32* pPhysicalDeviceGroupCount,
8875 VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties) {
8876 instanceObject := GetInstance(instance)
8877
8878 physicalDeviceGroupCount := as!u32(?)
8879 pPhysicalDeviceGroupCount[0] = physicalDeviceGroupCount
8880 physicalDevices := pPhysicalDeviceGroupProperties[0:physicalDeviceGroupCount]
8881
8882 for i in (0 .. physicalDeviceGroupCount) {
8883 physicalDevice := ?
8884 physicalDevices[i] = physicalDevice
8885 if !(physicalDevice in State.PhysicalDevices) {
8886 State.PhysicalDevices[physicalDevice] = new!PhysicalDeviceObject(instance: instance)
8887 }
8888 }
8889
8890 return ?
8891}
8892
Ian Elliott28bd2c32017-10-13 09:21:12 -06008893@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04008894cmd void vkGetImageMemoryRequirements2(
8895 VkDevice device,
8896 const VkImageMemoryRequirementsInfo2* pInfo,
8897 VkMemoryRequirements2* pMemoryRequirements) {
8898}
8899
Ian Elliott28bd2c32017-10-13 09:21:12 -06008900@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04008901cmd void vkGetBufferMemoryRequirements2(
8902 VkDevice device,
8903 const VkBufferMemoryRequirementsInfo2* pInfo,
8904 VkMemoryRequirements2* pMemoryRequirements) {
8905}
8906
Ian Elliott28bd2c32017-10-13 09:21:12 -06008907@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04008908cmd void vkGetImageSparseMemoryRequirements2(
8909 VkDevice device,
8910 const VkImageSparseMemoryRequirementsInfo2* pInfo,
8911 u32* pSparseMemoryRequirementCount,
8912 VkSparseImageMemoryRequirements2* pSparseMemoryRequirements) {
8913}
8914
Ian Elliott28bd2c32017-10-13 09:21:12 -06008915@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04008916cmd void vkGetPhysicalDeviceFeatures2(
8917 VkPhysicalDevice physicalDevice,
8918 VkPhysicalDeviceFeatures2* pFeatures) {
8919}
8920
Ian Elliott28bd2c32017-10-13 09:21:12 -06008921@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04008922cmd void vkGetPhysicalDeviceProperties2(
8923 VkPhysicalDevice physicalDevice,
8924 VkPhysicalDeviceProperties2* pProperties) {
8925}
8926
Ian Elliott28bd2c32017-10-13 09:21:12 -06008927@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04008928cmd void vkGetPhysicalDeviceFormatProperties2(
8929 VkPhysicalDevice physicalDevice,
8930 VkFormat format,
8931 VkFormatProperties2* pFormatProperties) {
8932}
8933
Ian Elliott28bd2c32017-10-13 09:21:12 -06008934@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04008935cmd VkResult vkGetPhysicalDeviceImageFormatProperties2(
8936 VkPhysicalDevice physicalDevice,
8937 const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo,
8938 VkImageFormatProperties2* pImageFormatProperties) {
8939 return ?
8940}
8941
Ian Elliott28bd2c32017-10-13 09:21:12 -06008942@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04008943cmd void vkGetPhysicalDeviceQueueFamilyProperties2(
8944 VkPhysicalDevice physicalDevice,
8945 u32* pQueueFamilyPropertyCount,
8946 VkQueueFamilyProperties2* pQueueFamilyProperties) {
8947}
8948
Ian Elliott28bd2c32017-10-13 09:21:12 -06008949@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04008950cmd void vkGetPhysicalDeviceMemoryProperties2(
8951 VkPhysicalDevice physicalDevice,
8952 VkPhysicalDeviceMemoryProperties2* pMemoryProperties) {
8953}
8954
Ian Elliott28bd2c32017-10-13 09:21:12 -06008955@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04008956cmd void vkGetPhysicalDeviceSparseImageFormatProperties2(
8957 VkPhysicalDevice physicalDevice,
8958 const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo,
8959 u32* pPropertyCount,
8960 VkSparseImageFormatProperties2* pProperties) {
8961}
8962
Ian Elliott28bd2c32017-10-13 09:21:12 -06008963@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04008964cmd void vkTrimCommandPool(
8965 VkDevice device,
8966 VkCommandPool commandPool,
8967 VkCommandPoolTrimFlags flags) {
8968}
8969
8970
Ian Elliott28bd2c32017-10-13 09:21:12 -06008971@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04008972cmd void vkGetDeviceQueue2(
8973 VkDevice device,
8974 const VkDeviceQueueInfo2* pQueueInfo,
8975 VkQueue* pQueue) {
8976 deviceObject := GetDevice(device)
8977
8978 queue := ?
8979 pQueue[0] = queue
8980
8981 if !(queue in State.Queues) {
8982 State.Queues[queue] = new!QueueObject(device: device)
8983 }
8984}
8985
Ian Elliott28bd2c32017-10-13 09:21:12 -06008986@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04008987cmd VkResult vkCreateSamplerYcbcrConversion(
8988 VkDevice device,
8989 const VkSamplerYcbcrConversionCreateInfo* pCreateInfo,
8990 const VkAllocationCallbacks* pAllocator,
8991 VkSamplerYcbcrConversion* pYcbcrConversion) {
8992 return ?
8993}
8994
Ian Elliott28bd2c32017-10-13 09:21:12 -06008995@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04008996cmd void vkDestroySamplerYcbcrConversion(
8997 VkDevice device,
8998 VkSamplerYcbcrConversion ycbcrConversion,
8999 const VkAllocationCallbacks* pAllocator) {
9000}
9001
Ian Elliott28bd2c32017-10-13 09:21:12 -06009002@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009003cmd VkResult vkCreateDescriptorUpdateTemplate(
9004 VkDevice device,
9005 const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo,
9006 const VkAllocationCallbacks* pAllocator,
9007 VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate) {
9008 return ?
9009}
9010
Ian Elliott28bd2c32017-10-13 09:21:12 -06009011@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009012cmd void vkDestroyDescriptorUpdateTemplate(
9013 VkDevice device,
9014 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
9015 const VkAllocationCallbacks* pAllocator) {
9016}
9017
Ian Elliott28bd2c32017-10-13 09:21:12 -06009018@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009019cmd void vkUpdateDescriptorSetWithTemplate(
9020 VkDevice device,
9021 VkDescriptorSet descriptorSet,
9022 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
9023 const void* pData) {
9024}
9025
Ian Elliott28bd2c32017-10-13 09:21:12 -06009026@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009027cmd void vkGetPhysicalDeviceExternalBufferProperties(
9028 VkPhysicalDevice physicalDevice,
9029 const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo,
9030 VkExternalBufferProperties* pExternalBufferProperties) {
9031}
9032
Ian Elliott28bd2c32017-10-13 09:21:12 -06009033@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009034cmd void vkGetPhysicalDeviceExternalFenceProperties(
9035 VkPhysicalDevice physicalDevice,
9036 const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo,
9037 VkExternalFenceProperties* pExternalFenceProperties) {
9038}
9039
Ian Elliott28bd2c32017-10-13 09:21:12 -06009040@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009041cmd void vkGetPhysicalDeviceExternalSemaphoreProperties(
9042 VkPhysicalDevice physicalDevice,
9043 const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo,
9044 VkExternalSemaphoreProperties* pExternalSemaphoreProperties) {
9045}
9046
Ian Elliott28bd2c32017-10-13 09:21:12 -06009047@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009048cmd void vkGetDescriptorSetLayoutSupport(
9049 VkDevice device,
9050 const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
9051 VkDescriptorSetLayoutSupport* pSupport) {
9052}
9053
9054
Jesse Hallad250842017-03-10 18:35:38 -08009055@extension("VK_KHR_surface") // 1
Jesse Hall1356b0d2015-11-23 17:24:58 -08009056cmd void vkDestroySurfaceKHR(
9057 VkInstance instance,
Jesse Hall0e74f002015-11-30 11:37:59 -08009058 VkSurfaceKHR surface,
9059 const VkAllocationCallbacks* pAllocator) {
Jesse Hall1356b0d2015-11-23 17:24:58 -08009060 instanceObject := GetInstance(instance)
9061 surfaceObject := GetSurface(surface)
9062 assert(surfaceObject.instance == instance)
Michael Lentine88594d72015-11-12 12:49:45 -08009063
Jesse Hall1356b0d2015-11-23 17:24:58 -08009064 State.Surfaces[surface] = null
Jesse Hall2818f932015-11-19 21:19:17 -08009065}
9066
Jesse Hallad250842017-03-10 18:35:38 -08009067@extension("VK_KHR_surface") // 1
Jesse Halla6429252015-11-29 18:59:42 -08009068cmd VkResult vkGetPhysicalDeviceSurfaceSupportKHR(
Jesse Hall1356b0d2015-11-23 17:24:58 -08009069 VkPhysicalDevice physicalDevice,
9070 u32 queueFamilyIndex,
Jesse Hall1356b0d2015-11-23 17:24:58 -08009071 VkSurfaceKHR surface,
Jesse Hallb00daad2015-11-29 19:46:20 -08009072 VkBool32* pSupported) {
9073 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
Michael Lentine88594d72015-11-12 12:49:45 -08009074
9075 return ?
9076}
9077
Jesse Hallad250842017-03-10 18:35:38 -08009078@extension("VK_KHR_surface") // 1
Jesse Hallb00daad2015-11-29 19:46:20 -08009079cmd VkResult vkGetPhysicalDeviceSurfaceCapabilitiesKHR(
9080 VkPhysicalDevice physicalDevice,
9081 VkSurfaceKHR surface,
9082 VkSurfaceCapabilitiesKHR* pSurfaceCapabilities) {
9083 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
9084
9085 surfaceCapabilities := ?
9086 pSurfaceCapabilities[0] = surfaceCapabilities
9087
9088 return ?
9089}
9090
Jesse Hallad250842017-03-10 18:35:38 -08009091@extension("VK_KHR_surface") // 1
Jesse Hallb00daad2015-11-29 19:46:20 -08009092cmd VkResult vkGetPhysicalDeviceSurfaceFormatsKHR(
9093 VkPhysicalDevice physicalDevice,
Jesse Hall1356b0d2015-11-23 17:24:58 -08009094 VkSurfaceKHR surface,
Jesse Hall03b6fe12015-11-24 12:44:21 -08009095 u32* pSurfaceFormatCount,
Jesse Hall1356b0d2015-11-23 17:24:58 -08009096 VkSurfaceFormatKHR* pSurfaceFormats) {
Jesse Hallb00daad2015-11-29 19:46:20 -08009097 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
Michael Lentine88594d72015-11-12 12:49:45 -08009098
9099 count := as!u32(?)
Jesse Hall03b6fe12015-11-24 12:44:21 -08009100 pSurfaceFormatCount[0] = count
Michael Lentine88594d72015-11-12 12:49:45 -08009101 surfaceFormats := pSurfaceFormats[0:count]
9102
9103 for i in (0 .. count) {
9104 surfaceFormat := ?
9105 surfaceFormats[i] = surfaceFormat
9106 }
9107
9108 return ?
9109}
9110
Jesse Hallad250842017-03-10 18:35:38 -08009111@extension("VK_KHR_surface") // 1
Jesse Hallb00daad2015-11-29 19:46:20 -08009112cmd VkResult vkGetPhysicalDeviceSurfacePresentModesKHR(
9113 VkPhysicalDevice physicalDevice,
Jesse Hall1356b0d2015-11-23 17:24:58 -08009114 VkSurfaceKHR surface,
Jesse Hall03b6fe12015-11-24 12:44:21 -08009115 u32* pPresentModeCount,
Jesse Hall1356b0d2015-11-23 17:24:58 -08009116 VkPresentModeKHR* pPresentModes) {
Jesse Hallb00daad2015-11-29 19:46:20 -08009117 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
Michael Lentine88594d72015-11-12 12:49:45 -08009118
9119 count := as!u32(?)
Jesse Hall03b6fe12015-11-24 12:44:21 -08009120 pPresentModeCount[0] = count
Michael Lentine88594d72015-11-12 12:49:45 -08009121 presentModes := pPresentModes[0:count]
9122
9123 for i in (0 .. count) {
9124 presentMode := ?
9125 presentModes[i] = presentMode
9126 }
9127
9128 return ?
9129}
9130
Jesse Hallad250842017-03-10 18:35:38 -08009131@extension("VK_KHR_swapchain") // 2
Michael Lentine88594d72015-11-12 12:49:45 -08009132cmd VkResult vkCreateSwapchainKHR(
9133 VkDevice device,
9134 const VkSwapchainCreateInfoKHR* pCreateInfo,
Jesse Hall0e74f002015-11-30 11:37:59 -08009135 const VkAllocationCallbacks* pAllocator,
Michael Lentine88594d72015-11-12 12:49:45 -08009136 VkSwapchainKHR* pSwapchain) {
Jesse Hall1356b0d2015-11-23 17:24:58 -08009137 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR)
Michael Lentine88594d72015-11-12 12:49:45 -08009138 deviceObject := GetDevice(device)
9139
9140 swapchain := ?
9141 pSwapchain[0] = swapchain
9142 State.Swapchains[swapchain] = new!SwapchainObject(device: device)
9143
9144 return ?
9145}
9146
Jesse Hallad250842017-03-10 18:35:38 -08009147@extension("VK_KHR_swapchain") // 2
Jesse Hall1356b0d2015-11-23 17:24:58 -08009148cmd void vkDestroySwapchainKHR(
Michael Lentine88594d72015-11-12 12:49:45 -08009149 VkDevice device,
Jesse Hall0e74f002015-11-30 11:37:59 -08009150 VkSwapchainKHR swapchain,
9151 const VkAllocationCallbacks* pAllocator) {
Michael Lentine88594d72015-11-12 12:49:45 -08009152 deviceObject := GetDevice(device)
9153 swapchainObject := GetSwapchain(swapchain)
9154 assert(swapchainObject.device == device)
9155
9156 State.Swapchains[swapchain] = null
Michael Lentine88594d72015-11-12 12:49:45 -08009157}
9158
Jesse Hallad250842017-03-10 18:35:38 -08009159@extension("VK_KHR_swapchain") // 2
Michael Lentine88594d72015-11-12 12:49:45 -08009160cmd VkResult vkGetSwapchainImagesKHR(
9161 VkDevice device,
9162 VkSwapchainKHR swapchain,
Jesse Hall03b6fe12015-11-24 12:44:21 -08009163 u32* pSwapchainImageCount,
Michael Lentine88594d72015-11-12 12:49:45 -08009164 VkImage* pSwapchainImages) {
9165 deviceObject := GetDevice(device)
9166
9167 count := as!u32(?)
Jesse Hall03b6fe12015-11-24 12:44:21 -08009168 pSwapchainImageCount[0] = count
Michael Lentine88594d72015-11-12 12:49:45 -08009169 swapchainImages := pSwapchainImages[0:count]
9170
9171 for i in (0 .. count) {
9172 swapchainImage := ?
9173 swapchainImages[i] = swapchainImage
Jesse Hall1356b0d2015-11-23 17:24:58 -08009174 State.Images[swapchainImage] = new!ImageObject(device: device)
Michael Lentine88594d72015-11-12 12:49:45 -08009175 }
9176
9177 return ?
9178}
9179
Jesse Hallad250842017-03-10 18:35:38 -08009180@extension("VK_KHR_swapchain") // 2
Michael Lentine88594d72015-11-12 12:49:45 -08009181cmd VkResult vkAcquireNextImageKHR(
9182 VkDevice device,
9183 VkSwapchainKHR swapchain,
9184 u64 timeout,
9185 VkSemaphore semaphore,
Jesse Hall1356b0d2015-11-23 17:24:58 -08009186 VkFence fence,
Michael Lentine88594d72015-11-12 12:49:45 -08009187 u32* pImageIndex) {
9188 deviceObject := GetDevice(device)
9189 swapchainObject := GetSwapchain(swapchain)
9190
9191 imageIndex := ?
9192 pImageIndex[0] = imageIndex
9193
9194 return ?
9195}
9196
Jesse Hallad250842017-03-10 18:35:38 -08009197@extension("VK_KHR_swapchain") // 2
Michael Lentine88594d72015-11-12 12:49:45 -08009198cmd VkResult vkQueuePresentKHR(
9199 VkQueue queue,
Jesse Hallf4ab2b12015-11-30 16:04:55 -08009200 const VkPresentInfoKHR* pPresentInfo) {
Michael Lentine88594d72015-11-12 12:49:45 -08009201 queueObject := GetQueue(queue)
9202
9203 presentInfo := ?
9204 pPresentInfo[0] = presentInfo
9205
9206 return ?
9207}
9208
Ian Elliott28bd2c32017-10-13 09:21:12 -06009209@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009210@extension("VK_KHR_swapchain") // 2
9211cmd VkResult vkGetDeviceGroupPresentCapabilitiesKHR(
9212 VkDevice device,
9213 VkDeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities) {
9214 return ?
9215}
9216
Ian Elliott28bd2c32017-10-13 09:21:12 -06009217@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009218@extension("VK_KHR_swapchain") // 2
9219cmd VkResult vkGetDeviceGroupSurfacePresentModesKHR(
9220 VkDevice device,
9221 VkSurfaceKHR surface,
9222 VkDeviceGroupPresentModeFlagsKHR* pModes) {
9223 return ?
9224}
9225
Ian Elliott28bd2c32017-10-13 09:21:12 -06009226@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009227@extension("VK_KHR_swapchain") // 2
9228cmd VkResult vkGetPhysicalDevicePresentRectanglesKHR(
9229 VkPhysicalDevice physicalDevice,
9230 VkSurfaceKHR surface,
9231 u32* pRectCount,
9232 VkRect2D* pRects) {
9233 return ?
9234}
9235
Ian Elliott28bd2c32017-10-13 09:21:12 -06009236@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009237@extension("VK_KHR_swapchain") // 2
9238cmd VkResult vkAcquireNextImage2KHR(
9239 VkDevice device,
9240 const VkAcquireNextImageInfoKHR* pAcquireInfo,
9241 u32* pImageIndex) {
9242 return ?
9243}
9244
Jesse Hallad250842017-03-10 18:35:38 -08009245@extension("VK_KHR_display") // 3
Jesse Hall1356b0d2015-11-23 17:24:58 -08009246cmd VkResult vkGetPhysicalDeviceDisplayPropertiesKHR(
9247 VkPhysicalDevice physicalDevice,
Jesse Hall03b6fe12015-11-24 12:44:21 -08009248 u32* pPropertyCount,
Jesse Hall1356b0d2015-11-23 17:24:58 -08009249 VkDisplayPropertiesKHR* pProperties) {
9250 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
9251 return ?
9252}
9253
Jesse Hallad250842017-03-10 18:35:38 -08009254@extension("VK_KHR_display") // 3
Jesse Halla6429252015-11-29 18:59:42 -08009255cmd VkResult vkGetPhysicalDeviceDisplayPlanePropertiesKHR(
9256 VkPhysicalDevice physicalDevice,
9257 u32* pPropertyCount,
9258 VkDisplayPlanePropertiesKHR* pProperties) {
9259 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
9260 return ?
9261}
9262
Jesse Hallad250842017-03-10 18:35:38 -08009263@extension("VK_KHR_display") // 3
Jesse Halla6429252015-11-29 18:59:42 -08009264cmd VkResult vkGetDisplayPlaneSupportedDisplaysKHR(
9265 VkPhysicalDevice physicalDevice,
Jesse Hall3dd678a2016-01-08 21:52:01 -08009266 u32 planeIndex,
Jesse Hallf4ab2b12015-11-30 16:04:55 -08009267 u32* pDisplayCount,
9268 VkDisplayKHR* pDisplays) {
Jesse Halla6429252015-11-29 18:59:42 -08009269 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
9270 return ?
9271}
9272
Jesse Hallad250842017-03-10 18:35:38 -08009273@extension("VK_KHR_display") // 3
Jesse Hall1356b0d2015-11-23 17:24:58 -08009274cmd VkResult vkGetDisplayModePropertiesKHR(
9275 VkPhysicalDevice physicalDevice,
9276 VkDisplayKHR display,
Jesse Hall03b6fe12015-11-24 12:44:21 -08009277 u32* pPropertyCount,
9278 VkDisplayModePropertiesKHR* pProperties) {
Jesse Hall1356b0d2015-11-23 17:24:58 -08009279 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
9280 return ?
9281}
9282
Jesse Hallad250842017-03-10 18:35:38 -08009283@extension("VK_KHR_display") // 3
Jesse Hall1356b0d2015-11-23 17:24:58 -08009284cmd VkResult vkCreateDisplayModeKHR(
9285 VkPhysicalDevice physicalDevice,
9286 VkDisplayKHR display,
9287 const VkDisplayModeCreateInfoKHR* pCreateInfo,
Jesse Hall0e74f002015-11-30 11:37:59 -08009288 const VkAllocationCallbacks* pAllocator,
Jesse Hall1356b0d2015-11-23 17:24:58 -08009289 VkDisplayModeKHR* pMode) {
9290 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
9291 return ?
9292}
9293
Jesse Hallad250842017-03-10 18:35:38 -08009294@extension("VK_KHR_display") // 3
Jesse Halla6429252015-11-29 18:59:42 -08009295cmd VkResult vkGetDisplayPlaneCapabilitiesKHR(
Jesse Hall1356b0d2015-11-23 17:24:58 -08009296 VkPhysicalDevice physicalDevice,
Jesse Hall9ba8bc82015-11-30 16:22:16 -08009297 VkDisplayModeKHR mode,
Jesse Hall1356b0d2015-11-23 17:24:58 -08009298 u32 planeIndex,
Jesse Halla6429252015-11-29 18:59:42 -08009299 VkDisplayPlaneCapabilitiesKHR* pCapabilities) {
Jesse Hall1356b0d2015-11-23 17:24:58 -08009300 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
9301 return ?
9302}
9303
Jesse Hallad250842017-03-10 18:35:38 -08009304@extension("VK_KHR_display") // 3
Jesse Halla6429252015-11-29 18:59:42 -08009305cmd VkResult vkCreateDisplayPlaneSurfaceKHR(
9306 VkInstance instance,
9307 const VkDisplaySurfaceCreateInfoKHR* pCreateInfo,
Jesse Hall0e74f002015-11-30 11:37:59 -08009308 const VkAllocationCallbacks* pAllocator,
Jesse Halla6429252015-11-29 18:59:42 -08009309 VkSurfaceKHR* pSurface) {
9310 return ?
9311}
9312
Jesse Hallad250842017-03-10 18:35:38 -08009313@extension("VK_KHR_display_swapchain") // 4
Jesse Hall9ba8bc82015-11-30 16:22:16 -08009314cmd VkResult vkCreateSharedSwapchainsKHR(
9315 VkDevice device,
9316 u32 swapchainCount,
9317 const VkSwapchainCreateInfoKHR* pCreateInfos,
9318 const VkAllocationCallbacks* pAllocator,
9319 VkSwapchainKHR* pSwapchains) {
9320 return ?
9321}
9322
Jesse Hallad250842017-03-10 18:35:38 -08009323@extension("VK_KHR_xlib_surface") // 5
Jesse Halla6429252015-11-29 18:59:42 -08009324cmd VkResult vkCreateXlibSurfaceKHR(
Jesse Hall1356b0d2015-11-23 17:24:58 -08009325 VkInstance instance,
Jesse Hallf9fa9a52016-01-08 16:08:51 -08009326 const VkXlibSurfaceCreateInfoKHR* pCreateInfo,
Jesse Hall0e74f002015-11-30 11:37:59 -08009327 const VkAllocationCallbacks* pAllocator,
Jesse Hall1356b0d2015-11-23 17:24:58 -08009328 VkSurfaceKHR* pSurface) {
9329 instanceObject := GetInstance(instance)
9330 return ?
9331}
9332
Jesse Hallad250842017-03-10 18:35:38 -08009333@extension("VK_KHR_xlib_surface") // 5
Jesse Halla6429252015-11-29 18:59:42 -08009334cmd VkBool32 vkGetPhysicalDeviceXlibPresentationSupportKHR(
9335 VkPhysicalDevice physicalDevice,
9336 u32 queueFamilyIndex,
9337 platform.Display* dpy,
Jesse Hall65ab5522015-11-30 00:07:16 -08009338 platform.VisualID visualID) {
Jesse Halla6429252015-11-29 18:59:42 -08009339 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
9340 return ?
9341}
9342
Jesse Hallad250842017-03-10 18:35:38 -08009343@extension("VK_KHR_xcb_surface") // 6
Jesse Hallf9fa9a52016-01-08 16:08:51 -08009344cmd VkResult vkCreateXcbSurfaceKHR(
Jesse Hall1356b0d2015-11-23 17:24:58 -08009345 VkInstance instance,
Jesse Hallf9fa9a52016-01-08 16:08:51 -08009346 const VkXcbSurfaceCreateInfoKHR* pCreateInfo,
Jesse Hall0e74f002015-11-30 11:37:59 -08009347 const VkAllocationCallbacks* pAllocator,
Jesse Hall1356b0d2015-11-23 17:24:58 -08009348 VkSurfaceKHR* pSurface) {
9349 instanceObject := GetInstance(instance)
9350 return ?
9351}
9352
Jesse Hallad250842017-03-10 18:35:38 -08009353@extension("VK_KHR_xcb_surface") // 6
Jesse Halla6429252015-11-29 18:59:42 -08009354cmd VkBool32 vkGetPhysicalDeviceXcbPresentationSupportKHR(
9355 VkPhysicalDevice physicalDevice,
9356 u32 queueFamilyIndex,
9357 platform.xcb_connection_t* connection,
9358 platform.xcb_visualid_t visual_id) {
9359 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
9360 return ?
9361}
9362
Jesse Hallad250842017-03-10 18:35:38 -08009363@extension("VK_KHR_wayland_surface") // 7
Jesse Hall1356b0d2015-11-23 17:24:58 -08009364cmd VkResult vkCreateWaylandSurfaceKHR(
9365 VkInstance instance,
Jesse Hallf9fa9a52016-01-08 16:08:51 -08009366 const VkWaylandSurfaceCreateInfoKHR* pCreateInfo,
Jesse Hall0e74f002015-11-30 11:37:59 -08009367 const VkAllocationCallbacks* pAllocator,
Jesse Hall1356b0d2015-11-23 17:24:58 -08009368 VkSurfaceKHR* pSurface) {
9369 instanceObject := GetInstance(instance)
9370 return ?
9371}
9372
Jesse Hallad250842017-03-10 18:35:38 -08009373@extension("VK_KHR_wayland_surface") // 7
Jesse Halla6429252015-11-29 18:59:42 -08009374cmd VkBool32 vkGetPhysicalDeviceWaylandPresentationSupportKHR(
9375 VkPhysicalDevice physicalDevice,
9376 u32 queueFamilyIndex,
9377 platform.wl_display* display) {
9378 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
9379 return ?
9380}
9381
Jesse Hallad250842017-03-10 18:35:38 -08009382@extension("VK_KHR_mir_surface") // 8
Jesse Hall1356b0d2015-11-23 17:24:58 -08009383cmd VkResult vkCreateMirSurfaceKHR(
9384 VkInstance instance,
Jesse Hallf9fa9a52016-01-08 16:08:51 -08009385 const VkMirSurfaceCreateInfoKHR* pCreateInfo,
Jesse Hall0e74f002015-11-30 11:37:59 -08009386 const VkAllocationCallbacks* pAllocator,
Jesse Hall1356b0d2015-11-23 17:24:58 -08009387 VkSurfaceKHR* pSurface) {
9388 instanceObject := GetInstance(instance)
9389 return ?
9390}
9391
Jesse Hallad250842017-03-10 18:35:38 -08009392@extension("VK_KHR_mir_surface") // 8
Jesse Halla6429252015-11-29 18:59:42 -08009393cmd VkBool32 vkGetPhysicalDeviceMirPresentationSupportKHR(
9394 VkPhysicalDevice physicalDevice,
9395 u32 queueFamilyIndex,
9396 platform.MirConnection* connection) {
9397 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
9398 return ?
9399}
9400
Jesse Hallad250842017-03-10 18:35:38 -08009401@extension("VK_KHR_android_surface") // 9
Jesse Hall1356b0d2015-11-23 17:24:58 -08009402cmd VkResult vkCreateAndroidSurfaceKHR(
9403 VkInstance instance,
Jesse Hallf9fa9a52016-01-08 16:08:51 -08009404 const VkAndroidSurfaceCreateInfoKHR* pCreateInfo,
Jesse Hall0e74f002015-11-30 11:37:59 -08009405 const VkAllocationCallbacks* pAllocator,
Jesse Hall1356b0d2015-11-23 17:24:58 -08009406 VkSurfaceKHR* pSurface) {
9407 instanceObject := GetInstance(instance)
9408 return ?
9409}
9410
Jesse Hallad250842017-03-10 18:35:38 -08009411@extension("VK_KHR_win32_surface") // 10
Jesse Hall1356b0d2015-11-23 17:24:58 -08009412cmd VkResult vkCreateWin32SurfaceKHR(
9413 VkInstance instance,
Jesse Hallf9fa9a52016-01-08 16:08:51 -08009414 const VkWin32SurfaceCreateInfoKHR* pCreateInfo,
Jesse Hall0e74f002015-11-30 11:37:59 -08009415 const VkAllocationCallbacks* pAllocator,
Jesse Hall1356b0d2015-11-23 17:24:58 -08009416 VkSurfaceKHR* pSurface) {
9417 instanceObject := GetInstance(instance)
9418 return ?
9419}
9420
Jesse Hallad250842017-03-10 18:35:38 -08009421@extension("VK_KHR_win32_surface") // 10
Jesse Halla6429252015-11-29 18:59:42 -08009422cmd VkResult vkGetPhysicalDeviceWin32PresentationSupportKHR(
9423 VkPhysicalDevice physicalDevice,
9424 u32 queueFamilyIndex) {
Jesse Halle2948d82016-02-25 04:19:32 -08009425 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
Jesse Halla6429252015-11-29 18:59:42 -08009426 return ?
9427}
9428
Jesse Hallad250842017-03-10 18:35:38 -08009429@extension("VK_ANDROID_native_buffer") // 11
Jesse Halld1abd742017-02-09 21:45:51 -08009430@optional
Chia-I Wub262ddc2016-03-22 07:38:20 +08009431cmd VkResult vkGetSwapchainGrallocUsageANDROID(
9432 VkDevice device,
9433 VkFormat format,
9434 VkImageUsageFlags imageUsage,
Jesse Halld1abd742017-02-09 21:45:51 -08009435 s32* grallocUsage) {
Chia-I Wub262ddc2016-03-22 07:38:20 +08009436 return ?
9437}
9438
Jesse Hallad250842017-03-10 18:35:38 -08009439@extension("VK_ANDROID_native_buffer") // 11
Jesse Halld1abd742017-02-09 21:45:51 -08009440@optional
Chris Forbes8e4438b2016-12-07 16:26:49 +13009441cmd VkResult vkGetSwapchainGrallocUsage2ANDROID(
9442 VkDevice device,
9443 VkFormat format,
9444 VkImageUsageFlags imageUsage,
9445 VkSwapchainImageUsageFlagsANDROID swapchainImageUsage,
Jesse Halld1abd742017-02-09 21:45:51 -08009446 u64* grallocConsumerUsage,
9447 u64* grallocProducerUsage) {
Chris Forbes8e4438b2016-12-07 16:26:49 +13009448 return ?
9449}
9450
Jesse Hallad250842017-03-10 18:35:38 -08009451@extension("VK_ANDROID_native_buffer") // 11
Chia-I Wub262ddc2016-03-22 07:38:20 +08009452cmd VkResult vkAcquireImageANDROID(
9453 VkDevice device,
9454 VkImage image,
9455 int nativeFenceFd,
9456 VkSemaphore semaphore,
9457 VkFence fence) {
9458 return ?
9459}
9460
Jesse Hallad250842017-03-10 18:35:38 -08009461@extension("VK_ANDROID_native_buffer") // 11
Chia-I Wub262ddc2016-03-22 07:38:20 +08009462cmd VkResult vkQueueSignalReleaseImageANDROID(
9463 VkQueue queue,
9464 u32 waitSemaphoreCount,
9465 const VkSemaphore* pWaitSemaphores,
9466 VkImage image,
9467 int* pNativeFenceFd) {
9468 return ?
9469}
9470
Jesse Hallad250842017-03-10 18:35:38 -08009471@extension("VK_EXT_debug_report") // 12
9472@external type void* PFN_vkDebugReportCallbackEXT
9473@extension("VK_EXT_debug_report") // 12
9474@pfn cmd VkBool32 vkDebugReportCallbackEXT(
9475 VkDebugReportFlagsEXT flags,
9476 VkDebugReportObjectTypeEXT objectType,
9477 u64 object,
9478 platform.size_t location,
9479 s32 messageCode,
9480 const char* pLayerPrefix,
9481 const char* pMessage,
9482 void* pUserData) {
9483 return ?
9484}
9485
9486@extension("VK_EXT_debug_report") // 12
9487cmd VkResult vkCreateDebugReportCallbackEXT(
9488 VkInstance instance,
9489 const VkDebugReportCallbackCreateInfoEXT* pCreateInfo,
9490 const VkAllocationCallbacks* pAllocator,
9491 VkDebugReportCallbackEXT* pCallback) {
9492 return ?
9493}
9494
9495@extension("VK_EXT_debug_report") // 12
9496cmd void vkDestroyDebugReportCallbackEXT(
9497 VkInstance instance,
9498 VkDebugReportCallbackEXT callback,
9499 const VkAllocationCallbacks* pAllocator) {
9500}
9501
9502@extension("VK_EXT_debug_report") // 12
9503cmd void vkDebugReportMessageEXT(
9504 VkInstance instance,
9505 VkDebugReportFlagsEXT flags,
9506 VkDebugReportObjectTypeEXT objectType,
9507 u64 object,
9508 platform.size_t location,
9509 s32 messageCode,
9510 const char* pLayerPrefix,
9511 const char* pMessage) {
9512}
9513
9514@extension("VK_EXT_debug_marker") // 23
9515cmd VkResult vkDebugMarkerSetObjectTagEXT(
9516 VkDevice device,
Jesse Hall77726222017-09-19 14:49:27 -05009517 const VkDebugMarkerObjectTagInfoEXT* pTagInfo) {
Jesse Hallad250842017-03-10 18:35:38 -08009518 return ?
9519}
9520
9521@extension("VK_EXT_debug_marker") // 23
9522cmd VkResult vkDebugMarkerSetObjectNameEXT(
9523 VkDevice device,
Jesse Hall77726222017-09-19 14:49:27 -05009524 const VkDebugMarkerObjectNameInfoEXT* pNameInfo) {
Jesse Hallad250842017-03-10 18:35:38 -08009525 return ?
9526}
9527
9528@extension("VK_EXT_debug_marker") // 23
9529cmd void vkCmdDebugMarkerBeginEXT(
9530 VkCommandBuffer commandBuffer,
Jesse Hall77726222017-09-19 14:49:27 -05009531 const VkDebugMarkerMarkerInfoEXT* pMarkerInfo) {
Jesse Hallad250842017-03-10 18:35:38 -08009532}
9533
9534@extension("VK_EXT_debug_marker") // 23
9535cmd void vkCmdDebugMarkerEndEXT(
9536 VkCommandBuffer commandBuffer) {
9537}
9538
9539@extension("VK_EXT_debug_marker") // 23
9540cmd void vkCmdDebugMarkerInsertEXT(
9541 VkCommandBuffer commandBuffer,
Jesse Hall77726222017-09-19 14:49:27 -05009542 const VkDebugMarkerMarkerInfoEXT* pMarkerInfo) {
Jesse Hallad250842017-03-10 18:35:38 -08009543}
9544
9545@extension("VK_AMD_draw_indirect_count") // 34
9546cmd void vkCmdDrawIndirectCountAMD(
9547 VkCommandBuffer commandBuffer,
9548 VkBuffer buffer,
9549 VkDeviceSize offset,
9550 VkBuffer countBuffer,
9551 VkDeviceSize countBufferOffset,
9552 u32 maxDrawCount,
9553 u32 stride) {
9554}
9555
9556@extension("VK_AMD_draw_indirect_count") // 34
9557cmd void vkCmdDrawIndexedIndirectCountAMD(
9558 VkCommandBuffer commandBuffer,
9559 VkBuffer buffer,
9560 VkDeviceSize offset,
9561 VkBuffer countBuffer,
9562 VkDeviceSize countBufferOffset,
9563 u32 maxDrawCount,
9564 u32 stride) {
9565}
9566
Jesse Hall8c954d32018-01-17 22:06:20 -08009567@extension("VK_AMD_shader_info") // 43
9568cmd VkResult vkGetShaderInfoAMD(
9569 VkDevice device,
9570 VkPipeline pipeline,
9571 VkShaderStageFlagBits shaderStage,
9572 VkShaderInfoTypeAMD infoType,
9573 platform.size_t* pInfoSize,
9574 void* pInfo) {
9575 return ?
9576}
9577
Jesse Hallad250842017-03-10 18:35:38 -08009578@extension("VK_NV_external_memory_capabilities") // 56
9579cmd VkResult vkGetPhysicalDeviceExternalImageFormatPropertiesNV(
9580 VkPhysicalDevice physicalDevice,
9581 VkFormat format,
9582 VkImageType type,
9583 VkImageTiling tiling,
9584 VkImageUsageFlags usage,
9585 VkImageCreateFlags flags,
9586 VkExternalMemoryHandleTypeFlagsNV externalHandleType,
9587 VkExternalImageFormatPropertiesNV* pExternalImageFormatProperties) {
9588 return ?
9589}
9590
9591@extension("VK_NV_external_memory_win32") // 58
9592cmd VkResult vkGetMemoryWin32HandleNV(
9593 VkDevice device,
9594 VkDeviceMemory memory,
9595 VkExternalMemoryHandleTypeFlagsNV handleType,
9596 platform.HANDLE* pHandle) {
9597 return ?
9598}
9599
9600@extension("VK_KHR_get_physical_device_properties2") // 60
9601cmd void vkGetPhysicalDeviceFeatures2KHR(
9602 VkPhysicalDevice physicalDevice,
9603 VkPhysicalDeviceFeatures2KHR* pFeatures) {
9604}
9605
9606@extension("VK_KHR_get_physical_device_properties2") // 60
9607cmd void vkGetPhysicalDeviceProperties2KHR(
9608 VkPhysicalDevice physicalDevice,
9609 VkPhysicalDeviceProperties2KHR* pProperties) {
9610}
9611
9612@extension("VK_KHR_get_physical_device_properties2") // 60
9613cmd void vkGetPhysicalDeviceFormatProperties2KHR(
9614 VkPhysicalDevice physicalDevice,
9615 VkFormat format,
9616 VkFormatProperties2KHR* pFormatProperties) {
9617}
9618
9619@extension("VK_KHR_get_physical_device_properties2") // 60
9620cmd VkResult vkGetPhysicalDeviceImageFormatProperties2KHR(
9621 VkPhysicalDevice physicalDevice,
9622 const VkPhysicalDeviceImageFormatInfo2KHR* pImageFormatInfo,
9623 VkImageFormatProperties2KHR* pImageFormatProperties) {
9624 return ?
9625}
9626
9627@extension("VK_KHR_get_physical_device_properties2") // 60
9628cmd void vkGetPhysicalDeviceQueueFamilyProperties2KHR(
9629 VkPhysicalDevice physicalDevice,
9630 u32* pQueueFamilyPropertyCount,
9631 VkQueueFamilyProperties2KHR* pQueueFamilyProperties) {
9632}
9633
9634@extension("VK_KHR_get_physical_device_properties2") // 60
9635cmd void vkGetPhysicalDeviceMemoryProperties2KHR(
9636 VkPhysicalDevice physicalDevice,
9637 VkPhysicalDeviceMemoryProperties2KHR* pMemoryProperties) {
9638}
9639
9640@extension("VK_KHR_get_physical_device_properties2") // 60
9641cmd void vkGetPhysicalDeviceSparseImageFormatProperties2KHR(
9642 VkPhysicalDevice physicalDevice,
9643 const VkPhysicalDeviceSparseImageFormatInfo2KHR* pFormatInfo,
9644 u32* pPropertyCount,
9645 VkSparseImageFormatProperties2KHR* pProperties) {
9646}
9647
Daniel Koch09f7bf92017-10-05 00:26:58 -04009648@extension("VK_KHR_device_group") // 61
9649cmd void vkGetDeviceGroupPeerMemoryFeaturesKHR(
Jesse Hallad250842017-03-10 18:35:38 -08009650 VkDevice device,
9651 u32 heapIndex,
9652 u32 localDeviceIndex,
9653 u32 remoteDeviceIndex,
Daniel Koch09f7bf92017-10-05 00:26:58 -04009654 VkPeerMemoryFeatureFlagsKHR* pPeerMemoryFeatures) {
Jesse Hallad250842017-03-10 18:35:38 -08009655}
9656
Daniel Koch09f7bf92017-10-05 00:26:58 -04009657@extension("VK_KHR_device_group") // 61
9658cmd void vkCmdSetDeviceMaskKHR(
Jesse Hallad250842017-03-10 18:35:38 -08009659 VkCommandBuffer commandBuffer,
9660 u32 deviceMask) {
9661}
9662
Jesse Hallad250842017-03-10 18:35:38 -08009663
Daniel Koch09f7bf92017-10-05 00:26:58 -04009664@extension("VK_KHR_device_group") // 61
9665cmd void vkCmdDispatchBaseKHR(
Jesse Hallad250842017-03-10 18:35:38 -08009666 VkCommandBuffer commandBuffer,
9667 u32 baseGroupX,
9668 u32 baseGroupY,
9669 u32 baseGroupZ,
9670 u32 groupCountX,
9671 u32 groupCountY,
9672 u32 groupCountZ) {
9673}
9674
Jesse Hallad250842017-03-10 18:35:38 -08009675@extension("VK_NN_vi_surface") // 63
9676cmd VkResult vkCreateViSurfaceNN(
9677 VkInstance instance,
9678 const VkViSurfaceCreateInfoNN* pCreateInfo,
9679 const VkAllocationCallbacks* pAllocator,
9680 VkSurfaceKHR* pSurface) {
9681 return ?
9682}
9683
9684@extension("VK_KHR_maintenance1") // 70
9685cmd void vkTrimCommandPoolKHR(
9686 VkDevice device,
9687 VkCommandPool commandPool,
9688 VkCommandPoolTrimFlagsKHR flags) {
9689}
9690
Daniel Koch09f7bf92017-10-05 00:26:58 -04009691@extension("VK_KHR_device_group_creation") // 71
9692@threadSafety("system")
9693cmd VkResult vkEnumeratePhysicalDeviceGroupsKHR(
Jesse Hallad250842017-03-10 18:35:38 -08009694 VkInstance instance,
9695 u32* pPhysicalDeviceGroupCount,
Daniel Koch09f7bf92017-10-05 00:26:58 -04009696 VkPhysicalDeviceGroupPropertiesKHR* pPhysicalDeviceGroupProperties) {
9697 instanceObject := GetInstance(instance)
9698
9699 physicalDeviceGroupCount := as!u32(?)
9700 pPhysicalDeviceGroupCount[0] = physicalDeviceGroupCount
9701 physicalDevices := pPhysicalDeviceGroupProperties[0:physicalDeviceGroupCount]
9702
9703 for i in (0 .. physicalDeviceGroupCount) {
9704 physicalDevice := ?
9705 physicalDevices[i] = physicalDevice
9706 if !(physicalDevice in State.PhysicalDevices) {
9707 State.PhysicalDevices[physicalDevice] = new!PhysicalDeviceObject(instance: instance)
9708 }
9709 }
9710
Jesse Hallad250842017-03-10 18:35:38 -08009711 return ?
9712}
9713
Jesse Hall9492f992017-08-28 12:10:06 -07009714@extension("VK_KHR_external_memory_capabilities") // 72
9715cmd void vkGetPhysicalDeviceExternalBufferPropertiesKHR(
Jesse Hallad250842017-03-10 18:35:38 -08009716 VkPhysicalDevice physicalDevice,
Jesse Hall9492f992017-08-28 12:10:06 -07009717 const VkPhysicalDeviceExternalBufferInfoKHR* pExternalBufferInfo,
9718 VkExternalBufferPropertiesKHR* pExternalBufferProperties) {
Jesse Hallad250842017-03-10 18:35:38 -08009719}
9720
Jesse Hall9492f992017-08-28 12:10:06 -07009721@extension("VK_KHR_external_memory_win32") // 74
9722cmd VkResult vkGetMemoryWin32HandleKHR(
Jesse Hallad250842017-03-10 18:35:38 -08009723 VkDevice device,
Jesse Hall9492f992017-08-28 12:10:06 -07009724 const VkMemoryGetWin32HandleInfoKHR* pGetWin32HandleInfo,
Jesse Hallad250842017-03-10 18:35:38 -08009725 platform.HANDLE* pHandle) {
9726 return ?
9727}
9728
Jesse Hall9492f992017-08-28 12:10:06 -07009729@extension("VK_KHR_external_memory_win32") // 74
9730cmd VkResult vkGetMemoryWin32HandlePropertiesKHR(
Jesse Hallad250842017-03-10 18:35:38 -08009731 VkDevice device,
Jesse Hall9492f992017-08-28 12:10:06 -07009732 VkExternalMemoryHandleTypeFlagBitsKHR handleType,
Jesse Hallad250842017-03-10 18:35:38 -08009733 platform.HANDLE handle,
Jesse Hall9492f992017-08-28 12:10:06 -07009734 VkMemoryWin32HandlePropertiesKHR* pMemoryWin32HandleProperties) {
Jesse Hallad250842017-03-10 18:35:38 -08009735 return ?
9736}
9737
Jesse Hall9492f992017-08-28 12:10:06 -07009738@extension("VK_KHR_external_memory_fd") // 75
9739cmd VkResult vkGetMemoryFdKHR(
Jesse Hallad250842017-03-10 18:35:38 -08009740 VkDevice device,
Jesse Hall9492f992017-08-28 12:10:06 -07009741 const VkMemoryGetFdInfoKHR* pGetFdInfo,
Jesse Hallad250842017-03-10 18:35:38 -08009742 s32* pFd) {
9743 return ?
9744}
9745
Jesse Hall9492f992017-08-28 12:10:06 -07009746@extension("VK_KHR_external_memory_fd") // 75
9747cmd VkResult vkGetMemoryFdPropertiesKHR(
Jesse Hallad250842017-03-10 18:35:38 -08009748 VkDevice device,
Jesse Hall9492f992017-08-28 12:10:06 -07009749 VkExternalMemoryHandleTypeFlagBitsKHR handleType,
Jesse Hallad250842017-03-10 18:35:38 -08009750 s32 fd,
Jesse Hall9492f992017-08-28 12:10:06 -07009751 VkMemoryFdPropertiesKHR* pMemoryFdProperties) {
Jesse Hallad250842017-03-10 18:35:38 -08009752 return ?
9753}
9754
Jesse Hall9492f992017-08-28 12:10:06 -07009755@extension("VK_KHR_external_semaphore_capabilities") // 77
9756cmd void vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(
Jesse Hallad250842017-03-10 18:35:38 -08009757 VkPhysicalDevice physicalDevice,
Jesse Hall9492f992017-08-28 12:10:06 -07009758 const VkPhysicalDeviceExternalSemaphoreInfoKHR* pExternalSemaphoreInfo,
9759 VkExternalSemaphorePropertiesKHR* pExternalSemaphoreProperties) {
Jesse Hallad250842017-03-10 18:35:38 -08009760}
9761
Jesse Hall9492f992017-08-28 12:10:06 -07009762@extension("VK_KHR_external_semaphore_win32") // 79
9763cmd VkResult vkImportSemaphoreWin32HandleKHR(
Jesse Hallad250842017-03-10 18:35:38 -08009764 VkDevice device,
Jesse Hall9492f992017-08-28 12:10:06 -07009765 const VkImportSemaphoreWin32HandleInfoKHR* pImportSemaphoreWin32HandleInfo) {
Jesse Hallad250842017-03-10 18:35:38 -08009766 return ?
9767}
9768
Jesse Hall9492f992017-08-28 12:10:06 -07009769@extension("VK_KHR_external_semaphore_win32") // 79
9770cmd VkResult vkGetSemaphoreWin32HandleKHR(
Jesse Hallad250842017-03-10 18:35:38 -08009771 VkDevice device,
Jesse Hall9492f992017-08-28 12:10:06 -07009772 const VkSemaphoreGetWin32HandleInfoKHR* pGetWin32HandleInfo,
Jesse Hallad250842017-03-10 18:35:38 -08009773 platform.HANDLE* pHandle) {
9774 return ?
9775}
9776
Jesse Hall9492f992017-08-28 12:10:06 -07009777@extension("VK_KHR_external_semaphore_fd") // 80
9778cmd VkResult vkImportSemaphoreFdKHR(
Jesse Hallad250842017-03-10 18:35:38 -08009779 VkDevice device,
Jesse Hall9492f992017-08-28 12:10:06 -07009780 const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo) {
Jesse Hallad250842017-03-10 18:35:38 -08009781 return ?
9782}
9783
Jesse Hall9492f992017-08-28 12:10:06 -07009784@extension("VK_KHR_external_semaphore_fd") // 80
9785cmd VkResult vkGetSemaphoreFdKHR(
Jesse Hallad250842017-03-10 18:35:38 -08009786 VkDevice device,
Jesse Hall9492f992017-08-28 12:10:06 -07009787 const VkSemaphoreGetFdInfoKHR* pGetFdInfo,
Jesse Hallad250842017-03-10 18:35:38 -08009788 s32* pFd) {
9789 return ?
9790}
9791
9792@extension("VK_KHR_push_descriptor") // 81
9793cmd void vkCmdPushDescriptorSetKHR(
9794 VkCommandBuffer commandBuffer,
9795 VkPipelineBindPoint pipelineBindPoint,
9796 VkPipelineLayout layout,
9797 u32 set,
9798 u32 descriptorWriteCount,
9799 const VkWriteDescriptorSet* pDescriptorWrites) {
9800}
9801
9802@extension("VK_KHR_descriptor_update_template") // 86
9803cmd VkResult vkCreateDescriptorUpdateTemplateKHR(
9804 VkDevice device,
9805 const VkDescriptorUpdateTemplateCreateInfoKHR* pCreateInfo,
9806 const VkAllocationCallbacks* pAllocator,
9807 VkDescriptorUpdateTemplateKHR* pDescriptorUpdateTemplate) {
9808 return ?
9809}
9810
9811@extension("VK_KHR_descriptor_update_template") // 86
9812cmd void vkDestroyDescriptorUpdateTemplateKHR(
9813 VkDevice device,
9814 VkDescriptorUpdateTemplateKHR descriptorUpdateTemplate,
9815 const VkAllocationCallbacks* pAllocator) {
9816}
9817
9818@extension("VK_KHR_descriptor_update_template") // 86
9819cmd void vkUpdateDescriptorSetWithTemplateKHR(
9820 VkDevice device,
9821 VkDescriptorSet descriptorSet,
9822 VkDescriptorUpdateTemplateKHR descriptorUpdateTemplate,
9823 const void* pData) {
9824}
9825
9826@extension("VK_KHR_descriptor_update_template") // 86
9827cmd void vkCmdPushDescriptorSetWithTemplateKHR(
9828 VkCommandBuffer commandBuffer,
9829 VkDescriptorUpdateTemplateKHR descriptorUpdateTemplate,
9830 VkPipelineLayout layout,
9831 u32 set,
9832 const void* pData) {
9833}
9834
9835@extension("VK_NVX_device_generated_commands") // 87
9836cmd void vkCmdProcessCommandsNVX(
9837 VkCommandBuffer commandBuffer,
9838 const VkCmdProcessCommandsInfoNVX* pProcessCommandsInfo) {
9839}
9840
9841@extension("VK_NVX_device_generated_commands") // 87
9842cmd void vkCmdReserveSpaceForCommandsNVX(
9843 VkCommandBuffer commandBuffer,
9844 const VkCmdReserveSpaceForCommandsInfoNVX* pReserveSpaceInfo) {
9845}
9846
9847@extension("VK_NVX_device_generated_commands") // 87
9848cmd VkResult vkCreateIndirectCommandsLayoutNVX(
9849 VkDevice device,
9850 const VkIndirectCommandsLayoutCreateInfoNVX* pCreateInfo,
9851 const VkAllocationCallbacks* pAllocator,
9852 VkIndirectCommandsLayoutNVX* pIndirectCommandsLayout) {
9853 return ?
9854}
9855
9856@extension("VK_NVX_device_generated_commands") // 87
9857cmd void vkDestroyIndirectCommandsLayoutNVX(
9858 VkDevice device,
9859 VkIndirectCommandsLayoutNVX indirectCommandsLayout,
9860 const VkAllocationCallbacks* pAllocator) {
9861}
9862
9863@extension("VK_NVX_device_generated_commands") // 87
9864cmd VkResult vkCreateObjectTableNVX(
9865 VkDevice device,
9866 const VkObjectTableCreateInfoNVX* pCreateInfo,
9867 const VkAllocationCallbacks* pAllocator,
9868 VkObjectTableNVX* pObjectTable) {
9869 return ?
9870}
9871
9872@extension("VK_NVX_device_generated_commands") // 87
9873cmd void vkDestroyObjectTableNVX(
9874 VkDevice device,
9875 VkObjectTableNVX objectTable,
9876 const VkAllocationCallbacks* pAllocator) {
9877}
9878
9879@extension("VK_NVX_device_generated_commands") // 87
9880cmd VkResult vkRegisterObjectsNVX(
9881 VkDevice device,
9882 VkObjectTableNVX objectTable,
9883 u32 objectCount,
9884 const VkObjectTableEntryNVX* const* ppObjectTableEntries,
9885 const u32* pObjectIndices) {
9886 return ?
9887}
9888
9889@extension("VK_NVX_device_generated_commands") // 87
9890cmd VkResult vkUnregisterObjectsNVX(
9891 VkDevice device,
9892 VkObjectTableNVX objectTable,
9893 u32 objectCount,
9894 const VkObjectEntryTypeNVX* pObjectEntryTypes,
9895 const u32* pObjectIndices) {
9896 return ?
9897}
9898
9899@extension("VK_NVX_device_generated_commands") // 87
9900cmd void vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX(
9901 VkPhysicalDevice physicalDevice,
9902 VkDeviceGeneratedCommandsFeaturesNVX* pFeatures,
9903 VkDeviceGeneratedCommandsLimitsNVX* pLimits) {
9904}
9905
9906@extension("VK_NV_clip_space_w_scaling") // 88
9907cmd void vkCmdSetViewportWScalingNV(
9908 VkCommandBuffer commandBuffer,
9909 u32 firstViewport,
9910 u32 viewportCount,
9911 const VkViewportWScalingNV* pViewportWScalings) {
9912}
9913
9914@extension("VK_EXT_direct_mode_display") // 89
9915cmd VkResult vkReleaseDisplayEXT(
9916 VkPhysicalDevice physicalDevice,
9917 VkDisplayKHR display) {
9918 return ?
9919}
9920
9921@extension("VK_EXT_acquire_xlib_display") // 90
9922cmd VkResult vkAcquireXlibDisplayEXT(
9923 VkPhysicalDevice physicalDevice,
9924 platform.Display* dpy,
9925 VkDisplayKHR display) {
9926 return ?
9927}
9928
9929@extension("VK_EXT_acquire_xlib_display") // 90
9930cmd VkResult vkGetRandROutputDisplayEXT(
9931 VkPhysicalDevice physicalDevice,
9932 platform.Display* dpy,
9933 platform.RROutput rrOutput,
9934 VkDisplayKHR* pDisplay) {
9935 return ?
9936}
9937
9938@extension("VK_EXT_display_surface_counter") // 91
9939cmd VkResult vkGetPhysicalDeviceSurfaceCapabilities2EXT(
9940 VkPhysicalDevice physicalDevice,
9941 VkSurfaceKHR surface,
9942 VkSurfaceCapabilities2EXT* pSurfaceCapabilities) {
9943 return ?
9944}
9945
9946@extension("VK_EXT_display_control") // 92
9947cmd VkResult vkDisplayPowerControlEXT(
9948 VkDevice device,
9949 VkDisplayKHR display,
9950 const VkDisplayPowerInfoEXT* pDisplayPowerInfo) {
9951 return ?
9952}
9953
9954@extension("VK_EXT_display_control") // 92
9955cmd VkResult vkRegisterDeviceEventEXT(
9956 VkDevice device,
9957 const VkDeviceEventInfoEXT* pDeviceEventInfo,
9958 const VkAllocationCallbacks* pAllocator,
9959 VkFence* pFence) {
9960 return ?
9961}
9962
9963@extension("VK_EXT_display_control") // 92
9964cmd VkResult vkRegisterDisplayEventEXT(
9965 VkDevice device,
9966 VkDisplayKHR display,
9967 const VkDisplayEventInfoEXT* pDisplayEventInfo,
9968 const VkAllocationCallbacks* pAllocator,
9969 VkFence* pFence) {
9970 return ?
9971}
9972
9973@extension("VK_EXT_display_control") // 92
9974cmd VkResult vkGetSwapchainCounterEXT(
9975 VkDevice device,
9976 VkSwapchainKHR swapchain,
9977 VkSurfaceCounterFlagBitsEXT counter,
9978 u64* pCounterValue) {
9979 return ?
9980}
9981
9982@extension("VK_GOOGLE_display_timing") // 93
Ian Elliott4c8bb2a2016-12-29 11:07:26 -07009983cmd VkResult vkGetRefreshCycleDurationGOOGLE(
Jesse Hallfdc8ab32017-03-10 21:01:57 -08009984 VkDevice device,
9985 VkSwapchainKHR swapchain,
9986 VkRefreshCycleDurationGOOGLE* pDisplayTimingProperties) {
Ian Elliott4c8bb2a2016-12-29 11:07:26 -07009987 deviceObject := GetDevice(device)
9988 swapchainObject := GetSwapchain(swapchain)
9989
9990 displayTimingProperties := ?
9991 pDisplayTimingProperties[0] = displayTimingProperties
9992
9993 return ?
9994}
9995
Jesse Hallad250842017-03-10 18:35:38 -08009996@extension("VK_GOOGLE_display_timing") // 93
Ian Elliott4c8bb2a2016-12-29 11:07:26 -07009997cmd VkResult vkGetPastPresentationTimingGOOGLE(
Jesse Hallfdc8ab32017-03-10 21:01:57 -08009998 VkDevice device,
9999 VkSwapchainKHR swapchain,
10000 u32* pPresentationTimingCount,
10001 VkPastPresentationTimingGOOGLE* pPresentationTimings) {
Ian Elliott4c8bb2a2016-12-29 11:07:26 -070010002 return ?
10003}
10004
Jesse Hallad250842017-03-10 18:35:38 -080010005@extension("VK_EXT_discard_rectangles") // 100
10006cmd void vkCmdSetDiscardRectangleEXT(
Jesse Hall26763382016-05-20 07:13:52 -070010007 VkCommandBuffer commandBuffer,
Jesse Hallad250842017-03-10 18:35:38 -080010008 u32 firstDiscardRectangle,
10009 u32 discardRectangleCount,
10010 const VkRect2D* pDiscardRectangles) {
Jesse Hall26763382016-05-20 07:13:52 -070010011}
10012
Jesse Hallad250842017-03-10 18:35:38 -080010013@extension("VK_EXT_hdr_metadata") // 106
Jesse Hall889cd9a2017-02-25 22:12:23 -080010014cmd void vkSetHdrMetadataEXT(
Jesse Hallfdc8ab32017-03-10 21:01:57 -080010015 VkDevice device,
10016 u32 swapchainCount,
10017 const VkSwapchainKHR* pSwapchains,
10018 const VkHdrMetadataEXT* pMetadata) {
Jesse Hall889cd9a2017-02-25 22:12:23 -080010019}
10020
Jesse Hallad250842017-03-10 18:35:38 -080010021@extension("VK_KHR_shared_presentable_image") // 112
Chris Forbes2e12cb82017-01-18 11:45:17 +130010022cmd VkResult vkGetSwapchainStatusKHR(
10023 VkDevice device,
10024 VkSwapchainKHR swapchain) {
10025 return ?
10026}
10027
Jesse Hall9492f992017-08-28 12:10:06 -070010028@extension("VK_KHR_external_fence_capabilities") // 113
10029cmd void vkGetPhysicalDeviceExternalFencePropertiesKHR(
10030 VkPhysicalDevice physicalDevice,
10031 const VkPhysicalDeviceExternalFenceInfoKHR* pExternalFenceInfo,
10032 VkExternalFencePropertiesKHR* pExternalFenceProperties) {
10033}
10034
10035@extension("VK_KHR_external_fence_win32") // 115
10036cmd VkResult vkImportFenceWin32HandleKHR(
10037 VkDevice device,
10038 const VkImportFenceWin32HandleInfoKHR* pImportFenceWin32HandleInfo) {
10039 return ?
10040}
10041
10042@extension("VK_KHR_external_fence_win32") // 115
10043cmd VkResult vkGetFenceWin32HandleKHR(
10044 VkDevice device,
10045 const VkFenceGetWin32HandleInfoKHR* pGetWin32HandleInfo,
10046 platform.HANDLE* pHandle) {
10047 return ?
10048}
10049
10050@extension("VK_KHR_external_fence_fd") // 116
10051cmd VkResult vkImportFenceFdKHR(
10052 VkDevice device,
10053 const VkImportFenceFdInfoKHR* pImportFenceFdInfo) {
10054 return ?
10055}
10056
10057@extension("VK_KHR_external_fence_fd") // 116
10058cmd VkResult vkGetFenceFdKHR(
10059 VkDevice device,
10060 const VkFenceGetFdInfoKHR* pGetFdInfo,
10061 int* pFd) {
10062 return ?
10063}
10064
Jesse Hall05556b12017-05-18 17:40:25 -070010065@extension("VK_KHR_get_surface_capabilities2") // 120
Chris Forbese2d3ee12017-03-16 16:10:15 +130010066cmd VkResult vkGetPhysicalDeviceSurfaceCapabilities2KHR(
10067 VkPhysicalDevice physicalDevice,
10068 const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo,
10069 VkSurfaceCapabilities2KHR* pSurfaceCapabilities) {
10070 return ?
10071}
10072
Jesse Hall05556b12017-05-18 17:40:25 -070010073@extension("VK_KHR_get_surface_capabilities2") // 120
Chris Forbese2d3ee12017-03-16 16:10:15 +130010074cmd VkResult vkGetPhysicalDeviceSurfaceFormats2KHR(
10075 VkPhysicalDevice physicalDevice,
10076 const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo,
10077 u32* pSurfaceFormatCount,
10078 VkSurfaceFormat2KHR* pSurfaceFormats) {
10079 return ?
10080}
10081
Jesse Hall54f8d132018-04-18 08:16:59 -070010082@extension("VK_KHR_display_properties2") // 122
10083cmd VkResult vkGetPhysicalDeviceDisplayProperties2KHR(
10084 VkPhysicalDevice physicalDevice,
10085 u32* pPropertyCount,
10086 VkDisplayProperties2KHR* pProperties) {
10087 return ?
10088}
10089
10090@extension("VK_KHR_display_properties2") // 122
10091cmd VkResult vkGetPhysicalDeviceDisplayPlaneProperties2KHR(
10092 VkPhysicalDevice physicalDevice,
10093 u32* pPropertyCount,
10094 VkDisplayPlaneProperties2KHR* pProperties) {
10095 return ?
10096}
10097
10098@extension("VK_KHR_display_properties2") // 122
10099cmd VkResult vkGetDisplayModeProperties2KHR(
10100 VkPhysicalDevice physicalDevice,
10101 VkDisplayKHR display,
10102 u32* pPropertyCount,
10103 VkDisplayModeProperties2KHR* pProperties) {
10104 return ?
10105}
10106
10107@extension("VK_KHR_display_properties2") // 122
10108cmd VkResult vkGetDisplayPlaneCapabilities2KHR(
10109 VkPhysicalDevice physicalDevice,
10110 const VkDisplayPlaneInfo2KHR* pDisplayPlaneInfo,
10111 VkDisplayPlaneCapabilities2KHR* pCapabilities) {
10112 return ?
10113}
10114
Jesse Hallad250842017-03-10 18:35:38 -080010115@extension("VK_MVK_ios_surface") // 123
10116cmd VkResult vkCreateIOSSurfaceMVK(
10117 VkInstance instance,
10118 const VkIOSSurfaceCreateInfoMVK* pCreateInfo,
10119 const VkAllocationCallbacks* pAllocator,
10120 VkSurfaceKHR* pSurface) {
10121 return ?
10122}
10123
10124@extension("VK_MVK_macos_surface") // 124
10125cmd VkResult vkCreateMacOSSurfaceMVK(
10126 VkInstance instance,
10127 const VkMacOSSurfaceCreateInfoMVK* pCreateInfo,
10128 const VkAllocationCallbacks* pAllocator,
10129 VkSurfaceKHR* pSurface) {
10130 return ?
10131}
10132
Jesse Hall8c954d32018-01-17 22:06:20 -080010133@extension("VK_EXT_debug_utils") // 129
10134@external type void* PFN_vkDebugUtilsMessengerCallbackEXT
10135@extension("VK_EXT_debug_utils") // 129
10136@pfn cmd VkBool32 vkDebugUtilsMessengerCallbackEXT(
10137 VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity,
10138 VkDebugUtilsMessageTypeFlagsEXT messageType,
10139 const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData,
10140 void* pUserData) {
10141 return ?
10142}
10143
10144@extension("VK_EXT_debug_utils") // 129
10145cmd VkResult vkSetDebugUtilsObjectNameEXT(
10146 VkDevice device,
10147 const VkDebugUtilsObjectNameInfoEXT* pNameInfo) {
10148 return ?
10149}
Jesse Hall72e6a132018-04-06 13:00:44 -070010150
Jesse Hall8c954d32018-01-17 22:06:20 -080010151@extension("VK_EXT_debug_utils") // 129
10152cmd VkResult vkSetDebugUtilsObjectTagEXT(
10153 VkDevice device,
10154 const VkDebugUtilsObjectTagInfoEXT* pTagInfo) {
10155 return ?
10156}
Jesse Hall72e6a132018-04-06 13:00:44 -070010157
Jesse Hall8c954d32018-01-17 22:06:20 -080010158@extension("VK_EXT_debug_utils") // 129
10159cmd void vkQueueBeginDebugUtilsLabelEXT(
10160 VkQueue queue,
10161 const VkDebugUtilsLabelEXT* pLabelInfo) {
10162}
Jesse Hall72e6a132018-04-06 13:00:44 -070010163
Jesse Hall8c954d32018-01-17 22:06:20 -080010164@extension("VK_EXT_debug_utils") // 129
10165cmd void vkQueueEndDebugUtilsLabelEXT(VkQueue queue) {
10166}
Jesse Hall72e6a132018-04-06 13:00:44 -070010167
Jesse Hall8c954d32018-01-17 22:06:20 -080010168@extension("VK_EXT_debug_utils") // 129
10169cmd void vkQueueInsertDebugUtilsLabelEXT(
10170 VkQueue queue,
10171 const VkDebugUtilsLabelEXT* pLabelInfo) {
10172}
Jesse Hall72e6a132018-04-06 13:00:44 -070010173
Jesse Hall8c954d32018-01-17 22:06:20 -080010174@extension("VK_EXT_debug_utils") // 129
10175cmd void vkCmdBeginDebugUtilsLabelEXT(
10176 VkCommandBuffer commandBuffer,
10177 const VkDebugUtilsLabelEXT* pLabelInfo) {
10178}
Jesse Hall72e6a132018-04-06 13:00:44 -070010179
Jesse Hall8c954d32018-01-17 22:06:20 -080010180@extension("VK_EXT_debug_utils") // 129
10181cmd void vkCmdEndDebugUtilsLabelEXT(VkCommandBuffer commandBuffer) {
10182}
10183
10184@extension("VK_EXT_debug_utils") // 129
10185cmd void vkCmdInsertDebugUtilsLabelEXT(
10186 VkCommandBuffer commandBuffer,
10187 const VkDebugUtilsLabelEXT* pLabelInfo) {
10188}
10189
10190@extension("VK_EXT_debug_utils") // 129
10191cmd VkResult vkCreateDebugUtilsMessengerEXT(
10192 VkInstance instance,
10193 const VkDebugUtilsMessengerCreateInfoEXT* pCreateInfo,
10194 const VkAllocationCallbacks* pAllocator,
10195 VkDebugUtilsMessengerEXT* pMessenger) {
10196 return ?
10197}
10198
10199@extension("VK_EXT_debug_utils") // 129
10200cmd void vkDestroyDebugUtilsMessengerEXT(
10201 VkInstance instance,
10202 VkDebugUtilsMessengerEXT messenger,
10203 const VkAllocationCallbacks* pAllocator) {
10204}
10205
10206@extension("VK_EXT_debug_utils") // 129
10207cmd void vkSubmitDebugUtilsMessageEXT(
10208 VkInstance instance,
10209 VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity,
10210 VkDebugUtilsMessageTypeFlagsEXT messageTypes,
10211 const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData) {
10212}
10213
Jesse Hall36215a92018-01-18 15:04:37 -080010214@extension("VK_ANDROID_external_memory_android_hardware_buffer") // 130
10215@vulkan1_1 // extension requires 1.1, and should become non-optional when 1.1 does
10216cmd VkResult vkGetAndroidHardwareBufferPropertiesANDROID(
10217 VkDevice device,
10218 const platform.AHardwareBuffer* buffer,
10219 VkAndroidHardwareBufferPropertiesANDROID* pProperties) {
10220 return ?
10221}
10222
10223@extension("VK_ANDROID_external_memory_android_hardware_buffer") // 130
10224@vulkan1_1 // extension requires 1.1, and should become non-optional when 1.1 does
10225cmd VkResult vkGetMemoryAndroidHardwareBufferANDROID(
10226 VkDevice device,
10227 const VkMemoryGetAndroidHardwareBufferInfoANDROID* pInfo,
10228 platform.AHardwareBuffer** pBuffer) {
10229 return ?
10230}
10231
Jesse Hall77726222017-09-19 14:49:27 -050010232@extension("VK_EXT_sample_locations") // 144
10233cmd void vkCmdSetSampleLocationsEXT(
10234 VkCommandBuffer commandBuffer,
10235 const VkSampleLocationsInfoEXT* pSampleLocationsInfo) {
10236}
10237
10238@extension("VK_EXT_sample_locations") // 144
10239cmd void vkGetPhysicalDeviceMultisamplePropertiesEXT(
10240 VkPhysicalDevice physicalDevice,
10241 VkSampleCountFlagBits samples,
10242 VkMultisamplePropertiesEXT* pMultisampleProperties) {
10243}
10244
Jesse Hall9492f992017-08-28 12:10:06 -070010245@extension("VK_KHR_get_memory_requirements2") // 147
10246cmd void vkGetImageMemoryRequirements2KHR(
10247 VkDevice device,
10248 const VkImageMemoryRequirementsInfo2KHR* pInfo,
10249 VkMemoryRequirements2KHR* pMemoryRequirements) {
10250}
10251
10252@extension("VK_KHR_get_memory_requirements2") // 147
10253cmd void vkGetBufferMemoryRequirements2KHR(
10254 VkDevice device,
10255 const VkBufferMemoryRequirementsInfo2KHR* pInfo,
10256 VkMemoryRequirements2KHR* pMemoryRequirements) {
10257}
10258
10259@extension("VK_KHR_get_memory_requirements2") // 147
10260cmd void vkGetImageSparseMemoryRequirements2KHR(
10261 VkDevice device,
10262 const VkImageSparseMemoryRequirementsInfo2KHR* pInfo,
10263 u32* pSparseMemoryRequirementCount,
10264 VkSparseImageMemoryRequirements2KHR* pSparseMemoryRequirements) {
10265}
10266
Jesse Hall076f95d2017-09-20 11:34:47 -070010267@extension("VK_KHR_sampler_ycbcr_conversion") // 157
10268cmd VkResult vkCreateSamplerYcbcrConversionKHR(
10269 VkDevice device,
10270 const VkSamplerYcbcrConversionCreateInfoKHR* pCreateInfo,
10271 const VkAllocationCallbacks* pAllocator,
10272 VkSamplerYcbcrConversionKHR* pYcbcrConversion) {
10273 return ?
10274}
10275
10276@extension("VK_KHR_sampler_ycbcr_conversion") // 157
10277cmd void vkDestroySamplerYcbcrConversionKHR(
10278 VkDevice device,
10279 VkSamplerYcbcrConversionKHR ycbcrConversion,
10280 const VkAllocationCallbacks* pAllocator) {
10281}
10282
10283@extension("VK_KHR_bind_memory2") // 158
10284cmd VkResult vkBindBufferMemory2KHR(
10285 VkDevice device,
10286 u32 bindInfoCount,
10287 const VkBindBufferMemoryInfoKHR* pBindInfos) {
10288 return ?
10289}
10290
10291@extension("VK_KHR_bind_memory2") // 158
10292cmd VkResult vkBindImageMemory2KHR(
10293 VkDevice device,
10294 u32 bindInfoCount,
10295 const VkBindImageMemoryInfoKHR* pBindInfos) {
10296 return ?
10297}
10298
Jesse Hall77726222017-09-19 14:49:27 -050010299@extension("VK_EXT_validation_cache") // 161
10300cmd VkResult vkCreateValidationCacheEXT(
10301 VkDevice device,
10302 const VkValidationCacheCreateInfoEXT* pCreateInfo,
10303 const VkAllocationCallbacks* pAllocator,
10304 VkValidationCacheEXT* pValidationCache) {
10305 return ?
10306}
10307
10308@extension("VK_EXT_validation_cache") // 161
10309cmd void vkDestroyValidationCacheEXT(
10310 VkDevice device,
10311 VkValidationCacheEXT validationCache,
10312 const VkAllocationCallbacks* pAllocator) {
10313}
10314
10315@extension("VK_EXT_validation_cache") // 161
10316cmd VkResult vkMergeValidationCachesEXT(
10317 VkDevice device,
10318 VkValidationCacheEXT dstCache,
10319 u32 srcCacheCount,
10320 const VkValidationCacheEXT* pSrcCaches) {
10321 return ?
10322}
10323
10324@extension("VK_EXT_validation_cache") // 161
10325cmd VkResult vkGetValidationCacheDataEXT(
10326 VkDevice device,
10327 VkValidationCacheEXT validationCache,
10328 platform.size_t* pDataSize,
10329 void* pData) {
10330 return ?
10331}
10332
Daniel Koch09f7bf92017-10-05 00:26:58 -040010333@extension("VK_KHR_maintenance3") // 169
10334cmd void vkGetDescriptorSetLayoutSupportKHR(
10335 VkDevice device,
10336 const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
10337 VkDescriptorSetLayoutSupportKHR* pSupport) {
10338}
10339
Jesse Hall54f8d132018-04-18 08:16:59 -070010340@extension("VK_KHR_draw_indirect_count") // 170
10341cmd void vkCmdDrawIndirectCountKHR(
10342 VkCommandBuffer commandBuffer,
10343 VkBuffer buffer,
10344 VkDeviceSize offset,
10345 VkBuffer countBuffer,
10346 VkDeviceSize countBufferOffset,
10347 u32 maxDrawCount,
10348 u32 stride) {
10349}
10350
10351@extension("VK_KHR_draw_indirect_count") // 170
10352cmd void vkCmdDrawIndexedIndirectCountKHR(
10353 VkCommandBuffer commandBuffer,
10354 VkBuffer buffer,
10355 VkDeviceSize offset,
10356 VkBuffer countBuffer,
10357 VkDeviceSize countBufferOffset,
10358 u32 maxDrawCount,
10359 u32 stride) {
10360}
10361
Jesse Hall8c954d32018-01-17 22:06:20 -080010362@extension("VK_EXT_external_memory_host") // 179
10363cmd VkResult vkGetMemoryHostPointerPropertiesEXT(
10364 VkDevice device,
10365 VkExternalMemoryHandleTypeFlagBits handleType,
10366 const void* pHostPointer,
10367 VkMemoryHostPointerPropertiesEXT* pMemoryHostPointerProperties) {
10368 return ?
10369}
10370
Jesse Hall72e6a132018-04-06 13:00:44 -070010371@extension("VK_AMD_buffer_marker") // 180
10372cmd void vkCmdWriteBufferMarkerAMD(
10373 VkCommandBuffer commandBuffer,
10374 VkPipelineStageFlagBits pipelineStage,
10375 VkBuffer dstBuffer,
10376 VkDeviceSize dstOffset,
10377 u32 marker) {
10378}
10379
Jesse Halld27f6aa2015-08-15 17:58:48 -070010380////////////////
10381// Validation //
10382////////////////
10383
10384extern void validate(string layerName, bool condition, string message)
10385
10386
10387/////////////////////////////
10388// Internal State Tracking //
10389/////////////////////////////
10390
10391StateObject State
10392
10393@internal class StateObject {
10394 // Dispatchable objects.
10395 map!(VkInstance, ref!InstanceObject) Instances
10396 map!(VkPhysicalDevice, ref!PhysicalDeviceObject) PhysicalDevices
10397 map!(VkDevice, ref!DeviceObject) Devices
10398 map!(VkQueue, ref!QueueObject) Queues
Jesse Hall3fbc8562015-11-29 22:10:52 -080010399 map!(VkCommandBuffer, ref!CommandBufferObject) CommandBuffers
Jesse Halld27f6aa2015-08-15 17:58:48 -070010400
10401 // Non-dispatchable objects.
10402 map!(VkDeviceMemory, ref!DeviceMemoryObject) DeviceMemories
10403 map!(VkBuffer, ref!BufferObject) Buffers
10404 map!(VkBufferView, ref!BufferViewObject) BufferViews
10405 map!(VkImage, ref!ImageObject) Images
10406 map!(VkImageView, ref!ImageViewObject) ImageViews
Jesse Halld27f6aa2015-08-15 17:58:48 -070010407 map!(VkShaderModule, ref!ShaderModuleObject) ShaderModules
Jesse Halld27f6aa2015-08-15 17:58:48 -070010408 map!(VkPipeline, ref!PipelineObject) Pipelines
10409 map!(VkPipelineLayout, ref!PipelineLayoutObject) PipelineLayouts
10410 map!(VkSampler, ref!SamplerObject) Samplers
10411 map!(VkDescriptorSet, ref!DescriptorSetObject) DescriptorSets
10412 map!(VkDescriptorSetLayout, ref!DescriptorSetLayoutObject) DescriptorSetLayouts
10413 map!(VkDescriptorPool, ref!DescriptorPoolObject) DescriptorPools
Jesse Halld27f6aa2015-08-15 17:58:48 -070010414 map!(VkFence, ref!FenceObject) Fences
10415 map!(VkSemaphore, ref!SemaphoreObject) Semaphores
10416 map!(VkEvent, ref!EventObject) Events
10417 map!(VkQueryPool, ref!QueryPoolObject) QueryPools
10418 map!(VkFramebuffer, ref!FramebufferObject) Framebuffers
10419 map!(VkRenderPass, ref!RenderPassObject) RenderPasses
10420 map!(VkPipelineCache, ref!PipelineCacheObject) PipelineCaches
Jesse Hall3fbc8562015-11-29 22:10:52 -080010421 map!(VkCommandPool, ref!CommandPoolObject) CommandPools
Jesse Hall1356b0d2015-11-23 17:24:58 -080010422 map!(VkSurfaceKHR, ref!SurfaceObject) Surfaces
Michael Lentine88594d72015-11-12 12:49:45 -080010423 map!(VkSwapchainKHR, ref!SwapchainObject) Swapchains
Jesse Halld27f6aa2015-08-15 17:58:48 -070010424}
10425
10426@internal class InstanceObject {
10427}
10428
10429@internal class PhysicalDeviceObject {
10430 VkInstance instance
10431}
10432
10433@internal class DeviceObject {
10434 VkPhysicalDevice physicalDevice
10435}
10436
10437@internal class QueueObject {
10438 VkDevice device
10439 VkQueueFlags flags
10440}
10441
Jesse Hall3fbc8562015-11-29 22:10:52 -080010442@internal class CommandBufferObject {
Jesse Halld27f6aa2015-08-15 17:58:48 -070010443 VkDevice device
10444 map!(u64, VkDeviceMemory) boundObjects
10445 VkQueueFlags queueFlags
10446}
10447
10448@internal class DeviceMemoryObject {
Jesse Hall3fbc8562015-11-29 22:10:52 -080010449 VkDevice device
10450 VkDeviceSize allocationSize
10451 map!(u64, VkDeviceSize) boundObjects
10452 map!(VkCommandBuffer, VkCommandBuffer) boundCommandBuffers
Jesse Halld27f6aa2015-08-15 17:58:48 -070010453}
10454
10455@internal class BufferObject {
10456 VkDevice device
Jesse Hall3fbc8562015-11-29 22:10:52 -080010457 VkDeviceMemory memory
10458 VkDeviceSize memoryOffset
Jesse Halld27f6aa2015-08-15 17:58:48 -070010459}
10460
10461@internal class BufferViewObject {
10462 VkDevice device
10463 VkBuffer buffer
10464}
10465
10466@internal class ImageObject {
10467 VkDevice device
Jesse Hall3fbc8562015-11-29 22:10:52 -080010468 VkDeviceMemory memory
10469 VkDeviceSize memoryOffset
Jesse Halld27f6aa2015-08-15 17:58:48 -070010470}
10471
10472@internal class ImageViewObject {
10473 VkDevice device
10474 VkImage image
10475}
10476
Jesse Halld27f6aa2015-08-15 17:58:48 -070010477@internal class ShaderObject {
10478 VkDevice device
10479}
10480
10481@internal class ShaderModuleObject {
10482 VkDevice device
10483}
10484
10485@internal class PipelineObject {
10486 VkDevice device
10487}
10488
10489@internal class PipelineLayoutObject {
10490 VkDevice device
10491}
10492
10493@internal class SamplerObject {
10494 VkDevice device
10495}
10496
10497@internal class DescriptorSetObject {
10498 VkDevice device
10499}
10500
10501@internal class DescriptorSetLayoutObject {
10502 VkDevice device
10503}
10504
10505@internal class DescriptorPoolObject {
10506 VkDevice device
10507}
10508
Jesse Halld27f6aa2015-08-15 17:58:48 -070010509@internal class FenceObject {
10510 VkDevice device
10511 bool signaled
10512}
10513
10514@internal class SemaphoreObject {
10515 VkDevice device
10516}
10517
10518@internal class EventObject {
10519 VkDevice device
10520}
10521
10522@internal class QueryPoolObject {
10523 VkDevice device
10524}
10525
10526@internal class FramebufferObject {
10527 VkDevice device
10528}
10529
10530@internal class RenderPassObject {
10531 VkDevice device
10532}
10533
10534@internal class PipelineCacheObject {
10535 VkDevice device
10536}
10537
Jesse Hall3fbc8562015-11-29 22:10:52 -080010538@internal class CommandPoolObject {
Jesse Halld27f6aa2015-08-15 17:58:48 -070010539 VkDevice device
10540}
10541
Jesse Hall1356b0d2015-11-23 17:24:58 -080010542@internal class SurfaceObject {
10543 VkInstance instance
10544}
10545
Michael Lentine88594d72015-11-12 12:49:45 -080010546@internal class SwapchainObject {
10547 VkDevice device
10548}
10549
Jesse Halld27f6aa2015-08-15 17:58:48 -070010550macro ref!InstanceObject GetInstance(VkInstance instance) {
10551 assert(instance in State.Instances)
10552 return State.Instances[instance]
10553}
10554
10555macro ref!PhysicalDeviceObject GetPhysicalDevice(VkPhysicalDevice physicalDevice) {
10556 assert(physicalDevice in State.PhysicalDevices)
10557 return State.PhysicalDevices[physicalDevice]
10558}
10559
10560macro ref!DeviceObject GetDevice(VkDevice device) {
10561 assert(device in State.Devices)
10562 return State.Devices[device]
10563}
10564
10565macro ref!QueueObject GetQueue(VkQueue queue) {
10566 assert(queue in State.Queues)
10567 return State.Queues[queue]
10568}
10569
Jesse Hall3fbc8562015-11-29 22:10:52 -080010570macro ref!CommandBufferObject GetCommandBuffer(VkCommandBuffer commandBuffer) {
10571 assert(commandBuffer in State.CommandBuffers)
10572 return State.CommandBuffers[commandBuffer]
Jesse Halld27f6aa2015-08-15 17:58:48 -070010573}
10574
Jesse Hall3fbc8562015-11-29 22:10:52 -080010575macro ref!DeviceMemoryObject GetDeviceMemory(VkDeviceMemory memory) {
10576 assert(memory in State.DeviceMemories)
10577 return State.DeviceMemories[memory]
Jesse Halld27f6aa2015-08-15 17:58:48 -070010578}
10579
10580macro ref!BufferObject GetBuffer(VkBuffer buffer) {
10581 assert(buffer in State.Buffers)
10582 return State.Buffers[buffer]
10583}
10584
10585macro ref!BufferViewObject GetBufferView(VkBufferView bufferView) {
10586 assert(bufferView in State.BufferViews)
10587 return State.BufferViews[bufferView]
10588}
10589
10590macro ref!ImageObject GetImage(VkImage image) {
10591 assert(image in State.Images)
10592 return State.Images[image]
10593}
10594
10595macro ref!ImageViewObject GetImageView(VkImageView imageView) {
10596 assert(imageView in State.ImageViews)
10597 return State.ImageViews[imageView]
10598}
10599
Jesse Halld27f6aa2015-08-15 17:58:48 -070010600macro ref!ShaderModuleObject GetShaderModule(VkShaderModule shaderModule) {
10601 assert(shaderModule in State.ShaderModules)
10602 return State.ShaderModules[shaderModule]
10603}
10604
10605macro ref!PipelineObject GetPipeline(VkPipeline pipeline) {
10606 assert(pipeline in State.Pipelines)
10607 return State.Pipelines[pipeline]
10608}
10609
10610macro ref!PipelineLayoutObject GetPipelineLayout(VkPipelineLayout pipelineLayout) {
10611 assert(pipelineLayout in State.PipelineLayouts)
10612 return State.PipelineLayouts[pipelineLayout]
10613}
10614
10615macro ref!SamplerObject GetSampler(VkSampler sampler) {
10616 assert(sampler in State.Samplers)
10617 return State.Samplers[sampler]
10618}
10619
10620macro ref!DescriptorSetObject GetDescriptorSet(VkDescriptorSet descriptorSet) {
10621 assert(descriptorSet in State.DescriptorSets)
10622 return State.DescriptorSets[descriptorSet]
10623}
10624
10625macro ref!DescriptorSetLayoutObject GetDescriptorSetLayout(VkDescriptorSetLayout descriptorSetLayout) {
10626 assert(descriptorSetLayout in State.DescriptorSetLayouts)
10627 return State.DescriptorSetLayouts[descriptorSetLayout]
10628}
10629
10630macro ref!DescriptorPoolObject GetDescriptorPool(VkDescriptorPool descriptorPool) {
10631 assert(descriptorPool in State.DescriptorPools)
10632 return State.DescriptorPools[descriptorPool]
10633}
10634
Jesse Halld27f6aa2015-08-15 17:58:48 -070010635macro ref!FenceObject GetFence(VkFence fence) {
10636 assert(fence in State.Fences)
10637 return State.Fences[fence]
10638}
10639
10640macro ref!SemaphoreObject GetSemaphore(VkSemaphore semaphore) {
10641 assert(semaphore in State.Semaphores)
10642 return State.Semaphores[semaphore]
10643}
10644
10645macro ref!EventObject GetEvent(VkEvent event) {
10646 assert(event in State.Events)
10647 return State.Events[event]
10648}
10649
10650macro ref!QueryPoolObject GetQueryPool(VkQueryPool queryPool) {
10651 assert(queryPool in State.QueryPools)
10652 return State.QueryPools[queryPool]
10653}
10654
10655macro ref!FramebufferObject GetFramebuffer(VkFramebuffer framebuffer) {
10656 assert(framebuffer in State.Framebuffers)
10657 return State.Framebuffers[framebuffer]
10658}
10659
10660macro ref!RenderPassObject GetRenderPass(VkRenderPass renderPass) {
10661 assert(renderPass in State.RenderPasses)
10662 return State.RenderPasses[renderPass]
10663}
10664
10665macro ref!PipelineCacheObject GetPipelineCache(VkPipelineCache pipelineCache) {
10666 assert(pipelineCache in State.PipelineCaches)
10667 return State.PipelineCaches[pipelineCache]
10668}
10669
Jesse Hall3fbc8562015-11-29 22:10:52 -080010670macro ref!CommandPoolObject GetCommandPool(VkCommandPool commandPool) {
10671 assert(commandPool in State.CommandPools)
10672 return State.CommandPools[commandPool]
Jesse Hallf09c6b12015-08-15 19:54:28 -070010673}
Michael Lentine88594d72015-11-12 12:49:45 -080010674
Jesse Hall1356b0d2015-11-23 17:24:58 -080010675macro ref!SurfaceObject GetSurface(VkSurfaceKHR surface) {
10676 assert(surface in State.Surfaces)
10677 return State.Surfaces[surface]
10678}
10679
Michael Lentine88594d72015-11-12 12:49:45 -080010680macro ref!SwapchainObject GetSwapchain(VkSwapchainKHR swapchain) {
10681 assert(swapchain in State.Swapchains)
10682 return State.Swapchains[swapchain]
10683}
Jesse Halld8bade02015-11-24 10:24:18 -080010684
10685macro VkQueueFlags AddQueueFlag(VkQueueFlags flags, VkQueueFlagBits bit) {
10686 return as!VkQueueFlags(as!u32(flags) | as!u32(bit))
10687}