blob: cf987ac058b3deb59dced0ec97296c1b72328c26 [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 Hall497c46f2018-10-08 12:52:48 -070031define VERSION_PATCH 87
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 Hall2e6853c2018-10-02 14:05:37 -070048@extension("VK_MAX_DRIVER_NAME_SIZE_KHR") // 197
49define VK_MAX_DRIVER_NAME_SIZE_KHR 256
50@extension("VK_MAX_DRIVER_NAME_SIZE_KHR") // 197
51define VK_MAX_DRIVER_INFO_SIZE_KHR 256
Jesse Halld27f6aa2015-08-15 17:58:48 -070052
53// API keywords
54define VK_TRUE 1
55define VK_FALSE 0
Jesse Hall5ae3abb2015-10-08 14:00:22 -070056
57// API keyword, but needs special handling by some templates
58define NULL_HANDLE 0
Jesse Halld27f6aa2015-08-15 17:58:48 -070059
Jesse Halleb02c472017-02-24 15:13:45 -080060// 1
Jesse Hall33faaad2016-01-24 21:00:49 -080061@extension("VK_KHR_surface") define VK_KHR_SURFACE_SPEC_VERSION 25
Jesse Hall3e0dc8f2015-11-30 00:42:57 -080062@extension("VK_KHR_surface") define VK_KHR_SURFACE_EXTENSION_NAME "VK_KHR_surface"
Jesse Hall1356b0d2015-11-23 17:24:58 -080063
Jesse Halleb02c472017-02-24 15:13:45 -080064// 2
Daniel Koch09f7bf92017-10-05 00:26:58 -040065@extension("VK_KHR_swapchain") define VK_KHR_SWAPCHAIN_SPEC_VERSION 70
Jesse Hall3e0dc8f2015-11-30 00:42:57 -080066@extension("VK_KHR_swapchain") define VK_KHR_SWAPCHAIN_EXTENSION_NAME "VK_KHR_swapchain"
Jesse Hall1356b0d2015-11-23 17:24:58 -080067
Jesse Halleb02c472017-02-24 15:13:45 -080068// 3
Jesse Hall543a7ff2016-01-08 16:38:30 -080069@extension("VK_KHR_display") define VK_KHR_DISPLAY_SPEC_VERSION 21
Jesse Hall3e0dc8f2015-11-30 00:42:57 -080070@extension("VK_KHR_display") define VK_KHR_DISPLAY_EXTENSION_NAME "VK_KHR_display"
Jesse Hall1356b0d2015-11-23 17:24:58 -080071
Jesse Halleb02c472017-02-24 15:13:45 -080072// 4
Jesse Hall543a7ff2016-01-08 16:38:30 -080073@extension("VK_KHR_display_swapchain") define VK_KHR_DISPLAY_SWAPCHAIN_SPEC_VERSION 9
Jesse Hall0e74f002015-11-30 11:37:59 -080074@extension("VK_KHR_display_swapchain") define VK_KHR_DISPLAY_SWAPCHAIN_EXTENSION_NAME "VK_KHR_display_swapchain"
Jesse Hall1356b0d2015-11-23 17:24:58 -080075
Jesse Halleb02c472017-02-24 15:13:45 -080076// 5
Jesse Hall543a7ff2016-01-08 16:38:30 -080077@extension("VK_KHR_xlib_surface") define VK_KHR_XLIB_SURFACE_SPEC_VERSION 6
Jesse Hall3e0dc8f2015-11-30 00:42:57 -080078@extension("VK_KHR_xlib_surface") define VK_KHR_XLIB_SURFACE_NAME "VK_KHR_xlib_surface"
Jesse Hall1356b0d2015-11-23 17:24:58 -080079
Jesse Halleb02c472017-02-24 15:13:45 -080080// 6
Jesse Hall543a7ff2016-01-08 16:38:30 -080081@extension("VK_KHR_xcb_surface") define VK_KHR_XCB_SURFACE_SPEC_VERSION 6
Jesse Hall3e0dc8f2015-11-30 00:42:57 -080082@extension("VK_KHR_xcb_surface") define VK_KHR_XCB_SURFACE_NAME "VK_KHR_xcb_surface"
Jesse Hall1356b0d2015-11-23 17:24:58 -080083
Jesse Halleb02c472017-02-24 15:13:45 -080084// 7
Jesse Hallfdc8ab32017-03-10 21:01:57 -080085@extension("VK_KHR_wayland_surface") define VK_KHR_WAYLAND_SURFACE_SPEC_VERSION 6
Jesse Hall3e0dc8f2015-11-30 00:42:57 -080086@extension("VK_KHR_wayland_surface") define VK_KHR_WAYLAND_SURFACE_NAME "VK_KHR_wayland_surface"
Jesse Hall1356b0d2015-11-23 17:24:58 -080087
Jesse Halleb02c472017-02-24 15:13:45 -080088// 8
Jesse Hall543a7ff2016-01-08 16:38:30 -080089@extension("VK_KHR_mir_surface") define VK_KHR_MIR_SURFACE_SPEC_VERSION 4
Jesse Hall3e0dc8f2015-11-30 00:42:57 -080090@extension("VK_KHR_mir_surface") define VK_KHR_MIR_SURFACE_NAME "VK_KHR_mir_surface"
Jesse Hall1356b0d2015-11-23 17:24:58 -080091
Jesse Halleb02c472017-02-24 15:13:45 -080092// 9
Jesse Hall33faaad2016-01-24 21:00:49 -080093@extension("VK_KHR_android_surface") define VK_KHR_ANDROID_SURFACE_SPEC_VERSION 6
Jesse Hall3e0dc8f2015-11-30 00:42:57 -080094@extension("VK_KHR_android_surface") define VK_KHR_ANDROID_SURFACE_NAME "VK_KHR_android_surface"
Jesse Hall1356b0d2015-11-23 17:24:58 -080095
Jesse Halleb02c472017-02-24 15:13:45 -080096// 10
Jesse Hall7ba0ac72017-07-07 17:13:23 -070097@extension("VK_KHR_win32_surface") define VK_KHR_WIN32_SURFACE_SPEC_VERSION 6
Jesse Hall3e0dc8f2015-11-30 00:42:57 -080098@extension("VK_KHR_win32_surface") define VK_KHR_WIN32_SURFACE_NAME "VK_KHR_win32_surface"
Jesse Hall1356b0d2015-11-23 17:24:58 -080099
Jesse Halleb02c472017-02-24 15:13:45 -0800100// 11
Chris Forbes1d4e5542017-02-15 19:38:50 +1300101@extension("VK_ANDROID_native_buffer") define VK_ANDROID_NATIVE_BUFFER_SPEC_VERSION 7
Chia-I Wub262ddc2016-03-22 07:38:20 +0800102@extension("VK_ANDROID_native_buffer") define VK_ANDROID_NATIVE_BUFFER_NAME "VK_ANDROID_native_buffer"
103
Jesse Halleb02c472017-02-24 15:13:45 -0800104// 12
Daniel Koch09f7bf92017-10-05 00:26:58 -0400105@extension("VK_EXT_debug_report") define VK_EXT_DEBUG_REPORT_SPEC_VERSION 9
Jesse Hall715b86a2016-01-16 16:34:29 -0800106@extension("VK_EXT_debug_report") define VK_EXT_DEBUG_REPORT_NAME "VK_EXT_debug_report"
107
Jesse Halleb02c472017-02-24 15:13:45 -0800108// 13
Jesse Hall26763382016-05-20 07:13:52 -0700109@extension("VK_NV_glsl_shader") define VK_NV_GLSL_SHADER_SPEC_VERSION 1
110@extension("VK_NV_glsl_shader") define VK_NV_GLSL_SHADER_NAME "VK_NV_glsl_shader"
111
Jesse Hall77726222017-09-19 14:49:27 -0500112// 14
113@extension("VK_EXT_depth_range_unrestricted") define VK_EXT_DEPTH_RANGE_UNRESTRICTED_SPEC_VERSION 1
114@extension("VK_EXT_depth_range_unrestricted") define VK_EXT_DEPTH_RANGE_UNRESTRICTED_NAME "VK_EXT_depth_range_unrestricted"
115
Jesse Halleb02c472017-02-24 15:13:45 -0800116// 15
Jesse Hall26763382016-05-20 07:13:52 -0700117@extension("VK_KHR_sampler_mirror_clamp_to_edge") define VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_SPEC_VERSION 1
118@extension("VK_KHR_sampler_mirror_clamp_to_edge") define VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_NAME "VK_KHR_sampler_mirror_clamp_to_edge"
119
Jesse Halleb02c472017-02-24 15:13:45 -0800120// 16
Jesse Hall26763382016-05-20 07:13:52 -0700121@extension("VK_IMG_filter_cubic") define VK_IMG_FILTER_CUBIC_SPEC_VERSION 1
122@extension("VK_IMG_filter_cubic") define VK_IMG_FILTER_CUBIC_NAME "VK_IMG_filter_cubic"
123
Jesse Halleb02c472017-02-24 15:13:45 -0800124// 19
Jesse Hall26763382016-05-20 07:13:52 -0700125@extension("VK_AMD_rasterization_order") define VK_AMD_RASTERIZATION_ORDER_SPEC_VERSION 1
126@extension("VK_AMD_rasterization_order") define VK_AMD_RASTERIZATION_ORDER_NAME "VK_AMD_rasterization_order"
127
Jesse Halleb02c472017-02-24 15:13:45 -0800128// 21
Jesse Hall56d386a2016-07-26 15:20:40 -0700129@extension("VK_AMD_shader_trinary_minmax") define VK_AMD_SHADER_TRINARY_MINMAX_SPEC_VERSION 1
130@extension("VK_AMD_shader_trinary_minmax") define VK_AMD_SHADER_TRINARY_MINMAX_EXTENSION_NAME "VK_AMD_shader_trinary_minmax"
131
Jesse Halleb02c472017-02-24 15:13:45 -0800132// 22
Jesse Hall56d386a2016-07-26 15:20:40 -0700133@extension("VK_AMD_shader_explicit_vertex_parameter") define VK_AMD_SHADER_EXPLICIT_VERTEX_PARAMETER_SPEC_VERSION 1
134@extension("VK_AMD_shader_explicit_vertex_parameter") define VK_AMD_SHADER_EXPLICIT_VERTEX_PARAMETER_EXTENSION_NAME "VK_AMD_shader_explicit_vertex_parameter"
135
Jesse Halleb02c472017-02-24 15:13:45 -0800136// 23
Jesse Hall8f49fcb2017-03-06 16:02:58 -0800137@extension("VK_EXT_debug_marker") define VK_EXT_DEBUG_MARKER_SPEC_VERSION 4
Jesse Hall26763382016-05-20 07:13:52 -0700138@extension("VK_EXT_debug_marker") define VK_EXT_DEBUG_MARKER_NAME "VK_EXT_debug_marker"
139
Jesse Halleb02c472017-02-24 15:13:45 -0800140// 26
Jesse Hall56d386a2016-07-26 15:20:40 -0700141@extension("VK_AMD_gcn_shader") define VK_AMD_GCN_SHADER_SPEC_VERSION 1
142@extension("VK_AMD_gcn_shader") define VK_AMD_GCN_SHADER_EXTENSION_NAME "VK_AMD_gcn_shader"
143
Jesse Halleb02c472017-02-24 15:13:45 -0800144// 27
Jesse Hall56d386a2016-07-26 15:20:40 -0700145@extension("VK_NV_dedicated_allocation") define VK_NV_DEDICATED_ALLOCATION_SPEC_VERSION 1
146@extension("VK_NV_dedicated_allocation") define VK_NV_DEDICATED_ALLOCATION_EXTENSION_NAME "VK_NV_dedicated_allocation"
147
Jesse Halleb02c472017-02-24 15:13:45 -0800148// 28
Chris Forbes289cb792016-12-30 15:03:55 +1300149@extension("VK_IMG_format_pvrtc") define VK_IMG_FORMAT_PVRTC_SPEC_VERSION 1
150@extension("VK_IMG_format_pvrtc") define VK_IMG_FORMAT_PVRTC_EXTENSION_NAME "VK_IMG_format_pvrtc"
151
Jesse Halleb02c472017-02-24 15:13:45 -0800152// 34
153@extension("VK_AMD_draw_indirect_count") define VK_AMD_DRAW_INDIRECT_COUNT_SPEC_VERSION 1
154@extension("VK_AMD_draw_indirect_count") define VK_AMD_DRAW_INDIRECT_COUNT_EXTENSION_NAME "VK_AMD_draw_indirect_count"
155
156// 36
157@extension("VK_AMD_negative_viewport_height") define VK_AMD_NEGATIVE_VIEWPORT_HEIGHT_SPEC_VERSION 1
158@extension("VK_AMD_negative_viewport_height") define VK_AMD_NEGATIVE_VIEWPORT_HEIGHT_EXTENSION_NAME "VK_AMD_negative_viewport_height"
159
160// 37
161@extension("VK_AMD_gpu_shader_half_float") define VK_AMD_GPU_SHADER_HALF_FLOAT_SPEC_VERSION 1
162@extension("VK_AMD_gpu_shader_half_float") define VK_AMD_GPU_SHADER_HALF_FLOAT_EXTENSION_NAME "VK_AMD_gpu_shader_half_float"
163
164// 38
165@extension("VK_AMD_shader_ballot") define VK_AMD_SHADER_BALLOT_SPEC_VERSION 1
166@extension("VK_AMD_shader_ballot") define VK_AMD_SHADER_BALLOT_EXTENSION_NAME "VK_AMD_shader_ballot"
167
Jesse Hall7ba0ac72017-07-07 17:13:23 -0700168// 42
169@extension("VK_AMD_texture_gather_bias_lod") define VK_AMD_TEXTURE_GATHER_BIAS_LOD_SPEC_VERSION 1
170@extension("VK_AMD_texture_gather_bias_lod") define VK_AMD_TEXTURE_GATHER_BIAS_LOD_EXTENSION_NAME "VK_AMD_texture_gather_bias_lod"
171
Jesse Hall8c954d32018-01-17 22:06:20 -0800172// 43
173@extension("VK_AMD_shader_info") define VK_AMD_SHADER_INFO_SPEC_VERSION 1
174@extension("VK_AMD_shader_info") define VK_AMD_SHADER_INFO_EXTENSION_NAME "VK_AMD_shader_info"
175
176// 47
177@extension("VK_AMD_shader_image_load_store_lod") define VK_AMD_SHADER_IMAGE_LOAD_STORE_LOD_SPEC_VERSION 1
178@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"
179
Jesse Hallb5297192018-09-22 20:52:13 +0200180// 51
181@extension("VK_NV_corner_sampled_image") define VK_NV_CORNER_SAMPLED_IMAGE_SPEC_VERSION 2
182@extension("VK_NV_corner_sampled_image") define VK_NV_CORNER_SAMPLED_IMAGE_EXTENSION_NAME "VK_NV_corner_sampled_image"
183
Jesse Hallad250842017-03-10 18:35:38 -0800184// 54
Daniel Koch09f7bf92017-10-05 00:26:58 -0400185@extension("VK_KHR_multiview") define VK_KHR_MULTIVIEW_SPEC_VERSION 1
186@extension("VK_KHR_multiview") define VK_KHR_MULTIVIEW_EXTENSION_NAME "VK_KHR_multiview"
Jesse Hallad250842017-03-10 18:35:38 -0800187
Jesse Halleb02c472017-02-24 15:13:45 -0800188// 56
Chris Forbes289cb792016-12-30 15:03:55 +1300189@extension("VK_NV_external_memory_capabilities") define VK_NV_EXTERNAL_MEMORY_CAPABILITIES_SPEC_VERSION 1
190@extension("VK_NV_external_memory_capabilities") define VK_NV_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME "VK_NV_external_memory_capabilities"
191
Jesse Halleb02c472017-02-24 15:13:45 -0800192// 57
Chris Forbes289cb792016-12-30 15:03:55 +1300193@extension("VK_NV_external_memory") define VK_NV_EXTERNAL_MEMORY_SPEC_VERSION 1
194@extension("VK_NV_external_memory") define VK_NV_EXTERNAL_MEMORY_EXTENSION_NAME "VK_NV_external_memory"
195
Jesse Halleb02c472017-02-24 15:13:45 -0800196// 58
Chris Forbes289cb792016-12-30 15:03:55 +1300197@extension("VK_NV_external_memory_win32") define VK_NV_EXTERNAL_MEMORY_WIN32_SPEC_VERSION 1
198@extension("VK_NV_external_memory_win32") define VK_NV_EXTERNAL_MEMORY_WIN32_EXTENSION_NAME "VK_NV_external_memory_win32"
199
Jesse Halleb02c472017-02-24 15:13:45 -0800200// 59
Chris Forbes289cb792016-12-30 15:03:55 +1300201@extension("VK_NV_win32_keyed_mutex") define VK_NV_WIN32_KEYED_MUTEX_SPEC_VERSION 1
202@extension("VK_NV_win32_keyed_mutex") define VK_NV_WIN32_KEYED_MUTEX_EXTENSION_NAME "VK_NV_win32_keyed_mutex"
203
Jesse Hall889cd9a2017-02-25 22:12:23 -0800204// 60
205@extension("VK_KHR_get_physical_device_properties2") define VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_SPEC_VERSION 1
206@extension("VK_KHR_get_physical_device_properties2") define VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME "VK_KHR_get_physical_device_properties2"
207
Jesse Hallad250842017-03-10 18:35:38 -0800208// 61
Daniel Koch09f7bf92017-10-05 00:26:58 -0400209@extension("VK_KHR_device_group") define VK_KHR_DEVICE_GROUP_SPEC_VERSION 3
210@extension("VK_KHR_device_group") define VK_KHR_DEVICE_GROUP_EXTENSION_NAME "VK_KHR_device_group"
Jesse Hallad250842017-03-10 18:35:38 -0800211
Jesse Halleb02c472017-02-24 15:13:45 -0800212// 62
Chris Forbes289cb792016-12-30 15:03:55 +1300213@extension("VK_EXT_validation_flags") define VK_EXT_VALIDATION_FLAGS_SPEC_VERSION 1
214@extension("VK_EXT_validation_flags") define VK_EXT_VALIDATION_FLAGS_EXTENSION_NAME "VK_EXT_validation_flags"
215
Jesse Hall77ad05b2017-03-10 22:02:20 -0800216// 63
217@extension("VK_NN_vi_surface") define VK_NN_VI_SURFACE_SPEC_VERSION 1
218@extension("VK_NN_vi_surface") define VK_NN_VI_SURFACE_EXTENSION_NAME "VK_NN_vi_surface"
219
220// 64
221@extension("VK_KHR_shader_draw_parameters") define VK_KHR_SHADER_DRAW_PARAMETERS_SPEC_VERSION 1
222@extension("VK_KHR_shader_draw_parameters") define VK_KHR_SHADER_DRAW_PARAMETERS_EXTENSION_NAME "VK_KHR_shader_draw_parameters"
223
224// 65
225@extension("VK_EXT_shader_subgroup_ballot") define VK_EXT_SHADER_SUBGROUP_BALLOT_SPEC_VERSION 1
226@extension("VK_EXT_shader_subgroup_ballot") define VK_EXT_SHADER_SUBGROUP_BALLOT_EXTENSION_NAME "VK_EXT_shader_subgroup_ballot"
227
228// 66
229@extension("VK_EXT_shader_subgroup_vote") define VK_EXT_SHADER_SUBGROUP_VOTE_SPEC_VERSION 1
230@extension("VK_EXT_shader_subgroup_vote") define VK_EXT_SHADER_SUBGROUP_VOTE_EXTENSION_NAME "VK_EXT_shader_subgroup_vote"
231
Jesse Hall4af6c462018-09-10 09:04:25 -0700232// 68
233@extension("VK_EXT_astc_decode_mode") define VK_EXT_ASTC_DECODE_MODE_SPEC_VERSION 1
234@extension("VK_EXT_astc_decode_mode") define VK_EXT_ASTC_DECODE_MODE_EXTENSION_NAME "VK_EXT_astc_decode_mode"
235
Jesse Hall77ad05b2017-03-10 22:02:20 -0800236// 70
Jesse Hall72e6a132018-04-06 13:00:44 -0700237@extension("VK_KHR_maintenance1") define VK_KHR_MAINTENANCE1_SPEC_VERSION 2
Jesse Hall77ad05b2017-03-10 22:02:20 -0800238@extension("VK_KHR_maintenance1") define VK_KHR_MAINTENANCE1_EXTENSION_NAME "VK_KHR_maintenance1"
239
Jesse Hallad250842017-03-10 18:35:38 -0800240// 71
Daniel Koch09f7bf92017-10-05 00:26:58 -0400241@extension("VK_KHR_device_group_creation") define VK_KHR_DEVICE_GROUP_CREATION_SPEC_VERSION 1
242@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 -0800243
244// 72
Jesse Hall9492f992017-08-28 12:10:06 -0700245@extension("VK_KHR_external_memory_capabilities") define VK_KHR_EXTERNAL_MEMORY_CAPABILITIES_SPEC_VERSION 1
246@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 -0800247
248// 73
Jesse Hall9492f992017-08-28 12:10:06 -0700249@extension("VK_KHR_external_memory") define VK_KHR_EXTERNAL_MEMORY_SPEC_VERSION 1
250@extension("VK_KHR_external_memory") define VK_KHR_EXTERNAL_MEMORY_EXTENSION_NAME "VK_KHR_external_memory"
Jesse Hallad250842017-03-10 18:35:38 -0800251
252// 74
Jesse Hall9492f992017-08-28 12:10:06 -0700253@extension("VK_KHR_external_memory_win32") define VK_KHR_EXTERNAL_MEMORY_WIN32_SPEC_VERSION 1
254@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 -0800255
256// 75
Jesse Hall9492f992017-08-28 12:10:06 -0700257@extension("VK_KHR_external_memory_fd") define VK_KHR_EXTERNAL_MEMORY_FD_SPEC_VERSION 1
258@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 -0800259
260// 76
Jesse Hall9492f992017-08-28 12:10:06 -0700261@extension("VK_KHR_win32_keyed_mutex") define VK_KHR_WIN32_KEYED_MUTEX_SPEC_VERSION 1
262@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 -0800263
264// 77
Jesse Hall9492f992017-08-28 12:10:06 -0700265@extension("VK_KHR_external_semaphore_capabilities") define VK_KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_SPEC_VERSION 1
266@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 -0800267
268// 78
Jesse Hall9492f992017-08-28 12:10:06 -0700269@extension("VK_KHR_external_semaphore") define VK_KHR_EXTERNAL_SEMAPHORE_SPEC_VERSION 1
270@extension("VK_KHR_external_semaphore") define VK_KHR_EXTERNAL_SEMAPHORE_EXTENSION_NAME "VK_KHR_external_semaphore"
Jesse Hallad250842017-03-10 18:35:38 -0800271
272// 79
Jesse Hall9492f992017-08-28 12:10:06 -0700273@extension("VK_KHR_external_semaphore_win32") define VK_KHR_EXTERNAL_SEMAPHORE_WIN32_SPEC_VERSION 1
274@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 -0800275
276// 80
Jesse Hall9492f992017-08-28 12:10:06 -0700277@extension("VK_KHR_external_semaphore_fd") define VK_KHR_EXTERNAL_SEMAPHORE_FD_SPEC_VERSION 1
278@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 -0800279
280// 81
Daniel Koch09f7bf92017-10-05 00:26:58 -0400281@extension("VK_KHR_push_descriptor") define VK_KHR_PUSH_DESCRIPTOR_SPEC_VERSION 2
Jesse Hallad250842017-03-10 18:35:38 -0800282@extension("VK_KHR_push_descriptor") define VK_KHR_PUSH_DESCRIPTOR_EXTENSION_NAME "VK_KHR_push_descriptor"
283
Jesse Halla13a3cf2018-07-09 15:51:52 -0700284// 82
285@extension("VK_EXT_conditional_rendering") define VK_EXT_CONDITIONAL_RENDERING_SPEC_VERSION 1
286@extension("VK_EXT_conditional_rendering") define VK_EXT_CONDITIONAL_RENDERING_EXTENSION_NAME "VK_EXT_conditional_rendering"
287
Jesse Hall9492f992017-08-28 12:10:06 -0700288// 84
289@extension("VK_KHR_16bit_storage") define VK_KHR_16BIT_STORAGE_SPEC_VERSION 1
290@extension("VK_KHR_16bit_storage") define VK_KHR_16BIT_STORAGE_EXTENSION_NAME "VK_KHR_16bit_storage"
291
Jesse Hall889cd9a2017-02-25 22:12:23 -0800292// 85
293@extension("VK_KHR_incremental_present") define VK_KHR_INCREMENTAL_PRESENT_SPEC_VERSION 1
Jesse Hallf5ad48b2017-03-20 13:09:19 -0700294@extension("VK_KHR_incremental_present") define VK_KHR_INCREMENTAL_PRESENT_EXTENSION_NAME "VK_KHR_incremental_present"
Jesse Hall889cd9a2017-02-25 22:12:23 -0800295
Jesse Hallad250842017-03-10 18:35:38 -0800296// 86
297@extension("VK_KHR_descriptor_update_template") define VK_KHR_DESCRIPTOR_UPDATE_TEMPLATE_SPEC_VERSION 1
298@extension("VK_KHR_descriptor_update_template") define VK_KHR_DESCRIPTOR_UPDATE_TEMPLATE_EXTENSION_NAME "VK_KHR_descriptor_update_template"
299
Jesse Halleb02c472017-02-24 15:13:45 -0800300// 87
Jesse Hall77726222017-09-19 14:49:27 -0500301@extension("VK_NVX_device_generated_commands") define VK_NVX_DEVICE_GENERATED_COMMANDS_SPEC_VERSION 3
Chris Forbes289cb792016-12-30 15:03:55 +1300302@extension("VK_NVX_device_generated_commands") define VK_NVX_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME "VK_NVX_device_generated_commands"
303
Jesse Hallad250842017-03-10 18:35:38 -0800304// 88
305@extension("VK_NV_clip_space_w_scaling") define VK_NV_CLIP_SPACE_W_SCALING_SPEC_VERSION 1
306@extension("VK_NV_clip_space_w_scaling") define VK_NV_CLIP_SPACE_W_SCALING_EXTENSION_NAME "VK_NV_clip_space_w_scaling"
307
Jesse Hall77ad05b2017-03-10 22:02:20 -0800308// 89
309@extension("VK_EXT_direct_mode_display") define VK_EXT_DIRECT_MODE_DISPLAY_SPEC_VERSION 1
310@extension("VK_EXT_direct_mode_display") define VK_EXT_DIRECT_MODE_DISPLAY_EXTENSION_NAME "VK_EXT_direct_mode_display"
311
312// 90
313@extension("VK_EXT_acquire_xlib_display") define VK_EXT_ACQUIRE_XLIB_DISPLAY_SPEC_VERSION 1
314@extension("VK_EXT_acquire_xlib_display") define VK_EXT_ACQUIRE_XLIB_DISPLAY_EXTENSION_NAME "VK_EXT_acquire_xlib_display"
315
316// 91
317@extension("VK_EXT_display_surface_counter") define VK_EXT_DISPLAY_SURFACE_COUNTER_SPEC_VERSION 1
318@extension("VK_EXT_display_surface_counter") define VK_EXT_DISPLAY_SURFACE_COUNTER_EXTENSION_NAME "VK_EXT_display_surface_counter"
319
320// 92
321@extension("VK_EXT_display_control") define VK_EXT_DISPLAY_CONTROL_SPEC_VERSION 1
322@extension("VK_EXT_display_control") define VK_EXT_DISPLAY_CONTROL_COUNTER_EXTENSION_NAME "VK_EXT_display_control"
323
Jesse Hall889cd9a2017-02-25 22:12:23 -0800324// 93
325@extension("VK_GOOGLE_display_timing") define VK_GOOGLE_DISPLAY_TIMING_SPEC_VERSION 1
Jesse Hallfdc8ab32017-03-10 21:01:57 -0800326@extension("VK_GOOGLE_display_timing") define VK_GOOGLE_DISPLAY_TIMING_EXTENSION_NAME "VK_GOOGLE_display_timing"
Jesse Hall889cd9a2017-02-25 22:12:23 -0800327
Jesse Hallad250842017-03-10 18:35:38 -0800328// 95
329@extension("VK_NV_sample_mask_override_coverage") define VK_NV_SAMPLE_MASK_OVERRIDE_COVERAGE_SPEC_VERSION 1
330@extension("VK_NV_sample_mask_override_coverage") define VK_NV_SAMPLE_MASK_OVERRIDE_COVERAGE_EXTENSION_NAME "VK_NV_sample_mask_override_coverage"
331
332// 96
333@extension("VK_NV_geometry_shader_passthrough") define VK_NV_GEOMETRY_SHADER_PASSTHROUGH_SPEC_VERSION 1
334@extension("VK_NV_geometry_shader_passthrough") define VK_NV_GEOMETRY_SHADER_PASSTHROUGH_EXTENSION_NAME "VK_NV_geometry_shader_passthrough"
335
336// 97
337@extension("VK_NV_viewport_array2") define VK_NV_VIEWPORT_ARRAY2_SPEC_VERSION 1
338@extension("VK_NV_viewport_array2") define VK_NV_VIEWPORT_ARRAY2_EXTENSION_NAME "VK_NV_viewport_array2"
339
340// 98
341@extension("VK_NVX_multiview_per_view_attributes") define VK_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_SPEC_VERSION 1
342@extension("VK_NVX_multiview_per_view_attributes") define VK_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_EXTENSION_NAME "VK_NVX_multiview_per_view_attributes"
343
344// 99
345@extension("VK_NV_viewport_swizzle") define VK_NV_VIEWPORT_SWIZZLE_SPEC_VERSION 1
346@extension("VK_NV_viewport_swizzle") define VK_NV_VIEWPORT_SWIZZLE_EXTENSION_NAME "VK_NV_viewport_swizzle"
347
348// 100
349@extension("VK_EXT_discard_rectangles") define VK_EXT_DISCARD_RECTANGLES_SPEC_VERSION 1
350@extension("VK_EXT_discard_rectangles") define VK_EXT_DISCARD_RECTANGLES_EXTENSION_NAME "VK_EXT_discard_rectangles"
351
Jesse Hall8c954d32018-01-17 22:06:20 -0800352// 102
353@extension("VK_EXT_conservative_rasterization") define VK_EXT_CONSERVATIVE_RASTERIZATION_SPEC_VERSION 1
354@extension("VK_EXT_conservative_rasterization") define VK_EXT_CONSERVATIVE_RASTERIZATION_EXTENSION_NAME "VK_EXT_conservative_rasterization"
355
Jesse Hall77ad05b2017-03-10 22:02:20 -0800356// 105
Jesse Hall77726222017-09-19 14:49:27 -0500357@extension("VK_EXT_swapchain_colorspace") define VK_EXT_SWAPCHAIN_COLORSPACE_SPEC_VERSION 3
Jesse Hallf5ad48b2017-03-20 13:09:19 -0700358@extension("VK_EXT_swapchain_colorspace") define VK_EXT_SWAPCHAIN_COLORSPACE_EXTENSION_NAME "VK_EXT_swapchain_colorspace"
Jesse Hall77ad05b2017-03-10 22:02:20 -0800359
Jesse Hall889cd9a2017-02-25 22:12:23 -0800360// 106
361@extension("VK_EXT_hdr_metadata") define VK_EXT_HDR_METADATA_SPEC_VERSION 1
362@extension("VK_EXT_hdr_metadata") define VK_EXT_HDR_METADATA_EXTENSION_NAME "VK_EXT_hdr_metadata"
363
Jesse Halla13a3cf2018-07-09 15:51:52 -0700364// 110
365@extension("VK_KHR_create_renderpass2") define VK_KHR_CREATE_RENDERPASS2_SPEC_VERSION 1
366@extension("VK_KHR_create_renderpass2") define VK_KHR_CREATE_RENDERPASS2_EXTENSION_NAME "VK_KHR_create_renderpass2"
367
Jesse Hall889cd9a2017-02-25 22:12:23 -0800368// 112
Chris Forbes1d5f68c2017-01-31 10:17:01 +1300369@extension("VK_KHR_shared_presentable_image") define VK_KHR_SHARED_PRESENTABLE_IMAGE_SPEC_VERSION 1
370@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 +1300371
Jesse Hall9492f992017-08-28 12:10:06 -0700372// 113
373@extension("VK_KHR_external_fence_capabilities") define VK_KHR_EXTERNAL_FENCE_CAPABILITIES_SPEC_VERSION 1
374@extension("VK_KHR_external_fence_capabilities") define VK_KHR_EXTERNAL_FENCE_CAPABILITIES_EXTENSION_NAME "VK_KHR_external_fence_capabilities"
375
376// 114
377@extension("VK_KHR_external_fence") define VK_KHR_EXTERNAL_FENCE_SPEC_VERSION 1
378@extension("VK_KHR_external_fence") define VK_KHR_EXTERNAL_FENCE_EXTENSION_NAME "VK_KHR_external_fence"
379
380// 115
381@extension("VK_KHR_external_fence_win32") define VK_KHR_EXTERNAL_FENCE_WIN32_SPEC_VERSION 1
382@extension("VK_KHR_external_fence_win32") define VK_KHR_EXTERNAL_FENCE_WIN32_EXTENSION_NAME "VK_KHR_external_fence_win32"
383
384// 116
385@extension("VK_KHR_external_fence_fd") define VK_KHR_EXTERNAL_FENCE_FD_SPEC_VERSION 1
386@extension("VK_KHR_external_fence_fd") define VK_KHR_EXTERNAL_FENCE_FD_EXTENSION_NAME "VK_KHR_external_fence_fd"
387
Jesse Hall076f95d2017-09-20 11:34:47 -0700388// 118
389@extension("VK_KHR_maintenance2") define VK_KHR_MAINTENANCE2_SPEC_VERSION 1
390@extension("VK_KHR_maintenance2") define VK_KHR_MAINTENANCE2_EXTENSION_NAME "VK_KHR_maintenance2"
391
Jesse Hall05556b12017-05-18 17:40:25 -0700392// 120
Chris Forbese2d3ee12017-03-16 16:10:15 +1300393@extension("VK_KHR_get_surface_capabilities2") define VK_KHR_GET_SURFACE_CAPABILITIES_2_SPEC_VERSION 1
394@extension("VK_KHR_get_surface_capabilities2") define VK_KHR_GET_SURFACE_CAPABILITIES_2_EXTENSION_NAME "VK_KHR_get_surface_capabilities2"
395
Jesse Hall9492f992017-08-28 12:10:06 -0700396// 121
397@extension("VK_KHR_variable_pointers") define VK_KHR_VARIABLE_POINTERS_SPEC_VERSION 1
398@extension("VK_KHR_variable_pointers") define VK_KHR_VARIABLE_POINTERS_EXTENSION_NAME "VK_KHR_variable_pointers"
399
Jesse Hall54f8d132018-04-18 08:16:59 -0700400// 122
401@extension("VK_KHR_get_display_properties2") define VK_KHR_GET_DISPLAY_PROPERTIES_2_SPEC_VERSION 1
402@extension("VK_KHR_get_display_properties2") define VK_KHR_GET_DISPLAY_PROPERTIES_2_EXTENSION_NAME "VK_KHR_get_display_properties2"
403
Jesse Hallad250842017-03-10 18:35:38 -0800404// 123
405@extension("VK_MVK_ios_surface") define VK_MVK_IOS_SURFACE_SPEC_VERSION 1
406@extension("VK_MVK_ios_surface") define VK_MVK_IOS_SURFACE_EXTENSION_NAME "VK_MVK_ios_surface"
407
408// 124
409@extension("VK_MVK_macos_surface") define VK_MVK_MACOS_SURFACE_SPEC_VERSION 1
410@extension("VK_MVK_macos_surface") define VK_MVK_MACOS_SURFACE_EXTENSION_NAME "VK_MVK_macos_surface"
411
Jesse Hall8c954d32018-01-17 22:06:20 -0800412// 126
413@extension("VK_EXT_external_memory_dma_buf") define VK_EXT_EXTERNAL_MEMORY_DMA_BUF_SPEC_VERSION 1
414@extension("VK_EXT_external_memory_dma_buf") define VK_EXT_EXTERNAL_MEMORY_DMA_BUF_EXTENSION_NAME "VK_EXT_external_memory_dma_buf"
415
416// 127
417@extension("VK_EXT_queue_family_foreign") define VK_EXT_QUEUE_FAMILY_FOREIGN_SPEC_VERSION 1
418@extension("VK_EXT_queue_family_foreign") define VK_EXT_QUEUE_FAMILY_FOREIGN_EXTENSION_NAME "VK_EXT_queue_family_foreign"
419
Jesse Hall9492f992017-08-28 12:10:06 -0700420// 128
Jesse Hall77726222017-09-19 14:49:27 -0500421@extension("VK_KHR_dedicated_allocation") define VK_KHR_DEDICATED_ALLOCATION_SPEC_VERSION 3
Jesse Hall9492f992017-08-28 12:10:06 -0700422@extension("VK_KHR_dedicated_allocation") define VK_KHR_DEDICATED_ALLOCATION_EXTENSION_NAME "VK_KHR_dedicated_allocation"
423
Jesse Hall8c954d32018-01-17 22:06:20 -0800424// 128
425@extension("VK_EXT_debug_utils") define VK_EXT_DEBUG_UTILS_SPEC_VERSION 1
426@extension("VK_EXT_debug_utils") define VK_EXT_DEBUG_UTILS_EXTENSION_NAME "VK_EXT_debug_utils"
427
Jesse Hall36215a92018-01-18 15:04:37 -0800428// 130
Jesse Hall72e6a132018-04-06 13:00:44 -0700429@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 -0800430@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"
431
Jesse Hall7ba0ac72017-07-07 17:13:23 -0700432// 131
433@extension("VK_EXT_sampler_filter_minmax") define VK_EXT_SAMPLER_FILTER_MINMAX_SPEC_VERSION 1
434@extension("VK_EXT_sampler_filter_minmax") define VK_EXT_SAMPLER_FILTER_MINMAX_EXTENSION_NAME "VK_EXT_sampler_filter_minmax"
435
Jesse Hall9492f992017-08-28 12:10:06 -0700436// 132
437@extension("VK_KHR_storage_buffer_storage_class") define VK_KHR_STORAGE_BUFFER_STORAGE_CLASS_SPEC_VERSION 1
438@extension("VK_KHR_storage_buffer_storage_class") define VK_KHR_STORAGE_BUFFER_STORAGE_CLASS_EXTENSION_NAME "VK_KHR_storage_buffer_storage_class"
439
Jesse Hall7ba0ac72017-07-07 17:13:23 -0700440// 133
441@extension("VK_AMD_gpu_shader_int16") define VK_AMD_GPU_SHADER_INT16_SPEC_VERSION 1
442@extension("VK_AMD_gpu_shader_int16") define VK_AMD_GPU_SHADER_INT16_EXTENSION_NAME "VK_AMD_gpu_shader_int16"
443
Jesse Hall77726222017-09-19 14:49:27 -0500444// 137
445@extension("VK_AMD_mixed_attachment_samples") define VK_AMD_MIXED_ATTACHMENT_SAMPLES_SPEC_VERSION 1
446@extension("VK_AMD_mixed_attachment_samples") define VK_AMD_MIXED_ATTACHMENT_SAMPLES_EXTENSION_NAME "VK_AMD_mixed_attachment_samples"
447
448// 138
449@extension("VK_AMD_shader_fragment_mask") define VK_AMD_SHADER_FRAGMENT_MASK_SPEC_VERSION 1
450@extension("VK_AMD_shader_fragment_mask") define VK_AMD_SHADER_FRAGMENT_MASK_EXTENSION_NAME "VK_AMD_shader_fragment_mask"
451
Jesse Hall4af6c462018-09-10 09:04:25 -0700452// 139
453@extension("VK_EXT_inline_uniform_block") define VK_EXT_INLINE_UNIFORM_BLOCK_SPEC_VERSION 1
454@extension("VK_EXT_inline_uniform_block") define VK_EXT_INLINE_UNIFORM_BLOCK_EXTENSION_NAME "VK_EXT_inline_uniform_block"
455
Jesse Hall77726222017-09-19 14:49:27 -0500456// 141
457@extension("VK_EXT_shader_stencil_export") define VK_EXT_SHADER_STENCIL_EXPORT_SPEC_VERSION 1
458@extension("VK_EXT_shader_stencil_export") define VK_EXT_SHADER_STENCIL_EXPORT_EXTENSION_NAME "VK_EXT_shader_stencil_export"
459
460// 144
461@extension("VK_EXT_sample_locations") define VK_EXT_SAMPLE_LOCATIONS_SPEC_VERSION 1
462@extension("VK_EXT_sample_locations") define VK_EXT_SAMPLE_LOCATIONS_EXTENSION_NAME "VK_EXT_sample_locations"
463
464// 145
465@extension("VK_KHR_relaxed_block_layout") define VK_KHR_RELAXED_BLOCK_LAYOUT_SPEC_VERSION 1
466@extension("VK_KHR_relaxed_block_layout") define VK_KHR_RELAXED_BLOCK_LAYOUT_EXTENSION_NAME "VK_KHR_relaxed_block_layout"
467
Jesse Hall9492f992017-08-28 12:10:06 -0700468// 147
469@extension("VK_KHR_get_memory_requirements2") define VK_KHR_GET_MEMORY_REQUIREMENTS2_SPEC_VERSION 1
470@extension("VK_KHR_get_memory_requirements2") define VK_KHR_GET_MEMORY_REQUIREMENTS2_EXTENSION_NAME "VK_KHR_get_memory_requirements2"
471
Jesse Hall076f95d2017-09-20 11:34:47 -0700472// 148
473@extension("VK_KHR_image_format_list") define VK_KHR_IMAGE_FORMAT_LIST_SPEC_VERSION 1
474@extension("VK_KHR_image_format_list") define VK_KHR_IMAGE_FORMAT_LIST_EXTENSION_NAME "VK_KHR_image_format_list"
475
Jesse Hall7ba0ac72017-07-07 17:13:23 -0700476// 149
477@extension("VK_EXT_blend_operation_advanced") define VK_EXT_BLEND_OPERATION_ADVANCED_SPEC_VERSION 2
478@extension("VK_EXT_blend_operation_advanced") define VK_EXT_BLEND_OPERATION_ADVANCED_EXTENSION_NAME "VK_EXT_blend_operation_advanced"
479
480// 150
481@extension("VK_NV_fragment_coverage_to_color") define VK_NV_FRAGMENT_COVERAGE_TO_COLOR_SPEC_VERSION 1
482@extension("VK_NV_fragment_coverage_to_color") define VK_NV_FRAGMENT_COVERAGE_TO_COLOR_EXTENSION_NAME "VK_NV_fragment_coverage_to_color"
483
484// 153
485@extension("VK_NV_framebuffer_mixed_samples") define VK_NV_FRAMEBUFFER_MIXED_SAMPLES_SPEC_VERSION 1
486@extension("VK_NV_framebuffer_mixed_samples") define VK_NV_FRAMEBUFFER_MIXED_SAMPLES_EXTENSION_NAME "VK_NV_framebuffer_mixed_samples"
487
488// 154
489@extension("VK_NV_fill_rectangle") define VK_NV_FILL_RECTANGLE_SPEC_VERSION 1
490@extension("VK_NV_fill_rectangle") define VK_NV_FILL_RECTANGLE_EXTENSION_NAME "VK_NV_fill_rectangle"
491
Jesse Hall77726222017-09-19 14:49:27 -0500492// 156
493@extension("VK_EXT_post_depth_coverage") define VK_EXT_POST_DEPTH_COVERAGE_SPEC_VERSION 1
494@extension("VK_EXT_post_depth_coverage") define VK_EXT_POST_DEPTH_COVERAGE_EXTENSION_NAME "VK_EXT_post_depth_coverage"
495
Jesse Hall076f95d2017-09-20 11:34:47 -0700496// 157
497@extension("VK_KHR_sampler_ycbcr_conversion") define VK_KHR_SAMPLER_YCBCR_CONVERSION_SPEC_VERSION 1
498@extension("VK_KHR_sampler_ycbcr_conversion") define VK_KHR_SAMPLER_YCBCR_CONVERSION_EXTENSION_NAME "VK_KHR_sampler_ycbcr_conversion"
499
500// 158
501@extension("VK_KHR_bind_memory2") define VK_KHR_BIND_MEMORY2_SPEC_VERSION 1
502@extension("VK_KHR_bind_memory2") define VK_KHR_BIND_MEMORY2_EXTENSION_NAME "VK_KHR_bind_memory2"
503
Jesse Hall77726222017-09-19 14:49:27 -0500504// 161
505@extension("VK_EXT_validation_cache") define VK_EXT_VALIDATION_CACHE_SPEC_VERSION 1
506@extension("VK_EXT_validation_cache") define VK_EXT_VALIDATION_CACHE_EXTENSION_NAME "VK_EXT_validation_cache"
507
Jesse Hall72e6a132018-04-06 13:00:44 -0700508// 162
509@extension("VK_EXT_descriptor_indexing") define VK_EXT_DESCRIPTOR_INDEXING_SPEC_VERSION 2
510@extension("VK_EXT_descriptor_indexing") define VK_EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME "VK_EXT_descriptor_indexing"
511
Jesse Hallb5297192018-09-22 20:52:13 +0200512// 163
Jesse Hall77726222017-09-19 14:49:27 -0500513@extension("VK_EXT_shader_viewport_index_layer") define VK_EXT_SHADER_VIEWPORT_INDEX_LAYER_SPEC_VERSION 1
514@extension("VK_EXT_shader_viewport_index_layer") define VK_EXT_SHADER_VIEWPORT_INDEX_LAYER_EXTENSION_NAME "VK_EXT_shader_viewport_index_layer"
515
Jesse Hallb5297192018-09-22 20:52:13 +0200516// 165
517@extension("VK_NV_shading_rate_image") define VK_NV_SHADING_RATE_IMAGE_SPEC_VERSION 3
518@extension("VK_NV_shading_rate_image") define VK_NV_SHADING_RATE_IMAGE_EXTENSION_NAME "VK_NV_shading_rate_image"
519
520// 166
521@extension("VK_NVX_raytracing") define VK_NVX_RAYTRACING_SPEC_VERSION 1
522@extension("VK_NVX_raytracing") define VK_NVX_RAYTRACING_EXTENSION_NAME "VK_NVX_raytracing"
523
524// 167
525@extension("VK_NV_representative_fragment_test") define VK_NV_REPRESENTATIVE_FRAGMENT_TEST_SPEC_VERSION 1
526@extension("VK_NV_representative_fragment_test") define VK_NV_REPRESENTATIVE_FRAGMENT_TEST_EXTENSION_NAME "VK_NV_representative_fragment_test"
527
Daniel Koch09f7bf92017-10-05 00:26:58 -0400528// 169
529@extension("VK_KHR_maintenance3") define VK_KHR_MAINTENANCE3_SPEC_VERSION 1
530@extension("VK_KHR_maintenance3") define VK_KHR_MAINTENANCE3_EXTENSION_NAME "VK_KHR_maintenance3"
531
Jesse Hall54f8d132018-04-18 08:16:59 -0700532// 170
533@extension("VK_KHR_draw_indirect_count") define VK_KHR_DRAW_INDIRECT_COUNT_SPEC_VERSION 1
534@extension("VK_KHR_draw_indirect_count") define VK_KHR_DRAW_INDIRECT_COUNT_EXTENSION_NAME "VK_KHR_draw_indirect_count"
535
Jesse Hall8c954d32018-01-17 22:06:20 -0800536// 175
537@extension("VK_EXT_global_priority") define VK_EXT_GLOBAL_PRIORITY_SPEC_VERSION 1
538@extension("VK_EXT_global_priority") define VK_EXT_GLOBAL_PRIORITY_EXTENSION_NAME "VK_EXT_global_priority"
539
Jesse Halla13a3cf2018-07-09 15:51:52 -0700540// 178
541@extension("VK_KHR_8bit_storage") define VK_KHR_8BIT_STORAGE_SPEC_VERSION 1
542@extension("VK_KHR_8bit_storage") define VK_KHR_8BIT_STORAGE_EXTENSION_NAME "VK_KHR_8bit_storage"
543
Jesse Hall8c954d32018-01-17 22:06:20 -0800544// 179
545@extension("VK_EXT_external_memory_host") define VK_EXT_EXTERNAL_MEMORY_HOST_SPEC_VERSION 1
546@extension("VK_EXT_external_memory_host") define VK_EXT_EXTERNAL_MEMORY_HOST_EXTENSION_NAME "VK_EXT_external_memory_host"
547
Jesse Hall72e6a132018-04-06 13:00:44 -0700548// 180
549@extension("VK_AMD_buffer_marker") define VK_AMD_BUFFER_MARKER_SPEC_VERSION 1
550@extension("VK_AMD_buffer_marker") define VK_AMD_BUFFER_MARKER_EXTENSION_NAME "VK_AMD_buffer_marker"
551
Jesse Hall2e6853c2018-10-02 14:05:37 -0700552// 181
553@extension("VK_KHR_shader_atomic_int64") define VK_KHR_SHADER_ATOMIC_INT64_SPEC_VERSION 1
554@extension("VK_KHR_shader_atomic_int64") define VK_KHR_SHADER_ATOMIC_INT64_EXTENSION_NAME "VK_KHR_shader_atomic_int64"
555
Jesse Hall72e6a132018-04-06 13:00:44 -0700556// 186
557@extension("VK_AMD_shader_core_properties") define VK_AMD_SHADER_CORE_PROPERTIES_SPEC_VERSION 1
558@extension("VK_AMD_shader_core_properties") define VK_AMD_SHADER_CORE_PROPERTIES_EXTENSION_NAME "VK_AMD_shader_core_properties"
559
560// 191
Jesse Hall4af6c462018-09-10 09:04:25 -0700561@extension("VK_EXT_vertex_attribute_divisor") define VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_SPEC_VERSION 2
562@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 -0700563
Jesse Hall2e6853c2018-10-02 14:05:37 -0700564// 197
565@extension("VK_KHR_driver_properties") define VK_KHR_DRIVER_PROPERTIES_SPEC_VERSION 1
566@extension("VK_KHR_driver_properties") define VK_KHR_DRIVER_PROPERTIES_EXTENSION_NAME "VK_KHR_driver_properties"
567
Jesse Hall72e6a132018-04-06 13:00:44 -0700568// 199
569@extension("VK_NV_shader_subgroup_partitioned") define VK_NV_SHADER_SUBGROUP_PARTITIONED_SPEC_VERSION 1
570@extension("VK_NV_shader_subgroup_partitioned") define VK_NV_SHADER_SUBGROUP_PARTITIONED_EXTENSION_NAME "VK_NV_shader_subgroup_partitioned"
571
Jesse Hallb5297192018-09-22 20:52:13 +0200572// 202
573@extension("VK_NV_compute_shader_derivatives") define VK_NV_COMPUTE_SHADER_DERIVATIVES_SPEC_VERSION 1
574@extension("VK_NV_compute_shader_derivatives") define VK_NV_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME "VK_NV_compute_shader_derivatives"
575
576// 203
577@extension("VK_NV_mesh_shader") define VK_NV_MESH_SHADER_SPEC_VERSION 1
578@extension("VK_NV_mesh_shader") define VK_NV_MESH_SHADER_EXTENSION_NAME "VK_NV_mesh_shader"
579
580// 204
581@extension("VK_NV_fragment_shader_barycentric") define VK_NV_FRAGMENT_SHADER_BARYCENTRIC_SPEC_VERSION 1
582@extension("VK_NV_fragment_shader_barycentric") define VK_NV_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME "VK_NV_fragment_shader_barycentric"
583
584// 205
585@extension("VK_NV_shader_image_footprint") define VK_NV_SHADER_IMAGE_FOOTPRINT_SPEC_VERSION 1
586@extension("VK_NV_shader_image_footprint") define VK_NV_SHADER_IMAGE_FOOTPRINT_EXTENSION_NAME "VK_NV_shader_image_footprint"
587
588// 206
589@extension("VK_NV_scissor_exclusive") define VK_NV_SCISSOR_EXCLUSIVE_SPEC_VERSION 1
590@extension("VK_NV_scissor_exclusive") define VK_NV_SCISSOR_EXCLUSIVE_EXTENSION_NAME "VK_NV_scissor_exclusive"
591
Jesse Hall115df0c2018-07-30 12:00:59 -0700592// 207
593@extension("VK_NV_device_diagnostic_checkpoints") define VK_NV_DEVICE_DIAGNOSTIC_CHECKPOINTS_SPEC_VERSION 2
594@extension("VK_NV_device_diagnostic_checkpoints") define VK_NV_DEVICE_DIAGNOSTIC_CHECKPOINTS_EXTENSION_NAME "VK_NV_device_diagnostic_checkpoints"
595
Jesse Hall4af6c462018-09-10 09:04:25 -0700596// 212
597@extension("VK_KHR_vulkan_memory_model") define VK_KHR_VULKAN_MEMORY_MODEL_SPEC_VERSION 2
598@extension("VK_KHR_vulkan_memory_model") define VK_KHR_VULKAN_MEMORY_MODEL_EXTENSION_NAME "VK_KHR_vulkan_memory_model"
599
Jesse Hall497c46f2018-10-08 12:52:48 -0700600// 215
601@extension("VK_FUCHSIA_imagepipe_surface") define VK_FUCHSIA_IMAGEPIPE_SURFACE_SPEC_VERSION 1
602@extension("VK_FUCHSIA_imagepipe_surface") define VK_FUCHSIA_IMAGEPIPE_SURFACE_EXTENSION_NAME "VK_FUCHSIA_imagepipe_surface"
603
Jesse Halld27f6aa2015-08-15 17:58:48 -0700604/////////////
605// Types //
606/////////////
607
Jesse Hall5ae3abb2015-10-08 14:00:22 -0700608type u32 VkBool32
609type u32 VkFlags
610type u64 VkDeviceSize
611type u32 VkSampleMask
612
Jesse Halld27f6aa2015-08-15 17:58:48 -0700613/// Dispatchable handle types.
614@dispatchHandle type u64 VkInstance
615@dispatchHandle type u64 VkPhysicalDevice
616@dispatchHandle type u64 VkDevice
617@dispatchHandle type u64 VkQueue
Jesse Hall3fbc8562015-11-29 22:10:52 -0800618@dispatchHandle type u64 VkCommandBuffer
Jesse Halld27f6aa2015-08-15 17:58:48 -0700619
620/// Non dispatchable handle types.
621@nonDispatchHandle type u64 VkDeviceMemory
Jesse Hall3fbc8562015-11-29 22:10:52 -0800622@nonDispatchHandle type u64 VkCommandPool
Jesse Halld27f6aa2015-08-15 17:58:48 -0700623@nonDispatchHandle type u64 VkBuffer
624@nonDispatchHandle type u64 VkBufferView
625@nonDispatchHandle type u64 VkImage
626@nonDispatchHandle type u64 VkImageView
Jesse Halld27f6aa2015-08-15 17:58:48 -0700627@nonDispatchHandle type u64 VkShaderModule
Jesse Halld27f6aa2015-08-15 17:58:48 -0700628@nonDispatchHandle type u64 VkPipeline
629@nonDispatchHandle type u64 VkPipelineLayout
630@nonDispatchHandle type u64 VkSampler
631@nonDispatchHandle type u64 VkDescriptorSet
632@nonDispatchHandle type u64 VkDescriptorSetLayout
633@nonDispatchHandle type u64 VkDescriptorPool
Jesse Halld27f6aa2015-08-15 17:58:48 -0700634@nonDispatchHandle type u64 VkFence
635@nonDispatchHandle type u64 VkSemaphore
636@nonDispatchHandle type u64 VkEvent
637@nonDispatchHandle type u64 VkQueryPool
638@nonDispatchHandle type u64 VkFramebuffer
639@nonDispatchHandle type u64 VkRenderPass
640@nonDispatchHandle type u64 VkPipelineCache
Jesse Hall1356b0d2015-11-23 17:24:58 -0800641
Ian Elliott28bd2c32017-10-13 09:21:12 -0600642@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -0400643@nonDispatchHandle type u64 VkSamplerYcbcrConversion
644@nonDispatchHandle type u64 VkDescriptorUpdateTemplate
645
Jesse Hallad250842017-03-10 18:35:38 -0800646// 1
Jesse Hall3e0dc8f2015-11-30 00:42:57 -0800647@extension("VK_KHR_surface") @nonDispatchHandle type u64 VkSurfaceKHR
Jesse Hall1356b0d2015-11-23 17:24:58 -0800648
Jesse Hallad250842017-03-10 18:35:38 -0800649// 2
Jesse Hall3e0dc8f2015-11-30 00:42:57 -0800650@extension("VK_KHR_swapchain") @nonDispatchHandle type u64 VkSwapchainKHR
Jesse Hall1356b0d2015-11-23 17:24:58 -0800651
Jesse Hallad250842017-03-10 18:35:38 -0800652// 3
Jesse Hall3e0dc8f2015-11-30 00:42:57 -0800653@extension("VK_KHR_display") @nonDispatchHandle type u64 VkDisplayKHR
654@extension("VK_KHR_display") @nonDispatchHandle type u64 VkDisplayModeKHR
Jesse Halld27f6aa2015-08-15 17:58:48 -0700655
Jesse Hallad250842017-03-10 18:35:38 -0800656// 12
Jesse Hall715b86a2016-01-16 16:34:29 -0800657@extension("VK_EXT_debug_report") @nonDispatchHandle type u64 VkDebugReportCallbackEXT
658
Jesse Hallad250842017-03-10 18:35:38 -0800659// 86
660@extension("VK_KHR_descriptor_update_template") @nonDispatchHandle type u64 VkDescriptorUpdateTemplateKHR
661
662// 87
Chris Forbes289cb792016-12-30 15:03:55 +1300663@extension("VK_NVX_device_generated_commands") @nonDispatchHandle type u64 VkObjectTableNVX
664@extension("VK_NVX_device_generated_commands") @nonDispatchHandle type u64 VkIndirectCommandsLayoutNVX
665
Jesse Hall8c954d32018-01-17 22:06:20 -0800666// 129
667@extension("VK_EXT_debug_utils") @nonDispatchHandle type u64 VkDebugUtilsMessengerEXT
668
Jesse Hall076f95d2017-09-20 11:34:47 -0700669// 157
670@extension("VK_KHR_sampler_ycbcr_conversion") @nonDispatchHandle type u64 VkSamplerYcbcrConversionKHR
671
Jesse Hall77726222017-09-19 14:49:27 -0500672// 161
673@extension("VK_EXT_validation_cache") @nonDispatchHandle type u64 VkValidationCacheEXT
Jesse Halld27f6aa2015-08-15 17:58:48 -0700674
Jesse Hallb5297192018-09-22 20:52:13 +0200675// 166
676@extension("VK_NVX_raytracing") @nonDispatchHandle type u64 VkAccelerationStructureNVX
677
Jesse Halld27f6aa2015-08-15 17:58:48 -0700678/////////////
679// Enums //
680/////////////
681
682enum VkImageLayout {
683 VK_IMAGE_LAYOUT_UNDEFINED = 0x00000000, /// Implicit layout an image is when its contents are undefined due to various reasons (e.g. right after creation)
684 VK_IMAGE_LAYOUT_GENERAL = 0x00000001, /// General layout when image can be used for any kind of access
685 VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL = 0x00000002, /// Optimal layout when image is only used for color attachment read/write
686 VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL = 0x00000003, /// Optimal layout when image is only used for depth/stencil attachment read/write
687 VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL = 0x00000004, /// Optimal layout when image is used for read only depth/stencil attachment and shader access
688 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 -0800689 VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL = 0x00000006, /// Optimal layout when image is used only as source of transfer operations
690 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 -0700691 VK_IMAGE_LAYOUT_PREINITIALIZED = 0x00000008, /// Initial layout used when the data is populated by the CPU
Jesse Hall1356b0d2015-11-23 17:24:58 -0800692
Ian Elliott28bd2c32017-10-13 09:21:12 -0600693 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -0400694 VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL = 1000117000,
695 VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL = 1000117001,
696
Jesse Hallad250842017-03-10 18:35:38 -0800697 //@extension("VK_KHR_swapchain") // 2
Jesse Hallbd888842015-11-30 21:44:14 -0800698 VK_IMAGE_LAYOUT_PRESENT_SRC_KHR = 1000001002,
Chris Forbesaf3a1112017-01-31 15:37:03 +1300699
Jesse Hall05556b12017-05-18 17:40:25 -0700700 //@extension("VK_KHR_shared_presentable_image") // 112
Chris Forbesaf3a1112017-01-31 15:37:03 +1300701 VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR = 1000111000,
Jesse Hall076f95d2017-09-20 11:34:47 -0700702
703 //@extension("VK_KHR_maintenance2") // 118
704 VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL_KHR = 1000117000,
705 VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL_KHR = 1000117001,
Jesse Hallb5297192018-09-22 20:52:13 +0200706
707 //@extension("VK_NV_shading_rate_image") // 165
708 VK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV = 1000164003,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700709}
710
711enum VkAttachmentLoadOp {
712 VK_ATTACHMENT_LOAD_OP_LOAD = 0x00000000,
713 VK_ATTACHMENT_LOAD_OP_CLEAR = 0x00000001,
714 VK_ATTACHMENT_LOAD_OP_DONT_CARE = 0x00000002,
715}
716
717enum VkAttachmentStoreOp {
718 VK_ATTACHMENT_STORE_OP_STORE = 0x00000000,
719 VK_ATTACHMENT_STORE_OP_DONT_CARE = 0x00000001,
720}
721
722enum VkImageType {
723 VK_IMAGE_TYPE_1D = 0x00000000,
724 VK_IMAGE_TYPE_2D = 0x00000001,
725 VK_IMAGE_TYPE_3D = 0x00000002,
726}
727
728enum VkImageTiling {
Jesse Hallc7467b72015-11-29 21:05:26 -0800729 VK_IMAGE_TILING_OPTIMAL = 0x00000000,
730 VK_IMAGE_TILING_LINEAR = 0x00000001,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700731}
732
733enum VkImageViewType {
734 VK_IMAGE_VIEW_TYPE_1D = 0x00000000,
735 VK_IMAGE_VIEW_TYPE_2D = 0x00000001,
736 VK_IMAGE_VIEW_TYPE_3D = 0x00000002,
737 VK_IMAGE_VIEW_TYPE_CUBE = 0x00000003,
738 VK_IMAGE_VIEW_TYPE_1D_ARRAY = 0x00000004,
739 VK_IMAGE_VIEW_TYPE_2D_ARRAY = 0x00000005,
740 VK_IMAGE_VIEW_TYPE_CUBE_ARRAY = 0x00000006,
741}
742
Jesse Hall3fbc8562015-11-29 22:10:52 -0800743enum VkCommandBufferLevel {
744 VK_COMMAND_BUFFER_LEVEL_PRIMARY = 0x00000000,
745 VK_COMMAND_BUFFER_LEVEL_SECONDARY = 0x00000001,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700746}
747
Jesse Hall65ab5522015-11-30 00:07:16 -0800748enum VkComponentSwizzle {
749 VK_COMPONENT_SWIZZLE_IDENTITY = 0x00000000,
750 VK_COMPONENT_SWIZZLE_ZERO = 0x00000001,
751 VK_COMPONENT_SWIZZLE_ONE = 0x00000002,
752 VK_COMPONENT_SWIZZLE_R = 0x00000003,
753 VK_COMPONENT_SWIZZLE_G = 0x00000004,
754 VK_COMPONENT_SWIZZLE_B = 0x00000005,
755 VK_COMPONENT_SWIZZLE_A = 0x00000006,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700756}
757
758enum VkDescriptorType {
759 VK_DESCRIPTOR_TYPE_SAMPLER = 0x00000000,
760 VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER = 0x00000001,
761 VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE = 0x00000002,
762 VK_DESCRIPTOR_TYPE_STORAGE_IMAGE = 0x00000003,
763 VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER = 0x00000004,
764 VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER = 0x00000005,
765 VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER = 0x00000006,
766 VK_DESCRIPTOR_TYPE_STORAGE_BUFFER = 0x00000007,
767 VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC = 0x00000008,
768 VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC = 0x00000009,
769 VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT = 0x0000000a,
Jesse Hall4af6c462018-09-10 09:04:25 -0700770
771 //@extension("VK_EXT_inline_uniform_block") // 139
772 VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT = 1000138000,
Jesse Hallb5297192018-09-22 20:52:13 +0200773
774 //@extension("VK_NVX_raytracing") // 166
775 VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NVX = 1000165000,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700776}
777
Jesse Halld27f6aa2015-08-15 17:58:48 -0700778enum VkQueryType {
779 VK_QUERY_TYPE_OCCLUSION = 0x00000000,
780 VK_QUERY_TYPE_PIPELINE_STATISTICS = 0x00000001, /// Optional
Jesse Halla3a7a1d2015-11-24 11:37:23 -0800781 VK_QUERY_TYPE_TIMESTAMP = 0x00000002,
Jesse Hallb5297192018-09-22 20:52:13 +0200782
783 //@extension("VK_NVX_raytracing") // 166
784 VK_QUERY_TYPE_COMPACTED_SIZE_NVX = 1000165000,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700785}
786
Jesse Halld27f6aa2015-08-15 17:58:48 -0700787enum VkBorderColor {
788 VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK = 0x00000000,
789 VK_BORDER_COLOR_INT_TRANSPARENT_BLACK = 0x00000001,
790 VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK = 0x00000002,
791 VK_BORDER_COLOR_INT_OPAQUE_BLACK = 0x00000003,
792 VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE = 0x00000004,
793 VK_BORDER_COLOR_INT_OPAQUE_WHITE = 0x00000005,
794}
795
796enum VkPipelineBindPoint {
Jesse Hallc7467b72015-11-29 21:05:26 -0800797 VK_PIPELINE_BIND_POINT_GRAPHICS = 0x00000000,
798 VK_PIPELINE_BIND_POINT_COMPUTE = 0x00000001,
Jesse Hallb5297192018-09-22 20:52:13 +0200799
800 //@extension("VK_NVX_raytracing") // 166
801 VK_PIPELINE_BIND_POINT_RAYTRACING_NVX = 1000165000,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700802}
803
804enum VkPrimitiveTopology {
805 VK_PRIMITIVE_TOPOLOGY_POINT_LIST = 0x00000000,
806 VK_PRIMITIVE_TOPOLOGY_LINE_LIST = 0x00000001,
807 VK_PRIMITIVE_TOPOLOGY_LINE_STRIP = 0x00000002,
808 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST = 0x00000003,
809 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP = 0x00000004,
810 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN = 0x00000005,
Jesse Hall3fbc8562015-11-29 22:10:52 -0800811 VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY = 0x00000006,
812 VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY = 0x00000007,
813 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY = 0x00000008,
814 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY = 0x00000009,
Jesse Hall091ed9e2015-11-30 00:55:29 -0800815 VK_PRIMITIVE_TOPOLOGY_PATCH_LIST = 0x0000000a,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700816}
817
818enum VkSharingMode {
819 VK_SHARING_MODE_EXCLUSIVE = 0x00000000,
820 VK_SHARING_MODE_CONCURRENT = 0x00000001,
821}
822
823enum VkIndexType {
824 VK_INDEX_TYPE_UINT16 = 0x00000000,
825 VK_INDEX_TYPE_UINT32 = 0x00000001,
826}
827
Jesse Hall23ff73f2015-11-29 14:36:39 -0800828enum VkFilter {
829 VK_FILTER_NEAREST = 0x00000000,
830 VK_FILTER_LINEAR = 0x00000001,
Jesse Hall26763382016-05-20 07:13:52 -0700831
Jesse Hallad250842017-03-10 18:35:38 -0800832 //@extension("VK_IMG_filter_cubic") // 16
Jesse Hall26763382016-05-20 07:13:52 -0700833 VK_FILTER_CUBIC_IMG = 1000015000,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700834}
835
Jesse Hall23ff73f2015-11-29 14:36:39 -0800836enum VkSamplerMipmapMode {
Jesse Hall23ff73f2015-11-29 14:36:39 -0800837 VK_SAMPLER_MIPMAP_MODE_NEAREST = 0x00000001, /// Choose nearest mip level
838 VK_SAMPLER_MIPMAP_MODE_LINEAR = 0x00000002, /// Linear filter between mip levels
Jesse Halld27f6aa2015-08-15 17:58:48 -0700839}
840
Jesse Hall23ff73f2015-11-29 14:36:39 -0800841enum VkSamplerAddressMode {
Jesse Hallc7467b72015-11-29 21:05:26 -0800842 VK_SAMPLER_ADDRESS_MODE_REPEAT = 0x00000000,
843 VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT = 0x00000001,
844 VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE = 0x00000002,
845 VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER = 0x00000003,
846 VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE = 0x00000004,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700847}
848
849enum VkCompareOp {
850 VK_COMPARE_OP_NEVER = 0x00000000,
851 VK_COMPARE_OP_LESS = 0x00000001,
852 VK_COMPARE_OP_EQUAL = 0x00000002,
Jesse Hall3fbc8562015-11-29 22:10:52 -0800853 VK_COMPARE_OP_LESS_OR_EQUAL = 0x00000003,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700854 VK_COMPARE_OP_GREATER = 0x00000004,
855 VK_COMPARE_OP_NOT_EQUAL = 0x00000005,
Jesse Hall3fbc8562015-11-29 22:10:52 -0800856 VK_COMPARE_OP_GREATER_OR_EQUAL = 0x00000006,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700857 VK_COMPARE_OP_ALWAYS = 0x00000007,
858}
859
Jesse Hall65ab5522015-11-30 00:07:16 -0800860enum VkPolygonMode {
861 VK_POLYGON_MODE_FILL = 0x00000000,
862 VK_POLYGON_MODE_LINE = 0x00000001,
863 VK_POLYGON_MODE_POINT = 0x00000002,
Jesse Hall7ba0ac72017-07-07 17:13:23 -0700864
865 //@extension("VK_NV_fill_rectangle") // 154
866 VK_POLYGON_MODE_FILL_RECTANGLE_NV = 1000153000,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700867}
868
869enum VkFrontFace {
Jesse Hall3fbc8562015-11-29 22:10:52 -0800870 VK_FRONT_FACE_COUNTER_CLOCKWISE = 0x00000000,
871 VK_FRONT_FACE_CLOCKWISE = 0x00000001,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700872}
873
Jesse Hall65ab5522015-11-30 00:07:16 -0800874enum VkBlendFactor {
875 VK_BLEND_FACTOR_ZERO = 0x00000000,
876 VK_BLEND_FACTOR_ONE = 0x00000001,
877 VK_BLEND_FACTOR_SRC_COLOR = 0x00000002,
878 VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR = 0x00000003,
879 VK_BLEND_FACTOR_DST_COLOR = 0x00000004,
880 VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR = 0x00000005,
881 VK_BLEND_FACTOR_SRC_ALPHA = 0x00000006,
882 VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA = 0x00000007,
883 VK_BLEND_FACTOR_DST_ALPHA = 0x00000008,
884 VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA = 0x00000009,
885 VK_BLEND_FACTOR_CONSTANT_COLOR = 0x0000000a,
886 VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR = 0x0000000b,
887 VK_BLEND_FACTOR_CONSTANT_ALPHA = 0x0000000c,
888 VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA = 0x0000000d,
889 VK_BLEND_FACTOR_SRC_ALPHA_SATURATE = 0x0000000e,
890 VK_BLEND_FACTOR_SRC1_COLOR = 0x0000000f,
891 VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR = 0x00000010,
892 VK_BLEND_FACTOR_SRC1_ALPHA = 0x00000011,
893 VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA = 0x00000012,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700894}
895
896enum VkBlendOp {
897 VK_BLEND_OP_ADD = 0x00000000,
898 VK_BLEND_OP_SUBTRACT = 0x00000001,
899 VK_BLEND_OP_REVERSE_SUBTRACT = 0x00000002,
900 VK_BLEND_OP_MIN = 0x00000003,
901 VK_BLEND_OP_MAX = 0x00000004,
Jesse Hall7ba0ac72017-07-07 17:13:23 -0700902
903 //@extension("VK_EXT_blend_operation_advanced") // 149
904 VK_BLEND_OP_ZERO_EXT = 1000148000,
905 VK_BLEND_OP_SRC_EXT = 1000148001,
906 VK_BLEND_OP_DST_EXT = 1000148002,
907 VK_BLEND_OP_SRC_OVER_EXT = 1000148003,
908 VK_BLEND_OP_DST_OVER_EXT = 1000148004,
909 VK_BLEND_OP_SRC_IN_EXT = 1000148005,
910 VK_BLEND_OP_DST_IN_EXT = 1000148006,
911 VK_BLEND_OP_SRC_OUT_EXT = 1000148007,
912 VK_BLEND_OP_DST_OUT_EXT = 1000148008,
913 VK_BLEND_OP_SRC_ATOP_EXT = 1000148009,
914 VK_BLEND_OP_DST_ATOP_EXT = 1000148010,
915 VK_BLEND_OP_XOR_EXT = 1000148011,
916 VK_BLEND_OP_MULTIPLY_EXT = 1000148012,
917 VK_BLEND_OP_SCREEN_EXT = 1000148013,
918 VK_BLEND_OP_OVERLAY_EXT = 1000148014,
919 VK_BLEND_OP_DARKEN_EXT = 1000148015,
920 VK_BLEND_OP_LIGHTEN_EXT = 1000148016,
921 VK_BLEND_OP_COLORDODGE_EXT = 1000148017,
922 VK_BLEND_OP_COLORBURN_EXT = 1000148018,
923 VK_BLEND_OP_HARDLIGHT_EXT = 1000148019,
924 VK_BLEND_OP_SOFTLIGHT_EXT = 1000148020,
925 VK_BLEND_OP_DIFFERENCE_EXT = 1000148021,
926 VK_BLEND_OP_EXCLUSION_EXT = 1000148022,
927 VK_BLEND_OP_INVERT_EXT = 1000148023,
928 VK_BLEND_OP_INVERT_RGB_EXT = 1000148024,
929 VK_BLEND_OP_LINEARDODGE_EXT = 1000148025,
930 VK_BLEND_OP_LINEARBURN_EXT = 1000148026,
931 VK_BLEND_OP_VIVIDLIGHT_EXT = 1000148027,
932 VK_BLEND_OP_LINEARLIGHT_EXT = 1000148028,
933 VK_BLEND_OP_PINLIGHT_EXT = 1000148029,
934 VK_BLEND_OP_HARDMIX_EXT = 1000148030,
935 VK_BLEND_OP_HSL_HUE_EXT = 1000148031,
936 VK_BLEND_OP_HSL_SATURATION_EXT = 1000148032,
937 VK_BLEND_OP_HSL_COLOR_EXT = 1000148033,
938 VK_BLEND_OP_HSL_LUMINOSITY_EXT = 1000148034,
939 VK_BLEND_OP_PLUS_EXT = 1000148035,
940 VK_BLEND_OP_PLUS_CLAMPED_EXT = 1000148036,
941 VK_BLEND_OP_PLUS_CLAMPED_ALPHA_EXT = 1000148037,
942 VK_BLEND_OP_PLUS_DARKER_EXT = 1000148038,
943 VK_BLEND_OP_MINUS_EXT = 1000148039,
944 VK_BLEND_OP_MINUS_CLAMPED_EXT = 1000148040,
945 VK_BLEND_OP_CONTRAST_EXT = 1000148041,
946 VK_BLEND_OP_INVERT_OVG_EXT = 1000148042,
947 VK_BLEND_OP_RED_EXT = 1000148043,
948 VK_BLEND_OP_GREEN_EXT = 1000148044,
949 VK_BLEND_OP_BLUE_EXT = 1000148045,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700950}
951
952enum VkStencilOp {
953 VK_STENCIL_OP_KEEP = 0x00000000,
954 VK_STENCIL_OP_ZERO = 0x00000001,
955 VK_STENCIL_OP_REPLACE = 0x00000002,
Jesse Hall3fbc8562015-11-29 22:10:52 -0800956 VK_STENCIL_OP_INCREMENT_AND_CLAMP = 0x00000003,
957 VK_STENCIL_OP_DECREMENT_AND_CLAMP = 0x00000004,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700958 VK_STENCIL_OP_INVERT = 0x00000005,
Jesse Hall3fbc8562015-11-29 22:10:52 -0800959 VK_STENCIL_OP_INCREMENT_AND_WRAP = 0x00000006,
960 VK_STENCIL_OP_DECREMENT_AND_WRAP = 0x00000007,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700961}
962
963enum VkLogicOp {
964 VK_LOGIC_OP_CLEAR = 0x00000000,
965 VK_LOGIC_OP_AND = 0x00000001,
966 VK_LOGIC_OP_AND_REVERSE = 0x00000002,
967 VK_LOGIC_OP_COPY = 0x00000003,
968 VK_LOGIC_OP_AND_INVERTED = 0x00000004,
Jesse Hall3fbc8562015-11-29 22:10:52 -0800969 VK_LOGIC_OP_NO_OP = 0x00000005,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700970 VK_LOGIC_OP_XOR = 0x00000006,
971 VK_LOGIC_OP_OR = 0x00000007,
972 VK_LOGIC_OP_NOR = 0x00000008,
Jesse Hall3fbc8562015-11-29 22:10:52 -0800973 VK_LOGIC_OP_EQUIVALENT = 0x00000009,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700974 VK_LOGIC_OP_INVERT = 0x0000000a,
975 VK_LOGIC_OP_OR_REVERSE = 0x0000000b,
976 VK_LOGIC_OP_COPY_INVERTED = 0x0000000c,
977 VK_LOGIC_OP_OR_INVERTED = 0x0000000d,
978 VK_LOGIC_OP_NAND = 0x0000000e,
979 VK_LOGIC_OP_SET = 0x0000000f,
980}
981
Jesse Hall3fbc8562015-11-29 22:10:52 -0800982enum VkSystemAllocationScope {
Jesse Hall3e0dc8f2015-11-30 00:42:57 -0800983 VK_SYSTEM_ALLOCATION_SCOPE_COMMAND = 0x00000000,
Jesse Hall3fbc8562015-11-29 22:10:52 -0800984 VK_SYSTEM_ALLOCATION_SCOPE_OBJECT = 0x00000001,
985 VK_SYSTEM_ALLOCATION_SCOPE_CACHE = 0x00000002,
986 VK_SYSTEM_ALLOCATION_SCOPE_DEVICE = 0x00000003,
987 VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE = 0x00000004,
Jesse Hall03b6fe12015-11-24 12:44:21 -0800988}
989
Jesse Hall3fbc8562015-11-29 22:10:52 -0800990enum VkInternalAllocationType {
991 VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE = 0x00000000,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700992}
993
994enum VkPhysicalDeviceType {
995 VK_PHYSICAL_DEVICE_TYPE_OTHER = 0x00000000,
996 VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU = 0x00000001,
997 VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU = 0x00000002,
998 VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU = 0x00000003,
999 VK_PHYSICAL_DEVICE_TYPE_CPU = 0x00000004,
1000}
1001
Jesse Hall65ab5522015-11-30 00:07:16 -08001002enum VkVertexInputRate {
1003 VK_VERTEX_INPUT_RATE_VERTEX = 0x00000000,
1004 VK_VERTEX_INPUT_RATE_INSTANCE = 0x00000001,
Jesse Halld27f6aa2015-08-15 17:58:48 -07001005}
1006
1007/// Vulkan format definitions
1008enum VkFormat {
Jesse Hallf4ab2b12015-11-30 16:04:55 -08001009 VK_FORMAT_UNDEFINED = 0,
1010 VK_FORMAT_R4G4_UNORM_PACK8 = 1,
1011 VK_FORMAT_R4G4B4A4_UNORM_PACK16 = 2,
1012 VK_FORMAT_B4G4R4A4_UNORM_PACK16 = 3,
1013 VK_FORMAT_R5G6B5_UNORM_PACK16 = 4,
1014 VK_FORMAT_B5G6R5_UNORM_PACK16 = 5,
1015 VK_FORMAT_R5G5B5A1_UNORM_PACK16 = 6,
1016 VK_FORMAT_B5G5R5A1_UNORM_PACK16 = 7,
1017 VK_FORMAT_A1R5G5B5_UNORM_PACK16 = 8,
1018 VK_FORMAT_R8_UNORM = 9,
1019 VK_FORMAT_R8_SNORM = 10,
1020 VK_FORMAT_R8_USCALED = 11,
1021 VK_FORMAT_R8_SSCALED = 12,
1022 VK_FORMAT_R8_UINT = 13,
1023 VK_FORMAT_R8_SINT = 14,
1024 VK_FORMAT_R8_SRGB = 15,
1025 VK_FORMAT_R8G8_UNORM = 16,
1026 VK_FORMAT_R8G8_SNORM = 17,
1027 VK_FORMAT_R8G8_USCALED = 18,
1028 VK_FORMAT_R8G8_SSCALED = 19,
1029 VK_FORMAT_R8G8_UINT = 20,
1030 VK_FORMAT_R8G8_SINT = 21,
1031 VK_FORMAT_R8G8_SRGB = 22,
1032 VK_FORMAT_R8G8B8_UNORM = 23,
1033 VK_FORMAT_R8G8B8_SNORM = 24,
1034 VK_FORMAT_R8G8B8_USCALED = 25,
1035 VK_FORMAT_R8G8B8_SSCALED = 26,
1036 VK_FORMAT_R8G8B8_UINT = 27,
1037 VK_FORMAT_R8G8B8_SINT = 28,
1038 VK_FORMAT_R8G8B8_SRGB = 29,
1039 VK_FORMAT_B8G8R8_UNORM = 30,
1040 VK_FORMAT_B8G8R8_SNORM = 31,
1041 VK_FORMAT_B8G8R8_USCALED = 32,
1042 VK_FORMAT_B8G8R8_SSCALED = 33,
1043 VK_FORMAT_B8G8R8_UINT = 34,
1044 VK_FORMAT_B8G8R8_SINT = 35,
1045 VK_FORMAT_B8G8R8_SRGB = 36,
1046 VK_FORMAT_R8G8B8A8_UNORM = 37,
1047 VK_FORMAT_R8G8B8A8_SNORM = 38,
1048 VK_FORMAT_R8G8B8A8_USCALED = 39,
1049 VK_FORMAT_R8G8B8A8_SSCALED = 40,
1050 VK_FORMAT_R8G8B8A8_UINT = 41,
1051 VK_FORMAT_R8G8B8A8_SINT = 42,
1052 VK_FORMAT_R8G8B8A8_SRGB = 43,
1053 VK_FORMAT_B8G8R8A8_UNORM = 44,
1054 VK_FORMAT_B8G8R8A8_SNORM = 45,
1055 VK_FORMAT_B8G8R8A8_USCALED = 46,
1056 VK_FORMAT_B8G8R8A8_SSCALED = 47,
1057 VK_FORMAT_B8G8R8A8_UINT = 48,
1058 VK_FORMAT_B8G8R8A8_SINT = 49,
1059 VK_FORMAT_B8G8R8A8_SRGB = 50,
1060 VK_FORMAT_A8B8G8R8_UNORM_PACK32 = 51,
1061 VK_FORMAT_A8B8G8R8_SNORM_PACK32 = 52,
1062 VK_FORMAT_A8B8G8R8_USCALED_PACK32 = 53,
1063 VK_FORMAT_A8B8G8R8_SSCALED_PACK32 = 54,
1064 VK_FORMAT_A8B8G8R8_UINT_PACK32 = 55,
1065 VK_FORMAT_A8B8G8R8_SINT_PACK32 = 56,
1066 VK_FORMAT_A8B8G8R8_SRGB_PACK32 = 57,
1067 VK_FORMAT_A2R10G10B10_UNORM_PACK32 = 58,
1068 VK_FORMAT_A2R10G10B10_SNORM_PACK32 = 59,
1069 VK_FORMAT_A2R10G10B10_USCALED_PACK32 = 60,
1070 VK_FORMAT_A2R10G10B10_SSCALED_PACK32 = 61,
1071 VK_FORMAT_A2R10G10B10_UINT_PACK32 = 62,
1072 VK_FORMAT_A2R10G10B10_SINT_PACK32 = 63,
1073 VK_FORMAT_A2B10G10R10_UNORM_PACK32 = 64,
1074 VK_FORMAT_A2B10G10R10_SNORM_PACK32 = 65,
1075 VK_FORMAT_A2B10G10R10_USCALED_PACK32 = 66,
1076 VK_FORMAT_A2B10G10R10_SSCALED_PACK32 = 67,
1077 VK_FORMAT_A2B10G10R10_UINT_PACK32 = 68,
1078 VK_FORMAT_A2B10G10R10_SINT_PACK32 = 69,
1079 VK_FORMAT_R16_UNORM = 70,
1080 VK_FORMAT_R16_SNORM = 71,
1081 VK_FORMAT_R16_USCALED = 72,
1082 VK_FORMAT_R16_SSCALED = 73,
1083 VK_FORMAT_R16_UINT = 74,
1084 VK_FORMAT_R16_SINT = 75,
1085 VK_FORMAT_R16_SFLOAT = 76,
1086 VK_FORMAT_R16G16_UNORM = 77,
1087 VK_FORMAT_R16G16_SNORM = 78,
1088 VK_FORMAT_R16G16_USCALED = 79,
1089 VK_FORMAT_R16G16_SSCALED = 80,
1090 VK_FORMAT_R16G16_UINT = 81,
1091 VK_FORMAT_R16G16_SINT = 82,
1092 VK_FORMAT_R16G16_SFLOAT = 83,
1093 VK_FORMAT_R16G16B16_UNORM = 84,
1094 VK_FORMAT_R16G16B16_SNORM = 85,
1095 VK_FORMAT_R16G16B16_USCALED = 86,
1096 VK_FORMAT_R16G16B16_SSCALED = 87,
1097 VK_FORMAT_R16G16B16_UINT = 88,
1098 VK_FORMAT_R16G16B16_SINT = 89,
1099 VK_FORMAT_R16G16B16_SFLOAT = 90,
1100 VK_FORMAT_R16G16B16A16_UNORM = 91,
1101 VK_FORMAT_R16G16B16A16_SNORM = 92,
1102 VK_FORMAT_R16G16B16A16_USCALED = 93,
1103 VK_FORMAT_R16G16B16A16_SSCALED = 94,
1104 VK_FORMAT_R16G16B16A16_UINT = 95,
1105 VK_FORMAT_R16G16B16A16_SINT = 96,
1106 VK_FORMAT_R16G16B16A16_SFLOAT = 97,
1107 VK_FORMAT_R32_UINT = 98,
1108 VK_FORMAT_R32_SINT = 99,
1109 VK_FORMAT_R32_SFLOAT = 100,
1110 VK_FORMAT_R32G32_UINT = 101,
1111 VK_FORMAT_R32G32_SINT = 102,
1112 VK_FORMAT_R32G32_SFLOAT = 103,
1113 VK_FORMAT_R32G32B32_UINT = 104,
1114 VK_FORMAT_R32G32B32_SINT = 105,
1115 VK_FORMAT_R32G32B32_SFLOAT = 106,
1116 VK_FORMAT_R32G32B32A32_UINT = 107,
1117 VK_FORMAT_R32G32B32A32_SINT = 108,
1118 VK_FORMAT_R32G32B32A32_SFLOAT = 109,
1119 VK_FORMAT_R64_UINT = 110,
1120 VK_FORMAT_R64_SINT = 111,
1121 VK_FORMAT_R64_SFLOAT = 112,
1122 VK_FORMAT_R64G64_UINT = 113,
1123 VK_FORMAT_R64G64_SINT = 114,
1124 VK_FORMAT_R64G64_SFLOAT = 115,
1125 VK_FORMAT_R64G64B64_UINT = 116,
1126 VK_FORMAT_R64G64B64_SINT = 117,
1127 VK_FORMAT_R64G64B64_SFLOAT = 118,
1128 VK_FORMAT_R64G64B64A64_UINT = 119,
1129 VK_FORMAT_R64G64B64A64_SINT = 120,
1130 VK_FORMAT_R64G64B64A64_SFLOAT = 121,
1131 VK_FORMAT_B10G11R11_UFLOAT_PACK32 = 122,
1132 VK_FORMAT_E5B9G9R9_UFLOAT_PACK32 = 123,
1133 VK_FORMAT_D16_UNORM = 124,
1134 VK_FORMAT_X8_D24_UNORM_PACK32 = 125,
1135 VK_FORMAT_D32_SFLOAT = 126,
1136 VK_FORMAT_S8_UINT = 127,
1137 VK_FORMAT_D16_UNORM_S8_UINT = 128,
1138 VK_FORMAT_D24_UNORM_S8_UINT = 129,
1139 VK_FORMAT_D32_SFLOAT_S8_UINT = 130,
1140 VK_FORMAT_BC1_RGB_UNORM_BLOCK = 131,
1141 VK_FORMAT_BC1_RGB_SRGB_BLOCK = 132,
1142 VK_FORMAT_BC1_RGBA_UNORM_BLOCK = 133,
1143 VK_FORMAT_BC1_RGBA_SRGB_BLOCK = 134,
1144 VK_FORMAT_BC2_UNORM_BLOCK = 135,
1145 VK_FORMAT_BC2_SRGB_BLOCK = 136,
1146 VK_FORMAT_BC3_UNORM_BLOCK = 137,
1147 VK_FORMAT_BC3_SRGB_BLOCK = 138,
1148 VK_FORMAT_BC4_UNORM_BLOCK = 139,
1149 VK_FORMAT_BC4_SNORM_BLOCK = 140,
1150 VK_FORMAT_BC5_UNORM_BLOCK = 141,
1151 VK_FORMAT_BC5_SNORM_BLOCK = 142,
1152 VK_FORMAT_BC6H_UFLOAT_BLOCK = 143,
1153 VK_FORMAT_BC6H_SFLOAT_BLOCK = 144,
1154 VK_FORMAT_BC7_UNORM_BLOCK = 145,
1155 VK_FORMAT_BC7_SRGB_BLOCK = 146,
1156 VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK = 147,
1157 VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK = 148,
1158 VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK = 149,
1159 VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK = 150,
1160 VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK = 151,
1161 VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK = 152,
1162 VK_FORMAT_EAC_R11_UNORM_BLOCK = 153,
1163 VK_FORMAT_EAC_R11_SNORM_BLOCK = 154,
1164 VK_FORMAT_EAC_R11G11_UNORM_BLOCK = 155,
1165 VK_FORMAT_EAC_R11G11_SNORM_BLOCK = 156,
1166 VK_FORMAT_ASTC_4x4_UNORM_BLOCK = 157,
1167 VK_FORMAT_ASTC_4x4_SRGB_BLOCK = 158,
1168 VK_FORMAT_ASTC_5x4_UNORM_BLOCK = 159,
1169 VK_FORMAT_ASTC_5x4_SRGB_BLOCK = 160,
1170 VK_FORMAT_ASTC_5x5_UNORM_BLOCK = 161,
1171 VK_FORMAT_ASTC_5x5_SRGB_BLOCK = 162,
1172 VK_FORMAT_ASTC_6x5_UNORM_BLOCK = 163,
1173 VK_FORMAT_ASTC_6x5_SRGB_BLOCK = 164,
1174 VK_FORMAT_ASTC_6x6_UNORM_BLOCK = 165,
1175 VK_FORMAT_ASTC_6x6_SRGB_BLOCK = 166,
1176 VK_FORMAT_ASTC_8x5_UNORM_BLOCK = 167,
1177 VK_FORMAT_ASTC_8x5_SRGB_BLOCK = 168,
1178 VK_FORMAT_ASTC_8x6_UNORM_BLOCK = 169,
1179 VK_FORMAT_ASTC_8x6_SRGB_BLOCK = 170,
1180 VK_FORMAT_ASTC_8x8_UNORM_BLOCK = 171,
1181 VK_FORMAT_ASTC_8x8_SRGB_BLOCK = 172,
1182 VK_FORMAT_ASTC_10x5_UNORM_BLOCK = 173,
1183 VK_FORMAT_ASTC_10x5_SRGB_BLOCK = 174,
1184 VK_FORMAT_ASTC_10x6_UNORM_BLOCK = 175,
1185 VK_FORMAT_ASTC_10x6_SRGB_BLOCK = 176,
1186 VK_FORMAT_ASTC_10x8_UNORM_BLOCK = 177,
1187 VK_FORMAT_ASTC_10x8_SRGB_BLOCK = 178,
1188 VK_FORMAT_ASTC_10x10_UNORM_BLOCK = 179,
1189 VK_FORMAT_ASTC_10x10_SRGB_BLOCK = 180,
1190 VK_FORMAT_ASTC_12x10_UNORM_BLOCK = 181,
1191 VK_FORMAT_ASTC_12x10_SRGB_BLOCK = 182,
1192 VK_FORMAT_ASTC_12x12_UNORM_BLOCK = 183,
1193 VK_FORMAT_ASTC_12x12_SRGB_BLOCK = 184,
Chris Forbes289cb792016-12-30 15:03:55 +13001194
Ian Elliott28bd2c32017-10-13 09:21:12 -06001195 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04001196 VK_FORMAT_G8B8G8R8_422_UNORM = 1000156000,
1197 VK_FORMAT_B8G8R8G8_422_UNORM = 1000156001,
1198 VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM = 1000156002,
1199 VK_FORMAT_G8_B8R8_2PLANE_420_UNORM = 1000156003,
1200 VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM = 1000156004,
1201 VK_FORMAT_G8_B8R8_2PLANE_422_UNORM = 1000156005,
1202 VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM = 1000156006,
1203 VK_FORMAT_R10X6_UNORM_PACK16 = 1000156007,
1204 VK_FORMAT_R10X6G10X6_UNORM_2PACK16 = 1000156008,
1205 VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16 = 1000156009,
1206 VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16 = 1000156010,
1207 VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16 = 1000156011,
1208 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16 = 1000156012,
1209 VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16 = 1000156013,
1210 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16 = 1000156014,
1211 VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16 = 1000156015,
1212 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16 = 1000156016,
1213 VK_FORMAT_R12X4_UNORM_PACK16 = 1000156017,
1214 VK_FORMAT_R12X4G12X4_UNORM_2PACK16 = 1000156018,
1215 VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16 = 1000156019,
1216 VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16 = 1000156020,
1217 VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16 = 1000156021,
1218 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16 = 1000156022,
1219 VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16 = 1000156023,
1220 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16 = 1000156024,
1221 VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16 = 1000156025,
1222 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16 = 1000156026,
1223 VK_FORMAT_G16B16G16R16_422_UNORM = 1000156027,
1224 VK_FORMAT_B16G16R16G16_422_UNORM = 1000156028,
1225 VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM = 1000156029,
1226 VK_FORMAT_G16_B16R16_2PLANE_420_UNORM = 1000156030,
1227 VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM = 1000156031,
1228 VK_FORMAT_G16_B16R16_2PLANE_422_UNORM = 1000156032,
1229 VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM = 1000156033,
1230
Jesse Hallad250842017-03-10 18:35:38 -08001231 //@extension("VK_IMG_format_pvrtc") // 28
Jesse Halleb02c472017-02-24 15:13:45 -08001232 VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG = 1000054000,
1233 VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG = 1000054001,
1234 VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG = 1000054002,
1235 VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG = 1000054003,
1236 VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG = 1000054004,
1237 VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG = 1000054005,
1238 VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG = 1000054006,
1239 VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG = 1000054007,
Jesse Hall076f95d2017-09-20 11:34:47 -07001240
1241 //@extension("VK_KHR_sampler_ycbcr_conversion") // 157
1242 VK_FORMAT_G8B8G8R8_422_UNORM_KHR = 1000156000,
1243 VK_FORMAT_B8G8R8G8_422_UNORM_KHR = 1000156001,
1244 VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM_KHR = 1000156002,
1245 VK_FORMAT_G8_B8R8_2PLANE_420_UNORM_KHR = 1000156003,
1246 VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM_KHR = 1000156004,
1247 VK_FORMAT_G8_B8R8_2PLANE_422_UNORM_KHR = 1000156005,
1248 VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM_KHR = 1000156006,
1249 VK_FORMAT_R10X6_UNORM_PACK16_KHR = 1000156007,
1250 VK_FORMAT_R10X6G10X6_UNORM_2PACK16_KHR = 1000156008,
1251 VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16_KHR = 1000156009,
1252 VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16_KHR = 1000156010,
1253 VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16_KHR = 1000156011,
1254 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16_KHR = 1000156012,
1255 VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16_KHR = 1000156013,
1256 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16_KHR = 1000156014,
1257 VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16_KHR = 1000156015,
1258 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16_KHR = 1000156016,
1259 VK_FORMAT_R12X4_UNORM_PACK16_KHR = 1000156017,
1260 VK_FORMAT_R12X4G12X4_UNORM_2PACK16_KHR = 1000156018,
1261 VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16_KHR = 1000156019,
1262 VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16_KHR = 1000156020,
1263 VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16_KHR = 1000156021,
1264 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16_KHR = 1000156022,
1265 VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16_KHR = 1000156023,
1266 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16_KHR = 1000156024,
1267 VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16_KHR = 1000156025,
1268 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16_KHR = 1000156026,
1269 VK_FORMAT_G16B16G16R16_422_UNORM_KHR = 1000156027,
1270 VK_FORMAT_B16G16R16G16_422_UNORM_KHR = 1000156028,
1271 VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM_KHR = 1000156029,
1272 VK_FORMAT_G16_B16R16_2PLANE_420_UNORM_KHR = 1000156030,
1273 VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM_KHR = 1000156031,
1274 VK_FORMAT_G16_B16R16_2PLANE_422_UNORM_KHR = 1000156032,
1275 VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM_KHR = 1000156033,
Jesse Halld27f6aa2015-08-15 17:58:48 -07001276}
1277
Jesse Halld27f6aa2015-08-15 17:58:48 -07001278/// Structure type enumerant
1279enum VkStructureType {
1280 VK_STRUCTURE_TYPE_APPLICATION_INFO = 0,
Jesse Hallc7467b72015-11-29 21:05:26 -08001281 VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO = 1,
1282 VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO = 2,
1283 VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO = 3,
1284 VK_STRUCTURE_TYPE_SUBMIT_INFO = 4,
Jesse Hallf4ab2b12015-11-30 16:04:55 -08001285 VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO = 5,
Jesse Hallc7467b72015-11-29 21:05:26 -08001286 VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE = 6,
1287 VK_STRUCTURE_TYPE_BIND_SPARSE_INFO = 7,
1288 VK_STRUCTURE_TYPE_FENCE_CREATE_INFO = 8,
1289 VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO = 9,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07001290 VK_STRUCTURE_TYPE_EVENT_CREATE_INFO = 10,
Jesse Hallc7467b72015-11-29 21:05:26 -08001291 VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO = 11,
1292 VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO = 12,
1293 VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO = 13,
1294 VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO = 14,
1295 VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO = 15,
1296 VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO = 16,
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08001297 VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO = 17,
1298 VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO = 18,
1299 VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO = 19,
1300 VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO = 20,
1301 VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO = 21,
1302 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO = 22,
1303 VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO = 23,
1304 VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO = 24,
1305 VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO = 25,
1306 VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO = 26,
1307 VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO = 27,
1308 VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO = 28,
1309 VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO = 29,
1310 VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO = 30,
1311 VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO = 31,
1312 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO = 32,
1313 VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO = 33,
Jesse Hallf4ab2b12015-11-30 16:04:55 -08001314 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO = 34,
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08001315 VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET = 35,
1316 VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET = 36,
1317 VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO = 37,
1318 VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO = 38,
1319 VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO = 39,
Jesse Hallf4ab2b12015-11-30 16:04:55 -08001320 VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO = 40,
Jesse Hall3dd678a2016-01-08 21:52:01 -08001321 VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO = 41,
1322 VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO = 42,
1323 VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO = 43,
1324 VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER = 44,
1325 VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER = 45,
1326 VK_STRUCTURE_TYPE_MEMORY_BARRIER = 46,
1327 VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO = 47,
1328 VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO = 48,
Jesse Hall1356b0d2015-11-23 17:24:58 -08001329
Ian Elliott28bd2c32017-10-13 09:21:12 -06001330 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04001331 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES = 1000094000,
1332 VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO = 1000157000,
1333 VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO = 1000157001,
1334 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES = 1000083000,
1335 VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS = 1000127000,
1336 VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO = 1000127001,
1337 VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO = 1000060000,
1338 VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO = 1000060003,
1339 VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO = 1000060004,
1340 VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO = 1000060005,
1341 VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO = 1000060006,
1342 VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO = 1000060013,
1343 VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO = 1000060014,
1344 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES = 1000070000,
1345 VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO = 1000070001,
1346 VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2 = 1000146000,
1347 VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2 = 1000146001,
1348 VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2 = 1000146002,
1349 VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2 = 1000146003,
1350 VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2 = 1000146004,
1351 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2 = 1000059000,
1352 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2 = 1000059001,
1353 VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2 = 1000059002,
1354 VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2 = 1000059003,
1355 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2 = 1000059004,
1356 VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2 = 1000059005,
1357 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2 = 1000059006,
1358 VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2 = 1000059007,
1359 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2 = 1000059008,
1360 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES = 1000117000,
1361 VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO = 1000117001,
1362 VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO = 1000117002,
1363 VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO = 1000117003,
1364 VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO = 1000053000,
1365 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES = 1000053001,
1366 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES = 1000053002,
1367 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES = 1000120000,
1368 VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO = 1000145000,
1369 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES = 1000145001,
1370 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES = 1000145002,
1371 VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2 = 1000145003,
1372 VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO = 1000156000,
1373 VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO = 1000156001,
1374 VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO = 1000156002,
1375 VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO = 1000156003,
1376 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES = 1000156004,
1377 VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES = 1000156005,
1378 VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO = 1000085000,
1379 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO = 1000071000,
1380 VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES = 1000071001,
1381 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO = 1000071002,
1382 VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES = 1000071003,
1383 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES = 1000071004,
1384 VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO = 1000072000,
1385 VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO = 1000072001,
1386 VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO = 1000072002,
1387 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO = 1000112000,
1388 VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES = 1000112001,
1389 VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO = 1000113000,
1390 VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO = 1000077000,
1391 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO = 1000076000,
1392 VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES = 1000076001,
1393 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES = 1000168000,
1394 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT = 1000168001,
1395 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES = 1000063000,
1396 VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR = 1000060007,
1397
Jesse Hallad250842017-03-10 18:35:38 -08001398 //@extension("VK_KHR_swapchain") // 2
Jesse Hallbd888842015-11-30 21:44:14 -08001399 VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR = 1000001000,
1400 VK_STRUCTURE_TYPE_PRESENT_INFO_KHR = 1000001001,
Daniel Koch09f7bf92017-10-05 00:26:58 -04001401 // added as interaction from VK_KHR_device_group / VK 1.1
1402 VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR = 1000060008,
1403 VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR = 1000060009,
1404 VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR = 1000060010,
1405 VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR = 1000060011,
1406 VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR = 1000060012,
Jesse Hall1356b0d2015-11-23 17:24:58 -08001407
Jesse Hallad250842017-03-10 18:35:38 -08001408 //@extension("VK_KHR_display") // 3
Jesse Hallbd888842015-11-30 21:44:14 -08001409 VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR = 1000002000,
1410 VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR = 1000002001,
Jesse Hall1356b0d2015-11-23 17:24:58 -08001411
Jesse Hallad250842017-03-10 18:35:38 -08001412 //@extension("VK_KHR_display_swapchain") // 4
Jesse Hallbd888842015-11-30 21:44:14 -08001413 VK_STRUCTURE_TYPE_DISPLAY_DISPLAY_PRESENT_INFO_KHR = 1000003000,
Jesse Hallf9fa9a52016-01-08 16:08:51 -08001414
Jesse Hallad250842017-03-10 18:35:38 -08001415 //@extension("VK_KHR_xlib_surface") // 5
Jesse Hallf9fa9a52016-01-08 16:08:51 -08001416 VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR = 1000004000,
1417
Jesse Hallad250842017-03-10 18:35:38 -08001418 //@extension("VK_KHR_xcb_surface") // 6
Jesse Hallf9fa9a52016-01-08 16:08:51 -08001419 VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR = 1000005000,
1420
Jesse Hallad250842017-03-10 18:35:38 -08001421 //@extension("VK_KHR_wayland_surface") // 7
Jesse Hallf9fa9a52016-01-08 16:08:51 -08001422 VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR = 1000006000,
1423
Jesse Hallad250842017-03-10 18:35:38 -08001424 //@extension("VK_KHR_mir_surface") // 8
Jesse Hallf9fa9a52016-01-08 16:08:51 -08001425 VK_STRUCTURE_TYPE_MIR_SURFACE_CREATE_INFO_KHR = 1000007000,
1426
Jesse Hallad250842017-03-10 18:35:38 -08001427 //@extension("VK_KHR_android_surface") // 9
Jesse Hallf9fa9a52016-01-08 16:08:51 -08001428 VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR = 1000008000,
1429
Jesse Hallad250842017-03-10 18:35:38 -08001430 //@extension("VK_KHR_win32_surface") // 10
Jesse Hallf9fa9a52016-01-08 16:08:51 -08001431 VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR = 1000009000,
Jesse Hall543a7ff2016-01-08 16:38:30 -08001432
Jesse Hallad250842017-03-10 18:35:38 -08001433 //@extension("VK_ANDROID_native_buffer") // 11
Chia-I Wub262ddc2016-03-22 07:38:20 +08001434 VK_STRUCTURE_TYPE_NATIVE_BUFFER_ANDROID = 1000010000,
Chris Forbes8e4438b2016-12-07 16:26:49 +13001435 VK_STRUCTURE_TYPE_SWAPCHAIN_IMAGE_CREATE_INFO_ANDROID = 1000010001,
Chris Forbes1d4e5542017-02-15 19:38:50 +13001436 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENTATION_PROPERTIES_ANDROID = 1000010002,
Chia-I Wub262ddc2016-03-22 07:38:20 +08001437
Jesse Hallad250842017-03-10 18:35:38 -08001438 //@extension("VK_EXT_debug_report") // 12
Jesse Hall26763382016-05-20 07:13:52 -07001439 VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT = 1000011000,
1440
Jesse Hallad250842017-03-10 18:35:38 -08001441 //@extension("VK_AMD_rasterization_order") // 19
Jesse Hall26763382016-05-20 07:13:52 -07001442 VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD = 1000018000,
1443
Jesse Hallad250842017-03-10 18:35:38 -08001444 //@extension("VK_EXT_debug_marker") // 23
Jesse Hall26763382016-05-20 07:13:52 -07001445 VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT = 1000022000,
Jesse Hall26763382016-05-20 07:13:52 -07001446 VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT = 1000022001,
Jesse Hall26763382016-05-20 07:13:52 -07001447 VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT = 1000022002,
Jesse Hall56d386a2016-07-26 15:20:40 -07001448
Jesse Hallad250842017-03-10 18:35:38 -08001449 //@extension("VK_NV_dedicated_allocation") // 27
Jesse Hall56d386a2016-07-26 15:20:40 -07001450 VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV = 1000026000,
Jesse Hall56d386a2016-07-26 15:20:40 -07001451 VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV = 1000026001,
Jesse Hall56d386a2016-07-26 15:20:40 -07001452 VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV = 1000026002,
Chris Forbes289cb792016-12-30 15:03:55 +13001453
Jesse Hall7ba0ac72017-07-07 17:13:23 -07001454 //@extension("VK_AMD_texture_gather_bias_lod") // 42
1455 VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD = 1000041000,
1456
Jesse Hallb5297192018-09-22 20:52:13 +02001457 //@extension("VK_NV_corner_sampled_image") // 51
1458 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV = 1000050000,
1459
Daniel Koch09f7bf92017-10-05 00:26:58 -04001460 //@extension("VK_KHR_multiview") // 54
1461 VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO_KHR = 1000053000,
1462 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES_KHR = 1000053001,
1463 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES_KHR = 1000053002,
Jesse Hallad250842017-03-10 18:35:38 -08001464
1465 //@extension("VK_NV_external_memory") // 57
Jesse Halleb02c472017-02-24 15:13:45 -08001466 VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV = 1000056000,
1467 VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV = 1000056001,
Chris Forbes289cb792016-12-30 15:03:55 +13001468
Jesse Hallad250842017-03-10 18:35:38 -08001469 //@extension("VK_NV_external_memory_win32") // 58
Jesse Halleb02c472017-02-24 15:13:45 -08001470 VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV = 1000057000,
1471 VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV = 1000057001,
Chris Forbes289cb792016-12-30 15:03:55 +13001472
Jesse Hallad250842017-03-10 18:35:38 -08001473 //@extension("VK_NV_win32_keyed_mutex") // 59
Chris Forbes289cb792016-12-30 15:03:55 +13001474 VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV = 1000058000,
1475
Jesse Hallad250842017-03-10 18:35:38 -08001476 //@extension("VK_KHR_get_physical_device_properties2") // 60
Jesse Hall889cd9a2017-02-25 22:12:23 -08001477 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2_KHR = 1000059000,
1478 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2_KHR = 1000059001,
1479 VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2_KHR = 1000059002,
1480 VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2_KHR = 1000059003,
1481 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2_KHR = 1000059004,
1482 VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2_KHR = 1000059005,
1483 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2_KHR = 1000059006,
1484 VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2_KHR = 1000059007,
Chris Forbes1194ede2016-12-30 16:29:25 +13001485 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2_KHR = 1000059008,
1486
Daniel Koch09f7bf92017-10-05 00:26:58 -04001487 //@extension("VK_KHR_device_group") // 61
1488 VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO_KHR = 1000060000,
1489 VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO_KHR = 1000060003,
1490 VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO_KHR = 1000060004,
1491 VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO_KHR = 1000060005,
1492 VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO_KHR = 1000060006,
1493 VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR = 1000060007,
1494 // tokens 08-12 are listed with VK_KHR_swapchain
1495 VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO_KHR = 1000060013,
1496 VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO_KHR = 1000060014,
Jesse Hallad250842017-03-10 18:35:38 -08001497
1498 //@extension("VK_EXT_validation_flags") // 62
Jesse Halleb02c472017-02-24 15:13:45 -08001499 VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT = 1000061000,
Chris Forbes289cb792016-12-30 15:03:55 +13001500
Jesse Hallad250842017-03-10 18:35:38 -08001501 //@extension("VK_NN_vi_surface") // 63
Jesse Hall77ad05b2017-03-10 22:02:20 -08001502 VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN = 1000062000,
1503
Jesse Hall4af6c462018-09-10 09:04:25 -07001504 //@extension("VK_EXT_astc_decode_mode") // 68
1505 VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT = 1000067000,
1506 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT = 1000067001,
1507
Daniel Koch09f7bf92017-10-05 00:26:58 -04001508 //@extension("VK_KHR_device_group_creation") // 71
1509 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES_KHR = 1000070000,
1510 VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO_KHR = 1000070001,
Jesse Hallad250842017-03-10 18:35:38 -08001511
Jesse Hall9492f992017-08-28 12:10:06 -07001512 //@extension("VK_KHR_external_memory_capabilities") // 72
1513 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO_KHR = 1000071000,
1514 VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES_KHR = 1000071001,
1515 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO_KHR = 1000071002,
1516 VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES_KHR = 1000071003,
1517 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES_KHR = 1000071004,
Jesse Hallad250842017-03-10 18:35:38 -08001518
Jesse Hall9492f992017-08-28 12:10:06 -07001519 //@extension("VK_KHR_external_memory") // 73
1520 VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO_KHR = 1000072000,
1521 VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_KHR = 1000072001,
1522 VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_KHR = 1000072002,
Jesse Hallad250842017-03-10 18:35:38 -08001523
Jesse Hall9492f992017-08-28 12:10:06 -07001524 //@extension("VK_KHR_external_memory_win32") // 74
1525 VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR = 1000073000,
1526 VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR = 1000073001,
1527 VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR = 1000073002,
Jesse Hallad250842017-03-10 18:35:38 -08001528
Jesse Hall9492f992017-08-28 12:10:06 -07001529 //@extension("VK_KHR_external_memory_fd") // 75
1530 VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR = 1000074000,
1531 VK_STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR = 1000074001,
Jesse Hallad250842017-03-10 18:35:38 -08001532
Jesse Hall9492f992017-08-28 12:10:06 -07001533 //@extension("VK_KHR_win32_keyed_mutex") // 76
1534 VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR = 1000075000,
Jesse Hallad250842017-03-10 18:35:38 -08001535
Jesse Hall9492f992017-08-28 12:10:06 -07001536 //@extension("VK_KHR_external_semaphore_capabilities") // 77
1537 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO_KHR = 1000076000,
1538 VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES_KHR = 1000076001,
Jesse Hallad250842017-03-10 18:35:38 -08001539
Jesse Hall9492f992017-08-28 12:10:06 -07001540 //@extension("VK_KHR_external_semaphore") // 78
1541 VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO_KHR = 1000077000,
Jesse Hallad250842017-03-10 18:35:38 -08001542
Jesse Hall9492f992017-08-28 12:10:06 -07001543 //@extension("VK_KHR_external_semaphore_win32") // 79
1544 VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR = 1000078000,
1545 VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR = 1000078001,
1546 VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR = 1000078002,
Jesse Hallad250842017-03-10 18:35:38 -08001547
Jesse Hall9492f992017-08-28 12:10:06 -07001548 //@extension("VK_KHR_external_semaphore_fd") // 80
1549 VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR = 1000079000,
1550 VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR = 1000079001,
Jesse Hallad250842017-03-10 18:35:38 -08001551
1552 //@extension("VK_KHR_push_descriptor") // 81
1553 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR = 1000080000,
1554
Jesse Hall9492f992017-08-28 12:10:06 -07001555 //@extension("VK_KHR_16bit_storage") // 84
1556 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES_KHR = 1000083000,
1557
Jesse Hallad250842017-03-10 18:35:38 -08001558 //@extension("VK_KHR_incremental_present") // 85
Jesse Hall889cd9a2017-02-25 22:12:23 -08001559 VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR = 1000084000,
Chris Forbes289cb792016-12-30 15:03:55 +13001560
Jesse Halla13a3cf2018-07-09 15:51:52 -07001561 //@extension("VK_EXT_conditional_rendering") // 82
1562 VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT = 1000081000,
1563 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT = 1000081001,
1564 VK_STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT = 1000081002,
1565
Jesse Hallad250842017-03-10 18:35:38 -08001566 //@extension("VK_KHR_descriptor_update_template") // 86
1567 VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO_KHR = 1000085000,
1568
1569 //@extension("VK_NVX_device_generated_commands") // 87
Jesse Halleb02c472017-02-24 15:13:45 -08001570 VK_STRUCTURE_TYPE_OBJECT_TABLE_CREATE_INFO_NVX = 1000086000,
1571 VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NVX = 1000086001,
1572 VK_STRUCTURE_TYPE_CMD_PROCESS_COMMANDS_INFO_NVX = 1000086002,
1573 VK_STRUCTURE_TYPE_CMD_RESERVE_SPACE_FOR_COMMANDS_INFO_NVX = 1000086003,
1574 VK_STRUCTURE_TYPE_DEVICE_GENERATED_COMMANDS_LIMITS_NVX = 1000086004,
1575 VK_STRUCTURE_TYPE_DEVICE_GENERATED_COMMANDS_FEATURES_NVX = 1000086005,
Jesse Hall77ad05b2017-03-10 22:02:20 -08001576
Jesse Hallad250842017-03-10 18:35:38 -08001577 //@extension("VK_NV_clip_space_w_scaling") // 88
1578 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV = 1000087000,
1579
1580 //@extension("VK_EXT_display_surface_counter") // 91
Jesse Hall77726222017-09-19 14:49:27 -05001581 VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT = 1000090000,
Jesse Hall77ad05b2017-03-10 22:02:20 -08001582
Jesse Hallad250842017-03-10 18:35:38 -08001583 //@extension("VK_EXT_display_control") // 92
Jesse Hall77ad05b2017-03-10 22:02:20 -08001584 VK_STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT = 1000091000,
1585 VK_STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT = 1000091001,
1586 VK_STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT = 1000091002,
1587 VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT = 1000091003,
Jesse Hallad250842017-03-10 18:35:38 -08001588
1589 //@extension("VK_GOOGLE_display_timing") // 93
1590 VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE = 1000092000,
1591
1592 //@extension("VK_NVX_multiview_per_view_attributes") // 98
1593 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX = 1000097000,
1594
1595 //@extension("VK_NV_viewport_swizzle") // 99
1596 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV = 1000098000,
1597
1598 //@extension("VK_EXT_discard_rectangles") // 100
1599 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT = 1000099000,
1600 VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT = 1000099001,
1601
Jesse Hall8c954d32018-01-17 22:06:20 -08001602 //@extension("VK_EXT_conservative_rasterization") // 102
1603 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT = 1000101000,
1604 VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT = 1000101001,
1605
Jesse Halla13a3cf2018-07-09 15:51:52 -07001606 //@extension("VK_KHR_create_renderpass2") // 110
1607 VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2_KHR = 1000109000,
1608 VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2_KHR = 1000109001,
1609 VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2_KHR = 1000109002,
1610 VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2_KHR = 1000109003,
1611 VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2_KHR = 1000109004,
1612 VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO_KHR = 1000109005,
1613 VK_STRUCTURE_TYPE_SUBPASS_END_INFO_KHR = 1000109006,
1614
Jesse Hallfdc8ab32017-03-10 21:01:57 -08001615 //@extension("VK_EXT_hdr_metadata") // 106
1616 VK_STRUCTURE_TYPE_HDR_METADATA_EXT = 1000105000,
1617
Jesse Hall05556b12017-05-18 17:40:25 -07001618 //@extension("VK_KHR_shared_presentable_image") // 112
Chris Forbese2d3ee12017-03-16 16:10:15 +13001619 VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR = 1000111000,
1620
Jesse Hall9492f992017-08-28 12:10:06 -07001621 //@extension("VK_KHR_external_fence_capabilities") // 113
1622 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO_KHR = 1000112000,
1623 VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES_KHR = 1000112001,
1624
1625 //@extension("VK_KHR_external_fence") // 114
1626 VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO_KHR = 1000113000,
1627
1628 //@extension("VK_KHR_external_fence_win32") // 115
1629 VK_STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR = 1000114000,
1630 VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR = 1000114001,
1631 VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR = 1000114002,
1632
1633 //@extension("VK_KHR_external_fence_fd") // 117
1634 VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR = 1000115000,
1635 VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR = 1000115001,
1636
Jesse Hall076f95d2017-09-20 11:34:47 -07001637 //@extension("VK_KHR_maintenance2") // 118
1638 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES_KHR = 1000117000,
1639 VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO_KHR = 1000117001,
1640 VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO_KHR = 1000117002,
1641 VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO_KHR = 1000117003,
1642
Jesse Hall05556b12017-05-18 17:40:25 -07001643 //@extension("VK_KHR_get_surface_capabilities2") // 120
Chris Forbese2d3ee12017-03-16 16:10:15 +13001644 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR = 1000119000,
1645 VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR = 1000119001,
1646 VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR = 1000119002,
1647
Jesse Hall9492f992017-08-28 12:10:06 -07001648 //@extension("VK_KHR_variable_pointers") // 121
1649 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES_KHR = 1000120000,
1650
Jesse Hall54f8d132018-04-18 08:16:59 -07001651 //@extension("VK_KHR_display_properties2") // 122
1652 VK_STRUCTURE_TYPE_DISPLAY_PROPERTIES_2_KHR = 1000121000,
1653 VK_STRUCTURE_TYPE_DISPLAY_PLANE_PROPERTIES_2_KHR = 1000121001,
1654 VK_STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR = 1000121002,
1655 VK_STRUCTURE_TYPE_DISPLAY_PLANE_INFO_2_KHR = 1000121003,
1656 VK_STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR = 1000121004,
1657
Jesse Hallad250842017-03-10 18:35:38 -08001658 //@extension("VK_MVK_ios_surface") // 123
1659 VK_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK = 1000122000,
1660
1661 //@extension("VK_MVK_macos_surface") // 124
1662 VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK = 1000123000,
Jesse Hall7ba0ac72017-07-07 17:13:23 -07001663
Jesse Hall9492f992017-08-28 12:10:06 -07001664 //@extension("VK_KHR_dedicated_allocation") // 128
1665 VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS_KHR = 1000127000,
1666 VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO_KHR = 1000127001,
1667
Jesse Hall8c954d32018-01-17 22:06:20 -08001668 //@extension("VK_EXT_debug_utils") // 129
1669 VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT = 1000128000,
1670 VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT = 1000128001,
1671 VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT = 1000128002,
1672 VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT = 1000128003,
1673 VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT = 1000128004,
1674
Jesse Hall36215a92018-01-18 15:04:37 -08001675 //@extension("VK_ANDROID_external_memory_android_hardware_buffer") // 130
1676 VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID = 1000129000,
1677 VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID = 1000129001,
1678 VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID = 1000129002,
1679 VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID = 1000129003,
1680 VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID = 1000129004,
1681 VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID = 1000129005,
1682
Jesse Hall7ba0ac72017-07-07 17:13:23 -07001683 //@extension("VK_EXT_sampler_filter_minmax") // 131
1684 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES_EXT = 1000130000,
1685 VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO_EXT = 1000130001,
1686
Jesse Hall4af6c462018-09-10 09:04:25 -07001687 //@extension("VK_EXT_inline_uniform_block") // 139
1688 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT = 1000138000,
1689 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES_EXT = 1000138001,
1690 VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK_EXT = 1000138002,
1691 VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO_EXT = 1000138003,
1692
Jesse Hall77726222017-09-19 14:49:27 -05001693 //@extension("VK_EXT_sample_locations") // 144
1694 VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT = 1000143000,
1695 VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT = 1000143001,
1696 VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT = 1000143002,
1697 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT = 1000143003,
1698 VK_STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT = 1000143004,
1699
Jesse Hall9492f992017-08-28 12:10:06 -07001700 //@extension("VK_KHR_get_memory_requirements2") // 147
1701 VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2_KHR = 1000146000,
1702 VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2_KHR = 1000146001,
1703 VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2_KHR = 1000146002,
1704 VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2_KHR = 1000146003,
1705 VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2_KHR = 1000146004,
1706
Jesse Hall076f95d2017-09-20 11:34:47 -07001707 //@extension("VK_KHR_image_format_list") // 148
1708 VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO_KHR = 1000147000,
1709
Jesse Hall7ba0ac72017-07-07 17:13:23 -07001710 //@extension("VK_EXT_blend_operation_advanced") // 149
1711 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT = 1000148000,
1712 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT = 1000148001,
1713 VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT = 1000148002,
1714
1715 //@extension("VK_NV_fragment_coverage_to_color") // 150
1716 VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV = 1000149000,
1717
Jesse Hall77726222017-09-19 14:49:27 -05001718 //@extension("VK_NV_framebuffer_mixed_samples") // 153
Jesse Hall7ba0ac72017-07-07 17:13:23 -07001719 VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV = 1000152000,
Jesse Hall77726222017-09-19 14:49:27 -05001720
Jesse Hall076f95d2017-09-20 11:34:47 -07001721 //@extension("VK_KHR_sampler_ycbcr_conversion") // 157
1722 VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO_KHR = 1000156000,
1723 VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO_KHR = 1000156001,
1724 VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO_KHR = 1000156002,
1725 VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO_KHR = 1000156003,
1726 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES_KHR = 1000156004,
1727 VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES_KHR = 1000156005,
1728
1729 //@extension("VK_KHR_bind_memory2") // 158
1730 VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO_KHR = 1000157000,
1731 VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO_KHR = 1000157001,
1732
Jesse Hall77726222017-09-19 14:49:27 -05001733 //@extension("VK_EXT_validation_cache") // 161
1734 VK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT = 1000160000,
1735 VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT = 1000160001,
Daniel Koch09f7bf92017-10-05 00:26:58 -04001736
Jesse Hall72e6a132018-04-06 13:00:44 -07001737 //@extension("VK_EXT_descriptor_indexing") // 162
1738 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO_EXT = 1000161000,
1739 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES_EXT = 1000161001,
1740 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES_EXT = 1000161002,
1741 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO_EXT = 1000161003,
1742 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT_EXT = 1000161004,
1743
Jesse Hallb5297192018-09-22 20:52:13 +02001744 //@extension("VK_NV_shading_rate_image") // 165
1745 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV = 1000164000,
1746 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV = 1000164001,
1747 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV = 1000164002,
1748 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV = 1000164005,
1749
1750 //@extension("VK_NVX_raytracing") // 166
1751 VK_STRUCTURE_TYPE_RAYTRACING_PIPELINE_CREATE_INFO_NVX = 1000165000,
1752 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NVX = 1000165001,
1753 VK_STRUCTURE_TYPE_GEOMETRY_INSTANCE_NVX = 1000165002,
1754 VK_STRUCTURE_TYPE_GEOMETRY_NVX = 1000165003,
1755 VK_STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NVX = 1000165004,
1756 VK_STRUCTURE_TYPE_GEOMETRY_AABB_NVX = 1000165005,
1757 VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NVX = 1000165006,
1758 VK_STRUCTURE_TYPE_DESCRIPTOR_ACCELERATION_STRUCTURE_INFO_NVX = 1000165007,
1759 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NVX = 1000165008,
1760 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAYTRACING_PROPERTIES_NVX = 1000165009,
1761 VK_STRUCTURE_TYPE_HIT_SHADER_MODULE_CREATE_INFO_NVX = 1000165010,
1762
1763 //@extension("VK_NV_representative_fragment_test") // 167
1764 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV = 1000166000,
1765 VK_STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV = 1000166001,
1766
Daniel Koch09f7bf92017-10-05 00:26:58 -04001767 //@extension("VK_KHR_maintenance3") // 169
1768 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES_KHR = 1000168000,
1769 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT_KHR = 1000168001,
Jesse Hall8c954d32018-01-17 22:06:20 -08001770
1771 //@extension("VK_EXT_global_priority") // 175
1772 VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT = 1000174000,
1773
Jesse Halla13a3cf2018-07-09 15:51:52 -07001774 //@extension("VK_KHR_8bit_storage") // 178
1775 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES_KHR = 1000177000,
1776
Jesse Hall8c954d32018-01-17 22:06:20 -08001777 //@extension("VK_EXT_external_memory_host") // 179
1778 VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT = 1000178000,
1779 VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT = 1000178001,
1780 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT = 1000178002,
Jesse Hall72e6a132018-04-06 13:00:44 -07001781
Jesse Hall2e6853c2018-10-02 14:05:37 -07001782 //@extension("VK_KHR_shader_atomic_int64") // 181
1783 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES_KHR = 1000180000,
1784
1785 //@extension("VK_KHR_driver_properties") // 197
1786 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES_KHR = 1000196000,
1787
Jesse Hall72e6a132018-04-06 13:00:44 -07001788 //@extension("VK_AMD_shader_core_properties") // 186
1789 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD = 1000185000,
1790
1791 //@extension("VK_EXT_vertex_attribute_divisor") // 191
1792 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT = 1000190000,
1793 VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT = 1000190001,
Jesse Hall4af6c462018-09-10 09:04:25 -07001794 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT = 1000190002,
Jesse Hall115df0c2018-07-30 12:00:59 -07001795
1796 //@extension("VK_NV_device_diagnostic_checkpoints") // 207
1797 VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NV = 1000206000,
1798 VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV = 1000206001,
Jesse Hall4af6c462018-09-10 09:04:25 -07001799
1800 //@extension("VK_KHR_vulkan_memory_model") // 212
1801 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES_KHR = 1000211000,
Jesse Hall497c46f2018-10-08 12:52:48 -07001802
1803 //@extension("VK_FUCHSIA_imagepipe_surface") // 215
1804 VK_STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA = 1000214000,
Jesse Halld27f6aa2015-08-15 17:58:48 -07001805}
1806
Jesse Hall65ab5522015-11-30 00:07:16 -08001807enum VkSubpassContents {
1808 VK_SUBPASS_CONTENTS_INLINE = 0x00000000,
1809 VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS = 0x00000001,
Jesse Halld27f6aa2015-08-15 17:58:48 -07001810}
1811
Jesse Hall543a7ff2016-01-08 16:38:30 -08001812enum VkPipelineCacheHeaderVersion {
1813 VK_PIPELINE_CACHE_HEADER_VERSION_ONE = 1,
1814}
1815
Jesse Hallbd888842015-11-30 21:44:14 -08001816@lastUnused(-11)
Jesse Halld27f6aa2015-08-15 17:58:48 -07001817/// Error and return codes
1818enum VkResult {
1819 // Return codes for successful operation execution (positive values)
Jesse Hallbd888842015-11-30 21:44:14 -08001820 VK_SUCCESS = 0,
1821 VK_NOT_READY = 1,
1822 VK_TIMEOUT = 2,
1823 VK_EVENT_SET = 3,
1824 VK_EVENT_RESET = 4,
1825 VK_INCOMPLETE = 5,
Jesse Halld27f6aa2015-08-15 17:58:48 -07001826
Jesse Hallad250842017-03-10 18:35:38 -08001827 //@extension("VK_KHR_swapchain") // 2
Jesse Hallbd888842015-11-30 21:44:14 -08001828 VK_SUBOPTIMAL_KHR = 1000001003,
Jesse Hall1356b0d2015-11-23 17:24:58 -08001829
Jesse Halld27f6aa2015-08-15 17:58:48 -07001830 // Error codes (negative values)
Jesse Hallbd888842015-11-30 21:44:14 -08001831 VK_ERROR_OUT_OF_HOST_MEMORY = 0xFFFFFFFF, // -1
1832 VK_ERROR_OUT_OF_DEVICE_MEMORY = 0xFFFFFFFE, // -2
1833 VK_ERROR_INITIALIZATION_FAILED = 0xFFFFFFFD, // -3
1834 VK_ERROR_DEVICE_LOST = 0xFFFFFFFC, // -4
1835 VK_ERROR_MEMORY_MAP_FAILED = 0xFFFFFFFB, // -5
1836 VK_ERROR_LAYER_NOT_PRESENT = 0xFFFFFFFA, // -6
1837 VK_ERROR_EXTENSION_NOT_PRESENT = 0xFFFFFFF9, // -7
1838 VK_ERROR_FEATURE_NOT_PRESENT = 0xFFFFFFF8, // -8
1839 VK_ERROR_INCOMPATIBLE_DRIVER = 0xFFFFFFF7, // -9
1840 VK_ERROR_TOO_MANY_OBJECTS = 0xFFFFFFF6, // -10
1841 VK_ERROR_FORMAT_NOT_SUPPORTED = 0xFFFFFFF5, // -11
Jesse Hall56d386a2016-07-26 15:20:40 -07001842 VK_ERROR_FRAGMENTED_POOL = 0xFFFFFFF4, // -12
Jesse Hall1356b0d2015-11-23 17:24:58 -08001843
Ian Elliott28bd2c32017-10-13 09:21:12 -06001844 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04001845 VK_ERROR_OUT_OF_POOL_MEMORY = 0xC4642878, // -1000069000
1846 VK_ERROR_INVALID_EXTERNAL_HANDLE = 0xC4641CBD, // -1000072003
1847
Jesse Hallad250842017-03-10 18:35:38 -08001848 //@extension("VK_KHR_surface") // 1
Jesse Hallbd888842015-11-30 21:44:14 -08001849 VK_ERROR_SURFACE_LOST_KHR = 0xC4653600, // -1000000000
Jesse Hallad250842017-03-10 18:35:38 -08001850 VK_ERROR_NATIVE_WINDOW_IN_USE_KHR = 0xC46535FF, // -1000000001
Jesse Halla6429252015-11-29 18:59:42 -08001851
Jesse Hallad250842017-03-10 18:35:38 -08001852 //@extension("VK_KHR_swapchain") // 2
Jesse Hallbd888842015-11-30 21:44:14 -08001853 VK_ERROR_OUT_OF_DATE_KHR = 0xC4653214, // -1000001004
Jesse Hall1356b0d2015-11-23 17:24:58 -08001854
Jesse Hallad250842017-03-10 18:35:38 -08001855 //@extension("VK_KHR_display_swapchain") // 4
Jesse Hallbd888842015-11-30 21:44:14 -08001856 VK_ERROR_INCOMPATIBLE_DISPLAY_KHR = 0xC4652A47, // -1000003001
Jesse Hall1356b0d2015-11-23 17:24:58 -08001857
Jesse Hallad250842017-03-10 18:35:38 -08001858 //@extension("VK_EXT_debug_report") // 12
Jesse Hall543a7ff2016-01-08 16:38:30 -08001859 VK_ERROR_VALIDATION_FAILED_EXT = 0xC4650B07, // -1000011001
Jesse Hall26763382016-05-20 07:13:52 -07001860
Jesse Hallad250842017-03-10 18:35:38 -08001861 //@extension("VK_NV_glsl_shader") // 13
Jesse Hall26763382016-05-20 07:13:52 -07001862 VK_ERROR_INVALID_SHADER_NV = 0xC4650720, // -1000012000
Jesse Hall77ad05b2017-03-10 22:02:20 -08001863
Jesse Hallad250842017-03-10 18:35:38 -08001864 //@extension("VK_KHR_maintenance1") // 70
Jesse Hall77ad05b2017-03-10 22:02:20 -08001865 VK_ERROR_OUT_OF_POOL_MEMORY_KHR = 0xC4642878, // -1000069000
Jesse Hallad250842017-03-10 18:35:38 -08001866
Jesse Hall8c954d32018-01-17 22:06:20 -08001867 //@extension("VK_EXT_global_priority") // 175
1868 VK_ERROR_NOT_PERMITTED_EXT = 0xC4628E4F, // -1000174001
1869
Jesse Hall9492f992017-08-28 12:10:06 -07001870 //@extension("VK_KHR_external_memory") // 73
1871 VK_ERROR_INVALID_EXTERNAL_HANDLE_KHR = 0xC4641CBD, // -1000072003
Jesse Hall72e6a132018-04-06 13:00:44 -07001872
1873 //@extension("VK_EXT_descriptor_indexing") // 162
1874 VK_ERROR_FRAGMENTATION_EXT = 0xc462c118, // -1000161000
Jesse Hall5ae3abb2015-10-08 14:00:22 -07001875}
1876
1877enum VkDynamicState {
1878 VK_DYNAMIC_STATE_VIEWPORT = 0x00000000,
1879 VK_DYNAMIC_STATE_SCISSOR = 0x00000001,
1880 VK_DYNAMIC_STATE_LINE_WIDTH = 0x00000002,
1881 VK_DYNAMIC_STATE_DEPTH_BIAS = 0x00000003,
1882 VK_DYNAMIC_STATE_BLEND_CONSTANTS = 0x00000004,
1883 VK_DYNAMIC_STATE_DEPTH_BOUNDS = 0x00000005,
1884 VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK = 0x00000006,
1885 VK_DYNAMIC_STATE_STENCIL_WRITE_MASK = 0x00000007,
1886 VK_DYNAMIC_STATE_STENCIL_REFERENCE = 0x00000008,
Jesse Hallad250842017-03-10 18:35:38 -08001887
1888 //@extension("VK_NV_clip_space_w_scaling") // 88
1889 VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV = 1000087000,
1890
1891 //@extension("VK_EXT_discard_rectangles") // 100
1892 VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT = 1000099000,
Jesse Hall77726222017-09-19 14:49:27 -05001893
1894 //@extension("VK_EXT_sample_locations") // 144
1895 VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT = 1000143000,
Jesse Hallb5297192018-09-22 20:52:13 +02001896
1897 //@extension("VK_NV_shading_rate_image") // 165
1898 VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV = 1000164004,
1899 VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV = 1000164006,
1900
1901 //@extension("VK_NV_scissor_exclusive") // 206
1902 VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV = 1000205001,
Jesse Halld27f6aa2015-08-15 17:58:48 -07001903}
1904
Jesse Hall05556b12017-05-18 17:40:25 -07001905enum VkObjectType {
1906 VK_OBJECT_TYPE_UNKNOWN = 0,
1907 VK_OBJECT_TYPE_INSTANCE = 1,
1908 VK_OBJECT_TYPE_PHYSICAL_DEVICE = 2,
1909 VK_OBJECT_TYPE_DEVICE = 3,
1910 VK_OBJECT_TYPE_QUEUE = 4,
1911 VK_OBJECT_TYPE_SEMAPHORE = 5,
1912 VK_OBJECT_TYPE_COMMAND_BUFFER = 6,
1913 VK_OBJECT_TYPE_FENCE = 7,
1914 VK_OBJECT_TYPE_DEVICE_MEMORY = 8,
1915 VK_OBJECT_TYPE_BUFFER = 9,
1916 VK_OBJECT_TYPE_IMAGE = 10,
1917 VK_OBJECT_TYPE_EVENT = 11,
1918 VK_OBJECT_TYPE_QUERY_POOL = 12,
1919 VK_OBJECT_TYPE_BUFFER_VIEW = 13,
1920 VK_OBJECT_TYPE_IMAGE_VIEW = 14,
1921 VK_OBJECT_TYPE_SHADER_MODULE = 15,
1922 VK_OBJECT_TYPE_PIPELINE_CACHE = 16,
1923 VK_OBJECT_TYPE_PIPELINE_LAYOUT = 17,
1924 VK_OBJECT_TYPE_RENDER_PASS = 18,
1925 VK_OBJECT_TYPE_PIPELINE = 19,
1926 VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT = 20,
1927 VK_OBJECT_TYPE_SAMPLER = 21,
1928 VK_OBJECT_TYPE_DESCRIPTOR_POOL = 22,
1929 VK_OBJECT_TYPE_DESCRIPTOR_SET = 23,
1930 VK_OBJECT_TYPE_FRAMEBUFFER = 24,
1931 VK_OBJECT_TYPE_COMMAND_POOL = 25,
1932
Ian Elliott28bd2c32017-10-13 09:21:12 -06001933 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04001934 VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION = 1000156000,
1935 VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE = 1000085000,
1936
Jesse Hall05556b12017-05-18 17:40:25 -07001937 //@extension("VK_KHR_surface") // 1
1938 VK_OBJECT_TYPE_SURFACE_KHR = 1000000000,
1939
1940 //@extension("VK_KHR_swapchain") // 2
1941 VK_OBJECT_TYPE_SWAPCHAIN_KHR = 1000001000,
1942
1943 //@extension("VK_KHR_display") // 3
1944 VK_OBJECT_TYPE_DISPLAY_KHR = 1000002000,
1945 VK_OBJECT_TYPE_DISPLAY_MODE_KHR = 1000002001,
1946
1947 //@extension("VK_KHR_debug_report") // 12
1948 VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT = 1000011000,
1949
1950 //@extension("VK_KHR_descriptor_update_template") // 86
1951 VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR = 1000085000,
1952
1953 //@extension("VK_NVX_device_generated_commands") // 87
1954 VK_OBJECT_TYPE_OBJECT_TABLE_NVX = 1000086000,
1955 VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX = 1000086001,
Jesse Hall77726222017-09-19 14:49:27 -05001956
Jesse Hall8c954d32018-01-17 22:06:20 -08001957 //@extension("VK_EXT_debug_utils") // 129
1958 VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT = 1000128000,
1959
Jesse Hall076f95d2017-09-20 11:34:47 -07001960 //@extension("VK_KHR_sampler_ycbcr_conversion") // 157
1961 VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR = 1000156000,
1962
Jesse Hall77726222017-09-19 14:49:27 -05001963 //@extension("VK_EXT_validation_cache") // 161
1964 VK_OBJECT_TYPE_VALIDATION_CACHE_EXT = 1000160000,
Jesse Hallb5297192018-09-22 20:52:13 +02001965
1966 //@extension("VK_NVX_raytracing") // 166
1967 VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_NVX = 1000165000,
Jesse Hall05556b12017-05-18 17:40:25 -07001968}
1969
Daniel Koch09f7bf92017-10-05 00:26:58 -04001970
Ian Elliott28bd2c32017-10-13 09:21:12 -06001971//@vulkan1_1 enums
Daniel Koch09f7bf92017-10-05 00:26:58 -04001972
1973enum VkPointClippingBehavior {
1974 VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES = 0,
1975 VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY = 1,
1976}
1977
1978enum VkTessellationDomainOrigin {
1979 VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT = 0,
1980 VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT = 1,
1981}
1982
1983enum VkSamplerYcbcrModelConversion {
1984 VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY = 0,
1985 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY = 1,
1986 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709 = 2,
1987 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601 = 3,
1988 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020 = 4,
1989}
1990
1991enum VkSamplerYcbcrRange {
1992 VK_SAMPLER_YCBCR_RANGE_ITU_FULL = 0,
1993 VK_SAMPLER_YCBCR_RANGE_ITU_NARROW = 1,
1994}
1995
1996enum VkChromaLocation {
1997 VK_CHROMA_LOCATION_COSITED_EVEN = 0,
1998 VK_CHROMA_LOCATION_MIDPOINT = 1,
1999}
2000
2001enum VkDescriptorUpdateTemplateType {
2002 VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET = 0,
2003 VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR = 1,
2004}
2005
Jesse Halla13a3cf2018-07-09 15:51:52 -07002006enum VkVendorId {
2007 VK_VENDOR_ID_VIV = 0x10001,
2008 VK_VENDOR_ID_VSI = 0x10002,
2009 VK_VENDOR_ID_KAZAN = 0x10003,
2010}
2011
Jesse Hallad250842017-03-10 18:35:38 -08002012@extension("VK_KHR_surface") // 1
Michael Lentine88594d72015-11-12 12:49:45 -08002013enum VkPresentModeKHR {
2014 VK_PRESENT_MODE_IMMEDIATE_KHR = 0x00000000,
2015 VK_PRESENT_MODE_MAILBOX_KHR = 0x00000001,
2016 VK_PRESENT_MODE_FIFO_KHR = 0x00000002,
Jesse Hall03b6fe12015-11-24 12:44:21 -08002017 VK_PRESENT_MODE_FIFO_RELAXED_KHR = 0x00000003,
Jesse Hall77ad05b2017-03-10 22:02:20 -08002018
Jesse Hall05556b12017-05-18 17:40:25 -07002019 //@extension("VK_KHR_shared_presentable_image") // 112
Jesse Hall77ad05b2017-03-10 22:02:20 -08002020 VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR = 1000111000,
2021 VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR = 1000111001,
Michael Lentine88594d72015-11-12 12:49:45 -08002022}
2023
Jesse Hallad250842017-03-10 18:35:38 -08002024@extension("VK_KHR_surface") // 1
Michael Lentine88594d72015-11-12 12:49:45 -08002025enum VkColorSpaceKHR {
Daniel Koch09f7bf92017-10-05 00:26:58 -04002026 VK_COLOR_SPACE_SRGB_NONLINEAR_KHR = 0x00000000,
Jesse Hall77ad05b2017-03-10 22:02:20 -08002027
Jesse Hallf5ad48b2017-03-20 13:09:19 -07002028 //@extension("VK_EXT_swapchain_colorspace") // 105
2029 VK_COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT = 1000104001,
2030 VK_COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT = 1000104002,
2031 VK_COLOR_SPACE_DCI_P3_LINEAR_EXT = 1000104003,
2032 VK_COLOR_SPACE_DCI_P3_NONLINEAR_EXT = 1000104004,
2033 VK_COLOR_SPACE_BT709_LINEAR_EXT = 1000104005,
2034 VK_COLOR_SPACE_BT709_NONLINEAR_EXT = 1000104006,
2035 VK_COLOR_SPACE_BT2020_LINEAR_EXT = 1000104007,
2036 VK_COLOR_SPACE_HDR10_ST2084_EXT = 1000104008,
2037 VK_COLOR_SPACE_DOLBYVISION_EXT = 1000104009,
2038 VK_COLOR_SPACE_HDR10_HLG_EXT = 1000104010,
Courtney Goeltzenleuchter7f558ed2017-01-23 17:15:24 -07002039 VK_COLOR_SPACE_ADOBERGB_LINEAR_EXT = 1000104011,
2040 VK_COLOR_SPACE_ADOBERGB_NONLINEAR_EXT = 1000104012,
Jesse Hallf5ad48b2017-03-20 13:09:19 -07002041 VK_COLOR_SPACE_PASS_THROUGH_EXT = 1000104013,
Jesse Hall77726222017-09-19 14:49:27 -05002042 VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT = 1000104014,
Michael Lentine88594d72015-11-12 12:49:45 -08002043}
Jesse Halld27f6aa2015-08-15 17:58:48 -07002044
Jesse Hallad250842017-03-10 18:35:38 -08002045@extension("VK_EXT_debug_report") // 12
Jesse Hall715b86a2016-01-16 16:34:29 -08002046enum VkDebugReportObjectTypeEXT {
2047 VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT = 0,
2048 VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT = 1,
2049 VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT = 2,
2050 VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT = 3,
2051 VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT = 4,
2052 VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT = 5,
2053 VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT = 6,
2054 VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT = 7,
2055 VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT = 8,
2056 VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT = 9,
2057 VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT = 10,
2058 VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT = 11,
2059 VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT = 12,
2060 VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT = 13,
2061 VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT = 14,
2062 VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT = 15,
2063 VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT = 16,
2064 VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT = 17,
2065 VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT = 18,
2066 VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT = 19,
2067 VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT = 20,
2068 VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT = 21,
2069 VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT = 22,
2070 VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT = 23,
2071 VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT = 24,
2072 VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT = 25,
2073 VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT = 26,
2074 VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT = 27,
Jesse Hall7ba0ac72017-07-07 17:13:23 -07002075 VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT = 28,
Chris Forbes289cb792016-12-30 15:03:55 +13002076 VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT = 29,
2077 VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT = 30,
2078 VK_DEBUG_REPORT_OBJECT_TYPE_OBJECT_TABLE_NVX_EXT = 31,
2079 VK_DEBUG_REPORT_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX_EXT = 32,
Jesse Hallf5ad48b2017-03-20 13:09:19 -07002080
Jesse Hall77726222017-09-19 14:49:27 -05002081 //extension("VK_EXT_validation_cache") // 161
Jesse Hall8c954d32018-01-17 22:06:20 -08002082 VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT = 33,
Jesse Hall77726222017-09-19 14:49:27 -05002083
Jesse Hallf5ad48b2017-03-20 13:09:19 -07002084 //extension("VK_KHR_descriptor_update_template") // 86
2085 VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR_EXT = 1000085000,
Jesse Hall77726222017-09-19 14:49:27 -05002086
Jesse Hall076f95d2017-09-20 11:34:47 -07002087 //@extension("VK_KHR_sampler_ycbcr_conversion") // 157
2088 VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR_EXT = 1000156000,
Jesse Hallb5297192018-09-22 20:52:13 +02002089
2090 //@extension("VK_NVX_raytracing") // 166
2091 VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NVX_EXT = 1000165000,
Jesse Hall715b86a2016-01-16 16:34:29 -08002092}
2093
Jesse Hallad250842017-03-10 18:35:38 -08002094@extension("VK_AMD_rasterization_order") // 19
Jesse Hall26763382016-05-20 07:13:52 -07002095enum VkRasterizationOrderAMD {
2096 VK_RASTERIZATION_ORDER_STRICT_AMD = 0,
2097 VK_RASTERIZATION_ORDER_RELAXED_AMD = 1,
2098}
2099
Jesse Hall8c954d32018-01-17 22:06:20 -08002100@extension("VK_AMD_shader_info") // 43
2101enum VkShaderInfoTypeAMD {
2102 VK_SHADER_INFO_TYPE_STATISTICS_AMD = 0,
2103 VK_SHADER_INFO_TYPE_BINARY_AMD = 1,
2104 VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD = 2,
2105}
2106
Jesse Hallad250842017-03-10 18:35:38 -08002107@extension("VK_EXT_validation_flags") // 62
Chris Forbes289cb792016-12-30 15:03:55 +13002108enum VkValidationCheckEXT {
2109 VK_VALIDATION_CHECK_ALL_EXT = 0,
Jesse Hall7ba0ac72017-07-07 17:13:23 -07002110 VK_VALIDATION_CHECK_SHADERS_EXT = 1,
Chris Forbes289cb792016-12-30 15:03:55 +13002111}
2112
Jesse Hallad250842017-03-10 18:35:38 -08002113@extension("VK_KHR_descriptor_update_template") // 86
2114enum VkDescriptorUpdateTemplateTypeKHR {
2115 VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET_KHR = 0,
2116 VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR = 1,
2117}
2118
2119@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13002120enum VkIndirectCommandsTokenTypeNVX {
Jesse Hall7ba0ac72017-07-07 17:13:23 -07002121 VK_INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NVX = 0,
2122 VK_INDIRECT_COMMANDS_TOKEN_TYPE_DESCRIPTOR_SET_NVX = 1,
2123 VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NVX = 2,
2124 VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NVX = 3,
2125 VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NVX = 4,
2126 VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NVX = 5,
2127 VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NVX = 6,
2128 VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NVX = 7,
Chris Forbes289cb792016-12-30 15:03:55 +13002129}
2130
Jesse Hallad250842017-03-10 18:35:38 -08002131@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13002132enum VkObjectEntryTypeNVX {
Jesse Hall7ba0ac72017-07-07 17:13:23 -07002133 VK_OBJECT_ENTRY_TYPE_DESCRIPTOR_SET_NVX = 0,
2134 VK_OBJECT_ENTRY_TYPE_PIPELINE_NVX = 1,
2135 VK_OBJECT_ENTRY_TYPE_INDEX_BUFFER_NVX = 2,
2136 VK_OBJECT_ENTRY_TYPE_VERTEX_BUFFER_NVX = 3,
2137 VK_OBJECT_ENTRY_TYPE_PUSH_CONSTANT_NVX = 4,
Chris Forbes289cb792016-12-30 15:03:55 +13002138}
Jesse Hall715b86a2016-01-16 16:34:29 -08002139
Jesse Hallad250842017-03-10 18:35:38 -08002140@extension("VK_EXT_display_control") // 92
Jesse Hall77ad05b2017-03-10 22:02:20 -08002141enum VkDisplayPowerStateEXT {
2142 VK_DISPLAY_POWER_STATE_OFF_EXT = 0,
2143 VK_DISPLAY_POWER_STATE_SUSPEND_EXT = 1,
2144 VK_DISPLAY_POWER_STATE_ON_EXT = 2,
2145}
2146
Jesse Hallad250842017-03-10 18:35:38 -08002147@extension("VK_EXT_display_control") // 92
Jesse Hall77ad05b2017-03-10 22:02:20 -08002148enum VkDeviceEventTypeEXT {
2149 VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT = 0,
2150}
2151
Jesse Hallad250842017-03-10 18:35:38 -08002152@extension("VK_EXT_display_control") // 92
Jesse Hall77ad05b2017-03-10 22:02:20 -08002153enum VkDisplayEventTypeEXT {
2154 VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT = 0,
2155}
2156
Jesse Hallad250842017-03-10 18:35:38 -08002157@extension("VK_NV_viewport_swizzle") // 99
2158enum VkViewportCoordinateSwizzleNV {
2159 VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV = 0,
2160 VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV = 1,
2161 VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV = 2,
2162 VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV = 3,
2163 VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV = 4,
2164 VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV = 5,
2165 VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV = 6,
2166 VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV = 7,
2167}
2168
2169@extension("VK_EXT_discard_rectangles") // 100
2170enum VkDiscardRectangleModeEXT {
2171 VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT = 0,
2172 VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT = 1,
2173}
2174
Jesse Hall8c954d32018-01-17 22:06:20 -08002175@extension("VK_EXT_conservative_rasterization") // 102
2176enum VkConservativeRasterizationModeEXT {
2177 VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT = 0,
2178 VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT = 1,
2179 VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT = 2,
2180}
2181
Jesse Hall076f95d2017-09-20 11:34:47 -07002182@extension("VK_KHR_maintenance2") // 118
2183enum VkPointClippingBehaviorKHR {
2184 VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES_KHR = 0,
2185 VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY_KHR = 1,
2186}
2187
2188@extension("VK_KHR_maintenance2") // 118
2189enum VkTessellationDomainOriginKHR {
2190 VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT_KHR = 0,
2191 VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT_KHR = 1,
2192}
2193
Jesse Hall7ba0ac72017-07-07 17:13:23 -07002194@extension("VK_EXT_sampler_filter_minmax") // 131
2195enum VkSamplerReductionModeEXT {
2196 VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_EXT = 0,
2197 VK_SAMPLER_REDUCTION_MODE_MIN_EXT = 1,
2198 VK_SAMPLER_REDUCTION_MODE_MAX_EXT = 2,
2199}
2200
2201@extension("VK_EXT_blend_operation_advanced") // 149
2202enum VkBlendOverlapEXT {
2203 VK_BLEND_OVERLAP_UNCORRELATED_EXT = 0,
2204 VK_BLEND_OVERLAP_DISJOINT_EXT = 1,
2205 VK_BLEND_OVERLAP_CONJOINT_EXT = 2,
2206}
2207
2208@extension("VK_NV_framebuffer_mixed_samples") // 153
2209enum VkCoverageModulationModeNV {
2210 VK_COVERAGE_MODULATION_MODE_NONE_NV = 0,
2211 VK_COVERAGE_MODULATION_MODE_RGB_NV = 1,
2212 VK_COVERAGE_MODULATION_MODE_ALPHA_NV = 2,
2213 VK_COVERAGE_MODULATION_MODE_RGBA_NV = 3,
2214}
2215
Jesse Hall076f95d2017-09-20 11:34:47 -07002216@extension("VK_KHR_sampler_ycbcr_conversion") // 157
2217enum VkSamplerYcbcrModelConversionKHR {
2218 VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY_KHR = 0,
2219 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY_KHR = 1,
2220 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709_KHR = 2,
2221 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601_KHR = 3,
2222 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020_KHR = 4,
2223}
2224
2225@extension("VK_KHR_sampler_ycbcr_conversion") // 157
2226enum VkSamplerYcbcrRangeKHR {
2227 VK_SAMPLER_YCBCR_RANGE_ITU_FULL_KHR = 0,
2228 VK_SAMPLER_YCBCR_RANGE_ITU_NARROW_KHR = 1,
2229}
2230
2231@extension("VK_KHR_sampler_ycbcr_conversion") // 157
2232enum VkChromaLocationKHR {
2233 VK_CHROMA_LOCATION_COSITED_EVEN_KHR = 0,
2234 VK_CHROMA_LOCATION_MIDPOINT_KHR = 1,
2235}
2236
Jesse Hall77726222017-09-19 14:49:27 -05002237@extension("VK_EXT_validation_cache") // 161
2238enum VkValidationCacheHeaderVersionEXT {
2239 VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT = 1,
2240}
2241
Jesse Hallb5297192018-09-22 20:52:13 +02002242@extension("VK_NV_shading_rate_image") // 165
2243enum VkShadingRatePaletteEntryNV {
2244 VK_SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV = 0,
2245 VK_SHADING_RATE_PALETTE_ENTRY_16_INVOCATIONS_PER_PIXEL_NV = 1,
2246 VK_SHADING_RATE_PALETTE_ENTRY_8_INVOCATIONS_PER_PIXEL_NV = 2,
2247 VK_SHADING_RATE_PALETTE_ENTRY_4_INVOCATIONS_PER_PIXEL_NV = 3,
2248 VK_SHADING_RATE_PALETTE_ENTRY_2_INVOCATIONS_PER_PIXEL_NV = 4,
2249 VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_PIXEL_NV = 5,
2250 VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X1_PIXELS_NV = 6,
2251 VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_1X2_PIXELS_NV = 7,
2252 VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X2_PIXELS_NV = 8,
2253 VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X2_PIXELS_NV = 9,
2254 VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X4_PIXELS_NV = 10,
2255 VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV = 11,
2256}
2257
2258@extension("VK_NV_shading_rate_image") // 165
2259enum VkCoarseSampleOrderTypeNV {
2260 VK_COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV = 0,
2261 VK_COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV = 1,
2262 VK_COARSE_SAMPLE_ORDER_TYPE_PIXEL_MAJOR_NV = 2,
2263 VK_COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV = 3,
2264}
2265
2266@extension("VK_NVX_raytracing") // 166
2267enum VkGeometryTypeNVX {
2268 VK_GEOMETRY_TYPE_TRIANGLES_NVX = 0,
2269 VK_GEOMETRY_TYPE_AABBS_NVX = 1,
2270}
2271
2272@extension("VK_NVX_raytracing") // 166
2273enum VkAccelerationStructureTypeNVX {
2274 VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_NVX = 0,
2275 VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NVX = 1,
2276}
2277
2278@extension("VK_NVX_raytracing") // 166
2279enum VkCopyAccelerationStructureModeNVX {
2280 VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_NVX = 0,
2281 VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_NVX = 1,
2282}
2283
Jesse Hall8c954d32018-01-17 22:06:20 -08002284@extension("VK_EXT_global_priority") // 175
2285enum VkQueueGlobalPriorityEXT {
2286 VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT = 128,
2287 VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT = 256,
2288 VK_QUEUE_GLOBAL_PRIORITY_HIGH_EXT = 512,
2289 VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT = 1024,
2290}
2291
Jesse Hall2e6853c2018-10-02 14:05:37 -07002292@extension("VK_KHR_driver_properties") // 197
2293enum VkDriverIdKHR {
2294 VK_DRIVER_ID_AMD_PROPRIETARY_KHR = 1,
2295 VK_DRIVER_ID_AMD_OPEN_SOURCE_KHR = 2,
2296 VK_DRIVER_ID_MESA_RADV_KHR = 3,
2297 VK_DRIVER_ID_NVIDIA_PROPRIETARY_KHR = 4,
2298 VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS_KHR = 5,
2299 VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA_KHR = 6,
2300 VK_DRIVER_ID_IMAGINATION_PROPRIETARY_KHR = 7,
2301 VK_DRIVER_ID_QUALCOMM_PROPRIETARY_KHR = 8,
2302 VK_DRIVER_ID_ARM_PROPRIETARY_KHR = 9,
2303}
2304
Jesse Halld27f6aa2015-08-15 17:58:48 -07002305/////////////////
2306// Bitfields //
2307/////////////////
2308
Jesse Halld27f6aa2015-08-15 17:58:48 -07002309/// Queue capabilities
Jesse Halld8bade02015-11-24 10:24:18 -08002310type VkFlags VkQueueFlags
2311bitfield VkQueueFlagBits {
Jesse Halld27f6aa2015-08-15 17:58:48 -07002312 VK_QUEUE_GRAPHICS_BIT = 0x00000001, /// Queue supports graphics operations
2313 VK_QUEUE_COMPUTE_BIT = 0x00000002, /// Queue supports compute operations
Jesse Hall65ab5522015-11-30 00:07:16 -08002314 VK_QUEUE_TRANSFER_BIT = 0x00000004, /// Queue supports transfer operations
Jesse Hallb00daad2015-11-29 19:46:20 -08002315 VK_QUEUE_SPARSE_BINDING_BIT = 0x00000008, /// Queue supports sparse resource memory management operations
Daniel Koch09f7bf92017-10-05 00:26:58 -04002316
Ian Elliott28bd2c32017-10-13 09:21:12 -06002317 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04002318 VK_QUEUE_PROTECTED_BIT = 0x00000010,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002319}
2320
2321/// Memory properties passed into vkAllocMemory().
Jesse Halld8bade02015-11-24 10:24:18 -08002322type VkFlags VkMemoryPropertyFlags
2323bitfield VkMemoryPropertyFlagBits {
Jesse Halld1af8122015-11-29 23:50:38 -08002324 VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT = 0x00000001,
2325 VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT = 0x00000002,
2326 VK_MEMORY_PROPERTY_HOST_COHERENT_BIT = 0x00000004,
2327 VK_MEMORY_PROPERTY_HOST_CACHED_BIT = 0x00000008,
2328 VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT = 0x00000010,
Daniel Koch09f7bf92017-10-05 00:26:58 -04002329
Ian Elliott28bd2c32017-10-13 09:21:12 -06002330 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04002331 VK_MEMORY_PROPERTY_PROTECTED_BIT = 0x00000020,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002332}
2333
2334/// Memory heap flags
Jesse Halld8bade02015-11-24 10:24:18 -08002335type VkFlags VkMemoryHeapFlags
2336bitfield VkMemoryHeapFlagBits {
Jesse Halld1af8122015-11-29 23:50:38 -08002337 VK_MEMORY_HEAP_DEVICE_LOCAL_BIT = 0x00000001,
Jesse Hallad250842017-03-10 18:35:38 -08002338
Ian Elliott28bd2c32017-10-13 09:21:12 -06002339 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04002340 VK_MEMORY_HEAP_MULTI_INSTANCE_BIT = 0x00000002,
2341
2342 //@extension("VK_KHR_device_group_creation") // 71
2343 VK_MEMORY_HEAP_MULTI_INSTANCE_BIT_KHR = 0x00000002,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002344}
2345
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08002346/// Access flags
2347type VkFlags VkAccessFlags
2348bitfield VkAccessFlagBits {
2349 VK_ACCESS_INDIRECT_COMMAND_READ_BIT = 0x00000001,
2350 VK_ACCESS_INDEX_READ_BIT = 0x00000002,
2351 VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT = 0x00000004,
2352 VK_ACCESS_UNIFORM_READ_BIT = 0x00000008,
2353 VK_ACCESS_INPUT_ATTACHMENT_READ_BIT = 0x00000010,
2354 VK_ACCESS_SHADER_READ_BIT = 0x00000020,
2355 VK_ACCESS_SHADER_WRITE_BIT = 0x00000040,
2356 VK_ACCESS_COLOR_ATTACHMENT_READ_BIT = 0x00000080,
2357 VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT = 0x00000100,
2358 VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT = 0x00000200,
2359 VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT = 0x00000400,
2360 VK_ACCESS_TRANSFER_READ_BIT = 0x00000800,
2361 VK_ACCESS_TRANSFER_WRITE_BIT = 0x00001000,
2362 VK_ACCESS_HOST_READ_BIT = 0x00002000,
2363 VK_ACCESS_HOST_WRITE_BIT = 0x00004000,
2364 VK_ACCESS_MEMORY_READ_BIT = 0x00008000,
2365 VK_ACCESS_MEMORY_WRITE_BIT = 0x00010000,
Chris Forbes289cb792016-12-30 15:03:55 +13002366
Jesse Hallad250842017-03-10 18:35:38 -08002367 //@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13002368 VK_ACCESS_COMMAND_PROCESS_READ_BIT_NVX = 0x00020000,
Chris Forbes289cb792016-12-30 15:03:55 +13002369 VK_ACCESS_COMMAND_PROCESS_WRITE_BIT_NVX = 0x00040000,
Jesse Hall7ba0ac72017-07-07 17:13:23 -07002370
2371 //@extension("VK_EXT_blend_operation_advanced") // 149
2372 VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT = 0x00080000,
Jesse Halla13a3cf2018-07-09 15:51:52 -07002373
2374 //@extension("VK_EXT_conditional_rendering") // 82
2375 VK_ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT = 0x00100000,
Jesse Hallb5297192018-09-22 20:52:13 +02002376
2377 //@extension("VK_NV_shading_rate_image") // 165
2378 VK_ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV = 0x00800000,
2379
2380 //@extension("VK_NVX_raytracing") // 166
2381 VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_NVX = 0x00200000,
2382 VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_NVX = 0x00400000,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002383}
2384
2385/// Buffer usage flags
Jesse Halld8bade02015-11-24 10:24:18 -08002386type VkFlags VkBufferUsageFlags
2387bitfield VkBufferUsageFlagBits {
Jesse Hall3fbc8562015-11-29 22:10:52 -08002388 VK_BUFFER_USAGE_TRANSFER_SRC_BIT = 0x00000001, /// Can be used as a source of transfer operations
2389 VK_BUFFER_USAGE_TRANSFER_DST_BIT = 0x00000002, /// Can be used as a destination of transfer operations
Jesse Halld27f6aa2015-08-15 17:58:48 -07002390 VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT = 0x00000004, /// Can be used as TBO
2391 VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT = 0x00000008, /// Can be used as IBO
2392 VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT = 0x00000010, /// Can be used as UBO
2393 VK_BUFFER_USAGE_STORAGE_BUFFER_BIT = 0x00000020, /// Can be used as SSBO
2394 VK_BUFFER_USAGE_INDEX_BUFFER_BIT = 0x00000040, /// Can be used as source of fixed function index fetch (index buffer)
2395 VK_BUFFER_USAGE_VERTEX_BUFFER_BIT = 0x00000080, /// Can be used as source of fixed function vertex fetch (VBO)
2396 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 -07002397
2398 //@extension("VK_EXT_conditional_rendering") // 82
2399 VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT = 0x00000200,
Jesse Hallb5297192018-09-22 20:52:13 +02002400
2401 //@extension("VK_NVX_raytracing") // 166
2402 VK_BUFFER_USAGE_RAYTRACING_BIT_NVX = 0x00000400,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002403}
2404
2405/// Buffer creation flags
Jesse Halld8bade02015-11-24 10:24:18 -08002406type VkFlags VkBufferCreateFlags
2407bitfield VkBufferCreateFlagBits {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07002408 VK_BUFFER_CREATE_SPARSE_BINDING_BIT = 0x00000001, /// Buffer should support sparse backing
Jesse Halld27f6aa2015-08-15 17:58:48 -07002409 VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT = 0x00000002, /// Buffer should support sparse backing with partial residency
2410 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 -04002411
Ian Elliott28bd2c32017-10-13 09:21:12 -06002412 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04002413 VK_BUFFER_CREATE_PROTECTED_BIT = 0x00000008,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002414}
2415
2416/// Shader stage flags
Jesse Halld8bade02015-11-24 10:24:18 -08002417type VkFlags VkShaderStageFlags
2418bitfield VkShaderStageFlagBits {
Jesse Halld27f6aa2015-08-15 17:58:48 -07002419 VK_SHADER_STAGE_VERTEX_BIT = 0x00000001,
Jesse Hallae38f732015-11-19 21:32:50 -08002420 VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT = 0x00000002,
2421 VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT = 0x00000004,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002422 VK_SHADER_STAGE_GEOMETRY_BIT = 0x00000008,
2423 VK_SHADER_STAGE_FRAGMENT_BIT = 0x00000010,
2424 VK_SHADER_STAGE_COMPUTE_BIT = 0x00000020,
Jesse Hallc7467b72015-11-29 21:05:26 -08002425 VK_SHADER_STAGE_ALL_GRAPHICS = 0x0000001F,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002426
2427 VK_SHADER_STAGE_ALL = 0x7FFFFFFF,
Jesse Hallb5297192018-09-22 20:52:13 +02002428
2429 //@extension("VK_NVX_raytracing") // 166
2430 VK_SHADER_STAGE_RAYGEN_BIT_NVX = 0x00000100,
2431 VK_SHADER_STAGE_ANY_HIT_BIT_NVX = 0x00000200,
2432 VK_SHADER_STAGE_CLOSEST_HIT_BIT_NVX = 0x00000400,
2433 VK_SHADER_STAGE_MISS_BIT_NVX = 0x00000800,
2434 VK_SHADER_STAGE_INTERSECTION_BIT_NVX = 0x00001000,
2435 VK_SHADER_STAGE_CALLABLE_BIT_NVX = 0x00002000,
2436
2437 //@extension("VK_NV_mesh_shader") // 203
2438 VK_SHADER_STAGE_TASK_BIT_NV = 0x00000040,
2439 VK_SHADER_STAGE_MESH_BIT_NV = 0x00000080,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002440}
2441
Jesse Hallfbf97b02015-11-20 14:17:03 -08002442/// Descriptor pool create flags
Jesse Halld8bade02015-11-24 10:24:18 -08002443type VkFlags VkDescriptorPoolCreateFlags
2444bitfield VkDescriptorPoolCreateFlagBits {
Jesse Hallfbf97b02015-11-20 14:17:03 -08002445 VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT = 0x00000001,
Jesse Hall72e6a132018-04-06 13:00:44 -07002446
2447 //@extension("VK_EXT_descriptor_indexing") // 162
2448 VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT_EXT = 0x00000002,
Jesse Hallfbf97b02015-11-20 14:17:03 -08002449}
2450
2451/// Descriptor pool reset flags
Jesse Halld8bade02015-11-24 10:24:18 -08002452type VkFlags VkDescriptorPoolResetFlags
Jesse Halla6429252015-11-29 18:59:42 -08002453//bitfield VkDescriptorPoolResetFlagBits {
2454//}
Jesse Hallfbf97b02015-11-20 14:17:03 -08002455
Jesse Halld27f6aa2015-08-15 17:58:48 -07002456/// Image usage flags
Jesse Halld8bade02015-11-24 10:24:18 -08002457type VkFlags VkImageUsageFlags
2458bitfield VkImageUsageFlagBits {
Jesse Hall3fbc8562015-11-29 22:10:52 -08002459 VK_IMAGE_USAGE_TRANSFER_SRC_BIT = 0x00000001, /// Can be used as a source of transfer operations
2460 VK_IMAGE_USAGE_TRANSFER_DST_BIT = 0x00000002, /// Can be used as a destination of transfer operations
Jesse Halld27f6aa2015-08-15 17:58:48 -07002461 VK_IMAGE_USAGE_SAMPLED_BIT = 0x00000004, /// Can be sampled from (SAMPLED_IMAGE and COMBINED_IMAGE_SAMPLER descriptor types)
2462 VK_IMAGE_USAGE_STORAGE_BIT = 0x00000008, /// Can be used as storage image (STORAGE_IMAGE descriptor type)
2463 VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT = 0x00000010, /// Can be used as framebuffer color attachment
Jesse Hall5ae3abb2015-10-08 14:00:22 -07002464 VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000020, /// Can be used as framebuffer depth/stencil attachment
Jesse Halld27f6aa2015-08-15 17:58:48 -07002465 VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT = 0x00000040, /// Image data not needed outside of rendering
2466 VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT = 0x00000080, /// Can be used as framebuffer input attachment
Jesse Hallb5297192018-09-22 20:52:13 +02002467
2468 //@extension("VK_NV_shading_rate_image") // 165
2469 VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV = 0x00000100,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002470}
2471
2472/// Image creation flags
Jesse Halld8bade02015-11-24 10:24:18 -08002473type VkFlags VkImageCreateFlags
2474bitfield VkImageCreateFlagBits {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07002475 VK_IMAGE_CREATE_SPARSE_BINDING_BIT = 0x00000001, /// Image should support sparse backing
Jesse Halld27f6aa2015-08-15 17:58:48 -07002476 VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT = 0x00000002, /// Image should support sparse backing with partial residency
2477 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 -07002478 VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT = 0x00000008, /// Allows image views to have different format than the base image
2479 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 -08002480
Ian Elliott28bd2c32017-10-13 09:21:12 -06002481 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04002482 VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT = 0x00000020,
Jesse Hall8c954d32018-01-17 22:06:20 -08002483 VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT = 0x00000040,
Daniel Koch09f7bf92017-10-05 00:26:58 -04002484 VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT = 0x00000080,
2485 VK_IMAGE_CREATE_EXTENDED_USAGE_BIT = 0x00000100,
Daniel Koch09f7bf92017-10-05 00:26:58 -04002486 VK_IMAGE_CREATE_DISJOINT_BIT = 0x00000200,
Ian Elliott28bd2c32017-10-13 09:21:12 -06002487 VK_IMAGE_CREATE_ALIAS_BIT = 0x00000400,
2488 VK_IMAGE_CREATE_PROTECTED_BIT = 0x00000800,
Daniel Koch09f7bf92017-10-05 00:26:58 -04002489
Jesse Hallad250842017-03-10 18:35:38 -08002490 //@extension("VK_KHR_maintenance1") // 70
Jesse Hall77ad05b2017-03-10 22:02:20 -08002491 VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT_KHR = 0x00000020,
Jesse Hallad250842017-03-10 18:35:38 -08002492
Daniel Koch09f7bf92017-10-05 00:26:58 -04002493 //@extension("VK_KHR_device_group") // 61
2494 VK_IMAGE_CREATE_BIND_SFR_BIT_KHR = 0x00000040,
Jesse Hall77726222017-09-19 14:49:27 -05002495
Jesse Hall076f95d2017-09-20 11:34:47 -07002496 //@extension("VK_KHR_maintenance2") // 118
2497 VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT_KHR = 0x00000080,
2498 VK_IMAGE_CREATE_EXTENDED_USAGE_BIT_KHR = 0x00000100,
2499
2500 //@extension("VK_KHR_sampler_ycbcr_conversion") // 157
2501 VK_IMAGE_CREATE_DISJOINT_BIT_KHR = 0x00000200,
2502
2503 //@extension("VK_KHR_bind_memory2") // 158
2504 VK_IMAGE_CREATE_ALIAS_BIT_KHR = 0x00000400,
Ian Elliott28bd2c32017-10-13 09:21:12 -06002505
2506 //@extension("VK_EXT_sample_locations") // 144
2507 VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT = 0x00001000,
Jesse Hallb5297192018-09-22 20:52:13 +02002508
2509 //@extension("VK_NV_corner_sampled_image") // 51
2510 VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV = 0x00002000,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002511}
2512
Jesse Hallb00daad2015-11-29 19:46:20 -08002513/// Image view creation flags
Jesse Halld8bade02015-11-24 10:24:18 -08002514type VkFlags VkImageViewCreateFlags
Jesse Hallb00daad2015-11-29 19:46:20 -08002515//bitfield VkImageViewCreateFlagBits {
2516//}
Jesse Halld27f6aa2015-08-15 17:58:48 -07002517
2518/// Pipeline creation flags
Jesse Halld8bade02015-11-24 10:24:18 -08002519type VkFlags VkPipelineCreateFlags
2520bitfield VkPipelineCreateFlagBits {
Jesse Halld27f6aa2015-08-15 17:58:48 -07002521 VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT = 0x00000001,
2522 VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT = 0x00000002,
2523 VK_PIPELINE_CREATE_DERIVATIVE_BIT = 0x00000004,
Jesse Hallad250842017-03-10 18:35:38 -08002524
Ian Elliott28bd2c32017-10-13 09:21:12 -06002525 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04002526 VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT = 0x00000008,
2527 VK_PIPELINE_CREATE_DISPATCH_BASE = 0x00000010,
2528
2529 //@extension("VK_KHR_device_group") // 61
2530 VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR = 0x00000008,
2531 VK_PIPELINE_CREATE_DISPATCH_BASE_KHR = 0x00000010,
Jesse Hallb5297192018-09-22 20:52:13 +02002532
2533 //@extension("VK_NVX_raytracing") // 166
2534 VK_PIPELINE_CREATE_DEFER_COMPILE_BIT_NVX = 0x00000020,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002535}
2536
Jesse Hall65ab5522015-11-30 00:07:16 -08002537/// Color component flags
2538type VkFlags VkColorComponentFlags
2539bitfield VkColorComponentFlagBits {
2540 VK_COLOR_COMPONENT_R_BIT = 0x00000001,
2541 VK_COLOR_COMPONENT_G_BIT = 0x00000002,
2542 VK_COLOR_COMPONENT_B_BIT = 0x00000004,
2543 VK_COLOR_COMPONENT_A_BIT = 0x00000008,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002544}
2545
2546/// Fence creation flags
Jesse Halld8bade02015-11-24 10:24:18 -08002547type VkFlags VkFenceCreateFlags
2548bitfield VkFenceCreateFlagBits {
Jesse Halld27f6aa2015-08-15 17:58:48 -07002549 VK_FENCE_CREATE_SIGNALED_BIT = 0x00000001,
2550}
2551
2552/// Semaphore creation flags
Jesse Halld8bade02015-11-24 10:24:18 -08002553type VkFlags VkSemaphoreCreateFlags
Jesse Halla6429252015-11-29 18:59:42 -08002554//bitfield VkSemaphoreCreateFlagBits {
2555//}
Jesse Halld27f6aa2015-08-15 17:58:48 -07002556
2557/// Format capability flags
Jesse Halld8bade02015-11-24 10:24:18 -08002558type VkFlags VkFormatFeatureFlags
2559bitfield VkFormatFeatureFlagBits {
Jesse Halld27f6aa2015-08-15 17:58:48 -07002560 VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT = 0x00000001, /// Format can be used for sampled images (SAMPLED_IMAGE and COMBINED_IMAGE_SAMPLER descriptor types)
2561 VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT = 0x00000002, /// Format can be used for storage images (STORAGE_IMAGE descriptor type)
2562 VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT = 0x00000004, /// Format supports atomic operations in case it's used for storage images
2563 VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT = 0x00000008, /// Format can be used for uniform texel buffers (TBOs)
2564 VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT = 0x00000010, /// Format can be used for storage texel buffers (IBOs)
2565 VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT = 0x00000020, /// Format supports atomic operations in case it's used for storage texel buffers
2566 VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT = 0x00000040, /// Format can be used for vertex buffers (VBOs)
2567 VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT = 0x00000080, /// Format can be used for color attachment images
2568 VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT = 0x00000100, /// Format supports blending in case it's used for color attachment images
2569 VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000200, /// Format can be used for depth/stencil attachment images
Jesse Hall3fbc8562015-11-29 22:10:52 -08002570 VK_FORMAT_FEATURE_BLIT_SRC_BIT = 0x00000400, /// Format can be used as the source image of blits with vkCommandBlitImage
2571 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 -08002572 VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT = 0x00001000,
Jesse Hall26763382016-05-20 07:13:52 -07002573
Ian Elliott28bd2c32017-10-13 09:21:12 -06002574 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04002575 VK_FORMAT_FEATURE_TRANSFER_SRC_BIT = 0x00004000,
2576 VK_FORMAT_FEATURE_TRANSFER_DST_BIT = 0x00008000,
2577 VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT = 0x00020000,
2578 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT = 0x00040000,
2579 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT = 0x00080000,
2580 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT = 0x00100000,
2581 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT = 0x00200000,
2582 VK_FORMAT_FEATURE_DISJOINT_BIT = 0x00400000,
2583 VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT = 0x00800000,
2584
Jesse Hallad250842017-03-10 18:35:38 -08002585 //@extension("VK_IMG_filter_cubic") // 16
Jesse Hall26763382016-05-20 07:13:52 -07002586 VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG = 0x00002000,
Jesse Hall77ad05b2017-03-10 22:02:20 -08002587
Jesse Hallad250842017-03-10 18:35:38 -08002588 //@extension("VK_KHR_maintenance1") // 70
Jesse Hall77ad05b2017-03-10 22:02:20 -08002589 VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR = 0x00004000,
2590 VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR = 0x00008000,
Jesse Hall7ba0ac72017-07-07 17:13:23 -07002591
2592 //@extension("VK_EXT_sampler_filter_minmax") // 131
2593 VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT_EXT = 0x00010000,
Jesse Hall076f95d2017-09-20 11:34:47 -07002594
2595 //@extension("VK_KHR_sampler_ycbcr_conversion") // 157
2596 VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT_KHR = 0x00020000,
2597 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT_KHR = 0x00040000,
2598 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT_KHR = 0x00080000,
2599 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT_KHR = 0x00100000,
2600 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT_KHR = 0x00200000,
2601 VK_FORMAT_FEATURE_DISJOINT_BIT_KHR = 0x00400000,
2602 VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT_KHR = 0x00800000,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002603}
2604
2605/// Query control flags
Jesse Halld8bade02015-11-24 10:24:18 -08002606type VkFlags VkQueryControlFlags
2607bitfield VkQueryControlFlagBits {
Jesse Hall65ab5522015-11-30 00:07:16 -08002608 VK_QUERY_CONTROL_PRECISE_BIT = 0x00000001,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002609}
2610
2611/// Query result flags
Jesse Halld8bade02015-11-24 10:24:18 -08002612type VkFlags VkQueryResultFlags
2613bitfield VkQueryResultFlagBits {
Jesse Halld27f6aa2015-08-15 17:58:48 -07002614 VK_QUERY_RESULT_64_BIT = 0x00000001, /// Results of the queries are written to the destination buffer as 64-bit values
2615 VK_QUERY_RESULT_WAIT_BIT = 0x00000002, /// Results of the queries are waited on before proceeding with the result copy
2616 VK_QUERY_RESULT_WITH_AVAILABILITY_BIT = 0x00000004, /// Besides the results of the query, the availability of the results is also written
2617 VK_QUERY_RESULT_PARTIAL_BIT = 0x00000008, /// Copy the partial results of the query even if the final results aren't available
2618}
2619
2620/// Shader module creation flags
Jesse Halld8bade02015-11-24 10:24:18 -08002621type VkFlags VkShaderModuleCreateFlags
Jesse Halla6429252015-11-29 18:59:42 -08002622//bitfield VkShaderModuleCreateFlagBits {
2623//}
Jesse Halld27f6aa2015-08-15 17:58:48 -07002624
Jesse Halld27f6aa2015-08-15 17:58:48 -07002625/// Event creation flags
Jesse Halld8bade02015-11-24 10:24:18 -08002626type VkFlags VkEventCreateFlags
Jesse Halla6429252015-11-29 18:59:42 -08002627//bitfield VkEventCreateFlagBits {
2628//}
Jesse Halld27f6aa2015-08-15 17:58:48 -07002629
Jesse Halla15a4bf2015-11-19 22:48:02 -08002630/// Command buffer usage flags
Jesse Hall3fbc8562015-11-29 22:10:52 -08002631type VkFlags VkCommandBufferUsageFlags
2632bitfield VkCommandBufferUsageFlagBits {
2633 VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT = 0x00000001,
2634 VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT = 0x00000002,
2635 VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT = 0x00000004,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002636}
2637
2638/// Pipeline statistics flags
Jesse Halld8bade02015-11-24 10:24:18 -08002639type VkFlags VkQueryPipelineStatisticFlags
2640bitfield VkQueryPipelineStatisticFlagBits {
Jesse Hallae38f732015-11-19 21:32:50 -08002641 VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT = 0x00000001, /// Optional
2642 VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT = 0x00000002, /// Optional
2643 VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT = 0x00000004, /// Optional
2644 VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT = 0x00000008, /// Optional
2645 VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT = 0x00000010, /// Optional
2646 VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT = 0x00000020, /// Optional
2647 VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT = 0x00000040, /// Optional
2648 VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT = 0x00000080, /// Optional
2649 VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT = 0x00000100, /// Optional
2650 VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT = 0x00000200, /// Optional
2651 VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT = 0x00000400, /// Optional
Jesse Halld27f6aa2015-08-15 17:58:48 -07002652}
2653
2654/// Memory mapping flags
Jesse Halld8bade02015-11-24 10:24:18 -08002655type VkFlags VkMemoryMapFlags
Jesse Halla6429252015-11-29 18:59:42 -08002656//bitfield VkMemoryMapFlagBits {
2657//}
Jesse Halld27f6aa2015-08-15 17:58:48 -07002658
2659/// Bitfield of image aspects
Jesse Halld8bade02015-11-24 10:24:18 -08002660type VkFlags VkImageAspectFlags
2661bitfield VkImageAspectFlagBits {
Jesse Halld27f6aa2015-08-15 17:58:48 -07002662 VK_IMAGE_ASPECT_COLOR_BIT = 0x00000001,
2663 VK_IMAGE_ASPECT_DEPTH_BIT = 0x00000002,
2664 VK_IMAGE_ASPECT_STENCIL_BIT = 0x00000004,
2665 VK_IMAGE_ASPECT_METADATA_BIT = 0x00000008,
Jesse Hall076f95d2017-09-20 11:34:47 -07002666
Ian Elliott28bd2c32017-10-13 09:21:12 -06002667 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04002668 VK_IMAGE_ASPECT_PLANE_0_BIT = 0x00000010,
2669 VK_IMAGE_ASPECT_PLANE_1_BIT = 0x00000020,
2670 VK_IMAGE_ASPECT_PLANE_2_BIT = 0x00000040,
2671
Jesse Hall076f95d2017-09-20 11:34:47 -07002672 //@extension("VK_KHR_sampler_ycbcr_conversion") // 157
2673 VK_IMAGE_ASPECT_PLANE_0_BIT_KHR = 0x00000010,
2674 VK_IMAGE_ASPECT_PLANE_1_BIT_KHR = 0x00000020,
2675 VK_IMAGE_ASPECT_PLANE_2_BIT_KHR = 0x00000040,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002676}
2677
2678/// Sparse memory bind flags
Jesse Halld8bade02015-11-24 10:24:18 -08002679type VkFlags VkSparseMemoryBindFlags
Jesse Hall091ed9e2015-11-30 00:55:29 -08002680bitfield VkSparseMemoryBindFlagBits {
2681 VK_SPARSE_MEMORY_BIND_METADATA_BIT = 0x00000001,
2682}
Jesse Halld27f6aa2015-08-15 17:58:48 -07002683
2684/// Sparse image memory requirements flags
Jesse Halld8bade02015-11-24 10:24:18 -08002685type VkFlags VkSparseImageFormatFlags
2686bitfield VkSparseImageFormatFlagBits {
Jesse Hallb00daad2015-11-29 19:46:20 -08002687 VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT = 0x00000001, /// Image uses a single miptail region for all array slices
2688 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.
2689 VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT = 0x00000004, /// Image uses a non-standard sparse block size
Jesse Halld27f6aa2015-08-15 17:58:48 -07002690}
2691
2692/// Pipeline stages
Jesse Halld8bade02015-11-24 10:24:18 -08002693type VkFlags VkPipelineStageFlags
2694bitfield VkPipelineStageFlagBits {
Jesse Halld27f6aa2015-08-15 17:58:48 -07002695 VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT = 0x00000001, /// Before subsequent commands are processed
2696 VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT = 0x00000002, /// Draw/DispatchIndirect command fetch
2697 VK_PIPELINE_STAGE_VERTEX_INPUT_BIT = 0x00000004, /// Vertex/index fetch
2698 VK_PIPELINE_STAGE_VERTEX_SHADER_BIT = 0x00000008, /// Vertex shading
Jesse Hallae38f732015-11-19 21:32:50 -08002699 VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT = 0x00000010, /// Tessellation control shading
2700 VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT = 0x00000020, /// Tessellation evaluation shading
Jesse Halld27f6aa2015-08-15 17:58:48 -07002701 VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT = 0x00000040, /// Geometry shading
2702 VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT = 0x00000080, /// Fragment shading
2703 VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT = 0x00000100, /// Early fragment (depth/stencil) tests
2704 VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT = 0x00000200, /// Late fragment (depth/stencil) tests
2705 VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT = 0x00000400, /// Color attachment writes
2706 VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT = 0x00000800, /// Compute shading
2707 VK_PIPELINE_STAGE_TRANSFER_BIT = 0x00001000, /// Transfer/copy operations
Jesse Hall543a7ff2016-01-08 16:38:30 -08002708 VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT = 0x00002000,
2709 VK_PIPELINE_STAGE_HOST_BIT = 0x00004000, /// Indicates host (CPU) is a source/sink of the dependency
Jesse Halld27f6aa2015-08-15 17:58:48 -07002710
Jesse Hall543a7ff2016-01-08 16:38:30 -08002711 VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT = 0x00008000, /// All stages of the graphics pipeline
2712 VK_PIPELINE_STAGE_ALL_COMMANDS_BIT = 0x00010000, /// All graphics, compute, copy, and transition commands
Chris Forbes289cb792016-12-30 15:03:55 +13002713
Jesse Hallad250842017-03-10 18:35:38 -08002714 //@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13002715 VK_PIPELINE_STAGE_COMMAND_PROCESS_BIT_NVX = 0x00020000,
Jesse Halla13a3cf2018-07-09 15:51:52 -07002716
2717 //@extension("VK_EXT_conditional_rendering") // 82
2718 VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT = 0x00040000,
Jesse Hallb5297192018-09-22 20:52:13 +02002719
2720 //@extension("VK_NV_shading_rate_image") // 165
2721 VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV = 0x00400000,
2722
2723 //@extension("VK_NVX_raytracing") // 166
2724 VK_PIPELINE_STAGE_RAYTRACING_BIT_NVX = 0x00200000,
2725
2726 //@extension("VK_NV_mesh_shader") // 203
2727 VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV = 0x00080000,
2728 VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV = 0x00100000,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07002729}
2730
2731/// Render pass attachment description flags
Jesse Halld8bade02015-11-24 10:24:18 -08002732type VkFlags VkAttachmentDescriptionFlags
2733bitfield VkAttachmentDescriptionFlagBits {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07002734 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 -07002735}
2736
2737/// Subpass description flags
Jesse Halld8bade02015-11-24 10:24:18 -08002738type VkFlags VkSubpassDescriptionFlags
2739bitfield VkSubpassDescriptionFlagBits {
Jesse Hallad250842017-03-10 18:35:38 -08002740 //@extension("VK_NVX_multiview_per_view_attributes") // 98
2741 VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX = 0x00000001,
2742 VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX = 0x00000002,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002743}
2744
2745/// Command pool creation flags
Jesse Hall3fbc8562015-11-29 22:10:52 -08002746type VkFlags VkCommandPoolCreateFlags
2747bitfield VkCommandPoolCreateFlagBits {
2748 VK_COMMAND_POOL_CREATE_TRANSIENT_BIT = 0x00000001, /// Command buffers have a short lifetime
2749 VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT = 0x00000002, /// Command buffers may release their memory individually
Daniel Koch09f7bf92017-10-05 00:26:58 -04002750
Ian Elliott28bd2c32017-10-13 09:21:12 -06002751 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04002752 VK_COMMAND_POOL_CREATE_PROTECTED_BIT = 0x00000004,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002753}
2754
2755/// Command pool reset flags
Jesse Hall3fbc8562015-11-29 22:10:52 -08002756type VkFlags VkCommandPoolResetFlags
2757bitfield VkCommandPoolResetFlagBits {
2758 VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT = 0x00000001, /// Release resources owned by the pool
Jesse Halld27f6aa2015-08-15 17:58:48 -07002759}
2760
Jesse Hall3fbc8562015-11-29 22:10:52 -08002761type VkFlags VkCommandBufferResetFlags
2762bitfield VkCommandBufferResetFlagBits {
2763 VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT = 0x00000001, /// Release resources owned by the buffer
Jesse Hall5ae3abb2015-10-08 14:00:22 -07002764}
2765
Jesse Halld8bade02015-11-24 10:24:18 -08002766type VkFlags VkSampleCountFlags
2767bitfield VkSampleCountFlagBits {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07002768 VK_SAMPLE_COUNT_1_BIT = 0x00000001,
2769 VK_SAMPLE_COUNT_2_BIT = 0x00000002,
2770 VK_SAMPLE_COUNT_4_BIT = 0x00000004,
2771 VK_SAMPLE_COUNT_8_BIT = 0x00000008,
2772 VK_SAMPLE_COUNT_16_BIT = 0x00000010,
2773 VK_SAMPLE_COUNT_32_BIT = 0x00000020,
2774 VK_SAMPLE_COUNT_64_BIT = 0x00000040,
2775}
2776
Jesse Halld8bade02015-11-24 10:24:18 -08002777type VkFlags VkStencilFaceFlags
2778bitfield VkStencilFaceFlagBits {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07002779 VK_STENCIL_FACE_FRONT_BIT = 0x00000001, /// Front face
2780 VK_STENCIL_FACE_BACK_BIT = 0x00000002, /// Back face
Jesse Hallc7467b72015-11-29 21:05:26 -08002781 VK_STENCIL_FRONT_AND_BACK = 0x00000003,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002782}
2783
Jesse Halla6429252015-11-29 18:59:42 -08002784/// Instance creation flags
2785type VkFlags VkInstanceCreateFlags
2786//bitfield VkInstanceCreateFlagBits {
2787//}
2788
2789/// Device creation flags
2790type VkFlags VkDeviceCreateFlags
2791//bitfield VkDeviceCreateFlagBits {
2792//}
2793
2794/// Device queue creation flags
2795type VkFlags VkDeviceQueueCreateFlags
Ian Elliott28bd2c32017-10-13 09:21:12 -06002796@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04002797bitfield VkDeviceQueueCreateFlagBits {
2798 VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT = 0x00000001,
2799}
Jesse Halla6429252015-11-29 18:59:42 -08002800
2801/// Query pool creation flags
2802type VkFlags VkQueryPoolCreateFlags
2803//bitfield VkQueryPoolCreateFlagBits {
2804//}
2805
2806/// Buffer view creation flags
2807type VkFlags VkBufferViewCreateFlags
2808//bitfield VkBufferViewCreateFlagBits {
2809//}
2810
2811/// Pipeline cache creation flags
2812type VkFlags VkPipelineCacheCreateFlags
2813//bitfield VkPipelineCacheCreateFlagBits {
2814//}
2815
2816/// Pipeline shader stage creation flags
2817type VkFlags VkPipelineShaderStageCreateFlags
2818//bitfield VkPipelineShaderStageCreateFlagBits {
2819//}
2820
2821/// Descriptor set layout creation flags
2822type VkFlags VkDescriptorSetLayoutCreateFlags
Jesse Hallad250842017-03-10 18:35:38 -08002823bitfield VkDescriptorSetLayoutCreateFlagBits {
2824 //@extension("VK_KHR_push_descriptor") // 81
2825 VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR = 0x00000001,
Jesse Hall72e6a132018-04-06 13:00:44 -07002826
2827 //@extension("VK_EXT_descriptor_indexing") // 162
2828 VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT = 0x00000002,
Jesse Hallad250842017-03-10 18:35:38 -08002829}
Jesse Halla6429252015-11-29 18:59:42 -08002830
2831/// Pipeline vertex input state creation flags
2832type VkFlags VkPipelineVertexInputStateCreateFlags
2833//bitfield VkPipelineVertexInputStateCreateFlagBits {
2834//}
2835
2836/// Pipeline input assembly state creation flags
2837type VkFlags VkPipelineInputAssemblyStateCreateFlags
2838//bitfield VkPipelineInputAssemblyStateCreateFlagBits {
2839//}
2840
2841/// Tessellation state creation flags
2842type VkFlags VkPipelineTessellationStateCreateFlags
2843//bitfield VkPipelineTessellationStateCreateFlagBits {
2844//}
2845
2846/// Viewport state creation flags
2847type VkFlags VkPipelineViewportStateCreateFlags
2848//bitfield VkPipelineViewportStateCreateFlagBits {
2849//}
2850
Jesse Hall3fbc8562015-11-29 22:10:52 -08002851/// Rasterization state creation flags
2852type VkFlags VkPipelineRasterizationStateCreateFlags
2853//bitfield VkPipelineRasterizationStateCreateFlagBits {
Jesse Halla6429252015-11-29 18:59:42 -08002854//}
2855
2856/// Multisample state creation flags
2857type VkFlags VkPipelineMultisampleStateCreateFlags
2858//bitfield VkPipelineMultisampleStateCreateFlagBits {
2859//}
2860
2861/// Color blend state creation flags
2862type VkFlags VkPipelineColorBlendStateCreateFlags
2863//bitfield VkPipelineColorBlendStateCreateFlagBits {
2864//}
2865
2866/// Depth/stencil state creation flags
2867type VkFlags VkPipelineDepthStencilStateCreateFlags
2868//bitfield VkPipelineDepthStencilStateCreateFlagBits {
2869//}
2870
2871/// Dynamic state creation flags
2872type VkFlags VkPipelineDynamicStateCreateFlags
2873//bitfield VkPipelineDynamicStateCreateFlagBits {
2874//}
2875
2876/// Pipeline layout creation flags
2877type VkFlags VkPipelineLayoutCreateFlags
2878//bitfield VkPipelineLayoutCreateFlagBits {
2879//}
2880
2881/// Sampler creation flags
2882type VkFlags VkSamplerCreateFlags
2883//bitfield VkSamplerCreateFlagBits {
2884//}
2885
2886/// Render pass creation flags
2887type VkFlags VkRenderPassCreateFlags
2888//bitfield VkRenderPassCreateFlagBits {
2889//}
2890
2891/// Framebuffer creation flags
2892type VkFlags VkFramebufferCreateFlags
2893//bitfield VkFramebufferCreateFlagBits {
2894//}
2895
Jesse Halldc6d36c2015-11-29 19:12:15 -08002896/// Dependency flags
2897type VkFlags VkDependencyFlags
2898bitfield VkDependencyFlagBits {
2899 VK_DEPENDENCY_BY_REGION_BIT = 0x00000001,
Jesse Hallad250842017-03-10 18:35:38 -08002900
Ian Elliott28bd2c32017-10-13 09:21:12 -06002901 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04002902 VK_DEPENDENCY_DEVICE_GROUP_BIT = 0x00000004,
2903 VK_DEPENDENCY_VIEW_LOCAL_BIT = 0x00000002,
Jesse Hallad250842017-03-10 18:35:38 -08002904
Daniel Koch09f7bf92017-10-05 00:26:58 -04002905 //@extension("VK_KHR_multiview") // 54
2906 VK_DEPENDENCY_VIEW_LOCAL_BIT_KHR = 0x00000002,
2907
2908 //@extension("VK_KHR_device_group") // 61
2909 VK_DEPENDENCY_DEVICE_GROUP_BIT_KHR = 0x00000004,
Jesse Halldc6d36c2015-11-29 19:12:15 -08002910}
2911
Jesse Hallc7467b72015-11-29 21:05:26 -08002912/// Cull mode flags
2913type VkFlags VkCullModeFlags
2914bitfield VkCullModeFlagBits {
2915 VK_CULL_MODE_NONE = 0x00000000,
2916 VK_CULL_MODE_FRONT_BIT = 0x00000001,
2917 VK_CULL_MODE_BACK_BIT = 0x00000002,
2918 VK_CULL_MODE_FRONT_AND_BACK = 0x00000003,
2919}
2920
Ian Elliott28bd2c32017-10-13 09:21:12 -06002921//@vulkan1_1 flags
Daniel Koch09f7bf92017-10-05 00:26:58 -04002922
2923/// Subgroup feature flags
2924type VkFlags VkSubgroupFeatureFlags
2925bitfield VkSubgroupFeatureFlagBits {
2926 VK_SUBGROUP_FEATURE_BASIC_BIT = 0x00000001,
2927 VK_SUBGROUP_FEATURE_VOTE_BIT = 0x00000002,
2928 VK_SUBGROUP_FEATURE_ARITHMETIC_BIT = 0x00000004,
2929 VK_SUBGROUP_FEATURE_BALLOT_BIT = 0x00000008,
2930 VK_SUBGROUP_FEATURE_SHUFFLE_BIT = 0x00000010,
2931 VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT = 0x00000020,
2932 VK_SUBGROUP_FEATURE_CLUSTERED_BIT = 0x00000040,
2933 VK_SUBGROUP_FEATURE_QUAD_BIT = 0x00000080,
Jesse Hall72e6a132018-04-06 13:00:44 -07002934
2935 //@extension("VK_NV_shader_subgroup_partitioned") // 199
2936 VK_SUBGROUP_FEATURE_PARTITIONED_BIT_NV = 0x00000100,
Daniel Koch09f7bf92017-10-05 00:26:58 -04002937}
2938
2939/// Peer memory feature flags
2940type VkFlags VkPeerMemoryFeatureFlags
2941bitfield VkPeerMemoryFeatureFlagBits {
2942 VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT = 0x00000001,
2943 VK_PEER_MEMORY_FEATURE_COPY_DST_BIT = 0x00000002,
2944 VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT = 0x00000004,
2945 VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT = 0x00000008,
2946}
2947
2948/// Memory allocation flags
2949type VkFlags VkMemoryAllocateFlags
2950bitfield VkMemoryAllocateFlagBits {
2951 VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT = 0x00000001,
2952}
2953
2954type VkFlags VkCommandPoolTrimFlags
2955//bitfield VkCommandPoolTrimFlagBits {
2956//}
2957
2958type VkFlags VkDescriptorUpdateTemplateCreateFlags
2959//bitfield VkDescriptorUpdateTemplateCreateFlagBits {
2960//}
2961
2962/// External memory handle type flags
2963type VkFlags VkExternalMemoryHandleTypeFlags
2964bitfield VkExternalMemoryHandleTypeFlagBits {
2965 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT = 0x00000001,
2966 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT = 0x00000002,
2967 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 0x00000004,
2968 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT = 0x00000008,
2969 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT = 0x00000010,
2970 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT = 0x00000020,
2971 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT = 0x00000040,
Jesse Hall8c954d32018-01-17 22:06:20 -08002972
Jesse Hall8c954d32018-01-17 22:06:20 -08002973 //@extension("VK_EXT_external_memory_host") // 179
Jesse Hall36215a92018-01-18 15:04:37 -08002974 VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT = 0x00000080,
2975 VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT = 0x00000100,
2976
2977 //@extension("VK_EXT_external_memory_dma_buf") // 126
2978 VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT = 0x00000200,
2979
2980 //@extension("VK_ANDROID_external_memory_android_hardware_buffer") // 130
2981 VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID = 0x00000400,
Daniel Koch09f7bf92017-10-05 00:26:58 -04002982}
2983
2984/// External memory feature flags
2985type VkFlags VkExternalMemoryFeatureFlags
2986bitfield VkExternalMemoryFeatureFlagBits {
2987 VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT = 0x00000001,
2988 VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT = 0x00000002,
2989 VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT = 0x00000004,
2990}
2991
2992/// External fence handle type flags
2993type VkFlags VkExternalFenceHandleTypeFlags
2994bitfield VkExternalFenceHandleTypeFlagBits {
2995 VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT = 0x00000001,
2996 VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT = 0x00000002,
2997 VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 0x00000004,
2998 VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT = 0x00000008,
2999}
3000
3001/// External fence feature flags
3002type VkFlags VkExternalFenceFeatureFlags
3003bitfield VkExternalFenceFeatureFlagBits {
3004 VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT = 0x00000001,
3005 VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT = 0x00000002,
3006}
3007
3008/// Fence import flags
3009type VkFlags VkFenceImportFlags
3010bitfield VkFenceImportFlagBits {
3011 VK_FENCE_IMPORT_TEMPORARY_BIT = 0x00000001,
3012}
3013
3014/// Semaphore import flags
3015type VkFlags VkSemaphoreImportFlags
3016bitfield VkSemaphoreImportFlagBits {
3017 VK_SEMAPHORE_IMPORT_TEMPORARY_BIT = 0x00000001,
3018}
3019
3020/// External semaphore handle type flags
3021type VkFlags VkExternalSemaphoreHandleTypeFlags
3022bitfield VkExternalSemaphoreHandleTypeFlagBits {
3023 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT = 0x00000001,
3024 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT = 0x00000002,
3025 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 0x00000004,
3026 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT = 0x00000008,
3027 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT = 0x00000010,
3028}
3029
3030/// External semaphore feature flags
3031type VkFlags VkExternalSemaphoreFeatureFlags
3032bitfield VkExternalSemaphoreFeatureFlagBits {
3033 VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT = 0x00000001,
3034 VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT = 0x00000002,
3035}
3036
Jesse Hallad250842017-03-10 18:35:38 -08003037@extension("VK_KHR_surface") // 1
Jesse Halld8bade02015-11-24 10:24:18 -08003038type VkFlags VkSurfaceTransformFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08003039@extension("VK_KHR_surface") // 1
Jesse Halld8bade02015-11-24 10:24:18 -08003040bitfield VkSurfaceTransformFlagBitsKHR {
Jesse Hallf9fa9a52016-01-08 16:08:51 -08003041 VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR = 0x00000001,
Jesse Hall9ba8bc82015-11-30 16:22:16 -08003042 VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR = 0x00000002,
3043 VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR = 0x00000004,
3044 VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR = 0x00000008,
3045 VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR = 0x00000010,
3046 VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR = 0x00000020,
3047 VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR = 0x00000040,
3048 VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR = 0x00000080,
3049 VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR = 0x00000100,
Michael Lentine88594d72015-11-12 12:49:45 -08003050}
Jesse Halld27f6aa2015-08-15 17:58:48 -07003051
Jesse Hallad250842017-03-10 18:35:38 -08003052@extension("VK_KHR_surface") // 1
Jesse Halla6429252015-11-29 18:59:42 -08003053type VkFlags VkCompositeAlphaFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08003054@extension("VK_KHR_surface") // 1
Jesse Halla6429252015-11-29 18:59:42 -08003055bitfield VkCompositeAlphaFlagBitsKHR {
3056 VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR = 0x00000001,
3057 VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR = 0x00000002,
3058 VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR = 0x00000004,
3059 VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR = 0x00000008,
3060}
3061
Jesse Hallad250842017-03-10 18:35:38 -08003062@extension("VK_KHR_swapchain") // 2
Jesse Hallf4ab2b12015-11-30 16:04:55 -08003063type VkFlags VkSwapchainCreateFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08003064@extension("VK_KHR_swapchain") // 2
3065bitfield VkSwapchainCreateFlagBitsKHR {
Ian Elliott28bd2c32017-10-13 09:21:12 -06003066 //@vulkan1_1
Jesse Hall8c954d32018-01-17 22:06:20 -08003067 VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR = 0x00000001,
Daniel Koch09f7bf92017-10-05 00:26:58 -04003068 VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR = 0x00000002,
3069}
3070
Ian Elliott28bd2c32017-10-13 09:21:12 -06003071@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04003072@extension("VK_KHR_swapchain") // 2
3073type VkFlags VkDeviceGroupPresentModeFlagsKHR
Ian Elliott28bd2c32017-10-13 09:21:12 -06003074@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04003075@extension("VK_KHR_swapchain") // 2
3076bitfield VkDeviceGroupPresentModeFlagBitsKHR {
3077 VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR = 0x00000001,
3078 VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR = 0x00000002,
3079 VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR = 0x00000004,
3080 VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR = 0x00000008,
Jesse Hallad250842017-03-10 18:35:38 -08003081}
Jesse Hallf4ab2b12015-11-30 16:04:55 -08003082
Jesse Hallad250842017-03-10 18:35:38 -08003083@extension("VK_KHR_display") // 3
Jesse Halld8bade02015-11-24 10:24:18 -08003084type VkFlags VkDisplayPlaneAlphaFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08003085@extension("VK_KHR_display") // 3
Jesse Halld8bade02015-11-24 10:24:18 -08003086bitfield VkDisplayPlaneAlphaFlagBitsKHR {
Jesse Hallf4ab2b12015-11-30 16:04:55 -08003087 VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR = 0x00000001,
3088 VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR = 0x00000002,
3089 VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR = 0x00000004,
3090 VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR = 0x00000008,
Jesse Hall1356b0d2015-11-23 17:24:58 -08003091}
3092
Jesse Hallad250842017-03-10 18:35:38 -08003093@extension("VK_KHR_display") // 3
Jesse Hallf4ab2b12015-11-30 16:04:55 -08003094type VkFlags VkDisplaySurfaceCreateFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08003095//@extension("VK_KHR_display") // 3
Jesse Hallf4ab2b12015-11-30 16:04:55 -08003096//bitfield VkDisplaySurfaceCreateFlagBitsKHR {
3097//}
3098
Jesse Hallad250842017-03-10 18:35:38 -08003099@extension("VK_KHR_display") // 3
Jesse Hall9ba8bc82015-11-30 16:22:16 -08003100type VkFlags VkDisplayModeCreateFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08003101//@extension("VK_KHR_display") // 3
Jesse Hall9ba8bc82015-11-30 16:22:16 -08003102//bitfield VkDisplayModeCreateFlagBitsKHR {
3103//}
3104
Jesse Hallad250842017-03-10 18:35:38 -08003105@extension("VK_KHR_xlib_surface") // 5
Jesse Hallf9fa9a52016-01-08 16:08:51 -08003106type VkFlags VkXlibSurfaceCreateFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08003107//@extension("VK_KHR_xlib_surface") // 5
Jesse Hallf9fa9a52016-01-08 16:08:51 -08003108//bitfield VkXlibSurfaceCreateFlagBitsKHR {
3109//}
3110
Jesse Hallad250842017-03-10 18:35:38 -08003111@extension("VK_KHR_xcb_surface") // 6
Jesse Hallf9fa9a52016-01-08 16:08:51 -08003112type VkFlags VkXcbSurfaceCreateFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08003113//@extension("VK_KHR_xcb_surface") // 6
Jesse Hallf9fa9a52016-01-08 16:08:51 -08003114//bitfield VkXcbSurfaceCreateFlagBitsKHR {
3115//}
3116
Jesse Hallad250842017-03-10 18:35:38 -08003117@extension("VK_KHR_wayland_surface") // 7
Jesse Hallf9fa9a52016-01-08 16:08:51 -08003118type VkFlags VkWaylandSurfaceCreateFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08003119//@extension("VK_KHR_wayland_surface") // 7
Jesse Hallf9fa9a52016-01-08 16:08:51 -08003120//bitfield VkWaylandSurfaceCreateFlagBitsKHR {
3121//}
3122
Jesse Hallad250842017-03-10 18:35:38 -08003123@extension("VK_KHR_mir_surface") // 8
Jesse Hallf9fa9a52016-01-08 16:08:51 -08003124type VkFlags VkMirSurfaceCreateFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08003125//@extension("VK_KHR_mir_surface") // 8
Jesse Hallf9fa9a52016-01-08 16:08:51 -08003126//bitfield VkMirSurfaceCreateFlagBitsKHR {
3127//}
3128
Jesse Hallad250842017-03-10 18:35:38 -08003129@extension("VK_KHR_android_surface") // 9
Jesse Hallf9fa9a52016-01-08 16:08:51 -08003130type VkFlags VkAndroidSurfaceCreateFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08003131//@extension("VK_KHR_android_surface") // 9
Jesse Hallf9fa9a52016-01-08 16:08:51 -08003132//bitfield VkAndroidSurfaceCreateFlagBitsKHR {
3133//}
3134
Jesse Hallad250842017-03-10 18:35:38 -08003135@extension("VK_KHR_win32_surface") // 10
Jesse Hallf9fa9a52016-01-08 16:08:51 -08003136type VkFlags VkWin32SurfaceCreateFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08003137//@extension("VK_KHR_win32_surface") // 10
Jesse Hallf9fa9a52016-01-08 16:08:51 -08003138//bitfield VkWin32SurfaceCreateFlagBitsKHR {
3139//}
3140
Jesse Hallad250842017-03-10 18:35:38 -08003141@extension("VK_ANDROID_native_buffer") // 11
Jesse Hall889cd9a2017-02-25 22:12:23 -08003142type VkFlags VkSwapchainImageUsageFlagsANDROID
Jesse Hallad250842017-03-10 18:35:38 -08003143@extension("VK_ANDROID_native_buffer") // 11
Jesse Hall889cd9a2017-02-25 22:12:23 -08003144bitfield VkSwapchainImageUsageFlagBitsANDROID {
3145 VK_SWAPCHAIN_IMAGE_USAGE_FLAGS_SHARED_BIT_ANDROID = 0x00000001,
3146}
3147
Jesse Hallad250842017-03-10 18:35:38 -08003148@extension("VK_EXT_debug_report") // 12
Jesse Hall715b86a2016-01-16 16:34:29 -08003149type VkFlags VkDebugReportFlagsEXT
Jesse Hallad250842017-03-10 18:35:38 -08003150@extension("VK_EXT_debug_report") // 12
Jesse Hall715b86a2016-01-16 16:34:29 -08003151bitfield VkDebugReportFlagBitsEXT {
Jesse Halle2948d82016-02-25 04:19:32 -08003152 VK_DEBUG_REPORT_INFORMATION_BIT_EXT = 0x00000001,
3153 VK_DEBUG_REPORT_WARNING_BIT_EXT = 0x00000002,
3154 VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT = 0x00000004,
Jesse Hall715b86a2016-01-16 16:34:29 -08003155 VK_DEBUG_REPORT_ERROR_BIT_EXT = 0x00000008,
3156 VK_DEBUG_REPORT_DEBUG_BIT_EXT = 0x00000010,
3157}
3158
Jesse Hallad250842017-03-10 18:35:38 -08003159@extension("VK_NV_external_memory_capabilities") // 56
Chris Forbes289cb792016-12-30 15:03:55 +13003160type VkFlags VkExternalMemoryHandleTypeFlagsNV
Jesse Hallad250842017-03-10 18:35:38 -08003161@extension("VK_NV_external_memory_capabilities") // 56
Chris Forbes289cb792016-12-30 15:03:55 +13003162bitfield VkExternalMemoryHandleTypeFlagBitsNV {
Jesse Halleb02c472017-02-24 15:13:45 -08003163 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV = 0x00000001,
3164 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV = 0x00000002,
3165 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV = 0x00000004,
3166 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV = 0x00000008,
Chris Forbes289cb792016-12-30 15:03:55 +13003167}
3168
Jesse Hallad250842017-03-10 18:35:38 -08003169@extension("VK_NV_external_memory_capabilities") // 56
Chris Forbes289cb792016-12-30 15:03:55 +13003170type VkFlags VkExternalMemoryFeatureFlagsNV
Jesse Hallad250842017-03-10 18:35:38 -08003171@extension("VK_NV_external_memory_capabilities") // 56
Chris Forbes289cb792016-12-30 15:03:55 +13003172bitfield VkExternalMemoryFeatureFlagBitsNV {
Jesse Halleb02c472017-02-24 15:13:45 -08003173 VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV = 0x00000001,
3174 VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV = 0x00000002,
3175 VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV = 0x00000004,
Chris Forbes289cb792016-12-30 15:03:55 +13003176}
3177
Daniel Koch09f7bf92017-10-05 00:26:58 -04003178@extension("VK_KHR_device_group") // 61
3179type VkFlags VkPeerMemoryFeatureFlagsKHR
3180@extension("VK_KHR_device_group") // 61
3181bitfield VkPeerMemoryFeatureFlagBitsKHR {
3182 VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT_KHR = 0x00000001,
3183 VK_PEER_MEMORY_FEATURE_COPY_DST_BIT_KHR = 0x00000002,
3184 VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT_KHR = 0x00000004,
3185 VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT_KHR = 0x00000008,
Jesse Hallad250842017-03-10 18:35:38 -08003186}
3187
Daniel Koch09f7bf92017-10-05 00:26:58 -04003188@extension("VK_KHR_device_group") // 61
3189type VkFlags VkMemoryAllocateFlagsKHR
3190@extension("VK_KHR_device_group") // 61
3191bitfield VkMemoryAllocateFlagBitsKHR {
3192 VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT_KHR = 0x00000001,
Jesse Hallad250842017-03-10 18:35:38 -08003193}
3194
3195@extension("VK_NN_vi_surface") // 63
Jesse Hall77ad05b2017-03-10 22:02:20 -08003196type VkFlags VkViSurfaceCreateFlagsNN
Jesse Hallad250842017-03-10 18:35:38 -08003197//@extension("VK_NN_vi_surface") // 63
Jesse Hall77ad05b2017-03-10 22:02:20 -08003198//bitfield VkViSurfaceCreateFlagBitsNN {
3199//}
3200
Jesse Hallad250842017-03-10 18:35:38 -08003201@extension("VK_KHR_maintenance1") // 70
Jesse Hall77ad05b2017-03-10 22:02:20 -08003202type VkFlags VkCommandPoolTrimFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08003203//@extension("VK_KHR_maintenance1") // 70
Jesse Hall77ad05b2017-03-10 22:02:20 -08003204//bitfield VkCommandPoolTrimFlagBitsKHR {
3205//}
3206
Jesse Hall9492f992017-08-28 12:10:06 -07003207@extension("VK_KHR_external_memory_capabilities") // 72
3208type VkFlags VkExternalMemoryHandleTypeFlagsKHR
3209@extension("VK_KHR_external_memory_capabilities") // 72
3210bitfield VkExternalMemoryHandleTypeFlagBitsKHR {
3211 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = 0x00000001,
3212 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = 0x00000002,
3213 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = 0x00000004,
3214 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT_KHR = 0x00000008,
3215 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT_KHR = 0x00000010,
3216 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT_KHR = 0x00000020,
3217 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT_KHR = 0x00000040,
Jesse Hallad250842017-03-10 18:35:38 -08003218}
3219
Jesse Hall9492f992017-08-28 12:10:06 -07003220@extension("VK_KHR_external_memory_capabilities") // 72
3221type VkFlags VkExternalMemoryFeatureFlagsKHR
3222@extension("VK_KHR_external_memory_capabilities") // 72
3223bitfield VkExternalMemoryFeatureFlagBitsKHR {
3224 VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_KHR = 0x00000001,
3225 VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_KHR = 0x00000002,
3226 VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_KHR = 0x00000004,
Jesse Hallad250842017-03-10 18:35:38 -08003227}
3228
Jesse Hall9492f992017-08-28 12:10:06 -07003229@extension("VK_KHR_external_semaphore_capabilities") // 77
3230type VkFlags VkExternalSemaphoreHandleTypeFlagsKHR
3231@extension("VK_KHR_external_semaphore_capabilities") // 77
3232bitfield VkExternalSemaphoreHandleTypeFlagBitsKHR {
3233 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = 0x00000001
3234 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = 0x00000002
3235 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = 0x00000004
3236 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT_KHR = 0x00000008
3237 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_FENCE_FD_BIT_KHR = 0x00000010
Jesse Hallad250842017-03-10 18:35:38 -08003238}
3239
Jesse Hall9492f992017-08-28 12:10:06 -07003240@extension("VK_KHR_external_semaphore_capabilities") // 77
3241type VkFlags VkExternalSemaphoreFeatureFlagsKHR
3242@extension("VK_KHR_external_semaphore_capabilities") // 77
3243bitfield VkExternalSemaphoreFeatureFlagBitsKHR {
3244 VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT_KHR = 0x00000001,
3245 VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT_KHR = 0x00000002,
3246}
3247
3248@extension("VK_KHR_external_semaphore") // 78
3249type VkFlags VkSemaphoreImportFlagsKHR
3250@extension("VK_KHR_external_semaphore") // 78
3251bitfield VkSemaphoreImportFlagBitsKHR {
3252 VK_SEMAPHORE_IMPORT_TEMPORARY_BIT_KHR = 0x00000001,
Jesse Hallad250842017-03-10 18:35:38 -08003253}
3254
Jesse Halla13a3cf2018-07-09 15:51:52 -07003255@extension("VK_EXT_conditional_rendering") // 82
3256type VkFlags VkConditionalRenderingFlagsEXT
3257@extension("VK_EXT_conditional_rendering") // 82
3258bitfield VkConditionalRenderingFlagBitsEXT {
3259 VK_CONDITIONAL_RENDERING_INVERTED_BIT_EXT = 0x00000001,
3260}
3261
Jesse Hallad250842017-03-10 18:35:38 -08003262@extension("VK_KHR_descriptor_update_template") // 86
3263type VkFlags VkDescriptorUpdateTemplateCreateFlagsKHR
3264//@extension("VK_KHR_descriptor_update_template") // 86
3265//bitfield VkDescriptorUpdateTemplateCreateFlagBitsKHR {
3266//}
3267
3268@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13003269type VkFlags VkIndirectCommandsLayoutUsageFlagsNVX
Jesse Hallad250842017-03-10 18:35:38 -08003270@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13003271bitfield VkIndirectCommandsLayoutUsageFlagBitsNVX {
Jesse Halleb02c472017-02-24 15:13:45 -08003272 VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NVX = 0x00000001,
3273 VK_INDIRECT_COMMANDS_LAYOUT_USAGE_SPARSE_SEQUENCES_BIT_NVX = 0x00000002,
3274 VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EMPTY_EXECUTIONS_BIT_NVX = 0x00000004,
3275 VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NVX = 0x00000008,
Chris Forbes289cb792016-12-30 15:03:55 +13003276}
3277
Jesse Hallad250842017-03-10 18:35:38 -08003278@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13003279type VkFlags VkObjectEntryUsageFlagsNVX
Jesse Hallad250842017-03-10 18:35:38 -08003280@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13003281bitfield VkObjectEntryUsageFlagBitsNVX {
Jesse Halleb02c472017-02-24 15:13:45 -08003282 VK_OBJECT_ENTRY_USAGE_GRAPHICS_BIT_NVX = 0x00000001,
3283 VK_OBJECT_ENTRY_USAGE_COMPUTE_BIT_NVX = 0x00000002,
Chris Forbes289cb792016-12-30 15:03:55 +13003284}
3285
Jesse Hallad250842017-03-10 18:35:38 -08003286@extension("VK_EXT_display_surface_counter") // 91
Jesse Hall77ad05b2017-03-10 22:02:20 -08003287type VkFlags VkSurfaceCounterFlagsEXT
Jesse Hallad250842017-03-10 18:35:38 -08003288@extension("VK_EXT_display_surface_counter") // 91
Jesse Hall77ad05b2017-03-10 22:02:20 -08003289bitfield VkSurfaceCounterFlagBitsEXT {
3290 VK_SURFACE_COUNTER_VBLANK_EXT = 0x00000001,
3291}
3292
Jesse Hallad250842017-03-10 18:35:38 -08003293@extension("VK_NV_viewport_swizzle") // 99
3294type VkFlags VkPipelineViewportSwizzleStateCreateFlagsNV
3295//@extension("VK_NV_viewport_swizzle") // 99
3296//bitfield VkPipelineViewportSwizzleStateCreateFlagBitsNV {
3297//}
3298
3299@extension("VK_EXT_discard_rectangles") // 100
3300type VkFlags VkPipelineDiscardRectangleStateCreateFlagsEXT
3301//@extension("VK_EXT_discard_rectangles") // 100
3302//bitfield VkPipelineDiscardRectangleStateCreateFlagBitsEXT {
3303//}
3304
Jesse Hall8c954d32018-01-17 22:06:20 -08003305@extension("VK_EXT_conservative_rasterization") // 102
3306type VkFlags VkPipelineRasterizationConservativeStateCreateFlagsEXT
3307//@extension("VK_EXT_conservative_rasterization") // 102
3308//bitfield VkPipelineRasterizationConservativeStateCreateFlagBitsEXT {
3309//}
3310
Jesse Hall9492f992017-08-28 12:10:06 -07003311@extension("VK_KHR_external_fence_capabilities") // 113
3312type VkFlags VkExternalFenceHandleTypeFlagsKHR
3313@extension("VK_KHR_external_fence_capabilities") // 113
3314bitfield VkExternalFenceHandleTypeFlagBitsKHR {
3315 VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = 0x00000001,
3316 VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = 0x00000002,
3317 VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = 0x00000004,
3318 VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT_KHR = 0x00000008,
3319}
3320
3321@extension("VK_KHR_external_fence_capabilities") // 113
3322type VkFlags VkExternalFenceFeatureFlagsKHR
3323@extension("VK_KHR_external_fence_capabilities") // 113
3324bitfield VkExternalFenceFeatureFlagBitsKHR {
3325 VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT_KHR = 0x00000001,
3326 VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT_KHR = 0x00000002,
3327}
3328
3329@extension("VK_KHR_external_fence") // 114
3330type VkFlags VkFenceImportFlagsKHR
3331@extension("VK_KHR_external_fence") // 114
3332bitfield VkFenceImportFlagBitsKHR {
3333 VK_FENCE_IMPORT_TEMPORARY_BIT_KHR = 0x00000001,
3334}
3335
Jesse Hallad250842017-03-10 18:35:38 -08003336@extension("VK_MVK_ios_surface") // 123
3337type VkFlags VkIOSSurfaceCreateFlagsMVK
3338//@extension("VK_MVK_ios_surface") // 123
3339//bitfield VkIOSSurfaceCreateFlagBitsMVK {
3340//}
3341
3342@extension("VK_MVK_macos_surface") // 124
3343type VkFlags VkMacOSSurfaceCreateFlagsMVK
3344//@extension("VK_MVK_macos_surface") // 124
3345//bitfield VkMacOSSurfaceCreateFlagBitsMVK {
3346//}
3347
Jesse Hall8c954d32018-01-17 22:06:20 -08003348@extension("VK_EXT_debug_utils") // 129
3349type VkFlags VkDebugUtilsMessengerCallbackDataFlagsEXT
3350//@extension("VK_EXT_debug_utils") // 129
3351//bitfield VkDebugUtilsMessengerCallbackDataFlagBitsEXT {
3352//}
3353
3354@extension("VK_EXT_debug_utils") // 129
3355type VkFlags VkDebugUtilsMessengerCreateFlagsEXT
3356//@extension("VK_EXT_debug_utils") // 129
3357//bitfield VkDebugUtilsMessengerCreateFlagBitsEXT {
3358//}
3359
3360@extension("VK_EXT_debug_utils") // 129
3361type VkFlags VkDebugUtilsMessageSeverityFlagsEXT
3362@extension("VK_EXT_debug_utils") // 129
3363bitfield VkDebugUtilsMessageSeverityFlagBitsEXT {
3364 VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT = 0x00000001,
3365 VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT = 0x00000010,
3366 VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT = 0x00000100,
3367 VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT = 0x00001000,
3368}
3369
3370@extension("VK_EXT_debug_utils") // 129
3371type VkFlags VkDebugUtilsMessageTypeFlagsEXT
3372@extension("VK_EXT_debug_utils") // 129
3373bitfield VkDebugUtilsMessageTypeFlagBitsEXT {
3374 VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT = 0x00000001,
3375 VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT = 0x00000002,
3376 VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT = 0x00000004,
3377}
3378
Jesse Hall7ba0ac72017-07-07 17:13:23 -07003379@extension("VK_NV_fragment_coverage_to_color") // 150
3380type VkFlags VkPipelineCoverageToColorStateCreateFlagsNV
3381@extension("VK_NV_fragment_coverage_to_color") // 150
3382//bitfield VkPipelineCoverageToColorStateCreateFlagBitsNV {
3383//}
3384
3385@extension("VK_NV_framebuffer_mixed_samples") // 153
3386type VkFlags VkPipelineCoverageModulationStateCreateFlagsNV
3387@extension("VK_NV_framebuffer_mixed_samples") // 153
3388//bitfield VkPipelineCoverageModulationStateCreateFlagBitsNV {
3389//}
3390
Jesse Hall77726222017-09-19 14:49:27 -05003391@extension("VK_EXT_validation_cache") // 161
3392type VkFlags VkValidationCacheCreateFlagsEXT
3393@extension("VK_EXT_validation_cache") // 161
3394//bitfield VkValidationCacheCreateFlagBitsEXT {
3395//}
3396
Jesse Hall72e6a132018-04-06 13:00:44 -07003397@extension("VK_EXT_descriptor_indexing") // 162
3398type VkFlags VkDescriptorBindingFlagsEXT
3399@extension("VK_EXT_descriptor_indexing") // 162
3400bitfield VkDescriptorBindingFlagBitsEXT {
3401 VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT_EXT = 0x00000001,
3402 VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT_EXT = 0x00000002,
3403 VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT_EXT = 0x00000004,
3404 VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT_EXT = 0x00000008,
3405}
3406
Jesse Hallb5297192018-09-22 20:52:13 +02003407@extension("VK_NVX_raytracing") // 166
3408type VkFlags VkGeometryFlagsNVX
3409@extension("VK_NVX_raytracing") // 166
3410bitfield VkGeometryFlagBitsNVX {
3411 VK_GEOMETRY_OPAQUE_BIT_NVX = 0x00000001,
3412 VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_NVX = 0x00000002,
3413}
3414
3415@extension("VK_NVX_raytracing") // 166
3416type VkFlags VkGeometryInstanceFlagsNVX
3417@extension("VK_NVX_raytracing") // 166
3418bitfield VkGeometryInstanceFlagBitsNVX {
3419 VK_GEOMETRY_INSTANCE_TRIANGLE_CULL_DISABLE_BIT_NVX = 0x00000001,
3420 VK_GEOMETRY_INSTANCE_TRIANGLE_CULL_FLIP_WINDING_BIT_NVX = 0x00000002,
3421 VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_NVX = 0x00000004,
3422 VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_NVX = 0x00000008,
3423}
3424
3425@extension("VK_NVX_raytracing") // 166
3426type VkFlags VkBuildAccelerationStructureFlagsNVX
3427@extension("VK_NVX_raytracing") // 166
3428bitfield VkBuildAccelerationStructureFlagBitsNVX {
3429 VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_NVX = 0x00000001,
3430 VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_NVX = 0x00000002,
3431 VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_NVX = 0x00000004,
3432 VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_NVX = 0x00000008,
3433 VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_NVX = 0x00000010,
3434}
3435
Jesse Hall497c46f2018-10-08 12:52:48 -07003436@extension("VK_FUCHSIA_imagepipe_surface") // 215
3437type VkFlags VkImagePipeSurfaceCreateFlagsFUCHSIA
3438//@extension("VK_FUCHSIA_imagepipe_surface") // 215
3439//bitfield VkImagePipeSurfaceCreateFlagBitsFUCHSIA {
3440//}
3441
Jesse Halld27f6aa2015-08-15 17:58:48 -07003442//////////////////
3443// Structures //
3444//////////////////
3445
3446class VkOffset2D {
3447 s32 x
3448 s32 y
3449}
3450
3451class VkOffset3D {
3452 s32 x
3453 s32 y
3454 s32 z
3455}
3456
3457class VkExtent2D {
Jesse Hall3dd678a2016-01-08 21:52:01 -08003458 u32 width
3459 u32 height
Jesse Halld27f6aa2015-08-15 17:58:48 -07003460}
3461
3462class VkExtent3D {
Jesse Hall3dd678a2016-01-08 21:52:01 -08003463 u32 width
3464 u32 height
3465 u32 depth
Jesse Halld27f6aa2015-08-15 17:58:48 -07003466}
3467
3468class VkViewport {
Jesse Hall65ab5522015-11-30 00:07:16 -08003469 f32 x
3470 f32 y
Jesse Halld27f6aa2015-08-15 17:58:48 -07003471 f32 width
3472 f32 height
3473 f32 minDepth
3474 f32 maxDepth
3475}
3476
3477class VkRect2D {
3478 VkOffset2D offset
3479 VkExtent2D extent
3480}
3481
Jesse Halla15a4bf2015-11-19 22:48:02 -08003482class VkClearRect {
3483 VkRect2D rect
3484 u32 baseArrayLayer
Jesse Hall3fbc8562015-11-29 22:10:52 -08003485 u32 layerCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07003486}
3487
Jesse Hall65ab5522015-11-30 00:07:16 -08003488class VkComponentMapping {
3489 VkComponentSwizzle r
3490 VkComponentSwizzle g
3491 VkComponentSwizzle b
3492 VkComponentSwizzle a
Jesse Halld27f6aa2015-08-15 17:58:48 -07003493}
3494
3495class VkPhysicalDeviceProperties {
3496 u32 apiVersion
3497 u32 driverVersion
Jesse Hall65ab5522015-11-30 00:07:16 -08003498 u32 vendorID
3499 u32 deviceID
Jesse Halld27f6aa2015-08-15 17:58:48 -07003500 VkPhysicalDeviceType deviceType
Jesse Hall65ab5522015-11-30 00:07:16 -08003501 char[VK_MAX_PHYSICAL_DEVICE_NAME_SIZE] deviceName
3502 u8[VK_UUID_SIZE] pipelineCacheUUID
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003503 VkPhysicalDeviceLimits limits
3504 VkPhysicalDeviceSparseProperties sparseProperties
Jesse Halld27f6aa2015-08-15 17:58:48 -07003505}
3506
3507class VkExtensionProperties {
Jesse Hall65ab5522015-11-30 00:07:16 -08003508 char[VK_MAX_EXTENSION_NAME_SIZE] extensionName /// extension name
Jesse Halld27f6aa2015-08-15 17:58:48 -07003509 u32 specVersion /// version of the extension specification implemented
3510}
3511
3512class VkLayerProperties {
Jesse Hall65ab5522015-11-30 00:07:16 -08003513 char[VK_MAX_EXTENSION_NAME_SIZE] layerName /// layer name
Jesse Hall3fbc8562015-11-29 22:10:52 -08003514 u32 specVersion /// version of the layer specification implemented
3515 u32 implementationVersion /// build or release version of the layer's library
Jesse Hall65ab5522015-11-30 00:07:16 -08003516 char[VK_MAX_DESCRIPTION_SIZE] description /// Free-form description of the layer
Jesse Halld27f6aa2015-08-15 17:58:48 -07003517}
3518
Jesse Halla366a512015-11-19 22:30:07 -08003519class VkSubmitInfo {
Jesse Hall03b6fe12015-11-24 12:44:21 -08003520 VkStructureType sType /// Type of structure. Should be VK_STRUCTURE_TYPE_SUBMIT_INFO
3521 const void* pNext /// Next structure in chain
3522 u32 waitSemaphoreCount
Jesse Halla366a512015-11-19 22:30:07 -08003523 const VkSemaphore* pWaitSemaphores
Jesse Hall543a7ff2016-01-08 16:38:30 -08003524 const VkPipelineStageFlags* pWaitDstStageMask
Jesse Hall03b6fe12015-11-24 12:44:21 -08003525 u32 commandBufferCount
Jesse Hall3fbc8562015-11-29 22:10:52 -08003526 const VkCommandBuffer* pCommandBuffers
Jesse Hall03b6fe12015-11-24 12:44:21 -08003527 u32 signalSemaphoreCount
Jesse Halla366a512015-11-19 22:30:07 -08003528 const VkSemaphore* pSignalSemaphores
3529}
3530
Jesse Halld27f6aa2015-08-15 17:58:48 -07003531class VkApplicationInfo {
3532 VkStructureType sType /// Type of structure. Should be VK_STRUCTURE_TYPE_APPLICATION_INFO
3533 const void* pNext /// Next structure in chain
Jesse Hall3fbc8562015-11-29 22:10:52 -08003534 const char* pApplicationName
3535 u32 applicationVersion
Jesse Halld27f6aa2015-08-15 17:58:48 -07003536 const char* pEngineName
3537 u32 engineVersion
3538 u32 apiVersion
3539}
3540
Jesse Hall3fbc8562015-11-29 22:10:52 -08003541class VkAllocationCallbacks {
Jesse Halld27f6aa2015-08-15 17:58:48 -07003542 void* pUserData
Jesse Hall3fbc8562015-11-29 22:10:52 -08003543 PFN_vkAllocationFunction pfnAllocation
3544 PFN_vkReallocationFunction pfnReallocation
Jesse Halld27f6aa2015-08-15 17:58:48 -07003545 PFN_vkFreeFunction pfnFree
Jesse Hall3fbc8562015-11-29 22:10:52 -08003546 PFN_vkInternalAllocationNotification pfnInternalAllocation
Jesse Hall03b6fe12015-11-24 12:44:21 -08003547 PFN_vkInternalFreeNotification pfnInternalFree
Jesse Halld27f6aa2015-08-15 17:58:48 -07003548}
3549
3550class VkDeviceQueueCreateInfo {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003551 VkStructureType sStype /// Should be VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO
3552 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003553 VkDeviceQueueCreateFlags flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07003554 u32 queueFamilyIndex
Jesse Halldba27f72015-11-30 14:25:46 -08003555 u32 queueCount
Jesse Hallfbf97b02015-11-20 14:17:03 -08003556 const f32* pQueuePriorities
Jesse Halld27f6aa2015-08-15 17:58:48 -07003557}
3558
3559class VkDeviceCreateInfo {
3560 VkStructureType sType /// Should be VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO
3561 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003562 VkDeviceCreateFlags flags
Jesse Halldba27f72015-11-30 14:25:46 -08003563 u32 queueCreateInfoCount
3564 const VkDeviceQueueCreateInfo* pQueueCreateInfos
Jesse Hall3dd678a2016-01-08 21:52:01 -08003565 u32 enabledLayerCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07003566 const char* const* ppEnabledLayerNames /// Ordered list of layer names to be enabled
Jesse Hall3dd678a2016-01-08 21:52:01 -08003567 u32 enabledExtensionCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07003568 const char* const* ppEnabledExtensionNames
3569 const VkPhysicalDeviceFeatures* pEnabledFeatures
Jesse Halld27f6aa2015-08-15 17:58:48 -07003570}
3571
3572class VkInstanceCreateInfo {
3573 VkStructureType sType /// Should be VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO
3574 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003575 VkInstanceCreateFlags flags
Jesse Hall3fbc8562015-11-29 22:10:52 -08003576 const VkApplicationInfo* pApplicationInfo
Jesse Hall3dd678a2016-01-08 21:52:01 -08003577 u32 enabledLayerCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07003578 const char* const* ppEnabledLayerNames /// Ordered list of layer names to be enabled
Jesse Hall3dd678a2016-01-08 21:52:01 -08003579 u32 enabledExtensionCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07003580 const char* const* ppEnabledExtensionNames /// Extension names to be enabled
3581}
3582
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003583class VkQueueFamilyProperties {
Jesse Halld27f6aa2015-08-15 17:58:48 -07003584 VkQueueFlags queueFlags /// Queue flags
3585 u32 queueCount
Jesse Hallacfa5342015-11-19 21:51:33 -08003586 u32 timestampValidBits
Jesse Hall65ab5522015-11-30 00:07:16 -08003587 VkExtent3D minImageTransferGranularity
Jesse Halld27f6aa2015-08-15 17:58:48 -07003588}
3589
3590class VkPhysicalDeviceMemoryProperties {
3591 u32 memoryTypeCount
3592 VkMemoryType[VK_MAX_MEMORY_TYPES] memoryTypes
3593 u32 memoryHeapCount
3594 VkMemoryHeap[VK_MAX_MEMORY_HEAPS] memoryHeaps
3595}
3596
Jesse Hall3fbc8562015-11-29 22:10:52 -08003597class VkMemoryAllocateInfo {
Jesse Hallf4ab2b12015-11-30 16:04:55 -08003598 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO
Jesse Halld27f6aa2015-08-15 17:58:48 -07003599 const void* pNext /// Pointer to next structure
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003600 VkDeviceSize allocationSize /// Size of memory allocation
Jesse Halld27f6aa2015-08-15 17:58:48 -07003601 u32 memoryTypeIndex /// Index of the of the memory type to allocate from
3602}
3603
3604class VkMemoryRequirements {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003605 VkDeviceSize size /// Specified in bytes
3606 VkDeviceSize alignment /// Specified in bytes
Jesse Halld27f6aa2015-08-15 17:58:48 -07003607 u32 memoryTypeBits /// Bitfield of the allowed memory type indices into memoryTypes[] for this object
3608}
3609
3610class VkSparseImageFormatProperties {
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08003611 VkImageAspectFlagBits aspectMask
Jesse Halld27f6aa2015-08-15 17:58:48 -07003612 VkExtent3D imageGranularity
3613 VkSparseImageFormatFlags flags
3614}
3615
3616class VkSparseImageMemoryRequirements {
Jesse Hallb00daad2015-11-29 19:46:20 -08003617 VkSparseImageFormatProperties formatProperties
Jesse Hallf9fa9a52016-01-08 16:08:51 -08003618 u32 imageMipTailFirstLod
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003619 VkDeviceSize imageMipTailSize /// Specified in bytes, must be a multiple of image block size / alignment
3620 VkDeviceSize imageMipTailOffset /// Specified in bytes, must be a multiple of image block size / alignment
3621 VkDeviceSize imageMipTailStride /// Specified in bytes, must be a multiple of image block size / alignment
Jesse Halld27f6aa2015-08-15 17:58:48 -07003622}
3623
3624class VkMemoryType {
3625 VkMemoryPropertyFlags propertyFlags /// Memory properties of this memory type
3626 u32 heapIndex /// Index of the memory heap allocations of this memory type are taken from
3627}
3628
3629class VkMemoryHeap {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003630 VkDeviceSize size /// Available memory in the heap
Jesse Halld27f6aa2015-08-15 17:58:48 -07003631 VkMemoryHeapFlags flags /// Flags for the heap
3632}
3633
3634class VkMappedMemoryRange {
3635 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE
3636 const void* pNext /// Pointer to next structure
Jesse Hall3fbc8562015-11-29 22:10:52 -08003637 VkDeviceMemory memory /// Mapped memory object
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003638 VkDeviceSize offset /// Offset within the mapped memory the range starts from
3639 VkDeviceSize size /// Size of the range within the mapped memory
Jesse Halld27f6aa2015-08-15 17:58:48 -07003640}
3641
3642class VkFormatProperties {
3643 VkFormatFeatureFlags linearTilingFeatures /// Format features in case of linear tiling
3644 VkFormatFeatureFlags optimalTilingFeatures /// Format features in case of optimal tiling
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003645 VkFormatFeatureFlags bufferFeatures /// Format features supported by buffers
Jesse Halld27f6aa2015-08-15 17:58:48 -07003646}
3647
3648class VkImageFormatProperties {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003649 VkExtent3D maxExtent /// max image dimensions for this resource type
3650 u32 maxMipLevels /// max number of mipmap levels for this resource type
Jesse Halla15a4bf2015-11-19 22:48:02 -08003651 u32 maxArrayLayers /// max array layers for this resource type
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003652 VkSampleCountFlags sampleCounts /// supported sample counts for this resource type
3653 VkDeviceSize maxResourceSize /// max size (in bytes) of this resource type
3654}
3655
Jesse Halla15a4bf2015-11-19 22:48:02 -08003656class VkDescriptorImageInfo {
3657 VkSampler sampler
3658 VkImageView imageView
3659 VkImageLayout imageLayout
3660}
3661
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003662class VkDescriptorBufferInfo {
3663 VkBuffer buffer /// Buffer used for this descriptor when the descriptor is UNIFORM_BUFFER[_DYNAMIC]
3664 VkDeviceSize offset /// Base offset from buffer start in bytes to update in the descriptor set.
3665 VkDeviceSize range /// Size in bytes of the buffer resource for this descriptor update.
Jesse Halld27f6aa2015-08-15 17:58:48 -07003666}
3667
Jesse Halld27f6aa2015-08-15 17:58:48 -07003668class VkWriteDescriptorSet {
3669 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET
3670 const void* pNext /// Pointer to next structure
Jesse Hall3fbc8562015-11-29 22:10:52 -08003671 VkDescriptorSet dstSet /// Destination descriptor set
3672 u32 dstBinding /// Binding within the destination descriptor set to write
3673 u32 dstArrayElement /// Array element within the destination binding to write
Jesse Hall03b6fe12015-11-24 12:44:21 -08003674 u32 descriptorCount /// Number of descriptors to write (determines the size of the array pointed by <pDescriptors>)
Jesse Halld27f6aa2015-08-15 17:58:48 -07003675 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 -08003676 const VkDescriptorImageInfo* pImageInfo
3677 const VkDescriptorBufferInfo* pBufferInfo
3678 const VkBufferView* pTexelBufferView
Jesse Halld27f6aa2015-08-15 17:58:48 -07003679}
3680
3681class VkCopyDescriptorSet {
3682 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET
3683 const void* pNext /// Pointer to next structure
3684 VkDescriptorSet srcSet /// Source descriptor set
3685 u32 srcBinding /// Binding within the source descriptor set to copy from
3686 u32 srcArrayElement /// Array element within the source binding to copy from
Jesse Hall3fbc8562015-11-29 22:10:52 -08003687 VkDescriptorSet dstSet /// Destination descriptor set
3688 u32 dstBinding /// Binding within the destination descriptor set to copy to
3689 u32 dstArrayElement /// Array element within the destination binding to copy to
Jesse Hall03b6fe12015-11-24 12:44:21 -08003690 u32 descriptorCount /// Number of descriptors to copy
Jesse Halld27f6aa2015-08-15 17:58:48 -07003691}
3692
3693class VkBufferCreateInfo {
3694 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO
3695 const void* pNext /// Pointer to next structure.
Jesse Halla6429252015-11-29 18:59:42 -08003696 VkBufferCreateFlags flags /// Buffer creation flags
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003697 VkDeviceSize size /// Specified in bytes
Jesse Halld27f6aa2015-08-15 17:58:48 -07003698 VkBufferUsageFlags usage /// Buffer usage flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07003699 VkSharingMode sharingMode
Jesse Hall03b6fe12015-11-24 12:44:21 -08003700 u32 queueFamilyIndexCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07003701 const u32* pQueueFamilyIndices
3702}
3703
3704class VkBufferViewCreateInfo {
3705 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO
3706 const void* pNext /// Pointer to next structure.
Jesse Halla6429252015-11-29 18:59:42 -08003707 VkBufferViewCreateFlags flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07003708 VkBuffer buffer
Jesse Halld27f6aa2015-08-15 17:58:48 -07003709 VkFormat format /// Optionally specifies format of elements
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003710 VkDeviceSize offset /// Specified in bytes
3711 VkDeviceSize range /// View size specified in bytes
Jesse Halld27f6aa2015-08-15 17:58:48 -07003712}
3713
3714class VkImageSubresource {
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08003715 VkImageAspectFlagBits aspectMask
Jesse Halld27f6aa2015-08-15 17:58:48 -07003716 u32 mipLevel
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003717 u32 arrayLayer
Jesse Halld27f6aa2015-08-15 17:58:48 -07003718}
3719
3720class VkImageSubresourceRange {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003721 VkImageAspectFlags aspectMask
Jesse Halld27f6aa2015-08-15 17:58:48 -07003722 u32 baseMipLevel
Jesse Hall3fbc8562015-11-29 22:10:52 -08003723 u32 levelCount
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003724 u32 baseArrayLayer
Jesse Hall3fbc8562015-11-29 22:10:52 -08003725 u32 layerCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07003726}
3727
3728class VkMemoryBarrier {
3729 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_MEMORY_BARRIER
3730 const void* pNext /// Pointer to next structure.
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08003731 VkAccessFlags srcAccessMask
3732 VkAccessFlags dstAccessMask
Jesse Halld27f6aa2015-08-15 17:58:48 -07003733}
3734
3735class VkBufferMemoryBarrier {
3736 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER
3737 const void* pNext /// Pointer to next structure.
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08003738 VkAccessFlags srcAccessMask
3739 VkAccessFlags dstAccessMask
Jesse Halld27f6aa2015-08-15 17:58:48 -07003740 u32 srcQueueFamilyIndex /// Queue family to transition ownership from
Jesse Hall3fbc8562015-11-29 22:10:52 -08003741 u32 dstQueueFamilyIndex /// Queue family to transition ownership to
Jesse Halld27f6aa2015-08-15 17:58:48 -07003742 VkBuffer buffer /// Buffer to sync
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003743 VkDeviceSize offset /// Offset within the buffer to sync
3744 VkDeviceSize size /// Amount of bytes to sync
Jesse Halld27f6aa2015-08-15 17:58:48 -07003745}
3746
3747class VkImageMemoryBarrier {
3748 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER
3749 const void* pNext /// Pointer to next structure.
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08003750 VkAccessFlags srcAccessMask
3751 VkAccessFlags dstAccessMask
Jesse Halld27f6aa2015-08-15 17:58:48 -07003752 VkImageLayout oldLayout /// Current layout of the image
3753 VkImageLayout newLayout /// New layout to transition the image to
3754 u32 srcQueueFamilyIndex /// Queue family to transition ownership from
Jesse Hall3fbc8562015-11-29 22:10:52 -08003755 u32 dstQueueFamilyIndex /// Queue family to transition ownership to
Jesse Halld27f6aa2015-08-15 17:58:48 -07003756 VkImage image /// Image to sync
3757 VkImageSubresourceRange subresourceRange /// Subresource range to sync
3758}
3759
3760class VkImageCreateInfo {
3761 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO
3762 const void* pNext /// Pointer to next structure.
Jesse Halla6429252015-11-29 18:59:42 -08003763 VkImageCreateFlags flags /// Image creation flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07003764 VkImageType imageType
3765 VkFormat format
3766 VkExtent3D extent
3767 u32 mipLevels
Jesse Halla15a4bf2015-11-19 22:48:02 -08003768 u32 arrayLayers
Jesse Hall091ed9e2015-11-30 00:55:29 -08003769 VkSampleCountFlagBits samples
Jesse Halld27f6aa2015-08-15 17:58:48 -07003770 VkImageTiling tiling
3771 VkImageUsageFlags usage /// Image usage flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07003772 VkSharingMode sharingMode /// Cross-queue-family sharing mode
Jesse Hall03b6fe12015-11-24 12:44:21 -08003773 u32 queueFamilyIndexCount /// Number of queue families to share across
Jesse Halld27f6aa2015-08-15 17:58:48 -07003774 const u32* pQueueFamilyIndices /// Array of queue family indices to share across
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003775 VkImageLayout initialLayout /// Initial image layout for all subresources
Jesse Halld27f6aa2015-08-15 17:58:48 -07003776}
3777
3778class VkSubresourceLayout {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003779 VkDeviceSize offset /// Specified in bytes
3780 VkDeviceSize size /// Specified in bytes
3781 VkDeviceSize rowPitch /// Specified in bytes
Jesse Hall543a7ff2016-01-08 16:38:30 -08003782 VkDeviceSize arrayPitch /// Specified in bytes
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003783 VkDeviceSize depthPitch /// Specified in bytes
Jesse Halld27f6aa2015-08-15 17:58:48 -07003784}
3785
3786class VkImageViewCreateInfo {
3787 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO
3788 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003789 VkImageViewCreateFlags flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07003790 VkImage image
3791 VkImageViewType viewType
3792 VkFormat format
Jesse Hall65ab5522015-11-30 00:07:16 -08003793 VkComponentMapping components
Jesse Halld27f6aa2015-08-15 17:58:48 -07003794 VkImageSubresourceRange subresourceRange
Jesse Halld27f6aa2015-08-15 17:58:48 -07003795}
3796
3797class VkBufferCopy {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003798 VkDeviceSize srcOffset /// Specified in bytes
Jesse Hall3fbc8562015-11-29 22:10:52 -08003799 VkDeviceSize dstOffset /// Specified in bytes
Jesse Hallb00daad2015-11-29 19:46:20 -08003800 VkDeviceSize size /// Specified in bytes
Jesse Halld27f6aa2015-08-15 17:58:48 -07003801}
3802
Jesse Halla6429252015-11-29 18:59:42 -08003803class VkSparseMemoryBind {
Jesse Hallb00daad2015-11-29 19:46:20 -08003804 VkDeviceSize resourceOffset /// Specified in bytes
3805 VkDeviceSize size /// Specified in bytes
Jesse Hall3fbc8562015-11-29 22:10:52 -08003806 VkDeviceMemory memory
3807 VkDeviceSize memoryOffset /// Specified in bytes
Jesse Halld27f6aa2015-08-15 17:58:48 -07003808 VkSparseMemoryBindFlags flags
3809}
3810
Jesse Halla6429252015-11-29 18:59:42 -08003811class VkSparseImageMemoryBind {
Jesse Halld27f6aa2015-08-15 17:58:48 -07003812 VkImageSubresource subresource
3813 VkOffset3D offset
3814 VkExtent3D extent
Jesse Hall3fbc8562015-11-29 22:10:52 -08003815 VkDeviceMemory memory
3816 VkDeviceSize memoryOffset /// Specified in bytes
Jesse Halld27f6aa2015-08-15 17:58:48 -07003817 VkSparseMemoryBindFlags flags
3818}
3819
Jesse Halla6429252015-11-29 18:59:42 -08003820class VkSparseBufferMemoryBindInfo {
3821 VkBuffer buffer
3822 u32 bindCount
3823 const VkSparseMemoryBind* pBinds
3824}
3825
3826class VkSparseImageOpaqueMemoryBindInfo {
3827 VkImage image
3828 u32 bindCount
3829 const VkSparseMemoryBind* pBinds
3830}
3831
3832class VkSparseImageMemoryBindInfo {
3833 VkImage image
3834 u32 bindCount
3835 const VkSparseMemoryBind* pBinds
3836}
3837
3838class VkBindSparseInfo {
3839 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_BIND_SPARSE_INFO
3840 const void* pNext
3841 u32 waitSemaphoreCount
3842 const VkSemaphore* pWaitSemaphores
3843 u32 numBufferBinds
3844 const VkSparseBufferMemoryBindInfo* pBufferBinds
3845 u32 numImageOpaqueBinds
3846 const VkSparseImageOpaqueMemoryBindInfo* pImageOpaqueBinds
3847 u32 numImageBinds
3848 const VkSparseImageMemoryBindInfo* pImageBinds
3849 u32 signalSemaphoreCount
3850 const VkSemaphore* pSignalSemaphores
3851}
3852
Jesse Hall65ab5522015-11-30 00:07:16 -08003853class VkImageSubresourceLayers {
3854 VkImageAspectFlags aspectMask
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003855 u32 mipLevel
Jesse Halla15a4bf2015-11-19 22:48:02 -08003856 u32 baseArrayLayer
Jesse Hall3fbc8562015-11-29 22:10:52 -08003857 u32 layerCount
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003858}
3859
Jesse Halld27f6aa2015-08-15 17:58:48 -07003860class VkImageCopy {
Jesse Hall65ab5522015-11-30 00:07:16 -08003861 VkImageSubresourceLayers srcSubresource
Jesse Halld27f6aa2015-08-15 17:58:48 -07003862 VkOffset3D srcOffset /// Specified in pixels for both compressed and uncompressed images
Jesse Hall65ab5522015-11-30 00:07:16 -08003863 VkImageSubresourceLayers dstSubresource
Jesse Hall3fbc8562015-11-29 22:10:52 -08003864 VkOffset3D dstOffset /// Specified in pixels for both compressed and uncompressed images
Jesse Halld27f6aa2015-08-15 17:58:48 -07003865 VkExtent3D extent /// Specified in pixels for both compressed and uncompressed images
3866}
3867
3868class VkImageBlit {
Jesse Hall65ab5522015-11-30 00:07:16 -08003869 VkImageSubresourceLayers srcSubresource
Jesse Hall3dd678a2016-01-08 21:52:01 -08003870 VkOffset3D[2] srcOffsets
Jesse Hall65ab5522015-11-30 00:07:16 -08003871 VkImageSubresourceLayers dstSubresource
Jesse Hall3dd678a2016-01-08 21:52:01 -08003872 VkOffset3D[2] dstOffsets
Jesse Halld27f6aa2015-08-15 17:58:48 -07003873}
3874
3875class VkBufferImageCopy {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003876 VkDeviceSize bufferOffset /// Specified in bytes
Jesse Halld27f6aa2015-08-15 17:58:48 -07003877 u32 bufferRowLength /// Specified in texels
3878 u32 bufferImageHeight
Jesse Hall65ab5522015-11-30 00:07:16 -08003879 VkImageSubresourceLayers imageSubresource
Jesse Halld27f6aa2015-08-15 17:58:48 -07003880 VkOffset3D imageOffset /// Specified in pixels for both compressed and uncompressed images
3881 VkExtent3D imageExtent /// Specified in pixels for both compressed and uncompressed images
3882}
3883
3884class VkImageResolve {
Jesse Hall65ab5522015-11-30 00:07:16 -08003885 VkImageSubresourceLayers srcSubresource
Jesse Halld27f6aa2015-08-15 17:58:48 -07003886 VkOffset3D srcOffset
Jesse Hall65ab5522015-11-30 00:07:16 -08003887 VkImageSubresourceLayers dstSubresource
Jesse Hall3fbc8562015-11-29 22:10:52 -08003888 VkOffset3D dstOffset
Jesse Halld27f6aa2015-08-15 17:58:48 -07003889 VkExtent3D extent
3890}
3891
3892class VkShaderModuleCreateInfo {
3893 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO
3894 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003895 VkShaderModuleCreateFlags flags /// Reserved
Jesse Halld27f6aa2015-08-15 17:58:48 -07003896 platform.size_t codeSize /// Specified in bytes
Jesse Halla9bb62b2015-11-21 19:31:56 -08003897 const u32* pCode /// Binary code of size codeSize
Jesse Halld27f6aa2015-08-15 17:58:48 -07003898}
3899
Jesse Halld27f6aa2015-08-15 17:58:48 -07003900class VkDescriptorSetLayoutBinding {
Jesse Hall091ed9e2015-11-30 00:55:29 -08003901 u32 binding
Jesse Halld27f6aa2015-08-15 17:58:48 -07003902 VkDescriptorType descriptorType /// Type of the descriptors in this binding
Jesse Halldba27f72015-11-30 14:25:46 -08003903 u32 descriptorCount /// Number of descriptors in this binding
Jesse Halld27f6aa2015-08-15 17:58:48 -07003904 VkShaderStageFlags stageFlags /// Shader stages this binding is visible to
3905 const VkSampler* pImmutableSamplers /// Immutable samplers (used if descriptor type is SAMPLER or COMBINED_IMAGE_SAMPLER, is either NULL or contains <count> number of elements)
3906}
3907
3908class VkDescriptorSetLayoutCreateInfo {
3909 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO
3910 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003911 VkDescriptorSetLayoutCreateFlags flags
Jesse Hall03b6fe12015-11-24 12:44:21 -08003912 u32 bindingCount /// Number of bindings in the descriptor set layout
Jesse Hall543a7ff2016-01-08 16:38:30 -08003913 const VkDescriptorSetLayoutBinding* pBindings /// Array of descriptor set layout bindings
Jesse Halld27f6aa2015-08-15 17:58:48 -07003914}
3915
Jesse Hall65ab5522015-11-30 00:07:16 -08003916class VkDescriptorPoolSize {
Jesse Halld27f6aa2015-08-15 17:58:48 -07003917 VkDescriptorType type
Jesse Hall03b6fe12015-11-24 12:44:21 -08003918 u32 descriptorCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07003919}
3920
3921class VkDescriptorPoolCreateInfo {
3922 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO
3923 const void* pNext /// Pointer to next structure
Jesse Hallfbf97b02015-11-20 14:17:03 -08003924 VkDescriptorPoolCreateFlags flags
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003925 u32 maxSets
Jesse Hall65ab5522015-11-30 00:07:16 -08003926 u32 poolSizeCount
3927 const VkDescriptorPoolSize* pPoolSizes
Jesse Halld27f6aa2015-08-15 17:58:48 -07003928}
3929
Jesse Hall3fbc8562015-11-29 22:10:52 -08003930class VkDescriptorSetAllocateInfo {
Jesse Hallf4ab2b12015-11-30 16:04:55 -08003931 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO
Jesse Hallfbf97b02015-11-20 14:17:03 -08003932 const void* pNext /// Pointer to next structure
3933 VkDescriptorPool descriptorPool
Jesse Hall03b6fe12015-11-24 12:44:21 -08003934 u32 setCount
Jesse Hallfbf97b02015-11-20 14:17:03 -08003935 const VkDescriptorSetLayout* pSetLayouts
3936}
3937
Jesse Halld27f6aa2015-08-15 17:58:48 -07003938class VkSpecializationMapEntry {
Jesse Hall65ab5522015-11-30 00:07:16 -08003939 u32 constantID /// The SpecConstant ID specified in the BIL
Jesse Halld27f6aa2015-08-15 17:58:48 -07003940 u32 offset /// Offset of the value in the data block
Jesse Hallb00daad2015-11-29 19:46:20 -08003941 platform.size_t size /// Size in bytes of the SpecConstant
Jesse Halld27f6aa2015-08-15 17:58:48 -07003942}
3943
3944class VkSpecializationInfo {
3945 u32 mapEntryCount /// Number of entries in the map
Jesse Hallb00daad2015-11-29 19:46:20 -08003946 const VkSpecializationMapEntry* pMapEntries /// Array of map entries
Jesse Halld27f6aa2015-08-15 17:58:48 -07003947 platform.size_t dataSize /// Size in bytes of pData
3948 const void* pData /// Pointer to SpecConstant data
3949}
3950
3951class VkPipelineShaderStageCreateInfo {
3952 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO
3953 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003954 VkPipelineShaderStageCreateFlags flags
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08003955 VkShaderStageFlagBits stage
3956 VkShaderModule module
3957 const char* pName
Jesse Halld27f6aa2015-08-15 17:58:48 -07003958 const VkSpecializationInfo* pSpecializationInfo
3959}
3960
3961class VkComputePipelineCreateInfo {
3962 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO
3963 const void* pNext /// Pointer to next structure
Jesse Halld27f6aa2015-08-15 17:58:48 -07003964 VkPipelineCreateFlags flags /// Pipeline creation flags
Jesse Halla6429252015-11-29 18:59:42 -08003965 VkPipelineShaderStageCreateInfo stage
Jesse Halld27f6aa2015-08-15 17:58:48 -07003966 VkPipelineLayout layout /// Interface layout of the pipeline
3967 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
3968 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
3969}
3970
3971class VkVertexInputBindingDescription {
Jesse Hallb00daad2015-11-29 19:46:20 -08003972 u32 binding /// Vertex buffer binding id
3973 u32 stride /// Distance between vertices in bytes (0 = no advancement)
Jesse Hall65ab5522015-11-30 00:07:16 -08003974 VkVertexInputRate inputRate /// Rate at which binding is incremented
Jesse Halld27f6aa2015-08-15 17:58:48 -07003975}
3976
3977class VkVertexInputAttributeDescription {
Jesse Hallb00daad2015-11-29 19:46:20 -08003978 u32 location /// location of the shader vertex attrib
3979 u32 binding /// Vertex buffer binding id
3980 VkFormat format /// format of source data
3981 u32 offset /// Offset of first element in bytes from base of vertex
Jesse Halld27f6aa2015-08-15 17:58:48 -07003982}
3983
3984class VkPipelineVertexInputStateCreateInfo {
Jesse Hall03b6fe12015-11-24 12:44:21 -08003985 VkStructureType sType /// Should be VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO
3986 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003987 VkPipelineVertexInputStateCreateFlags flags
Jesse Hall03b6fe12015-11-24 12:44:21 -08003988 u32 vertexBindingDescriptionCount /// number of bindings
Jesse Halld27f6aa2015-08-15 17:58:48 -07003989 const VkVertexInputBindingDescription* pVertexBindingDescriptions
Jesse Hall03b6fe12015-11-24 12:44:21 -08003990 u32 vertexAttributeDescriptionCount /// number of attributes
Jesse Halld27f6aa2015-08-15 17:58:48 -07003991 const VkVertexInputAttributeDescription* pVertexAttributeDescriptions
3992}
3993
3994class VkPipelineInputAssemblyStateCreateInfo {
3995 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO
3996 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003997 VkPipelineInputAssemblyStateCreateFlags flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07003998 VkPrimitiveTopology topology
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003999 VkBool32 primitiveRestartEnable
Jesse Halld27f6aa2015-08-15 17:58:48 -07004000}
4001
4002class VkPipelineTessellationStateCreateInfo {
4003 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO
4004 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08004005 VkPipelineTessellationStateCreateFlags flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07004006 u32 patchControlPoints
4007}
4008
4009class VkPipelineViewportStateCreateInfo {
4010 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO
4011 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08004012 VkPipelineViewportStateCreateFlags flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07004013 u32 viewportCount
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004014 const VkViewport* pViewports
4015 u32 scissorCount
4016 const VkRect2D* pScissors
Jesse Halld27f6aa2015-08-15 17:58:48 -07004017}
4018
Jesse Hall3fbc8562015-11-29 22:10:52 -08004019class VkPipelineRasterizationStateCreateInfo {
Jesse Hall65ab5522015-11-30 00:07:16 -08004020 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO
Jesse Halld27f6aa2015-08-15 17:58:48 -07004021 const void* pNext /// Pointer to next structure
Jesse Hall3fbc8562015-11-29 22:10:52 -08004022 VkPipelineRasterizationStateCreateFlags flags
Jesse Hallae38f732015-11-19 21:32:50 -08004023 VkBool32 depthClampEnable
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004024 VkBool32 rasterizerDiscardEnable
Jesse Hall65ab5522015-11-30 00:07:16 -08004025 VkPolygonMode polygonMode /// optional (GL45)
Jesse Hallc7467b72015-11-29 21:05:26 -08004026 VkCullModeFlags cullMode
Jesse Halld27f6aa2015-08-15 17:58:48 -07004027 VkFrontFace frontFace
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004028 VkBool32 depthBiasEnable
Jesse Halla9bb62b2015-11-21 19:31:56 -08004029 f32 depthBiasConstantFactor
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004030 f32 depthBiasClamp
Jesse Halla9bb62b2015-11-21 19:31:56 -08004031 f32 depthBiasSlopeFactor
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004032 f32 lineWidth
Jesse Halld27f6aa2015-08-15 17:58:48 -07004033}
4034
4035class VkPipelineMultisampleStateCreateInfo {
4036 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO
4037 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08004038 VkPipelineMultisampleStateCreateFlags flags
Jesse Hall091ed9e2015-11-30 00:55:29 -08004039 VkSampleCountFlagBits rasterizationSamples /// Number of samples used for rasterization
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004040 VkBool32 sampleShadingEnable /// optional (GL45)
Jesse Halld27f6aa2015-08-15 17:58:48 -07004041 f32 minSampleShading /// optional (GL45)
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004042 const VkSampleMask* pSampleMask
Jesse Hallacfa5342015-11-19 21:51:33 -08004043 VkBool32 alphaToCoverageEnable
4044 VkBool32 alphaToOneEnable
Jesse Halld27f6aa2015-08-15 17:58:48 -07004045}
4046
4047class VkPipelineColorBlendAttachmentState {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004048 VkBool32 blendEnable
Jesse Hall65ab5522015-11-30 00:07:16 -08004049 VkBlendFactor srcColorBlendFactor
4050 VkBlendFactor dstColorBlendFactor
4051 VkBlendOp colorBlendOp
4052 VkBlendFactor srcAlphaBlendFactor
4053 VkBlendFactor dstAlphaBlendFactor
4054 VkBlendOp alphaBlendOp
4055 VkColorComponentFlags colorWriteMask
Jesse Halld27f6aa2015-08-15 17:58:48 -07004056}
4057
4058class VkPipelineColorBlendStateCreateInfo {
4059 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO
4060 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08004061 VkPipelineColorBlendStateCreateFlags flags
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004062 VkBool32 logicOpEnable
Jesse Halld27f6aa2015-08-15 17:58:48 -07004063 VkLogicOp logicOp
4064 u32 attachmentCount /// # of pAttachments
4065 const VkPipelineColorBlendAttachmentState* pAttachments
Jesse Hallb00daad2015-11-29 19:46:20 -08004066 f32[4] blendConstants
Jesse Halld27f6aa2015-08-15 17:58:48 -07004067}
4068
4069class VkStencilOpState {
Jesse Hall65ab5522015-11-30 00:07:16 -08004070 VkStencilOp failOp
4071 VkStencilOp passOp
4072 VkStencilOp depthFailOp
4073 VkCompareOp compareOp
4074 u32 compareMask
4075 u32 writeMask
4076 u32 reference
Jesse Halld27f6aa2015-08-15 17:58:48 -07004077}
4078
4079class VkPipelineDepthStencilStateCreateInfo {
4080 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO
4081 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08004082 VkPipelineDepthStencilStateCreateFlags flags
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004083 VkBool32 depthTestEnable
4084 VkBool32 depthWriteEnable
Jesse Halld27f6aa2015-08-15 17:58:48 -07004085 VkCompareOp depthCompareOp
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004086 VkBool32 depthBoundsTestEnable /// optional (depth_bounds_test)
4087 VkBool32 stencilTestEnable
Jesse Halld27f6aa2015-08-15 17:58:48 -07004088 VkStencilOpState front
4089 VkStencilOpState back
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004090 f32 minDepthBounds
4091 f32 maxDepthBounds
4092}
4093
4094class VkPipelineDynamicStateCreateInfo {
4095 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO
4096 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08004097 VkPipelineDynamicStateCreateFlags flags
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004098 u32 dynamicStateCount
4099 const VkDynamicState* pDynamicStates
Jesse Halld27f6aa2015-08-15 17:58:48 -07004100}
4101
4102class VkGraphicsPipelineCreateInfo {
Jesse Halla6429252015-11-29 18:59:42 -08004103 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO
4104 const void* pNext /// Pointer to next structure
4105 VkPipelineCreateFlags flags /// Pipeline creation flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07004106 u32 stageCount
Jesse Halla6429252015-11-29 18:59:42 -08004107 const VkPipelineShaderStageCreateInfo* pStages /// One entry for each active shader stage
Jesse Halld27f6aa2015-08-15 17:58:48 -07004108 const VkPipelineVertexInputStateCreateInfo* pVertexInputState
4109 const VkPipelineInputAssemblyStateCreateInfo* pInputAssemblyState
4110 const VkPipelineTessellationStateCreateInfo* pTessellationState
4111 const VkPipelineViewportStateCreateInfo* pViewportState
Jesse Hall3fbc8562015-11-29 22:10:52 -08004112 const VkPipelineRasterizationStateCreateInfo* pRasterizationState
Jesse Halld27f6aa2015-08-15 17:58:48 -07004113 const VkPipelineMultisampleStateCreateInfo* pMultisampleState
4114 const VkPipelineDepthStencilStateCreateInfo* pDepthStencilState
4115 const VkPipelineColorBlendStateCreateInfo* pColorBlendState
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004116 const VkPipelineDynamicStateCreateInfo* pDynamicState
Jesse Halla6429252015-11-29 18:59:42 -08004117 VkPipelineLayout layout /// Interface layout of the pipeline
Jesse Halld27f6aa2015-08-15 17:58:48 -07004118 VkRenderPass renderPass
4119 u32 subpass
Jesse Halla6429252015-11-29 18:59:42 -08004120 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
4121 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 -07004122}
4123
4124class VkPipelineCacheCreateInfo {
Jesse Hallb00daad2015-11-29 19:46:20 -08004125 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO
4126 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08004127 VkPipelineCacheCreateFlags flags
Jesse Hallb00daad2015-11-29 19:46:20 -08004128 platform.size_t initialDataSize /// Size of initial data to populate cache, in bytes
4129 const void* pInitialData /// Initial data to populate cache
Jesse Halld27f6aa2015-08-15 17:58:48 -07004130}
4131
4132class VkPushConstantRange {
4133 VkShaderStageFlags stageFlags /// Which stages use the range
Jesse Hall03b6fe12015-11-24 12:44:21 -08004134 u32 offset /// Start of the range, in bytes
4135 u32 size /// Length of the range, in bytes
Jesse Halld27f6aa2015-08-15 17:58:48 -07004136}
4137
4138class VkPipelineLayoutCreateInfo {
4139 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO
4140 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08004141 VkPipelineLayoutCreateFlags flags
Jesse Hall3dd678a2016-01-08 21:52:01 -08004142 u32 descriptorSetCount /// Number of descriptor sets interfaced by the pipeline
Jesse Halld27f6aa2015-08-15 17:58:48 -07004143 const VkDescriptorSetLayout* pSetLayouts /// Array of <setCount> number of descriptor set layout objects defining the layout of the
4144 u32 pushConstantRangeCount /// Number of push-constant ranges used by the pipeline
4145 const VkPushConstantRange* pPushConstantRanges /// Array of pushConstantRangeCount number of ranges used by various shader stages
4146}
4147
4148class VkSamplerCreateInfo {
4149 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO
4150 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08004151 VkSamplerCreateFlags flags
Jesse Hall23ff73f2015-11-29 14:36:39 -08004152 VkFilter magFilter /// Filter mode for magnification
4153 VkFilter minFilter /// Filter mode for minifiation
4154 VkSamplerMipmapMode mipmapMode /// Mipmap selection mode
4155 VkSamplerAddressMode addressModeU
4156 VkSamplerAddressMode addressModeV
4157 VkSamplerAddressMode addressModeW
Jesse Halld27f6aa2015-08-15 17:58:48 -07004158 f32 mipLodBias
Jesse Hallf9fa9a52016-01-08 16:08:51 -08004159 VkBool32 anisotropyEnable
Jesse Halld27f6aa2015-08-15 17:58:48 -07004160 f32 maxAnisotropy
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004161 VkBool32 compareEnable
Jesse Halld27f6aa2015-08-15 17:58:48 -07004162 VkCompareOp compareOp
4163 f32 minLod
4164 f32 maxLod
4165 VkBorderColor borderColor
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004166 VkBool32 unnormalizedCoordinates
Jesse Halld27f6aa2015-08-15 17:58:48 -07004167}
4168
Jesse Hall3fbc8562015-11-29 22:10:52 -08004169class VkCommandPoolCreateInfo {
4170 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO
Jesse Halld27f6aa2015-08-15 17:58:48 -07004171 const void* pNext /// Pointer to next structure
Jesse Hall3fbc8562015-11-29 22:10:52 -08004172 VkCommandPoolCreateFlags flags /// Command pool creation flags
Jesse Halla6429252015-11-29 18:59:42 -08004173 u32 queueFamilyIndex
Jesse Halld27f6aa2015-08-15 17:58:48 -07004174}
4175
Jesse Hall3fbc8562015-11-29 22:10:52 -08004176class VkCommandBufferAllocateInfo {
Jesse Hallf4ab2b12015-11-30 16:04:55 -08004177 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO
Jesse Halld27f6aa2015-08-15 17:58:48 -07004178 const void* pNext /// Pointer to next structure
Jesse Hall3fbc8562015-11-29 22:10:52 -08004179 VkCommandPool commandPool
4180 VkCommandBufferLevel level
Jesse Hall3dd678a2016-01-08 21:52:01 -08004181 u32 commandBufferCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07004182}
4183
Jesse Hall3dd678a2016-01-08 21:52:01 -08004184class VkCommandBufferInheritanceInfo {
4185 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO
Jesse Halld27f6aa2015-08-15 17:58:48 -07004186 const void* pNext /// Pointer to next structure
Jesse Halld27f6aa2015-08-15 17:58:48 -07004187 VkRenderPass renderPass /// Render pass for secondary command buffers
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004188 u32 subpass
Jesse Halld27f6aa2015-08-15 17:58:48 -07004189 VkFramebuffer framebuffer /// Framebuffer for secondary command buffers
Jesse Hallf4ab2b12015-11-30 16:04:55 -08004190 VkBool32 occlusionQueryEnable
4191 VkQueryControlFlags queryFlags
4192 VkQueryPipelineStatisticFlags pipelineStatistics
Jesse Halld27f6aa2015-08-15 17:58:48 -07004193}
4194
Jesse Hall3dd678a2016-01-08 21:52:01 -08004195class VkCommandBufferBeginInfo {
4196 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO
4197 const void* pNext /// Pointer to next structure
4198 VkCommandBufferUsageFlags flags /// Command buffer usage flags
4199 const VkCommandBufferInheritanceInfo* pInheritanceInfo
4200}
4201
Jesse Halld27f6aa2015-08-15 17:58:48 -07004202class VkRenderPassBeginInfo {
4203 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO
4204 const void* pNext /// Pointer to next structure
4205 VkRenderPass renderPass
4206 VkFramebuffer framebuffer
4207 VkRect2D renderArea
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004208 u32 clearValueCount
4209 const VkClearValue* pClearValues
Jesse Halld27f6aa2015-08-15 17:58:48 -07004210}
4211
4212@union
4213/// Union allowing specification of floating point, integer, or unsigned integer color data. Actual value selected is based on image/attachment being cleared.
4214class VkClearColorValue {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004215 f32[4] float32
4216 s32[4] int32
4217 u32[4] uint32
Jesse Halld27f6aa2015-08-15 17:58:48 -07004218}
4219
4220class VkClearDepthStencilValue {
4221 f32 depth
4222 u32 stencil
4223}
4224
4225@union
4226/// Union allowing specification of color, depth, and stencil color values. Actual value selected is based on attachment being cleared.
4227class VkClearValue {
4228 VkClearColorValue color
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004229 VkClearDepthStencilValue depthStencil
Jesse Halld27f6aa2015-08-15 17:58:48 -07004230}
4231
Jesse Hallae38f732015-11-19 21:32:50 -08004232class VkClearAttachment {
4233 VkImageAspectFlags aspectMask
4234 u32 colorAttachment
4235 VkClearValue clearValue
4236}
4237
Jesse Halld27f6aa2015-08-15 17:58:48 -07004238class VkAttachmentDescription {
Jesse Halla6429252015-11-29 18:59:42 -08004239 VkAttachmentDescriptionFlags flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07004240 VkFormat format
Jesse Hall091ed9e2015-11-30 00:55:29 -08004241 VkSampleCountFlagBits samples
Jesse Halld27f6aa2015-08-15 17:58:48 -07004242 VkAttachmentLoadOp loadOp /// Load op for color or depth data
4243 VkAttachmentStoreOp storeOp /// Store op for color or depth data
4244 VkAttachmentLoadOp stencilLoadOp /// Load op for stencil data
4245 VkAttachmentStoreOp stencilStoreOp /// Store op for stencil data
4246 VkImageLayout initialLayout
4247 VkImageLayout finalLayout
4248}
4249
4250class VkAttachmentReference {
4251 u32 attachment
4252 VkImageLayout layout
4253}
4254
4255class VkSubpassDescription {
Jesse Halld27f6aa2015-08-15 17:58:48 -07004256 VkSubpassDescriptionFlags flags
Jesse Halla6429252015-11-29 18:59:42 -08004257 VkPipelineBindPoint pipelineBindPoint /// Must be VK_PIPELINE_BIND_POINT_GRAPHICS for now
Jesse Hall03b6fe12015-11-24 12:44:21 -08004258 u32 inputAttachmentCount
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004259 const VkAttachmentReference* pInputAttachments
Jesse Hall03b6fe12015-11-24 12:44:21 -08004260 u32 colorAttachmentCount
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004261 const VkAttachmentReference* pColorAttachments
4262 const VkAttachmentReference* pResolveAttachments
Jesse Hallc7467b72015-11-29 21:05:26 -08004263 const VkAttachmentReference* pDepthStencilAttachment
Jesse Hall03b6fe12015-11-24 12:44:21 -08004264 u32 preserveAttachmentCount
Jesse Hall3dd678a2016-01-08 21:52:01 -08004265 const u32* pPreserveAttachments
Jesse Halld27f6aa2015-08-15 17:58:48 -07004266}
4267
4268class VkSubpassDependency {
Jesse Halld27f6aa2015-08-15 17:58:48 -07004269 u32 srcSubpass
Jesse Hall3fbc8562015-11-29 22:10:52 -08004270 u32 dstSubpass
Jesse Halld27f6aa2015-08-15 17:58:48 -07004271 VkPipelineStageFlags srcStageMask
Jesse Hall3fbc8562015-11-29 22:10:52 -08004272 VkPipelineStageFlags dstStageMask
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08004273 VkAccessFlags srcAccessMask
4274 VkAccessFlags dstAccessMask
Jesse Halldc6d36c2015-11-29 19:12:15 -08004275 VkDependencyFlags dependencyFlags
Jesse Halld27f6aa2015-08-15 17:58:48 -07004276}
4277
4278class VkRenderPassCreateInfo {
4279 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO
4280 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08004281 VkRenderPassCreateFlags flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07004282 u32 attachmentCount
4283 const VkAttachmentDescription* pAttachments
4284 u32 subpassCount
4285 const VkSubpassDescription* pSubpasses
4286 u32 dependencyCount
4287 const VkSubpassDependency* pDependencies
4288}
4289
4290class VkEventCreateInfo {
4291 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_EVENT_CREATE_INFO
4292 const void* pNext /// Pointer to next structure
4293 VkEventCreateFlags flags /// Event creation flags
4294}
4295
4296class VkFenceCreateInfo {
4297 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_FENCE_CREATE_INFO
4298 const void* pNext /// Pointer to next structure
4299 VkFenceCreateFlags flags /// Fence creation flags
4300}
4301
4302class VkPhysicalDeviceFeatures {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004303 VkBool32 robustBufferAccess /// out of bounds buffer accesses are well defined
4304 VkBool32 fullDrawIndexUint32 /// full 32-bit range of indices for indexed draw calls
4305 VkBool32 imageCubeArray /// image views which are arrays of cube maps
4306 VkBool32 independentBlend /// blending operations are controlled per-attachment
4307 VkBool32 geometryShader /// geometry stage
4308 VkBool32 tessellationShader /// tessellation control and evaluation stage
4309 VkBool32 sampleRateShading /// per-sample shading and interpolation
Jesse Hall3fbc8562015-11-29 22:10:52 -08004310 VkBool32 dualSrcBlend /// blend operations which take two sources
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004311 VkBool32 logicOp /// logic operations
4312 VkBool32 multiDrawIndirect /// multi draw indirect
Jesse Hall543a7ff2016-01-08 16:38:30 -08004313 VkBool32 drawIndirectFirstInstance
Jesse Hallae38f732015-11-19 21:32:50 -08004314 VkBool32 depthClamp /// depth clamping
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004315 VkBool32 depthBiasClamp /// depth bias clamping
4316 VkBool32 fillModeNonSolid /// point and wireframe fill modes
4317 VkBool32 depthBounds /// depth bounds test
4318 VkBool32 wideLines /// lines with width greater than 1
4319 VkBool32 largePoints /// points with size greater than 1
Jesse Hallfbf97b02015-11-20 14:17:03 -08004320 VkBool32 alphaToOne /// The fragment alpha channel can be forced to maximum representable alpha value
4321 VkBool32 multiViewport
4322 VkBool32 samplerAnisotropy
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004323 VkBool32 textureCompressionETC2 /// ETC texture compression formats
4324 VkBool32 textureCompressionASTC_LDR /// ASTC LDR texture compression formats
4325 VkBool32 textureCompressionBC /// BC1-7 texture compressed formats
Jesse Hall65ab5522015-11-30 00:07:16 -08004326 VkBool32 occlusionQueryPrecise
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004327 VkBool32 pipelineStatisticsQuery /// pipeline statistics query
Jesse Halldc6d36c2015-11-29 19:12:15 -08004328 VkBool32 vertexPipelineStoresAndAtomics
4329 VkBool32 fragmentStoresAndAtomics
4330 VkBool32 shaderTessellationAndGeometryPointSize
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004331 VkBool32 shaderImageGatherExtended /// texture gather with run-time values and independent offsets
4332 VkBool32 shaderStorageImageExtendedFormats /// the extended set of formats can be used for storage images
4333 VkBool32 shaderStorageImageMultisample /// multisample images can be used for storage images
Jesse Halld1af8122015-11-29 23:50:38 -08004334 VkBool32 shaderStorageImageReadWithoutFormat
4335 VkBool32 shaderStorageImageWriteWithoutFormat
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004336 VkBool32 shaderUniformBufferArrayDynamicIndexing /// arrays of uniform buffers can be accessed with dynamically uniform indices
4337 VkBool32 shaderSampledImageArrayDynamicIndexing /// arrays of sampled images can be accessed with dynamically uniform indices
4338 VkBool32 shaderStorageBufferArrayDynamicIndexing /// arrays of storage buffers can be accessed with dynamically uniform indices
4339 VkBool32 shaderStorageImageArrayDynamicIndexing /// arrays of storage images can be accessed with dynamically uniform indices
4340 VkBool32 shaderClipDistance /// clip distance in shaders
4341 VkBool32 shaderCullDistance /// cull distance in shaders
4342 VkBool32 shaderFloat64 /// 64-bit floats (doubles) in shaders
4343 VkBool32 shaderInt64 /// 64-bit integers in shaders
4344 VkBool32 shaderInt16 /// 16-bit integers in shaders
4345 VkBool32 shaderResourceResidency /// shader can use texture operations that return resource residency information (requires sparseNonResident support)
Jesse Hall65ab5522015-11-30 00:07:16 -08004346 VkBool32 shaderResourceMinLod /// shader can use texture operations that specify minimum resource LOD
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004347 VkBool32 sparseBinding /// Sparse resources support: Resource memory can be managed at opaque page level rather than object level
4348 VkBool32 sparseResidencyBuffer /// Sparse resources support: GPU can access partially resident buffers
4349 VkBool32 sparseResidencyImage2D /// Sparse resources support: GPU can access partially resident 2D (non-MSAA non-DepthStencil) images
4350 VkBool32 sparseResidencyImage3D /// Sparse resources support: GPU can access partially resident 3D images
4351 VkBool32 sparseResidency2Samples /// Sparse resources support: GPU can access partially resident MSAA 2D images with 2 samples
4352 VkBool32 sparseResidency4Samples /// Sparse resources support: GPU can access partially resident MSAA 2D images with 4 samples
4353 VkBool32 sparseResidency8Samples /// Sparse resources support: GPU can access partially resident MSAA 2D images with 8 samples
4354 VkBool32 sparseResidency16Samples /// Sparse resources support: GPU can access partially resident MSAA 2D images with 16 samples
4355 VkBool32 sparseResidencyAliased /// Sparse resources support: GPU can correctly access data aliased into multiple locations (opt-in)
Jesse Halld1af8122015-11-29 23:50:38 -08004356 VkBool32 variableMultisampleRate
Jesse Hallf9fa9a52016-01-08 16:08:51 -08004357 VkBool32 inheritedQueries
Jesse Halld27f6aa2015-08-15 17:58:48 -07004358}
4359
4360class VkPhysicalDeviceLimits {
4361 /// resource maximum sizes
4362 u32 maxImageDimension1D /// max 1D image dimension
4363 u32 maxImageDimension2D /// max 2D image dimension
4364 u32 maxImageDimension3D /// max 3D image dimension
4365 u32 maxImageDimensionCube /// max cubemap image dimension
4366 u32 maxImageArrayLayers /// max layers for image arrays
Jesse Hallb00daad2015-11-29 19:46:20 -08004367 u32 maxTexelBufferElements
Jesse Hallfbf97b02015-11-20 14:17:03 -08004368 u32 maxUniformBufferRange /// max uniform buffer size (bytes)
4369 u32 maxStorageBufferRange /// max storage buffer size (bytes)
Jesse Halld27f6aa2015-08-15 17:58:48 -07004370 u32 maxPushConstantsSize /// max size of the push constants pool (bytes)
4371 /// memory limits
4372 u32 maxMemoryAllocationCount /// max number of device memory allocations supported
Jesse Hall091ed9e2015-11-30 00:55:29 -08004373 u32 maxSamplerAllocationCount
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004374 VkDeviceSize bufferImageGranularity /// Granularity (in bytes) at which buffers and images can be bound to adjacent memory for simultaneous usage
4375 VkDeviceSize sparseAddressSpaceSize /// Total address space available for sparse allocations (bytes)
Jesse Halld27f6aa2015-08-15 17:58:48 -07004376 /// descriptor set limits
4377 u32 maxBoundDescriptorSets /// max number of descriptors sets that can be bound to a pipeline
Jesse Halld27f6aa2015-08-15 17:58:48 -07004378 u32 maxPerStageDescriptorSamplers /// max num of samplers allowed per-stage in a descriptor set
4379 u32 maxPerStageDescriptorUniformBuffers /// max num of uniform buffers allowed per-stage in a descriptor set
4380 u32 maxPerStageDescriptorStorageBuffers /// max num of storage buffers allowed per-stage in a descriptor set
4381 u32 maxPerStageDescriptorSampledImages /// max num of sampled images allowed per-stage in a descriptor set
4382 u32 maxPerStageDescriptorStorageImages /// max num of storage images allowed per-stage in a descriptor set
Jesse Halle1b12782015-11-30 11:27:32 -08004383 u32 maxPerStageDescriptorInputAttachments
Jesse Halldba27f72015-11-30 14:25:46 -08004384 u32 maxPerStageResources
Jesse Halld27f6aa2015-08-15 17:58:48 -07004385 u32 maxDescriptorSetSamplers /// max num of samplers allowed in all stages in a descriptor set
4386 u32 maxDescriptorSetUniformBuffers /// max num of uniform buffers allowed in all stages in a descriptor set
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004387 u32 maxDescriptorSetUniformBuffersDynamic /// max num of dynamic uniform buffers allowed in all stages in a descriptor set
Jesse Halld27f6aa2015-08-15 17:58:48 -07004388 u32 maxDescriptorSetStorageBuffers /// max num of storage buffers allowed in all stages in a descriptor set
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004389 u32 maxDescriptorSetStorageBuffersDynamic /// max num of dynamic storage buffers allowed in all stages in a descriptor set
Jesse Halld27f6aa2015-08-15 17:58:48 -07004390 u32 maxDescriptorSetSampledImages /// max num of sampled images allowed in all stages in a descriptor set
4391 u32 maxDescriptorSetStorageImages /// max num of storage images allowed in all stages in a descriptor set
Jesse Halle1b12782015-11-30 11:27:32 -08004392 u32 maxDescriptorSetInputAttachments
Jesse Halld27f6aa2015-08-15 17:58:48 -07004393 /// vertex stage limits
4394 u32 maxVertexInputAttributes /// max num of vertex input attribute slots
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004395 u32 maxVertexInputBindings /// max num of vertex input binding slots
Jesse Halld27f6aa2015-08-15 17:58:48 -07004396 u32 maxVertexInputAttributeOffset /// max vertex input attribute offset added to vertex buffer offset
4397 u32 maxVertexInputBindingStride /// max vertex input binding stride
4398 u32 maxVertexOutputComponents /// max num of output components written by vertex shader
4399 /// tessellation control stage limits
Jesse Hall3fbc8562015-11-29 22:10:52 -08004400 u32 maxTessellationGenerationLevel /// max level supported by tess primitive generator
Jesse Hallae38f732015-11-19 21:32:50 -08004401 u32 maxTessellationPatchSize /// max patch size (vertices)
4402 u32 maxTessellationControlPerVertexInputComponents /// max num of input components per-vertex in TCS
4403 u32 maxTessellationControlPerVertexOutputComponents /// max num of output components per-vertex in TCS
4404 u32 maxTessellationControlPerPatchOutputComponents /// max num of output components per-patch in TCS
4405 u32 maxTessellationControlTotalOutputComponents /// max total num of per-vertex and per-patch output components in TCS
4406 u32 maxTessellationEvaluationInputComponents /// max num of input components per vertex in TES
4407 u32 maxTessellationEvaluationOutputComponents /// max num of output components per vertex in TES
Jesse Halld27f6aa2015-08-15 17:58:48 -07004408 /// geometry stage limits
4409 u32 maxGeometryShaderInvocations /// max invocation count supported in geometry shader
4410 u32 maxGeometryInputComponents /// max num of input components read in geometry stage
4411 u32 maxGeometryOutputComponents /// max num of output components written in geometry stage
4412 u32 maxGeometryOutputVertices /// max num of vertices that can be emitted in geometry stage
4413 u32 maxGeometryTotalOutputComponents /// max total num of components (all vertices) written in geometry stage
4414 /// fragment stage limits
4415 u32 maxFragmentInputComponents /// max num of input compontents read in fragment stage
Jesse Hallfbf97b02015-11-20 14:17:03 -08004416 u32 maxFragmentOutputAttachments /// max num of output attachments written in fragment stage
Jesse Hall3fbc8562015-11-29 22:10:52 -08004417 u32 maxFragmentDualSrcAttachments /// max num of output attachments written when using dual source blending
Jesse Halld27f6aa2015-08-15 17:58:48 -07004418 u32 maxFragmentCombinedOutputResources /// max total num of storage buffers, storage images and output buffers
4419 /// compute stage limits
4420 u32 maxComputeSharedMemorySize /// max total storage size of work group local storage (bytes)
4421 u32[3] maxComputeWorkGroupCount /// max num of compute work groups that may be dispatched by a single command (x,y,z)
4422 u32 maxComputeWorkGroupInvocations /// max total compute invocations in a single local work group
4423 u32[3] maxComputeWorkGroupSize /// max local size of a compute work group (x,y,z)
4424
4425 u32 subPixelPrecisionBits /// num bits of subpixel precision in screen x and y
4426 u32 subTexelPrecisionBits /// num bits of subtexel precision
4427 u32 mipmapPrecisionBits /// num bits of mipmap precision
4428
4429 u32 maxDrawIndexedIndexValue /// max index value for indexed draw calls (for 32-bit indices)
Jesse Halldba27f72015-11-30 14:25:46 -08004430 u32 maxDrawIndirectCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07004431
4432 f32 maxSamplerLodBias /// max absolute sampler level of detail bias
4433 f32 maxSamplerAnisotropy /// max degree of sampler anisotropy
4434
4435 u32 maxViewports /// max number of active viewports
Jesse Halld27f6aa2015-08-15 17:58:48 -07004436 u32[2] maxViewportDimensions /// max viewport dimensions (x,y)
4437 f32[2] viewportBoundsRange /// viewport bounds range (min,max)
4438 u32 viewportSubPixelBits /// num bits of subpixel precision for viewport
4439
Jesse Halldc6d36c2015-11-29 19:12:15 -08004440 platform.size_t minMemoryMapAlignment /// min required alignment of pointers returned by MapMemory (bytes)
4441 VkDeviceSize minTexelBufferOffsetAlignment /// min required alignment for texel buffer offsets (bytes)
4442 VkDeviceSize minUniformBufferOffsetAlignment /// min required alignment for uniform buffer sizes and offsets (bytes)
4443 VkDeviceSize minStorageBufferOffsetAlignment /// min required alignment for storage buffer offsets (bytes)
Jesse Halld27f6aa2015-08-15 17:58:48 -07004444
Jesse Hallfbf97b02015-11-20 14:17:03 -08004445 s32 minTexelOffset /// min texel offset for OpTextureSampleOffset
Jesse Halld27f6aa2015-08-15 17:58:48 -07004446 u32 maxTexelOffset /// max texel offset for OpTextureSampleOffset
Jesse Hallfbf97b02015-11-20 14:17:03 -08004447 s32 minTexelGatherOffset /// min texel offset for OpTextureGatherOffset
Jesse Halld27f6aa2015-08-15 17:58:48 -07004448 u32 maxTexelGatherOffset /// max texel offset for OpTextureGatherOffset
4449 f32 minInterpolationOffset /// furthest negative offset for interpolateAtOffset
4450 f32 maxInterpolationOffset /// furthest positive offset for interpolateAtOffset
4451 u32 subPixelInterpolationOffsetBits /// num of subpixel bits for interpolateAtOffset
4452
4453 u32 maxFramebufferWidth /// max width for a framebuffer
4454 u32 maxFramebufferHeight /// max height for a framebuffer
4455 u32 maxFramebufferLayers /// max layer count for a layered framebuffer
Jesse Hall091ed9e2015-11-30 00:55:29 -08004456 VkSampleCountFlags framebufferColorSampleCounts
4457 VkSampleCountFlags framebufferDepthSampleCounts
4458 VkSampleCountFlags framebufferStencilSampleCounts
4459 VkSampleCountFlags framebufferNoAttachmentSampleCounts
Jesse Halld27f6aa2015-08-15 17:58:48 -07004460 u32 maxColorAttachments /// max num of framebuffer color attachments
4461
Jesse Hall091ed9e2015-11-30 00:55:29 -08004462 VkSampleCountFlags sampledImageColorSampleCounts
4463 VkSampleCountFlags sampledImageIntegerSampleCounts
4464 VkSampleCountFlags sampledImageDepthSampleCounts
4465 VkSampleCountFlags sampledImageStencilSampleCounts
4466 VkSampleCountFlags storageImageSampleCounts
Jesse Halld27f6aa2015-08-15 17:58:48 -07004467 u32 maxSampleMaskWords /// max num of sample mask words
Jesse Hallf9fa9a52016-01-08 16:08:51 -08004468 VkBool32 timestampComputeAndGraphics
Jesse Halld27f6aa2015-08-15 17:58:48 -07004469
Jesse Halla9bb62b2015-11-21 19:31:56 -08004470 f32 timestampPeriod
Jesse Halld27f6aa2015-08-15 17:58:48 -07004471
4472 u32 maxClipDistances /// max number of clip distances
4473 u32 maxCullDistances /// max number of cull distances
4474 u32 maxCombinedClipAndCullDistances /// max combined number of user clipping
4475
Jesse Hallfbf97b02015-11-20 14:17:03 -08004476 u32 discreteQueuePriorities
4477
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004478 f32[2] pointSizeRange /// range (min,max) of supported point sizes
4479 f32[2] lineWidthRange /// range (min,max) of supported line widths
Jesse Halld27f6aa2015-08-15 17:58:48 -07004480 f32 pointSizeGranularity /// granularity of supported point sizes
4481 f32 lineWidthGranularity /// granularity of supported line widths
Jesse Hall03b6fe12015-11-24 12:44:21 -08004482 VkBool32 strictLines
Jesse Hall091ed9e2015-11-30 00:55:29 -08004483 VkBool32 standardSampleLocations
Jesse Halla9bb62b2015-11-21 19:31:56 -08004484
Jesse Hall65ab5522015-11-30 00:07:16 -08004485 VkDeviceSize optimalBufferCopyOffsetAlignment
4486 VkDeviceSize optimalBufferCopyRowPitchAlignment
Jesse Halldba27f72015-11-30 14:25:46 -08004487 VkDeviceSize nonCoherentAtomSize
Jesse Halld27f6aa2015-08-15 17:58:48 -07004488}
4489
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004490class VkPhysicalDeviceSparseProperties {
4491 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 -08004492 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 -07004493 VkBool32 residencyStandard3DBlockShape /// Sparse resources support: GPU will access all 3D sparse resources using the standard block shapes (based on pixel format)
4494 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 -07004495 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
4496}
4497
Jesse Halld27f6aa2015-08-15 17:58:48 -07004498class VkSemaphoreCreateInfo {
4499 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO
4500 const void* pNext /// Pointer to next structure
4501 VkSemaphoreCreateFlags flags /// Semaphore creation flags
4502}
4503
4504class VkQueryPoolCreateInfo {
4505 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO
4506 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08004507 VkQueryPoolCreateFlags flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07004508 VkQueryType queryType
Jesse Hall3dd678a2016-01-08 21:52:01 -08004509 u32 queryCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07004510 VkQueryPipelineStatisticFlags pipelineStatistics /// Optional
4511}
4512
4513class VkFramebufferCreateInfo {
4514 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO
4515 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08004516 VkFramebufferCreateFlags flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07004517 VkRenderPass renderPass
4518 u32 attachmentCount
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004519 const VkImageView* pAttachments
Jesse Halld27f6aa2015-08-15 17:58:48 -07004520 u32 width
4521 u32 height
4522 u32 layers
4523}
4524
Jesse Hall3fbc8562015-11-29 22:10:52 -08004525class VkDrawIndirectCommand {
Jesse Halld27f6aa2015-08-15 17:58:48 -07004526 u32 vertexCount
4527 u32 instanceCount
4528 u32 firstVertex
4529 u32 firstInstance
4530}
4531
Jesse Hall3fbc8562015-11-29 22:10:52 -08004532class VkDrawIndexedIndirectCommand {
Jesse Halld27f6aa2015-08-15 17:58:48 -07004533 u32 indexCount
4534 u32 instanceCount
4535 u32 firstIndex
4536 s32 vertexOffset
4537 u32 firstInstance
4538}
4539
Jesse Hall3fbc8562015-11-29 22:10:52 -08004540class VkDispatchIndirectCommand {
Jesse Halld27f6aa2015-08-15 17:58:48 -07004541 u32 x
4542 u32 y
4543 u32 z
4544}
4545
Jesse Hall54f8d132018-04-18 08:16:59 -07004546class VkBaseOutStructure {
4547 VkStructureType sType
4548 void* pNext
4549}
4550
4551class VkBaseInStructure {
4552 VkStructureType sType
4553 const void* pNext
4554}
4555
Ian Elliott28bd2c32017-10-13 09:21:12 -06004556//@vulkan1_1 structures
Daniel Koch09f7bf92017-10-05 00:26:58 -04004557
4558class VkPhysicalDeviceSubgroupProperties {
4559 VkStructureType sType
4560 void* pNext
4561 u32 subgroupSize
4562 VkShaderStageFlags supportedStages
4563 VkSubgroupFeatureFlags supportedOperations
4564 VkBool32 quadOperationsInAllStages
4565}
4566
4567class VkBindBufferMemoryInfo {
4568 VkStructureType sType
4569 const void* pNext
4570 VkBuffer buffer
4571 VkDeviceMemory memory
4572 VkDeviceSize memoryOffset
4573}
4574
4575class VkBindImageMemoryInfo {
4576 VkStructureType sType
4577 const void* pNext
4578 VkImage image
4579 VkDeviceMemory memory
4580 VkDeviceSize memoryOffset
4581}
4582
4583class VkPhysicalDevice16BitStorageFeatures {
4584 VkStructureType sType
4585 void* pNext
4586 VkBool32 storageBuffer16BitAccess
4587 VkBool32 uniformAndStorageBuffer16BitAccess
4588 VkBool32 storagePushConstant16
4589 VkBool32 storageInputOutput16
4590}
4591
4592class VkMemoryDedicatedRequirements {
4593 VkStructureType sType
4594 void* pNext
4595 VkBool32 prefersDedicatedAllocation
4596 VkBool32 requiresDedicatedAllocation
4597}
4598
4599class VkMemoryDedicatedAllocateInfo {
4600 VkStructureType sType
4601 const void* pNext
4602 VkImage image
4603 VkBuffer buffer
4604}
4605
4606class VkMemoryAllocateFlagsInfo {
4607 VkStructureType sType
4608 const void* pNext
4609 VkMemoryAllocateFlags flags
4610 u32 deviceMask
4611}
4612
4613class VkDeviceGroupRenderPassBeginInfo {
4614 VkStructureType sType
4615 const void* pNext
4616 u32 deviceMask
4617 u32 deviceRenderAreaCount
4618 const VkRect2D* pDeviceRenderAreas
4619}
4620
4621class VkDeviceGroupCommandBufferBeginInfo {
4622 VkStructureType sType
4623 const void* pNext
4624 u32 deviceMask
4625}
4626
4627class VkDeviceGroupSubmitInfo {
4628 VkStructureType sType
4629 const void* pNext
4630 u32 waitSemaphoreCount
4631 const u32* pWaitSemaphoreDeviceIndices
4632 u32 commandBufferCount
4633 const u32* pCommandBufferDeviceMasks
4634 u32 signalSemaphoreCount
4635 const u32* pSignalSemaphoreDeviceIndices
4636}
4637
4638class VkDeviceGroupBindSparseInfo {
4639 VkStructureType sType
4640 const void* pNext
4641 u32 resourceDeviceIndex
4642 u32 memoryDeviceIndex
4643}
4644
4645class VkBindBufferMemoryDeviceGroupInfo {
4646 VkStructureType sType
4647 const void* pNext
4648 u32 deviceIndexCount
4649 const u32* pDeviceIndices
4650}
4651
4652class VkBindImageMemoryDeviceGroupInfo {
4653 VkStructureType sType
4654 const void* pNext
4655 u32 deviceIndexCount
4656 const u32* pDeviceIndices
Jesse Hall8c954d32018-01-17 22:06:20 -08004657 u32 splitInstanceBindRegionCount
4658 const VkRect2D* pSplitInstanceBindRegions
Daniel Koch09f7bf92017-10-05 00:26:58 -04004659}
4660
4661class VkPhysicalDeviceGroupProperties {
4662 VkStructureType sType
4663 void* pNext
4664 u32 physicalDeviceCount
4665 VkPhysicalDevice[VK_MAX_DEVICE_GROUP_SIZE] physicalDevices
4666 VkBool32 subsetAllocation
4667}
4668
4669class VkDeviceGroupDeviceCreateInfo {
4670 VkStructureType sType
4671 const void* pNext
4672 u32 physicalDeviceCount
4673 const VkPhysicalDevice* pPhysicalDevices
4674}
4675
4676class VkBufferMemoryRequirementsInfo2 {
4677 VkStructureType sType
4678 const void* pNext
4679 VkBuffer buffer
4680}
4681
4682class VkImageMemoryRequirementsInfo2 {
4683 VkStructureType sType
4684 const void* pNext
4685 VkImage image
4686}
4687
4688class VkImageSparseMemoryRequirementsInfo2 {
4689 VkStructureType sType
4690 const void* pNext
4691 VkImage image
4692}
4693
4694class VkMemoryRequirements2 {
4695 VkStructureType sType
4696 void* pNext
4697 VkMemoryRequirements memoryRequirements
4698}
4699
4700class VkSparseImageMemoryRequirements2 {
4701 VkStructureType sType
4702 void* pNext
4703 VkSparseImageMemoryRequirements memoryRequirements
4704}
4705
4706class VkPhysicalDeviceFeatures2 {
4707 VkStructureType sType
4708 void* pNext
4709 VkPhysicalDeviceFeatures features
4710}
4711
4712class VkPhysicalDeviceProperties2 {
4713 VkStructureType sType
4714 void* pNext
4715 VkPhysicalDeviceProperties properties
4716}
4717
4718class VkFormatProperties2 {
4719 VkStructureType sType
4720 void* pNext
4721 VkFormatProperties formatProperties
4722}
4723
4724class VkImageFormatProperties2 {
4725 VkStructureType sType
4726 void* pNext
4727 VkImageFormatProperties imageFormatProperties
4728}
4729
4730class VkPhysicalDeviceImageFormatInfo2 {
4731 VkStructureType sType
4732 const void* pNext
4733 VkFormat format
4734 VkImageType type
4735 VkImageTiling tiling
4736 VkImageUsageFlags usage
4737 VkImageCreateFlags flags
4738}
4739
4740class VkQueueFamilyProperties2 {
4741 VkStructureType sType
4742 void* pNext
4743 VkQueueFamilyProperties queueFamilyProperties
4744}
4745
4746class VkPhysicalDeviceMemoryProperties2 {
4747 VkStructureType sType
4748 void* pNext
4749 VkPhysicalDeviceMemoryProperties memoryProperties
4750}
4751
4752class VkSparseImageFormatProperties2 {
4753 VkStructureType sType
4754 void* pNext
4755 VkSparseImageFormatProperties properties
4756}
4757
4758class VkPhysicalDeviceSparseImageFormatInfo2 {
4759 VkStructureType sType
4760 const void* pNext
4761 VkFormat format
4762 VkImageType type
4763 VkSampleCountFlagBits samples
4764 VkImageUsageFlags usage
4765 VkImageTiling tiling
4766}
4767
4768class VkPhysicalDevicePointClippingProperties {
4769 VkStructureType sType
4770 void* pNext
4771 VkPointClippingBehavior pointClippingBehavior
4772}
4773
4774class VkInputAttachmentAspectReference {
4775 u32 subpass
4776 u32 inputAttachmentIndex
4777 VkImageAspectFlags aspectMask
4778}
4779
4780class VkRenderPassInputAttachmentAspectCreateInfo {
4781 VkStructureType sType
4782 const void* pNext
4783 u32 aspectReferenceCount
4784 const VkInputAttachmentAspectReference* pAspectReferences
4785}
4786
4787class VkImageViewUsageCreateInfo {
4788 VkStructureType sType
4789 const void* pNext
4790 VkImageUsageFlags usage
4791}
4792
4793class VkPipelineTessellationDomainOriginStateCreateInfo {
4794 VkStructureType sType
4795 const void* pNext
4796 VkTessellationDomainOrigin domainOrigin
4797}
4798
4799class VkRenderPassMultiviewCreateInfo {
4800 VkStructureType sType
4801 const void* pNext
4802 u32 subpassCount
4803 const u32* pViewMasks
4804 u32 dependencyCount
4805 const s32* pViewOffsets
4806 u32 correlationMaskCount
4807 const u32* pCorrelationMasks
4808}
4809
4810class VkPhysicalDeviceMultiviewFeatures {
4811 VkStructureType sType
4812 void* pNext
4813 VkBool32 multiview
4814 VkBool32 multiviewGeometryShader
4815 VkBool32 multiviewTessellationShader
4816}
4817
4818class VkPhysicalDeviceMultiviewProperties {
4819 VkStructureType sType
4820 void* pNext
4821 u32 maxMultiviewViewCount
4822 u32 maxMultiviewInstanceIndex
4823}
4824
4825class VkPhysicalDeviceVariablePointerFeatures {
4826 VkStructureType sType
4827 void* pNext
4828 VkBool32 variablePointersStorageBuffer
4829 VkBool32 variablePointers
4830}
4831
4832class VkPhysicalDeviceProtectedMemoryFeatures {
4833 VkStructureType sType
4834 void* pNext
4835 VkBool32 protectedMemory
4836}
4837
4838class VkPhysicalDeviceProtectedMemoryProperties {
4839 VkStructureType sType
4840 void* pNext
4841 VkBool32 protectedNoFault
4842}
4843
4844class VkDeviceQueueInfo2 {
4845 VkStructureType sType
4846 const void* pNext
4847 VkDeviceQueueCreateFlags flags
4848 u32 queueFamilyIndex
4849 u32 queueIndex
4850}
4851
4852class VkProtectedSubmitInfo {
4853 VkStructureType sType
4854 const void* pNext
4855 VkBool32 protectedSubmit
4856}
4857
4858class VkSamplerYcbcrConversionCreateInfo {
4859 VkStructureType sType
4860 const void* pNext
4861 VkFormat format
4862 VkSamplerYcbcrModelConversion ycbcrModel
4863 VkSamplerYcbcrRange ycbcrRange
4864 VkComponentMapping components
4865 VkChromaLocation xChromaOffset
4866 VkChromaLocation yChromaOffset
4867 VkFilter chromaFilter
4868 VkBool32 forceExplicitReconstruction
4869}
4870
4871class VkSamplerYcbcrConversionInfo {
4872 VkStructureType sType
4873 const void* pNext
4874 VkSamplerYcbcrConversion conversion
4875}
4876
4877class VkBindImagePlaneMemoryInfo {
4878 VkStructureType sType
4879 const void* pNext
4880 VkImageAspectFlagBits planeAspect
4881}
4882
4883class VkImagePlaneMemoryRequirementsInfo {
4884 VkStructureType sType
4885 const void* pNext
4886 VkImageAspectFlagBits planeAspect
4887}
4888
4889class VkPhysicalDeviceSamplerYcbcrConversionFeatures {
4890 VkStructureType sType
4891 void* pNext
4892 VkBool32 samplerYcbcrConversion
4893}
4894
4895class VkSamplerYcbcrConversionImageFormatProperties {
4896 VkStructureType sType
4897 void* pNext
4898 u32 combinedImageSamplerDescriptorCount
4899}
4900
4901class VkDescriptorUpdateTemplateEntry {
4902 u32 dstBinding
4903 u32 dstArrayElement
4904 u32 descriptorCount
4905 VkDescriptorType descriptorType
4906 platform.size_t offset
4907 platform.size_t stride
4908}
4909
4910class VkDescriptorUpdateTemplateCreateInfo {
4911 VkStructureType sType
4912 void* pNext
4913 VkDescriptorUpdateTemplateCreateFlags flags
4914 u32 descriptorUpdateEntryCount
4915 const VkDescriptorUpdateTemplateEntry* pDescriptorUpdateEntries
4916 VkDescriptorUpdateTemplateType templateType
4917 VkDescriptorSetLayout descriptorSetLayout
4918 VkPipelineBindPoint pipelineBindPoint
4919 VkPipelineLayout pipelineLayout
4920 u32 set
4921}
4922
4923class VkExternalMemoryProperties {
4924 VkExternalMemoryFeatureFlags externalMemoryFeatures
4925 VkExternalMemoryHandleTypeFlags exportFromImportedHandleTypes
4926 VkExternalMemoryHandleTypeFlags compatibleHandleTypes
4927}
4928
4929class VkPhysicalDeviceExternalImageFormatInfo {
4930 VkStructureType sType
4931 const void* pNext
4932 VkExternalMemoryHandleTypeFlagBits handleType
4933}
4934
4935class VkExternalImageFormatProperties {
4936 VkStructureType sType
4937 void* pNext
4938 VkExternalMemoryProperties externalMemoryProperties
4939}
4940
4941class VkPhysicalDeviceExternalBufferInfo {
4942 VkStructureType sType
4943 const void* pNext
4944 VkBufferCreateFlags flags
4945 VkBufferUsageFlags usage
4946 VkExternalMemoryHandleTypeFlagBits handleType
4947}
4948
4949class VkExternalBufferProperties {
4950 VkStructureType sType
4951 void* pNext
4952 VkExternalMemoryProperties externalMemoryProperties
4953}
4954
4955class VkPhysicalDeviceIDProperties {
4956 VkStructureType sType
4957 void* pNext
4958 u8[VK_UUID_SIZE] deviceUUID
4959 u8[VK_UUID_SIZE] driverUUID
4960 u8[VK_LUID_SIZE] deviceLUID
4961 u32 deviceNodeMask
4962 VkBool32 deviceLUIDValid
4963}
4964
4965class VkExternalMemoryImageCreateInfo {
4966 VkStructureType sType
4967 const void* pNext
4968 VkExternalMemoryHandleTypeFlags handleTypes
4969}
4970
4971class VkExternalMemoryBufferCreateInfo {
4972 VkStructureType sType
4973 const void* pNext
4974 VkExternalMemoryHandleTypeFlags handleTypes
4975}
4976
4977class VkExportMemoryAllocateInfo {
4978 VkStructureType sType
4979 const void* pNext
4980 VkExternalMemoryHandleTypeFlags handleTypes
4981}
4982
4983class VkPhysicalDeviceExternalFenceInfo {
4984 VkStructureType sType
4985 const void* pNext
4986 VkExternalFenceHandleTypeFlagBits handleType
4987}
4988
4989class VkExternalFenceProperties {
4990 VkStructureType sType
4991 void* pNext
4992 VkExternalFenceHandleTypeFlags exportFromImportedHandleTypes
4993 VkExternalFenceHandleTypeFlags compatibleHandleTypes
4994 VkExternalFenceFeatureFlags externalFenceFeatures
4995}
4996
4997class VkExportFenceCreateInfo {
4998 VkStructureType sType
4999 const void* pNext
5000 VkExternalFenceHandleTypeFlags handleTypes
5001}
5002
5003class VkExportSemaphoreCreateInfo {
5004 VkStructureType sType
5005 const void* pNext
5006 VkExternalSemaphoreHandleTypeFlags handleTypes
5007}
5008
5009class VkPhysicalDeviceExternalSemaphoreInfo {
5010 VkStructureType sType
5011 const void* pNext
5012 VkExternalSemaphoreHandleTypeFlagBits handleType
5013}
5014
5015class VkExternalSemaphoreProperties {
5016 VkStructureType sType
5017 void* pNext
5018 VkExternalSemaphoreHandleTypeFlags exportFromImportedHandleTypes
5019 VkExternalSemaphoreHandleTypeFlags compatibleHandleTypes
5020 VkExternalSemaphoreFeatureFlags externalSemaphoreFeatures
5021}
5022
5023class VkPhysicalDeviceMaintenance3Properties {
5024 VkStructureType sType
5025 void* pNext
5026 u32 maxPerSetDescriptors
5027 VkDeviceSize maxMemoryAllocationSize
5028}
5029
5030class VkDescriptorSetLayoutSupport {
5031 VkStructureType sType
5032 void* pNext
5033 VkBool32 supported
5034}
5035
5036class VkPhysicalDeviceShaderDrawParameterFeatures {
5037 VkStructureType sType
5038 void* pNext
5039 VkBool32 shaderDrawParameters
5040}
5041
5042
Jesse Hallad250842017-03-10 18:35:38 -08005043@extension("VK_KHR_surface") // 1
Jesse Hallb00daad2015-11-29 19:46:20 -08005044class VkSurfaceCapabilitiesKHR {
Jesse Hall1356b0d2015-11-23 17:24:58 -08005045 u32 minImageCount
5046 u32 maxImageCount
5047 VkExtent2D currentExtent
5048 VkExtent2D minImageExtent
5049 VkExtent2D maxImageExtent
Jesse Hallf4ab2b12015-11-30 16:04:55 -08005050 u32 maxImageArrayLayers
Jesse Hall1356b0d2015-11-23 17:24:58 -08005051 VkSurfaceTransformFlagsKHR supportedTransforms
Jesse Hallf4ab2b12015-11-30 16:04:55 -08005052 VkSurfaceTransformFlagBitsKHR currentTransform
Jesse Halla6429252015-11-29 18:59:42 -08005053 VkCompositeAlphaFlagsKHR supportedCompositeAlpha
Jesse Hall1356b0d2015-11-23 17:24:58 -08005054 VkImageUsageFlags supportedUsageFlags
Michael Lentine88594d72015-11-12 12:49:45 -08005055}
5056
Jesse Hallad250842017-03-10 18:35:38 -08005057@extension("VK_KHR_surface") // 1
Michael Lentine88594d72015-11-12 12:49:45 -08005058class VkSurfaceFormatKHR {
Jesse Hall1356b0d2015-11-23 17:24:58 -08005059 VkFormat format
5060 VkColorSpaceKHR colorSpace
Michael Lentine88594d72015-11-12 12:49:45 -08005061}
5062
Jesse Hallad250842017-03-10 18:35:38 -08005063@extension("VK_KHR_swapchain") // 2
Michael Lentine88594d72015-11-12 12:49:45 -08005064class VkSwapchainCreateInfoKHR {
Jesse Hall1356b0d2015-11-23 17:24:58 -08005065 VkStructureType sType
5066 const void* pNext
Jesse Hallf4ab2b12015-11-30 16:04:55 -08005067 VkSwapchainCreateFlagsKHR flags
Jesse Hall1356b0d2015-11-23 17:24:58 -08005068 VkSurfaceKHR surface
5069 u32 minImageCount
5070 VkFormat imageFormat
5071 VkColorSpaceKHR imageColorSpace
5072 VkExtent2D imageExtent
Jesse Hallf4ab2b12015-11-30 16:04:55 -08005073 u32 imageArrayLayers
5074 VkImageUsageFlags imageUsage
Jesse Hall1356b0d2015-11-23 17:24:58 -08005075 VkSharingMode sharingMode
Jesse Hall03b6fe12015-11-24 12:44:21 -08005076 u32 queueFamilyIndexCount
Jesse Hall1356b0d2015-11-23 17:24:58 -08005077 const u32* pQueueFamilyIndices
Jesse Hallf4ab2b12015-11-30 16:04:55 -08005078 VkSurfaceTransformFlagBitsKHR preTransform
5079 VkCompositeAlphaFlagBitsKHR compositeAlpha
Jesse Hall1356b0d2015-11-23 17:24:58 -08005080 VkPresentModeKHR presentMode
Jesse Hall1356b0d2015-11-23 17:24:58 -08005081 VkBool32 clipped
Jesse Hallf4ab2b12015-11-30 16:04:55 -08005082 VkSwapchainKHR oldSwapchain
Michael Lentine88594d72015-11-12 12:49:45 -08005083}
5084
Jesse Hallad250842017-03-10 18:35:38 -08005085@extension("VK_KHR_swapchain") // 2
Michael Lentine88594d72015-11-12 12:49:45 -08005086class VkPresentInfoKHR {
Jesse Hall1356b0d2015-11-23 17:24:58 -08005087 VkStructureType sType
5088 const void* pNext
Jesse Hallb00daad2015-11-29 19:46:20 -08005089 u32 waitSemaphoreCount
5090 const VkSemaphore* pWaitSemaphores
Jesse Hall1356b0d2015-11-23 17:24:58 -08005091 u32 swapchainCount
Jesse Hall03b6fe12015-11-24 12:44:21 -08005092 const VkSwapchainKHR* pSwapchains
Jesse Hallf4ab2b12015-11-30 16:04:55 -08005093 const u32* pImageIndices
Jesse Halle1b12782015-11-30 11:27:32 -08005094 VkResult* pResults
Michael Lentine88594d72015-11-12 12:49:45 -08005095}
5096
Ian Elliott28bd2c32017-10-13 09:21:12 -06005097@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04005098@extension("VK_KHR_swapchain") // 2
5099class VkImageSwapchainCreateInfoKHR {
5100 VkStructureType sType
5101 const void* pNext
5102 VkSwapchainKHR swapchain
5103}
5104
Ian Elliott28bd2c32017-10-13 09:21:12 -06005105@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04005106@extension("VK_KHR_swapchain") // 2
5107class VkBindImageMemorySwapchainInfoKHR {
5108 VkStructureType sType
5109 const void* pNext
5110 VkSwapchainKHR swapchain
5111 u32 imageIndex
5112}
5113
Ian Elliott28bd2c32017-10-13 09:21:12 -06005114@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04005115@extension("VK_KHR_swapchain") // 2
5116class VkAcquireNextImageInfoKHR {
5117 VkStructureType sType
5118 const void* pNext
5119 VkSwapchainKHR swapchain
5120 u64 timeout
5121 VkSemaphore semaphore
5122 VkFence fence
5123 u32 deviceMask
5124}
5125
Ian Elliott28bd2c32017-10-13 09:21:12 -06005126@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04005127@extension("VK_KHR_swapchain") // 2
5128class VkDeviceGroupPresentCapabilitiesKHR {
5129 VkStructureType sType
5130 const void* pNext
5131 u32[VK_MAX_DEVICE_GROUP_SIZE] presentMask
5132 VkDeviceGroupPresentModeFlagsKHR modes
5133}
5134
Ian Elliott28bd2c32017-10-13 09:21:12 -06005135@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04005136@extension("VK_KHR_swapchain") // 2
5137class VkDeviceGroupPresentInfoKHR {
5138 VkStructureType sType
5139 const void* pNext
5140 u32 swapchainCount
5141 const u32* pDeviceMasks
5142 VkDeviceGroupPresentModeFlagBitsKHR mode
5143}
5144
Ian Elliott28bd2c32017-10-13 09:21:12 -06005145@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04005146@extension("VK_KHR_swapchain") // 2
5147class VkDeviceGroupSwapchainCreateInfoKHR {
5148 VkStructureType sType
5149 const void* pNext
5150 VkDeviceGroupPresentModeFlagsKHR modes
5151}
5152
Jesse Hallad250842017-03-10 18:35:38 -08005153@extension("VK_KHR_display") // 3
Jesse Hall1356b0d2015-11-23 17:24:58 -08005154class VkDisplayPropertiesKHR {
5155 VkDisplayKHR display
5156 const char* displayName
5157 VkExtent2D physicalDimensions
5158 VkExtent2D physicalResolution
5159 VkSurfaceTransformFlagsKHR supportedTransforms
Jesse Hall1356b0d2015-11-23 17:24:58 -08005160 VkBool32 planeReorderPossible
Jesse Halla6429252015-11-29 18:59:42 -08005161 VkBool32 persistentContent
Michael Lentine88594d72015-11-12 12:49:45 -08005162}
5163
Jesse Hallad250842017-03-10 18:35:38 -08005164@extension("VK_KHR_display") // 3
Jesse Halla6429252015-11-29 18:59:42 -08005165class VkDisplayModeParametersKHR {
Jesse Hall1356b0d2015-11-23 17:24:58 -08005166 VkExtent2D visibleRegion
Jesse Halla6429252015-11-29 18:59:42 -08005167 u32 refreshRate
Michael Lentine88594d72015-11-12 12:49:45 -08005168}
Jesse Halld27f6aa2015-08-15 17:58:48 -07005169
Jesse Hallad250842017-03-10 18:35:38 -08005170@extension("VK_KHR_display") // 3
Jesse Hall1356b0d2015-11-23 17:24:58 -08005171class VkDisplayModePropertiesKHR {
5172 VkDisplayModeKHR displayMode
Jesse Halla6429252015-11-29 18:59:42 -08005173 VkDisplayModeParametersKHR parameters
Jesse Hall1356b0d2015-11-23 17:24:58 -08005174}
5175
Jesse Hallad250842017-03-10 18:35:38 -08005176@extension("VK_KHR_display") // 3
Jesse Hall1356b0d2015-11-23 17:24:58 -08005177class VkDisplayModeCreateInfoKHR {
5178 VkStructureType sType
5179 const void* pNext
Jesse Hall9ba8bc82015-11-30 16:22:16 -08005180 VkDisplayModeCreateFlagsKHR flags
Jesse Halla6429252015-11-29 18:59:42 -08005181 VkDisplayModeParametersKHR parameters
Jesse Hall1356b0d2015-11-23 17:24:58 -08005182}
5183
Jesse Hallad250842017-03-10 18:35:38 -08005184@extension("VK_KHR_display") // 3
Jesse Hall1356b0d2015-11-23 17:24:58 -08005185class VkDisplayPlanePropertiesKHR {
Jesse Halla6429252015-11-29 18:59:42 -08005186 VkDisplayKHR currentDisplay
5187 u32 currentStackIndex
5188}
5189
Jesse Hallad250842017-03-10 18:35:38 -08005190@extension("VK_KHR_display") // 3
Jesse Halla6429252015-11-29 18:59:42 -08005191class VkDisplayPlaneCapabilitiesKHR {
Jesse Hall1356b0d2015-11-23 17:24:58 -08005192 VkDisplayPlaneAlphaFlagsKHR supportedAlpha
5193 VkOffset2D minSrcPosition
5194 VkOffset2D maxSrcPosition
5195 VkExtent2D minSrcExtent
5196 VkExtent2D maxSrcExtent
5197 VkOffset2D minDstPosition
5198 VkOffset2D maxDstPosition
5199 VkExtent2D minDstExtent
5200 VkExtent2D maxDstExtent
5201}
5202
Jesse Hallad250842017-03-10 18:35:38 -08005203@extension("VK_KHR_display") // 3
Jesse Halla6429252015-11-29 18:59:42 -08005204class VkDisplaySurfaceCreateInfoKHR {
Jesse Hall1356b0d2015-11-23 17:24:58 -08005205 VkStructureType sType
5206 const void* pNext
Jesse Hallf4ab2b12015-11-30 16:04:55 -08005207 VkDisplaySurfaceCreateFlagsKHR flags
Jesse Hall1356b0d2015-11-23 17:24:58 -08005208 VkDisplayModeKHR displayMode
5209 u32 planeIndex
5210 u32 planeStackIndex
Jesse Hallf4ab2b12015-11-30 16:04:55 -08005211 VkSurfaceTransformFlagBitsKHR transform
Jesse Hall1356b0d2015-11-23 17:24:58 -08005212 f32 globalAlpha
Jesse Hallf4ab2b12015-11-30 16:04:55 -08005213 VkDisplayPlaneAlphaFlagBitsKHR alphaMode
5214 VkExtent2D imageExtent
Jesse Hall1356b0d2015-11-23 17:24:58 -08005215}
5216
Jesse Hallad250842017-03-10 18:35:38 -08005217@extension("VK_KHR_display_swapchain") // 4
Jesse Hall1356b0d2015-11-23 17:24:58 -08005218class VkDisplayPresentInfoKHR {
5219 VkStructureType sType
5220 const void* pNext
5221 VkRect2D srcRect
5222 VkRect2D dstRect
Jesse Halla6429252015-11-29 18:59:42 -08005223 VkBool32 persistent
Jesse Hall1356b0d2015-11-23 17:24:58 -08005224}
5225
Jesse Hallad250842017-03-10 18:35:38 -08005226@extension("VK_KHR_xlib_surface") // 5
Jesse Hallf9fa9a52016-01-08 16:08:51 -08005227class VkXlibSurfaceCreateInfoKHR {
5228 VkStructureType sType
5229 const void* pNext
5230 VkXlibSurfaceCreateFlagsKHR flags
5231 platform.Display* dpy
5232 platform.Window window
5233}
5234
Jesse Hallad250842017-03-10 18:35:38 -08005235@extension("VK_KHR_xcb_surface") // 6
Jesse Hallf9fa9a52016-01-08 16:08:51 -08005236class VkXcbSurfaceCreateInfoKHR {
5237 VkStructureType sType
5238 const void* pNext
5239 VkXcbSurfaceCreateFlagsKHR flags
5240 platform.xcb_connection_t* connection
5241 platform.xcb_window_t window
5242}
5243
Jesse Hallad250842017-03-10 18:35:38 -08005244@extension("VK_KHR_wayland_surface") // 7
Jesse Hallf9fa9a52016-01-08 16:08:51 -08005245class VkWaylandSurfaceCreateInfoKHR {
5246 VkStructureType sType
5247 const void* pNext
5248 VkWaylandSurfaceCreateFlagsKHR flags
5249 platform.wl_display* display
5250 platform.wl_surface* surface
5251}
5252
Jesse Hallad250842017-03-10 18:35:38 -08005253@extension("VK_KHR_mir_surface") // 8
Jesse Hallf9fa9a52016-01-08 16:08:51 -08005254class VkMirSurfaceCreateInfoKHR {
5255 VkStructureType sType
5256 const void* pNext
5257 VkMirSurfaceCreateFlagsKHR flags
5258 platform.MirConnection* connection
5259 platform.MirSurface* mirSurface
5260}
5261
Jesse Hallad250842017-03-10 18:35:38 -08005262@extension("VK_KHR_android_surface") // 9
Jesse Hallf9fa9a52016-01-08 16:08:51 -08005263class VkAndroidSurfaceCreateInfoKHR {
5264 VkStructureType sType
5265 const void* pNext
5266 VkAndroidSurfaceCreateFlagsKHR flags
5267 platform.ANativeWindow* window
5268}
5269
Jesse Hallad250842017-03-10 18:35:38 -08005270@extension("VK_KHR_win32_surface") // 10
Jesse Hallf9fa9a52016-01-08 16:08:51 -08005271class VkWin32SurfaceCreateInfoKHR {
5272 VkStructureType sType
5273 const void* pNext
5274 VkWin32SurfaceCreateFlagsKHR flags
5275 platform.HINSTANCE hinstance
5276 platform.HWND hwnd
5277}
5278
Jesse Hallad250842017-03-10 18:35:38 -08005279@extension("VK_ANDROID_native_buffer") // 11
Jesse Halld1abd742017-02-09 21:45:51 -08005280@internal class Gralloc1Usage {
5281 u64 consumer
5282 u64 producer
5283}
5284
Jesse Hallad250842017-03-10 18:35:38 -08005285@extension("VK_ANDROID_native_buffer") // 11
Chia-I Wub262ddc2016-03-22 07:38:20 +08005286class VkNativeBufferANDROID {
5287 VkStructureType sType
5288 const void* pNext
5289 platform.buffer_handle_t handle
Jesse Halld1abd742017-02-09 21:45:51 -08005290 s32 stride
5291 s32 format
5292 s32 usage
5293 Gralloc1Usage usage2
Chia-I Wub262ddc2016-03-22 07:38:20 +08005294}
5295
Jesse Hallad250842017-03-10 18:35:38 -08005296@extension("VK_ANDROID_native_buffer") // 11
Chris Forbes8e4438b2016-12-07 16:26:49 +13005297class VkSwapchainImageCreateInfoANDROID {
5298 VkStructureType sType
5299 const void* pNext
Chris Forbes134d9582017-01-12 14:26:37 +13005300 VkSwapchainImageUsageFlagsANDROID flags
Chris Forbes48853712017-01-12 14:09:33 +13005301}
Ian Elliott4c8bb2a2016-12-29 11:07:26 -07005302
Jesse Hallad250842017-03-10 18:35:38 -08005303@extension("VK_ANDROID_native_buffer") // 11
Chris Forbes1d4e5542017-02-15 19:38:50 +13005304class VkPhysicalDevicePresentationPropertiesANDROID {
5305 VkStructureType sType
5306 void* pNext
5307 VkBool32 sharedImage
5308}
5309
Jesse Hallad250842017-03-10 18:35:38 -08005310@extension("VK_EXT_debug_report") // 12
Jesse Hall715b86a2016-01-16 16:34:29 -08005311class VkDebugReportCallbackCreateInfoEXT {
5312 VkStructureType sType
5313 const void* pNext
5314 VkDebugReportFlagsEXT flags
5315 PFN_vkDebugReportCallbackEXT pfnCallback
5316 void* pUserData
5317}
5318
Jesse Hallad250842017-03-10 18:35:38 -08005319@extension("VK_AMD_rasterization_order") // 19
Jesse Hall26763382016-05-20 07:13:52 -07005320class VkPipelineRasterizationStateRasterizationOrderAMD {
5321 VkStructureType sType
5322 const void* pNext
5323 VkRasterizationOrderAMD rasterizationOrder
5324}
5325
Jesse Hallad250842017-03-10 18:35:38 -08005326@extension("VK_EXT_debug_marker") // 23
Jesse Hall26763382016-05-20 07:13:52 -07005327class VkDebugMarkerObjectNameInfoEXT {
5328 VkStructureType sType
5329 const void* pNext
5330 VkDebugReportObjectTypeEXT objectType
5331 u64 object
5332 const char* pObjectName
5333}
5334
Jesse Hallad250842017-03-10 18:35:38 -08005335@extension("VK_EXT_debug_marker") // 23
Jesse Hall26763382016-05-20 07:13:52 -07005336class VkDebugMarkerObjectTagInfoEXT {
5337 VkStructureType sType
5338 const void* pNext
5339 VkDebugReportObjectTypeEXT objectType
5340 u64 object
5341 u64 tagName
5342 platform.size_t tagSize
5343 const void* pTag
5344}
5345
Jesse Hallad250842017-03-10 18:35:38 -08005346@extension("VK_EXT_debug_marker") // 23
Jesse Hall26763382016-05-20 07:13:52 -07005347class VkDebugMarkerMarkerInfoEXT {
5348 VkStructureType sType
5349 const void* pNext
5350 const char* pMarkerName
5351 f32[4] color
5352}
5353
Jesse Hallad250842017-03-10 18:35:38 -08005354@extension("VK_NV_dedicated_allocation") // 27
Jesse Hall56d386a2016-07-26 15:20:40 -07005355class VkDedicatedAllocationImageCreateInfoNV {
5356 VkStructureType sType
5357 const void* pNext
5358 VkBool32 dedicatedAllocation
5359}
5360
Jesse Hallad250842017-03-10 18:35:38 -08005361@extension("VK_NV_dedicated_allocation") // 27
Jesse Hall56d386a2016-07-26 15:20:40 -07005362class VkDedicatedAllocationBufferCreateInfoNV {
5363 VkStructureType sType
5364 const void* pNext
5365 VkBool32 dedicatedAllocation
5366}
5367
Jesse Hallad250842017-03-10 18:35:38 -08005368@extension("VK_NV_dedicated_allocation") // 27
Jesse Hall56d386a2016-07-26 15:20:40 -07005369class VkDedicatedAllocationMemoryAllocateInfoNV {
5370 VkStructureType sType
5371 const void* pNext
5372 VkImage image
5373 VkBuffer buffer
5374}
5375
Jesse Hall7ba0ac72017-07-07 17:13:23 -07005376@extension("VK_AMD_texture_gather_bias_lod") // 42
5377class VkTextureLODGatherFormatPropertiesAMD {
5378 VkStructureType sType
5379 void* pNext
5380 VkBool32 supportsTextureGatherLODBiasAMD
5381}
5382
Jesse Hall8c954d32018-01-17 22:06:20 -08005383@extension("VK_AMD_shader_info") // 43
5384class VkShaderResourceUsageAMD {
5385 u32 numUsedVgprs
5386 u32 numUsedSgprs
5387 u32 ldsSizePerLocalWorkGroup
5388 platform.size_t ldsUsageSizeInBytes
5389 platform.size_t scratchMemUsageInBytes
5390}
5391
5392@extension("VK_AMD_shader_info") // 43
5393class VkShaderStatisticsInfoAMD {
5394 VkShaderStageFlags shaderStageMask
5395 VkShaderResourceUsageAMD resourceUsage
5396 u32 numPhysicalVgprs
5397 u32 numPhysicalSgprs
5398 u32 numAvailableVgprs
5399 u32 numAvailableSgprs
5400 u32[3] computeWorkGroupSize
5401}
5402
Jesse Hallb5297192018-09-22 20:52:13 +02005403@extension("VK_NV_corner_sampled_image") // 51
5404class VkPhysicalDeviceCornerSampledImageFeaturesNV {
5405 VkStructureType sType
5406 void* pNext
5407 VkBool32 cornerSampledImage
5408}
5409
Daniel Koch09f7bf92017-10-05 00:26:58 -04005410@extension("VK_KHR_multiview") // 54
5411class VkRenderPassMultiviewCreateInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005412 VkStructureType sType
5413 const void* pNext
5414 u32 subpassCount
5415 const u32* pViewMasks
5416 u32 dependencyCount
5417 const s32* pViewOffsets
5418 u32 correlationMaskCount
5419 const u32* pCorrelationMasks
5420}
5421
Daniel Koch09f7bf92017-10-05 00:26:58 -04005422@extension("VK_KHR_multiview") // 54
5423class VkPhysicalDeviceMultiviewFeaturesKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005424 VkStructureType sType
5425 void* pNext
5426 VkBool32 multiview
5427 VkBool32 multiviewGeometryShader
5428 VkBool32 multiviewTessellationShader
5429}
5430
Daniel Koch09f7bf92017-10-05 00:26:58 -04005431@extension("VK_KHR_multiview") // 54
5432class VkPhysicalDeviceMultiviewPropertiesKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005433 VkStructureType sType
5434 void* pNext
5435 u32 maxMultiviewViewCount
5436 u32 maxMultiviewInstanceIndex
5437}
5438
5439@extension("VK_NV_external_memory_capabilities") // 56
Jesse Halleb02c472017-02-24 15:13:45 -08005440class VkExternalImageFormatPropertiesNV {
5441 VkImageFormatProperties imageFormatProperties
5442 VkExternalMemoryFeatureFlagsNV externalMemoryFeatures
5443 VkExternalMemoryHandleTypeFlagsNV exportFromImportedHandleTypes
5444 VkExternalMemoryHandleTypeFlagsNV compatibleHandleTypes
5445}
5446
Jesse Hallad250842017-03-10 18:35:38 -08005447@extension("VK_NV_external_memory") // 57
Jesse Halleb02c472017-02-24 15:13:45 -08005448class VkExternalMemoryImageCreateInfoNV {
5449 VkStructureType sType
5450 const void* pNext
5451 VkExternalMemoryHandleTypeFlagsNV handleTypes
5452}
5453
Jesse Hallad250842017-03-10 18:35:38 -08005454@extension("VK_NV_external_memory") // 57
Jesse Halleb02c472017-02-24 15:13:45 -08005455class VkExportMemoryAllocateInfoNV {
5456 VkStructureType sType
5457 const void* pNext
5458 VkExternalMemoryHandleTypeFlagsNV handleTypes
5459}
5460
Jesse Hallad250842017-03-10 18:35:38 -08005461@extension("VK_NV_external_memory_win32") // 58
Jesse Halleb02c472017-02-24 15:13:45 -08005462class VkImportMemoryWin32HandleInfoNV {
5463 VkStructureType sType
5464 const void* pNext
5465 VkExternalMemoryHandleTypeFlagsNV handleType
5466 platform.HANDLE handle
5467}
5468
Jesse Hallad250842017-03-10 18:35:38 -08005469@extension("VK_NV_external_memory_win32") // 58
Jesse Halleb02c472017-02-24 15:13:45 -08005470class VkExportMemoryWin32HandleInfoNV {
5471 VkStructureType sType
5472 const void* pNext
5473 const platform.SECURITY_ATTRIBUTES* pAttributes
5474 platform.DWORD dwAccess
5475}
5476
Jesse Hallad250842017-03-10 18:35:38 -08005477@extension("VK_NV_win32_keyed_mutex") // 59
Jesse Halleb02c472017-02-24 15:13:45 -08005478class VkWin32KeyedMutexAcquireReleaseInfoNV {
5479 VkStructureType sType
5480 const void* pNext
5481 u32 acquireCount
5482 const VkDeviceMemory* pAcquireSyncs
5483 const u64* pAcquireKeys
5484 const u32* pAcquireTimeoutMilliseconds
5485 u32 releaseCount
5486 const VkDeviceMemory* pReleaseSyncs
5487 const u64* pReleaseKeys
5488}
5489
Jesse Hallad250842017-03-10 18:35:38 -08005490@extension("VK_KHR_get_physical_device_properties2") // 60
Chris Forbes1194ede2016-12-30 16:29:25 +13005491class VkPhysicalDeviceFeatures2KHR {
5492 VkStructureType sType
5493 void* pNext
5494 VkPhysicalDeviceFeatures features
5495}
5496
Jesse Hallad250842017-03-10 18:35:38 -08005497@extension("VK_KHR_get_physical_device_properties2") // 60
Chris Forbes1194ede2016-12-30 16:29:25 +13005498class VkPhysicalDeviceProperties2KHR {
5499 VkStructureType sType
5500 void* pNext
5501 VkPhysicalDeviceProperties properties
5502}
5503
Jesse Hallad250842017-03-10 18:35:38 -08005504@extension("VK_KHR_get_physical_device_properties2") // 60
Chris Forbes1194ede2016-12-30 16:29:25 +13005505class VkFormatProperties2KHR {
5506 VkStructureType sType
5507 void* pNext
5508 VkFormatProperties formatProperties
5509}
5510
Jesse Hallad250842017-03-10 18:35:38 -08005511@extension("VK_KHR_get_physical_device_properties2") // 60
Chris Forbes1194ede2016-12-30 16:29:25 +13005512class VkImageFormatProperties2KHR {
5513 VkStructureType sType
5514 void* pNext
5515 VkImageFormatProperties imageFormatProperties
5516}
5517
Jesse Hallad250842017-03-10 18:35:38 -08005518@extension("VK_KHR_get_physical_device_properties2") // 60
Chris Forbes1194ede2016-12-30 16:29:25 +13005519class VkPhysicalDeviceImageFormatInfo2KHR {
5520 VkStructureType sType
5521 const void* pNext
5522 VkFormat format
5523 VkImageType type
5524 VkImageTiling tiling
5525 VkImageUsageFlags usage
5526 VkImageCreateFlags flags
5527}
5528
Jesse Hallad250842017-03-10 18:35:38 -08005529@extension("VK_KHR_get_physical_device_properties2") // 60
Chris Forbes1194ede2016-12-30 16:29:25 +13005530class VkQueueFamilyProperties2KHR {
5531 VkStructureType sType
5532 void* pNext
5533 VkQueueFamilyProperties queueFamilyProperties
5534}
5535
Jesse Hallad250842017-03-10 18:35:38 -08005536@extension("VK_KHR_get_physical_device_properties2") // 60
Chris Forbes1194ede2016-12-30 16:29:25 +13005537class VkPhysicalDeviceMemoryProperties2KHR {
5538 VkStructureType sType
5539 void* pNext
5540 VkPhysicalDeviceMemoryProperties memoryProperties
5541}
5542
Jesse Hallad250842017-03-10 18:35:38 -08005543@extension("VK_KHR_get_physical_device_properties2") // 60
Chris Forbes1194ede2016-12-30 16:29:25 +13005544class VkSparseImageFormatProperties2KHR {
5545 VkStructureType sType
5546 void* pNext
5547 VkSparseImageFormatProperties properties
5548}
5549
Jesse Hallad250842017-03-10 18:35:38 -08005550@extension("VK_KHR_get_physical_device_properties2") // 60
Chris Forbes1194ede2016-12-30 16:29:25 +13005551class VkPhysicalDeviceSparseImageFormatInfo2KHR {
5552 VkStructureType sType
5553 const void* pNext
5554 VkFormat format
5555 VkImageType type
5556 VkSampleCountFlagBits samples
5557 VkImageUsageFlags usage
5558 VkImageTiling tiling
5559}
5560
Daniel Koch09f7bf92017-10-05 00:26:58 -04005561@extension("VK_KHR_device_group") // 61
5562class VkMemoryAllocateFlagsInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005563 VkStructureType sType
5564 const void* pNext
Daniel Koch09f7bf92017-10-05 00:26:58 -04005565 VkMemoryAllocateFlagsKHR flags
Jesse Hallad250842017-03-10 18:35:38 -08005566 u32 deviceMask
5567}
5568
Daniel Koch09f7bf92017-10-05 00:26:58 -04005569@extension("VK_KHR_device_group") // 61
5570class VkBindBufferMemoryDeviceGroupInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005571 VkStructureType sType
5572 const void* pNext
Jesse Hallad250842017-03-10 18:35:38 -08005573 u32 deviceIndexCount
5574 const u32* pDeviceIndices
5575}
5576
Daniel Koch09f7bf92017-10-05 00:26:58 -04005577@extension("VK_KHR_device_group") // 61
5578class VkBindImageMemoryDeviceGroupInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005579 VkStructureType sType
5580 const void* pNext
Jesse Hallad250842017-03-10 18:35:38 -08005581 u32 deviceIndexCount
5582 const u32* pDeviceIndices
5583 u32 SFRRectCount
5584 const VkRect2D* pSFRRects
5585}
5586
Daniel Koch09f7bf92017-10-05 00:26:58 -04005587@extension("VK_KHR_device_group") // 61
5588class VkDeviceGroupRenderPassBeginInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005589 VkStructureType sType
5590 const void* pNext
5591 u32 deviceMask
5592 u32 deviceRenderAreaCount
5593 const VkRect2D* pDeviceRenderAreas
5594}
5595
Daniel Koch09f7bf92017-10-05 00:26:58 -04005596@extension("VK_KHR_device_group") // 61
5597class VkDeviceGroupCommandBufferBeginInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005598 VkStructureType sType
5599 const void* pNext
5600 u32 deviceMask
5601}
5602
Daniel Koch09f7bf92017-10-05 00:26:58 -04005603@extension("VK_KHR_device_group") // 61
5604class VkDeviceGroupSubmitInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005605 VkStructureType sType
5606 const void* pNext
5607 u32 waitSemaphoreCount
5608 const u32* pWaitSemaphoreDeviceIndices
5609 u32 commandBufferCount
5610 const u32* pCommandBufferDeviceMasks
5611 u32 signalSemaphoreCount
5612 const u32* pSignalSemaphoreDeviceIndices
5613}
5614
Daniel Koch09f7bf92017-10-05 00:26:58 -04005615@extension("VK_KHR_device_group") // 61
5616class VkDeviceGroupBindSparseInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005617 VkStructureType sType
5618 const void* pNext
5619 u32 resourceDeviceIndex
5620 u32 memoryDeviceIndex
5621}
5622
Jesse Hallad250842017-03-10 18:35:38 -08005623@extension("VK_EXT_validation_flags") // 62
Chris Forbes289cb792016-12-30 15:03:55 +13005624class VkValidationFlagsEXT {
5625 VkStructureType sType
5626 const void* pNext
5627 u32 disabledValidationCheckCount
Jesse Hall115df0c2018-07-30 12:00:59 -07005628 const VkValidationCheckEXT* pDisabledValidationChecks
Chris Forbes289cb792016-12-30 15:03:55 +13005629}
5630
Jesse Hallad250842017-03-10 18:35:38 -08005631@extension("VK_NN_vi_surface") // 63
Jesse Hall77ad05b2017-03-10 22:02:20 -08005632class VkViSurfaceCreateInfoNN {
5633 VkStructureType sType
5634 const void* pNext
5635 VkViSurfaceCreateFlagsNN flags
5636 void* window
5637}
5638
Jesse Hall4af6c462018-09-10 09:04:25 -07005639@extension("VK_EXT_astc_decode_mode") // 68
5640class VkImageViewASTCDecodeModeEXT {
5641 VkStructureType sType
5642 const void* pNext
5643 VkFormat decodeMode
5644}
5645
5646@extension("VK_EXT_astc_decode_mode") // 68
5647class VkPhysicalDeviceASTCDecodeFeaturesEXT {
5648 VkStructureType sType
5649 void* pNext
5650 VkBool32 decodeModeSharedExponent
5651}
5652
Daniel Koch09f7bf92017-10-05 00:26:58 -04005653@extension("VK_KHR_device_group_creation") // 71
5654class VkPhysicalDeviceGroupPropertiesKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005655 VkStructureType sType
Jesse Hallf5ad48b2017-03-20 13:09:19 -07005656 void* pNext
Jesse Hallad250842017-03-10 18:35:38 -08005657 u32 physicalDeviceCount
Daniel Koch09f7bf92017-10-05 00:26:58 -04005658 VkPhysicalDevice[VK_MAX_DEVICE_GROUP_SIZE] physicalDevices
Jesse Hallad250842017-03-10 18:35:38 -08005659 VkBool32 subsetAllocation
5660}
5661
Daniel Koch09f7bf92017-10-05 00:26:58 -04005662@extension("VK_KHR_device_group_creation") // 71
5663class VkDeviceGroupDeviceCreateInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005664 VkStructureType sType
5665 const void* pNext
5666 u32 physicalDeviceCount
5667 const VkPhysicalDevice* pPhysicalDevices
5668}
5669
Jesse Hall9492f992017-08-28 12:10:06 -07005670@extension("VK_KHR_external_memory_capabilities") // 72
5671class VkExternalMemoryPropertiesKHR {
5672 VkExternalMemoryFeatureFlagsKHR externalMemoryFeatures
5673 VkExternalMemoryHandleTypeFlagsKHR exportFromImportedHandleTypes
5674 VkExternalMemoryHandleTypeFlagsKHR compatibleHandleTypes
Jesse Hallad250842017-03-10 18:35:38 -08005675}
5676
Jesse Hall9492f992017-08-28 12:10:06 -07005677@extension("VK_KHR_external_memory_capabilities") // 72
5678class VkPhysicalDeviceExternalImageFormatInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005679 VkStructureType sType
5680 const void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005681 VkExternalMemoryHandleTypeFlagBitsKHR handleType
Jesse Hallad250842017-03-10 18:35:38 -08005682}
5683
Jesse Hall9492f992017-08-28 12:10:06 -07005684@extension("VK_KHR_external_memory_capabilities") // 72
5685class VkExternalImageFormatPropertiesKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005686 VkStructureType sType
5687 void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005688 VkExternalMemoryPropertiesKHR externalMemoryProperties
Jesse Hallad250842017-03-10 18:35:38 -08005689}
5690
Jesse Hall9492f992017-08-28 12:10:06 -07005691@extension("VK_KHR_external_memory_capabilities") // 72
5692class VkPhysicalDeviceExternalBufferInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005693 VkStructureType sType
5694 const void* pNext
5695 VkBufferCreateFlags flags
5696 VkBufferUsageFlags usage
Jesse Hall9492f992017-08-28 12:10:06 -07005697 VkExternalMemoryHandleTypeFlagBitsKHR handleType
Jesse Hallad250842017-03-10 18:35:38 -08005698}
5699
Jesse Hall9492f992017-08-28 12:10:06 -07005700@extension("VK_KHR_external_memory_capabilities") // 72
5701class VkExternalBufferPropertiesKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005702 VkStructureType sType
5703 void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005704 VkExternalMemoryPropertiesKHR externalMemoryProperties
Jesse Hallad250842017-03-10 18:35:38 -08005705}
5706
Jesse Hall9492f992017-08-28 12:10:06 -07005707@extension("VK_KHR_external_memory_capabilities") // 72
5708class VkPhysicalDeviceIDPropertiesKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005709 VkStructureType sType
5710 void* pNext
5711 u8[VK_UUID_SIZE] deviceUUID
5712 u8[VK_UUID_SIZE] driverUUID
Daniel Koch09f7bf92017-10-05 00:26:58 -04005713 u8[VK_LUID_SIZE] deviceLUID
Jesse Hall9492f992017-08-28 12:10:06 -07005714 u32 deviceNodeMask
Jesse Hallad250842017-03-10 18:35:38 -08005715 VkBool32 deviceLUIDValid
5716}
5717
Jesse Hall9492f992017-08-28 12:10:06 -07005718@extension("VK_KHR_external_memory") // 73
5719class VkExternalMemoryImageCreateInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005720 VkStructureType sType
5721 const void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005722 VkExternalMemoryHandleTypeFlagsKHR handleTypes
Jesse Hallad250842017-03-10 18:35:38 -08005723}
5724
Jesse Hall9492f992017-08-28 12:10:06 -07005725@extension("VK_KHR_external_memory") // 73
5726class VkExternalMemoryBufferCreateInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005727 VkStructureType sType
5728 const void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005729 VkExternalMemoryHandleTypeFlagsKHR handleTypes
Jesse Hallad250842017-03-10 18:35:38 -08005730}
5731
Jesse Hall9492f992017-08-28 12:10:06 -07005732@extension("VK_KHR_external_memory") // 73
5733class VkExportMemoryAllocateInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005734 VkStructureType sType
5735 const void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005736 VkExternalMemoryHandleTypeFlagsKHR handleTypes
Jesse Hallad250842017-03-10 18:35:38 -08005737}
5738
Jesse Hall9492f992017-08-28 12:10:06 -07005739@extension("VK_KHR_external_memory_win32") // 74
5740class VkImportMemoryWin32HandleInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005741 VkStructureType sType
5742 const void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005743 VkExternalMemoryHandleTypeFlagBitsKHR handleType
Jesse Hallad250842017-03-10 18:35:38 -08005744 platform.HANDLE handle
Jesse Hall9492f992017-08-28 12:10:06 -07005745 platform.LPCWSTR name
Jesse Hallad250842017-03-10 18:35:38 -08005746}
5747
Jesse Hall9492f992017-08-28 12:10:06 -07005748@extension("VK_KHR_external_memory_win32") // 74
5749class VkExportMemoryWin32HandleInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005750 VkStructureType sType
5751 const void* pNext
5752 const platform.SECURITY_ATTRIBUTES* pAttributes
5753 platform.DWORD dwAccess
5754 platform.LPCWSTR name
5755}
5756
Jesse Hall9492f992017-08-28 12:10:06 -07005757@extension("VK_KHR_external_memory_win32") // 74
5758class VkMemoryWin32HandlePropertiesKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005759 VkStructureType sType
5760 void* pNext
5761 u32 memoryTypeBits
5762}
5763
Jesse Hall9492f992017-08-28 12:10:06 -07005764@extension("VK_KHR_external_memory_win32") // 74
5765class VkMemoryGetWin32HandleInfoKHR {
5766 VkStructureType sType
5767 void* pNext
5768 VkDeviceMemory memory
5769 VkExternalMemoryHandleTypeFlagBitsKHR handleType
5770}
5771
5772@extension("VK_KHR_external_memory_fd") // 75
5773class VkImportMemoryFdInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005774 VkStructureType sType
5775 const void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005776 VkExternalMemoryHandleTypeFlagBitsKHR handleType
Jesse Hallad250842017-03-10 18:35:38 -08005777 int fd
5778}
5779
Jesse Hall9492f992017-08-28 12:10:06 -07005780@extension("VK_KHR_external_memory_fd") // 75
5781class VkMemoryFdPropertiesKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005782 VkStructureType sType
5783 void* pNext
5784 u32 memoryTypeBits
5785}
5786
Jesse Hall9492f992017-08-28 12:10:06 -07005787@extension("VK_KHR_external_memory_fd") // 75
5788class VkMemoryGetFdInfoKHR {
5789 VkStructureType sType
5790 void* pNext
5791 VkDeviceMemory memory
5792 VkExternalMemoryHandleTypeFlagBitsKHR handleType
5793}
5794
5795@extension("VK_KHR_win32_keyed_mutex") // 76
5796class VkWin32KeyedMutexAcquireReleaseInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005797 VkStructureType sType
5798 const void* pNext
5799 u32 acquireCount
5800 const VkDeviceMemory* pAcquireSyncs
5801 const u64* pAcquireKeys
5802 const u32* pAcquireTimeouts
5803 u32 releaseCount
5804 const VkDeviceMemory* pReleaseSyncs
5805 const u64* pReleaseKeys
5806}
5807
Jesse Hall9492f992017-08-28 12:10:06 -07005808@extension("VK_KHR_external_semaphore_capabilities") // 77
5809class VkPhysicalDeviceExternalSemaphoreInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005810 VkStructureType sType
5811 const void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005812 VkExternalSemaphoreHandleTypeFlagBitsKHR handleType
Jesse Hallad250842017-03-10 18:35:38 -08005813}
5814
Jesse Hall9492f992017-08-28 12:10:06 -07005815@extension("VK_KHR_external_semaphore_capabilities") // 77
5816class VkExternalSemaphorePropertiesKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005817 VkStructureType sType
5818 void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005819 VkExternalSemaphoreHandleTypeFlagsKHR exportFromImportedHandleTypes
5820 VkExternalSemaphoreHandleTypeFlagsKHR compatibleHandleTypes
5821 VkExternalSemaphoreFeatureFlagsKHR externalSemaphoreFeatures
Jesse Hallad250842017-03-10 18:35:38 -08005822}
5823
Jesse Hall9492f992017-08-28 12:10:06 -07005824@extension("VK_KHR_external_semaphore") // 78
5825class VkExportSemaphoreCreateInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005826 VkStructureType sType
5827 const void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005828 VkExternalSemaphoreHandleTypeFlagsKHR handleTypes
Jesse Hallad250842017-03-10 18:35:38 -08005829}
5830
Jesse Hall9492f992017-08-28 12:10:06 -07005831@extension("VK_KHR_external_semaphore_win32") // 79
5832class VkImportSemaphoreWin32HandleInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005833 VkStructureType sType
5834 const void* pNext
5835 VkSemaphore semaphore
Jesse Hall9492f992017-08-28 12:10:06 -07005836 VkSemaphoreImportFlagsKHR flags
5837 VkExternalSemaphoreHandleTypeFlagsKHR handleType
Jesse Hallad250842017-03-10 18:35:38 -08005838 platform.HANDLE handle
Jesse Hall9492f992017-08-28 12:10:06 -07005839 platform.LPCWSTR name
Jesse Hallad250842017-03-10 18:35:38 -08005840}
5841
Jesse Hall9492f992017-08-28 12:10:06 -07005842@extension("VK_KHR_external_semaphore_win32") // 79
5843class VkExportSemaphoreWin32HandleInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005844 VkStructureType sType
5845 const void* pNext
5846 const platform.SECURITY_ATTRIBUTES* pAttributes
5847 platform.DWORD dwAccess
5848 platform.LPCWSTR name
5849}
5850
Jesse Hall9492f992017-08-28 12:10:06 -07005851@extension("VK_KHR_external_semaphore_win32") // 79
5852class VkD3D12FenceSubmitInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005853 VkStructureType sType
5854 const void* pNext
5855 u32 waitSemaphoreValuesCount
5856 const u64* pWaitSemaphoreValues
5857 u32 signalSemaphoreValuesCount
5858 const u64* pSignalSemaphoreValues
5859}
5860
Jesse Hall9492f992017-08-28 12:10:06 -07005861@extension("VK_KHR_external_semaphore_win32") // 79
5862class VkSemaphoreGetWin32HandleInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005863 VkStructureType sType
5864 const void* pNext
5865 VkSemaphore semaphore
Jesse Hall9492f992017-08-28 12:10:06 -07005866 VkExternalSemaphoreHandleTypeFlagBitsKHR handleType
5867}
5868
5869@extension("VK_KHR_external_semaphore_fd") // 80
5870class VkImportSemaphoreFdInfoKHR {
5871 VkStructureType sType
5872 const void* pNext
5873 VkSemaphore semaphore
5874 VkSemaphoreImportFlagsKHR flags
5875 VkExternalSemaphoreHandleTypeFlagBitsKHR handleType
Jesse Hallad250842017-03-10 18:35:38 -08005876 s32 fd
5877}
5878
Jesse Hall9492f992017-08-28 12:10:06 -07005879@extension("VK_KHR_external_semaphore_fd") // 80
5880class VkSemaphoreGetFdInfoKHR {
5881 VkStructureType sType
5882 const void* pNext
5883 VkSemaphore semaphore
5884 VkExternalSemaphoreHandleTypeFlagBitsKHR handleType
5885}
5886
Jesse Hallad250842017-03-10 18:35:38 -08005887@extension("VK_KHR_push_descriptor") // 81
5888class VkPhysicalDevicePushDescriptorPropertiesKHR {
5889 VkStructureType sType
5890 void* pNext
5891 u32 maxPushDescriptors
5892}
5893
Jesse Halla13a3cf2018-07-09 15:51:52 -07005894@extension("VK_EXT_conditional_rendering") // 82
5895class VkConditionalRenderingBeginInfoEXT {
5896 VkStructureType sType
5897 const void* pNext
5898 VkBuffer buffer
5899 VkDeviceSize offset
5900 VkConditionalRenderingFlagsEXT flags
5901}
5902
5903@extension("VK_EXT_conditional_rendering") // 82
5904class VkPhysicalDeviceConditionalRenderingFeaturesEXT {
5905 VkStructureType sType
5906 void* pNext
5907 VkBool32 conditionalRendering
5908 VkBool32 inheritedConditionalRendering
5909}
5910
5911@extension("VK_EXT_conditional_rendering") // 82
5912class VkCommandBufferInheritanceConditionalRenderingInfoEXT {
5913 VkStructureType sType
5914 const void* pNext
5915 VkBool32 conditionalRenderingEnable
5916}
5917
Jesse Hall9492f992017-08-28 12:10:06 -07005918@extension("VK_KHR_16bit_storage") // 84
5919class VkPhysicalDevice16BitStorageFeaturesKHR {
5920 VkStructureType sType
5921 void* pNext
5922 VkBool32 storageBuffer16BitAccess
5923 VkBool32 uniformAndStorageBuffer16BitAccess
5924 VkBool32 storagePushConstant16
5925 VkBool32 storageInputOutput16
5926}
5927
Jesse Hallad250842017-03-10 18:35:38 -08005928@extension("VK_KHR_incremental_present") // 85
5929class VkRectLayerKHR {
5930 VkOffset2D offset
5931 VkExtent2D extent
5932 u32 layer
5933}
5934
5935@extension("VK_KHR_incremental_present") // 85
5936class VkPresentRegionKHR {
5937 u32 rectangleCount
5938 const VkRectLayerKHR* pRectangles
5939}
5940
5941@extension("VK_KHR_incremental_present") // 85
5942class VkPresentRegionsKHR {
5943 VkStructureType sType
5944 const void* pNext
5945 u32 swapchainCount
5946 const VkPresentRegionKHR* pRegions
5947}
5948
5949@extension("VK_KHR_descriptor_update_template") // 86
5950class VkDescriptorUpdateTemplateEntryKHR {
5951 u32 dstBinding
5952 u32 dstArrayElement
5953 u32 descriptorCount
5954 VkDescriptorType descriptorType
5955 platform.size_t offset
5956 platform.size_t stride
5957}
5958
5959@extension("VK_KHR_descriptor_update_template") // 86
5960class VkDescriptorUpdateTemplateCreateInfoKHR {
5961 VkStructureType sType
5962 void* pNext
5963 VkDescriptorUpdateTemplateCreateFlagsKHR flags
5964 u32 descriptorUpdateEntryCount
5965 const VkDescriptorUpdateTemplateEntryKHR* pDescriptorUpdateEntries
5966 VkDescriptorUpdateTemplateTypeKHR templateType
5967 VkDescriptorSetLayout descriptorSetLayout
5968 VkPipelineBindPoint pipelineBindPoint
5969 VkPipelineLayout pipelineLayout
5970 u32 set
5971}
5972
5973@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13005974class VkDeviceGeneratedCommandsFeaturesNVX {
5975 VkStructureType sType
5976 const void* pNext
5977 VkBool32 computeBindingPointSupport
5978}
5979
Jesse Hallad250842017-03-10 18:35:38 -08005980@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13005981class VkDeviceGeneratedCommandsLimitsNVX {
5982 VkStructureType sType
5983 const void* pNext
5984 u32 maxIndirectCommandsLayoutTokenCount
5985 u32 maxObjectEntryCounts
5986 u32 minSequenceCountBufferOffsetAlignment
5987 u32 minSequenceIndexBufferOffsetAlignment
5988 u32 minCommandsTokenBufferOffsetAlignment
5989}
5990
Jesse Hallad250842017-03-10 18:35:38 -08005991@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13005992class VkIndirectCommandsTokenNVX {
5993 VkIndirectCommandsTokenTypeNVX tokenType
5994 VkBuffer buffer
5995 VkDeviceSize offset
5996}
5997
Jesse Hallad250842017-03-10 18:35:38 -08005998@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13005999class VkIndirectCommandsLayoutTokenNVX {
6000 VkIndirectCommandsTokenTypeNVX tokenType
6001 u32 bindingUnit
6002 u32 dynamicCount
6003 u32 divisor
6004}
6005
Jesse Hallad250842017-03-10 18:35:38 -08006006@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13006007class VkIndirectCommandsLayoutCreateInfoNVX {
6008 VkStructureType sType
6009 const void* pNext
6010 VkPipelineBindPoint pipelineBindPoint
6011 VkIndirectCommandsLayoutUsageFlagsNVX flags
6012 u32 tokenCount
6013 const VkIndirectCommandsLayoutTokenNVX* pTokens
6014}
6015
Jesse Hallad250842017-03-10 18:35:38 -08006016@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13006017class VkCmdProcessCommandsInfoNVX {
6018 VkStructureType sType
6019 const void* pNext
6020 VkObjectTableNVX objectTable
6021 VkIndirectCommandsLayoutNVX indirectCommandsLayout
6022 u32 indirectCommandsTokenCount
6023 const VkIndirectCommandsTokenNVX* pIndirectCommandsTokens
6024 u32 maxSequencesCount
6025 VkCommandBuffer targetCommandBuffer
6026 VkBuffer sequencesCountBuffer
6027 VkDeviceSize sequencesCountOffset
6028 VkBuffer sequencesIndexBuffer
6029 VkDeviceSize sequencesIndexOffset
6030}
6031
Jesse Hallad250842017-03-10 18:35:38 -08006032@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13006033class VkCmdReserveSpaceForCommandsInfoNVX {
6034 VkStructureType sType
6035 const void* pNext
6036 VkObjectTableNVX objectTable
6037 VkIndirectCommandsLayoutNVX indirectCommandsLayout
6038 u32 maxSequencesCount
6039}
6040
Jesse Hallad250842017-03-10 18:35:38 -08006041@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13006042class VkObjectTableCreateInfoNVX {
6043 VkStructureType sType
6044 const void* pNext
6045 u32 objectCount
6046 const VkObjectEntryTypeNVX* pObjectEntryTypes
6047 const u32* pObjectEntryCounts
6048 const VkObjectEntryUsageFlagsNVX* pObjectEntryUsageFlags
6049 u32 maxUniformBuffersPerDescriptor
6050 u32 maxStorageBuffersPerDescriptor
6051 u32 maxStorageImagesPerDescriptor
6052 u32 maxSampledImagesPerDescriptor
6053 u32 maxPipelineLayouts
6054}
6055
Jesse Hallad250842017-03-10 18:35:38 -08006056@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13006057class VkObjectTableEntryNVX {
6058 VkObjectEntryTypeNVX type
6059 VkObjectEntryUsageFlagsNVX flags
6060}
6061
Jesse Hallad250842017-03-10 18:35:38 -08006062@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13006063class VkObjectTablePipelineEntryNVX {
6064 VkObjectEntryTypeNVX type
6065 VkObjectEntryUsageFlagsNVX flags
6066 VkPipeline pipeline
6067}
6068
Jesse Hallad250842017-03-10 18:35:38 -08006069@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13006070class VkObjectTableDescriptorSetEntryNVX {
6071 VkObjectEntryTypeNVX type
6072 VkObjectEntryUsageFlagsNVX flags
6073 VkPipelineLayout pipelineLayout
6074 VkDescriptorSet descriptorSet
6075}
6076
Jesse Hallad250842017-03-10 18:35:38 -08006077@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13006078class VkObjectTableVertexBufferEntryNVX {
6079 VkObjectEntryTypeNVX type
6080 VkObjectEntryUsageFlagsNVX flags
6081 VkBuffer buffer
6082}
6083
Jesse Hallad250842017-03-10 18:35:38 -08006084@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13006085class VkObjectTableIndexBufferEntryNVX {
6086 VkObjectEntryTypeNVX type
6087 VkObjectEntryUsageFlagsNVX flags
6088 VkBuffer buffer
Jesse Hall77ad05b2017-03-10 22:02:20 -08006089 VkIndexType indexType
Chris Forbes289cb792016-12-30 15:03:55 +13006090}
6091
Jesse Hallad250842017-03-10 18:35:38 -08006092@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13006093class VkObjectTablePushConstantEntryNVX {
6094 VkObjectEntryTypeNVX type
6095 VkObjectEntryUsageFlagsNVX flags
6096 VkPipelineLayout pipelineLayout
6097 VkShaderStageFlags stageFlags
6098}
6099
Jesse Hallad250842017-03-10 18:35:38 -08006100@extension("VK_NV_clip_space_w_scaling") // 88
6101class VkViewportWScalingNV {
6102 f32 xcoeff
6103 f32 ycoeff
Jesse Hall889cd9a2017-02-25 22:12:23 -08006104}
6105
Jesse Hallad250842017-03-10 18:35:38 -08006106@extension("VK_NV_clip_space_w_scaling") // 88
6107class VkPipelineViewportWScalingStateCreateInfoNV {
Jesse Hall889cd9a2017-02-25 22:12:23 -08006108 VkStructureType sType
6109 const void* pNext
Jesse Hallad250842017-03-10 18:35:38 -08006110 VkBool32 viewportWScalingEnable
6111 u32 viewportCount
6112 const VkViewportWScalingNV* pViewportWScalings
Jesse Hall889cd9a2017-02-25 22:12:23 -08006113}
6114
Jesse Hallad250842017-03-10 18:35:38 -08006115@extension("VK_EXT_display_surface_counter") // 91
Jesse Hall77ad05b2017-03-10 22:02:20 -08006116class VkSurfaceCapabilities2EXT {
6117 VkStructureType sType
6118 void* pNext
6119 u32 minImageCount
6120 u32 maxImageCount
6121 VkExtent2D currentExtent
6122 VkExtent2D minImageExtent
6123 VkExtent2D maxImageExtent
6124 u32 maxImageArrayLayers
6125 VkSurfaceTransformFlagsKHR supportedTransforms
6126 VkSurfaceTransformFlagBitsKHR currentTransform
6127 VkCompositeAlphaFlagsKHR supportedCompositeAlpha
6128 VkImageUsageFlags supportedUsageFlags
6129 VkSurfaceCounterFlagsEXT supportedSurfaceCounters
6130}
6131
Jesse Hallad250842017-03-10 18:35:38 -08006132@extension("VK_EXT_display_control") // 92
Jesse Hall77ad05b2017-03-10 22:02:20 -08006133class VkDisplayPowerInfoEXT {
6134 VkStructureType sType
6135 const void* pNext
6136 VkDisplayPowerStateEXT powerState
6137}
6138
Jesse Hallad250842017-03-10 18:35:38 -08006139@extension("VK_EXT_display_control") // 92
Jesse Hall77ad05b2017-03-10 22:02:20 -08006140class VkDeviceEventInfoEXT {
6141 VkStructureType sType
6142 const void* pNext
6143 VkDeviceEventTypeEXT deviceEvent
6144}
6145
Jesse Hallad250842017-03-10 18:35:38 -08006146@extension("VK_EXT_display_control") // 92
Jesse Hall77ad05b2017-03-10 22:02:20 -08006147class VkDisplayEventInfoEXT {
6148 VkStructureType sType
6149 const void* pNext
6150 VkDisplayEventTypeEXT displayEvent
6151}
6152
Jesse Hallad250842017-03-10 18:35:38 -08006153@extension("VK_EXT_display_control") // 92
Jesse Hall77ad05b2017-03-10 22:02:20 -08006154class VkSwapchainCounterCreateInfoEXT {
6155 VkStructureType sType
6156 const void* pNext
6157 VkSurfaceCounterFlagsEXT surfaceCounters
6158}
6159
Jesse Hallad250842017-03-10 18:35:38 -08006160@extension("VK_GOOGLE_display_timing") // 93
6161class VkRefreshCycleDurationGOOGLE {
Jesse Hallfdc8ab32017-03-10 21:01:57 -08006162 u64 refreshDuration
Jesse Hallad250842017-03-10 18:35:38 -08006163}
6164
6165@extension("VK_GOOGLE_display_timing") // 93
6166class VkPastPresentationTimingGOOGLE {
Jesse Hallfdc8ab32017-03-10 21:01:57 -08006167 u32 presentID
6168 u64 desiredPresentTime
6169 u64 actualPresentTime
6170 u64 earliestPresentTime
6171 u64 presentMargin
Jesse Hallad250842017-03-10 18:35:38 -08006172}
6173
6174@extension("VK_GOOGLE_display_timing") // 93
6175class VkPresentTimeGOOGLE {
Jesse Hallfdc8ab32017-03-10 21:01:57 -08006176 u32 presentID
6177 u64 desiredPresentTime
Jesse Hallad250842017-03-10 18:35:38 -08006178}
6179
6180@extension("VK_GOOGLE_display_timing") // 93
6181class VkPresentTimesInfoGOOGLE {
Jesse Hallfdc8ab32017-03-10 21:01:57 -08006182 VkStructureType sType
6183 const void* pNext
6184 u32 swapchainCount
6185 const VkPresentTimeGOOGLE* pTimes
Jesse Hallad250842017-03-10 18:35:38 -08006186}
6187
6188@extension("VK_NVX_multiview_per_view_attributes") // 98
6189class VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX {
6190 VkStructureType sType
6191 void* pNext
6192 VkBool32 perViewPositionAllComponents
6193}
6194
6195@extension("VK_NV_viewport_swizzle") // 99
6196class VkViewportSwizzleNV {
6197 VkViewportCoordinateSwizzleNV x
6198 VkViewportCoordinateSwizzleNV y
6199 VkViewportCoordinateSwizzleNV z
6200 VkViewportCoordinateSwizzleNV w
6201}
6202
6203@extension("VK_NV_viewport_swizzle") // 99
6204class VkPipelineViewportSwizzleStateCreateInfoNV {
6205 VkStructureType sType
6206 const void* pNext
6207 VkPipelineViewportSwizzleStateCreateFlagsNV flags
6208 u32 viewportCount
6209 const VkViewportSwizzleNV* pViewportSwizzles
6210}
6211
6212@extension("VK_EXT_discard_rectangles") // 100
6213class VkPhysicalDeviceDiscardRectanglePropertiesEXT {
6214 VkStructureType sType
Jesse Hallf5ad48b2017-03-20 13:09:19 -07006215 void* pNext
Jesse Hallad250842017-03-10 18:35:38 -08006216 u32 maxDiscardRectangles
6217}
6218
6219@extension("VK_EXT_discard_rectangles") // 100
6220class VkPipelineDiscardRectangleStateCreateInfoEXT {
Jesse Hallfdc8ab32017-03-10 21:01:57 -08006221 VkStructureType sType
6222 const void* pNext
6223 VkPipelineDiscardRectangleStateCreateFlagsEXT flags
6224 VkDiscardRectangleModeEXT discardRectangleMode
6225 u32 discardRectangleCount
6226 const VkRect2D* pDiscardRectangles
Jesse Hallad250842017-03-10 18:35:38 -08006227}
6228
Jesse Hall8c954d32018-01-17 22:06:20 -08006229@extension("VK_EXT_conservative_rasterization") // 102
6230class VkPhysicalDeviceConservativeRasterizationPropertiesEXT {
6231 VkStructureType sType
6232 void* pNext
6233 f32 primitiveOverestimationSize
6234 f32 maxExtraPrimitiveOverestimationSize
6235 f32 extraPrimitiveOverestimationSizeGranularity
6236 VkBool32 primitiveUnderestimation
6237 VkBool32 conservativePointAndLineRasterization
6238 VkBool32 degenerateTrianglesRasterized
6239 VkBool32 degenerateLinesRasterized
6240 VkBool32 fullyCoveredFragmentShaderInputVariable
6241 VkBool32 conservativeRasterizationPostDepthCoverage
6242}
6243
6244@extension("VK_EXT_conservative_rasterization") // 102
6245class VkPipelineRasterizationConservativeStateCreateInfoEXT {
6246 VkStructureType sType
6247 const void* pNext
6248 VkPipelineRasterizationConservativeStateCreateFlagsEXT flags
6249 VkConservativeRasterizationModeEXT conservativeRasterizationMode
6250 f32 extraPrimitiveOverestimationSize
6251}
6252
Jesse Hallad250842017-03-10 18:35:38 -08006253@extension("VK_EXT_hdr_metadata") // 106
Courtney Goeltzenleuchterd634c482017-01-05 15:55:31 -07006254class VkXYColorEXT {
Jesse Hallfdc8ab32017-03-10 21:01:57 -08006255 f32 x
6256 f32 y
Courtney Goeltzenleuchterd634c482017-01-05 15:55:31 -07006257}
6258
Jesse Hallad250842017-03-10 18:35:38 -08006259@extension("VK_EXT_hdr_metadata") // 106
Courtney Goeltzenleuchterd634c482017-01-05 15:55:31 -07006260class VkHdrMetadataEXT {
Jesse Hallfdc8ab32017-03-10 21:01:57 -08006261 VkStructureType sType
6262 const void* pNext
6263 VkXYColorEXT displayPrimaryRed
6264 VkXYColorEXT displayPrimaryGreen
6265 VkXYColorEXT displayPrimaryBlue
6266 VkXYColorEXT whitePoint
6267 f32 maxLuminance
6268 f32 minLuminance
6269 f32 maxContentLightLevel
6270 f32 maxFrameAverageLightLevel
Courtney Goeltzenleuchterd634c482017-01-05 15:55:31 -07006271}
6272
Jesse Halla13a3cf2018-07-09 15:51:52 -07006273@extension("VK_KHR_create_renderpass2") // 110
6274class VkAttachmentDescription2KHR {
6275 VkStructureType sType
6276 const void* pNext
6277 VkAttachmentDescriptionFlags flags
6278 VkFormat format
6279 VkSampleCountFlagBits samples
6280 VkAttachmentLoadOp loadOp
6281 VkAttachmentStoreOp storeOp
6282 VkAttachmentLoadOp stencilLoadOp
6283 VkAttachmentStoreOp stencilStoreOp
6284 VkImageLayout initialLayout
6285 VkImageLayout finalLayout
6286}
6287
6288@extension("VK_KHR_create_renderpass2") // 110
6289class VkAttachmentReference2KHR {
6290 VkStructureType sType
6291 const void* pNext
6292 u32 attachment
6293 VkImageLayout layout
6294 VkImageAspectFlags aspectMask
6295}
6296
6297@extension("VK_KHR_create_renderpass2") // 110
6298class VkSubpassDescription2KHR {
6299 VkStructureType sType
6300 const void* pNext
6301 VkSubpassDescriptionFlags flags
6302 VkPipelineBindPoint pipelineBindPoint
6303 u32 viewMask
6304 u32 inputAttachmentCount
6305 const VkAttachmentReference2KHR* pInputAttachments
6306 u32 colorAttachmentCount
6307 const VkAttachmentReference2KHR* pColorAttachments
6308 const VkAttachmentReference2KHR* pResolveAttachments
6309 const VkAttachmentReference2KHR* pDepthStencilAttachment
6310 u32 preserveAttachmentCount
6311 const u32* pPreserveAttachments
6312}
6313
6314@extension("VK_KHR_create_renderpass2") // 110
6315class VkSubpassDependency2KHR {
6316 VkStructureType sType
6317 const void* pNext
6318 u32 srcSubpass
6319 u32 dstSubpass
6320 VkPipelineStageFlags srcStageMask
6321 VkPipelineStageFlags dstStageMask
6322 VkAccessFlags srcAccessMask
6323 VkAccessFlags dstAccessMask
6324 VkDependencyFlags dependencyFlags
6325 s32 viewOffset
6326}
6327
6328@extension("VK_KHR_create_renderpass2") // 110
6329class VkRenderPassCreateInfo2KHR {
6330 VkStructureType sType
6331 const void* pNext
6332 VkRenderPassCreateFlags flags
6333 u32 attachmentCount
6334 const VkAttachmentDescription2KHR* pAttachments
6335 u32 subpassCount
6336 const VkSubpassDescription2KHR* pSubpasses
6337 u32 dependencyCount
6338 const VkSubpassDependency2KHR* pDependencies
6339 u32 correlatedViewMaskCount
6340 const u32* pCorrelatedViewMasks
6341}
6342
6343@extension("VK_KHR_create_renderpass2") // 110
6344class VkSubpassBeginInfoKHR {
6345 VkStructureType sType
6346 const void* pNext
6347 VkSubpassContents contents
6348}
6349
6350@extension("VK_KHR_create_renderpass2") // 110
6351class VkSubpassEndInfoKHR {
6352 VkStructureType sType
6353 const void* pNext
6354}
6355
Jesse Hall05556b12017-05-18 17:40:25 -07006356@extension("VK_KHR_shared_presentable_image") // 112
Chris Forbese2d3ee12017-03-16 16:10:15 +13006357class VkSharedPresentSurfaceCapabilitiesKHR {
6358 VkStructureType sType
6359 const void* pNext
6360 VkImageUsageFlags sharedPresentSupportedUsageFlags
6361}
6362
Jesse Hall9492f992017-08-28 12:10:06 -07006363@extension("VK_KHR_external_fence_capabilities") // 113
6364class VkPhysicalDeviceExternalFenceInfoKHR {
6365 VkStructureType sType
6366 const void* pNext
6367 VkExternalFenceHandleTypeFlagBitsKHR handleType
6368}
6369
6370@extension("VK_KHR_external_fence_capabilities") // 113
6371class VkExternalFencePropertiesKHR {
6372 VkStructureType sType
6373 void* pNext
6374 VkExternalFenceHandleTypeFlagsKHR exportFromImportedHandleTypes
6375 VkExternalFenceHandleTypeFlagsKHR compatibleHandleTypes
6376 VkExternalFenceFeatureFlagsKHR externalFenceFeatures
6377}
6378
6379@extension("VK_KHR_external_fence") // 114
6380class VkExportFenceCreateInfoKHR {
6381 VkStructureType sType
6382 const void* pNext
6383 VkExternalFenceHandleTypeFlagsKHR handleTypes
6384}
6385
6386@extension("VK_KHR_external_fence_win32") // 115
6387class VkImportFenceWin32HandleInfoKHR {
6388 VkStructureType sType
6389 const void* pNext
6390 VkFence fence
6391 VkFenceImportFlagsKHR flags
6392 VkExternalFenceHandleTypeFlagBitsKHR handleType
6393 platform.HANDLE handle
6394 platform.LPCWSTR name
6395}
6396
6397@extension("VK_KHR_external_fence_win32") // 115
6398class VkExportFenceWin32HandleInfoKHR {
6399 VkStructureType sType
6400 const void* pNext
6401 const platform.SECURITY_ATTRIBUTES* pAttributes
6402 platform.DWORD dwAccess
6403 platform.LPCWSTR name
6404}
6405
6406@extension("VK_KHR_external_fence_win32") // 115
6407class VkFenceGetWin32HandleInfoKHR {
6408 VkStructureType sType
6409 const void* pNext
6410 VkFence fence
6411 VkExternalFenceHandleTypeFlagBitsKHR handleType
6412}
6413
6414@extension("VK_KHR_external_fence_fd") // 116
6415class VkImportFenceFdInfoKHR {
6416 VkStructureType sType
6417 const void* pNext
6418 VkFence fence
6419 VkFenceImportFlagsKHR flags
6420 VkExternalFenceHandleTypeFlagBitsKHR handleType
6421 int fd
6422}
6423
6424@extension("VK_KHR_external_fence_fd") // 116
6425class VkFenceGetFdInfoKHR {
6426 VkStructureType sType
6427 const void* pNext
6428 VkFence fence
6429 VkExternalFenceHandleTypeFlagBitsKHR handleType
6430}
6431
Jesse Hall076f95d2017-09-20 11:34:47 -07006432@extension("VK_KHR_maintenance2") // 118
6433class VkPhysicalDevicePointClippingPropertiesKHR {
6434 VkStructureType sType
6435 void* pNext
6436 VkPointClippingBehaviorKHR pointClippingBehavior
6437}
6438
6439@extension("VK_KHR_maintenance2") // 118
6440class VkInputAttachmentAspectReferenceKHR {
6441 u32 subpass
6442 u32 inputAttachmentIndex
6443 VkImageAspectFlags aspectMask
6444}
6445
6446@extension("VK_KHR_maintenance2") // 118
6447class VkRenderPassInputAttachmentAspectCreateInfoKHR {
6448 VkStructureType sType
6449 const void* pNext
6450 u32 aspectReferenceCount
6451 const VkInputAttachmentAspectReferenceKHR* pAspectReferences
6452}
6453
6454@extension("VK_KHR_maintenance2") // 118
6455class VkImageViewUsageCreateInfoKHR {
6456 VkStructureType sType
6457 const void* pNext
6458 VkImageUsageFlags usage
6459}
6460
6461@extension("VK_KHR_maintenance2") // 118
6462class VkPipelineTessellationDomainOriginStateCreateInfoKHR {
6463 VkStructureType sType
6464 const void* pNext
6465 VkTessellationDomainOriginKHR domainOrigin
6466}
6467
Jesse Hall05556b12017-05-18 17:40:25 -07006468@extension("VK_KHR_get_surface_capabilities2") // 120
Chris Forbese2d3ee12017-03-16 16:10:15 +13006469class VkPhysicalDeviceSurfaceInfo2KHR {
6470 VkStructureType sType
6471 const void* pNext
6472 VkSurfaceKHR surface
6473}
6474
Jesse Hall05556b12017-05-18 17:40:25 -07006475@extension("VK_KHR_get_surface_capabilities2") // 120
Chris Forbese2d3ee12017-03-16 16:10:15 +13006476class VkSurfaceCapabilities2KHR {
6477 VkStructureType sType
6478 void* pNext
6479 VkSurfaceCapabilitiesKHR surfaceCapabilities
6480}
6481
Jesse Hall05556b12017-05-18 17:40:25 -07006482@extension("VK_KHR_get_surface_capabilities2") // 120
Chris Forbese2d3ee12017-03-16 16:10:15 +13006483class VkSurfaceFormat2KHR {
6484 VkStructureType sType
6485 void* pNext
6486 VkSurfaceFormatKHR surfaceFormat
6487}
6488
Jesse Hall9492f992017-08-28 12:10:06 -07006489@extension("VK_KHR_variable_pointers") // 121
6490class VkPhysicalDeviceVariablePointerFeaturesKHR {
6491 VkStructureType sType
6492 void* pNext
6493 VkBool32 variablePointersStorageBuffer
6494 VkBool32 variablePointers
6495}
6496
Jesse Hall54f8d132018-04-18 08:16:59 -07006497@extension("VK_KHR_display_properties2") // 122
6498class VkDisplayProperties2KHR {
6499 VkStructureType sType
6500 void* pNext
6501 VkDisplayPropertiesKHR displayProperties
6502}
6503
6504@extension("VK_KHR_display_properties2") // 122
6505class VkDisplayPlaneProperties2KHR {
6506 VkStructureType sType
6507 void* pNext
6508 VkDisplayPlanePropertiesKHR displayPlaneProperties
6509}
6510
6511@extension("VK_KHR_display_properties2") // 122
6512class VkDisplayModeProperties2KHR {
6513 VkStructureType sType
6514 void* pNext
6515 VkDisplayModePropertiesKHR displayModeProperties
6516}
6517
6518@extension("VK_KHR_display_properties2") // 122
6519class VkDisplayPlaneInfo2KHR {
6520 VkStructureType sType
6521 const void* pNext
6522 VkDisplayModeKHR mode
6523 u32 planeIndex
6524}
6525
6526@extension("VK_KHR_display_properties2") // 122
6527class VkDisplayPlaneCapabilities2KHR {
6528 VkStructureType sType
6529 void* pNext
6530 VkDisplayPlaneCapabilitiesKHR capabilities
6531}
6532
Jesse Hallad250842017-03-10 18:35:38 -08006533@extension("VK_MVK_ios_surface") // 123
6534class VkIOSSurfaceCreateInfoMVK {
6535 VkStructureType sType
6536 const void* pNext
6537 VkIOSSurfaceCreateFlagsMVK flags
6538 const void* pView
6539}
6540
6541@extension("VK_MVK_macos_surface") // 124
6542class VkMacOSSurfaceCreateInfoMVK {
6543 VkStructureType sType
6544 const void* pNext
6545 VkMacOSSurfaceCreateFlagsMVK flags
6546 const void* pView
6547}
6548
Jesse Hall9492f992017-08-28 12:10:06 -07006549@extension("VK_KHR_dedicated_allocation") // 128
6550class VkMemoryDedicatedRequirementsKHR {
6551 VkStructureType sType
6552 void* pNext
6553 VkBool32 prefersDedicatedAllocation
6554 VkBool32 requiresDedicatedAllocation
6555}
6556
6557@extension("VK_KHR_dedicated_allocation") // 128
6558class VkMemoryDedicatedAllocateInfoKHR {
6559 VkStructureType sType
6560 const void* pNext
6561 VkImage image
6562 VkBuffer buffer
6563}
6564
Jesse Hall8c954d32018-01-17 22:06:20 -08006565@extension("VK_EXT_debug_utils") // 129
6566class VkDebugUtilsObjectNameInfoEXT {
6567 VkStructureType sType
6568 const void* pNext
6569 VkObjectType objectType
6570 u64 objectHandle
6571 const char* pObjectName
6572}
Jesse Hall72e6a132018-04-06 13:00:44 -07006573
Jesse Hall8c954d32018-01-17 22:06:20 -08006574@extension("VK_EXT_debug_utils") // 129
6575class VkDebugUtilsObjectTagInfoEXT {
6576 VkStructureType sType
6577 const void* pNext
6578 VkObjectType objectType
6579 u64 objectHandle
6580 u64 tagName
6581 platform.size_t tagSize
6582 const void* pTag
6583}
Jesse Hall72e6a132018-04-06 13:00:44 -07006584
Jesse Hall8c954d32018-01-17 22:06:20 -08006585@extension("VK_EXT_debug_utils") // 129
6586class VkDebugUtilsLabelEXT {
6587 VkStructureType sType
6588 const void* pNext
6589 const char* pLabelName
6590 f32[4] color
6591}
6592
6593@extension("VK_EXT_debug_utils") // 129
6594class VkDebugUtilsMessengerCallbackDataEXT {
6595 VkStructureType sType
6596 const void* pNext
6597 VkDebugUtilsMessengerCallbackDataFlagsEXT flags
6598 const char* pMessageIdName
6599 s32 messageIdNumber
6600 const char* pMessage
6601 u32 queueLabelCount
6602 VkDebugUtilsLabelEXT* pQueueLabels
6603 u32 cmdBufLabelCount
6604 VkDebugUtilsLabelEXT* pCmdBufLabels
6605 u32 objectCount
6606 VkDebugUtilsObjectNameInfoEXT* pObjects
6607}
6608
6609@extension("VK_EXT_debug_utils") // 129
6610class VkDebugUtilsMessengerCreateInfoEXT {
6611 VkStructureType sType
6612 const void* pNext
6613 VkDebugUtilsMessengerCreateFlagsEXT flags
6614 VkDebugUtilsMessageSeverityFlagsEXT messageSeverity
6615 VkDebugUtilsMessageTypeFlagsEXT messageType
6616 PFN_vkDebugUtilsMessengerCallbackEXT pfnUserCallback
6617 void* pUserData
6618}
6619
Jesse Hall36215a92018-01-18 15:04:37 -08006620@extension("VK_ANDROID_external_memory_android_hardware_buffer") // 131
6621class VkAndroidHardwareBufferUsageANDROID {
6622 VkStructureType sType
6623 void* pNext
6624 u64 androidHardwareBufferUsage
6625}
6626
6627@extension("VK_ANDROID_external_memory_android_hardware_buffer") // 130
6628class VkAndroidHardwareBufferPropertiesANDROID {
6629 VkStructureType sType
6630 void* pNext
6631 VkDeviceSize allocationSize
6632 u32 memoryTypeBits
6633}
6634
6635@extension("VK_ANDROID_external_memory_android_hardware_buffer") // 130
6636class VkAndroidHardwareBufferFormatPropertiesANDROID {
6637 VkStructureType sType
6638 void* pNext
6639 VkFormat format
6640 u64 externalFormat
6641 VkFormatFeatureFlags formatFeatures
6642 VkComponentMapping samplerYcbcrConversionComponents
6643 VkSamplerYcbcrModelConversion suggestedYcbcrModel
6644 VkSamplerYcbcrRange suggestedYcbcrRange
6645 VkChromaLocation suggestedXChromaOffset
6646 VkChromaLocation suggestedYChromaOffset
6647}
6648
6649@extension("VK_ANDROID_external_memory_android_hardware_buffer") // 130
6650class VkImportAndroidHardwareBufferInfoANDROID {
6651 VkStructureType sType
6652 const void* pNext
6653 platform.AHardwareBuffer* buffer
6654}
6655
6656@extension("VK_ANDROID_external_memory_android_hardware_buffer") // 130
6657class VkMemoryGetAndroidHardwareBufferInfoANDROID {
6658 VkStructureType sType
6659 const void* pNext
6660 VkDeviceMemory memory
6661}
6662
6663@extension("VK_ANDROID_external_memory_android_hardware_buffer") // 130
6664class VkExternalFormatANDROID {
6665 VkStructureType sType
6666 void* pNext
6667 u64 externalFormat
6668}
6669
Jesse Hall7ba0ac72017-07-07 17:13:23 -07006670@extension("VK_EXT_sampler_filter_minmax") // 131
6671class VkSamplerReductionModeCreateInfoEXT {
6672 VkStructureType sType
6673 const void* pNext
6674 VkSamplerReductionModeEXT reductionMode
6675}
6676
6677@extension("VK_EXT_sampler_filter_minmax") // 131
6678class VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT {
6679 VkStructureType sType
6680 void* pNext
6681 VkBool32 filterMinmaxSingleComponentFormats
6682 VkBool32 filterMinmaxImageComponentMapping
6683}
6684
Jesse Hall4af6c462018-09-10 09:04:25 -07006685@extension("VK_EXT_inline_uniform_block") // 139
6686class VkPhysicalDeviceInlineUniformBlockFeaturesEXT {
6687 VkStructureType sType
6688 void* pNext
6689 VkBool32 inlineUniformBlock
6690 VkBool32 descriptorBindingInlineUniformBlockUpdateAfterBind
6691}
6692
6693@extension("VK_EXT_inline_uniform_block") // 139
6694class VkPhysicalDeviceInlineUniformBlockPropertiesEXT {
6695 VkStructureType sType
6696 void* pNext
6697 u32 maxInlineUniformBlockSize
6698 u32 maxPerStageDescriptorInlineUniformBlocks
6699 u32 maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks
6700 u32 maxDescriptorSetInlineUniformBlocks
6701 u32 maxDescriptorSetUpdateAfterBindInlineUniformBlocks
6702}
6703
6704@extension("VK_EXT_inline_uniform_block") // 139
6705class VkWriteDescriptorSetInlineUniformBlockEXT {
6706 VkStructureType sType
6707 const void* pNext
6708 u32 dataSize
6709 const void* pData
6710}
6711
6712@extension("VK_EXT_inline_uniform_block") // 139
6713class VkDescriptorPoolInlineUniformBlockCreateInfoEXT {
6714 VkStructureType sType
6715 const void* pNext
6716 u32 maxInlineUniformBlockBindings
6717}
6718
Jesse Hall77726222017-09-19 14:49:27 -05006719@extension("VK_EXT_sample_locations") // 144
6720class VkSampleLocationEXT {
6721 f32 x
6722 f32 y
6723}
6724
6725@extension("VK_EXT_sample_locations") // 144
6726class VkSampleLocationsInfoEXT {
6727 VkStructureType sType
6728 const void* pNext
6729 VkSampleCountFlagBits sampleLocationsPerPixel
6730 VkExtent2D sampleLocationGridSize
6731 u32 sampleLocationsCount
6732 const VkSampleLocationEXT* pSampleLocations
6733}
6734
6735@extension("VK_EXT_sample_locations") // 144
6736class VkAttachmentSampleLocationsEXT {
6737 u32 attachmentIndex
6738 VkSampleLocationsInfoEXT sampleLocationsInfo
6739}
6740
6741@extension("VK_EXT_sample_locations") // 144
6742class VkSubpassSampleLocationsEXT {
6743 u32 subpassIndex
6744 VkSampleLocationsInfoEXT sampleLocationsInfo
6745}
6746
6747@extension("VK_EXT_sample_locations") // 144
6748class VkRenderPassSampleLocationsBeginInfoEXT {
6749 VkStructureType sType
6750 const void* pNext
6751 u32 attachmentInitialSampleLocationsCount
6752 const VkAttachmentSampleLocationsEXT* pAttachmentInitialSampleLocations
6753 u32 postSubpassSampleLocationsCount
Jesse Hall8c954d32018-01-17 22:06:20 -08006754 const VkSubpassSampleLocationsEXT* pPostSubpassSampleLocations
Jesse Hall77726222017-09-19 14:49:27 -05006755}
6756
6757@extension("VK_EXT_sample_locations") // 144
6758class VkPipelineSampleLocationsStateCreateInfoEXT {
6759 VkStructureType sType
6760 const void* pNext
6761 VkBool32 sampleLocationsEnable
6762 VkSampleLocationsInfoEXT sampleLocationsInfo
6763}
6764
6765@extension("VK_EXT_sample_locations") // 144
6766class VkPhysicalDeviceSampleLocationsPropertiesEXT {
6767 VkStructureType sType
6768 void* pNext
6769 VkSampleCountFlags sampleLocationSampleCounts
6770 VkExtent2D maxSampleLocationGridSize
6771 f32[2] sampleLocationCoordinateRange
6772 u32 sampleLocationSubPixelBits
6773 VkBool32 variableSampleLocations
6774}
6775
6776@extension("VK_EXT_sample_locations") // 144
6777class VkMultisamplePropertiesEXT {
6778 VkStructureType sType
6779 void* pNext
6780 VkExtent2D maxSampleLocationGridSize
6781}
6782
Jesse Hall9492f992017-08-28 12:10:06 -07006783@extension("VK_KHR_get_memory_requirements2") // 147
6784class VkBufferMemoryRequirementsInfo2KHR {
6785 VkStructureType sType
6786 const void* pNext
6787 VkBuffer buffer
6788}
6789
6790@extension("VK_KHR_get_memory_requirements2") // 147
6791class VkImageMemoryRequirementsInfo2KHR {
6792 VkStructureType sType
6793 const void* pNext
6794 VkImage image
6795}
6796
6797@extension("VK_KHR_get_memory_requirements2") // 147
6798class VkImageSparseMemoryRequirementsInfo2KHR {
6799 VkStructureType sType
6800 const void* pNext
6801 VkImage image
6802}
6803
6804@extension("VK_KHR_get_memory_requirements2") // 147
6805class VkMemoryRequirements2KHR {
6806 VkStructureType sType
6807 void* pNext
6808 VkMemoryRequirements memoryRequirements
6809}
6810
6811@extension("VK_KHR_get_memory_requirements2") // 147
6812class VkSparseImageMemoryRequirements2KHR {
6813 VkStructureType sType
6814 void* pNext
6815 VkSparseImageMemoryRequirements memoryRequirements
6816}
6817
Jesse Hall076f95d2017-09-20 11:34:47 -07006818@extension("VK_KHR_image_format_list") // 148
6819class VkImageFormatListCreateInfoKHR {
6820 VkStructureType sType
6821 const void* pNext
6822 u32 viewFormatCount
6823 const VkFormat* pViewFormats
6824}
6825
Jesse Hall7ba0ac72017-07-07 17:13:23 -07006826@extension("VK_EXT_blend_operation_advanced") // 149
6827class VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT {
6828 VkStructureType sType
6829 void* pNext
6830 VkBool32 advancedBlendCoherentOperations
6831}
6832
6833@extension("VK_EXT_blend_operation_advanced") // 149
6834class VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT {
6835 VkStructureType sType
6836 void* pNext
6837 u32 advancedBlendMaxColorAttachments
6838 VkBool32 advancedBlendIndependentBlend
6839 VkBool32 advancedBlendNonPremultipliedSrcColor
6840 VkBool32 advancedBlendNonPremultipliedDstColor
6841 VkBool32 advancedBlendCorrelatedOverlap
6842 VkBool32 advancedBlendAllOperations
6843}
6844
6845@extension("VK_EXT_blend_operation_advanced") // 149
6846class VkPipelineColorBlendAdvancedStateCreateInfoEXT {
6847 VkStructureType sType
6848 const void* pNext
6849 VkBool32 srcPremultiplied
6850 VkBool32 dstPremultiplied
6851 VkBlendOverlapEXT blendOverlap
6852}
6853
6854@extension("VK_NV_fragment_coverage_to_color") // 150
6855class VkPipelineCoverageToColorStateCreateInfoNV {
6856 VkStructureType sType
6857 const void* pNext
6858 VkPipelineCoverageToColorStateCreateFlagsNV flags
6859 VkBool32 coverageToColorEnable
6860 u32 coverageToColorLocation
6861}
6862
6863@extension("VK_NV_framebuffer_mixed_samples") // 153
6864class VkPipelineCoverageModulationStateCreateInfoNV {
6865 VkStructureType sType
6866 const void* pNext
6867 VkPipelineCoverageModulationStateCreateFlagsNV flags
6868 VkCoverageModulationModeNV coverageModulationMode
6869 VkBool32 coverageModulationTableEnable
6870 u32 coverageModulationTableCount
6871 const f32* pCoverageModulationTable
6872}
6873
Jesse Hall076f95d2017-09-20 11:34:47 -07006874@extension("VK_KHR_sampler_ycbcr_conversion") // 157
6875class VkSamplerYcbcrConversionCreateInfoKHR {
6876 VkStructureType sType
6877 const void* pNext
6878 VkFormat format
6879 VkSamplerYcbcrModelConversionKHR ycbcrModel
6880 VkSamplerYcbcrRangeKHR ycbcrRange
6881 VkComponentMapping components
6882 VkChromaLocationKHR xChromaOffset
6883 VkChromaLocationKHR yChromaOffset
6884 VkFilter chromaFilter
6885 VkBool32 forceExplicitReconstruction
6886}
6887
6888@extension("VK_KHR_sampler_ycbcr_conversion") // 157
6889class VkSamplerYcbcrConversionInfoKHR {
6890 VkStructureType sType
6891 const void* pNext
6892 VkSamplerYcbcrConversionKHR conversion
6893}
6894
6895@extension("VK_KHR_sampler_ycbcr_conversion") // 157
6896class VkBindImagePlaneMemoryInfoKHR {
6897 VkStructureType sType
6898 const void* pNext
6899 VkImageAspectFlagBits planeAspect
6900}
6901
6902@extension("VK_KHR_sampler_ycbcr_conversion") // 157
6903class VkImagePlaneMemoryRequirementsInfoKHR {
6904 VkStructureType sType
6905 const void* pNext
6906 VkImageAspectFlagBits planeAspect
6907}
6908
6909@extension("VK_KHR_sampler_ycbcr_conversion") // 157
6910class VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR {
6911 VkStructureType sType
6912 void* pNext
6913 VkBool32 samplerYcbcrConversion
6914}
6915
6916@extension("VK_KHR_sampler_ycbcr_conversion") // 157
6917class VkSamplerYcbcrConversionImageFormatPropertiesKHR {
6918 VkStructureType sType
6919 void* pNext
6920 u32 combinedImageSamplerDescriptorCount
6921}
6922
6923@extension("VK_KHR_bind_memory2") // 158
6924class VkBindBufferMemoryInfoKHR {
6925 VkStructureType sType
6926 const void* pNext
6927 VkBuffer buffer
6928 VkDeviceMemory memory
6929 VkDeviceSize memoryOffset
6930}
6931
6932@extension("VK_KHR_bind_memory2") // 158
6933class VkBindImageMemoryInfoKHR {
6934 VkStructureType sType
6935 const void* pNext
6936 VkImage image
6937 VkDeviceMemory memory
6938 VkDeviceSize memoryOffset
6939}
6940
Jesse Hall77726222017-09-19 14:49:27 -05006941@extension("VK_EXT_validation_cache") // 161
6942class VkValidationCacheCreateInfoEXT {
6943 VkStructureType sType
6944 const void* pNext
6945 VkValidationCacheCreateFlagsEXT flags
6946 platform.size_t initialDataSize
6947 const void* pInitialData
6948}
6949
6950@extension("VK_EXT_validation_cache") // 161
6951class VkShaderModuleValidationCacheCreateInfoEXT {
6952 VkStructureType sType
6953 const void* pNext
6954 VkValidationCacheEXT validationCache
6955}
6956
Jesse Hall72e6a132018-04-06 13:00:44 -07006957@extension("VK_EXT_descriptor_indexing") // 162
6958class VkDescriptorSetLayoutBindingFlagsCreateInfoEXT {
6959 VkStructureType sType
6960 const void* pNext
6961 u32 bindingCount
6962 const VkDescriptorBindingFlagsEXT* pBindingFlags
6963}
6964
6965@extension("VK_EXT_descriptor_indexing") // 162
6966class VkPhysicalDeviceDescriptorIndexingFeaturesEXT {
6967 VkStructureType sType
6968 void* pNext
6969 VkBool32 shaderInputAttachmentArrayDynamicIndexing
6970 VkBool32 shaderUniformTexelBufferArrayDynamicIndexing
6971 VkBool32 shaderStorageTexelBufferArrayDynamicIndexing
6972 VkBool32 shaderUniformBufferArrayNonUniformIndexing
6973 VkBool32 shaderSampledImageArrayNonUniformIndexing
6974 VkBool32 shaderStorageBufferArrayNonUniformIndexing
6975 VkBool32 shaderStorageImageArrayNonUniformIndexing
6976 VkBool32 shaderInputAttachmentArrayNonUniformIndexing
6977 VkBool32 shaderUniformTexelBufferArrayNonUniformIndexing
6978 VkBool32 shaderStorageTexelBufferArrayNonUniformIndexing
6979 VkBool32 descriptorBindingUniformBufferUpdateAfterBind
6980 VkBool32 descriptorBindingSampledImageUpdateAfterBind
6981 VkBool32 descriptorBindingStorageImageUpdateAfterBind
6982 VkBool32 descriptorBindingStorageBufferUpdateAfterBind
6983 VkBool32 descriptorBindingUniformTexelBufferUpdateAfterBind
6984 VkBool32 descriptorBindingStorageTexelBufferUpdateAfterBind
6985 VkBool32 descriptorBindingUpdateUnusedWhilePending
6986 VkBool32 descriptorBindingPartiallyBound
6987 VkBool32 descriptorBindingVariableDescriptorCount
6988 VkBool32 runtimeDescriptorArray
6989}
6990
6991@extension("VK_EXT_descriptor_indexing") // 162
6992class VkPhysicalDeviceDescriptorIndexingPropertiesEXT {
6993 VkStructureType sType
6994 void* pNext
6995 u32 maxUpdateAfterBindDescriptorsInAllPools
6996 VkBool32 shaderUniformBufferArrayNonUniformIndexingNative
6997 VkBool32 shaderSampledImageArrayNonUniformIndexingNative
6998 VkBool32 shaderStorageBufferArrayNonUniformIndexingNative
6999 VkBool32 shaderStorageImageArrayNonUniformIndexingNative
7000 VkBool32 shaderInputAttachmentArrayNonUniformIndexingNative
7001 VkBool32 robustBufferAccessUpdateAfterBind
7002 VkBool32 quadDivergentImplicitLod
7003 u32 maxPerStageDescriptorUpdateAfterBindSamplers
7004 u32 maxPerStageDescriptorUpdateAfterBindUniformBuffers
7005 u32 maxPerStageDescriptorUpdateAfterBindStorageBuffers
7006 u32 maxPerStageDescriptorUpdateAfterBindSampledImages
7007 u32 maxPerStageDescriptorUpdateAfterBindStorageImages
7008 u32 maxPerStageDescriptorUpdateAfterBindInputAttachments
7009 u32 maxPerStageUpdateAfterBindResources
7010 u32 maxDescriptorSetUpdateAfterBindSamplers
7011 u32 maxDescriptorSetUpdateAfterBindUniformBuffers
7012 u32 maxDescriptorSetUpdateAfterBindUniformBuffersDynamic
7013 u32 maxDescriptorSetUpdateAfterBindStorageBuffers
7014 u32 maxDescriptorSetUpdateAfterBindStorageBuffersDynamic
7015 u32 maxDescriptorSetUpdateAfterBindSampledImages
7016 u32 maxDescriptorSetUpdateAfterBindStorageImages
7017 u32 maxDescriptorSetUpdateAfterBindInputAttachments
7018}
7019
7020@extension("VK_EXT_descriptor_indexing") // 162
7021class VkDescriptorSetVariableDescriptorCountAllocateInfoEXT {
7022 VkStructureType sType
7023 const void* pNext
7024 u32 descriptorSetCount
7025 const u32* pDescriptorCounts
7026}
7027
7028@extension("VK_EXT_descriptor_indexing") // 162
7029class VkDescriptorSetVariableDescriptorCountLayoutSupportEXT {
7030 VkStructureType sType
7031 void* pNext
7032 u32 maxVariableDescriptorCount
7033}
7034
Jesse Hallb5297192018-09-22 20:52:13 +02007035@extension("VK_NV_shading_rate_image") // 165
7036class VkShadingRatePaletteNV {
7037 u32 shadingRatePaletteEntryCount
7038 const VkShadingRatePaletteEntryNV* pShadingRatePaletteEntries
7039}
7040
7041@extension("VK_NV_shading_rate_image") // 165
7042class VkPipelineViewportShadingRateImageStateCreateInfoNV {
7043 VkStructureType sType
7044 const void* pNext
7045 VkBool32 shadingRateImageEnable
7046 u32 viewportCount
7047 const VkShadingRatePaletteNV* pShadingRatePalettes
7048}
7049
7050@extension("VK_NV_shading_rate_image") // 165
7051class VkPhysicalDeviceShadingRateImageFeaturesNV {
7052 VkStructureType sType
7053 void* pNext
7054 VkBool32 shadingRateImage
7055 VkBool32 shadingRateCoarseSampleOrder
7056}
7057
7058@extension("VK_NV_shading_rate_image") // 165
7059class VkPhysicalDeviceShadingRateImagePropertiesNV {
7060 VkStructureType sType
7061 void* pNext
7062 VkExtent2D shadingRateTexelSize
7063 u32 shadingRatePaletteSize
7064 u32 shadingRateMaxCoarseSamples
7065}
7066
7067@extension("VK_NV_shading_rate_image") // 165
7068class VkCoarseSampleLocationNV {
7069 u32 pixelX
7070 u32 pixelY
7071 u32 sample
7072}
7073
7074@extension("VK_NV_shading_rate_image") // 165
7075class VkCoarseSampleOrderCustomNV {
7076 VkShadingRatePaletteEntryNV shadingRate
7077 u32 sampleCount
7078 u32 sampleLocationCount
7079 const VkCoarseSampleLocationNV* pSampleLocations
7080}
7081
7082@extension("VK_NV_shading_rate_image") // 165
7083class VkPipelineViewportCoarseSampleOrderStateCreateInfoNV {
7084 VkStructureType sType
7085 const void* pNext
7086 VkCoarseSampleOrderTypeNV sampleOrderType
7087 u32 customSampleOrderCount
7088 const VkCoarseSampleOrderCustomNV* pCustomSampleOrders
7089}
7090
7091@extension("VK_NVX_raytracing") // 166
7092class VkRaytracingPipelineCreateInfoNVX {
7093 VkStructureType sType
7094 const void* pNext
7095 VkPipelineCreateFlags flags
7096 u32 stageCount
7097 const VkPipelineShaderStageCreateInfo* pStages
7098 const u32* pGroupNumbers
7099 u32 maxRecursionDepth
7100 VkPipelineLayout layout
7101 VkPipeline basePipelineHandle
7102 s32 basePipelineIndex
7103}
7104
7105@extension("VK_NVX_raytracing") // 166
7106class VkGeometryTrianglesNVX {
7107 VkStructureType sType
7108 const void* pNext
7109 VkBuffer vertexData
7110 VkDeviceSize vertexOffset
7111 u32 vertexCount
7112 VkDeviceSize vertexStride
7113 VkFormat vertexFormat
7114 VkBuffer indexData
7115 VkDeviceSize indexOffset
7116 u32 indexCount
7117 VkIndexType indexType
7118 VkBuffer transformData
7119 VkDeviceSize transformOffset
7120}
7121
7122@extension("VK_NVX_raytracing") // 166
7123class VkGeometryAABBNVX {
7124 VkStructureType sType
7125 const void* pNext
7126 VkBuffer aabbData
7127 u32 numAABBs
7128 u32 stride
7129 VkDeviceSize offset
7130}
7131
7132@extension("VK_NVX_raytracing") // 166
7133class VkGeometryDataNVX {
7134 VkGeometryTrianglesNVX triangles
7135 VkGeometryAABBNVX aabbs
7136}
7137
7138@extension("VK_NVX_raytracing") // 166
7139class VkGeometryNVX {
7140 VkStructureType sType
7141 const void* pNext
7142 VkGeometryTypeNVX geometryType
7143 VkGeometryDataNVX geometry
7144 VkGeometryFlagsNVX flags
7145}
7146
7147@extension("VK_NVX_raytracing") // 166
7148class VkAccelerationStructureCreateInfoNVX {
7149 VkStructureType sType
7150 const void* pNext
7151 VkAccelerationStructureTypeNVX type
7152 VkBuildAccelerationStructureFlagsNVX flags
7153 VkDeviceSize compactedSize
7154 u32 instanceCount
7155 u32 geometryCount
7156 const VkGeometryNVX* pGeometries
7157}
7158
7159@extension("VK_NVX_raytracing") // 166
7160class VkBindAccelerationStructureMemoryInfoNVX {
7161 VkStructureType sType
7162 const void* pNext
7163 VkAccelerationStructureNVX accelerationStructure
7164 VkDeviceMemory memory
7165 VkDeviceSize memoryOffset
7166 u32 deviceIndexCount
7167 const u32* pDeviceIndices
7168}
7169
7170@extension("VK_NVX_raytracing") // 166
7171class VkDescriptorAccelerationStructureInfoNVX {
7172 VkStructureType sType
7173 const void* pNext
7174 u32 accelerationStructureCount
7175 const VkAccelerationStructureNVX* pAccelerationStructures
7176}
7177
7178@extension("VK_NVX_raytracing") // 166
7179class VkAccelerationStructureMemoryRequirementsInfoNVX {
7180 VkStructureType sType
7181 const void* pNext
7182 VkAccelerationStructureNVX accelerationStructure
7183}
7184
7185@extension("VK_NVX_raytracing") // 166
7186class VkPhysicalDeviceRaytracingPropertiesNVX {
7187 VkStructureType sType
7188 void* pNext
7189 u32 shaderHeaderSize
7190 u32 maxRecursionDepth
7191 u32 maxGeometryCount
7192}
7193
7194@extension("VK_NV_representative_fragment_test") // 167
7195class VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV {
7196 VkStructureType sType
7197 void* pNext
7198 VkBool32 representativeFragmentTest
7199}
7200
7201@extension("VK_NV_representative_fragment_test") // 167
7202class VkPipelineRepresentativeFragmentTestStateCreateInfoNV {
7203 VkStructureType sType
7204 const void* pNext
7205 VkBool32 representativeFragmentTestEnable
7206}
7207
Daniel Koch09f7bf92017-10-05 00:26:58 -04007208@extension("VK_KHR_maintenance3") // 169
7209class VkPhysicalDeviceMaintenance3PropertiesKHR {
7210 VkStructureType sType
7211 void* pNext
7212 u32 maxPerSetDescriptors
7213 VkDeviceSize maxMemoryAllocationSize
7214}
7215
7216@extension("VK_KHR_maintenance3") // 169
7217class VkDescriptorSetLayoutSupportKHR {
7218 VkStructureType sType
7219 void* pNext
7220 VkBool32 supported
7221}
7222
Jesse Hall8c954d32018-01-17 22:06:20 -08007223@extension("VK_EXT_global_priority") // 175
7224class VkDeviceQueueGlobalPriorityCreateInfoEXT {
7225 VkStructureType sType
7226 const void* pNext
7227 VkQueueGlobalPriorityEXT globalPriority
7228}
7229
Jesse Halla13a3cf2018-07-09 15:51:52 -07007230@extension("VK_KHR_8bit_storage") // 178
7231class VkPhysicalDevice8BitStorageFeaturesKHR {
7232 VkStructureType sType
7233 void* pNext
7234 VkBool32 storageBuffer8BitAccess
7235 VkBool32 uniformAndStorageBuffer8BitAccess
7236 VkBool32 storagePushConstant8
7237}
7238
Jesse Hall8c954d32018-01-17 22:06:20 -08007239@extension("VK_EXT_external_memory_host") // 179
7240class VkImportMemoryHostPointerInfoEXT {
7241 VkStructureType sType
7242 const void* pNext
7243 VkExternalMemoryHandleTypeFlagBits handleType
7244 void* pHostPointer
7245}
7246
7247@extension("VK_EXT_external_memory_host") // 179
7248class VkMemoryHostPointerPropertiesEXT {
7249 VkStructureType sType
7250 void* pNext
7251 u32 memoryTypeBits
7252}
7253
7254@extension("VK_EXT_external_memory_host") // 179
7255class VkPhysicalDeviceExternalMemoryHostPropertiesEXT {
7256 VkStructureType sType
7257 void* pNext
7258 VkDeviceSize minImportedHostPointerAlignment
7259}
7260
Jesse Hall2e6853c2018-10-02 14:05:37 -07007261@extension("VK_KHR_shader_atomic_int64") // 181
7262class VkPhysicalDeviceShaderAtomicInt64FeaturesKHR {
7263 VkStructureType sType
7264 void* pNext
7265 VkBool32 shaderBufferInt64Atomics
7266 VkBool32 shaderSharedInt64Atomics
7267}
7268
Jesse Hall72e6a132018-04-06 13:00:44 -07007269@extension("VK_AMD_shader_core_properties") // 186
7270class VkPhysicalDeviceShaderCorePropertiesAMD {
7271 VkStructureType sType
7272 void* pNext
7273 u32 shaderEngineCount
7274 u32 shaderArraysPerEngineCount
7275 u32 computeUnitsPerShaderArray
7276 u32 simdPerComputeUnit
7277 u32 wavefrontsPerSimd
7278 u32 wavefrontSize
7279 u32 sgprsPerSimd
7280 u32 minSgprAllocation
7281 u32 maxSgprAllocation
7282 u32 sgprAllocationGranularity
7283 u32 vgprsPerSimd
7284 u32 minVgprAllocation
7285 u32 maxVgprAllocation
7286 u32 vgprAllocationGranularity
7287}
7288
7289@extension("VK_EXT_vertex_attribute_divisor") // 191
7290class VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT {
7291 VkStructureType sType
7292 void* pNext
7293 u32 maxVertexAttribDivisor
7294}
7295
7296@extension("VK_EXT_vertex_attribute_divisor") // 191
7297class VkVertexInputBindingDivisorDescriptionEXT {
7298 u32 binding
7299 u32 divisor
7300}
7301
7302@extension("VK_EXT_vertex_attribute_divisor") // 191
7303class VkPipelineVertexInputDivisorStateCreateInfoEXT {
7304 VkStructureType sType
7305 const void* pNext
7306 u32 vertexBindingDivisorCount
7307 const VkVertexInputBindingDivisorDescriptionEXT* pVertexBindingDivisors
7308}
7309
Jesse Hall4af6c462018-09-10 09:04:25 -07007310@extension("VK_EXT_vertex_attribute_divisor") // 191
7311class VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT {
7312 VkStructureType sType
7313 void* pNext
7314 VkBool32 vertexAttributeInstanceRateDivisor
7315 VkBool32 vertexAttributeInstanceRateZeroDivisor
7316}
7317
Jesse Hall2e6853c2018-10-02 14:05:37 -07007318@extension("VK_KHR_driver_properties") // 197
7319class VkConformanceVersionKHR {
7320 u8 major
7321 u8 minor
7322 u8 subminor
7323 u8 patch
7324}
7325
7326@extension("VK_KHR_driver_properties") // 197
7327class VkPhysicalDeviceDriverPropertiesKHR {
7328 VkStructureType sType
7329 void* pNext
7330 u32 driverID
7331 char[VK_MAX_DRIVER_NAME_SIZE_KHR] driverName
7332 char[VK_MAX_DRIVER_INFO_SIZE_KHR] driverInfo
7333 VkConformanceVersionKHR conformanceVersion
7334}
7335
Jesse Hallb5297192018-09-22 20:52:13 +02007336@extension("VK_NV_compute_shader_derivatives") // 202
7337class VkPhysicalDeviceComputeShaderDerivativesFeaturesNV {
7338 VkStructureType sType
7339 void* pNext
7340 VkBool32 computeDerivativeGroupQuads
7341 VkBool32 computeDerivativeGroupLinear
7342}
7343
7344@extension("VK_NV_mesh_shader") // 203
7345class VkPhysicalDeviceMeshShaderFeaturesNV {
7346 VkStructureType sType
7347 void* pNext
7348 VkBool32 taskShader
7349 VkBool32 meshShader
7350}
7351
7352@extension("VK_NV_mesh_shader") // 203
7353class VkPhysicalDeviceMeshShaderPropertiesNV {
7354 VkStructureType sType
7355 void* pNext
7356 u32 maxDrawMeshTasksCount
7357 u32 maxTaskWorkGroupInvocations
7358 u32[3] maxTaskWorkGroupSize
7359 u32 maxTaskTotalMemorySize
7360 u32 maxTaskOutputCount
7361 u32 maxMeshWorkGroupInvocations
7362 u32[3] maxMeshWorkGroupSize
7363 u32 maxMeshTotalMemorySize
7364 u32 maxMeshOutputVertices
7365 u32 maxMeshOutputPrimitives
7366 u32 maxMeshMultiviewViewCount
7367 u32 meshOutputPerVertexGranularity
7368 u32 meshOutputPerPrimitiveGranularity
7369}
7370
7371@extension("VK_NV_mesh_shader") // 203
7372class VkDrawMeshTasksIndirectCommandNV {
7373 u32 taskCount
7374 u32 firstTask
7375}
7376
7377@extension("VK_NV_fragment_shader_barycentric") // 204
7378class VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV {
7379 VkStructureType sType
7380 void* pNext
7381 VkBool32 fragmentShaderBarycentric
7382}
7383
7384@extension("VK_NV_shader_image_footprint") // 205
7385class VkPhysicalDeviceShaderImageFootprintFeaturesNV {
7386 VkStructureType sType
7387 void* pNext
7388 VkBool32 imageFootprint
7389}
7390
7391@extension("VK_NV_scissor_exclusive") // 206
7392class VkPipelineViewportExclusiveScissorStateCreateInfoNV {
7393 VkStructureType sType
7394 const void* pNext
7395 u32 exclusiveScissorCount
7396 const VkRect2D* pExclusiveScissors
7397}
7398
7399@extension("VK_NV_scissor_exclusive") // 206
7400class VkPhysicalDeviceExclusiveScissorFeaturesNV {
7401 VkStructureType sType
7402 void* pNext
7403 VkBool32 exclusiveScissor
7404}
7405
Jesse Hall115df0c2018-07-30 12:00:59 -07007406@extension("VK_NV_device_diagnostic_checkpoints") // 207
7407class VkQueueFamilyCheckpointPropertiesNV {
7408 VkStructureType sType
7409 void* pNext
7410 VkPipelineStageFlags checkpointExecutionStageMask
7411}
7412
7413@extension("VK_NV_device_diagnostic_checkpoints") // 207
7414class VkCheckpointDataNV {
7415 VkStructureType sType
7416 void* pNext
7417 VkPipelineStageFlagBits stage
7418 void* pCheckpointMarker
7419}
7420
Jesse Hall4af6c462018-09-10 09:04:25 -07007421@extension("VK_KHR_vulkan_memory_model") // 212
7422class VkPhysicalDeviceVulkanMemoryModelFeaturesKHR {
7423 VkStructureType sType
7424 void* pNext
7425 VkBool32 vulkanMemoryModel
7426 VkBool32 vulkanMemoryModelDeviceScope
7427}
7428
Jesse Hall497c46f2018-10-08 12:52:48 -07007429@extension("VK_FUCHSIA_imagepipe_surface") // 215
7430class VkImagePipeSurfaceCreateInfoFUCHSIA {
7431 VkStructureType sType
7432 const void* pNext
7433 VkImagePipeSurfaceCreateFlagsFUCHSIA flags
7434 platform.zx_handle_t imagePipeHandle
7435}
7436
Daniel Koch09f7bf92017-10-05 00:26:58 -04007437
Jesse Halld27f6aa2015-08-15 17:58:48 -07007438////////////////
7439// Commands //
7440////////////////
7441
7442// Function pointers. TODO: add support for function pointers.
7443
7444@external type void* PFN_vkVoidFunction
7445@pfn cmd void vkVoidFunction() {
7446}
7447
Jesse Hall3fbc8562015-11-29 22:10:52 -08007448@external type void* PFN_vkAllocationFunction
7449@pfn cmd void* vkAllocationFunction(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007450 void* pUserData,
7451 platform.size_t size,
7452 platform.size_t alignment,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007453 VkSystemAllocationScope allocationScope) {
Jesse Hall03b6fe12015-11-24 12:44:21 -08007454 return ?
7455}
7456
Jesse Hall3fbc8562015-11-29 22:10:52 -08007457@external type void* PFN_vkReallocationFunction
7458@pfn cmd void* vkReallocationFunction(
Jesse Hall03b6fe12015-11-24 12:44:21 -08007459 void* pUserData,
7460 void* pOriginal,
7461 platform.size_t size,
7462 platform.size_t alignment,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007463 VkSystemAllocationScope allocationScope) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007464 return ?
7465}
7466
7467@external type void* PFN_vkFreeFunction
7468@pfn cmd void vkFreeFunction(
7469 void* pUserData,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007470 void* pMemory) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007471}
7472
Jesse Hall3fbc8562015-11-29 22:10:52 -08007473@external type void* PFN_vkInternalAllocationNotification
7474@pfn cmd void vkInternalAllocationNotification(
Jesse Hall03b6fe12015-11-24 12:44:21 -08007475 void* pUserData,
7476 platform.size_t size,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007477 VkInternalAllocationType allocationType,
7478 VkSystemAllocationScope allocationScope) {
Jesse Hall03b6fe12015-11-24 12:44:21 -08007479}
7480
7481@external type void* PFN_vkInternalFreeNotification
7482@pfn cmd void vkInternalFreeNotification(
7483 void* pUserData,
7484 platform.size_t size,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007485 VkInternalAllocationType allocationType,
7486 VkSystemAllocationScope allocationScope) {
Jesse Hall03b6fe12015-11-24 12:44:21 -08007487}
Jesse Halld27f6aa2015-08-15 17:58:48 -07007488
7489// Global functions
7490
7491@threadSafety("system")
7492cmd VkResult vkCreateInstance(
7493 const VkInstanceCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007494 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007495 VkInstance* pInstance) {
7496 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO)
7497
7498 instance := ?
7499 pInstance[0] = instance
7500 State.Instances[instance] = new!InstanceObject()
7501
Jesse Hall3dd678a2016-01-08 21:52:01 -08007502 layers := pCreateInfo.ppEnabledLayerNames[0:pCreateInfo.enabledLayerCount]
7503 extensions := pCreateInfo.ppEnabledExtensionNames[0:pCreateInfo.enabledExtensionCount]
Jesse Halld27f6aa2015-08-15 17:58:48 -07007504
7505 return ?
7506}
7507
7508@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007509cmd void vkDestroyInstance(
Jesse Hall03b6fe12015-11-24 12:44:21 -08007510 VkInstance instance,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007511 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007512 instanceObject := GetInstance(instance)
7513
7514 State.Instances[instance] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07007515}
7516
7517@threadSafety("system")
7518cmd VkResult vkEnumeratePhysicalDevices(
7519 VkInstance instance,
7520 u32* pPhysicalDeviceCount,
7521 VkPhysicalDevice* pPhysicalDevices) {
7522 instanceObject := GetInstance(instance)
7523
7524 physicalDeviceCount := as!u32(?)
7525 pPhysicalDeviceCount[0] = physicalDeviceCount
7526 physicalDevices := pPhysicalDevices[0:physicalDeviceCount]
7527
7528 for i in (0 .. physicalDeviceCount) {
7529 physicalDevice := ?
7530 physicalDevices[i] = physicalDevice
7531 if !(physicalDevice in State.PhysicalDevices) {
7532 State.PhysicalDevices[physicalDevice] = new!PhysicalDeviceObject(instance: instance)
7533 }
7534 }
7535
7536 return ?
7537}
7538
7539cmd PFN_vkVoidFunction vkGetDeviceProcAddr(
7540 VkDevice device,
7541 const char* pName) {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007542 if device != NULL_HANDLE {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007543 device := GetDevice(device)
7544 }
7545
7546 return ?
7547}
7548
7549cmd PFN_vkVoidFunction vkGetInstanceProcAddr(
7550 VkInstance instance,
7551 const char* pName) {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007552 if instance != NULL_HANDLE {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007553 instanceObject := GetInstance(instance)
7554 }
7555
7556 return ?
7557}
7558
Jesse Hall606a54e2015-11-19 22:17:28 -08007559cmd void vkGetPhysicalDeviceProperties(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007560 VkPhysicalDevice physicalDevice,
7561 VkPhysicalDeviceProperties* pProperties) {
7562 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
7563
7564 properties := ?
7565 pProperties[0] = properties
Jesse Halld27f6aa2015-08-15 17:58:48 -07007566}
7567
Jesse Hall606a54e2015-11-19 22:17:28 -08007568cmd void vkGetPhysicalDeviceQueueFamilyProperties(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007569 VkPhysicalDevice physicalDevice,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007570 u32* pQueueFamilyPropertyCount,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007571 VkQueueFamilyProperties* pQueueFamilyProperties) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007572 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007573 // TODO: Figure out how to express fetch-count-or-properties
7574 // This version fails 'apic validate' with 'fence not allowed in
7575 // *semantic.Branch'. Other attempts have failed with the same or other
7576 // errors.
7577 // if pQueueFamilyProperties != null {
7578 // queuesProperties := pQueueFamilyProperties[0:pCount[0]]
7579 // for i in (0 .. pCount[0]) {
7580 // queueProperties := as!VkQueueFamilyProperties(?)
7581 // queuesProperties[i] = queueProperties
7582 // }
7583 // } else {
7584 // count := ?
7585 // pCount[0] = count
7586 // }
Jesse Halld27f6aa2015-08-15 17:58:48 -07007587}
7588
Jesse Hall606a54e2015-11-19 22:17:28 -08007589cmd void vkGetPhysicalDeviceMemoryProperties(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007590 VkPhysicalDevice physicalDevice,
7591 VkPhysicalDeviceMemoryProperties* pMemoryProperties) {
7592 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
7593
7594 memoryProperties := ?
7595 pMemoryProperties[0] = memoryProperties
Jesse Halld27f6aa2015-08-15 17:58:48 -07007596}
7597
Jesse Hall606a54e2015-11-19 22:17:28 -08007598cmd void vkGetPhysicalDeviceFeatures(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007599 VkPhysicalDevice physicalDevice,
7600 VkPhysicalDeviceFeatures* pFeatures) {
7601 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
7602
7603 features := ?
7604 pFeatures[0] = features
Jesse Halld27f6aa2015-08-15 17:58:48 -07007605}
7606
Jesse Hall606a54e2015-11-19 22:17:28 -08007607cmd void vkGetPhysicalDeviceFormatProperties(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007608 VkPhysicalDevice physicalDevice,
7609 VkFormat format,
7610 VkFormatProperties* pFormatProperties) {
7611 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
7612
7613 formatProperties := ?
7614 pFormatProperties[0] = formatProperties
Jesse Halld27f6aa2015-08-15 17:58:48 -07007615}
7616
Jesse Halla9e57032015-11-30 01:03:10 -08007617cmd VkResult vkGetPhysicalDeviceImageFormatProperties(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007618 VkPhysicalDevice physicalDevice,
7619 VkFormat format,
7620 VkImageType type,
7621 VkImageTiling tiling,
7622 VkImageUsageFlags usage,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007623 VkImageCreateFlags flags,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007624 VkImageFormatProperties* pImageFormatProperties) {
7625 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
7626
7627 imageFormatProperties := ?
7628 pImageFormatProperties[0] = imageFormatProperties
Jesse Halla9e57032015-11-30 01:03:10 -08007629
7630 return ?
Jesse Halld27f6aa2015-08-15 17:58:48 -07007631}
7632
Jesse Halld27f6aa2015-08-15 17:58:48 -07007633
7634// Device functions
7635
7636@threadSafety("system")
7637cmd VkResult vkCreateDevice(
7638 VkPhysicalDevice physicalDevice,
7639 const VkDeviceCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007640 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007641 VkDevice* pDevice) {
7642 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO)
7643 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
7644
7645 device := ?
7646 pDevice[0] = device
7647 State.Devices[device] = new!DeviceObject(physicalDevice: physicalDevice)
7648
7649 return ?
7650}
7651
7652@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007653cmd void vkDestroyDevice(
Jesse Hall03b6fe12015-11-24 12:44:21 -08007654 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007655 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007656 deviceObject := GetDevice(device)
7657
7658 State.Devices[device] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07007659}
7660
7661
7662// Extension discovery functions
7663
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007664cmd VkResult vkEnumerateInstanceLayerProperties(
Jesse Hall03b6fe12015-11-24 12:44:21 -08007665 u32* pPropertyCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007666 VkLayerProperties* pProperties) {
7667 count := as!u32(?)
Jesse Hall03b6fe12015-11-24 12:44:21 -08007668 pPropertyCount[0] = count
Jesse Halld27f6aa2015-08-15 17:58:48 -07007669
7670 properties := pProperties[0:count]
7671 for i in (0 .. count) {
7672 property := ?
7673 properties[i] = property
7674 }
7675
7676 return ?
7677}
7678
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007679cmd VkResult vkEnumerateInstanceExtensionProperties(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007680 const char* pLayerName,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007681 u32* pPropertyCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007682 VkExtensionProperties* pProperties) {
7683 count := as!u32(?)
Jesse Hall03b6fe12015-11-24 12:44:21 -08007684 pPropertyCount[0] = count
Jesse Halld27f6aa2015-08-15 17:58:48 -07007685
7686 properties := pProperties[0:count]
7687 for i in (0 .. count) {
7688 property := ?
7689 properties[i] = property
7690 }
7691
7692 return ?
7693}
7694
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007695cmd VkResult vkEnumerateDeviceLayerProperties(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007696 VkPhysicalDevice physicalDevice,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007697 u32* pPropertyCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007698 VkLayerProperties* pProperties) {
7699 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
7700 count := as!u32(?)
Jesse Hall03b6fe12015-11-24 12:44:21 -08007701 pPropertyCount[0] = count
Jesse Halld27f6aa2015-08-15 17:58:48 -07007702
7703 properties := pProperties[0:count]
7704 for i in (0 .. count) {
7705 property := ?
7706 properties[i] = property
7707 }
7708
7709 return ?
7710}
7711
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007712cmd VkResult vkEnumerateDeviceExtensionProperties(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007713 VkPhysicalDevice physicalDevice,
7714 const char* pLayerName,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007715 u32* pPropertyCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007716 VkExtensionProperties* pProperties) {
7717 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
7718
7719 count := as!u32(?)
Jesse Hall03b6fe12015-11-24 12:44:21 -08007720 pPropertyCount[0] = count
Jesse Halld27f6aa2015-08-15 17:58:48 -07007721
7722 properties := pProperties[0:count]
7723 for i in (0 .. count) {
7724 property := ?
7725 properties[i] = property
7726 }
7727
7728 return ?
7729}
7730
7731
7732// Queue functions
7733
7734@threadSafety("system")
Jesse Hall606a54e2015-11-19 22:17:28 -08007735cmd void vkGetDeviceQueue(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007736 VkDevice device,
7737 u32 queueFamilyIndex,
7738 u32 queueIndex,
7739 VkQueue* pQueue) {
7740 deviceObject := GetDevice(device)
7741
7742 queue := ?
7743 pQueue[0] = queue
7744
7745 if !(queue in State.Queues) {
7746 State.Queues[queue] = new!QueueObject(device: device)
7747 }
Jesse Halld27f6aa2015-08-15 17:58:48 -07007748}
7749
7750@threadSafety("app")
7751cmd VkResult vkQueueSubmit(
7752 VkQueue queue,
Jesse Halla366a512015-11-19 22:30:07 -08007753 u32 submitCount,
Jesse Hallb00daad2015-11-29 19:46:20 -08007754 const VkSubmitInfo* pSubmits,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007755 VkFence fence) {
7756 queueObject := GetQueue(queue)
7757
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007758 if fence != NULL_HANDLE {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007759 fenceObject := GetFence(fence)
7760 assert(fenceObject.device == queueObject.device)
7761 }
7762
Jesse Hall3fbc8562015-11-29 22:10:52 -08007763 // commandBuffers := pcommandBuffers[0:commandBufferCount]
7764 // for i in (0 .. commandBufferCount) {
7765 // commandBuffer := commandBuffers[i]
7766 // commandBufferObject := GetCommandBuffer(commandBuffer)
7767 // assert(commandBufferObject.device == queueObject.device)
Jesse Halla366a512015-11-19 22:30:07 -08007768 //
Jesse Hall3fbc8562015-11-29 22:10:52 -08007769 // validate("QueueCheck", commandBufferObject.queueFlags in queueObject.flags,
7770 // "vkQueueSubmit: enqueued commandBuffer requires missing queue capabilities.")
Jesse Halla366a512015-11-19 22:30:07 -08007771 // }
Jesse Halld27f6aa2015-08-15 17:58:48 -07007772
7773 return ?
7774}
7775
7776@threadSafety("system")
7777cmd VkResult vkQueueWaitIdle(
7778 VkQueue queue) {
7779 queueObject := GetQueue(queue)
7780
7781 return ?
7782}
7783
7784@threadSafety("system")
7785cmd VkResult vkDeviceWaitIdle(
7786 VkDevice device) {
7787 deviceObject := GetDevice(device)
7788
7789 return ?
7790}
7791
7792
7793// Memory functions
7794
7795@threadSafety("system")
Jesse Hall3fbc8562015-11-29 22:10:52 -08007796cmd VkResult vkAllocateMemory(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007797 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007798 const VkMemoryAllocateInfo* pAllocateInfo,
7799 const VkAllocationCallbacks* pAllocator,
7800 VkDeviceMemory* pMemory) {
Jesse Hallf4ab2b12015-11-30 16:04:55 -08007801 assert(pAllocateInfo.sType == VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007802 deviceObject := GetDevice(device)
7803
Jesse Hall3fbc8562015-11-29 22:10:52 -08007804 memory := ?
7805 pMemory[0] = memory
7806 State.DeviceMemories[memory] = new!DeviceMemoryObject(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007807 device: device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007808 allocationSize: pAllocateInfo[0].allocationSize)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007809
7810 return ?
7811}
7812
7813@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007814cmd void vkFreeMemory(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007815 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007816 VkDeviceMemory memory,
7817 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007818 deviceObject := GetDevice(device)
Jesse Hall3fbc8562015-11-29 22:10:52 -08007819 memoryObject := GetDeviceMemory(memory)
7820 assert(memoryObject.device == device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007821
7822 // Check that no objects are still bound before freeing.
Jesse Hall3fbc8562015-11-29 22:10:52 -08007823 validate("MemoryCheck", len(memoryObject.boundObjects) == 0,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007824 "vkFreeMemory: objects still bound")
Jesse Hall3fbc8562015-11-29 22:10:52 -08007825 validate("MemoryCheck", len(memoryObject.boundCommandBuffers) == 0,
7826 "vkFreeMemory: commandBuffers still bound")
7827 State.DeviceMemories[memory] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07007828}
7829
7830@threadSafety("app")
7831cmd VkResult vkMapMemory(
7832 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007833 VkDeviceMemory memory,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007834 VkDeviceSize offset,
7835 VkDeviceSize size,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007836 VkMemoryMapFlags flags,
7837 void** ppData) {
7838 deviceObject := GetDevice(device)
Jesse Hall3fbc8562015-11-29 22:10:52 -08007839 memoryObject := GetDeviceMemory(memory)
7840 assert(memoryObject.device == device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007841
7842 assert(flags == as!VkMemoryMapFlags(0))
Jesse Hall3fbc8562015-11-29 22:10:52 -08007843 assert((offset + size) <= memoryObject.allocationSize)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007844
7845 return ?
7846}
7847
7848@threadSafety("app")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007849cmd void vkUnmapMemory(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007850 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007851 VkDeviceMemory memory) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007852 deviceObject := GetDevice(device)
Jesse Hall3fbc8562015-11-29 22:10:52 -08007853 memoryObject := GetDeviceMemory(memory)
7854 assert(memoryObject.device == device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007855}
7856
7857cmd VkResult vkFlushMappedMemoryRanges(
7858 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007859 u32 memoryRangeCount
7860 const VkMappedMemoryRange* pMemoryRanges) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007861 deviceObject := GetDevice(device)
7862
Jesse Hall3fbc8562015-11-29 22:10:52 -08007863 memoryRanges := pMemoryRanges[0:memoryRangeCount]
7864 for i in (0 .. memoryRangeCount) {
7865 memoryRange := memoryRanges[i]
7866 memoryObject := GetDeviceMemory(memoryRange.memory)
7867 assert(memoryObject.device == device)
7868 assert((memoryRange.offset + memoryRange.size) <= memoryObject.allocationSize)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007869 }
7870
7871 return ?
7872}
7873
7874cmd VkResult vkInvalidateMappedMemoryRanges(
7875 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007876 u32 memoryRangeCount,
7877 const VkMappedMemoryRange* pMemoryRanges) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007878 deviceObject := GetDevice(device)
7879
Jesse Hall3fbc8562015-11-29 22:10:52 -08007880 memoryRanges := pMemoryRanges[0:memoryRangeCount]
7881 for i in (0 .. memoryRangeCount) {
7882 memoryRange := memoryRanges[i]
7883 memoryObject := GetDeviceMemory(memoryRange.memory)
7884 assert(memoryObject.device == device)
7885 assert((memoryRange.offset + memoryRange.size) <= memoryObject.allocationSize)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007886 }
7887
7888 return ?
7889}
7890
7891
7892// Memory management API functions
7893
Jesse Hall606a54e2015-11-19 22:17:28 -08007894cmd void vkGetDeviceMemoryCommitment(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007895 VkDevice device,
7896 VkDeviceMemory memory,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007897 VkDeviceSize* pCommittedMemoryInBytes) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007898 deviceObject := GetDevice(device)
7899
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007900 if memory != NULL_HANDLE {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007901 memoryObject := GetDeviceMemory(memory)
7902 assert(memoryObject.device == device)
7903 }
7904
7905 committedMemoryInBytes := ?
7906 pCommittedMemoryInBytes[0] = committedMemoryInBytes
Jesse Halld27f6aa2015-08-15 17:58:48 -07007907}
7908
Jesse Hall606a54e2015-11-19 22:17:28 -08007909cmd void vkGetBufferMemoryRequirements(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007910 VkDevice device,
7911 VkBuffer buffer,
7912 VkMemoryRequirements* pMemoryRequirements) {
7913 deviceObject := GetDevice(device)
7914 bufferObject := GetBuffer(buffer)
7915 assert(bufferObject.device == device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007916}
7917
7918cmd VkResult vkBindBufferMemory(
7919 VkDevice device,
7920 VkBuffer buffer,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007921 VkDeviceMemory memory,
7922 VkDeviceSize memoryOffset) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007923 deviceObject := GetDevice(device)
7924 bufferObject := GetBuffer(buffer)
7925 assert(bufferObject.device == device)
7926
7927 // Unbind buffer from previous memory object, if not VK_NULL_HANDLE.
Jesse Hall3fbc8562015-11-29 22:10:52 -08007928 if bufferObject.memory != NULL_HANDLE {
7929 memoryObject := GetDeviceMemory(bufferObject.memory)
7930 memoryObject.boundObjects[as!u64(buffer)] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07007931 }
7932
7933 // Bind buffer to given memory object, if not VK_NULL_HANDLE.
Jesse Hall3fbc8562015-11-29 22:10:52 -08007934 if memory != NULL_HANDLE {
7935 memoryObject := GetDeviceMemory(memory)
7936 assert(memoryObject.device == device)
7937 memoryObject.boundObjects[as!u64(buffer)] = memoryOffset
Jesse Halld27f6aa2015-08-15 17:58:48 -07007938 }
Jesse Hall3fbc8562015-11-29 22:10:52 -08007939 bufferObject.memory = memory
7940 bufferObject.memoryOffset = memoryOffset
Jesse Halld27f6aa2015-08-15 17:58:48 -07007941
7942 return ?
7943}
7944
Jesse Hall606a54e2015-11-19 22:17:28 -08007945cmd void vkGetImageMemoryRequirements(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007946 VkDevice device,
7947 VkImage image,
7948 VkMemoryRequirements* pMemoryRequirements) {
7949 deviceObject := GetDevice(device)
7950 imageObject := GetImage(image)
7951 assert(imageObject.device == device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007952}
7953
7954cmd VkResult vkBindImageMemory(
7955 VkDevice device,
7956 VkImage image,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007957 VkDeviceMemory memory,
7958 VkDeviceSize memoryOffset) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007959 deviceObject := GetDevice(device)
7960 imageObject := GetImage(image)
7961 assert(imageObject.device == device)
7962
7963 // Unbind image from previous memory object, if not VK_NULL_HANDLE.
Jesse Hall3fbc8562015-11-29 22:10:52 -08007964 if imageObject.memory != NULL_HANDLE {
7965 memoryObject := GetDeviceMemory(imageObject.memory)
7966 memoryObject.boundObjects[as!u64(image)] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07007967 }
7968
7969 // Bind image to given memory object, if not VK_NULL_HANDLE.
Jesse Hall3fbc8562015-11-29 22:10:52 -08007970 if memory != NULL_HANDLE {
7971 memoryObject := GetDeviceMemory(memory)
7972 assert(memoryObject.device == device)
7973 memoryObject.boundObjects[as!u64(image)] = memoryOffset
Jesse Halld27f6aa2015-08-15 17:58:48 -07007974 }
Jesse Hall3fbc8562015-11-29 22:10:52 -08007975 imageObject.memory = memory
7976 imageObject.memoryOffset = memoryOffset
Jesse Halld27f6aa2015-08-15 17:58:48 -07007977
7978 return ?
7979}
7980
Jesse Hall606a54e2015-11-19 22:17:28 -08007981cmd void vkGetImageSparseMemoryRequirements(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007982 VkDevice device,
7983 VkImage image,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007984 u32* pSparseMemoryRequirementCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007985 VkSparseImageMemoryRequirements* pSparseMemoryRequirements) {
7986 deviceObject := GetDevice(device)
7987 imageObject := GetImage(image)
7988 assert(imageObject.device == device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007989}
7990
Jesse Hall606a54e2015-11-19 22:17:28 -08007991cmd void vkGetPhysicalDeviceSparseImageFormatProperties(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007992 VkPhysicalDevice physicalDevice,
7993 VkFormat format,
7994 VkImageType type,
Jesse Hall091ed9e2015-11-30 00:55:29 -08007995 VkSampleCountFlagBits samples,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007996 VkImageUsageFlags usage,
7997 VkImageTiling tiling,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007998 u32* pPropertyCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007999 VkSparseImageFormatProperties* pProperties) {
8000 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008001}
8002
Jesse Halla6429252015-11-29 18:59:42 -08008003cmd VkResult vkQueueBindSparse(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008004 VkQueue queue,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008005 u32 bindInfoCount,
Jesse Halla6429252015-11-29 18:59:42 -08008006 const VkBindSparseInfo* pBindInfo,
8007 VkFence fence) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008008 queueObject := GetQueue(queue)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008009
8010 return ?
8011}
8012
8013
8014// Fence functions
8015
8016@threadSafety("system")
8017cmd VkResult vkCreateFence(
8018 VkDevice device,
8019 const VkFenceCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008020 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008021 VkFence* pFence) {
8022 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_FENCE_CREATE_INFO)
8023 deviceObject := GetDevice(device)
8024
8025 fence := ?
8026 pFence[0] = fence
8027 State.Fences[fence] = new!FenceObject(
Jesse Halld8bade02015-11-24 10:24:18 -08008028 device: device, signaled: (pCreateInfo.flags == as!VkFenceCreateFlags(VK_FENCE_CREATE_SIGNALED_BIT)))
Jesse Halld27f6aa2015-08-15 17:58:48 -07008029
8030 return ?
8031}
8032
8033@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008034cmd void vkDestroyFence(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008035 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008036 VkFence fence,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008037 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008038 deviceObject := GetDevice(device)
8039 fenceObject := GetFence(fence)
8040 assert(fenceObject.device == device)
8041
8042 State.Fences[fence] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008043}
8044
8045@threadSafety("system")
8046cmd VkResult vkResetFences(
8047 VkDevice device,
8048 u32 fenceCount,
8049 const VkFence* pFences) {
8050 deviceObject := GetDevice(device)
8051
8052 fences := pFences[0:fenceCount]
8053 for i in (0 .. fenceCount) {
8054 fence := fences[i]
8055 fenceObject := GetFence(fence)
8056 assert(fenceObject.device == device)
8057 fenceObject.signaled = false
8058 }
8059
8060 return ?
8061}
8062
8063@threadSafety("system")
8064cmd VkResult vkGetFenceStatus(
8065 VkDevice device,
8066 VkFence fence) {
8067 deviceObject := GetDevice(device)
8068 fenceObject := GetFence(fence)
8069 assert(fenceObject.device == device)
8070
8071 return ?
8072}
8073
8074@threadSafety("system")
8075cmd VkResult vkWaitForFences(
8076 VkDevice device,
8077 u32 fenceCount,
8078 const VkFence* pFences,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008079 VkBool32 waitAll,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008080 u64 timeout) { /// timeout in nanoseconds
8081 deviceObject := GetDevice(device)
8082
8083 fences := pFences[0:fenceCount]
8084 for i in (0 .. fenceCount) {
8085 fence := fences[i]
8086 fenceObject := GetFence(fence)
8087 assert(fenceObject.device == device)
8088 }
8089
8090 return ?
8091}
8092
8093
8094// Queue semaphore functions
8095
8096@threadSafety("system")
8097cmd VkResult vkCreateSemaphore(
8098 VkDevice device,
8099 const VkSemaphoreCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008100 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008101 VkSemaphore* pSemaphore) {
8102 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO)
8103 deviceObject := GetDevice(device)
8104
8105 semaphore := ?
8106 pSemaphore[0] = semaphore
8107 State.Semaphores[semaphore] = new!SemaphoreObject(device: device)
8108
8109 return ?
8110}
8111
8112@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008113cmd void vkDestroySemaphore(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008114 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008115 VkSemaphore semaphore,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008116 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008117 deviceObject := GetDevice(device)
8118 semaphoreObject := GetSemaphore(semaphore)
8119 assert(semaphoreObject.device == device)
8120
8121 State.Semaphores[semaphore] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008122}
8123
Jesse Halld27f6aa2015-08-15 17:58:48 -07008124
8125// Event functions
8126
8127@threadSafety("system")
8128cmd VkResult vkCreateEvent(
8129 VkDevice device,
8130 const VkEventCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008131 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008132 VkEvent* pEvent) {
8133 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_EVENT_CREATE_INFO)
8134 deviceObject := GetDevice(device)
8135
8136 event := ?
8137 pEvent[0] = event
8138 State.Events[event] = new!EventObject(device: device)
8139
8140 return ?
8141}
8142
8143@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008144cmd void vkDestroyEvent(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008145 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008146 VkEvent event,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008147 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008148 deviceObject := GetDevice(device)
8149 eventObject := GetEvent(event)
8150 assert(eventObject.device == device)
8151
8152 State.Events[event] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008153}
8154
8155@threadSafety("system")
8156cmd VkResult vkGetEventStatus(
8157 VkDevice device,
8158 VkEvent event) {
8159 deviceObject := GetDevice(device)
8160 eventObject := GetEvent(event)
8161 assert(eventObject.device == device)
8162
8163 return ?
8164}
8165
8166@threadSafety("system")
8167cmd VkResult vkSetEvent(
8168 VkDevice device,
8169 VkEvent event) {
8170 deviceObject := GetDevice(device)
8171 eventObject := GetEvent(event)
8172 assert(eventObject.device == device)
8173
8174 return ?
8175}
8176
8177@threadSafety("system")
8178cmd VkResult vkResetEvent(
8179 VkDevice device,
8180 VkEvent event) {
8181 deviceObject := GetDevice(device)
8182 eventObject := GetEvent(event)
8183 assert(eventObject.device == device)
8184
8185 return ?
8186}
8187
8188
8189// Query functions
8190
8191@threadSafety("system")
8192cmd VkResult vkCreateQueryPool(
8193 VkDevice device,
8194 const VkQueryPoolCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008195 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008196 VkQueryPool* pQueryPool) {
8197 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO)
8198 deviceObject := GetDevice(device)
8199
8200 queryPool := ?
8201 pQueryPool[0] = queryPool
8202 State.QueryPools[queryPool] = new!QueryPoolObject(device: device)
8203
8204 return ?
8205}
8206
8207@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008208cmd void vkDestroyQueryPool(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008209 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008210 VkQueryPool queryPool,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008211 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008212 deviceObject := GetDevice(device)
8213 queryPoolObject := GetQueryPool(queryPool)
8214 assert(queryPoolObject.device == device)
8215
8216 State.QueryPools[queryPool] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008217}
8218
8219@threadSafety("system")
8220cmd VkResult vkGetQueryPoolResults(
8221 VkDevice device,
8222 VkQueryPool queryPool,
Jesse Hallf9fa9a52016-01-08 16:08:51 -08008223 u32 firstQuery,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008224 u32 queryCount,
Jesse Halla9bb62b2015-11-21 19:31:56 -08008225 platform.size_t dataSize,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008226 void* pData,
Jesse Halla9bb62b2015-11-21 19:31:56 -08008227 VkDeviceSize stride,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008228 VkQueryResultFlags flags) {
8229 deviceObject := GetDevice(device)
8230 queryPoolObject := GetQueryPool(queryPool)
8231 assert(queryPoolObject.device == device)
8232
Jesse Halld27f6aa2015-08-15 17:58:48 -07008233 data := pData[0:dataSize]
8234
8235 return ?
8236}
8237
8238// Buffer functions
8239
8240@threadSafety("system")
8241cmd VkResult vkCreateBuffer(
8242 VkDevice device,
8243 const VkBufferCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008244 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008245 VkBuffer* pBuffer) {
8246 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO)
8247 deviceObject := GetDevice(device)
8248
8249 buffer := ?
8250 pBuffer[0] = buffer
8251 State.Buffers[buffer] = new!BufferObject(device: device)
8252
8253 return ?
8254}
8255
8256@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008257cmd void vkDestroyBuffer(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008258 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008259 VkBuffer buffer,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008260 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008261 deviceObject := GetDevice(device)
8262 bufferObject := GetBuffer(buffer)
8263 assert(bufferObject.device == device)
8264
Jesse Hall3fbc8562015-11-29 22:10:52 -08008265 assert(bufferObject.memory == 0)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008266 State.Buffers[buffer] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008267}
8268
8269
8270// Buffer view functions
8271
8272@threadSafety("system")
8273cmd VkResult vkCreateBufferView(
8274 VkDevice device,
8275 const VkBufferViewCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008276 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008277 VkBufferView* pView) {
8278 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO)
8279 deviceObject := GetDevice(device)
8280
8281 bufferObject := GetBuffer(pCreateInfo.buffer)
8282 assert(bufferObject.device == device)
8283
8284 view := ?
8285 pView[0] = view
8286 State.BufferViews[view] = new!BufferViewObject(device: device, buffer: pCreateInfo.buffer)
8287
8288 return ?
8289}
8290
8291@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008292cmd void vkDestroyBufferView(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008293 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008294 VkBufferView bufferView,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008295 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008296 deviceObject := GetDevice(device)
8297 bufferViewObject := GetBufferView(bufferView)
8298 assert(bufferViewObject.device == device)
8299
8300 State.BufferViews[bufferView] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008301}
8302
8303
8304// Image functions
8305
8306@threadSafety("system")
8307cmd VkResult vkCreateImage(
8308 VkDevice device,
8309 const VkImageCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008310 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008311 VkImage* pImage) {
8312 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO)
8313 deviceObject := GetDevice(device)
8314
8315 image := ?
8316 pImage[0] = image
8317 State.Images[image] = new!ImageObject(device: device)
8318
8319 return ?
8320}
8321
8322@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008323cmd void vkDestroyImage(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008324 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008325 VkImage image,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008326 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008327 deviceObject := GetDevice(device)
8328 imageObject := GetImage(image)
8329 assert(imageObject.device == device)
8330
Jesse Hall3fbc8562015-11-29 22:10:52 -08008331 assert(imageObject.memory == 0)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008332 State.Images[image] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008333}
8334
Jesse Hall606a54e2015-11-19 22:17:28 -08008335cmd void vkGetImageSubresourceLayout(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008336 VkDevice device,
8337 VkImage image,
8338 const VkImageSubresource* pSubresource,
8339 VkSubresourceLayout* pLayout) {
8340 deviceObject := GetDevice(device)
8341 imageObject := GetImage(image)
8342 assert(imageObject.device == device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008343}
8344
8345
8346// Image view functions
8347
8348@threadSafety("system")
8349cmd VkResult vkCreateImageView(
8350 VkDevice device,
8351 const VkImageViewCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008352 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008353 VkImageView* pView) {
8354 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO)
8355 deviceObject := GetDevice(device)
8356
8357 imageObject := GetImage(pCreateInfo.image)
8358 assert(imageObject.device == device)
8359
8360 view := ?
8361 pView[0] = view
8362 State.ImageViews[view] = new!ImageViewObject(device: device, image: pCreateInfo.image)
8363
8364 return ?
8365}
8366
8367@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008368cmd void vkDestroyImageView(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008369 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008370 VkImageView imageView,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008371 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008372 deviceObject := GetDevice(device)
8373 imageViewObject := GetImageView(imageView)
8374 assert(imageViewObject.device == device)
8375
8376 State.ImageViews[imageView] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008377}
8378
8379
8380// Shader functions
8381
8382cmd VkResult vkCreateShaderModule(
8383 VkDevice device,
8384 const VkShaderModuleCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008385 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008386 VkShaderModule* pShaderModule) {
8387 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO)
8388 deviceObject := GetDevice(device)
8389
8390 shaderModule := ?
8391 pShaderModule[0] = shaderModule
8392 State.ShaderModules[shaderModule] = new!ShaderModuleObject(device: device)
8393
8394 return ?
8395}
8396
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008397cmd void vkDestroyShaderModule(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008398 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008399 VkShaderModule shaderModule,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008400 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008401 deviceObject := GetDevice(device)
8402 shaderModuleObject := GetShaderModule(shaderModule)
8403 assert(shaderModuleObject.device == device)
8404
8405 State.ShaderModules[shaderModule] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008406}
8407
Jesse Halld27f6aa2015-08-15 17:58:48 -07008408
8409// Pipeline functions
8410
8411cmd VkResult vkCreatePipelineCache(
8412 VkDevice device,
8413 const VkPipelineCacheCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008414 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008415 VkPipelineCache* pPipelineCache) {
8416 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO)
8417 deviceObject := GetDevice(device)
8418
8419 pipelineCache := ?
8420 pPipelineCache[0] = pipelineCache
8421 State.PipelineCaches[pipelineCache] = new!PipelineCacheObject(device: device)
8422
8423 return ?
8424}
8425
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008426cmd void vkDestroyPipelineCache(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008427 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008428 VkPipelineCache pipelineCache,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008429 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008430 deviceObject := GetDevice(device)
8431 pipelineCacheObject := GetPipelineCache(pipelineCache)
8432 assert(pipelineCacheObject.device == device)
8433
8434 State.PipelineCaches[pipelineCache] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008435}
8436
Jesse Halld27f6aa2015-08-15 17:58:48 -07008437cmd VkResult vkGetPipelineCacheData(
8438 VkDevice device,
8439 VkPipelineCache pipelineCache,
Jesse Halla9bb62b2015-11-21 19:31:56 -08008440 platform.size_t* pDataSize,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008441 void* pData) {
8442 deviceObject := GetDevice(device)
8443 pipelineCacheObject := GetPipelineCache(pipelineCache)
8444 assert(pipelineCacheObject.device == device)
8445
8446 return ?
8447}
8448
8449cmd VkResult vkMergePipelineCaches(
8450 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008451 VkPipelineCache dstCache,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008452 u32 srcCacheCount,
8453 const VkPipelineCache* pSrcCaches) {
8454 deviceObject := GetDevice(device)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008455 dstCacheObject := GetPipelineCache(dstCache)
8456 assert(dstCacheObject.device == device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008457
8458 srcCaches := pSrcCaches[0:srcCacheCount]
8459 for i in (0 .. srcCacheCount) {
8460 srcCache := srcCaches[i]
8461 srcCacheObject := GetPipelineCache(srcCache)
8462 assert(srcCacheObject.device == device)
8463 }
8464
8465 return ?
8466}
8467
8468cmd VkResult vkCreateGraphicsPipelines(
8469 VkDevice device,
8470 VkPipelineCache pipelineCache,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008471 u32 createInfoCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008472 const VkGraphicsPipelineCreateInfo* pCreateInfos,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008473 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008474 VkPipeline* pPipelines) {
8475 deviceObject := GetDevice(device)
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008476 if pipelineCache != NULL_HANDLE {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008477 pipelineCacheObject := GetPipelineCache(pipelineCache)
8478 assert(pipelineCacheObject.device == device)
8479 }
8480
Jesse Hall03b6fe12015-11-24 12:44:21 -08008481 createInfos := pCreateInfos[0:createInfoCount]
8482 pipelines := pPipelines[0:createInfoCount]
8483 for i in (0 .. createInfoCount) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008484 pipeline := ?
8485 pipelines[i] = pipeline
8486 State.Pipelines[pipeline] = new!PipelineObject(device: device)
8487 }
8488
8489 return ?
8490}
8491
8492cmd VkResult vkCreateComputePipelines(
8493 VkDevice device,
8494 VkPipelineCache pipelineCache,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008495 u32 createInfoCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008496 const VkComputePipelineCreateInfo* pCreateInfos,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008497 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008498 VkPipeline* pPipelines) {
8499 deviceObject := GetDevice(device)
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008500 if pipelineCache != NULL_HANDLE {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008501 pipelineCacheObject := GetPipelineCache(pipelineCache)
8502 assert(pipelineCacheObject.device == device)
8503 }
8504
Jesse Hall03b6fe12015-11-24 12:44:21 -08008505 createInfos := pCreateInfos[0:createInfoCount]
8506 pipelines := pPipelines[0:createInfoCount]
8507 for i in (0 .. createInfoCount) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008508 pipeline := ?
8509 pipelines[i] = pipeline
8510 State.Pipelines[pipeline] = new!PipelineObject(device: device)
8511 }
8512
8513 return ?
8514}
8515
8516@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008517cmd void vkDestroyPipeline(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008518 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008519 VkPipeline pipeline,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008520 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008521 deviceObject := GetDevice(device)
8522 pipelineObjects := GetPipeline(pipeline)
8523 assert(pipelineObjects.device == device)
8524
8525 State.Pipelines[pipeline] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008526}
8527
8528
8529// Pipeline layout functions
8530
8531@threadSafety("system")
8532cmd VkResult vkCreatePipelineLayout(
8533 VkDevice device,
8534 const VkPipelineLayoutCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008535 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008536 VkPipelineLayout* pPipelineLayout) {
8537 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO)
8538 deviceObject := GetDevice(device)
8539
8540 pipelineLayout := ?
8541 pPipelineLayout[0] = pipelineLayout
8542 State.PipelineLayouts[pipelineLayout] = new!PipelineLayoutObject(device: device)
8543
8544 return ?
8545}
8546
8547@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008548cmd void vkDestroyPipelineLayout(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008549 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008550 VkPipelineLayout pipelineLayout,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008551 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008552 deviceObject := GetDevice(device)
8553 pipelineLayoutObjects := GetPipelineLayout(pipelineLayout)
8554 assert(pipelineLayoutObjects.device == device)
8555
8556 State.PipelineLayouts[pipelineLayout] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008557}
8558
8559
8560// Sampler functions
8561
8562@threadSafety("system")
8563cmd VkResult vkCreateSampler(
8564 VkDevice device,
8565 const VkSamplerCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008566 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008567 VkSampler* pSampler) {
8568 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO)
8569 deviceObject := GetDevice(device)
8570
8571 sampler := ?
8572 pSampler[0] = sampler
8573 State.Samplers[sampler] = new!SamplerObject(device: device)
8574
8575 return ?
8576}
8577
8578@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008579cmd void vkDestroySampler(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008580 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008581 VkSampler sampler,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008582 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008583 deviceObject := GetDevice(device)
8584 samplerObject := GetSampler(sampler)
8585 assert(samplerObject.device == device)
8586
8587 State.Samplers[sampler] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008588}
8589
8590
8591// Descriptor set functions
8592
8593@threadSafety("system")
8594cmd VkResult vkCreateDescriptorSetLayout(
8595 VkDevice device,
8596 const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008597 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008598 VkDescriptorSetLayout* pSetLayout) {
8599 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO)
8600 deviceObject := GetDevice(device)
8601
8602 setLayout := ?
8603 pSetLayout[0] = setLayout
8604 State.DescriptorSetLayouts[setLayout] = new!DescriptorSetLayoutObject(device: device)
8605
8606 return ?
8607}
8608
8609@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008610cmd void vkDestroyDescriptorSetLayout(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008611 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008612 VkDescriptorSetLayout descriptorSetLayout,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008613 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008614 deviceObject := GetDevice(device)
8615 descriptorSetLayoutObject := GetDescriptorSetLayout(descriptorSetLayout)
8616 assert(descriptorSetLayoutObject.device == device)
8617
8618 State.DescriptorSetLayouts[descriptorSetLayout] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008619}
8620
8621@threadSafety("system")
8622cmd VkResult vkCreateDescriptorPool(
8623 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008624 const VkDescriptorPoolCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008625 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008626 VkDescriptorPool* pDescriptorPool) {
8627 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO)
8628 deviceObject := GetDevice(device)
8629
8630 descriptorPool := ?
8631 pDescriptorPool[0] = descriptorPool
8632 State.DescriptorPools[descriptorPool] = new!DescriptorPoolObject(device: device)
8633
8634 return ?
8635}
8636
8637@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008638cmd void vkDestroyDescriptorPool(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008639 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008640 VkDescriptorPool descriptorPool,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008641 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008642 deviceObject := GetDevice(device)
8643 descriptorPoolObject := GetDescriptorPool(descriptorPool)
8644 assert(descriptorPoolObject.device == device)
8645
8646 State.DescriptorPools[descriptorPool] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008647}
8648
8649@threadSafety("app")
8650cmd VkResult vkResetDescriptorPool(
8651 VkDevice device,
Jesse Hallfbf97b02015-11-20 14:17:03 -08008652 VkDescriptorPool descriptorPool,
8653 VkDescriptorPoolResetFlags flags) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008654 deviceObject := GetDevice(device)
8655 descriptorPoolObject := GetDescriptorPool(descriptorPool)
8656 assert(descriptorPoolObject.device == device)
8657
8658 return ?
8659}
8660
8661@threadSafety("app")
Jesse Hall3fbc8562015-11-29 22:10:52 -08008662cmd VkResult vkAllocateDescriptorSets(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008663 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008664 const VkDescriptorSetAllocateInfo* pAllocateInfo,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008665 VkDescriptorSet* pDescriptorSets) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008666 deviceObject := GetDevice(device)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008667 allocInfo := pAllocateInfo[0]
Jesse Hallfbf97b02015-11-20 14:17:03 -08008668 descriptorPoolObject := GetDescriptorPool(allocInfo.descriptorPool)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008669
Jesse Hall03b6fe12015-11-24 12:44:21 -08008670 setLayouts := allocInfo.pSetLayouts[0:allocInfo.setCount]
8671 for i in (0 .. allocInfo.setCount) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008672 setLayout := setLayouts[i]
8673 setLayoutObject := GetDescriptorSetLayout(setLayout)
8674 assert(setLayoutObject.device == device)
8675 }
8676
Jesse Hall03b6fe12015-11-24 12:44:21 -08008677 descriptorSets := pDescriptorSets[0:allocInfo.setCount]
8678 for i in (0 .. allocInfo.setCount) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008679 descriptorSet := ?
8680 descriptorSets[i] = descriptorSet
8681 State.DescriptorSets[descriptorSet] = new!DescriptorSetObject(device: device)
8682 }
8683
8684 return ?
8685}
8686
Jesse Hallf09c6b12015-08-15 19:54:28 -07008687cmd VkResult vkFreeDescriptorSets(
8688 VkDevice device,
8689 VkDescriptorPool descriptorPool,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008690 u32 descriptorSetCount,
Jesse Hallf09c6b12015-08-15 19:54:28 -07008691 const VkDescriptorSet* pDescriptorSets) {
8692 deviceObject := GetDevice(device)
8693 descriptorPoolObject := GetDescriptorPool(descriptorPool)
8694
Jesse Hall03b6fe12015-11-24 12:44:21 -08008695 descriptorSets := pDescriptorSets[0:descriptorSetCount]
8696 for i in (0 .. descriptorSetCount) {
Jesse Hallf09c6b12015-08-15 19:54:28 -07008697 descriptorSet := descriptorSets[i]
8698 descriptorSetObject := GetDescriptorSet(descriptorSet)
8699 assert(descriptorSetObject.device == device)
8700 State.DescriptorSets[descriptorSet] = null
8701 }
8702
8703 return ?
8704}
8705
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008706cmd void vkUpdateDescriptorSets(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008707 VkDevice device,
Jesse Hallb00daad2015-11-29 19:46:20 -08008708 u32 descriptorWriteCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008709 const VkWriteDescriptorSet* pDescriptorWrites,
Jesse Hallb00daad2015-11-29 19:46:20 -08008710 u32 descriptorCopyCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008711 const VkCopyDescriptorSet* pDescriptorCopies) {
8712 deviceObject := GetDevice(device)
8713
Jesse Hallb00daad2015-11-29 19:46:20 -08008714 descriptorWrites := pDescriptorWrites[0:descriptorWriteCount]
8715 for i in (0 .. descriptorWriteCount) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008716 descriptorWrite := descriptorWrites[i]
Jesse Hall3fbc8562015-11-29 22:10:52 -08008717 descriptorWriteObject := GetDescriptorSet(descriptorWrite.dstSet)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008718 assert(descriptorWriteObject.device == device)
8719 }
8720
Jesse Hallb00daad2015-11-29 19:46:20 -08008721 descriptorCopies := pDescriptorCopies[0:descriptorCopyCount]
8722 for i in (0 .. descriptorCopyCount) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008723 descriptorCopy := descriptorCopies[i]
Jesse Hall3fbc8562015-11-29 22:10:52 -08008724 descriptorCopyObject := GetDescriptorSet(descriptorCopy.dstSet)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008725 assert(descriptorCopyObject.device == device)
8726 }
Jesse Halld27f6aa2015-08-15 17:58:48 -07008727}
8728
8729
8730// Framebuffer functions
8731
8732@threadSafety("system")
8733cmd VkResult vkCreateFramebuffer(
8734 VkDevice device,
8735 const VkFramebufferCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008736 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008737 VkFramebuffer* pFramebuffer) {
8738 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO)
8739 deviceObject := GetDevice(device)
8740
8741 framebuffer := ?
8742 pFramebuffer[0] = framebuffer
8743 State.Framebuffers[framebuffer] = new!FramebufferObject(device: device)
8744
8745 return ?
8746}
8747
8748@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008749cmd void vkDestroyFramebuffer(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008750 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008751 VkFramebuffer framebuffer,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008752 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008753 deviceObject := GetDevice(device)
8754 framebufferObject := GetFramebuffer(framebuffer)
8755 assert(framebufferObject.device == device)
8756
8757 State.Framebuffers[framebuffer] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008758}
8759
8760
8761// Renderpass functions
8762
8763@threadSafety("system")
8764cmd VkResult vkCreateRenderPass(
8765 VkDevice device,
8766 const VkRenderPassCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008767 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008768 VkRenderPass* pRenderPass) {
8769 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO)
8770 deviceObject := GetDevice(device)
8771
8772 renderpass := ?
8773 pRenderPass[0] = renderpass
8774 State.RenderPasses[renderpass] = new!RenderPassObject(device: device)
8775
8776 return ?
8777}
8778
8779@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008780cmd void vkDestroyRenderPass(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008781 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008782 VkRenderPass renderPass,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008783 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008784 deviceObject := GetDevice(device)
8785 renderPassObject := GetRenderPass(renderPass)
8786 assert(renderPassObject.device == device)
8787
8788 State.RenderPasses[renderPass] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008789}
8790
Jesse Hall606a54e2015-11-19 22:17:28 -08008791cmd void vkGetRenderAreaGranularity(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008792 VkDevice device,
8793 VkRenderPass renderPass,
8794 VkExtent2D* pGranularity) {
8795 deviceObject := GetDevice(device)
8796 renderPassObject := GetRenderPass(renderPass)
8797
8798 granularity := ?
8799 pGranularity[0] = granularity
Jesse Halld27f6aa2015-08-15 17:58:48 -07008800}
8801
8802// Command pool functions
8803
8804cmd VkResult vkCreateCommandPool(
8805 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008806 const VkCommandPoolCreateInfo* pCreateInfo,
8807 const VkAllocationCallbacks* pAllocator,
8808 VkCommandPool* pCommandPool) {
8809 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008810 deviceObject := GetDevice(device)
8811
Jesse Hall3fbc8562015-11-29 22:10:52 -08008812 commandPool := ?
8813 pCommandPool[0] = commandPool
8814 State.CommandPools[commandPool] = new!CommandPoolObject(device: device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008815
8816 return ?
8817}
8818
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008819cmd void vkDestroyCommandPool(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008820 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008821 VkCommandPool commandPool,
8822 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008823 deviceObject := GetDevice(device)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008824 commandPoolObject := GetCommandPool(commandPool)
8825 assert(commandPoolObject.device == device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008826
Jesse Hall3fbc8562015-11-29 22:10:52 -08008827 State.CommandPools[commandPool] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008828}
8829
8830cmd VkResult vkResetCommandPool(
8831 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008832 VkCommandPool commandPool,
8833 VkCommandPoolResetFlags flags) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008834 deviceObject := GetDevice(device)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008835 commandPoolObject := GetCommandPool(commandPool)
8836 assert(commandPoolObject.device == device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008837
8838 return ?
8839}
8840
8841// Command buffer functions
8842
Jesse Hall3fbc8562015-11-29 22:10:52 -08008843macro void bindCommandBuffer(VkCommandBuffer commandBuffer, any obj, VkDeviceMemory memory) {
8844 memoryObject := GetDeviceMemory(memory)
8845 memoryObject.boundCommandBuffers[commandBuffer] = commandBuffer
Jesse Halld27f6aa2015-08-15 17:58:48 -07008846
Jesse Hall3fbc8562015-11-29 22:10:52 -08008847 commandBufferObject := GetCommandBuffer(commandBuffer)
8848 commandBufferObject.boundObjects[as!u64(obj)] = memory
Jesse Halld27f6aa2015-08-15 17:58:48 -07008849}
8850
Jesse Hall3fbc8562015-11-29 22:10:52 -08008851macro void unbindCommandBuffer(VkCommandBuffer commandBuffer, any obj, VkDeviceMemory memory) {
8852 memoryObject := GetDeviceMemory(memory)
8853 memoryObject.boundCommandBuffers[commandBuffer] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008854
Jesse Hall3fbc8562015-11-29 22:10:52 -08008855 commandBufferObject := GetCommandBuffer(commandBuffer)
8856 commandBufferObject.boundObjects[as!u64(obj)] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008857}
8858
8859@threadSafety("system")
Jesse Hall3fbc8562015-11-29 22:10:52 -08008860cmd VkResult vkAllocateCommandBuffers(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008861 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008862 const VkCommandBufferAllocateInfo* pAllocateInfo,
8863 VkCommandBuffer* pCommandBuffers) {
Jesse Hallf4ab2b12015-11-30 16:04:55 -08008864 assert(pAllocateInfo[0].sType == VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008865
Jesse Hall3dd678a2016-01-08 21:52:01 -08008866 count := pAllocateInfo[0].commandBufferCount
Jesse Hall3fbc8562015-11-29 22:10:52 -08008867 commandBuffers := pCommandBuffers[0:count]
Jesse Hallfbf97b02015-11-20 14:17:03 -08008868 for i in (0 .. count) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008869 commandBuffer := ?
8870 commandBuffers[i] = commandBuffer
8871 State.CommandBuffers[commandBuffer] = new!CommandBufferObject(device: device)
Jesse Hallfbf97b02015-11-20 14:17:03 -08008872 }
Jesse Halld27f6aa2015-08-15 17:58:48 -07008873
8874 return ?
8875}
8876
8877@threadSafety("system")
Jesse Hallfbf97b02015-11-20 14:17:03 -08008878cmd void vkFreeCommandBuffers(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008879 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008880 VkCommandPool commandPool,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008881 u32 commandBufferCount,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008882 const VkCommandBuffer* pCommandBuffers) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008883 deviceObject := GetDevice(device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008884
Jesse Hall3fbc8562015-11-29 22:10:52 -08008885 commandBuffers := pCommandBuffers[0:commandBufferCount]
Jesse Hall03b6fe12015-11-24 12:44:21 -08008886 for i in (0 .. commandBufferCount) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008887 commandBufferObject := GetCommandBuffer(commandBuffers[i])
8888 assert(commandBufferObject.device == device)
Jesse Hallfbf97b02015-11-20 14:17:03 -08008889 // TODO: iterate over boundObjects and clear memory bindings
Jesse Hall3fbc8562015-11-29 22:10:52 -08008890 State.CommandBuffers[commandBuffers[i]] = null
Jesse Hallfbf97b02015-11-20 14:17:03 -08008891 }
Jesse Halld27f6aa2015-08-15 17:58:48 -07008892}
8893
8894@threadSafety("app")
8895cmd VkResult vkBeginCommandBuffer(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008896 VkCommandBuffer commandBuffer,
8897 const VkCommandBufferBeginInfo* pBeginInfo) {
8898 assert(pBeginInfo.sType == VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO)
8899 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008900
8901 // TODO: iterate over boundObjects and clear memory bindings
8902
8903 return ?
8904}
8905
8906@threadSafety("app")
8907cmd VkResult vkEndCommandBuffer(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008908 VkCommandBuffer commandBuffer) {
8909 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008910
8911 return ?
8912}
8913
8914@threadSafety("app")
8915cmd VkResult vkResetCommandBuffer(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008916 VkCommandBuffer commandBuffer,
8917 VkCommandBufferResetFlags flags) {
8918 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008919
8920 // TODO: iterate over boundObjects and clear memory bindings
8921
8922 return ?
8923}
8924
8925
8926// Command buffer building functions
8927
8928@threadSafety("app")
8929cmd void vkCmdBindPipeline(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008930 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008931 VkPipelineBindPoint pipelineBindPoint,
8932 VkPipeline pipeline) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008933 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008934 pipelineObject := GetPipeline(pipeline)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008935 assert(commandBufferObject.device == pipelineObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008936
Jesse Halld8bade02015-11-24 10:24:18 -08008937 queue := switch (pipelineBindPoint) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008938 case VK_PIPELINE_BIND_POINT_COMPUTE: VK_QUEUE_COMPUTE_BIT
8939 case VK_PIPELINE_BIND_POINT_GRAPHICS: VK_QUEUE_GRAPHICS_BIT
8940 }
Jesse Hall3fbc8562015-11-29 22:10:52 -08008941 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, queue)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008942}
8943
8944@threadSafety("app")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008945cmd void vkCmdSetViewport(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008946 VkCommandBuffer commandBuffer,
Jesse Hallf9fa9a52016-01-08 16:08:51 -08008947 u32 firstViewport,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008948 u32 viewportCount,
8949 const VkViewport* pViewports) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008950 commandBufferObject := GetCommandBuffer(commandBuffer)
8951 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008952}
8953
8954@threadSafety("app")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008955cmd void vkCmdSetScissor(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008956 VkCommandBuffer commandBuffer,
Jesse Hallf9fa9a52016-01-08 16:08:51 -08008957 u32 firstScissor,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008958 u32 scissorCount,
8959 const VkRect2D* pScissors) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008960 commandBufferObject := GetCommandBuffer(commandBuffer)
8961 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008962}
8963
8964@threadSafety("app")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008965cmd void vkCmdSetLineWidth(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008966 VkCommandBuffer commandBuffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008967 f32 lineWidth) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008968 commandBufferObject := GetCommandBuffer(commandBuffer)
8969 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008970}
8971
8972@threadSafety("app")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008973cmd void vkCmdSetDepthBias(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008974 VkCommandBuffer commandBuffer,
Jesse Halla9bb62b2015-11-21 19:31:56 -08008975 f32 depthBiasConstantFactor,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008976 f32 depthBiasClamp,
Jesse Halla9bb62b2015-11-21 19:31:56 -08008977 f32 depthBiasSlopeFactor) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008978 commandBufferObject := GetCommandBuffer(commandBuffer)
8979 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008980}
Jesse Halld27f6aa2015-08-15 17:58:48 -07008981
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008982@threadSafety("app")
8983cmd void vkCmdSetBlendConstants(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008984 VkCommandBuffer commandBuffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008985 // TODO(jessehall): apic only supports 'const' on pointer types. Using
8986 // an annotation as a quick hack to pass this to the template without
8987 // having to modify the AST and semantic model.
Jesse Hallb00daad2015-11-29 19:46:20 -08008988 @readonly f32[4] blendConstants) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008989 commandBufferObject := GetCommandBuffer(commandBuffer)
8990 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008991}
8992
8993@threadSafety("app")
8994cmd void vkCmdSetDepthBounds(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008995 VkCommandBuffer commandBuffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008996 f32 minDepthBounds,
8997 f32 maxDepthBounds) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008998 commandBufferObject := GetCommandBuffer(commandBuffer)
8999 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009000}
9001
9002@threadSafety("app")
9003cmd void vkCmdSetStencilCompareMask(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009004 VkCommandBuffer commandBuffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009005 VkStencilFaceFlags faceMask,
Jesse Hall65ab5522015-11-30 00:07:16 -08009006 u32 compareMask) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009007 commandBufferObject := GetCommandBuffer(commandBuffer)
9008 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009009}
9010
9011@threadSafety("app")
9012cmd void vkCmdSetStencilWriteMask(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009013 VkCommandBuffer commandBuffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009014 VkStencilFaceFlags faceMask,
Jesse Hall65ab5522015-11-30 00:07:16 -08009015 u32 writeMask) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009016 commandBufferObject := GetCommandBuffer(commandBuffer)
9017 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009018}
9019
9020@threadSafety("app")
9021cmd void vkCmdSetStencilReference(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009022 VkCommandBuffer commandBuffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009023 VkStencilFaceFlags faceMask,
Jesse Hall65ab5522015-11-30 00:07:16 -08009024 u32 reference) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009025 commandBufferObject := GetCommandBuffer(commandBuffer)
9026 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009027}
9028
9029@threadSafety("app")
9030cmd void vkCmdBindDescriptorSets(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009031 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009032 VkPipelineBindPoint pipelineBindPoint,
9033 VkPipelineLayout layout,
9034 u32 firstSet,
Jesse Hall03b6fe12015-11-24 12:44:21 -08009035 u32 descriptorSetCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009036 const VkDescriptorSet* pDescriptorSets,
9037 u32 dynamicOffsetCount,
9038 const u32* pDynamicOffsets) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009039 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009040
Jesse Hall03b6fe12015-11-24 12:44:21 -08009041 descriptorSets := pDescriptorSets[0:descriptorSetCount]
9042 for i in (0 .. descriptorSetCount) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07009043 descriptorSet := descriptorSets[i]
9044 descriptorSetObject := GetDescriptorSet(descriptorSet)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009045 assert(commandBufferObject.device == descriptorSetObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009046 }
9047
9048 dynamicOffsets := pDynamicOffsets[0:dynamicOffsetCount]
9049 for i in (0 .. dynamicOffsetCount) {
9050 dynamicOffset := dynamicOffsets[i]
9051 }
9052
Jesse Halld8bade02015-11-24 10:24:18 -08009053 queue := switch (pipelineBindPoint) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07009054 case VK_PIPELINE_BIND_POINT_COMPUTE: VK_QUEUE_COMPUTE_BIT
9055 case VK_PIPELINE_BIND_POINT_GRAPHICS: VK_QUEUE_GRAPHICS_BIT
9056 }
Jesse Hall3fbc8562015-11-29 22:10:52 -08009057 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, queue)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009058}
9059
9060@threadSafety("app")
9061cmd void vkCmdBindIndexBuffer(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009062 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009063 VkBuffer buffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009064 VkDeviceSize offset,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009065 VkIndexType indexType) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009066 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009067 bufferObject := GetBuffer(buffer)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009068 assert(commandBufferObject.device == bufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009069
Jesse Hall3fbc8562015-11-29 22:10:52 -08009070 bindCommandBuffer(commandBuffer, buffer, bufferObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009071
Jesse Hall3fbc8562015-11-29 22:10:52 -08009072 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009073}
9074
9075@threadSafety("app")
9076cmd void vkCmdBindVertexBuffers(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009077 VkCommandBuffer commandBuffer,
Jesse Hallf9fa9a52016-01-08 16:08:51 -08009078 u32 firstBinding,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009079 u32 bindingCount,
9080 const VkBuffer* pBuffers,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009081 const VkDeviceSize* pOffsets) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009082 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009083
Jesse Hallf9fa9a52016-01-08 16:08:51 -08009084 // TODO: check if not [firstBinding:firstBinding+bindingCount]
Jesse Halld27f6aa2015-08-15 17:58:48 -07009085 buffers := pBuffers[0:bindingCount]
9086 offsets := pOffsets[0:bindingCount]
9087 for i in (0 .. bindingCount) {
9088 buffer := buffers[i]
9089 offset := offsets[i]
9090 bufferObject := GetBuffer(buffer)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009091 assert(commandBufferObject.device == bufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009092
Jesse Hall3fbc8562015-11-29 22:10:52 -08009093 bindCommandBuffer(commandBuffer, buffer, bufferObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009094 }
9095
Jesse Hall3fbc8562015-11-29 22:10:52 -08009096 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009097}
9098
9099@threadSafety("app")
9100cmd void vkCmdDraw(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009101 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009102 u32 vertexCount,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009103 u32 instanceCount,
9104 u32 firstVertex,
9105 u32 firstInstance) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009106 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009107
Jesse Hall3fbc8562015-11-29 22:10:52 -08009108 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009109}
9110
9111@threadSafety("app")
9112cmd void vkCmdDrawIndexed(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009113 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009114 u32 indexCount,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009115 u32 instanceCount,
9116 u32 firstIndex,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009117 s32 vertexOffset,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009118 u32 firstInstance) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009119 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009120
Jesse Hall3fbc8562015-11-29 22:10:52 -08009121 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009122}
9123
9124@threadSafety("app")
9125cmd void vkCmdDrawIndirect(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009126 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009127 VkBuffer buffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009128 VkDeviceSize offset,
Jesse Hall03b6fe12015-11-24 12:44:21 -08009129 u32 drawCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009130 u32 stride) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009131 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009132 bufferObject := GetBuffer(buffer)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009133 assert(commandBufferObject.device == bufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009134
Jesse Hall3fbc8562015-11-29 22:10:52 -08009135 bindCommandBuffer(commandBuffer, buffer, bufferObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009136
Jesse Hall3fbc8562015-11-29 22:10:52 -08009137 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009138}
9139
9140@threadSafety("app")
9141cmd void vkCmdDrawIndexedIndirect(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009142 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009143 VkBuffer buffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009144 VkDeviceSize offset,
Jesse Hall03b6fe12015-11-24 12:44:21 -08009145 u32 drawCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009146 u32 stride) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009147 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009148 bufferObject := GetBuffer(buffer)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009149 assert(commandBufferObject.device == bufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009150
Jesse Hall3fbc8562015-11-29 22:10:52 -08009151 bindCommandBuffer(commandBuffer, buffer, bufferObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009152
Jesse Hall3fbc8562015-11-29 22:10:52 -08009153 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009154}
9155
9156@threadSafety("app")
9157cmd void vkCmdDispatch(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009158 VkCommandBuffer commandBuffer,
Jesse Hallad250842017-03-10 18:35:38 -08009159 u32 groupCountX,
9160 u32 groupCountY,
9161 u32 groupCountZ) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009162 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009163
Jesse Hall3fbc8562015-11-29 22:10:52 -08009164 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_COMPUTE_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009165}
9166
9167@threadSafety("app")
9168cmd void vkCmdDispatchIndirect(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009169 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009170 VkBuffer buffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009171 VkDeviceSize offset) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009172 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009173 bufferObject := GetBuffer(buffer)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009174 assert(commandBufferObject.device == bufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009175
Jesse Hall3fbc8562015-11-29 22:10:52 -08009176 bindCommandBuffer(commandBuffer, buffer, bufferObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009177
Jesse Hall3fbc8562015-11-29 22:10:52 -08009178 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_COMPUTE_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009179}
9180
9181@threadSafety("app")
9182cmd void vkCmdCopyBuffer(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009183 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009184 VkBuffer srcBuffer,
Jesse Hall3fbc8562015-11-29 22:10:52 -08009185 VkBuffer dstBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009186 u32 regionCount,
9187 const VkBufferCopy* 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 dstBufferObject := GetBuffer(dstBuffer)
9191 assert(commandBufferObject.device == srcBufferObject.device)
9192 assert(commandBufferObject.device == dstBufferObject.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, dstBuffer, dstBufferObject.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 vkCmdCopyImage(
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 VkImage dstImage,
9211 VkImageLayout dstImageLayout,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009212 u32 regionCount,
9213 const VkImageCopy* pRegions) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009214 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009215 srcImageObject := GetImage(srcImage)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009216 dstImageObject := GetImage(dstImage)
9217 assert(commandBufferObject.device == srcImageObject.device)
9218 assert(commandBufferObject.device == dstImageObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009219
9220 regions := pRegions[0:regionCount]
9221 for i in (0 .. regionCount) {
9222 region := regions[i]
9223 }
9224
Jesse Hall3fbc8562015-11-29 22:10:52 -08009225 bindCommandBuffer(commandBuffer, srcImage, srcImageObject.memory)
9226 bindCommandBuffer(commandBuffer, dstImage, dstImageObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009227
Jesse Hall65ab5522015-11-30 00:07:16 -08009228 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_TRANSFER_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009229}
9230
9231@threadSafety("app")
9232cmd void vkCmdBlitImage(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009233 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009234 VkImage srcImage,
9235 VkImageLayout srcImageLayout,
Jesse Hall3fbc8562015-11-29 22:10:52 -08009236 VkImage dstImage,
9237 VkImageLayout dstImageLayout,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009238 u32 regionCount,
9239 const VkImageBlit* pRegions,
Jesse Hall23ff73f2015-11-29 14:36:39 -08009240 VkFilter filter) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009241 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009242 srcImageObject := GetImage(srcImage)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009243 dstImageObject := GetImage(dstImage)
9244 assert(commandBufferObject.device == srcImageObject.device)
9245 assert(commandBufferObject.device == dstImageObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009246
9247 regions := pRegions[0:regionCount]
9248 for i in (0 .. regionCount) {
9249 region := regions[i]
9250 }
9251
Jesse Hall3fbc8562015-11-29 22:10:52 -08009252 bindCommandBuffer(commandBuffer, srcImage, srcImageObject.memory)
9253 bindCommandBuffer(commandBuffer, dstImage, dstImageObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009254
Jesse Hall3fbc8562015-11-29 22:10:52 -08009255 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009256}
9257
9258@threadSafety("app")
9259cmd void vkCmdCopyBufferToImage(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009260 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009261 VkBuffer srcBuffer,
Jesse Hall3fbc8562015-11-29 22:10:52 -08009262 VkImage dstImage,
9263 VkImageLayout dstImageLayout,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009264 u32 regionCount,
9265 const VkBufferImageCopy* pRegions) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009266 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009267 srcBufferObject := GetBuffer(srcBuffer)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009268 dstImageObject := GetImage(dstImage)
9269 assert(commandBufferObject.device == srcBufferObject.device)
9270 assert(commandBufferObject.device == dstImageObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009271
9272 regions := pRegions[0:regionCount]
9273 for i in (0 .. regionCount) {
9274 region := regions[i]
9275 }
9276
Jesse Hall3fbc8562015-11-29 22:10:52 -08009277 bindCommandBuffer(commandBuffer, srcBuffer, srcBufferObject.memory)
9278 bindCommandBuffer(commandBuffer, dstImage, dstImageObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009279
Jesse Hall65ab5522015-11-30 00:07:16 -08009280 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_TRANSFER_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009281}
9282
9283@threadSafety("app")
9284cmd void vkCmdCopyImageToBuffer(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009285 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009286 VkImage srcImage,
9287 VkImageLayout srcImageLayout,
Jesse Hall3fbc8562015-11-29 22:10:52 -08009288 VkBuffer dstBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009289 u32 regionCount,
9290 const VkBufferImageCopy* pRegions) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009291 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009292 srcImageObject := GetImage(srcImage)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009293 dstBufferObject := GetBuffer(dstBuffer)
9294 assert(commandBufferObject.device == srcImageObject.device)
9295 assert(commandBufferObject.device == dstBufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009296
9297 regions := pRegions[0:regionCount]
9298 for i in (0 .. regionCount) {
9299 region := regions[i]
9300 }
9301
Jesse Hall3fbc8562015-11-29 22:10:52 -08009302 bindCommandBuffer(commandBuffer, srcImage, srcImageObject.memory)
9303 bindCommandBuffer(commandBuffer, dstBuffer, dstBufferObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009304
Jesse Hall65ab5522015-11-30 00:07:16 -08009305 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_TRANSFER_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009306}
9307
9308@threadSafety("app")
9309cmd void vkCmdUpdateBuffer(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009310 VkCommandBuffer commandBuffer,
9311 VkBuffer dstBuffer,
9312 VkDeviceSize dstOffset,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009313 VkDeviceSize dataSize,
Jesse Hall56d386a2016-07-26 15:20:40 -07009314 const void* pData) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009315 commandBufferObject := GetCommandBuffer(commandBuffer)
9316 dstBufferObject := GetBuffer(dstBuffer)
9317 assert(commandBufferObject.device == dstBufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009318
9319 data := pData[0:dataSize]
9320
Jesse Hall3fbc8562015-11-29 22:10:52 -08009321 bindCommandBuffer(commandBuffer, dstBuffer, dstBufferObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009322
Jesse Hall65ab5522015-11-30 00:07:16 -08009323 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_TRANSFER_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009324}
9325
9326@threadSafety("app")
9327cmd void vkCmdFillBuffer(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009328 VkCommandBuffer commandBuffer,
9329 VkBuffer dstBuffer,
9330 VkDeviceSize dstOffset,
Jesse Hallb00daad2015-11-29 19:46:20 -08009331 VkDeviceSize size,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009332 u32 data) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009333 commandBufferObject := GetCommandBuffer(commandBuffer)
9334 dstBufferObject := GetBuffer(dstBuffer)
9335 assert(commandBufferObject.device == dstBufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009336
Jesse Hall65ab5522015-11-30 00:07:16 -08009337 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_TRANSFER_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009338}
9339
9340@threadSafety("app")
9341cmd void vkCmdClearColorImage(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009342 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009343 VkImage image,
9344 VkImageLayout imageLayout,
9345 const VkClearColorValue* pColor,
9346 u32 rangeCount,
9347 const VkImageSubresourceRange* pRanges) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009348 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009349 imageObject := GetImage(image)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009350 assert(commandBufferObject.device == imageObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009351
9352 ranges := pRanges[0:rangeCount]
9353 for i in (0 .. rangeCount) {
9354 range := ranges[i]
9355 }
9356
Jesse Hall3fbc8562015-11-29 22:10:52 -08009357 bindCommandBuffer(commandBuffer, image, imageObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009358
Jesse Hall3fbc8562015-11-29 22:10:52 -08009359 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009360}
9361
9362@threadSafety("app")
9363cmd void vkCmdClearDepthStencilImage(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009364 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009365 VkImage image,
9366 VkImageLayout imageLayout,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009367 const VkClearDepthStencilValue* pDepthStencil,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009368 u32 rangeCount,
9369 const VkImageSubresourceRange* pRanges) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009370 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009371 imageObject := GetImage(image)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009372 assert(commandBufferObject.device == imageObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009373
9374 ranges := pRanges[0:rangeCount]
9375 for i in (0 .. rangeCount) {
9376 range := ranges[i]
9377 }
9378
Jesse Hall3fbc8562015-11-29 22:10:52 -08009379 bindCommandBuffer(commandBuffer, image, imageObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009380
Jesse Hall3fbc8562015-11-29 22:10:52 -08009381 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009382}
9383
9384@threadSafety("app")
Jesse Hallae38f732015-11-19 21:32:50 -08009385cmd void vkCmdClearAttachments(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009386 VkCommandBuffer commandBuffer,
Jesse Hallae38f732015-11-19 21:32:50 -08009387 u32 attachmentCount,
9388 const VkClearAttachment* pAttachments,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009389 u32 rectCount,
Jesse Halla15a4bf2015-11-19 22:48:02 -08009390 const VkClearRect* pRects) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009391 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009392
9393 rects := pRects[0:rectCount]
9394 for i in (0 .. rectCount) {
9395 rect := rects[i]
9396 }
9397
Jesse Hall3fbc8562015-11-29 22:10:52 -08009398 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009399}
9400
9401@threadSafety("app")
9402cmd void vkCmdResolveImage(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009403 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009404 VkImage srcImage,
9405 VkImageLayout srcImageLayout,
Jesse Hall3fbc8562015-11-29 22:10:52 -08009406 VkImage dstImage,
9407 VkImageLayout dstImageLayout,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009408 u32 regionCount,
9409 const VkImageResolve* pRegions) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009410 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009411 srcImageObject := GetImage(srcImage)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009412 dstImageObject := GetImage(dstImage)
9413 assert(commandBufferObject.device == srcImageObject.device)
9414 assert(commandBufferObject.device == dstImageObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009415
9416 regions := pRegions[0:regionCount]
9417 for i in (0 .. regionCount) {
9418 region := regions[i]
9419 }
9420
Jesse Hall3fbc8562015-11-29 22:10:52 -08009421 bindCommandBuffer(commandBuffer, srcImage, srcImageObject.memory)
9422 bindCommandBuffer(commandBuffer, dstImage, dstImageObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009423
Jesse Hall3fbc8562015-11-29 22:10:52 -08009424 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009425}
9426
9427@threadSafety("app")
9428cmd void vkCmdSetEvent(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009429 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009430 VkEvent event,
9431 VkPipelineStageFlags stageMask) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009432 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009433 eventObject := GetEvent(event)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009434 assert(commandBufferObject.device == eventObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009435}
9436
9437@threadSafety("app")
9438cmd void vkCmdResetEvent(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009439 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009440 VkEvent event,
9441 VkPipelineStageFlags stageMask) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009442 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009443 eventObject := GetEvent(event)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009444 assert(commandBufferObject.device == eventObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009445}
9446
9447@threadSafety("app")
9448cmd void vkCmdWaitEvents(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009449 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009450 u32 eventCount,
9451 const VkEvent* pEvents,
9452 VkPipelineStageFlags srcStageMask,
Jesse Hall3fbc8562015-11-29 22:10:52 -08009453 VkPipelineStageFlags dstStageMask,
9454 u32 memoryBarrierCount,
Jesse Hall3dd678a2016-01-08 21:52:01 -08009455 const VkMemoryBarrier* pMemoryBarriers,
9456 u32 bufferMemoryBarrierCount,
9457 const VkBufferMemoryBarrier* pBufferMemoryBarriers,
9458 u32 imageMemoryBarrierCount,
9459 const VkImageMemoryBarrier* pImageMemoryBarriers) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009460 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009461
9462 events := pEvents[0:eventCount]
9463 for i in (0 .. eventCount) {
9464 event := events[i]
9465 eventObject := GetEvent(event)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009466 assert(commandBufferObject.device == eventObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009467 }
9468
Jesse Hall3dd678a2016-01-08 21:52:01 -08009469 memoryBarriers := pMemoryBarriers[0:memoryBarrierCount]
Jesse Hall3fbc8562015-11-29 22:10:52 -08009470 for i in (0 .. memoryBarrierCount) {
Jesse Hall3dd678a2016-01-08 21:52:01 -08009471 memoryBarrier := memoryBarriers[i]
9472 }
9473 bufferMemoryBarriers := pBufferMemoryBarriers[0:bufferMemoryBarrierCount]
9474 for i in (0 .. bufferMemoryBarrierCount) {
9475 bufferMemoryBarrier := bufferMemoryBarriers[i]
9476 bufferObject := GetBuffer(bufferMemoryBarrier.buffer)
9477 assert(bufferObject.device == commandBufferObject.device)
9478 }
9479 imageMemoryBarriers := pImageMemoryBarriers[0:imageMemoryBarrierCount]
9480 for i in (0 .. imageMemoryBarrierCount) {
9481 imageMemoryBarrier := imageMemoryBarriers[i]
9482 imageObject := GetImage(imageMemoryBarrier.image)
9483 assert(imageObject.device == commandBufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009484 }
9485}
9486
9487@threadSafety("app")
9488cmd void vkCmdPipelineBarrier(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009489 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009490 VkPipelineStageFlags srcStageMask,
Jesse Hall3fbc8562015-11-29 22:10:52 -08009491 VkPipelineStageFlags dstStageMask,
Jesse Halldc6d36c2015-11-29 19:12:15 -08009492 VkDependencyFlags dependencyFlags,
Jesse Hall3fbc8562015-11-29 22:10:52 -08009493 u32 memoryBarrierCount,
Jesse Hall3dd678a2016-01-08 21:52:01 -08009494 const VkMemoryBarrier* pMemoryBarriers,
9495 u32 bufferMemoryBarrierCount,
9496 const VkBufferMemoryBarrier* pBufferMemoryBarriers,
9497 u32 imageMemoryBarrierCount,
9498 const VkImageMemoryBarrier* pImageMemoryBarriers) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009499 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009500
Jesse Hall3dd678a2016-01-08 21:52:01 -08009501 memoryBarriers := pMemoryBarriers[0:memoryBarrierCount]
Jesse Hall3fbc8562015-11-29 22:10:52 -08009502 for i in (0 .. memoryBarrierCount) {
Jesse Hall3dd678a2016-01-08 21:52:01 -08009503 memoryBarrier := memoryBarriers[i]
9504 }
9505 bufferMemoryBarriers := pBufferMemoryBarriers[0:bufferMemoryBarrierCount]
9506 for i in (0 .. bufferMemoryBarrierCount) {
9507 bufferMemoryBarrier := bufferMemoryBarriers[i]
9508 bufferObject := GetBuffer(bufferMemoryBarrier.buffer)
9509 assert(bufferObject.device == commandBufferObject.device)
9510 }
9511 imageMemoryBarriers := pImageMemoryBarriers[0:imageMemoryBarrierCount]
9512 for i in (0 .. imageMemoryBarrierCount) {
9513 imageMemoryBarrier := imageMemoryBarriers[i]
9514 imageObject := GetImage(imageMemoryBarrier.image)
9515 assert(imageObject.device == commandBufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009516 }
9517}
9518
9519@threadSafety("app")
9520cmd void vkCmdBeginQuery(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009521 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009522 VkQueryPool queryPool,
Jesse Hall3dd678a2016-01-08 21:52:01 -08009523 u32 query,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009524 VkQueryControlFlags flags) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009525 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009526 queryPoolObject := GetQueryPool(queryPool)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009527 assert(commandBufferObject.device == queryPoolObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009528}
9529
9530@threadSafety("app")
9531cmd void vkCmdEndQuery(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009532 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009533 VkQueryPool queryPool,
Jesse Hall3dd678a2016-01-08 21:52:01 -08009534 u32 query) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009535 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009536 queryPoolObject := GetQueryPool(queryPool)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009537 assert(commandBufferObject.device == queryPoolObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009538}
9539
9540@threadSafety("app")
9541cmd void vkCmdResetQueryPool(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009542 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009543 VkQueryPool queryPool,
Jesse Hallf9fa9a52016-01-08 16:08:51 -08009544 u32 firstQuery,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009545 u32 queryCount) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009546 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009547 queryPoolObject := GetQueryPool(queryPool)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009548 assert(commandBufferObject.device == queryPoolObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009549}
9550
9551@threadSafety("app")
9552cmd void vkCmdWriteTimestamp(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009553 VkCommandBuffer commandBuffer,
Jesse Hall6f39a6d2015-11-24 11:08:36 -08009554 VkPipelineStageFlagBits pipelineStage,
Jesse Halla3a7a1d2015-11-24 11:37:23 -08009555 VkQueryPool queryPool,
Jesse Hall3dd678a2016-01-08 21:52:01 -08009556 u32 query) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009557 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halla3a7a1d2015-11-24 11:37:23 -08009558 queryPoolObject := GetQueryPool(queryPool)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009559 assert(commandBufferObject.device == queryPoolObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009560}
9561
9562@threadSafety("app")
9563cmd void vkCmdCopyQueryPoolResults(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009564 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009565 VkQueryPool queryPool,
Jesse Hallf9fa9a52016-01-08 16:08:51 -08009566 u32 firstQuery,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009567 u32 queryCount,
Jesse Hall3fbc8562015-11-29 22:10:52 -08009568 VkBuffer dstBuffer,
9569 VkDeviceSize dstOffset,
Jesse Halla9bb62b2015-11-21 19:31:56 -08009570 VkDeviceSize stride,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009571 VkQueryResultFlags flags) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009572 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009573 queryPoolObject := GetQueryPool(queryPool)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009574 dstBufferObject := GetBuffer(dstBuffer)
9575 assert(commandBufferObject.device == queryPoolObject.device)
9576 assert(commandBufferObject.device == dstBufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009577}
9578
9579cmd void vkCmdPushConstants(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009580 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009581 VkPipelineLayout layout,
9582 VkShaderStageFlags stageFlags,
Jesse Hall03b6fe12015-11-24 12:44:21 -08009583 u32 offset,
9584 u32 size,
Jesse Hallf4ab2b12015-11-30 16:04:55 -08009585 const void* pValues) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009586 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009587 layoutObject := GetPipelineLayout(layout)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009588 assert(commandBufferObject.device == layoutObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009589}
9590
9591@threadSafety("app")
9592cmd void vkCmdBeginRenderPass(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009593 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009594 const VkRenderPassBeginInfo* pRenderPassBegin,
Jesse Hall65ab5522015-11-30 00:07:16 -08009595 VkSubpassContents contents) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009596 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009597 renderPassObject := GetRenderPass(pRenderPassBegin.renderPass)
9598 framebufferObject := GetFramebuffer(pRenderPassBegin.framebuffer)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009599 assert(commandBufferObject.device == renderPassObject.device)
9600 assert(commandBufferObject.device == framebufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009601
Jesse Hall3fbc8562015-11-29 22:10:52 -08009602 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009603}
9604
9605cmd void vkCmdNextSubpass(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009606 VkCommandBuffer commandBuffer,
Jesse Hall65ab5522015-11-30 00:07:16 -08009607 VkSubpassContents contents) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009608 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009609}
9610
9611@threadSafety("app")
9612cmd void vkCmdEndRenderPass(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009613 VkCommandBuffer commandBuffer) {
9614 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009615
Jesse Hall3fbc8562015-11-29 22:10:52 -08009616 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009617}
9618
9619cmd void vkCmdExecuteCommands(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009620 VkCommandBuffer commandBuffer,
Jesse Hall3dd678a2016-01-08 21:52:01 -08009621 u32 commandBufferCount,
Jesse Hall3fbc8562015-11-29 22:10:52 -08009622 const VkCommandBuffer* pCommandBuffers) {
9623 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009624
Jesse Hall3dd678a2016-01-08 21:52:01 -08009625 commandBuffers := pCommandBuffers[0:commandBufferCount]
9626 for i in (0 .. commandBufferCount) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009627 secondaryCommandBuffer := commandBuffers[i]
9628 secondaryCommandBufferObject := GetCommandBuffer(secondaryCommandBuffer)
9629 assert(commandBufferObject.device == secondaryCommandBufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009630 }
9631}
9632
Ian Elliott28bd2c32017-10-13 09:21:12 -06009633//@vulkan1_1 functions
Daniel Koch09f7bf92017-10-05 00:26:58 -04009634
Ian Elliott28bd2c32017-10-13 09:21:12 -06009635@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009636cmd VkResult vkEnumerateInstanceVersion(
9637 u32* pApiVersion) {
9638 return ?
9639}
9640
Ian Elliott28bd2c32017-10-13 09:21:12 -06009641@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009642cmd VkResult vkBindBufferMemory2(
9643 VkDevice device,
9644 u32 bindInfoCount,
9645 const VkBindBufferMemoryInfo* pBindInfos) {
9646 return ?
9647}
9648
Ian Elliott28bd2c32017-10-13 09:21:12 -06009649@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009650cmd VkResult vkBindImageMemory2(
9651 VkDevice device,
9652 u32 bindInfoCount,
9653 const VkBindImageMemoryInfo* pBindInfos) {
9654 return ?
9655}
9656
Ian Elliott28bd2c32017-10-13 09:21:12 -06009657@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009658cmd void vkGetDeviceGroupPeerMemoryFeatures(
9659 VkDevice device,
9660 u32 heapIndex,
9661 u32 localDeviceIndex,
9662 u32 remoteDeviceIndex,
9663 VkPeerMemoryFeatureFlags* pPeerMemoryFeatures) {
9664}
9665
Ian Elliott28bd2c32017-10-13 09:21:12 -06009666@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009667cmd void vkCmdSetDeviceMask(
9668 VkCommandBuffer commandBuffer,
9669 u32 deviceMask) {
9670}
9671
Ian Elliott28bd2c32017-10-13 09:21:12 -06009672@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009673cmd void vkCmdDispatchBase(
9674 VkCommandBuffer commandBuffer,
9675 u32 baseGroupX,
9676 u32 baseGroupY,
9677 u32 baseGroupZ,
9678 u32 groupCountX,
9679 u32 groupCountY,
9680 u32 groupCountZ) {
9681}
9682
9683@threadSafety("system")
Ian Elliott28bd2c32017-10-13 09:21:12 -06009684@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009685cmd VkResult vkEnumeratePhysicalDeviceGroups(
9686 VkInstance instance,
9687 u32* pPhysicalDeviceGroupCount,
9688 VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties) {
9689 instanceObject := GetInstance(instance)
9690
9691 physicalDeviceGroupCount := as!u32(?)
9692 pPhysicalDeviceGroupCount[0] = physicalDeviceGroupCount
9693 physicalDevices := pPhysicalDeviceGroupProperties[0:physicalDeviceGroupCount]
9694
9695 for i in (0 .. physicalDeviceGroupCount) {
9696 physicalDevice := ?
9697 physicalDevices[i] = physicalDevice
9698 if !(physicalDevice in State.PhysicalDevices) {
9699 State.PhysicalDevices[physicalDevice] = new!PhysicalDeviceObject(instance: instance)
9700 }
9701 }
9702
9703 return ?
9704}
9705
Ian Elliott28bd2c32017-10-13 09:21:12 -06009706@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009707cmd void vkGetImageMemoryRequirements2(
9708 VkDevice device,
9709 const VkImageMemoryRequirementsInfo2* pInfo,
9710 VkMemoryRequirements2* pMemoryRequirements) {
9711}
9712
Ian Elliott28bd2c32017-10-13 09:21:12 -06009713@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009714cmd void vkGetBufferMemoryRequirements2(
9715 VkDevice device,
9716 const VkBufferMemoryRequirementsInfo2* pInfo,
9717 VkMemoryRequirements2* pMemoryRequirements) {
9718}
9719
Ian Elliott28bd2c32017-10-13 09:21:12 -06009720@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009721cmd void vkGetImageSparseMemoryRequirements2(
9722 VkDevice device,
9723 const VkImageSparseMemoryRequirementsInfo2* pInfo,
9724 u32* pSparseMemoryRequirementCount,
9725 VkSparseImageMemoryRequirements2* pSparseMemoryRequirements) {
9726}
9727
Ian Elliott28bd2c32017-10-13 09:21:12 -06009728@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009729cmd void vkGetPhysicalDeviceFeatures2(
9730 VkPhysicalDevice physicalDevice,
9731 VkPhysicalDeviceFeatures2* pFeatures) {
9732}
9733
Ian Elliott28bd2c32017-10-13 09:21:12 -06009734@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009735cmd void vkGetPhysicalDeviceProperties2(
9736 VkPhysicalDevice physicalDevice,
9737 VkPhysicalDeviceProperties2* pProperties) {
9738}
9739
Ian Elliott28bd2c32017-10-13 09:21:12 -06009740@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009741cmd void vkGetPhysicalDeviceFormatProperties2(
9742 VkPhysicalDevice physicalDevice,
9743 VkFormat format,
9744 VkFormatProperties2* pFormatProperties) {
9745}
9746
Ian Elliott28bd2c32017-10-13 09:21:12 -06009747@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009748cmd VkResult vkGetPhysicalDeviceImageFormatProperties2(
9749 VkPhysicalDevice physicalDevice,
9750 const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo,
9751 VkImageFormatProperties2* pImageFormatProperties) {
9752 return ?
9753}
9754
Ian Elliott28bd2c32017-10-13 09:21:12 -06009755@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009756cmd void vkGetPhysicalDeviceQueueFamilyProperties2(
9757 VkPhysicalDevice physicalDevice,
9758 u32* pQueueFamilyPropertyCount,
9759 VkQueueFamilyProperties2* pQueueFamilyProperties) {
9760}
9761
Ian Elliott28bd2c32017-10-13 09:21:12 -06009762@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009763cmd void vkGetPhysicalDeviceMemoryProperties2(
9764 VkPhysicalDevice physicalDevice,
9765 VkPhysicalDeviceMemoryProperties2* pMemoryProperties) {
9766}
9767
Ian Elliott28bd2c32017-10-13 09:21:12 -06009768@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009769cmd void vkGetPhysicalDeviceSparseImageFormatProperties2(
9770 VkPhysicalDevice physicalDevice,
9771 const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo,
9772 u32* pPropertyCount,
9773 VkSparseImageFormatProperties2* pProperties) {
9774}
9775
Ian Elliott28bd2c32017-10-13 09:21:12 -06009776@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009777cmd void vkTrimCommandPool(
9778 VkDevice device,
9779 VkCommandPool commandPool,
9780 VkCommandPoolTrimFlags flags) {
9781}
9782
9783
Ian Elliott28bd2c32017-10-13 09:21:12 -06009784@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009785cmd void vkGetDeviceQueue2(
9786 VkDevice device,
9787 const VkDeviceQueueInfo2* pQueueInfo,
9788 VkQueue* pQueue) {
9789 deviceObject := GetDevice(device)
9790
9791 queue := ?
9792 pQueue[0] = queue
9793
9794 if !(queue in State.Queues) {
9795 State.Queues[queue] = new!QueueObject(device: device)
9796 }
9797}
9798
Ian Elliott28bd2c32017-10-13 09:21:12 -06009799@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009800cmd VkResult vkCreateSamplerYcbcrConversion(
9801 VkDevice device,
9802 const VkSamplerYcbcrConversionCreateInfo* pCreateInfo,
9803 const VkAllocationCallbacks* pAllocator,
9804 VkSamplerYcbcrConversion* pYcbcrConversion) {
9805 return ?
9806}
9807
Ian Elliott28bd2c32017-10-13 09:21:12 -06009808@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009809cmd void vkDestroySamplerYcbcrConversion(
9810 VkDevice device,
9811 VkSamplerYcbcrConversion ycbcrConversion,
9812 const VkAllocationCallbacks* pAllocator) {
9813}
9814
Ian Elliott28bd2c32017-10-13 09:21:12 -06009815@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009816cmd VkResult vkCreateDescriptorUpdateTemplate(
9817 VkDevice device,
9818 const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo,
9819 const VkAllocationCallbacks* pAllocator,
9820 VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate) {
9821 return ?
9822}
9823
Ian Elliott28bd2c32017-10-13 09:21:12 -06009824@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009825cmd void vkDestroyDescriptorUpdateTemplate(
9826 VkDevice device,
9827 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
9828 const VkAllocationCallbacks* pAllocator) {
9829}
9830
Ian Elliott28bd2c32017-10-13 09:21:12 -06009831@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009832cmd void vkUpdateDescriptorSetWithTemplate(
9833 VkDevice device,
9834 VkDescriptorSet descriptorSet,
9835 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
9836 const void* pData) {
9837}
9838
Ian Elliott28bd2c32017-10-13 09:21:12 -06009839@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009840cmd void vkGetPhysicalDeviceExternalBufferProperties(
9841 VkPhysicalDevice physicalDevice,
9842 const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo,
9843 VkExternalBufferProperties* pExternalBufferProperties) {
9844}
9845
Ian Elliott28bd2c32017-10-13 09:21:12 -06009846@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009847cmd void vkGetPhysicalDeviceExternalFenceProperties(
9848 VkPhysicalDevice physicalDevice,
9849 const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo,
9850 VkExternalFenceProperties* pExternalFenceProperties) {
9851}
9852
Ian Elliott28bd2c32017-10-13 09:21:12 -06009853@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009854cmd void vkGetPhysicalDeviceExternalSemaphoreProperties(
9855 VkPhysicalDevice physicalDevice,
9856 const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo,
9857 VkExternalSemaphoreProperties* pExternalSemaphoreProperties) {
9858}
9859
Ian Elliott28bd2c32017-10-13 09:21:12 -06009860@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009861cmd void vkGetDescriptorSetLayoutSupport(
9862 VkDevice device,
9863 const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
9864 VkDescriptorSetLayoutSupport* pSupport) {
9865}
9866
9867
Jesse Hallad250842017-03-10 18:35:38 -08009868@extension("VK_KHR_surface") // 1
Jesse Hall1356b0d2015-11-23 17:24:58 -08009869cmd void vkDestroySurfaceKHR(
9870 VkInstance instance,
Jesse Hall0e74f002015-11-30 11:37:59 -08009871 VkSurfaceKHR surface,
9872 const VkAllocationCallbacks* pAllocator) {
Jesse Hall1356b0d2015-11-23 17:24:58 -08009873 instanceObject := GetInstance(instance)
9874 surfaceObject := GetSurface(surface)
9875 assert(surfaceObject.instance == instance)
Michael Lentine88594d72015-11-12 12:49:45 -08009876
Jesse Hall1356b0d2015-11-23 17:24:58 -08009877 State.Surfaces[surface] = null
Jesse Hall2818f932015-11-19 21:19:17 -08009878}
9879
Jesse Hallad250842017-03-10 18:35:38 -08009880@extension("VK_KHR_surface") // 1
Jesse Halla6429252015-11-29 18:59:42 -08009881cmd VkResult vkGetPhysicalDeviceSurfaceSupportKHR(
Jesse Hall1356b0d2015-11-23 17:24:58 -08009882 VkPhysicalDevice physicalDevice,
9883 u32 queueFamilyIndex,
Jesse Hall1356b0d2015-11-23 17:24:58 -08009884 VkSurfaceKHR surface,
Jesse Hallb00daad2015-11-29 19:46:20 -08009885 VkBool32* pSupported) {
9886 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
Michael Lentine88594d72015-11-12 12:49:45 -08009887
9888 return ?
9889}
9890
Jesse Hallad250842017-03-10 18:35:38 -08009891@extension("VK_KHR_surface") // 1
Jesse Hallb00daad2015-11-29 19:46:20 -08009892cmd VkResult vkGetPhysicalDeviceSurfaceCapabilitiesKHR(
9893 VkPhysicalDevice physicalDevice,
9894 VkSurfaceKHR surface,
9895 VkSurfaceCapabilitiesKHR* pSurfaceCapabilities) {
9896 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
9897
9898 surfaceCapabilities := ?
9899 pSurfaceCapabilities[0] = surfaceCapabilities
9900
9901 return ?
9902}
9903
Jesse Hallad250842017-03-10 18:35:38 -08009904@extension("VK_KHR_surface") // 1
Jesse Hallb00daad2015-11-29 19:46:20 -08009905cmd VkResult vkGetPhysicalDeviceSurfaceFormatsKHR(
9906 VkPhysicalDevice physicalDevice,
Jesse Hall1356b0d2015-11-23 17:24:58 -08009907 VkSurfaceKHR surface,
Jesse Hall03b6fe12015-11-24 12:44:21 -08009908 u32* pSurfaceFormatCount,
Jesse Hall1356b0d2015-11-23 17:24:58 -08009909 VkSurfaceFormatKHR* pSurfaceFormats) {
Jesse Hallb00daad2015-11-29 19:46:20 -08009910 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
Michael Lentine88594d72015-11-12 12:49:45 -08009911
9912 count := as!u32(?)
Jesse Hall03b6fe12015-11-24 12:44:21 -08009913 pSurfaceFormatCount[0] = count
Michael Lentine88594d72015-11-12 12:49:45 -08009914 surfaceFormats := pSurfaceFormats[0:count]
9915
9916 for i in (0 .. count) {
9917 surfaceFormat := ?
9918 surfaceFormats[i] = surfaceFormat
9919 }
9920
9921 return ?
9922}
9923
Jesse Hallad250842017-03-10 18:35:38 -08009924@extension("VK_KHR_surface") // 1
Jesse Hallb00daad2015-11-29 19:46:20 -08009925cmd VkResult vkGetPhysicalDeviceSurfacePresentModesKHR(
9926 VkPhysicalDevice physicalDevice,
Jesse Hall1356b0d2015-11-23 17:24:58 -08009927 VkSurfaceKHR surface,
Jesse Hall03b6fe12015-11-24 12:44:21 -08009928 u32* pPresentModeCount,
Jesse Hall1356b0d2015-11-23 17:24:58 -08009929 VkPresentModeKHR* pPresentModes) {
Jesse Hallb00daad2015-11-29 19:46:20 -08009930 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
Michael Lentine88594d72015-11-12 12:49:45 -08009931
9932 count := as!u32(?)
Jesse Hall03b6fe12015-11-24 12:44:21 -08009933 pPresentModeCount[0] = count
Michael Lentine88594d72015-11-12 12:49:45 -08009934 presentModes := pPresentModes[0:count]
9935
9936 for i in (0 .. count) {
9937 presentMode := ?
9938 presentModes[i] = presentMode
9939 }
9940
9941 return ?
9942}
9943
Jesse Hallad250842017-03-10 18:35:38 -08009944@extension("VK_KHR_swapchain") // 2
Michael Lentine88594d72015-11-12 12:49:45 -08009945cmd VkResult vkCreateSwapchainKHR(
9946 VkDevice device,
9947 const VkSwapchainCreateInfoKHR* pCreateInfo,
Jesse Hall0e74f002015-11-30 11:37:59 -08009948 const VkAllocationCallbacks* pAllocator,
Michael Lentine88594d72015-11-12 12:49:45 -08009949 VkSwapchainKHR* pSwapchain) {
Jesse Hall1356b0d2015-11-23 17:24:58 -08009950 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR)
Michael Lentine88594d72015-11-12 12:49:45 -08009951 deviceObject := GetDevice(device)
9952
9953 swapchain := ?
9954 pSwapchain[0] = swapchain
9955 State.Swapchains[swapchain] = new!SwapchainObject(device: device)
9956
9957 return ?
9958}
9959
Jesse Hallad250842017-03-10 18:35:38 -08009960@extension("VK_KHR_swapchain") // 2
Jesse Hall1356b0d2015-11-23 17:24:58 -08009961cmd void vkDestroySwapchainKHR(
Michael Lentine88594d72015-11-12 12:49:45 -08009962 VkDevice device,
Jesse Hall0e74f002015-11-30 11:37:59 -08009963 VkSwapchainKHR swapchain,
9964 const VkAllocationCallbacks* pAllocator) {
Michael Lentine88594d72015-11-12 12:49:45 -08009965 deviceObject := GetDevice(device)
9966 swapchainObject := GetSwapchain(swapchain)
9967 assert(swapchainObject.device == device)
9968
9969 State.Swapchains[swapchain] = null
Michael Lentine88594d72015-11-12 12:49:45 -08009970}
9971
Jesse Hallad250842017-03-10 18:35:38 -08009972@extension("VK_KHR_swapchain") // 2
Michael Lentine88594d72015-11-12 12:49:45 -08009973cmd VkResult vkGetSwapchainImagesKHR(
9974 VkDevice device,
9975 VkSwapchainKHR swapchain,
Jesse Hall03b6fe12015-11-24 12:44:21 -08009976 u32* pSwapchainImageCount,
Michael Lentine88594d72015-11-12 12:49:45 -08009977 VkImage* pSwapchainImages) {
9978 deviceObject := GetDevice(device)
9979
9980 count := as!u32(?)
Jesse Hall03b6fe12015-11-24 12:44:21 -08009981 pSwapchainImageCount[0] = count
Michael Lentine88594d72015-11-12 12:49:45 -08009982 swapchainImages := pSwapchainImages[0:count]
9983
9984 for i in (0 .. count) {
9985 swapchainImage := ?
9986 swapchainImages[i] = swapchainImage
Jesse Hall1356b0d2015-11-23 17:24:58 -08009987 State.Images[swapchainImage] = new!ImageObject(device: device)
Michael Lentine88594d72015-11-12 12:49:45 -08009988 }
9989
9990 return ?
9991}
9992
Jesse Hallad250842017-03-10 18:35:38 -08009993@extension("VK_KHR_swapchain") // 2
Michael Lentine88594d72015-11-12 12:49:45 -08009994cmd VkResult vkAcquireNextImageKHR(
9995 VkDevice device,
9996 VkSwapchainKHR swapchain,
9997 u64 timeout,
9998 VkSemaphore semaphore,
Jesse Hall1356b0d2015-11-23 17:24:58 -08009999 VkFence fence,
Michael Lentine88594d72015-11-12 12:49:45 -080010000 u32* pImageIndex) {
10001 deviceObject := GetDevice(device)
10002 swapchainObject := GetSwapchain(swapchain)
10003
10004 imageIndex := ?
10005 pImageIndex[0] = imageIndex
10006
10007 return ?
10008}
10009
Jesse Hallad250842017-03-10 18:35:38 -080010010@extension("VK_KHR_swapchain") // 2
Michael Lentine88594d72015-11-12 12:49:45 -080010011cmd VkResult vkQueuePresentKHR(
10012 VkQueue queue,
Jesse Hallf4ab2b12015-11-30 16:04:55 -080010013 const VkPresentInfoKHR* pPresentInfo) {
Michael Lentine88594d72015-11-12 12:49:45 -080010014 queueObject := GetQueue(queue)
10015
10016 presentInfo := ?
10017 pPresentInfo[0] = presentInfo
10018
10019 return ?
10020}
10021
Ian Elliott28bd2c32017-10-13 09:21:12 -060010022@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -040010023@extension("VK_KHR_swapchain") // 2
10024cmd VkResult vkGetDeviceGroupPresentCapabilitiesKHR(
10025 VkDevice device,
10026 VkDeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities) {
10027 return ?
10028}
10029
Ian Elliott28bd2c32017-10-13 09:21:12 -060010030@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -040010031@extension("VK_KHR_swapchain") // 2
10032cmd VkResult vkGetDeviceGroupSurfacePresentModesKHR(
10033 VkDevice device,
10034 VkSurfaceKHR surface,
10035 VkDeviceGroupPresentModeFlagsKHR* pModes) {
10036 return ?
10037}
10038
Ian Elliott28bd2c32017-10-13 09:21:12 -060010039@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -040010040@extension("VK_KHR_swapchain") // 2
10041cmd VkResult vkGetPhysicalDevicePresentRectanglesKHR(
10042 VkPhysicalDevice physicalDevice,
10043 VkSurfaceKHR surface,
10044 u32* pRectCount,
10045 VkRect2D* pRects) {
10046 return ?
10047}
10048
Ian Elliott28bd2c32017-10-13 09:21:12 -060010049@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -040010050@extension("VK_KHR_swapchain") // 2
10051cmd VkResult vkAcquireNextImage2KHR(
10052 VkDevice device,
10053 const VkAcquireNextImageInfoKHR* pAcquireInfo,
10054 u32* pImageIndex) {
10055 return ?
10056}
10057
Jesse Hallad250842017-03-10 18:35:38 -080010058@extension("VK_KHR_display") // 3
Jesse Hall1356b0d2015-11-23 17:24:58 -080010059cmd VkResult vkGetPhysicalDeviceDisplayPropertiesKHR(
10060 VkPhysicalDevice physicalDevice,
Jesse Hall03b6fe12015-11-24 12:44:21 -080010061 u32* pPropertyCount,
Jesse Hall1356b0d2015-11-23 17:24:58 -080010062 VkDisplayPropertiesKHR* pProperties) {
10063 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
10064 return ?
10065}
10066
Jesse Hallad250842017-03-10 18:35:38 -080010067@extension("VK_KHR_display") // 3
Jesse Halla6429252015-11-29 18:59:42 -080010068cmd VkResult vkGetPhysicalDeviceDisplayPlanePropertiesKHR(
10069 VkPhysicalDevice physicalDevice,
10070 u32* pPropertyCount,
10071 VkDisplayPlanePropertiesKHR* pProperties) {
10072 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
10073 return ?
10074}
10075
Jesse Hallad250842017-03-10 18:35:38 -080010076@extension("VK_KHR_display") // 3
Jesse Halla6429252015-11-29 18:59:42 -080010077cmd VkResult vkGetDisplayPlaneSupportedDisplaysKHR(
10078 VkPhysicalDevice physicalDevice,
Jesse Hall3dd678a2016-01-08 21:52:01 -080010079 u32 planeIndex,
Jesse Hallf4ab2b12015-11-30 16:04:55 -080010080 u32* pDisplayCount,
10081 VkDisplayKHR* pDisplays) {
Jesse Halla6429252015-11-29 18:59:42 -080010082 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
10083 return ?
10084}
10085
Jesse Hallad250842017-03-10 18:35:38 -080010086@extension("VK_KHR_display") // 3
Jesse Hall1356b0d2015-11-23 17:24:58 -080010087cmd VkResult vkGetDisplayModePropertiesKHR(
10088 VkPhysicalDevice physicalDevice,
10089 VkDisplayKHR display,
Jesse Hall03b6fe12015-11-24 12:44:21 -080010090 u32* pPropertyCount,
10091 VkDisplayModePropertiesKHR* pProperties) {
Jesse Hall1356b0d2015-11-23 17:24:58 -080010092 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
10093 return ?
10094}
10095
Jesse Hallad250842017-03-10 18:35:38 -080010096@extension("VK_KHR_display") // 3
Jesse Hall1356b0d2015-11-23 17:24:58 -080010097cmd VkResult vkCreateDisplayModeKHR(
10098 VkPhysicalDevice physicalDevice,
10099 VkDisplayKHR display,
10100 const VkDisplayModeCreateInfoKHR* pCreateInfo,
Jesse Hall0e74f002015-11-30 11:37:59 -080010101 const VkAllocationCallbacks* pAllocator,
Jesse Hall1356b0d2015-11-23 17:24:58 -080010102 VkDisplayModeKHR* pMode) {
10103 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
10104 return ?
10105}
10106
Jesse Hallad250842017-03-10 18:35:38 -080010107@extension("VK_KHR_display") // 3
Jesse Halla6429252015-11-29 18:59:42 -080010108cmd VkResult vkGetDisplayPlaneCapabilitiesKHR(
Jesse Hall1356b0d2015-11-23 17:24:58 -080010109 VkPhysicalDevice physicalDevice,
Jesse Hall9ba8bc82015-11-30 16:22:16 -080010110 VkDisplayModeKHR mode,
Jesse Hall1356b0d2015-11-23 17:24:58 -080010111 u32 planeIndex,
Jesse Halla6429252015-11-29 18:59:42 -080010112 VkDisplayPlaneCapabilitiesKHR* pCapabilities) {
Jesse Hall1356b0d2015-11-23 17:24:58 -080010113 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
10114 return ?
10115}
10116
Jesse Hallad250842017-03-10 18:35:38 -080010117@extension("VK_KHR_display") // 3
Jesse Halla6429252015-11-29 18:59:42 -080010118cmd VkResult vkCreateDisplayPlaneSurfaceKHR(
10119 VkInstance instance,
10120 const VkDisplaySurfaceCreateInfoKHR* pCreateInfo,
Jesse Hall0e74f002015-11-30 11:37:59 -080010121 const VkAllocationCallbacks* pAllocator,
Jesse Halla6429252015-11-29 18:59:42 -080010122 VkSurfaceKHR* pSurface) {
10123 return ?
10124}
10125
Jesse Hallad250842017-03-10 18:35:38 -080010126@extension("VK_KHR_display_swapchain") // 4
Jesse Hall9ba8bc82015-11-30 16:22:16 -080010127cmd VkResult vkCreateSharedSwapchainsKHR(
10128 VkDevice device,
10129 u32 swapchainCount,
10130 const VkSwapchainCreateInfoKHR* pCreateInfos,
10131 const VkAllocationCallbacks* pAllocator,
10132 VkSwapchainKHR* pSwapchains) {
10133 return ?
10134}
10135
Jesse Hallad250842017-03-10 18:35:38 -080010136@extension("VK_KHR_xlib_surface") // 5
Jesse Halla6429252015-11-29 18:59:42 -080010137cmd VkResult vkCreateXlibSurfaceKHR(
Jesse Hall1356b0d2015-11-23 17:24:58 -080010138 VkInstance instance,
Jesse Hallf9fa9a52016-01-08 16:08:51 -080010139 const VkXlibSurfaceCreateInfoKHR* 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_xlib_surface") // 5
Jesse Halla6429252015-11-29 18:59:42 -080010147cmd VkBool32 vkGetPhysicalDeviceXlibPresentationSupportKHR(
10148 VkPhysicalDevice physicalDevice,
10149 u32 queueFamilyIndex,
10150 platform.Display* dpy,
Jesse Hall65ab5522015-11-30 00:07:16 -080010151 platform.VisualID visualID) {
Jesse Halla6429252015-11-29 18:59:42 -080010152 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
10153 return ?
10154}
10155
Jesse Hallad250842017-03-10 18:35:38 -080010156@extension("VK_KHR_xcb_surface") // 6
Jesse Hallf9fa9a52016-01-08 16:08:51 -080010157cmd VkResult vkCreateXcbSurfaceKHR(
Jesse Hall1356b0d2015-11-23 17:24:58 -080010158 VkInstance instance,
Jesse Hallf9fa9a52016-01-08 16:08:51 -080010159 const VkXcbSurfaceCreateInfoKHR* pCreateInfo,
Jesse Hall0e74f002015-11-30 11:37:59 -080010160 const VkAllocationCallbacks* pAllocator,
Jesse Hall1356b0d2015-11-23 17:24:58 -080010161 VkSurfaceKHR* pSurface) {
10162 instanceObject := GetInstance(instance)
10163 return ?
10164}
10165
Jesse Hallad250842017-03-10 18:35:38 -080010166@extension("VK_KHR_xcb_surface") // 6
Jesse Halla6429252015-11-29 18:59:42 -080010167cmd VkBool32 vkGetPhysicalDeviceXcbPresentationSupportKHR(
10168 VkPhysicalDevice physicalDevice,
10169 u32 queueFamilyIndex,
10170 platform.xcb_connection_t* connection,
10171 platform.xcb_visualid_t visual_id) {
10172 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
10173 return ?
10174}
10175
Jesse Hallad250842017-03-10 18:35:38 -080010176@extension("VK_KHR_wayland_surface") // 7
Jesse Hall1356b0d2015-11-23 17:24:58 -080010177cmd VkResult vkCreateWaylandSurfaceKHR(
10178 VkInstance instance,
Jesse Hallf9fa9a52016-01-08 16:08:51 -080010179 const VkWaylandSurfaceCreateInfoKHR* pCreateInfo,
Jesse Hall0e74f002015-11-30 11:37:59 -080010180 const VkAllocationCallbacks* pAllocator,
Jesse Hall1356b0d2015-11-23 17:24:58 -080010181 VkSurfaceKHR* pSurface) {
10182 instanceObject := GetInstance(instance)
10183 return ?
10184}
10185
Jesse Hallad250842017-03-10 18:35:38 -080010186@extension("VK_KHR_wayland_surface") // 7
Jesse Halla6429252015-11-29 18:59:42 -080010187cmd VkBool32 vkGetPhysicalDeviceWaylandPresentationSupportKHR(
10188 VkPhysicalDevice physicalDevice,
10189 u32 queueFamilyIndex,
10190 platform.wl_display* display) {
10191 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
10192 return ?
10193}
10194
Jesse Hallad250842017-03-10 18:35:38 -080010195@extension("VK_KHR_mir_surface") // 8
Jesse Hall1356b0d2015-11-23 17:24:58 -080010196cmd VkResult vkCreateMirSurfaceKHR(
10197 VkInstance instance,
Jesse Hallf9fa9a52016-01-08 16:08:51 -080010198 const VkMirSurfaceCreateInfoKHR* pCreateInfo,
Jesse Hall0e74f002015-11-30 11:37:59 -080010199 const VkAllocationCallbacks* pAllocator,
Jesse Hall1356b0d2015-11-23 17:24:58 -080010200 VkSurfaceKHR* pSurface) {
10201 instanceObject := GetInstance(instance)
10202 return ?
10203}
10204
Jesse Hallad250842017-03-10 18:35:38 -080010205@extension("VK_KHR_mir_surface") // 8
Jesse Halla6429252015-11-29 18:59:42 -080010206cmd VkBool32 vkGetPhysicalDeviceMirPresentationSupportKHR(
10207 VkPhysicalDevice physicalDevice,
10208 u32 queueFamilyIndex,
10209 platform.MirConnection* connection) {
10210 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
10211 return ?
10212}
10213
Jesse Hallad250842017-03-10 18:35:38 -080010214@extension("VK_KHR_android_surface") // 9
Jesse Hall1356b0d2015-11-23 17:24:58 -080010215cmd VkResult vkCreateAndroidSurfaceKHR(
10216 VkInstance instance,
Jesse Hallf9fa9a52016-01-08 16:08:51 -080010217 const VkAndroidSurfaceCreateInfoKHR* pCreateInfo,
Jesse Hall0e74f002015-11-30 11:37:59 -080010218 const VkAllocationCallbacks* pAllocator,
Jesse Hall1356b0d2015-11-23 17:24:58 -080010219 VkSurfaceKHR* pSurface) {
10220 instanceObject := GetInstance(instance)
10221 return ?
10222}
10223
Jesse Hallad250842017-03-10 18:35:38 -080010224@extension("VK_KHR_win32_surface") // 10
Jesse Hall1356b0d2015-11-23 17:24:58 -080010225cmd VkResult vkCreateWin32SurfaceKHR(
10226 VkInstance instance,
Jesse Hallf9fa9a52016-01-08 16:08:51 -080010227 const VkWin32SurfaceCreateInfoKHR* pCreateInfo,
Jesse Hall0e74f002015-11-30 11:37:59 -080010228 const VkAllocationCallbacks* pAllocator,
Jesse Hall1356b0d2015-11-23 17:24:58 -080010229 VkSurfaceKHR* pSurface) {
10230 instanceObject := GetInstance(instance)
10231 return ?
10232}
10233
Jesse Hallad250842017-03-10 18:35:38 -080010234@extension("VK_KHR_win32_surface") // 10
Jesse Halla6429252015-11-29 18:59:42 -080010235cmd VkResult vkGetPhysicalDeviceWin32PresentationSupportKHR(
10236 VkPhysicalDevice physicalDevice,
10237 u32 queueFamilyIndex) {
Jesse Halle2948d82016-02-25 04:19:32 -080010238 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
Jesse Halla6429252015-11-29 18:59:42 -080010239 return ?
10240}
10241
Jesse Hallad250842017-03-10 18:35:38 -080010242@extension("VK_ANDROID_native_buffer") // 11
Jesse Halld1abd742017-02-09 21:45:51 -080010243@optional
Chia-I Wub262ddc2016-03-22 07:38:20 +080010244cmd VkResult vkGetSwapchainGrallocUsageANDROID(
10245 VkDevice device,
10246 VkFormat format,
10247 VkImageUsageFlags imageUsage,
Jesse Halld1abd742017-02-09 21:45:51 -080010248 s32* grallocUsage) {
Chia-I Wub262ddc2016-03-22 07:38:20 +080010249 return ?
10250}
10251
Jesse Hallad250842017-03-10 18:35:38 -080010252@extension("VK_ANDROID_native_buffer") // 11
Jesse Halld1abd742017-02-09 21:45:51 -080010253@optional
Chris Forbes8e4438b2016-12-07 16:26:49 +130010254cmd VkResult vkGetSwapchainGrallocUsage2ANDROID(
10255 VkDevice device,
10256 VkFormat format,
10257 VkImageUsageFlags imageUsage,
10258 VkSwapchainImageUsageFlagsANDROID swapchainImageUsage,
Jesse Halld1abd742017-02-09 21:45:51 -080010259 u64* grallocConsumerUsage,
10260 u64* grallocProducerUsage) {
Chris Forbes8e4438b2016-12-07 16:26:49 +130010261 return ?
10262}
10263
Jesse Hallad250842017-03-10 18:35:38 -080010264@extension("VK_ANDROID_native_buffer") // 11
Chia-I Wub262ddc2016-03-22 07:38:20 +080010265cmd VkResult vkAcquireImageANDROID(
10266 VkDevice device,
10267 VkImage image,
10268 int nativeFenceFd,
10269 VkSemaphore semaphore,
10270 VkFence fence) {
10271 return ?
10272}
10273
Jesse Hallad250842017-03-10 18:35:38 -080010274@extension("VK_ANDROID_native_buffer") // 11
Chia-I Wub262ddc2016-03-22 07:38:20 +080010275cmd VkResult vkQueueSignalReleaseImageANDROID(
10276 VkQueue queue,
10277 u32 waitSemaphoreCount,
10278 const VkSemaphore* pWaitSemaphores,
10279 VkImage image,
10280 int* pNativeFenceFd) {
10281 return ?
10282}
10283
Jesse Hallad250842017-03-10 18:35:38 -080010284@extension("VK_EXT_debug_report") // 12
10285@external type void* PFN_vkDebugReportCallbackEXT
10286@extension("VK_EXT_debug_report") // 12
10287@pfn cmd VkBool32 vkDebugReportCallbackEXT(
10288 VkDebugReportFlagsEXT flags,
10289 VkDebugReportObjectTypeEXT objectType,
10290 u64 object,
10291 platform.size_t location,
10292 s32 messageCode,
10293 const char* pLayerPrefix,
10294 const char* pMessage,
10295 void* pUserData) {
10296 return ?
10297}
10298
10299@extension("VK_EXT_debug_report") // 12
10300cmd VkResult vkCreateDebugReportCallbackEXT(
10301 VkInstance instance,
10302 const VkDebugReportCallbackCreateInfoEXT* pCreateInfo,
10303 const VkAllocationCallbacks* pAllocator,
10304 VkDebugReportCallbackEXT* pCallback) {
10305 return ?
10306}
10307
10308@extension("VK_EXT_debug_report") // 12
10309cmd void vkDestroyDebugReportCallbackEXT(
10310 VkInstance instance,
10311 VkDebugReportCallbackEXT callback,
10312 const VkAllocationCallbacks* pAllocator) {
10313}
10314
10315@extension("VK_EXT_debug_report") // 12
10316cmd void vkDebugReportMessageEXT(
10317 VkInstance instance,
10318 VkDebugReportFlagsEXT flags,
10319 VkDebugReportObjectTypeEXT objectType,
10320 u64 object,
10321 platform.size_t location,
10322 s32 messageCode,
10323 const char* pLayerPrefix,
10324 const char* pMessage) {
10325}
10326
10327@extension("VK_EXT_debug_marker") // 23
10328cmd VkResult vkDebugMarkerSetObjectTagEXT(
10329 VkDevice device,
Jesse Hall77726222017-09-19 14:49:27 -050010330 const VkDebugMarkerObjectTagInfoEXT* pTagInfo) {
Jesse Hallad250842017-03-10 18:35:38 -080010331 return ?
10332}
10333
10334@extension("VK_EXT_debug_marker") // 23
10335cmd VkResult vkDebugMarkerSetObjectNameEXT(
10336 VkDevice device,
Jesse Hall77726222017-09-19 14:49:27 -050010337 const VkDebugMarkerObjectNameInfoEXT* pNameInfo) {
Jesse Hallad250842017-03-10 18:35:38 -080010338 return ?
10339}
10340
10341@extension("VK_EXT_debug_marker") // 23
10342cmd void vkCmdDebugMarkerBeginEXT(
10343 VkCommandBuffer commandBuffer,
Jesse Hall77726222017-09-19 14:49:27 -050010344 const VkDebugMarkerMarkerInfoEXT* pMarkerInfo) {
Jesse Hallad250842017-03-10 18:35:38 -080010345}
10346
10347@extension("VK_EXT_debug_marker") // 23
10348cmd void vkCmdDebugMarkerEndEXT(
10349 VkCommandBuffer commandBuffer) {
10350}
10351
10352@extension("VK_EXT_debug_marker") // 23
10353cmd void vkCmdDebugMarkerInsertEXT(
10354 VkCommandBuffer commandBuffer,
Jesse Hall77726222017-09-19 14:49:27 -050010355 const VkDebugMarkerMarkerInfoEXT* pMarkerInfo) {
Jesse Hallad250842017-03-10 18:35:38 -080010356}
10357
10358@extension("VK_AMD_draw_indirect_count") // 34
10359cmd void vkCmdDrawIndirectCountAMD(
10360 VkCommandBuffer commandBuffer,
10361 VkBuffer buffer,
10362 VkDeviceSize offset,
10363 VkBuffer countBuffer,
10364 VkDeviceSize countBufferOffset,
10365 u32 maxDrawCount,
10366 u32 stride) {
10367}
10368
10369@extension("VK_AMD_draw_indirect_count") // 34
10370cmd void vkCmdDrawIndexedIndirectCountAMD(
10371 VkCommandBuffer commandBuffer,
10372 VkBuffer buffer,
10373 VkDeviceSize offset,
10374 VkBuffer countBuffer,
10375 VkDeviceSize countBufferOffset,
10376 u32 maxDrawCount,
10377 u32 stride) {
10378}
10379
Jesse Hall8c954d32018-01-17 22:06:20 -080010380@extension("VK_AMD_shader_info") // 43
10381cmd VkResult vkGetShaderInfoAMD(
10382 VkDevice device,
10383 VkPipeline pipeline,
10384 VkShaderStageFlagBits shaderStage,
10385 VkShaderInfoTypeAMD infoType,
10386 platform.size_t* pInfoSize,
10387 void* pInfo) {
10388 return ?
10389}
10390
Jesse Hallad250842017-03-10 18:35:38 -080010391@extension("VK_NV_external_memory_capabilities") // 56
10392cmd VkResult vkGetPhysicalDeviceExternalImageFormatPropertiesNV(
10393 VkPhysicalDevice physicalDevice,
10394 VkFormat format,
10395 VkImageType type,
10396 VkImageTiling tiling,
10397 VkImageUsageFlags usage,
10398 VkImageCreateFlags flags,
10399 VkExternalMemoryHandleTypeFlagsNV externalHandleType,
10400 VkExternalImageFormatPropertiesNV* pExternalImageFormatProperties) {
10401 return ?
10402}
10403
10404@extension("VK_NV_external_memory_win32") // 58
10405cmd VkResult vkGetMemoryWin32HandleNV(
10406 VkDevice device,
10407 VkDeviceMemory memory,
10408 VkExternalMemoryHandleTypeFlagsNV handleType,
10409 platform.HANDLE* pHandle) {
10410 return ?
10411}
10412
10413@extension("VK_KHR_get_physical_device_properties2") // 60
10414cmd void vkGetPhysicalDeviceFeatures2KHR(
10415 VkPhysicalDevice physicalDevice,
10416 VkPhysicalDeviceFeatures2KHR* pFeatures) {
10417}
10418
10419@extension("VK_KHR_get_physical_device_properties2") // 60
10420cmd void vkGetPhysicalDeviceProperties2KHR(
10421 VkPhysicalDevice physicalDevice,
10422 VkPhysicalDeviceProperties2KHR* pProperties) {
10423}
10424
10425@extension("VK_KHR_get_physical_device_properties2") // 60
10426cmd void vkGetPhysicalDeviceFormatProperties2KHR(
10427 VkPhysicalDevice physicalDevice,
10428 VkFormat format,
10429 VkFormatProperties2KHR* pFormatProperties) {
10430}
10431
10432@extension("VK_KHR_get_physical_device_properties2") // 60
10433cmd VkResult vkGetPhysicalDeviceImageFormatProperties2KHR(
10434 VkPhysicalDevice physicalDevice,
10435 const VkPhysicalDeviceImageFormatInfo2KHR* pImageFormatInfo,
10436 VkImageFormatProperties2KHR* pImageFormatProperties) {
10437 return ?
10438}
10439
10440@extension("VK_KHR_get_physical_device_properties2") // 60
10441cmd void vkGetPhysicalDeviceQueueFamilyProperties2KHR(
10442 VkPhysicalDevice physicalDevice,
10443 u32* pQueueFamilyPropertyCount,
10444 VkQueueFamilyProperties2KHR* pQueueFamilyProperties) {
10445}
10446
10447@extension("VK_KHR_get_physical_device_properties2") // 60
10448cmd void vkGetPhysicalDeviceMemoryProperties2KHR(
10449 VkPhysicalDevice physicalDevice,
10450 VkPhysicalDeviceMemoryProperties2KHR* pMemoryProperties) {
10451}
10452
10453@extension("VK_KHR_get_physical_device_properties2") // 60
10454cmd void vkGetPhysicalDeviceSparseImageFormatProperties2KHR(
10455 VkPhysicalDevice physicalDevice,
10456 const VkPhysicalDeviceSparseImageFormatInfo2KHR* pFormatInfo,
10457 u32* pPropertyCount,
10458 VkSparseImageFormatProperties2KHR* pProperties) {
10459}
10460
Daniel Koch09f7bf92017-10-05 00:26:58 -040010461@extension("VK_KHR_device_group") // 61
10462cmd void vkGetDeviceGroupPeerMemoryFeaturesKHR(
Jesse Hallad250842017-03-10 18:35:38 -080010463 VkDevice device,
10464 u32 heapIndex,
10465 u32 localDeviceIndex,
10466 u32 remoteDeviceIndex,
Daniel Koch09f7bf92017-10-05 00:26:58 -040010467 VkPeerMemoryFeatureFlagsKHR* pPeerMemoryFeatures) {
Jesse Hallad250842017-03-10 18:35:38 -080010468}
10469
Daniel Koch09f7bf92017-10-05 00:26:58 -040010470@extension("VK_KHR_device_group") // 61
10471cmd void vkCmdSetDeviceMaskKHR(
Jesse Hallad250842017-03-10 18:35:38 -080010472 VkCommandBuffer commandBuffer,
10473 u32 deviceMask) {
10474}
10475
Jesse Hallad250842017-03-10 18:35:38 -080010476
Daniel Koch09f7bf92017-10-05 00:26:58 -040010477@extension("VK_KHR_device_group") // 61
10478cmd void vkCmdDispatchBaseKHR(
Jesse Hallad250842017-03-10 18:35:38 -080010479 VkCommandBuffer commandBuffer,
10480 u32 baseGroupX,
10481 u32 baseGroupY,
10482 u32 baseGroupZ,
10483 u32 groupCountX,
10484 u32 groupCountY,
10485 u32 groupCountZ) {
10486}
10487
Jesse Hallad250842017-03-10 18:35:38 -080010488@extension("VK_NN_vi_surface") // 63
10489cmd VkResult vkCreateViSurfaceNN(
10490 VkInstance instance,
10491 const VkViSurfaceCreateInfoNN* pCreateInfo,
10492 const VkAllocationCallbacks* pAllocator,
10493 VkSurfaceKHR* pSurface) {
10494 return ?
10495}
10496
10497@extension("VK_KHR_maintenance1") // 70
10498cmd void vkTrimCommandPoolKHR(
10499 VkDevice device,
10500 VkCommandPool commandPool,
10501 VkCommandPoolTrimFlagsKHR flags) {
10502}
10503
Daniel Koch09f7bf92017-10-05 00:26:58 -040010504@extension("VK_KHR_device_group_creation") // 71
10505@threadSafety("system")
10506cmd VkResult vkEnumeratePhysicalDeviceGroupsKHR(
Jesse Hallad250842017-03-10 18:35:38 -080010507 VkInstance instance,
10508 u32* pPhysicalDeviceGroupCount,
Daniel Koch09f7bf92017-10-05 00:26:58 -040010509 VkPhysicalDeviceGroupPropertiesKHR* pPhysicalDeviceGroupProperties) {
10510 instanceObject := GetInstance(instance)
10511
10512 physicalDeviceGroupCount := as!u32(?)
10513 pPhysicalDeviceGroupCount[0] = physicalDeviceGroupCount
10514 physicalDevices := pPhysicalDeviceGroupProperties[0:physicalDeviceGroupCount]
10515
10516 for i in (0 .. physicalDeviceGroupCount) {
10517 physicalDevice := ?
10518 physicalDevices[i] = physicalDevice
10519 if !(physicalDevice in State.PhysicalDevices) {
10520 State.PhysicalDevices[physicalDevice] = new!PhysicalDeviceObject(instance: instance)
10521 }
10522 }
10523
Jesse Hallad250842017-03-10 18:35:38 -080010524 return ?
10525}
10526
Jesse Hall9492f992017-08-28 12:10:06 -070010527@extension("VK_KHR_external_memory_capabilities") // 72
10528cmd void vkGetPhysicalDeviceExternalBufferPropertiesKHR(
Jesse Hallad250842017-03-10 18:35:38 -080010529 VkPhysicalDevice physicalDevice,
Jesse Hall9492f992017-08-28 12:10:06 -070010530 const VkPhysicalDeviceExternalBufferInfoKHR* pExternalBufferInfo,
10531 VkExternalBufferPropertiesKHR* pExternalBufferProperties) {
Jesse Hallad250842017-03-10 18:35:38 -080010532}
10533
Jesse Hall9492f992017-08-28 12:10:06 -070010534@extension("VK_KHR_external_memory_win32") // 74
10535cmd VkResult vkGetMemoryWin32HandleKHR(
Jesse Hallad250842017-03-10 18:35:38 -080010536 VkDevice device,
Jesse Hall9492f992017-08-28 12:10:06 -070010537 const VkMemoryGetWin32HandleInfoKHR* pGetWin32HandleInfo,
Jesse Hallad250842017-03-10 18:35:38 -080010538 platform.HANDLE* pHandle) {
10539 return ?
10540}
10541
Jesse Hall9492f992017-08-28 12:10:06 -070010542@extension("VK_KHR_external_memory_win32") // 74
10543cmd VkResult vkGetMemoryWin32HandlePropertiesKHR(
Jesse Hallad250842017-03-10 18:35:38 -080010544 VkDevice device,
Jesse Hall9492f992017-08-28 12:10:06 -070010545 VkExternalMemoryHandleTypeFlagBitsKHR handleType,
Jesse Hallad250842017-03-10 18:35:38 -080010546 platform.HANDLE handle,
Jesse Hall9492f992017-08-28 12:10:06 -070010547 VkMemoryWin32HandlePropertiesKHR* pMemoryWin32HandleProperties) {
Jesse Hallad250842017-03-10 18:35:38 -080010548 return ?
10549}
10550
Jesse Hall9492f992017-08-28 12:10:06 -070010551@extension("VK_KHR_external_memory_fd") // 75
10552cmd VkResult vkGetMemoryFdKHR(
Jesse Hallad250842017-03-10 18:35:38 -080010553 VkDevice device,
Jesse Hall9492f992017-08-28 12:10:06 -070010554 const VkMemoryGetFdInfoKHR* pGetFdInfo,
Jesse Hallad250842017-03-10 18:35:38 -080010555 s32* pFd) {
10556 return ?
10557}
10558
Jesse Hall9492f992017-08-28 12:10:06 -070010559@extension("VK_KHR_external_memory_fd") // 75
10560cmd VkResult vkGetMemoryFdPropertiesKHR(
Jesse Hallad250842017-03-10 18:35:38 -080010561 VkDevice device,
Jesse Hall9492f992017-08-28 12:10:06 -070010562 VkExternalMemoryHandleTypeFlagBitsKHR handleType,
Jesse Hallad250842017-03-10 18:35:38 -080010563 s32 fd,
Jesse Hall9492f992017-08-28 12:10:06 -070010564 VkMemoryFdPropertiesKHR* pMemoryFdProperties) {
Jesse Hallad250842017-03-10 18:35:38 -080010565 return ?
10566}
10567
Jesse Hall9492f992017-08-28 12:10:06 -070010568@extension("VK_KHR_external_semaphore_capabilities") // 77
10569cmd void vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(
Jesse Hallad250842017-03-10 18:35:38 -080010570 VkPhysicalDevice physicalDevice,
Jesse Hall9492f992017-08-28 12:10:06 -070010571 const VkPhysicalDeviceExternalSemaphoreInfoKHR* pExternalSemaphoreInfo,
10572 VkExternalSemaphorePropertiesKHR* pExternalSemaphoreProperties) {
Jesse Hallad250842017-03-10 18:35:38 -080010573}
10574
Jesse Hall9492f992017-08-28 12:10:06 -070010575@extension("VK_KHR_external_semaphore_win32") // 79
10576cmd VkResult vkImportSemaphoreWin32HandleKHR(
Jesse Hallad250842017-03-10 18:35:38 -080010577 VkDevice device,
Jesse Hall9492f992017-08-28 12:10:06 -070010578 const VkImportSemaphoreWin32HandleInfoKHR* pImportSemaphoreWin32HandleInfo) {
Jesse Hallad250842017-03-10 18:35:38 -080010579 return ?
10580}
10581
Jesse Hall9492f992017-08-28 12:10:06 -070010582@extension("VK_KHR_external_semaphore_win32") // 79
10583cmd VkResult vkGetSemaphoreWin32HandleKHR(
Jesse Hallad250842017-03-10 18:35:38 -080010584 VkDevice device,
Jesse Hall9492f992017-08-28 12:10:06 -070010585 const VkSemaphoreGetWin32HandleInfoKHR* pGetWin32HandleInfo,
Jesse Hallad250842017-03-10 18:35:38 -080010586 platform.HANDLE* pHandle) {
10587 return ?
10588}
10589
Jesse Hall9492f992017-08-28 12:10:06 -070010590@extension("VK_KHR_external_semaphore_fd") // 80
10591cmd VkResult vkImportSemaphoreFdKHR(
Jesse Hallad250842017-03-10 18:35:38 -080010592 VkDevice device,
Jesse Hall9492f992017-08-28 12:10:06 -070010593 const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo) {
Jesse Hallad250842017-03-10 18:35:38 -080010594 return ?
10595}
10596
Jesse Hall9492f992017-08-28 12:10:06 -070010597@extension("VK_KHR_external_semaphore_fd") // 80
10598cmd VkResult vkGetSemaphoreFdKHR(
Jesse Hallad250842017-03-10 18:35:38 -080010599 VkDevice device,
Jesse Hall9492f992017-08-28 12:10:06 -070010600 const VkSemaphoreGetFdInfoKHR* pGetFdInfo,
Jesse Hallad250842017-03-10 18:35:38 -080010601 s32* pFd) {
10602 return ?
10603}
10604
10605@extension("VK_KHR_push_descriptor") // 81
10606cmd void vkCmdPushDescriptorSetKHR(
10607 VkCommandBuffer commandBuffer,
10608 VkPipelineBindPoint pipelineBindPoint,
10609 VkPipelineLayout layout,
10610 u32 set,
10611 u32 descriptorWriteCount,
10612 const VkWriteDescriptorSet* pDescriptorWrites) {
10613}
10614
Jesse Halla13a3cf2018-07-09 15:51:52 -070010615@extension("VK_EXT_conditional_rendering") // 82
10616cmd void vkCmdBeginConditionalRenderingEXT(
10617 VkCommandBuffer commandBuffer,
10618 const VkConditionalRenderingBeginInfoEXT* pConditionalRenderingBegin) {
10619}
10620
10621@extension("VK_EXT_conditional_rendering") // 82
10622cmd void vkCmdEndConditionalRenderingEXT(
10623 VkCommandBuffer commandBuffer) {
10624}
10625
Jesse Hallad250842017-03-10 18:35:38 -080010626@extension("VK_KHR_descriptor_update_template") // 86
10627cmd VkResult vkCreateDescriptorUpdateTemplateKHR(
10628 VkDevice device,
10629 const VkDescriptorUpdateTemplateCreateInfoKHR* pCreateInfo,
10630 const VkAllocationCallbacks* pAllocator,
10631 VkDescriptorUpdateTemplateKHR* pDescriptorUpdateTemplate) {
10632 return ?
10633}
10634
10635@extension("VK_KHR_descriptor_update_template") // 86
10636cmd void vkDestroyDescriptorUpdateTemplateKHR(
10637 VkDevice device,
10638 VkDescriptorUpdateTemplateKHR descriptorUpdateTemplate,
10639 const VkAllocationCallbacks* pAllocator) {
10640}
10641
10642@extension("VK_KHR_descriptor_update_template") // 86
10643cmd void vkUpdateDescriptorSetWithTemplateKHR(
10644 VkDevice device,
10645 VkDescriptorSet descriptorSet,
10646 VkDescriptorUpdateTemplateKHR descriptorUpdateTemplate,
10647 const void* pData) {
10648}
10649
10650@extension("VK_KHR_descriptor_update_template") // 86
10651cmd void vkCmdPushDescriptorSetWithTemplateKHR(
10652 VkCommandBuffer commandBuffer,
10653 VkDescriptorUpdateTemplateKHR descriptorUpdateTemplate,
10654 VkPipelineLayout layout,
10655 u32 set,
10656 const void* pData) {
10657}
10658
10659@extension("VK_NVX_device_generated_commands") // 87
10660cmd void vkCmdProcessCommandsNVX(
10661 VkCommandBuffer commandBuffer,
10662 const VkCmdProcessCommandsInfoNVX* pProcessCommandsInfo) {
10663}
10664
10665@extension("VK_NVX_device_generated_commands") // 87
10666cmd void vkCmdReserveSpaceForCommandsNVX(
10667 VkCommandBuffer commandBuffer,
10668 const VkCmdReserveSpaceForCommandsInfoNVX* pReserveSpaceInfo) {
10669}
10670
10671@extension("VK_NVX_device_generated_commands") // 87
10672cmd VkResult vkCreateIndirectCommandsLayoutNVX(
10673 VkDevice device,
10674 const VkIndirectCommandsLayoutCreateInfoNVX* pCreateInfo,
10675 const VkAllocationCallbacks* pAllocator,
10676 VkIndirectCommandsLayoutNVX* pIndirectCommandsLayout) {
10677 return ?
10678}
10679
10680@extension("VK_NVX_device_generated_commands") // 87
10681cmd void vkDestroyIndirectCommandsLayoutNVX(
10682 VkDevice device,
10683 VkIndirectCommandsLayoutNVX indirectCommandsLayout,
10684 const VkAllocationCallbacks* pAllocator) {
10685}
10686
10687@extension("VK_NVX_device_generated_commands") // 87
10688cmd VkResult vkCreateObjectTableNVX(
10689 VkDevice device,
10690 const VkObjectTableCreateInfoNVX* pCreateInfo,
10691 const VkAllocationCallbacks* pAllocator,
10692 VkObjectTableNVX* pObjectTable) {
10693 return ?
10694}
10695
10696@extension("VK_NVX_device_generated_commands") // 87
10697cmd void vkDestroyObjectTableNVX(
10698 VkDevice device,
10699 VkObjectTableNVX objectTable,
10700 const VkAllocationCallbacks* pAllocator) {
10701}
10702
10703@extension("VK_NVX_device_generated_commands") // 87
10704cmd VkResult vkRegisterObjectsNVX(
10705 VkDevice device,
10706 VkObjectTableNVX objectTable,
10707 u32 objectCount,
10708 const VkObjectTableEntryNVX* const* ppObjectTableEntries,
10709 const u32* pObjectIndices) {
10710 return ?
10711}
10712
10713@extension("VK_NVX_device_generated_commands") // 87
10714cmd VkResult vkUnregisterObjectsNVX(
10715 VkDevice device,
10716 VkObjectTableNVX objectTable,
10717 u32 objectCount,
10718 const VkObjectEntryTypeNVX* pObjectEntryTypes,
10719 const u32* pObjectIndices) {
10720 return ?
10721}
10722
10723@extension("VK_NVX_device_generated_commands") // 87
10724cmd void vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX(
10725 VkPhysicalDevice physicalDevice,
10726 VkDeviceGeneratedCommandsFeaturesNVX* pFeatures,
10727 VkDeviceGeneratedCommandsLimitsNVX* pLimits) {
10728}
10729
10730@extension("VK_NV_clip_space_w_scaling") // 88
10731cmd void vkCmdSetViewportWScalingNV(
10732 VkCommandBuffer commandBuffer,
10733 u32 firstViewport,
10734 u32 viewportCount,
10735 const VkViewportWScalingNV* pViewportWScalings) {
10736}
10737
10738@extension("VK_EXT_direct_mode_display") // 89
10739cmd VkResult vkReleaseDisplayEXT(
10740 VkPhysicalDevice physicalDevice,
10741 VkDisplayKHR display) {
10742 return ?
10743}
10744
10745@extension("VK_EXT_acquire_xlib_display") // 90
10746cmd VkResult vkAcquireXlibDisplayEXT(
10747 VkPhysicalDevice physicalDevice,
10748 platform.Display* dpy,
10749 VkDisplayKHR display) {
10750 return ?
10751}
10752
10753@extension("VK_EXT_acquire_xlib_display") // 90
10754cmd VkResult vkGetRandROutputDisplayEXT(
10755 VkPhysicalDevice physicalDevice,
10756 platform.Display* dpy,
10757 platform.RROutput rrOutput,
10758 VkDisplayKHR* pDisplay) {
10759 return ?
10760}
10761
10762@extension("VK_EXT_display_surface_counter") // 91
10763cmd VkResult vkGetPhysicalDeviceSurfaceCapabilities2EXT(
10764 VkPhysicalDevice physicalDevice,
10765 VkSurfaceKHR surface,
10766 VkSurfaceCapabilities2EXT* pSurfaceCapabilities) {
10767 return ?
10768}
10769
10770@extension("VK_EXT_display_control") // 92
10771cmd VkResult vkDisplayPowerControlEXT(
10772 VkDevice device,
10773 VkDisplayKHR display,
10774 const VkDisplayPowerInfoEXT* pDisplayPowerInfo) {
10775 return ?
10776}
10777
10778@extension("VK_EXT_display_control") // 92
10779cmd VkResult vkRegisterDeviceEventEXT(
10780 VkDevice device,
10781 const VkDeviceEventInfoEXT* pDeviceEventInfo,
10782 const VkAllocationCallbacks* pAllocator,
10783 VkFence* pFence) {
10784 return ?
10785}
10786
10787@extension("VK_EXT_display_control") // 92
10788cmd VkResult vkRegisterDisplayEventEXT(
10789 VkDevice device,
10790 VkDisplayKHR display,
10791 const VkDisplayEventInfoEXT* pDisplayEventInfo,
10792 const VkAllocationCallbacks* pAllocator,
10793 VkFence* pFence) {
10794 return ?
10795}
10796
10797@extension("VK_EXT_display_control") // 92
10798cmd VkResult vkGetSwapchainCounterEXT(
10799 VkDevice device,
10800 VkSwapchainKHR swapchain,
10801 VkSurfaceCounterFlagBitsEXT counter,
10802 u64* pCounterValue) {
10803 return ?
10804}
10805
10806@extension("VK_GOOGLE_display_timing") // 93
Ian Elliott4c8bb2a2016-12-29 11:07:26 -070010807cmd VkResult vkGetRefreshCycleDurationGOOGLE(
Jesse Hallfdc8ab32017-03-10 21:01:57 -080010808 VkDevice device,
10809 VkSwapchainKHR swapchain,
10810 VkRefreshCycleDurationGOOGLE* pDisplayTimingProperties) {
Ian Elliott4c8bb2a2016-12-29 11:07:26 -070010811 deviceObject := GetDevice(device)
10812 swapchainObject := GetSwapchain(swapchain)
10813
10814 displayTimingProperties := ?
10815 pDisplayTimingProperties[0] = displayTimingProperties
10816
10817 return ?
10818}
10819
Jesse Hallad250842017-03-10 18:35:38 -080010820@extension("VK_GOOGLE_display_timing") // 93
Ian Elliott4c8bb2a2016-12-29 11:07:26 -070010821cmd VkResult vkGetPastPresentationTimingGOOGLE(
Jesse Hallfdc8ab32017-03-10 21:01:57 -080010822 VkDevice device,
10823 VkSwapchainKHR swapchain,
10824 u32* pPresentationTimingCount,
10825 VkPastPresentationTimingGOOGLE* pPresentationTimings) {
Ian Elliott4c8bb2a2016-12-29 11:07:26 -070010826 return ?
10827}
10828
Jesse Hallad250842017-03-10 18:35:38 -080010829@extension("VK_EXT_discard_rectangles") // 100
10830cmd void vkCmdSetDiscardRectangleEXT(
Jesse Hall26763382016-05-20 07:13:52 -070010831 VkCommandBuffer commandBuffer,
Jesse Hallad250842017-03-10 18:35:38 -080010832 u32 firstDiscardRectangle,
10833 u32 discardRectangleCount,
10834 const VkRect2D* pDiscardRectangles) {
Jesse Hall26763382016-05-20 07:13:52 -070010835}
10836
Jesse Hallad250842017-03-10 18:35:38 -080010837@extension("VK_EXT_hdr_metadata") // 106
Jesse Hall889cd9a2017-02-25 22:12:23 -080010838cmd void vkSetHdrMetadataEXT(
Jesse Hallfdc8ab32017-03-10 21:01:57 -080010839 VkDevice device,
10840 u32 swapchainCount,
10841 const VkSwapchainKHR* pSwapchains,
10842 const VkHdrMetadataEXT* pMetadata) {
Jesse Hall889cd9a2017-02-25 22:12:23 -080010843}
10844
Jesse Halla13a3cf2018-07-09 15:51:52 -070010845@extension("VK_KHR_create_renderpass2") // 110
10846cmd VkResult vkCreateRenderPass2KHR(
10847 VkDevice device,
10848 const VkRenderPassCreateInfo2KHR* pCreateInfo,
10849 const VkAllocationCallbacks* pAllocator,
10850 VkRenderPass* pRenderPass) {
10851 return ?
10852}
10853
10854@extension("VK_KHR_create_renderpass2") // 110
10855cmd void vkCmdBeginRenderPass2KHR(
10856 VkCommandBuffer commandBuffer,
10857 const VkRenderPassBeginInfo* pRenderPassBegin,
10858 const VkSubpassBeginInfoKHR* pSubpassBeginInfo) {
10859}
10860
10861@extension("VK_KHR_create_renderpass2") // 110
10862cmd void vkCmdNextSubpass2KHR(
10863 VkCommandBuffer commandBuffer,
10864 const VkSubpassBeginInfoKHR* pSubpassBeginInfo,
10865 const VkSubpassEndInfoKHR* pSubpassEndInfo) {
10866}
10867
10868@extension("VK_KHR_create_renderpass2") // 110
10869cmd void vkCmdEndRenderPass2KHR(
10870 VkCommandBuffer commandBuffer,
10871 const VkSubpassEndInfoKHR* pSubpassEndInfo) {
10872}
10873
Jesse Hallad250842017-03-10 18:35:38 -080010874@extension("VK_KHR_shared_presentable_image") // 112
Chris Forbes2e12cb82017-01-18 11:45:17 +130010875cmd VkResult vkGetSwapchainStatusKHR(
10876 VkDevice device,
10877 VkSwapchainKHR swapchain) {
10878 return ?
10879}
10880
Jesse Hall9492f992017-08-28 12:10:06 -070010881@extension("VK_KHR_external_fence_capabilities") // 113
10882cmd void vkGetPhysicalDeviceExternalFencePropertiesKHR(
10883 VkPhysicalDevice physicalDevice,
10884 const VkPhysicalDeviceExternalFenceInfoKHR* pExternalFenceInfo,
10885 VkExternalFencePropertiesKHR* pExternalFenceProperties) {
10886}
10887
10888@extension("VK_KHR_external_fence_win32") // 115
10889cmd VkResult vkImportFenceWin32HandleKHR(
10890 VkDevice device,
10891 const VkImportFenceWin32HandleInfoKHR* pImportFenceWin32HandleInfo) {
10892 return ?
10893}
10894
10895@extension("VK_KHR_external_fence_win32") // 115
10896cmd VkResult vkGetFenceWin32HandleKHR(
10897 VkDevice device,
10898 const VkFenceGetWin32HandleInfoKHR* pGetWin32HandleInfo,
10899 platform.HANDLE* pHandle) {
10900 return ?
10901}
10902
10903@extension("VK_KHR_external_fence_fd") // 116
10904cmd VkResult vkImportFenceFdKHR(
10905 VkDevice device,
10906 const VkImportFenceFdInfoKHR* pImportFenceFdInfo) {
10907 return ?
10908}
10909
10910@extension("VK_KHR_external_fence_fd") // 116
10911cmd VkResult vkGetFenceFdKHR(
10912 VkDevice device,
10913 const VkFenceGetFdInfoKHR* pGetFdInfo,
10914 int* pFd) {
10915 return ?
10916}
10917
Jesse Hall05556b12017-05-18 17:40:25 -070010918@extension("VK_KHR_get_surface_capabilities2") // 120
Chris Forbese2d3ee12017-03-16 16:10:15 +130010919cmd VkResult vkGetPhysicalDeviceSurfaceCapabilities2KHR(
10920 VkPhysicalDevice physicalDevice,
10921 const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo,
10922 VkSurfaceCapabilities2KHR* pSurfaceCapabilities) {
10923 return ?
10924}
10925
Jesse Hall05556b12017-05-18 17:40:25 -070010926@extension("VK_KHR_get_surface_capabilities2") // 120
Chris Forbese2d3ee12017-03-16 16:10:15 +130010927cmd VkResult vkGetPhysicalDeviceSurfaceFormats2KHR(
10928 VkPhysicalDevice physicalDevice,
10929 const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo,
10930 u32* pSurfaceFormatCount,
10931 VkSurfaceFormat2KHR* pSurfaceFormats) {
10932 return ?
10933}
10934
Jesse Hall54f8d132018-04-18 08:16:59 -070010935@extension("VK_KHR_display_properties2") // 122
10936cmd VkResult vkGetPhysicalDeviceDisplayProperties2KHR(
10937 VkPhysicalDevice physicalDevice,
10938 u32* pPropertyCount,
10939 VkDisplayProperties2KHR* pProperties) {
10940 return ?
10941}
10942
10943@extension("VK_KHR_display_properties2") // 122
10944cmd VkResult vkGetPhysicalDeviceDisplayPlaneProperties2KHR(
10945 VkPhysicalDevice physicalDevice,
10946 u32* pPropertyCount,
10947 VkDisplayPlaneProperties2KHR* pProperties) {
10948 return ?
10949}
10950
10951@extension("VK_KHR_display_properties2") // 122
10952cmd VkResult vkGetDisplayModeProperties2KHR(
10953 VkPhysicalDevice physicalDevice,
10954 VkDisplayKHR display,
10955 u32* pPropertyCount,
10956 VkDisplayModeProperties2KHR* pProperties) {
10957 return ?
10958}
10959
10960@extension("VK_KHR_display_properties2") // 122
10961cmd VkResult vkGetDisplayPlaneCapabilities2KHR(
10962 VkPhysicalDevice physicalDevice,
10963 const VkDisplayPlaneInfo2KHR* pDisplayPlaneInfo,
10964 VkDisplayPlaneCapabilities2KHR* pCapabilities) {
10965 return ?
10966}
10967
Jesse Hallad250842017-03-10 18:35:38 -080010968@extension("VK_MVK_ios_surface") // 123
10969cmd VkResult vkCreateIOSSurfaceMVK(
10970 VkInstance instance,
10971 const VkIOSSurfaceCreateInfoMVK* pCreateInfo,
10972 const VkAllocationCallbacks* pAllocator,
10973 VkSurfaceKHR* pSurface) {
10974 return ?
10975}
10976
10977@extension("VK_MVK_macos_surface") // 124
10978cmd VkResult vkCreateMacOSSurfaceMVK(
10979 VkInstance instance,
10980 const VkMacOSSurfaceCreateInfoMVK* pCreateInfo,
10981 const VkAllocationCallbacks* pAllocator,
10982 VkSurfaceKHR* pSurface) {
10983 return ?
10984}
10985
Jesse Hall8c954d32018-01-17 22:06:20 -080010986@extension("VK_EXT_debug_utils") // 129
10987@external type void* PFN_vkDebugUtilsMessengerCallbackEXT
10988@extension("VK_EXT_debug_utils") // 129
10989@pfn cmd VkBool32 vkDebugUtilsMessengerCallbackEXT(
10990 VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity,
10991 VkDebugUtilsMessageTypeFlagsEXT messageType,
10992 const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData,
10993 void* pUserData) {
10994 return ?
10995}
10996
10997@extension("VK_EXT_debug_utils") // 129
10998cmd VkResult vkSetDebugUtilsObjectNameEXT(
10999 VkDevice device,
11000 const VkDebugUtilsObjectNameInfoEXT* pNameInfo) {
11001 return ?
11002}
Jesse Hall72e6a132018-04-06 13:00:44 -070011003
Jesse Hall8c954d32018-01-17 22:06:20 -080011004@extension("VK_EXT_debug_utils") // 129
11005cmd VkResult vkSetDebugUtilsObjectTagEXT(
11006 VkDevice device,
11007 const VkDebugUtilsObjectTagInfoEXT* pTagInfo) {
11008 return ?
11009}
Jesse Hall72e6a132018-04-06 13:00:44 -070011010
Jesse Hall8c954d32018-01-17 22:06:20 -080011011@extension("VK_EXT_debug_utils") // 129
11012cmd void vkQueueBeginDebugUtilsLabelEXT(
11013 VkQueue queue,
11014 const VkDebugUtilsLabelEXT* pLabelInfo) {
11015}
Jesse Hall72e6a132018-04-06 13:00:44 -070011016
Jesse Hall8c954d32018-01-17 22:06:20 -080011017@extension("VK_EXT_debug_utils") // 129
11018cmd void vkQueueEndDebugUtilsLabelEXT(VkQueue queue) {
11019}
Jesse Hall72e6a132018-04-06 13:00:44 -070011020
Jesse Hall8c954d32018-01-17 22:06:20 -080011021@extension("VK_EXT_debug_utils") // 129
11022cmd void vkQueueInsertDebugUtilsLabelEXT(
11023 VkQueue queue,
11024 const VkDebugUtilsLabelEXT* pLabelInfo) {
11025}
Jesse Hall72e6a132018-04-06 13:00:44 -070011026
Jesse Hall8c954d32018-01-17 22:06:20 -080011027@extension("VK_EXT_debug_utils") // 129
11028cmd void vkCmdBeginDebugUtilsLabelEXT(
11029 VkCommandBuffer commandBuffer,
11030 const VkDebugUtilsLabelEXT* pLabelInfo) {
11031}
Jesse Hall72e6a132018-04-06 13:00:44 -070011032
Jesse Hall8c954d32018-01-17 22:06:20 -080011033@extension("VK_EXT_debug_utils") // 129
11034cmd void vkCmdEndDebugUtilsLabelEXT(VkCommandBuffer commandBuffer) {
11035}
11036
11037@extension("VK_EXT_debug_utils") // 129
11038cmd void vkCmdInsertDebugUtilsLabelEXT(
11039 VkCommandBuffer commandBuffer,
11040 const VkDebugUtilsLabelEXT* pLabelInfo) {
11041}
11042
11043@extension("VK_EXT_debug_utils") // 129
11044cmd VkResult vkCreateDebugUtilsMessengerEXT(
11045 VkInstance instance,
11046 const VkDebugUtilsMessengerCreateInfoEXT* pCreateInfo,
11047 const VkAllocationCallbacks* pAllocator,
11048 VkDebugUtilsMessengerEXT* pMessenger) {
11049 return ?
11050}
11051
11052@extension("VK_EXT_debug_utils") // 129
11053cmd void vkDestroyDebugUtilsMessengerEXT(
11054 VkInstance instance,
11055 VkDebugUtilsMessengerEXT messenger,
11056 const VkAllocationCallbacks* pAllocator) {
11057}
11058
11059@extension("VK_EXT_debug_utils") // 129
11060cmd void vkSubmitDebugUtilsMessageEXT(
11061 VkInstance instance,
11062 VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity,
11063 VkDebugUtilsMessageTypeFlagsEXT messageTypes,
11064 const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData) {
11065}
11066
Jesse Hall36215a92018-01-18 15:04:37 -080011067@extension("VK_ANDROID_external_memory_android_hardware_buffer") // 130
11068@vulkan1_1 // extension requires 1.1, and should become non-optional when 1.1 does
11069cmd VkResult vkGetAndroidHardwareBufferPropertiesANDROID(
11070 VkDevice device,
11071 const platform.AHardwareBuffer* buffer,
11072 VkAndroidHardwareBufferPropertiesANDROID* pProperties) {
11073 return ?
11074}
11075
11076@extension("VK_ANDROID_external_memory_android_hardware_buffer") // 130
11077@vulkan1_1 // extension requires 1.1, and should become non-optional when 1.1 does
11078cmd VkResult vkGetMemoryAndroidHardwareBufferANDROID(
11079 VkDevice device,
11080 const VkMemoryGetAndroidHardwareBufferInfoANDROID* pInfo,
11081 platform.AHardwareBuffer** pBuffer) {
11082 return ?
11083}
11084
Jesse Hall77726222017-09-19 14:49:27 -050011085@extension("VK_EXT_sample_locations") // 144
11086cmd void vkCmdSetSampleLocationsEXT(
11087 VkCommandBuffer commandBuffer,
11088 const VkSampleLocationsInfoEXT* pSampleLocationsInfo) {
11089}
11090
11091@extension("VK_EXT_sample_locations") // 144
11092cmd void vkGetPhysicalDeviceMultisamplePropertiesEXT(
11093 VkPhysicalDevice physicalDevice,
11094 VkSampleCountFlagBits samples,
11095 VkMultisamplePropertiesEXT* pMultisampleProperties) {
11096}
11097
Jesse Hall9492f992017-08-28 12:10:06 -070011098@extension("VK_KHR_get_memory_requirements2") // 147
11099cmd void vkGetImageMemoryRequirements2KHR(
11100 VkDevice device,
11101 const VkImageMemoryRequirementsInfo2KHR* pInfo,
11102 VkMemoryRequirements2KHR* pMemoryRequirements) {
11103}
11104
11105@extension("VK_KHR_get_memory_requirements2") // 147
11106cmd void vkGetBufferMemoryRequirements2KHR(
11107 VkDevice device,
11108 const VkBufferMemoryRequirementsInfo2KHR* pInfo,
11109 VkMemoryRequirements2KHR* pMemoryRequirements) {
11110}
11111
11112@extension("VK_KHR_get_memory_requirements2") // 147
11113cmd void vkGetImageSparseMemoryRequirements2KHR(
11114 VkDevice device,
11115 const VkImageSparseMemoryRequirementsInfo2KHR* pInfo,
11116 u32* pSparseMemoryRequirementCount,
11117 VkSparseImageMemoryRequirements2KHR* pSparseMemoryRequirements) {
11118}
11119
Jesse Hall076f95d2017-09-20 11:34:47 -070011120@extension("VK_KHR_sampler_ycbcr_conversion") // 157
11121cmd VkResult vkCreateSamplerYcbcrConversionKHR(
11122 VkDevice device,
11123 const VkSamplerYcbcrConversionCreateInfoKHR* pCreateInfo,
11124 const VkAllocationCallbacks* pAllocator,
11125 VkSamplerYcbcrConversionKHR* pYcbcrConversion) {
11126 return ?
11127}
11128
11129@extension("VK_KHR_sampler_ycbcr_conversion") // 157
11130cmd void vkDestroySamplerYcbcrConversionKHR(
11131 VkDevice device,
11132 VkSamplerYcbcrConversionKHR ycbcrConversion,
11133 const VkAllocationCallbacks* pAllocator) {
11134}
11135
11136@extension("VK_KHR_bind_memory2") // 158
11137cmd VkResult vkBindBufferMemory2KHR(
11138 VkDevice device,
11139 u32 bindInfoCount,
11140 const VkBindBufferMemoryInfoKHR* pBindInfos) {
11141 return ?
11142}
11143
11144@extension("VK_KHR_bind_memory2") // 158
11145cmd VkResult vkBindImageMemory2KHR(
11146 VkDevice device,
11147 u32 bindInfoCount,
11148 const VkBindImageMemoryInfoKHR* pBindInfos) {
11149 return ?
11150}
11151
Jesse Hall77726222017-09-19 14:49:27 -050011152@extension("VK_EXT_validation_cache") // 161
11153cmd VkResult vkCreateValidationCacheEXT(
11154 VkDevice device,
11155 const VkValidationCacheCreateInfoEXT* pCreateInfo,
11156 const VkAllocationCallbacks* pAllocator,
11157 VkValidationCacheEXT* pValidationCache) {
11158 return ?
11159}
11160
11161@extension("VK_EXT_validation_cache") // 161
11162cmd void vkDestroyValidationCacheEXT(
11163 VkDevice device,
11164 VkValidationCacheEXT validationCache,
11165 const VkAllocationCallbacks* pAllocator) {
11166}
11167
11168@extension("VK_EXT_validation_cache") // 161
11169cmd VkResult vkMergeValidationCachesEXT(
11170 VkDevice device,
11171 VkValidationCacheEXT dstCache,
11172 u32 srcCacheCount,
11173 const VkValidationCacheEXT* pSrcCaches) {
11174 return ?
11175}
11176
11177@extension("VK_EXT_validation_cache") // 161
11178cmd VkResult vkGetValidationCacheDataEXT(
11179 VkDevice device,
11180 VkValidationCacheEXT validationCache,
11181 platform.size_t* pDataSize,
11182 void* pData) {
11183 return ?
11184}
11185
Jesse Hallb5297192018-09-22 20:52:13 +020011186@extension("VK_NV_shading_rate_image") // 165
11187cmd void vkCmdBindShadingRateImageNV(
11188 VkCommandBuffer commandBuffer,
11189 VkImageView imageView,
11190 VkImageLayout imageLayout) {
11191}
11192
11193@extension("VK_NV_shading_rate_image") // 165
11194cmd void vkCmdSetViewportShadingRatePaletteNV(
11195 VkCommandBuffer commandBuffer,
11196 u32 firstViewport,
11197 u32 viewportCount,
11198 const VkShadingRatePaletteNV* pShadingRatePalettes) {
11199}
11200
11201@extension("VK_NV_shading_rate_image") // 165
11202cmd void vkCmdSetCoarseSampleOrderNV(
11203 VkCommandBuffer commandBuffer,
11204 VkCoarseSampleOrderTypeNV sampleOrderType,
11205 u32 customSampleOrderCount,
11206 const VkCoarseSampleOrderCustomNV* pCustomSampleOrders) {
11207}
11208
11209@extension("VK_NVX_raytracing") // 166
11210cmd VkResult vkCreateAccelerationStructureNVX(
11211 VkDevice device,
11212 const VkAccelerationStructureCreateInfoNVX* pCreateInfo,
11213 const VkAllocationCallbacks* pAllocator,
11214 VkAccelerationStructureNVX* pAccelerationStructure) {
11215 return ?
11216}
11217
11218@extension("VK_NVX_raytracing") // 166
11219cmd void vkDestroyAccelerationStructureNVX(
11220 VkDevice device,
11221 VkAccelerationStructureNVX accelerationStructure,
11222 const VkAllocationCallbacks* pAllocator) {
11223}
11224
11225@extension("VK_NVX_raytracing") // 166
11226cmd void vkGetAccelerationStructureMemoryRequirementsNVX(
11227 VkDevice device,
11228 const VkAccelerationStructureMemoryRequirementsInfoNVX* pInfo,
11229 VkMemoryRequirements2KHR* pMemoryRequirements) {
11230}
11231
11232@extension("VK_NVX_raytracing") // 166
11233cmd void vkGetAccelerationStructureScratchMemoryRequirementsNVX(
11234 VkDevice device,
11235 const VkAccelerationStructureMemoryRequirementsInfoNVX* pInfo,
11236 VkMemoryRequirements2KHR* pMemoryRequirements) {
11237}
11238
11239@extension("VK_NVX_raytracing") // 166
11240cmd VkResult vkBindAccelerationStructureMemoryNVX(
11241 VkDevice device,
11242 u32 bindInfoCount,
11243 const VkBindAccelerationStructureMemoryInfoNVX* pBindInfos) {
11244 return ?
11245}
11246
11247@extension("VK_NVX_raytracing") // 166
11248cmd void vkCmdBuildAccelerationStructureNVX(
Jesse Hall2e6853c2018-10-02 14:05:37 -070011249 VkCommandBuffer commandBuffer,
11250 VkAccelerationStructureTypeNVX type,
11251 u32 instanceCount,
11252 VkBuffer instanceData,
11253 VkDeviceSize instanceOffset,
11254 u32 geometryCount,
11255 const VkGeometryNVX* pGeometries,
11256 VkBuildAccelerationStructureFlagsNVX flags,
11257 VkBool32 update,
11258 VkAccelerationStructureNVX dst,
11259 VkAccelerationStructureNVX src,
11260 VkBuffer scratch,
11261 VkDeviceSize scratchOffset) {
Jesse Hallb5297192018-09-22 20:52:13 +020011262}
11263
11264@extension("VK_NVX_raytracing") // 166
11265cmd void vkCmdCopyAccelerationStructureNVX(
Jesse Hall2e6853c2018-10-02 14:05:37 -070011266 VkCommandBuffer commandBuffer,
11267 VkAccelerationStructureNVX dst,
11268 VkAccelerationStructureNVX src,
11269 VkCopyAccelerationStructureModeNVX mode) {
Jesse Hallb5297192018-09-22 20:52:13 +020011270}
11271
11272@extension("VK_NVX_raytracing") // 166
11273cmd void vkCmdTraceRaysNVX(
Jesse Hall2e6853c2018-10-02 14:05:37 -070011274 VkCommandBuffer commandBuffer,
11275 VkBuffer raygenShaderBindingTableBuffer,
11276 VkDeviceSize raygenShaderBindingOffset,
11277 VkBuffer missShaderBindingTableBuffer,
11278 VkDeviceSize missShaderBindingOffset,
11279 VkDeviceSize missShaderBindingStride,
11280 VkBuffer hitShaderBindingTableBuffer,
11281 VkDeviceSize hitShaderBindingOffset,
11282 VkDeviceSize hitShaderBindingStride,
11283 u32 width,
11284 u32 height) {
Jesse Hallb5297192018-09-22 20:52:13 +020011285}
11286
11287@extension("VK_NVX_raytracing") // 166
11288cmd VkResult vkCreateRaytracingPipelinesNVX(
11289 VkDevice device,
11290 VkPipelineCache pipelineCache,
11291 u32 createInfoCount,
11292 const VkRaytracingPipelineCreateInfoNVX* pCreateInfos,
11293 const VkAllocationCallbacks* pAllocator,
11294 VkPipeline* pPipelines) {
11295 return ?
11296}
11297
11298@extension("VK_NVX_raytracing") // 166
11299cmd VkResult vkGetRaytracingShaderHandlesNVX(
Jesse Hall2e6853c2018-10-02 14:05:37 -070011300 VkDevice device,
11301 VkPipeline pipeline,
11302 u32 firstGroup,
11303 u32 groupCount,
11304 platform.size_t dataSize,
11305 void* pData) {
Jesse Hallb5297192018-09-22 20:52:13 +020011306 return ?
11307}
11308
11309@extension("VK_NVX_raytracing") // 166
11310cmd VkResult vkGetAccelerationStructureHandleNVX(
Jesse Hall2e6853c2018-10-02 14:05:37 -070011311 VkDevice device,
11312 VkAccelerationStructureNVX accelerationStructure,
11313 platform.size_t dataSize,
11314 void* pData) {
Jesse Hallb5297192018-09-22 20:52:13 +020011315 return ?
11316}
11317
11318@extension("VK_NVX_raytracing") // 166
11319cmd void vkCmdWriteAccelerationStructurePropertiesNVX(
Jesse Hall2e6853c2018-10-02 14:05:37 -070011320 VkCommandBuffer commandBuffer,
11321 VkAccelerationStructureNVX accelerationStructure,
11322 VkQueryType queryType,
11323 VkQueryPool queryPool,
11324 u32 query) {
Jesse Hallb5297192018-09-22 20:52:13 +020011325}
11326
11327@extension("VK_NVX_raytracing") // 166
11328cmd VkResult vkCompileDeferredNVX(
Jesse Hall2e6853c2018-10-02 14:05:37 -070011329 VkDevice device,
11330 VkPipeline pipeline,
11331 u32 shader) {
Jesse Hallb5297192018-09-22 20:52:13 +020011332 return ?
11333}
11334
Daniel Koch09f7bf92017-10-05 00:26:58 -040011335@extension("VK_KHR_maintenance3") // 169
11336cmd void vkGetDescriptorSetLayoutSupportKHR(
11337 VkDevice device,
11338 const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
11339 VkDescriptorSetLayoutSupportKHR* pSupport) {
11340}
11341
Jesse Hall54f8d132018-04-18 08:16:59 -070011342@extension("VK_KHR_draw_indirect_count") // 170
11343cmd void vkCmdDrawIndirectCountKHR(
11344 VkCommandBuffer commandBuffer,
11345 VkBuffer buffer,
11346 VkDeviceSize offset,
11347 VkBuffer countBuffer,
11348 VkDeviceSize countBufferOffset,
11349 u32 maxDrawCount,
11350 u32 stride) {
11351}
11352
11353@extension("VK_KHR_draw_indirect_count") // 170
11354cmd void vkCmdDrawIndexedIndirectCountKHR(
11355 VkCommandBuffer commandBuffer,
11356 VkBuffer buffer,
11357 VkDeviceSize offset,
11358 VkBuffer countBuffer,
11359 VkDeviceSize countBufferOffset,
11360 u32 maxDrawCount,
11361 u32 stride) {
11362}
11363
Jesse Hall8c954d32018-01-17 22:06:20 -080011364@extension("VK_EXT_external_memory_host") // 179
11365cmd VkResult vkGetMemoryHostPointerPropertiesEXT(
11366 VkDevice device,
11367 VkExternalMemoryHandleTypeFlagBits handleType,
11368 const void* pHostPointer,
11369 VkMemoryHostPointerPropertiesEXT* pMemoryHostPointerProperties) {
11370 return ?
11371}
11372
Jesse Hall72e6a132018-04-06 13:00:44 -070011373@extension("VK_AMD_buffer_marker") // 180
11374cmd void vkCmdWriteBufferMarkerAMD(
11375 VkCommandBuffer commandBuffer,
11376 VkPipelineStageFlagBits pipelineStage,
11377 VkBuffer dstBuffer,
11378 VkDeviceSize dstOffset,
11379 u32 marker) {
11380}
11381
Jesse Hallb5297192018-09-22 20:52:13 +020011382@extension("VK_NV_mesh_shader") // 203
11383cmd void vkCmdDrawMeshTasksNV(
11384 VkCommandBuffer commandBuffer,
11385 u32 taskCount,
11386 u32 firstTask) {
11387}
11388
11389@extension("VK_NV_mesh_shader") // 203
11390cmd void vkCmdDrawMeshTasksIndirectNV(
11391 VkCommandBuffer commandBuffer,
11392 VkBuffer buffer,
11393 VkDeviceSize offset,
11394 u32 drawCount,
11395 u32 stride) {
11396}
11397
11398@extension("VK_NV_mesh_shader") // 203
11399cmd void vkCmdDrawMeshTasksIndirectCountNV(
11400 VkCommandBuffer commandBuffer,
11401 VkBuffer buffer,
11402 VkDeviceSize offset,
11403 VkBuffer countBuffer,
11404 VkDeviceSize countBufferOffset,
11405 u32 maxDrawCount,
11406 u32 stride) {
11407}
11408
11409@extension("VK_NV_scissor_exclusive") // 206
11410cmd void vkCmdSetExclusiveScissorNV(
11411 VkCommandBuffer commandBuffer,
11412 u32 firstExclusiveScissor,
11413 u32 exclusiveScissorCount,
11414 const VkRect2D* pExclusiveScissors) {
11415}
11416
Jesse Hall115df0c2018-07-30 12:00:59 -070011417@extension("VK_NV_device_diagnostic_checkpoints") // 207
11418cmd void vkCmdSetCheckpointNV(
11419 VkCommandBuffer commandBuffer,
11420 const void* pCheckpointMarker) {
11421}
11422
11423@extension("VK_NV_device_diagnostic_checkpoints") // 207
11424cmd void vkGetQueueCheckpointDataNV(
11425 VkQueue queue,
11426 u32* pCheckpointDataCount,
11427 VkCheckpointDataNV* pCheckpointData) {
11428}
11429
Jesse Hall497c46f2018-10-08 12:52:48 -070011430@extension("VK_FUCHSIA_imagepipe_surface") // 215
11431cmd VkResult vkCreateImagePipeSurfaceFUCHSIA(
11432 VkInstance instance,
11433 const VkImagePipeSurfaceCreateInfoFUCHSIA* pCreateInfo,
11434 const VkAllocationCallbacks* pAllocator,
11435 VkSurfaceKHR* pSurface) {
11436 return ?
11437}
11438
Jesse Hall115df0c2018-07-30 12:00:59 -070011439
Jesse Halld27f6aa2015-08-15 17:58:48 -070011440////////////////
11441// Validation //
11442////////////////
11443
11444extern void validate(string layerName, bool condition, string message)
11445
11446
11447/////////////////////////////
11448// Internal State Tracking //
11449/////////////////////////////
11450
11451StateObject State
11452
11453@internal class StateObject {
11454 // Dispatchable objects.
11455 map!(VkInstance, ref!InstanceObject) Instances
11456 map!(VkPhysicalDevice, ref!PhysicalDeviceObject) PhysicalDevices
11457 map!(VkDevice, ref!DeviceObject) Devices
11458 map!(VkQueue, ref!QueueObject) Queues
Jesse Hall3fbc8562015-11-29 22:10:52 -080011459 map!(VkCommandBuffer, ref!CommandBufferObject) CommandBuffers
Jesse Halld27f6aa2015-08-15 17:58:48 -070011460
11461 // Non-dispatchable objects.
11462 map!(VkDeviceMemory, ref!DeviceMemoryObject) DeviceMemories
11463 map!(VkBuffer, ref!BufferObject) Buffers
11464 map!(VkBufferView, ref!BufferViewObject) BufferViews
11465 map!(VkImage, ref!ImageObject) Images
11466 map!(VkImageView, ref!ImageViewObject) ImageViews
Jesse Halld27f6aa2015-08-15 17:58:48 -070011467 map!(VkShaderModule, ref!ShaderModuleObject) ShaderModules
Jesse Halld27f6aa2015-08-15 17:58:48 -070011468 map!(VkPipeline, ref!PipelineObject) Pipelines
11469 map!(VkPipelineLayout, ref!PipelineLayoutObject) PipelineLayouts
11470 map!(VkSampler, ref!SamplerObject) Samplers
11471 map!(VkDescriptorSet, ref!DescriptorSetObject) DescriptorSets
11472 map!(VkDescriptorSetLayout, ref!DescriptorSetLayoutObject) DescriptorSetLayouts
11473 map!(VkDescriptorPool, ref!DescriptorPoolObject) DescriptorPools
Jesse Halld27f6aa2015-08-15 17:58:48 -070011474 map!(VkFence, ref!FenceObject) Fences
11475 map!(VkSemaphore, ref!SemaphoreObject) Semaphores
11476 map!(VkEvent, ref!EventObject) Events
11477 map!(VkQueryPool, ref!QueryPoolObject) QueryPools
11478 map!(VkFramebuffer, ref!FramebufferObject) Framebuffers
11479 map!(VkRenderPass, ref!RenderPassObject) RenderPasses
11480 map!(VkPipelineCache, ref!PipelineCacheObject) PipelineCaches
Jesse Hall3fbc8562015-11-29 22:10:52 -080011481 map!(VkCommandPool, ref!CommandPoolObject) CommandPools
Jesse Hall1356b0d2015-11-23 17:24:58 -080011482 map!(VkSurfaceKHR, ref!SurfaceObject) Surfaces
Michael Lentine88594d72015-11-12 12:49:45 -080011483 map!(VkSwapchainKHR, ref!SwapchainObject) Swapchains
Jesse Halld27f6aa2015-08-15 17:58:48 -070011484}
11485
11486@internal class InstanceObject {
11487}
11488
11489@internal class PhysicalDeviceObject {
11490 VkInstance instance
11491}
11492
11493@internal class DeviceObject {
11494 VkPhysicalDevice physicalDevice
11495}
11496
11497@internal class QueueObject {
11498 VkDevice device
11499 VkQueueFlags flags
11500}
11501
Jesse Hall3fbc8562015-11-29 22:10:52 -080011502@internal class CommandBufferObject {
Jesse Halld27f6aa2015-08-15 17:58:48 -070011503 VkDevice device
11504 map!(u64, VkDeviceMemory) boundObjects
11505 VkQueueFlags queueFlags
11506}
11507
11508@internal class DeviceMemoryObject {
Jesse Hall3fbc8562015-11-29 22:10:52 -080011509 VkDevice device
11510 VkDeviceSize allocationSize
11511 map!(u64, VkDeviceSize) boundObjects
11512 map!(VkCommandBuffer, VkCommandBuffer) boundCommandBuffers
Jesse Halld27f6aa2015-08-15 17:58:48 -070011513}
11514
11515@internal class BufferObject {
11516 VkDevice device
Jesse Hall3fbc8562015-11-29 22:10:52 -080011517 VkDeviceMemory memory
11518 VkDeviceSize memoryOffset
Jesse Halld27f6aa2015-08-15 17:58:48 -070011519}
11520
11521@internal class BufferViewObject {
11522 VkDevice device
11523 VkBuffer buffer
11524}
11525
11526@internal class ImageObject {
11527 VkDevice device
Jesse Hall3fbc8562015-11-29 22:10:52 -080011528 VkDeviceMemory memory
11529 VkDeviceSize memoryOffset
Jesse Halld27f6aa2015-08-15 17:58:48 -070011530}
11531
11532@internal class ImageViewObject {
11533 VkDevice device
11534 VkImage image
11535}
11536
Jesse Halld27f6aa2015-08-15 17:58:48 -070011537@internal class ShaderObject {
11538 VkDevice device
11539}
11540
11541@internal class ShaderModuleObject {
11542 VkDevice device
11543}
11544
11545@internal class PipelineObject {
11546 VkDevice device
11547}
11548
11549@internal class PipelineLayoutObject {
11550 VkDevice device
11551}
11552
11553@internal class SamplerObject {
11554 VkDevice device
11555}
11556
11557@internal class DescriptorSetObject {
11558 VkDevice device
11559}
11560
11561@internal class DescriptorSetLayoutObject {
11562 VkDevice device
11563}
11564
11565@internal class DescriptorPoolObject {
11566 VkDevice device
11567}
11568
Jesse Halld27f6aa2015-08-15 17:58:48 -070011569@internal class FenceObject {
11570 VkDevice device
11571 bool signaled
11572}
11573
11574@internal class SemaphoreObject {
11575 VkDevice device
11576}
11577
11578@internal class EventObject {
11579 VkDevice device
11580}
11581
11582@internal class QueryPoolObject {
11583 VkDevice device
11584}
11585
11586@internal class FramebufferObject {
11587 VkDevice device
11588}
11589
11590@internal class RenderPassObject {
11591 VkDevice device
11592}
11593
11594@internal class PipelineCacheObject {
11595 VkDevice device
11596}
11597
Jesse Hall3fbc8562015-11-29 22:10:52 -080011598@internal class CommandPoolObject {
Jesse Halld27f6aa2015-08-15 17:58:48 -070011599 VkDevice device
11600}
11601
Jesse Hall1356b0d2015-11-23 17:24:58 -080011602@internal class SurfaceObject {
11603 VkInstance instance
11604}
11605
Michael Lentine88594d72015-11-12 12:49:45 -080011606@internal class SwapchainObject {
11607 VkDevice device
11608}
11609
Jesse Halld27f6aa2015-08-15 17:58:48 -070011610macro ref!InstanceObject GetInstance(VkInstance instance) {
11611 assert(instance in State.Instances)
11612 return State.Instances[instance]
11613}
11614
11615macro ref!PhysicalDeviceObject GetPhysicalDevice(VkPhysicalDevice physicalDevice) {
11616 assert(physicalDevice in State.PhysicalDevices)
11617 return State.PhysicalDevices[physicalDevice]
11618}
11619
11620macro ref!DeviceObject GetDevice(VkDevice device) {
11621 assert(device in State.Devices)
11622 return State.Devices[device]
11623}
11624
11625macro ref!QueueObject GetQueue(VkQueue queue) {
11626 assert(queue in State.Queues)
11627 return State.Queues[queue]
11628}
11629
Jesse Hall3fbc8562015-11-29 22:10:52 -080011630macro ref!CommandBufferObject GetCommandBuffer(VkCommandBuffer commandBuffer) {
11631 assert(commandBuffer in State.CommandBuffers)
11632 return State.CommandBuffers[commandBuffer]
Jesse Halld27f6aa2015-08-15 17:58:48 -070011633}
11634
Jesse Hall3fbc8562015-11-29 22:10:52 -080011635macro ref!DeviceMemoryObject GetDeviceMemory(VkDeviceMemory memory) {
11636 assert(memory in State.DeviceMemories)
11637 return State.DeviceMemories[memory]
Jesse Halld27f6aa2015-08-15 17:58:48 -070011638}
11639
11640macro ref!BufferObject GetBuffer(VkBuffer buffer) {
11641 assert(buffer in State.Buffers)
11642 return State.Buffers[buffer]
11643}
11644
11645macro ref!BufferViewObject GetBufferView(VkBufferView bufferView) {
11646 assert(bufferView in State.BufferViews)
11647 return State.BufferViews[bufferView]
11648}
11649
11650macro ref!ImageObject GetImage(VkImage image) {
11651 assert(image in State.Images)
11652 return State.Images[image]
11653}
11654
11655macro ref!ImageViewObject GetImageView(VkImageView imageView) {
11656 assert(imageView in State.ImageViews)
11657 return State.ImageViews[imageView]
11658}
11659
Jesse Halld27f6aa2015-08-15 17:58:48 -070011660macro ref!ShaderModuleObject GetShaderModule(VkShaderModule shaderModule) {
11661 assert(shaderModule in State.ShaderModules)
11662 return State.ShaderModules[shaderModule]
11663}
11664
11665macro ref!PipelineObject GetPipeline(VkPipeline pipeline) {
11666 assert(pipeline in State.Pipelines)
11667 return State.Pipelines[pipeline]
11668}
11669
11670macro ref!PipelineLayoutObject GetPipelineLayout(VkPipelineLayout pipelineLayout) {
11671 assert(pipelineLayout in State.PipelineLayouts)
11672 return State.PipelineLayouts[pipelineLayout]
11673}
11674
11675macro ref!SamplerObject GetSampler(VkSampler sampler) {
11676 assert(sampler in State.Samplers)
11677 return State.Samplers[sampler]
11678}
11679
11680macro ref!DescriptorSetObject GetDescriptorSet(VkDescriptorSet descriptorSet) {
11681 assert(descriptorSet in State.DescriptorSets)
11682 return State.DescriptorSets[descriptorSet]
11683}
11684
11685macro ref!DescriptorSetLayoutObject GetDescriptorSetLayout(VkDescriptorSetLayout descriptorSetLayout) {
11686 assert(descriptorSetLayout in State.DescriptorSetLayouts)
11687 return State.DescriptorSetLayouts[descriptorSetLayout]
11688}
11689
11690macro ref!DescriptorPoolObject GetDescriptorPool(VkDescriptorPool descriptorPool) {
11691 assert(descriptorPool in State.DescriptorPools)
11692 return State.DescriptorPools[descriptorPool]
11693}
11694
Jesse Halld27f6aa2015-08-15 17:58:48 -070011695macro ref!FenceObject GetFence(VkFence fence) {
11696 assert(fence in State.Fences)
11697 return State.Fences[fence]
11698}
11699
11700macro ref!SemaphoreObject GetSemaphore(VkSemaphore semaphore) {
11701 assert(semaphore in State.Semaphores)
11702 return State.Semaphores[semaphore]
11703}
11704
11705macro ref!EventObject GetEvent(VkEvent event) {
11706 assert(event in State.Events)
11707 return State.Events[event]
11708}
11709
11710macro ref!QueryPoolObject GetQueryPool(VkQueryPool queryPool) {
11711 assert(queryPool in State.QueryPools)
11712 return State.QueryPools[queryPool]
11713}
11714
11715macro ref!FramebufferObject GetFramebuffer(VkFramebuffer framebuffer) {
11716 assert(framebuffer in State.Framebuffers)
11717 return State.Framebuffers[framebuffer]
11718}
11719
11720macro ref!RenderPassObject GetRenderPass(VkRenderPass renderPass) {
11721 assert(renderPass in State.RenderPasses)
11722 return State.RenderPasses[renderPass]
11723}
11724
11725macro ref!PipelineCacheObject GetPipelineCache(VkPipelineCache pipelineCache) {
11726 assert(pipelineCache in State.PipelineCaches)
11727 return State.PipelineCaches[pipelineCache]
11728}
11729
Jesse Hall3fbc8562015-11-29 22:10:52 -080011730macro ref!CommandPoolObject GetCommandPool(VkCommandPool commandPool) {
11731 assert(commandPool in State.CommandPools)
11732 return State.CommandPools[commandPool]
Jesse Hallf09c6b12015-08-15 19:54:28 -070011733}
Michael Lentine88594d72015-11-12 12:49:45 -080011734
Jesse Hall1356b0d2015-11-23 17:24:58 -080011735macro ref!SurfaceObject GetSurface(VkSurfaceKHR surface) {
11736 assert(surface in State.Surfaces)
11737 return State.Surfaces[surface]
11738}
11739
Michael Lentine88594d72015-11-12 12:49:45 -080011740macro ref!SwapchainObject GetSwapchain(VkSwapchainKHR swapchain) {
11741 assert(swapchain in State.Swapchains)
11742 return State.Swapchains[swapchain]
11743}
Jesse Halld8bade02015-11-24 10:24:18 -080011744
11745macro VkQueueFlags AddQueueFlag(VkQueueFlags flags, VkQueueFlagBits bit) {
11746 return as!VkQueueFlags(as!u32(flags) | as!u32(bit))
11747}