blob: 8817e8d4002d523efe2634470a77c85357ee933f [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 Hall4af6c462018-09-10 09:04:25 -070031define VERSION_PATCH 84
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
Jesse Hall4af6c462018-09-10 09:04:25 -0700224// 68
225@extension("VK_EXT_astc_decode_mode") define VK_EXT_ASTC_DECODE_MODE_SPEC_VERSION 1
226@extension("VK_EXT_astc_decode_mode") define VK_EXT_ASTC_DECODE_MODE_EXTENSION_NAME "VK_EXT_astc_decode_mode"
227
Jesse Hall77ad05b2017-03-10 22:02:20 -0800228// 70
Jesse Hall72e6a132018-04-06 13:00:44 -0700229@extension("VK_KHR_maintenance1") define VK_KHR_MAINTENANCE1_SPEC_VERSION 2
Jesse Hall77ad05b2017-03-10 22:02:20 -0800230@extension("VK_KHR_maintenance1") define VK_KHR_MAINTENANCE1_EXTENSION_NAME "VK_KHR_maintenance1"
231
Jesse Hallad250842017-03-10 18:35:38 -0800232// 71
Daniel Koch09f7bf92017-10-05 00:26:58 -0400233@extension("VK_KHR_device_group_creation") define VK_KHR_DEVICE_GROUP_CREATION_SPEC_VERSION 1
234@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 -0800235
236// 72
Jesse Hall9492f992017-08-28 12:10:06 -0700237@extension("VK_KHR_external_memory_capabilities") define VK_KHR_EXTERNAL_MEMORY_CAPABILITIES_SPEC_VERSION 1
238@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 -0800239
240// 73
Jesse Hall9492f992017-08-28 12:10:06 -0700241@extension("VK_KHR_external_memory") define VK_KHR_EXTERNAL_MEMORY_SPEC_VERSION 1
242@extension("VK_KHR_external_memory") define VK_KHR_EXTERNAL_MEMORY_EXTENSION_NAME "VK_KHR_external_memory"
Jesse Hallad250842017-03-10 18:35:38 -0800243
244// 74
Jesse Hall9492f992017-08-28 12:10:06 -0700245@extension("VK_KHR_external_memory_win32") define VK_KHR_EXTERNAL_MEMORY_WIN32_SPEC_VERSION 1
246@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 -0800247
248// 75
Jesse Hall9492f992017-08-28 12:10:06 -0700249@extension("VK_KHR_external_memory_fd") define VK_KHR_EXTERNAL_MEMORY_FD_SPEC_VERSION 1
250@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 -0800251
252// 76
Jesse Hall9492f992017-08-28 12:10:06 -0700253@extension("VK_KHR_win32_keyed_mutex") define VK_KHR_WIN32_KEYED_MUTEX_SPEC_VERSION 1
254@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 -0800255
256// 77
Jesse Hall9492f992017-08-28 12:10:06 -0700257@extension("VK_KHR_external_semaphore_capabilities") define VK_KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_SPEC_VERSION 1
258@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 -0800259
260// 78
Jesse Hall9492f992017-08-28 12:10:06 -0700261@extension("VK_KHR_external_semaphore") define VK_KHR_EXTERNAL_SEMAPHORE_SPEC_VERSION 1
262@extension("VK_KHR_external_semaphore") define VK_KHR_EXTERNAL_SEMAPHORE_EXTENSION_NAME "VK_KHR_external_semaphore"
Jesse Hallad250842017-03-10 18:35:38 -0800263
264// 79
Jesse Hall9492f992017-08-28 12:10:06 -0700265@extension("VK_KHR_external_semaphore_win32") define VK_KHR_EXTERNAL_SEMAPHORE_WIN32_SPEC_VERSION 1
266@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 -0800267
268// 80
Jesse Hall9492f992017-08-28 12:10:06 -0700269@extension("VK_KHR_external_semaphore_fd") define VK_KHR_EXTERNAL_SEMAPHORE_FD_SPEC_VERSION 1
270@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 -0800271
272// 81
Daniel Koch09f7bf92017-10-05 00:26:58 -0400273@extension("VK_KHR_push_descriptor") define VK_KHR_PUSH_DESCRIPTOR_SPEC_VERSION 2
Jesse Hallad250842017-03-10 18:35:38 -0800274@extension("VK_KHR_push_descriptor") define VK_KHR_PUSH_DESCRIPTOR_EXTENSION_NAME "VK_KHR_push_descriptor"
275
Jesse Halla13a3cf2018-07-09 15:51:52 -0700276// 82
277@extension("VK_EXT_conditional_rendering") define VK_EXT_CONDITIONAL_RENDERING_SPEC_VERSION 1
278@extension("VK_EXT_conditional_rendering") define VK_EXT_CONDITIONAL_RENDERING_EXTENSION_NAME "VK_EXT_conditional_rendering"
279
Jesse Hall9492f992017-08-28 12:10:06 -0700280// 84
281@extension("VK_KHR_16bit_storage") define VK_KHR_16BIT_STORAGE_SPEC_VERSION 1
282@extension("VK_KHR_16bit_storage") define VK_KHR_16BIT_STORAGE_EXTENSION_NAME "VK_KHR_16bit_storage"
283
Jesse Hall889cd9a2017-02-25 22:12:23 -0800284// 85
285@extension("VK_KHR_incremental_present") define VK_KHR_INCREMENTAL_PRESENT_SPEC_VERSION 1
Jesse Hallf5ad48b2017-03-20 13:09:19 -0700286@extension("VK_KHR_incremental_present") define VK_KHR_INCREMENTAL_PRESENT_EXTENSION_NAME "VK_KHR_incremental_present"
Jesse Hall889cd9a2017-02-25 22:12:23 -0800287
Jesse Hallad250842017-03-10 18:35:38 -0800288// 86
289@extension("VK_KHR_descriptor_update_template") define VK_KHR_DESCRIPTOR_UPDATE_TEMPLATE_SPEC_VERSION 1
290@extension("VK_KHR_descriptor_update_template") define VK_KHR_DESCRIPTOR_UPDATE_TEMPLATE_EXTENSION_NAME "VK_KHR_descriptor_update_template"
291
Jesse Halleb02c472017-02-24 15:13:45 -0800292// 87
Jesse Hall77726222017-09-19 14:49:27 -0500293@extension("VK_NVX_device_generated_commands") define VK_NVX_DEVICE_GENERATED_COMMANDS_SPEC_VERSION 3
Chris Forbes289cb792016-12-30 15:03:55 +1300294@extension("VK_NVX_device_generated_commands") define VK_NVX_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME "VK_NVX_device_generated_commands"
295
Jesse Hallad250842017-03-10 18:35:38 -0800296// 88
297@extension("VK_NV_clip_space_w_scaling") define VK_NV_CLIP_SPACE_W_SCALING_SPEC_VERSION 1
298@extension("VK_NV_clip_space_w_scaling") define VK_NV_CLIP_SPACE_W_SCALING_EXTENSION_NAME "VK_NV_clip_space_w_scaling"
299
Jesse Hall77ad05b2017-03-10 22:02:20 -0800300// 89
301@extension("VK_EXT_direct_mode_display") define VK_EXT_DIRECT_MODE_DISPLAY_SPEC_VERSION 1
302@extension("VK_EXT_direct_mode_display") define VK_EXT_DIRECT_MODE_DISPLAY_EXTENSION_NAME "VK_EXT_direct_mode_display"
303
304// 90
305@extension("VK_EXT_acquire_xlib_display") define VK_EXT_ACQUIRE_XLIB_DISPLAY_SPEC_VERSION 1
306@extension("VK_EXT_acquire_xlib_display") define VK_EXT_ACQUIRE_XLIB_DISPLAY_EXTENSION_NAME "VK_EXT_acquire_xlib_display"
307
308// 91
309@extension("VK_EXT_display_surface_counter") define VK_EXT_DISPLAY_SURFACE_COUNTER_SPEC_VERSION 1
310@extension("VK_EXT_display_surface_counter") define VK_EXT_DISPLAY_SURFACE_COUNTER_EXTENSION_NAME "VK_EXT_display_surface_counter"
311
312// 92
313@extension("VK_EXT_display_control") define VK_EXT_DISPLAY_CONTROL_SPEC_VERSION 1
314@extension("VK_EXT_display_control") define VK_EXT_DISPLAY_CONTROL_COUNTER_EXTENSION_NAME "VK_EXT_display_control"
315
Jesse Hall889cd9a2017-02-25 22:12:23 -0800316// 93
317@extension("VK_GOOGLE_display_timing") define VK_GOOGLE_DISPLAY_TIMING_SPEC_VERSION 1
Jesse Hallfdc8ab32017-03-10 21:01:57 -0800318@extension("VK_GOOGLE_display_timing") define VK_GOOGLE_DISPLAY_TIMING_EXTENSION_NAME "VK_GOOGLE_display_timing"
Jesse Hall889cd9a2017-02-25 22:12:23 -0800319
Jesse Hallad250842017-03-10 18:35:38 -0800320// 95
321@extension("VK_NV_sample_mask_override_coverage") define VK_NV_SAMPLE_MASK_OVERRIDE_COVERAGE_SPEC_VERSION 1
322@extension("VK_NV_sample_mask_override_coverage") define VK_NV_SAMPLE_MASK_OVERRIDE_COVERAGE_EXTENSION_NAME "VK_NV_sample_mask_override_coverage"
323
324// 96
325@extension("VK_NV_geometry_shader_passthrough") define VK_NV_GEOMETRY_SHADER_PASSTHROUGH_SPEC_VERSION 1
326@extension("VK_NV_geometry_shader_passthrough") define VK_NV_GEOMETRY_SHADER_PASSTHROUGH_EXTENSION_NAME "VK_NV_geometry_shader_passthrough"
327
328// 97
329@extension("VK_NV_viewport_array2") define VK_NV_VIEWPORT_ARRAY2_SPEC_VERSION 1
330@extension("VK_NV_viewport_array2") define VK_NV_VIEWPORT_ARRAY2_EXTENSION_NAME "VK_NV_viewport_array2"
331
332// 98
333@extension("VK_NVX_multiview_per_view_attributes") define VK_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_SPEC_VERSION 1
334@extension("VK_NVX_multiview_per_view_attributes") define VK_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_EXTENSION_NAME "VK_NVX_multiview_per_view_attributes"
335
336// 99
337@extension("VK_NV_viewport_swizzle") define VK_NV_VIEWPORT_SWIZZLE_SPEC_VERSION 1
338@extension("VK_NV_viewport_swizzle") define VK_NV_VIEWPORT_SWIZZLE_EXTENSION_NAME "VK_NV_viewport_swizzle"
339
340// 100
341@extension("VK_EXT_discard_rectangles") define VK_EXT_DISCARD_RECTANGLES_SPEC_VERSION 1
342@extension("VK_EXT_discard_rectangles") define VK_EXT_DISCARD_RECTANGLES_EXTENSION_NAME "VK_EXT_discard_rectangles"
343
Jesse Hall8c954d32018-01-17 22:06:20 -0800344// 102
345@extension("VK_EXT_conservative_rasterization") define VK_EXT_CONSERVATIVE_RASTERIZATION_SPEC_VERSION 1
346@extension("VK_EXT_conservative_rasterization") define VK_EXT_CONSERVATIVE_RASTERIZATION_EXTENSION_NAME "VK_EXT_conservative_rasterization"
347
Jesse Hall77ad05b2017-03-10 22:02:20 -0800348// 105
Jesse Hall77726222017-09-19 14:49:27 -0500349@extension("VK_EXT_swapchain_colorspace") define VK_EXT_SWAPCHAIN_COLORSPACE_SPEC_VERSION 3
Jesse Hallf5ad48b2017-03-20 13:09:19 -0700350@extension("VK_EXT_swapchain_colorspace") define VK_EXT_SWAPCHAIN_COLORSPACE_EXTENSION_NAME "VK_EXT_swapchain_colorspace"
Jesse Hall77ad05b2017-03-10 22:02:20 -0800351
Jesse Hall889cd9a2017-02-25 22:12:23 -0800352// 106
353@extension("VK_EXT_hdr_metadata") define VK_EXT_HDR_METADATA_SPEC_VERSION 1
354@extension("VK_EXT_hdr_metadata") define VK_EXT_HDR_METADATA_EXTENSION_NAME "VK_EXT_hdr_metadata"
355
Jesse Halla13a3cf2018-07-09 15:51:52 -0700356// 110
357@extension("VK_KHR_create_renderpass2") define VK_KHR_CREATE_RENDERPASS2_SPEC_VERSION 1
358@extension("VK_KHR_create_renderpass2") define VK_KHR_CREATE_RENDERPASS2_EXTENSION_NAME "VK_KHR_create_renderpass2"
359
Jesse Hall889cd9a2017-02-25 22:12:23 -0800360// 112
Chris Forbes1d5f68c2017-01-31 10:17:01 +1300361@extension("VK_KHR_shared_presentable_image") define VK_KHR_SHARED_PRESENTABLE_IMAGE_SPEC_VERSION 1
362@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 +1300363
Jesse Hall9492f992017-08-28 12:10:06 -0700364// 113
365@extension("VK_KHR_external_fence_capabilities") define VK_KHR_EXTERNAL_FENCE_CAPABILITIES_SPEC_VERSION 1
366@extension("VK_KHR_external_fence_capabilities") define VK_KHR_EXTERNAL_FENCE_CAPABILITIES_EXTENSION_NAME "VK_KHR_external_fence_capabilities"
367
368// 114
369@extension("VK_KHR_external_fence") define VK_KHR_EXTERNAL_FENCE_SPEC_VERSION 1
370@extension("VK_KHR_external_fence") define VK_KHR_EXTERNAL_FENCE_EXTENSION_NAME "VK_KHR_external_fence"
371
372// 115
373@extension("VK_KHR_external_fence_win32") define VK_KHR_EXTERNAL_FENCE_WIN32_SPEC_VERSION 1
374@extension("VK_KHR_external_fence_win32") define VK_KHR_EXTERNAL_FENCE_WIN32_EXTENSION_NAME "VK_KHR_external_fence_win32"
375
376// 116
377@extension("VK_KHR_external_fence_fd") define VK_KHR_EXTERNAL_FENCE_FD_SPEC_VERSION 1
378@extension("VK_KHR_external_fence_fd") define VK_KHR_EXTERNAL_FENCE_FD_EXTENSION_NAME "VK_KHR_external_fence_fd"
379
Jesse Hall076f95d2017-09-20 11:34:47 -0700380// 118
381@extension("VK_KHR_maintenance2") define VK_KHR_MAINTENANCE2_SPEC_VERSION 1
382@extension("VK_KHR_maintenance2") define VK_KHR_MAINTENANCE2_EXTENSION_NAME "VK_KHR_maintenance2"
383
Jesse Hall05556b12017-05-18 17:40:25 -0700384// 120
Chris Forbese2d3ee12017-03-16 16:10:15 +1300385@extension("VK_KHR_get_surface_capabilities2") define VK_KHR_GET_SURFACE_CAPABILITIES_2_SPEC_VERSION 1
386@extension("VK_KHR_get_surface_capabilities2") define VK_KHR_GET_SURFACE_CAPABILITIES_2_EXTENSION_NAME "VK_KHR_get_surface_capabilities2"
387
Jesse Hall9492f992017-08-28 12:10:06 -0700388// 121
389@extension("VK_KHR_variable_pointers") define VK_KHR_VARIABLE_POINTERS_SPEC_VERSION 1
390@extension("VK_KHR_variable_pointers") define VK_KHR_VARIABLE_POINTERS_EXTENSION_NAME "VK_KHR_variable_pointers"
391
Jesse Hall54f8d132018-04-18 08:16:59 -0700392// 122
393@extension("VK_KHR_get_display_properties2") define VK_KHR_GET_DISPLAY_PROPERTIES_2_SPEC_VERSION 1
394@extension("VK_KHR_get_display_properties2") define VK_KHR_GET_DISPLAY_PROPERTIES_2_EXTENSION_NAME "VK_KHR_get_display_properties2"
395
Jesse Hallad250842017-03-10 18:35:38 -0800396// 123
397@extension("VK_MVK_ios_surface") define VK_MVK_IOS_SURFACE_SPEC_VERSION 1
398@extension("VK_MVK_ios_surface") define VK_MVK_IOS_SURFACE_EXTENSION_NAME "VK_MVK_ios_surface"
399
400// 124
401@extension("VK_MVK_macos_surface") define VK_MVK_MACOS_SURFACE_SPEC_VERSION 1
402@extension("VK_MVK_macos_surface") define VK_MVK_MACOS_SURFACE_EXTENSION_NAME "VK_MVK_macos_surface"
403
Jesse Hall8c954d32018-01-17 22:06:20 -0800404// 126
405@extension("VK_EXT_external_memory_dma_buf") define VK_EXT_EXTERNAL_MEMORY_DMA_BUF_SPEC_VERSION 1
406@extension("VK_EXT_external_memory_dma_buf") define VK_EXT_EXTERNAL_MEMORY_DMA_BUF_EXTENSION_NAME "VK_EXT_external_memory_dma_buf"
407
408// 127
409@extension("VK_EXT_queue_family_foreign") define VK_EXT_QUEUE_FAMILY_FOREIGN_SPEC_VERSION 1
410@extension("VK_EXT_queue_family_foreign") define VK_EXT_QUEUE_FAMILY_FOREIGN_EXTENSION_NAME "VK_EXT_queue_family_foreign"
411
Jesse Hall9492f992017-08-28 12:10:06 -0700412// 128
Jesse Hall77726222017-09-19 14:49:27 -0500413@extension("VK_KHR_dedicated_allocation") define VK_KHR_DEDICATED_ALLOCATION_SPEC_VERSION 3
Jesse Hall9492f992017-08-28 12:10:06 -0700414@extension("VK_KHR_dedicated_allocation") define VK_KHR_DEDICATED_ALLOCATION_EXTENSION_NAME "VK_KHR_dedicated_allocation"
415
Jesse Hall8c954d32018-01-17 22:06:20 -0800416// 128
417@extension("VK_EXT_debug_utils") define VK_EXT_DEBUG_UTILS_SPEC_VERSION 1
418@extension("VK_EXT_debug_utils") define VK_EXT_DEBUG_UTILS_EXTENSION_NAME "VK_EXT_debug_utils"
419
Jesse Hall36215a92018-01-18 15:04:37 -0800420// 130
Jesse Hall72e6a132018-04-06 13:00:44 -0700421@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 -0800422@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"
423
Jesse Hall7ba0ac72017-07-07 17:13:23 -0700424// 131
425@extension("VK_EXT_sampler_filter_minmax") define VK_EXT_SAMPLER_FILTER_MINMAX_SPEC_VERSION 1
426@extension("VK_EXT_sampler_filter_minmax") define VK_EXT_SAMPLER_FILTER_MINMAX_EXTENSION_NAME "VK_EXT_sampler_filter_minmax"
427
Jesse Hall9492f992017-08-28 12:10:06 -0700428// 132
429@extension("VK_KHR_storage_buffer_storage_class") define VK_KHR_STORAGE_BUFFER_STORAGE_CLASS_SPEC_VERSION 1
430@extension("VK_KHR_storage_buffer_storage_class") define VK_KHR_STORAGE_BUFFER_STORAGE_CLASS_EXTENSION_NAME "VK_KHR_storage_buffer_storage_class"
431
Jesse Hall7ba0ac72017-07-07 17:13:23 -0700432// 133
433@extension("VK_AMD_gpu_shader_int16") define VK_AMD_GPU_SHADER_INT16_SPEC_VERSION 1
434@extension("VK_AMD_gpu_shader_int16") define VK_AMD_GPU_SHADER_INT16_EXTENSION_NAME "VK_AMD_gpu_shader_int16"
435
Jesse Hall77726222017-09-19 14:49:27 -0500436// 137
437@extension("VK_AMD_mixed_attachment_samples") define VK_AMD_MIXED_ATTACHMENT_SAMPLES_SPEC_VERSION 1
438@extension("VK_AMD_mixed_attachment_samples") define VK_AMD_MIXED_ATTACHMENT_SAMPLES_EXTENSION_NAME "VK_AMD_mixed_attachment_samples"
439
440// 138
441@extension("VK_AMD_shader_fragment_mask") define VK_AMD_SHADER_FRAGMENT_MASK_SPEC_VERSION 1
442@extension("VK_AMD_shader_fragment_mask") define VK_AMD_SHADER_FRAGMENT_MASK_EXTENSION_NAME "VK_AMD_shader_fragment_mask"
443
Jesse Hall4af6c462018-09-10 09:04:25 -0700444// 139
445@extension("VK_EXT_inline_uniform_block") define VK_EXT_INLINE_UNIFORM_BLOCK_SPEC_VERSION 1
446@extension("VK_EXT_inline_uniform_block") define VK_EXT_INLINE_UNIFORM_BLOCK_EXTENSION_NAME "VK_EXT_inline_uniform_block"
447
Jesse Hall77726222017-09-19 14:49:27 -0500448// 141
449@extension("VK_EXT_shader_stencil_export") define VK_EXT_SHADER_STENCIL_EXPORT_SPEC_VERSION 1
450@extension("VK_EXT_shader_stencil_export") define VK_EXT_SHADER_STENCIL_EXPORT_EXTENSION_NAME "VK_EXT_shader_stencil_export"
451
452// 144
453@extension("VK_EXT_sample_locations") define VK_EXT_SAMPLE_LOCATIONS_SPEC_VERSION 1
454@extension("VK_EXT_sample_locations") define VK_EXT_SAMPLE_LOCATIONS_EXTENSION_NAME "VK_EXT_sample_locations"
455
456// 145
457@extension("VK_KHR_relaxed_block_layout") define VK_KHR_RELAXED_BLOCK_LAYOUT_SPEC_VERSION 1
458@extension("VK_KHR_relaxed_block_layout") define VK_KHR_RELAXED_BLOCK_LAYOUT_EXTENSION_NAME "VK_KHR_relaxed_block_layout"
459
Jesse Hall9492f992017-08-28 12:10:06 -0700460// 147
461@extension("VK_KHR_get_memory_requirements2") define VK_KHR_GET_MEMORY_REQUIREMENTS2_SPEC_VERSION 1
462@extension("VK_KHR_get_memory_requirements2") define VK_KHR_GET_MEMORY_REQUIREMENTS2_EXTENSION_NAME "VK_KHR_get_memory_requirements2"
463
Jesse Hall076f95d2017-09-20 11:34:47 -0700464// 148
465@extension("VK_KHR_image_format_list") define VK_KHR_IMAGE_FORMAT_LIST_SPEC_VERSION 1
466@extension("VK_KHR_image_format_list") define VK_KHR_IMAGE_FORMAT_LIST_EXTENSION_NAME "VK_KHR_image_format_list"
467
Jesse Hall7ba0ac72017-07-07 17:13:23 -0700468// 149
469@extension("VK_EXT_blend_operation_advanced") define VK_EXT_BLEND_OPERATION_ADVANCED_SPEC_VERSION 2
470@extension("VK_EXT_blend_operation_advanced") define VK_EXT_BLEND_OPERATION_ADVANCED_EXTENSION_NAME "VK_EXT_blend_operation_advanced"
471
472// 150
473@extension("VK_NV_fragment_coverage_to_color") define VK_NV_FRAGMENT_COVERAGE_TO_COLOR_SPEC_VERSION 1
474@extension("VK_NV_fragment_coverage_to_color") define VK_NV_FRAGMENT_COVERAGE_TO_COLOR_EXTENSION_NAME "VK_NV_fragment_coverage_to_color"
475
476// 153
477@extension("VK_NV_framebuffer_mixed_samples") define VK_NV_FRAMEBUFFER_MIXED_SAMPLES_SPEC_VERSION 1
478@extension("VK_NV_framebuffer_mixed_samples") define VK_NV_FRAMEBUFFER_MIXED_SAMPLES_EXTENSION_NAME "VK_NV_framebuffer_mixed_samples"
479
480// 154
481@extension("VK_NV_fill_rectangle") define VK_NV_FILL_RECTANGLE_SPEC_VERSION 1
482@extension("VK_NV_fill_rectangle") define VK_NV_FILL_RECTANGLE_EXTENSION_NAME "VK_NV_fill_rectangle"
483
Jesse Hall77726222017-09-19 14:49:27 -0500484// 156
485@extension("VK_EXT_post_depth_coverage") define VK_EXT_POST_DEPTH_COVERAGE_SPEC_VERSION 1
486@extension("VK_EXT_post_depth_coverage") define VK_EXT_POST_DEPTH_COVERAGE_EXTENSION_NAME "VK_EXT_post_depth_coverage"
487
Jesse Hall076f95d2017-09-20 11:34:47 -0700488// 157
489@extension("VK_KHR_sampler_ycbcr_conversion") define VK_KHR_SAMPLER_YCBCR_CONVERSION_SPEC_VERSION 1
490@extension("VK_KHR_sampler_ycbcr_conversion") define VK_KHR_SAMPLER_YCBCR_CONVERSION_EXTENSION_NAME "VK_KHR_sampler_ycbcr_conversion"
491
492// 158
493@extension("VK_KHR_bind_memory2") define VK_KHR_BIND_MEMORY2_SPEC_VERSION 1
494@extension("VK_KHR_bind_memory2") define VK_KHR_BIND_MEMORY2_EXTENSION_NAME "VK_KHR_bind_memory2"
495
Jesse Hall77726222017-09-19 14:49:27 -0500496// 161
497@extension("VK_EXT_validation_cache") define VK_EXT_VALIDATION_CACHE_SPEC_VERSION 1
498@extension("VK_EXT_validation_cache") define VK_EXT_VALIDATION_CACHE_EXTENSION_NAME "VK_EXT_validation_cache"
499
Jesse Hall72e6a132018-04-06 13:00:44 -0700500// 162
501@extension("VK_EXT_descriptor_indexing") define VK_EXT_DESCRIPTOR_INDEXING_SPEC_VERSION 2
502@extension("VK_EXT_descriptor_indexing") define VK_EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME "VK_EXT_descriptor_indexing"
503
Jesse Hall77726222017-09-19 14:49:27 -0500504// 165
505@extension("VK_EXT_shader_viewport_index_layer") define VK_EXT_SHADER_VIEWPORT_INDEX_LAYER_SPEC_VERSION 1
506@extension("VK_EXT_shader_viewport_index_layer") define VK_EXT_SHADER_VIEWPORT_INDEX_LAYER_EXTENSION_NAME "VK_EXT_shader_viewport_index_layer"
507
Daniel Koch09f7bf92017-10-05 00:26:58 -0400508// 169
509@extension("VK_KHR_maintenance3") define VK_KHR_MAINTENANCE3_SPEC_VERSION 1
510@extension("VK_KHR_maintenance3") define VK_KHR_MAINTENANCE3_EXTENSION_NAME "VK_KHR_maintenance3"
511
Jesse Hall54f8d132018-04-18 08:16:59 -0700512// 170
513@extension("VK_KHR_draw_indirect_count") define VK_KHR_DRAW_INDIRECT_COUNT_SPEC_VERSION 1
514@extension("VK_KHR_draw_indirect_count") define VK_KHR_DRAW_INDIRECT_COUNT_EXTENSION_NAME "VK_KHR_draw_indirect_count"
515
Jesse Hall8c954d32018-01-17 22:06:20 -0800516// 175
517@extension("VK_EXT_global_priority") define VK_EXT_GLOBAL_PRIORITY_SPEC_VERSION 1
518@extension("VK_EXT_global_priority") define VK_EXT_GLOBAL_PRIORITY_EXTENSION_NAME "VK_EXT_global_priority"
519
Jesse Halla13a3cf2018-07-09 15:51:52 -0700520// 178
521@extension("VK_KHR_8bit_storage") define VK_KHR_8BIT_STORAGE_SPEC_VERSION 1
522@extension("VK_KHR_8bit_storage") define VK_KHR_8BIT_STORAGE_EXTENSION_NAME "VK_KHR_8bit_storage"
523
Jesse Hall8c954d32018-01-17 22:06:20 -0800524// 179
525@extension("VK_EXT_external_memory_host") define VK_EXT_EXTERNAL_MEMORY_HOST_SPEC_VERSION 1
526@extension("VK_EXT_external_memory_host") define VK_EXT_EXTERNAL_MEMORY_HOST_EXTENSION_NAME "VK_EXT_external_memory_host"
527
Jesse Hall72e6a132018-04-06 13:00:44 -0700528// 180
529@extension("VK_AMD_buffer_marker") define VK_AMD_BUFFER_MARKER_SPEC_VERSION 1
530@extension("VK_AMD_buffer_marker") define VK_AMD_BUFFER_MARKER_EXTENSION_NAME "VK_AMD_buffer_marker"
531
532// 186
533@extension("VK_AMD_shader_core_properties") define VK_AMD_SHADER_CORE_PROPERTIES_SPEC_VERSION 1
534@extension("VK_AMD_shader_core_properties") define VK_AMD_SHADER_CORE_PROPERTIES_EXTENSION_NAME "VK_AMD_shader_core_properties"
535
536// 191
Jesse Hall4af6c462018-09-10 09:04:25 -0700537@extension("VK_EXT_vertex_attribute_divisor") define VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_SPEC_VERSION 2
538@extension("VK_EXT_vertex_attribute_divisor") define VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_EXTENSION_NAME "VK_EXT_vertex_attribute_divisor"
Jesse Hall72e6a132018-04-06 13:00:44 -0700539
540// 199
541@extension("VK_NV_shader_subgroup_partitioned") define VK_NV_SHADER_SUBGROUP_PARTITIONED_SPEC_VERSION 1
542@extension("VK_NV_shader_subgroup_partitioned") define VK_NV_SHADER_SUBGROUP_PARTITIONED_EXTENSION_NAME "VK_NV_shader_subgroup_partitioned"
543
Jesse Hall115df0c2018-07-30 12:00:59 -0700544// 207
545@extension("VK_NV_device_diagnostic_checkpoints") define VK_NV_DEVICE_DIAGNOSTIC_CHECKPOINTS_SPEC_VERSION 2
546@extension("VK_NV_device_diagnostic_checkpoints") define VK_NV_DEVICE_DIAGNOSTIC_CHECKPOINTS_EXTENSION_NAME "VK_NV_device_diagnostic_checkpoints"
547
Jesse Hall4af6c462018-09-10 09:04:25 -0700548// 212
549@extension("VK_KHR_vulkan_memory_model") define VK_KHR_VULKAN_MEMORY_MODEL_SPEC_VERSION 2
550@extension("VK_KHR_vulkan_memory_model") define VK_KHR_VULKAN_MEMORY_MODEL_EXTENSION_NAME "VK_KHR_vulkan_memory_model"
551
Jesse Halld27f6aa2015-08-15 17:58:48 -0700552/////////////
553// Types //
554/////////////
555
Jesse Hall5ae3abb2015-10-08 14:00:22 -0700556type u32 VkBool32
557type u32 VkFlags
558type u64 VkDeviceSize
559type u32 VkSampleMask
560
Jesse Halld27f6aa2015-08-15 17:58:48 -0700561/// Dispatchable handle types.
562@dispatchHandle type u64 VkInstance
563@dispatchHandle type u64 VkPhysicalDevice
564@dispatchHandle type u64 VkDevice
565@dispatchHandle type u64 VkQueue
Jesse Hall3fbc8562015-11-29 22:10:52 -0800566@dispatchHandle type u64 VkCommandBuffer
Jesse Halld27f6aa2015-08-15 17:58:48 -0700567
568/// Non dispatchable handle types.
569@nonDispatchHandle type u64 VkDeviceMemory
Jesse Hall3fbc8562015-11-29 22:10:52 -0800570@nonDispatchHandle type u64 VkCommandPool
Jesse Halld27f6aa2015-08-15 17:58:48 -0700571@nonDispatchHandle type u64 VkBuffer
572@nonDispatchHandle type u64 VkBufferView
573@nonDispatchHandle type u64 VkImage
574@nonDispatchHandle type u64 VkImageView
Jesse Halld27f6aa2015-08-15 17:58:48 -0700575@nonDispatchHandle type u64 VkShaderModule
Jesse Halld27f6aa2015-08-15 17:58:48 -0700576@nonDispatchHandle type u64 VkPipeline
577@nonDispatchHandle type u64 VkPipelineLayout
578@nonDispatchHandle type u64 VkSampler
579@nonDispatchHandle type u64 VkDescriptorSet
580@nonDispatchHandle type u64 VkDescriptorSetLayout
581@nonDispatchHandle type u64 VkDescriptorPool
Jesse Halld27f6aa2015-08-15 17:58:48 -0700582@nonDispatchHandle type u64 VkFence
583@nonDispatchHandle type u64 VkSemaphore
584@nonDispatchHandle type u64 VkEvent
585@nonDispatchHandle type u64 VkQueryPool
586@nonDispatchHandle type u64 VkFramebuffer
587@nonDispatchHandle type u64 VkRenderPass
588@nonDispatchHandle type u64 VkPipelineCache
Jesse Hall1356b0d2015-11-23 17:24:58 -0800589
Ian Elliott28bd2c32017-10-13 09:21:12 -0600590@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -0400591@nonDispatchHandle type u64 VkSamplerYcbcrConversion
592@nonDispatchHandle type u64 VkDescriptorUpdateTemplate
593
Jesse Hallad250842017-03-10 18:35:38 -0800594// 1
Jesse Hall3e0dc8f2015-11-30 00:42:57 -0800595@extension("VK_KHR_surface") @nonDispatchHandle type u64 VkSurfaceKHR
Jesse Hall1356b0d2015-11-23 17:24:58 -0800596
Jesse Hallad250842017-03-10 18:35:38 -0800597// 2
Jesse Hall3e0dc8f2015-11-30 00:42:57 -0800598@extension("VK_KHR_swapchain") @nonDispatchHandle type u64 VkSwapchainKHR
Jesse Hall1356b0d2015-11-23 17:24:58 -0800599
Jesse Hallad250842017-03-10 18:35:38 -0800600// 3
Jesse Hall3e0dc8f2015-11-30 00:42:57 -0800601@extension("VK_KHR_display") @nonDispatchHandle type u64 VkDisplayKHR
602@extension("VK_KHR_display") @nonDispatchHandle type u64 VkDisplayModeKHR
Jesse Halld27f6aa2015-08-15 17:58:48 -0700603
Jesse Hallad250842017-03-10 18:35:38 -0800604// 12
Jesse Hall715b86a2016-01-16 16:34:29 -0800605@extension("VK_EXT_debug_report") @nonDispatchHandle type u64 VkDebugReportCallbackEXT
606
Jesse Hallad250842017-03-10 18:35:38 -0800607// 86
608@extension("VK_KHR_descriptor_update_template") @nonDispatchHandle type u64 VkDescriptorUpdateTemplateKHR
609
610// 87
Chris Forbes289cb792016-12-30 15:03:55 +1300611@extension("VK_NVX_device_generated_commands") @nonDispatchHandle type u64 VkObjectTableNVX
612@extension("VK_NVX_device_generated_commands") @nonDispatchHandle type u64 VkIndirectCommandsLayoutNVX
613
Jesse Hall8c954d32018-01-17 22:06:20 -0800614// 129
615@extension("VK_EXT_debug_utils") @nonDispatchHandle type u64 VkDebugUtilsMessengerEXT
616
Jesse Hall076f95d2017-09-20 11:34:47 -0700617// 157
618@extension("VK_KHR_sampler_ycbcr_conversion") @nonDispatchHandle type u64 VkSamplerYcbcrConversionKHR
619
Jesse Hall77726222017-09-19 14:49:27 -0500620// 161
621@extension("VK_EXT_validation_cache") @nonDispatchHandle type u64 VkValidationCacheEXT
Jesse Halld27f6aa2015-08-15 17:58:48 -0700622
623/////////////
624// Enums //
625/////////////
626
627enum VkImageLayout {
628 VK_IMAGE_LAYOUT_UNDEFINED = 0x00000000, /// Implicit layout an image is when its contents are undefined due to various reasons (e.g. right after creation)
629 VK_IMAGE_LAYOUT_GENERAL = 0x00000001, /// General layout when image can be used for any kind of access
630 VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL = 0x00000002, /// Optimal layout when image is only used for color attachment read/write
631 VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL = 0x00000003, /// Optimal layout when image is only used for depth/stencil attachment read/write
632 VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL = 0x00000004, /// Optimal layout when image is used for read only depth/stencil attachment and shader access
633 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 -0800634 VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL = 0x00000006, /// Optimal layout when image is used only as source of transfer operations
635 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 -0700636 VK_IMAGE_LAYOUT_PREINITIALIZED = 0x00000008, /// Initial layout used when the data is populated by the CPU
Jesse Hall1356b0d2015-11-23 17:24:58 -0800637
Ian Elliott28bd2c32017-10-13 09:21:12 -0600638 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -0400639 VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL = 1000117000,
640 VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL = 1000117001,
641
Jesse Hallad250842017-03-10 18:35:38 -0800642 //@extension("VK_KHR_swapchain") // 2
Jesse Hallbd888842015-11-30 21:44:14 -0800643 VK_IMAGE_LAYOUT_PRESENT_SRC_KHR = 1000001002,
Chris Forbesaf3a1112017-01-31 15:37:03 +1300644
Jesse Hall05556b12017-05-18 17:40:25 -0700645 //@extension("VK_KHR_shared_presentable_image") // 112
Chris Forbesaf3a1112017-01-31 15:37:03 +1300646 VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR = 1000111000,
Jesse Hall076f95d2017-09-20 11:34:47 -0700647
648 //@extension("VK_KHR_maintenance2") // 118
649 VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL_KHR = 1000117000,
650 VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL_KHR = 1000117001,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700651}
652
653enum VkAttachmentLoadOp {
654 VK_ATTACHMENT_LOAD_OP_LOAD = 0x00000000,
655 VK_ATTACHMENT_LOAD_OP_CLEAR = 0x00000001,
656 VK_ATTACHMENT_LOAD_OP_DONT_CARE = 0x00000002,
657}
658
659enum VkAttachmentStoreOp {
660 VK_ATTACHMENT_STORE_OP_STORE = 0x00000000,
661 VK_ATTACHMENT_STORE_OP_DONT_CARE = 0x00000001,
662}
663
664enum VkImageType {
665 VK_IMAGE_TYPE_1D = 0x00000000,
666 VK_IMAGE_TYPE_2D = 0x00000001,
667 VK_IMAGE_TYPE_3D = 0x00000002,
668}
669
670enum VkImageTiling {
Jesse Hallc7467b72015-11-29 21:05:26 -0800671 VK_IMAGE_TILING_OPTIMAL = 0x00000000,
672 VK_IMAGE_TILING_LINEAR = 0x00000001,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700673}
674
675enum VkImageViewType {
676 VK_IMAGE_VIEW_TYPE_1D = 0x00000000,
677 VK_IMAGE_VIEW_TYPE_2D = 0x00000001,
678 VK_IMAGE_VIEW_TYPE_3D = 0x00000002,
679 VK_IMAGE_VIEW_TYPE_CUBE = 0x00000003,
680 VK_IMAGE_VIEW_TYPE_1D_ARRAY = 0x00000004,
681 VK_IMAGE_VIEW_TYPE_2D_ARRAY = 0x00000005,
682 VK_IMAGE_VIEW_TYPE_CUBE_ARRAY = 0x00000006,
683}
684
Jesse Hall3fbc8562015-11-29 22:10:52 -0800685enum VkCommandBufferLevel {
686 VK_COMMAND_BUFFER_LEVEL_PRIMARY = 0x00000000,
687 VK_COMMAND_BUFFER_LEVEL_SECONDARY = 0x00000001,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700688}
689
Jesse Hall65ab5522015-11-30 00:07:16 -0800690enum VkComponentSwizzle {
691 VK_COMPONENT_SWIZZLE_IDENTITY = 0x00000000,
692 VK_COMPONENT_SWIZZLE_ZERO = 0x00000001,
693 VK_COMPONENT_SWIZZLE_ONE = 0x00000002,
694 VK_COMPONENT_SWIZZLE_R = 0x00000003,
695 VK_COMPONENT_SWIZZLE_G = 0x00000004,
696 VK_COMPONENT_SWIZZLE_B = 0x00000005,
697 VK_COMPONENT_SWIZZLE_A = 0x00000006,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700698}
699
700enum VkDescriptorType {
701 VK_DESCRIPTOR_TYPE_SAMPLER = 0x00000000,
702 VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER = 0x00000001,
703 VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE = 0x00000002,
704 VK_DESCRIPTOR_TYPE_STORAGE_IMAGE = 0x00000003,
705 VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER = 0x00000004,
706 VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER = 0x00000005,
707 VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER = 0x00000006,
708 VK_DESCRIPTOR_TYPE_STORAGE_BUFFER = 0x00000007,
709 VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC = 0x00000008,
710 VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC = 0x00000009,
711 VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT = 0x0000000a,
Jesse Hall4af6c462018-09-10 09:04:25 -0700712
713 //@extension("VK_EXT_inline_uniform_block") // 139
714 VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT = 1000138000,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700715}
716
Jesse Halld27f6aa2015-08-15 17:58:48 -0700717enum VkQueryType {
718 VK_QUERY_TYPE_OCCLUSION = 0x00000000,
719 VK_QUERY_TYPE_PIPELINE_STATISTICS = 0x00000001, /// Optional
Jesse Halla3a7a1d2015-11-24 11:37:23 -0800720 VK_QUERY_TYPE_TIMESTAMP = 0x00000002,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700721}
722
Jesse Halld27f6aa2015-08-15 17:58:48 -0700723enum VkBorderColor {
724 VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK = 0x00000000,
725 VK_BORDER_COLOR_INT_TRANSPARENT_BLACK = 0x00000001,
726 VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK = 0x00000002,
727 VK_BORDER_COLOR_INT_OPAQUE_BLACK = 0x00000003,
728 VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE = 0x00000004,
729 VK_BORDER_COLOR_INT_OPAQUE_WHITE = 0x00000005,
730}
731
732enum VkPipelineBindPoint {
Jesse Hallc7467b72015-11-29 21:05:26 -0800733 VK_PIPELINE_BIND_POINT_GRAPHICS = 0x00000000,
734 VK_PIPELINE_BIND_POINT_COMPUTE = 0x00000001,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700735}
736
737enum VkPrimitiveTopology {
738 VK_PRIMITIVE_TOPOLOGY_POINT_LIST = 0x00000000,
739 VK_PRIMITIVE_TOPOLOGY_LINE_LIST = 0x00000001,
740 VK_PRIMITIVE_TOPOLOGY_LINE_STRIP = 0x00000002,
741 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST = 0x00000003,
742 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP = 0x00000004,
743 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN = 0x00000005,
Jesse Hall3fbc8562015-11-29 22:10:52 -0800744 VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY = 0x00000006,
745 VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY = 0x00000007,
746 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY = 0x00000008,
747 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY = 0x00000009,
Jesse Hall091ed9e2015-11-30 00:55:29 -0800748 VK_PRIMITIVE_TOPOLOGY_PATCH_LIST = 0x0000000a,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700749}
750
751enum VkSharingMode {
752 VK_SHARING_MODE_EXCLUSIVE = 0x00000000,
753 VK_SHARING_MODE_CONCURRENT = 0x00000001,
754}
755
756enum VkIndexType {
757 VK_INDEX_TYPE_UINT16 = 0x00000000,
758 VK_INDEX_TYPE_UINT32 = 0x00000001,
759}
760
Jesse Hall23ff73f2015-11-29 14:36:39 -0800761enum VkFilter {
762 VK_FILTER_NEAREST = 0x00000000,
763 VK_FILTER_LINEAR = 0x00000001,
Jesse Hall26763382016-05-20 07:13:52 -0700764
Jesse Hallad250842017-03-10 18:35:38 -0800765 //@extension("VK_IMG_filter_cubic") // 16
Jesse Hall26763382016-05-20 07:13:52 -0700766 VK_FILTER_CUBIC_IMG = 1000015000,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700767}
768
Jesse Hall23ff73f2015-11-29 14:36:39 -0800769enum VkSamplerMipmapMode {
Jesse Hall23ff73f2015-11-29 14:36:39 -0800770 VK_SAMPLER_MIPMAP_MODE_NEAREST = 0x00000001, /// Choose nearest mip level
771 VK_SAMPLER_MIPMAP_MODE_LINEAR = 0x00000002, /// Linear filter between mip levels
Jesse Halld27f6aa2015-08-15 17:58:48 -0700772}
773
Jesse Hall23ff73f2015-11-29 14:36:39 -0800774enum VkSamplerAddressMode {
Jesse Hallc7467b72015-11-29 21:05:26 -0800775 VK_SAMPLER_ADDRESS_MODE_REPEAT = 0x00000000,
776 VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT = 0x00000001,
777 VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE = 0x00000002,
778 VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER = 0x00000003,
779 VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE = 0x00000004,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700780}
781
782enum VkCompareOp {
783 VK_COMPARE_OP_NEVER = 0x00000000,
784 VK_COMPARE_OP_LESS = 0x00000001,
785 VK_COMPARE_OP_EQUAL = 0x00000002,
Jesse Hall3fbc8562015-11-29 22:10:52 -0800786 VK_COMPARE_OP_LESS_OR_EQUAL = 0x00000003,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700787 VK_COMPARE_OP_GREATER = 0x00000004,
788 VK_COMPARE_OP_NOT_EQUAL = 0x00000005,
Jesse Hall3fbc8562015-11-29 22:10:52 -0800789 VK_COMPARE_OP_GREATER_OR_EQUAL = 0x00000006,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700790 VK_COMPARE_OP_ALWAYS = 0x00000007,
791}
792
Jesse Hall65ab5522015-11-30 00:07:16 -0800793enum VkPolygonMode {
794 VK_POLYGON_MODE_FILL = 0x00000000,
795 VK_POLYGON_MODE_LINE = 0x00000001,
796 VK_POLYGON_MODE_POINT = 0x00000002,
Jesse Hall7ba0ac72017-07-07 17:13:23 -0700797
798 //@extension("VK_NV_fill_rectangle") // 154
799 VK_POLYGON_MODE_FILL_RECTANGLE_NV = 1000153000,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700800}
801
802enum VkFrontFace {
Jesse Hall3fbc8562015-11-29 22:10:52 -0800803 VK_FRONT_FACE_COUNTER_CLOCKWISE = 0x00000000,
804 VK_FRONT_FACE_CLOCKWISE = 0x00000001,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700805}
806
Jesse Hall65ab5522015-11-30 00:07:16 -0800807enum VkBlendFactor {
808 VK_BLEND_FACTOR_ZERO = 0x00000000,
809 VK_BLEND_FACTOR_ONE = 0x00000001,
810 VK_BLEND_FACTOR_SRC_COLOR = 0x00000002,
811 VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR = 0x00000003,
812 VK_BLEND_FACTOR_DST_COLOR = 0x00000004,
813 VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR = 0x00000005,
814 VK_BLEND_FACTOR_SRC_ALPHA = 0x00000006,
815 VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA = 0x00000007,
816 VK_BLEND_FACTOR_DST_ALPHA = 0x00000008,
817 VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA = 0x00000009,
818 VK_BLEND_FACTOR_CONSTANT_COLOR = 0x0000000a,
819 VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR = 0x0000000b,
820 VK_BLEND_FACTOR_CONSTANT_ALPHA = 0x0000000c,
821 VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA = 0x0000000d,
822 VK_BLEND_FACTOR_SRC_ALPHA_SATURATE = 0x0000000e,
823 VK_BLEND_FACTOR_SRC1_COLOR = 0x0000000f,
824 VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR = 0x00000010,
825 VK_BLEND_FACTOR_SRC1_ALPHA = 0x00000011,
826 VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA = 0x00000012,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700827}
828
829enum VkBlendOp {
830 VK_BLEND_OP_ADD = 0x00000000,
831 VK_BLEND_OP_SUBTRACT = 0x00000001,
832 VK_BLEND_OP_REVERSE_SUBTRACT = 0x00000002,
833 VK_BLEND_OP_MIN = 0x00000003,
834 VK_BLEND_OP_MAX = 0x00000004,
Jesse Hall7ba0ac72017-07-07 17:13:23 -0700835
836 //@extension("VK_EXT_blend_operation_advanced") // 149
837 VK_BLEND_OP_ZERO_EXT = 1000148000,
838 VK_BLEND_OP_SRC_EXT = 1000148001,
839 VK_BLEND_OP_DST_EXT = 1000148002,
840 VK_BLEND_OP_SRC_OVER_EXT = 1000148003,
841 VK_BLEND_OP_DST_OVER_EXT = 1000148004,
842 VK_BLEND_OP_SRC_IN_EXT = 1000148005,
843 VK_BLEND_OP_DST_IN_EXT = 1000148006,
844 VK_BLEND_OP_SRC_OUT_EXT = 1000148007,
845 VK_BLEND_OP_DST_OUT_EXT = 1000148008,
846 VK_BLEND_OP_SRC_ATOP_EXT = 1000148009,
847 VK_BLEND_OP_DST_ATOP_EXT = 1000148010,
848 VK_BLEND_OP_XOR_EXT = 1000148011,
849 VK_BLEND_OP_MULTIPLY_EXT = 1000148012,
850 VK_BLEND_OP_SCREEN_EXT = 1000148013,
851 VK_BLEND_OP_OVERLAY_EXT = 1000148014,
852 VK_BLEND_OP_DARKEN_EXT = 1000148015,
853 VK_BLEND_OP_LIGHTEN_EXT = 1000148016,
854 VK_BLEND_OP_COLORDODGE_EXT = 1000148017,
855 VK_BLEND_OP_COLORBURN_EXT = 1000148018,
856 VK_BLEND_OP_HARDLIGHT_EXT = 1000148019,
857 VK_BLEND_OP_SOFTLIGHT_EXT = 1000148020,
858 VK_BLEND_OP_DIFFERENCE_EXT = 1000148021,
859 VK_BLEND_OP_EXCLUSION_EXT = 1000148022,
860 VK_BLEND_OP_INVERT_EXT = 1000148023,
861 VK_BLEND_OP_INVERT_RGB_EXT = 1000148024,
862 VK_BLEND_OP_LINEARDODGE_EXT = 1000148025,
863 VK_BLEND_OP_LINEARBURN_EXT = 1000148026,
864 VK_BLEND_OP_VIVIDLIGHT_EXT = 1000148027,
865 VK_BLEND_OP_LINEARLIGHT_EXT = 1000148028,
866 VK_BLEND_OP_PINLIGHT_EXT = 1000148029,
867 VK_BLEND_OP_HARDMIX_EXT = 1000148030,
868 VK_BLEND_OP_HSL_HUE_EXT = 1000148031,
869 VK_BLEND_OP_HSL_SATURATION_EXT = 1000148032,
870 VK_BLEND_OP_HSL_COLOR_EXT = 1000148033,
871 VK_BLEND_OP_HSL_LUMINOSITY_EXT = 1000148034,
872 VK_BLEND_OP_PLUS_EXT = 1000148035,
873 VK_BLEND_OP_PLUS_CLAMPED_EXT = 1000148036,
874 VK_BLEND_OP_PLUS_CLAMPED_ALPHA_EXT = 1000148037,
875 VK_BLEND_OP_PLUS_DARKER_EXT = 1000148038,
876 VK_BLEND_OP_MINUS_EXT = 1000148039,
877 VK_BLEND_OP_MINUS_CLAMPED_EXT = 1000148040,
878 VK_BLEND_OP_CONTRAST_EXT = 1000148041,
879 VK_BLEND_OP_INVERT_OVG_EXT = 1000148042,
880 VK_BLEND_OP_RED_EXT = 1000148043,
881 VK_BLEND_OP_GREEN_EXT = 1000148044,
882 VK_BLEND_OP_BLUE_EXT = 1000148045,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700883}
884
885enum VkStencilOp {
886 VK_STENCIL_OP_KEEP = 0x00000000,
887 VK_STENCIL_OP_ZERO = 0x00000001,
888 VK_STENCIL_OP_REPLACE = 0x00000002,
Jesse Hall3fbc8562015-11-29 22:10:52 -0800889 VK_STENCIL_OP_INCREMENT_AND_CLAMP = 0x00000003,
890 VK_STENCIL_OP_DECREMENT_AND_CLAMP = 0x00000004,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700891 VK_STENCIL_OP_INVERT = 0x00000005,
Jesse Hall3fbc8562015-11-29 22:10:52 -0800892 VK_STENCIL_OP_INCREMENT_AND_WRAP = 0x00000006,
893 VK_STENCIL_OP_DECREMENT_AND_WRAP = 0x00000007,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700894}
895
896enum VkLogicOp {
897 VK_LOGIC_OP_CLEAR = 0x00000000,
898 VK_LOGIC_OP_AND = 0x00000001,
899 VK_LOGIC_OP_AND_REVERSE = 0x00000002,
900 VK_LOGIC_OP_COPY = 0x00000003,
901 VK_LOGIC_OP_AND_INVERTED = 0x00000004,
Jesse Hall3fbc8562015-11-29 22:10:52 -0800902 VK_LOGIC_OP_NO_OP = 0x00000005,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700903 VK_LOGIC_OP_XOR = 0x00000006,
904 VK_LOGIC_OP_OR = 0x00000007,
905 VK_LOGIC_OP_NOR = 0x00000008,
Jesse Hall3fbc8562015-11-29 22:10:52 -0800906 VK_LOGIC_OP_EQUIVALENT = 0x00000009,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700907 VK_LOGIC_OP_INVERT = 0x0000000a,
908 VK_LOGIC_OP_OR_REVERSE = 0x0000000b,
909 VK_LOGIC_OP_COPY_INVERTED = 0x0000000c,
910 VK_LOGIC_OP_OR_INVERTED = 0x0000000d,
911 VK_LOGIC_OP_NAND = 0x0000000e,
912 VK_LOGIC_OP_SET = 0x0000000f,
913}
914
Jesse Hall3fbc8562015-11-29 22:10:52 -0800915enum VkSystemAllocationScope {
Jesse Hall3e0dc8f2015-11-30 00:42:57 -0800916 VK_SYSTEM_ALLOCATION_SCOPE_COMMAND = 0x00000000,
Jesse Hall3fbc8562015-11-29 22:10:52 -0800917 VK_SYSTEM_ALLOCATION_SCOPE_OBJECT = 0x00000001,
918 VK_SYSTEM_ALLOCATION_SCOPE_CACHE = 0x00000002,
919 VK_SYSTEM_ALLOCATION_SCOPE_DEVICE = 0x00000003,
920 VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE = 0x00000004,
Jesse Hall03b6fe12015-11-24 12:44:21 -0800921}
922
Jesse Hall3fbc8562015-11-29 22:10:52 -0800923enum VkInternalAllocationType {
924 VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE = 0x00000000,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700925}
926
927enum VkPhysicalDeviceType {
928 VK_PHYSICAL_DEVICE_TYPE_OTHER = 0x00000000,
929 VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU = 0x00000001,
930 VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU = 0x00000002,
931 VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU = 0x00000003,
932 VK_PHYSICAL_DEVICE_TYPE_CPU = 0x00000004,
933}
934
Jesse Hall65ab5522015-11-30 00:07:16 -0800935enum VkVertexInputRate {
936 VK_VERTEX_INPUT_RATE_VERTEX = 0x00000000,
937 VK_VERTEX_INPUT_RATE_INSTANCE = 0x00000001,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700938}
939
940/// Vulkan format definitions
941enum VkFormat {
Jesse Hallf4ab2b12015-11-30 16:04:55 -0800942 VK_FORMAT_UNDEFINED = 0,
943 VK_FORMAT_R4G4_UNORM_PACK8 = 1,
944 VK_FORMAT_R4G4B4A4_UNORM_PACK16 = 2,
945 VK_FORMAT_B4G4R4A4_UNORM_PACK16 = 3,
946 VK_FORMAT_R5G6B5_UNORM_PACK16 = 4,
947 VK_FORMAT_B5G6R5_UNORM_PACK16 = 5,
948 VK_FORMAT_R5G5B5A1_UNORM_PACK16 = 6,
949 VK_FORMAT_B5G5R5A1_UNORM_PACK16 = 7,
950 VK_FORMAT_A1R5G5B5_UNORM_PACK16 = 8,
951 VK_FORMAT_R8_UNORM = 9,
952 VK_FORMAT_R8_SNORM = 10,
953 VK_FORMAT_R8_USCALED = 11,
954 VK_FORMAT_R8_SSCALED = 12,
955 VK_FORMAT_R8_UINT = 13,
956 VK_FORMAT_R8_SINT = 14,
957 VK_FORMAT_R8_SRGB = 15,
958 VK_FORMAT_R8G8_UNORM = 16,
959 VK_FORMAT_R8G8_SNORM = 17,
960 VK_FORMAT_R8G8_USCALED = 18,
961 VK_FORMAT_R8G8_SSCALED = 19,
962 VK_FORMAT_R8G8_UINT = 20,
963 VK_FORMAT_R8G8_SINT = 21,
964 VK_FORMAT_R8G8_SRGB = 22,
965 VK_FORMAT_R8G8B8_UNORM = 23,
966 VK_FORMAT_R8G8B8_SNORM = 24,
967 VK_FORMAT_R8G8B8_USCALED = 25,
968 VK_FORMAT_R8G8B8_SSCALED = 26,
969 VK_FORMAT_R8G8B8_UINT = 27,
970 VK_FORMAT_R8G8B8_SINT = 28,
971 VK_FORMAT_R8G8B8_SRGB = 29,
972 VK_FORMAT_B8G8R8_UNORM = 30,
973 VK_FORMAT_B8G8R8_SNORM = 31,
974 VK_FORMAT_B8G8R8_USCALED = 32,
975 VK_FORMAT_B8G8R8_SSCALED = 33,
976 VK_FORMAT_B8G8R8_UINT = 34,
977 VK_FORMAT_B8G8R8_SINT = 35,
978 VK_FORMAT_B8G8R8_SRGB = 36,
979 VK_FORMAT_R8G8B8A8_UNORM = 37,
980 VK_FORMAT_R8G8B8A8_SNORM = 38,
981 VK_FORMAT_R8G8B8A8_USCALED = 39,
982 VK_FORMAT_R8G8B8A8_SSCALED = 40,
983 VK_FORMAT_R8G8B8A8_UINT = 41,
984 VK_FORMAT_R8G8B8A8_SINT = 42,
985 VK_FORMAT_R8G8B8A8_SRGB = 43,
986 VK_FORMAT_B8G8R8A8_UNORM = 44,
987 VK_FORMAT_B8G8R8A8_SNORM = 45,
988 VK_FORMAT_B8G8R8A8_USCALED = 46,
989 VK_FORMAT_B8G8R8A8_SSCALED = 47,
990 VK_FORMAT_B8G8R8A8_UINT = 48,
991 VK_FORMAT_B8G8R8A8_SINT = 49,
992 VK_FORMAT_B8G8R8A8_SRGB = 50,
993 VK_FORMAT_A8B8G8R8_UNORM_PACK32 = 51,
994 VK_FORMAT_A8B8G8R8_SNORM_PACK32 = 52,
995 VK_FORMAT_A8B8G8R8_USCALED_PACK32 = 53,
996 VK_FORMAT_A8B8G8R8_SSCALED_PACK32 = 54,
997 VK_FORMAT_A8B8G8R8_UINT_PACK32 = 55,
998 VK_FORMAT_A8B8G8R8_SINT_PACK32 = 56,
999 VK_FORMAT_A8B8G8R8_SRGB_PACK32 = 57,
1000 VK_FORMAT_A2R10G10B10_UNORM_PACK32 = 58,
1001 VK_FORMAT_A2R10G10B10_SNORM_PACK32 = 59,
1002 VK_FORMAT_A2R10G10B10_USCALED_PACK32 = 60,
1003 VK_FORMAT_A2R10G10B10_SSCALED_PACK32 = 61,
1004 VK_FORMAT_A2R10G10B10_UINT_PACK32 = 62,
1005 VK_FORMAT_A2R10G10B10_SINT_PACK32 = 63,
1006 VK_FORMAT_A2B10G10R10_UNORM_PACK32 = 64,
1007 VK_FORMAT_A2B10G10R10_SNORM_PACK32 = 65,
1008 VK_FORMAT_A2B10G10R10_USCALED_PACK32 = 66,
1009 VK_FORMAT_A2B10G10R10_SSCALED_PACK32 = 67,
1010 VK_FORMAT_A2B10G10R10_UINT_PACK32 = 68,
1011 VK_FORMAT_A2B10G10R10_SINT_PACK32 = 69,
1012 VK_FORMAT_R16_UNORM = 70,
1013 VK_FORMAT_R16_SNORM = 71,
1014 VK_FORMAT_R16_USCALED = 72,
1015 VK_FORMAT_R16_SSCALED = 73,
1016 VK_FORMAT_R16_UINT = 74,
1017 VK_FORMAT_R16_SINT = 75,
1018 VK_FORMAT_R16_SFLOAT = 76,
1019 VK_FORMAT_R16G16_UNORM = 77,
1020 VK_FORMAT_R16G16_SNORM = 78,
1021 VK_FORMAT_R16G16_USCALED = 79,
1022 VK_FORMAT_R16G16_SSCALED = 80,
1023 VK_FORMAT_R16G16_UINT = 81,
1024 VK_FORMAT_R16G16_SINT = 82,
1025 VK_FORMAT_R16G16_SFLOAT = 83,
1026 VK_FORMAT_R16G16B16_UNORM = 84,
1027 VK_FORMAT_R16G16B16_SNORM = 85,
1028 VK_FORMAT_R16G16B16_USCALED = 86,
1029 VK_FORMAT_R16G16B16_SSCALED = 87,
1030 VK_FORMAT_R16G16B16_UINT = 88,
1031 VK_FORMAT_R16G16B16_SINT = 89,
1032 VK_FORMAT_R16G16B16_SFLOAT = 90,
1033 VK_FORMAT_R16G16B16A16_UNORM = 91,
1034 VK_FORMAT_R16G16B16A16_SNORM = 92,
1035 VK_FORMAT_R16G16B16A16_USCALED = 93,
1036 VK_FORMAT_R16G16B16A16_SSCALED = 94,
1037 VK_FORMAT_R16G16B16A16_UINT = 95,
1038 VK_FORMAT_R16G16B16A16_SINT = 96,
1039 VK_FORMAT_R16G16B16A16_SFLOAT = 97,
1040 VK_FORMAT_R32_UINT = 98,
1041 VK_FORMAT_R32_SINT = 99,
1042 VK_FORMAT_R32_SFLOAT = 100,
1043 VK_FORMAT_R32G32_UINT = 101,
1044 VK_FORMAT_R32G32_SINT = 102,
1045 VK_FORMAT_R32G32_SFLOAT = 103,
1046 VK_FORMAT_R32G32B32_UINT = 104,
1047 VK_FORMAT_R32G32B32_SINT = 105,
1048 VK_FORMAT_R32G32B32_SFLOAT = 106,
1049 VK_FORMAT_R32G32B32A32_UINT = 107,
1050 VK_FORMAT_R32G32B32A32_SINT = 108,
1051 VK_FORMAT_R32G32B32A32_SFLOAT = 109,
1052 VK_FORMAT_R64_UINT = 110,
1053 VK_FORMAT_R64_SINT = 111,
1054 VK_FORMAT_R64_SFLOAT = 112,
1055 VK_FORMAT_R64G64_UINT = 113,
1056 VK_FORMAT_R64G64_SINT = 114,
1057 VK_FORMAT_R64G64_SFLOAT = 115,
1058 VK_FORMAT_R64G64B64_UINT = 116,
1059 VK_FORMAT_R64G64B64_SINT = 117,
1060 VK_FORMAT_R64G64B64_SFLOAT = 118,
1061 VK_FORMAT_R64G64B64A64_UINT = 119,
1062 VK_FORMAT_R64G64B64A64_SINT = 120,
1063 VK_FORMAT_R64G64B64A64_SFLOAT = 121,
1064 VK_FORMAT_B10G11R11_UFLOAT_PACK32 = 122,
1065 VK_FORMAT_E5B9G9R9_UFLOAT_PACK32 = 123,
1066 VK_FORMAT_D16_UNORM = 124,
1067 VK_FORMAT_X8_D24_UNORM_PACK32 = 125,
1068 VK_FORMAT_D32_SFLOAT = 126,
1069 VK_FORMAT_S8_UINT = 127,
1070 VK_FORMAT_D16_UNORM_S8_UINT = 128,
1071 VK_FORMAT_D24_UNORM_S8_UINT = 129,
1072 VK_FORMAT_D32_SFLOAT_S8_UINT = 130,
1073 VK_FORMAT_BC1_RGB_UNORM_BLOCK = 131,
1074 VK_FORMAT_BC1_RGB_SRGB_BLOCK = 132,
1075 VK_FORMAT_BC1_RGBA_UNORM_BLOCK = 133,
1076 VK_FORMAT_BC1_RGBA_SRGB_BLOCK = 134,
1077 VK_FORMAT_BC2_UNORM_BLOCK = 135,
1078 VK_FORMAT_BC2_SRGB_BLOCK = 136,
1079 VK_FORMAT_BC3_UNORM_BLOCK = 137,
1080 VK_FORMAT_BC3_SRGB_BLOCK = 138,
1081 VK_FORMAT_BC4_UNORM_BLOCK = 139,
1082 VK_FORMAT_BC4_SNORM_BLOCK = 140,
1083 VK_FORMAT_BC5_UNORM_BLOCK = 141,
1084 VK_FORMAT_BC5_SNORM_BLOCK = 142,
1085 VK_FORMAT_BC6H_UFLOAT_BLOCK = 143,
1086 VK_FORMAT_BC6H_SFLOAT_BLOCK = 144,
1087 VK_FORMAT_BC7_UNORM_BLOCK = 145,
1088 VK_FORMAT_BC7_SRGB_BLOCK = 146,
1089 VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK = 147,
1090 VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK = 148,
1091 VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK = 149,
1092 VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK = 150,
1093 VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK = 151,
1094 VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK = 152,
1095 VK_FORMAT_EAC_R11_UNORM_BLOCK = 153,
1096 VK_FORMAT_EAC_R11_SNORM_BLOCK = 154,
1097 VK_FORMAT_EAC_R11G11_UNORM_BLOCK = 155,
1098 VK_FORMAT_EAC_R11G11_SNORM_BLOCK = 156,
1099 VK_FORMAT_ASTC_4x4_UNORM_BLOCK = 157,
1100 VK_FORMAT_ASTC_4x4_SRGB_BLOCK = 158,
1101 VK_FORMAT_ASTC_5x4_UNORM_BLOCK = 159,
1102 VK_FORMAT_ASTC_5x4_SRGB_BLOCK = 160,
1103 VK_FORMAT_ASTC_5x5_UNORM_BLOCK = 161,
1104 VK_FORMAT_ASTC_5x5_SRGB_BLOCK = 162,
1105 VK_FORMAT_ASTC_6x5_UNORM_BLOCK = 163,
1106 VK_FORMAT_ASTC_6x5_SRGB_BLOCK = 164,
1107 VK_FORMAT_ASTC_6x6_UNORM_BLOCK = 165,
1108 VK_FORMAT_ASTC_6x6_SRGB_BLOCK = 166,
1109 VK_FORMAT_ASTC_8x5_UNORM_BLOCK = 167,
1110 VK_FORMAT_ASTC_8x5_SRGB_BLOCK = 168,
1111 VK_FORMAT_ASTC_8x6_UNORM_BLOCK = 169,
1112 VK_FORMAT_ASTC_8x6_SRGB_BLOCK = 170,
1113 VK_FORMAT_ASTC_8x8_UNORM_BLOCK = 171,
1114 VK_FORMAT_ASTC_8x8_SRGB_BLOCK = 172,
1115 VK_FORMAT_ASTC_10x5_UNORM_BLOCK = 173,
1116 VK_FORMAT_ASTC_10x5_SRGB_BLOCK = 174,
1117 VK_FORMAT_ASTC_10x6_UNORM_BLOCK = 175,
1118 VK_FORMAT_ASTC_10x6_SRGB_BLOCK = 176,
1119 VK_FORMAT_ASTC_10x8_UNORM_BLOCK = 177,
1120 VK_FORMAT_ASTC_10x8_SRGB_BLOCK = 178,
1121 VK_FORMAT_ASTC_10x10_UNORM_BLOCK = 179,
1122 VK_FORMAT_ASTC_10x10_SRGB_BLOCK = 180,
1123 VK_FORMAT_ASTC_12x10_UNORM_BLOCK = 181,
1124 VK_FORMAT_ASTC_12x10_SRGB_BLOCK = 182,
1125 VK_FORMAT_ASTC_12x12_UNORM_BLOCK = 183,
1126 VK_FORMAT_ASTC_12x12_SRGB_BLOCK = 184,
Chris Forbes289cb792016-12-30 15:03:55 +13001127
Ian Elliott28bd2c32017-10-13 09:21:12 -06001128 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04001129 VK_FORMAT_G8B8G8R8_422_UNORM = 1000156000,
1130 VK_FORMAT_B8G8R8G8_422_UNORM = 1000156001,
1131 VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM = 1000156002,
1132 VK_FORMAT_G8_B8R8_2PLANE_420_UNORM = 1000156003,
1133 VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM = 1000156004,
1134 VK_FORMAT_G8_B8R8_2PLANE_422_UNORM = 1000156005,
1135 VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM = 1000156006,
1136 VK_FORMAT_R10X6_UNORM_PACK16 = 1000156007,
1137 VK_FORMAT_R10X6G10X6_UNORM_2PACK16 = 1000156008,
1138 VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16 = 1000156009,
1139 VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16 = 1000156010,
1140 VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16 = 1000156011,
1141 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16 = 1000156012,
1142 VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16 = 1000156013,
1143 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16 = 1000156014,
1144 VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16 = 1000156015,
1145 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16 = 1000156016,
1146 VK_FORMAT_R12X4_UNORM_PACK16 = 1000156017,
1147 VK_FORMAT_R12X4G12X4_UNORM_2PACK16 = 1000156018,
1148 VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16 = 1000156019,
1149 VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16 = 1000156020,
1150 VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16 = 1000156021,
1151 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16 = 1000156022,
1152 VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16 = 1000156023,
1153 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16 = 1000156024,
1154 VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16 = 1000156025,
1155 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16 = 1000156026,
1156 VK_FORMAT_G16B16G16R16_422_UNORM = 1000156027,
1157 VK_FORMAT_B16G16R16G16_422_UNORM = 1000156028,
1158 VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM = 1000156029,
1159 VK_FORMAT_G16_B16R16_2PLANE_420_UNORM = 1000156030,
1160 VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM = 1000156031,
1161 VK_FORMAT_G16_B16R16_2PLANE_422_UNORM = 1000156032,
1162 VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM = 1000156033,
1163
Jesse Hallad250842017-03-10 18:35:38 -08001164 //@extension("VK_IMG_format_pvrtc") // 28
Jesse Halleb02c472017-02-24 15:13:45 -08001165 VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG = 1000054000,
1166 VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG = 1000054001,
1167 VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG = 1000054002,
1168 VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG = 1000054003,
1169 VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG = 1000054004,
1170 VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG = 1000054005,
1171 VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG = 1000054006,
1172 VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG = 1000054007,
Jesse Hall076f95d2017-09-20 11:34:47 -07001173
1174 //@extension("VK_KHR_sampler_ycbcr_conversion") // 157
1175 VK_FORMAT_G8B8G8R8_422_UNORM_KHR = 1000156000,
1176 VK_FORMAT_B8G8R8G8_422_UNORM_KHR = 1000156001,
1177 VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM_KHR = 1000156002,
1178 VK_FORMAT_G8_B8R8_2PLANE_420_UNORM_KHR = 1000156003,
1179 VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM_KHR = 1000156004,
1180 VK_FORMAT_G8_B8R8_2PLANE_422_UNORM_KHR = 1000156005,
1181 VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM_KHR = 1000156006,
1182 VK_FORMAT_R10X6_UNORM_PACK16_KHR = 1000156007,
1183 VK_FORMAT_R10X6G10X6_UNORM_2PACK16_KHR = 1000156008,
1184 VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16_KHR = 1000156009,
1185 VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16_KHR = 1000156010,
1186 VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16_KHR = 1000156011,
1187 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16_KHR = 1000156012,
1188 VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16_KHR = 1000156013,
1189 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16_KHR = 1000156014,
1190 VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16_KHR = 1000156015,
1191 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16_KHR = 1000156016,
1192 VK_FORMAT_R12X4_UNORM_PACK16_KHR = 1000156017,
1193 VK_FORMAT_R12X4G12X4_UNORM_2PACK16_KHR = 1000156018,
1194 VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16_KHR = 1000156019,
1195 VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16_KHR = 1000156020,
1196 VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16_KHR = 1000156021,
1197 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16_KHR = 1000156022,
1198 VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16_KHR = 1000156023,
1199 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16_KHR = 1000156024,
1200 VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16_KHR = 1000156025,
1201 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16_KHR = 1000156026,
1202 VK_FORMAT_G16B16G16R16_422_UNORM_KHR = 1000156027,
1203 VK_FORMAT_B16G16R16G16_422_UNORM_KHR = 1000156028,
1204 VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM_KHR = 1000156029,
1205 VK_FORMAT_G16_B16R16_2PLANE_420_UNORM_KHR = 1000156030,
1206 VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM_KHR = 1000156031,
1207 VK_FORMAT_G16_B16R16_2PLANE_422_UNORM_KHR = 1000156032,
1208 VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM_KHR = 1000156033,
Jesse Halld27f6aa2015-08-15 17:58:48 -07001209}
1210
Jesse Halld27f6aa2015-08-15 17:58:48 -07001211/// Structure type enumerant
1212enum VkStructureType {
1213 VK_STRUCTURE_TYPE_APPLICATION_INFO = 0,
Jesse Hallc7467b72015-11-29 21:05:26 -08001214 VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO = 1,
1215 VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO = 2,
1216 VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO = 3,
1217 VK_STRUCTURE_TYPE_SUBMIT_INFO = 4,
Jesse Hallf4ab2b12015-11-30 16:04:55 -08001218 VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO = 5,
Jesse Hallc7467b72015-11-29 21:05:26 -08001219 VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE = 6,
1220 VK_STRUCTURE_TYPE_BIND_SPARSE_INFO = 7,
1221 VK_STRUCTURE_TYPE_FENCE_CREATE_INFO = 8,
1222 VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO = 9,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07001223 VK_STRUCTURE_TYPE_EVENT_CREATE_INFO = 10,
Jesse Hallc7467b72015-11-29 21:05:26 -08001224 VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO = 11,
1225 VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO = 12,
1226 VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO = 13,
1227 VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO = 14,
1228 VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO = 15,
1229 VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO = 16,
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08001230 VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO = 17,
1231 VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO = 18,
1232 VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO = 19,
1233 VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO = 20,
1234 VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO = 21,
1235 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO = 22,
1236 VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO = 23,
1237 VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO = 24,
1238 VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO = 25,
1239 VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO = 26,
1240 VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO = 27,
1241 VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO = 28,
1242 VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO = 29,
1243 VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO = 30,
1244 VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO = 31,
1245 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO = 32,
1246 VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO = 33,
Jesse Hallf4ab2b12015-11-30 16:04:55 -08001247 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO = 34,
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08001248 VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET = 35,
1249 VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET = 36,
1250 VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO = 37,
1251 VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO = 38,
1252 VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO = 39,
Jesse Hallf4ab2b12015-11-30 16:04:55 -08001253 VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO = 40,
Jesse Hall3dd678a2016-01-08 21:52:01 -08001254 VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO = 41,
1255 VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO = 42,
1256 VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO = 43,
1257 VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER = 44,
1258 VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER = 45,
1259 VK_STRUCTURE_TYPE_MEMORY_BARRIER = 46,
1260 VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO = 47,
1261 VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO = 48,
Jesse Hall1356b0d2015-11-23 17:24:58 -08001262
Ian Elliott28bd2c32017-10-13 09:21:12 -06001263 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04001264 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES = 1000094000,
1265 VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO = 1000157000,
1266 VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO = 1000157001,
1267 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES = 1000083000,
1268 VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS = 1000127000,
1269 VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO = 1000127001,
1270 VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO = 1000060000,
1271 VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO = 1000060003,
1272 VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO = 1000060004,
1273 VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO = 1000060005,
1274 VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO = 1000060006,
1275 VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO = 1000060013,
1276 VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO = 1000060014,
1277 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES = 1000070000,
1278 VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO = 1000070001,
1279 VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2 = 1000146000,
1280 VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2 = 1000146001,
1281 VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2 = 1000146002,
1282 VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2 = 1000146003,
1283 VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2 = 1000146004,
1284 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2 = 1000059000,
1285 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2 = 1000059001,
1286 VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2 = 1000059002,
1287 VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2 = 1000059003,
1288 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2 = 1000059004,
1289 VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2 = 1000059005,
1290 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2 = 1000059006,
1291 VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2 = 1000059007,
1292 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2 = 1000059008,
1293 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES = 1000117000,
1294 VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO = 1000117001,
1295 VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO = 1000117002,
1296 VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO = 1000117003,
1297 VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO = 1000053000,
1298 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES = 1000053001,
1299 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES = 1000053002,
1300 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES = 1000120000,
1301 VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO = 1000145000,
1302 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES = 1000145001,
1303 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES = 1000145002,
1304 VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2 = 1000145003,
1305 VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO = 1000156000,
1306 VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO = 1000156001,
1307 VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO = 1000156002,
1308 VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO = 1000156003,
1309 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES = 1000156004,
1310 VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES = 1000156005,
1311 VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO = 1000085000,
1312 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO = 1000071000,
1313 VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES = 1000071001,
1314 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO = 1000071002,
1315 VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES = 1000071003,
1316 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES = 1000071004,
1317 VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO = 1000072000,
1318 VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO = 1000072001,
1319 VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO = 1000072002,
1320 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO = 1000112000,
1321 VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES = 1000112001,
1322 VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO = 1000113000,
1323 VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO = 1000077000,
1324 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO = 1000076000,
1325 VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES = 1000076001,
1326 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES = 1000168000,
1327 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT = 1000168001,
1328 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES = 1000063000,
1329 VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR = 1000060007,
1330
Jesse Hallad250842017-03-10 18:35:38 -08001331 //@extension("VK_KHR_swapchain") // 2
Jesse Hallbd888842015-11-30 21:44:14 -08001332 VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR = 1000001000,
1333 VK_STRUCTURE_TYPE_PRESENT_INFO_KHR = 1000001001,
Daniel Koch09f7bf92017-10-05 00:26:58 -04001334 // added as interaction from VK_KHR_device_group / VK 1.1
1335 VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR = 1000060008,
1336 VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR = 1000060009,
1337 VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR = 1000060010,
1338 VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR = 1000060011,
1339 VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR = 1000060012,
Jesse Hall1356b0d2015-11-23 17:24:58 -08001340
Jesse Hallad250842017-03-10 18:35:38 -08001341 //@extension("VK_KHR_display") // 3
Jesse Hallbd888842015-11-30 21:44:14 -08001342 VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR = 1000002000,
1343 VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR = 1000002001,
Jesse Hall1356b0d2015-11-23 17:24:58 -08001344
Jesse Hallad250842017-03-10 18:35:38 -08001345 //@extension("VK_KHR_display_swapchain") // 4
Jesse Hallbd888842015-11-30 21:44:14 -08001346 VK_STRUCTURE_TYPE_DISPLAY_DISPLAY_PRESENT_INFO_KHR = 1000003000,
Jesse Hallf9fa9a52016-01-08 16:08:51 -08001347
Jesse Hallad250842017-03-10 18:35:38 -08001348 //@extension("VK_KHR_xlib_surface") // 5
Jesse Hallf9fa9a52016-01-08 16:08:51 -08001349 VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR = 1000004000,
1350
Jesse Hallad250842017-03-10 18:35:38 -08001351 //@extension("VK_KHR_xcb_surface") // 6
Jesse Hallf9fa9a52016-01-08 16:08:51 -08001352 VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR = 1000005000,
1353
Jesse Hallad250842017-03-10 18:35:38 -08001354 //@extension("VK_KHR_wayland_surface") // 7
Jesse Hallf9fa9a52016-01-08 16:08:51 -08001355 VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR = 1000006000,
1356
Jesse Hallad250842017-03-10 18:35:38 -08001357 //@extension("VK_KHR_mir_surface") // 8
Jesse Hallf9fa9a52016-01-08 16:08:51 -08001358 VK_STRUCTURE_TYPE_MIR_SURFACE_CREATE_INFO_KHR = 1000007000,
1359
Jesse Hallad250842017-03-10 18:35:38 -08001360 //@extension("VK_KHR_android_surface") // 9
Jesse Hallf9fa9a52016-01-08 16:08:51 -08001361 VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR = 1000008000,
1362
Jesse Hallad250842017-03-10 18:35:38 -08001363 //@extension("VK_KHR_win32_surface") // 10
Jesse Hallf9fa9a52016-01-08 16:08:51 -08001364 VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR = 1000009000,
Jesse Hall543a7ff2016-01-08 16:38:30 -08001365
Jesse Hallad250842017-03-10 18:35:38 -08001366 //@extension("VK_ANDROID_native_buffer") // 11
Chia-I Wub262ddc2016-03-22 07:38:20 +08001367 VK_STRUCTURE_TYPE_NATIVE_BUFFER_ANDROID = 1000010000,
Chris Forbes8e4438b2016-12-07 16:26:49 +13001368 VK_STRUCTURE_TYPE_SWAPCHAIN_IMAGE_CREATE_INFO_ANDROID = 1000010001,
Chris Forbes1d4e5542017-02-15 19:38:50 +13001369 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENTATION_PROPERTIES_ANDROID = 1000010002,
Chia-I Wub262ddc2016-03-22 07:38:20 +08001370
Jesse Hallad250842017-03-10 18:35:38 -08001371 //@extension("VK_EXT_debug_report") // 12
Jesse Hall26763382016-05-20 07:13:52 -07001372 VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT = 1000011000,
1373
Jesse Hallad250842017-03-10 18:35:38 -08001374 //@extension("VK_AMD_rasterization_order") // 19
Jesse Hall26763382016-05-20 07:13:52 -07001375 VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD = 1000018000,
1376
Jesse Hallad250842017-03-10 18:35:38 -08001377 //@extension("VK_EXT_debug_marker") // 23
Jesse Hall26763382016-05-20 07:13:52 -07001378 VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT = 1000022000,
Jesse Hall26763382016-05-20 07:13:52 -07001379 VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT = 1000022001,
Jesse Hall26763382016-05-20 07:13:52 -07001380 VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT = 1000022002,
Jesse Hall56d386a2016-07-26 15:20:40 -07001381
Jesse Hallad250842017-03-10 18:35:38 -08001382 //@extension("VK_NV_dedicated_allocation") // 27
Jesse Hall56d386a2016-07-26 15:20:40 -07001383 VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV = 1000026000,
Jesse Hall56d386a2016-07-26 15:20:40 -07001384 VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV = 1000026001,
Jesse Hall56d386a2016-07-26 15:20:40 -07001385 VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV = 1000026002,
Chris Forbes289cb792016-12-30 15:03:55 +13001386
Jesse Hall7ba0ac72017-07-07 17:13:23 -07001387 //@extension("VK_AMD_texture_gather_bias_lod") // 42
1388 VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD = 1000041000,
1389
Daniel Koch09f7bf92017-10-05 00:26:58 -04001390 //@extension("VK_KHR_multiview") // 54
1391 VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO_KHR = 1000053000,
1392 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES_KHR = 1000053001,
1393 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES_KHR = 1000053002,
Jesse Hallad250842017-03-10 18:35:38 -08001394
1395 //@extension("VK_NV_external_memory") // 57
Jesse Halleb02c472017-02-24 15:13:45 -08001396 VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV = 1000056000,
1397 VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV = 1000056001,
Chris Forbes289cb792016-12-30 15:03:55 +13001398
Jesse Hallad250842017-03-10 18:35:38 -08001399 //@extension("VK_NV_external_memory_win32") // 58
Jesse Halleb02c472017-02-24 15:13:45 -08001400 VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV = 1000057000,
1401 VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV = 1000057001,
Chris Forbes289cb792016-12-30 15:03:55 +13001402
Jesse Hallad250842017-03-10 18:35:38 -08001403 //@extension("VK_NV_win32_keyed_mutex") // 59
Chris Forbes289cb792016-12-30 15:03:55 +13001404 VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV = 1000058000,
1405
Jesse Hallad250842017-03-10 18:35:38 -08001406 //@extension("VK_KHR_get_physical_device_properties2") // 60
Jesse Hall889cd9a2017-02-25 22:12:23 -08001407 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2_KHR = 1000059000,
1408 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2_KHR = 1000059001,
1409 VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2_KHR = 1000059002,
1410 VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2_KHR = 1000059003,
1411 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2_KHR = 1000059004,
1412 VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2_KHR = 1000059005,
1413 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2_KHR = 1000059006,
1414 VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2_KHR = 1000059007,
Chris Forbes1194ede2016-12-30 16:29:25 +13001415 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2_KHR = 1000059008,
1416
Daniel Koch09f7bf92017-10-05 00:26:58 -04001417 //@extension("VK_KHR_device_group") // 61
1418 VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO_KHR = 1000060000,
1419 VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO_KHR = 1000060003,
1420 VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO_KHR = 1000060004,
1421 VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO_KHR = 1000060005,
1422 VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO_KHR = 1000060006,
1423 VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR = 1000060007,
1424 // tokens 08-12 are listed with VK_KHR_swapchain
1425 VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO_KHR = 1000060013,
1426 VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO_KHR = 1000060014,
Jesse Hallad250842017-03-10 18:35:38 -08001427
1428 //@extension("VK_EXT_validation_flags") // 62
Jesse Halleb02c472017-02-24 15:13:45 -08001429 VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT = 1000061000,
Chris Forbes289cb792016-12-30 15:03:55 +13001430
Jesse Hallad250842017-03-10 18:35:38 -08001431 //@extension("VK_NN_vi_surface") // 63
Jesse Hall77ad05b2017-03-10 22:02:20 -08001432 VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN = 1000062000,
1433
Jesse Hall4af6c462018-09-10 09:04:25 -07001434 //@extension("VK_EXT_astc_decode_mode") // 68
1435 VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT = 1000067000,
1436 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT = 1000067001,
1437
Daniel Koch09f7bf92017-10-05 00:26:58 -04001438 //@extension("VK_KHR_device_group_creation") // 71
1439 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES_KHR = 1000070000,
1440 VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO_KHR = 1000070001,
Jesse Hallad250842017-03-10 18:35:38 -08001441
Jesse Hall9492f992017-08-28 12:10:06 -07001442 //@extension("VK_KHR_external_memory_capabilities") // 72
1443 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO_KHR = 1000071000,
1444 VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES_KHR = 1000071001,
1445 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO_KHR = 1000071002,
1446 VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES_KHR = 1000071003,
1447 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES_KHR = 1000071004,
Jesse Hallad250842017-03-10 18:35:38 -08001448
Jesse Hall9492f992017-08-28 12:10:06 -07001449 //@extension("VK_KHR_external_memory") // 73
1450 VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO_KHR = 1000072000,
1451 VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_KHR = 1000072001,
1452 VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_KHR = 1000072002,
Jesse Hallad250842017-03-10 18:35:38 -08001453
Jesse Hall9492f992017-08-28 12:10:06 -07001454 //@extension("VK_KHR_external_memory_win32") // 74
1455 VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR = 1000073000,
1456 VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR = 1000073001,
1457 VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR = 1000073002,
Jesse Hallad250842017-03-10 18:35:38 -08001458
Jesse Hall9492f992017-08-28 12:10:06 -07001459 //@extension("VK_KHR_external_memory_fd") // 75
1460 VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR = 1000074000,
1461 VK_STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR = 1000074001,
Jesse Hallad250842017-03-10 18:35:38 -08001462
Jesse Hall9492f992017-08-28 12:10:06 -07001463 //@extension("VK_KHR_win32_keyed_mutex") // 76
1464 VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR = 1000075000,
Jesse Hallad250842017-03-10 18:35:38 -08001465
Jesse Hall9492f992017-08-28 12:10:06 -07001466 //@extension("VK_KHR_external_semaphore_capabilities") // 77
1467 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO_KHR = 1000076000,
1468 VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES_KHR = 1000076001,
Jesse Hallad250842017-03-10 18:35:38 -08001469
Jesse Hall9492f992017-08-28 12:10:06 -07001470 //@extension("VK_KHR_external_semaphore") // 78
1471 VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO_KHR = 1000077000,
Jesse Hallad250842017-03-10 18:35:38 -08001472
Jesse Hall9492f992017-08-28 12:10:06 -07001473 //@extension("VK_KHR_external_semaphore_win32") // 79
1474 VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR = 1000078000,
1475 VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR = 1000078001,
1476 VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR = 1000078002,
Jesse Hallad250842017-03-10 18:35:38 -08001477
Jesse Hall9492f992017-08-28 12:10:06 -07001478 //@extension("VK_KHR_external_semaphore_fd") // 80
1479 VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR = 1000079000,
1480 VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR = 1000079001,
Jesse Hallad250842017-03-10 18:35:38 -08001481
1482 //@extension("VK_KHR_push_descriptor") // 81
1483 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR = 1000080000,
1484
Jesse Hall9492f992017-08-28 12:10:06 -07001485 //@extension("VK_KHR_16bit_storage") // 84
1486 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES_KHR = 1000083000,
1487
Jesse Hallad250842017-03-10 18:35:38 -08001488 //@extension("VK_KHR_incremental_present") // 85
Jesse Hall889cd9a2017-02-25 22:12:23 -08001489 VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR = 1000084000,
Chris Forbes289cb792016-12-30 15:03:55 +13001490
Jesse Halla13a3cf2018-07-09 15:51:52 -07001491 //@extension("VK_EXT_conditional_rendering") // 82
1492 VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT = 1000081000,
1493 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT = 1000081001,
1494 VK_STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT = 1000081002,
1495
Jesse Hallad250842017-03-10 18:35:38 -08001496 //@extension("VK_KHR_descriptor_update_template") // 86
1497 VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO_KHR = 1000085000,
1498
1499 //@extension("VK_NVX_device_generated_commands") // 87
Jesse Halleb02c472017-02-24 15:13:45 -08001500 VK_STRUCTURE_TYPE_OBJECT_TABLE_CREATE_INFO_NVX = 1000086000,
1501 VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NVX = 1000086001,
1502 VK_STRUCTURE_TYPE_CMD_PROCESS_COMMANDS_INFO_NVX = 1000086002,
1503 VK_STRUCTURE_TYPE_CMD_RESERVE_SPACE_FOR_COMMANDS_INFO_NVX = 1000086003,
1504 VK_STRUCTURE_TYPE_DEVICE_GENERATED_COMMANDS_LIMITS_NVX = 1000086004,
1505 VK_STRUCTURE_TYPE_DEVICE_GENERATED_COMMANDS_FEATURES_NVX = 1000086005,
Jesse Hall77ad05b2017-03-10 22:02:20 -08001506
Jesse Hallad250842017-03-10 18:35:38 -08001507 //@extension("VK_NV_clip_space_w_scaling") // 88
1508 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV = 1000087000,
1509
1510 //@extension("VK_EXT_display_surface_counter") // 91
Jesse Hall77726222017-09-19 14:49:27 -05001511 VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT = 1000090000,
Jesse Hall77ad05b2017-03-10 22:02:20 -08001512
Jesse Hallad250842017-03-10 18:35:38 -08001513 //@extension("VK_EXT_display_control") // 92
Jesse Hall77ad05b2017-03-10 22:02:20 -08001514 VK_STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT = 1000091000,
1515 VK_STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT = 1000091001,
1516 VK_STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT = 1000091002,
1517 VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT = 1000091003,
Jesse Hallad250842017-03-10 18:35:38 -08001518
1519 //@extension("VK_GOOGLE_display_timing") // 93
1520 VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE = 1000092000,
1521
1522 //@extension("VK_NVX_multiview_per_view_attributes") // 98
1523 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX = 1000097000,
1524
1525 //@extension("VK_NV_viewport_swizzle") // 99
1526 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV = 1000098000,
1527
1528 //@extension("VK_EXT_discard_rectangles") // 100
1529 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT = 1000099000,
1530 VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT = 1000099001,
1531
Jesse Hall8c954d32018-01-17 22:06:20 -08001532 //@extension("VK_EXT_conservative_rasterization") // 102
1533 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT = 1000101000,
1534 VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT = 1000101001,
1535
Jesse Halla13a3cf2018-07-09 15:51:52 -07001536 //@extension("VK_KHR_create_renderpass2") // 110
1537 VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2_KHR = 1000109000,
1538 VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2_KHR = 1000109001,
1539 VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2_KHR = 1000109002,
1540 VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2_KHR = 1000109003,
1541 VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2_KHR = 1000109004,
1542 VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO_KHR = 1000109005,
1543 VK_STRUCTURE_TYPE_SUBPASS_END_INFO_KHR = 1000109006,
1544
Jesse Hallfdc8ab32017-03-10 21:01:57 -08001545 //@extension("VK_EXT_hdr_metadata") // 106
1546 VK_STRUCTURE_TYPE_HDR_METADATA_EXT = 1000105000,
1547
Jesse Hall05556b12017-05-18 17:40:25 -07001548 //@extension("VK_KHR_shared_presentable_image") // 112
Chris Forbese2d3ee12017-03-16 16:10:15 +13001549 VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR = 1000111000,
1550
Jesse Hall9492f992017-08-28 12:10:06 -07001551 //@extension("VK_KHR_external_fence_capabilities") // 113
1552 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO_KHR = 1000112000,
1553 VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES_KHR = 1000112001,
1554
1555 //@extension("VK_KHR_external_fence") // 114
1556 VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO_KHR = 1000113000,
1557
1558 //@extension("VK_KHR_external_fence_win32") // 115
1559 VK_STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR = 1000114000,
1560 VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR = 1000114001,
1561 VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR = 1000114002,
1562
1563 //@extension("VK_KHR_external_fence_fd") // 117
1564 VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR = 1000115000,
1565 VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR = 1000115001,
1566
Jesse Hall076f95d2017-09-20 11:34:47 -07001567 //@extension("VK_KHR_maintenance2") // 118
1568 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES_KHR = 1000117000,
1569 VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO_KHR = 1000117001,
1570 VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO_KHR = 1000117002,
1571 VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO_KHR = 1000117003,
1572
Jesse Hall05556b12017-05-18 17:40:25 -07001573 //@extension("VK_KHR_get_surface_capabilities2") // 120
Chris Forbese2d3ee12017-03-16 16:10:15 +13001574 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR = 1000119000,
1575 VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR = 1000119001,
1576 VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR = 1000119002,
1577
Jesse Hall9492f992017-08-28 12:10:06 -07001578 //@extension("VK_KHR_variable_pointers") // 121
1579 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES_KHR = 1000120000,
1580
Jesse Hall54f8d132018-04-18 08:16:59 -07001581 //@extension("VK_KHR_display_properties2") // 122
1582 VK_STRUCTURE_TYPE_DISPLAY_PROPERTIES_2_KHR = 1000121000,
1583 VK_STRUCTURE_TYPE_DISPLAY_PLANE_PROPERTIES_2_KHR = 1000121001,
1584 VK_STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR = 1000121002,
1585 VK_STRUCTURE_TYPE_DISPLAY_PLANE_INFO_2_KHR = 1000121003,
1586 VK_STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR = 1000121004,
1587
Jesse Hallad250842017-03-10 18:35:38 -08001588 //@extension("VK_MVK_ios_surface") // 123
1589 VK_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK = 1000122000,
1590
1591 //@extension("VK_MVK_macos_surface") // 124
1592 VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK = 1000123000,
Jesse Hall7ba0ac72017-07-07 17:13:23 -07001593
Jesse Hall9492f992017-08-28 12:10:06 -07001594 //@extension("VK_KHR_dedicated_allocation") // 128
1595 VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS_KHR = 1000127000,
1596 VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO_KHR = 1000127001,
1597
Jesse Hall8c954d32018-01-17 22:06:20 -08001598 //@extension("VK_EXT_debug_utils") // 129
1599 VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT = 1000128000,
1600 VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT = 1000128001,
1601 VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT = 1000128002,
1602 VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT = 1000128003,
1603 VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT = 1000128004,
1604
Jesse Hall36215a92018-01-18 15:04:37 -08001605 //@extension("VK_ANDROID_external_memory_android_hardware_buffer") // 130
1606 VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID = 1000129000,
1607 VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID = 1000129001,
1608 VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID = 1000129002,
1609 VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID = 1000129003,
1610 VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID = 1000129004,
1611 VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID = 1000129005,
1612
Jesse Hall7ba0ac72017-07-07 17:13:23 -07001613 //@extension("VK_EXT_sampler_filter_minmax") // 131
1614 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES_EXT = 1000130000,
1615 VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO_EXT = 1000130001,
1616
Jesse Hall4af6c462018-09-10 09:04:25 -07001617 //@extension("VK_EXT_inline_uniform_block") // 139
1618 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT = 1000138000,
1619 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES_EXT = 1000138001,
1620 VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK_EXT = 1000138002,
1621 VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO_EXT = 1000138003,
1622
Jesse Hall77726222017-09-19 14:49:27 -05001623 //@extension("VK_EXT_sample_locations") // 144
1624 VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT = 1000143000,
1625 VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT = 1000143001,
1626 VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT = 1000143002,
1627 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT = 1000143003,
1628 VK_STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT = 1000143004,
1629
Jesse Hall9492f992017-08-28 12:10:06 -07001630 //@extension("VK_KHR_get_memory_requirements2") // 147
1631 VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2_KHR = 1000146000,
1632 VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2_KHR = 1000146001,
1633 VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2_KHR = 1000146002,
1634 VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2_KHR = 1000146003,
1635 VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2_KHR = 1000146004,
1636
Jesse Hall076f95d2017-09-20 11:34:47 -07001637 //@extension("VK_KHR_image_format_list") // 148
1638 VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO_KHR = 1000147000,
1639
Jesse Hall7ba0ac72017-07-07 17:13:23 -07001640 //@extension("VK_EXT_blend_operation_advanced") // 149
1641 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT = 1000148000,
1642 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT = 1000148001,
1643 VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT = 1000148002,
1644
1645 //@extension("VK_NV_fragment_coverage_to_color") // 150
1646 VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV = 1000149000,
1647
Jesse Hall77726222017-09-19 14:49:27 -05001648 //@extension("VK_NV_framebuffer_mixed_samples") // 153
Jesse Hall7ba0ac72017-07-07 17:13:23 -07001649 VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV = 1000152000,
Jesse Hall77726222017-09-19 14:49:27 -05001650
Jesse Hall076f95d2017-09-20 11:34:47 -07001651 //@extension("VK_KHR_sampler_ycbcr_conversion") // 157
1652 VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO_KHR = 1000156000,
1653 VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO_KHR = 1000156001,
1654 VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO_KHR = 1000156002,
1655 VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO_KHR = 1000156003,
1656 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES_KHR = 1000156004,
1657 VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES_KHR = 1000156005,
1658
1659 //@extension("VK_KHR_bind_memory2") // 158
1660 VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO_KHR = 1000157000,
1661 VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO_KHR = 1000157001,
1662
Jesse Hall77726222017-09-19 14:49:27 -05001663 //@extension("VK_EXT_validation_cache") // 161
1664 VK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT = 1000160000,
1665 VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT = 1000160001,
Daniel Koch09f7bf92017-10-05 00:26:58 -04001666
Jesse Hall72e6a132018-04-06 13:00:44 -07001667 //@extension("VK_EXT_descriptor_indexing") // 162
1668 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO_EXT = 1000161000,
1669 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES_EXT = 1000161001,
1670 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES_EXT = 1000161002,
1671 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO_EXT = 1000161003,
1672 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT_EXT = 1000161004,
1673
Daniel Koch09f7bf92017-10-05 00:26:58 -04001674 //@extension("VK_KHR_maintenance3") // 169
1675 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES_KHR = 1000168000,
1676 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT_KHR = 1000168001,
Jesse Hall8c954d32018-01-17 22:06:20 -08001677
1678 //@extension("VK_EXT_global_priority") // 175
1679 VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT = 1000174000,
1680
Jesse Halla13a3cf2018-07-09 15:51:52 -07001681 //@extension("VK_KHR_8bit_storage") // 178
1682 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES_KHR = 1000177000,
1683
Jesse Hall8c954d32018-01-17 22:06:20 -08001684 //@extension("VK_EXT_external_memory_host") // 179
1685 VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT = 1000178000,
1686 VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT = 1000178001,
1687 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT = 1000178002,
Jesse Hall72e6a132018-04-06 13:00:44 -07001688
1689 //@extension("VK_AMD_shader_core_properties") // 186
1690 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD = 1000185000,
1691
1692 //@extension("VK_EXT_vertex_attribute_divisor") // 191
1693 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT = 1000190000,
1694 VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT = 1000190001,
Jesse Hall4af6c462018-09-10 09:04:25 -07001695 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT = 1000190002,
Jesse Hall115df0c2018-07-30 12:00:59 -07001696
1697 //@extension("VK_NV_device_diagnostic_checkpoints") // 207
1698 VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NV = 1000206000,
1699 VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV = 1000206001,
Jesse Hall4af6c462018-09-10 09:04:25 -07001700
1701 //@extension("VK_KHR_vulkan_memory_model") // 212
1702 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES_KHR = 1000211000,
Jesse Halld27f6aa2015-08-15 17:58:48 -07001703}
1704
Jesse Hall65ab5522015-11-30 00:07:16 -08001705enum VkSubpassContents {
1706 VK_SUBPASS_CONTENTS_INLINE = 0x00000000,
1707 VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS = 0x00000001,
Jesse Halld27f6aa2015-08-15 17:58:48 -07001708}
1709
Jesse Hall543a7ff2016-01-08 16:38:30 -08001710enum VkPipelineCacheHeaderVersion {
1711 VK_PIPELINE_CACHE_HEADER_VERSION_ONE = 1,
1712}
1713
Jesse Hallbd888842015-11-30 21:44:14 -08001714@lastUnused(-11)
Jesse Halld27f6aa2015-08-15 17:58:48 -07001715/// Error and return codes
1716enum VkResult {
1717 // Return codes for successful operation execution (positive values)
Jesse Hallbd888842015-11-30 21:44:14 -08001718 VK_SUCCESS = 0,
1719 VK_NOT_READY = 1,
1720 VK_TIMEOUT = 2,
1721 VK_EVENT_SET = 3,
1722 VK_EVENT_RESET = 4,
1723 VK_INCOMPLETE = 5,
Jesse Halld27f6aa2015-08-15 17:58:48 -07001724
Jesse Hallad250842017-03-10 18:35:38 -08001725 //@extension("VK_KHR_swapchain") // 2
Jesse Hallbd888842015-11-30 21:44:14 -08001726 VK_SUBOPTIMAL_KHR = 1000001003,
Jesse Hall1356b0d2015-11-23 17:24:58 -08001727
Jesse Halld27f6aa2015-08-15 17:58:48 -07001728 // Error codes (negative values)
Jesse Hallbd888842015-11-30 21:44:14 -08001729 VK_ERROR_OUT_OF_HOST_MEMORY = 0xFFFFFFFF, // -1
1730 VK_ERROR_OUT_OF_DEVICE_MEMORY = 0xFFFFFFFE, // -2
1731 VK_ERROR_INITIALIZATION_FAILED = 0xFFFFFFFD, // -3
1732 VK_ERROR_DEVICE_LOST = 0xFFFFFFFC, // -4
1733 VK_ERROR_MEMORY_MAP_FAILED = 0xFFFFFFFB, // -5
1734 VK_ERROR_LAYER_NOT_PRESENT = 0xFFFFFFFA, // -6
1735 VK_ERROR_EXTENSION_NOT_PRESENT = 0xFFFFFFF9, // -7
1736 VK_ERROR_FEATURE_NOT_PRESENT = 0xFFFFFFF8, // -8
1737 VK_ERROR_INCOMPATIBLE_DRIVER = 0xFFFFFFF7, // -9
1738 VK_ERROR_TOO_MANY_OBJECTS = 0xFFFFFFF6, // -10
1739 VK_ERROR_FORMAT_NOT_SUPPORTED = 0xFFFFFFF5, // -11
Jesse Hall56d386a2016-07-26 15:20:40 -07001740 VK_ERROR_FRAGMENTED_POOL = 0xFFFFFFF4, // -12
Jesse Hall1356b0d2015-11-23 17:24:58 -08001741
Ian Elliott28bd2c32017-10-13 09:21:12 -06001742 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04001743 VK_ERROR_OUT_OF_POOL_MEMORY = 0xC4642878, // -1000069000
1744 VK_ERROR_INVALID_EXTERNAL_HANDLE = 0xC4641CBD, // -1000072003
1745
Jesse Hallad250842017-03-10 18:35:38 -08001746 //@extension("VK_KHR_surface") // 1
Jesse Hallbd888842015-11-30 21:44:14 -08001747 VK_ERROR_SURFACE_LOST_KHR = 0xC4653600, // -1000000000
Jesse Hallad250842017-03-10 18:35:38 -08001748 VK_ERROR_NATIVE_WINDOW_IN_USE_KHR = 0xC46535FF, // -1000000001
Jesse Halla6429252015-11-29 18:59:42 -08001749
Jesse Hallad250842017-03-10 18:35:38 -08001750 //@extension("VK_KHR_swapchain") // 2
Jesse Hallbd888842015-11-30 21:44:14 -08001751 VK_ERROR_OUT_OF_DATE_KHR = 0xC4653214, // -1000001004
Jesse Hall1356b0d2015-11-23 17:24:58 -08001752
Jesse Hallad250842017-03-10 18:35:38 -08001753 //@extension("VK_KHR_display_swapchain") // 4
Jesse Hallbd888842015-11-30 21:44:14 -08001754 VK_ERROR_INCOMPATIBLE_DISPLAY_KHR = 0xC4652A47, // -1000003001
Jesse Hall1356b0d2015-11-23 17:24:58 -08001755
Jesse Hallad250842017-03-10 18:35:38 -08001756 //@extension("VK_EXT_debug_report") // 12
Jesse Hall543a7ff2016-01-08 16:38:30 -08001757 VK_ERROR_VALIDATION_FAILED_EXT = 0xC4650B07, // -1000011001
Jesse Hall26763382016-05-20 07:13:52 -07001758
Jesse Hallad250842017-03-10 18:35:38 -08001759 //@extension("VK_NV_glsl_shader") // 13
Jesse Hall26763382016-05-20 07:13:52 -07001760 VK_ERROR_INVALID_SHADER_NV = 0xC4650720, // -1000012000
Jesse Hall77ad05b2017-03-10 22:02:20 -08001761
Jesse Hallad250842017-03-10 18:35:38 -08001762 //@extension("VK_KHR_maintenance1") // 70
Jesse Hall77ad05b2017-03-10 22:02:20 -08001763 VK_ERROR_OUT_OF_POOL_MEMORY_KHR = 0xC4642878, // -1000069000
Jesse Hallad250842017-03-10 18:35:38 -08001764
Jesse Hall8c954d32018-01-17 22:06:20 -08001765 //@extension("VK_EXT_global_priority") // 175
1766 VK_ERROR_NOT_PERMITTED_EXT = 0xC4628E4F, // -1000174001
1767
Jesse Hall9492f992017-08-28 12:10:06 -07001768 //@extension("VK_KHR_external_memory") // 73
1769 VK_ERROR_INVALID_EXTERNAL_HANDLE_KHR = 0xC4641CBD, // -1000072003
Jesse Hall72e6a132018-04-06 13:00:44 -07001770
1771 //@extension("VK_EXT_descriptor_indexing") // 162
1772 VK_ERROR_FRAGMENTATION_EXT = 0xc462c118, // -1000161000
Jesse Hall5ae3abb2015-10-08 14:00:22 -07001773}
1774
1775enum VkDynamicState {
1776 VK_DYNAMIC_STATE_VIEWPORT = 0x00000000,
1777 VK_DYNAMIC_STATE_SCISSOR = 0x00000001,
1778 VK_DYNAMIC_STATE_LINE_WIDTH = 0x00000002,
1779 VK_DYNAMIC_STATE_DEPTH_BIAS = 0x00000003,
1780 VK_DYNAMIC_STATE_BLEND_CONSTANTS = 0x00000004,
1781 VK_DYNAMIC_STATE_DEPTH_BOUNDS = 0x00000005,
1782 VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK = 0x00000006,
1783 VK_DYNAMIC_STATE_STENCIL_WRITE_MASK = 0x00000007,
1784 VK_DYNAMIC_STATE_STENCIL_REFERENCE = 0x00000008,
Jesse Hallad250842017-03-10 18:35:38 -08001785
1786 //@extension("VK_NV_clip_space_w_scaling") // 88
1787 VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV = 1000087000,
1788
1789 //@extension("VK_EXT_discard_rectangles") // 100
1790 VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT = 1000099000,
Jesse Hall77726222017-09-19 14:49:27 -05001791
1792 //@extension("VK_EXT_sample_locations") // 144
1793 VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT = 1000143000,
Jesse Halld27f6aa2015-08-15 17:58:48 -07001794}
1795
Jesse Hall05556b12017-05-18 17:40:25 -07001796enum VkObjectType {
1797 VK_OBJECT_TYPE_UNKNOWN = 0,
1798 VK_OBJECT_TYPE_INSTANCE = 1,
1799 VK_OBJECT_TYPE_PHYSICAL_DEVICE = 2,
1800 VK_OBJECT_TYPE_DEVICE = 3,
1801 VK_OBJECT_TYPE_QUEUE = 4,
1802 VK_OBJECT_TYPE_SEMAPHORE = 5,
1803 VK_OBJECT_TYPE_COMMAND_BUFFER = 6,
1804 VK_OBJECT_TYPE_FENCE = 7,
1805 VK_OBJECT_TYPE_DEVICE_MEMORY = 8,
1806 VK_OBJECT_TYPE_BUFFER = 9,
1807 VK_OBJECT_TYPE_IMAGE = 10,
1808 VK_OBJECT_TYPE_EVENT = 11,
1809 VK_OBJECT_TYPE_QUERY_POOL = 12,
1810 VK_OBJECT_TYPE_BUFFER_VIEW = 13,
1811 VK_OBJECT_TYPE_IMAGE_VIEW = 14,
1812 VK_OBJECT_TYPE_SHADER_MODULE = 15,
1813 VK_OBJECT_TYPE_PIPELINE_CACHE = 16,
1814 VK_OBJECT_TYPE_PIPELINE_LAYOUT = 17,
1815 VK_OBJECT_TYPE_RENDER_PASS = 18,
1816 VK_OBJECT_TYPE_PIPELINE = 19,
1817 VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT = 20,
1818 VK_OBJECT_TYPE_SAMPLER = 21,
1819 VK_OBJECT_TYPE_DESCRIPTOR_POOL = 22,
1820 VK_OBJECT_TYPE_DESCRIPTOR_SET = 23,
1821 VK_OBJECT_TYPE_FRAMEBUFFER = 24,
1822 VK_OBJECT_TYPE_COMMAND_POOL = 25,
1823
Ian Elliott28bd2c32017-10-13 09:21:12 -06001824 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04001825 VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION = 1000156000,
1826 VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE = 1000085000,
1827
Jesse Hall05556b12017-05-18 17:40:25 -07001828 //@extension("VK_KHR_surface") // 1
1829 VK_OBJECT_TYPE_SURFACE_KHR = 1000000000,
1830
1831 //@extension("VK_KHR_swapchain") // 2
1832 VK_OBJECT_TYPE_SWAPCHAIN_KHR = 1000001000,
1833
1834 //@extension("VK_KHR_display") // 3
1835 VK_OBJECT_TYPE_DISPLAY_KHR = 1000002000,
1836 VK_OBJECT_TYPE_DISPLAY_MODE_KHR = 1000002001,
1837
1838 //@extension("VK_KHR_debug_report") // 12
1839 VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT = 1000011000,
1840
1841 //@extension("VK_KHR_descriptor_update_template") // 86
1842 VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR = 1000085000,
1843
1844 //@extension("VK_NVX_device_generated_commands") // 87
1845 VK_OBJECT_TYPE_OBJECT_TABLE_NVX = 1000086000,
1846 VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX = 1000086001,
Jesse Hall77726222017-09-19 14:49:27 -05001847
Jesse Hall8c954d32018-01-17 22:06:20 -08001848 //@extension("VK_EXT_debug_utils") // 129
1849 VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT = 1000128000,
1850
Jesse Hall076f95d2017-09-20 11:34:47 -07001851 //@extension("VK_KHR_sampler_ycbcr_conversion") // 157
1852 VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR = 1000156000,
1853
Jesse Hall77726222017-09-19 14:49:27 -05001854 //@extension("VK_EXT_validation_cache") // 161
1855 VK_OBJECT_TYPE_VALIDATION_CACHE_EXT = 1000160000,
Jesse Hall05556b12017-05-18 17:40:25 -07001856}
1857
Daniel Koch09f7bf92017-10-05 00:26:58 -04001858
Ian Elliott28bd2c32017-10-13 09:21:12 -06001859//@vulkan1_1 enums
Daniel Koch09f7bf92017-10-05 00:26:58 -04001860
1861enum VkPointClippingBehavior {
1862 VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES = 0,
1863 VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY = 1,
1864}
1865
1866enum VkTessellationDomainOrigin {
1867 VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT = 0,
1868 VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT = 1,
1869}
1870
1871enum VkSamplerYcbcrModelConversion {
1872 VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY = 0,
1873 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY = 1,
1874 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709 = 2,
1875 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601 = 3,
1876 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020 = 4,
1877}
1878
1879enum VkSamplerYcbcrRange {
1880 VK_SAMPLER_YCBCR_RANGE_ITU_FULL = 0,
1881 VK_SAMPLER_YCBCR_RANGE_ITU_NARROW = 1,
1882}
1883
1884enum VkChromaLocation {
1885 VK_CHROMA_LOCATION_COSITED_EVEN = 0,
1886 VK_CHROMA_LOCATION_MIDPOINT = 1,
1887}
1888
1889enum VkDescriptorUpdateTemplateType {
1890 VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET = 0,
1891 VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR = 1,
1892}
1893
Jesse Halla13a3cf2018-07-09 15:51:52 -07001894enum VkVendorId {
1895 VK_VENDOR_ID_VIV = 0x10001,
1896 VK_VENDOR_ID_VSI = 0x10002,
1897 VK_VENDOR_ID_KAZAN = 0x10003,
1898}
1899
Jesse Hallad250842017-03-10 18:35:38 -08001900@extension("VK_KHR_surface") // 1
Michael Lentine88594d72015-11-12 12:49:45 -08001901enum VkPresentModeKHR {
1902 VK_PRESENT_MODE_IMMEDIATE_KHR = 0x00000000,
1903 VK_PRESENT_MODE_MAILBOX_KHR = 0x00000001,
1904 VK_PRESENT_MODE_FIFO_KHR = 0x00000002,
Jesse Hall03b6fe12015-11-24 12:44:21 -08001905 VK_PRESENT_MODE_FIFO_RELAXED_KHR = 0x00000003,
Jesse Hall77ad05b2017-03-10 22:02:20 -08001906
Jesse Hall05556b12017-05-18 17:40:25 -07001907 //@extension("VK_KHR_shared_presentable_image") // 112
Jesse Hall77ad05b2017-03-10 22:02:20 -08001908 VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR = 1000111000,
1909 VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR = 1000111001,
Michael Lentine88594d72015-11-12 12:49:45 -08001910}
1911
Jesse Hallad250842017-03-10 18:35:38 -08001912@extension("VK_KHR_surface") // 1
Michael Lentine88594d72015-11-12 12:49:45 -08001913enum VkColorSpaceKHR {
Daniel Koch09f7bf92017-10-05 00:26:58 -04001914 VK_COLOR_SPACE_SRGB_NONLINEAR_KHR = 0x00000000,
Jesse Hall77ad05b2017-03-10 22:02:20 -08001915
Jesse Hallf5ad48b2017-03-20 13:09:19 -07001916 //@extension("VK_EXT_swapchain_colorspace") // 105
1917 VK_COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT = 1000104001,
1918 VK_COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT = 1000104002,
1919 VK_COLOR_SPACE_DCI_P3_LINEAR_EXT = 1000104003,
1920 VK_COLOR_SPACE_DCI_P3_NONLINEAR_EXT = 1000104004,
1921 VK_COLOR_SPACE_BT709_LINEAR_EXT = 1000104005,
1922 VK_COLOR_SPACE_BT709_NONLINEAR_EXT = 1000104006,
1923 VK_COLOR_SPACE_BT2020_LINEAR_EXT = 1000104007,
1924 VK_COLOR_SPACE_HDR10_ST2084_EXT = 1000104008,
1925 VK_COLOR_SPACE_DOLBYVISION_EXT = 1000104009,
1926 VK_COLOR_SPACE_HDR10_HLG_EXT = 1000104010,
Courtney Goeltzenleuchter7f558ed2017-01-23 17:15:24 -07001927 VK_COLOR_SPACE_ADOBERGB_LINEAR_EXT = 1000104011,
1928 VK_COLOR_SPACE_ADOBERGB_NONLINEAR_EXT = 1000104012,
Jesse Hallf5ad48b2017-03-20 13:09:19 -07001929 VK_COLOR_SPACE_PASS_THROUGH_EXT = 1000104013,
Jesse Hall77726222017-09-19 14:49:27 -05001930 VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT = 1000104014,
Michael Lentine88594d72015-11-12 12:49:45 -08001931}
Jesse Halld27f6aa2015-08-15 17:58:48 -07001932
Jesse Hallad250842017-03-10 18:35:38 -08001933@extension("VK_EXT_debug_report") // 12
Jesse Hall715b86a2016-01-16 16:34:29 -08001934enum VkDebugReportObjectTypeEXT {
1935 VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT = 0,
1936 VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT = 1,
1937 VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT = 2,
1938 VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT = 3,
1939 VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT = 4,
1940 VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT = 5,
1941 VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT = 6,
1942 VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT = 7,
1943 VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT = 8,
1944 VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT = 9,
1945 VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT = 10,
1946 VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT = 11,
1947 VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT = 12,
1948 VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT = 13,
1949 VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT = 14,
1950 VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT = 15,
1951 VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT = 16,
1952 VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT = 17,
1953 VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT = 18,
1954 VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT = 19,
1955 VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT = 20,
1956 VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT = 21,
1957 VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT = 22,
1958 VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT = 23,
1959 VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT = 24,
1960 VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT = 25,
1961 VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT = 26,
1962 VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT = 27,
Jesse Hall7ba0ac72017-07-07 17:13:23 -07001963 VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT = 28,
Chris Forbes289cb792016-12-30 15:03:55 +13001964 VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT = 29,
1965 VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT = 30,
1966 VK_DEBUG_REPORT_OBJECT_TYPE_OBJECT_TABLE_NVX_EXT = 31,
1967 VK_DEBUG_REPORT_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX_EXT = 32,
Jesse Hallf5ad48b2017-03-20 13:09:19 -07001968
Jesse Hall77726222017-09-19 14:49:27 -05001969 //extension("VK_EXT_validation_cache") // 161
Jesse Hall8c954d32018-01-17 22:06:20 -08001970 VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT = 33,
Jesse Hall77726222017-09-19 14:49:27 -05001971
Jesse Hallf5ad48b2017-03-20 13:09:19 -07001972 //extension("VK_KHR_descriptor_update_template") // 86
1973 VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR_EXT = 1000085000,
Jesse Hall77726222017-09-19 14:49:27 -05001974
Jesse Hall076f95d2017-09-20 11:34:47 -07001975 //@extension("VK_KHR_sampler_ycbcr_conversion") // 157
1976 VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR_EXT = 1000156000,
Jesse Hall715b86a2016-01-16 16:34:29 -08001977}
1978
Jesse Hallad250842017-03-10 18:35:38 -08001979@extension("VK_AMD_rasterization_order") // 19
Jesse Hall26763382016-05-20 07:13:52 -07001980enum VkRasterizationOrderAMD {
1981 VK_RASTERIZATION_ORDER_STRICT_AMD = 0,
1982 VK_RASTERIZATION_ORDER_RELAXED_AMD = 1,
1983}
1984
Jesse Hall8c954d32018-01-17 22:06:20 -08001985@extension("VK_AMD_shader_info") // 43
1986enum VkShaderInfoTypeAMD {
1987 VK_SHADER_INFO_TYPE_STATISTICS_AMD = 0,
1988 VK_SHADER_INFO_TYPE_BINARY_AMD = 1,
1989 VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD = 2,
1990}
1991
Jesse Hallad250842017-03-10 18:35:38 -08001992@extension("VK_EXT_validation_flags") // 62
Chris Forbes289cb792016-12-30 15:03:55 +13001993enum VkValidationCheckEXT {
1994 VK_VALIDATION_CHECK_ALL_EXT = 0,
Jesse Hall7ba0ac72017-07-07 17:13:23 -07001995 VK_VALIDATION_CHECK_SHADERS_EXT = 1,
Chris Forbes289cb792016-12-30 15:03:55 +13001996}
1997
Jesse Hallad250842017-03-10 18:35:38 -08001998@extension("VK_KHR_descriptor_update_template") // 86
1999enum VkDescriptorUpdateTemplateTypeKHR {
2000 VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET_KHR = 0,
2001 VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR = 1,
2002}
2003
2004@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13002005enum VkIndirectCommandsTokenTypeNVX {
Jesse Hall7ba0ac72017-07-07 17:13:23 -07002006 VK_INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NVX = 0,
2007 VK_INDIRECT_COMMANDS_TOKEN_TYPE_DESCRIPTOR_SET_NVX = 1,
2008 VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NVX = 2,
2009 VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NVX = 3,
2010 VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NVX = 4,
2011 VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NVX = 5,
2012 VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NVX = 6,
2013 VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NVX = 7,
Chris Forbes289cb792016-12-30 15:03:55 +13002014}
2015
Jesse Hallad250842017-03-10 18:35:38 -08002016@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13002017enum VkObjectEntryTypeNVX {
Jesse Hall7ba0ac72017-07-07 17:13:23 -07002018 VK_OBJECT_ENTRY_TYPE_DESCRIPTOR_SET_NVX = 0,
2019 VK_OBJECT_ENTRY_TYPE_PIPELINE_NVX = 1,
2020 VK_OBJECT_ENTRY_TYPE_INDEX_BUFFER_NVX = 2,
2021 VK_OBJECT_ENTRY_TYPE_VERTEX_BUFFER_NVX = 3,
2022 VK_OBJECT_ENTRY_TYPE_PUSH_CONSTANT_NVX = 4,
Chris Forbes289cb792016-12-30 15:03:55 +13002023}
Jesse Hall715b86a2016-01-16 16:34:29 -08002024
Jesse Hallad250842017-03-10 18:35:38 -08002025@extension("VK_EXT_display_control") // 92
Jesse Hall77ad05b2017-03-10 22:02:20 -08002026enum VkDisplayPowerStateEXT {
2027 VK_DISPLAY_POWER_STATE_OFF_EXT = 0,
2028 VK_DISPLAY_POWER_STATE_SUSPEND_EXT = 1,
2029 VK_DISPLAY_POWER_STATE_ON_EXT = 2,
2030}
2031
Jesse Hallad250842017-03-10 18:35:38 -08002032@extension("VK_EXT_display_control") // 92
Jesse Hall77ad05b2017-03-10 22:02:20 -08002033enum VkDeviceEventTypeEXT {
2034 VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT = 0,
2035}
2036
Jesse Hallad250842017-03-10 18:35:38 -08002037@extension("VK_EXT_display_control") // 92
Jesse Hall77ad05b2017-03-10 22:02:20 -08002038enum VkDisplayEventTypeEXT {
2039 VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT = 0,
2040}
2041
Jesse Hallad250842017-03-10 18:35:38 -08002042@extension("VK_NV_viewport_swizzle") // 99
2043enum VkViewportCoordinateSwizzleNV {
2044 VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV = 0,
2045 VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV = 1,
2046 VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV = 2,
2047 VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV = 3,
2048 VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV = 4,
2049 VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV = 5,
2050 VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV = 6,
2051 VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV = 7,
2052}
2053
2054@extension("VK_EXT_discard_rectangles") // 100
2055enum VkDiscardRectangleModeEXT {
2056 VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT = 0,
2057 VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT = 1,
2058}
2059
Jesse Hall8c954d32018-01-17 22:06:20 -08002060@extension("VK_EXT_conservative_rasterization") // 102
2061enum VkConservativeRasterizationModeEXT {
2062 VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT = 0,
2063 VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT = 1,
2064 VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT = 2,
2065}
2066
Jesse Hall076f95d2017-09-20 11:34:47 -07002067@extension("VK_KHR_maintenance2") // 118
2068enum VkPointClippingBehaviorKHR {
2069 VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES_KHR = 0,
2070 VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY_KHR = 1,
2071}
2072
2073@extension("VK_KHR_maintenance2") // 118
2074enum VkTessellationDomainOriginKHR {
2075 VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT_KHR = 0,
2076 VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT_KHR = 1,
2077}
2078
Jesse Hall7ba0ac72017-07-07 17:13:23 -07002079@extension("VK_EXT_sampler_filter_minmax") // 131
2080enum VkSamplerReductionModeEXT {
2081 VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_EXT = 0,
2082 VK_SAMPLER_REDUCTION_MODE_MIN_EXT = 1,
2083 VK_SAMPLER_REDUCTION_MODE_MAX_EXT = 2,
2084}
2085
2086@extension("VK_EXT_blend_operation_advanced") // 149
2087enum VkBlendOverlapEXT {
2088 VK_BLEND_OVERLAP_UNCORRELATED_EXT = 0,
2089 VK_BLEND_OVERLAP_DISJOINT_EXT = 1,
2090 VK_BLEND_OVERLAP_CONJOINT_EXT = 2,
2091}
2092
2093@extension("VK_NV_framebuffer_mixed_samples") // 153
2094enum VkCoverageModulationModeNV {
2095 VK_COVERAGE_MODULATION_MODE_NONE_NV = 0,
2096 VK_COVERAGE_MODULATION_MODE_RGB_NV = 1,
2097 VK_COVERAGE_MODULATION_MODE_ALPHA_NV = 2,
2098 VK_COVERAGE_MODULATION_MODE_RGBA_NV = 3,
2099}
2100
Jesse Hall076f95d2017-09-20 11:34:47 -07002101@extension("VK_KHR_sampler_ycbcr_conversion") // 157
2102enum VkSamplerYcbcrModelConversionKHR {
2103 VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY_KHR = 0,
2104 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY_KHR = 1,
2105 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709_KHR = 2,
2106 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601_KHR = 3,
2107 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020_KHR = 4,
2108}
2109
2110@extension("VK_KHR_sampler_ycbcr_conversion") // 157
2111enum VkSamplerYcbcrRangeKHR {
2112 VK_SAMPLER_YCBCR_RANGE_ITU_FULL_KHR = 0,
2113 VK_SAMPLER_YCBCR_RANGE_ITU_NARROW_KHR = 1,
2114}
2115
2116@extension("VK_KHR_sampler_ycbcr_conversion") // 157
2117enum VkChromaLocationKHR {
2118 VK_CHROMA_LOCATION_COSITED_EVEN_KHR = 0,
2119 VK_CHROMA_LOCATION_MIDPOINT_KHR = 1,
2120}
2121
Jesse Hall77726222017-09-19 14:49:27 -05002122@extension("VK_EXT_validation_cache") // 161
2123enum VkValidationCacheHeaderVersionEXT {
2124 VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT = 1,
2125}
2126
Jesse Hall8c954d32018-01-17 22:06:20 -08002127@extension("VK_EXT_global_priority") // 175
2128enum VkQueueGlobalPriorityEXT {
2129 VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT = 128,
2130 VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT = 256,
2131 VK_QUEUE_GLOBAL_PRIORITY_HIGH_EXT = 512,
2132 VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT = 1024,
2133}
2134
Jesse Halld27f6aa2015-08-15 17:58:48 -07002135/////////////////
2136// Bitfields //
2137/////////////////
2138
Jesse Halld27f6aa2015-08-15 17:58:48 -07002139/// Queue capabilities
Jesse Halld8bade02015-11-24 10:24:18 -08002140type VkFlags VkQueueFlags
2141bitfield VkQueueFlagBits {
Jesse Halld27f6aa2015-08-15 17:58:48 -07002142 VK_QUEUE_GRAPHICS_BIT = 0x00000001, /// Queue supports graphics operations
2143 VK_QUEUE_COMPUTE_BIT = 0x00000002, /// Queue supports compute operations
Jesse Hall65ab5522015-11-30 00:07:16 -08002144 VK_QUEUE_TRANSFER_BIT = 0x00000004, /// Queue supports transfer operations
Jesse Hallb00daad2015-11-29 19:46:20 -08002145 VK_QUEUE_SPARSE_BINDING_BIT = 0x00000008, /// Queue supports sparse resource memory management operations
Daniel Koch09f7bf92017-10-05 00:26:58 -04002146
Ian Elliott28bd2c32017-10-13 09:21:12 -06002147 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04002148 VK_QUEUE_PROTECTED_BIT = 0x00000010,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002149}
2150
2151/// Memory properties passed into vkAllocMemory().
Jesse Halld8bade02015-11-24 10:24:18 -08002152type VkFlags VkMemoryPropertyFlags
2153bitfield VkMemoryPropertyFlagBits {
Jesse Halld1af8122015-11-29 23:50:38 -08002154 VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT = 0x00000001,
2155 VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT = 0x00000002,
2156 VK_MEMORY_PROPERTY_HOST_COHERENT_BIT = 0x00000004,
2157 VK_MEMORY_PROPERTY_HOST_CACHED_BIT = 0x00000008,
2158 VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT = 0x00000010,
Daniel Koch09f7bf92017-10-05 00:26:58 -04002159
Ian Elliott28bd2c32017-10-13 09:21:12 -06002160 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04002161 VK_MEMORY_PROPERTY_PROTECTED_BIT = 0x00000020,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002162}
2163
2164/// Memory heap flags
Jesse Halld8bade02015-11-24 10:24:18 -08002165type VkFlags VkMemoryHeapFlags
2166bitfield VkMemoryHeapFlagBits {
Jesse Halld1af8122015-11-29 23:50:38 -08002167 VK_MEMORY_HEAP_DEVICE_LOCAL_BIT = 0x00000001,
Jesse Hallad250842017-03-10 18:35:38 -08002168
Ian Elliott28bd2c32017-10-13 09:21:12 -06002169 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04002170 VK_MEMORY_HEAP_MULTI_INSTANCE_BIT = 0x00000002,
2171
2172 //@extension("VK_KHR_device_group_creation") // 71
2173 VK_MEMORY_HEAP_MULTI_INSTANCE_BIT_KHR = 0x00000002,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002174}
2175
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08002176/// Access flags
2177type VkFlags VkAccessFlags
2178bitfield VkAccessFlagBits {
2179 VK_ACCESS_INDIRECT_COMMAND_READ_BIT = 0x00000001,
2180 VK_ACCESS_INDEX_READ_BIT = 0x00000002,
2181 VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT = 0x00000004,
2182 VK_ACCESS_UNIFORM_READ_BIT = 0x00000008,
2183 VK_ACCESS_INPUT_ATTACHMENT_READ_BIT = 0x00000010,
2184 VK_ACCESS_SHADER_READ_BIT = 0x00000020,
2185 VK_ACCESS_SHADER_WRITE_BIT = 0x00000040,
2186 VK_ACCESS_COLOR_ATTACHMENT_READ_BIT = 0x00000080,
2187 VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT = 0x00000100,
2188 VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT = 0x00000200,
2189 VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT = 0x00000400,
2190 VK_ACCESS_TRANSFER_READ_BIT = 0x00000800,
2191 VK_ACCESS_TRANSFER_WRITE_BIT = 0x00001000,
2192 VK_ACCESS_HOST_READ_BIT = 0x00002000,
2193 VK_ACCESS_HOST_WRITE_BIT = 0x00004000,
2194 VK_ACCESS_MEMORY_READ_BIT = 0x00008000,
2195 VK_ACCESS_MEMORY_WRITE_BIT = 0x00010000,
Chris Forbes289cb792016-12-30 15:03:55 +13002196
Jesse Hallad250842017-03-10 18:35:38 -08002197 //@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13002198 VK_ACCESS_COMMAND_PROCESS_READ_BIT_NVX = 0x00020000,
Chris Forbes289cb792016-12-30 15:03:55 +13002199 VK_ACCESS_COMMAND_PROCESS_WRITE_BIT_NVX = 0x00040000,
Jesse Hall7ba0ac72017-07-07 17:13:23 -07002200
2201 //@extension("VK_EXT_blend_operation_advanced") // 149
2202 VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT = 0x00080000,
Jesse Halla13a3cf2018-07-09 15:51:52 -07002203
2204 //@extension("VK_EXT_conditional_rendering") // 82
2205 VK_ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT = 0x00100000,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002206}
2207
2208/// Buffer usage flags
Jesse Halld8bade02015-11-24 10:24:18 -08002209type VkFlags VkBufferUsageFlags
2210bitfield VkBufferUsageFlagBits {
Jesse Hall3fbc8562015-11-29 22:10:52 -08002211 VK_BUFFER_USAGE_TRANSFER_SRC_BIT = 0x00000001, /// Can be used as a source of transfer operations
2212 VK_BUFFER_USAGE_TRANSFER_DST_BIT = 0x00000002, /// Can be used as a destination of transfer operations
Jesse Halld27f6aa2015-08-15 17:58:48 -07002213 VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT = 0x00000004, /// Can be used as TBO
2214 VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT = 0x00000008, /// Can be used as IBO
2215 VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT = 0x00000010, /// Can be used as UBO
2216 VK_BUFFER_USAGE_STORAGE_BUFFER_BIT = 0x00000020, /// Can be used as SSBO
2217 VK_BUFFER_USAGE_INDEX_BUFFER_BIT = 0x00000040, /// Can be used as source of fixed function index fetch (index buffer)
2218 VK_BUFFER_USAGE_VERTEX_BUFFER_BIT = 0x00000080, /// Can be used as source of fixed function vertex fetch (VBO)
2219 VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT = 0x00000100, /// Can be the source of indirect parameters (e.g. indirect buffer, parameter buffer)
Jesse Halla13a3cf2018-07-09 15:51:52 -07002220
2221 //@extension("VK_EXT_conditional_rendering") // 82
2222 VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT = 0x00000200,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002223}
2224
2225/// Buffer creation flags
Jesse Halld8bade02015-11-24 10:24:18 -08002226type VkFlags VkBufferCreateFlags
2227bitfield VkBufferCreateFlagBits {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07002228 VK_BUFFER_CREATE_SPARSE_BINDING_BIT = 0x00000001, /// Buffer should support sparse backing
Jesse Halld27f6aa2015-08-15 17:58:48 -07002229 VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT = 0x00000002, /// Buffer should support sparse backing with partial residency
2230 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 -04002231
Ian Elliott28bd2c32017-10-13 09:21:12 -06002232 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04002233 VK_BUFFER_CREATE_PROTECTED_BIT = 0x00000008,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002234}
2235
2236/// Shader stage flags
Jesse Halld8bade02015-11-24 10:24:18 -08002237type VkFlags VkShaderStageFlags
2238bitfield VkShaderStageFlagBits {
Jesse Halld27f6aa2015-08-15 17:58:48 -07002239 VK_SHADER_STAGE_VERTEX_BIT = 0x00000001,
Jesse Hallae38f732015-11-19 21:32:50 -08002240 VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT = 0x00000002,
2241 VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT = 0x00000004,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002242 VK_SHADER_STAGE_GEOMETRY_BIT = 0x00000008,
2243 VK_SHADER_STAGE_FRAGMENT_BIT = 0x00000010,
2244 VK_SHADER_STAGE_COMPUTE_BIT = 0x00000020,
Jesse Hallc7467b72015-11-29 21:05:26 -08002245 VK_SHADER_STAGE_ALL_GRAPHICS = 0x0000001F,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002246
2247 VK_SHADER_STAGE_ALL = 0x7FFFFFFF,
2248}
2249
Jesse Hallfbf97b02015-11-20 14:17:03 -08002250/// Descriptor pool create flags
Jesse Halld8bade02015-11-24 10:24:18 -08002251type VkFlags VkDescriptorPoolCreateFlags
2252bitfield VkDescriptorPoolCreateFlagBits {
Jesse Hallfbf97b02015-11-20 14:17:03 -08002253 VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT = 0x00000001,
Jesse Hall72e6a132018-04-06 13:00:44 -07002254
2255 //@extension("VK_EXT_descriptor_indexing") // 162
2256 VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT_EXT = 0x00000002,
Jesse Hallfbf97b02015-11-20 14:17:03 -08002257}
2258
2259/// Descriptor pool reset flags
Jesse Halld8bade02015-11-24 10:24:18 -08002260type VkFlags VkDescriptorPoolResetFlags
Jesse Halla6429252015-11-29 18:59:42 -08002261//bitfield VkDescriptorPoolResetFlagBits {
2262//}
Jesse Hallfbf97b02015-11-20 14:17:03 -08002263
Jesse Halld27f6aa2015-08-15 17:58:48 -07002264/// Image usage flags
Jesse Halld8bade02015-11-24 10:24:18 -08002265type VkFlags VkImageUsageFlags
2266bitfield VkImageUsageFlagBits {
Jesse Hall3fbc8562015-11-29 22:10:52 -08002267 VK_IMAGE_USAGE_TRANSFER_SRC_BIT = 0x00000001, /// Can be used as a source of transfer operations
2268 VK_IMAGE_USAGE_TRANSFER_DST_BIT = 0x00000002, /// Can be used as a destination of transfer operations
Jesse Halld27f6aa2015-08-15 17:58:48 -07002269 VK_IMAGE_USAGE_SAMPLED_BIT = 0x00000004, /// Can be sampled from (SAMPLED_IMAGE and COMBINED_IMAGE_SAMPLER descriptor types)
2270 VK_IMAGE_USAGE_STORAGE_BIT = 0x00000008, /// Can be used as storage image (STORAGE_IMAGE descriptor type)
2271 VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT = 0x00000010, /// Can be used as framebuffer color attachment
Jesse Hall5ae3abb2015-10-08 14:00:22 -07002272 VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000020, /// Can be used as framebuffer depth/stencil attachment
Jesse Halld27f6aa2015-08-15 17:58:48 -07002273 VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT = 0x00000040, /// Image data not needed outside of rendering
2274 VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT = 0x00000080, /// Can be used as framebuffer input attachment
2275}
2276
2277/// Image creation flags
Jesse Halld8bade02015-11-24 10:24:18 -08002278type VkFlags VkImageCreateFlags
2279bitfield VkImageCreateFlagBits {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07002280 VK_IMAGE_CREATE_SPARSE_BINDING_BIT = 0x00000001, /// Image should support sparse backing
Jesse Halld27f6aa2015-08-15 17:58:48 -07002281 VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT = 0x00000002, /// Image should support sparse backing with partial residency
2282 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 -07002283 VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT = 0x00000008, /// Allows image views to have different format than the base image
2284 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 -08002285
Ian Elliott28bd2c32017-10-13 09:21:12 -06002286 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04002287 VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT = 0x00000020,
Jesse Hall8c954d32018-01-17 22:06:20 -08002288 VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT = 0x00000040,
Daniel Koch09f7bf92017-10-05 00:26:58 -04002289 VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT = 0x00000080,
2290 VK_IMAGE_CREATE_EXTENDED_USAGE_BIT = 0x00000100,
Daniel Koch09f7bf92017-10-05 00:26:58 -04002291 VK_IMAGE_CREATE_DISJOINT_BIT = 0x00000200,
Ian Elliott28bd2c32017-10-13 09:21:12 -06002292 VK_IMAGE_CREATE_ALIAS_BIT = 0x00000400,
2293 VK_IMAGE_CREATE_PROTECTED_BIT = 0x00000800,
Daniel Koch09f7bf92017-10-05 00:26:58 -04002294
Jesse Hallad250842017-03-10 18:35:38 -08002295 //@extension("VK_KHR_maintenance1") // 70
Jesse Hall77ad05b2017-03-10 22:02:20 -08002296 VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT_KHR = 0x00000020,
Jesse Hallad250842017-03-10 18:35:38 -08002297
Daniel Koch09f7bf92017-10-05 00:26:58 -04002298 //@extension("VK_KHR_device_group") // 61
2299 VK_IMAGE_CREATE_BIND_SFR_BIT_KHR = 0x00000040,
Jesse Hall77726222017-09-19 14:49:27 -05002300
Jesse Hall076f95d2017-09-20 11:34:47 -07002301 //@extension("VK_KHR_maintenance2") // 118
2302 VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT_KHR = 0x00000080,
2303 VK_IMAGE_CREATE_EXTENDED_USAGE_BIT_KHR = 0x00000100,
2304
2305 //@extension("VK_KHR_sampler_ycbcr_conversion") // 157
2306 VK_IMAGE_CREATE_DISJOINT_BIT_KHR = 0x00000200,
2307
2308 //@extension("VK_KHR_bind_memory2") // 158
2309 VK_IMAGE_CREATE_ALIAS_BIT_KHR = 0x00000400,
Ian Elliott28bd2c32017-10-13 09:21:12 -06002310
2311 //@extension("VK_EXT_sample_locations") // 144
2312 VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT = 0x00001000,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002313}
2314
Jesse Hallb00daad2015-11-29 19:46:20 -08002315/// Image view creation flags
Jesse Halld8bade02015-11-24 10:24:18 -08002316type VkFlags VkImageViewCreateFlags
Jesse Hallb00daad2015-11-29 19:46:20 -08002317//bitfield VkImageViewCreateFlagBits {
2318//}
Jesse Halld27f6aa2015-08-15 17:58:48 -07002319
2320/// Pipeline creation flags
Jesse Halld8bade02015-11-24 10:24:18 -08002321type VkFlags VkPipelineCreateFlags
2322bitfield VkPipelineCreateFlagBits {
Jesse Halld27f6aa2015-08-15 17:58:48 -07002323 VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT = 0x00000001,
2324 VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT = 0x00000002,
2325 VK_PIPELINE_CREATE_DERIVATIVE_BIT = 0x00000004,
Jesse Hallad250842017-03-10 18:35:38 -08002326
Ian Elliott28bd2c32017-10-13 09:21:12 -06002327 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04002328 VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT = 0x00000008,
2329 VK_PIPELINE_CREATE_DISPATCH_BASE = 0x00000010,
2330
2331 //@extension("VK_KHR_device_group") // 61
2332 VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR = 0x00000008,
2333 VK_PIPELINE_CREATE_DISPATCH_BASE_KHR = 0x00000010,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002334}
2335
Jesse Hall65ab5522015-11-30 00:07:16 -08002336/// Color component flags
2337type VkFlags VkColorComponentFlags
2338bitfield VkColorComponentFlagBits {
2339 VK_COLOR_COMPONENT_R_BIT = 0x00000001,
2340 VK_COLOR_COMPONENT_G_BIT = 0x00000002,
2341 VK_COLOR_COMPONENT_B_BIT = 0x00000004,
2342 VK_COLOR_COMPONENT_A_BIT = 0x00000008,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002343}
2344
2345/// Fence creation flags
Jesse Halld8bade02015-11-24 10:24:18 -08002346type VkFlags VkFenceCreateFlags
2347bitfield VkFenceCreateFlagBits {
Jesse Halld27f6aa2015-08-15 17:58:48 -07002348 VK_FENCE_CREATE_SIGNALED_BIT = 0x00000001,
2349}
2350
2351/// Semaphore creation flags
Jesse Halld8bade02015-11-24 10:24:18 -08002352type VkFlags VkSemaphoreCreateFlags
Jesse Halla6429252015-11-29 18:59:42 -08002353//bitfield VkSemaphoreCreateFlagBits {
2354//}
Jesse Halld27f6aa2015-08-15 17:58:48 -07002355
2356/// Format capability flags
Jesse Halld8bade02015-11-24 10:24:18 -08002357type VkFlags VkFormatFeatureFlags
2358bitfield VkFormatFeatureFlagBits {
Jesse Halld27f6aa2015-08-15 17:58:48 -07002359 VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT = 0x00000001, /// Format can be used for sampled images (SAMPLED_IMAGE and COMBINED_IMAGE_SAMPLER descriptor types)
2360 VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT = 0x00000002, /// Format can be used for storage images (STORAGE_IMAGE descriptor type)
2361 VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT = 0x00000004, /// Format supports atomic operations in case it's used for storage images
2362 VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT = 0x00000008, /// Format can be used for uniform texel buffers (TBOs)
2363 VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT = 0x00000010, /// Format can be used for storage texel buffers (IBOs)
2364 VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT = 0x00000020, /// Format supports atomic operations in case it's used for storage texel buffers
2365 VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT = 0x00000040, /// Format can be used for vertex buffers (VBOs)
2366 VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT = 0x00000080, /// Format can be used for color attachment images
2367 VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT = 0x00000100, /// Format supports blending in case it's used for color attachment images
2368 VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000200, /// Format can be used for depth/stencil attachment images
Jesse Hall3fbc8562015-11-29 22:10:52 -08002369 VK_FORMAT_FEATURE_BLIT_SRC_BIT = 0x00000400, /// Format can be used as the source image of blits with vkCommandBlitImage
2370 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 -08002371 VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT = 0x00001000,
Jesse Hall26763382016-05-20 07:13:52 -07002372
Ian Elliott28bd2c32017-10-13 09:21:12 -06002373 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04002374 VK_FORMAT_FEATURE_TRANSFER_SRC_BIT = 0x00004000,
2375 VK_FORMAT_FEATURE_TRANSFER_DST_BIT = 0x00008000,
2376 VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT = 0x00020000,
2377 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT = 0x00040000,
2378 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT = 0x00080000,
2379 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT = 0x00100000,
2380 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT = 0x00200000,
2381 VK_FORMAT_FEATURE_DISJOINT_BIT = 0x00400000,
2382 VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT = 0x00800000,
2383
Jesse Hallad250842017-03-10 18:35:38 -08002384 //@extension("VK_IMG_filter_cubic") // 16
Jesse Hall26763382016-05-20 07:13:52 -07002385 VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG = 0x00002000,
Jesse Hall77ad05b2017-03-10 22:02:20 -08002386
Jesse Hallad250842017-03-10 18:35:38 -08002387 //@extension("VK_KHR_maintenance1") // 70
Jesse Hall77ad05b2017-03-10 22:02:20 -08002388 VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR = 0x00004000,
2389 VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR = 0x00008000,
Jesse Hall7ba0ac72017-07-07 17:13:23 -07002390
2391 //@extension("VK_EXT_sampler_filter_minmax") // 131
2392 VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT_EXT = 0x00010000,
Jesse Hall076f95d2017-09-20 11:34:47 -07002393
2394 //@extension("VK_KHR_sampler_ycbcr_conversion") // 157
2395 VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT_KHR = 0x00020000,
2396 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT_KHR = 0x00040000,
2397 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT_KHR = 0x00080000,
2398 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT_KHR = 0x00100000,
2399 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT_KHR = 0x00200000,
2400 VK_FORMAT_FEATURE_DISJOINT_BIT_KHR = 0x00400000,
2401 VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT_KHR = 0x00800000,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002402}
2403
2404/// Query control flags
Jesse Halld8bade02015-11-24 10:24:18 -08002405type VkFlags VkQueryControlFlags
2406bitfield VkQueryControlFlagBits {
Jesse Hall65ab5522015-11-30 00:07:16 -08002407 VK_QUERY_CONTROL_PRECISE_BIT = 0x00000001,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002408}
2409
2410/// Query result flags
Jesse Halld8bade02015-11-24 10:24:18 -08002411type VkFlags VkQueryResultFlags
2412bitfield VkQueryResultFlagBits {
Jesse Halld27f6aa2015-08-15 17:58:48 -07002413 VK_QUERY_RESULT_64_BIT = 0x00000001, /// Results of the queries are written to the destination buffer as 64-bit values
2414 VK_QUERY_RESULT_WAIT_BIT = 0x00000002, /// Results of the queries are waited on before proceeding with the result copy
2415 VK_QUERY_RESULT_WITH_AVAILABILITY_BIT = 0x00000004, /// Besides the results of the query, the availability of the results is also written
2416 VK_QUERY_RESULT_PARTIAL_BIT = 0x00000008, /// Copy the partial results of the query even if the final results aren't available
2417}
2418
2419/// Shader module creation flags
Jesse Halld8bade02015-11-24 10:24:18 -08002420type VkFlags VkShaderModuleCreateFlags
Jesse Halla6429252015-11-29 18:59:42 -08002421//bitfield VkShaderModuleCreateFlagBits {
2422//}
Jesse Halld27f6aa2015-08-15 17:58:48 -07002423
Jesse Halld27f6aa2015-08-15 17:58:48 -07002424/// Event creation flags
Jesse Halld8bade02015-11-24 10:24:18 -08002425type VkFlags VkEventCreateFlags
Jesse Halla6429252015-11-29 18:59:42 -08002426//bitfield VkEventCreateFlagBits {
2427//}
Jesse Halld27f6aa2015-08-15 17:58:48 -07002428
Jesse Halla15a4bf2015-11-19 22:48:02 -08002429/// Command buffer usage flags
Jesse Hall3fbc8562015-11-29 22:10:52 -08002430type VkFlags VkCommandBufferUsageFlags
2431bitfield VkCommandBufferUsageFlagBits {
2432 VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT = 0x00000001,
2433 VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT = 0x00000002,
2434 VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT = 0x00000004,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002435}
2436
2437/// Pipeline statistics flags
Jesse Halld8bade02015-11-24 10:24:18 -08002438type VkFlags VkQueryPipelineStatisticFlags
2439bitfield VkQueryPipelineStatisticFlagBits {
Jesse Hallae38f732015-11-19 21:32:50 -08002440 VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT = 0x00000001, /// Optional
2441 VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT = 0x00000002, /// Optional
2442 VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT = 0x00000004, /// Optional
2443 VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT = 0x00000008, /// Optional
2444 VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT = 0x00000010, /// Optional
2445 VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT = 0x00000020, /// Optional
2446 VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT = 0x00000040, /// Optional
2447 VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT = 0x00000080, /// Optional
2448 VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT = 0x00000100, /// Optional
2449 VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT = 0x00000200, /// Optional
2450 VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT = 0x00000400, /// Optional
Jesse Halld27f6aa2015-08-15 17:58:48 -07002451}
2452
2453/// Memory mapping flags
Jesse Halld8bade02015-11-24 10:24:18 -08002454type VkFlags VkMemoryMapFlags
Jesse Halla6429252015-11-29 18:59:42 -08002455//bitfield VkMemoryMapFlagBits {
2456//}
Jesse Halld27f6aa2015-08-15 17:58:48 -07002457
2458/// Bitfield of image aspects
Jesse Halld8bade02015-11-24 10:24:18 -08002459type VkFlags VkImageAspectFlags
2460bitfield VkImageAspectFlagBits {
Jesse Halld27f6aa2015-08-15 17:58:48 -07002461 VK_IMAGE_ASPECT_COLOR_BIT = 0x00000001,
2462 VK_IMAGE_ASPECT_DEPTH_BIT = 0x00000002,
2463 VK_IMAGE_ASPECT_STENCIL_BIT = 0x00000004,
2464 VK_IMAGE_ASPECT_METADATA_BIT = 0x00000008,
Jesse Hall076f95d2017-09-20 11:34:47 -07002465
Ian Elliott28bd2c32017-10-13 09:21:12 -06002466 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04002467 VK_IMAGE_ASPECT_PLANE_0_BIT = 0x00000010,
2468 VK_IMAGE_ASPECT_PLANE_1_BIT = 0x00000020,
2469 VK_IMAGE_ASPECT_PLANE_2_BIT = 0x00000040,
2470
Jesse Hall076f95d2017-09-20 11:34:47 -07002471 //@extension("VK_KHR_sampler_ycbcr_conversion") // 157
2472 VK_IMAGE_ASPECT_PLANE_0_BIT_KHR = 0x00000010,
2473 VK_IMAGE_ASPECT_PLANE_1_BIT_KHR = 0x00000020,
2474 VK_IMAGE_ASPECT_PLANE_2_BIT_KHR = 0x00000040,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002475}
2476
2477/// Sparse memory bind flags
Jesse Halld8bade02015-11-24 10:24:18 -08002478type VkFlags VkSparseMemoryBindFlags
Jesse Hall091ed9e2015-11-30 00:55:29 -08002479bitfield VkSparseMemoryBindFlagBits {
2480 VK_SPARSE_MEMORY_BIND_METADATA_BIT = 0x00000001,
2481}
Jesse Halld27f6aa2015-08-15 17:58:48 -07002482
2483/// Sparse image memory requirements flags
Jesse Halld8bade02015-11-24 10:24:18 -08002484type VkFlags VkSparseImageFormatFlags
2485bitfield VkSparseImageFormatFlagBits {
Jesse Hallb00daad2015-11-29 19:46:20 -08002486 VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT = 0x00000001, /// Image uses a single miptail region for all array slices
2487 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.
2488 VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT = 0x00000004, /// Image uses a non-standard sparse block size
Jesse Halld27f6aa2015-08-15 17:58:48 -07002489}
2490
2491/// Pipeline stages
Jesse Halld8bade02015-11-24 10:24:18 -08002492type VkFlags VkPipelineStageFlags
2493bitfield VkPipelineStageFlagBits {
Jesse Halld27f6aa2015-08-15 17:58:48 -07002494 VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT = 0x00000001, /// Before subsequent commands are processed
2495 VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT = 0x00000002, /// Draw/DispatchIndirect command fetch
2496 VK_PIPELINE_STAGE_VERTEX_INPUT_BIT = 0x00000004, /// Vertex/index fetch
2497 VK_PIPELINE_STAGE_VERTEX_SHADER_BIT = 0x00000008, /// Vertex shading
Jesse Hallae38f732015-11-19 21:32:50 -08002498 VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT = 0x00000010, /// Tessellation control shading
2499 VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT = 0x00000020, /// Tessellation evaluation shading
Jesse Halld27f6aa2015-08-15 17:58:48 -07002500 VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT = 0x00000040, /// Geometry shading
2501 VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT = 0x00000080, /// Fragment shading
2502 VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT = 0x00000100, /// Early fragment (depth/stencil) tests
2503 VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT = 0x00000200, /// Late fragment (depth/stencil) tests
2504 VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT = 0x00000400, /// Color attachment writes
2505 VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT = 0x00000800, /// Compute shading
2506 VK_PIPELINE_STAGE_TRANSFER_BIT = 0x00001000, /// Transfer/copy operations
Jesse Hall543a7ff2016-01-08 16:38:30 -08002507 VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT = 0x00002000,
2508 VK_PIPELINE_STAGE_HOST_BIT = 0x00004000, /// Indicates host (CPU) is a source/sink of the dependency
Jesse Halld27f6aa2015-08-15 17:58:48 -07002509
Jesse Hall543a7ff2016-01-08 16:38:30 -08002510 VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT = 0x00008000, /// All stages of the graphics pipeline
2511 VK_PIPELINE_STAGE_ALL_COMMANDS_BIT = 0x00010000, /// All graphics, compute, copy, and transition commands
Chris Forbes289cb792016-12-30 15:03:55 +13002512
Jesse Hallad250842017-03-10 18:35:38 -08002513 //@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13002514 VK_PIPELINE_STAGE_COMMAND_PROCESS_BIT_NVX = 0x00020000,
Jesse Halla13a3cf2018-07-09 15:51:52 -07002515
2516 //@extension("VK_EXT_conditional_rendering") // 82
2517 VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT = 0x00040000,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07002518}
2519
2520/// Render pass attachment description flags
Jesse Halld8bade02015-11-24 10:24:18 -08002521type VkFlags VkAttachmentDescriptionFlags
2522bitfield VkAttachmentDescriptionFlagBits {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07002523 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 -07002524}
2525
2526/// Subpass description flags
Jesse Halld8bade02015-11-24 10:24:18 -08002527type VkFlags VkSubpassDescriptionFlags
2528bitfield VkSubpassDescriptionFlagBits {
Jesse Hallad250842017-03-10 18:35:38 -08002529 //@extension("VK_NVX_multiview_per_view_attributes") // 98
2530 VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX = 0x00000001,
2531 VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX = 0x00000002,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002532}
2533
2534/// Command pool creation flags
Jesse Hall3fbc8562015-11-29 22:10:52 -08002535type VkFlags VkCommandPoolCreateFlags
2536bitfield VkCommandPoolCreateFlagBits {
2537 VK_COMMAND_POOL_CREATE_TRANSIENT_BIT = 0x00000001, /// Command buffers have a short lifetime
2538 VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT = 0x00000002, /// Command buffers may release their memory individually
Daniel Koch09f7bf92017-10-05 00:26:58 -04002539
Ian Elliott28bd2c32017-10-13 09:21:12 -06002540 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04002541 VK_COMMAND_POOL_CREATE_PROTECTED_BIT = 0x00000004,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002542}
2543
2544/// Command pool reset flags
Jesse Hall3fbc8562015-11-29 22:10:52 -08002545type VkFlags VkCommandPoolResetFlags
2546bitfield VkCommandPoolResetFlagBits {
2547 VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT = 0x00000001, /// Release resources owned by the pool
Jesse Halld27f6aa2015-08-15 17:58:48 -07002548}
2549
Jesse Hall3fbc8562015-11-29 22:10:52 -08002550type VkFlags VkCommandBufferResetFlags
2551bitfield VkCommandBufferResetFlagBits {
2552 VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT = 0x00000001, /// Release resources owned by the buffer
Jesse Hall5ae3abb2015-10-08 14:00:22 -07002553}
2554
Jesse Halld8bade02015-11-24 10:24:18 -08002555type VkFlags VkSampleCountFlags
2556bitfield VkSampleCountFlagBits {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07002557 VK_SAMPLE_COUNT_1_BIT = 0x00000001,
2558 VK_SAMPLE_COUNT_2_BIT = 0x00000002,
2559 VK_SAMPLE_COUNT_4_BIT = 0x00000004,
2560 VK_SAMPLE_COUNT_8_BIT = 0x00000008,
2561 VK_SAMPLE_COUNT_16_BIT = 0x00000010,
2562 VK_SAMPLE_COUNT_32_BIT = 0x00000020,
2563 VK_SAMPLE_COUNT_64_BIT = 0x00000040,
2564}
2565
Jesse Halld8bade02015-11-24 10:24:18 -08002566type VkFlags VkStencilFaceFlags
2567bitfield VkStencilFaceFlagBits {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07002568 VK_STENCIL_FACE_FRONT_BIT = 0x00000001, /// Front face
2569 VK_STENCIL_FACE_BACK_BIT = 0x00000002, /// Back face
Jesse Hallc7467b72015-11-29 21:05:26 -08002570 VK_STENCIL_FRONT_AND_BACK = 0x00000003,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002571}
2572
Jesse Halla6429252015-11-29 18:59:42 -08002573/// Instance creation flags
2574type VkFlags VkInstanceCreateFlags
2575//bitfield VkInstanceCreateFlagBits {
2576//}
2577
2578/// Device creation flags
2579type VkFlags VkDeviceCreateFlags
2580//bitfield VkDeviceCreateFlagBits {
2581//}
2582
2583/// Device queue creation flags
2584type VkFlags VkDeviceQueueCreateFlags
Ian Elliott28bd2c32017-10-13 09:21:12 -06002585@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04002586bitfield VkDeviceQueueCreateFlagBits {
2587 VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT = 0x00000001,
2588}
Jesse Halla6429252015-11-29 18:59:42 -08002589
2590/// Query pool creation flags
2591type VkFlags VkQueryPoolCreateFlags
2592//bitfield VkQueryPoolCreateFlagBits {
2593//}
2594
2595/// Buffer view creation flags
2596type VkFlags VkBufferViewCreateFlags
2597//bitfield VkBufferViewCreateFlagBits {
2598//}
2599
2600/// Pipeline cache creation flags
2601type VkFlags VkPipelineCacheCreateFlags
2602//bitfield VkPipelineCacheCreateFlagBits {
2603//}
2604
2605/// Pipeline shader stage creation flags
2606type VkFlags VkPipelineShaderStageCreateFlags
2607//bitfield VkPipelineShaderStageCreateFlagBits {
2608//}
2609
2610/// Descriptor set layout creation flags
2611type VkFlags VkDescriptorSetLayoutCreateFlags
Jesse Hallad250842017-03-10 18:35:38 -08002612bitfield VkDescriptorSetLayoutCreateFlagBits {
2613 //@extension("VK_KHR_push_descriptor") // 81
2614 VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR = 0x00000001,
Jesse Hall72e6a132018-04-06 13:00:44 -07002615
2616 //@extension("VK_EXT_descriptor_indexing") // 162
2617 VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT = 0x00000002,
Jesse Hallad250842017-03-10 18:35:38 -08002618}
Jesse Halla6429252015-11-29 18:59:42 -08002619
2620/// Pipeline vertex input state creation flags
2621type VkFlags VkPipelineVertexInputStateCreateFlags
2622//bitfield VkPipelineVertexInputStateCreateFlagBits {
2623//}
2624
2625/// Pipeline input assembly state creation flags
2626type VkFlags VkPipelineInputAssemblyStateCreateFlags
2627//bitfield VkPipelineInputAssemblyStateCreateFlagBits {
2628//}
2629
2630/// Tessellation state creation flags
2631type VkFlags VkPipelineTessellationStateCreateFlags
2632//bitfield VkPipelineTessellationStateCreateFlagBits {
2633//}
2634
2635/// Viewport state creation flags
2636type VkFlags VkPipelineViewportStateCreateFlags
2637//bitfield VkPipelineViewportStateCreateFlagBits {
2638//}
2639
Jesse Hall3fbc8562015-11-29 22:10:52 -08002640/// Rasterization state creation flags
2641type VkFlags VkPipelineRasterizationStateCreateFlags
2642//bitfield VkPipelineRasterizationStateCreateFlagBits {
Jesse Halla6429252015-11-29 18:59:42 -08002643//}
2644
2645/// Multisample state creation flags
2646type VkFlags VkPipelineMultisampleStateCreateFlags
2647//bitfield VkPipelineMultisampleStateCreateFlagBits {
2648//}
2649
2650/// Color blend state creation flags
2651type VkFlags VkPipelineColorBlendStateCreateFlags
2652//bitfield VkPipelineColorBlendStateCreateFlagBits {
2653//}
2654
2655/// Depth/stencil state creation flags
2656type VkFlags VkPipelineDepthStencilStateCreateFlags
2657//bitfield VkPipelineDepthStencilStateCreateFlagBits {
2658//}
2659
2660/// Dynamic state creation flags
2661type VkFlags VkPipelineDynamicStateCreateFlags
2662//bitfield VkPipelineDynamicStateCreateFlagBits {
2663//}
2664
2665/// Pipeline layout creation flags
2666type VkFlags VkPipelineLayoutCreateFlags
2667//bitfield VkPipelineLayoutCreateFlagBits {
2668//}
2669
2670/// Sampler creation flags
2671type VkFlags VkSamplerCreateFlags
2672//bitfield VkSamplerCreateFlagBits {
2673//}
2674
2675/// Render pass creation flags
2676type VkFlags VkRenderPassCreateFlags
2677//bitfield VkRenderPassCreateFlagBits {
2678//}
2679
2680/// Framebuffer creation flags
2681type VkFlags VkFramebufferCreateFlags
2682//bitfield VkFramebufferCreateFlagBits {
2683//}
2684
Jesse Halldc6d36c2015-11-29 19:12:15 -08002685/// Dependency flags
2686type VkFlags VkDependencyFlags
2687bitfield VkDependencyFlagBits {
2688 VK_DEPENDENCY_BY_REGION_BIT = 0x00000001,
Jesse Hallad250842017-03-10 18:35:38 -08002689
Ian Elliott28bd2c32017-10-13 09:21:12 -06002690 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04002691 VK_DEPENDENCY_DEVICE_GROUP_BIT = 0x00000004,
2692 VK_DEPENDENCY_VIEW_LOCAL_BIT = 0x00000002,
Jesse Hallad250842017-03-10 18:35:38 -08002693
Daniel Koch09f7bf92017-10-05 00:26:58 -04002694 //@extension("VK_KHR_multiview") // 54
2695 VK_DEPENDENCY_VIEW_LOCAL_BIT_KHR = 0x00000002,
2696
2697 //@extension("VK_KHR_device_group") // 61
2698 VK_DEPENDENCY_DEVICE_GROUP_BIT_KHR = 0x00000004,
Jesse Halldc6d36c2015-11-29 19:12:15 -08002699}
2700
Jesse Hallc7467b72015-11-29 21:05:26 -08002701/// Cull mode flags
2702type VkFlags VkCullModeFlags
2703bitfield VkCullModeFlagBits {
2704 VK_CULL_MODE_NONE = 0x00000000,
2705 VK_CULL_MODE_FRONT_BIT = 0x00000001,
2706 VK_CULL_MODE_BACK_BIT = 0x00000002,
2707 VK_CULL_MODE_FRONT_AND_BACK = 0x00000003,
2708}
2709
Ian Elliott28bd2c32017-10-13 09:21:12 -06002710//@vulkan1_1 flags
Daniel Koch09f7bf92017-10-05 00:26:58 -04002711
2712/// Subgroup feature flags
2713type VkFlags VkSubgroupFeatureFlags
2714bitfield VkSubgroupFeatureFlagBits {
2715 VK_SUBGROUP_FEATURE_BASIC_BIT = 0x00000001,
2716 VK_SUBGROUP_FEATURE_VOTE_BIT = 0x00000002,
2717 VK_SUBGROUP_FEATURE_ARITHMETIC_BIT = 0x00000004,
2718 VK_SUBGROUP_FEATURE_BALLOT_BIT = 0x00000008,
2719 VK_SUBGROUP_FEATURE_SHUFFLE_BIT = 0x00000010,
2720 VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT = 0x00000020,
2721 VK_SUBGROUP_FEATURE_CLUSTERED_BIT = 0x00000040,
2722 VK_SUBGROUP_FEATURE_QUAD_BIT = 0x00000080,
Jesse Hall72e6a132018-04-06 13:00:44 -07002723
2724 //@extension("VK_NV_shader_subgroup_partitioned") // 199
2725 VK_SUBGROUP_FEATURE_PARTITIONED_BIT_NV = 0x00000100,
Daniel Koch09f7bf92017-10-05 00:26:58 -04002726}
2727
2728/// Peer memory feature flags
2729type VkFlags VkPeerMemoryFeatureFlags
2730bitfield VkPeerMemoryFeatureFlagBits {
2731 VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT = 0x00000001,
2732 VK_PEER_MEMORY_FEATURE_COPY_DST_BIT = 0x00000002,
2733 VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT = 0x00000004,
2734 VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT = 0x00000008,
2735}
2736
2737/// Memory allocation flags
2738type VkFlags VkMemoryAllocateFlags
2739bitfield VkMemoryAllocateFlagBits {
2740 VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT = 0x00000001,
2741}
2742
2743type VkFlags VkCommandPoolTrimFlags
2744//bitfield VkCommandPoolTrimFlagBits {
2745//}
2746
2747type VkFlags VkDescriptorUpdateTemplateCreateFlags
2748//bitfield VkDescriptorUpdateTemplateCreateFlagBits {
2749//}
2750
2751/// External memory handle type flags
2752type VkFlags VkExternalMemoryHandleTypeFlags
2753bitfield VkExternalMemoryHandleTypeFlagBits {
2754 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT = 0x00000001,
2755 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT = 0x00000002,
2756 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 0x00000004,
2757 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT = 0x00000008,
2758 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT = 0x00000010,
2759 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT = 0x00000020,
2760 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT = 0x00000040,
Jesse Hall8c954d32018-01-17 22:06:20 -08002761
Jesse Hall8c954d32018-01-17 22:06:20 -08002762 //@extension("VK_EXT_external_memory_host") // 179
Jesse Hall36215a92018-01-18 15:04:37 -08002763 VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT = 0x00000080,
2764 VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT = 0x00000100,
2765
2766 //@extension("VK_EXT_external_memory_dma_buf") // 126
2767 VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT = 0x00000200,
2768
2769 //@extension("VK_ANDROID_external_memory_android_hardware_buffer") // 130
2770 VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID = 0x00000400,
Daniel Koch09f7bf92017-10-05 00:26:58 -04002771}
2772
2773/// External memory feature flags
2774type VkFlags VkExternalMemoryFeatureFlags
2775bitfield VkExternalMemoryFeatureFlagBits {
2776 VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT = 0x00000001,
2777 VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT = 0x00000002,
2778 VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT = 0x00000004,
2779}
2780
2781/// External fence handle type flags
2782type VkFlags VkExternalFenceHandleTypeFlags
2783bitfield VkExternalFenceHandleTypeFlagBits {
2784 VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT = 0x00000001,
2785 VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT = 0x00000002,
2786 VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 0x00000004,
2787 VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT = 0x00000008,
2788}
2789
2790/// External fence feature flags
2791type VkFlags VkExternalFenceFeatureFlags
2792bitfield VkExternalFenceFeatureFlagBits {
2793 VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT = 0x00000001,
2794 VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT = 0x00000002,
2795}
2796
2797/// Fence import flags
2798type VkFlags VkFenceImportFlags
2799bitfield VkFenceImportFlagBits {
2800 VK_FENCE_IMPORT_TEMPORARY_BIT = 0x00000001,
2801}
2802
2803/// Semaphore import flags
2804type VkFlags VkSemaphoreImportFlags
2805bitfield VkSemaphoreImportFlagBits {
2806 VK_SEMAPHORE_IMPORT_TEMPORARY_BIT = 0x00000001,
2807}
2808
2809/// External semaphore handle type flags
2810type VkFlags VkExternalSemaphoreHandleTypeFlags
2811bitfield VkExternalSemaphoreHandleTypeFlagBits {
2812 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT = 0x00000001,
2813 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT = 0x00000002,
2814 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 0x00000004,
2815 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT = 0x00000008,
2816 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT = 0x00000010,
2817}
2818
2819/// External semaphore feature flags
2820type VkFlags VkExternalSemaphoreFeatureFlags
2821bitfield VkExternalSemaphoreFeatureFlagBits {
2822 VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT = 0x00000001,
2823 VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT = 0x00000002,
2824}
2825
Jesse Hallad250842017-03-10 18:35:38 -08002826@extension("VK_KHR_surface") // 1
Jesse Halld8bade02015-11-24 10:24:18 -08002827type VkFlags VkSurfaceTransformFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08002828@extension("VK_KHR_surface") // 1
Jesse Halld8bade02015-11-24 10:24:18 -08002829bitfield VkSurfaceTransformFlagBitsKHR {
Jesse Hallf9fa9a52016-01-08 16:08:51 -08002830 VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR = 0x00000001,
Jesse Hall9ba8bc82015-11-30 16:22:16 -08002831 VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR = 0x00000002,
2832 VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR = 0x00000004,
2833 VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR = 0x00000008,
2834 VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR = 0x00000010,
2835 VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR = 0x00000020,
2836 VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR = 0x00000040,
2837 VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR = 0x00000080,
2838 VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR = 0x00000100,
Michael Lentine88594d72015-11-12 12:49:45 -08002839}
Jesse Halld27f6aa2015-08-15 17:58:48 -07002840
Jesse Hallad250842017-03-10 18:35:38 -08002841@extension("VK_KHR_surface") // 1
Jesse Halla6429252015-11-29 18:59:42 -08002842type VkFlags VkCompositeAlphaFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08002843@extension("VK_KHR_surface") // 1
Jesse Halla6429252015-11-29 18:59:42 -08002844bitfield VkCompositeAlphaFlagBitsKHR {
2845 VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR = 0x00000001,
2846 VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR = 0x00000002,
2847 VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR = 0x00000004,
2848 VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR = 0x00000008,
2849}
2850
Jesse Hallad250842017-03-10 18:35:38 -08002851@extension("VK_KHR_swapchain") // 2
Jesse Hallf4ab2b12015-11-30 16:04:55 -08002852type VkFlags VkSwapchainCreateFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08002853@extension("VK_KHR_swapchain") // 2
2854bitfield VkSwapchainCreateFlagBitsKHR {
Ian Elliott28bd2c32017-10-13 09:21:12 -06002855 //@vulkan1_1
Jesse Hall8c954d32018-01-17 22:06:20 -08002856 VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR = 0x00000001,
Daniel Koch09f7bf92017-10-05 00:26:58 -04002857 VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR = 0x00000002,
2858}
2859
Ian Elliott28bd2c32017-10-13 09:21:12 -06002860@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04002861@extension("VK_KHR_swapchain") // 2
2862type VkFlags VkDeviceGroupPresentModeFlagsKHR
Ian Elliott28bd2c32017-10-13 09:21:12 -06002863@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04002864@extension("VK_KHR_swapchain") // 2
2865bitfield VkDeviceGroupPresentModeFlagBitsKHR {
2866 VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR = 0x00000001,
2867 VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR = 0x00000002,
2868 VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR = 0x00000004,
2869 VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR = 0x00000008,
Jesse Hallad250842017-03-10 18:35:38 -08002870}
Jesse Hallf4ab2b12015-11-30 16:04:55 -08002871
Jesse Hallad250842017-03-10 18:35:38 -08002872@extension("VK_KHR_display") // 3
Jesse Halld8bade02015-11-24 10:24:18 -08002873type VkFlags VkDisplayPlaneAlphaFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08002874@extension("VK_KHR_display") // 3
Jesse Halld8bade02015-11-24 10:24:18 -08002875bitfield VkDisplayPlaneAlphaFlagBitsKHR {
Jesse Hallf4ab2b12015-11-30 16:04:55 -08002876 VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR = 0x00000001,
2877 VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR = 0x00000002,
2878 VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR = 0x00000004,
2879 VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR = 0x00000008,
Jesse Hall1356b0d2015-11-23 17:24:58 -08002880}
2881
Jesse Hallad250842017-03-10 18:35:38 -08002882@extension("VK_KHR_display") // 3
Jesse Hallf4ab2b12015-11-30 16:04:55 -08002883type VkFlags VkDisplaySurfaceCreateFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08002884//@extension("VK_KHR_display") // 3
Jesse Hallf4ab2b12015-11-30 16:04:55 -08002885//bitfield VkDisplaySurfaceCreateFlagBitsKHR {
2886//}
2887
Jesse Hallad250842017-03-10 18:35:38 -08002888@extension("VK_KHR_display") // 3
Jesse Hall9ba8bc82015-11-30 16:22:16 -08002889type VkFlags VkDisplayModeCreateFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08002890//@extension("VK_KHR_display") // 3
Jesse Hall9ba8bc82015-11-30 16:22:16 -08002891//bitfield VkDisplayModeCreateFlagBitsKHR {
2892//}
2893
Jesse Hallad250842017-03-10 18:35:38 -08002894@extension("VK_KHR_xlib_surface") // 5
Jesse Hallf9fa9a52016-01-08 16:08:51 -08002895type VkFlags VkXlibSurfaceCreateFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08002896//@extension("VK_KHR_xlib_surface") // 5
Jesse Hallf9fa9a52016-01-08 16:08:51 -08002897//bitfield VkXlibSurfaceCreateFlagBitsKHR {
2898//}
2899
Jesse Hallad250842017-03-10 18:35:38 -08002900@extension("VK_KHR_xcb_surface") // 6
Jesse Hallf9fa9a52016-01-08 16:08:51 -08002901type VkFlags VkXcbSurfaceCreateFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08002902//@extension("VK_KHR_xcb_surface") // 6
Jesse Hallf9fa9a52016-01-08 16:08:51 -08002903//bitfield VkXcbSurfaceCreateFlagBitsKHR {
2904//}
2905
Jesse Hallad250842017-03-10 18:35:38 -08002906@extension("VK_KHR_wayland_surface") // 7
Jesse Hallf9fa9a52016-01-08 16:08:51 -08002907type VkFlags VkWaylandSurfaceCreateFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08002908//@extension("VK_KHR_wayland_surface") // 7
Jesse Hallf9fa9a52016-01-08 16:08:51 -08002909//bitfield VkWaylandSurfaceCreateFlagBitsKHR {
2910//}
2911
Jesse Hallad250842017-03-10 18:35:38 -08002912@extension("VK_KHR_mir_surface") // 8
Jesse Hallf9fa9a52016-01-08 16:08:51 -08002913type VkFlags VkMirSurfaceCreateFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08002914//@extension("VK_KHR_mir_surface") // 8
Jesse Hallf9fa9a52016-01-08 16:08:51 -08002915//bitfield VkMirSurfaceCreateFlagBitsKHR {
2916//}
2917
Jesse Hallad250842017-03-10 18:35:38 -08002918@extension("VK_KHR_android_surface") // 9
Jesse Hallf9fa9a52016-01-08 16:08:51 -08002919type VkFlags VkAndroidSurfaceCreateFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08002920//@extension("VK_KHR_android_surface") // 9
Jesse Hallf9fa9a52016-01-08 16:08:51 -08002921//bitfield VkAndroidSurfaceCreateFlagBitsKHR {
2922//}
2923
Jesse Hallad250842017-03-10 18:35:38 -08002924@extension("VK_KHR_win32_surface") // 10
Jesse Hallf9fa9a52016-01-08 16:08:51 -08002925type VkFlags VkWin32SurfaceCreateFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08002926//@extension("VK_KHR_win32_surface") // 10
Jesse Hallf9fa9a52016-01-08 16:08:51 -08002927//bitfield VkWin32SurfaceCreateFlagBitsKHR {
2928//}
2929
Jesse Hallad250842017-03-10 18:35:38 -08002930@extension("VK_ANDROID_native_buffer") // 11
Jesse Hall889cd9a2017-02-25 22:12:23 -08002931type VkFlags VkSwapchainImageUsageFlagsANDROID
Jesse Hallad250842017-03-10 18:35:38 -08002932@extension("VK_ANDROID_native_buffer") // 11
Jesse Hall889cd9a2017-02-25 22:12:23 -08002933bitfield VkSwapchainImageUsageFlagBitsANDROID {
2934 VK_SWAPCHAIN_IMAGE_USAGE_FLAGS_SHARED_BIT_ANDROID = 0x00000001,
2935}
2936
Jesse Hallad250842017-03-10 18:35:38 -08002937@extension("VK_EXT_debug_report") // 12
Jesse Hall715b86a2016-01-16 16:34:29 -08002938type VkFlags VkDebugReportFlagsEXT
Jesse Hallad250842017-03-10 18:35:38 -08002939@extension("VK_EXT_debug_report") // 12
Jesse Hall715b86a2016-01-16 16:34:29 -08002940bitfield VkDebugReportFlagBitsEXT {
Jesse Halle2948d82016-02-25 04:19:32 -08002941 VK_DEBUG_REPORT_INFORMATION_BIT_EXT = 0x00000001,
2942 VK_DEBUG_REPORT_WARNING_BIT_EXT = 0x00000002,
2943 VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT = 0x00000004,
Jesse Hall715b86a2016-01-16 16:34:29 -08002944 VK_DEBUG_REPORT_ERROR_BIT_EXT = 0x00000008,
2945 VK_DEBUG_REPORT_DEBUG_BIT_EXT = 0x00000010,
2946}
2947
Jesse Hallad250842017-03-10 18:35:38 -08002948@extension("VK_NV_external_memory_capabilities") // 56
Chris Forbes289cb792016-12-30 15:03:55 +13002949type VkFlags VkExternalMemoryHandleTypeFlagsNV
Jesse Hallad250842017-03-10 18:35:38 -08002950@extension("VK_NV_external_memory_capabilities") // 56
Chris Forbes289cb792016-12-30 15:03:55 +13002951bitfield VkExternalMemoryHandleTypeFlagBitsNV {
Jesse Halleb02c472017-02-24 15:13:45 -08002952 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV = 0x00000001,
2953 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV = 0x00000002,
2954 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV = 0x00000004,
2955 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV = 0x00000008,
Chris Forbes289cb792016-12-30 15:03:55 +13002956}
2957
Jesse Hallad250842017-03-10 18:35:38 -08002958@extension("VK_NV_external_memory_capabilities") // 56
Chris Forbes289cb792016-12-30 15:03:55 +13002959type VkFlags VkExternalMemoryFeatureFlagsNV
Jesse Hallad250842017-03-10 18:35:38 -08002960@extension("VK_NV_external_memory_capabilities") // 56
Chris Forbes289cb792016-12-30 15:03:55 +13002961bitfield VkExternalMemoryFeatureFlagBitsNV {
Jesse Halleb02c472017-02-24 15:13:45 -08002962 VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV = 0x00000001,
2963 VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV = 0x00000002,
2964 VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV = 0x00000004,
Chris Forbes289cb792016-12-30 15:03:55 +13002965}
2966
Daniel Koch09f7bf92017-10-05 00:26:58 -04002967@extension("VK_KHR_device_group") // 61
2968type VkFlags VkPeerMemoryFeatureFlagsKHR
2969@extension("VK_KHR_device_group") // 61
2970bitfield VkPeerMemoryFeatureFlagBitsKHR {
2971 VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT_KHR = 0x00000001,
2972 VK_PEER_MEMORY_FEATURE_COPY_DST_BIT_KHR = 0x00000002,
2973 VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT_KHR = 0x00000004,
2974 VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT_KHR = 0x00000008,
Jesse Hallad250842017-03-10 18:35:38 -08002975}
2976
Daniel Koch09f7bf92017-10-05 00:26:58 -04002977@extension("VK_KHR_device_group") // 61
2978type VkFlags VkMemoryAllocateFlagsKHR
2979@extension("VK_KHR_device_group") // 61
2980bitfield VkMemoryAllocateFlagBitsKHR {
2981 VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT_KHR = 0x00000001,
Jesse Hallad250842017-03-10 18:35:38 -08002982}
2983
2984@extension("VK_NN_vi_surface") // 63
Jesse Hall77ad05b2017-03-10 22:02:20 -08002985type VkFlags VkViSurfaceCreateFlagsNN
Jesse Hallad250842017-03-10 18:35:38 -08002986//@extension("VK_NN_vi_surface") // 63
Jesse Hall77ad05b2017-03-10 22:02:20 -08002987//bitfield VkViSurfaceCreateFlagBitsNN {
2988//}
2989
Jesse Hallad250842017-03-10 18:35:38 -08002990@extension("VK_KHR_maintenance1") // 70
Jesse Hall77ad05b2017-03-10 22:02:20 -08002991type VkFlags VkCommandPoolTrimFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08002992//@extension("VK_KHR_maintenance1") // 70
Jesse Hall77ad05b2017-03-10 22:02:20 -08002993//bitfield VkCommandPoolTrimFlagBitsKHR {
2994//}
2995
Jesse Hall9492f992017-08-28 12:10:06 -07002996@extension("VK_KHR_external_memory_capabilities") // 72
2997type VkFlags VkExternalMemoryHandleTypeFlagsKHR
2998@extension("VK_KHR_external_memory_capabilities") // 72
2999bitfield VkExternalMemoryHandleTypeFlagBitsKHR {
3000 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = 0x00000001,
3001 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = 0x00000002,
3002 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = 0x00000004,
3003 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT_KHR = 0x00000008,
3004 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT_KHR = 0x00000010,
3005 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT_KHR = 0x00000020,
3006 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT_KHR = 0x00000040,
Jesse Hallad250842017-03-10 18:35:38 -08003007}
3008
Jesse Hall9492f992017-08-28 12:10:06 -07003009@extension("VK_KHR_external_memory_capabilities") // 72
3010type VkFlags VkExternalMemoryFeatureFlagsKHR
3011@extension("VK_KHR_external_memory_capabilities") // 72
3012bitfield VkExternalMemoryFeatureFlagBitsKHR {
3013 VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_KHR = 0x00000001,
3014 VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_KHR = 0x00000002,
3015 VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_KHR = 0x00000004,
Jesse Hallad250842017-03-10 18:35:38 -08003016}
3017
Jesse Hall9492f992017-08-28 12:10:06 -07003018@extension("VK_KHR_external_semaphore_capabilities") // 77
3019type VkFlags VkExternalSemaphoreHandleTypeFlagsKHR
3020@extension("VK_KHR_external_semaphore_capabilities") // 77
3021bitfield VkExternalSemaphoreHandleTypeFlagBitsKHR {
3022 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = 0x00000001
3023 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = 0x00000002
3024 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = 0x00000004
3025 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT_KHR = 0x00000008
3026 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_FENCE_FD_BIT_KHR = 0x00000010
Jesse Hallad250842017-03-10 18:35:38 -08003027}
3028
Jesse Hall9492f992017-08-28 12:10:06 -07003029@extension("VK_KHR_external_semaphore_capabilities") // 77
3030type VkFlags VkExternalSemaphoreFeatureFlagsKHR
3031@extension("VK_KHR_external_semaphore_capabilities") // 77
3032bitfield VkExternalSemaphoreFeatureFlagBitsKHR {
3033 VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT_KHR = 0x00000001,
3034 VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT_KHR = 0x00000002,
3035}
3036
3037@extension("VK_KHR_external_semaphore") // 78
3038type VkFlags VkSemaphoreImportFlagsKHR
3039@extension("VK_KHR_external_semaphore") // 78
3040bitfield VkSemaphoreImportFlagBitsKHR {
3041 VK_SEMAPHORE_IMPORT_TEMPORARY_BIT_KHR = 0x00000001,
Jesse Hallad250842017-03-10 18:35:38 -08003042}
3043
Jesse Halla13a3cf2018-07-09 15:51:52 -07003044@extension("VK_EXT_conditional_rendering") // 82
3045type VkFlags VkConditionalRenderingFlagsEXT
3046@extension("VK_EXT_conditional_rendering") // 82
3047bitfield VkConditionalRenderingFlagBitsEXT {
3048 VK_CONDITIONAL_RENDERING_INVERTED_BIT_EXT = 0x00000001,
3049}
3050
Jesse Hallad250842017-03-10 18:35:38 -08003051@extension("VK_KHR_descriptor_update_template") // 86
3052type VkFlags VkDescriptorUpdateTemplateCreateFlagsKHR
3053//@extension("VK_KHR_descriptor_update_template") // 86
3054//bitfield VkDescriptorUpdateTemplateCreateFlagBitsKHR {
3055//}
3056
3057@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13003058type VkFlags VkIndirectCommandsLayoutUsageFlagsNVX
Jesse Hallad250842017-03-10 18:35:38 -08003059@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13003060bitfield VkIndirectCommandsLayoutUsageFlagBitsNVX {
Jesse Halleb02c472017-02-24 15:13:45 -08003061 VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NVX = 0x00000001,
3062 VK_INDIRECT_COMMANDS_LAYOUT_USAGE_SPARSE_SEQUENCES_BIT_NVX = 0x00000002,
3063 VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EMPTY_EXECUTIONS_BIT_NVX = 0x00000004,
3064 VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NVX = 0x00000008,
Chris Forbes289cb792016-12-30 15:03:55 +13003065}
3066
Jesse Hallad250842017-03-10 18:35:38 -08003067@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13003068type VkFlags VkObjectEntryUsageFlagsNVX
Jesse Hallad250842017-03-10 18:35:38 -08003069@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13003070bitfield VkObjectEntryUsageFlagBitsNVX {
Jesse Halleb02c472017-02-24 15:13:45 -08003071 VK_OBJECT_ENTRY_USAGE_GRAPHICS_BIT_NVX = 0x00000001,
3072 VK_OBJECT_ENTRY_USAGE_COMPUTE_BIT_NVX = 0x00000002,
Chris Forbes289cb792016-12-30 15:03:55 +13003073}
3074
Jesse Hallad250842017-03-10 18:35:38 -08003075@extension("VK_EXT_display_surface_counter") // 91
Jesse Hall77ad05b2017-03-10 22:02:20 -08003076type VkFlags VkSurfaceCounterFlagsEXT
Jesse Hallad250842017-03-10 18:35:38 -08003077@extension("VK_EXT_display_surface_counter") // 91
Jesse Hall77ad05b2017-03-10 22:02:20 -08003078bitfield VkSurfaceCounterFlagBitsEXT {
3079 VK_SURFACE_COUNTER_VBLANK_EXT = 0x00000001,
3080}
3081
Jesse Hallad250842017-03-10 18:35:38 -08003082@extension("VK_NV_viewport_swizzle") // 99
3083type VkFlags VkPipelineViewportSwizzleStateCreateFlagsNV
3084//@extension("VK_NV_viewport_swizzle") // 99
3085//bitfield VkPipelineViewportSwizzleStateCreateFlagBitsNV {
3086//}
3087
3088@extension("VK_EXT_discard_rectangles") // 100
3089type VkFlags VkPipelineDiscardRectangleStateCreateFlagsEXT
3090//@extension("VK_EXT_discard_rectangles") // 100
3091//bitfield VkPipelineDiscardRectangleStateCreateFlagBitsEXT {
3092//}
3093
Jesse Hall8c954d32018-01-17 22:06:20 -08003094@extension("VK_EXT_conservative_rasterization") // 102
3095type VkFlags VkPipelineRasterizationConservativeStateCreateFlagsEXT
3096//@extension("VK_EXT_conservative_rasterization") // 102
3097//bitfield VkPipelineRasterizationConservativeStateCreateFlagBitsEXT {
3098//}
3099
Jesse Hall9492f992017-08-28 12:10:06 -07003100@extension("VK_KHR_external_fence_capabilities") // 113
3101type VkFlags VkExternalFenceHandleTypeFlagsKHR
3102@extension("VK_KHR_external_fence_capabilities") // 113
3103bitfield VkExternalFenceHandleTypeFlagBitsKHR {
3104 VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = 0x00000001,
3105 VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = 0x00000002,
3106 VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = 0x00000004,
3107 VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT_KHR = 0x00000008,
3108}
3109
3110@extension("VK_KHR_external_fence_capabilities") // 113
3111type VkFlags VkExternalFenceFeatureFlagsKHR
3112@extension("VK_KHR_external_fence_capabilities") // 113
3113bitfield VkExternalFenceFeatureFlagBitsKHR {
3114 VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT_KHR = 0x00000001,
3115 VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT_KHR = 0x00000002,
3116}
3117
3118@extension("VK_KHR_external_fence") // 114
3119type VkFlags VkFenceImportFlagsKHR
3120@extension("VK_KHR_external_fence") // 114
3121bitfield VkFenceImportFlagBitsKHR {
3122 VK_FENCE_IMPORT_TEMPORARY_BIT_KHR = 0x00000001,
3123}
3124
Jesse Hallad250842017-03-10 18:35:38 -08003125@extension("VK_MVK_ios_surface") // 123
3126type VkFlags VkIOSSurfaceCreateFlagsMVK
3127//@extension("VK_MVK_ios_surface") // 123
3128//bitfield VkIOSSurfaceCreateFlagBitsMVK {
3129//}
3130
3131@extension("VK_MVK_macos_surface") // 124
3132type VkFlags VkMacOSSurfaceCreateFlagsMVK
3133//@extension("VK_MVK_macos_surface") // 124
3134//bitfield VkMacOSSurfaceCreateFlagBitsMVK {
3135//}
3136
Jesse Hall8c954d32018-01-17 22:06:20 -08003137@extension("VK_EXT_debug_utils") // 129
3138type VkFlags VkDebugUtilsMessengerCallbackDataFlagsEXT
3139//@extension("VK_EXT_debug_utils") // 129
3140//bitfield VkDebugUtilsMessengerCallbackDataFlagBitsEXT {
3141//}
3142
3143@extension("VK_EXT_debug_utils") // 129
3144type VkFlags VkDebugUtilsMessengerCreateFlagsEXT
3145//@extension("VK_EXT_debug_utils") // 129
3146//bitfield VkDebugUtilsMessengerCreateFlagBitsEXT {
3147//}
3148
3149@extension("VK_EXT_debug_utils") // 129
3150type VkFlags VkDebugUtilsMessageSeverityFlagsEXT
3151@extension("VK_EXT_debug_utils") // 129
3152bitfield VkDebugUtilsMessageSeverityFlagBitsEXT {
3153 VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT = 0x00000001,
3154 VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT = 0x00000010,
3155 VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT = 0x00000100,
3156 VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT = 0x00001000,
3157}
3158
3159@extension("VK_EXT_debug_utils") // 129
3160type VkFlags VkDebugUtilsMessageTypeFlagsEXT
3161@extension("VK_EXT_debug_utils") // 129
3162bitfield VkDebugUtilsMessageTypeFlagBitsEXT {
3163 VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT = 0x00000001,
3164 VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT = 0x00000002,
3165 VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT = 0x00000004,
3166}
3167
Jesse Hall7ba0ac72017-07-07 17:13:23 -07003168@extension("VK_NV_fragment_coverage_to_color") // 150
3169type VkFlags VkPipelineCoverageToColorStateCreateFlagsNV
3170@extension("VK_NV_fragment_coverage_to_color") // 150
3171//bitfield VkPipelineCoverageToColorStateCreateFlagBitsNV {
3172//}
3173
3174@extension("VK_NV_framebuffer_mixed_samples") // 153
3175type VkFlags VkPipelineCoverageModulationStateCreateFlagsNV
3176@extension("VK_NV_framebuffer_mixed_samples") // 153
3177//bitfield VkPipelineCoverageModulationStateCreateFlagBitsNV {
3178//}
3179
Jesse Hall77726222017-09-19 14:49:27 -05003180@extension("VK_EXT_validation_cache") // 161
3181type VkFlags VkValidationCacheCreateFlagsEXT
3182@extension("VK_EXT_validation_cache") // 161
3183//bitfield VkValidationCacheCreateFlagBitsEXT {
3184//}
3185
Jesse Hall72e6a132018-04-06 13:00:44 -07003186@extension("VK_EXT_descriptor_indexing") // 162
3187type VkFlags VkDescriptorBindingFlagsEXT
3188@extension("VK_EXT_descriptor_indexing") // 162
3189bitfield VkDescriptorBindingFlagBitsEXT {
3190 VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT_EXT = 0x00000001,
3191 VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT_EXT = 0x00000002,
3192 VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT_EXT = 0x00000004,
3193 VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT_EXT = 0x00000008,
3194}
3195
Jesse Halld27f6aa2015-08-15 17:58:48 -07003196//////////////////
3197// Structures //
3198//////////////////
3199
3200class VkOffset2D {
3201 s32 x
3202 s32 y
3203}
3204
3205class VkOffset3D {
3206 s32 x
3207 s32 y
3208 s32 z
3209}
3210
3211class VkExtent2D {
Jesse Hall3dd678a2016-01-08 21:52:01 -08003212 u32 width
3213 u32 height
Jesse Halld27f6aa2015-08-15 17:58:48 -07003214}
3215
3216class VkExtent3D {
Jesse Hall3dd678a2016-01-08 21:52:01 -08003217 u32 width
3218 u32 height
3219 u32 depth
Jesse Halld27f6aa2015-08-15 17:58:48 -07003220}
3221
3222class VkViewport {
Jesse Hall65ab5522015-11-30 00:07:16 -08003223 f32 x
3224 f32 y
Jesse Halld27f6aa2015-08-15 17:58:48 -07003225 f32 width
3226 f32 height
3227 f32 minDepth
3228 f32 maxDepth
3229}
3230
3231class VkRect2D {
3232 VkOffset2D offset
3233 VkExtent2D extent
3234}
3235
Jesse Halla15a4bf2015-11-19 22:48:02 -08003236class VkClearRect {
3237 VkRect2D rect
3238 u32 baseArrayLayer
Jesse Hall3fbc8562015-11-29 22:10:52 -08003239 u32 layerCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07003240}
3241
Jesse Hall65ab5522015-11-30 00:07:16 -08003242class VkComponentMapping {
3243 VkComponentSwizzle r
3244 VkComponentSwizzle g
3245 VkComponentSwizzle b
3246 VkComponentSwizzle a
Jesse Halld27f6aa2015-08-15 17:58:48 -07003247}
3248
3249class VkPhysicalDeviceProperties {
3250 u32 apiVersion
3251 u32 driverVersion
Jesse Hall65ab5522015-11-30 00:07:16 -08003252 u32 vendorID
3253 u32 deviceID
Jesse Halld27f6aa2015-08-15 17:58:48 -07003254 VkPhysicalDeviceType deviceType
Jesse Hall65ab5522015-11-30 00:07:16 -08003255 char[VK_MAX_PHYSICAL_DEVICE_NAME_SIZE] deviceName
3256 u8[VK_UUID_SIZE] pipelineCacheUUID
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003257 VkPhysicalDeviceLimits limits
3258 VkPhysicalDeviceSparseProperties sparseProperties
Jesse Halld27f6aa2015-08-15 17:58:48 -07003259}
3260
3261class VkExtensionProperties {
Jesse Hall65ab5522015-11-30 00:07:16 -08003262 char[VK_MAX_EXTENSION_NAME_SIZE] extensionName /// extension name
Jesse Halld27f6aa2015-08-15 17:58:48 -07003263 u32 specVersion /// version of the extension specification implemented
3264}
3265
3266class VkLayerProperties {
Jesse Hall65ab5522015-11-30 00:07:16 -08003267 char[VK_MAX_EXTENSION_NAME_SIZE] layerName /// layer name
Jesse Hall3fbc8562015-11-29 22:10:52 -08003268 u32 specVersion /// version of the layer specification implemented
3269 u32 implementationVersion /// build or release version of the layer's library
Jesse Hall65ab5522015-11-30 00:07:16 -08003270 char[VK_MAX_DESCRIPTION_SIZE] description /// Free-form description of the layer
Jesse Halld27f6aa2015-08-15 17:58:48 -07003271}
3272
Jesse Halla366a512015-11-19 22:30:07 -08003273class VkSubmitInfo {
Jesse Hall03b6fe12015-11-24 12:44:21 -08003274 VkStructureType sType /// Type of structure. Should be VK_STRUCTURE_TYPE_SUBMIT_INFO
3275 const void* pNext /// Next structure in chain
3276 u32 waitSemaphoreCount
Jesse Halla366a512015-11-19 22:30:07 -08003277 const VkSemaphore* pWaitSemaphores
Jesse Hall543a7ff2016-01-08 16:38:30 -08003278 const VkPipelineStageFlags* pWaitDstStageMask
Jesse Hall03b6fe12015-11-24 12:44:21 -08003279 u32 commandBufferCount
Jesse Hall3fbc8562015-11-29 22:10:52 -08003280 const VkCommandBuffer* pCommandBuffers
Jesse Hall03b6fe12015-11-24 12:44:21 -08003281 u32 signalSemaphoreCount
Jesse Halla366a512015-11-19 22:30:07 -08003282 const VkSemaphore* pSignalSemaphores
3283}
3284
Jesse Halld27f6aa2015-08-15 17:58:48 -07003285class VkApplicationInfo {
3286 VkStructureType sType /// Type of structure. Should be VK_STRUCTURE_TYPE_APPLICATION_INFO
3287 const void* pNext /// Next structure in chain
Jesse Hall3fbc8562015-11-29 22:10:52 -08003288 const char* pApplicationName
3289 u32 applicationVersion
Jesse Halld27f6aa2015-08-15 17:58:48 -07003290 const char* pEngineName
3291 u32 engineVersion
3292 u32 apiVersion
3293}
3294
Jesse Hall3fbc8562015-11-29 22:10:52 -08003295class VkAllocationCallbacks {
Jesse Halld27f6aa2015-08-15 17:58:48 -07003296 void* pUserData
Jesse Hall3fbc8562015-11-29 22:10:52 -08003297 PFN_vkAllocationFunction pfnAllocation
3298 PFN_vkReallocationFunction pfnReallocation
Jesse Halld27f6aa2015-08-15 17:58:48 -07003299 PFN_vkFreeFunction pfnFree
Jesse Hall3fbc8562015-11-29 22:10:52 -08003300 PFN_vkInternalAllocationNotification pfnInternalAllocation
Jesse Hall03b6fe12015-11-24 12:44:21 -08003301 PFN_vkInternalFreeNotification pfnInternalFree
Jesse Halld27f6aa2015-08-15 17:58:48 -07003302}
3303
3304class VkDeviceQueueCreateInfo {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003305 VkStructureType sStype /// Should be VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO
3306 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003307 VkDeviceQueueCreateFlags flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07003308 u32 queueFamilyIndex
Jesse Halldba27f72015-11-30 14:25:46 -08003309 u32 queueCount
Jesse Hallfbf97b02015-11-20 14:17:03 -08003310 const f32* pQueuePriorities
Jesse Halld27f6aa2015-08-15 17:58:48 -07003311}
3312
3313class VkDeviceCreateInfo {
3314 VkStructureType sType /// Should be VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO
3315 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003316 VkDeviceCreateFlags flags
Jesse Halldba27f72015-11-30 14:25:46 -08003317 u32 queueCreateInfoCount
3318 const VkDeviceQueueCreateInfo* pQueueCreateInfos
Jesse Hall3dd678a2016-01-08 21:52:01 -08003319 u32 enabledLayerCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07003320 const char* const* ppEnabledLayerNames /// Ordered list of layer names to be enabled
Jesse Hall3dd678a2016-01-08 21:52:01 -08003321 u32 enabledExtensionCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07003322 const char* const* ppEnabledExtensionNames
3323 const VkPhysicalDeviceFeatures* pEnabledFeatures
Jesse Halld27f6aa2015-08-15 17:58:48 -07003324}
3325
3326class VkInstanceCreateInfo {
3327 VkStructureType sType /// Should be VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO
3328 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003329 VkInstanceCreateFlags flags
Jesse Hall3fbc8562015-11-29 22:10:52 -08003330 const VkApplicationInfo* pApplicationInfo
Jesse Hall3dd678a2016-01-08 21:52:01 -08003331 u32 enabledLayerCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07003332 const char* const* ppEnabledLayerNames /// Ordered list of layer names to be enabled
Jesse Hall3dd678a2016-01-08 21:52:01 -08003333 u32 enabledExtensionCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07003334 const char* const* ppEnabledExtensionNames /// Extension names to be enabled
3335}
3336
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003337class VkQueueFamilyProperties {
Jesse Halld27f6aa2015-08-15 17:58:48 -07003338 VkQueueFlags queueFlags /// Queue flags
3339 u32 queueCount
Jesse Hallacfa5342015-11-19 21:51:33 -08003340 u32 timestampValidBits
Jesse Hall65ab5522015-11-30 00:07:16 -08003341 VkExtent3D minImageTransferGranularity
Jesse Halld27f6aa2015-08-15 17:58:48 -07003342}
3343
3344class VkPhysicalDeviceMemoryProperties {
3345 u32 memoryTypeCount
3346 VkMemoryType[VK_MAX_MEMORY_TYPES] memoryTypes
3347 u32 memoryHeapCount
3348 VkMemoryHeap[VK_MAX_MEMORY_HEAPS] memoryHeaps
3349}
3350
Jesse Hall3fbc8562015-11-29 22:10:52 -08003351class VkMemoryAllocateInfo {
Jesse Hallf4ab2b12015-11-30 16:04:55 -08003352 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO
Jesse Halld27f6aa2015-08-15 17:58:48 -07003353 const void* pNext /// Pointer to next structure
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003354 VkDeviceSize allocationSize /// Size of memory allocation
Jesse Halld27f6aa2015-08-15 17:58:48 -07003355 u32 memoryTypeIndex /// Index of the of the memory type to allocate from
3356}
3357
3358class VkMemoryRequirements {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003359 VkDeviceSize size /// Specified in bytes
3360 VkDeviceSize alignment /// Specified in bytes
Jesse Halld27f6aa2015-08-15 17:58:48 -07003361 u32 memoryTypeBits /// Bitfield of the allowed memory type indices into memoryTypes[] for this object
3362}
3363
3364class VkSparseImageFormatProperties {
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08003365 VkImageAspectFlagBits aspectMask
Jesse Halld27f6aa2015-08-15 17:58:48 -07003366 VkExtent3D imageGranularity
3367 VkSparseImageFormatFlags flags
3368}
3369
3370class VkSparseImageMemoryRequirements {
Jesse Hallb00daad2015-11-29 19:46:20 -08003371 VkSparseImageFormatProperties formatProperties
Jesse Hallf9fa9a52016-01-08 16:08:51 -08003372 u32 imageMipTailFirstLod
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003373 VkDeviceSize imageMipTailSize /// Specified in bytes, must be a multiple of image block size / alignment
3374 VkDeviceSize imageMipTailOffset /// Specified in bytes, must be a multiple of image block size / alignment
3375 VkDeviceSize imageMipTailStride /// Specified in bytes, must be a multiple of image block size / alignment
Jesse Halld27f6aa2015-08-15 17:58:48 -07003376}
3377
3378class VkMemoryType {
3379 VkMemoryPropertyFlags propertyFlags /// Memory properties of this memory type
3380 u32 heapIndex /// Index of the memory heap allocations of this memory type are taken from
3381}
3382
3383class VkMemoryHeap {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003384 VkDeviceSize size /// Available memory in the heap
Jesse Halld27f6aa2015-08-15 17:58:48 -07003385 VkMemoryHeapFlags flags /// Flags for the heap
3386}
3387
3388class VkMappedMemoryRange {
3389 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE
3390 const void* pNext /// Pointer to next structure
Jesse Hall3fbc8562015-11-29 22:10:52 -08003391 VkDeviceMemory memory /// Mapped memory object
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003392 VkDeviceSize offset /// Offset within the mapped memory the range starts from
3393 VkDeviceSize size /// Size of the range within the mapped memory
Jesse Halld27f6aa2015-08-15 17:58:48 -07003394}
3395
3396class VkFormatProperties {
3397 VkFormatFeatureFlags linearTilingFeatures /// Format features in case of linear tiling
3398 VkFormatFeatureFlags optimalTilingFeatures /// Format features in case of optimal tiling
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003399 VkFormatFeatureFlags bufferFeatures /// Format features supported by buffers
Jesse Halld27f6aa2015-08-15 17:58:48 -07003400}
3401
3402class VkImageFormatProperties {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003403 VkExtent3D maxExtent /// max image dimensions for this resource type
3404 u32 maxMipLevels /// max number of mipmap levels for this resource type
Jesse Halla15a4bf2015-11-19 22:48:02 -08003405 u32 maxArrayLayers /// max array layers for this resource type
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003406 VkSampleCountFlags sampleCounts /// supported sample counts for this resource type
3407 VkDeviceSize maxResourceSize /// max size (in bytes) of this resource type
3408}
3409
Jesse Halla15a4bf2015-11-19 22:48:02 -08003410class VkDescriptorImageInfo {
3411 VkSampler sampler
3412 VkImageView imageView
3413 VkImageLayout imageLayout
3414}
3415
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003416class VkDescriptorBufferInfo {
3417 VkBuffer buffer /// Buffer used for this descriptor when the descriptor is UNIFORM_BUFFER[_DYNAMIC]
3418 VkDeviceSize offset /// Base offset from buffer start in bytes to update in the descriptor set.
3419 VkDeviceSize range /// Size in bytes of the buffer resource for this descriptor update.
Jesse Halld27f6aa2015-08-15 17:58:48 -07003420}
3421
Jesse Halld27f6aa2015-08-15 17:58:48 -07003422class VkWriteDescriptorSet {
3423 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET
3424 const void* pNext /// Pointer to next structure
Jesse Hall3fbc8562015-11-29 22:10:52 -08003425 VkDescriptorSet dstSet /// Destination descriptor set
3426 u32 dstBinding /// Binding within the destination descriptor set to write
3427 u32 dstArrayElement /// Array element within the destination binding to write
Jesse Hall03b6fe12015-11-24 12:44:21 -08003428 u32 descriptorCount /// Number of descriptors to write (determines the size of the array pointed by <pDescriptors>)
Jesse Halld27f6aa2015-08-15 17:58:48 -07003429 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 -08003430 const VkDescriptorImageInfo* pImageInfo
3431 const VkDescriptorBufferInfo* pBufferInfo
3432 const VkBufferView* pTexelBufferView
Jesse Halld27f6aa2015-08-15 17:58:48 -07003433}
3434
3435class VkCopyDescriptorSet {
3436 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET
3437 const void* pNext /// Pointer to next structure
3438 VkDescriptorSet srcSet /// Source descriptor set
3439 u32 srcBinding /// Binding within the source descriptor set to copy from
3440 u32 srcArrayElement /// Array element within the source binding to copy from
Jesse Hall3fbc8562015-11-29 22:10:52 -08003441 VkDescriptorSet dstSet /// Destination descriptor set
3442 u32 dstBinding /// Binding within the destination descriptor set to copy to
3443 u32 dstArrayElement /// Array element within the destination binding to copy to
Jesse Hall03b6fe12015-11-24 12:44:21 -08003444 u32 descriptorCount /// Number of descriptors to copy
Jesse Halld27f6aa2015-08-15 17:58:48 -07003445}
3446
3447class VkBufferCreateInfo {
3448 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO
3449 const void* pNext /// Pointer to next structure.
Jesse Halla6429252015-11-29 18:59:42 -08003450 VkBufferCreateFlags flags /// Buffer creation flags
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003451 VkDeviceSize size /// Specified in bytes
Jesse Halld27f6aa2015-08-15 17:58:48 -07003452 VkBufferUsageFlags usage /// Buffer usage flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07003453 VkSharingMode sharingMode
Jesse Hall03b6fe12015-11-24 12:44:21 -08003454 u32 queueFamilyIndexCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07003455 const u32* pQueueFamilyIndices
3456}
3457
3458class VkBufferViewCreateInfo {
3459 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO
3460 const void* pNext /// Pointer to next structure.
Jesse Halla6429252015-11-29 18:59:42 -08003461 VkBufferViewCreateFlags flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07003462 VkBuffer buffer
Jesse Halld27f6aa2015-08-15 17:58:48 -07003463 VkFormat format /// Optionally specifies format of elements
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003464 VkDeviceSize offset /// Specified in bytes
3465 VkDeviceSize range /// View size specified in bytes
Jesse Halld27f6aa2015-08-15 17:58:48 -07003466}
3467
3468class VkImageSubresource {
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08003469 VkImageAspectFlagBits aspectMask
Jesse Halld27f6aa2015-08-15 17:58:48 -07003470 u32 mipLevel
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003471 u32 arrayLayer
Jesse Halld27f6aa2015-08-15 17:58:48 -07003472}
3473
3474class VkImageSubresourceRange {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003475 VkImageAspectFlags aspectMask
Jesse Halld27f6aa2015-08-15 17:58:48 -07003476 u32 baseMipLevel
Jesse Hall3fbc8562015-11-29 22:10:52 -08003477 u32 levelCount
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003478 u32 baseArrayLayer
Jesse Hall3fbc8562015-11-29 22:10:52 -08003479 u32 layerCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07003480}
3481
3482class VkMemoryBarrier {
3483 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_MEMORY_BARRIER
3484 const void* pNext /// Pointer to next structure.
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08003485 VkAccessFlags srcAccessMask
3486 VkAccessFlags dstAccessMask
Jesse Halld27f6aa2015-08-15 17:58:48 -07003487}
3488
3489class VkBufferMemoryBarrier {
3490 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER
3491 const void* pNext /// Pointer to next structure.
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08003492 VkAccessFlags srcAccessMask
3493 VkAccessFlags dstAccessMask
Jesse Halld27f6aa2015-08-15 17:58:48 -07003494 u32 srcQueueFamilyIndex /// Queue family to transition ownership from
Jesse Hall3fbc8562015-11-29 22:10:52 -08003495 u32 dstQueueFamilyIndex /// Queue family to transition ownership to
Jesse Halld27f6aa2015-08-15 17:58:48 -07003496 VkBuffer buffer /// Buffer to sync
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003497 VkDeviceSize offset /// Offset within the buffer to sync
3498 VkDeviceSize size /// Amount of bytes to sync
Jesse Halld27f6aa2015-08-15 17:58:48 -07003499}
3500
3501class VkImageMemoryBarrier {
3502 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER
3503 const void* pNext /// Pointer to next structure.
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08003504 VkAccessFlags srcAccessMask
3505 VkAccessFlags dstAccessMask
Jesse Halld27f6aa2015-08-15 17:58:48 -07003506 VkImageLayout oldLayout /// Current layout of the image
3507 VkImageLayout newLayout /// New layout to transition the image to
3508 u32 srcQueueFamilyIndex /// Queue family to transition ownership from
Jesse Hall3fbc8562015-11-29 22:10:52 -08003509 u32 dstQueueFamilyIndex /// Queue family to transition ownership to
Jesse Halld27f6aa2015-08-15 17:58:48 -07003510 VkImage image /// Image to sync
3511 VkImageSubresourceRange subresourceRange /// Subresource range to sync
3512}
3513
3514class VkImageCreateInfo {
3515 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO
3516 const void* pNext /// Pointer to next structure.
Jesse Halla6429252015-11-29 18:59:42 -08003517 VkImageCreateFlags flags /// Image creation flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07003518 VkImageType imageType
3519 VkFormat format
3520 VkExtent3D extent
3521 u32 mipLevels
Jesse Halla15a4bf2015-11-19 22:48:02 -08003522 u32 arrayLayers
Jesse Hall091ed9e2015-11-30 00:55:29 -08003523 VkSampleCountFlagBits samples
Jesse Halld27f6aa2015-08-15 17:58:48 -07003524 VkImageTiling tiling
3525 VkImageUsageFlags usage /// Image usage flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07003526 VkSharingMode sharingMode /// Cross-queue-family sharing mode
Jesse Hall03b6fe12015-11-24 12:44:21 -08003527 u32 queueFamilyIndexCount /// Number of queue families to share across
Jesse Halld27f6aa2015-08-15 17:58:48 -07003528 const u32* pQueueFamilyIndices /// Array of queue family indices to share across
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003529 VkImageLayout initialLayout /// Initial image layout for all subresources
Jesse Halld27f6aa2015-08-15 17:58:48 -07003530}
3531
3532class VkSubresourceLayout {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003533 VkDeviceSize offset /// Specified in bytes
3534 VkDeviceSize size /// Specified in bytes
3535 VkDeviceSize rowPitch /// Specified in bytes
Jesse Hall543a7ff2016-01-08 16:38:30 -08003536 VkDeviceSize arrayPitch /// Specified in bytes
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003537 VkDeviceSize depthPitch /// Specified in bytes
Jesse Halld27f6aa2015-08-15 17:58:48 -07003538}
3539
3540class VkImageViewCreateInfo {
3541 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO
3542 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003543 VkImageViewCreateFlags flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07003544 VkImage image
3545 VkImageViewType viewType
3546 VkFormat format
Jesse Hall65ab5522015-11-30 00:07:16 -08003547 VkComponentMapping components
Jesse Halld27f6aa2015-08-15 17:58:48 -07003548 VkImageSubresourceRange subresourceRange
Jesse Halld27f6aa2015-08-15 17:58:48 -07003549}
3550
3551class VkBufferCopy {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003552 VkDeviceSize srcOffset /// Specified in bytes
Jesse Hall3fbc8562015-11-29 22:10:52 -08003553 VkDeviceSize dstOffset /// Specified in bytes
Jesse Hallb00daad2015-11-29 19:46:20 -08003554 VkDeviceSize size /// Specified in bytes
Jesse Halld27f6aa2015-08-15 17:58:48 -07003555}
3556
Jesse Halla6429252015-11-29 18:59:42 -08003557class VkSparseMemoryBind {
Jesse Hallb00daad2015-11-29 19:46:20 -08003558 VkDeviceSize resourceOffset /// Specified in bytes
3559 VkDeviceSize size /// Specified in bytes
Jesse Hall3fbc8562015-11-29 22:10:52 -08003560 VkDeviceMemory memory
3561 VkDeviceSize memoryOffset /// Specified in bytes
Jesse Halld27f6aa2015-08-15 17:58:48 -07003562 VkSparseMemoryBindFlags flags
3563}
3564
Jesse Halla6429252015-11-29 18:59:42 -08003565class VkSparseImageMemoryBind {
Jesse Halld27f6aa2015-08-15 17:58:48 -07003566 VkImageSubresource subresource
3567 VkOffset3D offset
3568 VkExtent3D extent
Jesse Hall3fbc8562015-11-29 22:10:52 -08003569 VkDeviceMemory memory
3570 VkDeviceSize memoryOffset /// Specified in bytes
Jesse Halld27f6aa2015-08-15 17:58:48 -07003571 VkSparseMemoryBindFlags flags
3572}
3573
Jesse Halla6429252015-11-29 18:59:42 -08003574class VkSparseBufferMemoryBindInfo {
3575 VkBuffer buffer
3576 u32 bindCount
3577 const VkSparseMemoryBind* pBinds
3578}
3579
3580class VkSparseImageOpaqueMemoryBindInfo {
3581 VkImage image
3582 u32 bindCount
3583 const VkSparseMemoryBind* pBinds
3584}
3585
3586class VkSparseImageMemoryBindInfo {
3587 VkImage image
3588 u32 bindCount
3589 const VkSparseMemoryBind* pBinds
3590}
3591
3592class VkBindSparseInfo {
3593 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_BIND_SPARSE_INFO
3594 const void* pNext
3595 u32 waitSemaphoreCount
3596 const VkSemaphore* pWaitSemaphores
3597 u32 numBufferBinds
3598 const VkSparseBufferMemoryBindInfo* pBufferBinds
3599 u32 numImageOpaqueBinds
3600 const VkSparseImageOpaqueMemoryBindInfo* pImageOpaqueBinds
3601 u32 numImageBinds
3602 const VkSparseImageMemoryBindInfo* pImageBinds
3603 u32 signalSemaphoreCount
3604 const VkSemaphore* pSignalSemaphores
3605}
3606
Jesse Hall65ab5522015-11-30 00:07:16 -08003607class VkImageSubresourceLayers {
3608 VkImageAspectFlags aspectMask
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003609 u32 mipLevel
Jesse Halla15a4bf2015-11-19 22:48:02 -08003610 u32 baseArrayLayer
Jesse Hall3fbc8562015-11-29 22:10:52 -08003611 u32 layerCount
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003612}
3613
Jesse Halld27f6aa2015-08-15 17:58:48 -07003614class VkImageCopy {
Jesse Hall65ab5522015-11-30 00:07:16 -08003615 VkImageSubresourceLayers srcSubresource
Jesse Halld27f6aa2015-08-15 17:58:48 -07003616 VkOffset3D srcOffset /// Specified in pixels for both compressed and uncompressed images
Jesse Hall65ab5522015-11-30 00:07:16 -08003617 VkImageSubresourceLayers dstSubresource
Jesse Hall3fbc8562015-11-29 22:10:52 -08003618 VkOffset3D dstOffset /// Specified in pixels for both compressed and uncompressed images
Jesse Halld27f6aa2015-08-15 17:58:48 -07003619 VkExtent3D extent /// Specified in pixels for both compressed and uncompressed images
3620}
3621
3622class VkImageBlit {
Jesse Hall65ab5522015-11-30 00:07:16 -08003623 VkImageSubresourceLayers srcSubresource
Jesse Hall3dd678a2016-01-08 21:52:01 -08003624 VkOffset3D[2] srcOffsets
Jesse Hall65ab5522015-11-30 00:07:16 -08003625 VkImageSubresourceLayers dstSubresource
Jesse Hall3dd678a2016-01-08 21:52:01 -08003626 VkOffset3D[2] dstOffsets
Jesse Halld27f6aa2015-08-15 17:58:48 -07003627}
3628
3629class VkBufferImageCopy {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003630 VkDeviceSize bufferOffset /// Specified in bytes
Jesse Halld27f6aa2015-08-15 17:58:48 -07003631 u32 bufferRowLength /// Specified in texels
3632 u32 bufferImageHeight
Jesse Hall65ab5522015-11-30 00:07:16 -08003633 VkImageSubresourceLayers imageSubresource
Jesse Halld27f6aa2015-08-15 17:58:48 -07003634 VkOffset3D imageOffset /// Specified in pixels for both compressed and uncompressed images
3635 VkExtent3D imageExtent /// Specified in pixels for both compressed and uncompressed images
3636}
3637
3638class VkImageResolve {
Jesse Hall65ab5522015-11-30 00:07:16 -08003639 VkImageSubresourceLayers srcSubresource
Jesse Halld27f6aa2015-08-15 17:58:48 -07003640 VkOffset3D srcOffset
Jesse Hall65ab5522015-11-30 00:07:16 -08003641 VkImageSubresourceLayers dstSubresource
Jesse Hall3fbc8562015-11-29 22:10:52 -08003642 VkOffset3D dstOffset
Jesse Halld27f6aa2015-08-15 17:58:48 -07003643 VkExtent3D extent
3644}
3645
3646class VkShaderModuleCreateInfo {
3647 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO
3648 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003649 VkShaderModuleCreateFlags flags /// Reserved
Jesse Halld27f6aa2015-08-15 17:58:48 -07003650 platform.size_t codeSize /// Specified in bytes
Jesse Halla9bb62b2015-11-21 19:31:56 -08003651 const u32* pCode /// Binary code of size codeSize
Jesse Halld27f6aa2015-08-15 17:58:48 -07003652}
3653
Jesse Halld27f6aa2015-08-15 17:58:48 -07003654class VkDescriptorSetLayoutBinding {
Jesse Hall091ed9e2015-11-30 00:55:29 -08003655 u32 binding
Jesse Halld27f6aa2015-08-15 17:58:48 -07003656 VkDescriptorType descriptorType /// Type of the descriptors in this binding
Jesse Halldba27f72015-11-30 14:25:46 -08003657 u32 descriptorCount /// Number of descriptors in this binding
Jesse Halld27f6aa2015-08-15 17:58:48 -07003658 VkShaderStageFlags stageFlags /// Shader stages this binding is visible to
3659 const VkSampler* pImmutableSamplers /// Immutable samplers (used if descriptor type is SAMPLER or COMBINED_IMAGE_SAMPLER, is either NULL or contains <count> number of elements)
3660}
3661
3662class VkDescriptorSetLayoutCreateInfo {
3663 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO
3664 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003665 VkDescriptorSetLayoutCreateFlags flags
Jesse Hall03b6fe12015-11-24 12:44:21 -08003666 u32 bindingCount /// Number of bindings in the descriptor set layout
Jesse Hall543a7ff2016-01-08 16:38:30 -08003667 const VkDescriptorSetLayoutBinding* pBindings /// Array of descriptor set layout bindings
Jesse Halld27f6aa2015-08-15 17:58:48 -07003668}
3669
Jesse Hall65ab5522015-11-30 00:07:16 -08003670class VkDescriptorPoolSize {
Jesse Halld27f6aa2015-08-15 17:58:48 -07003671 VkDescriptorType type
Jesse Hall03b6fe12015-11-24 12:44:21 -08003672 u32 descriptorCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07003673}
3674
3675class VkDescriptorPoolCreateInfo {
3676 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO
3677 const void* pNext /// Pointer to next structure
Jesse Hallfbf97b02015-11-20 14:17:03 -08003678 VkDescriptorPoolCreateFlags flags
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003679 u32 maxSets
Jesse Hall65ab5522015-11-30 00:07:16 -08003680 u32 poolSizeCount
3681 const VkDescriptorPoolSize* pPoolSizes
Jesse Halld27f6aa2015-08-15 17:58:48 -07003682}
3683
Jesse Hall3fbc8562015-11-29 22:10:52 -08003684class VkDescriptorSetAllocateInfo {
Jesse Hallf4ab2b12015-11-30 16:04:55 -08003685 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO
Jesse Hallfbf97b02015-11-20 14:17:03 -08003686 const void* pNext /// Pointer to next structure
3687 VkDescriptorPool descriptorPool
Jesse Hall03b6fe12015-11-24 12:44:21 -08003688 u32 setCount
Jesse Hallfbf97b02015-11-20 14:17:03 -08003689 const VkDescriptorSetLayout* pSetLayouts
3690}
3691
Jesse Halld27f6aa2015-08-15 17:58:48 -07003692class VkSpecializationMapEntry {
Jesse Hall65ab5522015-11-30 00:07:16 -08003693 u32 constantID /// The SpecConstant ID specified in the BIL
Jesse Halld27f6aa2015-08-15 17:58:48 -07003694 u32 offset /// Offset of the value in the data block
Jesse Hallb00daad2015-11-29 19:46:20 -08003695 platform.size_t size /// Size in bytes of the SpecConstant
Jesse Halld27f6aa2015-08-15 17:58:48 -07003696}
3697
3698class VkSpecializationInfo {
3699 u32 mapEntryCount /// Number of entries in the map
Jesse Hallb00daad2015-11-29 19:46:20 -08003700 const VkSpecializationMapEntry* pMapEntries /// Array of map entries
Jesse Halld27f6aa2015-08-15 17:58:48 -07003701 platform.size_t dataSize /// Size in bytes of pData
3702 const void* pData /// Pointer to SpecConstant data
3703}
3704
3705class VkPipelineShaderStageCreateInfo {
3706 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO
3707 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003708 VkPipelineShaderStageCreateFlags flags
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08003709 VkShaderStageFlagBits stage
3710 VkShaderModule module
3711 const char* pName
Jesse Halld27f6aa2015-08-15 17:58:48 -07003712 const VkSpecializationInfo* pSpecializationInfo
3713}
3714
3715class VkComputePipelineCreateInfo {
3716 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO
3717 const void* pNext /// Pointer to next structure
Jesse Halld27f6aa2015-08-15 17:58:48 -07003718 VkPipelineCreateFlags flags /// Pipeline creation flags
Jesse Halla6429252015-11-29 18:59:42 -08003719 VkPipelineShaderStageCreateInfo stage
Jesse Halld27f6aa2015-08-15 17:58:48 -07003720 VkPipelineLayout layout /// Interface layout of the pipeline
3721 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
3722 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
3723}
3724
3725class VkVertexInputBindingDescription {
Jesse Hallb00daad2015-11-29 19:46:20 -08003726 u32 binding /// Vertex buffer binding id
3727 u32 stride /// Distance between vertices in bytes (0 = no advancement)
Jesse Hall65ab5522015-11-30 00:07:16 -08003728 VkVertexInputRate inputRate /// Rate at which binding is incremented
Jesse Halld27f6aa2015-08-15 17:58:48 -07003729}
3730
3731class VkVertexInputAttributeDescription {
Jesse Hallb00daad2015-11-29 19:46:20 -08003732 u32 location /// location of the shader vertex attrib
3733 u32 binding /// Vertex buffer binding id
3734 VkFormat format /// format of source data
3735 u32 offset /// Offset of first element in bytes from base of vertex
Jesse Halld27f6aa2015-08-15 17:58:48 -07003736}
3737
3738class VkPipelineVertexInputStateCreateInfo {
Jesse Hall03b6fe12015-11-24 12:44:21 -08003739 VkStructureType sType /// Should be VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO
3740 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003741 VkPipelineVertexInputStateCreateFlags flags
Jesse Hall03b6fe12015-11-24 12:44:21 -08003742 u32 vertexBindingDescriptionCount /// number of bindings
Jesse Halld27f6aa2015-08-15 17:58:48 -07003743 const VkVertexInputBindingDescription* pVertexBindingDescriptions
Jesse Hall03b6fe12015-11-24 12:44:21 -08003744 u32 vertexAttributeDescriptionCount /// number of attributes
Jesse Halld27f6aa2015-08-15 17:58:48 -07003745 const VkVertexInputAttributeDescription* pVertexAttributeDescriptions
3746}
3747
3748class VkPipelineInputAssemblyStateCreateInfo {
3749 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO
3750 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003751 VkPipelineInputAssemblyStateCreateFlags flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07003752 VkPrimitiveTopology topology
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003753 VkBool32 primitiveRestartEnable
Jesse Halld27f6aa2015-08-15 17:58:48 -07003754}
3755
3756class VkPipelineTessellationStateCreateInfo {
3757 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO
3758 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003759 VkPipelineTessellationStateCreateFlags flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07003760 u32 patchControlPoints
3761}
3762
3763class VkPipelineViewportStateCreateInfo {
3764 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO
3765 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003766 VkPipelineViewportStateCreateFlags flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07003767 u32 viewportCount
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003768 const VkViewport* pViewports
3769 u32 scissorCount
3770 const VkRect2D* pScissors
Jesse Halld27f6aa2015-08-15 17:58:48 -07003771}
3772
Jesse Hall3fbc8562015-11-29 22:10:52 -08003773class VkPipelineRasterizationStateCreateInfo {
Jesse Hall65ab5522015-11-30 00:07:16 -08003774 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO
Jesse Halld27f6aa2015-08-15 17:58:48 -07003775 const void* pNext /// Pointer to next structure
Jesse Hall3fbc8562015-11-29 22:10:52 -08003776 VkPipelineRasterizationStateCreateFlags flags
Jesse Hallae38f732015-11-19 21:32:50 -08003777 VkBool32 depthClampEnable
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003778 VkBool32 rasterizerDiscardEnable
Jesse Hall65ab5522015-11-30 00:07:16 -08003779 VkPolygonMode polygonMode /// optional (GL45)
Jesse Hallc7467b72015-11-29 21:05:26 -08003780 VkCullModeFlags cullMode
Jesse Halld27f6aa2015-08-15 17:58:48 -07003781 VkFrontFace frontFace
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003782 VkBool32 depthBiasEnable
Jesse Halla9bb62b2015-11-21 19:31:56 -08003783 f32 depthBiasConstantFactor
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003784 f32 depthBiasClamp
Jesse Halla9bb62b2015-11-21 19:31:56 -08003785 f32 depthBiasSlopeFactor
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003786 f32 lineWidth
Jesse Halld27f6aa2015-08-15 17:58:48 -07003787}
3788
3789class VkPipelineMultisampleStateCreateInfo {
3790 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO
3791 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003792 VkPipelineMultisampleStateCreateFlags flags
Jesse Hall091ed9e2015-11-30 00:55:29 -08003793 VkSampleCountFlagBits rasterizationSamples /// Number of samples used for rasterization
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003794 VkBool32 sampleShadingEnable /// optional (GL45)
Jesse Halld27f6aa2015-08-15 17:58:48 -07003795 f32 minSampleShading /// optional (GL45)
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003796 const VkSampleMask* pSampleMask
Jesse Hallacfa5342015-11-19 21:51:33 -08003797 VkBool32 alphaToCoverageEnable
3798 VkBool32 alphaToOneEnable
Jesse Halld27f6aa2015-08-15 17:58:48 -07003799}
3800
3801class VkPipelineColorBlendAttachmentState {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003802 VkBool32 blendEnable
Jesse Hall65ab5522015-11-30 00:07:16 -08003803 VkBlendFactor srcColorBlendFactor
3804 VkBlendFactor dstColorBlendFactor
3805 VkBlendOp colorBlendOp
3806 VkBlendFactor srcAlphaBlendFactor
3807 VkBlendFactor dstAlphaBlendFactor
3808 VkBlendOp alphaBlendOp
3809 VkColorComponentFlags colorWriteMask
Jesse Halld27f6aa2015-08-15 17:58:48 -07003810}
3811
3812class VkPipelineColorBlendStateCreateInfo {
3813 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO
3814 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003815 VkPipelineColorBlendStateCreateFlags flags
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003816 VkBool32 logicOpEnable
Jesse Halld27f6aa2015-08-15 17:58:48 -07003817 VkLogicOp logicOp
3818 u32 attachmentCount /// # of pAttachments
3819 const VkPipelineColorBlendAttachmentState* pAttachments
Jesse Hallb00daad2015-11-29 19:46:20 -08003820 f32[4] blendConstants
Jesse Halld27f6aa2015-08-15 17:58:48 -07003821}
3822
3823class VkStencilOpState {
Jesse Hall65ab5522015-11-30 00:07:16 -08003824 VkStencilOp failOp
3825 VkStencilOp passOp
3826 VkStencilOp depthFailOp
3827 VkCompareOp compareOp
3828 u32 compareMask
3829 u32 writeMask
3830 u32 reference
Jesse Halld27f6aa2015-08-15 17:58:48 -07003831}
3832
3833class VkPipelineDepthStencilStateCreateInfo {
3834 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO
3835 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003836 VkPipelineDepthStencilStateCreateFlags flags
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003837 VkBool32 depthTestEnable
3838 VkBool32 depthWriteEnable
Jesse Halld27f6aa2015-08-15 17:58:48 -07003839 VkCompareOp depthCompareOp
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003840 VkBool32 depthBoundsTestEnable /// optional (depth_bounds_test)
3841 VkBool32 stencilTestEnable
Jesse Halld27f6aa2015-08-15 17:58:48 -07003842 VkStencilOpState front
3843 VkStencilOpState back
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003844 f32 minDepthBounds
3845 f32 maxDepthBounds
3846}
3847
3848class VkPipelineDynamicStateCreateInfo {
3849 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO
3850 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003851 VkPipelineDynamicStateCreateFlags flags
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003852 u32 dynamicStateCount
3853 const VkDynamicState* pDynamicStates
Jesse Halld27f6aa2015-08-15 17:58:48 -07003854}
3855
3856class VkGraphicsPipelineCreateInfo {
Jesse Halla6429252015-11-29 18:59:42 -08003857 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO
3858 const void* pNext /// Pointer to next structure
3859 VkPipelineCreateFlags flags /// Pipeline creation flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07003860 u32 stageCount
Jesse Halla6429252015-11-29 18:59:42 -08003861 const VkPipelineShaderStageCreateInfo* pStages /// One entry for each active shader stage
Jesse Halld27f6aa2015-08-15 17:58:48 -07003862 const VkPipelineVertexInputStateCreateInfo* pVertexInputState
3863 const VkPipelineInputAssemblyStateCreateInfo* pInputAssemblyState
3864 const VkPipelineTessellationStateCreateInfo* pTessellationState
3865 const VkPipelineViewportStateCreateInfo* pViewportState
Jesse Hall3fbc8562015-11-29 22:10:52 -08003866 const VkPipelineRasterizationStateCreateInfo* pRasterizationState
Jesse Halld27f6aa2015-08-15 17:58:48 -07003867 const VkPipelineMultisampleStateCreateInfo* pMultisampleState
3868 const VkPipelineDepthStencilStateCreateInfo* pDepthStencilState
3869 const VkPipelineColorBlendStateCreateInfo* pColorBlendState
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003870 const VkPipelineDynamicStateCreateInfo* pDynamicState
Jesse Halla6429252015-11-29 18:59:42 -08003871 VkPipelineLayout layout /// Interface layout of the pipeline
Jesse Halld27f6aa2015-08-15 17:58:48 -07003872 VkRenderPass renderPass
3873 u32 subpass
Jesse Halla6429252015-11-29 18:59:42 -08003874 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
3875 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 -07003876}
3877
3878class VkPipelineCacheCreateInfo {
Jesse Hallb00daad2015-11-29 19:46:20 -08003879 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO
3880 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003881 VkPipelineCacheCreateFlags flags
Jesse Hallb00daad2015-11-29 19:46:20 -08003882 platform.size_t initialDataSize /// Size of initial data to populate cache, in bytes
3883 const void* pInitialData /// Initial data to populate cache
Jesse Halld27f6aa2015-08-15 17:58:48 -07003884}
3885
3886class VkPushConstantRange {
3887 VkShaderStageFlags stageFlags /// Which stages use the range
Jesse Hall03b6fe12015-11-24 12:44:21 -08003888 u32 offset /// Start of the range, in bytes
3889 u32 size /// Length of the range, in bytes
Jesse Halld27f6aa2015-08-15 17:58:48 -07003890}
3891
3892class VkPipelineLayoutCreateInfo {
3893 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO
3894 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003895 VkPipelineLayoutCreateFlags flags
Jesse Hall3dd678a2016-01-08 21:52:01 -08003896 u32 descriptorSetCount /// Number of descriptor sets interfaced by the pipeline
Jesse Halld27f6aa2015-08-15 17:58:48 -07003897 const VkDescriptorSetLayout* pSetLayouts /// Array of <setCount> number of descriptor set layout objects defining the layout of the
3898 u32 pushConstantRangeCount /// Number of push-constant ranges used by the pipeline
3899 const VkPushConstantRange* pPushConstantRanges /// Array of pushConstantRangeCount number of ranges used by various shader stages
3900}
3901
3902class VkSamplerCreateInfo {
3903 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO
3904 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003905 VkSamplerCreateFlags flags
Jesse Hall23ff73f2015-11-29 14:36:39 -08003906 VkFilter magFilter /// Filter mode for magnification
3907 VkFilter minFilter /// Filter mode for minifiation
3908 VkSamplerMipmapMode mipmapMode /// Mipmap selection mode
3909 VkSamplerAddressMode addressModeU
3910 VkSamplerAddressMode addressModeV
3911 VkSamplerAddressMode addressModeW
Jesse Halld27f6aa2015-08-15 17:58:48 -07003912 f32 mipLodBias
Jesse Hallf9fa9a52016-01-08 16:08:51 -08003913 VkBool32 anisotropyEnable
Jesse Halld27f6aa2015-08-15 17:58:48 -07003914 f32 maxAnisotropy
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003915 VkBool32 compareEnable
Jesse Halld27f6aa2015-08-15 17:58:48 -07003916 VkCompareOp compareOp
3917 f32 minLod
3918 f32 maxLod
3919 VkBorderColor borderColor
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003920 VkBool32 unnormalizedCoordinates
Jesse Halld27f6aa2015-08-15 17:58:48 -07003921}
3922
Jesse Hall3fbc8562015-11-29 22:10:52 -08003923class VkCommandPoolCreateInfo {
3924 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO
Jesse Halld27f6aa2015-08-15 17:58:48 -07003925 const void* pNext /// Pointer to next structure
Jesse Hall3fbc8562015-11-29 22:10:52 -08003926 VkCommandPoolCreateFlags flags /// Command pool creation flags
Jesse Halla6429252015-11-29 18:59:42 -08003927 u32 queueFamilyIndex
Jesse Halld27f6aa2015-08-15 17:58:48 -07003928}
3929
Jesse Hall3fbc8562015-11-29 22:10:52 -08003930class VkCommandBufferAllocateInfo {
Jesse Hallf4ab2b12015-11-30 16:04:55 -08003931 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO
Jesse Halld27f6aa2015-08-15 17:58:48 -07003932 const void* pNext /// Pointer to next structure
Jesse Hall3fbc8562015-11-29 22:10:52 -08003933 VkCommandPool commandPool
3934 VkCommandBufferLevel level
Jesse Hall3dd678a2016-01-08 21:52:01 -08003935 u32 commandBufferCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07003936}
3937
Jesse Hall3dd678a2016-01-08 21:52:01 -08003938class VkCommandBufferInheritanceInfo {
3939 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO
Jesse Halld27f6aa2015-08-15 17:58:48 -07003940 const void* pNext /// Pointer to next structure
Jesse Halld27f6aa2015-08-15 17:58:48 -07003941 VkRenderPass renderPass /// Render pass for secondary command buffers
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003942 u32 subpass
Jesse Halld27f6aa2015-08-15 17:58:48 -07003943 VkFramebuffer framebuffer /// Framebuffer for secondary command buffers
Jesse Hallf4ab2b12015-11-30 16:04:55 -08003944 VkBool32 occlusionQueryEnable
3945 VkQueryControlFlags queryFlags
3946 VkQueryPipelineStatisticFlags pipelineStatistics
Jesse Halld27f6aa2015-08-15 17:58:48 -07003947}
3948
Jesse Hall3dd678a2016-01-08 21:52:01 -08003949class VkCommandBufferBeginInfo {
3950 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO
3951 const void* pNext /// Pointer to next structure
3952 VkCommandBufferUsageFlags flags /// Command buffer usage flags
3953 const VkCommandBufferInheritanceInfo* pInheritanceInfo
3954}
3955
Jesse Halld27f6aa2015-08-15 17:58:48 -07003956class VkRenderPassBeginInfo {
3957 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO
3958 const void* pNext /// Pointer to next structure
3959 VkRenderPass renderPass
3960 VkFramebuffer framebuffer
3961 VkRect2D renderArea
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003962 u32 clearValueCount
3963 const VkClearValue* pClearValues
Jesse Halld27f6aa2015-08-15 17:58:48 -07003964}
3965
3966@union
3967/// Union allowing specification of floating point, integer, or unsigned integer color data. Actual value selected is based on image/attachment being cleared.
3968class VkClearColorValue {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003969 f32[4] float32
3970 s32[4] int32
3971 u32[4] uint32
Jesse Halld27f6aa2015-08-15 17:58:48 -07003972}
3973
3974class VkClearDepthStencilValue {
3975 f32 depth
3976 u32 stencil
3977}
3978
3979@union
3980/// Union allowing specification of color, depth, and stencil color values. Actual value selected is based on attachment being cleared.
3981class VkClearValue {
3982 VkClearColorValue color
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003983 VkClearDepthStencilValue depthStencil
Jesse Halld27f6aa2015-08-15 17:58:48 -07003984}
3985
Jesse Hallae38f732015-11-19 21:32:50 -08003986class VkClearAttachment {
3987 VkImageAspectFlags aspectMask
3988 u32 colorAttachment
3989 VkClearValue clearValue
3990}
3991
Jesse Halld27f6aa2015-08-15 17:58:48 -07003992class VkAttachmentDescription {
Jesse Halla6429252015-11-29 18:59:42 -08003993 VkAttachmentDescriptionFlags flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07003994 VkFormat format
Jesse Hall091ed9e2015-11-30 00:55:29 -08003995 VkSampleCountFlagBits samples
Jesse Halld27f6aa2015-08-15 17:58:48 -07003996 VkAttachmentLoadOp loadOp /// Load op for color or depth data
3997 VkAttachmentStoreOp storeOp /// Store op for color or depth data
3998 VkAttachmentLoadOp stencilLoadOp /// Load op for stencil data
3999 VkAttachmentStoreOp stencilStoreOp /// Store op for stencil data
4000 VkImageLayout initialLayout
4001 VkImageLayout finalLayout
4002}
4003
4004class VkAttachmentReference {
4005 u32 attachment
4006 VkImageLayout layout
4007}
4008
4009class VkSubpassDescription {
Jesse Halld27f6aa2015-08-15 17:58:48 -07004010 VkSubpassDescriptionFlags flags
Jesse Halla6429252015-11-29 18:59:42 -08004011 VkPipelineBindPoint pipelineBindPoint /// Must be VK_PIPELINE_BIND_POINT_GRAPHICS for now
Jesse Hall03b6fe12015-11-24 12:44:21 -08004012 u32 inputAttachmentCount
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004013 const VkAttachmentReference* pInputAttachments
Jesse Hall03b6fe12015-11-24 12:44:21 -08004014 u32 colorAttachmentCount
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004015 const VkAttachmentReference* pColorAttachments
4016 const VkAttachmentReference* pResolveAttachments
Jesse Hallc7467b72015-11-29 21:05:26 -08004017 const VkAttachmentReference* pDepthStencilAttachment
Jesse Hall03b6fe12015-11-24 12:44:21 -08004018 u32 preserveAttachmentCount
Jesse Hall3dd678a2016-01-08 21:52:01 -08004019 const u32* pPreserveAttachments
Jesse Halld27f6aa2015-08-15 17:58:48 -07004020}
4021
4022class VkSubpassDependency {
Jesse Halld27f6aa2015-08-15 17:58:48 -07004023 u32 srcSubpass
Jesse Hall3fbc8562015-11-29 22:10:52 -08004024 u32 dstSubpass
Jesse Halld27f6aa2015-08-15 17:58:48 -07004025 VkPipelineStageFlags srcStageMask
Jesse Hall3fbc8562015-11-29 22:10:52 -08004026 VkPipelineStageFlags dstStageMask
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08004027 VkAccessFlags srcAccessMask
4028 VkAccessFlags dstAccessMask
Jesse Halldc6d36c2015-11-29 19:12:15 -08004029 VkDependencyFlags dependencyFlags
Jesse Halld27f6aa2015-08-15 17:58:48 -07004030}
4031
4032class VkRenderPassCreateInfo {
4033 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO
4034 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08004035 VkRenderPassCreateFlags flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07004036 u32 attachmentCount
4037 const VkAttachmentDescription* pAttachments
4038 u32 subpassCount
4039 const VkSubpassDescription* pSubpasses
4040 u32 dependencyCount
4041 const VkSubpassDependency* pDependencies
4042}
4043
4044class VkEventCreateInfo {
4045 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_EVENT_CREATE_INFO
4046 const void* pNext /// Pointer to next structure
4047 VkEventCreateFlags flags /// Event creation flags
4048}
4049
4050class VkFenceCreateInfo {
4051 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_FENCE_CREATE_INFO
4052 const void* pNext /// Pointer to next structure
4053 VkFenceCreateFlags flags /// Fence creation flags
4054}
4055
4056class VkPhysicalDeviceFeatures {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004057 VkBool32 robustBufferAccess /// out of bounds buffer accesses are well defined
4058 VkBool32 fullDrawIndexUint32 /// full 32-bit range of indices for indexed draw calls
4059 VkBool32 imageCubeArray /// image views which are arrays of cube maps
4060 VkBool32 independentBlend /// blending operations are controlled per-attachment
4061 VkBool32 geometryShader /// geometry stage
4062 VkBool32 tessellationShader /// tessellation control and evaluation stage
4063 VkBool32 sampleRateShading /// per-sample shading and interpolation
Jesse Hall3fbc8562015-11-29 22:10:52 -08004064 VkBool32 dualSrcBlend /// blend operations which take two sources
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004065 VkBool32 logicOp /// logic operations
4066 VkBool32 multiDrawIndirect /// multi draw indirect
Jesse Hall543a7ff2016-01-08 16:38:30 -08004067 VkBool32 drawIndirectFirstInstance
Jesse Hallae38f732015-11-19 21:32:50 -08004068 VkBool32 depthClamp /// depth clamping
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004069 VkBool32 depthBiasClamp /// depth bias clamping
4070 VkBool32 fillModeNonSolid /// point and wireframe fill modes
4071 VkBool32 depthBounds /// depth bounds test
4072 VkBool32 wideLines /// lines with width greater than 1
4073 VkBool32 largePoints /// points with size greater than 1
Jesse Hallfbf97b02015-11-20 14:17:03 -08004074 VkBool32 alphaToOne /// The fragment alpha channel can be forced to maximum representable alpha value
4075 VkBool32 multiViewport
4076 VkBool32 samplerAnisotropy
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004077 VkBool32 textureCompressionETC2 /// ETC texture compression formats
4078 VkBool32 textureCompressionASTC_LDR /// ASTC LDR texture compression formats
4079 VkBool32 textureCompressionBC /// BC1-7 texture compressed formats
Jesse Hall65ab5522015-11-30 00:07:16 -08004080 VkBool32 occlusionQueryPrecise
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004081 VkBool32 pipelineStatisticsQuery /// pipeline statistics query
Jesse Halldc6d36c2015-11-29 19:12:15 -08004082 VkBool32 vertexPipelineStoresAndAtomics
4083 VkBool32 fragmentStoresAndAtomics
4084 VkBool32 shaderTessellationAndGeometryPointSize
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004085 VkBool32 shaderImageGatherExtended /// texture gather with run-time values and independent offsets
4086 VkBool32 shaderStorageImageExtendedFormats /// the extended set of formats can be used for storage images
4087 VkBool32 shaderStorageImageMultisample /// multisample images can be used for storage images
Jesse Halld1af8122015-11-29 23:50:38 -08004088 VkBool32 shaderStorageImageReadWithoutFormat
4089 VkBool32 shaderStorageImageWriteWithoutFormat
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004090 VkBool32 shaderUniformBufferArrayDynamicIndexing /// arrays of uniform buffers can be accessed with dynamically uniform indices
4091 VkBool32 shaderSampledImageArrayDynamicIndexing /// arrays of sampled images can be accessed with dynamically uniform indices
4092 VkBool32 shaderStorageBufferArrayDynamicIndexing /// arrays of storage buffers can be accessed with dynamically uniform indices
4093 VkBool32 shaderStorageImageArrayDynamicIndexing /// arrays of storage images can be accessed with dynamically uniform indices
4094 VkBool32 shaderClipDistance /// clip distance in shaders
4095 VkBool32 shaderCullDistance /// cull distance in shaders
4096 VkBool32 shaderFloat64 /// 64-bit floats (doubles) in shaders
4097 VkBool32 shaderInt64 /// 64-bit integers in shaders
4098 VkBool32 shaderInt16 /// 16-bit integers in shaders
4099 VkBool32 shaderResourceResidency /// shader can use texture operations that return resource residency information (requires sparseNonResident support)
Jesse Hall65ab5522015-11-30 00:07:16 -08004100 VkBool32 shaderResourceMinLod /// shader can use texture operations that specify minimum resource LOD
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004101 VkBool32 sparseBinding /// Sparse resources support: Resource memory can be managed at opaque page level rather than object level
4102 VkBool32 sparseResidencyBuffer /// Sparse resources support: GPU can access partially resident buffers
4103 VkBool32 sparseResidencyImage2D /// Sparse resources support: GPU can access partially resident 2D (non-MSAA non-DepthStencil) images
4104 VkBool32 sparseResidencyImage3D /// Sparse resources support: GPU can access partially resident 3D images
4105 VkBool32 sparseResidency2Samples /// Sparse resources support: GPU can access partially resident MSAA 2D images with 2 samples
4106 VkBool32 sparseResidency4Samples /// Sparse resources support: GPU can access partially resident MSAA 2D images with 4 samples
4107 VkBool32 sparseResidency8Samples /// Sparse resources support: GPU can access partially resident MSAA 2D images with 8 samples
4108 VkBool32 sparseResidency16Samples /// Sparse resources support: GPU can access partially resident MSAA 2D images with 16 samples
4109 VkBool32 sparseResidencyAliased /// Sparse resources support: GPU can correctly access data aliased into multiple locations (opt-in)
Jesse Halld1af8122015-11-29 23:50:38 -08004110 VkBool32 variableMultisampleRate
Jesse Hallf9fa9a52016-01-08 16:08:51 -08004111 VkBool32 inheritedQueries
Jesse Halld27f6aa2015-08-15 17:58:48 -07004112}
4113
4114class VkPhysicalDeviceLimits {
4115 /// resource maximum sizes
4116 u32 maxImageDimension1D /// max 1D image dimension
4117 u32 maxImageDimension2D /// max 2D image dimension
4118 u32 maxImageDimension3D /// max 3D image dimension
4119 u32 maxImageDimensionCube /// max cubemap image dimension
4120 u32 maxImageArrayLayers /// max layers for image arrays
Jesse Hallb00daad2015-11-29 19:46:20 -08004121 u32 maxTexelBufferElements
Jesse Hallfbf97b02015-11-20 14:17:03 -08004122 u32 maxUniformBufferRange /// max uniform buffer size (bytes)
4123 u32 maxStorageBufferRange /// max storage buffer size (bytes)
Jesse Halld27f6aa2015-08-15 17:58:48 -07004124 u32 maxPushConstantsSize /// max size of the push constants pool (bytes)
4125 /// memory limits
4126 u32 maxMemoryAllocationCount /// max number of device memory allocations supported
Jesse Hall091ed9e2015-11-30 00:55:29 -08004127 u32 maxSamplerAllocationCount
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004128 VkDeviceSize bufferImageGranularity /// Granularity (in bytes) at which buffers and images can be bound to adjacent memory for simultaneous usage
4129 VkDeviceSize sparseAddressSpaceSize /// Total address space available for sparse allocations (bytes)
Jesse Halld27f6aa2015-08-15 17:58:48 -07004130 /// descriptor set limits
4131 u32 maxBoundDescriptorSets /// max number of descriptors sets that can be bound to a pipeline
Jesse Halld27f6aa2015-08-15 17:58:48 -07004132 u32 maxPerStageDescriptorSamplers /// max num of samplers allowed per-stage in a descriptor set
4133 u32 maxPerStageDescriptorUniformBuffers /// max num of uniform buffers allowed per-stage in a descriptor set
4134 u32 maxPerStageDescriptorStorageBuffers /// max num of storage buffers allowed per-stage in a descriptor set
4135 u32 maxPerStageDescriptorSampledImages /// max num of sampled images allowed per-stage in a descriptor set
4136 u32 maxPerStageDescriptorStorageImages /// max num of storage images allowed per-stage in a descriptor set
Jesse Halle1b12782015-11-30 11:27:32 -08004137 u32 maxPerStageDescriptorInputAttachments
Jesse Halldba27f72015-11-30 14:25:46 -08004138 u32 maxPerStageResources
Jesse Halld27f6aa2015-08-15 17:58:48 -07004139 u32 maxDescriptorSetSamplers /// max num of samplers allowed in all stages in a descriptor set
4140 u32 maxDescriptorSetUniformBuffers /// max num of uniform buffers allowed in all stages in a descriptor set
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004141 u32 maxDescriptorSetUniformBuffersDynamic /// max num of dynamic uniform buffers allowed in all stages in a descriptor set
Jesse Halld27f6aa2015-08-15 17:58:48 -07004142 u32 maxDescriptorSetStorageBuffers /// max num of storage buffers allowed in all stages in a descriptor set
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004143 u32 maxDescriptorSetStorageBuffersDynamic /// max num of dynamic storage buffers allowed in all stages in a descriptor set
Jesse Halld27f6aa2015-08-15 17:58:48 -07004144 u32 maxDescriptorSetSampledImages /// max num of sampled images allowed in all stages in a descriptor set
4145 u32 maxDescriptorSetStorageImages /// max num of storage images allowed in all stages in a descriptor set
Jesse Halle1b12782015-11-30 11:27:32 -08004146 u32 maxDescriptorSetInputAttachments
Jesse Halld27f6aa2015-08-15 17:58:48 -07004147 /// vertex stage limits
4148 u32 maxVertexInputAttributes /// max num of vertex input attribute slots
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004149 u32 maxVertexInputBindings /// max num of vertex input binding slots
Jesse Halld27f6aa2015-08-15 17:58:48 -07004150 u32 maxVertexInputAttributeOffset /// max vertex input attribute offset added to vertex buffer offset
4151 u32 maxVertexInputBindingStride /// max vertex input binding stride
4152 u32 maxVertexOutputComponents /// max num of output components written by vertex shader
4153 /// tessellation control stage limits
Jesse Hall3fbc8562015-11-29 22:10:52 -08004154 u32 maxTessellationGenerationLevel /// max level supported by tess primitive generator
Jesse Hallae38f732015-11-19 21:32:50 -08004155 u32 maxTessellationPatchSize /// max patch size (vertices)
4156 u32 maxTessellationControlPerVertexInputComponents /// max num of input components per-vertex in TCS
4157 u32 maxTessellationControlPerVertexOutputComponents /// max num of output components per-vertex in TCS
4158 u32 maxTessellationControlPerPatchOutputComponents /// max num of output components per-patch in TCS
4159 u32 maxTessellationControlTotalOutputComponents /// max total num of per-vertex and per-patch output components in TCS
4160 u32 maxTessellationEvaluationInputComponents /// max num of input components per vertex in TES
4161 u32 maxTessellationEvaluationOutputComponents /// max num of output components per vertex in TES
Jesse Halld27f6aa2015-08-15 17:58:48 -07004162 /// geometry stage limits
4163 u32 maxGeometryShaderInvocations /// max invocation count supported in geometry shader
4164 u32 maxGeometryInputComponents /// max num of input components read in geometry stage
4165 u32 maxGeometryOutputComponents /// max num of output components written in geometry stage
4166 u32 maxGeometryOutputVertices /// max num of vertices that can be emitted in geometry stage
4167 u32 maxGeometryTotalOutputComponents /// max total num of components (all vertices) written in geometry stage
4168 /// fragment stage limits
4169 u32 maxFragmentInputComponents /// max num of input compontents read in fragment stage
Jesse Hallfbf97b02015-11-20 14:17:03 -08004170 u32 maxFragmentOutputAttachments /// max num of output attachments written in fragment stage
Jesse Hall3fbc8562015-11-29 22:10:52 -08004171 u32 maxFragmentDualSrcAttachments /// max num of output attachments written when using dual source blending
Jesse Halld27f6aa2015-08-15 17:58:48 -07004172 u32 maxFragmentCombinedOutputResources /// max total num of storage buffers, storage images and output buffers
4173 /// compute stage limits
4174 u32 maxComputeSharedMemorySize /// max total storage size of work group local storage (bytes)
4175 u32[3] maxComputeWorkGroupCount /// max num of compute work groups that may be dispatched by a single command (x,y,z)
4176 u32 maxComputeWorkGroupInvocations /// max total compute invocations in a single local work group
4177 u32[3] maxComputeWorkGroupSize /// max local size of a compute work group (x,y,z)
4178
4179 u32 subPixelPrecisionBits /// num bits of subpixel precision in screen x and y
4180 u32 subTexelPrecisionBits /// num bits of subtexel precision
4181 u32 mipmapPrecisionBits /// num bits of mipmap precision
4182
4183 u32 maxDrawIndexedIndexValue /// max index value for indexed draw calls (for 32-bit indices)
Jesse Halldba27f72015-11-30 14:25:46 -08004184 u32 maxDrawIndirectCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07004185
4186 f32 maxSamplerLodBias /// max absolute sampler level of detail bias
4187 f32 maxSamplerAnisotropy /// max degree of sampler anisotropy
4188
4189 u32 maxViewports /// max number of active viewports
Jesse Halld27f6aa2015-08-15 17:58:48 -07004190 u32[2] maxViewportDimensions /// max viewport dimensions (x,y)
4191 f32[2] viewportBoundsRange /// viewport bounds range (min,max)
4192 u32 viewportSubPixelBits /// num bits of subpixel precision for viewport
4193
Jesse Halldc6d36c2015-11-29 19:12:15 -08004194 platform.size_t minMemoryMapAlignment /// min required alignment of pointers returned by MapMemory (bytes)
4195 VkDeviceSize minTexelBufferOffsetAlignment /// min required alignment for texel buffer offsets (bytes)
4196 VkDeviceSize minUniformBufferOffsetAlignment /// min required alignment for uniform buffer sizes and offsets (bytes)
4197 VkDeviceSize minStorageBufferOffsetAlignment /// min required alignment for storage buffer offsets (bytes)
Jesse Halld27f6aa2015-08-15 17:58:48 -07004198
Jesse Hallfbf97b02015-11-20 14:17:03 -08004199 s32 minTexelOffset /// min texel offset for OpTextureSampleOffset
Jesse Halld27f6aa2015-08-15 17:58:48 -07004200 u32 maxTexelOffset /// max texel offset for OpTextureSampleOffset
Jesse Hallfbf97b02015-11-20 14:17:03 -08004201 s32 minTexelGatherOffset /// min texel offset for OpTextureGatherOffset
Jesse Halld27f6aa2015-08-15 17:58:48 -07004202 u32 maxTexelGatherOffset /// max texel offset for OpTextureGatherOffset
4203 f32 minInterpolationOffset /// furthest negative offset for interpolateAtOffset
4204 f32 maxInterpolationOffset /// furthest positive offset for interpolateAtOffset
4205 u32 subPixelInterpolationOffsetBits /// num of subpixel bits for interpolateAtOffset
4206
4207 u32 maxFramebufferWidth /// max width for a framebuffer
4208 u32 maxFramebufferHeight /// max height for a framebuffer
4209 u32 maxFramebufferLayers /// max layer count for a layered framebuffer
Jesse Hall091ed9e2015-11-30 00:55:29 -08004210 VkSampleCountFlags framebufferColorSampleCounts
4211 VkSampleCountFlags framebufferDepthSampleCounts
4212 VkSampleCountFlags framebufferStencilSampleCounts
4213 VkSampleCountFlags framebufferNoAttachmentSampleCounts
Jesse Halld27f6aa2015-08-15 17:58:48 -07004214 u32 maxColorAttachments /// max num of framebuffer color attachments
4215
Jesse Hall091ed9e2015-11-30 00:55:29 -08004216 VkSampleCountFlags sampledImageColorSampleCounts
4217 VkSampleCountFlags sampledImageIntegerSampleCounts
4218 VkSampleCountFlags sampledImageDepthSampleCounts
4219 VkSampleCountFlags sampledImageStencilSampleCounts
4220 VkSampleCountFlags storageImageSampleCounts
Jesse Halld27f6aa2015-08-15 17:58:48 -07004221 u32 maxSampleMaskWords /// max num of sample mask words
Jesse Hallf9fa9a52016-01-08 16:08:51 -08004222 VkBool32 timestampComputeAndGraphics
Jesse Halld27f6aa2015-08-15 17:58:48 -07004223
Jesse Halla9bb62b2015-11-21 19:31:56 -08004224 f32 timestampPeriod
Jesse Halld27f6aa2015-08-15 17:58:48 -07004225
4226 u32 maxClipDistances /// max number of clip distances
4227 u32 maxCullDistances /// max number of cull distances
4228 u32 maxCombinedClipAndCullDistances /// max combined number of user clipping
4229
Jesse Hallfbf97b02015-11-20 14:17:03 -08004230 u32 discreteQueuePriorities
4231
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004232 f32[2] pointSizeRange /// range (min,max) of supported point sizes
4233 f32[2] lineWidthRange /// range (min,max) of supported line widths
Jesse Halld27f6aa2015-08-15 17:58:48 -07004234 f32 pointSizeGranularity /// granularity of supported point sizes
4235 f32 lineWidthGranularity /// granularity of supported line widths
Jesse Hall03b6fe12015-11-24 12:44:21 -08004236 VkBool32 strictLines
Jesse Hall091ed9e2015-11-30 00:55:29 -08004237 VkBool32 standardSampleLocations
Jesse Halla9bb62b2015-11-21 19:31:56 -08004238
Jesse Hall65ab5522015-11-30 00:07:16 -08004239 VkDeviceSize optimalBufferCopyOffsetAlignment
4240 VkDeviceSize optimalBufferCopyRowPitchAlignment
Jesse Halldba27f72015-11-30 14:25:46 -08004241 VkDeviceSize nonCoherentAtomSize
Jesse Halld27f6aa2015-08-15 17:58:48 -07004242}
4243
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004244class VkPhysicalDeviceSparseProperties {
4245 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 -08004246 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 -07004247 VkBool32 residencyStandard3DBlockShape /// Sparse resources support: GPU will access all 3D sparse resources using the standard block shapes (based on pixel format)
4248 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 -07004249 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
4250}
4251
Jesse Halld27f6aa2015-08-15 17:58:48 -07004252class VkSemaphoreCreateInfo {
4253 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO
4254 const void* pNext /// Pointer to next structure
4255 VkSemaphoreCreateFlags flags /// Semaphore creation flags
4256}
4257
4258class VkQueryPoolCreateInfo {
4259 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO
4260 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08004261 VkQueryPoolCreateFlags flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07004262 VkQueryType queryType
Jesse Hall3dd678a2016-01-08 21:52:01 -08004263 u32 queryCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07004264 VkQueryPipelineStatisticFlags pipelineStatistics /// Optional
4265}
4266
4267class VkFramebufferCreateInfo {
4268 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO
4269 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08004270 VkFramebufferCreateFlags flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07004271 VkRenderPass renderPass
4272 u32 attachmentCount
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004273 const VkImageView* pAttachments
Jesse Halld27f6aa2015-08-15 17:58:48 -07004274 u32 width
4275 u32 height
4276 u32 layers
4277}
4278
Jesse Hall3fbc8562015-11-29 22:10:52 -08004279class VkDrawIndirectCommand {
Jesse Halld27f6aa2015-08-15 17:58:48 -07004280 u32 vertexCount
4281 u32 instanceCount
4282 u32 firstVertex
4283 u32 firstInstance
4284}
4285
Jesse Hall3fbc8562015-11-29 22:10:52 -08004286class VkDrawIndexedIndirectCommand {
Jesse Halld27f6aa2015-08-15 17:58:48 -07004287 u32 indexCount
4288 u32 instanceCount
4289 u32 firstIndex
4290 s32 vertexOffset
4291 u32 firstInstance
4292}
4293
Jesse Hall3fbc8562015-11-29 22:10:52 -08004294class VkDispatchIndirectCommand {
Jesse Halld27f6aa2015-08-15 17:58:48 -07004295 u32 x
4296 u32 y
4297 u32 z
4298}
4299
Jesse Hall54f8d132018-04-18 08:16:59 -07004300class VkBaseOutStructure {
4301 VkStructureType sType
4302 void* pNext
4303}
4304
4305class VkBaseInStructure {
4306 VkStructureType sType
4307 const void* pNext
4308}
4309
Ian Elliott28bd2c32017-10-13 09:21:12 -06004310//@vulkan1_1 structures
Daniel Koch09f7bf92017-10-05 00:26:58 -04004311
4312class VkPhysicalDeviceSubgroupProperties {
4313 VkStructureType sType
4314 void* pNext
4315 u32 subgroupSize
4316 VkShaderStageFlags supportedStages
4317 VkSubgroupFeatureFlags supportedOperations
4318 VkBool32 quadOperationsInAllStages
4319}
4320
4321class VkBindBufferMemoryInfo {
4322 VkStructureType sType
4323 const void* pNext
4324 VkBuffer buffer
4325 VkDeviceMemory memory
4326 VkDeviceSize memoryOffset
4327}
4328
4329class VkBindImageMemoryInfo {
4330 VkStructureType sType
4331 const void* pNext
4332 VkImage image
4333 VkDeviceMemory memory
4334 VkDeviceSize memoryOffset
4335}
4336
4337class VkPhysicalDevice16BitStorageFeatures {
4338 VkStructureType sType
4339 void* pNext
4340 VkBool32 storageBuffer16BitAccess
4341 VkBool32 uniformAndStorageBuffer16BitAccess
4342 VkBool32 storagePushConstant16
4343 VkBool32 storageInputOutput16
4344}
4345
4346class VkMemoryDedicatedRequirements {
4347 VkStructureType sType
4348 void* pNext
4349 VkBool32 prefersDedicatedAllocation
4350 VkBool32 requiresDedicatedAllocation
4351}
4352
4353class VkMemoryDedicatedAllocateInfo {
4354 VkStructureType sType
4355 const void* pNext
4356 VkImage image
4357 VkBuffer buffer
4358}
4359
4360class VkMemoryAllocateFlagsInfo {
4361 VkStructureType sType
4362 const void* pNext
4363 VkMemoryAllocateFlags flags
4364 u32 deviceMask
4365}
4366
4367class VkDeviceGroupRenderPassBeginInfo {
4368 VkStructureType sType
4369 const void* pNext
4370 u32 deviceMask
4371 u32 deviceRenderAreaCount
4372 const VkRect2D* pDeviceRenderAreas
4373}
4374
4375class VkDeviceGroupCommandBufferBeginInfo {
4376 VkStructureType sType
4377 const void* pNext
4378 u32 deviceMask
4379}
4380
4381class VkDeviceGroupSubmitInfo {
4382 VkStructureType sType
4383 const void* pNext
4384 u32 waitSemaphoreCount
4385 const u32* pWaitSemaphoreDeviceIndices
4386 u32 commandBufferCount
4387 const u32* pCommandBufferDeviceMasks
4388 u32 signalSemaphoreCount
4389 const u32* pSignalSemaphoreDeviceIndices
4390}
4391
4392class VkDeviceGroupBindSparseInfo {
4393 VkStructureType sType
4394 const void* pNext
4395 u32 resourceDeviceIndex
4396 u32 memoryDeviceIndex
4397}
4398
4399class VkBindBufferMemoryDeviceGroupInfo {
4400 VkStructureType sType
4401 const void* pNext
4402 u32 deviceIndexCount
4403 const u32* pDeviceIndices
4404}
4405
4406class VkBindImageMemoryDeviceGroupInfo {
4407 VkStructureType sType
4408 const void* pNext
4409 u32 deviceIndexCount
4410 const u32* pDeviceIndices
Jesse Hall8c954d32018-01-17 22:06:20 -08004411 u32 splitInstanceBindRegionCount
4412 const VkRect2D* pSplitInstanceBindRegions
Daniel Koch09f7bf92017-10-05 00:26:58 -04004413}
4414
4415class VkPhysicalDeviceGroupProperties {
4416 VkStructureType sType
4417 void* pNext
4418 u32 physicalDeviceCount
4419 VkPhysicalDevice[VK_MAX_DEVICE_GROUP_SIZE] physicalDevices
4420 VkBool32 subsetAllocation
4421}
4422
4423class VkDeviceGroupDeviceCreateInfo {
4424 VkStructureType sType
4425 const void* pNext
4426 u32 physicalDeviceCount
4427 const VkPhysicalDevice* pPhysicalDevices
4428}
4429
4430class VkBufferMemoryRequirementsInfo2 {
4431 VkStructureType sType
4432 const void* pNext
4433 VkBuffer buffer
4434}
4435
4436class VkImageMemoryRequirementsInfo2 {
4437 VkStructureType sType
4438 const void* pNext
4439 VkImage image
4440}
4441
4442class VkImageSparseMemoryRequirementsInfo2 {
4443 VkStructureType sType
4444 const void* pNext
4445 VkImage image
4446}
4447
4448class VkMemoryRequirements2 {
4449 VkStructureType sType
4450 void* pNext
4451 VkMemoryRequirements memoryRequirements
4452}
4453
4454class VkSparseImageMemoryRequirements2 {
4455 VkStructureType sType
4456 void* pNext
4457 VkSparseImageMemoryRequirements memoryRequirements
4458}
4459
4460class VkPhysicalDeviceFeatures2 {
4461 VkStructureType sType
4462 void* pNext
4463 VkPhysicalDeviceFeatures features
4464}
4465
4466class VkPhysicalDeviceProperties2 {
4467 VkStructureType sType
4468 void* pNext
4469 VkPhysicalDeviceProperties properties
4470}
4471
4472class VkFormatProperties2 {
4473 VkStructureType sType
4474 void* pNext
4475 VkFormatProperties formatProperties
4476}
4477
4478class VkImageFormatProperties2 {
4479 VkStructureType sType
4480 void* pNext
4481 VkImageFormatProperties imageFormatProperties
4482}
4483
4484class VkPhysicalDeviceImageFormatInfo2 {
4485 VkStructureType sType
4486 const void* pNext
4487 VkFormat format
4488 VkImageType type
4489 VkImageTiling tiling
4490 VkImageUsageFlags usage
4491 VkImageCreateFlags flags
4492}
4493
4494class VkQueueFamilyProperties2 {
4495 VkStructureType sType
4496 void* pNext
4497 VkQueueFamilyProperties queueFamilyProperties
4498}
4499
4500class VkPhysicalDeviceMemoryProperties2 {
4501 VkStructureType sType
4502 void* pNext
4503 VkPhysicalDeviceMemoryProperties memoryProperties
4504}
4505
4506class VkSparseImageFormatProperties2 {
4507 VkStructureType sType
4508 void* pNext
4509 VkSparseImageFormatProperties properties
4510}
4511
4512class VkPhysicalDeviceSparseImageFormatInfo2 {
4513 VkStructureType sType
4514 const void* pNext
4515 VkFormat format
4516 VkImageType type
4517 VkSampleCountFlagBits samples
4518 VkImageUsageFlags usage
4519 VkImageTiling tiling
4520}
4521
4522class VkPhysicalDevicePointClippingProperties {
4523 VkStructureType sType
4524 void* pNext
4525 VkPointClippingBehavior pointClippingBehavior
4526}
4527
4528class VkInputAttachmentAspectReference {
4529 u32 subpass
4530 u32 inputAttachmentIndex
4531 VkImageAspectFlags aspectMask
4532}
4533
4534class VkRenderPassInputAttachmentAspectCreateInfo {
4535 VkStructureType sType
4536 const void* pNext
4537 u32 aspectReferenceCount
4538 const VkInputAttachmentAspectReference* pAspectReferences
4539}
4540
4541class VkImageViewUsageCreateInfo {
4542 VkStructureType sType
4543 const void* pNext
4544 VkImageUsageFlags usage
4545}
4546
4547class VkPipelineTessellationDomainOriginStateCreateInfo {
4548 VkStructureType sType
4549 const void* pNext
4550 VkTessellationDomainOrigin domainOrigin
4551}
4552
4553class VkRenderPassMultiviewCreateInfo {
4554 VkStructureType sType
4555 const void* pNext
4556 u32 subpassCount
4557 const u32* pViewMasks
4558 u32 dependencyCount
4559 const s32* pViewOffsets
4560 u32 correlationMaskCount
4561 const u32* pCorrelationMasks
4562}
4563
4564class VkPhysicalDeviceMultiviewFeatures {
4565 VkStructureType sType
4566 void* pNext
4567 VkBool32 multiview
4568 VkBool32 multiviewGeometryShader
4569 VkBool32 multiviewTessellationShader
4570}
4571
4572class VkPhysicalDeviceMultiviewProperties {
4573 VkStructureType sType
4574 void* pNext
4575 u32 maxMultiviewViewCount
4576 u32 maxMultiviewInstanceIndex
4577}
4578
4579class VkPhysicalDeviceVariablePointerFeatures {
4580 VkStructureType sType
4581 void* pNext
4582 VkBool32 variablePointersStorageBuffer
4583 VkBool32 variablePointers
4584}
4585
4586class VkPhysicalDeviceProtectedMemoryFeatures {
4587 VkStructureType sType
4588 void* pNext
4589 VkBool32 protectedMemory
4590}
4591
4592class VkPhysicalDeviceProtectedMemoryProperties {
4593 VkStructureType sType
4594 void* pNext
4595 VkBool32 protectedNoFault
4596}
4597
4598class VkDeviceQueueInfo2 {
4599 VkStructureType sType
4600 const void* pNext
4601 VkDeviceQueueCreateFlags flags
4602 u32 queueFamilyIndex
4603 u32 queueIndex
4604}
4605
4606class VkProtectedSubmitInfo {
4607 VkStructureType sType
4608 const void* pNext
4609 VkBool32 protectedSubmit
4610}
4611
4612class VkSamplerYcbcrConversionCreateInfo {
4613 VkStructureType sType
4614 const void* pNext
4615 VkFormat format
4616 VkSamplerYcbcrModelConversion ycbcrModel
4617 VkSamplerYcbcrRange ycbcrRange
4618 VkComponentMapping components
4619 VkChromaLocation xChromaOffset
4620 VkChromaLocation yChromaOffset
4621 VkFilter chromaFilter
4622 VkBool32 forceExplicitReconstruction
4623}
4624
4625class VkSamplerYcbcrConversionInfo {
4626 VkStructureType sType
4627 const void* pNext
4628 VkSamplerYcbcrConversion conversion
4629}
4630
4631class VkBindImagePlaneMemoryInfo {
4632 VkStructureType sType
4633 const void* pNext
4634 VkImageAspectFlagBits planeAspect
4635}
4636
4637class VkImagePlaneMemoryRequirementsInfo {
4638 VkStructureType sType
4639 const void* pNext
4640 VkImageAspectFlagBits planeAspect
4641}
4642
4643class VkPhysicalDeviceSamplerYcbcrConversionFeatures {
4644 VkStructureType sType
4645 void* pNext
4646 VkBool32 samplerYcbcrConversion
4647}
4648
4649class VkSamplerYcbcrConversionImageFormatProperties {
4650 VkStructureType sType
4651 void* pNext
4652 u32 combinedImageSamplerDescriptorCount
4653}
4654
4655class VkDescriptorUpdateTemplateEntry {
4656 u32 dstBinding
4657 u32 dstArrayElement
4658 u32 descriptorCount
4659 VkDescriptorType descriptorType
4660 platform.size_t offset
4661 platform.size_t stride
4662}
4663
4664class VkDescriptorUpdateTemplateCreateInfo {
4665 VkStructureType sType
4666 void* pNext
4667 VkDescriptorUpdateTemplateCreateFlags flags
4668 u32 descriptorUpdateEntryCount
4669 const VkDescriptorUpdateTemplateEntry* pDescriptorUpdateEntries
4670 VkDescriptorUpdateTemplateType templateType
4671 VkDescriptorSetLayout descriptorSetLayout
4672 VkPipelineBindPoint pipelineBindPoint
4673 VkPipelineLayout pipelineLayout
4674 u32 set
4675}
4676
4677class VkExternalMemoryProperties {
4678 VkExternalMemoryFeatureFlags externalMemoryFeatures
4679 VkExternalMemoryHandleTypeFlags exportFromImportedHandleTypes
4680 VkExternalMemoryHandleTypeFlags compatibleHandleTypes
4681}
4682
4683class VkPhysicalDeviceExternalImageFormatInfo {
4684 VkStructureType sType
4685 const void* pNext
4686 VkExternalMemoryHandleTypeFlagBits handleType
4687}
4688
4689class VkExternalImageFormatProperties {
4690 VkStructureType sType
4691 void* pNext
4692 VkExternalMemoryProperties externalMemoryProperties
4693}
4694
4695class VkPhysicalDeviceExternalBufferInfo {
4696 VkStructureType sType
4697 const void* pNext
4698 VkBufferCreateFlags flags
4699 VkBufferUsageFlags usage
4700 VkExternalMemoryHandleTypeFlagBits handleType
4701}
4702
4703class VkExternalBufferProperties {
4704 VkStructureType sType
4705 void* pNext
4706 VkExternalMemoryProperties externalMemoryProperties
4707}
4708
4709class VkPhysicalDeviceIDProperties {
4710 VkStructureType sType
4711 void* pNext
4712 u8[VK_UUID_SIZE] deviceUUID
4713 u8[VK_UUID_SIZE] driverUUID
4714 u8[VK_LUID_SIZE] deviceLUID
4715 u32 deviceNodeMask
4716 VkBool32 deviceLUIDValid
4717}
4718
4719class VkExternalMemoryImageCreateInfo {
4720 VkStructureType sType
4721 const void* pNext
4722 VkExternalMemoryHandleTypeFlags handleTypes
4723}
4724
4725class VkExternalMemoryBufferCreateInfo {
4726 VkStructureType sType
4727 const void* pNext
4728 VkExternalMemoryHandleTypeFlags handleTypes
4729}
4730
4731class VkExportMemoryAllocateInfo {
4732 VkStructureType sType
4733 const void* pNext
4734 VkExternalMemoryHandleTypeFlags handleTypes
4735}
4736
4737class VkPhysicalDeviceExternalFenceInfo {
4738 VkStructureType sType
4739 const void* pNext
4740 VkExternalFenceHandleTypeFlagBits handleType
4741}
4742
4743class VkExternalFenceProperties {
4744 VkStructureType sType
4745 void* pNext
4746 VkExternalFenceHandleTypeFlags exportFromImportedHandleTypes
4747 VkExternalFenceHandleTypeFlags compatibleHandleTypes
4748 VkExternalFenceFeatureFlags externalFenceFeatures
4749}
4750
4751class VkExportFenceCreateInfo {
4752 VkStructureType sType
4753 const void* pNext
4754 VkExternalFenceHandleTypeFlags handleTypes
4755}
4756
4757class VkExportSemaphoreCreateInfo {
4758 VkStructureType sType
4759 const void* pNext
4760 VkExternalSemaphoreHandleTypeFlags handleTypes
4761}
4762
4763class VkPhysicalDeviceExternalSemaphoreInfo {
4764 VkStructureType sType
4765 const void* pNext
4766 VkExternalSemaphoreHandleTypeFlagBits handleType
4767}
4768
4769class VkExternalSemaphoreProperties {
4770 VkStructureType sType
4771 void* pNext
4772 VkExternalSemaphoreHandleTypeFlags exportFromImportedHandleTypes
4773 VkExternalSemaphoreHandleTypeFlags compatibleHandleTypes
4774 VkExternalSemaphoreFeatureFlags externalSemaphoreFeatures
4775}
4776
4777class VkPhysicalDeviceMaintenance3Properties {
4778 VkStructureType sType
4779 void* pNext
4780 u32 maxPerSetDescriptors
4781 VkDeviceSize maxMemoryAllocationSize
4782}
4783
4784class VkDescriptorSetLayoutSupport {
4785 VkStructureType sType
4786 void* pNext
4787 VkBool32 supported
4788}
4789
4790class VkPhysicalDeviceShaderDrawParameterFeatures {
4791 VkStructureType sType
4792 void* pNext
4793 VkBool32 shaderDrawParameters
4794}
4795
4796
Jesse Hallad250842017-03-10 18:35:38 -08004797@extension("VK_KHR_surface") // 1
Jesse Hallb00daad2015-11-29 19:46:20 -08004798class VkSurfaceCapabilitiesKHR {
Jesse Hall1356b0d2015-11-23 17:24:58 -08004799 u32 minImageCount
4800 u32 maxImageCount
4801 VkExtent2D currentExtent
4802 VkExtent2D minImageExtent
4803 VkExtent2D maxImageExtent
Jesse Hallf4ab2b12015-11-30 16:04:55 -08004804 u32 maxImageArrayLayers
Jesse Hall1356b0d2015-11-23 17:24:58 -08004805 VkSurfaceTransformFlagsKHR supportedTransforms
Jesse Hallf4ab2b12015-11-30 16:04:55 -08004806 VkSurfaceTransformFlagBitsKHR currentTransform
Jesse Halla6429252015-11-29 18:59:42 -08004807 VkCompositeAlphaFlagsKHR supportedCompositeAlpha
Jesse Hall1356b0d2015-11-23 17:24:58 -08004808 VkImageUsageFlags supportedUsageFlags
Michael Lentine88594d72015-11-12 12:49:45 -08004809}
4810
Jesse Hallad250842017-03-10 18:35:38 -08004811@extension("VK_KHR_surface") // 1
Michael Lentine88594d72015-11-12 12:49:45 -08004812class VkSurfaceFormatKHR {
Jesse Hall1356b0d2015-11-23 17:24:58 -08004813 VkFormat format
4814 VkColorSpaceKHR colorSpace
Michael Lentine88594d72015-11-12 12:49:45 -08004815}
4816
Jesse Hallad250842017-03-10 18:35:38 -08004817@extension("VK_KHR_swapchain") // 2
Michael Lentine88594d72015-11-12 12:49:45 -08004818class VkSwapchainCreateInfoKHR {
Jesse Hall1356b0d2015-11-23 17:24:58 -08004819 VkStructureType sType
4820 const void* pNext
Jesse Hallf4ab2b12015-11-30 16:04:55 -08004821 VkSwapchainCreateFlagsKHR flags
Jesse Hall1356b0d2015-11-23 17:24:58 -08004822 VkSurfaceKHR surface
4823 u32 minImageCount
4824 VkFormat imageFormat
4825 VkColorSpaceKHR imageColorSpace
4826 VkExtent2D imageExtent
Jesse Hallf4ab2b12015-11-30 16:04:55 -08004827 u32 imageArrayLayers
4828 VkImageUsageFlags imageUsage
Jesse Hall1356b0d2015-11-23 17:24:58 -08004829 VkSharingMode sharingMode
Jesse Hall03b6fe12015-11-24 12:44:21 -08004830 u32 queueFamilyIndexCount
Jesse Hall1356b0d2015-11-23 17:24:58 -08004831 const u32* pQueueFamilyIndices
Jesse Hallf4ab2b12015-11-30 16:04:55 -08004832 VkSurfaceTransformFlagBitsKHR preTransform
4833 VkCompositeAlphaFlagBitsKHR compositeAlpha
Jesse Hall1356b0d2015-11-23 17:24:58 -08004834 VkPresentModeKHR presentMode
Jesse Hall1356b0d2015-11-23 17:24:58 -08004835 VkBool32 clipped
Jesse Hallf4ab2b12015-11-30 16:04:55 -08004836 VkSwapchainKHR oldSwapchain
Michael Lentine88594d72015-11-12 12:49:45 -08004837}
4838
Jesse Hallad250842017-03-10 18:35:38 -08004839@extension("VK_KHR_swapchain") // 2
Michael Lentine88594d72015-11-12 12:49:45 -08004840class VkPresentInfoKHR {
Jesse Hall1356b0d2015-11-23 17:24:58 -08004841 VkStructureType sType
4842 const void* pNext
Jesse Hallb00daad2015-11-29 19:46:20 -08004843 u32 waitSemaphoreCount
4844 const VkSemaphore* pWaitSemaphores
Jesse Hall1356b0d2015-11-23 17:24:58 -08004845 u32 swapchainCount
Jesse Hall03b6fe12015-11-24 12:44:21 -08004846 const VkSwapchainKHR* pSwapchains
Jesse Hallf4ab2b12015-11-30 16:04:55 -08004847 const u32* pImageIndices
Jesse Halle1b12782015-11-30 11:27:32 -08004848 VkResult* pResults
Michael Lentine88594d72015-11-12 12:49:45 -08004849}
4850
Ian Elliott28bd2c32017-10-13 09:21:12 -06004851@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04004852@extension("VK_KHR_swapchain") // 2
4853class VkImageSwapchainCreateInfoKHR {
4854 VkStructureType sType
4855 const void* pNext
4856 VkSwapchainKHR swapchain
4857}
4858
Ian Elliott28bd2c32017-10-13 09:21:12 -06004859@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04004860@extension("VK_KHR_swapchain") // 2
4861class VkBindImageMemorySwapchainInfoKHR {
4862 VkStructureType sType
4863 const void* pNext
4864 VkSwapchainKHR swapchain
4865 u32 imageIndex
4866}
4867
Ian Elliott28bd2c32017-10-13 09:21:12 -06004868@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04004869@extension("VK_KHR_swapchain") // 2
4870class VkAcquireNextImageInfoKHR {
4871 VkStructureType sType
4872 const void* pNext
4873 VkSwapchainKHR swapchain
4874 u64 timeout
4875 VkSemaphore semaphore
4876 VkFence fence
4877 u32 deviceMask
4878}
4879
Ian Elliott28bd2c32017-10-13 09:21:12 -06004880@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04004881@extension("VK_KHR_swapchain") // 2
4882class VkDeviceGroupPresentCapabilitiesKHR {
4883 VkStructureType sType
4884 const void* pNext
4885 u32[VK_MAX_DEVICE_GROUP_SIZE] presentMask
4886 VkDeviceGroupPresentModeFlagsKHR modes
4887}
4888
Ian Elliott28bd2c32017-10-13 09:21:12 -06004889@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04004890@extension("VK_KHR_swapchain") // 2
4891class VkDeviceGroupPresentInfoKHR {
4892 VkStructureType sType
4893 const void* pNext
4894 u32 swapchainCount
4895 const u32* pDeviceMasks
4896 VkDeviceGroupPresentModeFlagBitsKHR mode
4897}
4898
Ian Elliott28bd2c32017-10-13 09:21:12 -06004899@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04004900@extension("VK_KHR_swapchain") // 2
4901class VkDeviceGroupSwapchainCreateInfoKHR {
4902 VkStructureType sType
4903 const void* pNext
4904 VkDeviceGroupPresentModeFlagsKHR modes
4905}
4906
Jesse Hallad250842017-03-10 18:35:38 -08004907@extension("VK_KHR_display") // 3
Jesse Hall1356b0d2015-11-23 17:24:58 -08004908class VkDisplayPropertiesKHR {
4909 VkDisplayKHR display
4910 const char* displayName
4911 VkExtent2D physicalDimensions
4912 VkExtent2D physicalResolution
4913 VkSurfaceTransformFlagsKHR supportedTransforms
Jesse Hall1356b0d2015-11-23 17:24:58 -08004914 VkBool32 planeReorderPossible
Jesse Halla6429252015-11-29 18:59:42 -08004915 VkBool32 persistentContent
Michael Lentine88594d72015-11-12 12:49:45 -08004916}
4917
Jesse Hallad250842017-03-10 18:35:38 -08004918@extension("VK_KHR_display") // 3
Jesse Halla6429252015-11-29 18:59:42 -08004919class VkDisplayModeParametersKHR {
Jesse Hall1356b0d2015-11-23 17:24:58 -08004920 VkExtent2D visibleRegion
Jesse Halla6429252015-11-29 18:59:42 -08004921 u32 refreshRate
Michael Lentine88594d72015-11-12 12:49:45 -08004922}
Jesse Halld27f6aa2015-08-15 17:58:48 -07004923
Jesse Hallad250842017-03-10 18:35:38 -08004924@extension("VK_KHR_display") // 3
Jesse Hall1356b0d2015-11-23 17:24:58 -08004925class VkDisplayModePropertiesKHR {
4926 VkDisplayModeKHR displayMode
Jesse Halla6429252015-11-29 18:59:42 -08004927 VkDisplayModeParametersKHR parameters
Jesse Hall1356b0d2015-11-23 17:24:58 -08004928}
4929
Jesse Hallad250842017-03-10 18:35:38 -08004930@extension("VK_KHR_display") // 3
Jesse Hall1356b0d2015-11-23 17:24:58 -08004931class VkDisplayModeCreateInfoKHR {
4932 VkStructureType sType
4933 const void* pNext
Jesse Hall9ba8bc82015-11-30 16:22:16 -08004934 VkDisplayModeCreateFlagsKHR flags
Jesse Halla6429252015-11-29 18:59:42 -08004935 VkDisplayModeParametersKHR parameters
Jesse Hall1356b0d2015-11-23 17:24:58 -08004936}
4937
Jesse Hallad250842017-03-10 18:35:38 -08004938@extension("VK_KHR_display") // 3
Jesse Hall1356b0d2015-11-23 17:24:58 -08004939class VkDisplayPlanePropertiesKHR {
Jesse Halla6429252015-11-29 18:59:42 -08004940 VkDisplayKHR currentDisplay
4941 u32 currentStackIndex
4942}
4943
Jesse Hallad250842017-03-10 18:35:38 -08004944@extension("VK_KHR_display") // 3
Jesse Halla6429252015-11-29 18:59:42 -08004945class VkDisplayPlaneCapabilitiesKHR {
Jesse Hall1356b0d2015-11-23 17:24:58 -08004946 VkDisplayPlaneAlphaFlagsKHR supportedAlpha
4947 VkOffset2D minSrcPosition
4948 VkOffset2D maxSrcPosition
4949 VkExtent2D minSrcExtent
4950 VkExtent2D maxSrcExtent
4951 VkOffset2D minDstPosition
4952 VkOffset2D maxDstPosition
4953 VkExtent2D minDstExtent
4954 VkExtent2D maxDstExtent
4955}
4956
Jesse Hallad250842017-03-10 18:35:38 -08004957@extension("VK_KHR_display") // 3
Jesse Halla6429252015-11-29 18:59:42 -08004958class VkDisplaySurfaceCreateInfoKHR {
Jesse Hall1356b0d2015-11-23 17:24:58 -08004959 VkStructureType sType
4960 const void* pNext
Jesse Hallf4ab2b12015-11-30 16:04:55 -08004961 VkDisplaySurfaceCreateFlagsKHR flags
Jesse Hall1356b0d2015-11-23 17:24:58 -08004962 VkDisplayModeKHR displayMode
4963 u32 planeIndex
4964 u32 planeStackIndex
Jesse Hallf4ab2b12015-11-30 16:04:55 -08004965 VkSurfaceTransformFlagBitsKHR transform
Jesse Hall1356b0d2015-11-23 17:24:58 -08004966 f32 globalAlpha
Jesse Hallf4ab2b12015-11-30 16:04:55 -08004967 VkDisplayPlaneAlphaFlagBitsKHR alphaMode
4968 VkExtent2D imageExtent
Jesse Hall1356b0d2015-11-23 17:24:58 -08004969}
4970
Jesse Hallad250842017-03-10 18:35:38 -08004971@extension("VK_KHR_display_swapchain") // 4
Jesse Hall1356b0d2015-11-23 17:24:58 -08004972class VkDisplayPresentInfoKHR {
4973 VkStructureType sType
4974 const void* pNext
4975 VkRect2D srcRect
4976 VkRect2D dstRect
Jesse Halla6429252015-11-29 18:59:42 -08004977 VkBool32 persistent
Jesse Hall1356b0d2015-11-23 17:24:58 -08004978}
4979
Jesse Hallad250842017-03-10 18:35:38 -08004980@extension("VK_KHR_xlib_surface") // 5
Jesse Hallf9fa9a52016-01-08 16:08:51 -08004981class VkXlibSurfaceCreateInfoKHR {
4982 VkStructureType sType
4983 const void* pNext
4984 VkXlibSurfaceCreateFlagsKHR flags
4985 platform.Display* dpy
4986 platform.Window window
4987}
4988
Jesse Hallad250842017-03-10 18:35:38 -08004989@extension("VK_KHR_xcb_surface") // 6
Jesse Hallf9fa9a52016-01-08 16:08:51 -08004990class VkXcbSurfaceCreateInfoKHR {
4991 VkStructureType sType
4992 const void* pNext
4993 VkXcbSurfaceCreateFlagsKHR flags
4994 platform.xcb_connection_t* connection
4995 platform.xcb_window_t window
4996}
4997
Jesse Hallad250842017-03-10 18:35:38 -08004998@extension("VK_KHR_wayland_surface") // 7
Jesse Hallf9fa9a52016-01-08 16:08:51 -08004999class VkWaylandSurfaceCreateInfoKHR {
5000 VkStructureType sType
5001 const void* pNext
5002 VkWaylandSurfaceCreateFlagsKHR flags
5003 platform.wl_display* display
5004 platform.wl_surface* surface
5005}
5006
Jesse Hallad250842017-03-10 18:35:38 -08005007@extension("VK_KHR_mir_surface") // 8
Jesse Hallf9fa9a52016-01-08 16:08:51 -08005008class VkMirSurfaceCreateInfoKHR {
5009 VkStructureType sType
5010 const void* pNext
5011 VkMirSurfaceCreateFlagsKHR flags
5012 platform.MirConnection* connection
5013 platform.MirSurface* mirSurface
5014}
5015
Jesse Hallad250842017-03-10 18:35:38 -08005016@extension("VK_KHR_android_surface") // 9
Jesse Hallf9fa9a52016-01-08 16:08:51 -08005017class VkAndroidSurfaceCreateInfoKHR {
5018 VkStructureType sType
5019 const void* pNext
5020 VkAndroidSurfaceCreateFlagsKHR flags
5021 platform.ANativeWindow* window
5022}
5023
Jesse Hallad250842017-03-10 18:35:38 -08005024@extension("VK_KHR_win32_surface") // 10
Jesse Hallf9fa9a52016-01-08 16:08:51 -08005025class VkWin32SurfaceCreateInfoKHR {
5026 VkStructureType sType
5027 const void* pNext
5028 VkWin32SurfaceCreateFlagsKHR flags
5029 platform.HINSTANCE hinstance
5030 platform.HWND hwnd
5031}
5032
Jesse Hallad250842017-03-10 18:35:38 -08005033@extension("VK_ANDROID_native_buffer") // 11
Jesse Halld1abd742017-02-09 21:45:51 -08005034@internal class Gralloc1Usage {
5035 u64 consumer
5036 u64 producer
5037}
5038
Jesse Hallad250842017-03-10 18:35:38 -08005039@extension("VK_ANDROID_native_buffer") // 11
Chia-I Wub262ddc2016-03-22 07:38:20 +08005040class VkNativeBufferANDROID {
5041 VkStructureType sType
5042 const void* pNext
5043 platform.buffer_handle_t handle
Jesse Halld1abd742017-02-09 21:45:51 -08005044 s32 stride
5045 s32 format
5046 s32 usage
5047 Gralloc1Usage usage2
Chia-I Wub262ddc2016-03-22 07:38:20 +08005048}
5049
Jesse Hallad250842017-03-10 18:35:38 -08005050@extension("VK_ANDROID_native_buffer") // 11
Chris Forbes8e4438b2016-12-07 16:26:49 +13005051class VkSwapchainImageCreateInfoANDROID {
5052 VkStructureType sType
5053 const void* pNext
Chris Forbes134d9582017-01-12 14:26:37 +13005054 VkSwapchainImageUsageFlagsANDROID flags
Chris Forbes48853712017-01-12 14:09:33 +13005055}
Ian Elliott4c8bb2a2016-12-29 11:07:26 -07005056
Jesse Hallad250842017-03-10 18:35:38 -08005057@extension("VK_ANDROID_native_buffer") // 11
Chris Forbes1d4e5542017-02-15 19:38:50 +13005058class VkPhysicalDevicePresentationPropertiesANDROID {
5059 VkStructureType sType
5060 void* pNext
5061 VkBool32 sharedImage
5062}
5063
Jesse Hallad250842017-03-10 18:35:38 -08005064@extension("VK_EXT_debug_report") // 12
Jesse Hall715b86a2016-01-16 16:34:29 -08005065class VkDebugReportCallbackCreateInfoEXT {
5066 VkStructureType sType
5067 const void* pNext
5068 VkDebugReportFlagsEXT flags
5069 PFN_vkDebugReportCallbackEXT pfnCallback
5070 void* pUserData
5071}
5072
Jesse Hallad250842017-03-10 18:35:38 -08005073@extension("VK_AMD_rasterization_order") // 19
Jesse Hall26763382016-05-20 07:13:52 -07005074class VkPipelineRasterizationStateRasterizationOrderAMD {
5075 VkStructureType sType
5076 const void* pNext
5077 VkRasterizationOrderAMD rasterizationOrder
5078}
5079
Jesse Hallad250842017-03-10 18:35:38 -08005080@extension("VK_EXT_debug_marker") // 23
Jesse Hall26763382016-05-20 07:13:52 -07005081class VkDebugMarkerObjectNameInfoEXT {
5082 VkStructureType sType
5083 const void* pNext
5084 VkDebugReportObjectTypeEXT objectType
5085 u64 object
5086 const char* pObjectName
5087}
5088
Jesse Hallad250842017-03-10 18:35:38 -08005089@extension("VK_EXT_debug_marker") // 23
Jesse Hall26763382016-05-20 07:13:52 -07005090class VkDebugMarkerObjectTagInfoEXT {
5091 VkStructureType sType
5092 const void* pNext
5093 VkDebugReportObjectTypeEXT objectType
5094 u64 object
5095 u64 tagName
5096 platform.size_t tagSize
5097 const void* pTag
5098}
5099
Jesse Hallad250842017-03-10 18:35:38 -08005100@extension("VK_EXT_debug_marker") // 23
Jesse Hall26763382016-05-20 07:13:52 -07005101class VkDebugMarkerMarkerInfoEXT {
5102 VkStructureType sType
5103 const void* pNext
5104 const char* pMarkerName
5105 f32[4] color
5106}
5107
Jesse Hallad250842017-03-10 18:35:38 -08005108@extension("VK_NV_dedicated_allocation") // 27
Jesse Hall56d386a2016-07-26 15:20:40 -07005109class VkDedicatedAllocationImageCreateInfoNV {
5110 VkStructureType sType
5111 const void* pNext
5112 VkBool32 dedicatedAllocation
5113}
5114
Jesse Hallad250842017-03-10 18:35:38 -08005115@extension("VK_NV_dedicated_allocation") // 27
Jesse Hall56d386a2016-07-26 15:20:40 -07005116class VkDedicatedAllocationBufferCreateInfoNV {
5117 VkStructureType sType
5118 const void* pNext
5119 VkBool32 dedicatedAllocation
5120}
5121
Jesse Hallad250842017-03-10 18:35:38 -08005122@extension("VK_NV_dedicated_allocation") // 27
Jesse Hall56d386a2016-07-26 15:20:40 -07005123class VkDedicatedAllocationMemoryAllocateInfoNV {
5124 VkStructureType sType
5125 const void* pNext
5126 VkImage image
5127 VkBuffer buffer
5128}
5129
Jesse Hall7ba0ac72017-07-07 17:13:23 -07005130@extension("VK_AMD_texture_gather_bias_lod") // 42
5131class VkTextureLODGatherFormatPropertiesAMD {
5132 VkStructureType sType
5133 void* pNext
5134 VkBool32 supportsTextureGatherLODBiasAMD
5135}
5136
Jesse Hall8c954d32018-01-17 22:06:20 -08005137@extension("VK_AMD_shader_info") // 43
5138class VkShaderResourceUsageAMD {
5139 u32 numUsedVgprs
5140 u32 numUsedSgprs
5141 u32 ldsSizePerLocalWorkGroup
5142 platform.size_t ldsUsageSizeInBytes
5143 platform.size_t scratchMemUsageInBytes
5144}
5145
5146@extension("VK_AMD_shader_info") // 43
5147class VkShaderStatisticsInfoAMD {
5148 VkShaderStageFlags shaderStageMask
5149 VkShaderResourceUsageAMD resourceUsage
5150 u32 numPhysicalVgprs
5151 u32 numPhysicalSgprs
5152 u32 numAvailableVgprs
5153 u32 numAvailableSgprs
5154 u32[3] computeWorkGroupSize
5155}
5156
Daniel Koch09f7bf92017-10-05 00:26:58 -04005157@extension("VK_KHR_multiview") // 54
5158class VkRenderPassMultiviewCreateInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005159 VkStructureType sType
5160 const void* pNext
5161 u32 subpassCount
5162 const u32* pViewMasks
5163 u32 dependencyCount
5164 const s32* pViewOffsets
5165 u32 correlationMaskCount
5166 const u32* pCorrelationMasks
5167}
5168
Daniel Koch09f7bf92017-10-05 00:26:58 -04005169@extension("VK_KHR_multiview") // 54
5170class VkPhysicalDeviceMultiviewFeaturesKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005171 VkStructureType sType
5172 void* pNext
5173 VkBool32 multiview
5174 VkBool32 multiviewGeometryShader
5175 VkBool32 multiviewTessellationShader
5176}
5177
Daniel Koch09f7bf92017-10-05 00:26:58 -04005178@extension("VK_KHR_multiview") // 54
5179class VkPhysicalDeviceMultiviewPropertiesKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005180 VkStructureType sType
5181 void* pNext
5182 u32 maxMultiviewViewCount
5183 u32 maxMultiviewInstanceIndex
5184}
5185
5186@extension("VK_NV_external_memory_capabilities") // 56
Jesse Halleb02c472017-02-24 15:13:45 -08005187class VkExternalImageFormatPropertiesNV {
5188 VkImageFormatProperties imageFormatProperties
5189 VkExternalMemoryFeatureFlagsNV externalMemoryFeatures
5190 VkExternalMemoryHandleTypeFlagsNV exportFromImportedHandleTypes
5191 VkExternalMemoryHandleTypeFlagsNV compatibleHandleTypes
5192}
5193
Jesse Hallad250842017-03-10 18:35:38 -08005194@extension("VK_NV_external_memory") // 57
Jesse Halleb02c472017-02-24 15:13:45 -08005195class VkExternalMemoryImageCreateInfoNV {
5196 VkStructureType sType
5197 const void* pNext
5198 VkExternalMemoryHandleTypeFlagsNV handleTypes
5199}
5200
Jesse Hallad250842017-03-10 18:35:38 -08005201@extension("VK_NV_external_memory") // 57
Jesse Halleb02c472017-02-24 15:13:45 -08005202class VkExportMemoryAllocateInfoNV {
5203 VkStructureType sType
5204 const void* pNext
5205 VkExternalMemoryHandleTypeFlagsNV handleTypes
5206}
5207
Jesse Hallad250842017-03-10 18:35:38 -08005208@extension("VK_NV_external_memory_win32") // 58
Jesse Halleb02c472017-02-24 15:13:45 -08005209class VkImportMemoryWin32HandleInfoNV {
5210 VkStructureType sType
5211 const void* pNext
5212 VkExternalMemoryHandleTypeFlagsNV handleType
5213 platform.HANDLE handle
5214}
5215
Jesse Hallad250842017-03-10 18:35:38 -08005216@extension("VK_NV_external_memory_win32") // 58
Jesse Halleb02c472017-02-24 15:13:45 -08005217class VkExportMemoryWin32HandleInfoNV {
5218 VkStructureType sType
5219 const void* pNext
5220 const platform.SECURITY_ATTRIBUTES* pAttributes
5221 platform.DWORD dwAccess
5222}
5223
Jesse Hallad250842017-03-10 18:35:38 -08005224@extension("VK_NV_win32_keyed_mutex") // 59
Jesse Halleb02c472017-02-24 15:13:45 -08005225class VkWin32KeyedMutexAcquireReleaseInfoNV {
5226 VkStructureType sType
5227 const void* pNext
5228 u32 acquireCount
5229 const VkDeviceMemory* pAcquireSyncs
5230 const u64* pAcquireKeys
5231 const u32* pAcquireTimeoutMilliseconds
5232 u32 releaseCount
5233 const VkDeviceMemory* pReleaseSyncs
5234 const u64* pReleaseKeys
5235}
5236
Jesse Hallad250842017-03-10 18:35:38 -08005237@extension("VK_KHR_get_physical_device_properties2") // 60
Chris Forbes1194ede2016-12-30 16:29:25 +13005238class VkPhysicalDeviceFeatures2KHR {
5239 VkStructureType sType
5240 void* pNext
5241 VkPhysicalDeviceFeatures features
5242}
5243
Jesse Hallad250842017-03-10 18:35:38 -08005244@extension("VK_KHR_get_physical_device_properties2") // 60
Chris Forbes1194ede2016-12-30 16:29:25 +13005245class VkPhysicalDeviceProperties2KHR {
5246 VkStructureType sType
5247 void* pNext
5248 VkPhysicalDeviceProperties properties
5249}
5250
Jesse Hallad250842017-03-10 18:35:38 -08005251@extension("VK_KHR_get_physical_device_properties2") // 60
Chris Forbes1194ede2016-12-30 16:29:25 +13005252class VkFormatProperties2KHR {
5253 VkStructureType sType
5254 void* pNext
5255 VkFormatProperties formatProperties
5256}
5257
Jesse Hallad250842017-03-10 18:35:38 -08005258@extension("VK_KHR_get_physical_device_properties2") // 60
Chris Forbes1194ede2016-12-30 16:29:25 +13005259class VkImageFormatProperties2KHR {
5260 VkStructureType sType
5261 void* pNext
5262 VkImageFormatProperties imageFormatProperties
5263}
5264
Jesse Hallad250842017-03-10 18:35:38 -08005265@extension("VK_KHR_get_physical_device_properties2") // 60
Chris Forbes1194ede2016-12-30 16:29:25 +13005266class VkPhysicalDeviceImageFormatInfo2KHR {
5267 VkStructureType sType
5268 const void* pNext
5269 VkFormat format
5270 VkImageType type
5271 VkImageTiling tiling
5272 VkImageUsageFlags usage
5273 VkImageCreateFlags flags
5274}
5275
Jesse Hallad250842017-03-10 18:35:38 -08005276@extension("VK_KHR_get_physical_device_properties2") // 60
Chris Forbes1194ede2016-12-30 16:29:25 +13005277class VkQueueFamilyProperties2KHR {
5278 VkStructureType sType
5279 void* pNext
5280 VkQueueFamilyProperties queueFamilyProperties
5281}
5282
Jesse Hallad250842017-03-10 18:35:38 -08005283@extension("VK_KHR_get_physical_device_properties2") // 60
Chris Forbes1194ede2016-12-30 16:29:25 +13005284class VkPhysicalDeviceMemoryProperties2KHR {
5285 VkStructureType sType
5286 void* pNext
5287 VkPhysicalDeviceMemoryProperties memoryProperties
5288}
5289
Jesse Hallad250842017-03-10 18:35:38 -08005290@extension("VK_KHR_get_physical_device_properties2") // 60
Chris Forbes1194ede2016-12-30 16:29:25 +13005291class VkSparseImageFormatProperties2KHR {
5292 VkStructureType sType
5293 void* pNext
5294 VkSparseImageFormatProperties properties
5295}
5296
Jesse Hallad250842017-03-10 18:35:38 -08005297@extension("VK_KHR_get_physical_device_properties2") // 60
Chris Forbes1194ede2016-12-30 16:29:25 +13005298class VkPhysicalDeviceSparseImageFormatInfo2KHR {
5299 VkStructureType sType
5300 const void* pNext
5301 VkFormat format
5302 VkImageType type
5303 VkSampleCountFlagBits samples
5304 VkImageUsageFlags usage
5305 VkImageTiling tiling
5306}
5307
Daniel Koch09f7bf92017-10-05 00:26:58 -04005308@extension("VK_KHR_device_group") // 61
5309class VkMemoryAllocateFlagsInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005310 VkStructureType sType
5311 const void* pNext
Daniel Koch09f7bf92017-10-05 00:26:58 -04005312 VkMemoryAllocateFlagsKHR flags
Jesse Hallad250842017-03-10 18:35:38 -08005313 u32 deviceMask
5314}
5315
Daniel Koch09f7bf92017-10-05 00:26:58 -04005316@extension("VK_KHR_device_group") // 61
5317class VkBindBufferMemoryDeviceGroupInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005318 VkStructureType sType
5319 const void* pNext
Jesse Hallad250842017-03-10 18:35:38 -08005320 u32 deviceIndexCount
5321 const u32* pDeviceIndices
5322}
5323
Daniel Koch09f7bf92017-10-05 00:26:58 -04005324@extension("VK_KHR_device_group") // 61
5325class VkBindImageMemoryDeviceGroupInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005326 VkStructureType sType
5327 const void* pNext
Jesse Hallad250842017-03-10 18:35:38 -08005328 u32 deviceIndexCount
5329 const u32* pDeviceIndices
5330 u32 SFRRectCount
5331 const VkRect2D* pSFRRects
5332}
5333
Daniel Koch09f7bf92017-10-05 00:26:58 -04005334@extension("VK_KHR_device_group") // 61
5335class VkDeviceGroupRenderPassBeginInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005336 VkStructureType sType
5337 const void* pNext
5338 u32 deviceMask
5339 u32 deviceRenderAreaCount
5340 const VkRect2D* pDeviceRenderAreas
5341}
5342
Daniel Koch09f7bf92017-10-05 00:26:58 -04005343@extension("VK_KHR_device_group") // 61
5344class VkDeviceGroupCommandBufferBeginInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005345 VkStructureType sType
5346 const void* pNext
5347 u32 deviceMask
5348}
5349
Daniel Koch09f7bf92017-10-05 00:26:58 -04005350@extension("VK_KHR_device_group") // 61
5351class VkDeviceGroupSubmitInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005352 VkStructureType sType
5353 const void* pNext
5354 u32 waitSemaphoreCount
5355 const u32* pWaitSemaphoreDeviceIndices
5356 u32 commandBufferCount
5357 const u32* pCommandBufferDeviceMasks
5358 u32 signalSemaphoreCount
5359 const u32* pSignalSemaphoreDeviceIndices
5360}
5361
Daniel Koch09f7bf92017-10-05 00:26:58 -04005362@extension("VK_KHR_device_group") // 61
5363class VkDeviceGroupBindSparseInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005364 VkStructureType sType
5365 const void* pNext
5366 u32 resourceDeviceIndex
5367 u32 memoryDeviceIndex
5368}
5369
Jesse Hallad250842017-03-10 18:35:38 -08005370@extension("VK_EXT_validation_flags") // 62
Chris Forbes289cb792016-12-30 15:03:55 +13005371class VkValidationFlagsEXT {
5372 VkStructureType sType
5373 const void* pNext
5374 u32 disabledValidationCheckCount
Jesse Hall115df0c2018-07-30 12:00:59 -07005375 const VkValidationCheckEXT* pDisabledValidationChecks
Chris Forbes289cb792016-12-30 15:03:55 +13005376}
5377
Jesse Hallad250842017-03-10 18:35:38 -08005378@extension("VK_NN_vi_surface") // 63
Jesse Hall77ad05b2017-03-10 22:02:20 -08005379class VkViSurfaceCreateInfoNN {
5380 VkStructureType sType
5381 const void* pNext
5382 VkViSurfaceCreateFlagsNN flags
5383 void* window
5384}
5385
Jesse Hall4af6c462018-09-10 09:04:25 -07005386@extension("VK_EXT_astc_decode_mode") // 68
5387class VkImageViewASTCDecodeModeEXT {
5388 VkStructureType sType
5389 const void* pNext
5390 VkFormat decodeMode
5391}
5392
5393@extension("VK_EXT_astc_decode_mode") // 68
5394class VkPhysicalDeviceASTCDecodeFeaturesEXT {
5395 VkStructureType sType
5396 void* pNext
5397 VkBool32 decodeModeSharedExponent
5398}
5399
Daniel Koch09f7bf92017-10-05 00:26:58 -04005400@extension("VK_KHR_device_group_creation") // 71
5401class VkPhysicalDeviceGroupPropertiesKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005402 VkStructureType sType
Jesse Hallf5ad48b2017-03-20 13:09:19 -07005403 void* pNext
Jesse Hallad250842017-03-10 18:35:38 -08005404 u32 physicalDeviceCount
Daniel Koch09f7bf92017-10-05 00:26:58 -04005405 VkPhysicalDevice[VK_MAX_DEVICE_GROUP_SIZE] physicalDevices
Jesse Hallad250842017-03-10 18:35:38 -08005406 VkBool32 subsetAllocation
5407}
5408
Daniel Koch09f7bf92017-10-05 00:26:58 -04005409@extension("VK_KHR_device_group_creation") // 71
5410class VkDeviceGroupDeviceCreateInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005411 VkStructureType sType
5412 const void* pNext
5413 u32 physicalDeviceCount
5414 const VkPhysicalDevice* pPhysicalDevices
5415}
5416
Jesse Hall9492f992017-08-28 12:10:06 -07005417@extension("VK_KHR_external_memory_capabilities") // 72
5418class VkExternalMemoryPropertiesKHR {
5419 VkExternalMemoryFeatureFlagsKHR externalMemoryFeatures
5420 VkExternalMemoryHandleTypeFlagsKHR exportFromImportedHandleTypes
5421 VkExternalMemoryHandleTypeFlagsKHR compatibleHandleTypes
Jesse Hallad250842017-03-10 18:35:38 -08005422}
5423
Jesse Hall9492f992017-08-28 12:10:06 -07005424@extension("VK_KHR_external_memory_capabilities") // 72
5425class VkPhysicalDeviceExternalImageFormatInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005426 VkStructureType sType
5427 const void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005428 VkExternalMemoryHandleTypeFlagBitsKHR handleType
Jesse Hallad250842017-03-10 18:35:38 -08005429}
5430
Jesse Hall9492f992017-08-28 12:10:06 -07005431@extension("VK_KHR_external_memory_capabilities") // 72
5432class VkExternalImageFormatPropertiesKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005433 VkStructureType sType
5434 void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005435 VkExternalMemoryPropertiesKHR externalMemoryProperties
Jesse Hallad250842017-03-10 18:35:38 -08005436}
5437
Jesse Hall9492f992017-08-28 12:10:06 -07005438@extension("VK_KHR_external_memory_capabilities") // 72
5439class VkPhysicalDeviceExternalBufferInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005440 VkStructureType sType
5441 const void* pNext
5442 VkBufferCreateFlags flags
5443 VkBufferUsageFlags usage
Jesse Hall9492f992017-08-28 12:10:06 -07005444 VkExternalMemoryHandleTypeFlagBitsKHR handleType
Jesse Hallad250842017-03-10 18:35:38 -08005445}
5446
Jesse Hall9492f992017-08-28 12:10:06 -07005447@extension("VK_KHR_external_memory_capabilities") // 72
5448class VkExternalBufferPropertiesKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005449 VkStructureType sType
5450 void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005451 VkExternalMemoryPropertiesKHR externalMemoryProperties
Jesse Hallad250842017-03-10 18:35:38 -08005452}
5453
Jesse Hall9492f992017-08-28 12:10:06 -07005454@extension("VK_KHR_external_memory_capabilities") // 72
5455class VkPhysicalDeviceIDPropertiesKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005456 VkStructureType sType
5457 void* pNext
5458 u8[VK_UUID_SIZE] deviceUUID
5459 u8[VK_UUID_SIZE] driverUUID
Daniel Koch09f7bf92017-10-05 00:26:58 -04005460 u8[VK_LUID_SIZE] deviceLUID
Jesse Hall9492f992017-08-28 12:10:06 -07005461 u32 deviceNodeMask
Jesse Hallad250842017-03-10 18:35:38 -08005462 VkBool32 deviceLUIDValid
5463}
5464
Jesse Hall9492f992017-08-28 12:10:06 -07005465@extension("VK_KHR_external_memory") // 73
5466class VkExternalMemoryImageCreateInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005467 VkStructureType sType
5468 const void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005469 VkExternalMemoryHandleTypeFlagsKHR handleTypes
Jesse Hallad250842017-03-10 18:35:38 -08005470}
5471
Jesse Hall9492f992017-08-28 12:10:06 -07005472@extension("VK_KHR_external_memory") // 73
5473class VkExternalMemoryBufferCreateInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005474 VkStructureType sType
5475 const void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005476 VkExternalMemoryHandleTypeFlagsKHR handleTypes
Jesse Hallad250842017-03-10 18:35:38 -08005477}
5478
Jesse Hall9492f992017-08-28 12:10:06 -07005479@extension("VK_KHR_external_memory") // 73
5480class VkExportMemoryAllocateInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005481 VkStructureType sType
5482 const void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005483 VkExternalMemoryHandleTypeFlagsKHR handleTypes
Jesse Hallad250842017-03-10 18:35:38 -08005484}
5485
Jesse Hall9492f992017-08-28 12:10:06 -07005486@extension("VK_KHR_external_memory_win32") // 74
5487class VkImportMemoryWin32HandleInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005488 VkStructureType sType
5489 const void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005490 VkExternalMemoryHandleTypeFlagBitsKHR handleType
Jesse Hallad250842017-03-10 18:35:38 -08005491 platform.HANDLE handle
Jesse Hall9492f992017-08-28 12:10:06 -07005492 platform.LPCWSTR name
Jesse Hallad250842017-03-10 18:35:38 -08005493}
5494
Jesse Hall9492f992017-08-28 12:10:06 -07005495@extension("VK_KHR_external_memory_win32") // 74
5496class VkExportMemoryWin32HandleInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005497 VkStructureType sType
5498 const void* pNext
5499 const platform.SECURITY_ATTRIBUTES* pAttributes
5500 platform.DWORD dwAccess
5501 platform.LPCWSTR name
5502}
5503
Jesse Hall9492f992017-08-28 12:10:06 -07005504@extension("VK_KHR_external_memory_win32") // 74
5505class VkMemoryWin32HandlePropertiesKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005506 VkStructureType sType
5507 void* pNext
5508 u32 memoryTypeBits
5509}
5510
Jesse Hall9492f992017-08-28 12:10:06 -07005511@extension("VK_KHR_external_memory_win32") // 74
5512class VkMemoryGetWin32HandleInfoKHR {
5513 VkStructureType sType
5514 void* pNext
5515 VkDeviceMemory memory
5516 VkExternalMemoryHandleTypeFlagBitsKHR handleType
5517}
5518
5519@extension("VK_KHR_external_memory_fd") // 75
5520class VkImportMemoryFdInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005521 VkStructureType sType
5522 const void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005523 VkExternalMemoryHandleTypeFlagBitsKHR handleType
Jesse Hallad250842017-03-10 18:35:38 -08005524 int fd
5525}
5526
Jesse Hall9492f992017-08-28 12:10:06 -07005527@extension("VK_KHR_external_memory_fd") // 75
5528class VkMemoryFdPropertiesKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005529 VkStructureType sType
5530 void* pNext
5531 u32 memoryTypeBits
5532}
5533
Jesse Hall9492f992017-08-28 12:10:06 -07005534@extension("VK_KHR_external_memory_fd") // 75
5535class VkMemoryGetFdInfoKHR {
5536 VkStructureType sType
5537 void* pNext
5538 VkDeviceMemory memory
5539 VkExternalMemoryHandleTypeFlagBitsKHR handleType
5540}
5541
5542@extension("VK_KHR_win32_keyed_mutex") // 76
5543class VkWin32KeyedMutexAcquireReleaseInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005544 VkStructureType sType
5545 const void* pNext
5546 u32 acquireCount
5547 const VkDeviceMemory* pAcquireSyncs
5548 const u64* pAcquireKeys
5549 const u32* pAcquireTimeouts
5550 u32 releaseCount
5551 const VkDeviceMemory* pReleaseSyncs
5552 const u64* pReleaseKeys
5553}
5554
Jesse Hall9492f992017-08-28 12:10:06 -07005555@extension("VK_KHR_external_semaphore_capabilities") // 77
5556class VkPhysicalDeviceExternalSemaphoreInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005557 VkStructureType sType
5558 const void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005559 VkExternalSemaphoreHandleTypeFlagBitsKHR handleType
Jesse Hallad250842017-03-10 18:35:38 -08005560}
5561
Jesse Hall9492f992017-08-28 12:10:06 -07005562@extension("VK_KHR_external_semaphore_capabilities") // 77
5563class VkExternalSemaphorePropertiesKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005564 VkStructureType sType
5565 void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005566 VkExternalSemaphoreHandleTypeFlagsKHR exportFromImportedHandleTypes
5567 VkExternalSemaphoreHandleTypeFlagsKHR compatibleHandleTypes
5568 VkExternalSemaphoreFeatureFlagsKHR externalSemaphoreFeatures
Jesse Hallad250842017-03-10 18:35:38 -08005569}
5570
Jesse Hall9492f992017-08-28 12:10:06 -07005571@extension("VK_KHR_external_semaphore") // 78
5572class VkExportSemaphoreCreateInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005573 VkStructureType sType
5574 const void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005575 VkExternalSemaphoreHandleTypeFlagsKHR handleTypes
Jesse Hallad250842017-03-10 18:35:38 -08005576}
5577
Jesse Hall9492f992017-08-28 12:10:06 -07005578@extension("VK_KHR_external_semaphore_win32") // 79
5579class VkImportSemaphoreWin32HandleInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005580 VkStructureType sType
5581 const void* pNext
5582 VkSemaphore semaphore
Jesse Hall9492f992017-08-28 12:10:06 -07005583 VkSemaphoreImportFlagsKHR flags
5584 VkExternalSemaphoreHandleTypeFlagsKHR handleType
Jesse Hallad250842017-03-10 18:35:38 -08005585 platform.HANDLE handle
Jesse Hall9492f992017-08-28 12:10:06 -07005586 platform.LPCWSTR name
Jesse Hallad250842017-03-10 18:35:38 -08005587}
5588
Jesse Hall9492f992017-08-28 12:10:06 -07005589@extension("VK_KHR_external_semaphore_win32") // 79
5590class VkExportSemaphoreWin32HandleInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005591 VkStructureType sType
5592 const void* pNext
5593 const platform.SECURITY_ATTRIBUTES* pAttributes
5594 platform.DWORD dwAccess
5595 platform.LPCWSTR name
5596}
5597
Jesse Hall9492f992017-08-28 12:10:06 -07005598@extension("VK_KHR_external_semaphore_win32") // 79
5599class VkD3D12FenceSubmitInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005600 VkStructureType sType
5601 const void* pNext
5602 u32 waitSemaphoreValuesCount
5603 const u64* pWaitSemaphoreValues
5604 u32 signalSemaphoreValuesCount
5605 const u64* pSignalSemaphoreValues
5606}
5607
Jesse Hall9492f992017-08-28 12:10:06 -07005608@extension("VK_KHR_external_semaphore_win32") // 79
5609class VkSemaphoreGetWin32HandleInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005610 VkStructureType sType
5611 const void* pNext
5612 VkSemaphore semaphore
Jesse Hall9492f992017-08-28 12:10:06 -07005613 VkExternalSemaphoreHandleTypeFlagBitsKHR handleType
5614}
5615
5616@extension("VK_KHR_external_semaphore_fd") // 80
5617class VkImportSemaphoreFdInfoKHR {
5618 VkStructureType sType
5619 const void* pNext
5620 VkSemaphore semaphore
5621 VkSemaphoreImportFlagsKHR flags
5622 VkExternalSemaphoreHandleTypeFlagBitsKHR handleType
Jesse Hallad250842017-03-10 18:35:38 -08005623 s32 fd
5624}
5625
Jesse Hall9492f992017-08-28 12:10:06 -07005626@extension("VK_KHR_external_semaphore_fd") // 80
5627class VkSemaphoreGetFdInfoKHR {
5628 VkStructureType sType
5629 const void* pNext
5630 VkSemaphore semaphore
5631 VkExternalSemaphoreHandleTypeFlagBitsKHR handleType
5632}
5633
Jesse Hallad250842017-03-10 18:35:38 -08005634@extension("VK_KHR_push_descriptor") // 81
5635class VkPhysicalDevicePushDescriptorPropertiesKHR {
5636 VkStructureType sType
5637 void* pNext
5638 u32 maxPushDescriptors
5639}
5640
Jesse Halla13a3cf2018-07-09 15:51:52 -07005641@extension("VK_EXT_conditional_rendering") // 82
5642class VkConditionalRenderingBeginInfoEXT {
5643 VkStructureType sType
5644 const void* pNext
5645 VkBuffer buffer
5646 VkDeviceSize offset
5647 VkConditionalRenderingFlagsEXT flags
5648}
5649
5650@extension("VK_EXT_conditional_rendering") // 82
5651class VkPhysicalDeviceConditionalRenderingFeaturesEXT {
5652 VkStructureType sType
5653 void* pNext
5654 VkBool32 conditionalRendering
5655 VkBool32 inheritedConditionalRendering
5656}
5657
5658@extension("VK_EXT_conditional_rendering") // 82
5659class VkCommandBufferInheritanceConditionalRenderingInfoEXT {
5660 VkStructureType sType
5661 const void* pNext
5662 VkBool32 conditionalRenderingEnable
5663}
5664
Jesse Hall9492f992017-08-28 12:10:06 -07005665@extension("VK_KHR_16bit_storage") // 84
5666class VkPhysicalDevice16BitStorageFeaturesKHR {
5667 VkStructureType sType
5668 void* pNext
5669 VkBool32 storageBuffer16BitAccess
5670 VkBool32 uniformAndStorageBuffer16BitAccess
5671 VkBool32 storagePushConstant16
5672 VkBool32 storageInputOutput16
5673}
5674
Jesse Hallad250842017-03-10 18:35:38 -08005675@extension("VK_KHR_incremental_present") // 85
5676class VkRectLayerKHR {
5677 VkOffset2D offset
5678 VkExtent2D extent
5679 u32 layer
5680}
5681
5682@extension("VK_KHR_incremental_present") // 85
5683class VkPresentRegionKHR {
5684 u32 rectangleCount
5685 const VkRectLayerKHR* pRectangles
5686}
5687
5688@extension("VK_KHR_incremental_present") // 85
5689class VkPresentRegionsKHR {
5690 VkStructureType sType
5691 const void* pNext
5692 u32 swapchainCount
5693 const VkPresentRegionKHR* pRegions
5694}
5695
5696@extension("VK_KHR_descriptor_update_template") // 86
5697class VkDescriptorUpdateTemplateEntryKHR {
5698 u32 dstBinding
5699 u32 dstArrayElement
5700 u32 descriptorCount
5701 VkDescriptorType descriptorType
5702 platform.size_t offset
5703 platform.size_t stride
5704}
5705
5706@extension("VK_KHR_descriptor_update_template") // 86
5707class VkDescriptorUpdateTemplateCreateInfoKHR {
5708 VkStructureType sType
5709 void* pNext
5710 VkDescriptorUpdateTemplateCreateFlagsKHR flags
5711 u32 descriptorUpdateEntryCount
5712 const VkDescriptorUpdateTemplateEntryKHR* pDescriptorUpdateEntries
5713 VkDescriptorUpdateTemplateTypeKHR templateType
5714 VkDescriptorSetLayout descriptorSetLayout
5715 VkPipelineBindPoint pipelineBindPoint
5716 VkPipelineLayout pipelineLayout
5717 u32 set
5718}
5719
5720@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13005721class VkDeviceGeneratedCommandsFeaturesNVX {
5722 VkStructureType sType
5723 const void* pNext
5724 VkBool32 computeBindingPointSupport
5725}
5726
Jesse Hallad250842017-03-10 18:35:38 -08005727@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13005728class VkDeviceGeneratedCommandsLimitsNVX {
5729 VkStructureType sType
5730 const void* pNext
5731 u32 maxIndirectCommandsLayoutTokenCount
5732 u32 maxObjectEntryCounts
5733 u32 minSequenceCountBufferOffsetAlignment
5734 u32 minSequenceIndexBufferOffsetAlignment
5735 u32 minCommandsTokenBufferOffsetAlignment
5736}
5737
Jesse Hallad250842017-03-10 18:35:38 -08005738@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13005739class VkIndirectCommandsTokenNVX {
5740 VkIndirectCommandsTokenTypeNVX tokenType
5741 VkBuffer buffer
5742 VkDeviceSize offset
5743}
5744
Jesse Hallad250842017-03-10 18:35:38 -08005745@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13005746class VkIndirectCommandsLayoutTokenNVX {
5747 VkIndirectCommandsTokenTypeNVX tokenType
5748 u32 bindingUnit
5749 u32 dynamicCount
5750 u32 divisor
5751}
5752
Jesse Hallad250842017-03-10 18:35:38 -08005753@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13005754class VkIndirectCommandsLayoutCreateInfoNVX {
5755 VkStructureType sType
5756 const void* pNext
5757 VkPipelineBindPoint pipelineBindPoint
5758 VkIndirectCommandsLayoutUsageFlagsNVX flags
5759 u32 tokenCount
5760 const VkIndirectCommandsLayoutTokenNVX* pTokens
5761}
5762
Jesse Hallad250842017-03-10 18:35:38 -08005763@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13005764class VkCmdProcessCommandsInfoNVX {
5765 VkStructureType sType
5766 const void* pNext
5767 VkObjectTableNVX objectTable
5768 VkIndirectCommandsLayoutNVX indirectCommandsLayout
5769 u32 indirectCommandsTokenCount
5770 const VkIndirectCommandsTokenNVX* pIndirectCommandsTokens
5771 u32 maxSequencesCount
5772 VkCommandBuffer targetCommandBuffer
5773 VkBuffer sequencesCountBuffer
5774 VkDeviceSize sequencesCountOffset
5775 VkBuffer sequencesIndexBuffer
5776 VkDeviceSize sequencesIndexOffset
5777}
5778
Jesse Hallad250842017-03-10 18:35:38 -08005779@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13005780class VkCmdReserveSpaceForCommandsInfoNVX {
5781 VkStructureType sType
5782 const void* pNext
5783 VkObjectTableNVX objectTable
5784 VkIndirectCommandsLayoutNVX indirectCommandsLayout
5785 u32 maxSequencesCount
5786}
5787
Jesse Hallad250842017-03-10 18:35:38 -08005788@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13005789class VkObjectTableCreateInfoNVX {
5790 VkStructureType sType
5791 const void* pNext
5792 u32 objectCount
5793 const VkObjectEntryTypeNVX* pObjectEntryTypes
5794 const u32* pObjectEntryCounts
5795 const VkObjectEntryUsageFlagsNVX* pObjectEntryUsageFlags
5796 u32 maxUniformBuffersPerDescriptor
5797 u32 maxStorageBuffersPerDescriptor
5798 u32 maxStorageImagesPerDescriptor
5799 u32 maxSampledImagesPerDescriptor
5800 u32 maxPipelineLayouts
5801}
5802
Jesse Hallad250842017-03-10 18:35:38 -08005803@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13005804class VkObjectTableEntryNVX {
5805 VkObjectEntryTypeNVX type
5806 VkObjectEntryUsageFlagsNVX flags
5807}
5808
Jesse Hallad250842017-03-10 18:35:38 -08005809@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13005810class VkObjectTablePipelineEntryNVX {
5811 VkObjectEntryTypeNVX type
5812 VkObjectEntryUsageFlagsNVX flags
5813 VkPipeline pipeline
5814}
5815
Jesse Hallad250842017-03-10 18:35:38 -08005816@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13005817class VkObjectTableDescriptorSetEntryNVX {
5818 VkObjectEntryTypeNVX type
5819 VkObjectEntryUsageFlagsNVX flags
5820 VkPipelineLayout pipelineLayout
5821 VkDescriptorSet descriptorSet
5822}
5823
Jesse Hallad250842017-03-10 18:35:38 -08005824@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13005825class VkObjectTableVertexBufferEntryNVX {
5826 VkObjectEntryTypeNVX type
5827 VkObjectEntryUsageFlagsNVX flags
5828 VkBuffer buffer
5829}
5830
Jesse Hallad250842017-03-10 18:35:38 -08005831@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13005832class VkObjectTableIndexBufferEntryNVX {
5833 VkObjectEntryTypeNVX type
5834 VkObjectEntryUsageFlagsNVX flags
5835 VkBuffer buffer
Jesse Hall77ad05b2017-03-10 22:02:20 -08005836 VkIndexType indexType
Chris Forbes289cb792016-12-30 15:03:55 +13005837}
5838
Jesse Hallad250842017-03-10 18:35:38 -08005839@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13005840class VkObjectTablePushConstantEntryNVX {
5841 VkObjectEntryTypeNVX type
5842 VkObjectEntryUsageFlagsNVX flags
5843 VkPipelineLayout pipelineLayout
5844 VkShaderStageFlags stageFlags
5845}
5846
Jesse Hallad250842017-03-10 18:35:38 -08005847@extension("VK_NV_clip_space_w_scaling") // 88
5848class VkViewportWScalingNV {
5849 f32 xcoeff
5850 f32 ycoeff
Jesse Hall889cd9a2017-02-25 22:12:23 -08005851}
5852
Jesse Hallad250842017-03-10 18:35:38 -08005853@extension("VK_NV_clip_space_w_scaling") // 88
5854class VkPipelineViewportWScalingStateCreateInfoNV {
Jesse Hall889cd9a2017-02-25 22:12:23 -08005855 VkStructureType sType
5856 const void* pNext
Jesse Hallad250842017-03-10 18:35:38 -08005857 VkBool32 viewportWScalingEnable
5858 u32 viewportCount
5859 const VkViewportWScalingNV* pViewportWScalings
Jesse Hall889cd9a2017-02-25 22:12:23 -08005860}
5861
Jesse Hallad250842017-03-10 18:35:38 -08005862@extension("VK_EXT_display_surface_counter") // 91
Jesse Hall77ad05b2017-03-10 22:02:20 -08005863class VkSurfaceCapabilities2EXT {
5864 VkStructureType sType
5865 void* pNext
5866 u32 minImageCount
5867 u32 maxImageCount
5868 VkExtent2D currentExtent
5869 VkExtent2D minImageExtent
5870 VkExtent2D maxImageExtent
5871 u32 maxImageArrayLayers
5872 VkSurfaceTransformFlagsKHR supportedTransforms
5873 VkSurfaceTransformFlagBitsKHR currentTransform
5874 VkCompositeAlphaFlagsKHR supportedCompositeAlpha
5875 VkImageUsageFlags supportedUsageFlags
5876 VkSurfaceCounterFlagsEXT supportedSurfaceCounters
5877}
5878
Jesse Hallad250842017-03-10 18:35:38 -08005879@extension("VK_EXT_display_control") // 92
Jesse Hall77ad05b2017-03-10 22:02:20 -08005880class VkDisplayPowerInfoEXT {
5881 VkStructureType sType
5882 const void* pNext
5883 VkDisplayPowerStateEXT powerState
5884}
5885
Jesse Hallad250842017-03-10 18:35:38 -08005886@extension("VK_EXT_display_control") // 92
Jesse Hall77ad05b2017-03-10 22:02:20 -08005887class VkDeviceEventInfoEXT {
5888 VkStructureType sType
5889 const void* pNext
5890 VkDeviceEventTypeEXT deviceEvent
5891}
5892
Jesse Hallad250842017-03-10 18:35:38 -08005893@extension("VK_EXT_display_control") // 92
Jesse Hall77ad05b2017-03-10 22:02:20 -08005894class VkDisplayEventInfoEXT {
5895 VkStructureType sType
5896 const void* pNext
5897 VkDisplayEventTypeEXT displayEvent
5898}
5899
Jesse Hallad250842017-03-10 18:35:38 -08005900@extension("VK_EXT_display_control") // 92
Jesse Hall77ad05b2017-03-10 22:02:20 -08005901class VkSwapchainCounterCreateInfoEXT {
5902 VkStructureType sType
5903 const void* pNext
5904 VkSurfaceCounterFlagsEXT surfaceCounters
5905}
5906
Jesse Hallad250842017-03-10 18:35:38 -08005907@extension("VK_GOOGLE_display_timing") // 93
5908class VkRefreshCycleDurationGOOGLE {
Jesse Hallfdc8ab32017-03-10 21:01:57 -08005909 u64 refreshDuration
Jesse Hallad250842017-03-10 18:35:38 -08005910}
5911
5912@extension("VK_GOOGLE_display_timing") // 93
5913class VkPastPresentationTimingGOOGLE {
Jesse Hallfdc8ab32017-03-10 21:01:57 -08005914 u32 presentID
5915 u64 desiredPresentTime
5916 u64 actualPresentTime
5917 u64 earliestPresentTime
5918 u64 presentMargin
Jesse Hallad250842017-03-10 18:35:38 -08005919}
5920
5921@extension("VK_GOOGLE_display_timing") // 93
5922class VkPresentTimeGOOGLE {
Jesse Hallfdc8ab32017-03-10 21:01:57 -08005923 u32 presentID
5924 u64 desiredPresentTime
Jesse Hallad250842017-03-10 18:35:38 -08005925}
5926
5927@extension("VK_GOOGLE_display_timing") // 93
5928class VkPresentTimesInfoGOOGLE {
Jesse Hallfdc8ab32017-03-10 21:01:57 -08005929 VkStructureType sType
5930 const void* pNext
5931 u32 swapchainCount
5932 const VkPresentTimeGOOGLE* pTimes
Jesse Hallad250842017-03-10 18:35:38 -08005933}
5934
5935@extension("VK_NVX_multiview_per_view_attributes") // 98
5936class VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX {
5937 VkStructureType sType
5938 void* pNext
5939 VkBool32 perViewPositionAllComponents
5940}
5941
5942@extension("VK_NV_viewport_swizzle") // 99
5943class VkViewportSwizzleNV {
5944 VkViewportCoordinateSwizzleNV x
5945 VkViewportCoordinateSwizzleNV y
5946 VkViewportCoordinateSwizzleNV z
5947 VkViewportCoordinateSwizzleNV w
5948}
5949
5950@extension("VK_NV_viewport_swizzle") // 99
5951class VkPipelineViewportSwizzleStateCreateInfoNV {
5952 VkStructureType sType
5953 const void* pNext
5954 VkPipelineViewportSwizzleStateCreateFlagsNV flags
5955 u32 viewportCount
5956 const VkViewportSwizzleNV* pViewportSwizzles
5957}
5958
5959@extension("VK_EXT_discard_rectangles") // 100
5960class VkPhysicalDeviceDiscardRectanglePropertiesEXT {
5961 VkStructureType sType
Jesse Hallf5ad48b2017-03-20 13:09:19 -07005962 void* pNext
Jesse Hallad250842017-03-10 18:35:38 -08005963 u32 maxDiscardRectangles
5964}
5965
5966@extension("VK_EXT_discard_rectangles") // 100
5967class VkPipelineDiscardRectangleStateCreateInfoEXT {
Jesse Hallfdc8ab32017-03-10 21:01:57 -08005968 VkStructureType sType
5969 const void* pNext
5970 VkPipelineDiscardRectangleStateCreateFlagsEXT flags
5971 VkDiscardRectangleModeEXT discardRectangleMode
5972 u32 discardRectangleCount
5973 const VkRect2D* pDiscardRectangles
Jesse Hallad250842017-03-10 18:35:38 -08005974}
5975
Jesse Hall8c954d32018-01-17 22:06:20 -08005976@extension("VK_EXT_conservative_rasterization") // 102
5977class VkPhysicalDeviceConservativeRasterizationPropertiesEXT {
5978 VkStructureType sType
5979 void* pNext
5980 f32 primitiveOverestimationSize
5981 f32 maxExtraPrimitiveOverestimationSize
5982 f32 extraPrimitiveOverestimationSizeGranularity
5983 VkBool32 primitiveUnderestimation
5984 VkBool32 conservativePointAndLineRasterization
5985 VkBool32 degenerateTrianglesRasterized
5986 VkBool32 degenerateLinesRasterized
5987 VkBool32 fullyCoveredFragmentShaderInputVariable
5988 VkBool32 conservativeRasterizationPostDepthCoverage
5989}
5990
5991@extension("VK_EXT_conservative_rasterization") // 102
5992class VkPipelineRasterizationConservativeStateCreateInfoEXT {
5993 VkStructureType sType
5994 const void* pNext
5995 VkPipelineRasterizationConservativeStateCreateFlagsEXT flags
5996 VkConservativeRasterizationModeEXT conservativeRasterizationMode
5997 f32 extraPrimitiveOverestimationSize
5998}
5999
Jesse Hallad250842017-03-10 18:35:38 -08006000@extension("VK_EXT_hdr_metadata") // 106
Courtney Goeltzenleuchterd634c482017-01-05 15:55:31 -07006001class VkXYColorEXT {
Jesse Hallfdc8ab32017-03-10 21:01:57 -08006002 f32 x
6003 f32 y
Courtney Goeltzenleuchterd634c482017-01-05 15:55:31 -07006004}
6005
Jesse Hallad250842017-03-10 18:35:38 -08006006@extension("VK_EXT_hdr_metadata") // 106
Courtney Goeltzenleuchterd634c482017-01-05 15:55:31 -07006007class VkHdrMetadataEXT {
Jesse Hallfdc8ab32017-03-10 21:01:57 -08006008 VkStructureType sType
6009 const void* pNext
6010 VkXYColorEXT displayPrimaryRed
6011 VkXYColorEXT displayPrimaryGreen
6012 VkXYColorEXT displayPrimaryBlue
6013 VkXYColorEXT whitePoint
6014 f32 maxLuminance
6015 f32 minLuminance
6016 f32 maxContentLightLevel
6017 f32 maxFrameAverageLightLevel
Courtney Goeltzenleuchterd634c482017-01-05 15:55:31 -07006018}
6019
Jesse Halla13a3cf2018-07-09 15:51:52 -07006020@extension("VK_KHR_create_renderpass2") // 110
6021class VkAttachmentDescription2KHR {
6022 VkStructureType sType
6023 const void* pNext
6024 VkAttachmentDescriptionFlags flags
6025 VkFormat format
6026 VkSampleCountFlagBits samples
6027 VkAttachmentLoadOp loadOp
6028 VkAttachmentStoreOp storeOp
6029 VkAttachmentLoadOp stencilLoadOp
6030 VkAttachmentStoreOp stencilStoreOp
6031 VkImageLayout initialLayout
6032 VkImageLayout finalLayout
6033}
6034
6035@extension("VK_KHR_create_renderpass2") // 110
6036class VkAttachmentReference2KHR {
6037 VkStructureType sType
6038 const void* pNext
6039 u32 attachment
6040 VkImageLayout layout
6041 VkImageAspectFlags aspectMask
6042}
6043
6044@extension("VK_KHR_create_renderpass2") // 110
6045class VkSubpassDescription2KHR {
6046 VkStructureType sType
6047 const void* pNext
6048 VkSubpassDescriptionFlags flags
6049 VkPipelineBindPoint pipelineBindPoint
6050 u32 viewMask
6051 u32 inputAttachmentCount
6052 const VkAttachmentReference2KHR* pInputAttachments
6053 u32 colorAttachmentCount
6054 const VkAttachmentReference2KHR* pColorAttachments
6055 const VkAttachmentReference2KHR* pResolveAttachments
6056 const VkAttachmentReference2KHR* pDepthStencilAttachment
6057 u32 preserveAttachmentCount
6058 const u32* pPreserveAttachments
6059}
6060
6061@extension("VK_KHR_create_renderpass2") // 110
6062class VkSubpassDependency2KHR {
6063 VkStructureType sType
6064 const void* pNext
6065 u32 srcSubpass
6066 u32 dstSubpass
6067 VkPipelineStageFlags srcStageMask
6068 VkPipelineStageFlags dstStageMask
6069 VkAccessFlags srcAccessMask
6070 VkAccessFlags dstAccessMask
6071 VkDependencyFlags dependencyFlags
6072 s32 viewOffset
6073}
6074
6075@extension("VK_KHR_create_renderpass2") // 110
6076class VkRenderPassCreateInfo2KHR {
6077 VkStructureType sType
6078 const void* pNext
6079 VkRenderPassCreateFlags flags
6080 u32 attachmentCount
6081 const VkAttachmentDescription2KHR* pAttachments
6082 u32 subpassCount
6083 const VkSubpassDescription2KHR* pSubpasses
6084 u32 dependencyCount
6085 const VkSubpassDependency2KHR* pDependencies
6086 u32 correlatedViewMaskCount
6087 const u32* pCorrelatedViewMasks
6088}
6089
6090@extension("VK_KHR_create_renderpass2") // 110
6091class VkSubpassBeginInfoKHR {
6092 VkStructureType sType
6093 const void* pNext
6094 VkSubpassContents contents
6095}
6096
6097@extension("VK_KHR_create_renderpass2") // 110
6098class VkSubpassEndInfoKHR {
6099 VkStructureType sType
6100 const void* pNext
6101}
6102
Jesse Hall05556b12017-05-18 17:40:25 -07006103@extension("VK_KHR_shared_presentable_image") // 112
Chris Forbese2d3ee12017-03-16 16:10:15 +13006104class VkSharedPresentSurfaceCapabilitiesKHR {
6105 VkStructureType sType
6106 const void* pNext
6107 VkImageUsageFlags sharedPresentSupportedUsageFlags
6108}
6109
Jesse Hall9492f992017-08-28 12:10:06 -07006110@extension("VK_KHR_external_fence_capabilities") // 113
6111class VkPhysicalDeviceExternalFenceInfoKHR {
6112 VkStructureType sType
6113 const void* pNext
6114 VkExternalFenceHandleTypeFlagBitsKHR handleType
6115}
6116
6117@extension("VK_KHR_external_fence_capabilities") // 113
6118class VkExternalFencePropertiesKHR {
6119 VkStructureType sType
6120 void* pNext
6121 VkExternalFenceHandleTypeFlagsKHR exportFromImportedHandleTypes
6122 VkExternalFenceHandleTypeFlagsKHR compatibleHandleTypes
6123 VkExternalFenceFeatureFlagsKHR externalFenceFeatures
6124}
6125
6126@extension("VK_KHR_external_fence") // 114
6127class VkExportFenceCreateInfoKHR {
6128 VkStructureType sType
6129 const void* pNext
6130 VkExternalFenceHandleTypeFlagsKHR handleTypes
6131}
6132
6133@extension("VK_KHR_external_fence_win32") // 115
6134class VkImportFenceWin32HandleInfoKHR {
6135 VkStructureType sType
6136 const void* pNext
6137 VkFence fence
6138 VkFenceImportFlagsKHR flags
6139 VkExternalFenceHandleTypeFlagBitsKHR handleType
6140 platform.HANDLE handle
6141 platform.LPCWSTR name
6142}
6143
6144@extension("VK_KHR_external_fence_win32") // 115
6145class VkExportFenceWin32HandleInfoKHR {
6146 VkStructureType sType
6147 const void* pNext
6148 const platform.SECURITY_ATTRIBUTES* pAttributes
6149 platform.DWORD dwAccess
6150 platform.LPCWSTR name
6151}
6152
6153@extension("VK_KHR_external_fence_win32") // 115
6154class VkFenceGetWin32HandleInfoKHR {
6155 VkStructureType sType
6156 const void* pNext
6157 VkFence fence
6158 VkExternalFenceHandleTypeFlagBitsKHR handleType
6159}
6160
6161@extension("VK_KHR_external_fence_fd") // 116
6162class VkImportFenceFdInfoKHR {
6163 VkStructureType sType
6164 const void* pNext
6165 VkFence fence
6166 VkFenceImportFlagsKHR flags
6167 VkExternalFenceHandleTypeFlagBitsKHR handleType
6168 int fd
6169}
6170
6171@extension("VK_KHR_external_fence_fd") // 116
6172class VkFenceGetFdInfoKHR {
6173 VkStructureType sType
6174 const void* pNext
6175 VkFence fence
6176 VkExternalFenceHandleTypeFlagBitsKHR handleType
6177}
6178
Jesse Hall076f95d2017-09-20 11:34:47 -07006179@extension("VK_KHR_maintenance2") // 118
6180class VkPhysicalDevicePointClippingPropertiesKHR {
6181 VkStructureType sType
6182 void* pNext
6183 VkPointClippingBehaviorKHR pointClippingBehavior
6184}
6185
6186@extension("VK_KHR_maintenance2") // 118
6187class VkInputAttachmentAspectReferenceKHR {
6188 u32 subpass
6189 u32 inputAttachmentIndex
6190 VkImageAspectFlags aspectMask
6191}
6192
6193@extension("VK_KHR_maintenance2") // 118
6194class VkRenderPassInputAttachmentAspectCreateInfoKHR {
6195 VkStructureType sType
6196 const void* pNext
6197 u32 aspectReferenceCount
6198 const VkInputAttachmentAspectReferenceKHR* pAspectReferences
6199}
6200
6201@extension("VK_KHR_maintenance2") // 118
6202class VkImageViewUsageCreateInfoKHR {
6203 VkStructureType sType
6204 const void* pNext
6205 VkImageUsageFlags usage
6206}
6207
6208@extension("VK_KHR_maintenance2") // 118
6209class VkPipelineTessellationDomainOriginStateCreateInfoKHR {
6210 VkStructureType sType
6211 const void* pNext
6212 VkTessellationDomainOriginKHR domainOrigin
6213}
6214
Jesse Hall05556b12017-05-18 17:40:25 -07006215@extension("VK_KHR_get_surface_capabilities2") // 120
Chris Forbese2d3ee12017-03-16 16:10:15 +13006216class VkPhysicalDeviceSurfaceInfo2KHR {
6217 VkStructureType sType
6218 const void* pNext
6219 VkSurfaceKHR surface
6220}
6221
Jesse Hall05556b12017-05-18 17:40:25 -07006222@extension("VK_KHR_get_surface_capabilities2") // 120
Chris Forbese2d3ee12017-03-16 16:10:15 +13006223class VkSurfaceCapabilities2KHR {
6224 VkStructureType sType
6225 void* pNext
6226 VkSurfaceCapabilitiesKHR surfaceCapabilities
6227}
6228
Jesse Hall05556b12017-05-18 17:40:25 -07006229@extension("VK_KHR_get_surface_capabilities2") // 120
Chris Forbese2d3ee12017-03-16 16:10:15 +13006230class VkSurfaceFormat2KHR {
6231 VkStructureType sType
6232 void* pNext
6233 VkSurfaceFormatKHR surfaceFormat
6234}
6235
Jesse Hall9492f992017-08-28 12:10:06 -07006236@extension("VK_KHR_variable_pointers") // 121
6237class VkPhysicalDeviceVariablePointerFeaturesKHR {
6238 VkStructureType sType
6239 void* pNext
6240 VkBool32 variablePointersStorageBuffer
6241 VkBool32 variablePointers
6242}
6243
Jesse Hall54f8d132018-04-18 08:16:59 -07006244@extension("VK_KHR_display_properties2") // 122
6245class VkDisplayProperties2KHR {
6246 VkStructureType sType
6247 void* pNext
6248 VkDisplayPropertiesKHR displayProperties
6249}
6250
6251@extension("VK_KHR_display_properties2") // 122
6252class VkDisplayPlaneProperties2KHR {
6253 VkStructureType sType
6254 void* pNext
6255 VkDisplayPlanePropertiesKHR displayPlaneProperties
6256}
6257
6258@extension("VK_KHR_display_properties2") // 122
6259class VkDisplayModeProperties2KHR {
6260 VkStructureType sType
6261 void* pNext
6262 VkDisplayModePropertiesKHR displayModeProperties
6263}
6264
6265@extension("VK_KHR_display_properties2") // 122
6266class VkDisplayPlaneInfo2KHR {
6267 VkStructureType sType
6268 const void* pNext
6269 VkDisplayModeKHR mode
6270 u32 planeIndex
6271}
6272
6273@extension("VK_KHR_display_properties2") // 122
6274class VkDisplayPlaneCapabilities2KHR {
6275 VkStructureType sType
6276 void* pNext
6277 VkDisplayPlaneCapabilitiesKHR capabilities
6278}
6279
Jesse Hallad250842017-03-10 18:35:38 -08006280@extension("VK_MVK_ios_surface") // 123
6281class VkIOSSurfaceCreateInfoMVK {
6282 VkStructureType sType
6283 const void* pNext
6284 VkIOSSurfaceCreateFlagsMVK flags
6285 const void* pView
6286}
6287
6288@extension("VK_MVK_macos_surface") // 124
6289class VkMacOSSurfaceCreateInfoMVK {
6290 VkStructureType sType
6291 const void* pNext
6292 VkMacOSSurfaceCreateFlagsMVK flags
6293 const void* pView
6294}
6295
Jesse Hall9492f992017-08-28 12:10:06 -07006296@extension("VK_KHR_dedicated_allocation") // 128
6297class VkMemoryDedicatedRequirementsKHR {
6298 VkStructureType sType
6299 void* pNext
6300 VkBool32 prefersDedicatedAllocation
6301 VkBool32 requiresDedicatedAllocation
6302}
6303
6304@extension("VK_KHR_dedicated_allocation") // 128
6305class VkMemoryDedicatedAllocateInfoKHR {
6306 VkStructureType sType
6307 const void* pNext
6308 VkImage image
6309 VkBuffer buffer
6310}
6311
Jesse Hall8c954d32018-01-17 22:06:20 -08006312@extension("VK_EXT_debug_utils") // 129
6313class VkDebugUtilsObjectNameInfoEXT {
6314 VkStructureType sType
6315 const void* pNext
6316 VkObjectType objectType
6317 u64 objectHandle
6318 const char* pObjectName
6319}
Jesse Hall72e6a132018-04-06 13:00:44 -07006320
Jesse Hall8c954d32018-01-17 22:06:20 -08006321@extension("VK_EXT_debug_utils") // 129
6322class VkDebugUtilsObjectTagInfoEXT {
6323 VkStructureType sType
6324 const void* pNext
6325 VkObjectType objectType
6326 u64 objectHandle
6327 u64 tagName
6328 platform.size_t tagSize
6329 const void* pTag
6330}
Jesse Hall72e6a132018-04-06 13:00:44 -07006331
Jesse Hall8c954d32018-01-17 22:06:20 -08006332@extension("VK_EXT_debug_utils") // 129
6333class VkDebugUtilsLabelEXT {
6334 VkStructureType sType
6335 const void* pNext
6336 const char* pLabelName
6337 f32[4] color
6338}
6339
6340@extension("VK_EXT_debug_utils") // 129
6341class VkDebugUtilsMessengerCallbackDataEXT {
6342 VkStructureType sType
6343 const void* pNext
6344 VkDebugUtilsMessengerCallbackDataFlagsEXT flags
6345 const char* pMessageIdName
6346 s32 messageIdNumber
6347 const char* pMessage
6348 u32 queueLabelCount
6349 VkDebugUtilsLabelEXT* pQueueLabels
6350 u32 cmdBufLabelCount
6351 VkDebugUtilsLabelEXT* pCmdBufLabels
6352 u32 objectCount
6353 VkDebugUtilsObjectNameInfoEXT* pObjects
6354}
6355
6356@extension("VK_EXT_debug_utils") // 129
6357class VkDebugUtilsMessengerCreateInfoEXT {
6358 VkStructureType sType
6359 const void* pNext
6360 VkDebugUtilsMessengerCreateFlagsEXT flags
6361 VkDebugUtilsMessageSeverityFlagsEXT messageSeverity
6362 VkDebugUtilsMessageTypeFlagsEXT messageType
6363 PFN_vkDebugUtilsMessengerCallbackEXT pfnUserCallback
6364 void* pUserData
6365}
6366
Jesse Hall36215a92018-01-18 15:04:37 -08006367@extension("VK_ANDROID_external_memory_android_hardware_buffer") // 131
6368class VkAndroidHardwareBufferUsageANDROID {
6369 VkStructureType sType
6370 void* pNext
6371 u64 androidHardwareBufferUsage
6372}
6373
6374@extension("VK_ANDROID_external_memory_android_hardware_buffer") // 130
6375class VkAndroidHardwareBufferPropertiesANDROID {
6376 VkStructureType sType
6377 void* pNext
6378 VkDeviceSize allocationSize
6379 u32 memoryTypeBits
6380}
6381
6382@extension("VK_ANDROID_external_memory_android_hardware_buffer") // 130
6383class VkAndroidHardwareBufferFormatPropertiesANDROID {
6384 VkStructureType sType
6385 void* pNext
6386 VkFormat format
6387 u64 externalFormat
6388 VkFormatFeatureFlags formatFeatures
6389 VkComponentMapping samplerYcbcrConversionComponents
6390 VkSamplerYcbcrModelConversion suggestedYcbcrModel
6391 VkSamplerYcbcrRange suggestedYcbcrRange
6392 VkChromaLocation suggestedXChromaOffset
6393 VkChromaLocation suggestedYChromaOffset
6394}
6395
6396@extension("VK_ANDROID_external_memory_android_hardware_buffer") // 130
6397class VkImportAndroidHardwareBufferInfoANDROID {
6398 VkStructureType sType
6399 const void* pNext
6400 platform.AHardwareBuffer* buffer
6401}
6402
6403@extension("VK_ANDROID_external_memory_android_hardware_buffer") // 130
6404class VkMemoryGetAndroidHardwareBufferInfoANDROID {
6405 VkStructureType sType
6406 const void* pNext
6407 VkDeviceMemory memory
6408}
6409
6410@extension("VK_ANDROID_external_memory_android_hardware_buffer") // 130
6411class VkExternalFormatANDROID {
6412 VkStructureType sType
6413 void* pNext
6414 u64 externalFormat
6415}
6416
Jesse Hall7ba0ac72017-07-07 17:13:23 -07006417@extension("VK_EXT_sampler_filter_minmax") // 131
6418class VkSamplerReductionModeCreateInfoEXT {
6419 VkStructureType sType
6420 const void* pNext
6421 VkSamplerReductionModeEXT reductionMode
6422}
6423
6424@extension("VK_EXT_sampler_filter_minmax") // 131
6425class VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT {
6426 VkStructureType sType
6427 void* pNext
6428 VkBool32 filterMinmaxSingleComponentFormats
6429 VkBool32 filterMinmaxImageComponentMapping
6430}
6431
Jesse Hall4af6c462018-09-10 09:04:25 -07006432@extension("VK_EXT_inline_uniform_block") // 139
6433class VkPhysicalDeviceInlineUniformBlockFeaturesEXT {
6434 VkStructureType sType
6435 void* pNext
6436 VkBool32 inlineUniformBlock
6437 VkBool32 descriptorBindingInlineUniformBlockUpdateAfterBind
6438}
6439
6440@extension("VK_EXT_inline_uniform_block") // 139
6441class VkPhysicalDeviceInlineUniformBlockPropertiesEXT {
6442 VkStructureType sType
6443 void* pNext
6444 u32 maxInlineUniformBlockSize
6445 u32 maxPerStageDescriptorInlineUniformBlocks
6446 u32 maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks
6447 u32 maxDescriptorSetInlineUniformBlocks
6448 u32 maxDescriptorSetUpdateAfterBindInlineUniformBlocks
6449}
6450
6451@extension("VK_EXT_inline_uniform_block") // 139
6452class VkWriteDescriptorSetInlineUniformBlockEXT {
6453 VkStructureType sType
6454 const void* pNext
6455 u32 dataSize
6456 const void* pData
6457}
6458
6459@extension("VK_EXT_inline_uniform_block") // 139
6460class VkDescriptorPoolInlineUniformBlockCreateInfoEXT {
6461 VkStructureType sType
6462 const void* pNext
6463 u32 maxInlineUniformBlockBindings
6464}
6465
Jesse Hall77726222017-09-19 14:49:27 -05006466@extension("VK_EXT_sample_locations") // 144
6467class VkSampleLocationEXT {
6468 f32 x
6469 f32 y
6470}
6471
6472@extension("VK_EXT_sample_locations") // 144
6473class VkSampleLocationsInfoEXT {
6474 VkStructureType sType
6475 const void* pNext
6476 VkSampleCountFlagBits sampleLocationsPerPixel
6477 VkExtent2D sampleLocationGridSize
6478 u32 sampleLocationsCount
6479 const VkSampleLocationEXT* pSampleLocations
6480}
6481
6482@extension("VK_EXT_sample_locations") // 144
6483class VkAttachmentSampleLocationsEXT {
6484 u32 attachmentIndex
6485 VkSampleLocationsInfoEXT sampleLocationsInfo
6486}
6487
6488@extension("VK_EXT_sample_locations") // 144
6489class VkSubpassSampleLocationsEXT {
6490 u32 subpassIndex
6491 VkSampleLocationsInfoEXT sampleLocationsInfo
6492}
6493
6494@extension("VK_EXT_sample_locations") // 144
6495class VkRenderPassSampleLocationsBeginInfoEXT {
6496 VkStructureType sType
6497 const void* pNext
6498 u32 attachmentInitialSampleLocationsCount
6499 const VkAttachmentSampleLocationsEXT* pAttachmentInitialSampleLocations
6500 u32 postSubpassSampleLocationsCount
Jesse Hall8c954d32018-01-17 22:06:20 -08006501 const VkSubpassSampleLocationsEXT* pPostSubpassSampleLocations
Jesse Hall77726222017-09-19 14:49:27 -05006502}
6503
6504@extension("VK_EXT_sample_locations") // 144
6505class VkPipelineSampleLocationsStateCreateInfoEXT {
6506 VkStructureType sType
6507 const void* pNext
6508 VkBool32 sampleLocationsEnable
6509 VkSampleLocationsInfoEXT sampleLocationsInfo
6510}
6511
6512@extension("VK_EXT_sample_locations") // 144
6513class VkPhysicalDeviceSampleLocationsPropertiesEXT {
6514 VkStructureType sType
6515 void* pNext
6516 VkSampleCountFlags sampleLocationSampleCounts
6517 VkExtent2D maxSampleLocationGridSize
6518 f32[2] sampleLocationCoordinateRange
6519 u32 sampleLocationSubPixelBits
6520 VkBool32 variableSampleLocations
6521}
6522
6523@extension("VK_EXT_sample_locations") // 144
6524class VkMultisamplePropertiesEXT {
6525 VkStructureType sType
6526 void* pNext
6527 VkExtent2D maxSampleLocationGridSize
6528}
6529
Jesse Hall9492f992017-08-28 12:10:06 -07006530@extension("VK_KHR_get_memory_requirements2") // 147
6531class VkBufferMemoryRequirementsInfo2KHR {
6532 VkStructureType sType
6533 const void* pNext
6534 VkBuffer buffer
6535}
6536
6537@extension("VK_KHR_get_memory_requirements2") // 147
6538class VkImageMemoryRequirementsInfo2KHR {
6539 VkStructureType sType
6540 const void* pNext
6541 VkImage image
6542}
6543
6544@extension("VK_KHR_get_memory_requirements2") // 147
6545class VkImageSparseMemoryRequirementsInfo2KHR {
6546 VkStructureType sType
6547 const void* pNext
6548 VkImage image
6549}
6550
6551@extension("VK_KHR_get_memory_requirements2") // 147
6552class VkMemoryRequirements2KHR {
6553 VkStructureType sType
6554 void* pNext
6555 VkMemoryRequirements memoryRequirements
6556}
6557
6558@extension("VK_KHR_get_memory_requirements2") // 147
6559class VkSparseImageMemoryRequirements2KHR {
6560 VkStructureType sType
6561 void* pNext
6562 VkSparseImageMemoryRequirements memoryRequirements
6563}
6564
Jesse Hall076f95d2017-09-20 11:34:47 -07006565@extension("VK_KHR_image_format_list") // 148
6566class VkImageFormatListCreateInfoKHR {
6567 VkStructureType sType
6568 const void* pNext
6569 u32 viewFormatCount
6570 const VkFormat* pViewFormats
6571}
6572
Jesse Hall7ba0ac72017-07-07 17:13:23 -07006573@extension("VK_EXT_blend_operation_advanced") // 149
6574class VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT {
6575 VkStructureType sType
6576 void* pNext
6577 VkBool32 advancedBlendCoherentOperations
6578}
6579
6580@extension("VK_EXT_blend_operation_advanced") // 149
6581class VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT {
6582 VkStructureType sType
6583 void* pNext
6584 u32 advancedBlendMaxColorAttachments
6585 VkBool32 advancedBlendIndependentBlend
6586 VkBool32 advancedBlendNonPremultipliedSrcColor
6587 VkBool32 advancedBlendNonPremultipliedDstColor
6588 VkBool32 advancedBlendCorrelatedOverlap
6589 VkBool32 advancedBlendAllOperations
6590}
6591
6592@extension("VK_EXT_blend_operation_advanced") // 149
6593class VkPipelineColorBlendAdvancedStateCreateInfoEXT {
6594 VkStructureType sType
6595 const void* pNext
6596 VkBool32 srcPremultiplied
6597 VkBool32 dstPremultiplied
6598 VkBlendOverlapEXT blendOverlap
6599}
6600
6601@extension("VK_NV_fragment_coverage_to_color") // 150
6602class VkPipelineCoverageToColorStateCreateInfoNV {
6603 VkStructureType sType
6604 const void* pNext
6605 VkPipelineCoverageToColorStateCreateFlagsNV flags
6606 VkBool32 coverageToColorEnable
6607 u32 coverageToColorLocation
6608}
6609
6610@extension("VK_NV_framebuffer_mixed_samples") // 153
6611class VkPipelineCoverageModulationStateCreateInfoNV {
6612 VkStructureType sType
6613 const void* pNext
6614 VkPipelineCoverageModulationStateCreateFlagsNV flags
6615 VkCoverageModulationModeNV coverageModulationMode
6616 VkBool32 coverageModulationTableEnable
6617 u32 coverageModulationTableCount
6618 const f32* pCoverageModulationTable
6619}
6620
Jesse Hall076f95d2017-09-20 11:34:47 -07006621@extension("VK_KHR_sampler_ycbcr_conversion") // 157
6622class VkSamplerYcbcrConversionCreateInfoKHR {
6623 VkStructureType sType
6624 const void* pNext
6625 VkFormat format
6626 VkSamplerYcbcrModelConversionKHR ycbcrModel
6627 VkSamplerYcbcrRangeKHR ycbcrRange
6628 VkComponentMapping components
6629 VkChromaLocationKHR xChromaOffset
6630 VkChromaLocationKHR yChromaOffset
6631 VkFilter chromaFilter
6632 VkBool32 forceExplicitReconstruction
6633}
6634
6635@extension("VK_KHR_sampler_ycbcr_conversion") // 157
6636class VkSamplerYcbcrConversionInfoKHR {
6637 VkStructureType sType
6638 const void* pNext
6639 VkSamplerYcbcrConversionKHR conversion
6640}
6641
6642@extension("VK_KHR_sampler_ycbcr_conversion") // 157
6643class VkBindImagePlaneMemoryInfoKHR {
6644 VkStructureType sType
6645 const void* pNext
6646 VkImageAspectFlagBits planeAspect
6647}
6648
6649@extension("VK_KHR_sampler_ycbcr_conversion") // 157
6650class VkImagePlaneMemoryRequirementsInfoKHR {
6651 VkStructureType sType
6652 const void* pNext
6653 VkImageAspectFlagBits planeAspect
6654}
6655
6656@extension("VK_KHR_sampler_ycbcr_conversion") // 157
6657class VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR {
6658 VkStructureType sType
6659 void* pNext
6660 VkBool32 samplerYcbcrConversion
6661}
6662
6663@extension("VK_KHR_sampler_ycbcr_conversion") // 157
6664class VkSamplerYcbcrConversionImageFormatPropertiesKHR {
6665 VkStructureType sType
6666 void* pNext
6667 u32 combinedImageSamplerDescriptorCount
6668}
6669
6670@extension("VK_KHR_bind_memory2") // 158
6671class VkBindBufferMemoryInfoKHR {
6672 VkStructureType sType
6673 const void* pNext
6674 VkBuffer buffer
6675 VkDeviceMemory memory
6676 VkDeviceSize memoryOffset
6677}
6678
6679@extension("VK_KHR_bind_memory2") // 158
6680class VkBindImageMemoryInfoKHR {
6681 VkStructureType sType
6682 const void* pNext
6683 VkImage image
6684 VkDeviceMemory memory
6685 VkDeviceSize memoryOffset
6686}
6687
Jesse Hall77726222017-09-19 14:49:27 -05006688@extension("VK_EXT_validation_cache") // 161
6689class VkValidationCacheCreateInfoEXT {
6690 VkStructureType sType
6691 const void* pNext
6692 VkValidationCacheCreateFlagsEXT flags
6693 platform.size_t initialDataSize
6694 const void* pInitialData
6695}
6696
6697@extension("VK_EXT_validation_cache") // 161
6698class VkShaderModuleValidationCacheCreateInfoEXT {
6699 VkStructureType sType
6700 const void* pNext
6701 VkValidationCacheEXT validationCache
6702}
6703
Jesse Hall72e6a132018-04-06 13:00:44 -07006704@extension("VK_EXT_descriptor_indexing") // 162
6705class VkDescriptorSetLayoutBindingFlagsCreateInfoEXT {
6706 VkStructureType sType
6707 const void* pNext
6708 u32 bindingCount
6709 const VkDescriptorBindingFlagsEXT* pBindingFlags
6710}
6711
6712@extension("VK_EXT_descriptor_indexing") // 162
6713class VkPhysicalDeviceDescriptorIndexingFeaturesEXT {
6714 VkStructureType sType
6715 void* pNext
6716 VkBool32 shaderInputAttachmentArrayDynamicIndexing
6717 VkBool32 shaderUniformTexelBufferArrayDynamicIndexing
6718 VkBool32 shaderStorageTexelBufferArrayDynamicIndexing
6719 VkBool32 shaderUniformBufferArrayNonUniformIndexing
6720 VkBool32 shaderSampledImageArrayNonUniformIndexing
6721 VkBool32 shaderStorageBufferArrayNonUniformIndexing
6722 VkBool32 shaderStorageImageArrayNonUniformIndexing
6723 VkBool32 shaderInputAttachmentArrayNonUniformIndexing
6724 VkBool32 shaderUniformTexelBufferArrayNonUniformIndexing
6725 VkBool32 shaderStorageTexelBufferArrayNonUniformIndexing
6726 VkBool32 descriptorBindingUniformBufferUpdateAfterBind
6727 VkBool32 descriptorBindingSampledImageUpdateAfterBind
6728 VkBool32 descriptorBindingStorageImageUpdateAfterBind
6729 VkBool32 descriptorBindingStorageBufferUpdateAfterBind
6730 VkBool32 descriptorBindingUniformTexelBufferUpdateAfterBind
6731 VkBool32 descriptorBindingStorageTexelBufferUpdateAfterBind
6732 VkBool32 descriptorBindingUpdateUnusedWhilePending
6733 VkBool32 descriptorBindingPartiallyBound
6734 VkBool32 descriptorBindingVariableDescriptorCount
6735 VkBool32 runtimeDescriptorArray
6736}
6737
6738@extension("VK_EXT_descriptor_indexing") // 162
6739class VkPhysicalDeviceDescriptorIndexingPropertiesEXT {
6740 VkStructureType sType
6741 void* pNext
6742 u32 maxUpdateAfterBindDescriptorsInAllPools
6743 VkBool32 shaderUniformBufferArrayNonUniformIndexingNative
6744 VkBool32 shaderSampledImageArrayNonUniformIndexingNative
6745 VkBool32 shaderStorageBufferArrayNonUniformIndexingNative
6746 VkBool32 shaderStorageImageArrayNonUniformIndexingNative
6747 VkBool32 shaderInputAttachmentArrayNonUniformIndexingNative
6748 VkBool32 robustBufferAccessUpdateAfterBind
6749 VkBool32 quadDivergentImplicitLod
6750 u32 maxPerStageDescriptorUpdateAfterBindSamplers
6751 u32 maxPerStageDescriptorUpdateAfterBindUniformBuffers
6752 u32 maxPerStageDescriptorUpdateAfterBindStorageBuffers
6753 u32 maxPerStageDescriptorUpdateAfterBindSampledImages
6754 u32 maxPerStageDescriptorUpdateAfterBindStorageImages
6755 u32 maxPerStageDescriptorUpdateAfterBindInputAttachments
6756 u32 maxPerStageUpdateAfterBindResources
6757 u32 maxDescriptorSetUpdateAfterBindSamplers
6758 u32 maxDescriptorSetUpdateAfterBindUniformBuffers
6759 u32 maxDescriptorSetUpdateAfterBindUniformBuffersDynamic
6760 u32 maxDescriptorSetUpdateAfterBindStorageBuffers
6761 u32 maxDescriptorSetUpdateAfterBindStorageBuffersDynamic
6762 u32 maxDescriptorSetUpdateAfterBindSampledImages
6763 u32 maxDescriptorSetUpdateAfterBindStorageImages
6764 u32 maxDescriptorSetUpdateAfterBindInputAttachments
6765}
6766
6767@extension("VK_EXT_descriptor_indexing") // 162
6768class VkDescriptorSetVariableDescriptorCountAllocateInfoEXT {
6769 VkStructureType sType
6770 const void* pNext
6771 u32 descriptorSetCount
6772 const u32* pDescriptorCounts
6773}
6774
6775@extension("VK_EXT_descriptor_indexing") // 162
6776class VkDescriptorSetVariableDescriptorCountLayoutSupportEXT {
6777 VkStructureType sType
6778 void* pNext
6779 u32 maxVariableDescriptorCount
6780}
6781
Daniel Koch09f7bf92017-10-05 00:26:58 -04006782@extension("VK_KHR_maintenance3") // 169
6783class VkPhysicalDeviceMaintenance3PropertiesKHR {
6784 VkStructureType sType
6785 void* pNext
6786 u32 maxPerSetDescriptors
6787 VkDeviceSize maxMemoryAllocationSize
6788}
6789
6790@extension("VK_KHR_maintenance3") // 169
6791class VkDescriptorSetLayoutSupportKHR {
6792 VkStructureType sType
6793 void* pNext
6794 VkBool32 supported
6795}
6796
Jesse Hall8c954d32018-01-17 22:06:20 -08006797@extension("VK_EXT_global_priority") // 175
6798class VkDeviceQueueGlobalPriorityCreateInfoEXT {
6799 VkStructureType sType
6800 const void* pNext
6801 VkQueueGlobalPriorityEXT globalPriority
6802}
6803
Jesse Halla13a3cf2018-07-09 15:51:52 -07006804@extension("VK_KHR_8bit_storage") // 178
6805class VkPhysicalDevice8BitStorageFeaturesKHR {
6806 VkStructureType sType
6807 void* pNext
6808 VkBool32 storageBuffer8BitAccess
6809 VkBool32 uniformAndStorageBuffer8BitAccess
6810 VkBool32 storagePushConstant8
6811}
6812
Jesse Hall8c954d32018-01-17 22:06:20 -08006813@extension("VK_EXT_external_memory_host") // 179
6814class VkImportMemoryHostPointerInfoEXT {
6815 VkStructureType sType
6816 const void* pNext
6817 VkExternalMemoryHandleTypeFlagBits handleType
6818 void* pHostPointer
6819}
6820
6821@extension("VK_EXT_external_memory_host") // 179
6822class VkMemoryHostPointerPropertiesEXT {
6823 VkStructureType sType
6824 void* pNext
6825 u32 memoryTypeBits
6826}
6827
6828@extension("VK_EXT_external_memory_host") // 179
6829class VkPhysicalDeviceExternalMemoryHostPropertiesEXT {
6830 VkStructureType sType
6831 void* pNext
6832 VkDeviceSize minImportedHostPointerAlignment
6833}
6834
Jesse Hall72e6a132018-04-06 13:00:44 -07006835@extension("VK_AMD_shader_core_properties") // 186
6836class VkPhysicalDeviceShaderCorePropertiesAMD {
6837 VkStructureType sType
6838 void* pNext
6839 u32 shaderEngineCount
6840 u32 shaderArraysPerEngineCount
6841 u32 computeUnitsPerShaderArray
6842 u32 simdPerComputeUnit
6843 u32 wavefrontsPerSimd
6844 u32 wavefrontSize
6845 u32 sgprsPerSimd
6846 u32 minSgprAllocation
6847 u32 maxSgprAllocation
6848 u32 sgprAllocationGranularity
6849 u32 vgprsPerSimd
6850 u32 minVgprAllocation
6851 u32 maxVgprAllocation
6852 u32 vgprAllocationGranularity
6853}
6854
6855@extension("VK_EXT_vertex_attribute_divisor") // 191
6856class VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT {
6857 VkStructureType sType
6858 void* pNext
6859 u32 maxVertexAttribDivisor
6860}
6861
6862@extension("VK_EXT_vertex_attribute_divisor") // 191
6863class VkVertexInputBindingDivisorDescriptionEXT {
6864 u32 binding
6865 u32 divisor
6866}
6867
6868@extension("VK_EXT_vertex_attribute_divisor") // 191
6869class VkPipelineVertexInputDivisorStateCreateInfoEXT {
6870 VkStructureType sType
6871 const void* pNext
6872 u32 vertexBindingDivisorCount
6873 const VkVertexInputBindingDivisorDescriptionEXT* pVertexBindingDivisors
6874}
6875
Jesse Hall4af6c462018-09-10 09:04:25 -07006876@extension("VK_EXT_vertex_attribute_divisor") // 191
6877class VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT {
6878 VkStructureType sType
6879 void* pNext
6880 VkBool32 vertexAttributeInstanceRateDivisor
6881 VkBool32 vertexAttributeInstanceRateZeroDivisor
6882}
6883
Jesse Hall115df0c2018-07-30 12:00:59 -07006884@extension("VK_NV_device_diagnostic_checkpoints") // 207
6885class VkQueueFamilyCheckpointPropertiesNV {
6886 VkStructureType sType
6887 void* pNext
6888 VkPipelineStageFlags checkpointExecutionStageMask
6889}
6890
6891@extension("VK_NV_device_diagnostic_checkpoints") // 207
6892class VkCheckpointDataNV {
6893 VkStructureType sType
6894 void* pNext
6895 VkPipelineStageFlagBits stage
6896 void* pCheckpointMarker
6897}
6898
Jesse Hall4af6c462018-09-10 09:04:25 -07006899@extension("VK_KHR_vulkan_memory_model") // 212
6900class VkPhysicalDeviceVulkanMemoryModelFeaturesKHR {
6901 VkStructureType sType
6902 void* pNext
6903 VkBool32 vulkanMemoryModel
6904 VkBool32 vulkanMemoryModelDeviceScope
6905}
6906
Daniel Koch09f7bf92017-10-05 00:26:58 -04006907
Jesse Halld27f6aa2015-08-15 17:58:48 -07006908////////////////
6909// Commands //
6910////////////////
6911
6912// Function pointers. TODO: add support for function pointers.
6913
6914@external type void* PFN_vkVoidFunction
6915@pfn cmd void vkVoidFunction() {
6916}
6917
Jesse Hall3fbc8562015-11-29 22:10:52 -08006918@external type void* PFN_vkAllocationFunction
6919@pfn cmd void* vkAllocationFunction(
Jesse Halld27f6aa2015-08-15 17:58:48 -07006920 void* pUserData,
6921 platform.size_t size,
6922 platform.size_t alignment,
Jesse Hall3fbc8562015-11-29 22:10:52 -08006923 VkSystemAllocationScope allocationScope) {
Jesse Hall03b6fe12015-11-24 12:44:21 -08006924 return ?
6925}
6926
Jesse Hall3fbc8562015-11-29 22:10:52 -08006927@external type void* PFN_vkReallocationFunction
6928@pfn cmd void* vkReallocationFunction(
Jesse Hall03b6fe12015-11-24 12:44:21 -08006929 void* pUserData,
6930 void* pOriginal,
6931 platform.size_t size,
6932 platform.size_t alignment,
Jesse Hall3fbc8562015-11-29 22:10:52 -08006933 VkSystemAllocationScope allocationScope) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07006934 return ?
6935}
6936
6937@external type void* PFN_vkFreeFunction
6938@pfn cmd void vkFreeFunction(
6939 void* pUserData,
Jesse Hall3fbc8562015-11-29 22:10:52 -08006940 void* pMemory) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07006941}
6942
Jesse Hall3fbc8562015-11-29 22:10:52 -08006943@external type void* PFN_vkInternalAllocationNotification
6944@pfn cmd void vkInternalAllocationNotification(
Jesse Hall03b6fe12015-11-24 12:44:21 -08006945 void* pUserData,
6946 platform.size_t size,
Jesse Hall3fbc8562015-11-29 22:10:52 -08006947 VkInternalAllocationType allocationType,
6948 VkSystemAllocationScope allocationScope) {
Jesse Hall03b6fe12015-11-24 12:44:21 -08006949}
6950
6951@external type void* PFN_vkInternalFreeNotification
6952@pfn cmd void vkInternalFreeNotification(
6953 void* pUserData,
6954 platform.size_t size,
Jesse Hall3fbc8562015-11-29 22:10:52 -08006955 VkInternalAllocationType allocationType,
6956 VkSystemAllocationScope allocationScope) {
Jesse Hall03b6fe12015-11-24 12:44:21 -08006957}
Jesse Halld27f6aa2015-08-15 17:58:48 -07006958
6959// Global functions
6960
6961@threadSafety("system")
6962cmd VkResult vkCreateInstance(
6963 const VkInstanceCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08006964 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07006965 VkInstance* pInstance) {
6966 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO)
6967
6968 instance := ?
6969 pInstance[0] = instance
6970 State.Instances[instance] = new!InstanceObject()
6971
Jesse Hall3dd678a2016-01-08 21:52:01 -08006972 layers := pCreateInfo.ppEnabledLayerNames[0:pCreateInfo.enabledLayerCount]
6973 extensions := pCreateInfo.ppEnabledExtensionNames[0:pCreateInfo.enabledExtensionCount]
Jesse Halld27f6aa2015-08-15 17:58:48 -07006974
6975 return ?
6976}
6977
6978@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07006979cmd void vkDestroyInstance(
Jesse Hall03b6fe12015-11-24 12:44:21 -08006980 VkInstance instance,
Jesse Hall3fbc8562015-11-29 22:10:52 -08006981 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07006982 instanceObject := GetInstance(instance)
6983
6984 State.Instances[instance] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07006985}
6986
6987@threadSafety("system")
6988cmd VkResult vkEnumeratePhysicalDevices(
6989 VkInstance instance,
6990 u32* pPhysicalDeviceCount,
6991 VkPhysicalDevice* pPhysicalDevices) {
6992 instanceObject := GetInstance(instance)
6993
6994 physicalDeviceCount := as!u32(?)
6995 pPhysicalDeviceCount[0] = physicalDeviceCount
6996 physicalDevices := pPhysicalDevices[0:physicalDeviceCount]
6997
6998 for i in (0 .. physicalDeviceCount) {
6999 physicalDevice := ?
7000 physicalDevices[i] = physicalDevice
7001 if !(physicalDevice in State.PhysicalDevices) {
7002 State.PhysicalDevices[physicalDevice] = new!PhysicalDeviceObject(instance: instance)
7003 }
7004 }
7005
7006 return ?
7007}
7008
7009cmd PFN_vkVoidFunction vkGetDeviceProcAddr(
7010 VkDevice device,
7011 const char* pName) {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007012 if device != NULL_HANDLE {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007013 device := GetDevice(device)
7014 }
7015
7016 return ?
7017}
7018
7019cmd PFN_vkVoidFunction vkGetInstanceProcAddr(
7020 VkInstance instance,
7021 const char* pName) {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007022 if instance != NULL_HANDLE {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007023 instanceObject := GetInstance(instance)
7024 }
7025
7026 return ?
7027}
7028
Jesse Hall606a54e2015-11-19 22:17:28 -08007029cmd void vkGetPhysicalDeviceProperties(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007030 VkPhysicalDevice physicalDevice,
7031 VkPhysicalDeviceProperties* pProperties) {
7032 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
7033
7034 properties := ?
7035 pProperties[0] = properties
Jesse Halld27f6aa2015-08-15 17:58:48 -07007036}
7037
Jesse Hall606a54e2015-11-19 22:17:28 -08007038cmd void vkGetPhysicalDeviceQueueFamilyProperties(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007039 VkPhysicalDevice physicalDevice,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007040 u32* pQueueFamilyPropertyCount,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007041 VkQueueFamilyProperties* pQueueFamilyProperties) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007042 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007043 // TODO: Figure out how to express fetch-count-or-properties
7044 // This version fails 'apic validate' with 'fence not allowed in
7045 // *semantic.Branch'. Other attempts have failed with the same or other
7046 // errors.
7047 // if pQueueFamilyProperties != null {
7048 // queuesProperties := pQueueFamilyProperties[0:pCount[0]]
7049 // for i in (0 .. pCount[0]) {
7050 // queueProperties := as!VkQueueFamilyProperties(?)
7051 // queuesProperties[i] = queueProperties
7052 // }
7053 // } else {
7054 // count := ?
7055 // pCount[0] = count
7056 // }
Jesse Halld27f6aa2015-08-15 17:58:48 -07007057}
7058
Jesse Hall606a54e2015-11-19 22:17:28 -08007059cmd void vkGetPhysicalDeviceMemoryProperties(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007060 VkPhysicalDevice physicalDevice,
7061 VkPhysicalDeviceMemoryProperties* pMemoryProperties) {
7062 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
7063
7064 memoryProperties := ?
7065 pMemoryProperties[0] = memoryProperties
Jesse Halld27f6aa2015-08-15 17:58:48 -07007066}
7067
Jesse Hall606a54e2015-11-19 22:17:28 -08007068cmd void vkGetPhysicalDeviceFeatures(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007069 VkPhysicalDevice physicalDevice,
7070 VkPhysicalDeviceFeatures* pFeatures) {
7071 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
7072
7073 features := ?
7074 pFeatures[0] = features
Jesse Halld27f6aa2015-08-15 17:58:48 -07007075}
7076
Jesse Hall606a54e2015-11-19 22:17:28 -08007077cmd void vkGetPhysicalDeviceFormatProperties(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007078 VkPhysicalDevice physicalDevice,
7079 VkFormat format,
7080 VkFormatProperties* pFormatProperties) {
7081 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
7082
7083 formatProperties := ?
7084 pFormatProperties[0] = formatProperties
Jesse Halld27f6aa2015-08-15 17:58:48 -07007085}
7086
Jesse Halla9e57032015-11-30 01:03:10 -08007087cmd VkResult vkGetPhysicalDeviceImageFormatProperties(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007088 VkPhysicalDevice physicalDevice,
7089 VkFormat format,
7090 VkImageType type,
7091 VkImageTiling tiling,
7092 VkImageUsageFlags usage,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007093 VkImageCreateFlags flags,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007094 VkImageFormatProperties* pImageFormatProperties) {
7095 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
7096
7097 imageFormatProperties := ?
7098 pImageFormatProperties[0] = imageFormatProperties
Jesse Halla9e57032015-11-30 01:03:10 -08007099
7100 return ?
Jesse Halld27f6aa2015-08-15 17:58:48 -07007101}
7102
Jesse Halld27f6aa2015-08-15 17:58:48 -07007103
7104// Device functions
7105
7106@threadSafety("system")
7107cmd VkResult vkCreateDevice(
7108 VkPhysicalDevice physicalDevice,
7109 const VkDeviceCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007110 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007111 VkDevice* pDevice) {
7112 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO)
7113 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
7114
7115 device := ?
7116 pDevice[0] = device
7117 State.Devices[device] = new!DeviceObject(physicalDevice: physicalDevice)
7118
7119 return ?
7120}
7121
7122@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007123cmd void vkDestroyDevice(
Jesse Hall03b6fe12015-11-24 12:44:21 -08007124 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007125 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007126 deviceObject := GetDevice(device)
7127
7128 State.Devices[device] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07007129}
7130
7131
7132// Extension discovery functions
7133
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007134cmd VkResult vkEnumerateInstanceLayerProperties(
Jesse Hall03b6fe12015-11-24 12:44:21 -08007135 u32* pPropertyCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007136 VkLayerProperties* pProperties) {
7137 count := as!u32(?)
Jesse Hall03b6fe12015-11-24 12:44:21 -08007138 pPropertyCount[0] = count
Jesse Halld27f6aa2015-08-15 17:58:48 -07007139
7140 properties := pProperties[0:count]
7141 for i in (0 .. count) {
7142 property := ?
7143 properties[i] = property
7144 }
7145
7146 return ?
7147}
7148
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007149cmd VkResult vkEnumerateInstanceExtensionProperties(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007150 const char* pLayerName,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007151 u32* pPropertyCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007152 VkExtensionProperties* pProperties) {
7153 count := as!u32(?)
Jesse Hall03b6fe12015-11-24 12:44:21 -08007154 pPropertyCount[0] = count
Jesse Halld27f6aa2015-08-15 17:58:48 -07007155
7156 properties := pProperties[0:count]
7157 for i in (0 .. count) {
7158 property := ?
7159 properties[i] = property
7160 }
7161
7162 return ?
7163}
7164
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007165cmd VkResult vkEnumerateDeviceLayerProperties(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007166 VkPhysicalDevice physicalDevice,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007167 u32* pPropertyCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007168 VkLayerProperties* pProperties) {
7169 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
7170 count := as!u32(?)
Jesse Hall03b6fe12015-11-24 12:44:21 -08007171 pPropertyCount[0] = count
Jesse Halld27f6aa2015-08-15 17:58:48 -07007172
7173 properties := pProperties[0:count]
7174 for i in (0 .. count) {
7175 property := ?
7176 properties[i] = property
7177 }
7178
7179 return ?
7180}
7181
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007182cmd VkResult vkEnumerateDeviceExtensionProperties(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007183 VkPhysicalDevice physicalDevice,
7184 const char* pLayerName,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007185 u32* pPropertyCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007186 VkExtensionProperties* pProperties) {
7187 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
7188
7189 count := as!u32(?)
Jesse Hall03b6fe12015-11-24 12:44:21 -08007190 pPropertyCount[0] = count
Jesse Halld27f6aa2015-08-15 17:58:48 -07007191
7192 properties := pProperties[0:count]
7193 for i in (0 .. count) {
7194 property := ?
7195 properties[i] = property
7196 }
7197
7198 return ?
7199}
7200
7201
7202// Queue functions
7203
7204@threadSafety("system")
Jesse Hall606a54e2015-11-19 22:17:28 -08007205cmd void vkGetDeviceQueue(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007206 VkDevice device,
7207 u32 queueFamilyIndex,
7208 u32 queueIndex,
7209 VkQueue* pQueue) {
7210 deviceObject := GetDevice(device)
7211
7212 queue := ?
7213 pQueue[0] = queue
7214
7215 if !(queue in State.Queues) {
7216 State.Queues[queue] = new!QueueObject(device: device)
7217 }
Jesse Halld27f6aa2015-08-15 17:58:48 -07007218}
7219
7220@threadSafety("app")
7221cmd VkResult vkQueueSubmit(
7222 VkQueue queue,
Jesse Halla366a512015-11-19 22:30:07 -08007223 u32 submitCount,
Jesse Hallb00daad2015-11-29 19:46:20 -08007224 const VkSubmitInfo* pSubmits,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007225 VkFence fence) {
7226 queueObject := GetQueue(queue)
7227
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007228 if fence != NULL_HANDLE {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007229 fenceObject := GetFence(fence)
7230 assert(fenceObject.device == queueObject.device)
7231 }
7232
Jesse Hall3fbc8562015-11-29 22:10:52 -08007233 // commandBuffers := pcommandBuffers[0:commandBufferCount]
7234 // for i in (0 .. commandBufferCount) {
7235 // commandBuffer := commandBuffers[i]
7236 // commandBufferObject := GetCommandBuffer(commandBuffer)
7237 // assert(commandBufferObject.device == queueObject.device)
Jesse Halla366a512015-11-19 22:30:07 -08007238 //
Jesse Hall3fbc8562015-11-29 22:10:52 -08007239 // validate("QueueCheck", commandBufferObject.queueFlags in queueObject.flags,
7240 // "vkQueueSubmit: enqueued commandBuffer requires missing queue capabilities.")
Jesse Halla366a512015-11-19 22:30:07 -08007241 // }
Jesse Halld27f6aa2015-08-15 17:58:48 -07007242
7243 return ?
7244}
7245
7246@threadSafety("system")
7247cmd VkResult vkQueueWaitIdle(
7248 VkQueue queue) {
7249 queueObject := GetQueue(queue)
7250
7251 return ?
7252}
7253
7254@threadSafety("system")
7255cmd VkResult vkDeviceWaitIdle(
7256 VkDevice device) {
7257 deviceObject := GetDevice(device)
7258
7259 return ?
7260}
7261
7262
7263// Memory functions
7264
7265@threadSafety("system")
Jesse Hall3fbc8562015-11-29 22:10:52 -08007266cmd VkResult vkAllocateMemory(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007267 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007268 const VkMemoryAllocateInfo* pAllocateInfo,
7269 const VkAllocationCallbacks* pAllocator,
7270 VkDeviceMemory* pMemory) {
Jesse Hallf4ab2b12015-11-30 16:04:55 -08007271 assert(pAllocateInfo.sType == VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007272 deviceObject := GetDevice(device)
7273
Jesse Hall3fbc8562015-11-29 22:10:52 -08007274 memory := ?
7275 pMemory[0] = memory
7276 State.DeviceMemories[memory] = new!DeviceMemoryObject(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007277 device: device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007278 allocationSize: pAllocateInfo[0].allocationSize)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007279
7280 return ?
7281}
7282
7283@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007284cmd void vkFreeMemory(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007285 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007286 VkDeviceMemory memory,
7287 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007288 deviceObject := GetDevice(device)
Jesse Hall3fbc8562015-11-29 22:10:52 -08007289 memoryObject := GetDeviceMemory(memory)
7290 assert(memoryObject.device == device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007291
7292 // Check that no objects are still bound before freeing.
Jesse Hall3fbc8562015-11-29 22:10:52 -08007293 validate("MemoryCheck", len(memoryObject.boundObjects) == 0,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007294 "vkFreeMemory: objects still bound")
Jesse Hall3fbc8562015-11-29 22:10:52 -08007295 validate("MemoryCheck", len(memoryObject.boundCommandBuffers) == 0,
7296 "vkFreeMemory: commandBuffers still bound")
7297 State.DeviceMemories[memory] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07007298}
7299
7300@threadSafety("app")
7301cmd VkResult vkMapMemory(
7302 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007303 VkDeviceMemory memory,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007304 VkDeviceSize offset,
7305 VkDeviceSize size,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007306 VkMemoryMapFlags flags,
7307 void** ppData) {
7308 deviceObject := GetDevice(device)
Jesse Hall3fbc8562015-11-29 22:10:52 -08007309 memoryObject := GetDeviceMemory(memory)
7310 assert(memoryObject.device == device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007311
7312 assert(flags == as!VkMemoryMapFlags(0))
Jesse Hall3fbc8562015-11-29 22:10:52 -08007313 assert((offset + size) <= memoryObject.allocationSize)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007314
7315 return ?
7316}
7317
7318@threadSafety("app")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007319cmd void vkUnmapMemory(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007320 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007321 VkDeviceMemory memory) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007322 deviceObject := GetDevice(device)
Jesse Hall3fbc8562015-11-29 22:10:52 -08007323 memoryObject := GetDeviceMemory(memory)
7324 assert(memoryObject.device == device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007325}
7326
7327cmd VkResult vkFlushMappedMemoryRanges(
7328 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007329 u32 memoryRangeCount
7330 const VkMappedMemoryRange* pMemoryRanges) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007331 deviceObject := GetDevice(device)
7332
Jesse Hall3fbc8562015-11-29 22:10:52 -08007333 memoryRanges := pMemoryRanges[0:memoryRangeCount]
7334 for i in (0 .. memoryRangeCount) {
7335 memoryRange := memoryRanges[i]
7336 memoryObject := GetDeviceMemory(memoryRange.memory)
7337 assert(memoryObject.device == device)
7338 assert((memoryRange.offset + memoryRange.size) <= memoryObject.allocationSize)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007339 }
7340
7341 return ?
7342}
7343
7344cmd VkResult vkInvalidateMappedMemoryRanges(
7345 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007346 u32 memoryRangeCount,
7347 const VkMappedMemoryRange* pMemoryRanges) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007348 deviceObject := GetDevice(device)
7349
Jesse Hall3fbc8562015-11-29 22:10:52 -08007350 memoryRanges := pMemoryRanges[0:memoryRangeCount]
7351 for i in (0 .. memoryRangeCount) {
7352 memoryRange := memoryRanges[i]
7353 memoryObject := GetDeviceMemory(memoryRange.memory)
7354 assert(memoryObject.device == device)
7355 assert((memoryRange.offset + memoryRange.size) <= memoryObject.allocationSize)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007356 }
7357
7358 return ?
7359}
7360
7361
7362// Memory management API functions
7363
Jesse Hall606a54e2015-11-19 22:17:28 -08007364cmd void vkGetDeviceMemoryCommitment(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007365 VkDevice device,
7366 VkDeviceMemory memory,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007367 VkDeviceSize* pCommittedMemoryInBytes) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007368 deviceObject := GetDevice(device)
7369
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007370 if memory != NULL_HANDLE {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007371 memoryObject := GetDeviceMemory(memory)
7372 assert(memoryObject.device == device)
7373 }
7374
7375 committedMemoryInBytes := ?
7376 pCommittedMemoryInBytes[0] = committedMemoryInBytes
Jesse Halld27f6aa2015-08-15 17:58:48 -07007377}
7378
Jesse Hall606a54e2015-11-19 22:17:28 -08007379cmd void vkGetBufferMemoryRequirements(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007380 VkDevice device,
7381 VkBuffer buffer,
7382 VkMemoryRequirements* pMemoryRequirements) {
7383 deviceObject := GetDevice(device)
7384 bufferObject := GetBuffer(buffer)
7385 assert(bufferObject.device == device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007386}
7387
7388cmd VkResult vkBindBufferMemory(
7389 VkDevice device,
7390 VkBuffer buffer,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007391 VkDeviceMemory memory,
7392 VkDeviceSize memoryOffset) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007393 deviceObject := GetDevice(device)
7394 bufferObject := GetBuffer(buffer)
7395 assert(bufferObject.device == device)
7396
7397 // Unbind buffer from previous memory object, if not VK_NULL_HANDLE.
Jesse Hall3fbc8562015-11-29 22:10:52 -08007398 if bufferObject.memory != NULL_HANDLE {
7399 memoryObject := GetDeviceMemory(bufferObject.memory)
7400 memoryObject.boundObjects[as!u64(buffer)] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07007401 }
7402
7403 // Bind buffer to given memory object, if not VK_NULL_HANDLE.
Jesse Hall3fbc8562015-11-29 22:10:52 -08007404 if memory != NULL_HANDLE {
7405 memoryObject := GetDeviceMemory(memory)
7406 assert(memoryObject.device == device)
7407 memoryObject.boundObjects[as!u64(buffer)] = memoryOffset
Jesse Halld27f6aa2015-08-15 17:58:48 -07007408 }
Jesse Hall3fbc8562015-11-29 22:10:52 -08007409 bufferObject.memory = memory
7410 bufferObject.memoryOffset = memoryOffset
Jesse Halld27f6aa2015-08-15 17:58:48 -07007411
7412 return ?
7413}
7414
Jesse Hall606a54e2015-11-19 22:17:28 -08007415cmd void vkGetImageMemoryRequirements(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007416 VkDevice device,
7417 VkImage image,
7418 VkMemoryRequirements* pMemoryRequirements) {
7419 deviceObject := GetDevice(device)
7420 imageObject := GetImage(image)
7421 assert(imageObject.device == device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007422}
7423
7424cmd VkResult vkBindImageMemory(
7425 VkDevice device,
7426 VkImage image,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007427 VkDeviceMemory memory,
7428 VkDeviceSize memoryOffset) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007429 deviceObject := GetDevice(device)
7430 imageObject := GetImage(image)
7431 assert(imageObject.device == device)
7432
7433 // Unbind image from previous memory object, if not VK_NULL_HANDLE.
Jesse Hall3fbc8562015-11-29 22:10:52 -08007434 if imageObject.memory != NULL_HANDLE {
7435 memoryObject := GetDeviceMemory(imageObject.memory)
7436 memoryObject.boundObjects[as!u64(image)] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07007437 }
7438
7439 // Bind image to given memory object, if not VK_NULL_HANDLE.
Jesse Hall3fbc8562015-11-29 22:10:52 -08007440 if memory != NULL_HANDLE {
7441 memoryObject := GetDeviceMemory(memory)
7442 assert(memoryObject.device == device)
7443 memoryObject.boundObjects[as!u64(image)] = memoryOffset
Jesse Halld27f6aa2015-08-15 17:58:48 -07007444 }
Jesse Hall3fbc8562015-11-29 22:10:52 -08007445 imageObject.memory = memory
7446 imageObject.memoryOffset = memoryOffset
Jesse Halld27f6aa2015-08-15 17:58:48 -07007447
7448 return ?
7449}
7450
Jesse Hall606a54e2015-11-19 22:17:28 -08007451cmd void vkGetImageSparseMemoryRequirements(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007452 VkDevice device,
7453 VkImage image,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007454 u32* pSparseMemoryRequirementCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007455 VkSparseImageMemoryRequirements* pSparseMemoryRequirements) {
7456 deviceObject := GetDevice(device)
7457 imageObject := GetImage(image)
7458 assert(imageObject.device == device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007459}
7460
Jesse Hall606a54e2015-11-19 22:17:28 -08007461cmd void vkGetPhysicalDeviceSparseImageFormatProperties(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007462 VkPhysicalDevice physicalDevice,
7463 VkFormat format,
7464 VkImageType type,
Jesse Hall091ed9e2015-11-30 00:55:29 -08007465 VkSampleCountFlagBits samples,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007466 VkImageUsageFlags usage,
7467 VkImageTiling tiling,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007468 u32* pPropertyCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007469 VkSparseImageFormatProperties* pProperties) {
7470 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007471}
7472
Jesse Halla6429252015-11-29 18:59:42 -08007473cmd VkResult vkQueueBindSparse(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007474 VkQueue queue,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007475 u32 bindInfoCount,
Jesse Halla6429252015-11-29 18:59:42 -08007476 const VkBindSparseInfo* pBindInfo,
7477 VkFence fence) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007478 queueObject := GetQueue(queue)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007479
7480 return ?
7481}
7482
7483
7484// Fence functions
7485
7486@threadSafety("system")
7487cmd VkResult vkCreateFence(
7488 VkDevice device,
7489 const VkFenceCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007490 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007491 VkFence* pFence) {
7492 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_FENCE_CREATE_INFO)
7493 deviceObject := GetDevice(device)
7494
7495 fence := ?
7496 pFence[0] = fence
7497 State.Fences[fence] = new!FenceObject(
Jesse Halld8bade02015-11-24 10:24:18 -08007498 device: device, signaled: (pCreateInfo.flags == as!VkFenceCreateFlags(VK_FENCE_CREATE_SIGNALED_BIT)))
Jesse Halld27f6aa2015-08-15 17:58:48 -07007499
7500 return ?
7501}
7502
7503@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007504cmd void vkDestroyFence(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007505 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007506 VkFence fence,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007507 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007508 deviceObject := GetDevice(device)
7509 fenceObject := GetFence(fence)
7510 assert(fenceObject.device == device)
7511
7512 State.Fences[fence] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07007513}
7514
7515@threadSafety("system")
7516cmd VkResult vkResetFences(
7517 VkDevice device,
7518 u32 fenceCount,
7519 const VkFence* pFences) {
7520 deviceObject := GetDevice(device)
7521
7522 fences := pFences[0:fenceCount]
7523 for i in (0 .. fenceCount) {
7524 fence := fences[i]
7525 fenceObject := GetFence(fence)
7526 assert(fenceObject.device == device)
7527 fenceObject.signaled = false
7528 }
7529
7530 return ?
7531}
7532
7533@threadSafety("system")
7534cmd VkResult vkGetFenceStatus(
7535 VkDevice device,
7536 VkFence fence) {
7537 deviceObject := GetDevice(device)
7538 fenceObject := GetFence(fence)
7539 assert(fenceObject.device == device)
7540
7541 return ?
7542}
7543
7544@threadSafety("system")
7545cmd VkResult vkWaitForFences(
7546 VkDevice device,
7547 u32 fenceCount,
7548 const VkFence* pFences,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007549 VkBool32 waitAll,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007550 u64 timeout) { /// timeout in nanoseconds
7551 deviceObject := GetDevice(device)
7552
7553 fences := pFences[0:fenceCount]
7554 for i in (0 .. fenceCount) {
7555 fence := fences[i]
7556 fenceObject := GetFence(fence)
7557 assert(fenceObject.device == device)
7558 }
7559
7560 return ?
7561}
7562
7563
7564// Queue semaphore functions
7565
7566@threadSafety("system")
7567cmd VkResult vkCreateSemaphore(
7568 VkDevice device,
7569 const VkSemaphoreCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007570 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007571 VkSemaphore* pSemaphore) {
7572 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO)
7573 deviceObject := GetDevice(device)
7574
7575 semaphore := ?
7576 pSemaphore[0] = semaphore
7577 State.Semaphores[semaphore] = new!SemaphoreObject(device: device)
7578
7579 return ?
7580}
7581
7582@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007583cmd void vkDestroySemaphore(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007584 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007585 VkSemaphore semaphore,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007586 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007587 deviceObject := GetDevice(device)
7588 semaphoreObject := GetSemaphore(semaphore)
7589 assert(semaphoreObject.device == device)
7590
7591 State.Semaphores[semaphore] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07007592}
7593
Jesse Halld27f6aa2015-08-15 17:58:48 -07007594
7595// Event functions
7596
7597@threadSafety("system")
7598cmd VkResult vkCreateEvent(
7599 VkDevice device,
7600 const VkEventCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007601 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007602 VkEvent* pEvent) {
7603 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_EVENT_CREATE_INFO)
7604 deviceObject := GetDevice(device)
7605
7606 event := ?
7607 pEvent[0] = event
7608 State.Events[event] = new!EventObject(device: device)
7609
7610 return ?
7611}
7612
7613@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007614cmd void vkDestroyEvent(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007615 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007616 VkEvent event,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007617 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007618 deviceObject := GetDevice(device)
7619 eventObject := GetEvent(event)
7620 assert(eventObject.device == device)
7621
7622 State.Events[event] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07007623}
7624
7625@threadSafety("system")
7626cmd VkResult vkGetEventStatus(
7627 VkDevice device,
7628 VkEvent event) {
7629 deviceObject := GetDevice(device)
7630 eventObject := GetEvent(event)
7631 assert(eventObject.device == device)
7632
7633 return ?
7634}
7635
7636@threadSafety("system")
7637cmd VkResult vkSetEvent(
7638 VkDevice device,
7639 VkEvent event) {
7640 deviceObject := GetDevice(device)
7641 eventObject := GetEvent(event)
7642 assert(eventObject.device == device)
7643
7644 return ?
7645}
7646
7647@threadSafety("system")
7648cmd VkResult vkResetEvent(
7649 VkDevice device,
7650 VkEvent event) {
7651 deviceObject := GetDevice(device)
7652 eventObject := GetEvent(event)
7653 assert(eventObject.device == device)
7654
7655 return ?
7656}
7657
7658
7659// Query functions
7660
7661@threadSafety("system")
7662cmd VkResult vkCreateQueryPool(
7663 VkDevice device,
7664 const VkQueryPoolCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007665 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007666 VkQueryPool* pQueryPool) {
7667 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO)
7668 deviceObject := GetDevice(device)
7669
7670 queryPool := ?
7671 pQueryPool[0] = queryPool
7672 State.QueryPools[queryPool] = new!QueryPoolObject(device: device)
7673
7674 return ?
7675}
7676
7677@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007678cmd void vkDestroyQueryPool(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007679 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007680 VkQueryPool queryPool,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007681 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007682 deviceObject := GetDevice(device)
7683 queryPoolObject := GetQueryPool(queryPool)
7684 assert(queryPoolObject.device == device)
7685
7686 State.QueryPools[queryPool] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07007687}
7688
7689@threadSafety("system")
7690cmd VkResult vkGetQueryPoolResults(
7691 VkDevice device,
7692 VkQueryPool queryPool,
Jesse Hallf9fa9a52016-01-08 16:08:51 -08007693 u32 firstQuery,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007694 u32 queryCount,
Jesse Halla9bb62b2015-11-21 19:31:56 -08007695 platform.size_t dataSize,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007696 void* pData,
Jesse Halla9bb62b2015-11-21 19:31:56 -08007697 VkDeviceSize stride,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007698 VkQueryResultFlags flags) {
7699 deviceObject := GetDevice(device)
7700 queryPoolObject := GetQueryPool(queryPool)
7701 assert(queryPoolObject.device == device)
7702
Jesse Halld27f6aa2015-08-15 17:58:48 -07007703 data := pData[0:dataSize]
7704
7705 return ?
7706}
7707
7708// Buffer functions
7709
7710@threadSafety("system")
7711cmd VkResult vkCreateBuffer(
7712 VkDevice device,
7713 const VkBufferCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007714 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007715 VkBuffer* pBuffer) {
7716 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO)
7717 deviceObject := GetDevice(device)
7718
7719 buffer := ?
7720 pBuffer[0] = buffer
7721 State.Buffers[buffer] = new!BufferObject(device: device)
7722
7723 return ?
7724}
7725
7726@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007727cmd void vkDestroyBuffer(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007728 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007729 VkBuffer buffer,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007730 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007731 deviceObject := GetDevice(device)
7732 bufferObject := GetBuffer(buffer)
7733 assert(bufferObject.device == device)
7734
Jesse Hall3fbc8562015-11-29 22:10:52 -08007735 assert(bufferObject.memory == 0)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007736 State.Buffers[buffer] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07007737}
7738
7739
7740// Buffer view functions
7741
7742@threadSafety("system")
7743cmd VkResult vkCreateBufferView(
7744 VkDevice device,
7745 const VkBufferViewCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007746 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007747 VkBufferView* pView) {
7748 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO)
7749 deviceObject := GetDevice(device)
7750
7751 bufferObject := GetBuffer(pCreateInfo.buffer)
7752 assert(bufferObject.device == device)
7753
7754 view := ?
7755 pView[0] = view
7756 State.BufferViews[view] = new!BufferViewObject(device: device, buffer: pCreateInfo.buffer)
7757
7758 return ?
7759}
7760
7761@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007762cmd void vkDestroyBufferView(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007763 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007764 VkBufferView bufferView,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007765 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007766 deviceObject := GetDevice(device)
7767 bufferViewObject := GetBufferView(bufferView)
7768 assert(bufferViewObject.device == device)
7769
7770 State.BufferViews[bufferView] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07007771}
7772
7773
7774// Image functions
7775
7776@threadSafety("system")
7777cmd VkResult vkCreateImage(
7778 VkDevice device,
7779 const VkImageCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007780 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007781 VkImage* pImage) {
7782 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO)
7783 deviceObject := GetDevice(device)
7784
7785 image := ?
7786 pImage[0] = image
7787 State.Images[image] = new!ImageObject(device: device)
7788
7789 return ?
7790}
7791
7792@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007793cmd void vkDestroyImage(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007794 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007795 VkImage image,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007796 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007797 deviceObject := GetDevice(device)
7798 imageObject := GetImage(image)
7799 assert(imageObject.device == device)
7800
Jesse Hall3fbc8562015-11-29 22:10:52 -08007801 assert(imageObject.memory == 0)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007802 State.Images[image] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07007803}
7804
Jesse Hall606a54e2015-11-19 22:17:28 -08007805cmd void vkGetImageSubresourceLayout(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007806 VkDevice device,
7807 VkImage image,
7808 const VkImageSubresource* pSubresource,
7809 VkSubresourceLayout* pLayout) {
7810 deviceObject := GetDevice(device)
7811 imageObject := GetImage(image)
7812 assert(imageObject.device == device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007813}
7814
7815
7816// Image view functions
7817
7818@threadSafety("system")
7819cmd VkResult vkCreateImageView(
7820 VkDevice device,
7821 const VkImageViewCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007822 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007823 VkImageView* pView) {
7824 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO)
7825 deviceObject := GetDevice(device)
7826
7827 imageObject := GetImage(pCreateInfo.image)
7828 assert(imageObject.device == device)
7829
7830 view := ?
7831 pView[0] = view
7832 State.ImageViews[view] = new!ImageViewObject(device: device, image: pCreateInfo.image)
7833
7834 return ?
7835}
7836
7837@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007838cmd void vkDestroyImageView(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007839 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007840 VkImageView imageView,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007841 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007842 deviceObject := GetDevice(device)
7843 imageViewObject := GetImageView(imageView)
7844 assert(imageViewObject.device == device)
7845
7846 State.ImageViews[imageView] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07007847}
7848
7849
7850// Shader functions
7851
7852cmd VkResult vkCreateShaderModule(
7853 VkDevice device,
7854 const VkShaderModuleCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007855 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007856 VkShaderModule* pShaderModule) {
7857 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO)
7858 deviceObject := GetDevice(device)
7859
7860 shaderModule := ?
7861 pShaderModule[0] = shaderModule
7862 State.ShaderModules[shaderModule] = new!ShaderModuleObject(device: device)
7863
7864 return ?
7865}
7866
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007867cmd void vkDestroyShaderModule(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007868 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007869 VkShaderModule shaderModule,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007870 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007871 deviceObject := GetDevice(device)
7872 shaderModuleObject := GetShaderModule(shaderModule)
7873 assert(shaderModuleObject.device == device)
7874
7875 State.ShaderModules[shaderModule] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07007876}
7877
Jesse Halld27f6aa2015-08-15 17:58:48 -07007878
7879// Pipeline functions
7880
7881cmd VkResult vkCreatePipelineCache(
7882 VkDevice device,
7883 const VkPipelineCacheCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007884 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007885 VkPipelineCache* pPipelineCache) {
7886 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO)
7887 deviceObject := GetDevice(device)
7888
7889 pipelineCache := ?
7890 pPipelineCache[0] = pipelineCache
7891 State.PipelineCaches[pipelineCache] = new!PipelineCacheObject(device: device)
7892
7893 return ?
7894}
7895
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007896cmd void vkDestroyPipelineCache(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007897 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007898 VkPipelineCache pipelineCache,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007899 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007900 deviceObject := GetDevice(device)
7901 pipelineCacheObject := GetPipelineCache(pipelineCache)
7902 assert(pipelineCacheObject.device == device)
7903
7904 State.PipelineCaches[pipelineCache] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07007905}
7906
Jesse Halld27f6aa2015-08-15 17:58:48 -07007907cmd VkResult vkGetPipelineCacheData(
7908 VkDevice device,
7909 VkPipelineCache pipelineCache,
Jesse Halla9bb62b2015-11-21 19:31:56 -08007910 platform.size_t* pDataSize,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007911 void* pData) {
7912 deviceObject := GetDevice(device)
7913 pipelineCacheObject := GetPipelineCache(pipelineCache)
7914 assert(pipelineCacheObject.device == device)
7915
7916 return ?
7917}
7918
7919cmd VkResult vkMergePipelineCaches(
7920 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007921 VkPipelineCache dstCache,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007922 u32 srcCacheCount,
7923 const VkPipelineCache* pSrcCaches) {
7924 deviceObject := GetDevice(device)
Jesse Hall3fbc8562015-11-29 22:10:52 -08007925 dstCacheObject := GetPipelineCache(dstCache)
7926 assert(dstCacheObject.device == device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007927
7928 srcCaches := pSrcCaches[0:srcCacheCount]
7929 for i in (0 .. srcCacheCount) {
7930 srcCache := srcCaches[i]
7931 srcCacheObject := GetPipelineCache(srcCache)
7932 assert(srcCacheObject.device == device)
7933 }
7934
7935 return ?
7936}
7937
7938cmd VkResult vkCreateGraphicsPipelines(
7939 VkDevice device,
7940 VkPipelineCache pipelineCache,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007941 u32 createInfoCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007942 const VkGraphicsPipelineCreateInfo* pCreateInfos,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007943 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007944 VkPipeline* pPipelines) {
7945 deviceObject := GetDevice(device)
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007946 if pipelineCache != NULL_HANDLE {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007947 pipelineCacheObject := GetPipelineCache(pipelineCache)
7948 assert(pipelineCacheObject.device == device)
7949 }
7950
Jesse Hall03b6fe12015-11-24 12:44:21 -08007951 createInfos := pCreateInfos[0:createInfoCount]
7952 pipelines := pPipelines[0:createInfoCount]
7953 for i in (0 .. createInfoCount) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007954 pipeline := ?
7955 pipelines[i] = pipeline
7956 State.Pipelines[pipeline] = new!PipelineObject(device: device)
7957 }
7958
7959 return ?
7960}
7961
7962cmd VkResult vkCreateComputePipelines(
7963 VkDevice device,
7964 VkPipelineCache pipelineCache,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007965 u32 createInfoCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007966 const VkComputePipelineCreateInfo* pCreateInfos,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007967 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007968 VkPipeline* pPipelines) {
7969 deviceObject := GetDevice(device)
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007970 if pipelineCache != NULL_HANDLE {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007971 pipelineCacheObject := GetPipelineCache(pipelineCache)
7972 assert(pipelineCacheObject.device == device)
7973 }
7974
Jesse Hall03b6fe12015-11-24 12:44:21 -08007975 createInfos := pCreateInfos[0:createInfoCount]
7976 pipelines := pPipelines[0:createInfoCount]
7977 for i in (0 .. createInfoCount) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007978 pipeline := ?
7979 pipelines[i] = pipeline
7980 State.Pipelines[pipeline] = new!PipelineObject(device: device)
7981 }
7982
7983 return ?
7984}
7985
7986@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007987cmd void vkDestroyPipeline(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007988 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007989 VkPipeline pipeline,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007990 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007991 deviceObject := GetDevice(device)
7992 pipelineObjects := GetPipeline(pipeline)
7993 assert(pipelineObjects.device == device)
7994
7995 State.Pipelines[pipeline] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07007996}
7997
7998
7999// Pipeline layout functions
8000
8001@threadSafety("system")
8002cmd VkResult vkCreatePipelineLayout(
8003 VkDevice device,
8004 const VkPipelineLayoutCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008005 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008006 VkPipelineLayout* pPipelineLayout) {
8007 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO)
8008 deviceObject := GetDevice(device)
8009
8010 pipelineLayout := ?
8011 pPipelineLayout[0] = pipelineLayout
8012 State.PipelineLayouts[pipelineLayout] = new!PipelineLayoutObject(device: device)
8013
8014 return ?
8015}
8016
8017@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008018cmd void vkDestroyPipelineLayout(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008019 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008020 VkPipelineLayout pipelineLayout,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008021 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008022 deviceObject := GetDevice(device)
8023 pipelineLayoutObjects := GetPipelineLayout(pipelineLayout)
8024 assert(pipelineLayoutObjects.device == device)
8025
8026 State.PipelineLayouts[pipelineLayout] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008027}
8028
8029
8030// Sampler functions
8031
8032@threadSafety("system")
8033cmd VkResult vkCreateSampler(
8034 VkDevice device,
8035 const VkSamplerCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008036 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008037 VkSampler* pSampler) {
8038 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO)
8039 deviceObject := GetDevice(device)
8040
8041 sampler := ?
8042 pSampler[0] = sampler
8043 State.Samplers[sampler] = new!SamplerObject(device: device)
8044
8045 return ?
8046}
8047
8048@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008049cmd void vkDestroySampler(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008050 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008051 VkSampler sampler,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008052 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008053 deviceObject := GetDevice(device)
8054 samplerObject := GetSampler(sampler)
8055 assert(samplerObject.device == device)
8056
8057 State.Samplers[sampler] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008058}
8059
8060
8061// Descriptor set functions
8062
8063@threadSafety("system")
8064cmd VkResult vkCreateDescriptorSetLayout(
8065 VkDevice device,
8066 const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008067 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008068 VkDescriptorSetLayout* pSetLayout) {
8069 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO)
8070 deviceObject := GetDevice(device)
8071
8072 setLayout := ?
8073 pSetLayout[0] = setLayout
8074 State.DescriptorSetLayouts[setLayout] = new!DescriptorSetLayoutObject(device: device)
8075
8076 return ?
8077}
8078
8079@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008080cmd void vkDestroyDescriptorSetLayout(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008081 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008082 VkDescriptorSetLayout descriptorSetLayout,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008083 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008084 deviceObject := GetDevice(device)
8085 descriptorSetLayoutObject := GetDescriptorSetLayout(descriptorSetLayout)
8086 assert(descriptorSetLayoutObject.device == device)
8087
8088 State.DescriptorSetLayouts[descriptorSetLayout] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008089}
8090
8091@threadSafety("system")
8092cmd VkResult vkCreateDescriptorPool(
8093 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008094 const VkDescriptorPoolCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008095 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008096 VkDescriptorPool* pDescriptorPool) {
8097 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO)
8098 deviceObject := GetDevice(device)
8099
8100 descriptorPool := ?
8101 pDescriptorPool[0] = descriptorPool
8102 State.DescriptorPools[descriptorPool] = new!DescriptorPoolObject(device: device)
8103
8104 return ?
8105}
8106
8107@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008108cmd void vkDestroyDescriptorPool(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008109 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008110 VkDescriptorPool descriptorPool,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008111 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008112 deviceObject := GetDevice(device)
8113 descriptorPoolObject := GetDescriptorPool(descriptorPool)
8114 assert(descriptorPoolObject.device == device)
8115
8116 State.DescriptorPools[descriptorPool] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008117}
8118
8119@threadSafety("app")
8120cmd VkResult vkResetDescriptorPool(
8121 VkDevice device,
Jesse Hallfbf97b02015-11-20 14:17:03 -08008122 VkDescriptorPool descriptorPool,
8123 VkDescriptorPoolResetFlags flags) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008124 deviceObject := GetDevice(device)
8125 descriptorPoolObject := GetDescriptorPool(descriptorPool)
8126 assert(descriptorPoolObject.device == device)
8127
8128 return ?
8129}
8130
8131@threadSafety("app")
Jesse Hall3fbc8562015-11-29 22:10:52 -08008132cmd VkResult vkAllocateDescriptorSets(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008133 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008134 const VkDescriptorSetAllocateInfo* pAllocateInfo,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008135 VkDescriptorSet* pDescriptorSets) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008136 deviceObject := GetDevice(device)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008137 allocInfo := pAllocateInfo[0]
Jesse Hallfbf97b02015-11-20 14:17:03 -08008138 descriptorPoolObject := GetDescriptorPool(allocInfo.descriptorPool)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008139
Jesse Hall03b6fe12015-11-24 12:44:21 -08008140 setLayouts := allocInfo.pSetLayouts[0:allocInfo.setCount]
8141 for i in (0 .. allocInfo.setCount) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008142 setLayout := setLayouts[i]
8143 setLayoutObject := GetDescriptorSetLayout(setLayout)
8144 assert(setLayoutObject.device == device)
8145 }
8146
Jesse Hall03b6fe12015-11-24 12:44:21 -08008147 descriptorSets := pDescriptorSets[0:allocInfo.setCount]
8148 for i in (0 .. allocInfo.setCount) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008149 descriptorSet := ?
8150 descriptorSets[i] = descriptorSet
8151 State.DescriptorSets[descriptorSet] = new!DescriptorSetObject(device: device)
8152 }
8153
8154 return ?
8155}
8156
Jesse Hallf09c6b12015-08-15 19:54:28 -07008157cmd VkResult vkFreeDescriptorSets(
8158 VkDevice device,
8159 VkDescriptorPool descriptorPool,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008160 u32 descriptorSetCount,
Jesse Hallf09c6b12015-08-15 19:54:28 -07008161 const VkDescriptorSet* pDescriptorSets) {
8162 deviceObject := GetDevice(device)
8163 descriptorPoolObject := GetDescriptorPool(descriptorPool)
8164
Jesse Hall03b6fe12015-11-24 12:44:21 -08008165 descriptorSets := pDescriptorSets[0:descriptorSetCount]
8166 for i in (0 .. descriptorSetCount) {
Jesse Hallf09c6b12015-08-15 19:54:28 -07008167 descriptorSet := descriptorSets[i]
8168 descriptorSetObject := GetDescriptorSet(descriptorSet)
8169 assert(descriptorSetObject.device == device)
8170 State.DescriptorSets[descriptorSet] = null
8171 }
8172
8173 return ?
8174}
8175
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008176cmd void vkUpdateDescriptorSets(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008177 VkDevice device,
Jesse Hallb00daad2015-11-29 19:46:20 -08008178 u32 descriptorWriteCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008179 const VkWriteDescriptorSet* pDescriptorWrites,
Jesse Hallb00daad2015-11-29 19:46:20 -08008180 u32 descriptorCopyCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008181 const VkCopyDescriptorSet* pDescriptorCopies) {
8182 deviceObject := GetDevice(device)
8183
Jesse Hallb00daad2015-11-29 19:46:20 -08008184 descriptorWrites := pDescriptorWrites[0:descriptorWriteCount]
8185 for i in (0 .. descriptorWriteCount) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008186 descriptorWrite := descriptorWrites[i]
Jesse Hall3fbc8562015-11-29 22:10:52 -08008187 descriptorWriteObject := GetDescriptorSet(descriptorWrite.dstSet)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008188 assert(descriptorWriteObject.device == device)
8189 }
8190
Jesse Hallb00daad2015-11-29 19:46:20 -08008191 descriptorCopies := pDescriptorCopies[0:descriptorCopyCount]
8192 for i in (0 .. descriptorCopyCount) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008193 descriptorCopy := descriptorCopies[i]
Jesse Hall3fbc8562015-11-29 22:10:52 -08008194 descriptorCopyObject := GetDescriptorSet(descriptorCopy.dstSet)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008195 assert(descriptorCopyObject.device == device)
8196 }
Jesse Halld27f6aa2015-08-15 17:58:48 -07008197}
8198
8199
8200// Framebuffer functions
8201
8202@threadSafety("system")
8203cmd VkResult vkCreateFramebuffer(
8204 VkDevice device,
8205 const VkFramebufferCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008206 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008207 VkFramebuffer* pFramebuffer) {
8208 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO)
8209 deviceObject := GetDevice(device)
8210
8211 framebuffer := ?
8212 pFramebuffer[0] = framebuffer
8213 State.Framebuffers[framebuffer] = new!FramebufferObject(device: device)
8214
8215 return ?
8216}
8217
8218@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008219cmd void vkDestroyFramebuffer(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008220 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008221 VkFramebuffer framebuffer,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008222 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008223 deviceObject := GetDevice(device)
8224 framebufferObject := GetFramebuffer(framebuffer)
8225 assert(framebufferObject.device == device)
8226
8227 State.Framebuffers[framebuffer] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008228}
8229
8230
8231// Renderpass functions
8232
8233@threadSafety("system")
8234cmd VkResult vkCreateRenderPass(
8235 VkDevice device,
8236 const VkRenderPassCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008237 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008238 VkRenderPass* pRenderPass) {
8239 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO)
8240 deviceObject := GetDevice(device)
8241
8242 renderpass := ?
8243 pRenderPass[0] = renderpass
8244 State.RenderPasses[renderpass] = new!RenderPassObject(device: device)
8245
8246 return ?
8247}
8248
8249@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008250cmd void vkDestroyRenderPass(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008251 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008252 VkRenderPass renderPass,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008253 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008254 deviceObject := GetDevice(device)
8255 renderPassObject := GetRenderPass(renderPass)
8256 assert(renderPassObject.device == device)
8257
8258 State.RenderPasses[renderPass] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008259}
8260
Jesse Hall606a54e2015-11-19 22:17:28 -08008261cmd void vkGetRenderAreaGranularity(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008262 VkDevice device,
8263 VkRenderPass renderPass,
8264 VkExtent2D* pGranularity) {
8265 deviceObject := GetDevice(device)
8266 renderPassObject := GetRenderPass(renderPass)
8267
8268 granularity := ?
8269 pGranularity[0] = granularity
Jesse Halld27f6aa2015-08-15 17:58:48 -07008270}
8271
8272// Command pool functions
8273
8274cmd VkResult vkCreateCommandPool(
8275 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008276 const VkCommandPoolCreateInfo* pCreateInfo,
8277 const VkAllocationCallbacks* pAllocator,
8278 VkCommandPool* pCommandPool) {
8279 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008280 deviceObject := GetDevice(device)
8281
Jesse Hall3fbc8562015-11-29 22:10:52 -08008282 commandPool := ?
8283 pCommandPool[0] = commandPool
8284 State.CommandPools[commandPool] = new!CommandPoolObject(device: device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008285
8286 return ?
8287}
8288
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008289cmd void vkDestroyCommandPool(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008290 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008291 VkCommandPool commandPool,
8292 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008293 deviceObject := GetDevice(device)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008294 commandPoolObject := GetCommandPool(commandPool)
8295 assert(commandPoolObject.device == device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008296
Jesse Hall3fbc8562015-11-29 22:10:52 -08008297 State.CommandPools[commandPool] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008298}
8299
8300cmd VkResult vkResetCommandPool(
8301 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008302 VkCommandPool commandPool,
8303 VkCommandPoolResetFlags flags) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008304 deviceObject := GetDevice(device)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008305 commandPoolObject := GetCommandPool(commandPool)
8306 assert(commandPoolObject.device == device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008307
8308 return ?
8309}
8310
8311// Command buffer functions
8312
Jesse Hall3fbc8562015-11-29 22:10:52 -08008313macro void bindCommandBuffer(VkCommandBuffer commandBuffer, any obj, VkDeviceMemory memory) {
8314 memoryObject := GetDeviceMemory(memory)
8315 memoryObject.boundCommandBuffers[commandBuffer] = commandBuffer
Jesse Halld27f6aa2015-08-15 17:58:48 -07008316
Jesse Hall3fbc8562015-11-29 22:10:52 -08008317 commandBufferObject := GetCommandBuffer(commandBuffer)
8318 commandBufferObject.boundObjects[as!u64(obj)] = memory
Jesse Halld27f6aa2015-08-15 17:58:48 -07008319}
8320
Jesse Hall3fbc8562015-11-29 22:10:52 -08008321macro void unbindCommandBuffer(VkCommandBuffer commandBuffer, any obj, VkDeviceMemory memory) {
8322 memoryObject := GetDeviceMemory(memory)
8323 memoryObject.boundCommandBuffers[commandBuffer] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008324
Jesse Hall3fbc8562015-11-29 22:10:52 -08008325 commandBufferObject := GetCommandBuffer(commandBuffer)
8326 commandBufferObject.boundObjects[as!u64(obj)] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008327}
8328
8329@threadSafety("system")
Jesse Hall3fbc8562015-11-29 22:10:52 -08008330cmd VkResult vkAllocateCommandBuffers(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008331 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008332 const VkCommandBufferAllocateInfo* pAllocateInfo,
8333 VkCommandBuffer* pCommandBuffers) {
Jesse Hallf4ab2b12015-11-30 16:04:55 -08008334 assert(pAllocateInfo[0].sType == VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008335
Jesse Hall3dd678a2016-01-08 21:52:01 -08008336 count := pAllocateInfo[0].commandBufferCount
Jesse Hall3fbc8562015-11-29 22:10:52 -08008337 commandBuffers := pCommandBuffers[0:count]
Jesse Hallfbf97b02015-11-20 14:17:03 -08008338 for i in (0 .. count) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008339 commandBuffer := ?
8340 commandBuffers[i] = commandBuffer
8341 State.CommandBuffers[commandBuffer] = new!CommandBufferObject(device: device)
Jesse Hallfbf97b02015-11-20 14:17:03 -08008342 }
Jesse Halld27f6aa2015-08-15 17:58:48 -07008343
8344 return ?
8345}
8346
8347@threadSafety("system")
Jesse Hallfbf97b02015-11-20 14:17:03 -08008348cmd void vkFreeCommandBuffers(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008349 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008350 VkCommandPool commandPool,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008351 u32 commandBufferCount,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008352 const VkCommandBuffer* pCommandBuffers) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008353 deviceObject := GetDevice(device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008354
Jesse Hall3fbc8562015-11-29 22:10:52 -08008355 commandBuffers := pCommandBuffers[0:commandBufferCount]
Jesse Hall03b6fe12015-11-24 12:44:21 -08008356 for i in (0 .. commandBufferCount) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008357 commandBufferObject := GetCommandBuffer(commandBuffers[i])
8358 assert(commandBufferObject.device == device)
Jesse Hallfbf97b02015-11-20 14:17:03 -08008359 // TODO: iterate over boundObjects and clear memory bindings
Jesse Hall3fbc8562015-11-29 22:10:52 -08008360 State.CommandBuffers[commandBuffers[i]] = null
Jesse Hallfbf97b02015-11-20 14:17:03 -08008361 }
Jesse Halld27f6aa2015-08-15 17:58:48 -07008362}
8363
8364@threadSafety("app")
8365cmd VkResult vkBeginCommandBuffer(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008366 VkCommandBuffer commandBuffer,
8367 const VkCommandBufferBeginInfo* pBeginInfo) {
8368 assert(pBeginInfo.sType == VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO)
8369 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008370
8371 // TODO: iterate over boundObjects and clear memory bindings
8372
8373 return ?
8374}
8375
8376@threadSafety("app")
8377cmd VkResult vkEndCommandBuffer(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008378 VkCommandBuffer commandBuffer) {
8379 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008380
8381 return ?
8382}
8383
8384@threadSafety("app")
8385cmd VkResult vkResetCommandBuffer(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008386 VkCommandBuffer commandBuffer,
8387 VkCommandBufferResetFlags flags) {
8388 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008389
8390 // TODO: iterate over boundObjects and clear memory bindings
8391
8392 return ?
8393}
8394
8395
8396// Command buffer building functions
8397
8398@threadSafety("app")
8399cmd void vkCmdBindPipeline(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008400 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008401 VkPipelineBindPoint pipelineBindPoint,
8402 VkPipeline pipeline) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008403 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008404 pipelineObject := GetPipeline(pipeline)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008405 assert(commandBufferObject.device == pipelineObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008406
Jesse Halld8bade02015-11-24 10:24:18 -08008407 queue := switch (pipelineBindPoint) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008408 case VK_PIPELINE_BIND_POINT_COMPUTE: VK_QUEUE_COMPUTE_BIT
8409 case VK_PIPELINE_BIND_POINT_GRAPHICS: VK_QUEUE_GRAPHICS_BIT
8410 }
Jesse Hall3fbc8562015-11-29 22:10:52 -08008411 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, queue)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008412}
8413
8414@threadSafety("app")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008415cmd void vkCmdSetViewport(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008416 VkCommandBuffer commandBuffer,
Jesse Hallf9fa9a52016-01-08 16:08:51 -08008417 u32 firstViewport,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008418 u32 viewportCount,
8419 const VkViewport* pViewports) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008420 commandBufferObject := GetCommandBuffer(commandBuffer)
8421 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008422}
8423
8424@threadSafety("app")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008425cmd void vkCmdSetScissor(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008426 VkCommandBuffer commandBuffer,
Jesse Hallf9fa9a52016-01-08 16:08:51 -08008427 u32 firstScissor,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008428 u32 scissorCount,
8429 const VkRect2D* pScissors) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008430 commandBufferObject := GetCommandBuffer(commandBuffer)
8431 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008432}
8433
8434@threadSafety("app")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008435cmd void vkCmdSetLineWidth(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008436 VkCommandBuffer commandBuffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008437 f32 lineWidth) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008438 commandBufferObject := GetCommandBuffer(commandBuffer)
8439 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008440}
8441
8442@threadSafety("app")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008443cmd void vkCmdSetDepthBias(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008444 VkCommandBuffer commandBuffer,
Jesse Halla9bb62b2015-11-21 19:31:56 -08008445 f32 depthBiasConstantFactor,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008446 f32 depthBiasClamp,
Jesse Halla9bb62b2015-11-21 19:31:56 -08008447 f32 depthBiasSlopeFactor) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008448 commandBufferObject := GetCommandBuffer(commandBuffer)
8449 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008450}
Jesse Halld27f6aa2015-08-15 17:58:48 -07008451
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008452@threadSafety("app")
8453cmd void vkCmdSetBlendConstants(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008454 VkCommandBuffer commandBuffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008455 // TODO(jessehall): apic only supports 'const' on pointer types. Using
8456 // an annotation as a quick hack to pass this to the template without
8457 // having to modify the AST and semantic model.
Jesse Hallb00daad2015-11-29 19:46:20 -08008458 @readonly f32[4] blendConstants) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008459 commandBufferObject := GetCommandBuffer(commandBuffer)
8460 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008461}
8462
8463@threadSafety("app")
8464cmd void vkCmdSetDepthBounds(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008465 VkCommandBuffer commandBuffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008466 f32 minDepthBounds,
8467 f32 maxDepthBounds) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008468 commandBufferObject := GetCommandBuffer(commandBuffer)
8469 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008470}
8471
8472@threadSafety("app")
8473cmd void vkCmdSetStencilCompareMask(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008474 VkCommandBuffer commandBuffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008475 VkStencilFaceFlags faceMask,
Jesse Hall65ab5522015-11-30 00:07:16 -08008476 u32 compareMask) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008477 commandBufferObject := GetCommandBuffer(commandBuffer)
8478 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008479}
8480
8481@threadSafety("app")
8482cmd void vkCmdSetStencilWriteMask(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008483 VkCommandBuffer commandBuffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008484 VkStencilFaceFlags faceMask,
Jesse Hall65ab5522015-11-30 00:07:16 -08008485 u32 writeMask) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008486 commandBufferObject := GetCommandBuffer(commandBuffer)
8487 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008488}
8489
8490@threadSafety("app")
8491cmd void vkCmdSetStencilReference(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008492 VkCommandBuffer commandBuffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008493 VkStencilFaceFlags faceMask,
Jesse Hall65ab5522015-11-30 00:07:16 -08008494 u32 reference) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008495 commandBufferObject := GetCommandBuffer(commandBuffer)
8496 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008497}
8498
8499@threadSafety("app")
8500cmd void vkCmdBindDescriptorSets(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008501 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008502 VkPipelineBindPoint pipelineBindPoint,
8503 VkPipelineLayout layout,
8504 u32 firstSet,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008505 u32 descriptorSetCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008506 const VkDescriptorSet* pDescriptorSets,
8507 u32 dynamicOffsetCount,
8508 const u32* pDynamicOffsets) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008509 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008510
Jesse Hall03b6fe12015-11-24 12:44:21 -08008511 descriptorSets := pDescriptorSets[0:descriptorSetCount]
8512 for i in (0 .. descriptorSetCount) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008513 descriptorSet := descriptorSets[i]
8514 descriptorSetObject := GetDescriptorSet(descriptorSet)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008515 assert(commandBufferObject.device == descriptorSetObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008516 }
8517
8518 dynamicOffsets := pDynamicOffsets[0:dynamicOffsetCount]
8519 for i in (0 .. dynamicOffsetCount) {
8520 dynamicOffset := dynamicOffsets[i]
8521 }
8522
Jesse Halld8bade02015-11-24 10:24:18 -08008523 queue := switch (pipelineBindPoint) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008524 case VK_PIPELINE_BIND_POINT_COMPUTE: VK_QUEUE_COMPUTE_BIT
8525 case VK_PIPELINE_BIND_POINT_GRAPHICS: VK_QUEUE_GRAPHICS_BIT
8526 }
Jesse Hall3fbc8562015-11-29 22:10:52 -08008527 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, queue)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008528}
8529
8530@threadSafety("app")
8531cmd void vkCmdBindIndexBuffer(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008532 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008533 VkBuffer buffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008534 VkDeviceSize offset,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008535 VkIndexType indexType) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008536 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008537 bufferObject := GetBuffer(buffer)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008538 assert(commandBufferObject.device == bufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008539
Jesse Hall3fbc8562015-11-29 22:10:52 -08008540 bindCommandBuffer(commandBuffer, buffer, bufferObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008541
Jesse Hall3fbc8562015-11-29 22:10:52 -08008542 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008543}
8544
8545@threadSafety("app")
8546cmd void vkCmdBindVertexBuffers(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008547 VkCommandBuffer commandBuffer,
Jesse Hallf9fa9a52016-01-08 16:08:51 -08008548 u32 firstBinding,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008549 u32 bindingCount,
8550 const VkBuffer* pBuffers,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008551 const VkDeviceSize* pOffsets) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008552 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008553
Jesse Hallf9fa9a52016-01-08 16:08:51 -08008554 // TODO: check if not [firstBinding:firstBinding+bindingCount]
Jesse Halld27f6aa2015-08-15 17:58:48 -07008555 buffers := pBuffers[0:bindingCount]
8556 offsets := pOffsets[0:bindingCount]
8557 for i in (0 .. bindingCount) {
8558 buffer := buffers[i]
8559 offset := offsets[i]
8560 bufferObject := GetBuffer(buffer)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008561 assert(commandBufferObject.device == bufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008562
Jesse Hall3fbc8562015-11-29 22:10:52 -08008563 bindCommandBuffer(commandBuffer, buffer, bufferObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008564 }
8565
Jesse Hall3fbc8562015-11-29 22:10:52 -08008566 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008567}
8568
8569@threadSafety("app")
8570cmd void vkCmdDraw(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008571 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008572 u32 vertexCount,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008573 u32 instanceCount,
8574 u32 firstVertex,
8575 u32 firstInstance) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008576 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008577
Jesse Hall3fbc8562015-11-29 22:10:52 -08008578 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008579}
8580
8581@threadSafety("app")
8582cmd void vkCmdDrawIndexed(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008583 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008584 u32 indexCount,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008585 u32 instanceCount,
8586 u32 firstIndex,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008587 s32 vertexOffset,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008588 u32 firstInstance) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008589 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008590
Jesse Hall3fbc8562015-11-29 22:10:52 -08008591 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008592}
8593
8594@threadSafety("app")
8595cmd void vkCmdDrawIndirect(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008596 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008597 VkBuffer buffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008598 VkDeviceSize offset,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008599 u32 drawCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008600 u32 stride) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008601 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008602 bufferObject := GetBuffer(buffer)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008603 assert(commandBufferObject.device == bufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008604
Jesse Hall3fbc8562015-11-29 22:10:52 -08008605 bindCommandBuffer(commandBuffer, buffer, bufferObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008606
Jesse Hall3fbc8562015-11-29 22:10:52 -08008607 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008608}
8609
8610@threadSafety("app")
8611cmd void vkCmdDrawIndexedIndirect(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008612 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008613 VkBuffer buffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008614 VkDeviceSize offset,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008615 u32 drawCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008616 u32 stride) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008617 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008618 bufferObject := GetBuffer(buffer)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008619 assert(commandBufferObject.device == bufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008620
Jesse Hall3fbc8562015-11-29 22:10:52 -08008621 bindCommandBuffer(commandBuffer, buffer, bufferObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008622
Jesse Hall3fbc8562015-11-29 22:10:52 -08008623 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008624}
8625
8626@threadSafety("app")
8627cmd void vkCmdDispatch(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008628 VkCommandBuffer commandBuffer,
Jesse Hallad250842017-03-10 18:35:38 -08008629 u32 groupCountX,
8630 u32 groupCountY,
8631 u32 groupCountZ) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008632 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008633
Jesse Hall3fbc8562015-11-29 22:10:52 -08008634 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_COMPUTE_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008635}
8636
8637@threadSafety("app")
8638cmd void vkCmdDispatchIndirect(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008639 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008640 VkBuffer buffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008641 VkDeviceSize offset) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008642 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008643 bufferObject := GetBuffer(buffer)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008644 assert(commandBufferObject.device == bufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008645
Jesse Hall3fbc8562015-11-29 22:10:52 -08008646 bindCommandBuffer(commandBuffer, buffer, bufferObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008647
Jesse Hall3fbc8562015-11-29 22:10:52 -08008648 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_COMPUTE_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008649}
8650
8651@threadSafety("app")
8652cmd void vkCmdCopyBuffer(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008653 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008654 VkBuffer srcBuffer,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008655 VkBuffer dstBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008656 u32 regionCount,
8657 const VkBufferCopy* pRegions) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008658 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008659 srcBufferObject := GetBuffer(srcBuffer)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008660 dstBufferObject := GetBuffer(dstBuffer)
8661 assert(commandBufferObject.device == srcBufferObject.device)
8662 assert(commandBufferObject.device == dstBufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008663
8664 regions := pRegions[0:regionCount]
8665 for i in (0 .. regionCount) {
8666 region := regions[i]
8667 }
8668
Jesse Hall3fbc8562015-11-29 22:10:52 -08008669 bindCommandBuffer(commandBuffer, srcBuffer, srcBufferObject.memory)
8670 bindCommandBuffer(commandBuffer, dstBuffer, dstBufferObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008671
Jesse Hall65ab5522015-11-30 00:07:16 -08008672 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_TRANSFER_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008673}
8674
8675@threadSafety("app")
8676cmd void vkCmdCopyImage(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008677 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008678 VkImage srcImage,
8679 VkImageLayout srcImageLayout,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008680 VkImage dstImage,
8681 VkImageLayout dstImageLayout,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008682 u32 regionCount,
8683 const VkImageCopy* pRegions) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008684 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008685 srcImageObject := GetImage(srcImage)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008686 dstImageObject := GetImage(dstImage)
8687 assert(commandBufferObject.device == srcImageObject.device)
8688 assert(commandBufferObject.device == dstImageObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008689
8690 regions := pRegions[0:regionCount]
8691 for i in (0 .. regionCount) {
8692 region := regions[i]
8693 }
8694
Jesse Hall3fbc8562015-11-29 22:10:52 -08008695 bindCommandBuffer(commandBuffer, srcImage, srcImageObject.memory)
8696 bindCommandBuffer(commandBuffer, dstImage, dstImageObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008697
Jesse Hall65ab5522015-11-30 00:07:16 -08008698 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_TRANSFER_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008699}
8700
8701@threadSafety("app")
8702cmd void vkCmdBlitImage(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008703 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008704 VkImage srcImage,
8705 VkImageLayout srcImageLayout,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008706 VkImage dstImage,
8707 VkImageLayout dstImageLayout,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008708 u32 regionCount,
8709 const VkImageBlit* pRegions,
Jesse Hall23ff73f2015-11-29 14:36:39 -08008710 VkFilter filter) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008711 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008712 srcImageObject := GetImage(srcImage)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008713 dstImageObject := GetImage(dstImage)
8714 assert(commandBufferObject.device == srcImageObject.device)
8715 assert(commandBufferObject.device == dstImageObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008716
8717 regions := pRegions[0:regionCount]
8718 for i in (0 .. regionCount) {
8719 region := regions[i]
8720 }
8721
Jesse Hall3fbc8562015-11-29 22:10:52 -08008722 bindCommandBuffer(commandBuffer, srcImage, srcImageObject.memory)
8723 bindCommandBuffer(commandBuffer, dstImage, dstImageObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008724
Jesse Hall3fbc8562015-11-29 22:10:52 -08008725 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008726}
8727
8728@threadSafety("app")
8729cmd void vkCmdCopyBufferToImage(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008730 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008731 VkBuffer srcBuffer,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008732 VkImage dstImage,
8733 VkImageLayout dstImageLayout,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008734 u32 regionCount,
8735 const VkBufferImageCopy* pRegions) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008736 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008737 srcBufferObject := GetBuffer(srcBuffer)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008738 dstImageObject := GetImage(dstImage)
8739 assert(commandBufferObject.device == srcBufferObject.device)
8740 assert(commandBufferObject.device == dstImageObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008741
8742 regions := pRegions[0:regionCount]
8743 for i in (0 .. regionCount) {
8744 region := regions[i]
8745 }
8746
Jesse Hall3fbc8562015-11-29 22:10:52 -08008747 bindCommandBuffer(commandBuffer, srcBuffer, srcBufferObject.memory)
8748 bindCommandBuffer(commandBuffer, dstImage, dstImageObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008749
Jesse Hall65ab5522015-11-30 00:07:16 -08008750 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_TRANSFER_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008751}
8752
8753@threadSafety("app")
8754cmd void vkCmdCopyImageToBuffer(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008755 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008756 VkImage srcImage,
8757 VkImageLayout srcImageLayout,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008758 VkBuffer dstBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008759 u32 regionCount,
8760 const VkBufferImageCopy* pRegions) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008761 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008762 srcImageObject := GetImage(srcImage)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008763 dstBufferObject := GetBuffer(dstBuffer)
8764 assert(commandBufferObject.device == srcImageObject.device)
8765 assert(commandBufferObject.device == dstBufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008766
8767 regions := pRegions[0:regionCount]
8768 for i in (0 .. regionCount) {
8769 region := regions[i]
8770 }
8771
Jesse Hall3fbc8562015-11-29 22:10:52 -08008772 bindCommandBuffer(commandBuffer, srcImage, srcImageObject.memory)
8773 bindCommandBuffer(commandBuffer, dstBuffer, dstBufferObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008774
Jesse Hall65ab5522015-11-30 00:07:16 -08008775 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_TRANSFER_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008776}
8777
8778@threadSafety("app")
8779cmd void vkCmdUpdateBuffer(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008780 VkCommandBuffer commandBuffer,
8781 VkBuffer dstBuffer,
8782 VkDeviceSize dstOffset,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008783 VkDeviceSize dataSize,
Jesse Hall56d386a2016-07-26 15:20:40 -07008784 const void* pData) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008785 commandBufferObject := GetCommandBuffer(commandBuffer)
8786 dstBufferObject := GetBuffer(dstBuffer)
8787 assert(commandBufferObject.device == dstBufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008788
8789 data := pData[0:dataSize]
8790
Jesse Hall3fbc8562015-11-29 22:10:52 -08008791 bindCommandBuffer(commandBuffer, dstBuffer, dstBufferObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008792
Jesse Hall65ab5522015-11-30 00:07:16 -08008793 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_TRANSFER_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008794}
8795
8796@threadSafety("app")
8797cmd void vkCmdFillBuffer(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008798 VkCommandBuffer commandBuffer,
8799 VkBuffer dstBuffer,
8800 VkDeviceSize dstOffset,
Jesse Hallb00daad2015-11-29 19:46:20 -08008801 VkDeviceSize size,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008802 u32 data) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008803 commandBufferObject := GetCommandBuffer(commandBuffer)
8804 dstBufferObject := GetBuffer(dstBuffer)
8805 assert(commandBufferObject.device == dstBufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008806
Jesse Hall65ab5522015-11-30 00:07:16 -08008807 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_TRANSFER_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008808}
8809
8810@threadSafety("app")
8811cmd void vkCmdClearColorImage(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008812 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008813 VkImage image,
8814 VkImageLayout imageLayout,
8815 const VkClearColorValue* pColor,
8816 u32 rangeCount,
8817 const VkImageSubresourceRange* pRanges) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008818 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008819 imageObject := GetImage(image)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008820 assert(commandBufferObject.device == imageObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008821
8822 ranges := pRanges[0:rangeCount]
8823 for i in (0 .. rangeCount) {
8824 range := ranges[i]
8825 }
8826
Jesse Hall3fbc8562015-11-29 22:10:52 -08008827 bindCommandBuffer(commandBuffer, image, imageObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008828
Jesse Hall3fbc8562015-11-29 22:10:52 -08008829 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008830}
8831
8832@threadSafety("app")
8833cmd void vkCmdClearDepthStencilImage(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008834 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008835 VkImage image,
8836 VkImageLayout imageLayout,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008837 const VkClearDepthStencilValue* pDepthStencil,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008838 u32 rangeCount,
8839 const VkImageSubresourceRange* pRanges) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008840 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008841 imageObject := GetImage(image)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008842 assert(commandBufferObject.device == imageObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008843
8844 ranges := pRanges[0:rangeCount]
8845 for i in (0 .. rangeCount) {
8846 range := ranges[i]
8847 }
8848
Jesse Hall3fbc8562015-11-29 22:10:52 -08008849 bindCommandBuffer(commandBuffer, image, imageObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008850
Jesse Hall3fbc8562015-11-29 22:10:52 -08008851 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008852}
8853
8854@threadSafety("app")
Jesse Hallae38f732015-11-19 21:32:50 -08008855cmd void vkCmdClearAttachments(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008856 VkCommandBuffer commandBuffer,
Jesse Hallae38f732015-11-19 21:32:50 -08008857 u32 attachmentCount,
8858 const VkClearAttachment* pAttachments,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008859 u32 rectCount,
Jesse Halla15a4bf2015-11-19 22:48:02 -08008860 const VkClearRect* pRects) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008861 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008862
8863 rects := pRects[0:rectCount]
8864 for i in (0 .. rectCount) {
8865 rect := rects[i]
8866 }
8867
Jesse Hall3fbc8562015-11-29 22:10:52 -08008868 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008869}
8870
8871@threadSafety("app")
8872cmd void vkCmdResolveImage(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008873 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008874 VkImage srcImage,
8875 VkImageLayout srcImageLayout,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008876 VkImage dstImage,
8877 VkImageLayout dstImageLayout,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008878 u32 regionCount,
8879 const VkImageResolve* pRegions) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008880 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008881 srcImageObject := GetImage(srcImage)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008882 dstImageObject := GetImage(dstImage)
8883 assert(commandBufferObject.device == srcImageObject.device)
8884 assert(commandBufferObject.device == dstImageObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008885
8886 regions := pRegions[0:regionCount]
8887 for i in (0 .. regionCount) {
8888 region := regions[i]
8889 }
8890
Jesse Hall3fbc8562015-11-29 22:10:52 -08008891 bindCommandBuffer(commandBuffer, srcImage, srcImageObject.memory)
8892 bindCommandBuffer(commandBuffer, dstImage, dstImageObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008893
Jesse Hall3fbc8562015-11-29 22:10:52 -08008894 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008895}
8896
8897@threadSafety("app")
8898cmd void vkCmdSetEvent(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008899 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008900 VkEvent event,
8901 VkPipelineStageFlags stageMask) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008902 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008903 eventObject := GetEvent(event)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008904 assert(commandBufferObject.device == eventObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008905}
8906
8907@threadSafety("app")
8908cmd void vkCmdResetEvent(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008909 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008910 VkEvent event,
8911 VkPipelineStageFlags stageMask) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008912 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008913 eventObject := GetEvent(event)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008914 assert(commandBufferObject.device == eventObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008915}
8916
8917@threadSafety("app")
8918cmd void vkCmdWaitEvents(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008919 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008920 u32 eventCount,
8921 const VkEvent* pEvents,
8922 VkPipelineStageFlags srcStageMask,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008923 VkPipelineStageFlags dstStageMask,
8924 u32 memoryBarrierCount,
Jesse Hall3dd678a2016-01-08 21:52:01 -08008925 const VkMemoryBarrier* pMemoryBarriers,
8926 u32 bufferMemoryBarrierCount,
8927 const VkBufferMemoryBarrier* pBufferMemoryBarriers,
8928 u32 imageMemoryBarrierCount,
8929 const VkImageMemoryBarrier* pImageMemoryBarriers) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008930 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008931
8932 events := pEvents[0:eventCount]
8933 for i in (0 .. eventCount) {
8934 event := events[i]
8935 eventObject := GetEvent(event)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008936 assert(commandBufferObject.device == eventObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008937 }
8938
Jesse Hall3dd678a2016-01-08 21:52:01 -08008939 memoryBarriers := pMemoryBarriers[0:memoryBarrierCount]
Jesse Hall3fbc8562015-11-29 22:10:52 -08008940 for i in (0 .. memoryBarrierCount) {
Jesse Hall3dd678a2016-01-08 21:52:01 -08008941 memoryBarrier := memoryBarriers[i]
8942 }
8943 bufferMemoryBarriers := pBufferMemoryBarriers[0:bufferMemoryBarrierCount]
8944 for i in (0 .. bufferMemoryBarrierCount) {
8945 bufferMemoryBarrier := bufferMemoryBarriers[i]
8946 bufferObject := GetBuffer(bufferMemoryBarrier.buffer)
8947 assert(bufferObject.device == commandBufferObject.device)
8948 }
8949 imageMemoryBarriers := pImageMemoryBarriers[0:imageMemoryBarrierCount]
8950 for i in (0 .. imageMemoryBarrierCount) {
8951 imageMemoryBarrier := imageMemoryBarriers[i]
8952 imageObject := GetImage(imageMemoryBarrier.image)
8953 assert(imageObject.device == commandBufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008954 }
8955}
8956
8957@threadSafety("app")
8958cmd void vkCmdPipelineBarrier(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008959 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008960 VkPipelineStageFlags srcStageMask,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008961 VkPipelineStageFlags dstStageMask,
Jesse Halldc6d36c2015-11-29 19:12:15 -08008962 VkDependencyFlags dependencyFlags,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008963 u32 memoryBarrierCount,
Jesse Hall3dd678a2016-01-08 21:52:01 -08008964 const VkMemoryBarrier* pMemoryBarriers,
8965 u32 bufferMemoryBarrierCount,
8966 const VkBufferMemoryBarrier* pBufferMemoryBarriers,
8967 u32 imageMemoryBarrierCount,
8968 const VkImageMemoryBarrier* pImageMemoryBarriers) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008969 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008970
Jesse Hall3dd678a2016-01-08 21:52:01 -08008971 memoryBarriers := pMemoryBarriers[0:memoryBarrierCount]
Jesse Hall3fbc8562015-11-29 22:10:52 -08008972 for i in (0 .. memoryBarrierCount) {
Jesse Hall3dd678a2016-01-08 21:52:01 -08008973 memoryBarrier := memoryBarriers[i]
8974 }
8975 bufferMemoryBarriers := pBufferMemoryBarriers[0:bufferMemoryBarrierCount]
8976 for i in (0 .. bufferMemoryBarrierCount) {
8977 bufferMemoryBarrier := bufferMemoryBarriers[i]
8978 bufferObject := GetBuffer(bufferMemoryBarrier.buffer)
8979 assert(bufferObject.device == commandBufferObject.device)
8980 }
8981 imageMemoryBarriers := pImageMemoryBarriers[0:imageMemoryBarrierCount]
8982 for i in (0 .. imageMemoryBarrierCount) {
8983 imageMemoryBarrier := imageMemoryBarriers[i]
8984 imageObject := GetImage(imageMemoryBarrier.image)
8985 assert(imageObject.device == commandBufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008986 }
8987}
8988
8989@threadSafety("app")
8990cmd void vkCmdBeginQuery(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008991 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008992 VkQueryPool queryPool,
Jesse Hall3dd678a2016-01-08 21:52:01 -08008993 u32 query,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008994 VkQueryControlFlags flags) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008995 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008996 queryPoolObject := GetQueryPool(queryPool)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008997 assert(commandBufferObject.device == queryPoolObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008998}
8999
9000@threadSafety("app")
9001cmd void vkCmdEndQuery(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009002 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009003 VkQueryPool queryPool,
Jesse Hall3dd678a2016-01-08 21:52:01 -08009004 u32 query) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009005 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009006 queryPoolObject := GetQueryPool(queryPool)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009007 assert(commandBufferObject.device == queryPoolObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009008}
9009
9010@threadSafety("app")
9011cmd void vkCmdResetQueryPool(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009012 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009013 VkQueryPool queryPool,
Jesse Hallf9fa9a52016-01-08 16:08:51 -08009014 u32 firstQuery,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009015 u32 queryCount) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009016 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009017 queryPoolObject := GetQueryPool(queryPool)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009018 assert(commandBufferObject.device == queryPoolObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009019}
9020
9021@threadSafety("app")
9022cmd void vkCmdWriteTimestamp(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009023 VkCommandBuffer commandBuffer,
Jesse Hall6f39a6d2015-11-24 11:08:36 -08009024 VkPipelineStageFlagBits pipelineStage,
Jesse Halla3a7a1d2015-11-24 11:37:23 -08009025 VkQueryPool queryPool,
Jesse Hall3dd678a2016-01-08 21:52:01 -08009026 u32 query) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009027 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halla3a7a1d2015-11-24 11:37:23 -08009028 queryPoolObject := GetQueryPool(queryPool)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009029 assert(commandBufferObject.device == queryPoolObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009030}
9031
9032@threadSafety("app")
9033cmd void vkCmdCopyQueryPoolResults(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009034 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009035 VkQueryPool queryPool,
Jesse Hallf9fa9a52016-01-08 16:08:51 -08009036 u32 firstQuery,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009037 u32 queryCount,
Jesse Hall3fbc8562015-11-29 22:10:52 -08009038 VkBuffer dstBuffer,
9039 VkDeviceSize dstOffset,
Jesse Halla9bb62b2015-11-21 19:31:56 -08009040 VkDeviceSize stride,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009041 VkQueryResultFlags flags) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009042 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009043 queryPoolObject := GetQueryPool(queryPool)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009044 dstBufferObject := GetBuffer(dstBuffer)
9045 assert(commandBufferObject.device == queryPoolObject.device)
9046 assert(commandBufferObject.device == dstBufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009047}
9048
9049cmd void vkCmdPushConstants(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009050 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009051 VkPipelineLayout layout,
9052 VkShaderStageFlags stageFlags,
Jesse Hall03b6fe12015-11-24 12:44:21 -08009053 u32 offset,
9054 u32 size,
Jesse Hallf4ab2b12015-11-30 16:04:55 -08009055 const void* pValues) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009056 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009057 layoutObject := GetPipelineLayout(layout)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009058 assert(commandBufferObject.device == layoutObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009059}
9060
9061@threadSafety("app")
9062cmd void vkCmdBeginRenderPass(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009063 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009064 const VkRenderPassBeginInfo* pRenderPassBegin,
Jesse Hall65ab5522015-11-30 00:07:16 -08009065 VkSubpassContents contents) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009066 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009067 renderPassObject := GetRenderPass(pRenderPassBegin.renderPass)
9068 framebufferObject := GetFramebuffer(pRenderPassBegin.framebuffer)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009069 assert(commandBufferObject.device == renderPassObject.device)
9070 assert(commandBufferObject.device == framebufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009071
Jesse Hall3fbc8562015-11-29 22:10:52 -08009072 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009073}
9074
9075cmd void vkCmdNextSubpass(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009076 VkCommandBuffer commandBuffer,
Jesse Hall65ab5522015-11-30 00:07:16 -08009077 VkSubpassContents contents) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009078 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009079}
9080
9081@threadSafety("app")
9082cmd void vkCmdEndRenderPass(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009083 VkCommandBuffer commandBuffer) {
9084 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009085
Jesse Hall3fbc8562015-11-29 22:10:52 -08009086 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009087}
9088
9089cmd void vkCmdExecuteCommands(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009090 VkCommandBuffer commandBuffer,
Jesse Hall3dd678a2016-01-08 21:52:01 -08009091 u32 commandBufferCount,
Jesse Hall3fbc8562015-11-29 22:10:52 -08009092 const VkCommandBuffer* pCommandBuffers) {
9093 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009094
Jesse Hall3dd678a2016-01-08 21:52:01 -08009095 commandBuffers := pCommandBuffers[0:commandBufferCount]
9096 for i in (0 .. commandBufferCount) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009097 secondaryCommandBuffer := commandBuffers[i]
9098 secondaryCommandBufferObject := GetCommandBuffer(secondaryCommandBuffer)
9099 assert(commandBufferObject.device == secondaryCommandBufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009100 }
9101}
9102
Ian Elliott28bd2c32017-10-13 09:21:12 -06009103//@vulkan1_1 functions
Daniel Koch09f7bf92017-10-05 00:26:58 -04009104
Ian Elliott28bd2c32017-10-13 09:21:12 -06009105@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009106cmd VkResult vkEnumerateInstanceVersion(
9107 u32* pApiVersion) {
9108 return ?
9109}
9110
Ian Elliott28bd2c32017-10-13 09:21:12 -06009111@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009112cmd VkResult vkBindBufferMemory2(
9113 VkDevice device,
9114 u32 bindInfoCount,
9115 const VkBindBufferMemoryInfo* pBindInfos) {
9116 return ?
9117}
9118
Ian Elliott28bd2c32017-10-13 09:21:12 -06009119@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009120cmd VkResult vkBindImageMemory2(
9121 VkDevice device,
9122 u32 bindInfoCount,
9123 const VkBindImageMemoryInfo* pBindInfos) {
9124 return ?
9125}
9126
Ian Elliott28bd2c32017-10-13 09:21:12 -06009127@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009128cmd void vkGetDeviceGroupPeerMemoryFeatures(
9129 VkDevice device,
9130 u32 heapIndex,
9131 u32 localDeviceIndex,
9132 u32 remoteDeviceIndex,
9133 VkPeerMemoryFeatureFlags* pPeerMemoryFeatures) {
9134}
9135
Ian Elliott28bd2c32017-10-13 09:21:12 -06009136@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009137cmd void vkCmdSetDeviceMask(
9138 VkCommandBuffer commandBuffer,
9139 u32 deviceMask) {
9140}
9141
Ian Elliott28bd2c32017-10-13 09:21:12 -06009142@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009143cmd void vkCmdDispatchBase(
9144 VkCommandBuffer commandBuffer,
9145 u32 baseGroupX,
9146 u32 baseGroupY,
9147 u32 baseGroupZ,
9148 u32 groupCountX,
9149 u32 groupCountY,
9150 u32 groupCountZ) {
9151}
9152
9153@threadSafety("system")
Ian Elliott28bd2c32017-10-13 09:21:12 -06009154@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009155cmd VkResult vkEnumeratePhysicalDeviceGroups(
9156 VkInstance instance,
9157 u32* pPhysicalDeviceGroupCount,
9158 VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties) {
9159 instanceObject := GetInstance(instance)
9160
9161 physicalDeviceGroupCount := as!u32(?)
9162 pPhysicalDeviceGroupCount[0] = physicalDeviceGroupCount
9163 physicalDevices := pPhysicalDeviceGroupProperties[0:physicalDeviceGroupCount]
9164
9165 for i in (0 .. physicalDeviceGroupCount) {
9166 physicalDevice := ?
9167 physicalDevices[i] = physicalDevice
9168 if !(physicalDevice in State.PhysicalDevices) {
9169 State.PhysicalDevices[physicalDevice] = new!PhysicalDeviceObject(instance: instance)
9170 }
9171 }
9172
9173 return ?
9174}
9175
Ian Elliott28bd2c32017-10-13 09:21:12 -06009176@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009177cmd void vkGetImageMemoryRequirements2(
9178 VkDevice device,
9179 const VkImageMemoryRequirementsInfo2* pInfo,
9180 VkMemoryRequirements2* pMemoryRequirements) {
9181}
9182
Ian Elliott28bd2c32017-10-13 09:21:12 -06009183@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009184cmd void vkGetBufferMemoryRequirements2(
9185 VkDevice device,
9186 const VkBufferMemoryRequirementsInfo2* pInfo,
9187 VkMemoryRequirements2* pMemoryRequirements) {
9188}
9189
Ian Elliott28bd2c32017-10-13 09:21:12 -06009190@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009191cmd void vkGetImageSparseMemoryRequirements2(
9192 VkDevice device,
9193 const VkImageSparseMemoryRequirementsInfo2* pInfo,
9194 u32* pSparseMemoryRequirementCount,
9195 VkSparseImageMemoryRequirements2* pSparseMemoryRequirements) {
9196}
9197
Ian Elliott28bd2c32017-10-13 09:21:12 -06009198@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009199cmd void vkGetPhysicalDeviceFeatures2(
9200 VkPhysicalDevice physicalDevice,
9201 VkPhysicalDeviceFeatures2* pFeatures) {
9202}
9203
Ian Elliott28bd2c32017-10-13 09:21:12 -06009204@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009205cmd void vkGetPhysicalDeviceProperties2(
9206 VkPhysicalDevice physicalDevice,
9207 VkPhysicalDeviceProperties2* pProperties) {
9208}
9209
Ian Elliott28bd2c32017-10-13 09:21:12 -06009210@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009211cmd void vkGetPhysicalDeviceFormatProperties2(
9212 VkPhysicalDevice physicalDevice,
9213 VkFormat format,
9214 VkFormatProperties2* pFormatProperties) {
9215}
9216
Ian Elliott28bd2c32017-10-13 09:21:12 -06009217@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009218cmd VkResult vkGetPhysicalDeviceImageFormatProperties2(
9219 VkPhysicalDevice physicalDevice,
9220 const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo,
9221 VkImageFormatProperties2* pImageFormatProperties) {
9222 return ?
9223}
9224
Ian Elliott28bd2c32017-10-13 09:21:12 -06009225@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009226cmd void vkGetPhysicalDeviceQueueFamilyProperties2(
9227 VkPhysicalDevice physicalDevice,
9228 u32* pQueueFamilyPropertyCount,
9229 VkQueueFamilyProperties2* pQueueFamilyProperties) {
9230}
9231
Ian Elliott28bd2c32017-10-13 09:21:12 -06009232@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009233cmd void vkGetPhysicalDeviceMemoryProperties2(
9234 VkPhysicalDevice physicalDevice,
9235 VkPhysicalDeviceMemoryProperties2* pMemoryProperties) {
9236}
9237
Ian Elliott28bd2c32017-10-13 09:21:12 -06009238@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009239cmd void vkGetPhysicalDeviceSparseImageFormatProperties2(
9240 VkPhysicalDevice physicalDevice,
9241 const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo,
9242 u32* pPropertyCount,
9243 VkSparseImageFormatProperties2* pProperties) {
9244}
9245
Ian Elliott28bd2c32017-10-13 09:21:12 -06009246@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009247cmd void vkTrimCommandPool(
9248 VkDevice device,
9249 VkCommandPool commandPool,
9250 VkCommandPoolTrimFlags flags) {
9251}
9252
9253
Ian Elliott28bd2c32017-10-13 09:21:12 -06009254@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009255cmd void vkGetDeviceQueue2(
9256 VkDevice device,
9257 const VkDeviceQueueInfo2* pQueueInfo,
9258 VkQueue* pQueue) {
9259 deviceObject := GetDevice(device)
9260
9261 queue := ?
9262 pQueue[0] = queue
9263
9264 if !(queue in State.Queues) {
9265 State.Queues[queue] = new!QueueObject(device: device)
9266 }
9267}
9268
Ian Elliott28bd2c32017-10-13 09:21:12 -06009269@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009270cmd VkResult vkCreateSamplerYcbcrConversion(
9271 VkDevice device,
9272 const VkSamplerYcbcrConversionCreateInfo* pCreateInfo,
9273 const VkAllocationCallbacks* pAllocator,
9274 VkSamplerYcbcrConversion* pYcbcrConversion) {
9275 return ?
9276}
9277
Ian Elliott28bd2c32017-10-13 09:21:12 -06009278@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009279cmd void vkDestroySamplerYcbcrConversion(
9280 VkDevice device,
9281 VkSamplerYcbcrConversion ycbcrConversion,
9282 const VkAllocationCallbacks* pAllocator) {
9283}
9284
Ian Elliott28bd2c32017-10-13 09:21:12 -06009285@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009286cmd VkResult vkCreateDescriptorUpdateTemplate(
9287 VkDevice device,
9288 const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo,
9289 const VkAllocationCallbacks* pAllocator,
9290 VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate) {
9291 return ?
9292}
9293
Ian Elliott28bd2c32017-10-13 09:21:12 -06009294@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009295cmd void vkDestroyDescriptorUpdateTemplate(
9296 VkDevice device,
9297 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
9298 const VkAllocationCallbacks* pAllocator) {
9299}
9300
Ian Elliott28bd2c32017-10-13 09:21:12 -06009301@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009302cmd void vkUpdateDescriptorSetWithTemplate(
9303 VkDevice device,
9304 VkDescriptorSet descriptorSet,
9305 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
9306 const void* pData) {
9307}
9308
Ian Elliott28bd2c32017-10-13 09:21:12 -06009309@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009310cmd void vkGetPhysicalDeviceExternalBufferProperties(
9311 VkPhysicalDevice physicalDevice,
9312 const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo,
9313 VkExternalBufferProperties* pExternalBufferProperties) {
9314}
9315
Ian Elliott28bd2c32017-10-13 09:21:12 -06009316@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009317cmd void vkGetPhysicalDeviceExternalFenceProperties(
9318 VkPhysicalDevice physicalDevice,
9319 const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo,
9320 VkExternalFenceProperties* pExternalFenceProperties) {
9321}
9322
Ian Elliott28bd2c32017-10-13 09:21:12 -06009323@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009324cmd void vkGetPhysicalDeviceExternalSemaphoreProperties(
9325 VkPhysicalDevice physicalDevice,
9326 const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo,
9327 VkExternalSemaphoreProperties* pExternalSemaphoreProperties) {
9328}
9329
Ian Elliott28bd2c32017-10-13 09:21:12 -06009330@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009331cmd void vkGetDescriptorSetLayoutSupport(
9332 VkDevice device,
9333 const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
9334 VkDescriptorSetLayoutSupport* pSupport) {
9335}
9336
9337
Jesse Hallad250842017-03-10 18:35:38 -08009338@extension("VK_KHR_surface") // 1
Jesse Hall1356b0d2015-11-23 17:24:58 -08009339cmd void vkDestroySurfaceKHR(
9340 VkInstance instance,
Jesse Hall0e74f002015-11-30 11:37:59 -08009341 VkSurfaceKHR surface,
9342 const VkAllocationCallbacks* pAllocator) {
Jesse Hall1356b0d2015-11-23 17:24:58 -08009343 instanceObject := GetInstance(instance)
9344 surfaceObject := GetSurface(surface)
9345 assert(surfaceObject.instance == instance)
Michael Lentine88594d72015-11-12 12:49:45 -08009346
Jesse Hall1356b0d2015-11-23 17:24:58 -08009347 State.Surfaces[surface] = null
Jesse Hall2818f932015-11-19 21:19:17 -08009348}
9349
Jesse Hallad250842017-03-10 18:35:38 -08009350@extension("VK_KHR_surface") // 1
Jesse Halla6429252015-11-29 18:59:42 -08009351cmd VkResult vkGetPhysicalDeviceSurfaceSupportKHR(
Jesse Hall1356b0d2015-11-23 17:24:58 -08009352 VkPhysicalDevice physicalDevice,
9353 u32 queueFamilyIndex,
Jesse Hall1356b0d2015-11-23 17:24:58 -08009354 VkSurfaceKHR surface,
Jesse Hallb00daad2015-11-29 19:46:20 -08009355 VkBool32* pSupported) {
9356 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
Michael Lentine88594d72015-11-12 12:49:45 -08009357
9358 return ?
9359}
9360
Jesse Hallad250842017-03-10 18:35:38 -08009361@extension("VK_KHR_surface") // 1
Jesse Hallb00daad2015-11-29 19:46:20 -08009362cmd VkResult vkGetPhysicalDeviceSurfaceCapabilitiesKHR(
9363 VkPhysicalDevice physicalDevice,
9364 VkSurfaceKHR surface,
9365 VkSurfaceCapabilitiesKHR* pSurfaceCapabilities) {
9366 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
9367
9368 surfaceCapabilities := ?
9369 pSurfaceCapabilities[0] = surfaceCapabilities
9370
9371 return ?
9372}
9373
Jesse Hallad250842017-03-10 18:35:38 -08009374@extension("VK_KHR_surface") // 1
Jesse Hallb00daad2015-11-29 19:46:20 -08009375cmd VkResult vkGetPhysicalDeviceSurfaceFormatsKHR(
9376 VkPhysicalDevice physicalDevice,
Jesse Hall1356b0d2015-11-23 17:24:58 -08009377 VkSurfaceKHR surface,
Jesse Hall03b6fe12015-11-24 12:44:21 -08009378 u32* pSurfaceFormatCount,
Jesse Hall1356b0d2015-11-23 17:24:58 -08009379 VkSurfaceFormatKHR* pSurfaceFormats) {
Jesse Hallb00daad2015-11-29 19:46:20 -08009380 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
Michael Lentine88594d72015-11-12 12:49:45 -08009381
9382 count := as!u32(?)
Jesse Hall03b6fe12015-11-24 12:44:21 -08009383 pSurfaceFormatCount[0] = count
Michael Lentine88594d72015-11-12 12:49:45 -08009384 surfaceFormats := pSurfaceFormats[0:count]
9385
9386 for i in (0 .. count) {
9387 surfaceFormat := ?
9388 surfaceFormats[i] = surfaceFormat
9389 }
9390
9391 return ?
9392}
9393
Jesse Hallad250842017-03-10 18:35:38 -08009394@extension("VK_KHR_surface") // 1
Jesse Hallb00daad2015-11-29 19:46:20 -08009395cmd VkResult vkGetPhysicalDeviceSurfacePresentModesKHR(
9396 VkPhysicalDevice physicalDevice,
Jesse Hall1356b0d2015-11-23 17:24:58 -08009397 VkSurfaceKHR surface,
Jesse Hall03b6fe12015-11-24 12:44:21 -08009398 u32* pPresentModeCount,
Jesse Hall1356b0d2015-11-23 17:24:58 -08009399 VkPresentModeKHR* pPresentModes) {
Jesse Hallb00daad2015-11-29 19:46:20 -08009400 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
Michael Lentine88594d72015-11-12 12:49:45 -08009401
9402 count := as!u32(?)
Jesse Hall03b6fe12015-11-24 12:44:21 -08009403 pPresentModeCount[0] = count
Michael Lentine88594d72015-11-12 12:49:45 -08009404 presentModes := pPresentModes[0:count]
9405
9406 for i in (0 .. count) {
9407 presentMode := ?
9408 presentModes[i] = presentMode
9409 }
9410
9411 return ?
9412}
9413
Jesse Hallad250842017-03-10 18:35:38 -08009414@extension("VK_KHR_swapchain") // 2
Michael Lentine88594d72015-11-12 12:49:45 -08009415cmd VkResult vkCreateSwapchainKHR(
9416 VkDevice device,
9417 const VkSwapchainCreateInfoKHR* pCreateInfo,
Jesse Hall0e74f002015-11-30 11:37:59 -08009418 const VkAllocationCallbacks* pAllocator,
Michael Lentine88594d72015-11-12 12:49:45 -08009419 VkSwapchainKHR* pSwapchain) {
Jesse Hall1356b0d2015-11-23 17:24:58 -08009420 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR)
Michael Lentine88594d72015-11-12 12:49:45 -08009421 deviceObject := GetDevice(device)
9422
9423 swapchain := ?
9424 pSwapchain[0] = swapchain
9425 State.Swapchains[swapchain] = new!SwapchainObject(device: device)
9426
9427 return ?
9428}
9429
Jesse Hallad250842017-03-10 18:35:38 -08009430@extension("VK_KHR_swapchain") // 2
Jesse Hall1356b0d2015-11-23 17:24:58 -08009431cmd void vkDestroySwapchainKHR(
Michael Lentine88594d72015-11-12 12:49:45 -08009432 VkDevice device,
Jesse Hall0e74f002015-11-30 11:37:59 -08009433 VkSwapchainKHR swapchain,
9434 const VkAllocationCallbacks* pAllocator) {
Michael Lentine88594d72015-11-12 12:49:45 -08009435 deviceObject := GetDevice(device)
9436 swapchainObject := GetSwapchain(swapchain)
9437 assert(swapchainObject.device == device)
9438
9439 State.Swapchains[swapchain] = null
Michael Lentine88594d72015-11-12 12:49:45 -08009440}
9441
Jesse Hallad250842017-03-10 18:35:38 -08009442@extension("VK_KHR_swapchain") // 2
Michael Lentine88594d72015-11-12 12:49:45 -08009443cmd VkResult vkGetSwapchainImagesKHR(
9444 VkDevice device,
9445 VkSwapchainKHR swapchain,
Jesse Hall03b6fe12015-11-24 12:44:21 -08009446 u32* pSwapchainImageCount,
Michael Lentine88594d72015-11-12 12:49:45 -08009447 VkImage* pSwapchainImages) {
9448 deviceObject := GetDevice(device)
9449
9450 count := as!u32(?)
Jesse Hall03b6fe12015-11-24 12:44:21 -08009451 pSwapchainImageCount[0] = count
Michael Lentine88594d72015-11-12 12:49:45 -08009452 swapchainImages := pSwapchainImages[0:count]
9453
9454 for i in (0 .. count) {
9455 swapchainImage := ?
9456 swapchainImages[i] = swapchainImage
Jesse Hall1356b0d2015-11-23 17:24:58 -08009457 State.Images[swapchainImage] = new!ImageObject(device: device)
Michael Lentine88594d72015-11-12 12:49:45 -08009458 }
9459
9460 return ?
9461}
9462
Jesse Hallad250842017-03-10 18:35:38 -08009463@extension("VK_KHR_swapchain") // 2
Michael Lentine88594d72015-11-12 12:49:45 -08009464cmd VkResult vkAcquireNextImageKHR(
9465 VkDevice device,
9466 VkSwapchainKHR swapchain,
9467 u64 timeout,
9468 VkSemaphore semaphore,
Jesse Hall1356b0d2015-11-23 17:24:58 -08009469 VkFence fence,
Michael Lentine88594d72015-11-12 12:49:45 -08009470 u32* pImageIndex) {
9471 deviceObject := GetDevice(device)
9472 swapchainObject := GetSwapchain(swapchain)
9473
9474 imageIndex := ?
9475 pImageIndex[0] = imageIndex
9476
9477 return ?
9478}
9479
Jesse Hallad250842017-03-10 18:35:38 -08009480@extension("VK_KHR_swapchain") // 2
Michael Lentine88594d72015-11-12 12:49:45 -08009481cmd VkResult vkQueuePresentKHR(
9482 VkQueue queue,
Jesse Hallf4ab2b12015-11-30 16:04:55 -08009483 const VkPresentInfoKHR* pPresentInfo) {
Michael Lentine88594d72015-11-12 12:49:45 -08009484 queueObject := GetQueue(queue)
9485
9486 presentInfo := ?
9487 pPresentInfo[0] = presentInfo
9488
9489 return ?
9490}
9491
Ian Elliott28bd2c32017-10-13 09:21:12 -06009492@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009493@extension("VK_KHR_swapchain") // 2
9494cmd VkResult vkGetDeviceGroupPresentCapabilitiesKHR(
9495 VkDevice device,
9496 VkDeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities) {
9497 return ?
9498}
9499
Ian Elliott28bd2c32017-10-13 09:21:12 -06009500@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009501@extension("VK_KHR_swapchain") // 2
9502cmd VkResult vkGetDeviceGroupSurfacePresentModesKHR(
9503 VkDevice device,
9504 VkSurfaceKHR surface,
9505 VkDeviceGroupPresentModeFlagsKHR* pModes) {
9506 return ?
9507}
9508
Ian Elliott28bd2c32017-10-13 09:21:12 -06009509@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009510@extension("VK_KHR_swapchain") // 2
9511cmd VkResult vkGetPhysicalDevicePresentRectanglesKHR(
9512 VkPhysicalDevice physicalDevice,
9513 VkSurfaceKHR surface,
9514 u32* pRectCount,
9515 VkRect2D* pRects) {
9516 return ?
9517}
9518
Ian Elliott28bd2c32017-10-13 09:21:12 -06009519@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009520@extension("VK_KHR_swapchain") // 2
9521cmd VkResult vkAcquireNextImage2KHR(
9522 VkDevice device,
9523 const VkAcquireNextImageInfoKHR* pAcquireInfo,
9524 u32* pImageIndex) {
9525 return ?
9526}
9527
Jesse Hallad250842017-03-10 18:35:38 -08009528@extension("VK_KHR_display") // 3
Jesse Hall1356b0d2015-11-23 17:24:58 -08009529cmd VkResult vkGetPhysicalDeviceDisplayPropertiesKHR(
9530 VkPhysicalDevice physicalDevice,
Jesse Hall03b6fe12015-11-24 12:44:21 -08009531 u32* pPropertyCount,
Jesse Hall1356b0d2015-11-23 17:24:58 -08009532 VkDisplayPropertiesKHR* pProperties) {
9533 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
9534 return ?
9535}
9536
Jesse Hallad250842017-03-10 18:35:38 -08009537@extension("VK_KHR_display") // 3
Jesse Halla6429252015-11-29 18:59:42 -08009538cmd VkResult vkGetPhysicalDeviceDisplayPlanePropertiesKHR(
9539 VkPhysicalDevice physicalDevice,
9540 u32* pPropertyCount,
9541 VkDisplayPlanePropertiesKHR* pProperties) {
9542 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
9543 return ?
9544}
9545
Jesse Hallad250842017-03-10 18:35:38 -08009546@extension("VK_KHR_display") // 3
Jesse Halla6429252015-11-29 18:59:42 -08009547cmd VkResult vkGetDisplayPlaneSupportedDisplaysKHR(
9548 VkPhysicalDevice physicalDevice,
Jesse Hall3dd678a2016-01-08 21:52:01 -08009549 u32 planeIndex,
Jesse Hallf4ab2b12015-11-30 16:04:55 -08009550 u32* pDisplayCount,
9551 VkDisplayKHR* pDisplays) {
Jesse Halla6429252015-11-29 18:59:42 -08009552 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
9553 return ?
9554}
9555
Jesse Hallad250842017-03-10 18:35:38 -08009556@extension("VK_KHR_display") // 3
Jesse Hall1356b0d2015-11-23 17:24:58 -08009557cmd VkResult vkGetDisplayModePropertiesKHR(
9558 VkPhysicalDevice physicalDevice,
9559 VkDisplayKHR display,
Jesse Hall03b6fe12015-11-24 12:44:21 -08009560 u32* pPropertyCount,
9561 VkDisplayModePropertiesKHR* pProperties) {
Jesse Hall1356b0d2015-11-23 17:24:58 -08009562 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
9563 return ?
9564}
9565
Jesse Hallad250842017-03-10 18:35:38 -08009566@extension("VK_KHR_display") // 3
Jesse Hall1356b0d2015-11-23 17:24:58 -08009567cmd VkResult vkCreateDisplayModeKHR(
9568 VkPhysicalDevice physicalDevice,
9569 VkDisplayKHR display,
9570 const VkDisplayModeCreateInfoKHR* pCreateInfo,
Jesse Hall0e74f002015-11-30 11:37:59 -08009571 const VkAllocationCallbacks* pAllocator,
Jesse Hall1356b0d2015-11-23 17:24:58 -08009572 VkDisplayModeKHR* pMode) {
9573 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
9574 return ?
9575}
9576
Jesse Hallad250842017-03-10 18:35:38 -08009577@extension("VK_KHR_display") // 3
Jesse Halla6429252015-11-29 18:59:42 -08009578cmd VkResult vkGetDisplayPlaneCapabilitiesKHR(
Jesse Hall1356b0d2015-11-23 17:24:58 -08009579 VkPhysicalDevice physicalDevice,
Jesse Hall9ba8bc82015-11-30 16:22:16 -08009580 VkDisplayModeKHR mode,
Jesse Hall1356b0d2015-11-23 17:24:58 -08009581 u32 planeIndex,
Jesse Halla6429252015-11-29 18:59:42 -08009582 VkDisplayPlaneCapabilitiesKHR* pCapabilities) {
Jesse Hall1356b0d2015-11-23 17:24:58 -08009583 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
9584 return ?
9585}
9586
Jesse Hallad250842017-03-10 18:35:38 -08009587@extension("VK_KHR_display") // 3
Jesse Halla6429252015-11-29 18:59:42 -08009588cmd VkResult vkCreateDisplayPlaneSurfaceKHR(
9589 VkInstance instance,
9590 const VkDisplaySurfaceCreateInfoKHR* pCreateInfo,
Jesse Hall0e74f002015-11-30 11:37:59 -08009591 const VkAllocationCallbacks* pAllocator,
Jesse Halla6429252015-11-29 18:59:42 -08009592 VkSurfaceKHR* pSurface) {
9593 return ?
9594}
9595
Jesse Hallad250842017-03-10 18:35:38 -08009596@extension("VK_KHR_display_swapchain") // 4
Jesse Hall9ba8bc82015-11-30 16:22:16 -08009597cmd VkResult vkCreateSharedSwapchainsKHR(
9598 VkDevice device,
9599 u32 swapchainCount,
9600 const VkSwapchainCreateInfoKHR* pCreateInfos,
9601 const VkAllocationCallbacks* pAllocator,
9602 VkSwapchainKHR* pSwapchains) {
9603 return ?
9604}
9605
Jesse Hallad250842017-03-10 18:35:38 -08009606@extension("VK_KHR_xlib_surface") // 5
Jesse Halla6429252015-11-29 18:59:42 -08009607cmd VkResult vkCreateXlibSurfaceKHR(
Jesse Hall1356b0d2015-11-23 17:24:58 -08009608 VkInstance instance,
Jesse Hallf9fa9a52016-01-08 16:08:51 -08009609 const VkXlibSurfaceCreateInfoKHR* pCreateInfo,
Jesse Hall0e74f002015-11-30 11:37:59 -08009610 const VkAllocationCallbacks* pAllocator,
Jesse Hall1356b0d2015-11-23 17:24:58 -08009611 VkSurfaceKHR* pSurface) {
9612 instanceObject := GetInstance(instance)
9613 return ?
9614}
9615
Jesse Hallad250842017-03-10 18:35:38 -08009616@extension("VK_KHR_xlib_surface") // 5
Jesse Halla6429252015-11-29 18:59:42 -08009617cmd VkBool32 vkGetPhysicalDeviceXlibPresentationSupportKHR(
9618 VkPhysicalDevice physicalDevice,
9619 u32 queueFamilyIndex,
9620 platform.Display* dpy,
Jesse Hall65ab5522015-11-30 00:07:16 -08009621 platform.VisualID visualID) {
Jesse Halla6429252015-11-29 18:59:42 -08009622 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
9623 return ?
9624}
9625
Jesse Hallad250842017-03-10 18:35:38 -08009626@extension("VK_KHR_xcb_surface") // 6
Jesse Hallf9fa9a52016-01-08 16:08:51 -08009627cmd VkResult vkCreateXcbSurfaceKHR(
Jesse Hall1356b0d2015-11-23 17:24:58 -08009628 VkInstance instance,
Jesse Hallf9fa9a52016-01-08 16:08:51 -08009629 const VkXcbSurfaceCreateInfoKHR* pCreateInfo,
Jesse Hall0e74f002015-11-30 11:37:59 -08009630 const VkAllocationCallbacks* pAllocator,
Jesse Hall1356b0d2015-11-23 17:24:58 -08009631 VkSurfaceKHR* pSurface) {
9632 instanceObject := GetInstance(instance)
9633 return ?
9634}
9635
Jesse Hallad250842017-03-10 18:35:38 -08009636@extension("VK_KHR_xcb_surface") // 6
Jesse Halla6429252015-11-29 18:59:42 -08009637cmd VkBool32 vkGetPhysicalDeviceXcbPresentationSupportKHR(
9638 VkPhysicalDevice physicalDevice,
9639 u32 queueFamilyIndex,
9640 platform.xcb_connection_t* connection,
9641 platform.xcb_visualid_t visual_id) {
9642 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
9643 return ?
9644}
9645
Jesse Hallad250842017-03-10 18:35:38 -08009646@extension("VK_KHR_wayland_surface") // 7
Jesse Hall1356b0d2015-11-23 17:24:58 -08009647cmd VkResult vkCreateWaylandSurfaceKHR(
9648 VkInstance instance,
Jesse Hallf9fa9a52016-01-08 16:08:51 -08009649 const VkWaylandSurfaceCreateInfoKHR* pCreateInfo,
Jesse Hall0e74f002015-11-30 11:37:59 -08009650 const VkAllocationCallbacks* pAllocator,
Jesse Hall1356b0d2015-11-23 17:24:58 -08009651 VkSurfaceKHR* pSurface) {
9652 instanceObject := GetInstance(instance)
9653 return ?
9654}
9655
Jesse Hallad250842017-03-10 18:35:38 -08009656@extension("VK_KHR_wayland_surface") // 7
Jesse Halla6429252015-11-29 18:59:42 -08009657cmd VkBool32 vkGetPhysicalDeviceWaylandPresentationSupportKHR(
9658 VkPhysicalDevice physicalDevice,
9659 u32 queueFamilyIndex,
9660 platform.wl_display* display) {
9661 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
9662 return ?
9663}
9664
Jesse Hallad250842017-03-10 18:35:38 -08009665@extension("VK_KHR_mir_surface") // 8
Jesse Hall1356b0d2015-11-23 17:24:58 -08009666cmd VkResult vkCreateMirSurfaceKHR(
9667 VkInstance instance,
Jesse Hallf9fa9a52016-01-08 16:08:51 -08009668 const VkMirSurfaceCreateInfoKHR* pCreateInfo,
Jesse Hall0e74f002015-11-30 11:37:59 -08009669 const VkAllocationCallbacks* pAllocator,
Jesse Hall1356b0d2015-11-23 17:24:58 -08009670 VkSurfaceKHR* pSurface) {
9671 instanceObject := GetInstance(instance)
9672 return ?
9673}
9674
Jesse Hallad250842017-03-10 18:35:38 -08009675@extension("VK_KHR_mir_surface") // 8
Jesse Halla6429252015-11-29 18:59:42 -08009676cmd VkBool32 vkGetPhysicalDeviceMirPresentationSupportKHR(
9677 VkPhysicalDevice physicalDevice,
9678 u32 queueFamilyIndex,
9679 platform.MirConnection* connection) {
9680 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
9681 return ?
9682}
9683
Jesse Hallad250842017-03-10 18:35:38 -08009684@extension("VK_KHR_android_surface") // 9
Jesse Hall1356b0d2015-11-23 17:24:58 -08009685cmd VkResult vkCreateAndroidSurfaceKHR(
9686 VkInstance instance,
Jesse Hallf9fa9a52016-01-08 16:08:51 -08009687 const VkAndroidSurfaceCreateInfoKHR* pCreateInfo,
Jesse Hall0e74f002015-11-30 11:37:59 -08009688 const VkAllocationCallbacks* pAllocator,
Jesse Hall1356b0d2015-11-23 17:24:58 -08009689 VkSurfaceKHR* pSurface) {
9690 instanceObject := GetInstance(instance)
9691 return ?
9692}
9693
Jesse Hallad250842017-03-10 18:35:38 -08009694@extension("VK_KHR_win32_surface") // 10
Jesse Hall1356b0d2015-11-23 17:24:58 -08009695cmd VkResult vkCreateWin32SurfaceKHR(
9696 VkInstance instance,
Jesse Hallf9fa9a52016-01-08 16:08:51 -08009697 const VkWin32SurfaceCreateInfoKHR* pCreateInfo,
Jesse Hall0e74f002015-11-30 11:37:59 -08009698 const VkAllocationCallbacks* pAllocator,
Jesse Hall1356b0d2015-11-23 17:24:58 -08009699 VkSurfaceKHR* pSurface) {
9700 instanceObject := GetInstance(instance)
9701 return ?
9702}
9703
Jesse Hallad250842017-03-10 18:35:38 -08009704@extension("VK_KHR_win32_surface") // 10
Jesse Halla6429252015-11-29 18:59:42 -08009705cmd VkResult vkGetPhysicalDeviceWin32PresentationSupportKHR(
9706 VkPhysicalDevice physicalDevice,
9707 u32 queueFamilyIndex) {
Jesse Halle2948d82016-02-25 04:19:32 -08009708 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
Jesse Halla6429252015-11-29 18:59:42 -08009709 return ?
9710}
9711
Jesse Hallad250842017-03-10 18:35:38 -08009712@extension("VK_ANDROID_native_buffer") // 11
Jesse Halld1abd742017-02-09 21:45:51 -08009713@optional
Chia-I Wub262ddc2016-03-22 07:38:20 +08009714cmd VkResult vkGetSwapchainGrallocUsageANDROID(
9715 VkDevice device,
9716 VkFormat format,
9717 VkImageUsageFlags imageUsage,
Jesse Halld1abd742017-02-09 21:45:51 -08009718 s32* grallocUsage) {
Chia-I Wub262ddc2016-03-22 07:38:20 +08009719 return ?
9720}
9721
Jesse Hallad250842017-03-10 18:35:38 -08009722@extension("VK_ANDROID_native_buffer") // 11
Jesse Halld1abd742017-02-09 21:45:51 -08009723@optional
Chris Forbes8e4438b2016-12-07 16:26:49 +13009724cmd VkResult vkGetSwapchainGrallocUsage2ANDROID(
9725 VkDevice device,
9726 VkFormat format,
9727 VkImageUsageFlags imageUsage,
9728 VkSwapchainImageUsageFlagsANDROID swapchainImageUsage,
Jesse Halld1abd742017-02-09 21:45:51 -08009729 u64* grallocConsumerUsage,
9730 u64* grallocProducerUsage) {
Chris Forbes8e4438b2016-12-07 16:26:49 +13009731 return ?
9732}
9733
Jesse Hallad250842017-03-10 18:35:38 -08009734@extension("VK_ANDROID_native_buffer") // 11
Chia-I Wub262ddc2016-03-22 07:38:20 +08009735cmd VkResult vkAcquireImageANDROID(
9736 VkDevice device,
9737 VkImage image,
9738 int nativeFenceFd,
9739 VkSemaphore semaphore,
9740 VkFence fence) {
9741 return ?
9742}
9743
Jesse Hallad250842017-03-10 18:35:38 -08009744@extension("VK_ANDROID_native_buffer") // 11
Chia-I Wub262ddc2016-03-22 07:38:20 +08009745cmd VkResult vkQueueSignalReleaseImageANDROID(
9746 VkQueue queue,
9747 u32 waitSemaphoreCount,
9748 const VkSemaphore* pWaitSemaphores,
9749 VkImage image,
9750 int* pNativeFenceFd) {
9751 return ?
9752}
9753
Jesse Hallad250842017-03-10 18:35:38 -08009754@extension("VK_EXT_debug_report") // 12
9755@external type void* PFN_vkDebugReportCallbackEXT
9756@extension("VK_EXT_debug_report") // 12
9757@pfn cmd VkBool32 vkDebugReportCallbackEXT(
9758 VkDebugReportFlagsEXT flags,
9759 VkDebugReportObjectTypeEXT objectType,
9760 u64 object,
9761 platform.size_t location,
9762 s32 messageCode,
9763 const char* pLayerPrefix,
9764 const char* pMessage,
9765 void* pUserData) {
9766 return ?
9767}
9768
9769@extension("VK_EXT_debug_report") // 12
9770cmd VkResult vkCreateDebugReportCallbackEXT(
9771 VkInstance instance,
9772 const VkDebugReportCallbackCreateInfoEXT* pCreateInfo,
9773 const VkAllocationCallbacks* pAllocator,
9774 VkDebugReportCallbackEXT* pCallback) {
9775 return ?
9776}
9777
9778@extension("VK_EXT_debug_report") // 12
9779cmd void vkDestroyDebugReportCallbackEXT(
9780 VkInstance instance,
9781 VkDebugReportCallbackEXT callback,
9782 const VkAllocationCallbacks* pAllocator) {
9783}
9784
9785@extension("VK_EXT_debug_report") // 12
9786cmd void vkDebugReportMessageEXT(
9787 VkInstance instance,
9788 VkDebugReportFlagsEXT flags,
9789 VkDebugReportObjectTypeEXT objectType,
9790 u64 object,
9791 platform.size_t location,
9792 s32 messageCode,
9793 const char* pLayerPrefix,
9794 const char* pMessage) {
9795}
9796
9797@extension("VK_EXT_debug_marker") // 23
9798cmd VkResult vkDebugMarkerSetObjectTagEXT(
9799 VkDevice device,
Jesse Hall77726222017-09-19 14:49:27 -05009800 const VkDebugMarkerObjectTagInfoEXT* pTagInfo) {
Jesse Hallad250842017-03-10 18:35:38 -08009801 return ?
9802}
9803
9804@extension("VK_EXT_debug_marker") // 23
9805cmd VkResult vkDebugMarkerSetObjectNameEXT(
9806 VkDevice device,
Jesse Hall77726222017-09-19 14:49:27 -05009807 const VkDebugMarkerObjectNameInfoEXT* pNameInfo) {
Jesse Hallad250842017-03-10 18:35:38 -08009808 return ?
9809}
9810
9811@extension("VK_EXT_debug_marker") // 23
9812cmd void vkCmdDebugMarkerBeginEXT(
9813 VkCommandBuffer commandBuffer,
Jesse Hall77726222017-09-19 14:49:27 -05009814 const VkDebugMarkerMarkerInfoEXT* pMarkerInfo) {
Jesse Hallad250842017-03-10 18:35:38 -08009815}
9816
9817@extension("VK_EXT_debug_marker") // 23
9818cmd void vkCmdDebugMarkerEndEXT(
9819 VkCommandBuffer commandBuffer) {
9820}
9821
9822@extension("VK_EXT_debug_marker") // 23
9823cmd void vkCmdDebugMarkerInsertEXT(
9824 VkCommandBuffer commandBuffer,
Jesse Hall77726222017-09-19 14:49:27 -05009825 const VkDebugMarkerMarkerInfoEXT* pMarkerInfo) {
Jesse Hallad250842017-03-10 18:35:38 -08009826}
9827
9828@extension("VK_AMD_draw_indirect_count") // 34
9829cmd void vkCmdDrawIndirectCountAMD(
9830 VkCommandBuffer commandBuffer,
9831 VkBuffer buffer,
9832 VkDeviceSize offset,
9833 VkBuffer countBuffer,
9834 VkDeviceSize countBufferOffset,
9835 u32 maxDrawCount,
9836 u32 stride) {
9837}
9838
9839@extension("VK_AMD_draw_indirect_count") // 34
9840cmd void vkCmdDrawIndexedIndirectCountAMD(
9841 VkCommandBuffer commandBuffer,
9842 VkBuffer buffer,
9843 VkDeviceSize offset,
9844 VkBuffer countBuffer,
9845 VkDeviceSize countBufferOffset,
9846 u32 maxDrawCount,
9847 u32 stride) {
9848}
9849
Jesse Hall8c954d32018-01-17 22:06:20 -08009850@extension("VK_AMD_shader_info") // 43
9851cmd VkResult vkGetShaderInfoAMD(
9852 VkDevice device,
9853 VkPipeline pipeline,
9854 VkShaderStageFlagBits shaderStage,
9855 VkShaderInfoTypeAMD infoType,
9856 platform.size_t* pInfoSize,
9857 void* pInfo) {
9858 return ?
9859}
9860
Jesse Hallad250842017-03-10 18:35:38 -08009861@extension("VK_NV_external_memory_capabilities") // 56
9862cmd VkResult vkGetPhysicalDeviceExternalImageFormatPropertiesNV(
9863 VkPhysicalDevice physicalDevice,
9864 VkFormat format,
9865 VkImageType type,
9866 VkImageTiling tiling,
9867 VkImageUsageFlags usage,
9868 VkImageCreateFlags flags,
9869 VkExternalMemoryHandleTypeFlagsNV externalHandleType,
9870 VkExternalImageFormatPropertiesNV* pExternalImageFormatProperties) {
9871 return ?
9872}
9873
9874@extension("VK_NV_external_memory_win32") // 58
9875cmd VkResult vkGetMemoryWin32HandleNV(
9876 VkDevice device,
9877 VkDeviceMemory memory,
9878 VkExternalMemoryHandleTypeFlagsNV handleType,
9879 platform.HANDLE* pHandle) {
9880 return ?
9881}
9882
9883@extension("VK_KHR_get_physical_device_properties2") // 60
9884cmd void vkGetPhysicalDeviceFeatures2KHR(
9885 VkPhysicalDevice physicalDevice,
9886 VkPhysicalDeviceFeatures2KHR* pFeatures) {
9887}
9888
9889@extension("VK_KHR_get_physical_device_properties2") // 60
9890cmd void vkGetPhysicalDeviceProperties2KHR(
9891 VkPhysicalDevice physicalDevice,
9892 VkPhysicalDeviceProperties2KHR* pProperties) {
9893}
9894
9895@extension("VK_KHR_get_physical_device_properties2") // 60
9896cmd void vkGetPhysicalDeviceFormatProperties2KHR(
9897 VkPhysicalDevice physicalDevice,
9898 VkFormat format,
9899 VkFormatProperties2KHR* pFormatProperties) {
9900}
9901
9902@extension("VK_KHR_get_physical_device_properties2") // 60
9903cmd VkResult vkGetPhysicalDeviceImageFormatProperties2KHR(
9904 VkPhysicalDevice physicalDevice,
9905 const VkPhysicalDeviceImageFormatInfo2KHR* pImageFormatInfo,
9906 VkImageFormatProperties2KHR* pImageFormatProperties) {
9907 return ?
9908}
9909
9910@extension("VK_KHR_get_physical_device_properties2") // 60
9911cmd void vkGetPhysicalDeviceQueueFamilyProperties2KHR(
9912 VkPhysicalDevice physicalDevice,
9913 u32* pQueueFamilyPropertyCount,
9914 VkQueueFamilyProperties2KHR* pQueueFamilyProperties) {
9915}
9916
9917@extension("VK_KHR_get_physical_device_properties2") // 60
9918cmd void vkGetPhysicalDeviceMemoryProperties2KHR(
9919 VkPhysicalDevice physicalDevice,
9920 VkPhysicalDeviceMemoryProperties2KHR* pMemoryProperties) {
9921}
9922
9923@extension("VK_KHR_get_physical_device_properties2") // 60
9924cmd void vkGetPhysicalDeviceSparseImageFormatProperties2KHR(
9925 VkPhysicalDevice physicalDevice,
9926 const VkPhysicalDeviceSparseImageFormatInfo2KHR* pFormatInfo,
9927 u32* pPropertyCount,
9928 VkSparseImageFormatProperties2KHR* pProperties) {
9929}
9930
Daniel Koch09f7bf92017-10-05 00:26:58 -04009931@extension("VK_KHR_device_group") // 61
9932cmd void vkGetDeviceGroupPeerMemoryFeaturesKHR(
Jesse Hallad250842017-03-10 18:35:38 -08009933 VkDevice device,
9934 u32 heapIndex,
9935 u32 localDeviceIndex,
9936 u32 remoteDeviceIndex,
Daniel Koch09f7bf92017-10-05 00:26:58 -04009937 VkPeerMemoryFeatureFlagsKHR* pPeerMemoryFeatures) {
Jesse Hallad250842017-03-10 18:35:38 -08009938}
9939
Daniel Koch09f7bf92017-10-05 00:26:58 -04009940@extension("VK_KHR_device_group") // 61
9941cmd void vkCmdSetDeviceMaskKHR(
Jesse Hallad250842017-03-10 18:35:38 -08009942 VkCommandBuffer commandBuffer,
9943 u32 deviceMask) {
9944}
9945
Jesse Hallad250842017-03-10 18:35:38 -08009946
Daniel Koch09f7bf92017-10-05 00:26:58 -04009947@extension("VK_KHR_device_group") // 61
9948cmd void vkCmdDispatchBaseKHR(
Jesse Hallad250842017-03-10 18:35:38 -08009949 VkCommandBuffer commandBuffer,
9950 u32 baseGroupX,
9951 u32 baseGroupY,
9952 u32 baseGroupZ,
9953 u32 groupCountX,
9954 u32 groupCountY,
9955 u32 groupCountZ) {
9956}
9957
Jesse Hallad250842017-03-10 18:35:38 -08009958@extension("VK_NN_vi_surface") // 63
9959cmd VkResult vkCreateViSurfaceNN(
9960 VkInstance instance,
9961 const VkViSurfaceCreateInfoNN* pCreateInfo,
9962 const VkAllocationCallbacks* pAllocator,
9963 VkSurfaceKHR* pSurface) {
9964 return ?
9965}
9966
9967@extension("VK_KHR_maintenance1") // 70
9968cmd void vkTrimCommandPoolKHR(
9969 VkDevice device,
9970 VkCommandPool commandPool,
9971 VkCommandPoolTrimFlagsKHR flags) {
9972}
9973
Daniel Koch09f7bf92017-10-05 00:26:58 -04009974@extension("VK_KHR_device_group_creation") // 71
9975@threadSafety("system")
9976cmd VkResult vkEnumeratePhysicalDeviceGroupsKHR(
Jesse Hallad250842017-03-10 18:35:38 -08009977 VkInstance instance,
9978 u32* pPhysicalDeviceGroupCount,
Daniel Koch09f7bf92017-10-05 00:26:58 -04009979 VkPhysicalDeviceGroupPropertiesKHR* pPhysicalDeviceGroupProperties) {
9980 instanceObject := GetInstance(instance)
9981
9982 physicalDeviceGroupCount := as!u32(?)
9983 pPhysicalDeviceGroupCount[0] = physicalDeviceGroupCount
9984 physicalDevices := pPhysicalDeviceGroupProperties[0:physicalDeviceGroupCount]
9985
9986 for i in (0 .. physicalDeviceGroupCount) {
9987 physicalDevice := ?
9988 physicalDevices[i] = physicalDevice
9989 if !(physicalDevice in State.PhysicalDevices) {
9990 State.PhysicalDevices[physicalDevice] = new!PhysicalDeviceObject(instance: instance)
9991 }
9992 }
9993
Jesse Hallad250842017-03-10 18:35:38 -08009994 return ?
9995}
9996
Jesse Hall9492f992017-08-28 12:10:06 -07009997@extension("VK_KHR_external_memory_capabilities") // 72
9998cmd void vkGetPhysicalDeviceExternalBufferPropertiesKHR(
Jesse Hallad250842017-03-10 18:35:38 -08009999 VkPhysicalDevice physicalDevice,
Jesse Hall9492f992017-08-28 12:10:06 -070010000 const VkPhysicalDeviceExternalBufferInfoKHR* pExternalBufferInfo,
10001 VkExternalBufferPropertiesKHR* pExternalBufferProperties) {
Jesse Hallad250842017-03-10 18:35:38 -080010002}
10003
Jesse Hall9492f992017-08-28 12:10:06 -070010004@extension("VK_KHR_external_memory_win32") // 74
10005cmd VkResult vkGetMemoryWin32HandleKHR(
Jesse Hallad250842017-03-10 18:35:38 -080010006 VkDevice device,
Jesse Hall9492f992017-08-28 12:10:06 -070010007 const VkMemoryGetWin32HandleInfoKHR* pGetWin32HandleInfo,
Jesse Hallad250842017-03-10 18:35:38 -080010008 platform.HANDLE* pHandle) {
10009 return ?
10010}
10011
Jesse Hall9492f992017-08-28 12:10:06 -070010012@extension("VK_KHR_external_memory_win32") // 74
10013cmd VkResult vkGetMemoryWin32HandlePropertiesKHR(
Jesse Hallad250842017-03-10 18:35:38 -080010014 VkDevice device,
Jesse Hall9492f992017-08-28 12:10:06 -070010015 VkExternalMemoryHandleTypeFlagBitsKHR handleType,
Jesse Hallad250842017-03-10 18:35:38 -080010016 platform.HANDLE handle,
Jesse Hall9492f992017-08-28 12:10:06 -070010017 VkMemoryWin32HandlePropertiesKHR* pMemoryWin32HandleProperties) {
Jesse Hallad250842017-03-10 18:35:38 -080010018 return ?
10019}
10020
Jesse Hall9492f992017-08-28 12:10:06 -070010021@extension("VK_KHR_external_memory_fd") // 75
10022cmd VkResult vkGetMemoryFdKHR(
Jesse Hallad250842017-03-10 18:35:38 -080010023 VkDevice device,
Jesse Hall9492f992017-08-28 12:10:06 -070010024 const VkMemoryGetFdInfoKHR* pGetFdInfo,
Jesse Hallad250842017-03-10 18:35:38 -080010025 s32* pFd) {
10026 return ?
10027}
10028
Jesse Hall9492f992017-08-28 12:10:06 -070010029@extension("VK_KHR_external_memory_fd") // 75
10030cmd VkResult vkGetMemoryFdPropertiesKHR(
Jesse Hallad250842017-03-10 18:35:38 -080010031 VkDevice device,
Jesse Hall9492f992017-08-28 12:10:06 -070010032 VkExternalMemoryHandleTypeFlagBitsKHR handleType,
Jesse Hallad250842017-03-10 18:35:38 -080010033 s32 fd,
Jesse Hall9492f992017-08-28 12:10:06 -070010034 VkMemoryFdPropertiesKHR* pMemoryFdProperties) {
Jesse Hallad250842017-03-10 18:35:38 -080010035 return ?
10036}
10037
Jesse Hall9492f992017-08-28 12:10:06 -070010038@extension("VK_KHR_external_semaphore_capabilities") // 77
10039cmd void vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(
Jesse Hallad250842017-03-10 18:35:38 -080010040 VkPhysicalDevice physicalDevice,
Jesse Hall9492f992017-08-28 12:10:06 -070010041 const VkPhysicalDeviceExternalSemaphoreInfoKHR* pExternalSemaphoreInfo,
10042 VkExternalSemaphorePropertiesKHR* pExternalSemaphoreProperties) {
Jesse Hallad250842017-03-10 18:35:38 -080010043}
10044
Jesse Hall9492f992017-08-28 12:10:06 -070010045@extension("VK_KHR_external_semaphore_win32") // 79
10046cmd VkResult vkImportSemaphoreWin32HandleKHR(
Jesse Hallad250842017-03-10 18:35:38 -080010047 VkDevice device,
Jesse Hall9492f992017-08-28 12:10:06 -070010048 const VkImportSemaphoreWin32HandleInfoKHR* pImportSemaphoreWin32HandleInfo) {
Jesse Hallad250842017-03-10 18:35:38 -080010049 return ?
10050}
10051
Jesse Hall9492f992017-08-28 12:10:06 -070010052@extension("VK_KHR_external_semaphore_win32") // 79
10053cmd VkResult vkGetSemaphoreWin32HandleKHR(
Jesse Hallad250842017-03-10 18:35:38 -080010054 VkDevice device,
Jesse Hall9492f992017-08-28 12:10:06 -070010055 const VkSemaphoreGetWin32HandleInfoKHR* pGetWin32HandleInfo,
Jesse Hallad250842017-03-10 18:35:38 -080010056 platform.HANDLE* pHandle) {
10057 return ?
10058}
10059
Jesse Hall9492f992017-08-28 12:10:06 -070010060@extension("VK_KHR_external_semaphore_fd") // 80
10061cmd VkResult vkImportSemaphoreFdKHR(
Jesse Hallad250842017-03-10 18:35:38 -080010062 VkDevice device,
Jesse Hall9492f992017-08-28 12:10:06 -070010063 const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo) {
Jesse Hallad250842017-03-10 18:35:38 -080010064 return ?
10065}
10066
Jesse Hall9492f992017-08-28 12:10:06 -070010067@extension("VK_KHR_external_semaphore_fd") // 80
10068cmd VkResult vkGetSemaphoreFdKHR(
Jesse Hallad250842017-03-10 18:35:38 -080010069 VkDevice device,
Jesse Hall9492f992017-08-28 12:10:06 -070010070 const VkSemaphoreGetFdInfoKHR* pGetFdInfo,
Jesse Hallad250842017-03-10 18:35:38 -080010071 s32* pFd) {
10072 return ?
10073}
10074
10075@extension("VK_KHR_push_descriptor") // 81
10076cmd void vkCmdPushDescriptorSetKHR(
10077 VkCommandBuffer commandBuffer,
10078 VkPipelineBindPoint pipelineBindPoint,
10079 VkPipelineLayout layout,
10080 u32 set,
10081 u32 descriptorWriteCount,
10082 const VkWriteDescriptorSet* pDescriptorWrites) {
10083}
10084
Jesse Halla13a3cf2018-07-09 15:51:52 -070010085@extension("VK_EXT_conditional_rendering") // 82
10086cmd void vkCmdBeginConditionalRenderingEXT(
10087 VkCommandBuffer commandBuffer,
10088 const VkConditionalRenderingBeginInfoEXT* pConditionalRenderingBegin) {
10089}
10090
10091@extension("VK_EXT_conditional_rendering") // 82
10092cmd void vkCmdEndConditionalRenderingEXT(
10093 VkCommandBuffer commandBuffer) {
10094}
10095
Jesse Hallad250842017-03-10 18:35:38 -080010096@extension("VK_KHR_descriptor_update_template") // 86
10097cmd VkResult vkCreateDescriptorUpdateTemplateKHR(
10098 VkDevice device,
10099 const VkDescriptorUpdateTemplateCreateInfoKHR* pCreateInfo,
10100 const VkAllocationCallbacks* pAllocator,
10101 VkDescriptorUpdateTemplateKHR* pDescriptorUpdateTemplate) {
10102 return ?
10103}
10104
10105@extension("VK_KHR_descriptor_update_template") // 86
10106cmd void vkDestroyDescriptorUpdateTemplateKHR(
10107 VkDevice device,
10108 VkDescriptorUpdateTemplateKHR descriptorUpdateTemplate,
10109 const VkAllocationCallbacks* pAllocator) {
10110}
10111
10112@extension("VK_KHR_descriptor_update_template") // 86
10113cmd void vkUpdateDescriptorSetWithTemplateKHR(
10114 VkDevice device,
10115 VkDescriptorSet descriptorSet,
10116 VkDescriptorUpdateTemplateKHR descriptorUpdateTemplate,
10117 const void* pData) {
10118}
10119
10120@extension("VK_KHR_descriptor_update_template") // 86
10121cmd void vkCmdPushDescriptorSetWithTemplateKHR(
10122 VkCommandBuffer commandBuffer,
10123 VkDescriptorUpdateTemplateKHR descriptorUpdateTemplate,
10124 VkPipelineLayout layout,
10125 u32 set,
10126 const void* pData) {
10127}
10128
10129@extension("VK_NVX_device_generated_commands") // 87
10130cmd void vkCmdProcessCommandsNVX(
10131 VkCommandBuffer commandBuffer,
10132 const VkCmdProcessCommandsInfoNVX* pProcessCommandsInfo) {
10133}
10134
10135@extension("VK_NVX_device_generated_commands") // 87
10136cmd void vkCmdReserveSpaceForCommandsNVX(
10137 VkCommandBuffer commandBuffer,
10138 const VkCmdReserveSpaceForCommandsInfoNVX* pReserveSpaceInfo) {
10139}
10140
10141@extension("VK_NVX_device_generated_commands") // 87
10142cmd VkResult vkCreateIndirectCommandsLayoutNVX(
10143 VkDevice device,
10144 const VkIndirectCommandsLayoutCreateInfoNVX* pCreateInfo,
10145 const VkAllocationCallbacks* pAllocator,
10146 VkIndirectCommandsLayoutNVX* pIndirectCommandsLayout) {
10147 return ?
10148}
10149
10150@extension("VK_NVX_device_generated_commands") // 87
10151cmd void vkDestroyIndirectCommandsLayoutNVX(
10152 VkDevice device,
10153 VkIndirectCommandsLayoutNVX indirectCommandsLayout,
10154 const VkAllocationCallbacks* pAllocator) {
10155}
10156
10157@extension("VK_NVX_device_generated_commands") // 87
10158cmd VkResult vkCreateObjectTableNVX(
10159 VkDevice device,
10160 const VkObjectTableCreateInfoNVX* pCreateInfo,
10161 const VkAllocationCallbacks* pAllocator,
10162 VkObjectTableNVX* pObjectTable) {
10163 return ?
10164}
10165
10166@extension("VK_NVX_device_generated_commands") // 87
10167cmd void vkDestroyObjectTableNVX(
10168 VkDevice device,
10169 VkObjectTableNVX objectTable,
10170 const VkAllocationCallbacks* pAllocator) {
10171}
10172
10173@extension("VK_NVX_device_generated_commands") // 87
10174cmd VkResult vkRegisterObjectsNVX(
10175 VkDevice device,
10176 VkObjectTableNVX objectTable,
10177 u32 objectCount,
10178 const VkObjectTableEntryNVX* const* ppObjectTableEntries,
10179 const u32* pObjectIndices) {
10180 return ?
10181}
10182
10183@extension("VK_NVX_device_generated_commands") // 87
10184cmd VkResult vkUnregisterObjectsNVX(
10185 VkDevice device,
10186 VkObjectTableNVX objectTable,
10187 u32 objectCount,
10188 const VkObjectEntryTypeNVX* pObjectEntryTypes,
10189 const u32* pObjectIndices) {
10190 return ?
10191}
10192
10193@extension("VK_NVX_device_generated_commands") // 87
10194cmd void vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX(
10195 VkPhysicalDevice physicalDevice,
10196 VkDeviceGeneratedCommandsFeaturesNVX* pFeatures,
10197 VkDeviceGeneratedCommandsLimitsNVX* pLimits) {
10198}
10199
10200@extension("VK_NV_clip_space_w_scaling") // 88
10201cmd void vkCmdSetViewportWScalingNV(
10202 VkCommandBuffer commandBuffer,
10203 u32 firstViewport,
10204 u32 viewportCount,
10205 const VkViewportWScalingNV* pViewportWScalings) {
10206}
10207
10208@extension("VK_EXT_direct_mode_display") // 89
10209cmd VkResult vkReleaseDisplayEXT(
10210 VkPhysicalDevice physicalDevice,
10211 VkDisplayKHR display) {
10212 return ?
10213}
10214
10215@extension("VK_EXT_acquire_xlib_display") // 90
10216cmd VkResult vkAcquireXlibDisplayEXT(
10217 VkPhysicalDevice physicalDevice,
10218 platform.Display* dpy,
10219 VkDisplayKHR display) {
10220 return ?
10221}
10222
10223@extension("VK_EXT_acquire_xlib_display") // 90
10224cmd VkResult vkGetRandROutputDisplayEXT(
10225 VkPhysicalDevice physicalDevice,
10226 platform.Display* dpy,
10227 platform.RROutput rrOutput,
10228 VkDisplayKHR* pDisplay) {
10229 return ?
10230}
10231
10232@extension("VK_EXT_display_surface_counter") // 91
10233cmd VkResult vkGetPhysicalDeviceSurfaceCapabilities2EXT(
10234 VkPhysicalDevice physicalDevice,
10235 VkSurfaceKHR surface,
10236 VkSurfaceCapabilities2EXT* pSurfaceCapabilities) {
10237 return ?
10238}
10239
10240@extension("VK_EXT_display_control") // 92
10241cmd VkResult vkDisplayPowerControlEXT(
10242 VkDevice device,
10243 VkDisplayKHR display,
10244 const VkDisplayPowerInfoEXT* pDisplayPowerInfo) {
10245 return ?
10246}
10247
10248@extension("VK_EXT_display_control") // 92
10249cmd VkResult vkRegisterDeviceEventEXT(
10250 VkDevice device,
10251 const VkDeviceEventInfoEXT* pDeviceEventInfo,
10252 const VkAllocationCallbacks* pAllocator,
10253 VkFence* pFence) {
10254 return ?
10255}
10256
10257@extension("VK_EXT_display_control") // 92
10258cmd VkResult vkRegisterDisplayEventEXT(
10259 VkDevice device,
10260 VkDisplayKHR display,
10261 const VkDisplayEventInfoEXT* pDisplayEventInfo,
10262 const VkAllocationCallbacks* pAllocator,
10263 VkFence* pFence) {
10264 return ?
10265}
10266
10267@extension("VK_EXT_display_control") // 92
10268cmd VkResult vkGetSwapchainCounterEXT(
10269 VkDevice device,
10270 VkSwapchainKHR swapchain,
10271 VkSurfaceCounterFlagBitsEXT counter,
10272 u64* pCounterValue) {
10273 return ?
10274}
10275
10276@extension("VK_GOOGLE_display_timing") // 93
Ian Elliott4c8bb2a2016-12-29 11:07:26 -070010277cmd VkResult vkGetRefreshCycleDurationGOOGLE(
Jesse Hallfdc8ab32017-03-10 21:01:57 -080010278 VkDevice device,
10279 VkSwapchainKHR swapchain,
10280 VkRefreshCycleDurationGOOGLE* pDisplayTimingProperties) {
Ian Elliott4c8bb2a2016-12-29 11:07:26 -070010281 deviceObject := GetDevice(device)
10282 swapchainObject := GetSwapchain(swapchain)
10283
10284 displayTimingProperties := ?
10285 pDisplayTimingProperties[0] = displayTimingProperties
10286
10287 return ?
10288}
10289
Jesse Hallad250842017-03-10 18:35:38 -080010290@extension("VK_GOOGLE_display_timing") // 93
Ian Elliott4c8bb2a2016-12-29 11:07:26 -070010291cmd VkResult vkGetPastPresentationTimingGOOGLE(
Jesse Hallfdc8ab32017-03-10 21:01:57 -080010292 VkDevice device,
10293 VkSwapchainKHR swapchain,
10294 u32* pPresentationTimingCount,
10295 VkPastPresentationTimingGOOGLE* pPresentationTimings) {
Ian Elliott4c8bb2a2016-12-29 11:07:26 -070010296 return ?
10297}
10298
Jesse Hallad250842017-03-10 18:35:38 -080010299@extension("VK_EXT_discard_rectangles") // 100
10300cmd void vkCmdSetDiscardRectangleEXT(
Jesse Hall26763382016-05-20 07:13:52 -070010301 VkCommandBuffer commandBuffer,
Jesse Hallad250842017-03-10 18:35:38 -080010302 u32 firstDiscardRectangle,
10303 u32 discardRectangleCount,
10304 const VkRect2D* pDiscardRectangles) {
Jesse Hall26763382016-05-20 07:13:52 -070010305}
10306
Jesse Hallad250842017-03-10 18:35:38 -080010307@extension("VK_EXT_hdr_metadata") // 106
Jesse Hall889cd9a2017-02-25 22:12:23 -080010308cmd void vkSetHdrMetadataEXT(
Jesse Hallfdc8ab32017-03-10 21:01:57 -080010309 VkDevice device,
10310 u32 swapchainCount,
10311 const VkSwapchainKHR* pSwapchains,
10312 const VkHdrMetadataEXT* pMetadata) {
Jesse Hall889cd9a2017-02-25 22:12:23 -080010313}
10314
Jesse Halla13a3cf2018-07-09 15:51:52 -070010315@extension("VK_KHR_create_renderpass2") // 110
10316cmd VkResult vkCreateRenderPass2KHR(
10317 VkDevice device,
10318 const VkRenderPassCreateInfo2KHR* pCreateInfo,
10319 const VkAllocationCallbacks* pAllocator,
10320 VkRenderPass* pRenderPass) {
10321 return ?
10322}
10323
10324@extension("VK_KHR_create_renderpass2") // 110
10325cmd void vkCmdBeginRenderPass2KHR(
10326 VkCommandBuffer commandBuffer,
10327 const VkRenderPassBeginInfo* pRenderPassBegin,
10328 const VkSubpassBeginInfoKHR* pSubpassBeginInfo) {
10329}
10330
10331@extension("VK_KHR_create_renderpass2") // 110
10332cmd void vkCmdNextSubpass2KHR(
10333 VkCommandBuffer commandBuffer,
10334 const VkSubpassBeginInfoKHR* pSubpassBeginInfo,
10335 const VkSubpassEndInfoKHR* pSubpassEndInfo) {
10336}
10337
10338@extension("VK_KHR_create_renderpass2") // 110
10339cmd void vkCmdEndRenderPass2KHR(
10340 VkCommandBuffer commandBuffer,
10341 const VkSubpassEndInfoKHR* pSubpassEndInfo) {
10342}
10343
Jesse Hallad250842017-03-10 18:35:38 -080010344@extension("VK_KHR_shared_presentable_image") // 112
Chris Forbes2e12cb82017-01-18 11:45:17 +130010345cmd VkResult vkGetSwapchainStatusKHR(
10346 VkDevice device,
10347 VkSwapchainKHR swapchain) {
10348 return ?
10349}
10350
Jesse Hall9492f992017-08-28 12:10:06 -070010351@extension("VK_KHR_external_fence_capabilities") // 113
10352cmd void vkGetPhysicalDeviceExternalFencePropertiesKHR(
10353 VkPhysicalDevice physicalDevice,
10354 const VkPhysicalDeviceExternalFenceInfoKHR* pExternalFenceInfo,
10355 VkExternalFencePropertiesKHR* pExternalFenceProperties) {
10356}
10357
10358@extension("VK_KHR_external_fence_win32") // 115
10359cmd VkResult vkImportFenceWin32HandleKHR(
10360 VkDevice device,
10361 const VkImportFenceWin32HandleInfoKHR* pImportFenceWin32HandleInfo) {
10362 return ?
10363}
10364
10365@extension("VK_KHR_external_fence_win32") // 115
10366cmd VkResult vkGetFenceWin32HandleKHR(
10367 VkDevice device,
10368 const VkFenceGetWin32HandleInfoKHR* pGetWin32HandleInfo,
10369 platform.HANDLE* pHandle) {
10370 return ?
10371}
10372
10373@extension("VK_KHR_external_fence_fd") // 116
10374cmd VkResult vkImportFenceFdKHR(
10375 VkDevice device,
10376 const VkImportFenceFdInfoKHR* pImportFenceFdInfo) {
10377 return ?
10378}
10379
10380@extension("VK_KHR_external_fence_fd") // 116
10381cmd VkResult vkGetFenceFdKHR(
10382 VkDevice device,
10383 const VkFenceGetFdInfoKHR* pGetFdInfo,
10384 int* pFd) {
10385 return ?
10386}
10387
Jesse Hall05556b12017-05-18 17:40:25 -070010388@extension("VK_KHR_get_surface_capabilities2") // 120
Chris Forbese2d3ee12017-03-16 16:10:15 +130010389cmd VkResult vkGetPhysicalDeviceSurfaceCapabilities2KHR(
10390 VkPhysicalDevice physicalDevice,
10391 const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo,
10392 VkSurfaceCapabilities2KHR* pSurfaceCapabilities) {
10393 return ?
10394}
10395
Jesse Hall05556b12017-05-18 17:40:25 -070010396@extension("VK_KHR_get_surface_capabilities2") // 120
Chris Forbese2d3ee12017-03-16 16:10:15 +130010397cmd VkResult vkGetPhysicalDeviceSurfaceFormats2KHR(
10398 VkPhysicalDevice physicalDevice,
10399 const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo,
10400 u32* pSurfaceFormatCount,
10401 VkSurfaceFormat2KHR* pSurfaceFormats) {
10402 return ?
10403}
10404
Jesse Hall54f8d132018-04-18 08:16:59 -070010405@extension("VK_KHR_display_properties2") // 122
10406cmd VkResult vkGetPhysicalDeviceDisplayProperties2KHR(
10407 VkPhysicalDevice physicalDevice,
10408 u32* pPropertyCount,
10409 VkDisplayProperties2KHR* pProperties) {
10410 return ?
10411}
10412
10413@extension("VK_KHR_display_properties2") // 122
10414cmd VkResult vkGetPhysicalDeviceDisplayPlaneProperties2KHR(
10415 VkPhysicalDevice physicalDevice,
10416 u32* pPropertyCount,
10417 VkDisplayPlaneProperties2KHR* pProperties) {
10418 return ?
10419}
10420
10421@extension("VK_KHR_display_properties2") // 122
10422cmd VkResult vkGetDisplayModeProperties2KHR(
10423 VkPhysicalDevice physicalDevice,
10424 VkDisplayKHR display,
10425 u32* pPropertyCount,
10426 VkDisplayModeProperties2KHR* pProperties) {
10427 return ?
10428}
10429
10430@extension("VK_KHR_display_properties2") // 122
10431cmd VkResult vkGetDisplayPlaneCapabilities2KHR(
10432 VkPhysicalDevice physicalDevice,
10433 const VkDisplayPlaneInfo2KHR* pDisplayPlaneInfo,
10434 VkDisplayPlaneCapabilities2KHR* pCapabilities) {
10435 return ?
10436}
10437
Jesse Hallad250842017-03-10 18:35:38 -080010438@extension("VK_MVK_ios_surface") // 123
10439cmd VkResult vkCreateIOSSurfaceMVK(
10440 VkInstance instance,
10441 const VkIOSSurfaceCreateInfoMVK* pCreateInfo,
10442 const VkAllocationCallbacks* pAllocator,
10443 VkSurfaceKHR* pSurface) {
10444 return ?
10445}
10446
10447@extension("VK_MVK_macos_surface") // 124
10448cmd VkResult vkCreateMacOSSurfaceMVK(
10449 VkInstance instance,
10450 const VkMacOSSurfaceCreateInfoMVK* pCreateInfo,
10451 const VkAllocationCallbacks* pAllocator,
10452 VkSurfaceKHR* pSurface) {
10453 return ?
10454}
10455
Jesse Hall8c954d32018-01-17 22:06:20 -080010456@extension("VK_EXT_debug_utils") // 129
10457@external type void* PFN_vkDebugUtilsMessengerCallbackEXT
10458@extension("VK_EXT_debug_utils") // 129
10459@pfn cmd VkBool32 vkDebugUtilsMessengerCallbackEXT(
10460 VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity,
10461 VkDebugUtilsMessageTypeFlagsEXT messageType,
10462 const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData,
10463 void* pUserData) {
10464 return ?
10465}
10466
10467@extension("VK_EXT_debug_utils") // 129
10468cmd VkResult vkSetDebugUtilsObjectNameEXT(
10469 VkDevice device,
10470 const VkDebugUtilsObjectNameInfoEXT* pNameInfo) {
10471 return ?
10472}
Jesse Hall72e6a132018-04-06 13:00:44 -070010473
Jesse Hall8c954d32018-01-17 22:06:20 -080010474@extension("VK_EXT_debug_utils") // 129
10475cmd VkResult vkSetDebugUtilsObjectTagEXT(
10476 VkDevice device,
10477 const VkDebugUtilsObjectTagInfoEXT* pTagInfo) {
10478 return ?
10479}
Jesse Hall72e6a132018-04-06 13:00:44 -070010480
Jesse Hall8c954d32018-01-17 22:06:20 -080010481@extension("VK_EXT_debug_utils") // 129
10482cmd void vkQueueBeginDebugUtilsLabelEXT(
10483 VkQueue queue,
10484 const VkDebugUtilsLabelEXT* pLabelInfo) {
10485}
Jesse Hall72e6a132018-04-06 13:00:44 -070010486
Jesse Hall8c954d32018-01-17 22:06:20 -080010487@extension("VK_EXT_debug_utils") // 129
10488cmd void vkQueueEndDebugUtilsLabelEXT(VkQueue queue) {
10489}
Jesse Hall72e6a132018-04-06 13:00:44 -070010490
Jesse Hall8c954d32018-01-17 22:06:20 -080010491@extension("VK_EXT_debug_utils") // 129
10492cmd void vkQueueInsertDebugUtilsLabelEXT(
10493 VkQueue queue,
10494 const VkDebugUtilsLabelEXT* pLabelInfo) {
10495}
Jesse Hall72e6a132018-04-06 13:00:44 -070010496
Jesse Hall8c954d32018-01-17 22:06:20 -080010497@extension("VK_EXT_debug_utils") // 129
10498cmd void vkCmdBeginDebugUtilsLabelEXT(
10499 VkCommandBuffer commandBuffer,
10500 const VkDebugUtilsLabelEXT* pLabelInfo) {
10501}
Jesse Hall72e6a132018-04-06 13:00:44 -070010502
Jesse Hall8c954d32018-01-17 22:06:20 -080010503@extension("VK_EXT_debug_utils") // 129
10504cmd void vkCmdEndDebugUtilsLabelEXT(VkCommandBuffer commandBuffer) {
10505}
10506
10507@extension("VK_EXT_debug_utils") // 129
10508cmd void vkCmdInsertDebugUtilsLabelEXT(
10509 VkCommandBuffer commandBuffer,
10510 const VkDebugUtilsLabelEXT* pLabelInfo) {
10511}
10512
10513@extension("VK_EXT_debug_utils") // 129
10514cmd VkResult vkCreateDebugUtilsMessengerEXT(
10515 VkInstance instance,
10516 const VkDebugUtilsMessengerCreateInfoEXT* pCreateInfo,
10517 const VkAllocationCallbacks* pAllocator,
10518 VkDebugUtilsMessengerEXT* pMessenger) {
10519 return ?
10520}
10521
10522@extension("VK_EXT_debug_utils") // 129
10523cmd void vkDestroyDebugUtilsMessengerEXT(
10524 VkInstance instance,
10525 VkDebugUtilsMessengerEXT messenger,
10526 const VkAllocationCallbacks* pAllocator) {
10527}
10528
10529@extension("VK_EXT_debug_utils") // 129
10530cmd void vkSubmitDebugUtilsMessageEXT(
10531 VkInstance instance,
10532 VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity,
10533 VkDebugUtilsMessageTypeFlagsEXT messageTypes,
10534 const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData) {
10535}
10536
Jesse Hall36215a92018-01-18 15:04:37 -080010537@extension("VK_ANDROID_external_memory_android_hardware_buffer") // 130
10538@vulkan1_1 // extension requires 1.1, and should become non-optional when 1.1 does
10539cmd VkResult vkGetAndroidHardwareBufferPropertiesANDROID(
10540 VkDevice device,
10541 const platform.AHardwareBuffer* buffer,
10542 VkAndroidHardwareBufferPropertiesANDROID* pProperties) {
10543 return ?
10544}
10545
10546@extension("VK_ANDROID_external_memory_android_hardware_buffer") // 130
10547@vulkan1_1 // extension requires 1.1, and should become non-optional when 1.1 does
10548cmd VkResult vkGetMemoryAndroidHardwareBufferANDROID(
10549 VkDevice device,
10550 const VkMemoryGetAndroidHardwareBufferInfoANDROID* pInfo,
10551 platform.AHardwareBuffer** pBuffer) {
10552 return ?
10553}
10554
Jesse Hall77726222017-09-19 14:49:27 -050010555@extension("VK_EXT_sample_locations") // 144
10556cmd void vkCmdSetSampleLocationsEXT(
10557 VkCommandBuffer commandBuffer,
10558 const VkSampleLocationsInfoEXT* pSampleLocationsInfo) {
10559}
10560
10561@extension("VK_EXT_sample_locations") // 144
10562cmd void vkGetPhysicalDeviceMultisamplePropertiesEXT(
10563 VkPhysicalDevice physicalDevice,
10564 VkSampleCountFlagBits samples,
10565 VkMultisamplePropertiesEXT* pMultisampleProperties) {
10566}
10567
Jesse Hall9492f992017-08-28 12:10:06 -070010568@extension("VK_KHR_get_memory_requirements2") // 147
10569cmd void vkGetImageMemoryRequirements2KHR(
10570 VkDevice device,
10571 const VkImageMemoryRequirementsInfo2KHR* pInfo,
10572 VkMemoryRequirements2KHR* pMemoryRequirements) {
10573}
10574
10575@extension("VK_KHR_get_memory_requirements2") // 147
10576cmd void vkGetBufferMemoryRequirements2KHR(
10577 VkDevice device,
10578 const VkBufferMemoryRequirementsInfo2KHR* pInfo,
10579 VkMemoryRequirements2KHR* pMemoryRequirements) {
10580}
10581
10582@extension("VK_KHR_get_memory_requirements2") // 147
10583cmd void vkGetImageSparseMemoryRequirements2KHR(
10584 VkDevice device,
10585 const VkImageSparseMemoryRequirementsInfo2KHR* pInfo,
10586 u32* pSparseMemoryRequirementCount,
10587 VkSparseImageMemoryRequirements2KHR* pSparseMemoryRequirements) {
10588}
10589
Jesse Hall076f95d2017-09-20 11:34:47 -070010590@extension("VK_KHR_sampler_ycbcr_conversion") // 157
10591cmd VkResult vkCreateSamplerYcbcrConversionKHR(
10592 VkDevice device,
10593 const VkSamplerYcbcrConversionCreateInfoKHR* pCreateInfo,
10594 const VkAllocationCallbacks* pAllocator,
10595 VkSamplerYcbcrConversionKHR* pYcbcrConversion) {
10596 return ?
10597}
10598
10599@extension("VK_KHR_sampler_ycbcr_conversion") // 157
10600cmd void vkDestroySamplerYcbcrConversionKHR(
10601 VkDevice device,
10602 VkSamplerYcbcrConversionKHR ycbcrConversion,
10603 const VkAllocationCallbacks* pAllocator) {
10604}
10605
10606@extension("VK_KHR_bind_memory2") // 158
10607cmd VkResult vkBindBufferMemory2KHR(
10608 VkDevice device,
10609 u32 bindInfoCount,
10610 const VkBindBufferMemoryInfoKHR* pBindInfos) {
10611 return ?
10612}
10613
10614@extension("VK_KHR_bind_memory2") // 158
10615cmd VkResult vkBindImageMemory2KHR(
10616 VkDevice device,
10617 u32 bindInfoCount,
10618 const VkBindImageMemoryInfoKHR* pBindInfos) {
10619 return ?
10620}
10621
Jesse Hall77726222017-09-19 14:49:27 -050010622@extension("VK_EXT_validation_cache") // 161
10623cmd VkResult vkCreateValidationCacheEXT(
10624 VkDevice device,
10625 const VkValidationCacheCreateInfoEXT* pCreateInfo,
10626 const VkAllocationCallbacks* pAllocator,
10627 VkValidationCacheEXT* pValidationCache) {
10628 return ?
10629}
10630
10631@extension("VK_EXT_validation_cache") // 161
10632cmd void vkDestroyValidationCacheEXT(
10633 VkDevice device,
10634 VkValidationCacheEXT validationCache,
10635 const VkAllocationCallbacks* pAllocator) {
10636}
10637
10638@extension("VK_EXT_validation_cache") // 161
10639cmd VkResult vkMergeValidationCachesEXT(
10640 VkDevice device,
10641 VkValidationCacheEXT dstCache,
10642 u32 srcCacheCount,
10643 const VkValidationCacheEXT* pSrcCaches) {
10644 return ?
10645}
10646
10647@extension("VK_EXT_validation_cache") // 161
10648cmd VkResult vkGetValidationCacheDataEXT(
10649 VkDevice device,
10650 VkValidationCacheEXT validationCache,
10651 platform.size_t* pDataSize,
10652 void* pData) {
10653 return ?
10654}
10655
Daniel Koch09f7bf92017-10-05 00:26:58 -040010656@extension("VK_KHR_maintenance3") // 169
10657cmd void vkGetDescriptorSetLayoutSupportKHR(
10658 VkDevice device,
10659 const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
10660 VkDescriptorSetLayoutSupportKHR* pSupport) {
10661}
10662
Jesse Hall54f8d132018-04-18 08:16:59 -070010663@extension("VK_KHR_draw_indirect_count") // 170
10664cmd void vkCmdDrawIndirectCountKHR(
10665 VkCommandBuffer commandBuffer,
10666 VkBuffer buffer,
10667 VkDeviceSize offset,
10668 VkBuffer countBuffer,
10669 VkDeviceSize countBufferOffset,
10670 u32 maxDrawCount,
10671 u32 stride) {
10672}
10673
10674@extension("VK_KHR_draw_indirect_count") // 170
10675cmd void vkCmdDrawIndexedIndirectCountKHR(
10676 VkCommandBuffer commandBuffer,
10677 VkBuffer buffer,
10678 VkDeviceSize offset,
10679 VkBuffer countBuffer,
10680 VkDeviceSize countBufferOffset,
10681 u32 maxDrawCount,
10682 u32 stride) {
10683}
10684
Jesse Hall8c954d32018-01-17 22:06:20 -080010685@extension("VK_EXT_external_memory_host") // 179
10686cmd VkResult vkGetMemoryHostPointerPropertiesEXT(
10687 VkDevice device,
10688 VkExternalMemoryHandleTypeFlagBits handleType,
10689 const void* pHostPointer,
10690 VkMemoryHostPointerPropertiesEXT* pMemoryHostPointerProperties) {
10691 return ?
10692}
10693
Jesse Hall72e6a132018-04-06 13:00:44 -070010694@extension("VK_AMD_buffer_marker") // 180
10695cmd void vkCmdWriteBufferMarkerAMD(
10696 VkCommandBuffer commandBuffer,
10697 VkPipelineStageFlagBits pipelineStage,
10698 VkBuffer dstBuffer,
10699 VkDeviceSize dstOffset,
10700 u32 marker) {
10701}
10702
Jesse Hall115df0c2018-07-30 12:00:59 -070010703@extension("VK_NV_device_diagnostic_checkpoints") // 207
10704cmd void vkCmdSetCheckpointNV(
10705 VkCommandBuffer commandBuffer,
10706 const void* pCheckpointMarker) {
10707}
10708
10709@extension("VK_NV_device_diagnostic_checkpoints") // 207
10710cmd void vkGetQueueCheckpointDataNV(
10711 VkQueue queue,
10712 u32* pCheckpointDataCount,
10713 VkCheckpointDataNV* pCheckpointData) {
10714}
10715
10716
Jesse Halld27f6aa2015-08-15 17:58:48 -070010717////////////////
10718// Validation //
10719////////////////
10720
10721extern void validate(string layerName, bool condition, string message)
10722
10723
10724/////////////////////////////
10725// Internal State Tracking //
10726/////////////////////////////
10727
10728StateObject State
10729
10730@internal class StateObject {
10731 // Dispatchable objects.
10732 map!(VkInstance, ref!InstanceObject) Instances
10733 map!(VkPhysicalDevice, ref!PhysicalDeviceObject) PhysicalDevices
10734 map!(VkDevice, ref!DeviceObject) Devices
10735 map!(VkQueue, ref!QueueObject) Queues
Jesse Hall3fbc8562015-11-29 22:10:52 -080010736 map!(VkCommandBuffer, ref!CommandBufferObject) CommandBuffers
Jesse Halld27f6aa2015-08-15 17:58:48 -070010737
10738 // Non-dispatchable objects.
10739 map!(VkDeviceMemory, ref!DeviceMemoryObject) DeviceMemories
10740 map!(VkBuffer, ref!BufferObject) Buffers
10741 map!(VkBufferView, ref!BufferViewObject) BufferViews
10742 map!(VkImage, ref!ImageObject) Images
10743 map!(VkImageView, ref!ImageViewObject) ImageViews
Jesse Halld27f6aa2015-08-15 17:58:48 -070010744 map!(VkShaderModule, ref!ShaderModuleObject) ShaderModules
Jesse Halld27f6aa2015-08-15 17:58:48 -070010745 map!(VkPipeline, ref!PipelineObject) Pipelines
10746 map!(VkPipelineLayout, ref!PipelineLayoutObject) PipelineLayouts
10747 map!(VkSampler, ref!SamplerObject) Samplers
10748 map!(VkDescriptorSet, ref!DescriptorSetObject) DescriptorSets
10749 map!(VkDescriptorSetLayout, ref!DescriptorSetLayoutObject) DescriptorSetLayouts
10750 map!(VkDescriptorPool, ref!DescriptorPoolObject) DescriptorPools
Jesse Halld27f6aa2015-08-15 17:58:48 -070010751 map!(VkFence, ref!FenceObject) Fences
10752 map!(VkSemaphore, ref!SemaphoreObject) Semaphores
10753 map!(VkEvent, ref!EventObject) Events
10754 map!(VkQueryPool, ref!QueryPoolObject) QueryPools
10755 map!(VkFramebuffer, ref!FramebufferObject) Framebuffers
10756 map!(VkRenderPass, ref!RenderPassObject) RenderPasses
10757 map!(VkPipelineCache, ref!PipelineCacheObject) PipelineCaches
Jesse Hall3fbc8562015-11-29 22:10:52 -080010758 map!(VkCommandPool, ref!CommandPoolObject) CommandPools
Jesse Hall1356b0d2015-11-23 17:24:58 -080010759 map!(VkSurfaceKHR, ref!SurfaceObject) Surfaces
Michael Lentine88594d72015-11-12 12:49:45 -080010760 map!(VkSwapchainKHR, ref!SwapchainObject) Swapchains
Jesse Halld27f6aa2015-08-15 17:58:48 -070010761}
10762
10763@internal class InstanceObject {
10764}
10765
10766@internal class PhysicalDeviceObject {
10767 VkInstance instance
10768}
10769
10770@internal class DeviceObject {
10771 VkPhysicalDevice physicalDevice
10772}
10773
10774@internal class QueueObject {
10775 VkDevice device
10776 VkQueueFlags flags
10777}
10778
Jesse Hall3fbc8562015-11-29 22:10:52 -080010779@internal class CommandBufferObject {
Jesse Halld27f6aa2015-08-15 17:58:48 -070010780 VkDevice device
10781 map!(u64, VkDeviceMemory) boundObjects
10782 VkQueueFlags queueFlags
10783}
10784
10785@internal class DeviceMemoryObject {
Jesse Hall3fbc8562015-11-29 22:10:52 -080010786 VkDevice device
10787 VkDeviceSize allocationSize
10788 map!(u64, VkDeviceSize) boundObjects
10789 map!(VkCommandBuffer, VkCommandBuffer) boundCommandBuffers
Jesse Halld27f6aa2015-08-15 17:58:48 -070010790}
10791
10792@internal class BufferObject {
10793 VkDevice device
Jesse Hall3fbc8562015-11-29 22:10:52 -080010794 VkDeviceMemory memory
10795 VkDeviceSize memoryOffset
Jesse Halld27f6aa2015-08-15 17:58:48 -070010796}
10797
10798@internal class BufferViewObject {
10799 VkDevice device
10800 VkBuffer buffer
10801}
10802
10803@internal class ImageObject {
10804 VkDevice device
Jesse Hall3fbc8562015-11-29 22:10:52 -080010805 VkDeviceMemory memory
10806 VkDeviceSize memoryOffset
Jesse Halld27f6aa2015-08-15 17:58:48 -070010807}
10808
10809@internal class ImageViewObject {
10810 VkDevice device
10811 VkImage image
10812}
10813
Jesse Halld27f6aa2015-08-15 17:58:48 -070010814@internal class ShaderObject {
10815 VkDevice device
10816}
10817
10818@internal class ShaderModuleObject {
10819 VkDevice device
10820}
10821
10822@internal class PipelineObject {
10823 VkDevice device
10824}
10825
10826@internal class PipelineLayoutObject {
10827 VkDevice device
10828}
10829
10830@internal class SamplerObject {
10831 VkDevice device
10832}
10833
10834@internal class DescriptorSetObject {
10835 VkDevice device
10836}
10837
10838@internal class DescriptorSetLayoutObject {
10839 VkDevice device
10840}
10841
10842@internal class DescriptorPoolObject {
10843 VkDevice device
10844}
10845
Jesse Halld27f6aa2015-08-15 17:58:48 -070010846@internal class FenceObject {
10847 VkDevice device
10848 bool signaled
10849}
10850
10851@internal class SemaphoreObject {
10852 VkDevice device
10853}
10854
10855@internal class EventObject {
10856 VkDevice device
10857}
10858
10859@internal class QueryPoolObject {
10860 VkDevice device
10861}
10862
10863@internal class FramebufferObject {
10864 VkDevice device
10865}
10866
10867@internal class RenderPassObject {
10868 VkDevice device
10869}
10870
10871@internal class PipelineCacheObject {
10872 VkDevice device
10873}
10874
Jesse Hall3fbc8562015-11-29 22:10:52 -080010875@internal class CommandPoolObject {
Jesse Halld27f6aa2015-08-15 17:58:48 -070010876 VkDevice device
10877}
10878
Jesse Hall1356b0d2015-11-23 17:24:58 -080010879@internal class SurfaceObject {
10880 VkInstance instance
10881}
10882
Michael Lentine88594d72015-11-12 12:49:45 -080010883@internal class SwapchainObject {
10884 VkDevice device
10885}
10886
Jesse Halld27f6aa2015-08-15 17:58:48 -070010887macro ref!InstanceObject GetInstance(VkInstance instance) {
10888 assert(instance in State.Instances)
10889 return State.Instances[instance]
10890}
10891
10892macro ref!PhysicalDeviceObject GetPhysicalDevice(VkPhysicalDevice physicalDevice) {
10893 assert(physicalDevice in State.PhysicalDevices)
10894 return State.PhysicalDevices[physicalDevice]
10895}
10896
10897macro ref!DeviceObject GetDevice(VkDevice device) {
10898 assert(device in State.Devices)
10899 return State.Devices[device]
10900}
10901
10902macro ref!QueueObject GetQueue(VkQueue queue) {
10903 assert(queue in State.Queues)
10904 return State.Queues[queue]
10905}
10906
Jesse Hall3fbc8562015-11-29 22:10:52 -080010907macro ref!CommandBufferObject GetCommandBuffer(VkCommandBuffer commandBuffer) {
10908 assert(commandBuffer in State.CommandBuffers)
10909 return State.CommandBuffers[commandBuffer]
Jesse Halld27f6aa2015-08-15 17:58:48 -070010910}
10911
Jesse Hall3fbc8562015-11-29 22:10:52 -080010912macro ref!DeviceMemoryObject GetDeviceMemory(VkDeviceMemory memory) {
10913 assert(memory in State.DeviceMemories)
10914 return State.DeviceMemories[memory]
Jesse Halld27f6aa2015-08-15 17:58:48 -070010915}
10916
10917macro ref!BufferObject GetBuffer(VkBuffer buffer) {
10918 assert(buffer in State.Buffers)
10919 return State.Buffers[buffer]
10920}
10921
10922macro ref!BufferViewObject GetBufferView(VkBufferView bufferView) {
10923 assert(bufferView in State.BufferViews)
10924 return State.BufferViews[bufferView]
10925}
10926
10927macro ref!ImageObject GetImage(VkImage image) {
10928 assert(image in State.Images)
10929 return State.Images[image]
10930}
10931
10932macro ref!ImageViewObject GetImageView(VkImageView imageView) {
10933 assert(imageView in State.ImageViews)
10934 return State.ImageViews[imageView]
10935}
10936
Jesse Halld27f6aa2015-08-15 17:58:48 -070010937macro ref!ShaderModuleObject GetShaderModule(VkShaderModule shaderModule) {
10938 assert(shaderModule in State.ShaderModules)
10939 return State.ShaderModules[shaderModule]
10940}
10941
10942macro ref!PipelineObject GetPipeline(VkPipeline pipeline) {
10943 assert(pipeline in State.Pipelines)
10944 return State.Pipelines[pipeline]
10945}
10946
10947macro ref!PipelineLayoutObject GetPipelineLayout(VkPipelineLayout pipelineLayout) {
10948 assert(pipelineLayout in State.PipelineLayouts)
10949 return State.PipelineLayouts[pipelineLayout]
10950}
10951
10952macro ref!SamplerObject GetSampler(VkSampler sampler) {
10953 assert(sampler in State.Samplers)
10954 return State.Samplers[sampler]
10955}
10956
10957macro ref!DescriptorSetObject GetDescriptorSet(VkDescriptorSet descriptorSet) {
10958 assert(descriptorSet in State.DescriptorSets)
10959 return State.DescriptorSets[descriptorSet]
10960}
10961
10962macro ref!DescriptorSetLayoutObject GetDescriptorSetLayout(VkDescriptorSetLayout descriptorSetLayout) {
10963 assert(descriptorSetLayout in State.DescriptorSetLayouts)
10964 return State.DescriptorSetLayouts[descriptorSetLayout]
10965}
10966
10967macro ref!DescriptorPoolObject GetDescriptorPool(VkDescriptorPool descriptorPool) {
10968 assert(descriptorPool in State.DescriptorPools)
10969 return State.DescriptorPools[descriptorPool]
10970}
10971
Jesse Halld27f6aa2015-08-15 17:58:48 -070010972macro ref!FenceObject GetFence(VkFence fence) {
10973 assert(fence in State.Fences)
10974 return State.Fences[fence]
10975}
10976
10977macro ref!SemaphoreObject GetSemaphore(VkSemaphore semaphore) {
10978 assert(semaphore in State.Semaphores)
10979 return State.Semaphores[semaphore]
10980}
10981
10982macro ref!EventObject GetEvent(VkEvent event) {
10983 assert(event in State.Events)
10984 return State.Events[event]
10985}
10986
10987macro ref!QueryPoolObject GetQueryPool(VkQueryPool queryPool) {
10988 assert(queryPool in State.QueryPools)
10989 return State.QueryPools[queryPool]
10990}
10991
10992macro ref!FramebufferObject GetFramebuffer(VkFramebuffer framebuffer) {
10993 assert(framebuffer in State.Framebuffers)
10994 return State.Framebuffers[framebuffer]
10995}
10996
10997macro ref!RenderPassObject GetRenderPass(VkRenderPass renderPass) {
10998 assert(renderPass in State.RenderPasses)
10999 return State.RenderPasses[renderPass]
11000}
11001
11002macro ref!PipelineCacheObject GetPipelineCache(VkPipelineCache pipelineCache) {
11003 assert(pipelineCache in State.PipelineCaches)
11004 return State.PipelineCaches[pipelineCache]
11005}
11006
Jesse Hall3fbc8562015-11-29 22:10:52 -080011007macro ref!CommandPoolObject GetCommandPool(VkCommandPool commandPool) {
11008 assert(commandPool in State.CommandPools)
11009 return State.CommandPools[commandPool]
Jesse Hallf09c6b12015-08-15 19:54:28 -070011010}
Michael Lentine88594d72015-11-12 12:49:45 -080011011
Jesse Hall1356b0d2015-11-23 17:24:58 -080011012macro ref!SurfaceObject GetSurface(VkSurfaceKHR surface) {
11013 assert(surface in State.Surfaces)
11014 return State.Surfaces[surface]
11015}
11016
Michael Lentine88594d72015-11-12 12:49:45 -080011017macro ref!SwapchainObject GetSwapchain(VkSwapchainKHR swapchain) {
11018 assert(swapchain in State.Swapchains)
11019 return State.Swapchains[swapchain]
11020}
Jesse Halld8bade02015-11-24 10:24:18 -080011021
11022macro VkQueueFlags AddQueueFlag(VkQueueFlags flags, VkQueueFlagBits bit) {
11023 return as!VkQueueFlags(as!u32(flags) | as!u32(bit))
11024}