blob: fa63fbdf9808dee215494e62fc5161e3c18fd8c9 [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 Hallb5297192018-09-22 20:52:13 +020031define VERSION_PATCH 85
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 Hallb5297192018-09-22 20:52:13 +0200176// 51
177@extension("VK_NV_corner_sampled_image") define VK_NV_CORNER_SAMPLED_IMAGE_SPEC_VERSION 2
178@extension("VK_NV_corner_sampled_image") define VK_NV_CORNER_SAMPLED_IMAGE_EXTENSION_NAME "VK_NV_corner_sampled_image"
179
Jesse Hallad250842017-03-10 18:35:38 -0800180// 54
Daniel Koch09f7bf92017-10-05 00:26:58 -0400181@extension("VK_KHR_multiview") define VK_KHR_MULTIVIEW_SPEC_VERSION 1
182@extension("VK_KHR_multiview") define VK_KHR_MULTIVIEW_EXTENSION_NAME "VK_KHR_multiview"
Jesse Hallad250842017-03-10 18:35:38 -0800183
Jesse Halleb02c472017-02-24 15:13:45 -0800184// 56
Chris Forbes289cb792016-12-30 15:03:55 +1300185@extension("VK_NV_external_memory_capabilities") define VK_NV_EXTERNAL_MEMORY_CAPABILITIES_SPEC_VERSION 1
186@extension("VK_NV_external_memory_capabilities") define VK_NV_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME "VK_NV_external_memory_capabilities"
187
Jesse Halleb02c472017-02-24 15:13:45 -0800188// 57
Chris Forbes289cb792016-12-30 15:03:55 +1300189@extension("VK_NV_external_memory") define VK_NV_EXTERNAL_MEMORY_SPEC_VERSION 1
190@extension("VK_NV_external_memory") define VK_NV_EXTERNAL_MEMORY_EXTENSION_NAME "VK_NV_external_memory"
191
Jesse Halleb02c472017-02-24 15:13:45 -0800192// 58
Chris Forbes289cb792016-12-30 15:03:55 +1300193@extension("VK_NV_external_memory_win32") define VK_NV_EXTERNAL_MEMORY_WIN32_SPEC_VERSION 1
194@extension("VK_NV_external_memory_win32") define VK_NV_EXTERNAL_MEMORY_WIN32_EXTENSION_NAME "VK_NV_external_memory_win32"
195
Jesse Halleb02c472017-02-24 15:13:45 -0800196// 59
Chris Forbes289cb792016-12-30 15:03:55 +1300197@extension("VK_NV_win32_keyed_mutex") define VK_NV_WIN32_KEYED_MUTEX_SPEC_VERSION 1
198@extension("VK_NV_win32_keyed_mutex") define VK_NV_WIN32_KEYED_MUTEX_EXTENSION_NAME "VK_NV_win32_keyed_mutex"
199
Jesse Hall889cd9a2017-02-25 22:12:23 -0800200// 60
201@extension("VK_KHR_get_physical_device_properties2") define VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_SPEC_VERSION 1
202@extension("VK_KHR_get_physical_device_properties2") define VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME "VK_KHR_get_physical_device_properties2"
203
Jesse Hallad250842017-03-10 18:35:38 -0800204// 61
Daniel Koch09f7bf92017-10-05 00:26:58 -0400205@extension("VK_KHR_device_group") define VK_KHR_DEVICE_GROUP_SPEC_VERSION 3
206@extension("VK_KHR_device_group") define VK_KHR_DEVICE_GROUP_EXTENSION_NAME "VK_KHR_device_group"
Jesse Hallad250842017-03-10 18:35:38 -0800207
Jesse Halleb02c472017-02-24 15:13:45 -0800208// 62
Chris Forbes289cb792016-12-30 15:03:55 +1300209@extension("VK_EXT_validation_flags") define VK_EXT_VALIDATION_FLAGS_SPEC_VERSION 1
210@extension("VK_EXT_validation_flags") define VK_EXT_VALIDATION_FLAGS_EXTENSION_NAME "VK_EXT_validation_flags"
211
Jesse Hall77ad05b2017-03-10 22:02:20 -0800212// 63
213@extension("VK_NN_vi_surface") define VK_NN_VI_SURFACE_SPEC_VERSION 1
214@extension("VK_NN_vi_surface") define VK_NN_VI_SURFACE_EXTENSION_NAME "VK_NN_vi_surface"
215
216// 64
217@extension("VK_KHR_shader_draw_parameters") define VK_KHR_SHADER_DRAW_PARAMETERS_SPEC_VERSION 1
218@extension("VK_KHR_shader_draw_parameters") define VK_KHR_SHADER_DRAW_PARAMETERS_EXTENSION_NAME "VK_KHR_shader_draw_parameters"
219
220// 65
221@extension("VK_EXT_shader_subgroup_ballot") define VK_EXT_SHADER_SUBGROUP_BALLOT_SPEC_VERSION 1
222@extension("VK_EXT_shader_subgroup_ballot") define VK_EXT_SHADER_SUBGROUP_BALLOT_EXTENSION_NAME "VK_EXT_shader_subgroup_ballot"
223
224// 66
225@extension("VK_EXT_shader_subgroup_vote") define VK_EXT_SHADER_SUBGROUP_VOTE_SPEC_VERSION 1
226@extension("VK_EXT_shader_subgroup_vote") define VK_EXT_SHADER_SUBGROUP_VOTE_EXTENSION_NAME "VK_EXT_shader_subgroup_vote"
227
Jesse Hall4af6c462018-09-10 09:04:25 -0700228// 68
229@extension("VK_EXT_astc_decode_mode") define VK_EXT_ASTC_DECODE_MODE_SPEC_VERSION 1
230@extension("VK_EXT_astc_decode_mode") define VK_EXT_ASTC_DECODE_MODE_EXTENSION_NAME "VK_EXT_astc_decode_mode"
231
Jesse Hall77ad05b2017-03-10 22:02:20 -0800232// 70
Jesse Hall72e6a132018-04-06 13:00:44 -0700233@extension("VK_KHR_maintenance1") define VK_KHR_MAINTENANCE1_SPEC_VERSION 2
Jesse Hall77ad05b2017-03-10 22:02:20 -0800234@extension("VK_KHR_maintenance1") define VK_KHR_MAINTENANCE1_EXTENSION_NAME "VK_KHR_maintenance1"
235
Jesse Hallad250842017-03-10 18:35:38 -0800236// 71
Daniel Koch09f7bf92017-10-05 00:26:58 -0400237@extension("VK_KHR_device_group_creation") define VK_KHR_DEVICE_GROUP_CREATION_SPEC_VERSION 1
238@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 -0800239
240// 72
Jesse Hall9492f992017-08-28 12:10:06 -0700241@extension("VK_KHR_external_memory_capabilities") define VK_KHR_EXTERNAL_MEMORY_CAPABILITIES_SPEC_VERSION 1
242@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 -0800243
244// 73
Jesse Hall9492f992017-08-28 12:10:06 -0700245@extension("VK_KHR_external_memory") define VK_KHR_EXTERNAL_MEMORY_SPEC_VERSION 1
246@extension("VK_KHR_external_memory") define VK_KHR_EXTERNAL_MEMORY_EXTENSION_NAME "VK_KHR_external_memory"
Jesse Hallad250842017-03-10 18:35:38 -0800247
248// 74
Jesse Hall9492f992017-08-28 12:10:06 -0700249@extension("VK_KHR_external_memory_win32") define VK_KHR_EXTERNAL_MEMORY_WIN32_SPEC_VERSION 1
250@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 -0800251
252// 75
Jesse Hall9492f992017-08-28 12:10:06 -0700253@extension("VK_KHR_external_memory_fd") define VK_KHR_EXTERNAL_MEMORY_FD_SPEC_VERSION 1
254@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 -0800255
256// 76
Jesse Hall9492f992017-08-28 12:10:06 -0700257@extension("VK_KHR_win32_keyed_mutex") define VK_KHR_WIN32_KEYED_MUTEX_SPEC_VERSION 1
258@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 -0800259
260// 77
Jesse Hall9492f992017-08-28 12:10:06 -0700261@extension("VK_KHR_external_semaphore_capabilities") define VK_KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_SPEC_VERSION 1
262@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 -0800263
264// 78
Jesse Hall9492f992017-08-28 12:10:06 -0700265@extension("VK_KHR_external_semaphore") define VK_KHR_EXTERNAL_SEMAPHORE_SPEC_VERSION 1
266@extension("VK_KHR_external_semaphore") define VK_KHR_EXTERNAL_SEMAPHORE_EXTENSION_NAME "VK_KHR_external_semaphore"
Jesse Hallad250842017-03-10 18:35:38 -0800267
268// 79
Jesse Hall9492f992017-08-28 12:10:06 -0700269@extension("VK_KHR_external_semaphore_win32") define VK_KHR_EXTERNAL_SEMAPHORE_WIN32_SPEC_VERSION 1
270@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 -0800271
272// 80
Jesse Hall9492f992017-08-28 12:10:06 -0700273@extension("VK_KHR_external_semaphore_fd") define VK_KHR_EXTERNAL_SEMAPHORE_FD_SPEC_VERSION 1
274@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 -0800275
276// 81
Daniel Koch09f7bf92017-10-05 00:26:58 -0400277@extension("VK_KHR_push_descriptor") define VK_KHR_PUSH_DESCRIPTOR_SPEC_VERSION 2
Jesse Hallad250842017-03-10 18:35:38 -0800278@extension("VK_KHR_push_descriptor") define VK_KHR_PUSH_DESCRIPTOR_EXTENSION_NAME "VK_KHR_push_descriptor"
279
Jesse Halla13a3cf2018-07-09 15:51:52 -0700280// 82
281@extension("VK_EXT_conditional_rendering") define VK_EXT_CONDITIONAL_RENDERING_SPEC_VERSION 1
282@extension("VK_EXT_conditional_rendering") define VK_EXT_CONDITIONAL_RENDERING_EXTENSION_NAME "VK_EXT_conditional_rendering"
283
Jesse Hall9492f992017-08-28 12:10:06 -0700284// 84
285@extension("VK_KHR_16bit_storage") define VK_KHR_16BIT_STORAGE_SPEC_VERSION 1
286@extension("VK_KHR_16bit_storage") define VK_KHR_16BIT_STORAGE_EXTENSION_NAME "VK_KHR_16bit_storage"
287
Jesse Hall889cd9a2017-02-25 22:12:23 -0800288// 85
289@extension("VK_KHR_incremental_present") define VK_KHR_INCREMENTAL_PRESENT_SPEC_VERSION 1
Jesse Hallf5ad48b2017-03-20 13:09:19 -0700290@extension("VK_KHR_incremental_present") define VK_KHR_INCREMENTAL_PRESENT_EXTENSION_NAME "VK_KHR_incremental_present"
Jesse Hall889cd9a2017-02-25 22:12:23 -0800291
Jesse Hallad250842017-03-10 18:35:38 -0800292// 86
293@extension("VK_KHR_descriptor_update_template") define VK_KHR_DESCRIPTOR_UPDATE_TEMPLATE_SPEC_VERSION 1
294@extension("VK_KHR_descriptor_update_template") define VK_KHR_DESCRIPTOR_UPDATE_TEMPLATE_EXTENSION_NAME "VK_KHR_descriptor_update_template"
295
Jesse Halleb02c472017-02-24 15:13:45 -0800296// 87
Jesse Hall77726222017-09-19 14:49:27 -0500297@extension("VK_NVX_device_generated_commands") define VK_NVX_DEVICE_GENERATED_COMMANDS_SPEC_VERSION 3
Chris Forbes289cb792016-12-30 15:03:55 +1300298@extension("VK_NVX_device_generated_commands") define VK_NVX_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME "VK_NVX_device_generated_commands"
299
Jesse Hallad250842017-03-10 18:35:38 -0800300// 88
301@extension("VK_NV_clip_space_w_scaling") define VK_NV_CLIP_SPACE_W_SCALING_SPEC_VERSION 1
302@extension("VK_NV_clip_space_w_scaling") define VK_NV_CLIP_SPACE_W_SCALING_EXTENSION_NAME "VK_NV_clip_space_w_scaling"
303
Jesse Hall77ad05b2017-03-10 22:02:20 -0800304// 89
305@extension("VK_EXT_direct_mode_display") define VK_EXT_DIRECT_MODE_DISPLAY_SPEC_VERSION 1
306@extension("VK_EXT_direct_mode_display") define VK_EXT_DIRECT_MODE_DISPLAY_EXTENSION_NAME "VK_EXT_direct_mode_display"
307
308// 90
309@extension("VK_EXT_acquire_xlib_display") define VK_EXT_ACQUIRE_XLIB_DISPLAY_SPEC_VERSION 1
310@extension("VK_EXT_acquire_xlib_display") define VK_EXT_ACQUIRE_XLIB_DISPLAY_EXTENSION_NAME "VK_EXT_acquire_xlib_display"
311
312// 91
313@extension("VK_EXT_display_surface_counter") define VK_EXT_DISPLAY_SURFACE_COUNTER_SPEC_VERSION 1
314@extension("VK_EXT_display_surface_counter") define VK_EXT_DISPLAY_SURFACE_COUNTER_EXTENSION_NAME "VK_EXT_display_surface_counter"
315
316// 92
317@extension("VK_EXT_display_control") define VK_EXT_DISPLAY_CONTROL_SPEC_VERSION 1
318@extension("VK_EXT_display_control") define VK_EXT_DISPLAY_CONTROL_COUNTER_EXTENSION_NAME "VK_EXT_display_control"
319
Jesse Hall889cd9a2017-02-25 22:12:23 -0800320// 93
321@extension("VK_GOOGLE_display_timing") define VK_GOOGLE_DISPLAY_TIMING_SPEC_VERSION 1
Jesse Hallfdc8ab32017-03-10 21:01:57 -0800322@extension("VK_GOOGLE_display_timing") define VK_GOOGLE_DISPLAY_TIMING_EXTENSION_NAME "VK_GOOGLE_display_timing"
Jesse Hall889cd9a2017-02-25 22:12:23 -0800323
Jesse Hallad250842017-03-10 18:35:38 -0800324// 95
325@extension("VK_NV_sample_mask_override_coverage") define VK_NV_SAMPLE_MASK_OVERRIDE_COVERAGE_SPEC_VERSION 1
326@extension("VK_NV_sample_mask_override_coverage") define VK_NV_SAMPLE_MASK_OVERRIDE_COVERAGE_EXTENSION_NAME "VK_NV_sample_mask_override_coverage"
327
328// 96
329@extension("VK_NV_geometry_shader_passthrough") define VK_NV_GEOMETRY_SHADER_PASSTHROUGH_SPEC_VERSION 1
330@extension("VK_NV_geometry_shader_passthrough") define VK_NV_GEOMETRY_SHADER_PASSTHROUGH_EXTENSION_NAME "VK_NV_geometry_shader_passthrough"
331
332// 97
333@extension("VK_NV_viewport_array2") define VK_NV_VIEWPORT_ARRAY2_SPEC_VERSION 1
334@extension("VK_NV_viewport_array2") define VK_NV_VIEWPORT_ARRAY2_EXTENSION_NAME "VK_NV_viewport_array2"
335
336// 98
337@extension("VK_NVX_multiview_per_view_attributes") define VK_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_SPEC_VERSION 1
338@extension("VK_NVX_multiview_per_view_attributes") define VK_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_EXTENSION_NAME "VK_NVX_multiview_per_view_attributes"
339
340// 99
341@extension("VK_NV_viewport_swizzle") define VK_NV_VIEWPORT_SWIZZLE_SPEC_VERSION 1
342@extension("VK_NV_viewport_swizzle") define VK_NV_VIEWPORT_SWIZZLE_EXTENSION_NAME "VK_NV_viewport_swizzle"
343
344// 100
345@extension("VK_EXT_discard_rectangles") define VK_EXT_DISCARD_RECTANGLES_SPEC_VERSION 1
346@extension("VK_EXT_discard_rectangles") define VK_EXT_DISCARD_RECTANGLES_EXTENSION_NAME "VK_EXT_discard_rectangles"
347
Jesse Hall8c954d32018-01-17 22:06:20 -0800348// 102
349@extension("VK_EXT_conservative_rasterization") define VK_EXT_CONSERVATIVE_RASTERIZATION_SPEC_VERSION 1
350@extension("VK_EXT_conservative_rasterization") define VK_EXT_CONSERVATIVE_RASTERIZATION_EXTENSION_NAME "VK_EXT_conservative_rasterization"
351
Jesse Hall77ad05b2017-03-10 22:02:20 -0800352// 105
Jesse Hall77726222017-09-19 14:49:27 -0500353@extension("VK_EXT_swapchain_colorspace") define VK_EXT_SWAPCHAIN_COLORSPACE_SPEC_VERSION 3
Jesse Hallf5ad48b2017-03-20 13:09:19 -0700354@extension("VK_EXT_swapchain_colorspace") define VK_EXT_SWAPCHAIN_COLORSPACE_EXTENSION_NAME "VK_EXT_swapchain_colorspace"
Jesse Hall77ad05b2017-03-10 22:02:20 -0800355
Jesse Hall889cd9a2017-02-25 22:12:23 -0800356// 106
357@extension("VK_EXT_hdr_metadata") define VK_EXT_HDR_METADATA_SPEC_VERSION 1
358@extension("VK_EXT_hdr_metadata") define VK_EXT_HDR_METADATA_EXTENSION_NAME "VK_EXT_hdr_metadata"
359
Jesse Halla13a3cf2018-07-09 15:51:52 -0700360// 110
361@extension("VK_KHR_create_renderpass2") define VK_KHR_CREATE_RENDERPASS2_SPEC_VERSION 1
362@extension("VK_KHR_create_renderpass2") define VK_KHR_CREATE_RENDERPASS2_EXTENSION_NAME "VK_KHR_create_renderpass2"
363
Jesse Hall889cd9a2017-02-25 22:12:23 -0800364// 112
Chris Forbes1d5f68c2017-01-31 10:17:01 +1300365@extension("VK_KHR_shared_presentable_image") define VK_KHR_SHARED_PRESENTABLE_IMAGE_SPEC_VERSION 1
366@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 +1300367
Jesse Hall9492f992017-08-28 12:10:06 -0700368// 113
369@extension("VK_KHR_external_fence_capabilities") define VK_KHR_EXTERNAL_FENCE_CAPABILITIES_SPEC_VERSION 1
370@extension("VK_KHR_external_fence_capabilities") define VK_KHR_EXTERNAL_FENCE_CAPABILITIES_EXTENSION_NAME "VK_KHR_external_fence_capabilities"
371
372// 114
373@extension("VK_KHR_external_fence") define VK_KHR_EXTERNAL_FENCE_SPEC_VERSION 1
374@extension("VK_KHR_external_fence") define VK_KHR_EXTERNAL_FENCE_EXTENSION_NAME "VK_KHR_external_fence"
375
376// 115
377@extension("VK_KHR_external_fence_win32") define VK_KHR_EXTERNAL_FENCE_WIN32_SPEC_VERSION 1
378@extension("VK_KHR_external_fence_win32") define VK_KHR_EXTERNAL_FENCE_WIN32_EXTENSION_NAME "VK_KHR_external_fence_win32"
379
380// 116
381@extension("VK_KHR_external_fence_fd") define VK_KHR_EXTERNAL_FENCE_FD_SPEC_VERSION 1
382@extension("VK_KHR_external_fence_fd") define VK_KHR_EXTERNAL_FENCE_FD_EXTENSION_NAME "VK_KHR_external_fence_fd"
383
Jesse Hall076f95d2017-09-20 11:34:47 -0700384// 118
385@extension("VK_KHR_maintenance2") define VK_KHR_MAINTENANCE2_SPEC_VERSION 1
386@extension("VK_KHR_maintenance2") define VK_KHR_MAINTENANCE2_EXTENSION_NAME "VK_KHR_maintenance2"
387
Jesse Hall05556b12017-05-18 17:40:25 -0700388// 120
Chris Forbese2d3ee12017-03-16 16:10:15 +1300389@extension("VK_KHR_get_surface_capabilities2") define VK_KHR_GET_SURFACE_CAPABILITIES_2_SPEC_VERSION 1
390@extension("VK_KHR_get_surface_capabilities2") define VK_KHR_GET_SURFACE_CAPABILITIES_2_EXTENSION_NAME "VK_KHR_get_surface_capabilities2"
391
Jesse Hall9492f992017-08-28 12:10:06 -0700392// 121
393@extension("VK_KHR_variable_pointers") define VK_KHR_VARIABLE_POINTERS_SPEC_VERSION 1
394@extension("VK_KHR_variable_pointers") define VK_KHR_VARIABLE_POINTERS_EXTENSION_NAME "VK_KHR_variable_pointers"
395
Jesse Hall54f8d132018-04-18 08:16:59 -0700396// 122
397@extension("VK_KHR_get_display_properties2") define VK_KHR_GET_DISPLAY_PROPERTIES_2_SPEC_VERSION 1
398@extension("VK_KHR_get_display_properties2") define VK_KHR_GET_DISPLAY_PROPERTIES_2_EXTENSION_NAME "VK_KHR_get_display_properties2"
399
Jesse Hallad250842017-03-10 18:35:38 -0800400// 123
401@extension("VK_MVK_ios_surface") define VK_MVK_IOS_SURFACE_SPEC_VERSION 1
402@extension("VK_MVK_ios_surface") define VK_MVK_IOS_SURFACE_EXTENSION_NAME "VK_MVK_ios_surface"
403
404// 124
405@extension("VK_MVK_macos_surface") define VK_MVK_MACOS_SURFACE_SPEC_VERSION 1
406@extension("VK_MVK_macos_surface") define VK_MVK_MACOS_SURFACE_EXTENSION_NAME "VK_MVK_macos_surface"
407
Jesse Hall8c954d32018-01-17 22:06:20 -0800408// 126
409@extension("VK_EXT_external_memory_dma_buf") define VK_EXT_EXTERNAL_MEMORY_DMA_BUF_SPEC_VERSION 1
410@extension("VK_EXT_external_memory_dma_buf") define VK_EXT_EXTERNAL_MEMORY_DMA_BUF_EXTENSION_NAME "VK_EXT_external_memory_dma_buf"
411
412// 127
413@extension("VK_EXT_queue_family_foreign") define VK_EXT_QUEUE_FAMILY_FOREIGN_SPEC_VERSION 1
414@extension("VK_EXT_queue_family_foreign") define VK_EXT_QUEUE_FAMILY_FOREIGN_EXTENSION_NAME "VK_EXT_queue_family_foreign"
415
Jesse Hall9492f992017-08-28 12:10:06 -0700416// 128
Jesse Hall77726222017-09-19 14:49:27 -0500417@extension("VK_KHR_dedicated_allocation") define VK_KHR_DEDICATED_ALLOCATION_SPEC_VERSION 3
Jesse Hall9492f992017-08-28 12:10:06 -0700418@extension("VK_KHR_dedicated_allocation") define VK_KHR_DEDICATED_ALLOCATION_EXTENSION_NAME "VK_KHR_dedicated_allocation"
419
Jesse Hall8c954d32018-01-17 22:06:20 -0800420// 128
421@extension("VK_EXT_debug_utils") define VK_EXT_DEBUG_UTILS_SPEC_VERSION 1
422@extension("VK_EXT_debug_utils") define VK_EXT_DEBUG_UTILS_EXTENSION_NAME "VK_EXT_debug_utils"
423
Jesse Hall36215a92018-01-18 15:04:37 -0800424// 130
Jesse Hall72e6a132018-04-06 13:00:44 -0700425@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 -0800426@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"
427
Jesse Hall7ba0ac72017-07-07 17:13:23 -0700428// 131
429@extension("VK_EXT_sampler_filter_minmax") define VK_EXT_SAMPLER_FILTER_MINMAX_SPEC_VERSION 1
430@extension("VK_EXT_sampler_filter_minmax") define VK_EXT_SAMPLER_FILTER_MINMAX_EXTENSION_NAME "VK_EXT_sampler_filter_minmax"
431
Jesse Hall9492f992017-08-28 12:10:06 -0700432// 132
433@extension("VK_KHR_storage_buffer_storage_class") define VK_KHR_STORAGE_BUFFER_STORAGE_CLASS_SPEC_VERSION 1
434@extension("VK_KHR_storage_buffer_storage_class") define VK_KHR_STORAGE_BUFFER_STORAGE_CLASS_EXTENSION_NAME "VK_KHR_storage_buffer_storage_class"
435
Jesse Hall7ba0ac72017-07-07 17:13:23 -0700436// 133
437@extension("VK_AMD_gpu_shader_int16") define VK_AMD_GPU_SHADER_INT16_SPEC_VERSION 1
438@extension("VK_AMD_gpu_shader_int16") define VK_AMD_GPU_SHADER_INT16_EXTENSION_NAME "VK_AMD_gpu_shader_int16"
439
Jesse Hall77726222017-09-19 14:49:27 -0500440// 137
441@extension("VK_AMD_mixed_attachment_samples") define VK_AMD_MIXED_ATTACHMENT_SAMPLES_SPEC_VERSION 1
442@extension("VK_AMD_mixed_attachment_samples") define VK_AMD_MIXED_ATTACHMENT_SAMPLES_EXTENSION_NAME "VK_AMD_mixed_attachment_samples"
443
444// 138
445@extension("VK_AMD_shader_fragment_mask") define VK_AMD_SHADER_FRAGMENT_MASK_SPEC_VERSION 1
446@extension("VK_AMD_shader_fragment_mask") define VK_AMD_SHADER_FRAGMENT_MASK_EXTENSION_NAME "VK_AMD_shader_fragment_mask"
447
Jesse Hall4af6c462018-09-10 09:04:25 -0700448// 139
449@extension("VK_EXT_inline_uniform_block") define VK_EXT_INLINE_UNIFORM_BLOCK_SPEC_VERSION 1
450@extension("VK_EXT_inline_uniform_block") define VK_EXT_INLINE_UNIFORM_BLOCK_EXTENSION_NAME "VK_EXT_inline_uniform_block"
451
Jesse Hall77726222017-09-19 14:49:27 -0500452// 141
453@extension("VK_EXT_shader_stencil_export") define VK_EXT_SHADER_STENCIL_EXPORT_SPEC_VERSION 1
454@extension("VK_EXT_shader_stencil_export") define VK_EXT_SHADER_STENCIL_EXPORT_EXTENSION_NAME "VK_EXT_shader_stencil_export"
455
456// 144
457@extension("VK_EXT_sample_locations") define VK_EXT_SAMPLE_LOCATIONS_SPEC_VERSION 1
458@extension("VK_EXT_sample_locations") define VK_EXT_SAMPLE_LOCATIONS_EXTENSION_NAME "VK_EXT_sample_locations"
459
460// 145
461@extension("VK_KHR_relaxed_block_layout") define VK_KHR_RELAXED_BLOCK_LAYOUT_SPEC_VERSION 1
462@extension("VK_KHR_relaxed_block_layout") define VK_KHR_RELAXED_BLOCK_LAYOUT_EXTENSION_NAME "VK_KHR_relaxed_block_layout"
463
Jesse Hall9492f992017-08-28 12:10:06 -0700464// 147
465@extension("VK_KHR_get_memory_requirements2") define VK_KHR_GET_MEMORY_REQUIREMENTS2_SPEC_VERSION 1
466@extension("VK_KHR_get_memory_requirements2") define VK_KHR_GET_MEMORY_REQUIREMENTS2_EXTENSION_NAME "VK_KHR_get_memory_requirements2"
467
Jesse Hall076f95d2017-09-20 11:34:47 -0700468// 148
469@extension("VK_KHR_image_format_list") define VK_KHR_IMAGE_FORMAT_LIST_SPEC_VERSION 1
470@extension("VK_KHR_image_format_list") define VK_KHR_IMAGE_FORMAT_LIST_EXTENSION_NAME "VK_KHR_image_format_list"
471
Jesse Hall7ba0ac72017-07-07 17:13:23 -0700472// 149
473@extension("VK_EXT_blend_operation_advanced") define VK_EXT_BLEND_OPERATION_ADVANCED_SPEC_VERSION 2
474@extension("VK_EXT_blend_operation_advanced") define VK_EXT_BLEND_OPERATION_ADVANCED_EXTENSION_NAME "VK_EXT_blend_operation_advanced"
475
476// 150
477@extension("VK_NV_fragment_coverage_to_color") define VK_NV_FRAGMENT_COVERAGE_TO_COLOR_SPEC_VERSION 1
478@extension("VK_NV_fragment_coverage_to_color") define VK_NV_FRAGMENT_COVERAGE_TO_COLOR_EXTENSION_NAME "VK_NV_fragment_coverage_to_color"
479
480// 153
481@extension("VK_NV_framebuffer_mixed_samples") define VK_NV_FRAMEBUFFER_MIXED_SAMPLES_SPEC_VERSION 1
482@extension("VK_NV_framebuffer_mixed_samples") define VK_NV_FRAMEBUFFER_MIXED_SAMPLES_EXTENSION_NAME "VK_NV_framebuffer_mixed_samples"
483
484// 154
485@extension("VK_NV_fill_rectangle") define VK_NV_FILL_RECTANGLE_SPEC_VERSION 1
486@extension("VK_NV_fill_rectangle") define VK_NV_FILL_RECTANGLE_EXTENSION_NAME "VK_NV_fill_rectangle"
487
Jesse Hall77726222017-09-19 14:49:27 -0500488// 156
489@extension("VK_EXT_post_depth_coverage") define VK_EXT_POST_DEPTH_COVERAGE_SPEC_VERSION 1
490@extension("VK_EXT_post_depth_coverage") define VK_EXT_POST_DEPTH_COVERAGE_EXTENSION_NAME "VK_EXT_post_depth_coverage"
491
Jesse Hall076f95d2017-09-20 11:34:47 -0700492// 157
493@extension("VK_KHR_sampler_ycbcr_conversion") define VK_KHR_SAMPLER_YCBCR_CONVERSION_SPEC_VERSION 1
494@extension("VK_KHR_sampler_ycbcr_conversion") define VK_KHR_SAMPLER_YCBCR_CONVERSION_EXTENSION_NAME "VK_KHR_sampler_ycbcr_conversion"
495
496// 158
497@extension("VK_KHR_bind_memory2") define VK_KHR_BIND_MEMORY2_SPEC_VERSION 1
498@extension("VK_KHR_bind_memory2") define VK_KHR_BIND_MEMORY2_EXTENSION_NAME "VK_KHR_bind_memory2"
499
Jesse Hall77726222017-09-19 14:49:27 -0500500// 161
501@extension("VK_EXT_validation_cache") define VK_EXT_VALIDATION_CACHE_SPEC_VERSION 1
502@extension("VK_EXT_validation_cache") define VK_EXT_VALIDATION_CACHE_EXTENSION_NAME "VK_EXT_validation_cache"
503
Jesse Hall72e6a132018-04-06 13:00:44 -0700504// 162
505@extension("VK_EXT_descriptor_indexing") define VK_EXT_DESCRIPTOR_INDEXING_SPEC_VERSION 2
506@extension("VK_EXT_descriptor_indexing") define VK_EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME "VK_EXT_descriptor_indexing"
507
Jesse Hallb5297192018-09-22 20:52:13 +0200508// 163
Jesse Hall77726222017-09-19 14:49:27 -0500509@extension("VK_EXT_shader_viewport_index_layer") define VK_EXT_SHADER_VIEWPORT_INDEX_LAYER_SPEC_VERSION 1
510@extension("VK_EXT_shader_viewport_index_layer") define VK_EXT_SHADER_VIEWPORT_INDEX_LAYER_EXTENSION_NAME "VK_EXT_shader_viewport_index_layer"
511
Jesse Hallb5297192018-09-22 20:52:13 +0200512// 165
513@extension("VK_NV_shading_rate_image") define VK_NV_SHADING_RATE_IMAGE_SPEC_VERSION 3
514@extension("VK_NV_shading_rate_image") define VK_NV_SHADING_RATE_IMAGE_EXTENSION_NAME "VK_NV_shading_rate_image"
515
516// 166
517@extension("VK_NVX_raytracing") define VK_NVX_RAYTRACING_SPEC_VERSION 1
518@extension("VK_NVX_raytracing") define VK_NVX_RAYTRACING_EXTENSION_NAME "VK_NVX_raytracing"
519
520// 167
521@extension("VK_NV_representative_fragment_test") define VK_NV_REPRESENTATIVE_FRAGMENT_TEST_SPEC_VERSION 1
522@extension("VK_NV_representative_fragment_test") define VK_NV_REPRESENTATIVE_FRAGMENT_TEST_EXTENSION_NAME "VK_NV_representative_fragment_test"
523
Daniel Koch09f7bf92017-10-05 00:26:58 -0400524// 169
525@extension("VK_KHR_maintenance3") define VK_KHR_MAINTENANCE3_SPEC_VERSION 1
526@extension("VK_KHR_maintenance3") define VK_KHR_MAINTENANCE3_EXTENSION_NAME "VK_KHR_maintenance3"
527
Jesse Hall54f8d132018-04-18 08:16:59 -0700528// 170
529@extension("VK_KHR_draw_indirect_count") define VK_KHR_DRAW_INDIRECT_COUNT_SPEC_VERSION 1
530@extension("VK_KHR_draw_indirect_count") define VK_KHR_DRAW_INDIRECT_COUNT_EXTENSION_NAME "VK_KHR_draw_indirect_count"
531
Jesse Hall8c954d32018-01-17 22:06:20 -0800532// 175
533@extension("VK_EXT_global_priority") define VK_EXT_GLOBAL_PRIORITY_SPEC_VERSION 1
534@extension("VK_EXT_global_priority") define VK_EXT_GLOBAL_PRIORITY_EXTENSION_NAME "VK_EXT_global_priority"
535
Jesse Halla13a3cf2018-07-09 15:51:52 -0700536// 178
537@extension("VK_KHR_8bit_storage") define VK_KHR_8BIT_STORAGE_SPEC_VERSION 1
538@extension("VK_KHR_8bit_storage") define VK_KHR_8BIT_STORAGE_EXTENSION_NAME "VK_KHR_8bit_storage"
539
Jesse Hall8c954d32018-01-17 22:06:20 -0800540// 179
541@extension("VK_EXT_external_memory_host") define VK_EXT_EXTERNAL_MEMORY_HOST_SPEC_VERSION 1
542@extension("VK_EXT_external_memory_host") define VK_EXT_EXTERNAL_MEMORY_HOST_EXTENSION_NAME "VK_EXT_external_memory_host"
543
Jesse Hall72e6a132018-04-06 13:00:44 -0700544// 180
545@extension("VK_AMD_buffer_marker") define VK_AMD_BUFFER_MARKER_SPEC_VERSION 1
546@extension("VK_AMD_buffer_marker") define VK_AMD_BUFFER_MARKER_EXTENSION_NAME "VK_AMD_buffer_marker"
547
548// 186
549@extension("VK_AMD_shader_core_properties") define VK_AMD_SHADER_CORE_PROPERTIES_SPEC_VERSION 1
550@extension("VK_AMD_shader_core_properties") define VK_AMD_SHADER_CORE_PROPERTIES_EXTENSION_NAME "VK_AMD_shader_core_properties"
551
552// 191
Jesse Hall4af6c462018-09-10 09:04:25 -0700553@extension("VK_EXT_vertex_attribute_divisor") define VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_SPEC_VERSION 2
554@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 -0700555
556// 199
557@extension("VK_NV_shader_subgroup_partitioned") define VK_NV_SHADER_SUBGROUP_PARTITIONED_SPEC_VERSION 1
558@extension("VK_NV_shader_subgroup_partitioned") define VK_NV_SHADER_SUBGROUP_PARTITIONED_EXTENSION_NAME "VK_NV_shader_subgroup_partitioned"
559
Jesse Hallb5297192018-09-22 20:52:13 +0200560// 202
561@extension("VK_NV_compute_shader_derivatives") define VK_NV_COMPUTE_SHADER_DERIVATIVES_SPEC_VERSION 1
562@extension("VK_NV_compute_shader_derivatives") define VK_NV_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME "VK_NV_compute_shader_derivatives"
563
564// 203
565@extension("VK_NV_mesh_shader") define VK_NV_MESH_SHADER_SPEC_VERSION 1
566@extension("VK_NV_mesh_shader") define VK_NV_MESH_SHADER_EXTENSION_NAME "VK_NV_mesh_shader"
567
568// 204
569@extension("VK_NV_fragment_shader_barycentric") define VK_NV_FRAGMENT_SHADER_BARYCENTRIC_SPEC_VERSION 1
570@extension("VK_NV_fragment_shader_barycentric") define VK_NV_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME "VK_NV_fragment_shader_barycentric"
571
572// 205
573@extension("VK_NV_shader_image_footprint") define VK_NV_SHADER_IMAGE_FOOTPRINT_SPEC_VERSION 1
574@extension("VK_NV_shader_image_footprint") define VK_NV_SHADER_IMAGE_FOOTPRINT_EXTENSION_NAME "VK_NV_shader_image_footprint"
575
576// 206
577@extension("VK_NV_scissor_exclusive") define VK_NV_SCISSOR_EXCLUSIVE_SPEC_VERSION 1
578@extension("VK_NV_scissor_exclusive") define VK_NV_SCISSOR_EXCLUSIVE_EXTENSION_NAME "VK_NV_scissor_exclusive"
579
Jesse Hall115df0c2018-07-30 12:00:59 -0700580// 207
581@extension("VK_NV_device_diagnostic_checkpoints") define VK_NV_DEVICE_DIAGNOSTIC_CHECKPOINTS_SPEC_VERSION 2
582@extension("VK_NV_device_diagnostic_checkpoints") define VK_NV_DEVICE_DIAGNOSTIC_CHECKPOINTS_EXTENSION_NAME "VK_NV_device_diagnostic_checkpoints"
583
Jesse Hall4af6c462018-09-10 09:04:25 -0700584// 212
585@extension("VK_KHR_vulkan_memory_model") define VK_KHR_VULKAN_MEMORY_MODEL_SPEC_VERSION 2
586@extension("VK_KHR_vulkan_memory_model") define VK_KHR_VULKAN_MEMORY_MODEL_EXTENSION_NAME "VK_KHR_vulkan_memory_model"
587
Jesse Halld27f6aa2015-08-15 17:58:48 -0700588/////////////
589// Types //
590/////////////
591
Jesse Hall5ae3abb2015-10-08 14:00:22 -0700592type u32 VkBool32
593type u32 VkFlags
594type u64 VkDeviceSize
595type u32 VkSampleMask
596
Jesse Halld27f6aa2015-08-15 17:58:48 -0700597/// Dispatchable handle types.
598@dispatchHandle type u64 VkInstance
599@dispatchHandle type u64 VkPhysicalDevice
600@dispatchHandle type u64 VkDevice
601@dispatchHandle type u64 VkQueue
Jesse Hall3fbc8562015-11-29 22:10:52 -0800602@dispatchHandle type u64 VkCommandBuffer
Jesse Halld27f6aa2015-08-15 17:58:48 -0700603
604/// Non dispatchable handle types.
605@nonDispatchHandle type u64 VkDeviceMemory
Jesse Hall3fbc8562015-11-29 22:10:52 -0800606@nonDispatchHandle type u64 VkCommandPool
Jesse Halld27f6aa2015-08-15 17:58:48 -0700607@nonDispatchHandle type u64 VkBuffer
608@nonDispatchHandle type u64 VkBufferView
609@nonDispatchHandle type u64 VkImage
610@nonDispatchHandle type u64 VkImageView
Jesse Halld27f6aa2015-08-15 17:58:48 -0700611@nonDispatchHandle type u64 VkShaderModule
Jesse Halld27f6aa2015-08-15 17:58:48 -0700612@nonDispatchHandle type u64 VkPipeline
613@nonDispatchHandle type u64 VkPipelineLayout
614@nonDispatchHandle type u64 VkSampler
615@nonDispatchHandle type u64 VkDescriptorSet
616@nonDispatchHandle type u64 VkDescriptorSetLayout
617@nonDispatchHandle type u64 VkDescriptorPool
Jesse Halld27f6aa2015-08-15 17:58:48 -0700618@nonDispatchHandle type u64 VkFence
619@nonDispatchHandle type u64 VkSemaphore
620@nonDispatchHandle type u64 VkEvent
621@nonDispatchHandle type u64 VkQueryPool
622@nonDispatchHandle type u64 VkFramebuffer
623@nonDispatchHandle type u64 VkRenderPass
624@nonDispatchHandle type u64 VkPipelineCache
Jesse Hall1356b0d2015-11-23 17:24:58 -0800625
Ian Elliott28bd2c32017-10-13 09:21:12 -0600626@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -0400627@nonDispatchHandle type u64 VkSamplerYcbcrConversion
628@nonDispatchHandle type u64 VkDescriptorUpdateTemplate
629
Jesse Hallad250842017-03-10 18:35:38 -0800630// 1
Jesse Hall3e0dc8f2015-11-30 00:42:57 -0800631@extension("VK_KHR_surface") @nonDispatchHandle type u64 VkSurfaceKHR
Jesse Hall1356b0d2015-11-23 17:24:58 -0800632
Jesse Hallad250842017-03-10 18:35:38 -0800633// 2
Jesse Hall3e0dc8f2015-11-30 00:42:57 -0800634@extension("VK_KHR_swapchain") @nonDispatchHandle type u64 VkSwapchainKHR
Jesse Hall1356b0d2015-11-23 17:24:58 -0800635
Jesse Hallad250842017-03-10 18:35:38 -0800636// 3
Jesse Hall3e0dc8f2015-11-30 00:42:57 -0800637@extension("VK_KHR_display") @nonDispatchHandle type u64 VkDisplayKHR
638@extension("VK_KHR_display") @nonDispatchHandle type u64 VkDisplayModeKHR
Jesse Halld27f6aa2015-08-15 17:58:48 -0700639
Jesse Hallad250842017-03-10 18:35:38 -0800640// 12
Jesse Hall715b86a2016-01-16 16:34:29 -0800641@extension("VK_EXT_debug_report") @nonDispatchHandle type u64 VkDebugReportCallbackEXT
642
Jesse Hallad250842017-03-10 18:35:38 -0800643// 86
644@extension("VK_KHR_descriptor_update_template") @nonDispatchHandle type u64 VkDescriptorUpdateTemplateKHR
645
646// 87
Chris Forbes289cb792016-12-30 15:03:55 +1300647@extension("VK_NVX_device_generated_commands") @nonDispatchHandle type u64 VkObjectTableNVX
648@extension("VK_NVX_device_generated_commands") @nonDispatchHandle type u64 VkIndirectCommandsLayoutNVX
649
Jesse Hall8c954d32018-01-17 22:06:20 -0800650// 129
651@extension("VK_EXT_debug_utils") @nonDispatchHandle type u64 VkDebugUtilsMessengerEXT
652
Jesse Hall076f95d2017-09-20 11:34:47 -0700653// 157
654@extension("VK_KHR_sampler_ycbcr_conversion") @nonDispatchHandle type u64 VkSamplerYcbcrConversionKHR
655
Jesse Hall77726222017-09-19 14:49:27 -0500656// 161
657@extension("VK_EXT_validation_cache") @nonDispatchHandle type u64 VkValidationCacheEXT
Jesse Halld27f6aa2015-08-15 17:58:48 -0700658
Jesse Hallb5297192018-09-22 20:52:13 +0200659// 166
660@extension("VK_NVX_raytracing") @nonDispatchHandle type u64 VkAccelerationStructureNVX
661
Jesse Halld27f6aa2015-08-15 17:58:48 -0700662/////////////
663// Enums //
664/////////////
665
666enum VkImageLayout {
667 VK_IMAGE_LAYOUT_UNDEFINED = 0x00000000, /// Implicit layout an image is when its contents are undefined due to various reasons (e.g. right after creation)
668 VK_IMAGE_LAYOUT_GENERAL = 0x00000001, /// General layout when image can be used for any kind of access
669 VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL = 0x00000002, /// Optimal layout when image is only used for color attachment read/write
670 VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL = 0x00000003, /// Optimal layout when image is only used for depth/stencil attachment read/write
671 VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL = 0x00000004, /// Optimal layout when image is used for read only depth/stencil attachment and shader access
672 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 -0800673 VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL = 0x00000006, /// Optimal layout when image is used only as source of transfer operations
674 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 -0700675 VK_IMAGE_LAYOUT_PREINITIALIZED = 0x00000008, /// Initial layout used when the data is populated by the CPU
Jesse Hall1356b0d2015-11-23 17:24:58 -0800676
Ian Elliott28bd2c32017-10-13 09:21:12 -0600677 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -0400678 VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL = 1000117000,
679 VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL = 1000117001,
680
Jesse Hallad250842017-03-10 18:35:38 -0800681 //@extension("VK_KHR_swapchain") // 2
Jesse Hallbd888842015-11-30 21:44:14 -0800682 VK_IMAGE_LAYOUT_PRESENT_SRC_KHR = 1000001002,
Chris Forbesaf3a1112017-01-31 15:37:03 +1300683
Jesse Hall05556b12017-05-18 17:40:25 -0700684 //@extension("VK_KHR_shared_presentable_image") // 112
Chris Forbesaf3a1112017-01-31 15:37:03 +1300685 VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR = 1000111000,
Jesse Hall076f95d2017-09-20 11:34:47 -0700686
687 //@extension("VK_KHR_maintenance2") // 118
688 VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL_KHR = 1000117000,
689 VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL_KHR = 1000117001,
Jesse Hallb5297192018-09-22 20:52:13 +0200690
691 //@extension("VK_NV_shading_rate_image") // 165
692 VK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV = 1000164003,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700693}
694
695enum VkAttachmentLoadOp {
696 VK_ATTACHMENT_LOAD_OP_LOAD = 0x00000000,
697 VK_ATTACHMENT_LOAD_OP_CLEAR = 0x00000001,
698 VK_ATTACHMENT_LOAD_OP_DONT_CARE = 0x00000002,
699}
700
701enum VkAttachmentStoreOp {
702 VK_ATTACHMENT_STORE_OP_STORE = 0x00000000,
703 VK_ATTACHMENT_STORE_OP_DONT_CARE = 0x00000001,
704}
705
706enum VkImageType {
707 VK_IMAGE_TYPE_1D = 0x00000000,
708 VK_IMAGE_TYPE_2D = 0x00000001,
709 VK_IMAGE_TYPE_3D = 0x00000002,
710}
711
712enum VkImageTiling {
Jesse Hallc7467b72015-11-29 21:05:26 -0800713 VK_IMAGE_TILING_OPTIMAL = 0x00000000,
714 VK_IMAGE_TILING_LINEAR = 0x00000001,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700715}
716
717enum VkImageViewType {
718 VK_IMAGE_VIEW_TYPE_1D = 0x00000000,
719 VK_IMAGE_VIEW_TYPE_2D = 0x00000001,
720 VK_IMAGE_VIEW_TYPE_3D = 0x00000002,
721 VK_IMAGE_VIEW_TYPE_CUBE = 0x00000003,
722 VK_IMAGE_VIEW_TYPE_1D_ARRAY = 0x00000004,
723 VK_IMAGE_VIEW_TYPE_2D_ARRAY = 0x00000005,
724 VK_IMAGE_VIEW_TYPE_CUBE_ARRAY = 0x00000006,
725}
726
Jesse Hall3fbc8562015-11-29 22:10:52 -0800727enum VkCommandBufferLevel {
728 VK_COMMAND_BUFFER_LEVEL_PRIMARY = 0x00000000,
729 VK_COMMAND_BUFFER_LEVEL_SECONDARY = 0x00000001,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700730}
731
Jesse Hall65ab5522015-11-30 00:07:16 -0800732enum VkComponentSwizzle {
733 VK_COMPONENT_SWIZZLE_IDENTITY = 0x00000000,
734 VK_COMPONENT_SWIZZLE_ZERO = 0x00000001,
735 VK_COMPONENT_SWIZZLE_ONE = 0x00000002,
736 VK_COMPONENT_SWIZZLE_R = 0x00000003,
737 VK_COMPONENT_SWIZZLE_G = 0x00000004,
738 VK_COMPONENT_SWIZZLE_B = 0x00000005,
739 VK_COMPONENT_SWIZZLE_A = 0x00000006,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700740}
741
742enum VkDescriptorType {
743 VK_DESCRIPTOR_TYPE_SAMPLER = 0x00000000,
744 VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER = 0x00000001,
745 VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE = 0x00000002,
746 VK_DESCRIPTOR_TYPE_STORAGE_IMAGE = 0x00000003,
747 VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER = 0x00000004,
748 VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER = 0x00000005,
749 VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER = 0x00000006,
750 VK_DESCRIPTOR_TYPE_STORAGE_BUFFER = 0x00000007,
751 VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC = 0x00000008,
752 VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC = 0x00000009,
753 VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT = 0x0000000a,
Jesse Hall4af6c462018-09-10 09:04:25 -0700754
755 //@extension("VK_EXT_inline_uniform_block") // 139
756 VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT = 1000138000,
Jesse Hallb5297192018-09-22 20:52:13 +0200757
758 //@extension("VK_NVX_raytracing") // 166
759 VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NVX = 1000165000,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700760}
761
Jesse Halld27f6aa2015-08-15 17:58:48 -0700762enum VkQueryType {
763 VK_QUERY_TYPE_OCCLUSION = 0x00000000,
764 VK_QUERY_TYPE_PIPELINE_STATISTICS = 0x00000001, /// Optional
Jesse Halla3a7a1d2015-11-24 11:37:23 -0800765 VK_QUERY_TYPE_TIMESTAMP = 0x00000002,
Jesse Hallb5297192018-09-22 20:52:13 +0200766
767 //@extension("VK_NVX_raytracing") // 166
768 VK_QUERY_TYPE_COMPACTED_SIZE_NVX = 1000165000,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700769}
770
Jesse Halld27f6aa2015-08-15 17:58:48 -0700771enum VkBorderColor {
772 VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK = 0x00000000,
773 VK_BORDER_COLOR_INT_TRANSPARENT_BLACK = 0x00000001,
774 VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK = 0x00000002,
775 VK_BORDER_COLOR_INT_OPAQUE_BLACK = 0x00000003,
776 VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE = 0x00000004,
777 VK_BORDER_COLOR_INT_OPAQUE_WHITE = 0x00000005,
778}
779
780enum VkPipelineBindPoint {
Jesse Hallc7467b72015-11-29 21:05:26 -0800781 VK_PIPELINE_BIND_POINT_GRAPHICS = 0x00000000,
782 VK_PIPELINE_BIND_POINT_COMPUTE = 0x00000001,
Jesse Hallb5297192018-09-22 20:52:13 +0200783
784 //@extension("VK_NVX_raytracing") // 166
785 VK_PIPELINE_BIND_POINT_RAYTRACING_NVX = 1000165000,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700786}
787
788enum VkPrimitiveTopology {
789 VK_PRIMITIVE_TOPOLOGY_POINT_LIST = 0x00000000,
790 VK_PRIMITIVE_TOPOLOGY_LINE_LIST = 0x00000001,
791 VK_PRIMITIVE_TOPOLOGY_LINE_STRIP = 0x00000002,
792 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST = 0x00000003,
793 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP = 0x00000004,
794 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN = 0x00000005,
Jesse Hall3fbc8562015-11-29 22:10:52 -0800795 VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY = 0x00000006,
796 VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY = 0x00000007,
797 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY = 0x00000008,
798 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY = 0x00000009,
Jesse Hall091ed9e2015-11-30 00:55:29 -0800799 VK_PRIMITIVE_TOPOLOGY_PATCH_LIST = 0x0000000a,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700800}
801
802enum VkSharingMode {
803 VK_SHARING_MODE_EXCLUSIVE = 0x00000000,
804 VK_SHARING_MODE_CONCURRENT = 0x00000001,
805}
806
807enum VkIndexType {
808 VK_INDEX_TYPE_UINT16 = 0x00000000,
809 VK_INDEX_TYPE_UINT32 = 0x00000001,
810}
811
Jesse Hall23ff73f2015-11-29 14:36:39 -0800812enum VkFilter {
813 VK_FILTER_NEAREST = 0x00000000,
814 VK_FILTER_LINEAR = 0x00000001,
Jesse Hall26763382016-05-20 07:13:52 -0700815
Jesse Hallad250842017-03-10 18:35:38 -0800816 //@extension("VK_IMG_filter_cubic") // 16
Jesse Hall26763382016-05-20 07:13:52 -0700817 VK_FILTER_CUBIC_IMG = 1000015000,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700818}
819
Jesse Hall23ff73f2015-11-29 14:36:39 -0800820enum VkSamplerMipmapMode {
Jesse Hall23ff73f2015-11-29 14:36:39 -0800821 VK_SAMPLER_MIPMAP_MODE_NEAREST = 0x00000001, /// Choose nearest mip level
822 VK_SAMPLER_MIPMAP_MODE_LINEAR = 0x00000002, /// Linear filter between mip levels
Jesse Halld27f6aa2015-08-15 17:58:48 -0700823}
824
Jesse Hall23ff73f2015-11-29 14:36:39 -0800825enum VkSamplerAddressMode {
Jesse Hallc7467b72015-11-29 21:05:26 -0800826 VK_SAMPLER_ADDRESS_MODE_REPEAT = 0x00000000,
827 VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT = 0x00000001,
828 VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE = 0x00000002,
829 VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER = 0x00000003,
830 VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE = 0x00000004,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700831}
832
833enum VkCompareOp {
834 VK_COMPARE_OP_NEVER = 0x00000000,
835 VK_COMPARE_OP_LESS = 0x00000001,
836 VK_COMPARE_OP_EQUAL = 0x00000002,
Jesse Hall3fbc8562015-11-29 22:10:52 -0800837 VK_COMPARE_OP_LESS_OR_EQUAL = 0x00000003,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700838 VK_COMPARE_OP_GREATER = 0x00000004,
839 VK_COMPARE_OP_NOT_EQUAL = 0x00000005,
Jesse Hall3fbc8562015-11-29 22:10:52 -0800840 VK_COMPARE_OP_GREATER_OR_EQUAL = 0x00000006,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700841 VK_COMPARE_OP_ALWAYS = 0x00000007,
842}
843
Jesse Hall65ab5522015-11-30 00:07:16 -0800844enum VkPolygonMode {
845 VK_POLYGON_MODE_FILL = 0x00000000,
846 VK_POLYGON_MODE_LINE = 0x00000001,
847 VK_POLYGON_MODE_POINT = 0x00000002,
Jesse Hall7ba0ac72017-07-07 17:13:23 -0700848
849 //@extension("VK_NV_fill_rectangle") // 154
850 VK_POLYGON_MODE_FILL_RECTANGLE_NV = 1000153000,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700851}
852
853enum VkFrontFace {
Jesse Hall3fbc8562015-11-29 22:10:52 -0800854 VK_FRONT_FACE_COUNTER_CLOCKWISE = 0x00000000,
855 VK_FRONT_FACE_CLOCKWISE = 0x00000001,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700856}
857
Jesse Hall65ab5522015-11-30 00:07:16 -0800858enum VkBlendFactor {
859 VK_BLEND_FACTOR_ZERO = 0x00000000,
860 VK_BLEND_FACTOR_ONE = 0x00000001,
861 VK_BLEND_FACTOR_SRC_COLOR = 0x00000002,
862 VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR = 0x00000003,
863 VK_BLEND_FACTOR_DST_COLOR = 0x00000004,
864 VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR = 0x00000005,
865 VK_BLEND_FACTOR_SRC_ALPHA = 0x00000006,
866 VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA = 0x00000007,
867 VK_BLEND_FACTOR_DST_ALPHA = 0x00000008,
868 VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA = 0x00000009,
869 VK_BLEND_FACTOR_CONSTANT_COLOR = 0x0000000a,
870 VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR = 0x0000000b,
871 VK_BLEND_FACTOR_CONSTANT_ALPHA = 0x0000000c,
872 VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA = 0x0000000d,
873 VK_BLEND_FACTOR_SRC_ALPHA_SATURATE = 0x0000000e,
874 VK_BLEND_FACTOR_SRC1_COLOR = 0x0000000f,
875 VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR = 0x00000010,
876 VK_BLEND_FACTOR_SRC1_ALPHA = 0x00000011,
877 VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA = 0x00000012,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700878}
879
880enum VkBlendOp {
881 VK_BLEND_OP_ADD = 0x00000000,
882 VK_BLEND_OP_SUBTRACT = 0x00000001,
883 VK_BLEND_OP_REVERSE_SUBTRACT = 0x00000002,
884 VK_BLEND_OP_MIN = 0x00000003,
885 VK_BLEND_OP_MAX = 0x00000004,
Jesse Hall7ba0ac72017-07-07 17:13:23 -0700886
887 //@extension("VK_EXT_blend_operation_advanced") // 149
888 VK_BLEND_OP_ZERO_EXT = 1000148000,
889 VK_BLEND_OP_SRC_EXT = 1000148001,
890 VK_BLEND_OP_DST_EXT = 1000148002,
891 VK_BLEND_OP_SRC_OVER_EXT = 1000148003,
892 VK_BLEND_OP_DST_OVER_EXT = 1000148004,
893 VK_BLEND_OP_SRC_IN_EXT = 1000148005,
894 VK_BLEND_OP_DST_IN_EXT = 1000148006,
895 VK_BLEND_OP_SRC_OUT_EXT = 1000148007,
896 VK_BLEND_OP_DST_OUT_EXT = 1000148008,
897 VK_BLEND_OP_SRC_ATOP_EXT = 1000148009,
898 VK_BLEND_OP_DST_ATOP_EXT = 1000148010,
899 VK_BLEND_OP_XOR_EXT = 1000148011,
900 VK_BLEND_OP_MULTIPLY_EXT = 1000148012,
901 VK_BLEND_OP_SCREEN_EXT = 1000148013,
902 VK_BLEND_OP_OVERLAY_EXT = 1000148014,
903 VK_BLEND_OP_DARKEN_EXT = 1000148015,
904 VK_BLEND_OP_LIGHTEN_EXT = 1000148016,
905 VK_BLEND_OP_COLORDODGE_EXT = 1000148017,
906 VK_BLEND_OP_COLORBURN_EXT = 1000148018,
907 VK_BLEND_OP_HARDLIGHT_EXT = 1000148019,
908 VK_BLEND_OP_SOFTLIGHT_EXT = 1000148020,
909 VK_BLEND_OP_DIFFERENCE_EXT = 1000148021,
910 VK_BLEND_OP_EXCLUSION_EXT = 1000148022,
911 VK_BLEND_OP_INVERT_EXT = 1000148023,
912 VK_BLEND_OP_INVERT_RGB_EXT = 1000148024,
913 VK_BLEND_OP_LINEARDODGE_EXT = 1000148025,
914 VK_BLEND_OP_LINEARBURN_EXT = 1000148026,
915 VK_BLEND_OP_VIVIDLIGHT_EXT = 1000148027,
916 VK_BLEND_OP_LINEARLIGHT_EXT = 1000148028,
917 VK_BLEND_OP_PINLIGHT_EXT = 1000148029,
918 VK_BLEND_OP_HARDMIX_EXT = 1000148030,
919 VK_BLEND_OP_HSL_HUE_EXT = 1000148031,
920 VK_BLEND_OP_HSL_SATURATION_EXT = 1000148032,
921 VK_BLEND_OP_HSL_COLOR_EXT = 1000148033,
922 VK_BLEND_OP_HSL_LUMINOSITY_EXT = 1000148034,
923 VK_BLEND_OP_PLUS_EXT = 1000148035,
924 VK_BLEND_OP_PLUS_CLAMPED_EXT = 1000148036,
925 VK_BLEND_OP_PLUS_CLAMPED_ALPHA_EXT = 1000148037,
926 VK_BLEND_OP_PLUS_DARKER_EXT = 1000148038,
927 VK_BLEND_OP_MINUS_EXT = 1000148039,
928 VK_BLEND_OP_MINUS_CLAMPED_EXT = 1000148040,
929 VK_BLEND_OP_CONTRAST_EXT = 1000148041,
930 VK_BLEND_OP_INVERT_OVG_EXT = 1000148042,
931 VK_BLEND_OP_RED_EXT = 1000148043,
932 VK_BLEND_OP_GREEN_EXT = 1000148044,
933 VK_BLEND_OP_BLUE_EXT = 1000148045,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700934}
935
936enum VkStencilOp {
937 VK_STENCIL_OP_KEEP = 0x00000000,
938 VK_STENCIL_OP_ZERO = 0x00000001,
939 VK_STENCIL_OP_REPLACE = 0x00000002,
Jesse Hall3fbc8562015-11-29 22:10:52 -0800940 VK_STENCIL_OP_INCREMENT_AND_CLAMP = 0x00000003,
941 VK_STENCIL_OP_DECREMENT_AND_CLAMP = 0x00000004,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700942 VK_STENCIL_OP_INVERT = 0x00000005,
Jesse Hall3fbc8562015-11-29 22:10:52 -0800943 VK_STENCIL_OP_INCREMENT_AND_WRAP = 0x00000006,
944 VK_STENCIL_OP_DECREMENT_AND_WRAP = 0x00000007,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700945}
946
947enum VkLogicOp {
948 VK_LOGIC_OP_CLEAR = 0x00000000,
949 VK_LOGIC_OP_AND = 0x00000001,
950 VK_LOGIC_OP_AND_REVERSE = 0x00000002,
951 VK_LOGIC_OP_COPY = 0x00000003,
952 VK_LOGIC_OP_AND_INVERTED = 0x00000004,
Jesse Hall3fbc8562015-11-29 22:10:52 -0800953 VK_LOGIC_OP_NO_OP = 0x00000005,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700954 VK_LOGIC_OP_XOR = 0x00000006,
955 VK_LOGIC_OP_OR = 0x00000007,
956 VK_LOGIC_OP_NOR = 0x00000008,
Jesse Hall3fbc8562015-11-29 22:10:52 -0800957 VK_LOGIC_OP_EQUIVALENT = 0x00000009,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700958 VK_LOGIC_OP_INVERT = 0x0000000a,
959 VK_LOGIC_OP_OR_REVERSE = 0x0000000b,
960 VK_LOGIC_OP_COPY_INVERTED = 0x0000000c,
961 VK_LOGIC_OP_OR_INVERTED = 0x0000000d,
962 VK_LOGIC_OP_NAND = 0x0000000e,
963 VK_LOGIC_OP_SET = 0x0000000f,
964}
965
Jesse Hall3fbc8562015-11-29 22:10:52 -0800966enum VkSystemAllocationScope {
Jesse Hall3e0dc8f2015-11-30 00:42:57 -0800967 VK_SYSTEM_ALLOCATION_SCOPE_COMMAND = 0x00000000,
Jesse Hall3fbc8562015-11-29 22:10:52 -0800968 VK_SYSTEM_ALLOCATION_SCOPE_OBJECT = 0x00000001,
969 VK_SYSTEM_ALLOCATION_SCOPE_CACHE = 0x00000002,
970 VK_SYSTEM_ALLOCATION_SCOPE_DEVICE = 0x00000003,
971 VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE = 0x00000004,
Jesse Hall03b6fe12015-11-24 12:44:21 -0800972}
973
Jesse Hall3fbc8562015-11-29 22:10:52 -0800974enum VkInternalAllocationType {
975 VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE = 0x00000000,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700976}
977
978enum VkPhysicalDeviceType {
979 VK_PHYSICAL_DEVICE_TYPE_OTHER = 0x00000000,
980 VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU = 0x00000001,
981 VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU = 0x00000002,
982 VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU = 0x00000003,
983 VK_PHYSICAL_DEVICE_TYPE_CPU = 0x00000004,
984}
985
Jesse Hall65ab5522015-11-30 00:07:16 -0800986enum VkVertexInputRate {
987 VK_VERTEX_INPUT_RATE_VERTEX = 0x00000000,
988 VK_VERTEX_INPUT_RATE_INSTANCE = 0x00000001,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700989}
990
991/// Vulkan format definitions
992enum VkFormat {
Jesse Hallf4ab2b12015-11-30 16:04:55 -0800993 VK_FORMAT_UNDEFINED = 0,
994 VK_FORMAT_R4G4_UNORM_PACK8 = 1,
995 VK_FORMAT_R4G4B4A4_UNORM_PACK16 = 2,
996 VK_FORMAT_B4G4R4A4_UNORM_PACK16 = 3,
997 VK_FORMAT_R5G6B5_UNORM_PACK16 = 4,
998 VK_FORMAT_B5G6R5_UNORM_PACK16 = 5,
999 VK_FORMAT_R5G5B5A1_UNORM_PACK16 = 6,
1000 VK_FORMAT_B5G5R5A1_UNORM_PACK16 = 7,
1001 VK_FORMAT_A1R5G5B5_UNORM_PACK16 = 8,
1002 VK_FORMAT_R8_UNORM = 9,
1003 VK_FORMAT_R8_SNORM = 10,
1004 VK_FORMAT_R8_USCALED = 11,
1005 VK_FORMAT_R8_SSCALED = 12,
1006 VK_FORMAT_R8_UINT = 13,
1007 VK_FORMAT_R8_SINT = 14,
1008 VK_FORMAT_R8_SRGB = 15,
1009 VK_FORMAT_R8G8_UNORM = 16,
1010 VK_FORMAT_R8G8_SNORM = 17,
1011 VK_FORMAT_R8G8_USCALED = 18,
1012 VK_FORMAT_R8G8_SSCALED = 19,
1013 VK_FORMAT_R8G8_UINT = 20,
1014 VK_FORMAT_R8G8_SINT = 21,
1015 VK_FORMAT_R8G8_SRGB = 22,
1016 VK_FORMAT_R8G8B8_UNORM = 23,
1017 VK_FORMAT_R8G8B8_SNORM = 24,
1018 VK_FORMAT_R8G8B8_USCALED = 25,
1019 VK_FORMAT_R8G8B8_SSCALED = 26,
1020 VK_FORMAT_R8G8B8_UINT = 27,
1021 VK_FORMAT_R8G8B8_SINT = 28,
1022 VK_FORMAT_R8G8B8_SRGB = 29,
1023 VK_FORMAT_B8G8R8_UNORM = 30,
1024 VK_FORMAT_B8G8R8_SNORM = 31,
1025 VK_FORMAT_B8G8R8_USCALED = 32,
1026 VK_FORMAT_B8G8R8_SSCALED = 33,
1027 VK_FORMAT_B8G8R8_UINT = 34,
1028 VK_FORMAT_B8G8R8_SINT = 35,
1029 VK_FORMAT_B8G8R8_SRGB = 36,
1030 VK_FORMAT_R8G8B8A8_UNORM = 37,
1031 VK_FORMAT_R8G8B8A8_SNORM = 38,
1032 VK_FORMAT_R8G8B8A8_USCALED = 39,
1033 VK_FORMAT_R8G8B8A8_SSCALED = 40,
1034 VK_FORMAT_R8G8B8A8_UINT = 41,
1035 VK_FORMAT_R8G8B8A8_SINT = 42,
1036 VK_FORMAT_R8G8B8A8_SRGB = 43,
1037 VK_FORMAT_B8G8R8A8_UNORM = 44,
1038 VK_FORMAT_B8G8R8A8_SNORM = 45,
1039 VK_FORMAT_B8G8R8A8_USCALED = 46,
1040 VK_FORMAT_B8G8R8A8_SSCALED = 47,
1041 VK_FORMAT_B8G8R8A8_UINT = 48,
1042 VK_FORMAT_B8G8R8A8_SINT = 49,
1043 VK_FORMAT_B8G8R8A8_SRGB = 50,
1044 VK_FORMAT_A8B8G8R8_UNORM_PACK32 = 51,
1045 VK_FORMAT_A8B8G8R8_SNORM_PACK32 = 52,
1046 VK_FORMAT_A8B8G8R8_USCALED_PACK32 = 53,
1047 VK_FORMAT_A8B8G8R8_SSCALED_PACK32 = 54,
1048 VK_FORMAT_A8B8G8R8_UINT_PACK32 = 55,
1049 VK_FORMAT_A8B8G8R8_SINT_PACK32 = 56,
1050 VK_FORMAT_A8B8G8R8_SRGB_PACK32 = 57,
1051 VK_FORMAT_A2R10G10B10_UNORM_PACK32 = 58,
1052 VK_FORMAT_A2R10G10B10_SNORM_PACK32 = 59,
1053 VK_FORMAT_A2R10G10B10_USCALED_PACK32 = 60,
1054 VK_FORMAT_A2R10G10B10_SSCALED_PACK32 = 61,
1055 VK_FORMAT_A2R10G10B10_UINT_PACK32 = 62,
1056 VK_FORMAT_A2R10G10B10_SINT_PACK32 = 63,
1057 VK_FORMAT_A2B10G10R10_UNORM_PACK32 = 64,
1058 VK_FORMAT_A2B10G10R10_SNORM_PACK32 = 65,
1059 VK_FORMAT_A2B10G10R10_USCALED_PACK32 = 66,
1060 VK_FORMAT_A2B10G10R10_SSCALED_PACK32 = 67,
1061 VK_FORMAT_A2B10G10R10_UINT_PACK32 = 68,
1062 VK_FORMAT_A2B10G10R10_SINT_PACK32 = 69,
1063 VK_FORMAT_R16_UNORM = 70,
1064 VK_FORMAT_R16_SNORM = 71,
1065 VK_FORMAT_R16_USCALED = 72,
1066 VK_FORMAT_R16_SSCALED = 73,
1067 VK_FORMAT_R16_UINT = 74,
1068 VK_FORMAT_R16_SINT = 75,
1069 VK_FORMAT_R16_SFLOAT = 76,
1070 VK_FORMAT_R16G16_UNORM = 77,
1071 VK_FORMAT_R16G16_SNORM = 78,
1072 VK_FORMAT_R16G16_USCALED = 79,
1073 VK_FORMAT_R16G16_SSCALED = 80,
1074 VK_FORMAT_R16G16_UINT = 81,
1075 VK_FORMAT_R16G16_SINT = 82,
1076 VK_FORMAT_R16G16_SFLOAT = 83,
1077 VK_FORMAT_R16G16B16_UNORM = 84,
1078 VK_FORMAT_R16G16B16_SNORM = 85,
1079 VK_FORMAT_R16G16B16_USCALED = 86,
1080 VK_FORMAT_R16G16B16_SSCALED = 87,
1081 VK_FORMAT_R16G16B16_UINT = 88,
1082 VK_FORMAT_R16G16B16_SINT = 89,
1083 VK_FORMAT_R16G16B16_SFLOAT = 90,
1084 VK_FORMAT_R16G16B16A16_UNORM = 91,
1085 VK_FORMAT_R16G16B16A16_SNORM = 92,
1086 VK_FORMAT_R16G16B16A16_USCALED = 93,
1087 VK_FORMAT_R16G16B16A16_SSCALED = 94,
1088 VK_FORMAT_R16G16B16A16_UINT = 95,
1089 VK_FORMAT_R16G16B16A16_SINT = 96,
1090 VK_FORMAT_R16G16B16A16_SFLOAT = 97,
1091 VK_FORMAT_R32_UINT = 98,
1092 VK_FORMAT_R32_SINT = 99,
1093 VK_FORMAT_R32_SFLOAT = 100,
1094 VK_FORMAT_R32G32_UINT = 101,
1095 VK_FORMAT_R32G32_SINT = 102,
1096 VK_FORMAT_R32G32_SFLOAT = 103,
1097 VK_FORMAT_R32G32B32_UINT = 104,
1098 VK_FORMAT_R32G32B32_SINT = 105,
1099 VK_FORMAT_R32G32B32_SFLOAT = 106,
1100 VK_FORMAT_R32G32B32A32_UINT = 107,
1101 VK_FORMAT_R32G32B32A32_SINT = 108,
1102 VK_FORMAT_R32G32B32A32_SFLOAT = 109,
1103 VK_FORMAT_R64_UINT = 110,
1104 VK_FORMAT_R64_SINT = 111,
1105 VK_FORMAT_R64_SFLOAT = 112,
1106 VK_FORMAT_R64G64_UINT = 113,
1107 VK_FORMAT_R64G64_SINT = 114,
1108 VK_FORMAT_R64G64_SFLOAT = 115,
1109 VK_FORMAT_R64G64B64_UINT = 116,
1110 VK_FORMAT_R64G64B64_SINT = 117,
1111 VK_FORMAT_R64G64B64_SFLOAT = 118,
1112 VK_FORMAT_R64G64B64A64_UINT = 119,
1113 VK_FORMAT_R64G64B64A64_SINT = 120,
1114 VK_FORMAT_R64G64B64A64_SFLOAT = 121,
1115 VK_FORMAT_B10G11R11_UFLOAT_PACK32 = 122,
1116 VK_FORMAT_E5B9G9R9_UFLOAT_PACK32 = 123,
1117 VK_FORMAT_D16_UNORM = 124,
1118 VK_FORMAT_X8_D24_UNORM_PACK32 = 125,
1119 VK_FORMAT_D32_SFLOAT = 126,
1120 VK_FORMAT_S8_UINT = 127,
1121 VK_FORMAT_D16_UNORM_S8_UINT = 128,
1122 VK_FORMAT_D24_UNORM_S8_UINT = 129,
1123 VK_FORMAT_D32_SFLOAT_S8_UINT = 130,
1124 VK_FORMAT_BC1_RGB_UNORM_BLOCK = 131,
1125 VK_FORMAT_BC1_RGB_SRGB_BLOCK = 132,
1126 VK_FORMAT_BC1_RGBA_UNORM_BLOCK = 133,
1127 VK_FORMAT_BC1_RGBA_SRGB_BLOCK = 134,
1128 VK_FORMAT_BC2_UNORM_BLOCK = 135,
1129 VK_FORMAT_BC2_SRGB_BLOCK = 136,
1130 VK_FORMAT_BC3_UNORM_BLOCK = 137,
1131 VK_FORMAT_BC3_SRGB_BLOCK = 138,
1132 VK_FORMAT_BC4_UNORM_BLOCK = 139,
1133 VK_FORMAT_BC4_SNORM_BLOCK = 140,
1134 VK_FORMAT_BC5_UNORM_BLOCK = 141,
1135 VK_FORMAT_BC5_SNORM_BLOCK = 142,
1136 VK_FORMAT_BC6H_UFLOAT_BLOCK = 143,
1137 VK_FORMAT_BC6H_SFLOAT_BLOCK = 144,
1138 VK_FORMAT_BC7_UNORM_BLOCK = 145,
1139 VK_FORMAT_BC7_SRGB_BLOCK = 146,
1140 VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK = 147,
1141 VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK = 148,
1142 VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK = 149,
1143 VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK = 150,
1144 VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK = 151,
1145 VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK = 152,
1146 VK_FORMAT_EAC_R11_UNORM_BLOCK = 153,
1147 VK_FORMAT_EAC_R11_SNORM_BLOCK = 154,
1148 VK_FORMAT_EAC_R11G11_UNORM_BLOCK = 155,
1149 VK_FORMAT_EAC_R11G11_SNORM_BLOCK = 156,
1150 VK_FORMAT_ASTC_4x4_UNORM_BLOCK = 157,
1151 VK_FORMAT_ASTC_4x4_SRGB_BLOCK = 158,
1152 VK_FORMAT_ASTC_5x4_UNORM_BLOCK = 159,
1153 VK_FORMAT_ASTC_5x4_SRGB_BLOCK = 160,
1154 VK_FORMAT_ASTC_5x5_UNORM_BLOCK = 161,
1155 VK_FORMAT_ASTC_5x5_SRGB_BLOCK = 162,
1156 VK_FORMAT_ASTC_6x5_UNORM_BLOCK = 163,
1157 VK_FORMAT_ASTC_6x5_SRGB_BLOCK = 164,
1158 VK_FORMAT_ASTC_6x6_UNORM_BLOCK = 165,
1159 VK_FORMAT_ASTC_6x6_SRGB_BLOCK = 166,
1160 VK_FORMAT_ASTC_8x5_UNORM_BLOCK = 167,
1161 VK_FORMAT_ASTC_8x5_SRGB_BLOCK = 168,
1162 VK_FORMAT_ASTC_8x6_UNORM_BLOCK = 169,
1163 VK_FORMAT_ASTC_8x6_SRGB_BLOCK = 170,
1164 VK_FORMAT_ASTC_8x8_UNORM_BLOCK = 171,
1165 VK_FORMAT_ASTC_8x8_SRGB_BLOCK = 172,
1166 VK_FORMAT_ASTC_10x5_UNORM_BLOCK = 173,
1167 VK_FORMAT_ASTC_10x5_SRGB_BLOCK = 174,
1168 VK_FORMAT_ASTC_10x6_UNORM_BLOCK = 175,
1169 VK_FORMAT_ASTC_10x6_SRGB_BLOCK = 176,
1170 VK_FORMAT_ASTC_10x8_UNORM_BLOCK = 177,
1171 VK_FORMAT_ASTC_10x8_SRGB_BLOCK = 178,
1172 VK_FORMAT_ASTC_10x10_UNORM_BLOCK = 179,
1173 VK_FORMAT_ASTC_10x10_SRGB_BLOCK = 180,
1174 VK_FORMAT_ASTC_12x10_UNORM_BLOCK = 181,
1175 VK_FORMAT_ASTC_12x10_SRGB_BLOCK = 182,
1176 VK_FORMAT_ASTC_12x12_UNORM_BLOCK = 183,
1177 VK_FORMAT_ASTC_12x12_SRGB_BLOCK = 184,
Chris Forbes289cb792016-12-30 15:03:55 +13001178
Ian Elliott28bd2c32017-10-13 09:21:12 -06001179 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04001180 VK_FORMAT_G8B8G8R8_422_UNORM = 1000156000,
1181 VK_FORMAT_B8G8R8G8_422_UNORM = 1000156001,
1182 VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM = 1000156002,
1183 VK_FORMAT_G8_B8R8_2PLANE_420_UNORM = 1000156003,
1184 VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM = 1000156004,
1185 VK_FORMAT_G8_B8R8_2PLANE_422_UNORM = 1000156005,
1186 VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM = 1000156006,
1187 VK_FORMAT_R10X6_UNORM_PACK16 = 1000156007,
1188 VK_FORMAT_R10X6G10X6_UNORM_2PACK16 = 1000156008,
1189 VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16 = 1000156009,
1190 VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16 = 1000156010,
1191 VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16 = 1000156011,
1192 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16 = 1000156012,
1193 VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16 = 1000156013,
1194 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16 = 1000156014,
1195 VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16 = 1000156015,
1196 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16 = 1000156016,
1197 VK_FORMAT_R12X4_UNORM_PACK16 = 1000156017,
1198 VK_FORMAT_R12X4G12X4_UNORM_2PACK16 = 1000156018,
1199 VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16 = 1000156019,
1200 VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16 = 1000156020,
1201 VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16 = 1000156021,
1202 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16 = 1000156022,
1203 VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16 = 1000156023,
1204 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16 = 1000156024,
1205 VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16 = 1000156025,
1206 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16 = 1000156026,
1207 VK_FORMAT_G16B16G16R16_422_UNORM = 1000156027,
1208 VK_FORMAT_B16G16R16G16_422_UNORM = 1000156028,
1209 VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM = 1000156029,
1210 VK_FORMAT_G16_B16R16_2PLANE_420_UNORM = 1000156030,
1211 VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM = 1000156031,
1212 VK_FORMAT_G16_B16R16_2PLANE_422_UNORM = 1000156032,
1213 VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM = 1000156033,
1214
Jesse Hallad250842017-03-10 18:35:38 -08001215 //@extension("VK_IMG_format_pvrtc") // 28
Jesse Halleb02c472017-02-24 15:13:45 -08001216 VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG = 1000054000,
1217 VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG = 1000054001,
1218 VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG = 1000054002,
1219 VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG = 1000054003,
1220 VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG = 1000054004,
1221 VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG = 1000054005,
1222 VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG = 1000054006,
1223 VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG = 1000054007,
Jesse Hall076f95d2017-09-20 11:34:47 -07001224
1225 //@extension("VK_KHR_sampler_ycbcr_conversion") // 157
1226 VK_FORMAT_G8B8G8R8_422_UNORM_KHR = 1000156000,
1227 VK_FORMAT_B8G8R8G8_422_UNORM_KHR = 1000156001,
1228 VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM_KHR = 1000156002,
1229 VK_FORMAT_G8_B8R8_2PLANE_420_UNORM_KHR = 1000156003,
1230 VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM_KHR = 1000156004,
1231 VK_FORMAT_G8_B8R8_2PLANE_422_UNORM_KHR = 1000156005,
1232 VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM_KHR = 1000156006,
1233 VK_FORMAT_R10X6_UNORM_PACK16_KHR = 1000156007,
1234 VK_FORMAT_R10X6G10X6_UNORM_2PACK16_KHR = 1000156008,
1235 VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16_KHR = 1000156009,
1236 VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16_KHR = 1000156010,
1237 VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16_KHR = 1000156011,
1238 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16_KHR = 1000156012,
1239 VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16_KHR = 1000156013,
1240 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16_KHR = 1000156014,
1241 VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16_KHR = 1000156015,
1242 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16_KHR = 1000156016,
1243 VK_FORMAT_R12X4_UNORM_PACK16_KHR = 1000156017,
1244 VK_FORMAT_R12X4G12X4_UNORM_2PACK16_KHR = 1000156018,
1245 VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16_KHR = 1000156019,
1246 VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16_KHR = 1000156020,
1247 VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16_KHR = 1000156021,
1248 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16_KHR = 1000156022,
1249 VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16_KHR = 1000156023,
1250 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16_KHR = 1000156024,
1251 VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16_KHR = 1000156025,
1252 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16_KHR = 1000156026,
1253 VK_FORMAT_G16B16G16R16_422_UNORM_KHR = 1000156027,
1254 VK_FORMAT_B16G16R16G16_422_UNORM_KHR = 1000156028,
1255 VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM_KHR = 1000156029,
1256 VK_FORMAT_G16_B16R16_2PLANE_420_UNORM_KHR = 1000156030,
1257 VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM_KHR = 1000156031,
1258 VK_FORMAT_G16_B16R16_2PLANE_422_UNORM_KHR = 1000156032,
1259 VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM_KHR = 1000156033,
Jesse Halld27f6aa2015-08-15 17:58:48 -07001260}
1261
Jesse Halld27f6aa2015-08-15 17:58:48 -07001262/// Structure type enumerant
1263enum VkStructureType {
1264 VK_STRUCTURE_TYPE_APPLICATION_INFO = 0,
Jesse Hallc7467b72015-11-29 21:05:26 -08001265 VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO = 1,
1266 VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO = 2,
1267 VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO = 3,
1268 VK_STRUCTURE_TYPE_SUBMIT_INFO = 4,
Jesse Hallf4ab2b12015-11-30 16:04:55 -08001269 VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO = 5,
Jesse Hallc7467b72015-11-29 21:05:26 -08001270 VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE = 6,
1271 VK_STRUCTURE_TYPE_BIND_SPARSE_INFO = 7,
1272 VK_STRUCTURE_TYPE_FENCE_CREATE_INFO = 8,
1273 VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO = 9,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07001274 VK_STRUCTURE_TYPE_EVENT_CREATE_INFO = 10,
Jesse Hallc7467b72015-11-29 21:05:26 -08001275 VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO = 11,
1276 VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO = 12,
1277 VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO = 13,
1278 VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO = 14,
1279 VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO = 15,
1280 VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO = 16,
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08001281 VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO = 17,
1282 VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO = 18,
1283 VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO = 19,
1284 VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO = 20,
1285 VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO = 21,
1286 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO = 22,
1287 VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO = 23,
1288 VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO = 24,
1289 VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO = 25,
1290 VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO = 26,
1291 VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO = 27,
1292 VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO = 28,
1293 VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO = 29,
1294 VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO = 30,
1295 VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO = 31,
1296 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO = 32,
1297 VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO = 33,
Jesse Hallf4ab2b12015-11-30 16:04:55 -08001298 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO = 34,
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08001299 VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET = 35,
1300 VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET = 36,
1301 VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO = 37,
1302 VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO = 38,
1303 VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO = 39,
Jesse Hallf4ab2b12015-11-30 16:04:55 -08001304 VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO = 40,
Jesse Hall3dd678a2016-01-08 21:52:01 -08001305 VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO = 41,
1306 VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO = 42,
1307 VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO = 43,
1308 VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER = 44,
1309 VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER = 45,
1310 VK_STRUCTURE_TYPE_MEMORY_BARRIER = 46,
1311 VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO = 47,
1312 VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO = 48,
Jesse Hall1356b0d2015-11-23 17:24:58 -08001313
Ian Elliott28bd2c32017-10-13 09:21:12 -06001314 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04001315 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES = 1000094000,
1316 VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO = 1000157000,
1317 VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO = 1000157001,
1318 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES = 1000083000,
1319 VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS = 1000127000,
1320 VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO = 1000127001,
1321 VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO = 1000060000,
1322 VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO = 1000060003,
1323 VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO = 1000060004,
1324 VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO = 1000060005,
1325 VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO = 1000060006,
1326 VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO = 1000060013,
1327 VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO = 1000060014,
1328 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES = 1000070000,
1329 VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO = 1000070001,
1330 VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2 = 1000146000,
1331 VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2 = 1000146001,
1332 VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2 = 1000146002,
1333 VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2 = 1000146003,
1334 VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2 = 1000146004,
1335 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2 = 1000059000,
1336 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2 = 1000059001,
1337 VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2 = 1000059002,
1338 VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2 = 1000059003,
1339 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2 = 1000059004,
1340 VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2 = 1000059005,
1341 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2 = 1000059006,
1342 VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2 = 1000059007,
1343 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2 = 1000059008,
1344 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES = 1000117000,
1345 VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO = 1000117001,
1346 VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO = 1000117002,
1347 VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO = 1000117003,
1348 VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO = 1000053000,
1349 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES = 1000053001,
1350 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES = 1000053002,
1351 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES = 1000120000,
1352 VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO = 1000145000,
1353 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES = 1000145001,
1354 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES = 1000145002,
1355 VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2 = 1000145003,
1356 VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO = 1000156000,
1357 VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO = 1000156001,
1358 VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO = 1000156002,
1359 VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO = 1000156003,
1360 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES = 1000156004,
1361 VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES = 1000156005,
1362 VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO = 1000085000,
1363 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO = 1000071000,
1364 VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES = 1000071001,
1365 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO = 1000071002,
1366 VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES = 1000071003,
1367 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES = 1000071004,
1368 VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO = 1000072000,
1369 VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO = 1000072001,
1370 VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO = 1000072002,
1371 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO = 1000112000,
1372 VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES = 1000112001,
1373 VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO = 1000113000,
1374 VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO = 1000077000,
1375 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO = 1000076000,
1376 VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES = 1000076001,
1377 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES = 1000168000,
1378 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT = 1000168001,
1379 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES = 1000063000,
1380 VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR = 1000060007,
1381
Jesse Hallad250842017-03-10 18:35:38 -08001382 //@extension("VK_KHR_swapchain") // 2
Jesse Hallbd888842015-11-30 21:44:14 -08001383 VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR = 1000001000,
1384 VK_STRUCTURE_TYPE_PRESENT_INFO_KHR = 1000001001,
Daniel Koch09f7bf92017-10-05 00:26:58 -04001385 // added as interaction from VK_KHR_device_group / VK 1.1
1386 VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR = 1000060008,
1387 VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR = 1000060009,
1388 VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR = 1000060010,
1389 VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR = 1000060011,
1390 VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR = 1000060012,
Jesse Hall1356b0d2015-11-23 17:24:58 -08001391
Jesse Hallad250842017-03-10 18:35:38 -08001392 //@extension("VK_KHR_display") // 3
Jesse Hallbd888842015-11-30 21:44:14 -08001393 VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR = 1000002000,
1394 VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR = 1000002001,
Jesse Hall1356b0d2015-11-23 17:24:58 -08001395
Jesse Hallad250842017-03-10 18:35:38 -08001396 //@extension("VK_KHR_display_swapchain") // 4
Jesse Hallbd888842015-11-30 21:44:14 -08001397 VK_STRUCTURE_TYPE_DISPLAY_DISPLAY_PRESENT_INFO_KHR = 1000003000,
Jesse Hallf9fa9a52016-01-08 16:08:51 -08001398
Jesse Hallad250842017-03-10 18:35:38 -08001399 //@extension("VK_KHR_xlib_surface") // 5
Jesse Hallf9fa9a52016-01-08 16:08:51 -08001400 VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR = 1000004000,
1401
Jesse Hallad250842017-03-10 18:35:38 -08001402 //@extension("VK_KHR_xcb_surface") // 6
Jesse Hallf9fa9a52016-01-08 16:08:51 -08001403 VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR = 1000005000,
1404
Jesse Hallad250842017-03-10 18:35:38 -08001405 //@extension("VK_KHR_wayland_surface") // 7
Jesse Hallf9fa9a52016-01-08 16:08:51 -08001406 VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR = 1000006000,
1407
Jesse Hallad250842017-03-10 18:35:38 -08001408 //@extension("VK_KHR_mir_surface") // 8
Jesse Hallf9fa9a52016-01-08 16:08:51 -08001409 VK_STRUCTURE_TYPE_MIR_SURFACE_CREATE_INFO_KHR = 1000007000,
1410
Jesse Hallad250842017-03-10 18:35:38 -08001411 //@extension("VK_KHR_android_surface") // 9
Jesse Hallf9fa9a52016-01-08 16:08:51 -08001412 VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR = 1000008000,
1413
Jesse Hallad250842017-03-10 18:35:38 -08001414 //@extension("VK_KHR_win32_surface") // 10
Jesse Hallf9fa9a52016-01-08 16:08:51 -08001415 VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR = 1000009000,
Jesse Hall543a7ff2016-01-08 16:38:30 -08001416
Jesse Hallad250842017-03-10 18:35:38 -08001417 //@extension("VK_ANDROID_native_buffer") // 11
Chia-I Wub262ddc2016-03-22 07:38:20 +08001418 VK_STRUCTURE_TYPE_NATIVE_BUFFER_ANDROID = 1000010000,
Chris Forbes8e4438b2016-12-07 16:26:49 +13001419 VK_STRUCTURE_TYPE_SWAPCHAIN_IMAGE_CREATE_INFO_ANDROID = 1000010001,
Chris Forbes1d4e5542017-02-15 19:38:50 +13001420 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENTATION_PROPERTIES_ANDROID = 1000010002,
Chia-I Wub262ddc2016-03-22 07:38:20 +08001421
Jesse Hallad250842017-03-10 18:35:38 -08001422 //@extension("VK_EXT_debug_report") // 12
Jesse Hall26763382016-05-20 07:13:52 -07001423 VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT = 1000011000,
1424
Jesse Hallad250842017-03-10 18:35:38 -08001425 //@extension("VK_AMD_rasterization_order") // 19
Jesse Hall26763382016-05-20 07:13:52 -07001426 VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD = 1000018000,
1427
Jesse Hallad250842017-03-10 18:35:38 -08001428 //@extension("VK_EXT_debug_marker") // 23
Jesse Hall26763382016-05-20 07:13:52 -07001429 VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT = 1000022000,
Jesse Hall26763382016-05-20 07:13:52 -07001430 VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT = 1000022001,
Jesse Hall26763382016-05-20 07:13:52 -07001431 VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT = 1000022002,
Jesse Hall56d386a2016-07-26 15:20:40 -07001432
Jesse Hallad250842017-03-10 18:35:38 -08001433 //@extension("VK_NV_dedicated_allocation") // 27
Jesse Hall56d386a2016-07-26 15:20:40 -07001434 VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV = 1000026000,
Jesse Hall56d386a2016-07-26 15:20:40 -07001435 VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV = 1000026001,
Jesse Hall56d386a2016-07-26 15:20:40 -07001436 VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV = 1000026002,
Chris Forbes289cb792016-12-30 15:03:55 +13001437
Jesse Hall7ba0ac72017-07-07 17:13:23 -07001438 //@extension("VK_AMD_texture_gather_bias_lod") // 42
1439 VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD = 1000041000,
1440
Jesse Hallb5297192018-09-22 20:52:13 +02001441 //@extension("VK_NV_corner_sampled_image") // 51
1442 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV = 1000050000,
1443
Daniel Koch09f7bf92017-10-05 00:26:58 -04001444 //@extension("VK_KHR_multiview") // 54
1445 VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO_KHR = 1000053000,
1446 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES_KHR = 1000053001,
1447 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES_KHR = 1000053002,
Jesse Hallad250842017-03-10 18:35:38 -08001448
1449 //@extension("VK_NV_external_memory") // 57
Jesse Halleb02c472017-02-24 15:13:45 -08001450 VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV = 1000056000,
1451 VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV = 1000056001,
Chris Forbes289cb792016-12-30 15:03:55 +13001452
Jesse Hallad250842017-03-10 18:35:38 -08001453 //@extension("VK_NV_external_memory_win32") // 58
Jesse Halleb02c472017-02-24 15:13:45 -08001454 VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV = 1000057000,
1455 VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV = 1000057001,
Chris Forbes289cb792016-12-30 15:03:55 +13001456
Jesse Hallad250842017-03-10 18:35:38 -08001457 //@extension("VK_NV_win32_keyed_mutex") // 59
Chris Forbes289cb792016-12-30 15:03:55 +13001458 VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV = 1000058000,
1459
Jesse Hallad250842017-03-10 18:35:38 -08001460 //@extension("VK_KHR_get_physical_device_properties2") // 60
Jesse Hall889cd9a2017-02-25 22:12:23 -08001461 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2_KHR = 1000059000,
1462 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2_KHR = 1000059001,
1463 VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2_KHR = 1000059002,
1464 VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2_KHR = 1000059003,
1465 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2_KHR = 1000059004,
1466 VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2_KHR = 1000059005,
1467 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2_KHR = 1000059006,
1468 VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2_KHR = 1000059007,
Chris Forbes1194ede2016-12-30 16:29:25 +13001469 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2_KHR = 1000059008,
1470
Daniel Koch09f7bf92017-10-05 00:26:58 -04001471 //@extension("VK_KHR_device_group") // 61
1472 VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO_KHR = 1000060000,
1473 VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO_KHR = 1000060003,
1474 VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO_KHR = 1000060004,
1475 VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO_KHR = 1000060005,
1476 VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO_KHR = 1000060006,
1477 VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR = 1000060007,
1478 // tokens 08-12 are listed with VK_KHR_swapchain
1479 VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO_KHR = 1000060013,
1480 VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO_KHR = 1000060014,
Jesse Hallad250842017-03-10 18:35:38 -08001481
1482 //@extension("VK_EXT_validation_flags") // 62
Jesse Halleb02c472017-02-24 15:13:45 -08001483 VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT = 1000061000,
Chris Forbes289cb792016-12-30 15:03:55 +13001484
Jesse Hallad250842017-03-10 18:35:38 -08001485 //@extension("VK_NN_vi_surface") // 63
Jesse Hall77ad05b2017-03-10 22:02:20 -08001486 VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN = 1000062000,
1487
Jesse Hall4af6c462018-09-10 09:04:25 -07001488 //@extension("VK_EXT_astc_decode_mode") // 68
1489 VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT = 1000067000,
1490 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT = 1000067001,
1491
Daniel Koch09f7bf92017-10-05 00:26:58 -04001492 //@extension("VK_KHR_device_group_creation") // 71
1493 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES_KHR = 1000070000,
1494 VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO_KHR = 1000070001,
Jesse Hallad250842017-03-10 18:35:38 -08001495
Jesse Hall9492f992017-08-28 12:10:06 -07001496 //@extension("VK_KHR_external_memory_capabilities") // 72
1497 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO_KHR = 1000071000,
1498 VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES_KHR = 1000071001,
1499 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO_KHR = 1000071002,
1500 VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES_KHR = 1000071003,
1501 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES_KHR = 1000071004,
Jesse Hallad250842017-03-10 18:35:38 -08001502
Jesse Hall9492f992017-08-28 12:10:06 -07001503 //@extension("VK_KHR_external_memory") // 73
1504 VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO_KHR = 1000072000,
1505 VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_KHR = 1000072001,
1506 VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_KHR = 1000072002,
Jesse Hallad250842017-03-10 18:35:38 -08001507
Jesse Hall9492f992017-08-28 12:10:06 -07001508 //@extension("VK_KHR_external_memory_win32") // 74
1509 VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR = 1000073000,
1510 VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR = 1000073001,
1511 VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR = 1000073002,
Jesse Hallad250842017-03-10 18:35:38 -08001512
Jesse Hall9492f992017-08-28 12:10:06 -07001513 //@extension("VK_KHR_external_memory_fd") // 75
1514 VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR = 1000074000,
1515 VK_STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR = 1000074001,
Jesse Hallad250842017-03-10 18:35:38 -08001516
Jesse Hall9492f992017-08-28 12:10:06 -07001517 //@extension("VK_KHR_win32_keyed_mutex") // 76
1518 VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR = 1000075000,
Jesse Hallad250842017-03-10 18:35:38 -08001519
Jesse Hall9492f992017-08-28 12:10:06 -07001520 //@extension("VK_KHR_external_semaphore_capabilities") // 77
1521 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO_KHR = 1000076000,
1522 VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES_KHR = 1000076001,
Jesse Hallad250842017-03-10 18:35:38 -08001523
Jesse Hall9492f992017-08-28 12:10:06 -07001524 //@extension("VK_KHR_external_semaphore") // 78
1525 VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO_KHR = 1000077000,
Jesse Hallad250842017-03-10 18:35:38 -08001526
Jesse Hall9492f992017-08-28 12:10:06 -07001527 //@extension("VK_KHR_external_semaphore_win32") // 79
1528 VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR = 1000078000,
1529 VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR = 1000078001,
1530 VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR = 1000078002,
Jesse Hallad250842017-03-10 18:35:38 -08001531
Jesse Hall9492f992017-08-28 12:10:06 -07001532 //@extension("VK_KHR_external_semaphore_fd") // 80
1533 VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR = 1000079000,
1534 VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR = 1000079001,
Jesse Hallad250842017-03-10 18:35:38 -08001535
1536 //@extension("VK_KHR_push_descriptor") // 81
1537 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR = 1000080000,
1538
Jesse Hall9492f992017-08-28 12:10:06 -07001539 //@extension("VK_KHR_16bit_storage") // 84
1540 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES_KHR = 1000083000,
1541
Jesse Hallad250842017-03-10 18:35:38 -08001542 //@extension("VK_KHR_incremental_present") // 85
Jesse Hall889cd9a2017-02-25 22:12:23 -08001543 VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR = 1000084000,
Chris Forbes289cb792016-12-30 15:03:55 +13001544
Jesse Halla13a3cf2018-07-09 15:51:52 -07001545 //@extension("VK_EXT_conditional_rendering") // 82
1546 VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT = 1000081000,
1547 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT = 1000081001,
1548 VK_STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT = 1000081002,
1549
Jesse Hallad250842017-03-10 18:35:38 -08001550 //@extension("VK_KHR_descriptor_update_template") // 86
1551 VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO_KHR = 1000085000,
1552
1553 //@extension("VK_NVX_device_generated_commands") // 87
Jesse Halleb02c472017-02-24 15:13:45 -08001554 VK_STRUCTURE_TYPE_OBJECT_TABLE_CREATE_INFO_NVX = 1000086000,
1555 VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NVX = 1000086001,
1556 VK_STRUCTURE_TYPE_CMD_PROCESS_COMMANDS_INFO_NVX = 1000086002,
1557 VK_STRUCTURE_TYPE_CMD_RESERVE_SPACE_FOR_COMMANDS_INFO_NVX = 1000086003,
1558 VK_STRUCTURE_TYPE_DEVICE_GENERATED_COMMANDS_LIMITS_NVX = 1000086004,
1559 VK_STRUCTURE_TYPE_DEVICE_GENERATED_COMMANDS_FEATURES_NVX = 1000086005,
Jesse Hall77ad05b2017-03-10 22:02:20 -08001560
Jesse Hallad250842017-03-10 18:35:38 -08001561 //@extension("VK_NV_clip_space_w_scaling") // 88
1562 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV = 1000087000,
1563
1564 //@extension("VK_EXT_display_surface_counter") // 91
Jesse Hall77726222017-09-19 14:49:27 -05001565 VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT = 1000090000,
Jesse Hall77ad05b2017-03-10 22:02:20 -08001566
Jesse Hallad250842017-03-10 18:35:38 -08001567 //@extension("VK_EXT_display_control") // 92
Jesse Hall77ad05b2017-03-10 22:02:20 -08001568 VK_STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT = 1000091000,
1569 VK_STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT = 1000091001,
1570 VK_STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT = 1000091002,
1571 VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT = 1000091003,
Jesse Hallad250842017-03-10 18:35:38 -08001572
1573 //@extension("VK_GOOGLE_display_timing") // 93
1574 VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE = 1000092000,
1575
1576 //@extension("VK_NVX_multiview_per_view_attributes") // 98
1577 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX = 1000097000,
1578
1579 //@extension("VK_NV_viewport_swizzle") // 99
1580 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV = 1000098000,
1581
1582 //@extension("VK_EXT_discard_rectangles") // 100
1583 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT = 1000099000,
1584 VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT = 1000099001,
1585
Jesse Hall8c954d32018-01-17 22:06:20 -08001586 //@extension("VK_EXT_conservative_rasterization") // 102
1587 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT = 1000101000,
1588 VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT = 1000101001,
1589
Jesse Halla13a3cf2018-07-09 15:51:52 -07001590 //@extension("VK_KHR_create_renderpass2") // 110
1591 VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2_KHR = 1000109000,
1592 VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2_KHR = 1000109001,
1593 VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2_KHR = 1000109002,
1594 VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2_KHR = 1000109003,
1595 VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2_KHR = 1000109004,
1596 VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO_KHR = 1000109005,
1597 VK_STRUCTURE_TYPE_SUBPASS_END_INFO_KHR = 1000109006,
1598
Jesse Hallfdc8ab32017-03-10 21:01:57 -08001599 //@extension("VK_EXT_hdr_metadata") // 106
1600 VK_STRUCTURE_TYPE_HDR_METADATA_EXT = 1000105000,
1601
Jesse Hall05556b12017-05-18 17:40:25 -07001602 //@extension("VK_KHR_shared_presentable_image") // 112
Chris Forbese2d3ee12017-03-16 16:10:15 +13001603 VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR = 1000111000,
1604
Jesse Hall9492f992017-08-28 12:10:06 -07001605 //@extension("VK_KHR_external_fence_capabilities") // 113
1606 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO_KHR = 1000112000,
1607 VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES_KHR = 1000112001,
1608
1609 //@extension("VK_KHR_external_fence") // 114
1610 VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO_KHR = 1000113000,
1611
1612 //@extension("VK_KHR_external_fence_win32") // 115
1613 VK_STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR = 1000114000,
1614 VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR = 1000114001,
1615 VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR = 1000114002,
1616
1617 //@extension("VK_KHR_external_fence_fd") // 117
1618 VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR = 1000115000,
1619 VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR = 1000115001,
1620
Jesse Hall076f95d2017-09-20 11:34:47 -07001621 //@extension("VK_KHR_maintenance2") // 118
1622 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES_KHR = 1000117000,
1623 VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO_KHR = 1000117001,
1624 VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO_KHR = 1000117002,
1625 VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO_KHR = 1000117003,
1626
Jesse Hall05556b12017-05-18 17:40:25 -07001627 //@extension("VK_KHR_get_surface_capabilities2") // 120
Chris Forbese2d3ee12017-03-16 16:10:15 +13001628 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR = 1000119000,
1629 VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR = 1000119001,
1630 VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR = 1000119002,
1631
Jesse Hall9492f992017-08-28 12:10:06 -07001632 //@extension("VK_KHR_variable_pointers") // 121
1633 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES_KHR = 1000120000,
1634
Jesse Hall54f8d132018-04-18 08:16:59 -07001635 //@extension("VK_KHR_display_properties2") // 122
1636 VK_STRUCTURE_TYPE_DISPLAY_PROPERTIES_2_KHR = 1000121000,
1637 VK_STRUCTURE_TYPE_DISPLAY_PLANE_PROPERTIES_2_KHR = 1000121001,
1638 VK_STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR = 1000121002,
1639 VK_STRUCTURE_TYPE_DISPLAY_PLANE_INFO_2_KHR = 1000121003,
1640 VK_STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR = 1000121004,
1641
Jesse Hallad250842017-03-10 18:35:38 -08001642 //@extension("VK_MVK_ios_surface") // 123
1643 VK_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK = 1000122000,
1644
1645 //@extension("VK_MVK_macos_surface") // 124
1646 VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK = 1000123000,
Jesse Hall7ba0ac72017-07-07 17:13:23 -07001647
Jesse Hall9492f992017-08-28 12:10:06 -07001648 //@extension("VK_KHR_dedicated_allocation") // 128
1649 VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS_KHR = 1000127000,
1650 VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO_KHR = 1000127001,
1651
Jesse Hall8c954d32018-01-17 22:06:20 -08001652 //@extension("VK_EXT_debug_utils") // 129
1653 VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT = 1000128000,
1654 VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT = 1000128001,
1655 VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT = 1000128002,
1656 VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT = 1000128003,
1657 VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT = 1000128004,
1658
Jesse Hall36215a92018-01-18 15:04:37 -08001659 //@extension("VK_ANDROID_external_memory_android_hardware_buffer") // 130
1660 VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID = 1000129000,
1661 VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID = 1000129001,
1662 VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID = 1000129002,
1663 VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID = 1000129003,
1664 VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID = 1000129004,
1665 VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID = 1000129005,
1666
Jesse Hall7ba0ac72017-07-07 17:13:23 -07001667 //@extension("VK_EXT_sampler_filter_minmax") // 131
1668 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES_EXT = 1000130000,
1669 VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO_EXT = 1000130001,
1670
Jesse Hall4af6c462018-09-10 09:04:25 -07001671 //@extension("VK_EXT_inline_uniform_block") // 139
1672 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT = 1000138000,
1673 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES_EXT = 1000138001,
1674 VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK_EXT = 1000138002,
1675 VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO_EXT = 1000138003,
1676
Jesse Hall77726222017-09-19 14:49:27 -05001677 //@extension("VK_EXT_sample_locations") // 144
1678 VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT = 1000143000,
1679 VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT = 1000143001,
1680 VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT = 1000143002,
1681 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT = 1000143003,
1682 VK_STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT = 1000143004,
1683
Jesse Hall9492f992017-08-28 12:10:06 -07001684 //@extension("VK_KHR_get_memory_requirements2") // 147
1685 VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2_KHR = 1000146000,
1686 VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2_KHR = 1000146001,
1687 VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2_KHR = 1000146002,
1688 VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2_KHR = 1000146003,
1689 VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2_KHR = 1000146004,
1690
Jesse Hall076f95d2017-09-20 11:34:47 -07001691 //@extension("VK_KHR_image_format_list") // 148
1692 VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO_KHR = 1000147000,
1693
Jesse Hall7ba0ac72017-07-07 17:13:23 -07001694 //@extension("VK_EXT_blend_operation_advanced") // 149
1695 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT = 1000148000,
1696 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT = 1000148001,
1697 VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT = 1000148002,
1698
1699 //@extension("VK_NV_fragment_coverage_to_color") // 150
1700 VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV = 1000149000,
1701
Jesse Hall77726222017-09-19 14:49:27 -05001702 //@extension("VK_NV_framebuffer_mixed_samples") // 153
Jesse Hall7ba0ac72017-07-07 17:13:23 -07001703 VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV = 1000152000,
Jesse Hall77726222017-09-19 14:49:27 -05001704
Jesse Hall076f95d2017-09-20 11:34:47 -07001705 //@extension("VK_KHR_sampler_ycbcr_conversion") // 157
1706 VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO_KHR = 1000156000,
1707 VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO_KHR = 1000156001,
1708 VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO_KHR = 1000156002,
1709 VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO_KHR = 1000156003,
1710 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES_KHR = 1000156004,
1711 VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES_KHR = 1000156005,
1712
1713 //@extension("VK_KHR_bind_memory2") // 158
1714 VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO_KHR = 1000157000,
1715 VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO_KHR = 1000157001,
1716
Jesse Hall77726222017-09-19 14:49:27 -05001717 //@extension("VK_EXT_validation_cache") // 161
1718 VK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT = 1000160000,
1719 VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT = 1000160001,
Daniel Koch09f7bf92017-10-05 00:26:58 -04001720
Jesse Hall72e6a132018-04-06 13:00:44 -07001721 //@extension("VK_EXT_descriptor_indexing") // 162
1722 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO_EXT = 1000161000,
1723 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES_EXT = 1000161001,
1724 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES_EXT = 1000161002,
1725 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO_EXT = 1000161003,
1726 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT_EXT = 1000161004,
1727
Jesse Hallb5297192018-09-22 20:52:13 +02001728 //@extension("VK_NV_shading_rate_image") // 165
1729 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV = 1000164000,
1730 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV = 1000164001,
1731 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV = 1000164002,
1732 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV = 1000164005,
1733
1734 //@extension("VK_NVX_raytracing") // 166
1735 VK_STRUCTURE_TYPE_RAYTRACING_PIPELINE_CREATE_INFO_NVX = 1000165000,
1736 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NVX = 1000165001,
1737 VK_STRUCTURE_TYPE_GEOMETRY_INSTANCE_NVX = 1000165002,
1738 VK_STRUCTURE_TYPE_GEOMETRY_NVX = 1000165003,
1739 VK_STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NVX = 1000165004,
1740 VK_STRUCTURE_TYPE_GEOMETRY_AABB_NVX = 1000165005,
1741 VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NVX = 1000165006,
1742 VK_STRUCTURE_TYPE_DESCRIPTOR_ACCELERATION_STRUCTURE_INFO_NVX = 1000165007,
1743 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NVX = 1000165008,
1744 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAYTRACING_PROPERTIES_NVX = 1000165009,
1745 VK_STRUCTURE_TYPE_HIT_SHADER_MODULE_CREATE_INFO_NVX = 1000165010,
1746
1747 //@extension("VK_NV_representative_fragment_test") // 167
1748 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV = 1000166000,
1749 VK_STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV = 1000166001,
1750
Daniel Koch09f7bf92017-10-05 00:26:58 -04001751 //@extension("VK_KHR_maintenance3") // 169
1752 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES_KHR = 1000168000,
1753 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT_KHR = 1000168001,
Jesse Hall8c954d32018-01-17 22:06:20 -08001754
1755 //@extension("VK_EXT_global_priority") // 175
1756 VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT = 1000174000,
1757
Jesse Halla13a3cf2018-07-09 15:51:52 -07001758 //@extension("VK_KHR_8bit_storage") // 178
1759 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES_KHR = 1000177000,
1760
Jesse Hall8c954d32018-01-17 22:06:20 -08001761 //@extension("VK_EXT_external_memory_host") // 179
1762 VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT = 1000178000,
1763 VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT = 1000178001,
1764 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT = 1000178002,
Jesse Hall72e6a132018-04-06 13:00:44 -07001765
1766 //@extension("VK_AMD_shader_core_properties") // 186
1767 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD = 1000185000,
1768
1769 //@extension("VK_EXT_vertex_attribute_divisor") // 191
1770 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT = 1000190000,
1771 VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT = 1000190001,
Jesse Hall4af6c462018-09-10 09:04:25 -07001772 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT = 1000190002,
Jesse Hall115df0c2018-07-30 12:00:59 -07001773
1774 //@extension("VK_NV_device_diagnostic_checkpoints") // 207
1775 VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NV = 1000206000,
1776 VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV = 1000206001,
Jesse Hall4af6c462018-09-10 09:04:25 -07001777
1778 //@extension("VK_KHR_vulkan_memory_model") // 212
1779 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES_KHR = 1000211000,
Jesse Halld27f6aa2015-08-15 17:58:48 -07001780}
1781
Jesse Hall65ab5522015-11-30 00:07:16 -08001782enum VkSubpassContents {
1783 VK_SUBPASS_CONTENTS_INLINE = 0x00000000,
1784 VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS = 0x00000001,
Jesse Halld27f6aa2015-08-15 17:58:48 -07001785}
1786
Jesse Hall543a7ff2016-01-08 16:38:30 -08001787enum VkPipelineCacheHeaderVersion {
1788 VK_PIPELINE_CACHE_HEADER_VERSION_ONE = 1,
1789}
1790
Jesse Hallbd888842015-11-30 21:44:14 -08001791@lastUnused(-11)
Jesse Halld27f6aa2015-08-15 17:58:48 -07001792/// Error and return codes
1793enum VkResult {
1794 // Return codes for successful operation execution (positive values)
Jesse Hallbd888842015-11-30 21:44:14 -08001795 VK_SUCCESS = 0,
1796 VK_NOT_READY = 1,
1797 VK_TIMEOUT = 2,
1798 VK_EVENT_SET = 3,
1799 VK_EVENT_RESET = 4,
1800 VK_INCOMPLETE = 5,
Jesse Halld27f6aa2015-08-15 17:58:48 -07001801
Jesse Hallad250842017-03-10 18:35:38 -08001802 //@extension("VK_KHR_swapchain") // 2
Jesse Hallbd888842015-11-30 21:44:14 -08001803 VK_SUBOPTIMAL_KHR = 1000001003,
Jesse Hall1356b0d2015-11-23 17:24:58 -08001804
Jesse Halld27f6aa2015-08-15 17:58:48 -07001805 // Error codes (negative values)
Jesse Hallbd888842015-11-30 21:44:14 -08001806 VK_ERROR_OUT_OF_HOST_MEMORY = 0xFFFFFFFF, // -1
1807 VK_ERROR_OUT_OF_DEVICE_MEMORY = 0xFFFFFFFE, // -2
1808 VK_ERROR_INITIALIZATION_FAILED = 0xFFFFFFFD, // -3
1809 VK_ERROR_DEVICE_LOST = 0xFFFFFFFC, // -4
1810 VK_ERROR_MEMORY_MAP_FAILED = 0xFFFFFFFB, // -5
1811 VK_ERROR_LAYER_NOT_PRESENT = 0xFFFFFFFA, // -6
1812 VK_ERROR_EXTENSION_NOT_PRESENT = 0xFFFFFFF9, // -7
1813 VK_ERROR_FEATURE_NOT_PRESENT = 0xFFFFFFF8, // -8
1814 VK_ERROR_INCOMPATIBLE_DRIVER = 0xFFFFFFF7, // -9
1815 VK_ERROR_TOO_MANY_OBJECTS = 0xFFFFFFF6, // -10
1816 VK_ERROR_FORMAT_NOT_SUPPORTED = 0xFFFFFFF5, // -11
Jesse Hall56d386a2016-07-26 15:20:40 -07001817 VK_ERROR_FRAGMENTED_POOL = 0xFFFFFFF4, // -12
Jesse Hall1356b0d2015-11-23 17:24:58 -08001818
Ian Elliott28bd2c32017-10-13 09:21:12 -06001819 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04001820 VK_ERROR_OUT_OF_POOL_MEMORY = 0xC4642878, // -1000069000
1821 VK_ERROR_INVALID_EXTERNAL_HANDLE = 0xC4641CBD, // -1000072003
1822
Jesse Hallad250842017-03-10 18:35:38 -08001823 //@extension("VK_KHR_surface") // 1
Jesse Hallbd888842015-11-30 21:44:14 -08001824 VK_ERROR_SURFACE_LOST_KHR = 0xC4653600, // -1000000000
Jesse Hallad250842017-03-10 18:35:38 -08001825 VK_ERROR_NATIVE_WINDOW_IN_USE_KHR = 0xC46535FF, // -1000000001
Jesse Halla6429252015-11-29 18:59:42 -08001826
Jesse Hallad250842017-03-10 18:35:38 -08001827 //@extension("VK_KHR_swapchain") // 2
Jesse Hallbd888842015-11-30 21:44:14 -08001828 VK_ERROR_OUT_OF_DATE_KHR = 0xC4653214, // -1000001004
Jesse Hall1356b0d2015-11-23 17:24:58 -08001829
Jesse Hallad250842017-03-10 18:35:38 -08001830 //@extension("VK_KHR_display_swapchain") // 4
Jesse Hallbd888842015-11-30 21:44:14 -08001831 VK_ERROR_INCOMPATIBLE_DISPLAY_KHR = 0xC4652A47, // -1000003001
Jesse Hall1356b0d2015-11-23 17:24:58 -08001832
Jesse Hallad250842017-03-10 18:35:38 -08001833 //@extension("VK_EXT_debug_report") // 12
Jesse Hall543a7ff2016-01-08 16:38:30 -08001834 VK_ERROR_VALIDATION_FAILED_EXT = 0xC4650B07, // -1000011001
Jesse Hall26763382016-05-20 07:13:52 -07001835
Jesse Hallad250842017-03-10 18:35:38 -08001836 //@extension("VK_NV_glsl_shader") // 13
Jesse Hall26763382016-05-20 07:13:52 -07001837 VK_ERROR_INVALID_SHADER_NV = 0xC4650720, // -1000012000
Jesse Hall77ad05b2017-03-10 22:02:20 -08001838
Jesse Hallad250842017-03-10 18:35:38 -08001839 //@extension("VK_KHR_maintenance1") // 70
Jesse Hall77ad05b2017-03-10 22:02:20 -08001840 VK_ERROR_OUT_OF_POOL_MEMORY_KHR = 0xC4642878, // -1000069000
Jesse Hallad250842017-03-10 18:35:38 -08001841
Jesse Hall8c954d32018-01-17 22:06:20 -08001842 //@extension("VK_EXT_global_priority") // 175
1843 VK_ERROR_NOT_PERMITTED_EXT = 0xC4628E4F, // -1000174001
1844
Jesse Hall9492f992017-08-28 12:10:06 -07001845 //@extension("VK_KHR_external_memory") // 73
1846 VK_ERROR_INVALID_EXTERNAL_HANDLE_KHR = 0xC4641CBD, // -1000072003
Jesse Hall72e6a132018-04-06 13:00:44 -07001847
1848 //@extension("VK_EXT_descriptor_indexing") // 162
1849 VK_ERROR_FRAGMENTATION_EXT = 0xc462c118, // -1000161000
Jesse Hall5ae3abb2015-10-08 14:00:22 -07001850}
1851
1852enum VkDynamicState {
1853 VK_DYNAMIC_STATE_VIEWPORT = 0x00000000,
1854 VK_DYNAMIC_STATE_SCISSOR = 0x00000001,
1855 VK_DYNAMIC_STATE_LINE_WIDTH = 0x00000002,
1856 VK_DYNAMIC_STATE_DEPTH_BIAS = 0x00000003,
1857 VK_DYNAMIC_STATE_BLEND_CONSTANTS = 0x00000004,
1858 VK_DYNAMIC_STATE_DEPTH_BOUNDS = 0x00000005,
1859 VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK = 0x00000006,
1860 VK_DYNAMIC_STATE_STENCIL_WRITE_MASK = 0x00000007,
1861 VK_DYNAMIC_STATE_STENCIL_REFERENCE = 0x00000008,
Jesse Hallad250842017-03-10 18:35:38 -08001862
1863 //@extension("VK_NV_clip_space_w_scaling") // 88
1864 VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV = 1000087000,
1865
1866 //@extension("VK_EXT_discard_rectangles") // 100
1867 VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT = 1000099000,
Jesse Hall77726222017-09-19 14:49:27 -05001868
1869 //@extension("VK_EXT_sample_locations") // 144
1870 VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT = 1000143000,
Jesse Hallb5297192018-09-22 20:52:13 +02001871
1872 //@extension("VK_NV_shading_rate_image") // 165
1873 VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV = 1000164004,
1874 VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV = 1000164006,
1875
1876 //@extension("VK_NV_scissor_exclusive") // 206
1877 VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV = 1000205001,
Jesse Halld27f6aa2015-08-15 17:58:48 -07001878}
1879
Jesse Hall05556b12017-05-18 17:40:25 -07001880enum VkObjectType {
1881 VK_OBJECT_TYPE_UNKNOWN = 0,
1882 VK_OBJECT_TYPE_INSTANCE = 1,
1883 VK_OBJECT_TYPE_PHYSICAL_DEVICE = 2,
1884 VK_OBJECT_TYPE_DEVICE = 3,
1885 VK_OBJECT_TYPE_QUEUE = 4,
1886 VK_OBJECT_TYPE_SEMAPHORE = 5,
1887 VK_OBJECT_TYPE_COMMAND_BUFFER = 6,
1888 VK_OBJECT_TYPE_FENCE = 7,
1889 VK_OBJECT_TYPE_DEVICE_MEMORY = 8,
1890 VK_OBJECT_TYPE_BUFFER = 9,
1891 VK_OBJECT_TYPE_IMAGE = 10,
1892 VK_OBJECT_TYPE_EVENT = 11,
1893 VK_OBJECT_TYPE_QUERY_POOL = 12,
1894 VK_OBJECT_TYPE_BUFFER_VIEW = 13,
1895 VK_OBJECT_TYPE_IMAGE_VIEW = 14,
1896 VK_OBJECT_TYPE_SHADER_MODULE = 15,
1897 VK_OBJECT_TYPE_PIPELINE_CACHE = 16,
1898 VK_OBJECT_TYPE_PIPELINE_LAYOUT = 17,
1899 VK_OBJECT_TYPE_RENDER_PASS = 18,
1900 VK_OBJECT_TYPE_PIPELINE = 19,
1901 VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT = 20,
1902 VK_OBJECT_TYPE_SAMPLER = 21,
1903 VK_OBJECT_TYPE_DESCRIPTOR_POOL = 22,
1904 VK_OBJECT_TYPE_DESCRIPTOR_SET = 23,
1905 VK_OBJECT_TYPE_FRAMEBUFFER = 24,
1906 VK_OBJECT_TYPE_COMMAND_POOL = 25,
1907
Ian Elliott28bd2c32017-10-13 09:21:12 -06001908 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04001909 VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION = 1000156000,
1910 VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE = 1000085000,
1911
Jesse Hall05556b12017-05-18 17:40:25 -07001912 //@extension("VK_KHR_surface") // 1
1913 VK_OBJECT_TYPE_SURFACE_KHR = 1000000000,
1914
1915 //@extension("VK_KHR_swapchain") // 2
1916 VK_OBJECT_TYPE_SWAPCHAIN_KHR = 1000001000,
1917
1918 //@extension("VK_KHR_display") // 3
1919 VK_OBJECT_TYPE_DISPLAY_KHR = 1000002000,
1920 VK_OBJECT_TYPE_DISPLAY_MODE_KHR = 1000002001,
1921
1922 //@extension("VK_KHR_debug_report") // 12
1923 VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT = 1000011000,
1924
1925 //@extension("VK_KHR_descriptor_update_template") // 86
1926 VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR = 1000085000,
1927
1928 //@extension("VK_NVX_device_generated_commands") // 87
1929 VK_OBJECT_TYPE_OBJECT_TABLE_NVX = 1000086000,
1930 VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX = 1000086001,
Jesse Hall77726222017-09-19 14:49:27 -05001931
Jesse Hall8c954d32018-01-17 22:06:20 -08001932 //@extension("VK_EXT_debug_utils") // 129
1933 VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT = 1000128000,
1934
Jesse Hall076f95d2017-09-20 11:34:47 -07001935 //@extension("VK_KHR_sampler_ycbcr_conversion") // 157
1936 VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR = 1000156000,
1937
Jesse Hall77726222017-09-19 14:49:27 -05001938 //@extension("VK_EXT_validation_cache") // 161
1939 VK_OBJECT_TYPE_VALIDATION_CACHE_EXT = 1000160000,
Jesse Hallb5297192018-09-22 20:52:13 +02001940
1941 //@extension("VK_NVX_raytracing") // 166
1942 VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_NVX = 1000165000,
Jesse Hall05556b12017-05-18 17:40:25 -07001943}
1944
Daniel Koch09f7bf92017-10-05 00:26:58 -04001945
Ian Elliott28bd2c32017-10-13 09:21:12 -06001946//@vulkan1_1 enums
Daniel Koch09f7bf92017-10-05 00:26:58 -04001947
1948enum VkPointClippingBehavior {
1949 VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES = 0,
1950 VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY = 1,
1951}
1952
1953enum VkTessellationDomainOrigin {
1954 VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT = 0,
1955 VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT = 1,
1956}
1957
1958enum VkSamplerYcbcrModelConversion {
1959 VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY = 0,
1960 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY = 1,
1961 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709 = 2,
1962 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601 = 3,
1963 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020 = 4,
1964}
1965
1966enum VkSamplerYcbcrRange {
1967 VK_SAMPLER_YCBCR_RANGE_ITU_FULL = 0,
1968 VK_SAMPLER_YCBCR_RANGE_ITU_NARROW = 1,
1969}
1970
1971enum VkChromaLocation {
1972 VK_CHROMA_LOCATION_COSITED_EVEN = 0,
1973 VK_CHROMA_LOCATION_MIDPOINT = 1,
1974}
1975
1976enum VkDescriptorUpdateTemplateType {
1977 VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET = 0,
1978 VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR = 1,
1979}
1980
Jesse Halla13a3cf2018-07-09 15:51:52 -07001981enum VkVendorId {
1982 VK_VENDOR_ID_VIV = 0x10001,
1983 VK_VENDOR_ID_VSI = 0x10002,
1984 VK_VENDOR_ID_KAZAN = 0x10003,
1985}
1986
Jesse Hallad250842017-03-10 18:35:38 -08001987@extension("VK_KHR_surface") // 1
Michael Lentine88594d72015-11-12 12:49:45 -08001988enum VkPresentModeKHR {
1989 VK_PRESENT_MODE_IMMEDIATE_KHR = 0x00000000,
1990 VK_PRESENT_MODE_MAILBOX_KHR = 0x00000001,
1991 VK_PRESENT_MODE_FIFO_KHR = 0x00000002,
Jesse Hall03b6fe12015-11-24 12:44:21 -08001992 VK_PRESENT_MODE_FIFO_RELAXED_KHR = 0x00000003,
Jesse Hall77ad05b2017-03-10 22:02:20 -08001993
Jesse Hall05556b12017-05-18 17:40:25 -07001994 //@extension("VK_KHR_shared_presentable_image") // 112
Jesse Hall77ad05b2017-03-10 22:02:20 -08001995 VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR = 1000111000,
1996 VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR = 1000111001,
Michael Lentine88594d72015-11-12 12:49:45 -08001997}
1998
Jesse Hallad250842017-03-10 18:35:38 -08001999@extension("VK_KHR_surface") // 1
Michael Lentine88594d72015-11-12 12:49:45 -08002000enum VkColorSpaceKHR {
Daniel Koch09f7bf92017-10-05 00:26:58 -04002001 VK_COLOR_SPACE_SRGB_NONLINEAR_KHR = 0x00000000,
Jesse Hall77ad05b2017-03-10 22:02:20 -08002002
Jesse Hallf5ad48b2017-03-20 13:09:19 -07002003 //@extension("VK_EXT_swapchain_colorspace") // 105
2004 VK_COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT = 1000104001,
2005 VK_COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT = 1000104002,
2006 VK_COLOR_SPACE_DCI_P3_LINEAR_EXT = 1000104003,
2007 VK_COLOR_SPACE_DCI_P3_NONLINEAR_EXT = 1000104004,
2008 VK_COLOR_SPACE_BT709_LINEAR_EXT = 1000104005,
2009 VK_COLOR_SPACE_BT709_NONLINEAR_EXT = 1000104006,
2010 VK_COLOR_SPACE_BT2020_LINEAR_EXT = 1000104007,
2011 VK_COLOR_SPACE_HDR10_ST2084_EXT = 1000104008,
2012 VK_COLOR_SPACE_DOLBYVISION_EXT = 1000104009,
2013 VK_COLOR_SPACE_HDR10_HLG_EXT = 1000104010,
Courtney Goeltzenleuchter7f558ed2017-01-23 17:15:24 -07002014 VK_COLOR_SPACE_ADOBERGB_LINEAR_EXT = 1000104011,
2015 VK_COLOR_SPACE_ADOBERGB_NONLINEAR_EXT = 1000104012,
Jesse Hallf5ad48b2017-03-20 13:09:19 -07002016 VK_COLOR_SPACE_PASS_THROUGH_EXT = 1000104013,
Jesse Hall77726222017-09-19 14:49:27 -05002017 VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT = 1000104014,
Michael Lentine88594d72015-11-12 12:49:45 -08002018}
Jesse Halld27f6aa2015-08-15 17:58:48 -07002019
Jesse Hallad250842017-03-10 18:35:38 -08002020@extension("VK_EXT_debug_report") // 12
Jesse Hall715b86a2016-01-16 16:34:29 -08002021enum VkDebugReportObjectTypeEXT {
2022 VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT = 0,
2023 VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT = 1,
2024 VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT = 2,
2025 VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT = 3,
2026 VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT = 4,
2027 VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT = 5,
2028 VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT = 6,
2029 VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT = 7,
2030 VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT = 8,
2031 VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT = 9,
2032 VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT = 10,
2033 VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT = 11,
2034 VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT = 12,
2035 VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT = 13,
2036 VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT = 14,
2037 VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT = 15,
2038 VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT = 16,
2039 VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT = 17,
2040 VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT = 18,
2041 VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT = 19,
2042 VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT = 20,
2043 VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT = 21,
2044 VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT = 22,
2045 VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT = 23,
2046 VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT = 24,
2047 VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT = 25,
2048 VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT = 26,
2049 VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT = 27,
Jesse Hall7ba0ac72017-07-07 17:13:23 -07002050 VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT = 28,
Chris Forbes289cb792016-12-30 15:03:55 +13002051 VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT = 29,
2052 VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT = 30,
2053 VK_DEBUG_REPORT_OBJECT_TYPE_OBJECT_TABLE_NVX_EXT = 31,
2054 VK_DEBUG_REPORT_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX_EXT = 32,
Jesse Hallf5ad48b2017-03-20 13:09:19 -07002055
Jesse Hall77726222017-09-19 14:49:27 -05002056 //extension("VK_EXT_validation_cache") // 161
Jesse Hall8c954d32018-01-17 22:06:20 -08002057 VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT = 33,
Jesse Hall77726222017-09-19 14:49:27 -05002058
Jesse Hallf5ad48b2017-03-20 13:09:19 -07002059 //extension("VK_KHR_descriptor_update_template") // 86
2060 VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR_EXT = 1000085000,
Jesse Hall77726222017-09-19 14:49:27 -05002061
Jesse Hall076f95d2017-09-20 11:34:47 -07002062 //@extension("VK_KHR_sampler_ycbcr_conversion") // 157
2063 VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR_EXT = 1000156000,
Jesse Hallb5297192018-09-22 20:52:13 +02002064
2065 //@extension("VK_NVX_raytracing") // 166
2066 VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NVX_EXT = 1000165000,
Jesse Hall715b86a2016-01-16 16:34:29 -08002067}
2068
Jesse Hallad250842017-03-10 18:35:38 -08002069@extension("VK_AMD_rasterization_order") // 19
Jesse Hall26763382016-05-20 07:13:52 -07002070enum VkRasterizationOrderAMD {
2071 VK_RASTERIZATION_ORDER_STRICT_AMD = 0,
2072 VK_RASTERIZATION_ORDER_RELAXED_AMD = 1,
2073}
2074
Jesse Hall8c954d32018-01-17 22:06:20 -08002075@extension("VK_AMD_shader_info") // 43
2076enum VkShaderInfoTypeAMD {
2077 VK_SHADER_INFO_TYPE_STATISTICS_AMD = 0,
2078 VK_SHADER_INFO_TYPE_BINARY_AMD = 1,
2079 VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD = 2,
2080}
2081
Jesse Hallad250842017-03-10 18:35:38 -08002082@extension("VK_EXT_validation_flags") // 62
Chris Forbes289cb792016-12-30 15:03:55 +13002083enum VkValidationCheckEXT {
2084 VK_VALIDATION_CHECK_ALL_EXT = 0,
Jesse Hall7ba0ac72017-07-07 17:13:23 -07002085 VK_VALIDATION_CHECK_SHADERS_EXT = 1,
Chris Forbes289cb792016-12-30 15:03:55 +13002086}
2087
Jesse Hallad250842017-03-10 18:35:38 -08002088@extension("VK_KHR_descriptor_update_template") // 86
2089enum VkDescriptorUpdateTemplateTypeKHR {
2090 VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET_KHR = 0,
2091 VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR = 1,
2092}
2093
2094@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13002095enum VkIndirectCommandsTokenTypeNVX {
Jesse Hall7ba0ac72017-07-07 17:13:23 -07002096 VK_INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NVX = 0,
2097 VK_INDIRECT_COMMANDS_TOKEN_TYPE_DESCRIPTOR_SET_NVX = 1,
2098 VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NVX = 2,
2099 VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NVX = 3,
2100 VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NVX = 4,
2101 VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NVX = 5,
2102 VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NVX = 6,
2103 VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NVX = 7,
Chris Forbes289cb792016-12-30 15:03:55 +13002104}
2105
Jesse Hallad250842017-03-10 18:35:38 -08002106@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13002107enum VkObjectEntryTypeNVX {
Jesse Hall7ba0ac72017-07-07 17:13:23 -07002108 VK_OBJECT_ENTRY_TYPE_DESCRIPTOR_SET_NVX = 0,
2109 VK_OBJECT_ENTRY_TYPE_PIPELINE_NVX = 1,
2110 VK_OBJECT_ENTRY_TYPE_INDEX_BUFFER_NVX = 2,
2111 VK_OBJECT_ENTRY_TYPE_VERTEX_BUFFER_NVX = 3,
2112 VK_OBJECT_ENTRY_TYPE_PUSH_CONSTANT_NVX = 4,
Chris Forbes289cb792016-12-30 15:03:55 +13002113}
Jesse Hall715b86a2016-01-16 16:34:29 -08002114
Jesse Hallad250842017-03-10 18:35:38 -08002115@extension("VK_EXT_display_control") // 92
Jesse Hall77ad05b2017-03-10 22:02:20 -08002116enum VkDisplayPowerStateEXT {
2117 VK_DISPLAY_POWER_STATE_OFF_EXT = 0,
2118 VK_DISPLAY_POWER_STATE_SUSPEND_EXT = 1,
2119 VK_DISPLAY_POWER_STATE_ON_EXT = 2,
2120}
2121
Jesse Hallad250842017-03-10 18:35:38 -08002122@extension("VK_EXT_display_control") // 92
Jesse Hall77ad05b2017-03-10 22:02:20 -08002123enum VkDeviceEventTypeEXT {
2124 VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT = 0,
2125}
2126
Jesse Hallad250842017-03-10 18:35:38 -08002127@extension("VK_EXT_display_control") // 92
Jesse Hall77ad05b2017-03-10 22:02:20 -08002128enum VkDisplayEventTypeEXT {
2129 VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT = 0,
2130}
2131
Jesse Hallad250842017-03-10 18:35:38 -08002132@extension("VK_NV_viewport_swizzle") // 99
2133enum VkViewportCoordinateSwizzleNV {
2134 VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV = 0,
2135 VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV = 1,
2136 VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV = 2,
2137 VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV = 3,
2138 VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV = 4,
2139 VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV = 5,
2140 VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV = 6,
2141 VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV = 7,
2142}
2143
2144@extension("VK_EXT_discard_rectangles") // 100
2145enum VkDiscardRectangleModeEXT {
2146 VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT = 0,
2147 VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT = 1,
2148}
2149
Jesse Hall8c954d32018-01-17 22:06:20 -08002150@extension("VK_EXT_conservative_rasterization") // 102
2151enum VkConservativeRasterizationModeEXT {
2152 VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT = 0,
2153 VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT = 1,
2154 VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT = 2,
2155}
2156
Jesse Hall076f95d2017-09-20 11:34:47 -07002157@extension("VK_KHR_maintenance2") // 118
2158enum VkPointClippingBehaviorKHR {
2159 VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES_KHR = 0,
2160 VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY_KHR = 1,
2161}
2162
2163@extension("VK_KHR_maintenance2") // 118
2164enum VkTessellationDomainOriginKHR {
2165 VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT_KHR = 0,
2166 VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT_KHR = 1,
2167}
2168
Jesse Hall7ba0ac72017-07-07 17:13:23 -07002169@extension("VK_EXT_sampler_filter_minmax") // 131
2170enum VkSamplerReductionModeEXT {
2171 VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_EXT = 0,
2172 VK_SAMPLER_REDUCTION_MODE_MIN_EXT = 1,
2173 VK_SAMPLER_REDUCTION_MODE_MAX_EXT = 2,
2174}
2175
2176@extension("VK_EXT_blend_operation_advanced") // 149
2177enum VkBlendOverlapEXT {
2178 VK_BLEND_OVERLAP_UNCORRELATED_EXT = 0,
2179 VK_BLEND_OVERLAP_DISJOINT_EXT = 1,
2180 VK_BLEND_OVERLAP_CONJOINT_EXT = 2,
2181}
2182
2183@extension("VK_NV_framebuffer_mixed_samples") // 153
2184enum VkCoverageModulationModeNV {
2185 VK_COVERAGE_MODULATION_MODE_NONE_NV = 0,
2186 VK_COVERAGE_MODULATION_MODE_RGB_NV = 1,
2187 VK_COVERAGE_MODULATION_MODE_ALPHA_NV = 2,
2188 VK_COVERAGE_MODULATION_MODE_RGBA_NV = 3,
2189}
2190
Jesse Hall076f95d2017-09-20 11:34:47 -07002191@extension("VK_KHR_sampler_ycbcr_conversion") // 157
2192enum VkSamplerYcbcrModelConversionKHR {
2193 VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY_KHR = 0,
2194 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY_KHR = 1,
2195 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709_KHR = 2,
2196 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601_KHR = 3,
2197 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020_KHR = 4,
2198}
2199
2200@extension("VK_KHR_sampler_ycbcr_conversion") // 157
2201enum VkSamplerYcbcrRangeKHR {
2202 VK_SAMPLER_YCBCR_RANGE_ITU_FULL_KHR = 0,
2203 VK_SAMPLER_YCBCR_RANGE_ITU_NARROW_KHR = 1,
2204}
2205
2206@extension("VK_KHR_sampler_ycbcr_conversion") // 157
2207enum VkChromaLocationKHR {
2208 VK_CHROMA_LOCATION_COSITED_EVEN_KHR = 0,
2209 VK_CHROMA_LOCATION_MIDPOINT_KHR = 1,
2210}
2211
Jesse Hall77726222017-09-19 14:49:27 -05002212@extension("VK_EXT_validation_cache") // 161
2213enum VkValidationCacheHeaderVersionEXT {
2214 VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT = 1,
2215}
2216
Jesse Hallb5297192018-09-22 20:52:13 +02002217@extension("VK_NV_shading_rate_image") // 165
2218enum VkShadingRatePaletteEntryNV {
2219 VK_SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV = 0,
2220 VK_SHADING_RATE_PALETTE_ENTRY_16_INVOCATIONS_PER_PIXEL_NV = 1,
2221 VK_SHADING_RATE_PALETTE_ENTRY_8_INVOCATIONS_PER_PIXEL_NV = 2,
2222 VK_SHADING_RATE_PALETTE_ENTRY_4_INVOCATIONS_PER_PIXEL_NV = 3,
2223 VK_SHADING_RATE_PALETTE_ENTRY_2_INVOCATIONS_PER_PIXEL_NV = 4,
2224 VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_PIXEL_NV = 5,
2225 VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X1_PIXELS_NV = 6,
2226 VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_1X2_PIXELS_NV = 7,
2227 VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X2_PIXELS_NV = 8,
2228 VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X2_PIXELS_NV = 9,
2229 VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X4_PIXELS_NV = 10,
2230 VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV = 11,
2231}
2232
2233@extension("VK_NV_shading_rate_image") // 165
2234enum VkCoarseSampleOrderTypeNV {
2235 VK_COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV = 0,
2236 VK_COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV = 1,
2237 VK_COARSE_SAMPLE_ORDER_TYPE_PIXEL_MAJOR_NV = 2,
2238 VK_COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV = 3,
2239}
2240
2241@extension("VK_NVX_raytracing") // 166
2242enum VkGeometryTypeNVX {
2243 VK_GEOMETRY_TYPE_TRIANGLES_NVX = 0,
2244 VK_GEOMETRY_TYPE_AABBS_NVX = 1,
2245}
2246
2247@extension("VK_NVX_raytracing") // 166
2248enum VkAccelerationStructureTypeNVX {
2249 VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_NVX = 0,
2250 VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NVX = 1,
2251}
2252
2253@extension("VK_NVX_raytracing") // 166
2254enum VkCopyAccelerationStructureModeNVX {
2255 VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_NVX = 0,
2256 VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_NVX = 1,
2257}
2258
Jesse Hall8c954d32018-01-17 22:06:20 -08002259@extension("VK_EXT_global_priority") // 175
2260enum VkQueueGlobalPriorityEXT {
2261 VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT = 128,
2262 VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT = 256,
2263 VK_QUEUE_GLOBAL_PRIORITY_HIGH_EXT = 512,
2264 VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT = 1024,
2265}
2266
Jesse Halld27f6aa2015-08-15 17:58:48 -07002267/////////////////
2268// Bitfields //
2269/////////////////
2270
Jesse Halld27f6aa2015-08-15 17:58:48 -07002271/// Queue capabilities
Jesse Halld8bade02015-11-24 10:24:18 -08002272type VkFlags VkQueueFlags
2273bitfield VkQueueFlagBits {
Jesse Halld27f6aa2015-08-15 17:58:48 -07002274 VK_QUEUE_GRAPHICS_BIT = 0x00000001, /// Queue supports graphics operations
2275 VK_QUEUE_COMPUTE_BIT = 0x00000002, /// Queue supports compute operations
Jesse Hall65ab5522015-11-30 00:07:16 -08002276 VK_QUEUE_TRANSFER_BIT = 0x00000004, /// Queue supports transfer operations
Jesse Hallb00daad2015-11-29 19:46:20 -08002277 VK_QUEUE_SPARSE_BINDING_BIT = 0x00000008, /// Queue supports sparse resource memory management operations
Daniel Koch09f7bf92017-10-05 00:26:58 -04002278
Ian Elliott28bd2c32017-10-13 09:21:12 -06002279 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04002280 VK_QUEUE_PROTECTED_BIT = 0x00000010,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002281}
2282
2283/// Memory properties passed into vkAllocMemory().
Jesse Halld8bade02015-11-24 10:24:18 -08002284type VkFlags VkMemoryPropertyFlags
2285bitfield VkMemoryPropertyFlagBits {
Jesse Halld1af8122015-11-29 23:50:38 -08002286 VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT = 0x00000001,
2287 VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT = 0x00000002,
2288 VK_MEMORY_PROPERTY_HOST_COHERENT_BIT = 0x00000004,
2289 VK_MEMORY_PROPERTY_HOST_CACHED_BIT = 0x00000008,
2290 VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT = 0x00000010,
Daniel Koch09f7bf92017-10-05 00:26:58 -04002291
Ian Elliott28bd2c32017-10-13 09:21:12 -06002292 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04002293 VK_MEMORY_PROPERTY_PROTECTED_BIT = 0x00000020,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002294}
2295
2296/// Memory heap flags
Jesse Halld8bade02015-11-24 10:24:18 -08002297type VkFlags VkMemoryHeapFlags
2298bitfield VkMemoryHeapFlagBits {
Jesse Halld1af8122015-11-29 23:50:38 -08002299 VK_MEMORY_HEAP_DEVICE_LOCAL_BIT = 0x00000001,
Jesse Hallad250842017-03-10 18:35:38 -08002300
Ian Elliott28bd2c32017-10-13 09:21:12 -06002301 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04002302 VK_MEMORY_HEAP_MULTI_INSTANCE_BIT = 0x00000002,
2303
2304 //@extension("VK_KHR_device_group_creation") // 71
2305 VK_MEMORY_HEAP_MULTI_INSTANCE_BIT_KHR = 0x00000002,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002306}
2307
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08002308/// Access flags
2309type VkFlags VkAccessFlags
2310bitfield VkAccessFlagBits {
2311 VK_ACCESS_INDIRECT_COMMAND_READ_BIT = 0x00000001,
2312 VK_ACCESS_INDEX_READ_BIT = 0x00000002,
2313 VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT = 0x00000004,
2314 VK_ACCESS_UNIFORM_READ_BIT = 0x00000008,
2315 VK_ACCESS_INPUT_ATTACHMENT_READ_BIT = 0x00000010,
2316 VK_ACCESS_SHADER_READ_BIT = 0x00000020,
2317 VK_ACCESS_SHADER_WRITE_BIT = 0x00000040,
2318 VK_ACCESS_COLOR_ATTACHMENT_READ_BIT = 0x00000080,
2319 VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT = 0x00000100,
2320 VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT = 0x00000200,
2321 VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT = 0x00000400,
2322 VK_ACCESS_TRANSFER_READ_BIT = 0x00000800,
2323 VK_ACCESS_TRANSFER_WRITE_BIT = 0x00001000,
2324 VK_ACCESS_HOST_READ_BIT = 0x00002000,
2325 VK_ACCESS_HOST_WRITE_BIT = 0x00004000,
2326 VK_ACCESS_MEMORY_READ_BIT = 0x00008000,
2327 VK_ACCESS_MEMORY_WRITE_BIT = 0x00010000,
Chris Forbes289cb792016-12-30 15:03:55 +13002328
Jesse Hallad250842017-03-10 18:35:38 -08002329 //@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13002330 VK_ACCESS_COMMAND_PROCESS_READ_BIT_NVX = 0x00020000,
Chris Forbes289cb792016-12-30 15:03:55 +13002331 VK_ACCESS_COMMAND_PROCESS_WRITE_BIT_NVX = 0x00040000,
Jesse Hall7ba0ac72017-07-07 17:13:23 -07002332
2333 //@extension("VK_EXT_blend_operation_advanced") // 149
2334 VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT = 0x00080000,
Jesse Halla13a3cf2018-07-09 15:51:52 -07002335
2336 //@extension("VK_EXT_conditional_rendering") // 82
2337 VK_ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT = 0x00100000,
Jesse Hallb5297192018-09-22 20:52:13 +02002338
2339 //@extension("VK_NV_shading_rate_image") // 165
2340 VK_ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV = 0x00800000,
2341
2342 //@extension("VK_NVX_raytracing") // 166
2343 VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_NVX = 0x00200000,
2344 VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_NVX = 0x00400000,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002345}
2346
2347/// Buffer usage flags
Jesse Halld8bade02015-11-24 10:24:18 -08002348type VkFlags VkBufferUsageFlags
2349bitfield VkBufferUsageFlagBits {
Jesse Hall3fbc8562015-11-29 22:10:52 -08002350 VK_BUFFER_USAGE_TRANSFER_SRC_BIT = 0x00000001, /// Can be used as a source of transfer operations
2351 VK_BUFFER_USAGE_TRANSFER_DST_BIT = 0x00000002, /// Can be used as a destination of transfer operations
Jesse Halld27f6aa2015-08-15 17:58:48 -07002352 VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT = 0x00000004, /// Can be used as TBO
2353 VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT = 0x00000008, /// Can be used as IBO
2354 VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT = 0x00000010, /// Can be used as UBO
2355 VK_BUFFER_USAGE_STORAGE_BUFFER_BIT = 0x00000020, /// Can be used as SSBO
2356 VK_BUFFER_USAGE_INDEX_BUFFER_BIT = 0x00000040, /// Can be used as source of fixed function index fetch (index buffer)
2357 VK_BUFFER_USAGE_VERTEX_BUFFER_BIT = 0x00000080, /// Can be used as source of fixed function vertex fetch (VBO)
2358 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 -07002359
2360 //@extension("VK_EXT_conditional_rendering") // 82
2361 VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT = 0x00000200,
Jesse Hallb5297192018-09-22 20:52:13 +02002362
2363 //@extension("VK_NVX_raytracing") // 166
2364 VK_BUFFER_USAGE_RAYTRACING_BIT_NVX = 0x00000400,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002365}
2366
2367/// Buffer creation flags
Jesse Halld8bade02015-11-24 10:24:18 -08002368type VkFlags VkBufferCreateFlags
2369bitfield VkBufferCreateFlagBits {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07002370 VK_BUFFER_CREATE_SPARSE_BINDING_BIT = 0x00000001, /// Buffer should support sparse backing
Jesse Halld27f6aa2015-08-15 17:58:48 -07002371 VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT = 0x00000002, /// Buffer should support sparse backing with partial residency
2372 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 -04002373
Ian Elliott28bd2c32017-10-13 09:21:12 -06002374 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04002375 VK_BUFFER_CREATE_PROTECTED_BIT = 0x00000008,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002376}
2377
2378/// Shader stage flags
Jesse Halld8bade02015-11-24 10:24:18 -08002379type VkFlags VkShaderStageFlags
2380bitfield VkShaderStageFlagBits {
Jesse Halld27f6aa2015-08-15 17:58:48 -07002381 VK_SHADER_STAGE_VERTEX_BIT = 0x00000001,
Jesse Hallae38f732015-11-19 21:32:50 -08002382 VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT = 0x00000002,
2383 VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT = 0x00000004,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002384 VK_SHADER_STAGE_GEOMETRY_BIT = 0x00000008,
2385 VK_SHADER_STAGE_FRAGMENT_BIT = 0x00000010,
2386 VK_SHADER_STAGE_COMPUTE_BIT = 0x00000020,
Jesse Hallc7467b72015-11-29 21:05:26 -08002387 VK_SHADER_STAGE_ALL_GRAPHICS = 0x0000001F,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002388
2389 VK_SHADER_STAGE_ALL = 0x7FFFFFFF,
Jesse Hallb5297192018-09-22 20:52:13 +02002390
2391 //@extension("VK_NVX_raytracing") // 166
2392 VK_SHADER_STAGE_RAYGEN_BIT_NVX = 0x00000100,
2393 VK_SHADER_STAGE_ANY_HIT_BIT_NVX = 0x00000200,
2394 VK_SHADER_STAGE_CLOSEST_HIT_BIT_NVX = 0x00000400,
2395 VK_SHADER_STAGE_MISS_BIT_NVX = 0x00000800,
2396 VK_SHADER_STAGE_INTERSECTION_BIT_NVX = 0x00001000,
2397 VK_SHADER_STAGE_CALLABLE_BIT_NVX = 0x00002000,
2398
2399 //@extension("VK_NV_mesh_shader") // 203
2400 VK_SHADER_STAGE_TASK_BIT_NV = 0x00000040,
2401 VK_SHADER_STAGE_MESH_BIT_NV = 0x00000080,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002402}
2403
Jesse Hallfbf97b02015-11-20 14:17:03 -08002404/// Descriptor pool create flags
Jesse Halld8bade02015-11-24 10:24:18 -08002405type VkFlags VkDescriptorPoolCreateFlags
2406bitfield VkDescriptorPoolCreateFlagBits {
Jesse Hallfbf97b02015-11-20 14:17:03 -08002407 VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT = 0x00000001,
Jesse Hall72e6a132018-04-06 13:00:44 -07002408
2409 //@extension("VK_EXT_descriptor_indexing") // 162
2410 VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT_EXT = 0x00000002,
Jesse Hallfbf97b02015-11-20 14:17:03 -08002411}
2412
2413/// Descriptor pool reset flags
Jesse Halld8bade02015-11-24 10:24:18 -08002414type VkFlags VkDescriptorPoolResetFlags
Jesse Halla6429252015-11-29 18:59:42 -08002415//bitfield VkDescriptorPoolResetFlagBits {
2416//}
Jesse Hallfbf97b02015-11-20 14:17:03 -08002417
Jesse Halld27f6aa2015-08-15 17:58:48 -07002418/// Image usage flags
Jesse Halld8bade02015-11-24 10:24:18 -08002419type VkFlags VkImageUsageFlags
2420bitfield VkImageUsageFlagBits {
Jesse Hall3fbc8562015-11-29 22:10:52 -08002421 VK_IMAGE_USAGE_TRANSFER_SRC_BIT = 0x00000001, /// Can be used as a source of transfer operations
2422 VK_IMAGE_USAGE_TRANSFER_DST_BIT = 0x00000002, /// Can be used as a destination of transfer operations
Jesse Halld27f6aa2015-08-15 17:58:48 -07002423 VK_IMAGE_USAGE_SAMPLED_BIT = 0x00000004, /// Can be sampled from (SAMPLED_IMAGE and COMBINED_IMAGE_SAMPLER descriptor types)
2424 VK_IMAGE_USAGE_STORAGE_BIT = 0x00000008, /// Can be used as storage image (STORAGE_IMAGE descriptor type)
2425 VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT = 0x00000010, /// Can be used as framebuffer color attachment
Jesse Hall5ae3abb2015-10-08 14:00:22 -07002426 VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000020, /// Can be used as framebuffer depth/stencil attachment
Jesse Halld27f6aa2015-08-15 17:58:48 -07002427 VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT = 0x00000040, /// Image data not needed outside of rendering
2428 VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT = 0x00000080, /// Can be used as framebuffer input attachment
Jesse Hallb5297192018-09-22 20:52:13 +02002429
2430 //@extension("VK_NV_shading_rate_image") // 165
2431 VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV = 0x00000100,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002432}
2433
2434/// Image creation flags
Jesse Halld8bade02015-11-24 10:24:18 -08002435type VkFlags VkImageCreateFlags
2436bitfield VkImageCreateFlagBits {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07002437 VK_IMAGE_CREATE_SPARSE_BINDING_BIT = 0x00000001, /// Image should support sparse backing
Jesse Halld27f6aa2015-08-15 17:58:48 -07002438 VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT = 0x00000002, /// Image should support sparse backing with partial residency
2439 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 -07002440 VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT = 0x00000008, /// Allows image views to have different format than the base image
2441 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 -08002442
Ian Elliott28bd2c32017-10-13 09:21:12 -06002443 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04002444 VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT = 0x00000020,
Jesse Hall8c954d32018-01-17 22:06:20 -08002445 VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT = 0x00000040,
Daniel Koch09f7bf92017-10-05 00:26:58 -04002446 VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT = 0x00000080,
2447 VK_IMAGE_CREATE_EXTENDED_USAGE_BIT = 0x00000100,
Daniel Koch09f7bf92017-10-05 00:26:58 -04002448 VK_IMAGE_CREATE_DISJOINT_BIT = 0x00000200,
Ian Elliott28bd2c32017-10-13 09:21:12 -06002449 VK_IMAGE_CREATE_ALIAS_BIT = 0x00000400,
2450 VK_IMAGE_CREATE_PROTECTED_BIT = 0x00000800,
Daniel Koch09f7bf92017-10-05 00:26:58 -04002451
Jesse Hallad250842017-03-10 18:35:38 -08002452 //@extension("VK_KHR_maintenance1") // 70
Jesse Hall77ad05b2017-03-10 22:02:20 -08002453 VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT_KHR = 0x00000020,
Jesse Hallad250842017-03-10 18:35:38 -08002454
Daniel Koch09f7bf92017-10-05 00:26:58 -04002455 //@extension("VK_KHR_device_group") // 61
2456 VK_IMAGE_CREATE_BIND_SFR_BIT_KHR = 0x00000040,
Jesse Hall77726222017-09-19 14:49:27 -05002457
Jesse Hall076f95d2017-09-20 11:34:47 -07002458 //@extension("VK_KHR_maintenance2") // 118
2459 VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT_KHR = 0x00000080,
2460 VK_IMAGE_CREATE_EXTENDED_USAGE_BIT_KHR = 0x00000100,
2461
2462 //@extension("VK_KHR_sampler_ycbcr_conversion") // 157
2463 VK_IMAGE_CREATE_DISJOINT_BIT_KHR = 0x00000200,
2464
2465 //@extension("VK_KHR_bind_memory2") // 158
2466 VK_IMAGE_CREATE_ALIAS_BIT_KHR = 0x00000400,
Ian Elliott28bd2c32017-10-13 09:21:12 -06002467
2468 //@extension("VK_EXT_sample_locations") // 144
2469 VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT = 0x00001000,
Jesse Hallb5297192018-09-22 20:52:13 +02002470
2471 //@extension("VK_NV_corner_sampled_image") // 51
2472 VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV = 0x00002000,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002473}
2474
Jesse Hallb00daad2015-11-29 19:46:20 -08002475/// Image view creation flags
Jesse Halld8bade02015-11-24 10:24:18 -08002476type VkFlags VkImageViewCreateFlags
Jesse Hallb00daad2015-11-29 19:46:20 -08002477//bitfield VkImageViewCreateFlagBits {
2478//}
Jesse Halld27f6aa2015-08-15 17:58:48 -07002479
2480/// Pipeline creation flags
Jesse Halld8bade02015-11-24 10:24:18 -08002481type VkFlags VkPipelineCreateFlags
2482bitfield VkPipelineCreateFlagBits {
Jesse Halld27f6aa2015-08-15 17:58:48 -07002483 VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT = 0x00000001,
2484 VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT = 0x00000002,
2485 VK_PIPELINE_CREATE_DERIVATIVE_BIT = 0x00000004,
Jesse Hallad250842017-03-10 18:35:38 -08002486
Ian Elliott28bd2c32017-10-13 09:21:12 -06002487 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04002488 VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT = 0x00000008,
2489 VK_PIPELINE_CREATE_DISPATCH_BASE = 0x00000010,
2490
2491 //@extension("VK_KHR_device_group") // 61
2492 VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR = 0x00000008,
2493 VK_PIPELINE_CREATE_DISPATCH_BASE_KHR = 0x00000010,
Jesse Hallb5297192018-09-22 20:52:13 +02002494
2495 //@extension("VK_NVX_raytracing") // 166
2496 VK_PIPELINE_CREATE_DEFER_COMPILE_BIT_NVX = 0x00000020,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002497}
2498
Jesse Hall65ab5522015-11-30 00:07:16 -08002499/// Color component flags
2500type VkFlags VkColorComponentFlags
2501bitfield VkColorComponentFlagBits {
2502 VK_COLOR_COMPONENT_R_BIT = 0x00000001,
2503 VK_COLOR_COMPONENT_G_BIT = 0x00000002,
2504 VK_COLOR_COMPONENT_B_BIT = 0x00000004,
2505 VK_COLOR_COMPONENT_A_BIT = 0x00000008,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002506}
2507
2508/// Fence creation flags
Jesse Halld8bade02015-11-24 10:24:18 -08002509type VkFlags VkFenceCreateFlags
2510bitfield VkFenceCreateFlagBits {
Jesse Halld27f6aa2015-08-15 17:58:48 -07002511 VK_FENCE_CREATE_SIGNALED_BIT = 0x00000001,
2512}
2513
2514/// Semaphore creation flags
Jesse Halld8bade02015-11-24 10:24:18 -08002515type VkFlags VkSemaphoreCreateFlags
Jesse Halla6429252015-11-29 18:59:42 -08002516//bitfield VkSemaphoreCreateFlagBits {
2517//}
Jesse Halld27f6aa2015-08-15 17:58:48 -07002518
2519/// Format capability flags
Jesse Halld8bade02015-11-24 10:24:18 -08002520type VkFlags VkFormatFeatureFlags
2521bitfield VkFormatFeatureFlagBits {
Jesse Halld27f6aa2015-08-15 17:58:48 -07002522 VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT = 0x00000001, /// Format can be used for sampled images (SAMPLED_IMAGE and COMBINED_IMAGE_SAMPLER descriptor types)
2523 VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT = 0x00000002, /// Format can be used for storage images (STORAGE_IMAGE descriptor type)
2524 VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT = 0x00000004, /// Format supports atomic operations in case it's used for storage images
2525 VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT = 0x00000008, /// Format can be used for uniform texel buffers (TBOs)
2526 VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT = 0x00000010, /// Format can be used for storage texel buffers (IBOs)
2527 VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT = 0x00000020, /// Format supports atomic operations in case it's used for storage texel buffers
2528 VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT = 0x00000040, /// Format can be used for vertex buffers (VBOs)
2529 VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT = 0x00000080, /// Format can be used for color attachment images
2530 VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT = 0x00000100, /// Format supports blending in case it's used for color attachment images
2531 VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000200, /// Format can be used for depth/stencil attachment images
Jesse Hall3fbc8562015-11-29 22:10:52 -08002532 VK_FORMAT_FEATURE_BLIT_SRC_BIT = 0x00000400, /// Format can be used as the source image of blits with vkCommandBlitImage
2533 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 -08002534 VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT = 0x00001000,
Jesse Hall26763382016-05-20 07:13:52 -07002535
Ian Elliott28bd2c32017-10-13 09:21:12 -06002536 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04002537 VK_FORMAT_FEATURE_TRANSFER_SRC_BIT = 0x00004000,
2538 VK_FORMAT_FEATURE_TRANSFER_DST_BIT = 0x00008000,
2539 VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT = 0x00020000,
2540 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT = 0x00040000,
2541 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT = 0x00080000,
2542 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT = 0x00100000,
2543 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT = 0x00200000,
2544 VK_FORMAT_FEATURE_DISJOINT_BIT = 0x00400000,
2545 VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT = 0x00800000,
2546
Jesse Hallad250842017-03-10 18:35:38 -08002547 //@extension("VK_IMG_filter_cubic") // 16
Jesse Hall26763382016-05-20 07:13:52 -07002548 VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG = 0x00002000,
Jesse Hall77ad05b2017-03-10 22:02:20 -08002549
Jesse Hallad250842017-03-10 18:35:38 -08002550 //@extension("VK_KHR_maintenance1") // 70
Jesse Hall77ad05b2017-03-10 22:02:20 -08002551 VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR = 0x00004000,
2552 VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR = 0x00008000,
Jesse Hall7ba0ac72017-07-07 17:13:23 -07002553
2554 //@extension("VK_EXT_sampler_filter_minmax") // 131
2555 VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT_EXT = 0x00010000,
Jesse Hall076f95d2017-09-20 11:34:47 -07002556
2557 //@extension("VK_KHR_sampler_ycbcr_conversion") // 157
2558 VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT_KHR = 0x00020000,
2559 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT_KHR = 0x00040000,
2560 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT_KHR = 0x00080000,
2561 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT_KHR = 0x00100000,
2562 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT_KHR = 0x00200000,
2563 VK_FORMAT_FEATURE_DISJOINT_BIT_KHR = 0x00400000,
2564 VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT_KHR = 0x00800000,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002565}
2566
2567/// Query control flags
Jesse Halld8bade02015-11-24 10:24:18 -08002568type VkFlags VkQueryControlFlags
2569bitfield VkQueryControlFlagBits {
Jesse Hall65ab5522015-11-30 00:07:16 -08002570 VK_QUERY_CONTROL_PRECISE_BIT = 0x00000001,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002571}
2572
2573/// Query result flags
Jesse Halld8bade02015-11-24 10:24:18 -08002574type VkFlags VkQueryResultFlags
2575bitfield VkQueryResultFlagBits {
Jesse Halld27f6aa2015-08-15 17:58:48 -07002576 VK_QUERY_RESULT_64_BIT = 0x00000001, /// Results of the queries are written to the destination buffer as 64-bit values
2577 VK_QUERY_RESULT_WAIT_BIT = 0x00000002, /// Results of the queries are waited on before proceeding with the result copy
2578 VK_QUERY_RESULT_WITH_AVAILABILITY_BIT = 0x00000004, /// Besides the results of the query, the availability of the results is also written
2579 VK_QUERY_RESULT_PARTIAL_BIT = 0x00000008, /// Copy the partial results of the query even if the final results aren't available
2580}
2581
2582/// Shader module creation flags
Jesse Halld8bade02015-11-24 10:24:18 -08002583type VkFlags VkShaderModuleCreateFlags
Jesse Halla6429252015-11-29 18:59:42 -08002584//bitfield VkShaderModuleCreateFlagBits {
2585//}
Jesse Halld27f6aa2015-08-15 17:58:48 -07002586
Jesse Halld27f6aa2015-08-15 17:58:48 -07002587/// Event creation flags
Jesse Halld8bade02015-11-24 10:24:18 -08002588type VkFlags VkEventCreateFlags
Jesse Halla6429252015-11-29 18:59:42 -08002589//bitfield VkEventCreateFlagBits {
2590//}
Jesse Halld27f6aa2015-08-15 17:58:48 -07002591
Jesse Halla15a4bf2015-11-19 22:48:02 -08002592/// Command buffer usage flags
Jesse Hall3fbc8562015-11-29 22:10:52 -08002593type VkFlags VkCommandBufferUsageFlags
2594bitfield VkCommandBufferUsageFlagBits {
2595 VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT = 0x00000001,
2596 VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT = 0x00000002,
2597 VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT = 0x00000004,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002598}
2599
2600/// Pipeline statistics flags
Jesse Halld8bade02015-11-24 10:24:18 -08002601type VkFlags VkQueryPipelineStatisticFlags
2602bitfield VkQueryPipelineStatisticFlagBits {
Jesse Hallae38f732015-11-19 21:32:50 -08002603 VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT = 0x00000001, /// Optional
2604 VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT = 0x00000002, /// Optional
2605 VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT = 0x00000004, /// Optional
2606 VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT = 0x00000008, /// Optional
2607 VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT = 0x00000010, /// Optional
2608 VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT = 0x00000020, /// Optional
2609 VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT = 0x00000040, /// Optional
2610 VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT = 0x00000080, /// Optional
2611 VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT = 0x00000100, /// Optional
2612 VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT = 0x00000200, /// Optional
2613 VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT = 0x00000400, /// Optional
Jesse Halld27f6aa2015-08-15 17:58:48 -07002614}
2615
2616/// Memory mapping flags
Jesse Halld8bade02015-11-24 10:24:18 -08002617type VkFlags VkMemoryMapFlags
Jesse Halla6429252015-11-29 18:59:42 -08002618//bitfield VkMemoryMapFlagBits {
2619//}
Jesse Halld27f6aa2015-08-15 17:58:48 -07002620
2621/// Bitfield of image aspects
Jesse Halld8bade02015-11-24 10:24:18 -08002622type VkFlags VkImageAspectFlags
2623bitfield VkImageAspectFlagBits {
Jesse Halld27f6aa2015-08-15 17:58:48 -07002624 VK_IMAGE_ASPECT_COLOR_BIT = 0x00000001,
2625 VK_IMAGE_ASPECT_DEPTH_BIT = 0x00000002,
2626 VK_IMAGE_ASPECT_STENCIL_BIT = 0x00000004,
2627 VK_IMAGE_ASPECT_METADATA_BIT = 0x00000008,
Jesse Hall076f95d2017-09-20 11:34:47 -07002628
Ian Elliott28bd2c32017-10-13 09:21:12 -06002629 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04002630 VK_IMAGE_ASPECT_PLANE_0_BIT = 0x00000010,
2631 VK_IMAGE_ASPECT_PLANE_1_BIT = 0x00000020,
2632 VK_IMAGE_ASPECT_PLANE_2_BIT = 0x00000040,
2633
Jesse Hall076f95d2017-09-20 11:34:47 -07002634 //@extension("VK_KHR_sampler_ycbcr_conversion") // 157
2635 VK_IMAGE_ASPECT_PLANE_0_BIT_KHR = 0x00000010,
2636 VK_IMAGE_ASPECT_PLANE_1_BIT_KHR = 0x00000020,
2637 VK_IMAGE_ASPECT_PLANE_2_BIT_KHR = 0x00000040,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002638}
2639
2640/// Sparse memory bind flags
Jesse Halld8bade02015-11-24 10:24:18 -08002641type VkFlags VkSparseMemoryBindFlags
Jesse Hall091ed9e2015-11-30 00:55:29 -08002642bitfield VkSparseMemoryBindFlagBits {
2643 VK_SPARSE_MEMORY_BIND_METADATA_BIT = 0x00000001,
2644}
Jesse Halld27f6aa2015-08-15 17:58:48 -07002645
2646/// Sparse image memory requirements flags
Jesse Halld8bade02015-11-24 10:24:18 -08002647type VkFlags VkSparseImageFormatFlags
2648bitfield VkSparseImageFormatFlagBits {
Jesse Hallb00daad2015-11-29 19:46:20 -08002649 VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT = 0x00000001, /// Image uses a single miptail region for all array slices
2650 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.
2651 VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT = 0x00000004, /// Image uses a non-standard sparse block size
Jesse Halld27f6aa2015-08-15 17:58:48 -07002652}
2653
2654/// Pipeline stages
Jesse Halld8bade02015-11-24 10:24:18 -08002655type VkFlags VkPipelineStageFlags
2656bitfield VkPipelineStageFlagBits {
Jesse Halld27f6aa2015-08-15 17:58:48 -07002657 VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT = 0x00000001, /// Before subsequent commands are processed
2658 VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT = 0x00000002, /// Draw/DispatchIndirect command fetch
2659 VK_PIPELINE_STAGE_VERTEX_INPUT_BIT = 0x00000004, /// Vertex/index fetch
2660 VK_PIPELINE_STAGE_VERTEX_SHADER_BIT = 0x00000008, /// Vertex shading
Jesse Hallae38f732015-11-19 21:32:50 -08002661 VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT = 0x00000010, /// Tessellation control shading
2662 VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT = 0x00000020, /// Tessellation evaluation shading
Jesse Halld27f6aa2015-08-15 17:58:48 -07002663 VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT = 0x00000040, /// Geometry shading
2664 VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT = 0x00000080, /// Fragment shading
2665 VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT = 0x00000100, /// Early fragment (depth/stencil) tests
2666 VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT = 0x00000200, /// Late fragment (depth/stencil) tests
2667 VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT = 0x00000400, /// Color attachment writes
2668 VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT = 0x00000800, /// Compute shading
2669 VK_PIPELINE_STAGE_TRANSFER_BIT = 0x00001000, /// Transfer/copy operations
Jesse Hall543a7ff2016-01-08 16:38:30 -08002670 VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT = 0x00002000,
2671 VK_PIPELINE_STAGE_HOST_BIT = 0x00004000, /// Indicates host (CPU) is a source/sink of the dependency
Jesse Halld27f6aa2015-08-15 17:58:48 -07002672
Jesse Hall543a7ff2016-01-08 16:38:30 -08002673 VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT = 0x00008000, /// All stages of the graphics pipeline
2674 VK_PIPELINE_STAGE_ALL_COMMANDS_BIT = 0x00010000, /// All graphics, compute, copy, and transition commands
Chris Forbes289cb792016-12-30 15:03:55 +13002675
Jesse Hallad250842017-03-10 18:35:38 -08002676 //@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13002677 VK_PIPELINE_STAGE_COMMAND_PROCESS_BIT_NVX = 0x00020000,
Jesse Halla13a3cf2018-07-09 15:51:52 -07002678
2679 //@extension("VK_EXT_conditional_rendering") // 82
2680 VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT = 0x00040000,
Jesse Hallb5297192018-09-22 20:52:13 +02002681
2682 //@extension("VK_NV_shading_rate_image") // 165
2683 VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV = 0x00400000,
2684
2685 //@extension("VK_NVX_raytracing") // 166
2686 VK_PIPELINE_STAGE_RAYTRACING_BIT_NVX = 0x00200000,
2687
2688 //@extension("VK_NV_mesh_shader") // 203
2689 VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV = 0x00080000,
2690 VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV = 0x00100000,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07002691}
2692
2693/// Render pass attachment description flags
Jesse Halld8bade02015-11-24 10:24:18 -08002694type VkFlags VkAttachmentDescriptionFlags
2695bitfield VkAttachmentDescriptionFlagBits {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07002696 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 -07002697}
2698
2699/// Subpass description flags
Jesse Halld8bade02015-11-24 10:24:18 -08002700type VkFlags VkSubpassDescriptionFlags
2701bitfield VkSubpassDescriptionFlagBits {
Jesse Hallad250842017-03-10 18:35:38 -08002702 //@extension("VK_NVX_multiview_per_view_attributes") // 98
2703 VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX = 0x00000001,
2704 VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX = 0x00000002,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002705}
2706
2707/// Command pool creation flags
Jesse Hall3fbc8562015-11-29 22:10:52 -08002708type VkFlags VkCommandPoolCreateFlags
2709bitfield VkCommandPoolCreateFlagBits {
2710 VK_COMMAND_POOL_CREATE_TRANSIENT_BIT = 0x00000001, /// Command buffers have a short lifetime
2711 VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT = 0x00000002, /// Command buffers may release their memory individually
Daniel Koch09f7bf92017-10-05 00:26:58 -04002712
Ian Elliott28bd2c32017-10-13 09:21:12 -06002713 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04002714 VK_COMMAND_POOL_CREATE_PROTECTED_BIT = 0x00000004,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002715}
2716
2717/// Command pool reset flags
Jesse Hall3fbc8562015-11-29 22:10:52 -08002718type VkFlags VkCommandPoolResetFlags
2719bitfield VkCommandPoolResetFlagBits {
2720 VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT = 0x00000001, /// Release resources owned by the pool
Jesse Halld27f6aa2015-08-15 17:58:48 -07002721}
2722
Jesse Hall3fbc8562015-11-29 22:10:52 -08002723type VkFlags VkCommandBufferResetFlags
2724bitfield VkCommandBufferResetFlagBits {
2725 VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT = 0x00000001, /// Release resources owned by the buffer
Jesse Hall5ae3abb2015-10-08 14:00:22 -07002726}
2727
Jesse Halld8bade02015-11-24 10:24:18 -08002728type VkFlags VkSampleCountFlags
2729bitfield VkSampleCountFlagBits {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07002730 VK_SAMPLE_COUNT_1_BIT = 0x00000001,
2731 VK_SAMPLE_COUNT_2_BIT = 0x00000002,
2732 VK_SAMPLE_COUNT_4_BIT = 0x00000004,
2733 VK_SAMPLE_COUNT_8_BIT = 0x00000008,
2734 VK_SAMPLE_COUNT_16_BIT = 0x00000010,
2735 VK_SAMPLE_COUNT_32_BIT = 0x00000020,
2736 VK_SAMPLE_COUNT_64_BIT = 0x00000040,
2737}
2738
Jesse Halld8bade02015-11-24 10:24:18 -08002739type VkFlags VkStencilFaceFlags
2740bitfield VkStencilFaceFlagBits {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07002741 VK_STENCIL_FACE_FRONT_BIT = 0x00000001, /// Front face
2742 VK_STENCIL_FACE_BACK_BIT = 0x00000002, /// Back face
Jesse Hallc7467b72015-11-29 21:05:26 -08002743 VK_STENCIL_FRONT_AND_BACK = 0x00000003,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002744}
2745
Jesse Halla6429252015-11-29 18:59:42 -08002746/// Instance creation flags
2747type VkFlags VkInstanceCreateFlags
2748//bitfield VkInstanceCreateFlagBits {
2749//}
2750
2751/// Device creation flags
2752type VkFlags VkDeviceCreateFlags
2753//bitfield VkDeviceCreateFlagBits {
2754//}
2755
2756/// Device queue creation flags
2757type VkFlags VkDeviceQueueCreateFlags
Ian Elliott28bd2c32017-10-13 09:21:12 -06002758@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04002759bitfield VkDeviceQueueCreateFlagBits {
2760 VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT = 0x00000001,
2761}
Jesse Halla6429252015-11-29 18:59:42 -08002762
2763/// Query pool creation flags
2764type VkFlags VkQueryPoolCreateFlags
2765//bitfield VkQueryPoolCreateFlagBits {
2766//}
2767
2768/// Buffer view creation flags
2769type VkFlags VkBufferViewCreateFlags
2770//bitfield VkBufferViewCreateFlagBits {
2771//}
2772
2773/// Pipeline cache creation flags
2774type VkFlags VkPipelineCacheCreateFlags
2775//bitfield VkPipelineCacheCreateFlagBits {
2776//}
2777
2778/// Pipeline shader stage creation flags
2779type VkFlags VkPipelineShaderStageCreateFlags
2780//bitfield VkPipelineShaderStageCreateFlagBits {
2781//}
2782
2783/// Descriptor set layout creation flags
2784type VkFlags VkDescriptorSetLayoutCreateFlags
Jesse Hallad250842017-03-10 18:35:38 -08002785bitfield VkDescriptorSetLayoutCreateFlagBits {
2786 //@extension("VK_KHR_push_descriptor") // 81
2787 VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR = 0x00000001,
Jesse Hall72e6a132018-04-06 13:00:44 -07002788
2789 //@extension("VK_EXT_descriptor_indexing") // 162
2790 VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT = 0x00000002,
Jesse Hallad250842017-03-10 18:35:38 -08002791}
Jesse Halla6429252015-11-29 18:59:42 -08002792
2793/// Pipeline vertex input state creation flags
2794type VkFlags VkPipelineVertexInputStateCreateFlags
2795//bitfield VkPipelineVertexInputStateCreateFlagBits {
2796//}
2797
2798/// Pipeline input assembly state creation flags
2799type VkFlags VkPipelineInputAssemblyStateCreateFlags
2800//bitfield VkPipelineInputAssemblyStateCreateFlagBits {
2801//}
2802
2803/// Tessellation state creation flags
2804type VkFlags VkPipelineTessellationStateCreateFlags
2805//bitfield VkPipelineTessellationStateCreateFlagBits {
2806//}
2807
2808/// Viewport state creation flags
2809type VkFlags VkPipelineViewportStateCreateFlags
2810//bitfield VkPipelineViewportStateCreateFlagBits {
2811//}
2812
Jesse Hall3fbc8562015-11-29 22:10:52 -08002813/// Rasterization state creation flags
2814type VkFlags VkPipelineRasterizationStateCreateFlags
2815//bitfield VkPipelineRasterizationStateCreateFlagBits {
Jesse Halla6429252015-11-29 18:59:42 -08002816//}
2817
2818/// Multisample state creation flags
2819type VkFlags VkPipelineMultisampleStateCreateFlags
2820//bitfield VkPipelineMultisampleStateCreateFlagBits {
2821//}
2822
2823/// Color blend state creation flags
2824type VkFlags VkPipelineColorBlendStateCreateFlags
2825//bitfield VkPipelineColorBlendStateCreateFlagBits {
2826//}
2827
2828/// Depth/stencil state creation flags
2829type VkFlags VkPipelineDepthStencilStateCreateFlags
2830//bitfield VkPipelineDepthStencilStateCreateFlagBits {
2831//}
2832
2833/// Dynamic state creation flags
2834type VkFlags VkPipelineDynamicStateCreateFlags
2835//bitfield VkPipelineDynamicStateCreateFlagBits {
2836//}
2837
2838/// Pipeline layout creation flags
2839type VkFlags VkPipelineLayoutCreateFlags
2840//bitfield VkPipelineLayoutCreateFlagBits {
2841//}
2842
2843/// Sampler creation flags
2844type VkFlags VkSamplerCreateFlags
2845//bitfield VkSamplerCreateFlagBits {
2846//}
2847
2848/// Render pass creation flags
2849type VkFlags VkRenderPassCreateFlags
2850//bitfield VkRenderPassCreateFlagBits {
2851//}
2852
2853/// Framebuffer creation flags
2854type VkFlags VkFramebufferCreateFlags
2855//bitfield VkFramebufferCreateFlagBits {
2856//}
2857
Jesse Halldc6d36c2015-11-29 19:12:15 -08002858/// Dependency flags
2859type VkFlags VkDependencyFlags
2860bitfield VkDependencyFlagBits {
2861 VK_DEPENDENCY_BY_REGION_BIT = 0x00000001,
Jesse Hallad250842017-03-10 18:35:38 -08002862
Ian Elliott28bd2c32017-10-13 09:21:12 -06002863 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04002864 VK_DEPENDENCY_DEVICE_GROUP_BIT = 0x00000004,
2865 VK_DEPENDENCY_VIEW_LOCAL_BIT = 0x00000002,
Jesse Hallad250842017-03-10 18:35:38 -08002866
Daniel Koch09f7bf92017-10-05 00:26:58 -04002867 //@extension("VK_KHR_multiview") // 54
2868 VK_DEPENDENCY_VIEW_LOCAL_BIT_KHR = 0x00000002,
2869
2870 //@extension("VK_KHR_device_group") // 61
2871 VK_DEPENDENCY_DEVICE_GROUP_BIT_KHR = 0x00000004,
Jesse Halldc6d36c2015-11-29 19:12:15 -08002872}
2873
Jesse Hallc7467b72015-11-29 21:05:26 -08002874/// Cull mode flags
2875type VkFlags VkCullModeFlags
2876bitfield VkCullModeFlagBits {
2877 VK_CULL_MODE_NONE = 0x00000000,
2878 VK_CULL_MODE_FRONT_BIT = 0x00000001,
2879 VK_CULL_MODE_BACK_BIT = 0x00000002,
2880 VK_CULL_MODE_FRONT_AND_BACK = 0x00000003,
2881}
2882
Ian Elliott28bd2c32017-10-13 09:21:12 -06002883//@vulkan1_1 flags
Daniel Koch09f7bf92017-10-05 00:26:58 -04002884
2885/// Subgroup feature flags
2886type VkFlags VkSubgroupFeatureFlags
2887bitfield VkSubgroupFeatureFlagBits {
2888 VK_SUBGROUP_FEATURE_BASIC_BIT = 0x00000001,
2889 VK_SUBGROUP_FEATURE_VOTE_BIT = 0x00000002,
2890 VK_SUBGROUP_FEATURE_ARITHMETIC_BIT = 0x00000004,
2891 VK_SUBGROUP_FEATURE_BALLOT_BIT = 0x00000008,
2892 VK_SUBGROUP_FEATURE_SHUFFLE_BIT = 0x00000010,
2893 VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT = 0x00000020,
2894 VK_SUBGROUP_FEATURE_CLUSTERED_BIT = 0x00000040,
2895 VK_SUBGROUP_FEATURE_QUAD_BIT = 0x00000080,
Jesse Hall72e6a132018-04-06 13:00:44 -07002896
2897 //@extension("VK_NV_shader_subgroup_partitioned") // 199
2898 VK_SUBGROUP_FEATURE_PARTITIONED_BIT_NV = 0x00000100,
Daniel Koch09f7bf92017-10-05 00:26:58 -04002899}
2900
2901/// Peer memory feature flags
2902type VkFlags VkPeerMemoryFeatureFlags
2903bitfield VkPeerMemoryFeatureFlagBits {
2904 VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT = 0x00000001,
2905 VK_PEER_MEMORY_FEATURE_COPY_DST_BIT = 0x00000002,
2906 VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT = 0x00000004,
2907 VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT = 0x00000008,
2908}
2909
2910/// Memory allocation flags
2911type VkFlags VkMemoryAllocateFlags
2912bitfield VkMemoryAllocateFlagBits {
2913 VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT = 0x00000001,
2914}
2915
2916type VkFlags VkCommandPoolTrimFlags
2917//bitfield VkCommandPoolTrimFlagBits {
2918//}
2919
2920type VkFlags VkDescriptorUpdateTemplateCreateFlags
2921//bitfield VkDescriptorUpdateTemplateCreateFlagBits {
2922//}
2923
2924/// External memory handle type flags
2925type VkFlags VkExternalMemoryHandleTypeFlags
2926bitfield VkExternalMemoryHandleTypeFlagBits {
2927 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT = 0x00000001,
2928 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT = 0x00000002,
2929 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 0x00000004,
2930 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT = 0x00000008,
2931 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT = 0x00000010,
2932 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT = 0x00000020,
2933 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT = 0x00000040,
Jesse Hall8c954d32018-01-17 22:06:20 -08002934
Jesse Hall8c954d32018-01-17 22:06:20 -08002935 //@extension("VK_EXT_external_memory_host") // 179
Jesse Hall36215a92018-01-18 15:04:37 -08002936 VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT = 0x00000080,
2937 VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT = 0x00000100,
2938
2939 //@extension("VK_EXT_external_memory_dma_buf") // 126
2940 VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT = 0x00000200,
2941
2942 //@extension("VK_ANDROID_external_memory_android_hardware_buffer") // 130
2943 VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID = 0x00000400,
Daniel Koch09f7bf92017-10-05 00:26:58 -04002944}
2945
2946/// External memory feature flags
2947type VkFlags VkExternalMemoryFeatureFlags
2948bitfield VkExternalMemoryFeatureFlagBits {
2949 VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT = 0x00000001,
2950 VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT = 0x00000002,
2951 VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT = 0x00000004,
2952}
2953
2954/// External fence handle type flags
2955type VkFlags VkExternalFenceHandleTypeFlags
2956bitfield VkExternalFenceHandleTypeFlagBits {
2957 VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT = 0x00000001,
2958 VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT = 0x00000002,
2959 VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 0x00000004,
2960 VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT = 0x00000008,
2961}
2962
2963/// External fence feature flags
2964type VkFlags VkExternalFenceFeatureFlags
2965bitfield VkExternalFenceFeatureFlagBits {
2966 VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT = 0x00000001,
2967 VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT = 0x00000002,
2968}
2969
2970/// Fence import flags
2971type VkFlags VkFenceImportFlags
2972bitfield VkFenceImportFlagBits {
2973 VK_FENCE_IMPORT_TEMPORARY_BIT = 0x00000001,
2974}
2975
2976/// Semaphore import flags
2977type VkFlags VkSemaphoreImportFlags
2978bitfield VkSemaphoreImportFlagBits {
2979 VK_SEMAPHORE_IMPORT_TEMPORARY_BIT = 0x00000001,
2980}
2981
2982/// External semaphore handle type flags
2983type VkFlags VkExternalSemaphoreHandleTypeFlags
2984bitfield VkExternalSemaphoreHandleTypeFlagBits {
2985 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT = 0x00000001,
2986 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT = 0x00000002,
2987 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 0x00000004,
2988 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT = 0x00000008,
2989 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT = 0x00000010,
2990}
2991
2992/// External semaphore feature flags
2993type VkFlags VkExternalSemaphoreFeatureFlags
2994bitfield VkExternalSemaphoreFeatureFlagBits {
2995 VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT = 0x00000001,
2996 VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT = 0x00000002,
2997}
2998
Jesse Hallad250842017-03-10 18:35:38 -08002999@extension("VK_KHR_surface") // 1
Jesse Halld8bade02015-11-24 10:24:18 -08003000type VkFlags VkSurfaceTransformFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08003001@extension("VK_KHR_surface") // 1
Jesse Halld8bade02015-11-24 10:24:18 -08003002bitfield VkSurfaceTransformFlagBitsKHR {
Jesse Hallf9fa9a52016-01-08 16:08:51 -08003003 VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR = 0x00000001,
Jesse Hall9ba8bc82015-11-30 16:22:16 -08003004 VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR = 0x00000002,
3005 VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR = 0x00000004,
3006 VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR = 0x00000008,
3007 VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR = 0x00000010,
3008 VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR = 0x00000020,
3009 VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR = 0x00000040,
3010 VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR = 0x00000080,
3011 VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR = 0x00000100,
Michael Lentine88594d72015-11-12 12:49:45 -08003012}
Jesse Halld27f6aa2015-08-15 17:58:48 -07003013
Jesse Hallad250842017-03-10 18:35:38 -08003014@extension("VK_KHR_surface") // 1
Jesse Halla6429252015-11-29 18:59:42 -08003015type VkFlags VkCompositeAlphaFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08003016@extension("VK_KHR_surface") // 1
Jesse Halla6429252015-11-29 18:59:42 -08003017bitfield VkCompositeAlphaFlagBitsKHR {
3018 VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR = 0x00000001,
3019 VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR = 0x00000002,
3020 VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR = 0x00000004,
3021 VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR = 0x00000008,
3022}
3023
Jesse Hallad250842017-03-10 18:35:38 -08003024@extension("VK_KHR_swapchain") // 2
Jesse Hallf4ab2b12015-11-30 16:04:55 -08003025type VkFlags VkSwapchainCreateFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08003026@extension("VK_KHR_swapchain") // 2
3027bitfield VkSwapchainCreateFlagBitsKHR {
Ian Elliott28bd2c32017-10-13 09:21:12 -06003028 //@vulkan1_1
Jesse Hall8c954d32018-01-17 22:06:20 -08003029 VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR = 0x00000001,
Daniel Koch09f7bf92017-10-05 00:26:58 -04003030 VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR = 0x00000002,
3031}
3032
Ian Elliott28bd2c32017-10-13 09:21:12 -06003033@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04003034@extension("VK_KHR_swapchain") // 2
3035type VkFlags VkDeviceGroupPresentModeFlagsKHR
Ian Elliott28bd2c32017-10-13 09:21:12 -06003036@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04003037@extension("VK_KHR_swapchain") // 2
3038bitfield VkDeviceGroupPresentModeFlagBitsKHR {
3039 VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR = 0x00000001,
3040 VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR = 0x00000002,
3041 VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR = 0x00000004,
3042 VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR = 0x00000008,
Jesse Hallad250842017-03-10 18:35:38 -08003043}
Jesse Hallf4ab2b12015-11-30 16:04:55 -08003044
Jesse Hallad250842017-03-10 18:35:38 -08003045@extension("VK_KHR_display") // 3
Jesse Halld8bade02015-11-24 10:24:18 -08003046type VkFlags VkDisplayPlaneAlphaFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08003047@extension("VK_KHR_display") // 3
Jesse Halld8bade02015-11-24 10:24:18 -08003048bitfield VkDisplayPlaneAlphaFlagBitsKHR {
Jesse Hallf4ab2b12015-11-30 16:04:55 -08003049 VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR = 0x00000001,
3050 VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR = 0x00000002,
3051 VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR = 0x00000004,
3052 VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR = 0x00000008,
Jesse Hall1356b0d2015-11-23 17:24:58 -08003053}
3054
Jesse Hallad250842017-03-10 18:35:38 -08003055@extension("VK_KHR_display") // 3
Jesse Hallf4ab2b12015-11-30 16:04:55 -08003056type VkFlags VkDisplaySurfaceCreateFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08003057//@extension("VK_KHR_display") // 3
Jesse Hallf4ab2b12015-11-30 16:04:55 -08003058//bitfield VkDisplaySurfaceCreateFlagBitsKHR {
3059//}
3060
Jesse Hallad250842017-03-10 18:35:38 -08003061@extension("VK_KHR_display") // 3
Jesse Hall9ba8bc82015-11-30 16:22:16 -08003062type VkFlags VkDisplayModeCreateFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08003063//@extension("VK_KHR_display") // 3
Jesse Hall9ba8bc82015-11-30 16:22:16 -08003064//bitfield VkDisplayModeCreateFlagBitsKHR {
3065//}
3066
Jesse Hallad250842017-03-10 18:35:38 -08003067@extension("VK_KHR_xlib_surface") // 5
Jesse Hallf9fa9a52016-01-08 16:08:51 -08003068type VkFlags VkXlibSurfaceCreateFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08003069//@extension("VK_KHR_xlib_surface") // 5
Jesse Hallf9fa9a52016-01-08 16:08:51 -08003070//bitfield VkXlibSurfaceCreateFlagBitsKHR {
3071//}
3072
Jesse Hallad250842017-03-10 18:35:38 -08003073@extension("VK_KHR_xcb_surface") // 6
Jesse Hallf9fa9a52016-01-08 16:08:51 -08003074type VkFlags VkXcbSurfaceCreateFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08003075//@extension("VK_KHR_xcb_surface") // 6
Jesse Hallf9fa9a52016-01-08 16:08:51 -08003076//bitfield VkXcbSurfaceCreateFlagBitsKHR {
3077//}
3078
Jesse Hallad250842017-03-10 18:35:38 -08003079@extension("VK_KHR_wayland_surface") // 7
Jesse Hallf9fa9a52016-01-08 16:08:51 -08003080type VkFlags VkWaylandSurfaceCreateFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08003081//@extension("VK_KHR_wayland_surface") // 7
Jesse Hallf9fa9a52016-01-08 16:08:51 -08003082//bitfield VkWaylandSurfaceCreateFlagBitsKHR {
3083//}
3084
Jesse Hallad250842017-03-10 18:35:38 -08003085@extension("VK_KHR_mir_surface") // 8
Jesse Hallf9fa9a52016-01-08 16:08:51 -08003086type VkFlags VkMirSurfaceCreateFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08003087//@extension("VK_KHR_mir_surface") // 8
Jesse Hallf9fa9a52016-01-08 16:08:51 -08003088//bitfield VkMirSurfaceCreateFlagBitsKHR {
3089//}
3090
Jesse Hallad250842017-03-10 18:35:38 -08003091@extension("VK_KHR_android_surface") // 9
Jesse Hallf9fa9a52016-01-08 16:08:51 -08003092type VkFlags VkAndroidSurfaceCreateFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08003093//@extension("VK_KHR_android_surface") // 9
Jesse Hallf9fa9a52016-01-08 16:08:51 -08003094//bitfield VkAndroidSurfaceCreateFlagBitsKHR {
3095//}
3096
Jesse Hallad250842017-03-10 18:35:38 -08003097@extension("VK_KHR_win32_surface") // 10
Jesse Hallf9fa9a52016-01-08 16:08:51 -08003098type VkFlags VkWin32SurfaceCreateFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08003099//@extension("VK_KHR_win32_surface") // 10
Jesse Hallf9fa9a52016-01-08 16:08:51 -08003100//bitfield VkWin32SurfaceCreateFlagBitsKHR {
3101//}
3102
Jesse Hallad250842017-03-10 18:35:38 -08003103@extension("VK_ANDROID_native_buffer") // 11
Jesse Hall889cd9a2017-02-25 22:12:23 -08003104type VkFlags VkSwapchainImageUsageFlagsANDROID
Jesse Hallad250842017-03-10 18:35:38 -08003105@extension("VK_ANDROID_native_buffer") // 11
Jesse Hall889cd9a2017-02-25 22:12:23 -08003106bitfield VkSwapchainImageUsageFlagBitsANDROID {
3107 VK_SWAPCHAIN_IMAGE_USAGE_FLAGS_SHARED_BIT_ANDROID = 0x00000001,
3108}
3109
Jesse Hallad250842017-03-10 18:35:38 -08003110@extension("VK_EXT_debug_report") // 12
Jesse Hall715b86a2016-01-16 16:34:29 -08003111type VkFlags VkDebugReportFlagsEXT
Jesse Hallad250842017-03-10 18:35:38 -08003112@extension("VK_EXT_debug_report") // 12
Jesse Hall715b86a2016-01-16 16:34:29 -08003113bitfield VkDebugReportFlagBitsEXT {
Jesse Halle2948d82016-02-25 04:19:32 -08003114 VK_DEBUG_REPORT_INFORMATION_BIT_EXT = 0x00000001,
3115 VK_DEBUG_REPORT_WARNING_BIT_EXT = 0x00000002,
3116 VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT = 0x00000004,
Jesse Hall715b86a2016-01-16 16:34:29 -08003117 VK_DEBUG_REPORT_ERROR_BIT_EXT = 0x00000008,
3118 VK_DEBUG_REPORT_DEBUG_BIT_EXT = 0x00000010,
3119}
3120
Jesse Hallad250842017-03-10 18:35:38 -08003121@extension("VK_NV_external_memory_capabilities") // 56
Chris Forbes289cb792016-12-30 15:03:55 +13003122type VkFlags VkExternalMemoryHandleTypeFlagsNV
Jesse Hallad250842017-03-10 18:35:38 -08003123@extension("VK_NV_external_memory_capabilities") // 56
Chris Forbes289cb792016-12-30 15:03:55 +13003124bitfield VkExternalMemoryHandleTypeFlagBitsNV {
Jesse Halleb02c472017-02-24 15:13:45 -08003125 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV = 0x00000001,
3126 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV = 0x00000002,
3127 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV = 0x00000004,
3128 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV = 0x00000008,
Chris Forbes289cb792016-12-30 15:03:55 +13003129}
3130
Jesse Hallad250842017-03-10 18:35:38 -08003131@extension("VK_NV_external_memory_capabilities") // 56
Chris Forbes289cb792016-12-30 15:03:55 +13003132type VkFlags VkExternalMemoryFeatureFlagsNV
Jesse Hallad250842017-03-10 18:35:38 -08003133@extension("VK_NV_external_memory_capabilities") // 56
Chris Forbes289cb792016-12-30 15:03:55 +13003134bitfield VkExternalMemoryFeatureFlagBitsNV {
Jesse Halleb02c472017-02-24 15:13:45 -08003135 VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV = 0x00000001,
3136 VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV = 0x00000002,
3137 VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV = 0x00000004,
Chris Forbes289cb792016-12-30 15:03:55 +13003138}
3139
Daniel Koch09f7bf92017-10-05 00:26:58 -04003140@extension("VK_KHR_device_group") // 61
3141type VkFlags VkPeerMemoryFeatureFlagsKHR
3142@extension("VK_KHR_device_group") // 61
3143bitfield VkPeerMemoryFeatureFlagBitsKHR {
3144 VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT_KHR = 0x00000001,
3145 VK_PEER_MEMORY_FEATURE_COPY_DST_BIT_KHR = 0x00000002,
3146 VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT_KHR = 0x00000004,
3147 VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT_KHR = 0x00000008,
Jesse Hallad250842017-03-10 18:35:38 -08003148}
3149
Daniel Koch09f7bf92017-10-05 00:26:58 -04003150@extension("VK_KHR_device_group") // 61
3151type VkFlags VkMemoryAllocateFlagsKHR
3152@extension("VK_KHR_device_group") // 61
3153bitfield VkMemoryAllocateFlagBitsKHR {
3154 VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT_KHR = 0x00000001,
Jesse Hallad250842017-03-10 18:35:38 -08003155}
3156
3157@extension("VK_NN_vi_surface") // 63
Jesse Hall77ad05b2017-03-10 22:02:20 -08003158type VkFlags VkViSurfaceCreateFlagsNN
Jesse Hallad250842017-03-10 18:35:38 -08003159//@extension("VK_NN_vi_surface") // 63
Jesse Hall77ad05b2017-03-10 22:02:20 -08003160//bitfield VkViSurfaceCreateFlagBitsNN {
3161//}
3162
Jesse Hallad250842017-03-10 18:35:38 -08003163@extension("VK_KHR_maintenance1") // 70
Jesse Hall77ad05b2017-03-10 22:02:20 -08003164type VkFlags VkCommandPoolTrimFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08003165//@extension("VK_KHR_maintenance1") // 70
Jesse Hall77ad05b2017-03-10 22:02:20 -08003166//bitfield VkCommandPoolTrimFlagBitsKHR {
3167//}
3168
Jesse Hall9492f992017-08-28 12:10:06 -07003169@extension("VK_KHR_external_memory_capabilities") // 72
3170type VkFlags VkExternalMemoryHandleTypeFlagsKHR
3171@extension("VK_KHR_external_memory_capabilities") // 72
3172bitfield VkExternalMemoryHandleTypeFlagBitsKHR {
3173 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = 0x00000001,
3174 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = 0x00000002,
3175 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = 0x00000004,
3176 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT_KHR = 0x00000008,
3177 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT_KHR = 0x00000010,
3178 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT_KHR = 0x00000020,
3179 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT_KHR = 0x00000040,
Jesse Hallad250842017-03-10 18:35:38 -08003180}
3181
Jesse Hall9492f992017-08-28 12:10:06 -07003182@extension("VK_KHR_external_memory_capabilities") // 72
3183type VkFlags VkExternalMemoryFeatureFlagsKHR
3184@extension("VK_KHR_external_memory_capabilities") // 72
3185bitfield VkExternalMemoryFeatureFlagBitsKHR {
3186 VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_KHR = 0x00000001,
3187 VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_KHR = 0x00000002,
3188 VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_KHR = 0x00000004,
Jesse Hallad250842017-03-10 18:35:38 -08003189}
3190
Jesse Hall9492f992017-08-28 12:10:06 -07003191@extension("VK_KHR_external_semaphore_capabilities") // 77
3192type VkFlags VkExternalSemaphoreHandleTypeFlagsKHR
3193@extension("VK_KHR_external_semaphore_capabilities") // 77
3194bitfield VkExternalSemaphoreHandleTypeFlagBitsKHR {
3195 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = 0x00000001
3196 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = 0x00000002
3197 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = 0x00000004
3198 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT_KHR = 0x00000008
3199 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_FENCE_FD_BIT_KHR = 0x00000010
Jesse Hallad250842017-03-10 18:35:38 -08003200}
3201
Jesse Hall9492f992017-08-28 12:10:06 -07003202@extension("VK_KHR_external_semaphore_capabilities") // 77
3203type VkFlags VkExternalSemaphoreFeatureFlagsKHR
3204@extension("VK_KHR_external_semaphore_capabilities") // 77
3205bitfield VkExternalSemaphoreFeatureFlagBitsKHR {
3206 VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT_KHR = 0x00000001,
3207 VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT_KHR = 0x00000002,
3208}
3209
3210@extension("VK_KHR_external_semaphore") // 78
3211type VkFlags VkSemaphoreImportFlagsKHR
3212@extension("VK_KHR_external_semaphore") // 78
3213bitfield VkSemaphoreImportFlagBitsKHR {
3214 VK_SEMAPHORE_IMPORT_TEMPORARY_BIT_KHR = 0x00000001,
Jesse Hallad250842017-03-10 18:35:38 -08003215}
3216
Jesse Halla13a3cf2018-07-09 15:51:52 -07003217@extension("VK_EXT_conditional_rendering") // 82
3218type VkFlags VkConditionalRenderingFlagsEXT
3219@extension("VK_EXT_conditional_rendering") // 82
3220bitfield VkConditionalRenderingFlagBitsEXT {
3221 VK_CONDITIONAL_RENDERING_INVERTED_BIT_EXT = 0x00000001,
3222}
3223
Jesse Hallad250842017-03-10 18:35:38 -08003224@extension("VK_KHR_descriptor_update_template") // 86
3225type VkFlags VkDescriptorUpdateTemplateCreateFlagsKHR
3226//@extension("VK_KHR_descriptor_update_template") // 86
3227//bitfield VkDescriptorUpdateTemplateCreateFlagBitsKHR {
3228//}
3229
3230@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13003231type VkFlags VkIndirectCommandsLayoutUsageFlagsNVX
Jesse Hallad250842017-03-10 18:35:38 -08003232@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13003233bitfield VkIndirectCommandsLayoutUsageFlagBitsNVX {
Jesse Halleb02c472017-02-24 15:13:45 -08003234 VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NVX = 0x00000001,
3235 VK_INDIRECT_COMMANDS_LAYOUT_USAGE_SPARSE_SEQUENCES_BIT_NVX = 0x00000002,
3236 VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EMPTY_EXECUTIONS_BIT_NVX = 0x00000004,
3237 VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NVX = 0x00000008,
Chris Forbes289cb792016-12-30 15:03:55 +13003238}
3239
Jesse Hallad250842017-03-10 18:35:38 -08003240@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13003241type VkFlags VkObjectEntryUsageFlagsNVX
Jesse Hallad250842017-03-10 18:35:38 -08003242@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13003243bitfield VkObjectEntryUsageFlagBitsNVX {
Jesse Halleb02c472017-02-24 15:13:45 -08003244 VK_OBJECT_ENTRY_USAGE_GRAPHICS_BIT_NVX = 0x00000001,
3245 VK_OBJECT_ENTRY_USAGE_COMPUTE_BIT_NVX = 0x00000002,
Chris Forbes289cb792016-12-30 15:03:55 +13003246}
3247
Jesse Hallad250842017-03-10 18:35:38 -08003248@extension("VK_EXT_display_surface_counter") // 91
Jesse Hall77ad05b2017-03-10 22:02:20 -08003249type VkFlags VkSurfaceCounterFlagsEXT
Jesse Hallad250842017-03-10 18:35:38 -08003250@extension("VK_EXT_display_surface_counter") // 91
Jesse Hall77ad05b2017-03-10 22:02:20 -08003251bitfield VkSurfaceCounterFlagBitsEXT {
3252 VK_SURFACE_COUNTER_VBLANK_EXT = 0x00000001,
3253}
3254
Jesse Hallad250842017-03-10 18:35:38 -08003255@extension("VK_NV_viewport_swizzle") // 99
3256type VkFlags VkPipelineViewportSwizzleStateCreateFlagsNV
3257//@extension("VK_NV_viewport_swizzle") // 99
3258//bitfield VkPipelineViewportSwizzleStateCreateFlagBitsNV {
3259//}
3260
3261@extension("VK_EXT_discard_rectangles") // 100
3262type VkFlags VkPipelineDiscardRectangleStateCreateFlagsEXT
3263//@extension("VK_EXT_discard_rectangles") // 100
3264//bitfield VkPipelineDiscardRectangleStateCreateFlagBitsEXT {
3265//}
3266
Jesse Hall8c954d32018-01-17 22:06:20 -08003267@extension("VK_EXT_conservative_rasterization") // 102
3268type VkFlags VkPipelineRasterizationConservativeStateCreateFlagsEXT
3269//@extension("VK_EXT_conservative_rasterization") // 102
3270//bitfield VkPipelineRasterizationConservativeStateCreateFlagBitsEXT {
3271//}
3272
Jesse Hall9492f992017-08-28 12:10:06 -07003273@extension("VK_KHR_external_fence_capabilities") // 113
3274type VkFlags VkExternalFenceHandleTypeFlagsKHR
3275@extension("VK_KHR_external_fence_capabilities") // 113
3276bitfield VkExternalFenceHandleTypeFlagBitsKHR {
3277 VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = 0x00000001,
3278 VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = 0x00000002,
3279 VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = 0x00000004,
3280 VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT_KHR = 0x00000008,
3281}
3282
3283@extension("VK_KHR_external_fence_capabilities") // 113
3284type VkFlags VkExternalFenceFeatureFlagsKHR
3285@extension("VK_KHR_external_fence_capabilities") // 113
3286bitfield VkExternalFenceFeatureFlagBitsKHR {
3287 VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT_KHR = 0x00000001,
3288 VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT_KHR = 0x00000002,
3289}
3290
3291@extension("VK_KHR_external_fence") // 114
3292type VkFlags VkFenceImportFlagsKHR
3293@extension("VK_KHR_external_fence") // 114
3294bitfield VkFenceImportFlagBitsKHR {
3295 VK_FENCE_IMPORT_TEMPORARY_BIT_KHR = 0x00000001,
3296}
3297
Jesse Hallad250842017-03-10 18:35:38 -08003298@extension("VK_MVK_ios_surface") // 123
3299type VkFlags VkIOSSurfaceCreateFlagsMVK
3300//@extension("VK_MVK_ios_surface") // 123
3301//bitfield VkIOSSurfaceCreateFlagBitsMVK {
3302//}
3303
3304@extension("VK_MVK_macos_surface") // 124
3305type VkFlags VkMacOSSurfaceCreateFlagsMVK
3306//@extension("VK_MVK_macos_surface") // 124
3307//bitfield VkMacOSSurfaceCreateFlagBitsMVK {
3308//}
3309
Jesse Hall8c954d32018-01-17 22:06:20 -08003310@extension("VK_EXT_debug_utils") // 129
3311type VkFlags VkDebugUtilsMessengerCallbackDataFlagsEXT
3312//@extension("VK_EXT_debug_utils") // 129
3313//bitfield VkDebugUtilsMessengerCallbackDataFlagBitsEXT {
3314//}
3315
3316@extension("VK_EXT_debug_utils") // 129
3317type VkFlags VkDebugUtilsMessengerCreateFlagsEXT
3318//@extension("VK_EXT_debug_utils") // 129
3319//bitfield VkDebugUtilsMessengerCreateFlagBitsEXT {
3320//}
3321
3322@extension("VK_EXT_debug_utils") // 129
3323type VkFlags VkDebugUtilsMessageSeverityFlagsEXT
3324@extension("VK_EXT_debug_utils") // 129
3325bitfield VkDebugUtilsMessageSeverityFlagBitsEXT {
3326 VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT = 0x00000001,
3327 VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT = 0x00000010,
3328 VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT = 0x00000100,
3329 VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT = 0x00001000,
3330}
3331
3332@extension("VK_EXT_debug_utils") // 129
3333type VkFlags VkDebugUtilsMessageTypeFlagsEXT
3334@extension("VK_EXT_debug_utils") // 129
3335bitfield VkDebugUtilsMessageTypeFlagBitsEXT {
3336 VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT = 0x00000001,
3337 VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT = 0x00000002,
3338 VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT = 0x00000004,
3339}
3340
Jesse Hall7ba0ac72017-07-07 17:13:23 -07003341@extension("VK_NV_fragment_coverage_to_color") // 150
3342type VkFlags VkPipelineCoverageToColorStateCreateFlagsNV
3343@extension("VK_NV_fragment_coverage_to_color") // 150
3344//bitfield VkPipelineCoverageToColorStateCreateFlagBitsNV {
3345//}
3346
3347@extension("VK_NV_framebuffer_mixed_samples") // 153
3348type VkFlags VkPipelineCoverageModulationStateCreateFlagsNV
3349@extension("VK_NV_framebuffer_mixed_samples") // 153
3350//bitfield VkPipelineCoverageModulationStateCreateFlagBitsNV {
3351//}
3352
Jesse Hall77726222017-09-19 14:49:27 -05003353@extension("VK_EXT_validation_cache") // 161
3354type VkFlags VkValidationCacheCreateFlagsEXT
3355@extension("VK_EXT_validation_cache") // 161
3356//bitfield VkValidationCacheCreateFlagBitsEXT {
3357//}
3358
Jesse Hall72e6a132018-04-06 13:00:44 -07003359@extension("VK_EXT_descriptor_indexing") // 162
3360type VkFlags VkDescriptorBindingFlagsEXT
3361@extension("VK_EXT_descriptor_indexing") // 162
3362bitfield VkDescriptorBindingFlagBitsEXT {
3363 VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT_EXT = 0x00000001,
3364 VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT_EXT = 0x00000002,
3365 VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT_EXT = 0x00000004,
3366 VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT_EXT = 0x00000008,
3367}
3368
Jesse Hallb5297192018-09-22 20:52:13 +02003369@extension("VK_NVX_raytracing") // 166
3370type VkFlags VkGeometryFlagsNVX
3371@extension("VK_NVX_raytracing") // 166
3372bitfield VkGeometryFlagBitsNVX {
3373 VK_GEOMETRY_OPAQUE_BIT_NVX = 0x00000001,
3374 VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_NVX = 0x00000002,
3375}
3376
3377@extension("VK_NVX_raytracing") // 166
3378type VkFlags VkGeometryInstanceFlagsNVX
3379@extension("VK_NVX_raytracing") // 166
3380bitfield VkGeometryInstanceFlagBitsNVX {
3381 VK_GEOMETRY_INSTANCE_TRIANGLE_CULL_DISABLE_BIT_NVX = 0x00000001,
3382 VK_GEOMETRY_INSTANCE_TRIANGLE_CULL_FLIP_WINDING_BIT_NVX = 0x00000002,
3383 VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_NVX = 0x00000004,
3384 VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_NVX = 0x00000008,
3385}
3386
3387@extension("VK_NVX_raytracing") // 166
3388type VkFlags VkBuildAccelerationStructureFlagsNVX
3389@extension("VK_NVX_raytracing") // 166
3390bitfield VkBuildAccelerationStructureFlagBitsNVX {
3391 VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_NVX = 0x00000001,
3392 VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_NVX = 0x00000002,
3393 VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_NVX = 0x00000004,
3394 VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_NVX = 0x00000008,
3395 VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_NVX = 0x00000010,
3396}
3397
Jesse Halld27f6aa2015-08-15 17:58:48 -07003398//////////////////
3399// Structures //
3400//////////////////
3401
3402class VkOffset2D {
3403 s32 x
3404 s32 y
3405}
3406
3407class VkOffset3D {
3408 s32 x
3409 s32 y
3410 s32 z
3411}
3412
3413class VkExtent2D {
Jesse Hall3dd678a2016-01-08 21:52:01 -08003414 u32 width
3415 u32 height
Jesse Halld27f6aa2015-08-15 17:58:48 -07003416}
3417
3418class VkExtent3D {
Jesse Hall3dd678a2016-01-08 21:52:01 -08003419 u32 width
3420 u32 height
3421 u32 depth
Jesse Halld27f6aa2015-08-15 17:58:48 -07003422}
3423
3424class VkViewport {
Jesse Hall65ab5522015-11-30 00:07:16 -08003425 f32 x
3426 f32 y
Jesse Halld27f6aa2015-08-15 17:58:48 -07003427 f32 width
3428 f32 height
3429 f32 minDepth
3430 f32 maxDepth
3431}
3432
3433class VkRect2D {
3434 VkOffset2D offset
3435 VkExtent2D extent
3436}
3437
Jesse Halla15a4bf2015-11-19 22:48:02 -08003438class VkClearRect {
3439 VkRect2D rect
3440 u32 baseArrayLayer
Jesse Hall3fbc8562015-11-29 22:10:52 -08003441 u32 layerCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07003442}
3443
Jesse Hall65ab5522015-11-30 00:07:16 -08003444class VkComponentMapping {
3445 VkComponentSwizzle r
3446 VkComponentSwizzle g
3447 VkComponentSwizzle b
3448 VkComponentSwizzle a
Jesse Halld27f6aa2015-08-15 17:58:48 -07003449}
3450
3451class VkPhysicalDeviceProperties {
3452 u32 apiVersion
3453 u32 driverVersion
Jesse Hall65ab5522015-11-30 00:07:16 -08003454 u32 vendorID
3455 u32 deviceID
Jesse Halld27f6aa2015-08-15 17:58:48 -07003456 VkPhysicalDeviceType deviceType
Jesse Hall65ab5522015-11-30 00:07:16 -08003457 char[VK_MAX_PHYSICAL_DEVICE_NAME_SIZE] deviceName
3458 u8[VK_UUID_SIZE] pipelineCacheUUID
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003459 VkPhysicalDeviceLimits limits
3460 VkPhysicalDeviceSparseProperties sparseProperties
Jesse Halld27f6aa2015-08-15 17:58:48 -07003461}
3462
3463class VkExtensionProperties {
Jesse Hall65ab5522015-11-30 00:07:16 -08003464 char[VK_MAX_EXTENSION_NAME_SIZE] extensionName /// extension name
Jesse Halld27f6aa2015-08-15 17:58:48 -07003465 u32 specVersion /// version of the extension specification implemented
3466}
3467
3468class VkLayerProperties {
Jesse Hall65ab5522015-11-30 00:07:16 -08003469 char[VK_MAX_EXTENSION_NAME_SIZE] layerName /// layer name
Jesse Hall3fbc8562015-11-29 22:10:52 -08003470 u32 specVersion /// version of the layer specification implemented
3471 u32 implementationVersion /// build or release version of the layer's library
Jesse Hall65ab5522015-11-30 00:07:16 -08003472 char[VK_MAX_DESCRIPTION_SIZE] description /// Free-form description of the layer
Jesse Halld27f6aa2015-08-15 17:58:48 -07003473}
3474
Jesse Halla366a512015-11-19 22:30:07 -08003475class VkSubmitInfo {
Jesse Hall03b6fe12015-11-24 12:44:21 -08003476 VkStructureType sType /// Type of structure. Should be VK_STRUCTURE_TYPE_SUBMIT_INFO
3477 const void* pNext /// Next structure in chain
3478 u32 waitSemaphoreCount
Jesse Halla366a512015-11-19 22:30:07 -08003479 const VkSemaphore* pWaitSemaphores
Jesse Hall543a7ff2016-01-08 16:38:30 -08003480 const VkPipelineStageFlags* pWaitDstStageMask
Jesse Hall03b6fe12015-11-24 12:44:21 -08003481 u32 commandBufferCount
Jesse Hall3fbc8562015-11-29 22:10:52 -08003482 const VkCommandBuffer* pCommandBuffers
Jesse Hall03b6fe12015-11-24 12:44:21 -08003483 u32 signalSemaphoreCount
Jesse Halla366a512015-11-19 22:30:07 -08003484 const VkSemaphore* pSignalSemaphores
3485}
3486
Jesse Halld27f6aa2015-08-15 17:58:48 -07003487class VkApplicationInfo {
3488 VkStructureType sType /// Type of structure. Should be VK_STRUCTURE_TYPE_APPLICATION_INFO
3489 const void* pNext /// Next structure in chain
Jesse Hall3fbc8562015-11-29 22:10:52 -08003490 const char* pApplicationName
3491 u32 applicationVersion
Jesse Halld27f6aa2015-08-15 17:58:48 -07003492 const char* pEngineName
3493 u32 engineVersion
3494 u32 apiVersion
3495}
3496
Jesse Hall3fbc8562015-11-29 22:10:52 -08003497class VkAllocationCallbacks {
Jesse Halld27f6aa2015-08-15 17:58:48 -07003498 void* pUserData
Jesse Hall3fbc8562015-11-29 22:10:52 -08003499 PFN_vkAllocationFunction pfnAllocation
3500 PFN_vkReallocationFunction pfnReallocation
Jesse Halld27f6aa2015-08-15 17:58:48 -07003501 PFN_vkFreeFunction pfnFree
Jesse Hall3fbc8562015-11-29 22:10:52 -08003502 PFN_vkInternalAllocationNotification pfnInternalAllocation
Jesse Hall03b6fe12015-11-24 12:44:21 -08003503 PFN_vkInternalFreeNotification pfnInternalFree
Jesse Halld27f6aa2015-08-15 17:58:48 -07003504}
3505
3506class VkDeviceQueueCreateInfo {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003507 VkStructureType sStype /// Should be VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO
3508 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003509 VkDeviceQueueCreateFlags flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07003510 u32 queueFamilyIndex
Jesse Halldba27f72015-11-30 14:25:46 -08003511 u32 queueCount
Jesse Hallfbf97b02015-11-20 14:17:03 -08003512 const f32* pQueuePriorities
Jesse Halld27f6aa2015-08-15 17:58:48 -07003513}
3514
3515class VkDeviceCreateInfo {
3516 VkStructureType sType /// Should be VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO
3517 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003518 VkDeviceCreateFlags flags
Jesse Halldba27f72015-11-30 14:25:46 -08003519 u32 queueCreateInfoCount
3520 const VkDeviceQueueCreateInfo* pQueueCreateInfos
Jesse Hall3dd678a2016-01-08 21:52:01 -08003521 u32 enabledLayerCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07003522 const char* const* ppEnabledLayerNames /// Ordered list of layer names to be enabled
Jesse Hall3dd678a2016-01-08 21:52:01 -08003523 u32 enabledExtensionCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07003524 const char* const* ppEnabledExtensionNames
3525 const VkPhysicalDeviceFeatures* pEnabledFeatures
Jesse Halld27f6aa2015-08-15 17:58:48 -07003526}
3527
3528class VkInstanceCreateInfo {
3529 VkStructureType sType /// Should be VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO
3530 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003531 VkInstanceCreateFlags flags
Jesse Hall3fbc8562015-11-29 22:10:52 -08003532 const VkApplicationInfo* pApplicationInfo
Jesse Hall3dd678a2016-01-08 21:52:01 -08003533 u32 enabledLayerCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07003534 const char* const* ppEnabledLayerNames /// Ordered list of layer names to be enabled
Jesse Hall3dd678a2016-01-08 21:52:01 -08003535 u32 enabledExtensionCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07003536 const char* const* ppEnabledExtensionNames /// Extension names to be enabled
3537}
3538
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003539class VkQueueFamilyProperties {
Jesse Halld27f6aa2015-08-15 17:58:48 -07003540 VkQueueFlags queueFlags /// Queue flags
3541 u32 queueCount
Jesse Hallacfa5342015-11-19 21:51:33 -08003542 u32 timestampValidBits
Jesse Hall65ab5522015-11-30 00:07:16 -08003543 VkExtent3D minImageTransferGranularity
Jesse Halld27f6aa2015-08-15 17:58:48 -07003544}
3545
3546class VkPhysicalDeviceMemoryProperties {
3547 u32 memoryTypeCount
3548 VkMemoryType[VK_MAX_MEMORY_TYPES] memoryTypes
3549 u32 memoryHeapCount
3550 VkMemoryHeap[VK_MAX_MEMORY_HEAPS] memoryHeaps
3551}
3552
Jesse Hall3fbc8562015-11-29 22:10:52 -08003553class VkMemoryAllocateInfo {
Jesse Hallf4ab2b12015-11-30 16:04:55 -08003554 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO
Jesse Halld27f6aa2015-08-15 17:58:48 -07003555 const void* pNext /// Pointer to next structure
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003556 VkDeviceSize allocationSize /// Size of memory allocation
Jesse Halld27f6aa2015-08-15 17:58:48 -07003557 u32 memoryTypeIndex /// Index of the of the memory type to allocate from
3558}
3559
3560class VkMemoryRequirements {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003561 VkDeviceSize size /// Specified in bytes
3562 VkDeviceSize alignment /// Specified in bytes
Jesse Halld27f6aa2015-08-15 17:58:48 -07003563 u32 memoryTypeBits /// Bitfield of the allowed memory type indices into memoryTypes[] for this object
3564}
3565
3566class VkSparseImageFormatProperties {
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08003567 VkImageAspectFlagBits aspectMask
Jesse Halld27f6aa2015-08-15 17:58:48 -07003568 VkExtent3D imageGranularity
3569 VkSparseImageFormatFlags flags
3570}
3571
3572class VkSparseImageMemoryRequirements {
Jesse Hallb00daad2015-11-29 19:46:20 -08003573 VkSparseImageFormatProperties formatProperties
Jesse Hallf9fa9a52016-01-08 16:08:51 -08003574 u32 imageMipTailFirstLod
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003575 VkDeviceSize imageMipTailSize /// Specified in bytes, must be a multiple of image block size / alignment
3576 VkDeviceSize imageMipTailOffset /// Specified in bytes, must be a multiple of image block size / alignment
3577 VkDeviceSize imageMipTailStride /// Specified in bytes, must be a multiple of image block size / alignment
Jesse Halld27f6aa2015-08-15 17:58:48 -07003578}
3579
3580class VkMemoryType {
3581 VkMemoryPropertyFlags propertyFlags /// Memory properties of this memory type
3582 u32 heapIndex /// Index of the memory heap allocations of this memory type are taken from
3583}
3584
3585class VkMemoryHeap {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003586 VkDeviceSize size /// Available memory in the heap
Jesse Halld27f6aa2015-08-15 17:58:48 -07003587 VkMemoryHeapFlags flags /// Flags for the heap
3588}
3589
3590class VkMappedMemoryRange {
3591 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE
3592 const void* pNext /// Pointer to next structure
Jesse Hall3fbc8562015-11-29 22:10:52 -08003593 VkDeviceMemory memory /// Mapped memory object
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003594 VkDeviceSize offset /// Offset within the mapped memory the range starts from
3595 VkDeviceSize size /// Size of the range within the mapped memory
Jesse Halld27f6aa2015-08-15 17:58:48 -07003596}
3597
3598class VkFormatProperties {
3599 VkFormatFeatureFlags linearTilingFeatures /// Format features in case of linear tiling
3600 VkFormatFeatureFlags optimalTilingFeatures /// Format features in case of optimal tiling
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003601 VkFormatFeatureFlags bufferFeatures /// Format features supported by buffers
Jesse Halld27f6aa2015-08-15 17:58:48 -07003602}
3603
3604class VkImageFormatProperties {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003605 VkExtent3D maxExtent /// max image dimensions for this resource type
3606 u32 maxMipLevels /// max number of mipmap levels for this resource type
Jesse Halla15a4bf2015-11-19 22:48:02 -08003607 u32 maxArrayLayers /// max array layers for this resource type
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003608 VkSampleCountFlags sampleCounts /// supported sample counts for this resource type
3609 VkDeviceSize maxResourceSize /// max size (in bytes) of this resource type
3610}
3611
Jesse Halla15a4bf2015-11-19 22:48:02 -08003612class VkDescriptorImageInfo {
3613 VkSampler sampler
3614 VkImageView imageView
3615 VkImageLayout imageLayout
3616}
3617
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003618class VkDescriptorBufferInfo {
3619 VkBuffer buffer /// Buffer used for this descriptor when the descriptor is UNIFORM_BUFFER[_DYNAMIC]
3620 VkDeviceSize offset /// Base offset from buffer start in bytes to update in the descriptor set.
3621 VkDeviceSize range /// Size in bytes of the buffer resource for this descriptor update.
Jesse Halld27f6aa2015-08-15 17:58:48 -07003622}
3623
Jesse Halld27f6aa2015-08-15 17:58:48 -07003624class VkWriteDescriptorSet {
3625 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET
3626 const void* pNext /// Pointer to next structure
Jesse Hall3fbc8562015-11-29 22:10:52 -08003627 VkDescriptorSet dstSet /// Destination descriptor set
3628 u32 dstBinding /// Binding within the destination descriptor set to write
3629 u32 dstArrayElement /// Array element within the destination binding to write
Jesse Hall03b6fe12015-11-24 12:44:21 -08003630 u32 descriptorCount /// Number of descriptors to write (determines the size of the array pointed by <pDescriptors>)
Jesse Halld27f6aa2015-08-15 17:58:48 -07003631 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 -08003632 const VkDescriptorImageInfo* pImageInfo
3633 const VkDescriptorBufferInfo* pBufferInfo
3634 const VkBufferView* pTexelBufferView
Jesse Halld27f6aa2015-08-15 17:58:48 -07003635}
3636
3637class VkCopyDescriptorSet {
3638 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET
3639 const void* pNext /// Pointer to next structure
3640 VkDescriptorSet srcSet /// Source descriptor set
3641 u32 srcBinding /// Binding within the source descriptor set to copy from
3642 u32 srcArrayElement /// Array element within the source binding to copy from
Jesse Hall3fbc8562015-11-29 22:10:52 -08003643 VkDescriptorSet dstSet /// Destination descriptor set
3644 u32 dstBinding /// Binding within the destination descriptor set to copy to
3645 u32 dstArrayElement /// Array element within the destination binding to copy to
Jesse Hall03b6fe12015-11-24 12:44:21 -08003646 u32 descriptorCount /// Number of descriptors to copy
Jesse Halld27f6aa2015-08-15 17:58:48 -07003647}
3648
3649class VkBufferCreateInfo {
3650 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO
3651 const void* pNext /// Pointer to next structure.
Jesse Halla6429252015-11-29 18:59:42 -08003652 VkBufferCreateFlags flags /// Buffer creation flags
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003653 VkDeviceSize size /// Specified in bytes
Jesse Halld27f6aa2015-08-15 17:58:48 -07003654 VkBufferUsageFlags usage /// Buffer usage flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07003655 VkSharingMode sharingMode
Jesse Hall03b6fe12015-11-24 12:44:21 -08003656 u32 queueFamilyIndexCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07003657 const u32* pQueueFamilyIndices
3658}
3659
3660class VkBufferViewCreateInfo {
3661 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO
3662 const void* pNext /// Pointer to next structure.
Jesse Halla6429252015-11-29 18:59:42 -08003663 VkBufferViewCreateFlags flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07003664 VkBuffer buffer
Jesse Halld27f6aa2015-08-15 17:58:48 -07003665 VkFormat format /// Optionally specifies format of elements
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003666 VkDeviceSize offset /// Specified in bytes
3667 VkDeviceSize range /// View size specified in bytes
Jesse Halld27f6aa2015-08-15 17:58:48 -07003668}
3669
3670class VkImageSubresource {
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08003671 VkImageAspectFlagBits aspectMask
Jesse Halld27f6aa2015-08-15 17:58:48 -07003672 u32 mipLevel
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003673 u32 arrayLayer
Jesse Halld27f6aa2015-08-15 17:58:48 -07003674}
3675
3676class VkImageSubresourceRange {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003677 VkImageAspectFlags aspectMask
Jesse Halld27f6aa2015-08-15 17:58:48 -07003678 u32 baseMipLevel
Jesse Hall3fbc8562015-11-29 22:10:52 -08003679 u32 levelCount
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003680 u32 baseArrayLayer
Jesse Hall3fbc8562015-11-29 22:10:52 -08003681 u32 layerCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07003682}
3683
3684class VkMemoryBarrier {
3685 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_MEMORY_BARRIER
3686 const void* pNext /// Pointer to next structure.
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08003687 VkAccessFlags srcAccessMask
3688 VkAccessFlags dstAccessMask
Jesse Halld27f6aa2015-08-15 17:58:48 -07003689}
3690
3691class VkBufferMemoryBarrier {
3692 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER
3693 const void* pNext /// Pointer to next structure.
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08003694 VkAccessFlags srcAccessMask
3695 VkAccessFlags dstAccessMask
Jesse Halld27f6aa2015-08-15 17:58:48 -07003696 u32 srcQueueFamilyIndex /// Queue family to transition ownership from
Jesse Hall3fbc8562015-11-29 22:10:52 -08003697 u32 dstQueueFamilyIndex /// Queue family to transition ownership to
Jesse Halld27f6aa2015-08-15 17:58:48 -07003698 VkBuffer buffer /// Buffer to sync
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003699 VkDeviceSize offset /// Offset within the buffer to sync
3700 VkDeviceSize size /// Amount of bytes to sync
Jesse Halld27f6aa2015-08-15 17:58:48 -07003701}
3702
3703class VkImageMemoryBarrier {
3704 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER
3705 const void* pNext /// Pointer to next structure.
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08003706 VkAccessFlags srcAccessMask
3707 VkAccessFlags dstAccessMask
Jesse Halld27f6aa2015-08-15 17:58:48 -07003708 VkImageLayout oldLayout /// Current layout of the image
3709 VkImageLayout newLayout /// New layout to transition the image to
3710 u32 srcQueueFamilyIndex /// Queue family to transition ownership from
Jesse Hall3fbc8562015-11-29 22:10:52 -08003711 u32 dstQueueFamilyIndex /// Queue family to transition ownership to
Jesse Halld27f6aa2015-08-15 17:58:48 -07003712 VkImage image /// Image to sync
3713 VkImageSubresourceRange subresourceRange /// Subresource range to sync
3714}
3715
3716class VkImageCreateInfo {
3717 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO
3718 const void* pNext /// Pointer to next structure.
Jesse Halla6429252015-11-29 18:59:42 -08003719 VkImageCreateFlags flags /// Image creation flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07003720 VkImageType imageType
3721 VkFormat format
3722 VkExtent3D extent
3723 u32 mipLevels
Jesse Halla15a4bf2015-11-19 22:48:02 -08003724 u32 arrayLayers
Jesse Hall091ed9e2015-11-30 00:55:29 -08003725 VkSampleCountFlagBits samples
Jesse Halld27f6aa2015-08-15 17:58:48 -07003726 VkImageTiling tiling
3727 VkImageUsageFlags usage /// Image usage flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07003728 VkSharingMode sharingMode /// Cross-queue-family sharing mode
Jesse Hall03b6fe12015-11-24 12:44:21 -08003729 u32 queueFamilyIndexCount /// Number of queue families to share across
Jesse Halld27f6aa2015-08-15 17:58:48 -07003730 const u32* pQueueFamilyIndices /// Array of queue family indices to share across
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003731 VkImageLayout initialLayout /// Initial image layout for all subresources
Jesse Halld27f6aa2015-08-15 17:58:48 -07003732}
3733
3734class VkSubresourceLayout {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003735 VkDeviceSize offset /// Specified in bytes
3736 VkDeviceSize size /// Specified in bytes
3737 VkDeviceSize rowPitch /// Specified in bytes
Jesse Hall543a7ff2016-01-08 16:38:30 -08003738 VkDeviceSize arrayPitch /// Specified in bytes
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003739 VkDeviceSize depthPitch /// Specified in bytes
Jesse Halld27f6aa2015-08-15 17:58:48 -07003740}
3741
3742class VkImageViewCreateInfo {
3743 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO
3744 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003745 VkImageViewCreateFlags flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07003746 VkImage image
3747 VkImageViewType viewType
3748 VkFormat format
Jesse Hall65ab5522015-11-30 00:07:16 -08003749 VkComponentMapping components
Jesse Halld27f6aa2015-08-15 17:58:48 -07003750 VkImageSubresourceRange subresourceRange
Jesse Halld27f6aa2015-08-15 17:58:48 -07003751}
3752
3753class VkBufferCopy {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003754 VkDeviceSize srcOffset /// Specified in bytes
Jesse Hall3fbc8562015-11-29 22:10:52 -08003755 VkDeviceSize dstOffset /// Specified in bytes
Jesse Hallb00daad2015-11-29 19:46:20 -08003756 VkDeviceSize size /// Specified in bytes
Jesse Halld27f6aa2015-08-15 17:58:48 -07003757}
3758
Jesse Halla6429252015-11-29 18:59:42 -08003759class VkSparseMemoryBind {
Jesse Hallb00daad2015-11-29 19:46:20 -08003760 VkDeviceSize resourceOffset /// Specified in bytes
3761 VkDeviceSize size /// Specified in bytes
Jesse Hall3fbc8562015-11-29 22:10:52 -08003762 VkDeviceMemory memory
3763 VkDeviceSize memoryOffset /// Specified in bytes
Jesse Halld27f6aa2015-08-15 17:58:48 -07003764 VkSparseMemoryBindFlags flags
3765}
3766
Jesse Halla6429252015-11-29 18:59:42 -08003767class VkSparseImageMemoryBind {
Jesse Halld27f6aa2015-08-15 17:58:48 -07003768 VkImageSubresource subresource
3769 VkOffset3D offset
3770 VkExtent3D extent
Jesse Hall3fbc8562015-11-29 22:10:52 -08003771 VkDeviceMemory memory
3772 VkDeviceSize memoryOffset /// Specified in bytes
Jesse Halld27f6aa2015-08-15 17:58:48 -07003773 VkSparseMemoryBindFlags flags
3774}
3775
Jesse Halla6429252015-11-29 18:59:42 -08003776class VkSparseBufferMemoryBindInfo {
3777 VkBuffer buffer
3778 u32 bindCount
3779 const VkSparseMemoryBind* pBinds
3780}
3781
3782class VkSparseImageOpaqueMemoryBindInfo {
3783 VkImage image
3784 u32 bindCount
3785 const VkSparseMemoryBind* pBinds
3786}
3787
3788class VkSparseImageMemoryBindInfo {
3789 VkImage image
3790 u32 bindCount
3791 const VkSparseMemoryBind* pBinds
3792}
3793
3794class VkBindSparseInfo {
3795 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_BIND_SPARSE_INFO
3796 const void* pNext
3797 u32 waitSemaphoreCount
3798 const VkSemaphore* pWaitSemaphores
3799 u32 numBufferBinds
3800 const VkSparseBufferMemoryBindInfo* pBufferBinds
3801 u32 numImageOpaqueBinds
3802 const VkSparseImageOpaqueMemoryBindInfo* pImageOpaqueBinds
3803 u32 numImageBinds
3804 const VkSparseImageMemoryBindInfo* pImageBinds
3805 u32 signalSemaphoreCount
3806 const VkSemaphore* pSignalSemaphores
3807}
3808
Jesse Hall65ab5522015-11-30 00:07:16 -08003809class VkImageSubresourceLayers {
3810 VkImageAspectFlags aspectMask
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003811 u32 mipLevel
Jesse Halla15a4bf2015-11-19 22:48:02 -08003812 u32 baseArrayLayer
Jesse Hall3fbc8562015-11-29 22:10:52 -08003813 u32 layerCount
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003814}
3815
Jesse Halld27f6aa2015-08-15 17:58:48 -07003816class VkImageCopy {
Jesse Hall65ab5522015-11-30 00:07:16 -08003817 VkImageSubresourceLayers srcSubresource
Jesse Halld27f6aa2015-08-15 17:58:48 -07003818 VkOffset3D srcOffset /// Specified in pixels for both compressed and uncompressed images
Jesse Hall65ab5522015-11-30 00:07:16 -08003819 VkImageSubresourceLayers dstSubresource
Jesse Hall3fbc8562015-11-29 22:10:52 -08003820 VkOffset3D dstOffset /// Specified in pixels for both compressed and uncompressed images
Jesse Halld27f6aa2015-08-15 17:58:48 -07003821 VkExtent3D extent /// Specified in pixels for both compressed and uncompressed images
3822}
3823
3824class VkImageBlit {
Jesse Hall65ab5522015-11-30 00:07:16 -08003825 VkImageSubresourceLayers srcSubresource
Jesse Hall3dd678a2016-01-08 21:52:01 -08003826 VkOffset3D[2] srcOffsets
Jesse Hall65ab5522015-11-30 00:07:16 -08003827 VkImageSubresourceLayers dstSubresource
Jesse Hall3dd678a2016-01-08 21:52:01 -08003828 VkOffset3D[2] dstOffsets
Jesse Halld27f6aa2015-08-15 17:58:48 -07003829}
3830
3831class VkBufferImageCopy {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003832 VkDeviceSize bufferOffset /// Specified in bytes
Jesse Halld27f6aa2015-08-15 17:58:48 -07003833 u32 bufferRowLength /// Specified in texels
3834 u32 bufferImageHeight
Jesse Hall65ab5522015-11-30 00:07:16 -08003835 VkImageSubresourceLayers imageSubresource
Jesse Halld27f6aa2015-08-15 17:58:48 -07003836 VkOffset3D imageOffset /// Specified in pixels for both compressed and uncompressed images
3837 VkExtent3D imageExtent /// Specified in pixels for both compressed and uncompressed images
3838}
3839
3840class VkImageResolve {
Jesse Hall65ab5522015-11-30 00:07:16 -08003841 VkImageSubresourceLayers srcSubresource
Jesse Halld27f6aa2015-08-15 17:58:48 -07003842 VkOffset3D srcOffset
Jesse Hall65ab5522015-11-30 00:07:16 -08003843 VkImageSubresourceLayers dstSubresource
Jesse Hall3fbc8562015-11-29 22:10:52 -08003844 VkOffset3D dstOffset
Jesse Halld27f6aa2015-08-15 17:58:48 -07003845 VkExtent3D extent
3846}
3847
3848class VkShaderModuleCreateInfo {
3849 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO
3850 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003851 VkShaderModuleCreateFlags flags /// Reserved
Jesse Halld27f6aa2015-08-15 17:58:48 -07003852 platform.size_t codeSize /// Specified in bytes
Jesse Halla9bb62b2015-11-21 19:31:56 -08003853 const u32* pCode /// Binary code of size codeSize
Jesse Halld27f6aa2015-08-15 17:58:48 -07003854}
3855
Jesse Halld27f6aa2015-08-15 17:58:48 -07003856class VkDescriptorSetLayoutBinding {
Jesse Hall091ed9e2015-11-30 00:55:29 -08003857 u32 binding
Jesse Halld27f6aa2015-08-15 17:58:48 -07003858 VkDescriptorType descriptorType /// Type of the descriptors in this binding
Jesse Halldba27f72015-11-30 14:25:46 -08003859 u32 descriptorCount /// Number of descriptors in this binding
Jesse Halld27f6aa2015-08-15 17:58:48 -07003860 VkShaderStageFlags stageFlags /// Shader stages this binding is visible to
3861 const VkSampler* pImmutableSamplers /// Immutable samplers (used if descriptor type is SAMPLER or COMBINED_IMAGE_SAMPLER, is either NULL or contains <count> number of elements)
3862}
3863
3864class VkDescriptorSetLayoutCreateInfo {
3865 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO
3866 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003867 VkDescriptorSetLayoutCreateFlags flags
Jesse Hall03b6fe12015-11-24 12:44:21 -08003868 u32 bindingCount /// Number of bindings in the descriptor set layout
Jesse Hall543a7ff2016-01-08 16:38:30 -08003869 const VkDescriptorSetLayoutBinding* pBindings /// Array of descriptor set layout bindings
Jesse Halld27f6aa2015-08-15 17:58:48 -07003870}
3871
Jesse Hall65ab5522015-11-30 00:07:16 -08003872class VkDescriptorPoolSize {
Jesse Halld27f6aa2015-08-15 17:58:48 -07003873 VkDescriptorType type
Jesse Hall03b6fe12015-11-24 12:44:21 -08003874 u32 descriptorCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07003875}
3876
3877class VkDescriptorPoolCreateInfo {
3878 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO
3879 const void* pNext /// Pointer to next structure
Jesse Hallfbf97b02015-11-20 14:17:03 -08003880 VkDescriptorPoolCreateFlags flags
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003881 u32 maxSets
Jesse Hall65ab5522015-11-30 00:07:16 -08003882 u32 poolSizeCount
3883 const VkDescriptorPoolSize* pPoolSizes
Jesse Halld27f6aa2015-08-15 17:58:48 -07003884}
3885
Jesse Hall3fbc8562015-11-29 22:10:52 -08003886class VkDescriptorSetAllocateInfo {
Jesse Hallf4ab2b12015-11-30 16:04:55 -08003887 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO
Jesse Hallfbf97b02015-11-20 14:17:03 -08003888 const void* pNext /// Pointer to next structure
3889 VkDescriptorPool descriptorPool
Jesse Hall03b6fe12015-11-24 12:44:21 -08003890 u32 setCount
Jesse Hallfbf97b02015-11-20 14:17:03 -08003891 const VkDescriptorSetLayout* pSetLayouts
3892}
3893
Jesse Halld27f6aa2015-08-15 17:58:48 -07003894class VkSpecializationMapEntry {
Jesse Hall65ab5522015-11-30 00:07:16 -08003895 u32 constantID /// The SpecConstant ID specified in the BIL
Jesse Halld27f6aa2015-08-15 17:58:48 -07003896 u32 offset /// Offset of the value in the data block
Jesse Hallb00daad2015-11-29 19:46:20 -08003897 platform.size_t size /// Size in bytes of the SpecConstant
Jesse Halld27f6aa2015-08-15 17:58:48 -07003898}
3899
3900class VkSpecializationInfo {
3901 u32 mapEntryCount /// Number of entries in the map
Jesse Hallb00daad2015-11-29 19:46:20 -08003902 const VkSpecializationMapEntry* pMapEntries /// Array of map entries
Jesse Halld27f6aa2015-08-15 17:58:48 -07003903 platform.size_t dataSize /// Size in bytes of pData
3904 const void* pData /// Pointer to SpecConstant data
3905}
3906
3907class VkPipelineShaderStageCreateInfo {
3908 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO
3909 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003910 VkPipelineShaderStageCreateFlags flags
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08003911 VkShaderStageFlagBits stage
3912 VkShaderModule module
3913 const char* pName
Jesse Halld27f6aa2015-08-15 17:58:48 -07003914 const VkSpecializationInfo* pSpecializationInfo
3915}
3916
3917class VkComputePipelineCreateInfo {
3918 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO
3919 const void* pNext /// Pointer to next structure
Jesse Halld27f6aa2015-08-15 17:58:48 -07003920 VkPipelineCreateFlags flags /// Pipeline creation flags
Jesse Halla6429252015-11-29 18:59:42 -08003921 VkPipelineShaderStageCreateInfo stage
Jesse Halld27f6aa2015-08-15 17:58:48 -07003922 VkPipelineLayout layout /// Interface layout of the pipeline
3923 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
3924 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
3925}
3926
3927class VkVertexInputBindingDescription {
Jesse Hallb00daad2015-11-29 19:46:20 -08003928 u32 binding /// Vertex buffer binding id
3929 u32 stride /// Distance between vertices in bytes (0 = no advancement)
Jesse Hall65ab5522015-11-30 00:07:16 -08003930 VkVertexInputRate inputRate /// Rate at which binding is incremented
Jesse Halld27f6aa2015-08-15 17:58:48 -07003931}
3932
3933class VkVertexInputAttributeDescription {
Jesse Hallb00daad2015-11-29 19:46:20 -08003934 u32 location /// location of the shader vertex attrib
3935 u32 binding /// Vertex buffer binding id
3936 VkFormat format /// format of source data
3937 u32 offset /// Offset of first element in bytes from base of vertex
Jesse Halld27f6aa2015-08-15 17:58:48 -07003938}
3939
3940class VkPipelineVertexInputStateCreateInfo {
Jesse Hall03b6fe12015-11-24 12:44:21 -08003941 VkStructureType sType /// Should be VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO
3942 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003943 VkPipelineVertexInputStateCreateFlags flags
Jesse Hall03b6fe12015-11-24 12:44:21 -08003944 u32 vertexBindingDescriptionCount /// number of bindings
Jesse Halld27f6aa2015-08-15 17:58:48 -07003945 const VkVertexInputBindingDescription* pVertexBindingDescriptions
Jesse Hall03b6fe12015-11-24 12:44:21 -08003946 u32 vertexAttributeDescriptionCount /// number of attributes
Jesse Halld27f6aa2015-08-15 17:58:48 -07003947 const VkVertexInputAttributeDescription* pVertexAttributeDescriptions
3948}
3949
3950class VkPipelineInputAssemblyStateCreateInfo {
3951 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO
3952 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003953 VkPipelineInputAssemblyStateCreateFlags flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07003954 VkPrimitiveTopology topology
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003955 VkBool32 primitiveRestartEnable
Jesse Halld27f6aa2015-08-15 17:58:48 -07003956}
3957
3958class VkPipelineTessellationStateCreateInfo {
3959 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO
3960 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003961 VkPipelineTessellationStateCreateFlags flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07003962 u32 patchControlPoints
3963}
3964
3965class VkPipelineViewportStateCreateInfo {
3966 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO
3967 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003968 VkPipelineViewportStateCreateFlags flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07003969 u32 viewportCount
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003970 const VkViewport* pViewports
3971 u32 scissorCount
3972 const VkRect2D* pScissors
Jesse Halld27f6aa2015-08-15 17:58:48 -07003973}
3974
Jesse Hall3fbc8562015-11-29 22:10:52 -08003975class VkPipelineRasterizationStateCreateInfo {
Jesse Hall65ab5522015-11-30 00:07:16 -08003976 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO
Jesse Halld27f6aa2015-08-15 17:58:48 -07003977 const void* pNext /// Pointer to next structure
Jesse Hall3fbc8562015-11-29 22:10:52 -08003978 VkPipelineRasterizationStateCreateFlags flags
Jesse Hallae38f732015-11-19 21:32:50 -08003979 VkBool32 depthClampEnable
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003980 VkBool32 rasterizerDiscardEnable
Jesse Hall65ab5522015-11-30 00:07:16 -08003981 VkPolygonMode polygonMode /// optional (GL45)
Jesse Hallc7467b72015-11-29 21:05:26 -08003982 VkCullModeFlags cullMode
Jesse Halld27f6aa2015-08-15 17:58:48 -07003983 VkFrontFace frontFace
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003984 VkBool32 depthBiasEnable
Jesse Halla9bb62b2015-11-21 19:31:56 -08003985 f32 depthBiasConstantFactor
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003986 f32 depthBiasClamp
Jesse Halla9bb62b2015-11-21 19:31:56 -08003987 f32 depthBiasSlopeFactor
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003988 f32 lineWidth
Jesse Halld27f6aa2015-08-15 17:58:48 -07003989}
3990
3991class VkPipelineMultisampleStateCreateInfo {
3992 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO
3993 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003994 VkPipelineMultisampleStateCreateFlags flags
Jesse Hall091ed9e2015-11-30 00:55:29 -08003995 VkSampleCountFlagBits rasterizationSamples /// Number of samples used for rasterization
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003996 VkBool32 sampleShadingEnable /// optional (GL45)
Jesse Halld27f6aa2015-08-15 17:58:48 -07003997 f32 minSampleShading /// optional (GL45)
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003998 const VkSampleMask* pSampleMask
Jesse Hallacfa5342015-11-19 21:51:33 -08003999 VkBool32 alphaToCoverageEnable
4000 VkBool32 alphaToOneEnable
Jesse Halld27f6aa2015-08-15 17:58:48 -07004001}
4002
4003class VkPipelineColorBlendAttachmentState {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004004 VkBool32 blendEnable
Jesse Hall65ab5522015-11-30 00:07:16 -08004005 VkBlendFactor srcColorBlendFactor
4006 VkBlendFactor dstColorBlendFactor
4007 VkBlendOp colorBlendOp
4008 VkBlendFactor srcAlphaBlendFactor
4009 VkBlendFactor dstAlphaBlendFactor
4010 VkBlendOp alphaBlendOp
4011 VkColorComponentFlags colorWriteMask
Jesse Halld27f6aa2015-08-15 17:58:48 -07004012}
4013
4014class VkPipelineColorBlendStateCreateInfo {
4015 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO
4016 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08004017 VkPipelineColorBlendStateCreateFlags flags
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004018 VkBool32 logicOpEnable
Jesse Halld27f6aa2015-08-15 17:58:48 -07004019 VkLogicOp logicOp
4020 u32 attachmentCount /// # of pAttachments
4021 const VkPipelineColorBlendAttachmentState* pAttachments
Jesse Hallb00daad2015-11-29 19:46:20 -08004022 f32[4] blendConstants
Jesse Halld27f6aa2015-08-15 17:58:48 -07004023}
4024
4025class VkStencilOpState {
Jesse Hall65ab5522015-11-30 00:07:16 -08004026 VkStencilOp failOp
4027 VkStencilOp passOp
4028 VkStencilOp depthFailOp
4029 VkCompareOp compareOp
4030 u32 compareMask
4031 u32 writeMask
4032 u32 reference
Jesse Halld27f6aa2015-08-15 17:58:48 -07004033}
4034
4035class VkPipelineDepthStencilStateCreateInfo {
4036 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO
4037 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08004038 VkPipelineDepthStencilStateCreateFlags flags
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004039 VkBool32 depthTestEnable
4040 VkBool32 depthWriteEnable
Jesse Halld27f6aa2015-08-15 17:58:48 -07004041 VkCompareOp depthCompareOp
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004042 VkBool32 depthBoundsTestEnable /// optional (depth_bounds_test)
4043 VkBool32 stencilTestEnable
Jesse Halld27f6aa2015-08-15 17:58:48 -07004044 VkStencilOpState front
4045 VkStencilOpState back
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004046 f32 minDepthBounds
4047 f32 maxDepthBounds
4048}
4049
4050class VkPipelineDynamicStateCreateInfo {
4051 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO
4052 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08004053 VkPipelineDynamicStateCreateFlags flags
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004054 u32 dynamicStateCount
4055 const VkDynamicState* pDynamicStates
Jesse Halld27f6aa2015-08-15 17:58:48 -07004056}
4057
4058class VkGraphicsPipelineCreateInfo {
Jesse Halla6429252015-11-29 18:59:42 -08004059 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO
4060 const void* pNext /// Pointer to next structure
4061 VkPipelineCreateFlags flags /// Pipeline creation flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07004062 u32 stageCount
Jesse Halla6429252015-11-29 18:59:42 -08004063 const VkPipelineShaderStageCreateInfo* pStages /// One entry for each active shader stage
Jesse Halld27f6aa2015-08-15 17:58:48 -07004064 const VkPipelineVertexInputStateCreateInfo* pVertexInputState
4065 const VkPipelineInputAssemblyStateCreateInfo* pInputAssemblyState
4066 const VkPipelineTessellationStateCreateInfo* pTessellationState
4067 const VkPipelineViewportStateCreateInfo* pViewportState
Jesse Hall3fbc8562015-11-29 22:10:52 -08004068 const VkPipelineRasterizationStateCreateInfo* pRasterizationState
Jesse Halld27f6aa2015-08-15 17:58:48 -07004069 const VkPipelineMultisampleStateCreateInfo* pMultisampleState
4070 const VkPipelineDepthStencilStateCreateInfo* pDepthStencilState
4071 const VkPipelineColorBlendStateCreateInfo* pColorBlendState
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004072 const VkPipelineDynamicStateCreateInfo* pDynamicState
Jesse Halla6429252015-11-29 18:59:42 -08004073 VkPipelineLayout layout /// Interface layout of the pipeline
Jesse Halld27f6aa2015-08-15 17:58:48 -07004074 VkRenderPass renderPass
4075 u32 subpass
Jesse Halla6429252015-11-29 18:59:42 -08004076 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
4077 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 -07004078}
4079
4080class VkPipelineCacheCreateInfo {
Jesse Hallb00daad2015-11-29 19:46:20 -08004081 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO
4082 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08004083 VkPipelineCacheCreateFlags flags
Jesse Hallb00daad2015-11-29 19:46:20 -08004084 platform.size_t initialDataSize /// Size of initial data to populate cache, in bytes
4085 const void* pInitialData /// Initial data to populate cache
Jesse Halld27f6aa2015-08-15 17:58:48 -07004086}
4087
4088class VkPushConstantRange {
4089 VkShaderStageFlags stageFlags /// Which stages use the range
Jesse Hall03b6fe12015-11-24 12:44:21 -08004090 u32 offset /// Start of the range, in bytes
4091 u32 size /// Length of the range, in bytes
Jesse Halld27f6aa2015-08-15 17:58:48 -07004092}
4093
4094class VkPipelineLayoutCreateInfo {
4095 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO
4096 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08004097 VkPipelineLayoutCreateFlags flags
Jesse Hall3dd678a2016-01-08 21:52:01 -08004098 u32 descriptorSetCount /// Number of descriptor sets interfaced by the pipeline
Jesse Halld27f6aa2015-08-15 17:58:48 -07004099 const VkDescriptorSetLayout* pSetLayouts /// Array of <setCount> number of descriptor set layout objects defining the layout of the
4100 u32 pushConstantRangeCount /// Number of push-constant ranges used by the pipeline
4101 const VkPushConstantRange* pPushConstantRanges /// Array of pushConstantRangeCount number of ranges used by various shader stages
4102}
4103
4104class VkSamplerCreateInfo {
4105 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO
4106 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08004107 VkSamplerCreateFlags flags
Jesse Hall23ff73f2015-11-29 14:36:39 -08004108 VkFilter magFilter /// Filter mode for magnification
4109 VkFilter minFilter /// Filter mode for minifiation
4110 VkSamplerMipmapMode mipmapMode /// Mipmap selection mode
4111 VkSamplerAddressMode addressModeU
4112 VkSamplerAddressMode addressModeV
4113 VkSamplerAddressMode addressModeW
Jesse Halld27f6aa2015-08-15 17:58:48 -07004114 f32 mipLodBias
Jesse Hallf9fa9a52016-01-08 16:08:51 -08004115 VkBool32 anisotropyEnable
Jesse Halld27f6aa2015-08-15 17:58:48 -07004116 f32 maxAnisotropy
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004117 VkBool32 compareEnable
Jesse Halld27f6aa2015-08-15 17:58:48 -07004118 VkCompareOp compareOp
4119 f32 minLod
4120 f32 maxLod
4121 VkBorderColor borderColor
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004122 VkBool32 unnormalizedCoordinates
Jesse Halld27f6aa2015-08-15 17:58:48 -07004123}
4124
Jesse Hall3fbc8562015-11-29 22:10:52 -08004125class VkCommandPoolCreateInfo {
4126 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO
Jesse Halld27f6aa2015-08-15 17:58:48 -07004127 const void* pNext /// Pointer to next structure
Jesse Hall3fbc8562015-11-29 22:10:52 -08004128 VkCommandPoolCreateFlags flags /// Command pool creation flags
Jesse Halla6429252015-11-29 18:59:42 -08004129 u32 queueFamilyIndex
Jesse Halld27f6aa2015-08-15 17:58:48 -07004130}
4131
Jesse Hall3fbc8562015-11-29 22:10:52 -08004132class VkCommandBufferAllocateInfo {
Jesse Hallf4ab2b12015-11-30 16:04:55 -08004133 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO
Jesse Halld27f6aa2015-08-15 17:58:48 -07004134 const void* pNext /// Pointer to next structure
Jesse Hall3fbc8562015-11-29 22:10:52 -08004135 VkCommandPool commandPool
4136 VkCommandBufferLevel level
Jesse Hall3dd678a2016-01-08 21:52:01 -08004137 u32 commandBufferCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07004138}
4139
Jesse Hall3dd678a2016-01-08 21:52:01 -08004140class VkCommandBufferInheritanceInfo {
4141 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO
Jesse Halld27f6aa2015-08-15 17:58:48 -07004142 const void* pNext /// Pointer to next structure
Jesse Halld27f6aa2015-08-15 17:58:48 -07004143 VkRenderPass renderPass /// Render pass for secondary command buffers
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004144 u32 subpass
Jesse Halld27f6aa2015-08-15 17:58:48 -07004145 VkFramebuffer framebuffer /// Framebuffer for secondary command buffers
Jesse Hallf4ab2b12015-11-30 16:04:55 -08004146 VkBool32 occlusionQueryEnable
4147 VkQueryControlFlags queryFlags
4148 VkQueryPipelineStatisticFlags pipelineStatistics
Jesse Halld27f6aa2015-08-15 17:58:48 -07004149}
4150
Jesse Hall3dd678a2016-01-08 21:52:01 -08004151class VkCommandBufferBeginInfo {
4152 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO
4153 const void* pNext /// Pointer to next structure
4154 VkCommandBufferUsageFlags flags /// Command buffer usage flags
4155 const VkCommandBufferInheritanceInfo* pInheritanceInfo
4156}
4157
Jesse Halld27f6aa2015-08-15 17:58:48 -07004158class VkRenderPassBeginInfo {
4159 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO
4160 const void* pNext /// Pointer to next structure
4161 VkRenderPass renderPass
4162 VkFramebuffer framebuffer
4163 VkRect2D renderArea
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004164 u32 clearValueCount
4165 const VkClearValue* pClearValues
Jesse Halld27f6aa2015-08-15 17:58:48 -07004166}
4167
4168@union
4169/// Union allowing specification of floating point, integer, or unsigned integer color data. Actual value selected is based on image/attachment being cleared.
4170class VkClearColorValue {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004171 f32[4] float32
4172 s32[4] int32
4173 u32[4] uint32
Jesse Halld27f6aa2015-08-15 17:58:48 -07004174}
4175
4176class VkClearDepthStencilValue {
4177 f32 depth
4178 u32 stencil
4179}
4180
4181@union
4182/// Union allowing specification of color, depth, and stencil color values. Actual value selected is based on attachment being cleared.
4183class VkClearValue {
4184 VkClearColorValue color
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004185 VkClearDepthStencilValue depthStencil
Jesse Halld27f6aa2015-08-15 17:58:48 -07004186}
4187
Jesse Hallae38f732015-11-19 21:32:50 -08004188class VkClearAttachment {
4189 VkImageAspectFlags aspectMask
4190 u32 colorAttachment
4191 VkClearValue clearValue
4192}
4193
Jesse Halld27f6aa2015-08-15 17:58:48 -07004194class VkAttachmentDescription {
Jesse Halla6429252015-11-29 18:59:42 -08004195 VkAttachmentDescriptionFlags flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07004196 VkFormat format
Jesse Hall091ed9e2015-11-30 00:55:29 -08004197 VkSampleCountFlagBits samples
Jesse Halld27f6aa2015-08-15 17:58:48 -07004198 VkAttachmentLoadOp loadOp /// Load op for color or depth data
4199 VkAttachmentStoreOp storeOp /// Store op for color or depth data
4200 VkAttachmentLoadOp stencilLoadOp /// Load op for stencil data
4201 VkAttachmentStoreOp stencilStoreOp /// Store op for stencil data
4202 VkImageLayout initialLayout
4203 VkImageLayout finalLayout
4204}
4205
4206class VkAttachmentReference {
4207 u32 attachment
4208 VkImageLayout layout
4209}
4210
4211class VkSubpassDescription {
Jesse Halld27f6aa2015-08-15 17:58:48 -07004212 VkSubpassDescriptionFlags flags
Jesse Halla6429252015-11-29 18:59:42 -08004213 VkPipelineBindPoint pipelineBindPoint /// Must be VK_PIPELINE_BIND_POINT_GRAPHICS for now
Jesse Hall03b6fe12015-11-24 12:44:21 -08004214 u32 inputAttachmentCount
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004215 const VkAttachmentReference* pInputAttachments
Jesse Hall03b6fe12015-11-24 12:44:21 -08004216 u32 colorAttachmentCount
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004217 const VkAttachmentReference* pColorAttachments
4218 const VkAttachmentReference* pResolveAttachments
Jesse Hallc7467b72015-11-29 21:05:26 -08004219 const VkAttachmentReference* pDepthStencilAttachment
Jesse Hall03b6fe12015-11-24 12:44:21 -08004220 u32 preserveAttachmentCount
Jesse Hall3dd678a2016-01-08 21:52:01 -08004221 const u32* pPreserveAttachments
Jesse Halld27f6aa2015-08-15 17:58:48 -07004222}
4223
4224class VkSubpassDependency {
Jesse Halld27f6aa2015-08-15 17:58:48 -07004225 u32 srcSubpass
Jesse Hall3fbc8562015-11-29 22:10:52 -08004226 u32 dstSubpass
Jesse Halld27f6aa2015-08-15 17:58:48 -07004227 VkPipelineStageFlags srcStageMask
Jesse Hall3fbc8562015-11-29 22:10:52 -08004228 VkPipelineStageFlags dstStageMask
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08004229 VkAccessFlags srcAccessMask
4230 VkAccessFlags dstAccessMask
Jesse Halldc6d36c2015-11-29 19:12:15 -08004231 VkDependencyFlags dependencyFlags
Jesse Halld27f6aa2015-08-15 17:58:48 -07004232}
4233
4234class VkRenderPassCreateInfo {
4235 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO
4236 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08004237 VkRenderPassCreateFlags flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07004238 u32 attachmentCount
4239 const VkAttachmentDescription* pAttachments
4240 u32 subpassCount
4241 const VkSubpassDescription* pSubpasses
4242 u32 dependencyCount
4243 const VkSubpassDependency* pDependencies
4244}
4245
4246class VkEventCreateInfo {
4247 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_EVENT_CREATE_INFO
4248 const void* pNext /// Pointer to next structure
4249 VkEventCreateFlags flags /// Event creation flags
4250}
4251
4252class VkFenceCreateInfo {
4253 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_FENCE_CREATE_INFO
4254 const void* pNext /// Pointer to next structure
4255 VkFenceCreateFlags flags /// Fence creation flags
4256}
4257
4258class VkPhysicalDeviceFeatures {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004259 VkBool32 robustBufferAccess /// out of bounds buffer accesses are well defined
4260 VkBool32 fullDrawIndexUint32 /// full 32-bit range of indices for indexed draw calls
4261 VkBool32 imageCubeArray /// image views which are arrays of cube maps
4262 VkBool32 independentBlend /// blending operations are controlled per-attachment
4263 VkBool32 geometryShader /// geometry stage
4264 VkBool32 tessellationShader /// tessellation control and evaluation stage
4265 VkBool32 sampleRateShading /// per-sample shading and interpolation
Jesse Hall3fbc8562015-11-29 22:10:52 -08004266 VkBool32 dualSrcBlend /// blend operations which take two sources
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004267 VkBool32 logicOp /// logic operations
4268 VkBool32 multiDrawIndirect /// multi draw indirect
Jesse Hall543a7ff2016-01-08 16:38:30 -08004269 VkBool32 drawIndirectFirstInstance
Jesse Hallae38f732015-11-19 21:32:50 -08004270 VkBool32 depthClamp /// depth clamping
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004271 VkBool32 depthBiasClamp /// depth bias clamping
4272 VkBool32 fillModeNonSolid /// point and wireframe fill modes
4273 VkBool32 depthBounds /// depth bounds test
4274 VkBool32 wideLines /// lines with width greater than 1
4275 VkBool32 largePoints /// points with size greater than 1
Jesse Hallfbf97b02015-11-20 14:17:03 -08004276 VkBool32 alphaToOne /// The fragment alpha channel can be forced to maximum representable alpha value
4277 VkBool32 multiViewport
4278 VkBool32 samplerAnisotropy
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004279 VkBool32 textureCompressionETC2 /// ETC texture compression formats
4280 VkBool32 textureCompressionASTC_LDR /// ASTC LDR texture compression formats
4281 VkBool32 textureCompressionBC /// BC1-7 texture compressed formats
Jesse Hall65ab5522015-11-30 00:07:16 -08004282 VkBool32 occlusionQueryPrecise
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004283 VkBool32 pipelineStatisticsQuery /// pipeline statistics query
Jesse Halldc6d36c2015-11-29 19:12:15 -08004284 VkBool32 vertexPipelineStoresAndAtomics
4285 VkBool32 fragmentStoresAndAtomics
4286 VkBool32 shaderTessellationAndGeometryPointSize
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004287 VkBool32 shaderImageGatherExtended /// texture gather with run-time values and independent offsets
4288 VkBool32 shaderStorageImageExtendedFormats /// the extended set of formats can be used for storage images
4289 VkBool32 shaderStorageImageMultisample /// multisample images can be used for storage images
Jesse Halld1af8122015-11-29 23:50:38 -08004290 VkBool32 shaderStorageImageReadWithoutFormat
4291 VkBool32 shaderStorageImageWriteWithoutFormat
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004292 VkBool32 shaderUniformBufferArrayDynamicIndexing /// arrays of uniform buffers can be accessed with dynamically uniform indices
4293 VkBool32 shaderSampledImageArrayDynamicIndexing /// arrays of sampled images can be accessed with dynamically uniform indices
4294 VkBool32 shaderStorageBufferArrayDynamicIndexing /// arrays of storage buffers can be accessed with dynamically uniform indices
4295 VkBool32 shaderStorageImageArrayDynamicIndexing /// arrays of storage images can be accessed with dynamically uniform indices
4296 VkBool32 shaderClipDistance /// clip distance in shaders
4297 VkBool32 shaderCullDistance /// cull distance in shaders
4298 VkBool32 shaderFloat64 /// 64-bit floats (doubles) in shaders
4299 VkBool32 shaderInt64 /// 64-bit integers in shaders
4300 VkBool32 shaderInt16 /// 16-bit integers in shaders
4301 VkBool32 shaderResourceResidency /// shader can use texture operations that return resource residency information (requires sparseNonResident support)
Jesse Hall65ab5522015-11-30 00:07:16 -08004302 VkBool32 shaderResourceMinLod /// shader can use texture operations that specify minimum resource LOD
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004303 VkBool32 sparseBinding /// Sparse resources support: Resource memory can be managed at opaque page level rather than object level
4304 VkBool32 sparseResidencyBuffer /// Sparse resources support: GPU can access partially resident buffers
4305 VkBool32 sparseResidencyImage2D /// Sparse resources support: GPU can access partially resident 2D (non-MSAA non-DepthStencil) images
4306 VkBool32 sparseResidencyImage3D /// Sparse resources support: GPU can access partially resident 3D images
4307 VkBool32 sparseResidency2Samples /// Sparse resources support: GPU can access partially resident MSAA 2D images with 2 samples
4308 VkBool32 sparseResidency4Samples /// Sparse resources support: GPU can access partially resident MSAA 2D images with 4 samples
4309 VkBool32 sparseResidency8Samples /// Sparse resources support: GPU can access partially resident MSAA 2D images with 8 samples
4310 VkBool32 sparseResidency16Samples /// Sparse resources support: GPU can access partially resident MSAA 2D images with 16 samples
4311 VkBool32 sparseResidencyAliased /// Sparse resources support: GPU can correctly access data aliased into multiple locations (opt-in)
Jesse Halld1af8122015-11-29 23:50:38 -08004312 VkBool32 variableMultisampleRate
Jesse Hallf9fa9a52016-01-08 16:08:51 -08004313 VkBool32 inheritedQueries
Jesse Halld27f6aa2015-08-15 17:58:48 -07004314}
4315
4316class VkPhysicalDeviceLimits {
4317 /// resource maximum sizes
4318 u32 maxImageDimension1D /// max 1D image dimension
4319 u32 maxImageDimension2D /// max 2D image dimension
4320 u32 maxImageDimension3D /// max 3D image dimension
4321 u32 maxImageDimensionCube /// max cubemap image dimension
4322 u32 maxImageArrayLayers /// max layers for image arrays
Jesse Hallb00daad2015-11-29 19:46:20 -08004323 u32 maxTexelBufferElements
Jesse Hallfbf97b02015-11-20 14:17:03 -08004324 u32 maxUniformBufferRange /// max uniform buffer size (bytes)
4325 u32 maxStorageBufferRange /// max storage buffer size (bytes)
Jesse Halld27f6aa2015-08-15 17:58:48 -07004326 u32 maxPushConstantsSize /// max size of the push constants pool (bytes)
4327 /// memory limits
4328 u32 maxMemoryAllocationCount /// max number of device memory allocations supported
Jesse Hall091ed9e2015-11-30 00:55:29 -08004329 u32 maxSamplerAllocationCount
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004330 VkDeviceSize bufferImageGranularity /// Granularity (in bytes) at which buffers and images can be bound to adjacent memory for simultaneous usage
4331 VkDeviceSize sparseAddressSpaceSize /// Total address space available for sparse allocations (bytes)
Jesse Halld27f6aa2015-08-15 17:58:48 -07004332 /// descriptor set limits
4333 u32 maxBoundDescriptorSets /// max number of descriptors sets that can be bound to a pipeline
Jesse Halld27f6aa2015-08-15 17:58:48 -07004334 u32 maxPerStageDescriptorSamplers /// max num of samplers allowed per-stage in a descriptor set
4335 u32 maxPerStageDescriptorUniformBuffers /// max num of uniform buffers allowed per-stage in a descriptor set
4336 u32 maxPerStageDescriptorStorageBuffers /// max num of storage buffers allowed per-stage in a descriptor set
4337 u32 maxPerStageDescriptorSampledImages /// max num of sampled images allowed per-stage in a descriptor set
4338 u32 maxPerStageDescriptorStorageImages /// max num of storage images allowed per-stage in a descriptor set
Jesse Halle1b12782015-11-30 11:27:32 -08004339 u32 maxPerStageDescriptorInputAttachments
Jesse Halldba27f72015-11-30 14:25:46 -08004340 u32 maxPerStageResources
Jesse Halld27f6aa2015-08-15 17:58:48 -07004341 u32 maxDescriptorSetSamplers /// max num of samplers allowed in all stages in a descriptor set
4342 u32 maxDescriptorSetUniformBuffers /// max num of uniform buffers allowed in all stages in a descriptor set
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004343 u32 maxDescriptorSetUniformBuffersDynamic /// max num of dynamic uniform buffers allowed in all stages in a descriptor set
Jesse Halld27f6aa2015-08-15 17:58:48 -07004344 u32 maxDescriptorSetStorageBuffers /// max num of storage buffers allowed in all stages in a descriptor set
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004345 u32 maxDescriptorSetStorageBuffersDynamic /// max num of dynamic storage buffers allowed in all stages in a descriptor set
Jesse Halld27f6aa2015-08-15 17:58:48 -07004346 u32 maxDescriptorSetSampledImages /// max num of sampled images allowed in all stages in a descriptor set
4347 u32 maxDescriptorSetStorageImages /// max num of storage images allowed in all stages in a descriptor set
Jesse Halle1b12782015-11-30 11:27:32 -08004348 u32 maxDescriptorSetInputAttachments
Jesse Halld27f6aa2015-08-15 17:58:48 -07004349 /// vertex stage limits
4350 u32 maxVertexInputAttributes /// max num of vertex input attribute slots
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004351 u32 maxVertexInputBindings /// max num of vertex input binding slots
Jesse Halld27f6aa2015-08-15 17:58:48 -07004352 u32 maxVertexInputAttributeOffset /// max vertex input attribute offset added to vertex buffer offset
4353 u32 maxVertexInputBindingStride /// max vertex input binding stride
4354 u32 maxVertexOutputComponents /// max num of output components written by vertex shader
4355 /// tessellation control stage limits
Jesse Hall3fbc8562015-11-29 22:10:52 -08004356 u32 maxTessellationGenerationLevel /// max level supported by tess primitive generator
Jesse Hallae38f732015-11-19 21:32:50 -08004357 u32 maxTessellationPatchSize /// max patch size (vertices)
4358 u32 maxTessellationControlPerVertexInputComponents /// max num of input components per-vertex in TCS
4359 u32 maxTessellationControlPerVertexOutputComponents /// max num of output components per-vertex in TCS
4360 u32 maxTessellationControlPerPatchOutputComponents /// max num of output components per-patch in TCS
4361 u32 maxTessellationControlTotalOutputComponents /// max total num of per-vertex and per-patch output components in TCS
4362 u32 maxTessellationEvaluationInputComponents /// max num of input components per vertex in TES
4363 u32 maxTessellationEvaluationOutputComponents /// max num of output components per vertex in TES
Jesse Halld27f6aa2015-08-15 17:58:48 -07004364 /// geometry stage limits
4365 u32 maxGeometryShaderInvocations /// max invocation count supported in geometry shader
4366 u32 maxGeometryInputComponents /// max num of input components read in geometry stage
4367 u32 maxGeometryOutputComponents /// max num of output components written in geometry stage
4368 u32 maxGeometryOutputVertices /// max num of vertices that can be emitted in geometry stage
4369 u32 maxGeometryTotalOutputComponents /// max total num of components (all vertices) written in geometry stage
4370 /// fragment stage limits
4371 u32 maxFragmentInputComponents /// max num of input compontents read in fragment stage
Jesse Hallfbf97b02015-11-20 14:17:03 -08004372 u32 maxFragmentOutputAttachments /// max num of output attachments written in fragment stage
Jesse Hall3fbc8562015-11-29 22:10:52 -08004373 u32 maxFragmentDualSrcAttachments /// max num of output attachments written when using dual source blending
Jesse Halld27f6aa2015-08-15 17:58:48 -07004374 u32 maxFragmentCombinedOutputResources /// max total num of storage buffers, storage images and output buffers
4375 /// compute stage limits
4376 u32 maxComputeSharedMemorySize /// max total storage size of work group local storage (bytes)
4377 u32[3] maxComputeWorkGroupCount /// max num of compute work groups that may be dispatched by a single command (x,y,z)
4378 u32 maxComputeWorkGroupInvocations /// max total compute invocations in a single local work group
4379 u32[3] maxComputeWorkGroupSize /// max local size of a compute work group (x,y,z)
4380
4381 u32 subPixelPrecisionBits /// num bits of subpixel precision in screen x and y
4382 u32 subTexelPrecisionBits /// num bits of subtexel precision
4383 u32 mipmapPrecisionBits /// num bits of mipmap precision
4384
4385 u32 maxDrawIndexedIndexValue /// max index value for indexed draw calls (for 32-bit indices)
Jesse Halldba27f72015-11-30 14:25:46 -08004386 u32 maxDrawIndirectCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07004387
4388 f32 maxSamplerLodBias /// max absolute sampler level of detail bias
4389 f32 maxSamplerAnisotropy /// max degree of sampler anisotropy
4390
4391 u32 maxViewports /// max number of active viewports
Jesse Halld27f6aa2015-08-15 17:58:48 -07004392 u32[2] maxViewportDimensions /// max viewport dimensions (x,y)
4393 f32[2] viewportBoundsRange /// viewport bounds range (min,max)
4394 u32 viewportSubPixelBits /// num bits of subpixel precision for viewport
4395
Jesse Halldc6d36c2015-11-29 19:12:15 -08004396 platform.size_t minMemoryMapAlignment /// min required alignment of pointers returned by MapMemory (bytes)
4397 VkDeviceSize minTexelBufferOffsetAlignment /// min required alignment for texel buffer offsets (bytes)
4398 VkDeviceSize minUniformBufferOffsetAlignment /// min required alignment for uniform buffer sizes and offsets (bytes)
4399 VkDeviceSize minStorageBufferOffsetAlignment /// min required alignment for storage buffer offsets (bytes)
Jesse Halld27f6aa2015-08-15 17:58:48 -07004400
Jesse Hallfbf97b02015-11-20 14:17:03 -08004401 s32 minTexelOffset /// min texel offset for OpTextureSampleOffset
Jesse Halld27f6aa2015-08-15 17:58:48 -07004402 u32 maxTexelOffset /// max texel offset for OpTextureSampleOffset
Jesse Hallfbf97b02015-11-20 14:17:03 -08004403 s32 minTexelGatherOffset /// min texel offset for OpTextureGatherOffset
Jesse Halld27f6aa2015-08-15 17:58:48 -07004404 u32 maxTexelGatherOffset /// max texel offset for OpTextureGatherOffset
4405 f32 minInterpolationOffset /// furthest negative offset for interpolateAtOffset
4406 f32 maxInterpolationOffset /// furthest positive offset for interpolateAtOffset
4407 u32 subPixelInterpolationOffsetBits /// num of subpixel bits for interpolateAtOffset
4408
4409 u32 maxFramebufferWidth /// max width for a framebuffer
4410 u32 maxFramebufferHeight /// max height for a framebuffer
4411 u32 maxFramebufferLayers /// max layer count for a layered framebuffer
Jesse Hall091ed9e2015-11-30 00:55:29 -08004412 VkSampleCountFlags framebufferColorSampleCounts
4413 VkSampleCountFlags framebufferDepthSampleCounts
4414 VkSampleCountFlags framebufferStencilSampleCounts
4415 VkSampleCountFlags framebufferNoAttachmentSampleCounts
Jesse Halld27f6aa2015-08-15 17:58:48 -07004416 u32 maxColorAttachments /// max num of framebuffer color attachments
4417
Jesse Hall091ed9e2015-11-30 00:55:29 -08004418 VkSampleCountFlags sampledImageColorSampleCounts
4419 VkSampleCountFlags sampledImageIntegerSampleCounts
4420 VkSampleCountFlags sampledImageDepthSampleCounts
4421 VkSampleCountFlags sampledImageStencilSampleCounts
4422 VkSampleCountFlags storageImageSampleCounts
Jesse Halld27f6aa2015-08-15 17:58:48 -07004423 u32 maxSampleMaskWords /// max num of sample mask words
Jesse Hallf9fa9a52016-01-08 16:08:51 -08004424 VkBool32 timestampComputeAndGraphics
Jesse Halld27f6aa2015-08-15 17:58:48 -07004425
Jesse Halla9bb62b2015-11-21 19:31:56 -08004426 f32 timestampPeriod
Jesse Halld27f6aa2015-08-15 17:58:48 -07004427
4428 u32 maxClipDistances /// max number of clip distances
4429 u32 maxCullDistances /// max number of cull distances
4430 u32 maxCombinedClipAndCullDistances /// max combined number of user clipping
4431
Jesse Hallfbf97b02015-11-20 14:17:03 -08004432 u32 discreteQueuePriorities
4433
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004434 f32[2] pointSizeRange /// range (min,max) of supported point sizes
4435 f32[2] lineWidthRange /// range (min,max) of supported line widths
Jesse Halld27f6aa2015-08-15 17:58:48 -07004436 f32 pointSizeGranularity /// granularity of supported point sizes
4437 f32 lineWidthGranularity /// granularity of supported line widths
Jesse Hall03b6fe12015-11-24 12:44:21 -08004438 VkBool32 strictLines
Jesse Hall091ed9e2015-11-30 00:55:29 -08004439 VkBool32 standardSampleLocations
Jesse Halla9bb62b2015-11-21 19:31:56 -08004440
Jesse Hall65ab5522015-11-30 00:07:16 -08004441 VkDeviceSize optimalBufferCopyOffsetAlignment
4442 VkDeviceSize optimalBufferCopyRowPitchAlignment
Jesse Halldba27f72015-11-30 14:25:46 -08004443 VkDeviceSize nonCoherentAtomSize
Jesse Halld27f6aa2015-08-15 17:58:48 -07004444}
4445
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004446class VkPhysicalDeviceSparseProperties {
4447 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 -08004448 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 -07004449 VkBool32 residencyStandard3DBlockShape /// Sparse resources support: GPU will access all 3D sparse resources using the standard block shapes (based on pixel format)
4450 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 -07004451 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
4452}
4453
Jesse Halld27f6aa2015-08-15 17:58:48 -07004454class VkSemaphoreCreateInfo {
4455 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO
4456 const void* pNext /// Pointer to next structure
4457 VkSemaphoreCreateFlags flags /// Semaphore creation flags
4458}
4459
4460class VkQueryPoolCreateInfo {
4461 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO
4462 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08004463 VkQueryPoolCreateFlags flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07004464 VkQueryType queryType
Jesse Hall3dd678a2016-01-08 21:52:01 -08004465 u32 queryCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07004466 VkQueryPipelineStatisticFlags pipelineStatistics /// Optional
4467}
4468
4469class VkFramebufferCreateInfo {
4470 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO
4471 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08004472 VkFramebufferCreateFlags flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07004473 VkRenderPass renderPass
4474 u32 attachmentCount
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004475 const VkImageView* pAttachments
Jesse Halld27f6aa2015-08-15 17:58:48 -07004476 u32 width
4477 u32 height
4478 u32 layers
4479}
4480
Jesse Hall3fbc8562015-11-29 22:10:52 -08004481class VkDrawIndirectCommand {
Jesse Halld27f6aa2015-08-15 17:58:48 -07004482 u32 vertexCount
4483 u32 instanceCount
4484 u32 firstVertex
4485 u32 firstInstance
4486}
4487
Jesse Hall3fbc8562015-11-29 22:10:52 -08004488class VkDrawIndexedIndirectCommand {
Jesse Halld27f6aa2015-08-15 17:58:48 -07004489 u32 indexCount
4490 u32 instanceCount
4491 u32 firstIndex
4492 s32 vertexOffset
4493 u32 firstInstance
4494}
4495
Jesse Hall3fbc8562015-11-29 22:10:52 -08004496class VkDispatchIndirectCommand {
Jesse Halld27f6aa2015-08-15 17:58:48 -07004497 u32 x
4498 u32 y
4499 u32 z
4500}
4501
Jesse Hall54f8d132018-04-18 08:16:59 -07004502class VkBaseOutStructure {
4503 VkStructureType sType
4504 void* pNext
4505}
4506
4507class VkBaseInStructure {
4508 VkStructureType sType
4509 const void* pNext
4510}
4511
Ian Elliott28bd2c32017-10-13 09:21:12 -06004512//@vulkan1_1 structures
Daniel Koch09f7bf92017-10-05 00:26:58 -04004513
4514class VkPhysicalDeviceSubgroupProperties {
4515 VkStructureType sType
4516 void* pNext
4517 u32 subgroupSize
4518 VkShaderStageFlags supportedStages
4519 VkSubgroupFeatureFlags supportedOperations
4520 VkBool32 quadOperationsInAllStages
4521}
4522
4523class VkBindBufferMemoryInfo {
4524 VkStructureType sType
4525 const void* pNext
4526 VkBuffer buffer
4527 VkDeviceMemory memory
4528 VkDeviceSize memoryOffset
4529}
4530
4531class VkBindImageMemoryInfo {
4532 VkStructureType sType
4533 const void* pNext
4534 VkImage image
4535 VkDeviceMemory memory
4536 VkDeviceSize memoryOffset
4537}
4538
4539class VkPhysicalDevice16BitStorageFeatures {
4540 VkStructureType sType
4541 void* pNext
4542 VkBool32 storageBuffer16BitAccess
4543 VkBool32 uniformAndStorageBuffer16BitAccess
4544 VkBool32 storagePushConstant16
4545 VkBool32 storageInputOutput16
4546}
4547
4548class VkMemoryDedicatedRequirements {
4549 VkStructureType sType
4550 void* pNext
4551 VkBool32 prefersDedicatedAllocation
4552 VkBool32 requiresDedicatedAllocation
4553}
4554
4555class VkMemoryDedicatedAllocateInfo {
4556 VkStructureType sType
4557 const void* pNext
4558 VkImage image
4559 VkBuffer buffer
4560}
4561
4562class VkMemoryAllocateFlagsInfo {
4563 VkStructureType sType
4564 const void* pNext
4565 VkMemoryAllocateFlags flags
4566 u32 deviceMask
4567}
4568
4569class VkDeviceGroupRenderPassBeginInfo {
4570 VkStructureType sType
4571 const void* pNext
4572 u32 deviceMask
4573 u32 deviceRenderAreaCount
4574 const VkRect2D* pDeviceRenderAreas
4575}
4576
4577class VkDeviceGroupCommandBufferBeginInfo {
4578 VkStructureType sType
4579 const void* pNext
4580 u32 deviceMask
4581}
4582
4583class VkDeviceGroupSubmitInfo {
4584 VkStructureType sType
4585 const void* pNext
4586 u32 waitSemaphoreCount
4587 const u32* pWaitSemaphoreDeviceIndices
4588 u32 commandBufferCount
4589 const u32* pCommandBufferDeviceMasks
4590 u32 signalSemaphoreCount
4591 const u32* pSignalSemaphoreDeviceIndices
4592}
4593
4594class VkDeviceGroupBindSparseInfo {
4595 VkStructureType sType
4596 const void* pNext
4597 u32 resourceDeviceIndex
4598 u32 memoryDeviceIndex
4599}
4600
4601class VkBindBufferMemoryDeviceGroupInfo {
4602 VkStructureType sType
4603 const void* pNext
4604 u32 deviceIndexCount
4605 const u32* pDeviceIndices
4606}
4607
4608class VkBindImageMemoryDeviceGroupInfo {
4609 VkStructureType sType
4610 const void* pNext
4611 u32 deviceIndexCount
4612 const u32* pDeviceIndices
Jesse Hall8c954d32018-01-17 22:06:20 -08004613 u32 splitInstanceBindRegionCount
4614 const VkRect2D* pSplitInstanceBindRegions
Daniel Koch09f7bf92017-10-05 00:26:58 -04004615}
4616
4617class VkPhysicalDeviceGroupProperties {
4618 VkStructureType sType
4619 void* pNext
4620 u32 physicalDeviceCount
4621 VkPhysicalDevice[VK_MAX_DEVICE_GROUP_SIZE] physicalDevices
4622 VkBool32 subsetAllocation
4623}
4624
4625class VkDeviceGroupDeviceCreateInfo {
4626 VkStructureType sType
4627 const void* pNext
4628 u32 physicalDeviceCount
4629 const VkPhysicalDevice* pPhysicalDevices
4630}
4631
4632class VkBufferMemoryRequirementsInfo2 {
4633 VkStructureType sType
4634 const void* pNext
4635 VkBuffer buffer
4636}
4637
4638class VkImageMemoryRequirementsInfo2 {
4639 VkStructureType sType
4640 const void* pNext
4641 VkImage image
4642}
4643
4644class VkImageSparseMemoryRequirementsInfo2 {
4645 VkStructureType sType
4646 const void* pNext
4647 VkImage image
4648}
4649
4650class VkMemoryRequirements2 {
4651 VkStructureType sType
4652 void* pNext
4653 VkMemoryRequirements memoryRequirements
4654}
4655
4656class VkSparseImageMemoryRequirements2 {
4657 VkStructureType sType
4658 void* pNext
4659 VkSparseImageMemoryRequirements memoryRequirements
4660}
4661
4662class VkPhysicalDeviceFeatures2 {
4663 VkStructureType sType
4664 void* pNext
4665 VkPhysicalDeviceFeatures features
4666}
4667
4668class VkPhysicalDeviceProperties2 {
4669 VkStructureType sType
4670 void* pNext
4671 VkPhysicalDeviceProperties properties
4672}
4673
4674class VkFormatProperties2 {
4675 VkStructureType sType
4676 void* pNext
4677 VkFormatProperties formatProperties
4678}
4679
4680class VkImageFormatProperties2 {
4681 VkStructureType sType
4682 void* pNext
4683 VkImageFormatProperties imageFormatProperties
4684}
4685
4686class VkPhysicalDeviceImageFormatInfo2 {
4687 VkStructureType sType
4688 const void* pNext
4689 VkFormat format
4690 VkImageType type
4691 VkImageTiling tiling
4692 VkImageUsageFlags usage
4693 VkImageCreateFlags flags
4694}
4695
4696class VkQueueFamilyProperties2 {
4697 VkStructureType sType
4698 void* pNext
4699 VkQueueFamilyProperties queueFamilyProperties
4700}
4701
4702class VkPhysicalDeviceMemoryProperties2 {
4703 VkStructureType sType
4704 void* pNext
4705 VkPhysicalDeviceMemoryProperties memoryProperties
4706}
4707
4708class VkSparseImageFormatProperties2 {
4709 VkStructureType sType
4710 void* pNext
4711 VkSparseImageFormatProperties properties
4712}
4713
4714class VkPhysicalDeviceSparseImageFormatInfo2 {
4715 VkStructureType sType
4716 const void* pNext
4717 VkFormat format
4718 VkImageType type
4719 VkSampleCountFlagBits samples
4720 VkImageUsageFlags usage
4721 VkImageTiling tiling
4722}
4723
4724class VkPhysicalDevicePointClippingProperties {
4725 VkStructureType sType
4726 void* pNext
4727 VkPointClippingBehavior pointClippingBehavior
4728}
4729
4730class VkInputAttachmentAspectReference {
4731 u32 subpass
4732 u32 inputAttachmentIndex
4733 VkImageAspectFlags aspectMask
4734}
4735
4736class VkRenderPassInputAttachmentAspectCreateInfo {
4737 VkStructureType sType
4738 const void* pNext
4739 u32 aspectReferenceCount
4740 const VkInputAttachmentAspectReference* pAspectReferences
4741}
4742
4743class VkImageViewUsageCreateInfo {
4744 VkStructureType sType
4745 const void* pNext
4746 VkImageUsageFlags usage
4747}
4748
4749class VkPipelineTessellationDomainOriginStateCreateInfo {
4750 VkStructureType sType
4751 const void* pNext
4752 VkTessellationDomainOrigin domainOrigin
4753}
4754
4755class VkRenderPassMultiviewCreateInfo {
4756 VkStructureType sType
4757 const void* pNext
4758 u32 subpassCount
4759 const u32* pViewMasks
4760 u32 dependencyCount
4761 const s32* pViewOffsets
4762 u32 correlationMaskCount
4763 const u32* pCorrelationMasks
4764}
4765
4766class VkPhysicalDeviceMultiviewFeatures {
4767 VkStructureType sType
4768 void* pNext
4769 VkBool32 multiview
4770 VkBool32 multiviewGeometryShader
4771 VkBool32 multiviewTessellationShader
4772}
4773
4774class VkPhysicalDeviceMultiviewProperties {
4775 VkStructureType sType
4776 void* pNext
4777 u32 maxMultiviewViewCount
4778 u32 maxMultiviewInstanceIndex
4779}
4780
4781class VkPhysicalDeviceVariablePointerFeatures {
4782 VkStructureType sType
4783 void* pNext
4784 VkBool32 variablePointersStorageBuffer
4785 VkBool32 variablePointers
4786}
4787
4788class VkPhysicalDeviceProtectedMemoryFeatures {
4789 VkStructureType sType
4790 void* pNext
4791 VkBool32 protectedMemory
4792}
4793
4794class VkPhysicalDeviceProtectedMemoryProperties {
4795 VkStructureType sType
4796 void* pNext
4797 VkBool32 protectedNoFault
4798}
4799
4800class VkDeviceQueueInfo2 {
4801 VkStructureType sType
4802 const void* pNext
4803 VkDeviceQueueCreateFlags flags
4804 u32 queueFamilyIndex
4805 u32 queueIndex
4806}
4807
4808class VkProtectedSubmitInfo {
4809 VkStructureType sType
4810 const void* pNext
4811 VkBool32 protectedSubmit
4812}
4813
4814class VkSamplerYcbcrConversionCreateInfo {
4815 VkStructureType sType
4816 const void* pNext
4817 VkFormat format
4818 VkSamplerYcbcrModelConversion ycbcrModel
4819 VkSamplerYcbcrRange ycbcrRange
4820 VkComponentMapping components
4821 VkChromaLocation xChromaOffset
4822 VkChromaLocation yChromaOffset
4823 VkFilter chromaFilter
4824 VkBool32 forceExplicitReconstruction
4825}
4826
4827class VkSamplerYcbcrConversionInfo {
4828 VkStructureType sType
4829 const void* pNext
4830 VkSamplerYcbcrConversion conversion
4831}
4832
4833class VkBindImagePlaneMemoryInfo {
4834 VkStructureType sType
4835 const void* pNext
4836 VkImageAspectFlagBits planeAspect
4837}
4838
4839class VkImagePlaneMemoryRequirementsInfo {
4840 VkStructureType sType
4841 const void* pNext
4842 VkImageAspectFlagBits planeAspect
4843}
4844
4845class VkPhysicalDeviceSamplerYcbcrConversionFeatures {
4846 VkStructureType sType
4847 void* pNext
4848 VkBool32 samplerYcbcrConversion
4849}
4850
4851class VkSamplerYcbcrConversionImageFormatProperties {
4852 VkStructureType sType
4853 void* pNext
4854 u32 combinedImageSamplerDescriptorCount
4855}
4856
4857class VkDescriptorUpdateTemplateEntry {
4858 u32 dstBinding
4859 u32 dstArrayElement
4860 u32 descriptorCount
4861 VkDescriptorType descriptorType
4862 platform.size_t offset
4863 platform.size_t stride
4864}
4865
4866class VkDescriptorUpdateTemplateCreateInfo {
4867 VkStructureType sType
4868 void* pNext
4869 VkDescriptorUpdateTemplateCreateFlags flags
4870 u32 descriptorUpdateEntryCount
4871 const VkDescriptorUpdateTemplateEntry* pDescriptorUpdateEntries
4872 VkDescriptorUpdateTemplateType templateType
4873 VkDescriptorSetLayout descriptorSetLayout
4874 VkPipelineBindPoint pipelineBindPoint
4875 VkPipelineLayout pipelineLayout
4876 u32 set
4877}
4878
4879class VkExternalMemoryProperties {
4880 VkExternalMemoryFeatureFlags externalMemoryFeatures
4881 VkExternalMemoryHandleTypeFlags exportFromImportedHandleTypes
4882 VkExternalMemoryHandleTypeFlags compatibleHandleTypes
4883}
4884
4885class VkPhysicalDeviceExternalImageFormatInfo {
4886 VkStructureType sType
4887 const void* pNext
4888 VkExternalMemoryHandleTypeFlagBits handleType
4889}
4890
4891class VkExternalImageFormatProperties {
4892 VkStructureType sType
4893 void* pNext
4894 VkExternalMemoryProperties externalMemoryProperties
4895}
4896
4897class VkPhysicalDeviceExternalBufferInfo {
4898 VkStructureType sType
4899 const void* pNext
4900 VkBufferCreateFlags flags
4901 VkBufferUsageFlags usage
4902 VkExternalMemoryHandleTypeFlagBits handleType
4903}
4904
4905class VkExternalBufferProperties {
4906 VkStructureType sType
4907 void* pNext
4908 VkExternalMemoryProperties externalMemoryProperties
4909}
4910
4911class VkPhysicalDeviceIDProperties {
4912 VkStructureType sType
4913 void* pNext
4914 u8[VK_UUID_SIZE] deviceUUID
4915 u8[VK_UUID_SIZE] driverUUID
4916 u8[VK_LUID_SIZE] deviceLUID
4917 u32 deviceNodeMask
4918 VkBool32 deviceLUIDValid
4919}
4920
4921class VkExternalMemoryImageCreateInfo {
4922 VkStructureType sType
4923 const void* pNext
4924 VkExternalMemoryHandleTypeFlags handleTypes
4925}
4926
4927class VkExternalMemoryBufferCreateInfo {
4928 VkStructureType sType
4929 const void* pNext
4930 VkExternalMemoryHandleTypeFlags handleTypes
4931}
4932
4933class VkExportMemoryAllocateInfo {
4934 VkStructureType sType
4935 const void* pNext
4936 VkExternalMemoryHandleTypeFlags handleTypes
4937}
4938
4939class VkPhysicalDeviceExternalFenceInfo {
4940 VkStructureType sType
4941 const void* pNext
4942 VkExternalFenceHandleTypeFlagBits handleType
4943}
4944
4945class VkExternalFenceProperties {
4946 VkStructureType sType
4947 void* pNext
4948 VkExternalFenceHandleTypeFlags exportFromImportedHandleTypes
4949 VkExternalFenceHandleTypeFlags compatibleHandleTypes
4950 VkExternalFenceFeatureFlags externalFenceFeatures
4951}
4952
4953class VkExportFenceCreateInfo {
4954 VkStructureType sType
4955 const void* pNext
4956 VkExternalFenceHandleTypeFlags handleTypes
4957}
4958
4959class VkExportSemaphoreCreateInfo {
4960 VkStructureType sType
4961 const void* pNext
4962 VkExternalSemaphoreHandleTypeFlags handleTypes
4963}
4964
4965class VkPhysicalDeviceExternalSemaphoreInfo {
4966 VkStructureType sType
4967 const void* pNext
4968 VkExternalSemaphoreHandleTypeFlagBits handleType
4969}
4970
4971class VkExternalSemaphoreProperties {
4972 VkStructureType sType
4973 void* pNext
4974 VkExternalSemaphoreHandleTypeFlags exportFromImportedHandleTypes
4975 VkExternalSemaphoreHandleTypeFlags compatibleHandleTypes
4976 VkExternalSemaphoreFeatureFlags externalSemaphoreFeatures
4977}
4978
4979class VkPhysicalDeviceMaintenance3Properties {
4980 VkStructureType sType
4981 void* pNext
4982 u32 maxPerSetDescriptors
4983 VkDeviceSize maxMemoryAllocationSize
4984}
4985
4986class VkDescriptorSetLayoutSupport {
4987 VkStructureType sType
4988 void* pNext
4989 VkBool32 supported
4990}
4991
4992class VkPhysicalDeviceShaderDrawParameterFeatures {
4993 VkStructureType sType
4994 void* pNext
4995 VkBool32 shaderDrawParameters
4996}
4997
4998
Jesse Hallad250842017-03-10 18:35:38 -08004999@extension("VK_KHR_surface") // 1
Jesse Hallb00daad2015-11-29 19:46:20 -08005000class VkSurfaceCapabilitiesKHR {
Jesse Hall1356b0d2015-11-23 17:24:58 -08005001 u32 minImageCount
5002 u32 maxImageCount
5003 VkExtent2D currentExtent
5004 VkExtent2D minImageExtent
5005 VkExtent2D maxImageExtent
Jesse Hallf4ab2b12015-11-30 16:04:55 -08005006 u32 maxImageArrayLayers
Jesse Hall1356b0d2015-11-23 17:24:58 -08005007 VkSurfaceTransformFlagsKHR supportedTransforms
Jesse Hallf4ab2b12015-11-30 16:04:55 -08005008 VkSurfaceTransformFlagBitsKHR currentTransform
Jesse Halla6429252015-11-29 18:59:42 -08005009 VkCompositeAlphaFlagsKHR supportedCompositeAlpha
Jesse Hall1356b0d2015-11-23 17:24:58 -08005010 VkImageUsageFlags supportedUsageFlags
Michael Lentine88594d72015-11-12 12:49:45 -08005011}
5012
Jesse Hallad250842017-03-10 18:35:38 -08005013@extension("VK_KHR_surface") // 1
Michael Lentine88594d72015-11-12 12:49:45 -08005014class VkSurfaceFormatKHR {
Jesse Hall1356b0d2015-11-23 17:24:58 -08005015 VkFormat format
5016 VkColorSpaceKHR colorSpace
Michael Lentine88594d72015-11-12 12:49:45 -08005017}
5018
Jesse Hallad250842017-03-10 18:35:38 -08005019@extension("VK_KHR_swapchain") // 2
Michael Lentine88594d72015-11-12 12:49:45 -08005020class VkSwapchainCreateInfoKHR {
Jesse Hall1356b0d2015-11-23 17:24:58 -08005021 VkStructureType sType
5022 const void* pNext
Jesse Hallf4ab2b12015-11-30 16:04:55 -08005023 VkSwapchainCreateFlagsKHR flags
Jesse Hall1356b0d2015-11-23 17:24:58 -08005024 VkSurfaceKHR surface
5025 u32 minImageCount
5026 VkFormat imageFormat
5027 VkColorSpaceKHR imageColorSpace
5028 VkExtent2D imageExtent
Jesse Hallf4ab2b12015-11-30 16:04:55 -08005029 u32 imageArrayLayers
5030 VkImageUsageFlags imageUsage
Jesse Hall1356b0d2015-11-23 17:24:58 -08005031 VkSharingMode sharingMode
Jesse Hall03b6fe12015-11-24 12:44:21 -08005032 u32 queueFamilyIndexCount
Jesse Hall1356b0d2015-11-23 17:24:58 -08005033 const u32* pQueueFamilyIndices
Jesse Hallf4ab2b12015-11-30 16:04:55 -08005034 VkSurfaceTransformFlagBitsKHR preTransform
5035 VkCompositeAlphaFlagBitsKHR compositeAlpha
Jesse Hall1356b0d2015-11-23 17:24:58 -08005036 VkPresentModeKHR presentMode
Jesse Hall1356b0d2015-11-23 17:24:58 -08005037 VkBool32 clipped
Jesse Hallf4ab2b12015-11-30 16:04:55 -08005038 VkSwapchainKHR oldSwapchain
Michael Lentine88594d72015-11-12 12:49:45 -08005039}
5040
Jesse Hallad250842017-03-10 18:35:38 -08005041@extension("VK_KHR_swapchain") // 2
Michael Lentine88594d72015-11-12 12:49:45 -08005042class VkPresentInfoKHR {
Jesse Hall1356b0d2015-11-23 17:24:58 -08005043 VkStructureType sType
5044 const void* pNext
Jesse Hallb00daad2015-11-29 19:46:20 -08005045 u32 waitSemaphoreCount
5046 const VkSemaphore* pWaitSemaphores
Jesse Hall1356b0d2015-11-23 17:24:58 -08005047 u32 swapchainCount
Jesse Hall03b6fe12015-11-24 12:44:21 -08005048 const VkSwapchainKHR* pSwapchains
Jesse Hallf4ab2b12015-11-30 16:04:55 -08005049 const u32* pImageIndices
Jesse Halle1b12782015-11-30 11:27:32 -08005050 VkResult* pResults
Michael Lentine88594d72015-11-12 12:49:45 -08005051}
5052
Ian Elliott28bd2c32017-10-13 09:21:12 -06005053@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04005054@extension("VK_KHR_swapchain") // 2
5055class VkImageSwapchainCreateInfoKHR {
5056 VkStructureType sType
5057 const void* pNext
5058 VkSwapchainKHR swapchain
5059}
5060
Ian Elliott28bd2c32017-10-13 09:21:12 -06005061@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04005062@extension("VK_KHR_swapchain") // 2
5063class VkBindImageMemorySwapchainInfoKHR {
5064 VkStructureType sType
5065 const void* pNext
5066 VkSwapchainKHR swapchain
5067 u32 imageIndex
5068}
5069
Ian Elliott28bd2c32017-10-13 09:21:12 -06005070@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04005071@extension("VK_KHR_swapchain") // 2
5072class VkAcquireNextImageInfoKHR {
5073 VkStructureType sType
5074 const void* pNext
5075 VkSwapchainKHR swapchain
5076 u64 timeout
5077 VkSemaphore semaphore
5078 VkFence fence
5079 u32 deviceMask
5080}
5081
Ian Elliott28bd2c32017-10-13 09:21:12 -06005082@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04005083@extension("VK_KHR_swapchain") // 2
5084class VkDeviceGroupPresentCapabilitiesKHR {
5085 VkStructureType sType
5086 const void* pNext
5087 u32[VK_MAX_DEVICE_GROUP_SIZE] presentMask
5088 VkDeviceGroupPresentModeFlagsKHR modes
5089}
5090
Ian Elliott28bd2c32017-10-13 09:21:12 -06005091@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04005092@extension("VK_KHR_swapchain") // 2
5093class VkDeviceGroupPresentInfoKHR {
5094 VkStructureType sType
5095 const void* pNext
5096 u32 swapchainCount
5097 const u32* pDeviceMasks
5098 VkDeviceGroupPresentModeFlagBitsKHR mode
5099}
5100
Ian Elliott28bd2c32017-10-13 09:21:12 -06005101@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04005102@extension("VK_KHR_swapchain") // 2
5103class VkDeviceGroupSwapchainCreateInfoKHR {
5104 VkStructureType sType
5105 const void* pNext
5106 VkDeviceGroupPresentModeFlagsKHR modes
5107}
5108
Jesse Hallad250842017-03-10 18:35:38 -08005109@extension("VK_KHR_display") // 3
Jesse Hall1356b0d2015-11-23 17:24:58 -08005110class VkDisplayPropertiesKHR {
5111 VkDisplayKHR display
5112 const char* displayName
5113 VkExtent2D physicalDimensions
5114 VkExtent2D physicalResolution
5115 VkSurfaceTransformFlagsKHR supportedTransforms
Jesse Hall1356b0d2015-11-23 17:24:58 -08005116 VkBool32 planeReorderPossible
Jesse Halla6429252015-11-29 18:59:42 -08005117 VkBool32 persistentContent
Michael Lentine88594d72015-11-12 12:49:45 -08005118}
5119
Jesse Hallad250842017-03-10 18:35:38 -08005120@extension("VK_KHR_display") // 3
Jesse Halla6429252015-11-29 18:59:42 -08005121class VkDisplayModeParametersKHR {
Jesse Hall1356b0d2015-11-23 17:24:58 -08005122 VkExtent2D visibleRegion
Jesse Halla6429252015-11-29 18:59:42 -08005123 u32 refreshRate
Michael Lentine88594d72015-11-12 12:49:45 -08005124}
Jesse Halld27f6aa2015-08-15 17:58:48 -07005125
Jesse Hallad250842017-03-10 18:35:38 -08005126@extension("VK_KHR_display") // 3
Jesse Hall1356b0d2015-11-23 17:24:58 -08005127class VkDisplayModePropertiesKHR {
5128 VkDisplayModeKHR displayMode
Jesse Halla6429252015-11-29 18:59:42 -08005129 VkDisplayModeParametersKHR parameters
Jesse Hall1356b0d2015-11-23 17:24:58 -08005130}
5131
Jesse Hallad250842017-03-10 18:35:38 -08005132@extension("VK_KHR_display") // 3
Jesse Hall1356b0d2015-11-23 17:24:58 -08005133class VkDisplayModeCreateInfoKHR {
5134 VkStructureType sType
5135 const void* pNext
Jesse Hall9ba8bc82015-11-30 16:22:16 -08005136 VkDisplayModeCreateFlagsKHR flags
Jesse Halla6429252015-11-29 18:59:42 -08005137 VkDisplayModeParametersKHR parameters
Jesse Hall1356b0d2015-11-23 17:24:58 -08005138}
5139
Jesse Hallad250842017-03-10 18:35:38 -08005140@extension("VK_KHR_display") // 3
Jesse Hall1356b0d2015-11-23 17:24:58 -08005141class VkDisplayPlanePropertiesKHR {
Jesse Halla6429252015-11-29 18:59:42 -08005142 VkDisplayKHR currentDisplay
5143 u32 currentStackIndex
5144}
5145
Jesse Hallad250842017-03-10 18:35:38 -08005146@extension("VK_KHR_display") // 3
Jesse Halla6429252015-11-29 18:59:42 -08005147class VkDisplayPlaneCapabilitiesKHR {
Jesse Hall1356b0d2015-11-23 17:24:58 -08005148 VkDisplayPlaneAlphaFlagsKHR supportedAlpha
5149 VkOffset2D minSrcPosition
5150 VkOffset2D maxSrcPosition
5151 VkExtent2D minSrcExtent
5152 VkExtent2D maxSrcExtent
5153 VkOffset2D minDstPosition
5154 VkOffset2D maxDstPosition
5155 VkExtent2D minDstExtent
5156 VkExtent2D maxDstExtent
5157}
5158
Jesse Hallad250842017-03-10 18:35:38 -08005159@extension("VK_KHR_display") // 3
Jesse Halla6429252015-11-29 18:59:42 -08005160class VkDisplaySurfaceCreateInfoKHR {
Jesse Hall1356b0d2015-11-23 17:24:58 -08005161 VkStructureType sType
5162 const void* pNext
Jesse Hallf4ab2b12015-11-30 16:04:55 -08005163 VkDisplaySurfaceCreateFlagsKHR flags
Jesse Hall1356b0d2015-11-23 17:24:58 -08005164 VkDisplayModeKHR displayMode
5165 u32 planeIndex
5166 u32 planeStackIndex
Jesse Hallf4ab2b12015-11-30 16:04:55 -08005167 VkSurfaceTransformFlagBitsKHR transform
Jesse Hall1356b0d2015-11-23 17:24:58 -08005168 f32 globalAlpha
Jesse Hallf4ab2b12015-11-30 16:04:55 -08005169 VkDisplayPlaneAlphaFlagBitsKHR alphaMode
5170 VkExtent2D imageExtent
Jesse Hall1356b0d2015-11-23 17:24:58 -08005171}
5172
Jesse Hallad250842017-03-10 18:35:38 -08005173@extension("VK_KHR_display_swapchain") // 4
Jesse Hall1356b0d2015-11-23 17:24:58 -08005174class VkDisplayPresentInfoKHR {
5175 VkStructureType sType
5176 const void* pNext
5177 VkRect2D srcRect
5178 VkRect2D dstRect
Jesse Halla6429252015-11-29 18:59:42 -08005179 VkBool32 persistent
Jesse Hall1356b0d2015-11-23 17:24:58 -08005180}
5181
Jesse Hallad250842017-03-10 18:35:38 -08005182@extension("VK_KHR_xlib_surface") // 5
Jesse Hallf9fa9a52016-01-08 16:08:51 -08005183class VkXlibSurfaceCreateInfoKHR {
5184 VkStructureType sType
5185 const void* pNext
5186 VkXlibSurfaceCreateFlagsKHR flags
5187 platform.Display* dpy
5188 platform.Window window
5189}
5190
Jesse Hallad250842017-03-10 18:35:38 -08005191@extension("VK_KHR_xcb_surface") // 6
Jesse Hallf9fa9a52016-01-08 16:08:51 -08005192class VkXcbSurfaceCreateInfoKHR {
5193 VkStructureType sType
5194 const void* pNext
5195 VkXcbSurfaceCreateFlagsKHR flags
5196 platform.xcb_connection_t* connection
5197 platform.xcb_window_t window
5198}
5199
Jesse Hallad250842017-03-10 18:35:38 -08005200@extension("VK_KHR_wayland_surface") // 7
Jesse Hallf9fa9a52016-01-08 16:08:51 -08005201class VkWaylandSurfaceCreateInfoKHR {
5202 VkStructureType sType
5203 const void* pNext
5204 VkWaylandSurfaceCreateFlagsKHR flags
5205 platform.wl_display* display
5206 platform.wl_surface* surface
5207}
5208
Jesse Hallad250842017-03-10 18:35:38 -08005209@extension("VK_KHR_mir_surface") // 8
Jesse Hallf9fa9a52016-01-08 16:08:51 -08005210class VkMirSurfaceCreateInfoKHR {
5211 VkStructureType sType
5212 const void* pNext
5213 VkMirSurfaceCreateFlagsKHR flags
5214 platform.MirConnection* connection
5215 platform.MirSurface* mirSurface
5216}
5217
Jesse Hallad250842017-03-10 18:35:38 -08005218@extension("VK_KHR_android_surface") // 9
Jesse Hallf9fa9a52016-01-08 16:08:51 -08005219class VkAndroidSurfaceCreateInfoKHR {
5220 VkStructureType sType
5221 const void* pNext
5222 VkAndroidSurfaceCreateFlagsKHR flags
5223 platform.ANativeWindow* window
5224}
5225
Jesse Hallad250842017-03-10 18:35:38 -08005226@extension("VK_KHR_win32_surface") // 10
Jesse Hallf9fa9a52016-01-08 16:08:51 -08005227class VkWin32SurfaceCreateInfoKHR {
5228 VkStructureType sType
5229 const void* pNext
5230 VkWin32SurfaceCreateFlagsKHR flags
5231 platform.HINSTANCE hinstance
5232 platform.HWND hwnd
5233}
5234
Jesse Hallad250842017-03-10 18:35:38 -08005235@extension("VK_ANDROID_native_buffer") // 11
Jesse Halld1abd742017-02-09 21:45:51 -08005236@internal class Gralloc1Usage {
5237 u64 consumer
5238 u64 producer
5239}
5240
Jesse Hallad250842017-03-10 18:35:38 -08005241@extension("VK_ANDROID_native_buffer") // 11
Chia-I Wub262ddc2016-03-22 07:38:20 +08005242class VkNativeBufferANDROID {
5243 VkStructureType sType
5244 const void* pNext
5245 platform.buffer_handle_t handle
Jesse Halld1abd742017-02-09 21:45:51 -08005246 s32 stride
5247 s32 format
5248 s32 usage
5249 Gralloc1Usage usage2
Chia-I Wub262ddc2016-03-22 07:38:20 +08005250}
5251
Jesse Hallad250842017-03-10 18:35:38 -08005252@extension("VK_ANDROID_native_buffer") // 11
Chris Forbes8e4438b2016-12-07 16:26:49 +13005253class VkSwapchainImageCreateInfoANDROID {
5254 VkStructureType sType
5255 const void* pNext
Chris Forbes134d9582017-01-12 14:26:37 +13005256 VkSwapchainImageUsageFlagsANDROID flags
Chris Forbes48853712017-01-12 14:09:33 +13005257}
Ian Elliott4c8bb2a2016-12-29 11:07:26 -07005258
Jesse Hallad250842017-03-10 18:35:38 -08005259@extension("VK_ANDROID_native_buffer") // 11
Chris Forbes1d4e5542017-02-15 19:38:50 +13005260class VkPhysicalDevicePresentationPropertiesANDROID {
5261 VkStructureType sType
5262 void* pNext
5263 VkBool32 sharedImage
5264}
5265
Jesse Hallad250842017-03-10 18:35:38 -08005266@extension("VK_EXT_debug_report") // 12
Jesse Hall715b86a2016-01-16 16:34:29 -08005267class VkDebugReportCallbackCreateInfoEXT {
5268 VkStructureType sType
5269 const void* pNext
5270 VkDebugReportFlagsEXT flags
5271 PFN_vkDebugReportCallbackEXT pfnCallback
5272 void* pUserData
5273}
5274
Jesse Hallad250842017-03-10 18:35:38 -08005275@extension("VK_AMD_rasterization_order") // 19
Jesse Hall26763382016-05-20 07:13:52 -07005276class VkPipelineRasterizationStateRasterizationOrderAMD {
5277 VkStructureType sType
5278 const void* pNext
5279 VkRasterizationOrderAMD rasterizationOrder
5280}
5281
Jesse Hallad250842017-03-10 18:35:38 -08005282@extension("VK_EXT_debug_marker") // 23
Jesse Hall26763382016-05-20 07:13:52 -07005283class VkDebugMarkerObjectNameInfoEXT {
5284 VkStructureType sType
5285 const void* pNext
5286 VkDebugReportObjectTypeEXT objectType
5287 u64 object
5288 const char* pObjectName
5289}
5290
Jesse Hallad250842017-03-10 18:35:38 -08005291@extension("VK_EXT_debug_marker") // 23
Jesse Hall26763382016-05-20 07:13:52 -07005292class VkDebugMarkerObjectTagInfoEXT {
5293 VkStructureType sType
5294 const void* pNext
5295 VkDebugReportObjectTypeEXT objectType
5296 u64 object
5297 u64 tagName
5298 platform.size_t tagSize
5299 const void* pTag
5300}
5301
Jesse Hallad250842017-03-10 18:35:38 -08005302@extension("VK_EXT_debug_marker") // 23
Jesse Hall26763382016-05-20 07:13:52 -07005303class VkDebugMarkerMarkerInfoEXT {
5304 VkStructureType sType
5305 const void* pNext
5306 const char* pMarkerName
5307 f32[4] color
5308}
5309
Jesse Hallad250842017-03-10 18:35:38 -08005310@extension("VK_NV_dedicated_allocation") // 27
Jesse Hall56d386a2016-07-26 15:20:40 -07005311class VkDedicatedAllocationImageCreateInfoNV {
5312 VkStructureType sType
5313 const void* pNext
5314 VkBool32 dedicatedAllocation
5315}
5316
Jesse Hallad250842017-03-10 18:35:38 -08005317@extension("VK_NV_dedicated_allocation") // 27
Jesse Hall56d386a2016-07-26 15:20:40 -07005318class VkDedicatedAllocationBufferCreateInfoNV {
5319 VkStructureType sType
5320 const void* pNext
5321 VkBool32 dedicatedAllocation
5322}
5323
Jesse Hallad250842017-03-10 18:35:38 -08005324@extension("VK_NV_dedicated_allocation") // 27
Jesse Hall56d386a2016-07-26 15:20:40 -07005325class VkDedicatedAllocationMemoryAllocateInfoNV {
5326 VkStructureType sType
5327 const void* pNext
5328 VkImage image
5329 VkBuffer buffer
5330}
5331
Jesse Hall7ba0ac72017-07-07 17:13:23 -07005332@extension("VK_AMD_texture_gather_bias_lod") // 42
5333class VkTextureLODGatherFormatPropertiesAMD {
5334 VkStructureType sType
5335 void* pNext
5336 VkBool32 supportsTextureGatherLODBiasAMD
5337}
5338
Jesse Hall8c954d32018-01-17 22:06:20 -08005339@extension("VK_AMD_shader_info") // 43
5340class VkShaderResourceUsageAMD {
5341 u32 numUsedVgprs
5342 u32 numUsedSgprs
5343 u32 ldsSizePerLocalWorkGroup
5344 platform.size_t ldsUsageSizeInBytes
5345 platform.size_t scratchMemUsageInBytes
5346}
5347
5348@extension("VK_AMD_shader_info") // 43
5349class VkShaderStatisticsInfoAMD {
5350 VkShaderStageFlags shaderStageMask
5351 VkShaderResourceUsageAMD resourceUsage
5352 u32 numPhysicalVgprs
5353 u32 numPhysicalSgprs
5354 u32 numAvailableVgprs
5355 u32 numAvailableSgprs
5356 u32[3] computeWorkGroupSize
5357}
5358
Jesse Hallb5297192018-09-22 20:52:13 +02005359@extension("VK_NV_corner_sampled_image") // 51
5360class VkPhysicalDeviceCornerSampledImageFeaturesNV {
5361 VkStructureType sType
5362 void* pNext
5363 VkBool32 cornerSampledImage
5364}
5365
Daniel Koch09f7bf92017-10-05 00:26:58 -04005366@extension("VK_KHR_multiview") // 54
5367class VkRenderPassMultiviewCreateInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005368 VkStructureType sType
5369 const void* pNext
5370 u32 subpassCount
5371 const u32* pViewMasks
5372 u32 dependencyCount
5373 const s32* pViewOffsets
5374 u32 correlationMaskCount
5375 const u32* pCorrelationMasks
5376}
5377
Daniel Koch09f7bf92017-10-05 00:26:58 -04005378@extension("VK_KHR_multiview") // 54
5379class VkPhysicalDeviceMultiviewFeaturesKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005380 VkStructureType sType
5381 void* pNext
5382 VkBool32 multiview
5383 VkBool32 multiviewGeometryShader
5384 VkBool32 multiviewTessellationShader
5385}
5386
Daniel Koch09f7bf92017-10-05 00:26:58 -04005387@extension("VK_KHR_multiview") // 54
5388class VkPhysicalDeviceMultiviewPropertiesKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005389 VkStructureType sType
5390 void* pNext
5391 u32 maxMultiviewViewCount
5392 u32 maxMultiviewInstanceIndex
5393}
5394
5395@extension("VK_NV_external_memory_capabilities") // 56
Jesse Halleb02c472017-02-24 15:13:45 -08005396class VkExternalImageFormatPropertiesNV {
5397 VkImageFormatProperties imageFormatProperties
5398 VkExternalMemoryFeatureFlagsNV externalMemoryFeatures
5399 VkExternalMemoryHandleTypeFlagsNV exportFromImportedHandleTypes
5400 VkExternalMemoryHandleTypeFlagsNV compatibleHandleTypes
5401}
5402
Jesse Hallad250842017-03-10 18:35:38 -08005403@extension("VK_NV_external_memory") // 57
Jesse Halleb02c472017-02-24 15:13:45 -08005404class VkExternalMemoryImageCreateInfoNV {
5405 VkStructureType sType
5406 const void* pNext
5407 VkExternalMemoryHandleTypeFlagsNV handleTypes
5408}
5409
Jesse Hallad250842017-03-10 18:35:38 -08005410@extension("VK_NV_external_memory") // 57
Jesse Halleb02c472017-02-24 15:13:45 -08005411class VkExportMemoryAllocateInfoNV {
5412 VkStructureType sType
5413 const void* pNext
5414 VkExternalMemoryHandleTypeFlagsNV handleTypes
5415}
5416
Jesse Hallad250842017-03-10 18:35:38 -08005417@extension("VK_NV_external_memory_win32") // 58
Jesse Halleb02c472017-02-24 15:13:45 -08005418class VkImportMemoryWin32HandleInfoNV {
5419 VkStructureType sType
5420 const void* pNext
5421 VkExternalMemoryHandleTypeFlagsNV handleType
5422 platform.HANDLE handle
5423}
5424
Jesse Hallad250842017-03-10 18:35:38 -08005425@extension("VK_NV_external_memory_win32") // 58
Jesse Halleb02c472017-02-24 15:13:45 -08005426class VkExportMemoryWin32HandleInfoNV {
5427 VkStructureType sType
5428 const void* pNext
5429 const platform.SECURITY_ATTRIBUTES* pAttributes
5430 platform.DWORD dwAccess
5431}
5432
Jesse Hallad250842017-03-10 18:35:38 -08005433@extension("VK_NV_win32_keyed_mutex") // 59
Jesse Halleb02c472017-02-24 15:13:45 -08005434class VkWin32KeyedMutexAcquireReleaseInfoNV {
5435 VkStructureType sType
5436 const void* pNext
5437 u32 acquireCount
5438 const VkDeviceMemory* pAcquireSyncs
5439 const u64* pAcquireKeys
5440 const u32* pAcquireTimeoutMilliseconds
5441 u32 releaseCount
5442 const VkDeviceMemory* pReleaseSyncs
5443 const u64* pReleaseKeys
5444}
5445
Jesse Hallad250842017-03-10 18:35:38 -08005446@extension("VK_KHR_get_physical_device_properties2") // 60
Chris Forbes1194ede2016-12-30 16:29:25 +13005447class VkPhysicalDeviceFeatures2KHR {
5448 VkStructureType sType
5449 void* pNext
5450 VkPhysicalDeviceFeatures features
5451}
5452
Jesse Hallad250842017-03-10 18:35:38 -08005453@extension("VK_KHR_get_physical_device_properties2") // 60
Chris Forbes1194ede2016-12-30 16:29:25 +13005454class VkPhysicalDeviceProperties2KHR {
5455 VkStructureType sType
5456 void* pNext
5457 VkPhysicalDeviceProperties properties
5458}
5459
Jesse Hallad250842017-03-10 18:35:38 -08005460@extension("VK_KHR_get_physical_device_properties2") // 60
Chris Forbes1194ede2016-12-30 16:29:25 +13005461class VkFormatProperties2KHR {
5462 VkStructureType sType
5463 void* pNext
5464 VkFormatProperties formatProperties
5465}
5466
Jesse Hallad250842017-03-10 18:35:38 -08005467@extension("VK_KHR_get_physical_device_properties2") // 60
Chris Forbes1194ede2016-12-30 16:29:25 +13005468class VkImageFormatProperties2KHR {
5469 VkStructureType sType
5470 void* pNext
5471 VkImageFormatProperties imageFormatProperties
5472}
5473
Jesse Hallad250842017-03-10 18:35:38 -08005474@extension("VK_KHR_get_physical_device_properties2") // 60
Chris Forbes1194ede2016-12-30 16:29:25 +13005475class VkPhysicalDeviceImageFormatInfo2KHR {
5476 VkStructureType sType
5477 const void* pNext
5478 VkFormat format
5479 VkImageType type
5480 VkImageTiling tiling
5481 VkImageUsageFlags usage
5482 VkImageCreateFlags flags
5483}
5484
Jesse Hallad250842017-03-10 18:35:38 -08005485@extension("VK_KHR_get_physical_device_properties2") // 60
Chris Forbes1194ede2016-12-30 16:29:25 +13005486class VkQueueFamilyProperties2KHR {
5487 VkStructureType sType
5488 void* pNext
5489 VkQueueFamilyProperties queueFamilyProperties
5490}
5491
Jesse Hallad250842017-03-10 18:35:38 -08005492@extension("VK_KHR_get_physical_device_properties2") // 60
Chris Forbes1194ede2016-12-30 16:29:25 +13005493class VkPhysicalDeviceMemoryProperties2KHR {
5494 VkStructureType sType
5495 void* pNext
5496 VkPhysicalDeviceMemoryProperties memoryProperties
5497}
5498
Jesse Hallad250842017-03-10 18:35:38 -08005499@extension("VK_KHR_get_physical_device_properties2") // 60
Chris Forbes1194ede2016-12-30 16:29:25 +13005500class VkSparseImageFormatProperties2KHR {
5501 VkStructureType sType
5502 void* pNext
5503 VkSparseImageFormatProperties properties
5504}
5505
Jesse Hallad250842017-03-10 18:35:38 -08005506@extension("VK_KHR_get_physical_device_properties2") // 60
Chris Forbes1194ede2016-12-30 16:29:25 +13005507class VkPhysicalDeviceSparseImageFormatInfo2KHR {
5508 VkStructureType sType
5509 const void* pNext
5510 VkFormat format
5511 VkImageType type
5512 VkSampleCountFlagBits samples
5513 VkImageUsageFlags usage
5514 VkImageTiling tiling
5515}
5516
Daniel Koch09f7bf92017-10-05 00:26:58 -04005517@extension("VK_KHR_device_group") // 61
5518class VkMemoryAllocateFlagsInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005519 VkStructureType sType
5520 const void* pNext
Daniel Koch09f7bf92017-10-05 00:26:58 -04005521 VkMemoryAllocateFlagsKHR flags
Jesse Hallad250842017-03-10 18:35:38 -08005522 u32 deviceMask
5523}
5524
Daniel Koch09f7bf92017-10-05 00:26:58 -04005525@extension("VK_KHR_device_group") // 61
5526class VkBindBufferMemoryDeviceGroupInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005527 VkStructureType sType
5528 const void* pNext
Jesse Hallad250842017-03-10 18:35:38 -08005529 u32 deviceIndexCount
5530 const u32* pDeviceIndices
5531}
5532
Daniel Koch09f7bf92017-10-05 00:26:58 -04005533@extension("VK_KHR_device_group") // 61
5534class VkBindImageMemoryDeviceGroupInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005535 VkStructureType sType
5536 const void* pNext
Jesse Hallad250842017-03-10 18:35:38 -08005537 u32 deviceIndexCount
5538 const u32* pDeviceIndices
5539 u32 SFRRectCount
5540 const VkRect2D* pSFRRects
5541}
5542
Daniel Koch09f7bf92017-10-05 00:26:58 -04005543@extension("VK_KHR_device_group") // 61
5544class VkDeviceGroupRenderPassBeginInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005545 VkStructureType sType
5546 const void* pNext
5547 u32 deviceMask
5548 u32 deviceRenderAreaCount
5549 const VkRect2D* pDeviceRenderAreas
5550}
5551
Daniel Koch09f7bf92017-10-05 00:26:58 -04005552@extension("VK_KHR_device_group") // 61
5553class VkDeviceGroupCommandBufferBeginInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005554 VkStructureType sType
5555 const void* pNext
5556 u32 deviceMask
5557}
5558
Daniel Koch09f7bf92017-10-05 00:26:58 -04005559@extension("VK_KHR_device_group") // 61
5560class VkDeviceGroupSubmitInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005561 VkStructureType sType
5562 const void* pNext
5563 u32 waitSemaphoreCount
5564 const u32* pWaitSemaphoreDeviceIndices
5565 u32 commandBufferCount
5566 const u32* pCommandBufferDeviceMasks
5567 u32 signalSemaphoreCount
5568 const u32* pSignalSemaphoreDeviceIndices
5569}
5570
Daniel Koch09f7bf92017-10-05 00:26:58 -04005571@extension("VK_KHR_device_group") // 61
5572class VkDeviceGroupBindSparseInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005573 VkStructureType sType
5574 const void* pNext
5575 u32 resourceDeviceIndex
5576 u32 memoryDeviceIndex
5577}
5578
Jesse Hallad250842017-03-10 18:35:38 -08005579@extension("VK_EXT_validation_flags") // 62
Chris Forbes289cb792016-12-30 15:03:55 +13005580class VkValidationFlagsEXT {
5581 VkStructureType sType
5582 const void* pNext
5583 u32 disabledValidationCheckCount
Jesse Hall115df0c2018-07-30 12:00:59 -07005584 const VkValidationCheckEXT* pDisabledValidationChecks
Chris Forbes289cb792016-12-30 15:03:55 +13005585}
5586
Jesse Hallad250842017-03-10 18:35:38 -08005587@extension("VK_NN_vi_surface") // 63
Jesse Hall77ad05b2017-03-10 22:02:20 -08005588class VkViSurfaceCreateInfoNN {
5589 VkStructureType sType
5590 const void* pNext
5591 VkViSurfaceCreateFlagsNN flags
5592 void* window
5593}
5594
Jesse Hall4af6c462018-09-10 09:04:25 -07005595@extension("VK_EXT_astc_decode_mode") // 68
5596class VkImageViewASTCDecodeModeEXT {
5597 VkStructureType sType
5598 const void* pNext
5599 VkFormat decodeMode
5600}
5601
5602@extension("VK_EXT_astc_decode_mode") // 68
5603class VkPhysicalDeviceASTCDecodeFeaturesEXT {
5604 VkStructureType sType
5605 void* pNext
5606 VkBool32 decodeModeSharedExponent
5607}
5608
Daniel Koch09f7bf92017-10-05 00:26:58 -04005609@extension("VK_KHR_device_group_creation") // 71
5610class VkPhysicalDeviceGroupPropertiesKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005611 VkStructureType sType
Jesse Hallf5ad48b2017-03-20 13:09:19 -07005612 void* pNext
Jesse Hallad250842017-03-10 18:35:38 -08005613 u32 physicalDeviceCount
Daniel Koch09f7bf92017-10-05 00:26:58 -04005614 VkPhysicalDevice[VK_MAX_DEVICE_GROUP_SIZE] physicalDevices
Jesse Hallad250842017-03-10 18:35:38 -08005615 VkBool32 subsetAllocation
5616}
5617
Daniel Koch09f7bf92017-10-05 00:26:58 -04005618@extension("VK_KHR_device_group_creation") // 71
5619class VkDeviceGroupDeviceCreateInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005620 VkStructureType sType
5621 const void* pNext
5622 u32 physicalDeviceCount
5623 const VkPhysicalDevice* pPhysicalDevices
5624}
5625
Jesse Hall9492f992017-08-28 12:10:06 -07005626@extension("VK_KHR_external_memory_capabilities") // 72
5627class VkExternalMemoryPropertiesKHR {
5628 VkExternalMemoryFeatureFlagsKHR externalMemoryFeatures
5629 VkExternalMemoryHandleTypeFlagsKHR exportFromImportedHandleTypes
5630 VkExternalMemoryHandleTypeFlagsKHR compatibleHandleTypes
Jesse Hallad250842017-03-10 18:35:38 -08005631}
5632
Jesse Hall9492f992017-08-28 12:10:06 -07005633@extension("VK_KHR_external_memory_capabilities") // 72
5634class VkPhysicalDeviceExternalImageFormatInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005635 VkStructureType sType
5636 const void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005637 VkExternalMemoryHandleTypeFlagBitsKHR handleType
Jesse Hallad250842017-03-10 18:35:38 -08005638}
5639
Jesse Hall9492f992017-08-28 12:10:06 -07005640@extension("VK_KHR_external_memory_capabilities") // 72
5641class VkExternalImageFormatPropertiesKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005642 VkStructureType sType
5643 void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005644 VkExternalMemoryPropertiesKHR externalMemoryProperties
Jesse Hallad250842017-03-10 18:35:38 -08005645}
5646
Jesse Hall9492f992017-08-28 12:10:06 -07005647@extension("VK_KHR_external_memory_capabilities") // 72
5648class VkPhysicalDeviceExternalBufferInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005649 VkStructureType sType
5650 const void* pNext
5651 VkBufferCreateFlags flags
5652 VkBufferUsageFlags usage
Jesse Hall9492f992017-08-28 12:10:06 -07005653 VkExternalMemoryHandleTypeFlagBitsKHR handleType
Jesse Hallad250842017-03-10 18:35:38 -08005654}
5655
Jesse Hall9492f992017-08-28 12:10:06 -07005656@extension("VK_KHR_external_memory_capabilities") // 72
5657class VkExternalBufferPropertiesKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005658 VkStructureType sType
5659 void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005660 VkExternalMemoryPropertiesKHR externalMemoryProperties
Jesse Hallad250842017-03-10 18:35:38 -08005661}
5662
Jesse Hall9492f992017-08-28 12:10:06 -07005663@extension("VK_KHR_external_memory_capabilities") // 72
5664class VkPhysicalDeviceIDPropertiesKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005665 VkStructureType sType
5666 void* pNext
5667 u8[VK_UUID_SIZE] deviceUUID
5668 u8[VK_UUID_SIZE] driverUUID
Daniel Koch09f7bf92017-10-05 00:26:58 -04005669 u8[VK_LUID_SIZE] deviceLUID
Jesse Hall9492f992017-08-28 12:10:06 -07005670 u32 deviceNodeMask
Jesse Hallad250842017-03-10 18:35:38 -08005671 VkBool32 deviceLUIDValid
5672}
5673
Jesse Hall9492f992017-08-28 12:10:06 -07005674@extension("VK_KHR_external_memory") // 73
5675class VkExternalMemoryImageCreateInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005676 VkStructureType sType
5677 const void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005678 VkExternalMemoryHandleTypeFlagsKHR handleTypes
Jesse Hallad250842017-03-10 18:35:38 -08005679}
5680
Jesse Hall9492f992017-08-28 12:10:06 -07005681@extension("VK_KHR_external_memory") // 73
5682class VkExternalMemoryBufferCreateInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005683 VkStructureType sType
5684 const void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005685 VkExternalMemoryHandleTypeFlagsKHR handleTypes
Jesse Hallad250842017-03-10 18:35:38 -08005686}
5687
Jesse Hall9492f992017-08-28 12:10:06 -07005688@extension("VK_KHR_external_memory") // 73
5689class VkExportMemoryAllocateInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005690 VkStructureType sType
5691 const void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005692 VkExternalMemoryHandleTypeFlagsKHR handleTypes
Jesse Hallad250842017-03-10 18:35:38 -08005693}
5694
Jesse Hall9492f992017-08-28 12:10:06 -07005695@extension("VK_KHR_external_memory_win32") // 74
5696class VkImportMemoryWin32HandleInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005697 VkStructureType sType
5698 const void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005699 VkExternalMemoryHandleTypeFlagBitsKHR handleType
Jesse Hallad250842017-03-10 18:35:38 -08005700 platform.HANDLE handle
Jesse Hall9492f992017-08-28 12:10:06 -07005701 platform.LPCWSTR name
Jesse Hallad250842017-03-10 18:35:38 -08005702}
5703
Jesse Hall9492f992017-08-28 12:10:06 -07005704@extension("VK_KHR_external_memory_win32") // 74
5705class VkExportMemoryWin32HandleInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005706 VkStructureType sType
5707 const void* pNext
5708 const platform.SECURITY_ATTRIBUTES* pAttributes
5709 platform.DWORD dwAccess
5710 platform.LPCWSTR name
5711}
5712
Jesse Hall9492f992017-08-28 12:10:06 -07005713@extension("VK_KHR_external_memory_win32") // 74
5714class VkMemoryWin32HandlePropertiesKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005715 VkStructureType sType
5716 void* pNext
5717 u32 memoryTypeBits
5718}
5719
Jesse Hall9492f992017-08-28 12:10:06 -07005720@extension("VK_KHR_external_memory_win32") // 74
5721class VkMemoryGetWin32HandleInfoKHR {
5722 VkStructureType sType
5723 void* pNext
5724 VkDeviceMemory memory
5725 VkExternalMemoryHandleTypeFlagBitsKHR handleType
5726}
5727
5728@extension("VK_KHR_external_memory_fd") // 75
5729class VkImportMemoryFdInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005730 VkStructureType sType
5731 const void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005732 VkExternalMemoryHandleTypeFlagBitsKHR handleType
Jesse Hallad250842017-03-10 18:35:38 -08005733 int fd
5734}
5735
Jesse Hall9492f992017-08-28 12:10:06 -07005736@extension("VK_KHR_external_memory_fd") // 75
5737class VkMemoryFdPropertiesKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005738 VkStructureType sType
5739 void* pNext
5740 u32 memoryTypeBits
5741}
5742
Jesse Hall9492f992017-08-28 12:10:06 -07005743@extension("VK_KHR_external_memory_fd") // 75
5744class VkMemoryGetFdInfoKHR {
5745 VkStructureType sType
5746 void* pNext
5747 VkDeviceMemory memory
5748 VkExternalMemoryHandleTypeFlagBitsKHR handleType
5749}
5750
5751@extension("VK_KHR_win32_keyed_mutex") // 76
5752class VkWin32KeyedMutexAcquireReleaseInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005753 VkStructureType sType
5754 const void* pNext
5755 u32 acquireCount
5756 const VkDeviceMemory* pAcquireSyncs
5757 const u64* pAcquireKeys
5758 const u32* pAcquireTimeouts
5759 u32 releaseCount
5760 const VkDeviceMemory* pReleaseSyncs
5761 const u64* pReleaseKeys
5762}
5763
Jesse Hall9492f992017-08-28 12:10:06 -07005764@extension("VK_KHR_external_semaphore_capabilities") // 77
5765class VkPhysicalDeviceExternalSemaphoreInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005766 VkStructureType sType
5767 const void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005768 VkExternalSemaphoreHandleTypeFlagBitsKHR handleType
Jesse Hallad250842017-03-10 18:35:38 -08005769}
5770
Jesse Hall9492f992017-08-28 12:10:06 -07005771@extension("VK_KHR_external_semaphore_capabilities") // 77
5772class VkExternalSemaphorePropertiesKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005773 VkStructureType sType
5774 void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005775 VkExternalSemaphoreHandleTypeFlagsKHR exportFromImportedHandleTypes
5776 VkExternalSemaphoreHandleTypeFlagsKHR compatibleHandleTypes
5777 VkExternalSemaphoreFeatureFlagsKHR externalSemaphoreFeatures
Jesse Hallad250842017-03-10 18:35:38 -08005778}
5779
Jesse Hall9492f992017-08-28 12:10:06 -07005780@extension("VK_KHR_external_semaphore") // 78
5781class VkExportSemaphoreCreateInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005782 VkStructureType sType
5783 const void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005784 VkExternalSemaphoreHandleTypeFlagsKHR handleTypes
Jesse Hallad250842017-03-10 18:35:38 -08005785}
5786
Jesse Hall9492f992017-08-28 12:10:06 -07005787@extension("VK_KHR_external_semaphore_win32") // 79
5788class VkImportSemaphoreWin32HandleInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005789 VkStructureType sType
5790 const void* pNext
5791 VkSemaphore semaphore
Jesse Hall9492f992017-08-28 12:10:06 -07005792 VkSemaphoreImportFlagsKHR flags
5793 VkExternalSemaphoreHandleTypeFlagsKHR handleType
Jesse Hallad250842017-03-10 18:35:38 -08005794 platform.HANDLE handle
Jesse Hall9492f992017-08-28 12:10:06 -07005795 platform.LPCWSTR name
Jesse Hallad250842017-03-10 18:35:38 -08005796}
5797
Jesse Hall9492f992017-08-28 12:10:06 -07005798@extension("VK_KHR_external_semaphore_win32") // 79
5799class VkExportSemaphoreWin32HandleInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005800 VkStructureType sType
5801 const void* pNext
5802 const platform.SECURITY_ATTRIBUTES* pAttributes
5803 platform.DWORD dwAccess
5804 platform.LPCWSTR name
5805}
5806
Jesse Hall9492f992017-08-28 12:10:06 -07005807@extension("VK_KHR_external_semaphore_win32") // 79
5808class VkD3D12FenceSubmitInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005809 VkStructureType sType
5810 const void* pNext
5811 u32 waitSemaphoreValuesCount
5812 const u64* pWaitSemaphoreValues
5813 u32 signalSemaphoreValuesCount
5814 const u64* pSignalSemaphoreValues
5815}
5816
Jesse Hall9492f992017-08-28 12:10:06 -07005817@extension("VK_KHR_external_semaphore_win32") // 79
5818class VkSemaphoreGetWin32HandleInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005819 VkStructureType sType
5820 const void* pNext
5821 VkSemaphore semaphore
Jesse Hall9492f992017-08-28 12:10:06 -07005822 VkExternalSemaphoreHandleTypeFlagBitsKHR handleType
5823}
5824
5825@extension("VK_KHR_external_semaphore_fd") // 80
5826class VkImportSemaphoreFdInfoKHR {
5827 VkStructureType sType
5828 const void* pNext
5829 VkSemaphore semaphore
5830 VkSemaphoreImportFlagsKHR flags
5831 VkExternalSemaphoreHandleTypeFlagBitsKHR handleType
Jesse Hallad250842017-03-10 18:35:38 -08005832 s32 fd
5833}
5834
Jesse Hall9492f992017-08-28 12:10:06 -07005835@extension("VK_KHR_external_semaphore_fd") // 80
5836class VkSemaphoreGetFdInfoKHR {
5837 VkStructureType sType
5838 const void* pNext
5839 VkSemaphore semaphore
5840 VkExternalSemaphoreHandleTypeFlagBitsKHR handleType
5841}
5842
Jesse Hallad250842017-03-10 18:35:38 -08005843@extension("VK_KHR_push_descriptor") // 81
5844class VkPhysicalDevicePushDescriptorPropertiesKHR {
5845 VkStructureType sType
5846 void* pNext
5847 u32 maxPushDescriptors
5848}
5849
Jesse Halla13a3cf2018-07-09 15:51:52 -07005850@extension("VK_EXT_conditional_rendering") // 82
5851class VkConditionalRenderingBeginInfoEXT {
5852 VkStructureType sType
5853 const void* pNext
5854 VkBuffer buffer
5855 VkDeviceSize offset
5856 VkConditionalRenderingFlagsEXT flags
5857}
5858
5859@extension("VK_EXT_conditional_rendering") // 82
5860class VkPhysicalDeviceConditionalRenderingFeaturesEXT {
5861 VkStructureType sType
5862 void* pNext
5863 VkBool32 conditionalRendering
5864 VkBool32 inheritedConditionalRendering
5865}
5866
5867@extension("VK_EXT_conditional_rendering") // 82
5868class VkCommandBufferInheritanceConditionalRenderingInfoEXT {
5869 VkStructureType sType
5870 const void* pNext
5871 VkBool32 conditionalRenderingEnable
5872}
5873
Jesse Hall9492f992017-08-28 12:10:06 -07005874@extension("VK_KHR_16bit_storage") // 84
5875class VkPhysicalDevice16BitStorageFeaturesKHR {
5876 VkStructureType sType
5877 void* pNext
5878 VkBool32 storageBuffer16BitAccess
5879 VkBool32 uniformAndStorageBuffer16BitAccess
5880 VkBool32 storagePushConstant16
5881 VkBool32 storageInputOutput16
5882}
5883
Jesse Hallad250842017-03-10 18:35:38 -08005884@extension("VK_KHR_incremental_present") // 85
5885class VkRectLayerKHR {
5886 VkOffset2D offset
5887 VkExtent2D extent
5888 u32 layer
5889}
5890
5891@extension("VK_KHR_incremental_present") // 85
5892class VkPresentRegionKHR {
5893 u32 rectangleCount
5894 const VkRectLayerKHR* pRectangles
5895}
5896
5897@extension("VK_KHR_incremental_present") // 85
5898class VkPresentRegionsKHR {
5899 VkStructureType sType
5900 const void* pNext
5901 u32 swapchainCount
5902 const VkPresentRegionKHR* pRegions
5903}
5904
5905@extension("VK_KHR_descriptor_update_template") // 86
5906class VkDescriptorUpdateTemplateEntryKHR {
5907 u32 dstBinding
5908 u32 dstArrayElement
5909 u32 descriptorCount
5910 VkDescriptorType descriptorType
5911 platform.size_t offset
5912 platform.size_t stride
5913}
5914
5915@extension("VK_KHR_descriptor_update_template") // 86
5916class VkDescriptorUpdateTemplateCreateInfoKHR {
5917 VkStructureType sType
5918 void* pNext
5919 VkDescriptorUpdateTemplateCreateFlagsKHR flags
5920 u32 descriptorUpdateEntryCount
5921 const VkDescriptorUpdateTemplateEntryKHR* pDescriptorUpdateEntries
5922 VkDescriptorUpdateTemplateTypeKHR templateType
5923 VkDescriptorSetLayout descriptorSetLayout
5924 VkPipelineBindPoint pipelineBindPoint
5925 VkPipelineLayout pipelineLayout
5926 u32 set
5927}
5928
5929@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13005930class VkDeviceGeneratedCommandsFeaturesNVX {
5931 VkStructureType sType
5932 const void* pNext
5933 VkBool32 computeBindingPointSupport
5934}
5935
Jesse Hallad250842017-03-10 18:35:38 -08005936@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13005937class VkDeviceGeneratedCommandsLimitsNVX {
5938 VkStructureType sType
5939 const void* pNext
5940 u32 maxIndirectCommandsLayoutTokenCount
5941 u32 maxObjectEntryCounts
5942 u32 minSequenceCountBufferOffsetAlignment
5943 u32 minSequenceIndexBufferOffsetAlignment
5944 u32 minCommandsTokenBufferOffsetAlignment
5945}
5946
Jesse Hallad250842017-03-10 18:35:38 -08005947@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13005948class VkIndirectCommandsTokenNVX {
5949 VkIndirectCommandsTokenTypeNVX tokenType
5950 VkBuffer buffer
5951 VkDeviceSize offset
5952}
5953
Jesse Hallad250842017-03-10 18:35:38 -08005954@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13005955class VkIndirectCommandsLayoutTokenNVX {
5956 VkIndirectCommandsTokenTypeNVX tokenType
5957 u32 bindingUnit
5958 u32 dynamicCount
5959 u32 divisor
5960}
5961
Jesse Hallad250842017-03-10 18:35:38 -08005962@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13005963class VkIndirectCommandsLayoutCreateInfoNVX {
5964 VkStructureType sType
5965 const void* pNext
5966 VkPipelineBindPoint pipelineBindPoint
5967 VkIndirectCommandsLayoutUsageFlagsNVX flags
5968 u32 tokenCount
5969 const VkIndirectCommandsLayoutTokenNVX* pTokens
5970}
5971
Jesse Hallad250842017-03-10 18:35:38 -08005972@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13005973class VkCmdProcessCommandsInfoNVX {
5974 VkStructureType sType
5975 const void* pNext
5976 VkObjectTableNVX objectTable
5977 VkIndirectCommandsLayoutNVX indirectCommandsLayout
5978 u32 indirectCommandsTokenCount
5979 const VkIndirectCommandsTokenNVX* pIndirectCommandsTokens
5980 u32 maxSequencesCount
5981 VkCommandBuffer targetCommandBuffer
5982 VkBuffer sequencesCountBuffer
5983 VkDeviceSize sequencesCountOffset
5984 VkBuffer sequencesIndexBuffer
5985 VkDeviceSize sequencesIndexOffset
5986}
5987
Jesse Hallad250842017-03-10 18:35:38 -08005988@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13005989class VkCmdReserveSpaceForCommandsInfoNVX {
5990 VkStructureType sType
5991 const void* pNext
5992 VkObjectTableNVX objectTable
5993 VkIndirectCommandsLayoutNVX indirectCommandsLayout
5994 u32 maxSequencesCount
5995}
5996
Jesse Hallad250842017-03-10 18:35:38 -08005997@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13005998class VkObjectTableCreateInfoNVX {
5999 VkStructureType sType
6000 const void* pNext
6001 u32 objectCount
6002 const VkObjectEntryTypeNVX* pObjectEntryTypes
6003 const u32* pObjectEntryCounts
6004 const VkObjectEntryUsageFlagsNVX* pObjectEntryUsageFlags
6005 u32 maxUniformBuffersPerDescriptor
6006 u32 maxStorageBuffersPerDescriptor
6007 u32 maxStorageImagesPerDescriptor
6008 u32 maxSampledImagesPerDescriptor
6009 u32 maxPipelineLayouts
6010}
6011
Jesse Hallad250842017-03-10 18:35:38 -08006012@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13006013class VkObjectTableEntryNVX {
6014 VkObjectEntryTypeNVX type
6015 VkObjectEntryUsageFlagsNVX flags
6016}
6017
Jesse Hallad250842017-03-10 18:35:38 -08006018@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13006019class VkObjectTablePipelineEntryNVX {
6020 VkObjectEntryTypeNVX type
6021 VkObjectEntryUsageFlagsNVX flags
6022 VkPipeline pipeline
6023}
6024
Jesse Hallad250842017-03-10 18:35:38 -08006025@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13006026class VkObjectTableDescriptorSetEntryNVX {
6027 VkObjectEntryTypeNVX type
6028 VkObjectEntryUsageFlagsNVX flags
6029 VkPipelineLayout pipelineLayout
6030 VkDescriptorSet descriptorSet
6031}
6032
Jesse Hallad250842017-03-10 18:35:38 -08006033@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13006034class VkObjectTableVertexBufferEntryNVX {
6035 VkObjectEntryTypeNVX type
6036 VkObjectEntryUsageFlagsNVX flags
6037 VkBuffer buffer
6038}
6039
Jesse Hallad250842017-03-10 18:35:38 -08006040@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13006041class VkObjectTableIndexBufferEntryNVX {
6042 VkObjectEntryTypeNVX type
6043 VkObjectEntryUsageFlagsNVX flags
6044 VkBuffer buffer
Jesse Hall77ad05b2017-03-10 22:02:20 -08006045 VkIndexType indexType
Chris Forbes289cb792016-12-30 15:03:55 +13006046}
6047
Jesse Hallad250842017-03-10 18:35:38 -08006048@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13006049class VkObjectTablePushConstantEntryNVX {
6050 VkObjectEntryTypeNVX type
6051 VkObjectEntryUsageFlagsNVX flags
6052 VkPipelineLayout pipelineLayout
6053 VkShaderStageFlags stageFlags
6054}
6055
Jesse Hallad250842017-03-10 18:35:38 -08006056@extension("VK_NV_clip_space_w_scaling") // 88
6057class VkViewportWScalingNV {
6058 f32 xcoeff
6059 f32 ycoeff
Jesse Hall889cd9a2017-02-25 22:12:23 -08006060}
6061
Jesse Hallad250842017-03-10 18:35:38 -08006062@extension("VK_NV_clip_space_w_scaling") // 88
6063class VkPipelineViewportWScalingStateCreateInfoNV {
Jesse Hall889cd9a2017-02-25 22:12:23 -08006064 VkStructureType sType
6065 const void* pNext
Jesse Hallad250842017-03-10 18:35:38 -08006066 VkBool32 viewportWScalingEnable
6067 u32 viewportCount
6068 const VkViewportWScalingNV* pViewportWScalings
Jesse Hall889cd9a2017-02-25 22:12:23 -08006069}
6070
Jesse Hallad250842017-03-10 18:35:38 -08006071@extension("VK_EXT_display_surface_counter") // 91
Jesse Hall77ad05b2017-03-10 22:02:20 -08006072class VkSurfaceCapabilities2EXT {
6073 VkStructureType sType
6074 void* pNext
6075 u32 minImageCount
6076 u32 maxImageCount
6077 VkExtent2D currentExtent
6078 VkExtent2D minImageExtent
6079 VkExtent2D maxImageExtent
6080 u32 maxImageArrayLayers
6081 VkSurfaceTransformFlagsKHR supportedTransforms
6082 VkSurfaceTransformFlagBitsKHR currentTransform
6083 VkCompositeAlphaFlagsKHR supportedCompositeAlpha
6084 VkImageUsageFlags supportedUsageFlags
6085 VkSurfaceCounterFlagsEXT supportedSurfaceCounters
6086}
6087
Jesse Hallad250842017-03-10 18:35:38 -08006088@extension("VK_EXT_display_control") // 92
Jesse Hall77ad05b2017-03-10 22:02:20 -08006089class VkDisplayPowerInfoEXT {
6090 VkStructureType sType
6091 const void* pNext
6092 VkDisplayPowerStateEXT powerState
6093}
6094
Jesse Hallad250842017-03-10 18:35:38 -08006095@extension("VK_EXT_display_control") // 92
Jesse Hall77ad05b2017-03-10 22:02:20 -08006096class VkDeviceEventInfoEXT {
6097 VkStructureType sType
6098 const void* pNext
6099 VkDeviceEventTypeEXT deviceEvent
6100}
6101
Jesse Hallad250842017-03-10 18:35:38 -08006102@extension("VK_EXT_display_control") // 92
Jesse Hall77ad05b2017-03-10 22:02:20 -08006103class VkDisplayEventInfoEXT {
6104 VkStructureType sType
6105 const void* pNext
6106 VkDisplayEventTypeEXT displayEvent
6107}
6108
Jesse Hallad250842017-03-10 18:35:38 -08006109@extension("VK_EXT_display_control") // 92
Jesse Hall77ad05b2017-03-10 22:02:20 -08006110class VkSwapchainCounterCreateInfoEXT {
6111 VkStructureType sType
6112 const void* pNext
6113 VkSurfaceCounterFlagsEXT surfaceCounters
6114}
6115
Jesse Hallad250842017-03-10 18:35:38 -08006116@extension("VK_GOOGLE_display_timing") // 93
6117class VkRefreshCycleDurationGOOGLE {
Jesse Hallfdc8ab32017-03-10 21:01:57 -08006118 u64 refreshDuration
Jesse Hallad250842017-03-10 18:35:38 -08006119}
6120
6121@extension("VK_GOOGLE_display_timing") // 93
6122class VkPastPresentationTimingGOOGLE {
Jesse Hallfdc8ab32017-03-10 21:01:57 -08006123 u32 presentID
6124 u64 desiredPresentTime
6125 u64 actualPresentTime
6126 u64 earliestPresentTime
6127 u64 presentMargin
Jesse Hallad250842017-03-10 18:35:38 -08006128}
6129
6130@extension("VK_GOOGLE_display_timing") // 93
6131class VkPresentTimeGOOGLE {
Jesse Hallfdc8ab32017-03-10 21:01:57 -08006132 u32 presentID
6133 u64 desiredPresentTime
Jesse Hallad250842017-03-10 18:35:38 -08006134}
6135
6136@extension("VK_GOOGLE_display_timing") // 93
6137class VkPresentTimesInfoGOOGLE {
Jesse Hallfdc8ab32017-03-10 21:01:57 -08006138 VkStructureType sType
6139 const void* pNext
6140 u32 swapchainCount
6141 const VkPresentTimeGOOGLE* pTimes
Jesse Hallad250842017-03-10 18:35:38 -08006142}
6143
6144@extension("VK_NVX_multiview_per_view_attributes") // 98
6145class VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX {
6146 VkStructureType sType
6147 void* pNext
6148 VkBool32 perViewPositionAllComponents
6149}
6150
6151@extension("VK_NV_viewport_swizzle") // 99
6152class VkViewportSwizzleNV {
6153 VkViewportCoordinateSwizzleNV x
6154 VkViewportCoordinateSwizzleNV y
6155 VkViewportCoordinateSwizzleNV z
6156 VkViewportCoordinateSwizzleNV w
6157}
6158
6159@extension("VK_NV_viewport_swizzle") // 99
6160class VkPipelineViewportSwizzleStateCreateInfoNV {
6161 VkStructureType sType
6162 const void* pNext
6163 VkPipelineViewportSwizzleStateCreateFlagsNV flags
6164 u32 viewportCount
6165 const VkViewportSwizzleNV* pViewportSwizzles
6166}
6167
6168@extension("VK_EXT_discard_rectangles") // 100
6169class VkPhysicalDeviceDiscardRectanglePropertiesEXT {
6170 VkStructureType sType
Jesse Hallf5ad48b2017-03-20 13:09:19 -07006171 void* pNext
Jesse Hallad250842017-03-10 18:35:38 -08006172 u32 maxDiscardRectangles
6173}
6174
6175@extension("VK_EXT_discard_rectangles") // 100
6176class VkPipelineDiscardRectangleStateCreateInfoEXT {
Jesse Hallfdc8ab32017-03-10 21:01:57 -08006177 VkStructureType sType
6178 const void* pNext
6179 VkPipelineDiscardRectangleStateCreateFlagsEXT flags
6180 VkDiscardRectangleModeEXT discardRectangleMode
6181 u32 discardRectangleCount
6182 const VkRect2D* pDiscardRectangles
Jesse Hallad250842017-03-10 18:35:38 -08006183}
6184
Jesse Hall8c954d32018-01-17 22:06:20 -08006185@extension("VK_EXT_conservative_rasterization") // 102
6186class VkPhysicalDeviceConservativeRasterizationPropertiesEXT {
6187 VkStructureType sType
6188 void* pNext
6189 f32 primitiveOverestimationSize
6190 f32 maxExtraPrimitiveOverestimationSize
6191 f32 extraPrimitiveOverestimationSizeGranularity
6192 VkBool32 primitiveUnderestimation
6193 VkBool32 conservativePointAndLineRasterization
6194 VkBool32 degenerateTrianglesRasterized
6195 VkBool32 degenerateLinesRasterized
6196 VkBool32 fullyCoveredFragmentShaderInputVariable
6197 VkBool32 conservativeRasterizationPostDepthCoverage
6198}
6199
6200@extension("VK_EXT_conservative_rasterization") // 102
6201class VkPipelineRasterizationConservativeStateCreateInfoEXT {
6202 VkStructureType sType
6203 const void* pNext
6204 VkPipelineRasterizationConservativeStateCreateFlagsEXT flags
6205 VkConservativeRasterizationModeEXT conservativeRasterizationMode
6206 f32 extraPrimitiveOverestimationSize
6207}
6208
Jesse Hallad250842017-03-10 18:35:38 -08006209@extension("VK_EXT_hdr_metadata") // 106
Courtney Goeltzenleuchterd634c482017-01-05 15:55:31 -07006210class VkXYColorEXT {
Jesse Hallfdc8ab32017-03-10 21:01:57 -08006211 f32 x
6212 f32 y
Courtney Goeltzenleuchterd634c482017-01-05 15:55:31 -07006213}
6214
Jesse Hallad250842017-03-10 18:35:38 -08006215@extension("VK_EXT_hdr_metadata") // 106
Courtney Goeltzenleuchterd634c482017-01-05 15:55:31 -07006216class VkHdrMetadataEXT {
Jesse Hallfdc8ab32017-03-10 21:01:57 -08006217 VkStructureType sType
6218 const void* pNext
6219 VkXYColorEXT displayPrimaryRed
6220 VkXYColorEXT displayPrimaryGreen
6221 VkXYColorEXT displayPrimaryBlue
6222 VkXYColorEXT whitePoint
6223 f32 maxLuminance
6224 f32 minLuminance
6225 f32 maxContentLightLevel
6226 f32 maxFrameAverageLightLevel
Courtney Goeltzenleuchterd634c482017-01-05 15:55:31 -07006227}
6228
Jesse Halla13a3cf2018-07-09 15:51:52 -07006229@extension("VK_KHR_create_renderpass2") // 110
6230class VkAttachmentDescription2KHR {
6231 VkStructureType sType
6232 const void* pNext
6233 VkAttachmentDescriptionFlags flags
6234 VkFormat format
6235 VkSampleCountFlagBits samples
6236 VkAttachmentLoadOp loadOp
6237 VkAttachmentStoreOp storeOp
6238 VkAttachmentLoadOp stencilLoadOp
6239 VkAttachmentStoreOp stencilStoreOp
6240 VkImageLayout initialLayout
6241 VkImageLayout finalLayout
6242}
6243
6244@extension("VK_KHR_create_renderpass2") // 110
6245class VkAttachmentReference2KHR {
6246 VkStructureType sType
6247 const void* pNext
6248 u32 attachment
6249 VkImageLayout layout
6250 VkImageAspectFlags aspectMask
6251}
6252
6253@extension("VK_KHR_create_renderpass2") // 110
6254class VkSubpassDescription2KHR {
6255 VkStructureType sType
6256 const void* pNext
6257 VkSubpassDescriptionFlags flags
6258 VkPipelineBindPoint pipelineBindPoint
6259 u32 viewMask
6260 u32 inputAttachmentCount
6261 const VkAttachmentReference2KHR* pInputAttachments
6262 u32 colorAttachmentCount
6263 const VkAttachmentReference2KHR* pColorAttachments
6264 const VkAttachmentReference2KHR* pResolveAttachments
6265 const VkAttachmentReference2KHR* pDepthStencilAttachment
6266 u32 preserveAttachmentCount
6267 const u32* pPreserveAttachments
6268}
6269
6270@extension("VK_KHR_create_renderpass2") // 110
6271class VkSubpassDependency2KHR {
6272 VkStructureType sType
6273 const void* pNext
6274 u32 srcSubpass
6275 u32 dstSubpass
6276 VkPipelineStageFlags srcStageMask
6277 VkPipelineStageFlags dstStageMask
6278 VkAccessFlags srcAccessMask
6279 VkAccessFlags dstAccessMask
6280 VkDependencyFlags dependencyFlags
6281 s32 viewOffset
6282}
6283
6284@extension("VK_KHR_create_renderpass2") // 110
6285class VkRenderPassCreateInfo2KHR {
6286 VkStructureType sType
6287 const void* pNext
6288 VkRenderPassCreateFlags flags
6289 u32 attachmentCount
6290 const VkAttachmentDescription2KHR* pAttachments
6291 u32 subpassCount
6292 const VkSubpassDescription2KHR* pSubpasses
6293 u32 dependencyCount
6294 const VkSubpassDependency2KHR* pDependencies
6295 u32 correlatedViewMaskCount
6296 const u32* pCorrelatedViewMasks
6297}
6298
6299@extension("VK_KHR_create_renderpass2") // 110
6300class VkSubpassBeginInfoKHR {
6301 VkStructureType sType
6302 const void* pNext
6303 VkSubpassContents contents
6304}
6305
6306@extension("VK_KHR_create_renderpass2") // 110
6307class VkSubpassEndInfoKHR {
6308 VkStructureType sType
6309 const void* pNext
6310}
6311
Jesse Hall05556b12017-05-18 17:40:25 -07006312@extension("VK_KHR_shared_presentable_image") // 112
Chris Forbese2d3ee12017-03-16 16:10:15 +13006313class VkSharedPresentSurfaceCapabilitiesKHR {
6314 VkStructureType sType
6315 const void* pNext
6316 VkImageUsageFlags sharedPresentSupportedUsageFlags
6317}
6318
Jesse Hall9492f992017-08-28 12:10:06 -07006319@extension("VK_KHR_external_fence_capabilities") // 113
6320class VkPhysicalDeviceExternalFenceInfoKHR {
6321 VkStructureType sType
6322 const void* pNext
6323 VkExternalFenceHandleTypeFlagBitsKHR handleType
6324}
6325
6326@extension("VK_KHR_external_fence_capabilities") // 113
6327class VkExternalFencePropertiesKHR {
6328 VkStructureType sType
6329 void* pNext
6330 VkExternalFenceHandleTypeFlagsKHR exportFromImportedHandleTypes
6331 VkExternalFenceHandleTypeFlagsKHR compatibleHandleTypes
6332 VkExternalFenceFeatureFlagsKHR externalFenceFeatures
6333}
6334
6335@extension("VK_KHR_external_fence") // 114
6336class VkExportFenceCreateInfoKHR {
6337 VkStructureType sType
6338 const void* pNext
6339 VkExternalFenceHandleTypeFlagsKHR handleTypes
6340}
6341
6342@extension("VK_KHR_external_fence_win32") // 115
6343class VkImportFenceWin32HandleInfoKHR {
6344 VkStructureType sType
6345 const void* pNext
6346 VkFence fence
6347 VkFenceImportFlagsKHR flags
6348 VkExternalFenceHandleTypeFlagBitsKHR handleType
6349 platform.HANDLE handle
6350 platform.LPCWSTR name
6351}
6352
6353@extension("VK_KHR_external_fence_win32") // 115
6354class VkExportFenceWin32HandleInfoKHR {
6355 VkStructureType sType
6356 const void* pNext
6357 const platform.SECURITY_ATTRIBUTES* pAttributes
6358 platform.DWORD dwAccess
6359 platform.LPCWSTR name
6360}
6361
6362@extension("VK_KHR_external_fence_win32") // 115
6363class VkFenceGetWin32HandleInfoKHR {
6364 VkStructureType sType
6365 const void* pNext
6366 VkFence fence
6367 VkExternalFenceHandleTypeFlagBitsKHR handleType
6368}
6369
6370@extension("VK_KHR_external_fence_fd") // 116
6371class VkImportFenceFdInfoKHR {
6372 VkStructureType sType
6373 const void* pNext
6374 VkFence fence
6375 VkFenceImportFlagsKHR flags
6376 VkExternalFenceHandleTypeFlagBitsKHR handleType
6377 int fd
6378}
6379
6380@extension("VK_KHR_external_fence_fd") // 116
6381class VkFenceGetFdInfoKHR {
6382 VkStructureType sType
6383 const void* pNext
6384 VkFence fence
6385 VkExternalFenceHandleTypeFlagBitsKHR handleType
6386}
6387
Jesse Hall076f95d2017-09-20 11:34:47 -07006388@extension("VK_KHR_maintenance2") // 118
6389class VkPhysicalDevicePointClippingPropertiesKHR {
6390 VkStructureType sType
6391 void* pNext
6392 VkPointClippingBehaviorKHR pointClippingBehavior
6393}
6394
6395@extension("VK_KHR_maintenance2") // 118
6396class VkInputAttachmentAspectReferenceKHR {
6397 u32 subpass
6398 u32 inputAttachmentIndex
6399 VkImageAspectFlags aspectMask
6400}
6401
6402@extension("VK_KHR_maintenance2") // 118
6403class VkRenderPassInputAttachmentAspectCreateInfoKHR {
6404 VkStructureType sType
6405 const void* pNext
6406 u32 aspectReferenceCount
6407 const VkInputAttachmentAspectReferenceKHR* pAspectReferences
6408}
6409
6410@extension("VK_KHR_maintenance2") // 118
6411class VkImageViewUsageCreateInfoKHR {
6412 VkStructureType sType
6413 const void* pNext
6414 VkImageUsageFlags usage
6415}
6416
6417@extension("VK_KHR_maintenance2") // 118
6418class VkPipelineTessellationDomainOriginStateCreateInfoKHR {
6419 VkStructureType sType
6420 const void* pNext
6421 VkTessellationDomainOriginKHR domainOrigin
6422}
6423
Jesse Hall05556b12017-05-18 17:40:25 -07006424@extension("VK_KHR_get_surface_capabilities2") // 120
Chris Forbese2d3ee12017-03-16 16:10:15 +13006425class VkPhysicalDeviceSurfaceInfo2KHR {
6426 VkStructureType sType
6427 const void* pNext
6428 VkSurfaceKHR surface
6429}
6430
Jesse Hall05556b12017-05-18 17:40:25 -07006431@extension("VK_KHR_get_surface_capabilities2") // 120
Chris Forbese2d3ee12017-03-16 16:10:15 +13006432class VkSurfaceCapabilities2KHR {
6433 VkStructureType sType
6434 void* pNext
6435 VkSurfaceCapabilitiesKHR surfaceCapabilities
6436}
6437
Jesse Hall05556b12017-05-18 17:40:25 -07006438@extension("VK_KHR_get_surface_capabilities2") // 120
Chris Forbese2d3ee12017-03-16 16:10:15 +13006439class VkSurfaceFormat2KHR {
6440 VkStructureType sType
6441 void* pNext
6442 VkSurfaceFormatKHR surfaceFormat
6443}
6444
Jesse Hall9492f992017-08-28 12:10:06 -07006445@extension("VK_KHR_variable_pointers") // 121
6446class VkPhysicalDeviceVariablePointerFeaturesKHR {
6447 VkStructureType sType
6448 void* pNext
6449 VkBool32 variablePointersStorageBuffer
6450 VkBool32 variablePointers
6451}
6452
Jesse Hall54f8d132018-04-18 08:16:59 -07006453@extension("VK_KHR_display_properties2") // 122
6454class VkDisplayProperties2KHR {
6455 VkStructureType sType
6456 void* pNext
6457 VkDisplayPropertiesKHR displayProperties
6458}
6459
6460@extension("VK_KHR_display_properties2") // 122
6461class VkDisplayPlaneProperties2KHR {
6462 VkStructureType sType
6463 void* pNext
6464 VkDisplayPlanePropertiesKHR displayPlaneProperties
6465}
6466
6467@extension("VK_KHR_display_properties2") // 122
6468class VkDisplayModeProperties2KHR {
6469 VkStructureType sType
6470 void* pNext
6471 VkDisplayModePropertiesKHR displayModeProperties
6472}
6473
6474@extension("VK_KHR_display_properties2") // 122
6475class VkDisplayPlaneInfo2KHR {
6476 VkStructureType sType
6477 const void* pNext
6478 VkDisplayModeKHR mode
6479 u32 planeIndex
6480}
6481
6482@extension("VK_KHR_display_properties2") // 122
6483class VkDisplayPlaneCapabilities2KHR {
6484 VkStructureType sType
6485 void* pNext
6486 VkDisplayPlaneCapabilitiesKHR capabilities
6487}
6488
Jesse Hallad250842017-03-10 18:35:38 -08006489@extension("VK_MVK_ios_surface") // 123
6490class VkIOSSurfaceCreateInfoMVK {
6491 VkStructureType sType
6492 const void* pNext
6493 VkIOSSurfaceCreateFlagsMVK flags
6494 const void* pView
6495}
6496
6497@extension("VK_MVK_macos_surface") // 124
6498class VkMacOSSurfaceCreateInfoMVK {
6499 VkStructureType sType
6500 const void* pNext
6501 VkMacOSSurfaceCreateFlagsMVK flags
6502 const void* pView
6503}
6504
Jesse Hall9492f992017-08-28 12:10:06 -07006505@extension("VK_KHR_dedicated_allocation") // 128
6506class VkMemoryDedicatedRequirementsKHR {
6507 VkStructureType sType
6508 void* pNext
6509 VkBool32 prefersDedicatedAllocation
6510 VkBool32 requiresDedicatedAllocation
6511}
6512
6513@extension("VK_KHR_dedicated_allocation") // 128
6514class VkMemoryDedicatedAllocateInfoKHR {
6515 VkStructureType sType
6516 const void* pNext
6517 VkImage image
6518 VkBuffer buffer
6519}
6520
Jesse Hall8c954d32018-01-17 22:06:20 -08006521@extension("VK_EXT_debug_utils") // 129
6522class VkDebugUtilsObjectNameInfoEXT {
6523 VkStructureType sType
6524 const void* pNext
6525 VkObjectType objectType
6526 u64 objectHandle
6527 const char* pObjectName
6528}
Jesse Hall72e6a132018-04-06 13:00:44 -07006529
Jesse Hall8c954d32018-01-17 22:06:20 -08006530@extension("VK_EXT_debug_utils") // 129
6531class VkDebugUtilsObjectTagInfoEXT {
6532 VkStructureType sType
6533 const void* pNext
6534 VkObjectType objectType
6535 u64 objectHandle
6536 u64 tagName
6537 platform.size_t tagSize
6538 const void* pTag
6539}
Jesse Hall72e6a132018-04-06 13:00:44 -07006540
Jesse Hall8c954d32018-01-17 22:06:20 -08006541@extension("VK_EXT_debug_utils") // 129
6542class VkDebugUtilsLabelEXT {
6543 VkStructureType sType
6544 const void* pNext
6545 const char* pLabelName
6546 f32[4] color
6547}
6548
6549@extension("VK_EXT_debug_utils") // 129
6550class VkDebugUtilsMessengerCallbackDataEXT {
6551 VkStructureType sType
6552 const void* pNext
6553 VkDebugUtilsMessengerCallbackDataFlagsEXT flags
6554 const char* pMessageIdName
6555 s32 messageIdNumber
6556 const char* pMessage
6557 u32 queueLabelCount
6558 VkDebugUtilsLabelEXT* pQueueLabels
6559 u32 cmdBufLabelCount
6560 VkDebugUtilsLabelEXT* pCmdBufLabels
6561 u32 objectCount
6562 VkDebugUtilsObjectNameInfoEXT* pObjects
6563}
6564
6565@extension("VK_EXT_debug_utils") // 129
6566class VkDebugUtilsMessengerCreateInfoEXT {
6567 VkStructureType sType
6568 const void* pNext
6569 VkDebugUtilsMessengerCreateFlagsEXT flags
6570 VkDebugUtilsMessageSeverityFlagsEXT messageSeverity
6571 VkDebugUtilsMessageTypeFlagsEXT messageType
6572 PFN_vkDebugUtilsMessengerCallbackEXT pfnUserCallback
6573 void* pUserData
6574}
6575
Jesse Hall36215a92018-01-18 15:04:37 -08006576@extension("VK_ANDROID_external_memory_android_hardware_buffer") // 131
6577class VkAndroidHardwareBufferUsageANDROID {
6578 VkStructureType sType
6579 void* pNext
6580 u64 androidHardwareBufferUsage
6581}
6582
6583@extension("VK_ANDROID_external_memory_android_hardware_buffer") // 130
6584class VkAndroidHardwareBufferPropertiesANDROID {
6585 VkStructureType sType
6586 void* pNext
6587 VkDeviceSize allocationSize
6588 u32 memoryTypeBits
6589}
6590
6591@extension("VK_ANDROID_external_memory_android_hardware_buffer") // 130
6592class VkAndroidHardwareBufferFormatPropertiesANDROID {
6593 VkStructureType sType
6594 void* pNext
6595 VkFormat format
6596 u64 externalFormat
6597 VkFormatFeatureFlags formatFeatures
6598 VkComponentMapping samplerYcbcrConversionComponents
6599 VkSamplerYcbcrModelConversion suggestedYcbcrModel
6600 VkSamplerYcbcrRange suggestedYcbcrRange
6601 VkChromaLocation suggestedXChromaOffset
6602 VkChromaLocation suggestedYChromaOffset
6603}
6604
6605@extension("VK_ANDROID_external_memory_android_hardware_buffer") // 130
6606class VkImportAndroidHardwareBufferInfoANDROID {
6607 VkStructureType sType
6608 const void* pNext
6609 platform.AHardwareBuffer* buffer
6610}
6611
6612@extension("VK_ANDROID_external_memory_android_hardware_buffer") // 130
6613class VkMemoryGetAndroidHardwareBufferInfoANDROID {
6614 VkStructureType sType
6615 const void* pNext
6616 VkDeviceMemory memory
6617}
6618
6619@extension("VK_ANDROID_external_memory_android_hardware_buffer") // 130
6620class VkExternalFormatANDROID {
6621 VkStructureType sType
6622 void* pNext
6623 u64 externalFormat
6624}
6625
Jesse Hall7ba0ac72017-07-07 17:13:23 -07006626@extension("VK_EXT_sampler_filter_minmax") // 131
6627class VkSamplerReductionModeCreateInfoEXT {
6628 VkStructureType sType
6629 const void* pNext
6630 VkSamplerReductionModeEXT reductionMode
6631}
6632
6633@extension("VK_EXT_sampler_filter_minmax") // 131
6634class VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT {
6635 VkStructureType sType
6636 void* pNext
6637 VkBool32 filterMinmaxSingleComponentFormats
6638 VkBool32 filterMinmaxImageComponentMapping
6639}
6640
Jesse Hall4af6c462018-09-10 09:04:25 -07006641@extension("VK_EXT_inline_uniform_block") // 139
6642class VkPhysicalDeviceInlineUniformBlockFeaturesEXT {
6643 VkStructureType sType
6644 void* pNext
6645 VkBool32 inlineUniformBlock
6646 VkBool32 descriptorBindingInlineUniformBlockUpdateAfterBind
6647}
6648
6649@extension("VK_EXT_inline_uniform_block") // 139
6650class VkPhysicalDeviceInlineUniformBlockPropertiesEXT {
6651 VkStructureType sType
6652 void* pNext
6653 u32 maxInlineUniformBlockSize
6654 u32 maxPerStageDescriptorInlineUniformBlocks
6655 u32 maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks
6656 u32 maxDescriptorSetInlineUniformBlocks
6657 u32 maxDescriptorSetUpdateAfterBindInlineUniformBlocks
6658}
6659
6660@extension("VK_EXT_inline_uniform_block") // 139
6661class VkWriteDescriptorSetInlineUniformBlockEXT {
6662 VkStructureType sType
6663 const void* pNext
6664 u32 dataSize
6665 const void* pData
6666}
6667
6668@extension("VK_EXT_inline_uniform_block") // 139
6669class VkDescriptorPoolInlineUniformBlockCreateInfoEXT {
6670 VkStructureType sType
6671 const void* pNext
6672 u32 maxInlineUniformBlockBindings
6673}
6674
Jesse Hall77726222017-09-19 14:49:27 -05006675@extension("VK_EXT_sample_locations") // 144
6676class VkSampleLocationEXT {
6677 f32 x
6678 f32 y
6679}
6680
6681@extension("VK_EXT_sample_locations") // 144
6682class VkSampleLocationsInfoEXT {
6683 VkStructureType sType
6684 const void* pNext
6685 VkSampleCountFlagBits sampleLocationsPerPixel
6686 VkExtent2D sampleLocationGridSize
6687 u32 sampleLocationsCount
6688 const VkSampleLocationEXT* pSampleLocations
6689}
6690
6691@extension("VK_EXT_sample_locations") // 144
6692class VkAttachmentSampleLocationsEXT {
6693 u32 attachmentIndex
6694 VkSampleLocationsInfoEXT sampleLocationsInfo
6695}
6696
6697@extension("VK_EXT_sample_locations") // 144
6698class VkSubpassSampleLocationsEXT {
6699 u32 subpassIndex
6700 VkSampleLocationsInfoEXT sampleLocationsInfo
6701}
6702
6703@extension("VK_EXT_sample_locations") // 144
6704class VkRenderPassSampleLocationsBeginInfoEXT {
6705 VkStructureType sType
6706 const void* pNext
6707 u32 attachmentInitialSampleLocationsCount
6708 const VkAttachmentSampleLocationsEXT* pAttachmentInitialSampleLocations
6709 u32 postSubpassSampleLocationsCount
Jesse Hall8c954d32018-01-17 22:06:20 -08006710 const VkSubpassSampleLocationsEXT* pPostSubpassSampleLocations
Jesse Hall77726222017-09-19 14:49:27 -05006711}
6712
6713@extension("VK_EXT_sample_locations") // 144
6714class VkPipelineSampleLocationsStateCreateInfoEXT {
6715 VkStructureType sType
6716 const void* pNext
6717 VkBool32 sampleLocationsEnable
6718 VkSampleLocationsInfoEXT sampleLocationsInfo
6719}
6720
6721@extension("VK_EXT_sample_locations") // 144
6722class VkPhysicalDeviceSampleLocationsPropertiesEXT {
6723 VkStructureType sType
6724 void* pNext
6725 VkSampleCountFlags sampleLocationSampleCounts
6726 VkExtent2D maxSampleLocationGridSize
6727 f32[2] sampleLocationCoordinateRange
6728 u32 sampleLocationSubPixelBits
6729 VkBool32 variableSampleLocations
6730}
6731
6732@extension("VK_EXT_sample_locations") // 144
6733class VkMultisamplePropertiesEXT {
6734 VkStructureType sType
6735 void* pNext
6736 VkExtent2D maxSampleLocationGridSize
6737}
6738
Jesse Hall9492f992017-08-28 12:10:06 -07006739@extension("VK_KHR_get_memory_requirements2") // 147
6740class VkBufferMemoryRequirementsInfo2KHR {
6741 VkStructureType sType
6742 const void* pNext
6743 VkBuffer buffer
6744}
6745
6746@extension("VK_KHR_get_memory_requirements2") // 147
6747class VkImageMemoryRequirementsInfo2KHR {
6748 VkStructureType sType
6749 const void* pNext
6750 VkImage image
6751}
6752
6753@extension("VK_KHR_get_memory_requirements2") // 147
6754class VkImageSparseMemoryRequirementsInfo2KHR {
6755 VkStructureType sType
6756 const void* pNext
6757 VkImage image
6758}
6759
6760@extension("VK_KHR_get_memory_requirements2") // 147
6761class VkMemoryRequirements2KHR {
6762 VkStructureType sType
6763 void* pNext
6764 VkMemoryRequirements memoryRequirements
6765}
6766
6767@extension("VK_KHR_get_memory_requirements2") // 147
6768class VkSparseImageMemoryRequirements2KHR {
6769 VkStructureType sType
6770 void* pNext
6771 VkSparseImageMemoryRequirements memoryRequirements
6772}
6773
Jesse Hall076f95d2017-09-20 11:34:47 -07006774@extension("VK_KHR_image_format_list") // 148
6775class VkImageFormatListCreateInfoKHR {
6776 VkStructureType sType
6777 const void* pNext
6778 u32 viewFormatCount
6779 const VkFormat* pViewFormats
6780}
6781
Jesse Hall7ba0ac72017-07-07 17:13:23 -07006782@extension("VK_EXT_blend_operation_advanced") // 149
6783class VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT {
6784 VkStructureType sType
6785 void* pNext
6786 VkBool32 advancedBlendCoherentOperations
6787}
6788
6789@extension("VK_EXT_blend_operation_advanced") // 149
6790class VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT {
6791 VkStructureType sType
6792 void* pNext
6793 u32 advancedBlendMaxColorAttachments
6794 VkBool32 advancedBlendIndependentBlend
6795 VkBool32 advancedBlendNonPremultipliedSrcColor
6796 VkBool32 advancedBlendNonPremultipliedDstColor
6797 VkBool32 advancedBlendCorrelatedOverlap
6798 VkBool32 advancedBlendAllOperations
6799}
6800
6801@extension("VK_EXT_blend_operation_advanced") // 149
6802class VkPipelineColorBlendAdvancedStateCreateInfoEXT {
6803 VkStructureType sType
6804 const void* pNext
6805 VkBool32 srcPremultiplied
6806 VkBool32 dstPremultiplied
6807 VkBlendOverlapEXT blendOverlap
6808}
6809
6810@extension("VK_NV_fragment_coverage_to_color") // 150
6811class VkPipelineCoverageToColorStateCreateInfoNV {
6812 VkStructureType sType
6813 const void* pNext
6814 VkPipelineCoverageToColorStateCreateFlagsNV flags
6815 VkBool32 coverageToColorEnable
6816 u32 coverageToColorLocation
6817}
6818
6819@extension("VK_NV_framebuffer_mixed_samples") // 153
6820class VkPipelineCoverageModulationStateCreateInfoNV {
6821 VkStructureType sType
6822 const void* pNext
6823 VkPipelineCoverageModulationStateCreateFlagsNV flags
6824 VkCoverageModulationModeNV coverageModulationMode
6825 VkBool32 coverageModulationTableEnable
6826 u32 coverageModulationTableCount
6827 const f32* pCoverageModulationTable
6828}
6829
Jesse Hall076f95d2017-09-20 11:34:47 -07006830@extension("VK_KHR_sampler_ycbcr_conversion") // 157
6831class VkSamplerYcbcrConversionCreateInfoKHR {
6832 VkStructureType sType
6833 const void* pNext
6834 VkFormat format
6835 VkSamplerYcbcrModelConversionKHR ycbcrModel
6836 VkSamplerYcbcrRangeKHR ycbcrRange
6837 VkComponentMapping components
6838 VkChromaLocationKHR xChromaOffset
6839 VkChromaLocationKHR yChromaOffset
6840 VkFilter chromaFilter
6841 VkBool32 forceExplicitReconstruction
6842}
6843
6844@extension("VK_KHR_sampler_ycbcr_conversion") // 157
6845class VkSamplerYcbcrConversionInfoKHR {
6846 VkStructureType sType
6847 const void* pNext
6848 VkSamplerYcbcrConversionKHR conversion
6849}
6850
6851@extension("VK_KHR_sampler_ycbcr_conversion") // 157
6852class VkBindImagePlaneMemoryInfoKHR {
6853 VkStructureType sType
6854 const void* pNext
6855 VkImageAspectFlagBits planeAspect
6856}
6857
6858@extension("VK_KHR_sampler_ycbcr_conversion") // 157
6859class VkImagePlaneMemoryRequirementsInfoKHR {
6860 VkStructureType sType
6861 const void* pNext
6862 VkImageAspectFlagBits planeAspect
6863}
6864
6865@extension("VK_KHR_sampler_ycbcr_conversion") // 157
6866class VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR {
6867 VkStructureType sType
6868 void* pNext
6869 VkBool32 samplerYcbcrConversion
6870}
6871
6872@extension("VK_KHR_sampler_ycbcr_conversion") // 157
6873class VkSamplerYcbcrConversionImageFormatPropertiesKHR {
6874 VkStructureType sType
6875 void* pNext
6876 u32 combinedImageSamplerDescriptorCount
6877}
6878
6879@extension("VK_KHR_bind_memory2") // 158
6880class VkBindBufferMemoryInfoKHR {
6881 VkStructureType sType
6882 const void* pNext
6883 VkBuffer buffer
6884 VkDeviceMemory memory
6885 VkDeviceSize memoryOffset
6886}
6887
6888@extension("VK_KHR_bind_memory2") // 158
6889class VkBindImageMemoryInfoKHR {
6890 VkStructureType sType
6891 const void* pNext
6892 VkImage image
6893 VkDeviceMemory memory
6894 VkDeviceSize memoryOffset
6895}
6896
Jesse Hall77726222017-09-19 14:49:27 -05006897@extension("VK_EXT_validation_cache") // 161
6898class VkValidationCacheCreateInfoEXT {
6899 VkStructureType sType
6900 const void* pNext
6901 VkValidationCacheCreateFlagsEXT flags
6902 platform.size_t initialDataSize
6903 const void* pInitialData
6904}
6905
6906@extension("VK_EXT_validation_cache") // 161
6907class VkShaderModuleValidationCacheCreateInfoEXT {
6908 VkStructureType sType
6909 const void* pNext
6910 VkValidationCacheEXT validationCache
6911}
6912
Jesse Hall72e6a132018-04-06 13:00:44 -07006913@extension("VK_EXT_descriptor_indexing") // 162
6914class VkDescriptorSetLayoutBindingFlagsCreateInfoEXT {
6915 VkStructureType sType
6916 const void* pNext
6917 u32 bindingCount
6918 const VkDescriptorBindingFlagsEXT* pBindingFlags
6919}
6920
6921@extension("VK_EXT_descriptor_indexing") // 162
6922class VkPhysicalDeviceDescriptorIndexingFeaturesEXT {
6923 VkStructureType sType
6924 void* pNext
6925 VkBool32 shaderInputAttachmentArrayDynamicIndexing
6926 VkBool32 shaderUniformTexelBufferArrayDynamicIndexing
6927 VkBool32 shaderStorageTexelBufferArrayDynamicIndexing
6928 VkBool32 shaderUniformBufferArrayNonUniformIndexing
6929 VkBool32 shaderSampledImageArrayNonUniformIndexing
6930 VkBool32 shaderStorageBufferArrayNonUniformIndexing
6931 VkBool32 shaderStorageImageArrayNonUniformIndexing
6932 VkBool32 shaderInputAttachmentArrayNonUniformIndexing
6933 VkBool32 shaderUniformTexelBufferArrayNonUniformIndexing
6934 VkBool32 shaderStorageTexelBufferArrayNonUniformIndexing
6935 VkBool32 descriptorBindingUniformBufferUpdateAfterBind
6936 VkBool32 descriptorBindingSampledImageUpdateAfterBind
6937 VkBool32 descriptorBindingStorageImageUpdateAfterBind
6938 VkBool32 descriptorBindingStorageBufferUpdateAfterBind
6939 VkBool32 descriptorBindingUniformTexelBufferUpdateAfterBind
6940 VkBool32 descriptorBindingStorageTexelBufferUpdateAfterBind
6941 VkBool32 descriptorBindingUpdateUnusedWhilePending
6942 VkBool32 descriptorBindingPartiallyBound
6943 VkBool32 descriptorBindingVariableDescriptorCount
6944 VkBool32 runtimeDescriptorArray
6945}
6946
6947@extension("VK_EXT_descriptor_indexing") // 162
6948class VkPhysicalDeviceDescriptorIndexingPropertiesEXT {
6949 VkStructureType sType
6950 void* pNext
6951 u32 maxUpdateAfterBindDescriptorsInAllPools
6952 VkBool32 shaderUniformBufferArrayNonUniformIndexingNative
6953 VkBool32 shaderSampledImageArrayNonUniformIndexingNative
6954 VkBool32 shaderStorageBufferArrayNonUniformIndexingNative
6955 VkBool32 shaderStorageImageArrayNonUniformIndexingNative
6956 VkBool32 shaderInputAttachmentArrayNonUniformIndexingNative
6957 VkBool32 robustBufferAccessUpdateAfterBind
6958 VkBool32 quadDivergentImplicitLod
6959 u32 maxPerStageDescriptorUpdateAfterBindSamplers
6960 u32 maxPerStageDescriptorUpdateAfterBindUniformBuffers
6961 u32 maxPerStageDescriptorUpdateAfterBindStorageBuffers
6962 u32 maxPerStageDescriptorUpdateAfterBindSampledImages
6963 u32 maxPerStageDescriptorUpdateAfterBindStorageImages
6964 u32 maxPerStageDescriptorUpdateAfterBindInputAttachments
6965 u32 maxPerStageUpdateAfterBindResources
6966 u32 maxDescriptorSetUpdateAfterBindSamplers
6967 u32 maxDescriptorSetUpdateAfterBindUniformBuffers
6968 u32 maxDescriptorSetUpdateAfterBindUniformBuffersDynamic
6969 u32 maxDescriptorSetUpdateAfterBindStorageBuffers
6970 u32 maxDescriptorSetUpdateAfterBindStorageBuffersDynamic
6971 u32 maxDescriptorSetUpdateAfterBindSampledImages
6972 u32 maxDescriptorSetUpdateAfterBindStorageImages
6973 u32 maxDescriptorSetUpdateAfterBindInputAttachments
6974}
6975
6976@extension("VK_EXT_descriptor_indexing") // 162
6977class VkDescriptorSetVariableDescriptorCountAllocateInfoEXT {
6978 VkStructureType sType
6979 const void* pNext
6980 u32 descriptorSetCount
6981 const u32* pDescriptorCounts
6982}
6983
6984@extension("VK_EXT_descriptor_indexing") // 162
6985class VkDescriptorSetVariableDescriptorCountLayoutSupportEXT {
6986 VkStructureType sType
6987 void* pNext
6988 u32 maxVariableDescriptorCount
6989}
6990
Jesse Hallb5297192018-09-22 20:52:13 +02006991@extension("VK_NV_shading_rate_image") // 165
6992class VkShadingRatePaletteNV {
6993 u32 shadingRatePaletteEntryCount
6994 const VkShadingRatePaletteEntryNV* pShadingRatePaletteEntries
6995}
6996
6997@extension("VK_NV_shading_rate_image") // 165
6998class VkPipelineViewportShadingRateImageStateCreateInfoNV {
6999 VkStructureType sType
7000 const void* pNext
7001 VkBool32 shadingRateImageEnable
7002 u32 viewportCount
7003 const VkShadingRatePaletteNV* pShadingRatePalettes
7004}
7005
7006@extension("VK_NV_shading_rate_image") // 165
7007class VkPhysicalDeviceShadingRateImageFeaturesNV {
7008 VkStructureType sType
7009 void* pNext
7010 VkBool32 shadingRateImage
7011 VkBool32 shadingRateCoarseSampleOrder
7012}
7013
7014@extension("VK_NV_shading_rate_image") // 165
7015class VkPhysicalDeviceShadingRateImagePropertiesNV {
7016 VkStructureType sType
7017 void* pNext
7018 VkExtent2D shadingRateTexelSize
7019 u32 shadingRatePaletteSize
7020 u32 shadingRateMaxCoarseSamples
7021}
7022
7023@extension("VK_NV_shading_rate_image") // 165
7024class VkCoarseSampleLocationNV {
7025 u32 pixelX
7026 u32 pixelY
7027 u32 sample
7028}
7029
7030@extension("VK_NV_shading_rate_image") // 165
7031class VkCoarseSampleOrderCustomNV {
7032 VkShadingRatePaletteEntryNV shadingRate
7033 u32 sampleCount
7034 u32 sampleLocationCount
7035 const VkCoarseSampleLocationNV* pSampleLocations
7036}
7037
7038@extension("VK_NV_shading_rate_image") // 165
7039class VkPipelineViewportCoarseSampleOrderStateCreateInfoNV {
7040 VkStructureType sType
7041 const void* pNext
7042 VkCoarseSampleOrderTypeNV sampleOrderType
7043 u32 customSampleOrderCount
7044 const VkCoarseSampleOrderCustomNV* pCustomSampleOrders
7045}
7046
7047@extension("VK_NVX_raytracing") // 166
7048class VkRaytracingPipelineCreateInfoNVX {
7049 VkStructureType sType
7050 const void* pNext
7051 VkPipelineCreateFlags flags
7052 u32 stageCount
7053 const VkPipelineShaderStageCreateInfo* pStages
7054 const u32* pGroupNumbers
7055 u32 maxRecursionDepth
7056 VkPipelineLayout layout
7057 VkPipeline basePipelineHandle
7058 s32 basePipelineIndex
7059}
7060
7061@extension("VK_NVX_raytracing") // 166
7062class VkGeometryTrianglesNVX {
7063 VkStructureType sType
7064 const void* pNext
7065 VkBuffer vertexData
7066 VkDeviceSize vertexOffset
7067 u32 vertexCount
7068 VkDeviceSize vertexStride
7069 VkFormat vertexFormat
7070 VkBuffer indexData
7071 VkDeviceSize indexOffset
7072 u32 indexCount
7073 VkIndexType indexType
7074 VkBuffer transformData
7075 VkDeviceSize transformOffset
7076}
7077
7078@extension("VK_NVX_raytracing") // 166
7079class VkGeometryAABBNVX {
7080 VkStructureType sType
7081 const void* pNext
7082 VkBuffer aabbData
7083 u32 numAABBs
7084 u32 stride
7085 VkDeviceSize offset
7086}
7087
7088@extension("VK_NVX_raytracing") // 166
7089class VkGeometryDataNVX {
7090 VkGeometryTrianglesNVX triangles
7091 VkGeometryAABBNVX aabbs
7092}
7093
7094@extension("VK_NVX_raytracing") // 166
7095class VkGeometryNVX {
7096 VkStructureType sType
7097 const void* pNext
7098 VkGeometryTypeNVX geometryType
7099 VkGeometryDataNVX geometry
7100 VkGeometryFlagsNVX flags
7101}
7102
7103@extension("VK_NVX_raytracing") // 166
7104class VkAccelerationStructureCreateInfoNVX {
7105 VkStructureType sType
7106 const void* pNext
7107 VkAccelerationStructureTypeNVX type
7108 VkBuildAccelerationStructureFlagsNVX flags
7109 VkDeviceSize compactedSize
7110 u32 instanceCount
7111 u32 geometryCount
7112 const VkGeometryNVX* pGeometries
7113}
7114
7115@extension("VK_NVX_raytracing") // 166
7116class VkBindAccelerationStructureMemoryInfoNVX {
7117 VkStructureType sType
7118 const void* pNext
7119 VkAccelerationStructureNVX accelerationStructure
7120 VkDeviceMemory memory
7121 VkDeviceSize memoryOffset
7122 u32 deviceIndexCount
7123 const u32* pDeviceIndices
7124}
7125
7126@extension("VK_NVX_raytracing") // 166
7127class VkDescriptorAccelerationStructureInfoNVX {
7128 VkStructureType sType
7129 const void* pNext
7130 u32 accelerationStructureCount
7131 const VkAccelerationStructureNVX* pAccelerationStructures
7132}
7133
7134@extension("VK_NVX_raytracing") // 166
7135class VkAccelerationStructureMemoryRequirementsInfoNVX {
7136 VkStructureType sType
7137 const void* pNext
7138 VkAccelerationStructureNVX accelerationStructure
7139}
7140
7141@extension("VK_NVX_raytracing") // 166
7142class VkPhysicalDeviceRaytracingPropertiesNVX {
7143 VkStructureType sType
7144 void* pNext
7145 u32 shaderHeaderSize
7146 u32 maxRecursionDepth
7147 u32 maxGeometryCount
7148}
7149
7150@extension("VK_NV_representative_fragment_test") // 167
7151class VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV {
7152 VkStructureType sType
7153 void* pNext
7154 VkBool32 representativeFragmentTest
7155}
7156
7157@extension("VK_NV_representative_fragment_test") // 167
7158class VkPipelineRepresentativeFragmentTestStateCreateInfoNV {
7159 VkStructureType sType
7160 const void* pNext
7161 VkBool32 representativeFragmentTestEnable
7162}
7163
Daniel Koch09f7bf92017-10-05 00:26:58 -04007164@extension("VK_KHR_maintenance3") // 169
7165class VkPhysicalDeviceMaintenance3PropertiesKHR {
7166 VkStructureType sType
7167 void* pNext
7168 u32 maxPerSetDescriptors
7169 VkDeviceSize maxMemoryAllocationSize
7170}
7171
7172@extension("VK_KHR_maintenance3") // 169
7173class VkDescriptorSetLayoutSupportKHR {
7174 VkStructureType sType
7175 void* pNext
7176 VkBool32 supported
7177}
7178
Jesse Hall8c954d32018-01-17 22:06:20 -08007179@extension("VK_EXT_global_priority") // 175
7180class VkDeviceQueueGlobalPriorityCreateInfoEXT {
7181 VkStructureType sType
7182 const void* pNext
7183 VkQueueGlobalPriorityEXT globalPriority
7184}
7185
Jesse Halla13a3cf2018-07-09 15:51:52 -07007186@extension("VK_KHR_8bit_storage") // 178
7187class VkPhysicalDevice8BitStorageFeaturesKHR {
7188 VkStructureType sType
7189 void* pNext
7190 VkBool32 storageBuffer8BitAccess
7191 VkBool32 uniformAndStorageBuffer8BitAccess
7192 VkBool32 storagePushConstant8
7193}
7194
Jesse Hall8c954d32018-01-17 22:06:20 -08007195@extension("VK_EXT_external_memory_host") // 179
7196class VkImportMemoryHostPointerInfoEXT {
7197 VkStructureType sType
7198 const void* pNext
7199 VkExternalMemoryHandleTypeFlagBits handleType
7200 void* pHostPointer
7201}
7202
7203@extension("VK_EXT_external_memory_host") // 179
7204class VkMemoryHostPointerPropertiesEXT {
7205 VkStructureType sType
7206 void* pNext
7207 u32 memoryTypeBits
7208}
7209
7210@extension("VK_EXT_external_memory_host") // 179
7211class VkPhysicalDeviceExternalMemoryHostPropertiesEXT {
7212 VkStructureType sType
7213 void* pNext
7214 VkDeviceSize minImportedHostPointerAlignment
7215}
7216
Jesse Hall72e6a132018-04-06 13:00:44 -07007217@extension("VK_AMD_shader_core_properties") // 186
7218class VkPhysicalDeviceShaderCorePropertiesAMD {
7219 VkStructureType sType
7220 void* pNext
7221 u32 shaderEngineCount
7222 u32 shaderArraysPerEngineCount
7223 u32 computeUnitsPerShaderArray
7224 u32 simdPerComputeUnit
7225 u32 wavefrontsPerSimd
7226 u32 wavefrontSize
7227 u32 sgprsPerSimd
7228 u32 minSgprAllocation
7229 u32 maxSgprAllocation
7230 u32 sgprAllocationGranularity
7231 u32 vgprsPerSimd
7232 u32 minVgprAllocation
7233 u32 maxVgprAllocation
7234 u32 vgprAllocationGranularity
7235}
7236
7237@extension("VK_EXT_vertex_attribute_divisor") // 191
7238class VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT {
7239 VkStructureType sType
7240 void* pNext
7241 u32 maxVertexAttribDivisor
7242}
7243
7244@extension("VK_EXT_vertex_attribute_divisor") // 191
7245class VkVertexInputBindingDivisorDescriptionEXT {
7246 u32 binding
7247 u32 divisor
7248}
7249
7250@extension("VK_EXT_vertex_attribute_divisor") // 191
7251class VkPipelineVertexInputDivisorStateCreateInfoEXT {
7252 VkStructureType sType
7253 const void* pNext
7254 u32 vertexBindingDivisorCount
7255 const VkVertexInputBindingDivisorDescriptionEXT* pVertexBindingDivisors
7256}
7257
Jesse Hall4af6c462018-09-10 09:04:25 -07007258@extension("VK_EXT_vertex_attribute_divisor") // 191
7259class VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT {
7260 VkStructureType sType
7261 void* pNext
7262 VkBool32 vertexAttributeInstanceRateDivisor
7263 VkBool32 vertexAttributeInstanceRateZeroDivisor
7264}
7265
Jesse Hallb5297192018-09-22 20:52:13 +02007266@extension("VK_NV_compute_shader_derivatives") // 202
7267class VkPhysicalDeviceComputeShaderDerivativesFeaturesNV {
7268 VkStructureType sType
7269 void* pNext
7270 VkBool32 computeDerivativeGroupQuads
7271 VkBool32 computeDerivativeGroupLinear
7272}
7273
7274@extension("VK_NV_mesh_shader") // 203
7275class VkPhysicalDeviceMeshShaderFeaturesNV {
7276 VkStructureType sType
7277 void* pNext
7278 VkBool32 taskShader
7279 VkBool32 meshShader
7280}
7281
7282@extension("VK_NV_mesh_shader") // 203
7283class VkPhysicalDeviceMeshShaderPropertiesNV {
7284 VkStructureType sType
7285 void* pNext
7286 u32 maxDrawMeshTasksCount
7287 u32 maxTaskWorkGroupInvocations
7288 u32[3] maxTaskWorkGroupSize
7289 u32 maxTaskTotalMemorySize
7290 u32 maxTaskOutputCount
7291 u32 maxMeshWorkGroupInvocations
7292 u32[3] maxMeshWorkGroupSize
7293 u32 maxMeshTotalMemorySize
7294 u32 maxMeshOutputVertices
7295 u32 maxMeshOutputPrimitives
7296 u32 maxMeshMultiviewViewCount
7297 u32 meshOutputPerVertexGranularity
7298 u32 meshOutputPerPrimitiveGranularity
7299}
7300
7301@extension("VK_NV_mesh_shader") // 203
7302class VkDrawMeshTasksIndirectCommandNV {
7303 u32 taskCount
7304 u32 firstTask
7305}
7306
7307@extension("VK_NV_fragment_shader_barycentric") // 204
7308class VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV {
7309 VkStructureType sType
7310 void* pNext
7311 VkBool32 fragmentShaderBarycentric
7312}
7313
7314@extension("VK_NV_shader_image_footprint") // 205
7315class VkPhysicalDeviceShaderImageFootprintFeaturesNV {
7316 VkStructureType sType
7317 void* pNext
7318 VkBool32 imageFootprint
7319}
7320
7321@extension("VK_NV_scissor_exclusive") // 206
7322class VkPipelineViewportExclusiveScissorStateCreateInfoNV {
7323 VkStructureType sType
7324 const void* pNext
7325 u32 exclusiveScissorCount
7326 const VkRect2D* pExclusiveScissors
7327}
7328
7329@extension("VK_NV_scissor_exclusive") // 206
7330class VkPhysicalDeviceExclusiveScissorFeaturesNV {
7331 VkStructureType sType
7332 void* pNext
7333 VkBool32 exclusiveScissor
7334}
7335
Jesse Hall115df0c2018-07-30 12:00:59 -07007336@extension("VK_NV_device_diagnostic_checkpoints") // 207
7337class VkQueueFamilyCheckpointPropertiesNV {
7338 VkStructureType sType
7339 void* pNext
7340 VkPipelineStageFlags checkpointExecutionStageMask
7341}
7342
7343@extension("VK_NV_device_diagnostic_checkpoints") // 207
7344class VkCheckpointDataNV {
7345 VkStructureType sType
7346 void* pNext
7347 VkPipelineStageFlagBits stage
7348 void* pCheckpointMarker
7349}
7350
Jesse Hall4af6c462018-09-10 09:04:25 -07007351@extension("VK_KHR_vulkan_memory_model") // 212
7352class VkPhysicalDeviceVulkanMemoryModelFeaturesKHR {
7353 VkStructureType sType
7354 void* pNext
7355 VkBool32 vulkanMemoryModel
7356 VkBool32 vulkanMemoryModelDeviceScope
7357}
7358
Daniel Koch09f7bf92017-10-05 00:26:58 -04007359
Jesse Halld27f6aa2015-08-15 17:58:48 -07007360////////////////
7361// Commands //
7362////////////////
7363
7364// Function pointers. TODO: add support for function pointers.
7365
7366@external type void* PFN_vkVoidFunction
7367@pfn cmd void vkVoidFunction() {
7368}
7369
Jesse Hall3fbc8562015-11-29 22:10:52 -08007370@external type void* PFN_vkAllocationFunction
7371@pfn cmd void* vkAllocationFunction(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007372 void* pUserData,
7373 platform.size_t size,
7374 platform.size_t alignment,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007375 VkSystemAllocationScope allocationScope) {
Jesse Hall03b6fe12015-11-24 12:44:21 -08007376 return ?
7377}
7378
Jesse Hall3fbc8562015-11-29 22:10:52 -08007379@external type void* PFN_vkReallocationFunction
7380@pfn cmd void* vkReallocationFunction(
Jesse Hall03b6fe12015-11-24 12:44:21 -08007381 void* pUserData,
7382 void* pOriginal,
7383 platform.size_t size,
7384 platform.size_t alignment,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007385 VkSystemAllocationScope allocationScope) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007386 return ?
7387}
7388
7389@external type void* PFN_vkFreeFunction
7390@pfn cmd void vkFreeFunction(
7391 void* pUserData,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007392 void* pMemory) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007393}
7394
Jesse Hall3fbc8562015-11-29 22:10:52 -08007395@external type void* PFN_vkInternalAllocationNotification
7396@pfn cmd void vkInternalAllocationNotification(
Jesse Hall03b6fe12015-11-24 12:44:21 -08007397 void* pUserData,
7398 platform.size_t size,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007399 VkInternalAllocationType allocationType,
7400 VkSystemAllocationScope allocationScope) {
Jesse Hall03b6fe12015-11-24 12:44:21 -08007401}
7402
7403@external type void* PFN_vkInternalFreeNotification
7404@pfn cmd void vkInternalFreeNotification(
7405 void* pUserData,
7406 platform.size_t size,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007407 VkInternalAllocationType allocationType,
7408 VkSystemAllocationScope allocationScope) {
Jesse Hall03b6fe12015-11-24 12:44:21 -08007409}
Jesse Halld27f6aa2015-08-15 17:58:48 -07007410
7411// Global functions
7412
7413@threadSafety("system")
7414cmd VkResult vkCreateInstance(
7415 const VkInstanceCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007416 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007417 VkInstance* pInstance) {
7418 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO)
7419
7420 instance := ?
7421 pInstance[0] = instance
7422 State.Instances[instance] = new!InstanceObject()
7423
Jesse Hall3dd678a2016-01-08 21:52:01 -08007424 layers := pCreateInfo.ppEnabledLayerNames[0:pCreateInfo.enabledLayerCount]
7425 extensions := pCreateInfo.ppEnabledExtensionNames[0:pCreateInfo.enabledExtensionCount]
Jesse Halld27f6aa2015-08-15 17:58:48 -07007426
7427 return ?
7428}
7429
7430@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007431cmd void vkDestroyInstance(
Jesse Hall03b6fe12015-11-24 12:44:21 -08007432 VkInstance instance,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007433 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007434 instanceObject := GetInstance(instance)
7435
7436 State.Instances[instance] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07007437}
7438
7439@threadSafety("system")
7440cmd VkResult vkEnumeratePhysicalDevices(
7441 VkInstance instance,
7442 u32* pPhysicalDeviceCount,
7443 VkPhysicalDevice* pPhysicalDevices) {
7444 instanceObject := GetInstance(instance)
7445
7446 physicalDeviceCount := as!u32(?)
7447 pPhysicalDeviceCount[0] = physicalDeviceCount
7448 physicalDevices := pPhysicalDevices[0:physicalDeviceCount]
7449
7450 for i in (0 .. physicalDeviceCount) {
7451 physicalDevice := ?
7452 physicalDevices[i] = physicalDevice
7453 if !(physicalDevice in State.PhysicalDevices) {
7454 State.PhysicalDevices[physicalDevice] = new!PhysicalDeviceObject(instance: instance)
7455 }
7456 }
7457
7458 return ?
7459}
7460
7461cmd PFN_vkVoidFunction vkGetDeviceProcAddr(
7462 VkDevice device,
7463 const char* pName) {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007464 if device != NULL_HANDLE {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007465 device := GetDevice(device)
7466 }
7467
7468 return ?
7469}
7470
7471cmd PFN_vkVoidFunction vkGetInstanceProcAddr(
7472 VkInstance instance,
7473 const char* pName) {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007474 if instance != NULL_HANDLE {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007475 instanceObject := GetInstance(instance)
7476 }
7477
7478 return ?
7479}
7480
Jesse Hall606a54e2015-11-19 22:17:28 -08007481cmd void vkGetPhysicalDeviceProperties(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007482 VkPhysicalDevice physicalDevice,
7483 VkPhysicalDeviceProperties* pProperties) {
7484 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
7485
7486 properties := ?
7487 pProperties[0] = properties
Jesse Halld27f6aa2015-08-15 17:58:48 -07007488}
7489
Jesse Hall606a54e2015-11-19 22:17:28 -08007490cmd void vkGetPhysicalDeviceQueueFamilyProperties(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007491 VkPhysicalDevice physicalDevice,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007492 u32* pQueueFamilyPropertyCount,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007493 VkQueueFamilyProperties* pQueueFamilyProperties) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007494 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007495 // TODO: Figure out how to express fetch-count-or-properties
7496 // This version fails 'apic validate' with 'fence not allowed in
7497 // *semantic.Branch'. Other attempts have failed with the same or other
7498 // errors.
7499 // if pQueueFamilyProperties != null {
7500 // queuesProperties := pQueueFamilyProperties[0:pCount[0]]
7501 // for i in (0 .. pCount[0]) {
7502 // queueProperties := as!VkQueueFamilyProperties(?)
7503 // queuesProperties[i] = queueProperties
7504 // }
7505 // } else {
7506 // count := ?
7507 // pCount[0] = count
7508 // }
Jesse Halld27f6aa2015-08-15 17:58:48 -07007509}
7510
Jesse Hall606a54e2015-11-19 22:17:28 -08007511cmd void vkGetPhysicalDeviceMemoryProperties(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007512 VkPhysicalDevice physicalDevice,
7513 VkPhysicalDeviceMemoryProperties* pMemoryProperties) {
7514 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
7515
7516 memoryProperties := ?
7517 pMemoryProperties[0] = memoryProperties
Jesse Halld27f6aa2015-08-15 17:58:48 -07007518}
7519
Jesse Hall606a54e2015-11-19 22:17:28 -08007520cmd void vkGetPhysicalDeviceFeatures(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007521 VkPhysicalDevice physicalDevice,
7522 VkPhysicalDeviceFeatures* pFeatures) {
7523 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
7524
7525 features := ?
7526 pFeatures[0] = features
Jesse Halld27f6aa2015-08-15 17:58:48 -07007527}
7528
Jesse Hall606a54e2015-11-19 22:17:28 -08007529cmd void vkGetPhysicalDeviceFormatProperties(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007530 VkPhysicalDevice physicalDevice,
7531 VkFormat format,
7532 VkFormatProperties* pFormatProperties) {
7533 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
7534
7535 formatProperties := ?
7536 pFormatProperties[0] = formatProperties
Jesse Halld27f6aa2015-08-15 17:58:48 -07007537}
7538
Jesse Halla9e57032015-11-30 01:03:10 -08007539cmd VkResult vkGetPhysicalDeviceImageFormatProperties(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007540 VkPhysicalDevice physicalDevice,
7541 VkFormat format,
7542 VkImageType type,
7543 VkImageTiling tiling,
7544 VkImageUsageFlags usage,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007545 VkImageCreateFlags flags,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007546 VkImageFormatProperties* pImageFormatProperties) {
7547 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
7548
7549 imageFormatProperties := ?
7550 pImageFormatProperties[0] = imageFormatProperties
Jesse Halla9e57032015-11-30 01:03:10 -08007551
7552 return ?
Jesse Halld27f6aa2015-08-15 17:58:48 -07007553}
7554
Jesse Halld27f6aa2015-08-15 17:58:48 -07007555
7556// Device functions
7557
7558@threadSafety("system")
7559cmd VkResult vkCreateDevice(
7560 VkPhysicalDevice physicalDevice,
7561 const VkDeviceCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007562 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007563 VkDevice* pDevice) {
7564 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO)
7565 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
7566
7567 device := ?
7568 pDevice[0] = device
7569 State.Devices[device] = new!DeviceObject(physicalDevice: physicalDevice)
7570
7571 return ?
7572}
7573
7574@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007575cmd void vkDestroyDevice(
Jesse Hall03b6fe12015-11-24 12:44:21 -08007576 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007577 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007578 deviceObject := GetDevice(device)
7579
7580 State.Devices[device] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07007581}
7582
7583
7584// Extension discovery functions
7585
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007586cmd VkResult vkEnumerateInstanceLayerProperties(
Jesse Hall03b6fe12015-11-24 12:44:21 -08007587 u32* pPropertyCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007588 VkLayerProperties* pProperties) {
7589 count := as!u32(?)
Jesse Hall03b6fe12015-11-24 12:44:21 -08007590 pPropertyCount[0] = count
Jesse Halld27f6aa2015-08-15 17:58:48 -07007591
7592 properties := pProperties[0:count]
7593 for i in (0 .. count) {
7594 property := ?
7595 properties[i] = property
7596 }
7597
7598 return ?
7599}
7600
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007601cmd VkResult vkEnumerateInstanceExtensionProperties(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007602 const char* pLayerName,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007603 u32* pPropertyCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007604 VkExtensionProperties* pProperties) {
7605 count := as!u32(?)
Jesse Hall03b6fe12015-11-24 12:44:21 -08007606 pPropertyCount[0] = count
Jesse Halld27f6aa2015-08-15 17:58:48 -07007607
7608 properties := pProperties[0:count]
7609 for i in (0 .. count) {
7610 property := ?
7611 properties[i] = property
7612 }
7613
7614 return ?
7615}
7616
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007617cmd VkResult vkEnumerateDeviceLayerProperties(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007618 VkPhysicalDevice physicalDevice,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007619 u32* pPropertyCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007620 VkLayerProperties* pProperties) {
7621 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
7622 count := as!u32(?)
Jesse Hall03b6fe12015-11-24 12:44:21 -08007623 pPropertyCount[0] = count
Jesse Halld27f6aa2015-08-15 17:58:48 -07007624
7625 properties := pProperties[0:count]
7626 for i in (0 .. count) {
7627 property := ?
7628 properties[i] = property
7629 }
7630
7631 return ?
7632}
7633
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007634cmd VkResult vkEnumerateDeviceExtensionProperties(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007635 VkPhysicalDevice physicalDevice,
7636 const char* pLayerName,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007637 u32* pPropertyCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007638 VkExtensionProperties* pProperties) {
7639 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
7640
7641 count := as!u32(?)
Jesse Hall03b6fe12015-11-24 12:44:21 -08007642 pPropertyCount[0] = count
Jesse Halld27f6aa2015-08-15 17:58:48 -07007643
7644 properties := pProperties[0:count]
7645 for i in (0 .. count) {
7646 property := ?
7647 properties[i] = property
7648 }
7649
7650 return ?
7651}
7652
7653
7654// Queue functions
7655
7656@threadSafety("system")
Jesse Hall606a54e2015-11-19 22:17:28 -08007657cmd void vkGetDeviceQueue(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007658 VkDevice device,
7659 u32 queueFamilyIndex,
7660 u32 queueIndex,
7661 VkQueue* pQueue) {
7662 deviceObject := GetDevice(device)
7663
7664 queue := ?
7665 pQueue[0] = queue
7666
7667 if !(queue in State.Queues) {
7668 State.Queues[queue] = new!QueueObject(device: device)
7669 }
Jesse Halld27f6aa2015-08-15 17:58:48 -07007670}
7671
7672@threadSafety("app")
7673cmd VkResult vkQueueSubmit(
7674 VkQueue queue,
Jesse Halla366a512015-11-19 22:30:07 -08007675 u32 submitCount,
Jesse Hallb00daad2015-11-29 19:46:20 -08007676 const VkSubmitInfo* pSubmits,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007677 VkFence fence) {
7678 queueObject := GetQueue(queue)
7679
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007680 if fence != NULL_HANDLE {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007681 fenceObject := GetFence(fence)
7682 assert(fenceObject.device == queueObject.device)
7683 }
7684
Jesse Hall3fbc8562015-11-29 22:10:52 -08007685 // commandBuffers := pcommandBuffers[0:commandBufferCount]
7686 // for i in (0 .. commandBufferCount) {
7687 // commandBuffer := commandBuffers[i]
7688 // commandBufferObject := GetCommandBuffer(commandBuffer)
7689 // assert(commandBufferObject.device == queueObject.device)
Jesse Halla366a512015-11-19 22:30:07 -08007690 //
Jesse Hall3fbc8562015-11-29 22:10:52 -08007691 // validate("QueueCheck", commandBufferObject.queueFlags in queueObject.flags,
7692 // "vkQueueSubmit: enqueued commandBuffer requires missing queue capabilities.")
Jesse Halla366a512015-11-19 22:30:07 -08007693 // }
Jesse Halld27f6aa2015-08-15 17:58:48 -07007694
7695 return ?
7696}
7697
7698@threadSafety("system")
7699cmd VkResult vkQueueWaitIdle(
7700 VkQueue queue) {
7701 queueObject := GetQueue(queue)
7702
7703 return ?
7704}
7705
7706@threadSafety("system")
7707cmd VkResult vkDeviceWaitIdle(
7708 VkDevice device) {
7709 deviceObject := GetDevice(device)
7710
7711 return ?
7712}
7713
7714
7715// Memory functions
7716
7717@threadSafety("system")
Jesse Hall3fbc8562015-11-29 22:10:52 -08007718cmd VkResult vkAllocateMemory(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007719 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007720 const VkMemoryAllocateInfo* pAllocateInfo,
7721 const VkAllocationCallbacks* pAllocator,
7722 VkDeviceMemory* pMemory) {
Jesse Hallf4ab2b12015-11-30 16:04:55 -08007723 assert(pAllocateInfo.sType == VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007724 deviceObject := GetDevice(device)
7725
Jesse Hall3fbc8562015-11-29 22:10:52 -08007726 memory := ?
7727 pMemory[0] = memory
7728 State.DeviceMemories[memory] = new!DeviceMemoryObject(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007729 device: device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007730 allocationSize: pAllocateInfo[0].allocationSize)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007731
7732 return ?
7733}
7734
7735@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007736cmd void vkFreeMemory(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007737 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007738 VkDeviceMemory memory,
7739 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007740 deviceObject := GetDevice(device)
Jesse Hall3fbc8562015-11-29 22:10:52 -08007741 memoryObject := GetDeviceMemory(memory)
7742 assert(memoryObject.device == device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007743
7744 // Check that no objects are still bound before freeing.
Jesse Hall3fbc8562015-11-29 22:10:52 -08007745 validate("MemoryCheck", len(memoryObject.boundObjects) == 0,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007746 "vkFreeMemory: objects still bound")
Jesse Hall3fbc8562015-11-29 22:10:52 -08007747 validate("MemoryCheck", len(memoryObject.boundCommandBuffers) == 0,
7748 "vkFreeMemory: commandBuffers still bound")
7749 State.DeviceMemories[memory] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07007750}
7751
7752@threadSafety("app")
7753cmd VkResult vkMapMemory(
7754 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007755 VkDeviceMemory memory,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007756 VkDeviceSize offset,
7757 VkDeviceSize size,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007758 VkMemoryMapFlags flags,
7759 void** ppData) {
7760 deviceObject := GetDevice(device)
Jesse Hall3fbc8562015-11-29 22:10:52 -08007761 memoryObject := GetDeviceMemory(memory)
7762 assert(memoryObject.device == device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007763
7764 assert(flags == as!VkMemoryMapFlags(0))
Jesse Hall3fbc8562015-11-29 22:10:52 -08007765 assert((offset + size) <= memoryObject.allocationSize)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007766
7767 return ?
7768}
7769
7770@threadSafety("app")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007771cmd void vkUnmapMemory(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007772 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007773 VkDeviceMemory memory) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007774 deviceObject := GetDevice(device)
Jesse Hall3fbc8562015-11-29 22:10:52 -08007775 memoryObject := GetDeviceMemory(memory)
7776 assert(memoryObject.device == device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007777}
7778
7779cmd VkResult vkFlushMappedMemoryRanges(
7780 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007781 u32 memoryRangeCount
7782 const VkMappedMemoryRange* pMemoryRanges) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007783 deviceObject := GetDevice(device)
7784
Jesse Hall3fbc8562015-11-29 22:10:52 -08007785 memoryRanges := pMemoryRanges[0:memoryRangeCount]
7786 for i in (0 .. memoryRangeCount) {
7787 memoryRange := memoryRanges[i]
7788 memoryObject := GetDeviceMemory(memoryRange.memory)
7789 assert(memoryObject.device == device)
7790 assert((memoryRange.offset + memoryRange.size) <= memoryObject.allocationSize)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007791 }
7792
7793 return ?
7794}
7795
7796cmd VkResult vkInvalidateMappedMemoryRanges(
7797 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007798 u32 memoryRangeCount,
7799 const VkMappedMemoryRange* pMemoryRanges) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007800 deviceObject := GetDevice(device)
7801
Jesse Hall3fbc8562015-11-29 22:10:52 -08007802 memoryRanges := pMemoryRanges[0:memoryRangeCount]
7803 for i in (0 .. memoryRangeCount) {
7804 memoryRange := memoryRanges[i]
7805 memoryObject := GetDeviceMemory(memoryRange.memory)
7806 assert(memoryObject.device == device)
7807 assert((memoryRange.offset + memoryRange.size) <= memoryObject.allocationSize)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007808 }
7809
7810 return ?
7811}
7812
7813
7814// Memory management API functions
7815
Jesse Hall606a54e2015-11-19 22:17:28 -08007816cmd void vkGetDeviceMemoryCommitment(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007817 VkDevice device,
7818 VkDeviceMemory memory,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007819 VkDeviceSize* pCommittedMemoryInBytes) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007820 deviceObject := GetDevice(device)
7821
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007822 if memory != NULL_HANDLE {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007823 memoryObject := GetDeviceMemory(memory)
7824 assert(memoryObject.device == device)
7825 }
7826
7827 committedMemoryInBytes := ?
7828 pCommittedMemoryInBytes[0] = committedMemoryInBytes
Jesse Halld27f6aa2015-08-15 17:58:48 -07007829}
7830
Jesse Hall606a54e2015-11-19 22:17:28 -08007831cmd void vkGetBufferMemoryRequirements(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007832 VkDevice device,
7833 VkBuffer buffer,
7834 VkMemoryRequirements* pMemoryRequirements) {
7835 deviceObject := GetDevice(device)
7836 bufferObject := GetBuffer(buffer)
7837 assert(bufferObject.device == device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007838}
7839
7840cmd VkResult vkBindBufferMemory(
7841 VkDevice device,
7842 VkBuffer buffer,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007843 VkDeviceMemory memory,
7844 VkDeviceSize memoryOffset) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007845 deviceObject := GetDevice(device)
7846 bufferObject := GetBuffer(buffer)
7847 assert(bufferObject.device == device)
7848
7849 // Unbind buffer from previous memory object, if not VK_NULL_HANDLE.
Jesse Hall3fbc8562015-11-29 22:10:52 -08007850 if bufferObject.memory != NULL_HANDLE {
7851 memoryObject := GetDeviceMemory(bufferObject.memory)
7852 memoryObject.boundObjects[as!u64(buffer)] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07007853 }
7854
7855 // Bind buffer to given memory object, if not VK_NULL_HANDLE.
Jesse Hall3fbc8562015-11-29 22:10:52 -08007856 if memory != NULL_HANDLE {
7857 memoryObject := GetDeviceMemory(memory)
7858 assert(memoryObject.device == device)
7859 memoryObject.boundObjects[as!u64(buffer)] = memoryOffset
Jesse Halld27f6aa2015-08-15 17:58:48 -07007860 }
Jesse Hall3fbc8562015-11-29 22:10:52 -08007861 bufferObject.memory = memory
7862 bufferObject.memoryOffset = memoryOffset
Jesse Halld27f6aa2015-08-15 17:58:48 -07007863
7864 return ?
7865}
7866
Jesse Hall606a54e2015-11-19 22:17:28 -08007867cmd void vkGetImageMemoryRequirements(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007868 VkDevice device,
7869 VkImage image,
7870 VkMemoryRequirements* pMemoryRequirements) {
7871 deviceObject := GetDevice(device)
7872 imageObject := GetImage(image)
7873 assert(imageObject.device == device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007874}
7875
7876cmd VkResult vkBindImageMemory(
7877 VkDevice device,
7878 VkImage image,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007879 VkDeviceMemory memory,
7880 VkDeviceSize memoryOffset) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007881 deviceObject := GetDevice(device)
7882 imageObject := GetImage(image)
7883 assert(imageObject.device == device)
7884
7885 // Unbind image from previous memory object, if not VK_NULL_HANDLE.
Jesse Hall3fbc8562015-11-29 22:10:52 -08007886 if imageObject.memory != NULL_HANDLE {
7887 memoryObject := GetDeviceMemory(imageObject.memory)
7888 memoryObject.boundObjects[as!u64(image)] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07007889 }
7890
7891 // Bind image to given memory object, if not VK_NULL_HANDLE.
Jesse Hall3fbc8562015-11-29 22:10:52 -08007892 if memory != NULL_HANDLE {
7893 memoryObject := GetDeviceMemory(memory)
7894 assert(memoryObject.device == device)
7895 memoryObject.boundObjects[as!u64(image)] = memoryOffset
Jesse Halld27f6aa2015-08-15 17:58:48 -07007896 }
Jesse Hall3fbc8562015-11-29 22:10:52 -08007897 imageObject.memory = memory
7898 imageObject.memoryOffset = memoryOffset
Jesse Halld27f6aa2015-08-15 17:58:48 -07007899
7900 return ?
7901}
7902
Jesse Hall606a54e2015-11-19 22:17:28 -08007903cmd void vkGetImageSparseMemoryRequirements(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007904 VkDevice device,
7905 VkImage image,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007906 u32* pSparseMemoryRequirementCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007907 VkSparseImageMemoryRequirements* pSparseMemoryRequirements) {
7908 deviceObject := GetDevice(device)
7909 imageObject := GetImage(image)
7910 assert(imageObject.device == device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007911}
7912
Jesse Hall606a54e2015-11-19 22:17:28 -08007913cmd void vkGetPhysicalDeviceSparseImageFormatProperties(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007914 VkPhysicalDevice physicalDevice,
7915 VkFormat format,
7916 VkImageType type,
Jesse Hall091ed9e2015-11-30 00:55:29 -08007917 VkSampleCountFlagBits samples,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007918 VkImageUsageFlags usage,
7919 VkImageTiling tiling,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007920 u32* pPropertyCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007921 VkSparseImageFormatProperties* pProperties) {
7922 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007923}
7924
Jesse Halla6429252015-11-29 18:59:42 -08007925cmd VkResult vkQueueBindSparse(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007926 VkQueue queue,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007927 u32 bindInfoCount,
Jesse Halla6429252015-11-29 18:59:42 -08007928 const VkBindSparseInfo* pBindInfo,
7929 VkFence fence) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007930 queueObject := GetQueue(queue)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007931
7932 return ?
7933}
7934
7935
7936// Fence functions
7937
7938@threadSafety("system")
7939cmd VkResult vkCreateFence(
7940 VkDevice device,
7941 const VkFenceCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007942 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007943 VkFence* pFence) {
7944 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_FENCE_CREATE_INFO)
7945 deviceObject := GetDevice(device)
7946
7947 fence := ?
7948 pFence[0] = fence
7949 State.Fences[fence] = new!FenceObject(
Jesse Halld8bade02015-11-24 10:24:18 -08007950 device: device, signaled: (pCreateInfo.flags == as!VkFenceCreateFlags(VK_FENCE_CREATE_SIGNALED_BIT)))
Jesse Halld27f6aa2015-08-15 17:58:48 -07007951
7952 return ?
7953}
7954
7955@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007956cmd void vkDestroyFence(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007957 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007958 VkFence fence,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007959 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007960 deviceObject := GetDevice(device)
7961 fenceObject := GetFence(fence)
7962 assert(fenceObject.device == device)
7963
7964 State.Fences[fence] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07007965}
7966
7967@threadSafety("system")
7968cmd VkResult vkResetFences(
7969 VkDevice device,
7970 u32 fenceCount,
7971 const VkFence* pFences) {
7972 deviceObject := GetDevice(device)
7973
7974 fences := pFences[0:fenceCount]
7975 for i in (0 .. fenceCount) {
7976 fence := fences[i]
7977 fenceObject := GetFence(fence)
7978 assert(fenceObject.device == device)
7979 fenceObject.signaled = false
7980 }
7981
7982 return ?
7983}
7984
7985@threadSafety("system")
7986cmd VkResult vkGetFenceStatus(
7987 VkDevice device,
7988 VkFence fence) {
7989 deviceObject := GetDevice(device)
7990 fenceObject := GetFence(fence)
7991 assert(fenceObject.device == device)
7992
7993 return ?
7994}
7995
7996@threadSafety("system")
7997cmd VkResult vkWaitForFences(
7998 VkDevice device,
7999 u32 fenceCount,
8000 const VkFence* pFences,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008001 VkBool32 waitAll,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008002 u64 timeout) { /// timeout in nanoseconds
8003 deviceObject := GetDevice(device)
8004
8005 fences := pFences[0:fenceCount]
8006 for i in (0 .. fenceCount) {
8007 fence := fences[i]
8008 fenceObject := GetFence(fence)
8009 assert(fenceObject.device == device)
8010 }
8011
8012 return ?
8013}
8014
8015
8016// Queue semaphore functions
8017
8018@threadSafety("system")
8019cmd VkResult vkCreateSemaphore(
8020 VkDevice device,
8021 const VkSemaphoreCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008022 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008023 VkSemaphore* pSemaphore) {
8024 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO)
8025 deviceObject := GetDevice(device)
8026
8027 semaphore := ?
8028 pSemaphore[0] = semaphore
8029 State.Semaphores[semaphore] = new!SemaphoreObject(device: device)
8030
8031 return ?
8032}
8033
8034@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008035cmd void vkDestroySemaphore(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008036 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008037 VkSemaphore semaphore,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008038 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008039 deviceObject := GetDevice(device)
8040 semaphoreObject := GetSemaphore(semaphore)
8041 assert(semaphoreObject.device == device)
8042
8043 State.Semaphores[semaphore] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008044}
8045
Jesse Halld27f6aa2015-08-15 17:58:48 -07008046
8047// Event functions
8048
8049@threadSafety("system")
8050cmd VkResult vkCreateEvent(
8051 VkDevice device,
8052 const VkEventCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008053 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008054 VkEvent* pEvent) {
8055 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_EVENT_CREATE_INFO)
8056 deviceObject := GetDevice(device)
8057
8058 event := ?
8059 pEvent[0] = event
8060 State.Events[event] = new!EventObject(device: device)
8061
8062 return ?
8063}
8064
8065@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008066cmd void vkDestroyEvent(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008067 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008068 VkEvent event,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008069 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008070 deviceObject := GetDevice(device)
8071 eventObject := GetEvent(event)
8072 assert(eventObject.device == device)
8073
8074 State.Events[event] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008075}
8076
8077@threadSafety("system")
8078cmd VkResult vkGetEventStatus(
8079 VkDevice device,
8080 VkEvent event) {
8081 deviceObject := GetDevice(device)
8082 eventObject := GetEvent(event)
8083 assert(eventObject.device == device)
8084
8085 return ?
8086}
8087
8088@threadSafety("system")
8089cmd VkResult vkSetEvent(
8090 VkDevice device,
8091 VkEvent event) {
8092 deviceObject := GetDevice(device)
8093 eventObject := GetEvent(event)
8094 assert(eventObject.device == device)
8095
8096 return ?
8097}
8098
8099@threadSafety("system")
8100cmd VkResult vkResetEvent(
8101 VkDevice device,
8102 VkEvent event) {
8103 deviceObject := GetDevice(device)
8104 eventObject := GetEvent(event)
8105 assert(eventObject.device == device)
8106
8107 return ?
8108}
8109
8110
8111// Query functions
8112
8113@threadSafety("system")
8114cmd VkResult vkCreateQueryPool(
8115 VkDevice device,
8116 const VkQueryPoolCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008117 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008118 VkQueryPool* pQueryPool) {
8119 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO)
8120 deviceObject := GetDevice(device)
8121
8122 queryPool := ?
8123 pQueryPool[0] = queryPool
8124 State.QueryPools[queryPool] = new!QueryPoolObject(device: device)
8125
8126 return ?
8127}
8128
8129@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008130cmd void vkDestroyQueryPool(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008131 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008132 VkQueryPool queryPool,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008133 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008134 deviceObject := GetDevice(device)
8135 queryPoolObject := GetQueryPool(queryPool)
8136 assert(queryPoolObject.device == device)
8137
8138 State.QueryPools[queryPool] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008139}
8140
8141@threadSafety("system")
8142cmd VkResult vkGetQueryPoolResults(
8143 VkDevice device,
8144 VkQueryPool queryPool,
Jesse Hallf9fa9a52016-01-08 16:08:51 -08008145 u32 firstQuery,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008146 u32 queryCount,
Jesse Halla9bb62b2015-11-21 19:31:56 -08008147 platform.size_t dataSize,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008148 void* pData,
Jesse Halla9bb62b2015-11-21 19:31:56 -08008149 VkDeviceSize stride,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008150 VkQueryResultFlags flags) {
8151 deviceObject := GetDevice(device)
8152 queryPoolObject := GetQueryPool(queryPool)
8153 assert(queryPoolObject.device == device)
8154
Jesse Halld27f6aa2015-08-15 17:58:48 -07008155 data := pData[0:dataSize]
8156
8157 return ?
8158}
8159
8160// Buffer functions
8161
8162@threadSafety("system")
8163cmd VkResult vkCreateBuffer(
8164 VkDevice device,
8165 const VkBufferCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008166 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008167 VkBuffer* pBuffer) {
8168 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO)
8169 deviceObject := GetDevice(device)
8170
8171 buffer := ?
8172 pBuffer[0] = buffer
8173 State.Buffers[buffer] = new!BufferObject(device: device)
8174
8175 return ?
8176}
8177
8178@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008179cmd void vkDestroyBuffer(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008180 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008181 VkBuffer buffer,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008182 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008183 deviceObject := GetDevice(device)
8184 bufferObject := GetBuffer(buffer)
8185 assert(bufferObject.device == device)
8186
Jesse Hall3fbc8562015-11-29 22:10:52 -08008187 assert(bufferObject.memory == 0)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008188 State.Buffers[buffer] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008189}
8190
8191
8192// Buffer view functions
8193
8194@threadSafety("system")
8195cmd VkResult vkCreateBufferView(
8196 VkDevice device,
8197 const VkBufferViewCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008198 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008199 VkBufferView* pView) {
8200 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO)
8201 deviceObject := GetDevice(device)
8202
8203 bufferObject := GetBuffer(pCreateInfo.buffer)
8204 assert(bufferObject.device == device)
8205
8206 view := ?
8207 pView[0] = view
8208 State.BufferViews[view] = new!BufferViewObject(device: device, buffer: pCreateInfo.buffer)
8209
8210 return ?
8211}
8212
8213@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008214cmd void vkDestroyBufferView(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008215 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008216 VkBufferView bufferView,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008217 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008218 deviceObject := GetDevice(device)
8219 bufferViewObject := GetBufferView(bufferView)
8220 assert(bufferViewObject.device == device)
8221
8222 State.BufferViews[bufferView] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008223}
8224
8225
8226// Image functions
8227
8228@threadSafety("system")
8229cmd VkResult vkCreateImage(
8230 VkDevice device,
8231 const VkImageCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008232 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008233 VkImage* pImage) {
8234 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO)
8235 deviceObject := GetDevice(device)
8236
8237 image := ?
8238 pImage[0] = image
8239 State.Images[image] = new!ImageObject(device: device)
8240
8241 return ?
8242}
8243
8244@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008245cmd void vkDestroyImage(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008246 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008247 VkImage image,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008248 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008249 deviceObject := GetDevice(device)
8250 imageObject := GetImage(image)
8251 assert(imageObject.device == device)
8252
Jesse Hall3fbc8562015-11-29 22:10:52 -08008253 assert(imageObject.memory == 0)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008254 State.Images[image] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008255}
8256
Jesse Hall606a54e2015-11-19 22:17:28 -08008257cmd void vkGetImageSubresourceLayout(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008258 VkDevice device,
8259 VkImage image,
8260 const VkImageSubresource* pSubresource,
8261 VkSubresourceLayout* pLayout) {
8262 deviceObject := GetDevice(device)
8263 imageObject := GetImage(image)
8264 assert(imageObject.device == device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008265}
8266
8267
8268// Image view functions
8269
8270@threadSafety("system")
8271cmd VkResult vkCreateImageView(
8272 VkDevice device,
8273 const VkImageViewCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008274 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008275 VkImageView* pView) {
8276 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO)
8277 deviceObject := GetDevice(device)
8278
8279 imageObject := GetImage(pCreateInfo.image)
8280 assert(imageObject.device == device)
8281
8282 view := ?
8283 pView[0] = view
8284 State.ImageViews[view] = new!ImageViewObject(device: device, image: pCreateInfo.image)
8285
8286 return ?
8287}
8288
8289@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008290cmd void vkDestroyImageView(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008291 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008292 VkImageView imageView,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008293 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008294 deviceObject := GetDevice(device)
8295 imageViewObject := GetImageView(imageView)
8296 assert(imageViewObject.device == device)
8297
8298 State.ImageViews[imageView] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008299}
8300
8301
8302// Shader functions
8303
8304cmd VkResult vkCreateShaderModule(
8305 VkDevice device,
8306 const VkShaderModuleCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008307 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008308 VkShaderModule* pShaderModule) {
8309 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO)
8310 deviceObject := GetDevice(device)
8311
8312 shaderModule := ?
8313 pShaderModule[0] = shaderModule
8314 State.ShaderModules[shaderModule] = new!ShaderModuleObject(device: device)
8315
8316 return ?
8317}
8318
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008319cmd void vkDestroyShaderModule(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008320 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008321 VkShaderModule shaderModule,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008322 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008323 deviceObject := GetDevice(device)
8324 shaderModuleObject := GetShaderModule(shaderModule)
8325 assert(shaderModuleObject.device == device)
8326
8327 State.ShaderModules[shaderModule] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008328}
8329
Jesse Halld27f6aa2015-08-15 17:58:48 -07008330
8331// Pipeline functions
8332
8333cmd VkResult vkCreatePipelineCache(
8334 VkDevice device,
8335 const VkPipelineCacheCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008336 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008337 VkPipelineCache* pPipelineCache) {
8338 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO)
8339 deviceObject := GetDevice(device)
8340
8341 pipelineCache := ?
8342 pPipelineCache[0] = pipelineCache
8343 State.PipelineCaches[pipelineCache] = new!PipelineCacheObject(device: device)
8344
8345 return ?
8346}
8347
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008348cmd void vkDestroyPipelineCache(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008349 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008350 VkPipelineCache pipelineCache,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008351 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008352 deviceObject := GetDevice(device)
8353 pipelineCacheObject := GetPipelineCache(pipelineCache)
8354 assert(pipelineCacheObject.device == device)
8355
8356 State.PipelineCaches[pipelineCache] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008357}
8358
Jesse Halld27f6aa2015-08-15 17:58:48 -07008359cmd VkResult vkGetPipelineCacheData(
8360 VkDevice device,
8361 VkPipelineCache pipelineCache,
Jesse Halla9bb62b2015-11-21 19:31:56 -08008362 platform.size_t* pDataSize,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008363 void* pData) {
8364 deviceObject := GetDevice(device)
8365 pipelineCacheObject := GetPipelineCache(pipelineCache)
8366 assert(pipelineCacheObject.device == device)
8367
8368 return ?
8369}
8370
8371cmd VkResult vkMergePipelineCaches(
8372 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008373 VkPipelineCache dstCache,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008374 u32 srcCacheCount,
8375 const VkPipelineCache* pSrcCaches) {
8376 deviceObject := GetDevice(device)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008377 dstCacheObject := GetPipelineCache(dstCache)
8378 assert(dstCacheObject.device == device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008379
8380 srcCaches := pSrcCaches[0:srcCacheCount]
8381 for i in (0 .. srcCacheCount) {
8382 srcCache := srcCaches[i]
8383 srcCacheObject := GetPipelineCache(srcCache)
8384 assert(srcCacheObject.device == device)
8385 }
8386
8387 return ?
8388}
8389
8390cmd VkResult vkCreateGraphicsPipelines(
8391 VkDevice device,
8392 VkPipelineCache pipelineCache,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008393 u32 createInfoCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008394 const VkGraphicsPipelineCreateInfo* pCreateInfos,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008395 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008396 VkPipeline* pPipelines) {
8397 deviceObject := GetDevice(device)
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008398 if pipelineCache != NULL_HANDLE {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008399 pipelineCacheObject := GetPipelineCache(pipelineCache)
8400 assert(pipelineCacheObject.device == device)
8401 }
8402
Jesse Hall03b6fe12015-11-24 12:44:21 -08008403 createInfos := pCreateInfos[0:createInfoCount]
8404 pipelines := pPipelines[0:createInfoCount]
8405 for i in (0 .. createInfoCount) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008406 pipeline := ?
8407 pipelines[i] = pipeline
8408 State.Pipelines[pipeline] = new!PipelineObject(device: device)
8409 }
8410
8411 return ?
8412}
8413
8414cmd VkResult vkCreateComputePipelines(
8415 VkDevice device,
8416 VkPipelineCache pipelineCache,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008417 u32 createInfoCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008418 const VkComputePipelineCreateInfo* pCreateInfos,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008419 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008420 VkPipeline* pPipelines) {
8421 deviceObject := GetDevice(device)
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008422 if pipelineCache != NULL_HANDLE {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008423 pipelineCacheObject := GetPipelineCache(pipelineCache)
8424 assert(pipelineCacheObject.device == device)
8425 }
8426
Jesse Hall03b6fe12015-11-24 12:44:21 -08008427 createInfos := pCreateInfos[0:createInfoCount]
8428 pipelines := pPipelines[0:createInfoCount]
8429 for i in (0 .. createInfoCount) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008430 pipeline := ?
8431 pipelines[i] = pipeline
8432 State.Pipelines[pipeline] = new!PipelineObject(device: device)
8433 }
8434
8435 return ?
8436}
8437
8438@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008439cmd void vkDestroyPipeline(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008440 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008441 VkPipeline pipeline,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008442 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008443 deviceObject := GetDevice(device)
8444 pipelineObjects := GetPipeline(pipeline)
8445 assert(pipelineObjects.device == device)
8446
8447 State.Pipelines[pipeline] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008448}
8449
8450
8451// Pipeline layout functions
8452
8453@threadSafety("system")
8454cmd VkResult vkCreatePipelineLayout(
8455 VkDevice device,
8456 const VkPipelineLayoutCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008457 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008458 VkPipelineLayout* pPipelineLayout) {
8459 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO)
8460 deviceObject := GetDevice(device)
8461
8462 pipelineLayout := ?
8463 pPipelineLayout[0] = pipelineLayout
8464 State.PipelineLayouts[pipelineLayout] = new!PipelineLayoutObject(device: device)
8465
8466 return ?
8467}
8468
8469@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008470cmd void vkDestroyPipelineLayout(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008471 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008472 VkPipelineLayout pipelineLayout,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008473 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008474 deviceObject := GetDevice(device)
8475 pipelineLayoutObjects := GetPipelineLayout(pipelineLayout)
8476 assert(pipelineLayoutObjects.device == device)
8477
8478 State.PipelineLayouts[pipelineLayout] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008479}
8480
8481
8482// Sampler functions
8483
8484@threadSafety("system")
8485cmd VkResult vkCreateSampler(
8486 VkDevice device,
8487 const VkSamplerCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008488 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008489 VkSampler* pSampler) {
8490 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO)
8491 deviceObject := GetDevice(device)
8492
8493 sampler := ?
8494 pSampler[0] = sampler
8495 State.Samplers[sampler] = new!SamplerObject(device: device)
8496
8497 return ?
8498}
8499
8500@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008501cmd void vkDestroySampler(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008502 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008503 VkSampler sampler,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008504 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008505 deviceObject := GetDevice(device)
8506 samplerObject := GetSampler(sampler)
8507 assert(samplerObject.device == device)
8508
8509 State.Samplers[sampler] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008510}
8511
8512
8513// Descriptor set functions
8514
8515@threadSafety("system")
8516cmd VkResult vkCreateDescriptorSetLayout(
8517 VkDevice device,
8518 const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008519 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008520 VkDescriptorSetLayout* pSetLayout) {
8521 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO)
8522 deviceObject := GetDevice(device)
8523
8524 setLayout := ?
8525 pSetLayout[0] = setLayout
8526 State.DescriptorSetLayouts[setLayout] = new!DescriptorSetLayoutObject(device: device)
8527
8528 return ?
8529}
8530
8531@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008532cmd void vkDestroyDescriptorSetLayout(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008533 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008534 VkDescriptorSetLayout descriptorSetLayout,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008535 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008536 deviceObject := GetDevice(device)
8537 descriptorSetLayoutObject := GetDescriptorSetLayout(descriptorSetLayout)
8538 assert(descriptorSetLayoutObject.device == device)
8539
8540 State.DescriptorSetLayouts[descriptorSetLayout] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008541}
8542
8543@threadSafety("system")
8544cmd VkResult vkCreateDescriptorPool(
8545 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008546 const VkDescriptorPoolCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008547 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008548 VkDescriptorPool* pDescriptorPool) {
8549 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO)
8550 deviceObject := GetDevice(device)
8551
8552 descriptorPool := ?
8553 pDescriptorPool[0] = descriptorPool
8554 State.DescriptorPools[descriptorPool] = new!DescriptorPoolObject(device: device)
8555
8556 return ?
8557}
8558
8559@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008560cmd void vkDestroyDescriptorPool(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008561 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008562 VkDescriptorPool descriptorPool,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008563 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008564 deviceObject := GetDevice(device)
8565 descriptorPoolObject := GetDescriptorPool(descriptorPool)
8566 assert(descriptorPoolObject.device == device)
8567
8568 State.DescriptorPools[descriptorPool] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008569}
8570
8571@threadSafety("app")
8572cmd VkResult vkResetDescriptorPool(
8573 VkDevice device,
Jesse Hallfbf97b02015-11-20 14:17:03 -08008574 VkDescriptorPool descriptorPool,
8575 VkDescriptorPoolResetFlags flags) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008576 deviceObject := GetDevice(device)
8577 descriptorPoolObject := GetDescriptorPool(descriptorPool)
8578 assert(descriptorPoolObject.device == device)
8579
8580 return ?
8581}
8582
8583@threadSafety("app")
Jesse Hall3fbc8562015-11-29 22:10:52 -08008584cmd VkResult vkAllocateDescriptorSets(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008585 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008586 const VkDescriptorSetAllocateInfo* pAllocateInfo,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008587 VkDescriptorSet* pDescriptorSets) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008588 deviceObject := GetDevice(device)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008589 allocInfo := pAllocateInfo[0]
Jesse Hallfbf97b02015-11-20 14:17:03 -08008590 descriptorPoolObject := GetDescriptorPool(allocInfo.descriptorPool)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008591
Jesse Hall03b6fe12015-11-24 12:44:21 -08008592 setLayouts := allocInfo.pSetLayouts[0:allocInfo.setCount]
8593 for i in (0 .. allocInfo.setCount) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008594 setLayout := setLayouts[i]
8595 setLayoutObject := GetDescriptorSetLayout(setLayout)
8596 assert(setLayoutObject.device == device)
8597 }
8598
Jesse Hall03b6fe12015-11-24 12:44:21 -08008599 descriptorSets := pDescriptorSets[0:allocInfo.setCount]
8600 for i in (0 .. allocInfo.setCount) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008601 descriptorSet := ?
8602 descriptorSets[i] = descriptorSet
8603 State.DescriptorSets[descriptorSet] = new!DescriptorSetObject(device: device)
8604 }
8605
8606 return ?
8607}
8608
Jesse Hallf09c6b12015-08-15 19:54:28 -07008609cmd VkResult vkFreeDescriptorSets(
8610 VkDevice device,
8611 VkDescriptorPool descriptorPool,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008612 u32 descriptorSetCount,
Jesse Hallf09c6b12015-08-15 19:54:28 -07008613 const VkDescriptorSet* pDescriptorSets) {
8614 deviceObject := GetDevice(device)
8615 descriptorPoolObject := GetDescriptorPool(descriptorPool)
8616
Jesse Hall03b6fe12015-11-24 12:44:21 -08008617 descriptorSets := pDescriptorSets[0:descriptorSetCount]
8618 for i in (0 .. descriptorSetCount) {
Jesse Hallf09c6b12015-08-15 19:54:28 -07008619 descriptorSet := descriptorSets[i]
8620 descriptorSetObject := GetDescriptorSet(descriptorSet)
8621 assert(descriptorSetObject.device == device)
8622 State.DescriptorSets[descriptorSet] = null
8623 }
8624
8625 return ?
8626}
8627
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008628cmd void vkUpdateDescriptorSets(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008629 VkDevice device,
Jesse Hallb00daad2015-11-29 19:46:20 -08008630 u32 descriptorWriteCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008631 const VkWriteDescriptorSet* pDescriptorWrites,
Jesse Hallb00daad2015-11-29 19:46:20 -08008632 u32 descriptorCopyCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008633 const VkCopyDescriptorSet* pDescriptorCopies) {
8634 deviceObject := GetDevice(device)
8635
Jesse Hallb00daad2015-11-29 19:46:20 -08008636 descriptorWrites := pDescriptorWrites[0:descriptorWriteCount]
8637 for i in (0 .. descriptorWriteCount) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008638 descriptorWrite := descriptorWrites[i]
Jesse Hall3fbc8562015-11-29 22:10:52 -08008639 descriptorWriteObject := GetDescriptorSet(descriptorWrite.dstSet)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008640 assert(descriptorWriteObject.device == device)
8641 }
8642
Jesse Hallb00daad2015-11-29 19:46:20 -08008643 descriptorCopies := pDescriptorCopies[0:descriptorCopyCount]
8644 for i in (0 .. descriptorCopyCount) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008645 descriptorCopy := descriptorCopies[i]
Jesse Hall3fbc8562015-11-29 22:10:52 -08008646 descriptorCopyObject := GetDescriptorSet(descriptorCopy.dstSet)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008647 assert(descriptorCopyObject.device == device)
8648 }
Jesse Halld27f6aa2015-08-15 17:58:48 -07008649}
8650
8651
8652// Framebuffer functions
8653
8654@threadSafety("system")
8655cmd VkResult vkCreateFramebuffer(
8656 VkDevice device,
8657 const VkFramebufferCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008658 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008659 VkFramebuffer* pFramebuffer) {
8660 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO)
8661 deviceObject := GetDevice(device)
8662
8663 framebuffer := ?
8664 pFramebuffer[0] = framebuffer
8665 State.Framebuffers[framebuffer] = new!FramebufferObject(device: device)
8666
8667 return ?
8668}
8669
8670@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008671cmd void vkDestroyFramebuffer(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008672 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008673 VkFramebuffer framebuffer,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008674 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008675 deviceObject := GetDevice(device)
8676 framebufferObject := GetFramebuffer(framebuffer)
8677 assert(framebufferObject.device == device)
8678
8679 State.Framebuffers[framebuffer] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008680}
8681
8682
8683// Renderpass functions
8684
8685@threadSafety("system")
8686cmd VkResult vkCreateRenderPass(
8687 VkDevice device,
8688 const VkRenderPassCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008689 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008690 VkRenderPass* pRenderPass) {
8691 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO)
8692 deviceObject := GetDevice(device)
8693
8694 renderpass := ?
8695 pRenderPass[0] = renderpass
8696 State.RenderPasses[renderpass] = new!RenderPassObject(device: device)
8697
8698 return ?
8699}
8700
8701@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008702cmd void vkDestroyRenderPass(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008703 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008704 VkRenderPass renderPass,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008705 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008706 deviceObject := GetDevice(device)
8707 renderPassObject := GetRenderPass(renderPass)
8708 assert(renderPassObject.device == device)
8709
8710 State.RenderPasses[renderPass] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008711}
8712
Jesse Hall606a54e2015-11-19 22:17:28 -08008713cmd void vkGetRenderAreaGranularity(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008714 VkDevice device,
8715 VkRenderPass renderPass,
8716 VkExtent2D* pGranularity) {
8717 deviceObject := GetDevice(device)
8718 renderPassObject := GetRenderPass(renderPass)
8719
8720 granularity := ?
8721 pGranularity[0] = granularity
Jesse Halld27f6aa2015-08-15 17:58:48 -07008722}
8723
8724// Command pool functions
8725
8726cmd VkResult vkCreateCommandPool(
8727 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008728 const VkCommandPoolCreateInfo* pCreateInfo,
8729 const VkAllocationCallbacks* pAllocator,
8730 VkCommandPool* pCommandPool) {
8731 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008732 deviceObject := GetDevice(device)
8733
Jesse Hall3fbc8562015-11-29 22:10:52 -08008734 commandPool := ?
8735 pCommandPool[0] = commandPool
8736 State.CommandPools[commandPool] = new!CommandPoolObject(device: device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008737
8738 return ?
8739}
8740
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008741cmd void vkDestroyCommandPool(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008742 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008743 VkCommandPool commandPool,
8744 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008745 deviceObject := GetDevice(device)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008746 commandPoolObject := GetCommandPool(commandPool)
8747 assert(commandPoolObject.device == device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008748
Jesse Hall3fbc8562015-11-29 22:10:52 -08008749 State.CommandPools[commandPool] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008750}
8751
8752cmd VkResult vkResetCommandPool(
8753 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008754 VkCommandPool commandPool,
8755 VkCommandPoolResetFlags flags) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008756 deviceObject := GetDevice(device)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008757 commandPoolObject := GetCommandPool(commandPool)
8758 assert(commandPoolObject.device == device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008759
8760 return ?
8761}
8762
8763// Command buffer functions
8764
Jesse Hall3fbc8562015-11-29 22:10:52 -08008765macro void bindCommandBuffer(VkCommandBuffer commandBuffer, any obj, VkDeviceMemory memory) {
8766 memoryObject := GetDeviceMemory(memory)
8767 memoryObject.boundCommandBuffers[commandBuffer] = commandBuffer
Jesse Halld27f6aa2015-08-15 17:58:48 -07008768
Jesse Hall3fbc8562015-11-29 22:10:52 -08008769 commandBufferObject := GetCommandBuffer(commandBuffer)
8770 commandBufferObject.boundObjects[as!u64(obj)] = memory
Jesse Halld27f6aa2015-08-15 17:58:48 -07008771}
8772
Jesse Hall3fbc8562015-11-29 22:10:52 -08008773macro void unbindCommandBuffer(VkCommandBuffer commandBuffer, any obj, VkDeviceMemory memory) {
8774 memoryObject := GetDeviceMemory(memory)
8775 memoryObject.boundCommandBuffers[commandBuffer] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008776
Jesse Hall3fbc8562015-11-29 22:10:52 -08008777 commandBufferObject := GetCommandBuffer(commandBuffer)
8778 commandBufferObject.boundObjects[as!u64(obj)] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008779}
8780
8781@threadSafety("system")
Jesse Hall3fbc8562015-11-29 22:10:52 -08008782cmd VkResult vkAllocateCommandBuffers(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008783 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008784 const VkCommandBufferAllocateInfo* pAllocateInfo,
8785 VkCommandBuffer* pCommandBuffers) {
Jesse Hallf4ab2b12015-11-30 16:04:55 -08008786 assert(pAllocateInfo[0].sType == VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008787
Jesse Hall3dd678a2016-01-08 21:52:01 -08008788 count := pAllocateInfo[0].commandBufferCount
Jesse Hall3fbc8562015-11-29 22:10:52 -08008789 commandBuffers := pCommandBuffers[0:count]
Jesse Hallfbf97b02015-11-20 14:17:03 -08008790 for i in (0 .. count) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008791 commandBuffer := ?
8792 commandBuffers[i] = commandBuffer
8793 State.CommandBuffers[commandBuffer] = new!CommandBufferObject(device: device)
Jesse Hallfbf97b02015-11-20 14:17:03 -08008794 }
Jesse Halld27f6aa2015-08-15 17:58:48 -07008795
8796 return ?
8797}
8798
8799@threadSafety("system")
Jesse Hallfbf97b02015-11-20 14:17:03 -08008800cmd void vkFreeCommandBuffers(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008801 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008802 VkCommandPool commandPool,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008803 u32 commandBufferCount,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008804 const VkCommandBuffer* pCommandBuffers) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008805 deviceObject := GetDevice(device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008806
Jesse Hall3fbc8562015-11-29 22:10:52 -08008807 commandBuffers := pCommandBuffers[0:commandBufferCount]
Jesse Hall03b6fe12015-11-24 12:44:21 -08008808 for i in (0 .. commandBufferCount) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008809 commandBufferObject := GetCommandBuffer(commandBuffers[i])
8810 assert(commandBufferObject.device == device)
Jesse Hallfbf97b02015-11-20 14:17:03 -08008811 // TODO: iterate over boundObjects and clear memory bindings
Jesse Hall3fbc8562015-11-29 22:10:52 -08008812 State.CommandBuffers[commandBuffers[i]] = null
Jesse Hallfbf97b02015-11-20 14:17:03 -08008813 }
Jesse Halld27f6aa2015-08-15 17:58:48 -07008814}
8815
8816@threadSafety("app")
8817cmd VkResult vkBeginCommandBuffer(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008818 VkCommandBuffer commandBuffer,
8819 const VkCommandBufferBeginInfo* pBeginInfo) {
8820 assert(pBeginInfo.sType == VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO)
8821 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008822
8823 // TODO: iterate over boundObjects and clear memory bindings
8824
8825 return ?
8826}
8827
8828@threadSafety("app")
8829cmd VkResult vkEndCommandBuffer(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008830 VkCommandBuffer commandBuffer) {
8831 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008832
8833 return ?
8834}
8835
8836@threadSafety("app")
8837cmd VkResult vkResetCommandBuffer(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008838 VkCommandBuffer commandBuffer,
8839 VkCommandBufferResetFlags flags) {
8840 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008841
8842 // TODO: iterate over boundObjects and clear memory bindings
8843
8844 return ?
8845}
8846
8847
8848// Command buffer building functions
8849
8850@threadSafety("app")
8851cmd void vkCmdBindPipeline(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008852 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008853 VkPipelineBindPoint pipelineBindPoint,
8854 VkPipeline pipeline) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008855 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008856 pipelineObject := GetPipeline(pipeline)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008857 assert(commandBufferObject.device == pipelineObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008858
Jesse Halld8bade02015-11-24 10:24:18 -08008859 queue := switch (pipelineBindPoint) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008860 case VK_PIPELINE_BIND_POINT_COMPUTE: VK_QUEUE_COMPUTE_BIT
8861 case VK_PIPELINE_BIND_POINT_GRAPHICS: VK_QUEUE_GRAPHICS_BIT
8862 }
Jesse Hall3fbc8562015-11-29 22:10:52 -08008863 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, queue)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008864}
8865
8866@threadSafety("app")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008867cmd void vkCmdSetViewport(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008868 VkCommandBuffer commandBuffer,
Jesse Hallf9fa9a52016-01-08 16:08:51 -08008869 u32 firstViewport,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008870 u32 viewportCount,
8871 const VkViewport* pViewports) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008872 commandBufferObject := GetCommandBuffer(commandBuffer)
8873 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008874}
8875
8876@threadSafety("app")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008877cmd void vkCmdSetScissor(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008878 VkCommandBuffer commandBuffer,
Jesse Hallf9fa9a52016-01-08 16:08:51 -08008879 u32 firstScissor,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008880 u32 scissorCount,
8881 const VkRect2D* pScissors) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008882 commandBufferObject := GetCommandBuffer(commandBuffer)
8883 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008884}
8885
8886@threadSafety("app")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008887cmd void vkCmdSetLineWidth(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008888 VkCommandBuffer commandBuffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008889 f32 lineWidth) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008890 commandBufferObject := GetCommandBuffer(commandBuffer)
8891 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008892}
8893
8894@threadSafety("app")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008895cmd void vkCmdSetDepthBias(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008896 VkCommandBuffer commandBuffer,
Jesse Halla9bb62b2015-11-21 19:31:56 -08008897 f32 depthBiasConstantFactor,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008898 f32 depthBiasClamp,
Jesse Halla9bb62b2015-11-21 19:31:56 -08008899 f32 depthBiasSlopeFactor) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008900 commandBufferObject := GetCommandBuffer(commandBuffer)
8901 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008902}
Jesse Halld27f6aa2015-08-15 17:58:48 -07008903
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008904@threadSafety("app")
8905cmd void vkCmdSetBlendConstants(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008906 VkCommandBuffer commandBuffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008907 // TODO(jessehall): apic only supports 'const' on pointer types. Using
8908 // an annotation as a quick hack to pass this to the template without
8909 // having to modify the AST and semantic model.
Jesse Hallb00daad2015-11-29 19:46:20 -08008910 @readonly f32[4] blendConstants) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008911 commandBufferObject := GetCommandBuffer(commandBuffer)
8912 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008913}
8914
8915@threadSafety("app")
8916cmd void vkCmdSetDepthBounds(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008917 VkCommandBuffer commandBuffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008918 f32 minDepthBounds,
8919 f32 maxDepthBounds) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008920 commandBufferObject := GetCommandBuffer(commandBuffer)
8921 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008922}
8923
8924@threadSafety("app")
8925cmd void vkCmdSetStencilCompareMask(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008926 VkCommandBuffer commandBuffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008927 VkStencilFaceFlags faceMask,
Jesse Hall65ab5522015-11-30 00:07:16 -08008928 u32 compareMask) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008929 commandBufferObject := GetCommandBuffer(commandBuffer)
8930 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008931}
8932
8933@threadSafety("app")
8934cmd void vkCmdSetStencilWriteMask(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008935 VkCommandBuffer commandBuffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008936 VkStencilFaceFlags faceMask,
Jesse Hall65ab5522015-11-30 00:07:16 -08008937 u32 writeMask) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008938 commandBufferObject := GetCommandBuffer(commandBuffer)
8939 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008940}
8941
8942@threadSafety("app")
8943cmd void vkCmdSetStencilReference(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008944 VkCommandBuffer commandBuffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008945 VkStencilFaceFlags faceMask,
Jesse Hall65ab5522015-11-30 00:07:16 -08008946 u32 reference) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008947 commandBufferObject := GetCommandBuffer(commandBuffer)
8948 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008949}
8950
8951@threadSafety("app")
8952cmd void vkCmdBindDescriptorSets(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008953 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008954 VkPipelineBindPoint pipelineBindPoint,
8955 VkPipelineLayout layout,
8956 u32 firstSet,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008957 u32 descriptorSetCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008958 const VkDescriptorSet* pDescriptorSets,
8959 u32 dynamicOffsetCount,
8960 const u32* pDynamicOffsets) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008961 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008962
Jesse Hall03b6fe12015-11-24 12:44:21 -08008963 descriptorSets := pDescriptorSets[0:descriptorSetCount]
8964 for i in (0 .. descriptorSetCount) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008965 descriptorSet := descriptorSets[i]
8966 descriptorSetObject := GetDescriptorSet(descriptorSet)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008967 assert(commandBufferObject.device == descriptorSetObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008968 }
8969
8970 dynamicOffsets := pDynamicOffsets[0:dynamicOffsetCount]
8971 for i in (0 .. dynamicOffsetCount) {
8972 dynamicOffset := dynamicOffsets[i]
8973 }
8974
Jesse Halld8bade02015-11-24 10:24:18 -08008975 queue := switch (pipelineBindPoint) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008976 case VK_PIPELINE_BIND_POINT_COMPUTE: VK_QUEUE_COMPUTE_BIT
8977 case VK_PIPELINE_BIND_POINT_GRAPHICS: VK_QUEUE_GRAPHICS_BIT
8978 }
Jesse Hall3fbc8562015-11-29 22:10:52 -08008979 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, queue)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008980}
8981
8982@threadSafety("app")
8983cmd void vkCmdBindIndexBuffer(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008984 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008985 VkBuffer buffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008986 VkDeviceSize offset,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008987 VkIndexType indexType) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008988 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008989 bufferObject := GetBuffer(buffer)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008990 assert(commandBufferObject.device == bufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008991
Jesse Hall3fbc8562015-11-29 22:10:52 -08008992 bindCommandBuffer(commandBuffer, buffer, bufferObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008993
Jesse Hall3fbc8562015-11-29 22:10:52 -08008994 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008995}
8996
8997@threadSafety("app")
8998cmd void vkCmdBindVertexBuffers(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008999 VkCommandBuffer commandBuffer,
Jesse Hallf9fa9a52016-01-08 16:08:51 -08009000 u32 firstBinding,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009001 u32 bindingCount,
9002 const VkBuffer* pBuffers,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009003 const VkDeviceSize* pOffsets) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009004 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009005
Jesse Hallf9fa9a52016-01-08 16:08:51 -08009006 // TODO: check if not [firstBinding:firstBinding+bindingCount]
Jesse Halld27f6aa2015-08-15 17:58:48 -07009007 buffers := pBuffers[0:bindingCount]
9008 offsets := pOffsets[0:bindingCount]
9009 for i in (0 .. bindingCount) {
9010 buffer := buffers[i]
9011 offset := offsets[i]
9012 bufferObject := GetBuffer(buffer)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009013 assert(commandBufferObject.device == bufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009014
Jesse Hall3fbc8562015-11-29 22:10:52 -08009015 bindCommandBuffer(commandBuffer, buffer, bufferObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009016 }
9017
Jesse Hall3fbc8562015-11-29 22:10:52 -08009018 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009019}
9020
9021@threadSafety("app")
9022cmd void vkCmdDraw(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009023 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009024 u32 vertexCount,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009025 u32 instanceCount,
9026 u32 firstVertex,
9027 u32 firstInstance) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009028 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009029
Jesse Hall3fbc8562015-11-29 22:10:52 -08009030 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009031}
9032
9033@threadSafety("app")
9034cmd void vkCmdDrawIndexed(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009035 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009036 u32 indexCount,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009037 u32 instanceCount,
9038 u32 firstIndex,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009039 s32 vertexOffset,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009040 u32 firstInstance) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009041 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009042
Jesse Hall3fbc8562015-11-29 22:10:52 -08009043 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009044}
9045
9046@threadSafety("app")
9047cmd void vkCmdDrawIndirect(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009048 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009049 VkBuffer buffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009050 VkDeviceSize offset,
Jesse Hall03b6fe12015-11-24 12:44:21 -08009051 u32 drawCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009052 u32 stride) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009053 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009054 bufferObject := GetBuffer(buffer)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009055 assert(commandBufferObject.device == bufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009056
Jesse Hall3fbc8562015-11-29 22:10:52 -08009057 bindCommandBuffer(commandBuffer, buffer, bufferObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009058
Jesse Hall3fbc8562015-11-29 22:10:52 -08009059 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009060}
9061
9062@threadSafety("app")
9063cmd void vkCmdDrawIndexedIndirect(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009064 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009065 VkBuffer buffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009066 VkDeviceSize offset,
Jesse Hall03b6fe12015-11-24 12:44:21 -08009067 u32 drawCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009068 u32 stride) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009069 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009070 bufferObject := GetBuffer(buffer)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009071 assert(commandBufferObject.device == bufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009072
Jesse Hall3fbc8562015-11-29 22:10:52 -08009073 bindCommandBuffer(commandBuffer, buffer, bufferObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009074
Jesse Hall3fbc8562015-11-29 22:10:52 -08009075 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009076}
9077
9078@threadSafety("app")
9079cmd void vkCmdDispatch(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009080 VkCommandBuffer commandBuffer,
Jesse Hallad250842017-03-10 18:35:38 -08009081 u32 groupCountX,
9082 u32 groupCountY,
9083 u32 groupCountZ) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009084 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_COMPUTE_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009087}
9088
9089@threadSafety("app")
9090cmd void vkCmdDispatchIndirect(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009091 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009092 VkBuffer buffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009093 VkDeviceSize offset) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009094 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009095 bufferObject := GetBuffer(buffer)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009096 assert(commandBufferObject.device == bufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009097
Jesse Hall3fbc8562015-11-29 22:10:52 -08009098 bindCommandBuffer(commandBuffer, buffer, bufferObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009099
Jesse Hall3fbc8562015-11-29 22:10:52 -08009100 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_COMPUTE_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009101}
9102
9103@threadSafety("app")
9104cmd void vkCmdCopyBuffer(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009105 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009106 VkBuffer srcBuffer,
Jesse Hall3fbc8562015-11-29 22:10:52 -08009107 VkBuffer dstBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009108 u32 regionCount,
9109 const VkBufferCopy* pRegions) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009110 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009111 srcBufferObject := GetBuffer(srcBuffer)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009112 dstBufferObject := GetBuffer(dstBuffer)
9113 assert(commandBufferObject.device == srcBufferObject.device)
9114 assert(commandBufferObject.device == dstBufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009115
9116 regions := pRegions[0:regionCount]
9117 for i in (0 .. regionCount) {
9118 region := regions[i]
9119 }
9120
Jesse Hall3fbc8562015-11-29 22:10:52 -08009121 bindCommandBuffer(commandBuffer, srcBuffer, srcBufferObject.memory)
9122 bindCommandBuffer(commandBuffer, dstBuffer, dstBufferObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009123
Jesse Hall65ab5522015-11-30 00:07:16 -08009124 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_TRANSFER_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009125}
9126
9127@threadSafety("app")
9128cmd void vkCmdCopyImage(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009129 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009130 VkImage srcImage,
9131 VkImageLayout srcImageLayout,
Jesse Hall3fbc8562015-11-29 22:10:52 -08009132 VkImage dstImage,
9133 VkImageLayout dstImageLayout,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009134 u32 regionCount,
9135 const VkImageCopy* pRegions) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009136 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009137 srcImageObject := GetImage(srcImage)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009138 dstImageObject := GetImage(dstImage)
9139 assert(commandBufferObject.device == srcImageObject.device)
9140 assert(commandBufferObject.device == dstImageObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009141
9142 regions := pRegions[0:regionCount]
9143 for i in (0 .. regionCount) {
9144 region := regions[i]
9145 }
9146
Jesse Hall3fbc8562015-11-29 22:10:52 -08009147 bindCommandBuffer(commandBuffer, srcImage, srcImageObject.memory)
9148 bindCommandBuffer(commandBuffer, dstImage, dstImageObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009149
Jesse Hall65ab5522015-11-30 00:07:16 -08009150 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_TRANSFER_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009151}
9152
9153@threadSafety("app")
9154cmd void vkCmdBlitImage(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009155 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009156 VkImage srcImage,
9157 VkImageLayout srcImageLayout,
Jesse Hall3fbc8562015-11-29 22:10:52 -08009158 VkImage dstImage,
9159 VkImageLayout dstImageLayout,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009160 u32 regionCount,
9161 const VkImageBlit* pRegions,
Jesse Hall23ff73f2015-11-29 14:36:39 -08009162 VkFilter filter) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009163 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009164 srcImageObject := GetImage(srcImage)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009165 dstImageObject := GetImage(dstImage)
9166 assert(commandBufferObject.device == srcImageObject.device)
9167 assert(commandBufferObject.device == dstImageObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009168
9169 regions := pRegions[0:regionCount]
9170 for i in (0 .. regionCount) {
9171 region := regions[i]
9172 }
9173
Jesse Hall3fbc8562015-11-29 22:10:52 -08009174 bindCommandBuffer(commandBuffer, srcImage, srcImageObject.memory)
9175 bindCommandBuffer(commandBuffer, dstImage, dstImageObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009176
Jesse Hall3fbc8562015-11-29 22:10:52 -08009177 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009178}
9179
9180@threadSafety("app")
9181cmd void vkCmdCopyBufferToImage(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009182 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009183 VkBuffer srcBuffer,
Jesse Hall3fbc8562015-11-29 22:10:52 -08009184 VkImage dstImage,
9185 VkImageLayout dstImageLayout,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009186 u32 regionCount,
9187 const VkBufferImageCopy* pRegions) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009188 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009189 srcBufferObject := GetBuffer(srcBuffer)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009190 dstImageObject := GetImage(dstImage)
9191 assert(commandBufferObject.device == srcBufferObject.device)
9192 assert(commandBufferObject.device == dstImageObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009193
9194 regions := pRegions[0:regionCount]
9195 for i in (0 .. regionCount) {
9196 region := regions[i]
9197 }
9198
Jesse Hall3fbc8562015-11-29 22:10:52 -08009199 bindCommandBuffer(commandBuffer, srcBuffer, srcBufferObject.memory)
9200 bindCommandBuffer(commandBuffer, dstImage, dstImageObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009201
Jesse Hall65ab5522015-11-30 00:07:16 -08009202 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_TRANSFER_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009203}
9204
9205@threadSafety("app")
9206cmd void vkCmdCopyImageToBuffer(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009207 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009208 VkImage srcImage,
9209 VkImageLayout srcImageLayout,
Jesse Hall3fbc8562015-11-29 22:10:52 -08009210 VkBuffer dstBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009211 u32 regionCount,
9212 const VkBufferImageCopy* pRegions) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009213 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009214 srcImageObject := GetImage(srcImage)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009215 dstBufferObject := GetBuffer(dstBuffer)
9216 assert(commandBufferObject.device == srcImageObject.device)
9217 assert(commandBufferObject.device == dstBufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009218
9219 regions := pRegions[0:regionCount]
9220 for i in (0 .. regionCount) {
9221 region := regions[i]
9222 }
9223
Jesse Hall3fbc8562015-11-29 22:10:52 -08009224 bindCommandBuffer(commandBuffer, srcImage, srcImageObject.memory)
9225 bindCommandBuffer(commandBuffer, dstBuffer, dstBufferObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009226
Jesse Hall65ab5522015-11-30 00:07:16 -08009227 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_TRANSFER_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009228}
9229
9230@threadSafety("app")
9231cmd void vkCmdUpdateBuffer(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009232 VkCommandBuffer commandBuffer,
9233 VkBuffer dstBuffer,
9234 VkDeviceSize dstOffset,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009235 VkDeviceSize dataSize,
Jesse Hall56d386a2016-07-26 15:20:40 -07009236 const void* pData) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009237 commandBufferObject := GetCommandBuffer(commandBuffer)
9238 dstBufferObject := GetBuffer(dstBuffer)
9239 assert(commandBufferObject.device == dstBufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009240
9241 data := pData[0:dataSize]
9242
Jesse Hall3fbc8562015-11-29 22:10:52 -08009243 bindCommandBuffer(commandBuffer, dstBuffer, dstBufferObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009244
Jesse Hall65ab5522015-11-30 00:07:16 -08009245 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_TRANSFER_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009246}
9247
9248@threadSafety("app")
9249cmd void vkCmdFillBuffer(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009250 VkCommandBuffer commandBuffer,
9251 VkBuffer dstBuffer,
9252 VkDeviceSize dstOffset,
Jesse Hallb00daad2015-11-29 19:46:20 -08009253 VkDeviceSize size,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009254 u32 data) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009255 commandBufferObject := GetCommandBuffer(commandBuffer)
9256 dstBufferObject := GetBuffer(dstBuffer)
9257 assert(commandBufferObject.device == dstBufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009258
Jesse Hall65ab5522015-11-30 00:07:16 -08009259 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_TRANSFER_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009260}
9261
9262@threadSafety("app")
9263cmd void vkCmdClearColorImage(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009264 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009265 VkImage image,
9266 VkImageLayout imageLayout,
9267 const VkClearColorValue* pColor,
9268 u32 rangeCount,
9269 const VkImageSubresourceRange* pRanges) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009270 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009271 imageObject := GetImage(image)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009272 assert(commandBufferObject.device == imageObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009273
9274 ranges := pRanges[0:rangeCount]
9275 for i in (0 .. rangeCount) {
9276 range := ranges[i]
9277 }
9278
Jesse Hall3fbc8562015-11-29 22:10:52 -08009279 bindCommandBuffer(commandBuffer, image, imageObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009280
Jesse Hall3fbc8562015-11-29 22:10:52 -08009281 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009282}
9283
9284@threadSafety("app")
9285cmd void vkCmdClearDepthStencilImage(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009286 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009287 VkImage image,
9288 VkImageLayout imageLayout,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009289 const VkClearDepthStencilValue* pDepthStencil,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009290 u32 rangeCount,
9291 const VkImageSubresourceRange* pRanges) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009292 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009293 imageObject := GetImage(image)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009294 assert(commandBufferObject.device == imageObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009295
9296 ranges := pRanges[0:rangeCount]
9297 for i in (0 .. rangeCount) {
9298 range := ranges[i]
9299 }
9300
Jesse Hall3fbc8562015-11-29 22:10:52 -08009301 bindCommandBuffer(commandBuffer, image, imageObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009302
Jesse Hall3fbc8562015-11-29 22:10:52 -08009303 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009304}
9305
9306@threadSafety("app")
Jesse Hallae38f732015-11-19 21:32:50 -08009307cmd void vkCmdClearAttachments(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009308 VkCommandBuffer commandBuffer,
Jesse Hallae38f732015-11-19 21:32:50 -08009309 u32 attachmentCount,
9310 const VkClearAttachment* pAttachments,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009311 u32 rectCount,
Jesse Halla15a4bf2015-11-19 22:48:02 -08009312 const VkClearRect* pRects) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009313 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009314
9315 rects := pRects[0:rectCount]
9316 for i in (0 .. rectCount) {
9317 rect := rects[i]
9318 }
9319
Jesse Hall3fbc8562015-11-29 22:10:52 -08009320 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009321}
9322
9323@threadSafety("app")
9324cmd void vkCmdResolveImage(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009325 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009326 VkImage srcImage,
9327 VkImageLayout srcImageLayout,
Jesse Hall3fbc8562015-11-29 22:10:52 -08009328 VkImage dstImage,
9329 VkImageLayout dstImageLayout,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009330 u32 regionCount,
9331 const VkImageResolve* pRegions) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009332 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009333 srcImageObject := GetImage(srcImage)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009334 dstImageObject := GetImage(dstImage)
9335 assert(commandBufferObject.device == srcImageObject.device)
9336 assert(commandBufferObject.device == dstImageObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009337
9338 regions := pRegions[0:regionCount]
9339 for i in (0 .. regionCount) {
9340 region := regions[i]
9341 }
9342
Jesse Hall3fbc8562015-11-29 22:10:52 -08009343 bindCommandBuffer(commandBuffer, srcImage, srcImageObject.memory)
9344 bindCommandBuffer(commandBuffer, dstImage, dstImageObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009345
Jesse Hall3fbc8562015-11-29 22:10:52 -08009346 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009347}
9348
9349@threadSafety("app")
9350cmd void vkCmdSetEvent(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009351 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009352 VkEvent event,
9353 VkPipelineStageFlags stageMask) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009354 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009355 eventObject := GetEvent(event)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009356 assert(commandBufferObject.device == eventObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009357}
9358
9359@threadSafety("app")
9360cmd void vkCmdResetEvent(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009361 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009362 VkEvent event,
9363 VkPipelineStageFlags stageMask) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009364 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009365 eventObject := GetEvent(event)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009366 assert(commandBufferObject.device == eventObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009367}
9368
9369@threadSafety("app")
9370cmd void vkCmdWaitEvents(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009371 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009372 u32 eventCount,
9373 const VkEvent* pEvents,
9374 VkPipelineStageFlags srcStageMask,
Jesse Hall3fbc8562015-11-29 22:10:52 -08009375 VkPipelineStageFlags dstStageMask,
9376 u32 memoryBarrierCount,
Jesse Hall3dd678a2016-01-08 21:52:01 -08009377 const VkMemoryBarrier* pMemoryBarriers,
9378 u32 bufferMemoryBarrierCount,
9379 const VkBufferMemoryBarrier* pBufferMemoryBarriers,
9380 u32 imageMemoryBarrierCount,
9381 const VkImageMemoryBarrier* pImageMemoryBarriers) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009382 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009383
9384 events := pEvents[0:eventCount]
9385 for i in (0 .. eventCount) {
9386 event := events[i]
9387 eventObject := GetEvent(event)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009388 assert(commandBufferObject.device == eventObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009389 }
9390
Jesse Hall3dd678a2016-01-08 21:52:01 -08009391 memoryBarriers := pMemoryBarriers[0:memoryBarrierCount]
Jesse Hall3fbc8562015-11-29 22:10:52 -08009392 for i in (0 .. memoryBarrierCount) {
Jesse Hall3dd678a2016-01-08 21:52:01 -08009393 memoryBarrier := memoryBarriers[i]
9394 }
9395 bufferMemoryBarriers := pBufferMemoryBarriers[0:bufferMemoryBarrierCount]
9396 for i in (0 .. bufferMemoryBarrierCount) {
9397 bufferMemoryBarrier := bufferMemoryBarriers[i]
9398 bufferObject := GetBuffer(bufferMemoryBarrier.buffer)
9399 assert(bufferObject.device == commandBufferObject.device)
9400 }
9401 imageMemoryBarriers := pImageMemoryBarriers[0:imageMemoryBarrierCount]
9402 for i in (0 .. imageMemoryBarrierCount) {
9403 imageMemoryBarrier := imageMemoryBarriers[i]
9404 imageObject := GetImage(imageMemoryBarrier.image)
9405 assert(imageObject.device == commandBufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009406 }
9407}
9408
9409@threadSafety("app")
9410cmd void vkCmdPipelineBarrier(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009411 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009412 VkPipelineStageFlags srcStageMask,
Jesse Hall3fbc8562015-11-29 22:10:52 -08009413 VkPipelineStageFlags dstStageMask,
Jesse Halldc6d36c2015-11-29 19:12:15 -08009414 VkDependencyFlags dependencyFlags,
Jesse Hall3fbc8562015-11-29 22:10:52 -08009415 u32 memoryBarrierCount,
Jesse Hall3dd678a2016-01-08 21:52:01 -08009416 const VkMemoryBarrier* pMemoryBarriers,
9417 u32 bufferMemoryBarrierCount,
9418 const VkBufferMemoryBarrier* pBufferMemoryBarriers,
9419 u32 imageMemoryBarrierCount,
9420 const VkImageMemoryBarrier* pImageMemoryBarriers) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009421 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009422
Jesse Hall3dd678a2016-01-08 21:52:01 -08009423 memoryBarriers := pMemoryBarriers[0:memoryBarrierCount]
Jesse Hall3fbc8562015-11-29 22:10:52 -08009424 for i in (0 .. memoryBarrierCount) {
Jesse Hall3dd678a2016-01-08 21:52:01 -08009425 memoryBarrier := memoryBarriers[i]
9426 }
9427 bufferMemoryBarriers := pBufferMemoryBarriers[0:bufferMemoryBarrierCount]
9428 for i in (0 .. bufferMemoryBarrierCount) {
9429 bufferMemoryBarrier := bufferMemoryBarriers[i]
9430 bufferObject := GetBuffer(bufferMemoryBarrier.buffer)
9431 assert(bufferObject.device == commandBufferObject.device)
9432 }
9433 imageMemoryBarriers := pImageMemoryBarriers[0:imageMemoryBarrierCount]
9434 for i in (0 .. imageMemoryBarrierCount) {
9435 imageMemoryBarrier := imageMemoryBarriers[i]
9436 imageObject := GetImage(imageMemoryBarrier.image)
9437 assert(imageObject.device == commandBufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009438 }
9439}
9440
9441@threadSafety("app")
9442cmd void vkCmdBeginQuery(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009443 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009444 VkQueryPool queryPool,
Jesse Hall3dd678a2016-01-08 21:52:01 -08009445 u32 query,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009446 VkQueryControlFlags flags) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009447 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009448 queryPoolObject := GetQueryPool(queryPool)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009449 assert(commandBufferObject.device == queryPoolObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009450}
9451
9452@threadSafety("app")
9453cmd void vkCmdEndQuery(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009454 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009455 VkQueryPool queryPool,
Jesse Hall3dd678a2016-01-08 21:52:01 -08009456 u32 query) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009457 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009458 queryPoolObject := GetQueryPool(queryPool)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009459 assert(commandBufferObject.device == queryPoolObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009460}
9461
9462@threadSafety("app")
9463cmd void vkCmdResetQueryPool(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009464 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009465 VkQueryPool queryPool,
Jesse Hallf9fa9a52016-01-08 16:08:51 -08009466 u32 firstQuery,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009467 u32 queryCount) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009468 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009469 queryPoolObject := GetQueryPool(queryPool)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009470 assert(commandBufferObject.device == queryPoolObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009471}
9472
9473@threadSafety("app")
9474cmd void vkCmdWriteTimestamp(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009475 VkCommandBuffer commandBuffer,
Jesse Hall6f39a6d2015-11-24 11:08:36 -08009476 VkPipelineStageFlagBits pipelineStage,
Jesse Halla3a7a1d2015-11-24 11:37:23 -08009477 VkQueryPool queryPool,
Jesse Hall3dd678a2016-01-08 21:52:01 -08009478 u32 query) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009479 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halla3a7a1d2015-11-24 11:37:23 -08009480 queryPoolObject := GetQueryPool(queryPool)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009481 assert(commandBufferObject.device == queryPoolObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009482}
9483
9484@threadSafety("app")
9485cmd void vkCmdCopyQueryPoolResults(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009486 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009487 VkQueryPool queryPool,
Jesse Hallf9fa9a52016-01-08 16:08:51 -08009488 u32 firstQuery,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009489 u32 queryCount,
Jesse Hall3fbc8562015-11-29 22:10:52 -08009490 VkBuffer dstBuffer,
9491 VkDeviceSize dstOffset,
Jesse Halla9bb62b2015-11-21 19:31:56 -08009492 VkDeviceSize stride,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009493 VkQueryResultFlags flags) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009494 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009495 queryPoolObject := GetQueryPool(queryPool)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009496 dstBufferObject := GetBuffer(dstBuffer)
9497 assert(commandBufferObject.device == queryPoolObject.device)
9498 assert(commandBufferObject.device == dstBufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009499}
9500
9501cmd void vkCmdPushConstants(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009502 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009503 VkPipelineLayout layout,
9504 VkShaderStageFlags stageFlags,
Jesse Hall03b6fe12015-11-24 12:44:21 -08009505 u32 offset,
9506 u32 size,
Jesse Hallf4ab2b12015-11-30 16:04:55 -08009507 const void* pValues) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009508 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009509 layoutObject := GetPipelineLayout(layout)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009510 assert(commandBufferObject.device == layoutObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009511}
9512
9513@threadSafety("app")
9514cmd void vkCmdBeginRenderPass(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009515 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009516 const VkRenderPassBeginInfo* pRenderPassBegin,
Jesse Hall65ab5522015-11-30 00:07:16 -08009517 VkSubpassContents contents) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009518 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009519 renderPassObject := GetRenderPass(pRenderPassBegin.renderPass)
9520 framebufferObject := GetFramebuffer(pRenderPassBegin.framebuffer)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009521 assert(commandBufferObject.device == renderPassObject.device)
9522 assert(commandBufferObject.device == framebufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009523
Jesse Hall3fbc8562015-11-29 22:10:52 -08009524 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009525}
9526
9527cmd void vkCmdNextSubpass(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009528 VkCommandBuffer commandBuffer,
Jesse Hall65ab5522015-11-30 00:07:16 -08009529 VkSubpassContents contents) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009530 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009531}
9532
9533@threadSafety("app")
9534cmd void vkCmdEndRenderPass(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009535 VkCommandBuffer commandBuffer) {
9536 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009537
Jesse Hall3fbc8562015-11-29 22:10:52 -08009538 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009539}
9540
9541cmd void vkCmdExecuteCommands(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009542 VkCommandBuffer commandBuffer,
Jesse Hall3dd678a2016-01-08 21:52:01 -08009543 u32 commandBufferCount,
Jesse Hall3fbc8562015-11-29 22:10:52 -08009544 const VkCommandBuffer* pCommandBuffers) {
9545 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009546
Jesse Hall3dd678a2016-01-08 21:52:01 -08009547 commandBuffers := pCommandBuffers[0:commandBufferCount]
9548 for i in (0 .. commandBufferCount) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009549 secondaryCommandBuffer := commandBuffers[i]
9550 secondaryCommandBufferObject := GetCommandBuffer(secondaryCommandBuffer)
9551 assert(commandBufferObject.device == secondaryCommandBufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009552 }
9553}
9554
Ian Elliott28bd2c32017-10-13 09:21:12 -06009555//@vulkan1_1 functions
Daniel Koch09f7bf92017-10-05 00:26:58 -04009556
Ian Elliott28bd2c32017-10-13 09:21:12 -06009557@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009558cmd VkResult vkEnumerateInstanceVersion(
9559 u32* pApiVersion) {
9560 return ?
9561}
9562
Ian Elliott28bd2c32017-10-13 09:21:12 -06009563@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009564cmd VkResult vkBindBufferMemory2(
9565 VkDevice device,
9566 u32 bindInfoCount,
9567 const VkBindBufferMemoryInfo* pBindInfos) {
9568 return ?
9569}
9570
Ian Elliott28bd2c32017-10-13 09:21:12 -06009571@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009572cmd VkResult vkBindImageMemory2(
9573 VkDevice device,
9574 u32 bindInfoCount,
9575 const VkBindImageMemoryInfo* pBindInfos) {
9576 return ?
9577}
9578
Ian Elliott28bd2c32017-10-13 09:21:12 -06009579@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009580cmd void vkGetDeviceGroupPeerMemoryFeatures(
9581 VkDevice device,
9582 u32 heapIndex,
9583 u32 localDeviceIndex,
9584 u32 remoteDeviceIndex,
9585 VkPeerMemoryFeatureFlags* pPeerMemoryFeatures) {
9586}
9587
Ian Elliott28bd2c32017-10-13 09:21:12 -06009588@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009589cmd void vkCmdSetDeviceMask(
9590 VkCommandBuffer commandBuffer,
9591 u32 deviceMask) {
9592}
9593
Ian Elliott28bd2c32017-10-13 09:21:12 -06009594@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009595cmd void vkCmdDispatchBase(
9596 VkCommandBuffer commandBuffer,
9597 u32 baseGroupX,
9598 u32 baseGroupY,
9599 u32 baseGroupZ,
9600 u32 groupCountX,
9601 u32 groupCountY,
9602 u32 groupCountZ) {
9603}
9604
9605@threadSafety("system")
Ian Elliott28bd2c32017-10-13 09:21:12 -06009606@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009607cmd VkResult vkEnumeratePhysicalDeviceGroups(
9608 VkInstance instance,
9609 u32* pPhysicalDeviceGroupCount,
9610 VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties) {
9611 instanceObject := GetInstance(instance)
9612
9613 physicalDeviceGroupCount := as!u32(?)
9614 pPhysicalDeviceGroupCount[0] = physicalDeviceGroupCount
9615 physicalDevices := pPhysicalDeviceGroupProperties[0:physicalDeviceGroupCount]
9616
9617 for i in (0 .. physicalDeviceGroupCount) {
9618 physicalDevice := ?
9619 physicalDevices[i] = physicalDevice
9620 if !(physicalDevice in State.PhysicalDevices) {
9621 State.PhysicalDevices[physicalDevice] = new!PhysicalDeviceObject(instance: instance)
9622 }
9623 }
9624
9625 return ?
9626}
9627
Ian Elliott28bd2c32017-10-13 09:21:12 -06009628@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009629cmd void vkGetImageMemoryRequirements2(
9630 VkDevice device,
9631 const VkImageMemoryRequirementsInfo2* pInfo,
9632 VkMemoryRequirements2* pMemoryRequirements) {
9633}
9634
Ian Elliott28bd2c32017-10-13 09:21:12 -06009635@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009636cmd void vkGetBufferMemoryRequirements2(
9637 VkDevice device,
9638 const VkBufferMemoryRequirementsInfo2* pInfo,
9639 VkMemoryRequirements2* pMemoryRequirements) {
9640}
9641
Ian Elliott28bd2c32017-10-13 09:21:12 -06009642@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009643cmd void vkGetImageSparseMemoryRequirements2(
9644 VkDevice device,
9645 const VkImageSparseMemoryRequirementsInfo2* pInfo,
9646 u32* pSparseMemoryRequirementCount,
9647 VkSparseImageMemoryRequirements2* pSparseMemoryRequirements) {
9648}
9649
Ian Elliott28bd2c32017-10-13 09:21:12 -06009650@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009651cmd void vkGetPhysicalDeviceFeatures2(
9652 VkPhysicalDevice physicalDevice,
9653 VkPhysicalDeviceFeatures2* pFeatures) {
9654}
9655
Ian Elliott28bd2c32017-10-13 09:21:12 -06009656@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009657cmd void vkGetPhysicalDeviceProperties2(
9658 VkPhysicalDevice physicalDevice,
9659 VkPhysicalDeviceProperties2* pProperties) {
9660}
9661
Ian Elliott28bd2c32017-10-13 09:21:12 -06009662@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009663cmd void vkGetPhysicalDeviceFormatProperties2(
9664 VkPhysicalDevice physicalDevice,
9665 VkFormat format,
9666 VkFormatProperties2* pFormatProperties) {
9667}
9668
Ian Elliott28bd2c32017-10-13 09:21:12 -06009669@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009670cmd VkResult vkGetPhysicalDeviceImageFormatProperties2(
9671 VkPhysicalDevice physicalDevice,
9672 const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo,
9673 VkImageFormatProperties2* pImageFormatProperties) {
9674 return ?
9675}
9676
Ian Elliott28bd2c32017-10-13 09:21:12 -06009677@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009678cmd void vkGetPhysicalDeviceQueueFamilyProperties2(
9679 VkPhysicalDevice physicalDevice,
9680 u32* pQueueFamilyPropertyCount,
9681 VkQueueFamilyProperties2* pQueueFamilyProperties) {
9682}
9683
Ian Elliott28bd2c32017-10-13 09:21:12 -06009684@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009685cmd void vkGetPhysicalDeviceMemoryProperties2(
9686 VkPhysicalDevice physicalDevice,
9687 VkPhysicalDeviceMemoryProperties2* pMemoryProperties) {
9688}
9689
Ian Elliott28bd2c32017-10-13 09:21:12 -06009690@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009691cmd void vkGetPhysicalDeviceSparseImageFormatProperties2(
9692 VkPhysicalDevice physicalDevice,
9693 const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo,
9694 u32* pPropertyCount,
9695 VkSparseImageFormatProperties2* pProperties) {
9696}
9697
Ian Elliott28bd2c32017-10-13 09:21:12 -06009698@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009699cmd void vkTrimCommandPool(
9700 VkDevice device,
9701 VkCommandPool commandPool,
9702 VkCommandPoolTrimFlags flags) {
9703}
9704
9705
Ian Elliott28bd2c32017-10-13 09:21:12 -06009706@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009707cmd void vkGetDeviceQueue2(
9708 VkDevice device,
9709 const VkDeviceQueueInfo2* pQueueInfo,
9710 VkQueue* pQueue) {
9711 deviceObject := GetDevice(device)
9712
9713 queue := ?
9714 pQueue[0] = queue
9715
9716 if !(queue in State.Queues) {
9717 State.Queues[queue] = new!QueueObject(device: device)
9718 }
9719}
9720
Ian Elliott28bd2c32017-10-13 09:21:12 -06009721@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009722cmd VkResult vkCreateSamplerYcbcrConversion(
9723 VkDevice device,
9724 const VkSamplerYcbcrConversionCreateInfo* pCreateInfo,
9725 const VkAllocationCallbacks* pAllocator,
9726 VkSamplerYcbcrConversion* pYcbcrConversion) {
9727 return ?
9728}
9729
Ian Elliott28bd2c32017-10-13 09:21:12 -06009730@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009731cmd void vkDestroySamplerYcbcrConversion(
9732 VkDevice device,
9733 VkSamplerYcbcrConversion ycbcrConversion,
9734 const VkAllocationCallbacks* pAllocator) {
9735}
9736
Ian Elliott28bd2c32017-10-13 09:21:12 -06009737@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009738cmd VkResult vkCreateDescriptorUpdateTemplate(
9739 VkDevice device,
9740 const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo,
9741 const VkAllocationCallbacks* pAllocator,
9742 VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate) {
9743 return ?
9744}
9745
Ian Elliott28bd2c32017-10-13 09:21:12 -06009746@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009747cmd void vkDestroyDescriptorUpdateTemplate(
9748 VkDevice device,
9749 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
9750 const VkAllocationCallbacks* pAllocator) {
9751}
9752
Ian Elliott28bd2c32017-10-13 09:21:12 -06009753@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009754cmd void vkUpdateDescriptorSetWithTemplate(
9755 VkDevice device,
9756 VkDescriptorSet descriptorSet,
9757 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
9758 const void* pData) {
9759}
9760
Ian Elliott28bd2c32017-10-13 09:21:12 -06009761@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009762cmd void vkGetPhysicalDeviceExternalBufferProperties(
9763 VkPhysicalDevice physicalDevice,
9764 const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo,
9765 VkExternalBufferProperties* pExternalBufferProperties) {
9766}
9767
Ian Elliott28bd2c32017-10-13 09:21:12 -06009768@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009769cmd void vkGetPhysicalDeviceExternalFenceProperties(
9770 VkPhysicalDevice physicalDevice,
9771 const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo,
9772 VkExternalFenceProperties* pExternalFenceProperties) {
9773}
9774
Ian Elliott28bd2c32017-10-13 09:21:12 -06009775@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009776cmd void vkGetPhysicalDeviceExternalSemaphoreProperties(
9777 VkPhysicalDevice physicalDevice,
9778 const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo,
9779 VkExternalSemaphoreProperties* pExternalSemaphoreProperties) {
9780}
9781
Ian Elliott28bd2c32017-10-13 09:21:12 -06009782@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009783cmd void vkGetDescriptorSetLayoutSupport(
9784 VkDevice device,
9785 const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
9786 VkDescriptorSetLayoutSupport* pSupport) {
9787}
9788
9789
Jesse Hallad250842017-03-10 18:35:38 -08009790@extension("VK_KHR_surface") // 1
Jesse Hall1356b0d2015-11-23 17:24:58 -08009791cmd void vkDestroySurfaceKHR(
9792 VkInstance instance,
Jesse Hall0e74f002015-11-30 11:37:59 -08009793 VkSurfaceKHR surface,
9794 const VkAllocationCallbacks* pAllocator) {
Jesse Hall1356b0d2015-11-23 17:24:58 -08009795 instanceObject := GetInstance(instance)
9796 surfaceObject := GetSurface(surface)
9797 assert(surfaceObject.instance == instance)
Michael Lentine88594d72015-11-12 12:49:45 -08009798
Jesse Hall1356b0d2015-11-23 17:24:58 -08009799 State.Surfaces[surface] = null
Jesse Hall2818f932015-11-19 21:19:17 -08009800}
9801
Jesse Hallad250842017-03-10 18:35:38 -08009802@extension("VK_KHR_surface") // 1
Jesse Halla6429252015-11-29 18:59:42 -08009803cmd VkResult vkGetPhysicalDeviceSurfaceSupportKHR(
Jesse Hall1356b0d2015-11-23 17:24:58 -08009804 VkPhysicalDevice physicalDevice,
9805 u32 queueFamilyIndex,
Jesse Hall1356b0d2015-11-23 17:24:58 -08009806 VkSurfaceKHR surface,
Jesse Hallb00daad2015-11-29 19:46:20 -08009807 VkBool32* pSupported) {
9808 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
Michael Lentine88594d72015-11-12 12:49:45 -08009809
9810 return ?
9811}
9812
Jesse Hallad250842017-03-10 18:35:38 -08009813@extension("VK_KHR_surface") // 1
Jesse Hallb00daad2015-11-29 19:46:20 -08009814cmd VkResult vkGetPhysicalDeviceSurfaceCapabilitiesKHR(
9815 VkPhysicalDevice physicalDevice,
9816 VkSurfaceKHR surface,
9817 VkSurfaceCapabilitiesKHR* pSurfaceCapabilities) {
9818 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
9819
9820 surfaceCapabilities := ?
9821 pSurfaceCapabilities[0] = surfaceCapabilities
9822
9823 return ?
9824}
9825
Jesse Hallad250842017-03-10 18:35:38 -08009826@extension("VK_KHR_surface") // 1
Jesse Hallb00daad2015-11-29 19:46:20 -08009827cmd VkResult vkGetPhysicalDeviceSurfaceFormatsKHR(
9828 VkPhysicalDevice physicalDevice,
Jesse Hall1356b0d2015-11-23 17:24:58 -08009829 VkSurfaceKHR surface,
Jesse Hall03b6fe12015-11-24 12:44:21 -08009830 u32* pSurfaceFormatCount,
Jesse Hall1356b0d2015-11-23 17:24:58 -08009831 VkSurfaceFormatKHR* pSurfaceFormats) {
Jesse Hallb00daad2015-11-29 19:46:20 -08009832 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
Michael Lentine88594d72015-11-12 12:49:45 -08009833
9834 count := as!u32(?)
Jesse Hall03b6fe12015-11-24 12:44:21 -08009835 pSurfaceFormatCount[0] = count
Michael Lentine88594d72015-11-12 12:49:45 -08009836 surfaceFormats := pSurfaceFormats[0:count]
9837
9838 for i in (0 .. count) {
9839 surfaceFormat := ?
9840 surfaceFormats[i] = surfaceFormat
9841 }
9842
9843 return ?
9844}
9845
Jesse Hallad250842017-03-10 18:35:38 -08009846@extension("VK_KHR_surface") // 1
Jesse Hallb00daad2015-11-29 19:46:20 -08009847cmd VkResult vkGetPhysicalDeviceSurfacePresentModesKHR(
9848 VkPhysicalDevice physicalDevice,
Jesse Hall1356b0d2015-11-23 17:24:58 -08009849 VkSurfaceKHR surface,
Jesse Hall03b6fe12015-11-24 12:44:21 -08009850 u32* pPresentModeCount,
Jesse Hall1356b0d2015-11-23 17:24:58 -08009851 VkPresentModeKHR* pPresentModes) {
Jesse Hallb00daad2015-11-29 19:46:20 -08009852 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
Michael Lentine88594d72015-11-12 12:49:45 -08009853
9854 count := as!u32(?)
Jesse Hall03b6fe12015-11-24 12:44:21 -08009855 pPresentModeCount[0] = count
Michael Lentine88594d72015-11-12 12:49:45 -08009856 presentModes := pPresentModes[0:count]
9857
9858 for i in (0 .. count) {
9859 presentMode := ?
9860 presentModes[i] = presentMode
9861 }
9862
9863 return ?
9864}
9865
Jesse Hallad250842017-03-10 18:35:38 -08009866@extension("VK_KHR_swapchain") // 2
Michael Lentine88594d72015-11-12 12:49:45 -08009867cmd VkResult vkCreateSwapchainKHR(
9868 VkDevice device,
9869 const VkSwapchainCreateInfoKHR* pCreateInfo,
Jesse Hall0e74f002015-11-30 11:37:59 -08009870 const VkAllocationCallbacks* pAllocator,
Michael Lentine88594d72015-11-12 12:49:45 -08009871 VkSwapchainKHR* pSwapchain) {
Jesse Hall1356b0d2015-11-23 17:24:58 -08009872 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR)
Michael Lentine88594d72015-11-12 12:49:45 -08009873 deviceObject := GetDevice(device)
9874
9875 swapchain := ?
9876 pSwapchain[0] = swapchain
9877 State.Swapchains[swapchain] = new!SwapchainObject(device: device)
9878
9879 return ?
9880}
9881
Jesse Hallad250842017-03-10 18:35:38 -08009882@extension("VK_KHR_swapchain") // 2
Jesse Hall1356b0d2015-11-23 17:24:58 -08009883cmd void vkDestroySwapchainKHR(
Michael Lentine88594d72015-11-12 12:49:45 -08009884 VkDevice device,
Jesse Hall0e74f002015-11-30 11:37:59 -08009885 VkSwapchainKHR swapchain,
9886 const VkAllocationCallbacks* pAllocator) {
Michael Lentine88594d72015-11-12 12:49:45 -08009887 deviceObject := GetDevice(device)
9888 swapchainObject := GetSwapchain(swapchain)
9889 assert(swapchainObject.device == device)
9890
9891 State.Swapchains[swapchain] = null
Michael Lentine88594d72015-11-12 12:49:45 -08009892}
9893
Jesse Hallad250842017-03-10 18:35:38 -08009894@extension("VK_KHR_swapchain") // 2
Michael Lentine88594d72015-11-12 12:49:45 -08009895cmd VkResult vkGetSwapchainImagesKHR(
9896 VkDevice device,
9897 VkSwapchainKHR swapchain,
Jesse Hall03b6fe12015-11-24 12:44:21 -08009898 u32* pSwapchainImageCount,
Michael Lentine88594d72015-11-12 12:49:45 -08009899 VkImage* pSwapchainImages) {
9900 deviceObject := GetDevice(device)
9901
9902 count := as!u32(?)
Jesse Hall03b6fe12015-11-24 12:44:21 -08009903 pSwapchainImageCount[0] = count
Michael Lentine88594d72015-11-12 12:49:45 -08009904 swapchainImages := pSwapchainImages[0:count]
9905
9906 for i in (0 .. count) {
9907 swapchainImage := ?
9908 swapchainImages[i] = swapchainImage
Jesse Hall1356b0d2015-11-23 17:24:58 -08009909 State.Images[swapchainImage] = new!ImageObject(device: device)
Michael Lentine88594d72015-11-12 12:49:45 -08009910 }
9911
9912 return ?
9913}
9914
Jesse Hallad250842017-03-10 18:35:38 -08009915@extension("VK_KHR_swapchain") // 2
Michael Lentine88594d72015-11-12 12:49:45 -08009916cmd VkResult vkAcquireNextImageKHR(
9917 VkDevice device,
9918 VkSwapchainKHR swapchain,
9919 u64 timeout,
9920 VkSemaphore semaphore,
Jesse Hall1356b0d2015-11-23 17:24:58 -08009921 VkFence fence,
Michael Lentine88594d72015-11-12 12:49:45 -08009922 u32* pImageIndex) {
9923 deviceObject := GetDevice(device)
9924 swapchainObject := GetSwapchain(swapchain)
9925
9926 imageIndex := ?
9927 pImageIndex[0] = imageIndex
9928
9929 return ?
9930}
9931
Jesse Hallad250842017-03-10 18:35:38 -08009932@extension("VK_KHR_swapchain") // 2
Michael Lentine88594d72015-11-12 12:49:45 -08009933cmd VkResult vkQueuePresentKHR(
9934 VkQueue queue,
Jesse Hallf4ab2b12015-11-30 16:04:55 -08009935 const VkPresentInfoKHR* pPresentInfo) {
Michael Lentine88594d72015-11-12 12:49:45 -08009936 queueObject := GetQueue(queue)
9937
9938 presentInfo := ?
9939 pPresentInfo[0] = presentInfo
9940
9941 return ?
9942}
9943
Ian Elliott28bd2c32017-10-13 09:21:12 -06009944@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009945@extension("VK_KHR_swapchain") // 2
9946cmd VkResult vkGetDeviceGroupPresentCapabilitiesKHR(
9947 VkDevice device,
9948 VkDeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities) {
9949 return ?
9950}
9951
Ian Elliott28bd2c32017-10-13 09:21:12 -06009952@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009953@extension("VK_KHR_swapchain") // 2
9954cmd VkResult vkGetDeviceGroupSurfacePresentModesKHR(
9955 VkDevice device,
9956 VkSurfaceKHR surface,
9957 VkDeviceGroupPresentModeFlagsKHR* pModes) {
9958 return ?
9959}
9960
Ian Elliott28bd2c32017-10-13 09:21:12 -06009961@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009962@extension("VK_KHR_swapchain") // 2
9963cmd VkResult vkGetPhysicalDevicePresentRectanglesKHR(
9964 VkPhysicalDevice physicalDevice,
9965 VkSurfaceKHR surface,
9966 u32* pRectCount,
9967 VkRect2D* pRects) {
9968 return ?
9969}
9970
Ian Elliott28bd2c32017-10-13 09:21:12 -06009971@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009972@extension("VK_KHR_swapchain") // 2
9973cmd VkResult vkAcquireNextImage2KHR(
9974 VkDevice device,
9975 const VkAcquireNextImageInfoKHR* pAcquireInfo,
9976 u32* pImageIndex) {
9977 return ?
9978}
9979
Jesse Hallad250842017-03-10 18:35:38 -08009980@extension("VK_KHR_display") // 3
Jesse Hall1356b0d2015-11-23 17:24:58 -08009981cmd VkResult vkGetPhysicalDeviceDisplayPropertiesKHR(
9982 VkPhysicalDevice physicalDevice,
Jesse Hall03b6fe12015-11-24 12:44:21 -08009983 u32* pPropertyCount,
Jesse Hall1356b0d2015-11-23 17:24:58 -08009984 VkDisplayPropertiesKHR* pProperties) {
9985 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
9986 return ?
9987}
9988
Jesse Hallad250842017-03-10 18:35:38 -08009989@extension("VK_KHR_display") // 3
Jesse Halla6429252015-11-29 18:59:42 -08009990cmd VkResult vkGetPhysicalDeviceDisplayPlanePropertiesKHR(
9991 VkPhysicalDevice physicalDevice,
9992 u32* pPropertyCount,
9993 VkDisplayPlanePropertiesKHR* pProperties) {
9994 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
9995 return ?
9996}
9997
Jesse Hallad250842017-03-10 18:35:38 -08009998@extension("VK_KHR_display") // 3
Jesse Halla6429252015-11-29 18:59:42 -08009999cmd VkResult vkGetDisplayPlaneSupportedDisplaysKHR(
10000 VkPhysicalDevice physicalDevice,
Jesse Hall3dd678a2016-01-08 21:52:01 -080010001 u32 planeIndex,
Jesse Hallf4ab2b12015-11-30 16:04:55 -080010002 u32* pDisplayCount,
10003 VkDisplayKHR* pDisplays) {
Jesse Halla6429252015-11-29 18:59:42 -080010004 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
10005 return ?
10006}
10007
Jesse Hallad250842017-03-10 18:35:38 -080010008@extension("VK_KHR_display") // 3
Jesse Hall1356b0d2015-11-23 17:24:58 -080010009cmd VkResult vkGetDisplayModePropertiesKHR(
10010 VkPhysicalDevice physicalDevice,
10011 VkDisplayKHR display,
Jesse Hall03b6fe12015-11-24 12:44:21 -080010012 u32* pPropertyCount,
10013 VkDisplayModePropertiesKHR* pProperties) {
Jesse Hall1356b0d2015-11-23 17:24:58 -080010014 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
10015 return ?
10016}
10017
Jesse Hallad250842017-03-10 18:35:38 -080010018@extension("VK_KHR_display") // 3
Jesse Hall1356b0d2015-11-23 17:24:58 -080010019cmd VkResult vkCreateDisplayModeKHR(
10020 VkPhysicalDevice physicalDevice,
10021 VkDisplayKHR display,
10022 const VkDisplayModeCreateInfoKHR* pCreateInfo,
Jesse Hall0e74f002015-11-30 11:37:59 -080010023 const VkAllocationCallbacks* pAllocator,
Jesse Hall1356b0d2015-11-23 17:24:58 -080010024 VkDisplayModeKHR* pMode) {
10025 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
10026 return ?
10027}
10028
Jesse Hallad250842017-03-10 18:35:38 -080010029@extension("VK_KHR_display") // 3
Jesse Halla6429252015-11-29 18:59:42 -080010030cmd VkResult vkGetDisplayPlaneCapabilitiesKHR(
Jesse Hall1356b0d2015-11-23 17:24:58 -080010031 VkPhysicalDevice physicalDevice,
Jesse Hall9ba8bc82015-11-30 16:22:16 -080010032 VkDisplayModeKHR mode,
Jesse Hall1356b0d2015-11-23 17:24:58 -080010033 u32 planeIndex,
Jesse Halla6429252015-11-29 18:59:42 -080010034 VkDisplayPlaneCapabilitiesKHR* pCapabilities) {
Jesse Hall1356b0d2015-11-23 17:24:58 -080010035 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
10036 return ?
10037}
10038
Jesse Hallad250842017-03-10 18:35:38 -080010039@extension("VK_KHR_display") // 3
Jesse Halla6429252015-11-29 18:59:42 -080010040cmd VkResult vkCreateDisplayPlaneSurfaceKHR(
10041 VkInstance instance,
10042 const VkDisplaySurfaceCreateInfoKHR* pCreateInfo,
Jesse Hall0e74f002015-11-30 11:37:59 -080010043 const VkAllocationCallbacks* pAllocator,
Jesse Halla6429252015-11-29 18:59:42 -080010044 VkSurfaceKHR* pSurface) {
10045 return ?
10046}
10047
Jesse Hallad250842017-03-10 18:35:38 -080010048@extension("VK_KHR_display_swapchain") // 4
Jesse Hall9ba8bc82015-11-30 16:22:16 -080010049cmd VkResult vkCreateSharedSwapchainsKHR(
10050 VkDevice device,
10051 u32 swapchainCount,
10052 const VkSwapchainCreateInfoKHR* pCreateInfos,
10053 const VkAllocationCallbacks* pAllocator,
10054 VkSwapchainKHR* pSwapchains) {
10055 return ?
10056}
10057
Jesse Hallad250842017-03-10 18:35:38 -080010058@extension("VK_KHR_xlib_surface") // 5
Jesse Halla6429252015-11-29 18:59:42 -080010059cmd VkResult vkCreateXlibSurfaceKHR(
Jesse Hall1356b0d2015-11-23 17:24:58 -080010060 VkInstance instance,
Jesse Hallf9fa9a52016-01-08 16:08:51 -080010061 const VkXlibSurfaceCreateInfoKHR* pCreateInfo,
Jesse Hall0e74f002015-11-30 11:37:59 -080010062 const VkAllocationCallbacks* pAllocator,
Jesse Hall1356b0d2015-11-23 17:24:58 -080010063 VkSurfaceKHR* pSurface) {
10064 instanceObject := GetInstance(instance)
10065 return ?
10066}
10067
Jesse Hallad250842017-03-10 18:35:38 -080010068@extension("VK_KHR_xlib_surface") // 5
Jesse Halla6429252015-11-29 18:59:42 -080010069cmd VkBool32 vkGetPhysicalDeviceXlibPresentationSupportKHR(
10070 VkPhysicalDevice physicalDevice,
10071 u32 queueFamilyIndex,
10072 platform.Display* dpy,
Jesse Hall65ab5522015-11-30 00:07:16 -080010073 platform.VisualID visualID) {
Jesse Halla6429252015-11-29 18:59:42 -080010074 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
10075 return ?
10076}
10077
Jesse Hallad250842017-03-10 18:35:38 -080010078@extension("VK_KHR_xcb_surface") // 6
Jesse Hallf9fa9a52016-01-08 16:08:51 -080010079cmd VkResult vkCreateXcbSurfaceKHR(
Jesse Hall1356b0d2015-11-23 17:24:58 -080010080 VkInstance instance,
Jesse Hallf9fa9a52016-01-08 16:08:51 -080010081 const VkXcbSurfaceCreateInfoKHR* pCreateInfo,
Jesse Hall0e74f002015-11-30 11:37:59 -080010082 const VkAllocationCallbacks* pAllocator,
Jesse Hall1356b0d2015-11-23 17:24:58 -080010083 VkSurfaceKHR* pSurface) {
10084 instanceObject := GetInstance(instance)
10085 return ?
10086}
10087
Jesse Hallad250842017-03-10 18:35:38 -080010088@extension("VK_KHR_xcb_surface") // 6
Jesse Halla6429252015-11-29 18:59:42 -080010089cmd VkBool32 vkGetPhysicalDeviceXcbPresentationSupportKHR(
10090 VkPhysicalDevice physicalDevice,
10091 u32 queueFamilyIndex,
10092 platform.xcb_connection_t* connection,
10093 platform.xcb_visualid_t visual_id) {
10094 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
10095 return ?
10096}
10097
Jesse Hallad250842017-03-10 18:35:38 -080010098@extension("VK_KHR_wayland_surface") // 7
Jesse Hall1356b0d2015-11-23 17:24:58 -080010099cmd VkResult vkCreateWaylandSurfaceKHR(
10100 VkInstance instance,
Jesse Hallf9fa9a52016-01-08 16:08:51 -080010101 const VkWaylandSurfaceCreateInfoKHR* pCreateInfo,
Jesse Hall0e74f002015-11-30 11:37:59 -080010102 const VkAllocationCallbacks* pAllocator,
Jesse Hall1356b0d2015-11-23 17:24:58 -080010103 VkSurfaceKHR* pSurface) {
10104 instanceObject := GetInstance(instance)
10105 return ?
10106}
10107
Jesse Hallad250842017-03-10 18:35:38 -080010108@extension("VK_KHR_wayland_surface") // 7
Jesse Halla6429252015-11-29 18:59:42 -080010109cmd VkBool32 vkGetPhysicalDeviceWaylandPresentationSupportKHR(
10110 VkPhysicalDevice physicalDevice,
10111 u32 queueFamilyIndex,
10112 platform.wl_display* display) {
10113 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
10114 return ?
10115}
10116
Jesse Hallad250842017-03-10 18:35:38 -080010117@extension("VK_KHR_mir_surface") // 8
Jesse Hall1356b0d2015-11-23 17:24:58 -080010118cmd VkResult vkCreateMirSurfaceKHR(
10119 VkInstance instance,
Jesse Hallf9fa9a52016-01-08 16:08:51 -080010120 const VkMirSurfaceCreateInfoKHR* pCreateInfo,
Jesse Hall0e74f002015-11-30 11:37:59 -080010121 const VkAllocationCallbacks* pAllocator,
Jesse Hall1356b0d2015-11-23 17:24:58 -080010122 VkSurfaceKHR* pSurface) {
10123 instanceObject := GetInstance(instance)
10124 return ?
10125}
10126
Jesse Hallad250842017-03-10 18:35:38 -080010127@extension("VK_KHR_mir_surface") // 8
Jesse Halla6429252015-11-29 18:59:42 -080010128cmd VkBool32 vkGetPhysicalDeviceMirPresentationSupportKHR(
10129 VkPhysicalDevice physicalDevice,
10130 u32 queueFamilyIndex,
10131 platform.MirConnection* connection) {
10132 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
10133 return ?
10134}
10135
Jesse Hallad250842017-03-10 18:35:38 -080010136@extension("VK_KHR_android_surface") // 9
Jesse Hall1356b0d2015-11-23 17:24:58 -080010137cmd VkResult vkCreateAndroidSurfaceKHR(
10138 VkInstance instance,
Jesse Hallf9fa9a52016-01-08 16:08:51 -080010139 const VkAndroidSurfaceCreateInfoKHR* pCreateInfo,
Jesse Hall0e74f002015-11-30 11:37:59 -080010140 const VkAllocationCallbacks* pAllocator,
Jesse Hall1356b0d2015-11-23 17:24:58 -080010141 VkSurfaceKHR* pSurface) {
10142 instanceObject := GetInstance(instance)
10143 return ?
10144}
10145
Jesse Hallad250842017-03-10 18:35:38 -080010146@extension("VK_KHR_win32_surface") // 10
Jesse Hall1356b0d2015-11-23 17:24:58 -080010147cmd VkResult vkCreateWin32SurfaceKHR(
10148 VkInstance instance,
Jesse Hallf9fa9a52016-01-08 16:08:51 -080010149 const VkWin32SurfaceCreateInfoKHR* pCreateInfo,
Jesse Hall0e74f002015-11-30 11:37:59 -080010150 const VkAllocationCallbacks* pAllocator,
Jesse Hall1356b0d2015-11-23 17:24:58 -080010151 VkSurfaceKHR* pSurface) {
10152 instanceObject := GetInstance(instance)
10153 return ?
10154}
10155
Jesse Hallad250842017-03-10 18:35:38 -080010156@extension("VK_KHR_win32_surface") // 10
Jesse Halla6429252015-11-29 18:59:42 -080010157cmd VkResult vkGetPhysicalDeviceWin32PresentationSupportKHR(
10158 VkPhysicalDevice physicalDevice,
10159 u32 queueFamilyIndex) {
Jesse Halle2948d82016-02-25 04:19:32 -080010160 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
Jesse Halla6429252015-11-29 18:59:42 -080010161 return ?
10162}
10163
Jesse Hallad250842017-03-10 18:35:38 -080010164@extension("VK_ANDROID_native_buffer") // 11
Jesse Halld1abd742017-02-09 21:45:51 -080010165@optional
Chia-I Wub262ddc2016-03-22 07:38:20 +080010166cmd VkResult vkGetSwapchainGrallocUsageANDROID(
10167 VkDevice device,
10168 VkFormat format,
10169 VkImageUsageFlags imageUsage,
Jesse Halld1abd742017-02-09 21:45:51 -080010170 s32* grallocUsage) {
Chia-I Wub262ddc2016-03-22 07:38:20 +080010171 return ?
10172}
10173
Jesse Hallad250842017-03-10 18:35:38 -080010174@extension("VK_ANDROID_native_buffer") // 11
Jesse Halld1abd742017-02-09 21:45:51 -080010175@optional
Chris Forbes8e4438b2016-12-07 16:26:49 +130010176cmd VkResult vkGetSwapchainGrallocUsage2ANDROID(
10177 VkDevice device,
10178 VkFormat format,
10179 VkImageUsageFlags imageUsage,
10180 VkSwapchainImageUsageFlagsANDROID swapchainImageUsage,
Jesse Halld1abd742017-02-09 21:45:51 -080010181 u64* grallocConsumerUsage,
10182 u64* grallocProducerUsage) {
Chris Forbes8e4438b2016-12-07 16:26:49 +130010183 return ?
10184}
10185
Jesse Hallad250842017-03-10 18:35:38 -080010186@extension("VK_ANDROID_native_buffer") // 11
Chia-I Wub262ddc2016-03-22 07:38:20 +080010187cmd VkResult vkAcquireImageANDROID(
10188 VkDevice device,
10189 VkImage image,
10190 int nativeFenceFd,
10191 VkSemaphore semaphore,
10192 VkFence fence) {
10193 return ?
10194}
10195
Jesse Hallad250842017-03-10 18:35:38 -080010196@extension("VK_ANDROID_native_buffer") // 11
Chia-I Wub262ddc2016-03-22 07:38:20 +080010197cmd VkResult vkQueueSignalReleaseImageANDROID(
10198 VkQueue queue,
10199 u32 waitSemaphoreCount,
10200 const VkSemaphore* pWaitSemaphores,
10201 VkImage image,
10202 int* pNativeFenceFd) {
10203 return ?
10204}
10205
Jesse Hallad250842017-03-10 18:35:38 -080010206@extension("VK_EXT_debug_report") // 12
10207@external type void* PFN_vkDebugReportCallbackEXT
10208@extension("VK_EXT_debug_report") // 12
10209@pfn cmd VkBool32 vkDebugReportCallbackEXT(
10210 VkDebugReportFlagsEXT flags,
10211 VkDebugReportObjectTypeEXT objectType,
10212 u64 object,
10213 platform.size_t location,
10214 s32 messageCode,
10215 const char* pLayerPrefix,
10216 const char* pMessage,
10217 void* pUserData) {
10218 return ?
10219}
10220
10221@extension("VK_EXT_debug_report") // 12
10222cmd VkResult vkCreateDebugReportCallbackEXT(
10223 VkInstance instance,
10224 const VkDebugReportCallbackCreateInfoEXT* pCreateInfo,
10225 const VkAllocationCallbacks* pAllocator,
10226 VkDebugReportCallbackEXT* pCallback) {
10227 return ?
10228}
10229
10230@extension("VK_EXT_debug_report") // 12
10231cmd void vkDestroyDebugReportCallbackEXT(
10232 VkInstance instance,
10233 VkDebugReportCallbackEXT callback,
10234 const VkAllocationCallbacks* pAllocator) {
10235}
10236
10237@extension("VK_EXT_debug_report") // 12
10238cmd void vkDebugReportMessageEXT(
10239 VkInstance instance,
10240 VkDebugReportFlagsEXT flags,
10241 VkDebugReportObjectTypeEXT objectType,
10242 u64 object,
10243 platform.size_t location,
10244 s32 messageCode,
10245 const char* pLayerPrefix,
10246 const char* pMessage) {
10247}
10248
10249@extension("VK_EXT_debug_marker") // 23
10250cmd VkResult vkDebugMarkerSetObjectTagEXT(
10251 VkDevice device,
Jesse Hall77726222017-09-19 14:49:27 -050010252 const VkDebugMarkerObjectTagInfoEXT* pTagInfo) {
Jesse Hallad250842017-03-10 18:35:38 -080010253 return ?
10254}
10255
10256@extension("VK_EXT_debug_marker") // 23
10257cmd VkResult vkDebugMarkerSetObjectNameEXT(
10258 VkDevice device,
Jesse Hall77726222017-09-19 14:49:27 -050010259 const VkDebugMarkerObjectNameInfoEXT* pNameInfo) {
Jesse Hallad250842017-03-10 18:35:38 -080010260 return ?
10261}
10262
10263@extension("VK_EXT_debug_marker") // 23
10264cmd void vkCmdDebugMarkerBeginEXT(
10265 VkCommandBuffer commandBuffer,
Jesse Hall77726222017-09-19 14:49:27 -050010266 const VkDebugMarkerMarkerInfoEXT* pMarkerInfo) {
Jesse Hallad250842017-03-10 18:35:38 -080010267}
10268
10269@extension("VK_EXT_debug_marker") // 23
10270cmd void vkCmdDebugMarkerEndEXT(
10271 VkCommandBuffer commandBuffer) {
10272}
10273
10274@extension("VK_EXT_debug_marker") // 23
10275cmd void vkCmdDebugMarkerInsertEXT(
10276 VkCommandBuffer commandBuffer,
Jesse Hall77726222017-09-19 14:49:27 -050010277 const VkDebugMarkerMarkerInfoEXT* pMarkerInfo) {
Jesse Hallad250842017-03-10 18:35:38 -080010278}
10279
10280@extension("VK_AMD_draw_indirect_count") // 34
10281cmd void vkCmdDrawIndirectCountAMD(
10282 VkCommandBuffer commandBuffer,
10283 VkBuffer buffer,
10284 VkDeviceSize offset,
10285 VkBuffer countBuffer,
10286 VkDeviceSize countBufferOffset,
10287 u32 maxDrawCount,
10288 u32 stride) {
10289}
10290
10291@extension("VK_AMD_draw_indirect_count") // 34
10292cmd void vkCmdDrawIndexedIndirectCountAMD(
10293 VkCommandBuffer commandBuffer,
10294 VkBuffer buffer,
10295 VkDeviceSize offset,
10296 VkBuffer countBuffer,
10297 VkDeviceSize countBufferOffset,
10298 u32 maxDrawCount,
10299 u32 stride) {
10300}
10301
Jesse Hall8c954d32018-01-17 22:06:20 -080010302@extension("VK_AMD_shader_info") // 43
10303cmd VkResult vkGetShaderInfoAMD(
10304 VkDevice device,
10305 VkPipeline pipeline,
10306 VkShaderStageFlagBits shaderStage,
10307 VkShaderInfoTypeAMD infoType,
10308 platform.size_t* pInfoSize,
10309 void* pInfo) {
10310 return ?
10311}
10312
Jesse Hallad250842017-03-10 18:35:38 -080010313@extension("VK_NV_external_memory_capabilities") // 56
10314cmd VkResult vkGetPhysicalDeviceExternalImageFormatPropertiesNV(
10315 VkPhysicalDevice physicalDevice,
10316 VkFormat format,
10317 VkImageType type,
10318 VkImageTiling tiling,
10319 VkImageUsageFlags usage,
10320 VkImageCreateFlags flags,
10321 VkExternalMemoryHandleTypeFlagsNV externalHandleType,
10322 VkExternalImageFormatPropertiesNV* pExternalImageFormatProperties) {
10323 return ?
10324}
10325
10326@extension("VK_NV_external_memory_win32") // 58
10327cmd VkResult vkGetMemoryWin32HandleNV(
10328 VkDevice device,
10329 VkDeviceMemory memory,
10330 VkExternalMemoryHandleTypeFlagsNV handleType,
10331 platform.HANDLE* pHandle) {
10332 return ?
10333}
10334
10335@extension("VK_KHR_get_physical_device_properties2") // 60
10336cmd void vkGetPhysicalDeviceFeatures2KHR(
10337 VkPhysicalDevice physicalDevice,
10338 VkPhysicalDeviceFeatures2KHR* pFeatures) {
10339}
10340
10341@extension("VK_KHR_get_physical_device_properties2") // 60
10342cmd void vkGetPhysicalDeviceProperties2KHR(
10343 VkPhysicalDevice physicalDevice,
10344 VkPhysicalDeviceProperties2KHR* pProperties) {
10345}
10346
10347@extension("VK_KHR_get_physical_device_properties2") // 60
10348cmd void vkGetPhysicalDeviceFormatProperties2KHR(
10349 VkPhysicalDevice physicalDevice,
10350 VkFormat format,
10351 VkFormatProperties2KHR* pFormatProperties) {
10352}
10353
10354@extension("VK_KHR_get_physical_device_properties2") // 60
10355cmd VkResult vkGetPhysicalDeviceImageFormatProperties2KHR(
10356 VkPhysicalDevice physicalDevice,
10357 const VkPhysicalDeviceImageFormatInfo2KHR* pImageFormatInfo,
10358 VkImageFormatProperties2KHR* pImageFormatProperties) {
10359 return ?
10360}
10361
10362@extension("VK_KHR_get_physical_device_properties2") // 60
10363cmd void vkGetPhysicalDeviceQueueFamilyProperties2KHR(
10364 VkPhysicalDevice physicalDevice,
10365 u32* pQueueFamilyPropertyCount,
10366 VkQueueFamilyProperties2KHR* pQueueFamilyProperties) {
10367}
10368
10369@extension("VK_KHR_get_physical_device_properties2") // 60
10370cmd void vkGetPhysicalDeviceMemoryProperties2KHR(
10371 VkPhysicalDevice physicalDevice,
10372 VkPhysicalDeviceMemoryProperties2KHR* pMemoryProperties) {
10373}
10374
10375@extension("VK_KHR_get_physical_device_properties2") // 60
10376cmd void vkGetPhysicalDeviceSparseImageFormatProperties2KHR(
10377 VkPhysicalDevice physicalDevice,
10378 const VkPhysicalDeviceSparseImageFormatInfo2KHR* pFormatInfo,
10379 u32* pPropertyCount,
10380 VkSparseImageFormatProperties2KHR* pProperties) {
10381}
10382
Daniel Koch09f7bf92017-10-05 00:26:58 -040010383@extension("VK_KHR_device_group") // 61
10384cmd void vkGetDeviceGroupPeerMemoryFeaturesKHR(
Jesse Hallad250842017-03-10 18:35:38 -080010385 VkDevice device,
10386 u32 heapIndex,
10387 u32 localDeviceIndex,
10388 u32 remoteDeviceIndex,
Daniel Koch09f7bf92017-10-05 00:26:58 -040010389 VkPeerMemoryFeatureFlagsKHR* pPeerMemoryFeatures) {
Jesse Hallad250842017-03-10 18:35:38 -080010390}
10391
Daniel Koch09f7bf92017-10-05 00:26:58 -040010392@extension("VK_KHR_device_group") // 61
10393cmd void vkCmdSetDeviceMaskKHR(
Jesse Hallad250842017-03-10 18:35:38 -080010394 VkCommandBuffer commandBuffer,
10395 u32 deviceMask) {
10396}
10397
Jesse Hallad250842017-03-10 18:35:38 -080010398
Daniel Koch09f7bf92017-10-05 00:26:58 -040010399@extension("VK_KHR_device_group") // 61
10400cmd void vkCmdDispatchBaseKHR(
Jesse Hallad250842017-03-10 18:35:38 -080010401 VkCommandBuffer commandBuffer,
10402 u32 baseGroupX,
10403 u32 baseGroupY,
10404 u32 baseGroupZ,
10405 u32 groupCountX,
10406 u32 groupCountY,
10407 u32 groupCountZ) {
10408}
10409
Jesse Hallad250842017-03-10 18:35:38 -080010410@extension("VK_NN_vi_surface") // 63
10411cmd VkResult vkCreateViSurfaceNN(
10412 VkInstance instance,
10413 const VkViSurfaceCreateInfoNN* pCreateInfo,
10414 const VkAllocationCallbacks* pAllocator,
10415 VkSurfaceKHR* pSurface) {
10416 return ?
10417}
10418
10419@extension("VK_KHR_maintenance1") // 70
10420cmd void vkTrimCommandPoolKHR(
10421 VkDevice device,
10422 VkCommandPool commandPool,
10423 VkCommandPoolTrimFlagsKHR flags) {
10424}
10425
Daniel Koch09f7bf92017-10-05 00:26:58 -040010426@extension("VK_KHR_device_group_creation") // 71
10427@threadSafety("system")
10428cmd VkResult vkEnumeratePhysicalDeviceGroupsKHR(
Jesse Hallad250842017-03-10 18:35:38 -080010429 VkInstance instance,
10430 u32* pPhysicalDeviceGroupCount,
Daniel Koch09f7bf92017-10-05 00:26:58 -040010431 VkPhysicalDeviceGroupPropertiesKHR* pPhysicalDeviceGroupProperties) {
10432 instanceObject := GetInstance(instance)
10433
10434 physicalDeviceGroupCount := as!u32(?)
10435 pPhysicalDeviceGroupCount[0] = physicalDeviceGroupCount
10436 physicalDevices := pPhysicalDeviceGroupProperties[0:physicalDeviceGroupCount]
10437
10438 for i in (0 .. physicalDeviceGroupCount) {
10439 physicalDevice := ?
10440 physicalDevices[i] = physicalDevice
10441 if !(physicalDevice in State.PhysicalDevices) {
10442 State.PhysicalDevices[physicalDevice] = new!PhysicalDeviceObject(instance: instance)
10443 }
10444 }
10445
Jesse Hallad250842017-03-10 18:35:38 -080010446 return ?
10447}
10448
Jesse Hall9492f992017-08-28 12:10:06 -070010449@extension("VK_KHR_external_memory_capabilities") // 72
10450cmd void vkGetPhysicalDeviceExternalBufferPropertiesKHR(
Jesse Hallad250842017-03-10 18:35:38 -080010451 VkPhysicalDevice physicalDevice,
Jesse Hall9492f992017-08-28 12:10:06 -070010452 const VkPhysicalDeviceExternalBufferInfoKHR* pExternalBufferInfo,
10453 VkExternalBufferPropertiesKHR* pExternalBufferProperties) {
Jesse Hallad250842017-03-10 18:35:38 -080010454}
10455
Jesse Hall9492f992017-08-28 12:10:06 -070010456@extension("VK_KHR_external_memory_win32") // 74
10457cmd VkResult vkGetMemoryWin32HandleKHR(
Jesse Hallad250842017-03-10 18:35:38 -080010458 VkDevice device,
Jesse Hall9492f992017-08-28 12:10:06 -070010459 const VkMemoryGetWin32HandleInfoKHR* pGetWin32HandleInfo,
Jesse Hallad250842017-03-10 18:35:38 -080010460 platform.HANDLE* pHandle) {
10461 return ?
10462}
10463
Jesse Hall9492f992017-08-28 12:10:06 -070010464@extension("VK_KHR_external_memory_win32") // 74
10465cmd VkResult vkGetMemoryWin32HandlePropertiesKHR(
Jesse Hallad250842017-03-10 18:35:38 -080010466 VkDevice device,
Jesse Hall9492f992017-08-28 12:10:06 -070010467 VkExternalMemoryHandleTypeFlagBitsKHR handleType,
Jesse Hallad250842017-03-10 18:35:38 -080010468 platform.HANDLE handle,
Jesse Hall9492f992017-08-28 12:10:06 -070010469 VkMemoryWin32HandlePropertiesKHR* pMemoryWin32HandleProperties) {
Jesse Hallad250842017-03-10 18:35:38 -080010470 return ?
10471}
10472
Jesse Hall9492f992017-08-28 12:10:06 -070010473@extension("VK_KHR_external_memory_fd") // 75
10474cmd VkResult vkGetMemoryFdKHR(
Jesse Hallad250842017-03-10 18:35:38 -080010475 VkDevice device,
Jesse Hall9492f992017-08-28 12:10:06 -070010476 const VkMemoryGetFdInfoKHR* pGetFdInfo,
Jesse Hallad250842017-03-10 18:35:38 -080010477 s32* pFd) {
10478 return ?
10479}
10480
Jesse Hall9492f992017-08-28 12:10:06 -070010481@extension("VK_KHR_external_memory_fd") // 75
10482cmd VkResult vkGetMemoryFdPropertiesKHR(
Jesse Hallad250842017-03-10 18:35:38 -080010483 VkDevice device,
Jesse Hall9492f992017-08-28 12:10:06 -070010484 VkExternalMemoryHandleTypeFlagBitsKHR handleType,
Jesse Hallad250842017-03-10 18:35:38 -080010485 s32 fd,
Jesse Hall9492f992017-08-28 12:10:06 -070010486 VkMemoryFdPropertiesKHR* pMemoryFdProperties) {
Jesse Hallad250842017-03-10 18:35:38 -080010487 return ?
10488}
10489
Jesse Hall9492f992017-08-28 12:10:06 -070010490@extension("VK_KHR_external_semaphore_capabilities") // 77
10491cmd void vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(
Jesse Hallad250842017-03-10 18:35:38 -080010492 VkPhysicalDevice physicalDevice,
Jesse Hall9492f992017-08-28 12:10:06 -070010493 const VkPhysicalDeviceExternalSemaphoreInfoKHR* pExternalSemaphoreInfo,
10494 VkExternalSemaphorePropertiesKHR* pExternalSemaphoreProperties) {
Jesse Hallad250842017-03-10 18:35:38 -080010495}
10496
Jesse Hall9492f992017-08-28 12:10:06 -070010497@extension("VK_KHR_external_semaphore_win32") // 79
10498cmd VkResult vkImportSemaphoreWin32HandleKHR(
Jesse Hallad250842017-03-10 18:35:38 -080010499 VkDevice device,
Jesse Hall9492f992017-08-28 12:10:06 -070010500 const VkImportSemaphoreWin32HandleInfoKHR* pImportSemaphoreWin32HandleInfo) {
Jesse Hallad250842017-03-10 18:35:38 -080010501 return ?
10502}
10503
Jesse Hall9492f992017-08-28 12:10:06 -070010504@extension("VK_KHR_external_semaphore_win32") // 79
10505cmd VkResult vkGetSemaphoreWin32HandleKHR(
Jesse Hallad250842017-03-10 18:35:38 -080010506 VkDevice device,
Jesse Hall9492f992017-08-28 12:10:06 -070010507 const VkSemaphoreGetWin32HandleInfoKHR* pGetWin32HandleInfo,
Jesse Hallad250842017-03-10 18:35:38 -080010508 platform.HANDLE* pHandle) {
10509 return ?
10510}
10511
Jesse Hall9492f992017-08-28 12:10:06 -070010512@extension("VK_KHR_external_semaphore_fd") // 80
10513cmd VkResult vkImportSemaphoreFdKHR(
Jesse Hallad250842017-03-10 18:35:38 -080010514 VkDevice device,
Jesse Hall9492f992017-08-28 12:10:06 -070010515 const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo) {
Jesse Hallad250842017-03-10 18:35:38 -080010516 return ?
10517}
10518
Jesse Hall9492f992017-08-28 12:10:06 -070010519@extension("VK_KHR_external_semaphore_fd") // 80
10520cmd VkResult vkGetSemaphoreFdKHR(
Jesse Hallad250842017-03-10 18:35:38 -080010521 VkDevice device,
Jesse Hall9492f992017-08-28 12:10:06 -070010522 const VkSemaphoreGetFdInfoKHR* pGetFdInfo,
Jesse Hallad250842017-03-10 18:35:38 -080010523 s32* pFd) {
10524 return ?
10525}
10526
10527@extension("VK_KHR_push_descriptor") // 81
10528cmd void vkCmdPushDescriptorSetKHR(
10529 VkCommandBuffer commandBuffer,
10530 VkPipelineBindPoint pipelineBindPoint,
10531 VkPipelineLayout layout,
10532 u32 set,
10533 u32 descriptorWriteCount,
10534 const VkWriteDescriptorSet* pDescriptorWrites) {
10535}
10536
Jesse Halla13a3cf2018-07-09 15:51:52 -070010537@extension("VK_EXT_conditional_rendering") // 82
10538cmd void vkCmdBeginConditionalRenderingEXT(
10539 VkCommandBuffer commandBuffer,
10540 const VkConditionalRenderingBeginInfoEXT* pConditionalRenderingBegin) {
10541}
10542
10543@extension("VK_EXT_conditional_rendering") // 82
10544cmd void vkCmdEndConditionalRenderingEXT(
10545 VkCommandBuffer commandBuffer) {
10546}
10547
Jesse Hallad250842017-03-10 18:35:38 -080010548@extension("VK_KHR_descriptor_update_template") // 86
10549cmd VkResult vkCreateDescriptorUpdateTemplateKHR(
10550 VkDevice device,
10551 const VkDescriptorUpdateTemplateCreateInfoKHR* pCreateInfo,
10552 const VkAllocationCallbacks* pAllocator,
10553 VkDescriptorUpdateTemplateKHR* pDescriptorUpdateTemplate) {
10554 return ?
10555}
10556
10557@extension("VK_KHR_descriptor_update_template") // 86
10558cmd void vkDestroyDescriptorUpdateTemplateKHR(
10559 VkDevice device,
10560 VkDescriptorUpdateTemplateKHR descriptorUpdateTemplate,
10561 const VkAllocationCallbacks* pAllocator) {
10562}
10563
10564@extension("VK_KHR_descriptor_update_template") // 86
10565cmd void vkUpdateDescriptorSetWithTemplateKHR(
10566 VkDevice device,
10567 VkDescriptorSet descriptorSet,
10568 VkDescriptorUpdateTemplateKHR descriptorUpdateTemplate,
10569 const void* pData) {
10570}
10571
10572@extension("VK_KHR_descriptor_update_template") // 86
10573cmd void vkCmdPushDescriptorSetWithTemplateKHR(
10574 VkCommandBuffer commandBuffer,
10575 VkDescriptorUpdateTemplateKHR descriptorUpdateTemplate,
10576 VkPipelineLayout layout,
10577 u32 set,
10578 const void* pData) {
10579}
10580
10581@extension("VK_NVX_device_generated_commands") // 87
10582cmd void vkCmdProcessCommandsNVX(
10583 VkCommandBuffer commandBuffer,
10584 const VkCmdProcessCommandsInfoNVX* pProcessCommandsInfo) {
10585}
10586
10587@extension("VK_NVX_device_generated_commands") // 87
10588cmd void vkCmdReserveSpaceForCommandsNVX(
10589 VkCommandBuffer commandBuffer,
10590 const VkCmdReserveSpaceForCommandsInfoNVX* pReserveSpaceInfo) {
10591}
10592
10593@extension("VK_NVX_device_generated_commands") // 87
10594cmd VkResult vkCreateIndirectCommandsLayoutNVX(
10595 VkDevice device,
10596 const VkIndirectCommandsLayoutCreateInfoNVX* pCreateInfo,
10597 const VkAllocationCallbacks* pAllocator,
10598 VkIndirectCommandsLayoutNVX* pIndirectCommandsLayout) {
10599 return ?
10600}
10601
10602@extension("VK_NVX_device_generated_commands") // 87
10603cmd void vkDestroyIndirectCommandsLayoutNVX(
10604 VkDevice device,
10605 VkIndirectCommandsLayoutNVX indirectCommandsLayout,
10606 const VkAllocationCallbacks* pAllocator) {
10607}
10608
10609@extension("VK_NVX_device_generated_commands") // 87
10610cmd VkResult vkCreateObjectTableNVX(
10611 VkDevice device,
10612 const VkObjectTableCreateInfoNVX* pCreateInfo,
10613 const VkAllocationCallbacks* pAllocator,
10614 VkObjectTableNVX* pObjectTable) {
10615 return ?
10616}
10617
10618@extension("VK_NVX_device_generated_commands") // 87
10619cmd void vkDestroyObjectTableNVX(
10620 VkDevice device,
10621 VkObjectTableNVX objectTable,
10622 const VkAllocationCallbacks* pAllocator) {
10623}
10624
10625@extension("VK_NVX_device_generated_commands") // 87
10626cmd VkResult vkRegisterObjectsNVX(
10627 VkDevice device,
10628 VkObjectTableNVX objectTable,
10629 u32 objectCount,
10630 const VkObjectTableEntryNVX* const* ppObjectTableEntries,
10631 const u32* pObjectIndices) {
10632 return ?
10633}
10634
10635@extension("VK_NVX_device_generated_commands") // 87
10636cmd VkResult vkUnregisterObjectsNVX(
10637 VkDevice device,
10638 VkObjectTableNVX objectTable,
10639 u32 objectCount,
10640 const VkObjectEntryTypeNVX* pObjectEntryTypes,
10641 const u32* pObjectIndices) {
10642 return ?
10643}
10644
10645@extension("VK_NVX_device_generated_commands") // 87
10646cmd void vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX(
10647 VkPhysicalDevice physicalDevice,
10648 VkDeviceGeneratedCommandsFeaturesNVX* pFeatures,
10649 VkDeviceGeneratedCommandsLimitsNVX* pLimits) {
10650}
10651
10652@extension("VK_NV_clip_space_w_scaling") // 88
10653cmd void vkCmdSetViewportWScalingNV(
10654 VkCommandBuffer commandBuffer,
10655 u32 firstViewport,
10656 u32 viewportCount,
10657 const VkViewportWScalingNV* pViewportWScalings) {
10658}
10659
10660@extension("VK_EXT_direct_mode_display") // 89
10661cmd VkResult vkReleaseDisplayEXT(
10662 VkPhysicalDevice physicalDevice,
10663 VkDisplayKHR display) {
10664 return ?
10665}
10666
10667@extension("VK_EXT_acquire_xlib_display") // 90
10668cmd VkResult vkAcquireXlibDisplayEXT(
10669 VkPhysicalDevice physicalDevice,
10670 platform.Display* dpy,
10671 VkDisplayKHR display) {
10672 return ?
10673}
10674
10675@extension("VK_EXT_acquire_xlib_display") // 90
10676cmd VkResult vkGetRandROutputDisplayEXT(
10677 VkPhysicalDevice physicalDevice,
10678 platform.Display* dpy,
10679 platform.RROutput rrOutput,
10680 VkDisplayKHR* pDisplay) {
10681 return ?
10682}
10683
10684@extension("VK_EXT_display_surface_counter") // 91
10685cmd VkResult vkGetPhysicalDeviceSurfaceCapabilities2EXT(
10686 VkPhysicalDevice physicalDevice,
10687 VkSurfaceKHR surface,
10688 VkSurfaceCapabilities2EXT* pSurfaceCapabilities) {
10689 return ?
10690}
10691
10692@extension("VK_EXT_display_control") // 92
10693cmd VkResult vkDisplayPowerControlEXT(
10694 VkDevice device,
10695 VkDisplayKHR display,
10696 const VkDisplayPowerInfoEXT* pDisplayPowerInfo) {
10697 return ?
10698}
10699
10700@extension("VK_EXT_display_control") // 92
10701cmd VkResult vkRegisterDeviceEventEXT(
10702 VkDevice device,
10703 const VkDeviceEventInfoEXT* pDeviceEventInfo,
10704 const VkAllocationCallbacks* pAllocator,
10705 VkFence* pFence) {
10706 return ?
10707}
10708
10709@extension("VK_EXT_display_control") // 92
10710cmd VkResult vkRegisterDisplayEventEXT(
10711 VkDevice device,
10712 VkDisplayKHR display,
10713 const VkDisplayEventInfoEXT* pDisplayEventInfo,
10714 const VkAllocationCallbacks* pAllocator,
10715 VkFence* pFence) {
10716 return ?
10717}
10718
10719@extension("VK_EXT_display_control") // 92
10720cmd VkResult vkGetSwapchainCounterEXT(
10721 VkDevice device,
10722 VkSwapchainKHR swapchain,
10723 VkSurfaceCounterFlagBitsEXT counter,
10724 u64* pCounterValue) {
10725 return ?
10726}
10727
10728@extension("VK_GOOGLE_display_timing") // 93
Ian Elliott4c8bb2a2016-12-29 11:07:26 -070010729cmd VkResult vkGetRefreshCycleDurationGOOGLE(
Jesse Hallfdc8ab32017-03-10 21:01:57 -080010730 VkDevice device,
10731 VkSwapchainKHR swapchain,
10732 VkRefreshCycleDurationGOOGLE* pDisplayTimingProperties) {
Ian Elliott4c8bb2a2016-12-29 11:07:26 -070010733 deviceObject := GetDevice(device)
10734 swapchainObject := GetSwapchain(swapchain)
10735
10736 displayTimingProperties := ?
10737 pDisplayTimingProperties[0] = displayTimingProperties
10738
10739 return ?
10740}
10741
Jesse Hallad250842017-03-10 18:35:38 -080010742@extension("VK_GOOGLE_display_timing") // 93
Ian Elliott4c8bb2a2016-12-29 11:07:26 -070010743cmd VkResult vkGetPastPresentationTimingGOOGLE(
Jesse Hallfdc8ab32017-03-10 21:01:57 -080010744 VkDevice device,
10745 VkSwapchainKHR swapchain,
10746 u32* pPresentationTimingCount,
10747 VkPastPresentationTimingGOOGLE* pPresentationTimings) {
Ian Elliott4c8bb2a2016-12-29 11:07:26 -070010748 return ?
10749}
10750
Jesse Hallad250842017-03-10 18:35:38 -080010751@extension("VK_EXT_discard_rectangles") // 100
10752cmd void vkCmdSetDiscardRectangleEXT(
Jesse Hall26763382016-05-20 07:13:52 -070010753 VkCommandBuffer commandBuffer,
Jesse Hallad250842017-03-10 18:35:38 -080010754 u32 firstDiscardRectangle,
10755 u32 discardRectangleCount,
10756 const VkRect2D* pDiscardRectangles) {
Jesse Hall26763382016-05-20 07:13:52 -070010757}
10758
Jesse Hallad250842017-03-10 18:35:38 -080010759@extension("VK_EXT_hdr_metadata") // 106
Jesse Hall889cd9a2017-02-25 22:12:23 -080010760cmd void vkSetHdrMetadataEXT(
Jesse Hallfdc8ab32017-03-10 21:01:57 -080010761 VkDevice device,
10762 u32 swapchainCount,
10763 const VkSwapchainKHR* pSwapchains,
10764 const VkHdrMetadataEXT* pMetadata) {
Jesse Hall889cd9a2017-02-25 22:12:23 -080010765}
10766
Jesse Halla13a3cf2018-07-09 15:51:52 -070010767@extension("VK_KHR_create_renderpass2") // 110
10768cmd VkResult vkCreateRenderPass2KHR(
10769 VkDevice device,
10770 const VkRenderPassCreateInfo2KHR* pCreateInfo,
10771 const VkAllocationCallbacks* pAllocator,
10772 VkRenderPass* pRenderPass) {
10773 return ?
10774}
10775
10776@extension("VK_KHR_create_renderpass2") // 110
10777cmd void vkCmdBeginRenderPass2KHR(
10778 VkCommandBuffer commandBuffer,
10779 const VkRenderPassBeginInfo* pRenderPassBegin,
10780 const VkSubpassBeginInfoKHR* pSubpassBeginInfo) {
10781}
10782
10783@extension("VK_KHR_create_renderpass2") // 110
10784cmd void vkCmdNextSubpass2KHR(
10785 VkCommandBuffer commandBuffer,
10786 const VkSubpassBeginInfoKHR* pSubpassBeginInfo,
10787 const VkSubpassEndInfoKHR* pSubpassEndInfo) {
10788}
10789
10790@extension("VK_KHR_create_renderpass2") // 110
10791cmd void vkCmdEndRenderPass2KHR(
10792 VkCommandBuffer commandBuffer,
10793 const VkSubpassEndInfoKHR* pSubpassEndInfo) {
10794}
10795
Jesse Hallad250842017-03-10 18:35:38 -080010796@extension("VK_KHR_shared_presentable_image") // 112
Chris Forbes2e12cb82017-01-18 11:45:17 +130010797cmd VkResult vkGetSwapchainStatusKHR(
10798 VkDevice device,
10799 VkSwapchainKHR swapchain) {
10800 return ?
10801}
10802
Jesse Hall9492f992017-08-28 12:10:06 -070010803@extension("VK_KHR_external_fence_capabilities") // 113
10804cmd void vkGetPhysicalDeviceExternalFencePropertiesKHR(
10805 VkPhysicalDevice physicalDevice,
10806 const VkPhysicalDeviceExternalFenceInfoKHR* pExternalFenceInfo,
10807 VkExternalFencePropertiesKHR* pExternalFenceProperties) {
10808}
10809
10810@extension("VK_KHR_external_fence_win32") // 115
10811cmd VkResult vkImportFenceWin32HandleKHR(
10812 VkDevice device,
10813 const VkImportFenceWin32HandleInfoKHR* pImportFenceWin32HandleInfo) {
10814 return ?
10815}
10816
10817@extension("VK_KHR_external_fence_win32") // 115
10818cmd VkResult vkGetFenceWin32HandleKHR(
10819 VkDevice device,
10820 const VkFenceGetWin32HandleInfoKHR* pGetWin32HandleInfo,
10821 platform.HANDLE* pHandle) {
10822 return ?
10823}
10824
10825@extension("VK_KHR_external_fence_fd") // 116
10826cmd VkResult vkImportFenceFdKHR(
10827 VkDevice device,
10828 const VkImportFenceFdInfoKHR* pImportFenceFdInfo) {
10829 return ?
10830}
10831
10832@extension("VK_KHR_external_fence_fd") // 116
10833cmd VkResult vkGetFenceFdKHR(
10834 VkDevice device,
10835 const VkFenceGetFdInfoKHR* pGetFdInfo,
10836 int* pFd) {
10837 return ?
10838}
10839
Jesse Hall05556b12017-05-18 17:40:25 -070010840@extension("VK_KHR_get_surface_capabilities2") // 120
Chris Forbese2d3ee12017-03-16 16:10:15 +130010841cmd VkResult vkGetPhysicalDeviceSurfaceCapabilities2KHR(
10842 VkPhysicalDevice physicalDevice,
10843 const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo,
10844 VkSurfaceCapabilities2KHR* pSurfaceCapabilities) {
10845 return ?
10846}
10847
Jesse Hall05556b12017-05-18 17:40:25 -070010848@extension("VK_KHR_get_surface_capabilities2") // 120
Chris Forbese2d3ee12017-03-16 16:10:15 +130010849cmd VkResult vkGetPhysicalDeviceSurfaceFormats2KHR(
10850 VkPhysicalDevice physicalDevice,
10851 const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo,
10852 u32* pSurfaceFormatCount,
10853 VkSurfaceFormat2KHR* pSurfaceFormats) {
10854 return ?
10855}
10856
Jesse Hall54f8d132018-04-18 08:16:59 -070010857@extension("VK_KHR_display_properties2") // 122
10858cmd VkResult vkGetPhysicalDeviceDisplayProperties2KHR(
10859 VkPhysicalDevice physicalDevice,
10860 u32* pPropertyCount,
10861 VkDisplayProperties2KHR* pProperties) {
10862 return ?
10863}
10864
10865@extension("VK_KHR_display_properties2") // 122
10866cmd VkResult vkGetPhysicalDeviceDisplayPlaneProperties2KHR(
10867 VkPhysicalDevice physicalDevice,
10868 u32* pPropertyCount,
10869 VkDisplayPlaneProperties2KHR* pProperties) {
10870 return ?
10871}
10872
10873@extension("VK_KHR_display_properties2") // 122
10874cmd VkResult vkGetDisplayModeProperties2KHR(
10875 VkPhysicalDevice physicalDevice,
10876 VkDisplayKHR display,
10877 u32* pPropertyCount,
10878 VkDisplayModeProperties2KHR* pProperties) {
10879 return ?
10880}
10881
10882@extension("VK_KHR_display_properties2") // 122
10883cmd VkResult vkGetDisplayPlaneCapabilities2KHR(
10884 VkPhysicalDevice physicalDevice,
10885 const VkDisplayPlaneInfo2KHR* pDisplayPlaneInfo,
10886 VkDisplayPlaneCapabilities2KHR* pCapabilities) {
10887 return ?
10888}
10889
Jesse Hallad250842017-03-10 18:35:38 -080010890@extension("VK_MVK_ios_surface") // 123
10891cmd VkResult vkCreateIOSSurfaceMVK(
10892 VkInstance instance,
10893 const VkIOSSurfaceCreateInfoMVK* pCreateInfo,
10894 const VkAllocationCallbacks* pAllocator,
10895 VkSurfaceKHR* pSurface) {
10896 return ?
10897}
10898
10899@extension("VK_MVK_macos_surface") // 124
10900cmd VkResult vkCreateMacOSSurfaceMVK(
10901 VkInstance instance,
10902 const VkMacOSSurfaceCreateInfoMVK* pCreateInfo,
10903 const VkAllocationCallbacks* pAllocator,
10904 VkSurfaceKHR* pSurface) {
10905 return ?
10906}
10907
Jesse Hall8c954d32018-01-17 22:06:20 -080010908@extension("VK_EXT_debug_utils") // 129
10909@external type void* PFN_vkDebugUtilsMessengerCallbackEXT
10910@extension("VK_EXT_debug_utils") // 129
10911@pfn cmd VkBool32 vkDebugUtilsMessengerCallbackEXT(
10912 VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity,
10913 VkDebugUtilsMessageTypeFlagsEXT messageType,
10914 const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData,
10915 void* pUserData) {
10916 return ?
10917}
10918
10919@extension("VK_EXT_debug_utils") // 129
10920cmd VkResult vkSetDebugUtilsObjectNameEXT(
10921 VkDevice device,
10922 const VkDebugUtilsObjectNameInfoEXT* pNameInfo) {
10923 return ?
10924}
Jesse Hall72e6a132018-04-06 13:00:44 -070010925
Jesse Hall8c954d32018-01-17 22:06:20 -080010926@extension("VK_EXT_debug_utils") // 129
10927cmd VkResult vkSetDebugUtilsObjectTagEXT(
10928 VkDevice device,
10929 const VkDebugUtilsObjectTagInfoEXT* pTagInfo) {
10930 return ?
10931}
Jesse Hall72e6a132018-04-06 13:00:44 -070010932
Jesse Hall8c954d32018-01-17 22:06:20 -080010933@extension("VK_EXT_debug_utils") // 129
10934cmd void vkQueueBeginDebugUtilsLabelEXT(
10935 VkQueue queue,
10936 const VkDebugUtilsLabelEXT* pLabelInfo) {
10937}
Jesse Hall72e6a132018-04-06 13:00:44 -070010938
Jesse Hall8c954d32018-01-17 22:06:20 -080010939@extension("VK_EXT_debug_utils") // 129
10940cmd void vkQueueEndDebugUtilsLabelEXT(VkQueue queue) {
10941}
Jesse Hall72e6a132018-04-06 13:00:44 -070010942
Jesse Hall8c954d32018-01-17 22:06:20 -080010943@extension("VK_EXT_debug_utils") // 129
10944cmd void vkQueueInsertDebugUtilsLabelEXT(
10945 VkQueue queue,
10946 const VkDebugUtilsLabelEXT* pLabelInfo) {
10947}
Jesse Hall72e6a132018-04-06 13:00:44 -070010948
Jesse Hall8c954d32018-01-17 22:06:20 -080010949@extension("VK_EXT_debug_utils") // 129
10950cmd void vkCmdBeginDebugUtilsLabelEXT(
10951 VkCommandBuffer commandBuffer,
10952 const VkDebugUtilsLabelEXT* pLabelInfo) {
10953}
Jesse Hall72e6a132018-04-06 13:00:44 -070010954
Jesse Hall8c954d32018-01-17 22:06:20 -080010955@extension("VK_EXT_debug_utils") // 129
10956cmd void vkCmdEndDebugUtilsLabelEXT(VkCommandBuffer commandBuffer) {
10957}
10958
10959@extension("VK_EXT_debug_utils") // 129
10960cmd void vkCmdInsertDebugUtilsLabelEXT(
10961 VkCommandBuffer commandBuffer,
10962 const VkDebugUtilsLabelEXT* pLabelInfo) {
10963}
10964
10965@extension("VK_EXT_debug_utils") // 129
10966cmd VkResult vkCreateDebugUtilsMessengerEXT(
10967 VkInstance instance,
10968 const VkDebugUtilsMessengerCreateInfoEXT* pCreateInfo,
10969 const VkAllocationCallbacks* pAllocator,
10970 VkDebugUtilsMessengerEXT* pMessenger) {
10971 return ?
10972}
10973
10974@extension("VK_EXT_debug_utils") // 129
10975cmd void vkDestroyDebugUtilsMessengerEXT(
10976 VkInstance instance,
10977 VkDebugUtilsMessengerEXT messenger,
10978 const VkAllocationCallbacks* pAllocator) {
10979}
10980
10981@extension("VK_EXT_debug_utils") // 129
10982cmd void vkSubmitDebugUtilsMessageEXT(
10983 VkInstance instance,
10984 VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity,
10985 VkDebugUtilsMessageTypeFlagsEXT messageTypes,
10986 const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData) {
10987}
10988
Jesse Hall36215a92018-01-18 15:04:37 -080010989@extension("VK_ANDROID_external_memory_android_hardware_buffer") // 130
10990@vulkan1_1 // extension requires 1.1, and should become non-optional when 1.1 does
10991cmd VkResult vkGetAndroidHardwareBufferPropertiesANDROID(
10992 VkDevice device,
10993 const platform.AHardwareBuffer* buffer,
10994 VkAndroidHardwareBufferPropertiesANDROID* pProperties) {
10995 return ?
10996}
10997
10998@extension("VK_ANDROID_external_memory_android_hardware_buffer") // 130
10999@vulkan1_1 // extension requires 1.1, and should become non-optional when 1.1 does
11000cmd VkResult vkGetMemoryAndroidHardwareBufferANDROID(
11001 VkDevice device,
11002 const VkMemoryGetAndroidHardwareBufferInfoANDROID* pInfo,
11003 platform.AHardwareBuffer** pBuffer) {
11004 return ?
11005}
11006
Jesse Hall77726222017-09-19 14:49:27 -050011007@extension("VK_EXT_sample_locations") // 144
11008cmd void vkCmdSetSampleLocationsEXT(
11009 VkCommandBuffer commandBuffer,
11010 const VkSampleLocationsInfoEXT* pSampleLocationsInfo) {
11011}
11012
11013@extension("VK_EXT_sample_locations") // 144
11014cmd void vkGetPhysicalDeviceMultisamplePropertiesEXT(
11015 VkPhysicalDevice physicalDevice,
11016 VkSampleCountFlagBits samples,
11017 VkMultisamplePropertiesEXT* pMultisampleProperties) {
11018}
11019
Jesse Hall9492f992017-08-28 12:10:06 -070011020@extension("VK_KHR_get_memory_requirements2") // 147
11021cmd void vkGetImageMemoryRequirements2KHR(
11022 VkDevice device,
11023 const VkImageMemoryRequirementsInfo2KHR* pInfo,
11024 VkMemoryRequirements2KHR* pMemoryRequirements) {
11025}
11026
11027@extension("VK_KHR_get_memory_requirements2") // 147
11028cmd void vkGetBufferMemoryRequirements2KHR(
11029 VkDevice device,
11030 const VkBufferMemoryRequirementsInfo2KHR* pInfo,
11031 VkMemoryRequirements2KHR* pMemoryRequirements) {
11032}
11033
11034@extension("VK_KHR_get_memory_requirements2") // 147
11035cmd void vkGetImageSparseMemoryRequirements2KHR(
11036 VkDevice device,
11037 const VkImageSparseMemoryRequirementsInfo2KHR* pInfo,
11038 u32* pSparseMemoryRequirementCount,
11039 VkSparseImageMemoryRequirements2KHR* pSparseMemoryRequirements) {
11040}
11041
Jesse Hall076f95d2017-09-20 11:34:47 -070011042@extension("VK_KHR_sampler_ycbcr_conversion") // 157
11043cmd VkResult vkCreateSamplerYcbcrConversionKHR(
11044 VkDevice device,
11045 const VkSamplerYcbcrConversionCreateInfoKHR* pCreateInfo,
11046 const VkAllocationCallbacks* pAllocator,
11047 VkSamplerYcbcrConversionKHR* pYcbcrConversion) {
11048 return ?
11049}
11050
11051@extension("VK_KHR_sampler_ycbcr_conversion") // 157
11052cmd void vkDestroySamplerYcbcrConversionKHR(
11053 VkDevice device,
11054 VkSamplerYcbcrConversionKHR ycbcrConversion,
11055 const VkAllocationCallbacks* pAllocator) {
11056}
11057
11058@extension("VK_KHR_bind_memory2") // 158
11059cmd VkResult vkBindBufferMemory2KHR(
11060 VkDevice device,
11061 u32 bindInfoCount,
11062 const VkBindBufferMemoryInfoKHR* pBindInfos) {
11063 return ?
11064}
11065
11066@extension("VK_KHR_bind_memory2") // 158
11067cmd VkResult vkBindImageMemory2KHR(
11068 VkDevice device,
11069 u32 bindInfoCount,
11070 const VkBindImageMemoryInfoKHR* pBindInfos) {
11071 return ?
11072}
11073
Jesse Hall77726222017-09-19 14:49:27 -050011074@extension("VK_EXT_validation_cache") // 161
11075cmd VkResult vkCreateValidationCacheEXT(
11076 VkDevice device,
11077 const VkValidationCacheCreateInfoEXT* pCreateInfo,
11078 const VkAllocationCallbacks* pAllocator,
11079 VkValidationCacheEXT* pValidationCache) {
11080 return ?
11081}
11082
11083@extension("VK_EXT_validation_cache") // 161
11084cmd void vkDestroyValidationCacheEXT(
11085 VkDevice device,
11086 VkValidationCacheEXT validationCache,
11087 const VkAllocationCallbacks* pAllocator) {
11088}
11089
11090@extension("VK_EXT_validation_cache") // 161
11091cmd VkResult vkMergeValidationCachesEXT(
11092 VkDevice device,
11093 VkValidationCacheEXT dstCache,
11094 u32 srcCacheCount,
11095 const VkValidationCacheEXT* pSrcCaches) {
11096 return ?
11097}
11098
11099@extension("VK_EXT_validation_cache") // 161
11100cmd VkResult vkGetValidationCacheDataEXT(
11101 VkDevice device,
11102 VkValidationCacheEXT validationCache,
11103 platform.size_t* pDataSize,
11104 void* pData) {
11105 return ?
11106}
11107
Jesse Hallb5297192018-09-22 20:52:13 +020011108@extension("VK_NV_shading_rate_image") // 165
11109cmd void vkCmdBindShadingRateImageNV(
11110 VkCommandBuffer commandBuffer,
11111 VkImageView imageView,
11112 VkImageLayout imageLayout) {
11113}
11114
11115@extension("VK_NV_shading_rate_image") // 165
11116cmd void vkCmdSetViewportShadingRatePaletteNV(
11117 VkCommandBuffer commandBuffer,
11118 u32 firstViewport,
11119 u32 viewportCount,
11120 const VkShadingRatePaletteNV* pShadingRatePalettes) {
11121}
11122
11123@extension("VK_NV_shading_rate_image") // 165
11124cmd void vkCmdSetCoarseSampleOrderNV(
11125 VkCommandBuffer commandBuffer,
11126 VkCoarseSampleOrderTypeNV sampleOrderType,
11127 u32 customSampleOrderCount,
11128 const VkCoarseSampleOrderCustomNV* pCustomSampleOrders) {
11129}
11130
11131@extension("VK_NVX_raytracing") // 166
11132cmd VkResult vkCreateAccelerationStructureNVX(
11133 VkDevice device,
11134 const VkAccelerationStructureCreateInfoNVX* pCreateInfo,
11135 const VkAllocationCallbacks* pAllocator,
11136 VkAccelerationStructureNVX* pAccelerationStructure) {
11137 return ?
11138}
11139
11140@extension("VK_NVX_raytracing") // 166
11141cmd void vkDestroyAccelerationStructureNVX(
11142 VkDevice device,
11143 VkAccelerationStructureNVX accelerationStructure,
11144 const VkAllocationCallbacks* pAllocator) {
11145}
11146
11147@extension("VK_NVX_raytracing") // 166
11148cmd void vkGetAccelerationStructureMemoryRequirementsNVX(
11149 VkDevice device,
11150 const VkAccelerationStructureMemoryRequirementsInfoNVX* pInfo,
11151 VkMemoryRequirements2KHR* pMemoryRequirements) {
11152}
11153
11154@extension("VK_NVX_raytracing") // 166
11155cmd void vkGetAccelerationStructureScratchMemoryRequirementsNVX(
11156 VkDevice device,
11157 const VkAccelerationStructureMemoryRequirementsInfoNVX* pInfo,
11158 VkMemoryRequirements2KHR* pMemoryRequirements) {
11159}
11160
11161@extension("VK_NVX_raytracing") // 166
11162cmd VkResult vkBindAccelerationStructureMemoryNVX(
11163 VkDevice device,
11164 u32 bindInfoCount,
11165 const VkBindAccelerationStructureMemoryInfoNVX* pBindInfos) {
11166 return ?
11167}
11168
11169@extension("VK_NVX_raytracing") // 166
11170cmd void vkCmdBuildAccelerationStructureNVX(
11171 VkCommandBuffer cmdBuf,
11172 VkAccelerationStructureTypeNVX type,
11173 u32 instanceCount,
11174 VkBuffer instanceData,
11175 VkDeviceSize instanceOffset,
11176 u32 geometryCount,
11177 const VkGeometryNVX* pGeometries,
11178 VkBuildAccelerationStructureFlagsNVX flags,
11179 VkBool32 update,
11180 VkAccelerationStructureNVX dst,
11181 VkAccelerationStructureNVX src,
11182 VkBuffer scratch,
11183 VkDeviceSize scratchOffset) {
11184}
11185
11186@extension("VK_NVX_raytracing") // 166
11187cmd void vkCmdCopyAccelerationStructureNVX(
11188 VkCommandBuffer cmdBuf,
11189 VkAccelerationStructureNVX dst,
11190 VkAccelerationStructureNVX src,
11191 VkCopyAccelerationStructureModeNVX mode) {
11192}
11193
11194@extension("VK_NVX_raytracing") // 166
11195cmd void vkCmdTraceRaysNVX(
11196 VkCommandBuffer cmdBuf,
11197 VkBuffer raygenShaderBindingTableBuffer,
11198 VkDeviceSize raygenShaderBindingOffset,
11199 VkBuffer missShaderBindingTableBuffer,
11200 VkDeviceSize missShaderBindingOffset,
11201 VkDeviceSize missShaderBindingStride,
11202 VkBuffer hitShaderBindingTableBuffer,
11203 VkDeviceSize hitShaderBindingOffset,
11204 VkDeviceSize hitShaderBindingStride,
11205 u32 width,
11206 u32 height) {
11207}
11208
11209@extension("VK_NVX_raytracing") // 166
11210cmd VkResult vkCreateRaytracingPipelinesNVX(
11211 VkDevice device,
11212 VkPipelineCache pipelineCache,
11213 u32 createInfoCount,
11214 const VkRaytracingPipelineCreateInfoNVX* pCreateInfos,
11215 const VkAllocationCallbacks* pAllocator,
11216 VkPipeline* pPipelines) {
11217 return ?
11218}
11219
11220@extension("VK_NVX_raytracing") // 166
11221cmd VkResult vkGetRaytracingShaderHandlesNVX(
11222 VkDevice device,
11223 VkPipeline pipeline,
11224 u32 firstGroup,
11225 u32 groupCount,
11226 platform.size_t dataSize,
11227 void* pData) {
11228 return ?
11229}
11230
11231@extension("VK_NVX_raytracing") // 166
11232cmd VkResult vkGetAccelerationStructureHandleNVX(
11233 VkDevice device,
11234 VkAccelerationStructureNVX accelerationStructure,
11235 platform.size_t dataSize,
11236 void* pData) {
11237 return ?
11238}
11239
11240@extension("VK_NVX_raytracing") // 166
11241cmd void vkCmdWriteAccelerationStructurePropertiesNVX(
11242 VkCommandBuffer cmdBuf,
11243 VkAccelerationStructureNVX accelerationStructure,
11244 VkQueryType queryType,
11245 VkQueryPool queryPool,
11246 u32 query) {
11247}
11248
11249@extension("VK_NVX_raytracing") // 166
11250cmd VkResult vkCompileDeferredNVX(
11251 VkDevice device,
11252 VkPipeline pipeline,
11253 u32 shader) {
11254 return ?
11255}
11256
Daniel Koch09f7bf92017-10-05 00:26:58 -040011257@extension("VK_KHR_maintenance3") // 169
11258cmd void vkGetDescriptorSetLayoutSupportKHR(
11259 VkDevice device,
11260 const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
11261 VkDescriptorSetLayoutSupportKHR* pSupport) {
11262}
11263
Jesse Hall54f8d132018-04-18 08:16:59 -070011264@extension("VK_KHR_draw_indirect_count") // 170
11265cmd void vkCmdDrawIndirectCountKHR(
11266 VkCommandBuffer commandBuffer,
11267 VkBuffer buffer,
11268 VkDeviceSize offset,
11269 VkBuffer countBuffer,
11270 VkDeviceSize countBufferOffset,
11271 u32 maxDrawCount,
11272 u32 stride) {
11273}
11274
11275@extension("VK_KHR_draw_indirect_count") // 170
11276cmd void vkCmdDrawIndexedIndirectCountKHR(
11277 VkCommandBuffer commandBuffer,
11278 VkBuffer buffer,
11279 VkDeviceSize offset,
11280 VkBuffer countBuffer,
11281 VkDeviceSize countBufferOffset,
11282 u32 maxDrawCount,
11283 u32 stride) {
11284}
11285
Jesse Hall8c954d32018-01-17 22:06:20 -080011286@extension("VK_EXT_external_memory_host") // 179
11287cmd VkResult vkGetMemoryHostPointerPropertiesEXT(
11288 VkDevice device,
11289 VkExternalMemoryHandleTypeFlagBits handleType,
11290 const void* pHostPointer,
11291 VkMemoryHostPointerPropertiesEXT* pMemoryHostPointerProperties) {
11292 return ?
11293}
11294
Jesse Hall72e6a132018-04-06 13:00:44 -070011295@extension("VK_AMD_buffer_marker") // 180
11296cmd void vkCmdWriteBufferMarkerAMD(
11297 VkCommandBuffer commandBuffer,
11298 VkPipelineStageFlagBits pipelineStage,
11299 VkBuffer dstBuffer,
11300 VkDeviceSize dstOffset,
11301 u32 marker) {
11302}
11303
Jesse Hallb5297192018-09-22 20:52:13 +020011304@extension("VK_NV_mesh_shader") // 203
11305cmd void vkCmdDrawMeshTasksNV(
11306 VkCommandBuffer commandBuffer,
11307 u32 taskCount,
11308 u32 firstTask) {
11309}
11310
11311@extension("VK_NV_mesh_shader") // 203
11312cmd void vkCmdDrawMeshTasksIndirectNV(
11313 VkCommandBuffer commandBuffer,
11314 VkBuffer buffer,
11315 VkDeviceSize offset,
11316 u32 drawCount,
11317 u32 stride) {
11318}
11319
11320@extension("VK_NV_mesh_shader") // 203
11321cmd void vkCmdDrawMeshTasksIndirectCountNV(
11322 VkCommandBuffer commandBuffer,
11323 VkBuffer buffer,
11324 VkDeviceSize offset,
11325 VkBuffer countBuffer,
11326 VkDeviceSize countBufferOffset,
11327 u32 maxDrawCount,
11328 u32 stride) {
11329}
11330
11331@extension("VK_NV_scissor_exclusive") // 206
11332cmd void vkCmdSetExclusiveScissorNV(
11333 VkCommandBuffer commandBuffer,
11334 u32 firstExclusiveScissor,
11335 u32 exclusiveScissorCount,
11336 const VkRect2D* pExclusiveScissors) {
11337}
11338
Jesse Hall115df0c2018-07-30 12:00:59 -070011339@extension("VK_NV_device_diagnostic_checkpoints") // 207
11340cmd void vkCmdSetCheckpointNV(
11341 VkCommandBuffer commandBuffer,
11342 const void* pCheckpointMarker) {
11343}
11344
11345@extension("VK_NV_device_diagnostic_checkpoints") // 207
11346cmd void vkGetQueueCheckpointDataNV(
11347 VkQueue queue,
11348 u32* pCheckpointDataCount,
11349 VkCheckpointDataNV* pCheckpointData) {
11350}
11351
11352
Jesse Halld27f6aa2015-08-15 17:58:48 -070011353////////////////
11354// Validation //
11355////////////////
11356
11357extern void validate(string layerName, bool condition, string message)
11358
11359
11360/////////////////////////////
11361// Internal State Tracking //
11362/////////////////////////////
11363
11364StateObject State
11365
11366@internal class StateObject {
11367 // Dispatchable objects.
11368 map!(VkInstance, ref!InstanceObject) Instances
11369 map!(VkPhysicalDevice, ref!PhysicalDeviceObject) PhysicalDevices
11370 map!(VkDevice, ref!DeviceObject) Devices
11371 map!(VkQueue, ref!QueueObject) Queues
Jesse Hall3fbc8562015-11-29 22:10:52 -080011372 map!(VkCommandBuffer, ref!CommandBufferObject) CommandBuffers
Jesse Halld27f6aa2015-08-15 17:58:48 -070011373
11374 // Non-dispatchable objects.
11375 map!(VkDeviceMemory, ref!DeviceMemoryObject) DeviceMemories
11376 map!(VkBuffer, ref!BufferObject) Buffers
11377 map!(VkBufferView, ref!BufferViewObject) BufferViews
11378 map!(VkImage, ref!ImageObject) Images
11379 map!(VkImageView, ref!ImageViewObject) ImageViews
Jesse Halld27f6aa2015-08-15 17:58:48 -070011380 map!(VkShaderModule, ref!ShaderModuleObject) ShaderModules
Jesse Halld27f6aa2015-08-15 17:58:48 -070011381 map!(VkPipeline, ref!PipelineObject) Pipelines
11382 map!(VkPipelineLayout, ref!PipelineLayoutObject) PipelineLayouts
11383 map!(VkSampler, ref!SamplerObject) Samplers
11384 map!(VkDescriptorSet, ref!DescriptorSetObject) DescriptorSets
11385 map!(VkDescriptorSetLayout, ref!DescriptorSetLayoutObject) DescriptorSetLayouts
11386 map!(VkDescriptorPool, ref!DescriptorPoolObject) DescriptorPools
Jesse Halld27f6aa2015-08-15 17:58:48 -070011387 map!(VkFence, ref!FenceObject) Fences
11388 map!(VkSemaphore, ref!SemaphoreObject) Semaphores
11389 map!(VkEvent, ref!EventObject) Events
11390 map!(VkQueryPool, ref!QueryPoolObject) QueryPools
11391 map!(VkFramebuffer, ref!FramebufferObject) Framebuffers
11392 map!(VkRenderPass, ref!RenderPassObject) RenderPasses
11393 map!(VkPipelineCache, ref!PipelineCacheObject) PipelineCaches
Jesse Hall3fbc8562015-11-29 22:10:52 -080011394 map!(VkCommandPool, ref!CommandPoolObject) CommandPools
Jesse Hall1356b0d2015-11-23 17:24:58 -080011395 map!(VkSurfaceKHR, ref!SurfaceObject) Surfaces
Michael Lentine88594d72015-11-12 12:49:45 -080011396 map!(VkSwapchainKHR, ref!SwapchainObject) Swapchains
Jesse Halld27f6aa2015-08-15 17:58:48 -070011397}
11398
11399@internal class InstanceObject {
11400}
11401
11402@internal class PhysicalDeviceObject {
11403 VkInstance instance
11404}
11405
11406@internal class DeviceObject {
11407 VkPhysicalDevice physicalDevice
11408}
11409
11410@internal class QueueObject {
11411 VkDevice device
11412 VkQueueFlags flags
11413}
11414
Jesse Hall3fbc8562015-11-29 22:10:52 -080011415@internal class CommandBufferObject {
Jesse Halld27f6aa2015-08-15 17:58:48 -070011416 VkDevice device
11417 map!(u64, VkDeviceMemory) boundObjects
11418 VkQueueFlags queueFlags
11419}
11420
11421@internal class DeviceMemoryObject {
Jesse Hall3fbc8562015-11-29 22:10:52 -080011422 VkDevice device
11423 VkDeviceSize allocationSize
11424 map!(u64, VkDeviceSize) boundObjects
11425 map!(VkCommandBuffer, VkCommandBuffer) boundCommandBuffers
Jesse Halld27f6aa2015-08-15 17:58:48 -070011426}
11427
11428@internal class BufferObject {
11429 VkDevice device
Jesse Hall3fbc8562015-11-29 22:10:52 -080011430 VkDeviceMemory memory
11431 VkDeviceSize memoryOffset
Jesse Halld27f6aa2015-08-15 17:58:48 -070011432}
11433
11434@internal class BufferViewObject {
11435 VkDevice device
11436 VkBuffer buffer
11437}
11438
11439@internal class ImageObject {
11440 VkDevice device
Jesse Hall3fbc8562015-11-29 22:10:52 -080011441 VkDeviceMemory memory
11442 VkDeviceSize memoryOffset
Jesse Halld27f6aa2015-08-15 17:58:48 -070011443}
11444
11445@internal class ImageViewObject {
11446 VkDevice device
11447 VkImage image
11448}
11449
Jesse Halld27f6aa2015-08-15 17:58:48 -070011450@internal class ShaderObject {
11451 VkDevice device
11452}
11453
11454@internal class ShaderModuleObject {
11455 VkDevice device
11456}
11457
11458@internal class PipelineObject {
11459 VkDevice device
11460}
11461
11462@internal class PipelineLayoutObject {
11463 VkDevice device
11464}
11465
11466@internal class SamplerObject {
11467 VkDevice device
11468}
11469
11470@internal class DescriptorSetObject {
11471 VkDevice device
11472}
11473
11474@internal class DescriptorSetLayoutObject {
11475 VkDevice device
11476}
11477
11478@internal class DescriptorPoolObject {
11479 VkDevice device
11480}
11481
Jesse Halld27f6aa2015-08-15 17:58:48 -070011482@internal class FenceObject {
11483 VkDevice device
11484 bool signaled
11485}
11486
11487@internal class SemaphoreObject {
11488 VkDevice device
11489}
11490
11491@internal class EventObject {
11492 VkDevice device
11493}
11494
11495@internal class QueryPoolObject {
11496 VkDevice device
11497}
11498
11499@internal class FramebufferObject {
11500 VkDevice device
11501}
11502
11503@internal class RenderPassObject {
11504 VkDevice device
11505}
11506
11507@internal class PipelineCacheObject {
11508 VkDevice device
11509}
11510
Jesse Hall3fbc8562015-11-29 22:10:52 -080011511@internal class CommandPoolObject {
Jesse Halld27f6aa2015-08-15 17:58:48 -070011512 VkDevice device
11513}
11514
Jesse Hall1356b0d2015-11-23 17:24:58 -080011515@internal class SurfaceObject {
11516 VkInstance instance
11517}
11518
Michael Lentine88594d72015-11-12 12:49:45 -080011519@internal class SwapchainObject {
11520 VkDevice device
11521}
11522
Jesse Halld27f6aa2015-08-15 17:58:48 -070011523macro ref!InstanceObject GetInstance(VkInstance instance) {
11524 assert(instance in State.Instances)
11525 return State.Instances[instance]
11526}
11527
11528macro ref!PhysicalDeviceObject GetPhysicalDevice(VkPhysicalDevice physicalDevice) {
11529 assert(physicalDevice in State.PhysicalDevices)
11530 return State.PhysicalDevices[physicalDevice]
11531}
11532
11533macro ref!DeviceObject GetDevice(VkDevice device) {
11534 assert(device in State.Devices)
11535 return State.Devices[device]
11536}
11537
11538macro ref!QueueObject GetQueue(VkQueue queue) {
11539 assert(queue in State.Queues)
11540 return State.Queues[queue]
11541}
11542
Jesse Hall3fbc8562015-11-29 22:10:52 -080011543macro ref!CommandBufferObject GetCommandBuffer(VkCommandBuffer commandBuffer) {
11544 assert(commandBuffer in State.CommandBuffers)
11545 return State.CommandBuffers[commandBuffer]
Jesse Halld27f6aa2015-08-15 17:58:48 -070011546}
11547
Jesse Hall3fbc8562015-11-29 22:10:52 -080011548macro ref!DeviceMemoryObject GetDeviceMemory(VkDeviceMemory memory) {
11549 assert(memory in State.DeviceMemories)
11550 return State.DeviceMemories[memory]
Jesse Halld27f6aa2015-08-15 17:58:48 -070011551}
11552
11553macro ref!BufferObject GetBuffer(VkBuffer buffer) {
11554 assert(buffer in State.Buffers)
11555 return State.Buffers[buffer]
11556}
11557
11558macro ref!BufferViewObject GetBufferView(VkBufferView bufferView) {
11559 assert(bufferView in State.BufferViews)
11560 return State.BufferViews[bufferView]
11561}
11562
11563macro ref!ImageObject GetImage(VkImage image) {
11564 assert(image in State.Images)
11565 return State.Images[image]
11566}
11567
11568macro ref!ImageViewObject GetImageView(VkImageView imageView) {
11569 assert(imageView in State.ImageViews)
11570 return State.ImageViews[imageView]
11571}
11572
Jesse Halld27f6aa2015-08-15 17:58:48 -070011573macro ref!ShaderModuleObject GetShaderModule(VkShaderModule shaderModule) {
11574 assert(shaderModule in State.ShaderModules)
11575 return State.ShaderModules[shaderModule]
11576}
11577
11578macro ref!PipelineObject GetPipeline(VkPipeline pipeline) {
11579 assert(pipeline in State.Pipelines)
11580 return State.Pipelines[pipeline]
11581}
11582
11583macro ref!PipelineLayoutObject GetPipelineLayout(VkPipelineLayout pipelineLayout) {
11584 assert(pipelineLayout in State.PipelineLayouts)
11585 return State.PipelineLayouts[pipelineLayout]
11586}
11587
11588macro ref!SamplerObject GetSampler(VkSampler sampler) {
11589 assert(sampler in State.Samplers)
11590 return State.Samplers[sampler]
11591}
11592
11593macro ref!DescriptorSetObject GetDescriptorSet(VkDescriptorSet descriptorSet) {
11594 assert(descriptorSet in State.DescriptorSets)
11595 return State.DescriptorSets[descriptorSet]
11596}
11597
11598macro ref!DescriptorSetLayoutObject GetDescriptorSetLayout(VkDescriptorSetLayout descriptorSetLayout) {
11599 assert(descriptorSetLayout in State.DescriptorSetLayouts)
11600 return State.DescriptorSetLayouts[descriptorSetLayout]
11601}
11602
11603macro ref!DescriptorPoolObject GetDescriptorPool(VkDescriptorPool descriptorPool) {
11604 assert(descriptorPool in State.DescriptorPools)
11605 return State.DescriptorPools[descriptorPool]
11606}
11607
Jesse Halld27f6aa2015-08-15 17:58:48 -070011608macro ref!FenceObject GetFence(VkFence fence) {
11609 assert(fence in State.Fences)
11610 return State.Fences[fence]
11611}
11612
11613macro ref!SemaphoreObject GetSemaphore(VkSemaphore semaphore) {
11614 assert(semaphore in State.Semaphores)
11615 return State.Semaphores[semaphore]
11616}
11617
11618macro ref!EventObject GetEvent(VkEvent event) {
11619 assert(event in State.Events)
11620 return State.Events[event]
11621}
11622
11623macro ref!QueryPoolObject GetQueryPool(VkQueryPool queryPool) {
11624 assert(queryPool in State.QueryPools)
11625 return State.QueryPools[queryPool]
11626}
11627
11628macro ref!FramebufferObject GetFramebuffer(VkFramebuffer framebuffer) {
11629 assert(framebuffer in State.Framebuffers)
11630 return State.Framebuffers[framebuffer]
11631}
11632
11633macro ref!RenderPassObject GetRenderPass(VkRenderPass renderPass) {
11634 assert(renderPass in State.RenderPasses)
11635 return State.RenderPasses[renderPass]
11636}
11637
11638macro ref!PipelineCacheObject GetPipelineCache(VkPipelineCache pipelineCache) {
11639 assert(pipelineCache in State.PipelineCaches)
11640 return State.PipelineCaches[pipelineCache]
11641}
11642
Jesse Hall3fbc8562015-11-29 22:10:52 -080011643macro ref!CommandPoolObject GetCommandPool(VkCommandPool commandPool) {
11644 assert(commandPool in State.CommandPools)
11645 return State.CommandPools[commandPool]
Jesse Hallf09c6b12015-08-15 19:54:28 -070011646}
Michael Lentine88594d72015-11-12 12:49:45 -080011647
Jesse Hall1356b0d2015-11-23 17:24:58 -080011648macro ref!SurfaceObject GetSurface(VkSurfaceKHR surface) {
11649 assert(surface in State.Surfaces)
11650 return State.Surfaces[surface]
11651}
11652
Michael Lentine88594d72015-11-12 12:49:45 -080011653macro ref!SwapchainObject GetSwapchain(VkSwapchainKHR swapchain) {
11654 assert(swapchain in State.Swapchains)
11655 return State.Swapchains[swapchain]
11656}
Jesse Halld8bade02015-11-24 10:24:18 -080011657
11658macro VkQueueFlags AddQueueFlag(VkQueueFlags flags, VkQueueFlagBits bit) {
11659 return as!VkQueueFlags(as!u32(flags) | as!u32(bit))
11660}