blob: e5b9b47fe338ee7ce1be1c8126206cda11c973d8 [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 Hallf47e8f82018-10-27 23:41:45 -070031define VERSION_PATCH 90
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 Hallf47e8f82018-10-27 23:41:45 -0700152// 29
153@extension("VK_EXT_transform_feedback") define VK_EXT_TRANSFORM_FEEDBACK_SPEC_VERSION 1
154@extension("VK_EXT_transform_feedback") define VK_EXT_TRANSFORM_FEEDBACK_EXTENSION_NAME "VK_EXT_transform_feedback"
155
Jesse Halleb02c472017-02-24 15:13:45 -0800156// 34
157@extension("VK_AMD_draw_indirect_count") define VK_AMD_DRAW_INDIRECT_COUNT_SPEC_VERSION 1
158@extension("VK_AMD_draw_indirect_count") define VK_AMD_DRAW_INDIRECT_COUNT_EXTENSION_NAME "VK_AMD_draw_indirect_count"
159
160// 36
161@extension("VK_AMD_negative_viewport_height") define VK_AMD_NEGATIVE_VIEWPORT_HEIGHT_SPEC_VERSION 1
162@extension("VK_AMD_negative_viewport_height") define VK_AMD_NEGATIVE_VIEWPORT_HEIGHT_EXTENSION_NAME "VK_AMD_negative_viewport_height"
163
164// 37
165@extension("VK_AMD_gpu_shader_half_float") define VK_AMD_GPU_SHADER_HALF_FLOAT_SPEC_VERSION 1
166@extension("VK_AMD_gpu_shader_half_float") define VK_AMD_GPU_SHADER_HALF_FLOAT_EXTENSION_NAME "VK_AMD_gpu_shader_half_float"
167
168// 38
169@extension("VK_AMD_shader_ballot") define VK_AMD_SHADER_BALLOT_SPEC_VERSION 1
170@extension("VK_AMD_shader_ballot") define VK_AMD_SHADER_BALLOT_EXTENSION_NAME "VK_AMD_shader_ballot"
171
Jesse Hall7ba0ac72017-07-07 17:13:23 -0700172// 42
173@extension("VK_AMD_texture_gather_bias_lod") define VK_AMD_TEXTURE_GATHER_BIAS_LOD_SPEC_VERSION 1
174@extension("VK_AMD_texture_gather_bias_lod") define VK_AMD_TEXTURE_GATHER_BIAS_LOD_EXTENSION_NAME "VK_AMD_texture_gather_bias_lod"
175
Jesse Hall8c954d32018-01-17 22:06:20 -0800176// 43
177@extension("VK_AMD_shader_info") define VK_AMD_SHADER_INFO_SPEC_VERSION 1
178@extension("VK_AMD_shader_info") define VK_AMD_SHADER_INFO_EXTENSION_NAME "VK_AMD_shader_info"
179
180// 47
181@extension("VK_AMD_shader_image_load_store_lod") define VK_AMD_SHADER_IMAGE_LOAD_STORE_LOD_SPEC_VERSION 1
182@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"
183
Jesse Hallb5297192018-09-22 20:52:13 +0200184// 51
185@extension("VK_NV_corner_sampled_image") define VK_NV_CORNER_SAMPLED_IMAGE_SPEC_VERSION 2
186@extension("VK_NV_corner_sampled_image") define VK_NV_CORNER_SAMPLED_IMAGE_EXTENSION_NAME "VK_NV_corner_sampled_image"
187
Jesse Hallad250842017-03-10 18:35:38 -0800188// 54
Daniel Koch09f7bf92017-10-05 00:26:58 -0400189@extension("VK_KHR_multiview") define VK_KHR_MULTIVIEW_SPEC_VERSION 1
190@extension("VK_KHR_multiview") define VK_KHR_MULTIVIEW_EXTENSION_NAME "VK_KHR_multiview"
Jesse Hallad250842017-03-10 18:35:38 -0800191
Jesse Halleb02c472017-02-24 15:13:45 -0800192// 56
Chris Forbes289cb792016-12-30 15:03:55 +1300193@extension("VK_NV_external_memory_capabilities") define VK_NV_EXTERNAL_MEMORY_CAPABILITIES_SPEC_VERSION 1
194@extension("VK_NV_external_memory_capabilities") define VK_NV_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME "VK_NV_external_memory_capabilities"
195
Jesse Halleb02c472017-02-24 15:13:45 -0800196// 57
Chris Forbes289cb792016-12-30 15:03:55 +1300197@extension("VK_NV_external_memory") define VK_NV_EXTERNAL_MEMORY_SPEC_VERSION 1
198@extension("VK_NV_external_memory") define VK_NV_EXTERNAL_MEMORY_EXTENSION_NAME "VK_NV_external_memory"
199
Jesse Halleb02c472017-02-24 15:13:45 -0800200// 58
Chris Forbes289cb792016-12-30 15:03:55 +1300201@extension("VK_NV_external_memory_win32") define VK_NV_EXTERNAL_MEMORY_WIN32_SPEC_VERSION 1
202@extension("VK_NV_external_memory_win32") define VK_NV_EXTERNAL_MEMORY_WIN32_EXTENSION_NAME "VK_NV_external_memory_win32"
203
Jesse Halleb02c472017-02-24 15:13:45 -0800204// 59
Chris Forbes289cb792016-12-30 15:03:55 +1300205@extension("VK_NV_win32_keyed_mutex") define VK_NV_WIN32_KEYED_MUTEX_SPEC_VERSION 1
206@extension("VK_NV_win32_keyed_mutex") define VK_NV_WIN32_KEYED_MUTEX_EXTENSION_NAME "VK_NV_win32_keyed_mutex"
207
Jesse Hall889cd9a2017-02-25 22:12:23 -0800208// 60
209@extension("VK_KHR_get_physical_device_properties2") define VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_SPEC_VERSION 1
210@extension("VK_KHR_get_physical_device_properties2") define VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME "VK_KHR_get_physical_device_properties2"
211
Jesse Hallad250842017-03-10 18:35:38 -0800212// 61
Daniel Koch09f7bf92017-10-05 00:26:58 -0400213@extension("VK_KHR_device_group") define VK_KHR_DEVICE_GROUP_SPEC_VERSION 3
214@extension("VK_KHR_device_group") define VK_KHR_DEVICE_GROUP_EXTENSION_NAME "VK_KHR_device_group"
Jesse Hallad250842017-03-10 18:35:38 -0800215
Jesse Halleb02c472017-02-24 15:13:45 -0800216// 62
Chris Forbes289cb792016-12-30 15:03:55 +1300217@extension("VK_EXT_validation_flags") define VK_EXT_VALIDATION_FLAGS_SPEC_VERSION 1
218@extension("VK_EXT_validation_flags") define VK_EXT_VALIDATION_FLAGS_EXTENSION_NAME "VK_EXT_validation_flags"
219
Jesse Hall77ad05b2017-03-10 22:02:20 -0800220// 63
221@extension("VK_NN_vi_surface") define VK_NN_VI_SURFACE_SPEC_VERSION 1
222@extension("VK_NN_vi_surface") define VK_NN_VI_SURFACE_EXTENSION_NAME "VK_NN_vi_surface"
223
224// 64
225@extension("VK_KHR_shader_draw_parameters") define VK_KHR_SHADER_DRAW_PARAMETERS_SPEC_VERSION 1
226@extension("VK_KHR_shader_draw_parameters") define VK_KHR_SHADER_DRAW_PARAMETERS_EXTENSION_NAME "VK_KHR_shader_draw_parameters"
227
228// 65
229@extension("VK_EXT_shader_subgroup_ballot") define VK_EXT_SHADER_SUBGROUP_BALLOT_SPEC_VERSION 1
230@extension("VK_EXT_shader_subgroup_ballot") define VK_EXT_SHADER_SUBGROUP_BALLOT_EXTENSION_NAME "VK_EXT_shader_subgroup_ballot"
231
232// 66
233@extension("VK_EXT_shader_subgroup_vote") define VK_EXT_SHADER_SUBGROUP_VOTE_SPEC_VERSION 1
234@extension("VK_EXT_shader_subgroup_vote") define VK_EXT_SHADER_SUBGROUP_VOTE_EXTENSION_NAME "VK_EXT_shader_subgroup_vote"
235
Jesse Hall4af6c462018-09-10 09:04:25 -0700236// 68
237@extension("VK_EXT_astc_decode_mode") define VK_EXT_ASTC_DECODE_MODE_SPEC_VERSION 1
238@extension("VK_EXT_astc_decode_mode") define VK_EXT_ASTC_DECODE_MODE_EXTENSION_NAME "VK_EXT_astc_decode_mode"
239
Jesse Hall77ad05b2017-03-10 22:02:20 -0800240// 70
Jesse Hall72e6a132018-04-06 13:00:44 -0700241@extension("VK_KHR_maintenance1") define VK_KHR_MAINTENANCE1_SPEC_VERSION 2
Jesse Hall77ad05b2017-03-10 22:02:20 -0800242@extension("VK_KHR_maintenance1") define VK_KHR_MAINTENANCE1_EXTENSION_NAME "VK_KHR_maintenance1"
243
Jesse Hallad250842017-03-10 18:35:38 -0800244// 71
Daniel Koch09f7bf92017-10-05 00:26:58 -0400245@extension("VK_KHR_device_group_creation") define VK_KHR_DEVICE_GROUP_CREATION_SPEC_VERSION 1
246@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 -0800247
248// 72
Jesse Hall9492f992017-08-28 12:10:06 -0700249@extension("VK_KHR_external_memory_capabilities") define VK_KHR_EXTERNAL_MEMORY_CAPABILITIES_SPEC_VERSION 1
250@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 -0800251
252// 73
Jesse Hall9492f992017-08-28 12:10:06 -0700253@extension("VK_KHR_external_memory") define VK_KHR_EXTERNAL_MEMORY_SPEC_VERSION 1
254@extension("VK_KHR_external_memory") define VK_KHR_EXTERNAL_MEMORY_EXTENSION_NAME "VK_KHR_external_memory"
Jesse Hallad250842017-03-10 18:35:38 -0800255
256// 74
Jesse Hall9492f992017-08-28 12:10:06 -0700257@extension("VK_KHR_external_memory_win32") define VK_KHR_EXTERNAL_MEMORY_WIN32_SPEC_VERSION 1
258@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 -0800259
260// 75
Jesse Hall9492f992017-08-28 12:10:06 -0700261@extension("VK_KHR_external_memory_fd") define VK_KHR_EXTERNAL_MEMORY_FD_SPEC_VERSION 1
262@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 -0800263
264// 76
Jesse Hall9492f992017-08-28 12:10:06 -0700265@extension("VK_KHR_win32_keyed_mutex") define VK_KHR_WIN32_KEYED_MUTEX_SPEC_VERSION 1
266@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 -0800267
268// 77
Jesse Hall9492f992017-08-28 12:10:06 -0700269@extension("VK_KHR_external_semaphore_capabilities") define VK_KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_SPEC_VERSION 1
270@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 -0800271
272// 78
Jesse Hall9492f992017-08-28 12:10:06 -0700273@extension("VK_KHR_external_semaphore") define VK_KHR_EXTERNAL_SEMAPHORE_SPEC_VERSION 1
274@extension("VK_KHR_external_semaphore") define VK_KHR_EXTERNAL_SEMAPHORE_EXTENSION_NAME "VK_KHR_external_semaphore"
Jesse Hallad250842017-03-10 18:35:38 -0800275
276// 79
Jesse Hall9492f992017-08-28 12:10:06 -0700277@extension("VK_KHR_external_semaphore_win32") define VK_KHR_EXTERNAL_SEMAPHORE_WIN32_SPEC_VERSION 1
278@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 -0800279
280// 80
Jesse Hall9492f992017-08-28 12:10:06 -0700281@extension("VK_KHR_external_semaphore_fd") define VK_KHR_EXTERNAL_SEMAPHORE_FD_SPEC_VERSION 1
282@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 -0800283
284// 81
Daniel Koch09f7bf92017-10-05 00:26:58 -0400285@extension("VK_KHR_push_descriptor") define VK_KHR_PUSH_DESCRIPTOR_SPEC_VERSION 2
Jesse Hallad250842017-03-10 18:35:38 -0800286@extension("VK_KHR_push_descriptor") define VK_KHR_PUSH_DESCRIPTOR_EXTENSION_NAME "VK_KHR_push_descriptor"
287
Jesse Halla13a3cf2018-07-09 15:51:52 -0700288// 82
289@extension("VK_EXT_conditional_rendering") define VK_EXT_CONDITIONAL_RENDERING_SPEC_VERSION 1
290@extension("VK_EXT_conditional_rendering") define VK_EXT_CONDITIONAL_RENDERING_EXTENSION_NAME "VK_EXT_conditional_rendering"
291
Jesse Hall9492f992017-08-28 12:10:06 -0700292// 84
293@extension("VK_KHR_16bit_storage") define VK_KHR_16BIT_STORAGE_SPEC_VERSION 1
294@extension("VK_KHR_16bit_storage") define VK_KHR_16BIT_STORAGE_EXTENSION_NAME "VK_KHR_16bit_storage"
295
Jesse Hall889cd9a2017-02-25 22:12:23 -0800296// 85
297@extension("VK_KHR_incremental_present") define VK_KHR_INCREMENTAL_PRESENT_SPEC_VERSION 1
Jesse Hallf5ad48b2017-03-20 13:09:19 -0700298@extension("VK_KHR_incremental_present") define VK_KHR_INCREMENTAL_PRESENT_EXTENSION_NAME "VK_KHR_incremental_present"
Jesse Hall889cd9a2017-02-25 22:12:23 -0800299
Jesse Hallad250842017-03-10 18:35:38 -0800300// 86
301@extension("VK_KHR_descriptor_update_template") define VK_KHR_DESCRIPTOR_UPDATE_TEMPLATE_SPEC_VERSION 1
302@extension("VK_KHR_descriptor_update_template") define VK_KHR_DESCRIPTOR_UPDATE_TEMPLATE_EXTENSION_NAME "VK_KHR_descriptor_update_template"
303
Jesse Halleb02c472017-02-24 15:13:45 -0800304// 87
Jesse Hall77726222017-09-19 14:49:27 -0500305@extension("VK_NVX_device_generated_commands") define VK_NVX_DEVICE_GENERATED_COMMANDS_SPEC_VERSION 3
Chris Forbes289cb792016-12-30 15:03:55 +1300306@extension("VK_NVX_device_generated_commands") define VK_NVX_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME "VK_NVX_device_generated_commands"
307
Jesse Hallad250842017-03-10 18:35:38 -0800308// 88
309@extension("VK_NV_clip_space_w_scaling") define VK_NV_CLIP_SPACE_W_SCALING_SPEC_VERSION 1
310@extension("VK_NV_clip_space_w_scaling") define VK_NV_CLIP_SPACE_W_SCALING_EXTENSION_NAME "VK_NV_clip_space_w_scaling"
311
Jesse Hall77ad05b2017-03-10 22:02:20 -0800312// 89
313@extension("VK_EXT_direct_mode_display") define VK_EXT_DIRECT_MODE_DISPLAY_SPEC_VERSION 1
314@extension("VK_EXT_direct_mode_display") define VK_EXT_DIRECT_MODE_DISPLAY_EXTENSION_NAME "VK_EXT_direct_mode_display"
315
316// 90
317@extension("VK_EXT_acquire_xlib_display") define VK_EXT_ACQUIRE_XLIB_DISPLAY_SPEC_VERSION 1
318@extension("VK_EXT_acquire_xlib_display") define VK_EXT_ACQUIRE_XLIB_DISPLAY_EXTENSION_NAME "VK_EXT_acquire_xlib_display"
319
320// 91
321@extension("VK_EXT_display_surface_counter") define VK_EXT_DISPLAY_SURFACE_COUNTER_SPEC_VERSION 1
322@extension("VK_EXT_display_surface_counter") define VK_EXT_DISPLAY_SURFACE_COUNTER_EXTENSION_NAME "VK_EXT_display_surface_counter"
323
324// 92
325@extension("VK_EXT_display_control") define VK_EXT_DISPLAY_CONTROL_SPEC_VERSION 1
326@extension("VK_EXT_display_control") define VK_EXT_DISPLAY_CONTROL_COUNTER_EXTENSION_NAME "VK_EXT_display_control"
327
Jesse Hall889cd9a2017-02-25 22:12:23 -0800328// 93
329@extension("VK_GOOGLE_display_timing") define VK_GOOGLE_DISPLAY_TIMING_SPEC_VERSION 1
Jesse Hallfdc8ab32017-03-10 21:01:57 -0800330@extension("VK_GOOGLE_display_timing") define VK_GOOGLE_DISPLAY_TIMING_EXTENSION_NAME "VK_GOOGLE_display_timing"
Jesse Hall889cd9a2017-02-25 22:12:23 -0800331
Jesse Hallad250842017-03-10 18:35:38 -0800332// 95
333@extension("VK_NV_sample_mask_override_coverage") define VK_NV_SAMPLE_MASK_OVERRIDE_COVERAGE_SPEC_VERSION 1
334@extension("VK_NV_sample_mask_override_coverage") define VK_NV_SAMPLE_MASK_OVERRIDE_COVERAGE_EXTENSION_NAME "VK_NV_sample_mask_override_coverage"
335
336// 96
337@extension("VK_NV_geometry_shader_passthrough") define VK_NV_GEOMETRY_SHADER_PASSTHROUGH_SPEC_VERSION 1
338@extension("VK_NV_geometry_shader_passthrough") define VK_NV_GEOMETRY_SHADER_PASSTHROUGH_EXTENSION_NAME "VK_NV_geometry_shader_passthrough"
339
340// 97
341@extension("VK_NV_viewport_array2") define VK_NV_VIEWPORT_ARRAY2_SPEC_VERSION 1
342@extension("VK_NV_viewport_array2") define VK_NV_VIEWPORT_ARRAY2_EXTENSION_NAME "VK_NV_viewport_array2"
343
344// 98
345@extension("VK_NVX_multiview_per_view_attributes") define VK_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_SPEC_VERSION 1
346@extension("VK_NVX_multiview_per_view_attributes") define VK_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_EXTENSION_NAME "VK_NVX_multiview_per_view_attributes"
347
348// 99
349@extension("VK_NV_viewport_swizzle") define VK_NV_VIEWPORT_SWIZZLE_SPEC_VERSION 1
350@extension("VK_NV_viewport_swizzle") define VK_NV_VIEWPORT_SWIZZLE_EXTENSION_NAME "VK_NV_viewport_swizzle"
351
352// 100
353@extension("VK_EXT_discard_rectangles") define VK_EXT_DISCARD_RECTANGLES_SPEC_VERSION 1
354@extension("VK_EXT_discard_rectangles") define VK_EXT_DISCARD_RECTANGLES_EXTENSION_NAME "VK_EXT_discard_rectangles"
355
Jesse Hall8c954d32018-01-17 22:06:20 -0800356// 102
357@extension("VK_EXT_conservative_rasterization") define VK_EXT_CONSERVATIVE_RASTERIZATION_SPEC_VERSION 1
358@extension("VK_EXT_conservative_rasterization") define VK_EXT_CONSERVATIVE_RASTERIZATION_EXTENSION_NAME "VK_EXT_conservative_rasterization"
359
Jesse Hall77ad05b2017-03-10 22:02:20 -0800360// 105
Jesse Hall77726222017-09-19 14:49:27 -0500361@extension("VK_EXT_swapchain_colorspace") define VK_EXT_SWAPCHAIN_COLORSPACE_SPEC_VERSION 3
Jesse Hallf5ad48b2017-03-20 13:09:19 -0700362@extension("VK_EXT_swapchain_colorspace") define VK_EXT_SWAPCHAIN_COLORSPACE_EXTENSION_NAME "VK_EXT_swapchain_colorspace"
Jesse Hall77ad05b2017-03-10 22:02:20 -0800363
Jesse Hall889cd9a2017-02-25 22:12:23 -0800364// 106
365@extension("VK_EXT_hdr_metadata") define VK_EXT_HDR_METADATA_SPEC_VERSION 1
366@extension("VK_EXT_hdr_metadata") define VK_EXT_HDR_METADATA_EXTENSION_NAME "VK_EXT_hdr_metadata"
367
Jesse Halla13a3cf2018-07-09 15:51:52 -0700368// 110
369@extension("VK_KHR_create_renderpass2") define VK_KHR_CREATE_RENDERPASS2_SPEC_VERSION 1
370@extension("VK_KHR_create_renderpass2") define VK_KHR_CREATE_RENDERPASS2_EXTENSION_NAME "VK_KHR_create_renderpass2"
371
Jesse Hall889cd9a2017-02-25 22:12:23 -0800372// 112
Chris Forbes1d5f68c2017-01-31 10:17:01 +1300373@extension("VK_KHR_shared_presentable_image") define VK_KHR_SHARED_PRESENTABLE_IMAGE_SPEC_VERSION 1
374@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 +1300375
Jesse Hall9492f992017-08-28 12:10:06 -0700376// 113
377@extension("VK_KHR_external_fence_capabilities") define VK_KHR_EXTERNAL_FENCE_CAPABILITIES_SPEC_VERSION 1
378@extension("VK_KHR_external_fence_capabilities") define VK_KHR_EXTERNAL_FENCE_CAPABILITIES_EXTENSION_NAME "VK_KHR_external_fence_capabilities"
379
380// 114
381@extension("VK_KHR_external_fence") define VK_KHR_EXTERNAL_FENCE_SPEC_VERSION 1
382@extension("VK_KHR_external_fence") define VK_KHR_EXTERNAL_FENCE_EXTENSION_NAME "VK_KHR_external_fence"
383
384// 115
385@extension("VK_KHR_external_fence_win32") define VK_KHR_EXTERNAL_FENCE_WIN32_SPEC_VERSION 1
386@extension("VK_KHR_external_fence_win32") define VK_KHR_EXTERNAL_FENCE_WIN32_EXTENSION_NAME "VK_KHR_external_fence_win32"
387
388// 116
389@extension("VK_KHR_external_fence_fd") define VK_KHR_EXTERNAL_FENCE_FD_SPEC_VERSION 1
390@extension("VK_KHR_external_fence_fd") define VK_KHR_EXTERNAL_FENCE_FD_EXTENSION_NAME "VK_KHR_external_fence_fd"
391
Jesse Hall076f95d2017-09-20 11:34:47 -0700392// 118
393@extension("VK_KHR_maintenance2") define VK_KHR_MAINTENANCE2_SPEC_VERSION 1
394@extension("VK_KHR_maintenance2") define VK_KHR_MAINTENANCE2_EXTENSION_NAME "VK_KHR_maintenance2"
395
Jesse Hall05556b12017-05-18 17:40:25 -0700396// 120
Chris Forbese2d3ee12017-03-16 16:10:15 +1300397@extension("VK_KHR_get_surface_capabilities2") define VK_KHR_GET_SURFACE_CAPABILITIES_2_SPEC_VERSION 1
398@extension("VK_KHR_get_surface_capabilities2") define VK_KHR_GET_SURFACE_CAPABILITIES_2_EXTENSION_NAME "VK_KHR_get_surface_capabilities2"
399
Jesse Hall9492f992017-08-28 12:10:06 -0700400// 121
401@extension("VK_KHR_variable_pointers") define VK_KHR_VARIABLE_POINTERS_SPEC_VERSION 1
402@extension("VK_KHR_variable_pointers") define VK_KHR_VARIABLE_POINTERS_EXTENSION_NAME "VK_KHR_variable_pointers"
403
Jesse Hall54f8d132018-04-18 08:16:59 -0700404// 122
405@extension("VK_KHR_get_display_properties2") define VK_KHR_GET_DISPLAY_PROPERTIES_2_SPEC_VERSION 1
406@extension("VK_KHR_get_display_properties2") define VK_KHR_GET_DISPLAY_PROPERTIES_2_EXTENSION_NAME "VK_KHR_get_display_properties2"
407
Jesse Hallad250842017-03-10 18:35:38 -0800408// 123
409@extension("VK_MVK_ios_surface") define VK_MVK_IOS_SURFACE_SPEC_VERSION 1
410@extension("VK_MVK_ios_surface") define VK_MVK_IOS_SURFACE_EXTENSION_NAME "VK_MVK_ios_surface"
411
412// 124
413@extension("VK_MVK_macos_surface") define VK_MVK_MACOS_SURFACE_SPEC_VERSION 1
414@extension("VK_MVK_macos_surface") define VK_MVK_MACOS_SURFACE_EXTENSION_NAME "VK_MVK_macos_surface"
415
Jesse Hall8c954d32018-01-17 22:06:20 -0800416// 126
417@extension("VK_EXT_external_memory_dma_buf") define VK_EXT_EXTERNAL_MEMORY_DMA_BUF_SPEC_VERSION 1
418@extension("VK_EXT_external_memory_dma_buf") define VK_EXT_EXTERNAL_MEMORY_DMA_BUF_EXTENSION_NAME "VK_EXT_external_memory_dma_buf"
419
420// 127
421@extension("VK_EXT_queue_family_foreign") define VK_EXT_QUEUE_FAMILY_FOREIGN_SPEC_VERSION 1
422@extension("VK_EXT_queue_family_foreign") define VK_EXT_QUEUE_FAMILY_FOREIGN_EXTENSION_NAME "VK_EXT_queue_family_foreign"
423
Jesse Hall9492f992017-08-28 12:10:06 -0700424// 128
Jesse Hall77726222017-09-19 14:49:27 -0500425@extension("VK_KHR_dedicated_allocation") define VK_KHR_DEDICATED_ALLOCATION_SPEC_VERSION 3
Jesse Hall9492f992017-08-28 12:10:06 -0700426@extension("VK_KHR_dedicated_allocation") define VK_KHR_DEDICATED_ALLOCATION_EXTENSION_NAME "VK_KHR_dedicated_allocation"
427
Jesse Hall8c954d32018-01-17 22:06:20 -0800428// 128
429@extension("VK_EXT_debug_utils") define VK_EXT_DEBUG_UTILS_SPEC_VERSION 1
430@extension("VK_EXT_debug_utils") define VK_EXT_DEBUG_UTILS_EXTENSION_NAME "VK_EXT_debug_utils"
431
Jesse Hall36215a92018-01-18 15:04:37 -0800432// 130
Jesse Hall72e6a132018-04-06 13:00:44 -0700433@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 -0800434@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"
435
Jesse Hall7ba0ac72017-07-07 17:13:23 -0700436// 131
437@extension("VK_EXT_sampler_filter_minmax") define VK_EXT_SAMPLER_FILTER_MINMAX_SPEC_VERSION 1
438@extension("VK_EXT_sampler_filter_minmax") define VK_EXT_SAMPLER_FILTER_MINMAX_EXTENSION_NAME "VK_EXT_sampler_filter_minmax"
439
Jesse Hall9492f992017-08-28 12:10:06 -0700440// 132
441@extension("VK_KHR_storage_buffer_storage_class") define VK_KHR_STORAGE_BUFFER_STORAGE_CLASS_SPEC_VERSION 1
442@extension("VK_KHR_storage_buffer_storage_class") define VK_KHR_STORAGE_BUFFER_STORAGE_CLASS_EXTENSION_NAME "VK_KHR_storage_buffer_storage_class"
443
Jesse Hall7ba0ac72017-07-07 17:13:23 -0700444// 133
445@extension("VK_AMD_gpu_shader_int16") define VK_AMD_GPU_SHADER_INT16_SPEC_VERSION 1
446@extension("VK_AMD_gpu_shader_int16") define VK_AMD_GPU_SHADER_INT16_EXTENSION_NAME "VK_AMD_gpu_shader_int16"
447
Jesse Hall77726222017-09-19 14:49:27 -0500448// 137
449@extension("VK_AMD_mixed_attachment_samples") define VK_AMD_MIXED_ATTACHMENT_SAMPLES_SPEC_VERSION 1
450@extension("VK_AMD_mixed_attachment_samples") define VK_AMD_MIXED_ATTACHMENT_SAMPLES_EXTENSION_NAME "VK_AMD_mixed_attachment_samples"
451
452// 138
453@extension("VK_AMD_shader_fragment_mask") define VK_AMD_SHADER_FRAGMENT_MASK_SPEC_VERSION 1
454@extension("VK_AMD_shader_fragment_mask") define VK_AMD_SHADER_FRAGMENT_MASK_EXTENSION_NAME "VK_AMD_shader_fragment_mask"
455
Jesse Hall4af6c462018-09-10 09:04:25 -0700456// 139
457@extension("VK_EXT_inline_uniform_block") define VK_EXT_INLINE_UNIFORM_BLOCK_SPEC_VERSION 1
458@extension("VK_EXT_inline_uniform_block") define VK_EXT_INLINE_UNIFORM_BLOCK_EXTENSION_NAME "VK_EXT_inline_uniform_block"
459
Jesse Hall77726222017-09-19 14:49:27 -0500460// 141
461@extension("VK_EXT_shader_stencil_export") define VK_EXT_SHADER_STENCIL_EXPORT_SPEC_VERSION 1
462@extension("VK_EXT_shader_stencil_export") define VK_EXT_SHADER_STENCIL_EXPORT_EXTENSION_NAME "VK_EXT_shader_stencil_export"
463
464// 144
465@extension("VK_EXT_sample_locations") define VK_EXT_SAMPLE_LOCATIONS_SPEC_VERSION 1
466@extension("VK_EXT_sample_locations") define VK_EXT_SAMPLE_LOCATIONS_EXTENSION_NAME "VK_EXT_sample_locations"
467
468// 145
469@extension("VK_KHR_relaxed_block_layout") define VK_KHR_RELAXED_BLOCK_LAYOUT_SPEC_VERSION 1
470@extension("VK_KHR_relaxed_block_layout") define VK_KHR_RELAXED_BLOCK_LAYOUT_EXTENSION_NAME "VK_KHR_relaxed_block_layout"
471
Jesse Hall9492f992017-08-28 12:10:06 -0700472// 147
473@extension("VK_KHR_get_memory_requirements2") define VK_KHR_GET_MEMORY_REQUIREMENTS2_SPEC_VERSION 1
474@extension("VK_KHR_get_memory_requirements2") define VK_KHR_GET_MEMORY_REQUIREMENTS2_EXTENSION_NAME "VK_KHR_get_memory_requirements2"
475
Jesse Hall076f95d2017-09-20 11:34:47 -0700476// 148
477@extension("VK_KHR_image_format_list") define VK_KHR_IMAGE_FORMAT_LIST_SPEC_VERSION 1
478@extension("VK_KHR_image_format_list") define VK_KHR_IMAGE_FORMAT_LIST_EXTENSION_NAME "VK_KHR_image_format_list"
479
Jesse Hall7ba0ac72017-07-07 17:13:23 -0700480// 149
481@extension("VK_EXT_blend_operation_advanced") define VK_EXT_BLEND_OPERATION_ADVANCED_SPEC_VERSION 2
482@extension("VK_EXT_blend_operation_advanced") define VK_EXT_BLEND_OPERATION_ADVANCED_EXTENSION_NAME "VK_EXT_blend_operation_advanced"
483
484// 150
485@extension("VK_NV_fragment_coverage_to_color") define VK_NV_FRAGMENT_COVERAGE_TO_COLOR_SPEC_VERSION 1
486@extension("VK_NV_fragment_coverage_to_color") define VK_NV_FRAGMENT_COVERAGE_TO_COLOR_EXTENSION_NAME "VK_NV_fragment_coverage_to_color"
487
488// 153
489@extension("VK_NV_framebuffer_mixed_samples") define VK_NV_FRAMEBUFFER_MIXED_SAMPLES_SPEC_VERSION 1
490@extension("VK_NV_framebuffer_mixed_samples") define VK_NV_FRAMEBUFFER_MIXED_SAMPLES_EXTENSION_NAME "VK_NV_framebuffer_mixed_samples"
491
492// 154
493@extension("VK_NV_fill_rectangle") define VK_NV_FILL_RECTANGLE_SPEC_VERSION 1
494@extension("VK_NV_fill_rectangle") define VK_NV_FILL_RECTANGLE_EXTENSION_NAME "VK_NV_fill_rectangle"
495
Jesse Hall77726222017-09-19 14:49:27 -0500496// 156
497@extension("VK_EXT_post_depth_coverage") define VK_EXT_POST_DEPTH_COVERAGE_SPEC_VERSION 1
498@extension("VK_EXT_post_depth_coverage") define VK_EXT_POST_DEPTH_COVERAGE_EXTENSION_NAME "VK_EXT_post_depth_coverage"
499
Jesse Hall076f95d2017-09-20 11:34:47 -0700500// 157
501@extension("VK_KHR_sampler_ycbcr_conversion") define VK_KHR_SAMPLER_YCBCR_CONVERSION_SPEC_VERSION 1
502@extension("VK_KHR_sampler_ycbcr_conversion") define VK_KHR_SAMPLER_YCBCR_CONVERSION_EXTENSION_NAME "VK_KHR_sampler_ycbcr_conversion"
503
504// 158
505@extension("VK_KHR_bind_memory2") define VK_KHR_BIND_MEMORY2_SPEC_VERSION 1
506@extension("VK_KHR_bind_memory2") define VK_KHR_BIND_MEMORY2_EXTENSION_NAME "VK_KHR_bind_memory2"
507
Jesse Hallf47e8f82018-10-27 23:41:45 -0700508// 159
509@extension("VK_EXT_image_drm_format_modifier") define VK_EXT_IMAGE_DRM_FORMAT_MODIFIER_SPEC_VERSION 1
510@extension("VK_EXT_image_drm_format_modifier") define VK_EXT_IMAGE_DRM_FORMAT_MODIFIER_EXTENSION_NAME "VK_EXT_image_drm_format_modifier"
511
Jesse Hall77726222017-09-19 14:49:27 -0500512// 161
513@extension("VK_EXT_validation_cache") define VK_EXT_VALIDATION_CACHE_SPEC_VERSION 1
514@extension("VK_EXT_validation_cache") define VK_EXT_VALIDATION_CACHE_EXTENSION_NAME "VK_EXT_validation_cache"
515
Jesse Hall72e6a132018-04-06 13:00:44 -0700516// 162
517@extension("VK_EXT_descriptor_indexing") define VK_EXT_DESCRIPTOR_INDEXING_SPEC_VERSION 2
518@extension("VK_EXT_descriptor_indexing") define VK_EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME "VK_EXT_descriptor_indexing"
519
Jesse Hallb5297192018-09-22 20:52:13 +0200520// 163
Jesse Hall77726222017-09-19 14:49:27 -0500521@extension("VK_EXT_shader_viewport_index_layer") define VK_EXT_SHADER_VIEWPORT_INDEX_LAYER_SPEC_VERSION 1
522@extension("VK_EXT_shader_viewport_index_layer") define VK_EXT_SHADER_VIEWPORT_INDEX_LAYER_EXTENSION_NAME "VK_EXT_shader_viewport_index_layer"
523
Jesse Hallb5297192018-09-22 20:52:13 +0200524// 165
525@extension("VK_NV_shading_rate_image") define VK_NV_SHADING_RATE_IMAGE_SPEC_VERSION 3
526@extension("VK_NV_shading_rate_image") define VK_NV_SHADING_RATE_IMAGE_EXTENSION_NAME "VK_NV_shading_rate_image"
527
528// 166
529@extension("VK_NVX_raytracing") define VK_NVX_RAYTRACING_SPEC_VERSION 1
530@extension("VK_NVX_raytracing") define VK_NVX_RAYTRACING_EXTENSION_NAME "VK_NVX_raytracing"
531
532// 167
533@extension("VK_NV_representative_fragment_test") define VK_NV_REPRESENTATIVE_FRAGMENT_TEST_SPEC_VERSION 1
534@extension("VK_NV_representative_fragment_test") define VK_NV_REPRESENTATIVE_FRAGMENT_TEST_EXTENSION_NAME "VK_NV_representative_fragment_test"
535
Daniel Koch09f7bf92017-10-05 00:26:58 -0400536// 169
537@extension("VK_KHR_maintenance3") define VK_KHR_MAINTENANCE3_SPEC_VERSION 1
538@extension("VK_KHR_maintenance3") define VK_KHR_MAINTENANCE3_EXTENSION_NAME "VK_KHR_maintenance3"
539
Jesse Hall54f8d132018-04-18 08:16:59 -0700540// 170
541@extension("VK_KHR_draw_indirect_count") define VK_KHR_DRAW_INDIRECT_COUNT_SPEC_VERSION 1
542@extension("VK_KHR_draw_indirect_count") define VK_KHR_DRAW_INDIRECT_COUNT_EXTENSION_NAME "VK_KHR_draw_indirect_count"
543
Jesse Hall8c954d32018-01-17 22:06:20 -0800544// 175
545@extension("VK_EXT_global_priority") define VK_EXT_GLOBAL_PRIORITY_SPEC_VERSION 1
546@extension("VK_EXT_global_priority") define VK_EXT_GLOBAL_PRIORITY_EXTENSION_NAME "VK_EXT_global_priority"
547
Jesse Halla13a3cf2018-07-09 15:51:52 -0700548// 178
549@extension("VK_KHR_8bit_storage") define VK_KHR_8BIT_STORAGE_SPEC_VERSION 1
550@extension("VK_KHR_8bit_storage") define VK_KHR_8BIT_STORAGE_EXTENSION_NAME "VK_KHR_8bit_storage"
551
Jesse Hall8c954d32018-01-17 22:06:20 -0800552// 179
553@extension("VK_EXT_external_memory_host") define VK_EXT_EXTERNAL_MEMORY_HOST_SPEC_VERSION 1
554@extension("VK_EXT_external_memory_host") define VK_EXT_EXTERNAL_MEMORY_HOST_EXTENSION_NAME "VK_EXT_external_memory_host"
555
Jesse Hall72e6a132018-04-06 13:00:44 -0700556// 180
557@extension("VK_AMD_buffer_marker") define VK_AMD_BUFFER_MARKER_SPEC_VERSION 1
558@extension("VK_AMD_buffer_marker") define VK_AMD_BUFFER_MARKER_EXTENSION_NAME "VK_AMD_buffer_marker"
559
Jesse Hall2e6853c2018-10-02 14:05:37 -0700560// 181
561@extension("VK_KHR_shader_atomic_int64") define VK_KHR_SHADER_ATOMIC_INT64_SPEC_VERSION 1
562@extension("VK_KHR_shader_atomic_int64") define VK_KHR_SHADER_ATOMIC_INT64_EXTENSION_NAME "VK_KHR_shader_atomic_int64"
563
Jesse Hall72e6a132018-04-06 13:00:44 -0700564// 186
565@extension("VK_AMD_shader_core_properties") define VK_AMD_SHADER_CORE_PROPERTIES_SPEC_VERSION 1
566@extension("VK_AMD_shader_core_properties") define VK_AMD_SHADER_CORE_PROPERTIES_EXTENSION_NAME "VK_AMD_shader_core_properties"
567
568// 191
Jesse Hall4af6c462018-09-10 09:04:25 -0700569@extension("VK_EXT_vertex_attribute_divisor") define VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_SPEC_VERSION 2
570@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 -0700571
Jesse Hall2e6853c2018-10-02 14:05:37 -0700572// 197
573@extension("VK_KHR_driver_properties") define VK_KHR_DRIVER_PROPERTIES_SPEC_VERSION 1
574@extension("VK_KHR_driver_properties") define VK_KHR_DRIVER_PROPERTIES_EXTENSION_NAME "VK_KHR_driver_properties"
575
Jesse Hall72e6a132018-04-06 13:00:44 -0700576// 199
577@extension("VK_NV_shader_subgroup_partitioned") define VK_NV_SHADER_SUBGROUP_PARTITIONED_SPEC_VERSION 1
578@extension("VK_NV_shader_subgroup_partitioned") define VK_NV_SHADER_SUBGROUP_PARTITIONED_EXTENSION_NAME "VK_NV_shader_subgroup_partitioned"
579
Jesse Hallb5297192018-09-22 20:52:13 +0200580// 202
581@extension("VK_NV_compute_shader_derivatives") define VK_NV_COMPUTE_SHADER_DERIVATIVES_SPEC_VERSION 1
582@extension("VK_NV_compute_shader_derivatives") define VK_NV_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME "VK_NV_compute_shader_derivatives"
583
584// 203
585@extension("VK_NV_mesh_shader") define VK_NV_MESH_SHADER_SPEC_VERSION 1
586@extension("VK_NV_mesh_shader") define VK_NV_MESH_SHADER_EXTENSION_NAME "VK_NV_mesh_shader"
587
588// 204
589@extension("VK_NV_fragment_shader_barycentric") define VK_NV_FRAGMENT_SHADER_BARYCENTRIC_SPEC_VERSION 1
590@extension("VK_NV_fragment_shader_barycentric") define VK_NV_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME "VK_NV_fragment_shader_barycentric"
591
592// 205
593@extension("VK_NV_shader_image_footprint") define VK_NV_SHADER_IMAGE_FOOTPRINT_SPEC_VERSION 1
594@extension("VK_NV_shader_image_footprint") define VK_NV_SHADER_IMAGE_FOOTPRINT_EXTENSION_NAME "VK_NV_shader_image_footprint"
595
596// 206
597@extension("VK_NV_scissor_exclusive") define VK_NV_SCISSOR_EXCLUSIVE_SPEC_VERSION 1
598@extension("VK_NV_scissor_exclusive") define VK_NV_SCISSOR_EXCLUSIVE_EXTENSION_NAME "VK_NV_scissor_exclusive"
599
Jesse Hall115df0c2018-07-30 12:00:59 -0700600// 207
601@extension("VK_NV_device_diagnostic_checkpoints") define VK_NV_DEVICE_DIAGNOSTIC_CHECKPOINTS_SPEC_VERSION 2
602@extension("VK_NV_device_diagnostic_checkpoints") define VK_NV_DEVICE_DIAGNOSTIC_CHECKPOINTS_EXTENSION_NAME "VK_NV_device_diagnostic_checkpoints"
603
Jesse Hall4af6c462018-09-10 09:04:25 -0700604// 212
605@extension("VK_KHR_vulkan_memory_model") define VK_KHR_VULKAN_MEMORY_MODEL_SPEC_VERSION 2
606@extension("VK_KHR_vulkan_memory_model") define VK_KHR_VULKAN_MEMORY_MODEL_EXTENSION_NAME "VK_KHR_vulkan_memory_model"
607
Jesse Hallf47e8f82018-10-27 23:41:45 -0700608// 213
609@extension("VK_EXT_pci_bus_info") define VK_EXT_PCI_BUS_INFO_SPEC_VERSION 1
610@extension("VK_EXT_pci_bus_info") define VK_EXT_PCI_BUS_INFO_EXENSION_NAME "VK_EXT_pci_bus_info"
611
Jesse Hall497c46f2018-10-08 12:52:48 -0700612// 215
613@extension("VK_FUCHSIA_imagepipe_surface") define VK_FUCHSIA_IMAGEPIPE_SURFACE_SPEC_VERSION 1
614@extension("VK_FUCHSIA_imagepipe_surface") define VK_FUCHSIA_IMAGEPIPE_SURFACE_EXTENSION_NAME "VK_FUCHSIA_imagepipe_surface"
615
Jesse Hallf47e8f82018-10-27 23:41:45 -0700616// 224
617@extension("VK_GOOGLE_hlsl_functionality1") define VK_GOOGLE_HLSL_FUNCTIONALITY1_SPEC_VERSION 0
618@extension("VK_GOOGLE_hlsl_functionality1") define VK_GOOGLE_HLSL_FUNCTIONALITY1_EXTENSION_NAME "VK_GOOGLE_hlsl_functionality1"
619
620// 225
621@extension("VK_GOOGLE_decorate_string") define VK_GOOGLE_DECORATE_STRING_SPEC_VERSION 0
622@extension("VK_GOOGLE_decorate_string") define VK_GOOGLE_DECORATE_STRING_EXTENSION_NAME "VK_GOOGLE_decorate_string"
623
Jesse Halld27f6aa2015-08-15 17:58:48 -0700624/////////////
625// Types //
626/////////////
627
Jesse Hall5ae3abb2015-10-08 14:00:22 -0700628type u32 VkBool32
629type u32 VkFlags
630type u64 VkDeviceSize
631type u32 VkSampleMask
632
Jesse Halld27f6aa2015-08-15 17:58:48 -0700633/// Dispatchable handle types.
634@dispatchHandle type u64 VkInstance
635@dispatchHandle type u64 VkPhysicalDevice
636@dispatchHandle type u64 VkDevice
637@dispatchHandle type u64 VkQueue
Jesse Hall3fbc8562015-11-29 22:10:52 -0800638@dispatchHandle type u64 VkCommandBuffer
Jesse Halld27f6aa2015-08-15 17:58:48 -0700639
640/// Non dispatchable handle types.
641@nonDispatchHandle type u64 VkDeviceMemory
Jesse Hall3fbc8562015-11-29 22:10:52 -0800642@nonDispatchHandle type u64 VkCommandPool
Jesse Halld27f6aa2015-08-15 17:58:48 -0700643@nonDispatchHandle type u64 VkBuffer
644@nonDispatchHandle type u64 VkBufferView
645@nonDispatchHandle type u64 VkImage
646@nonDispatchHandle type u64 VkImageView
Jesse Halld27f6aa2015-08-15 17:58:48 -0700647@nonDispatchHandle type u64 VkShaderModule
Jesse Halld27f6aa2015-08-15 17:58:48 -0700648@nonDispatchHandle type u64 VkPipeline
649@nonDispatchHandle type u64 VkPipelineLayout
650@nonDispatchHandle type u64 VkSampler
651@nonDispatchHandle type u64 VkDescriptorSet
652@nonDispatchHandle type u64 VkDescriptorSetLayout
653@nonDispatchHandle type u64 VkDescriptorPool
Jesse Halld27f6aa2015-08-15 17:58:48 -0700654@nonDispatchHandle type u64 VkFence
655@nonDispatchHandle type u64 VkSemaphore
656@nonDispatchHandle type u64 VkEvent
657@nonDispatchHandle type u64 VkQueryPool
658@nonDispatchHandle type u64 VkFramebuffer
659@nonDispatchHandle type u64 VkRenderPass
660@nonDispatchHandle type u64 VkPipelineCache
Jesse Hall1356b0d2015-11-23 17:24:58 -0800661
Ian Elliott28bd2c32017-10-13 09:21:12 -0600662@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -0400663@nonDispatchHandle type u64 VkSamplerYcbcrConversion
664@nonDispatchHandle type u64 VkDescriptorUpdateTemplate
665
Jesse Hallad250842017-03-10 18:35:38 -0800666// 1
Jesse Hall3e0dc8f2015-11-30 00:42:57 -0800667@extension("VK_KHR_surface") @nonDispatchHandle type u64 VkSurfaceKHR
Jesse Hall1356b0d2015-11-23 17:24:58 -0800668
Jesse Hallad250842017-03-10 18:35:38 -0800669// 2
Jesse Hall3e0dc8f2015-11-30 00:42:57 -0800670@extension("VK_KHR_swapchain") @nonDispatchHandle type u64 VkSwapchainKHR
Jesse Hall1356b0d2015-11-23 17:24:58 -0800671
Jesse Hallad250842017-03-10 18:35:38 -0800672// 3
Jesse Hall3e0dc8f2015-11-30 00:42:57 -0800673@extension("VK_KHR_display") @nonDispatchHandle type u64 VkDisplayKHR
674@extension("VK_KHR_display") @nonDispatchHandle type u64 VkDisplayModeKHR
Jesse Halld27f6aa2015-08-15 17:58:48 -0700675
Jesse Hallad250842017-03-10 18:35:38 -0800676// 12
Jesse Hall715b86a2016-01-16 16:34:29 -0800677@extension("VK_EXT_debug_report") @nonDispatchHandle type u64 VkDebugReportCallbackEXT
678
Jesse Hallad250842017-03-10 18:35:38 -0800679// 86
680@extension("VK_KHR_descriptor_update_template") @nonDispatchHandle type u64 VkDescriptorUpdateTemplateKHR
681
682// 87
Chris Forbes289cb792016-12-30 15:03:55 +1300683@extension("VK_NVX_device_generated_commands") @nonDispatchHandle type u64 VkObjectTableNVX
684@extension("VK_NVX_device_generated_commands") @nonDispatchHandle type u64 VkIndirectCommandsLayoutNVX
685
Jesse Hall8c954d32018-01-17 22:06:20 -0800686// 129
687@extension("VK_EXT_debug_utils") @nonDispatchHandle type u64 VkDebugUtilsMessengerEXT
688
Jesse Hall076f95d2017-09-20 11:34:47 -0700689// 157
690@extension("VK_KHR_sampler_ycbcr_conversion") @nonDispatchHandle type u64 VkSamplerYcbcrConversionKHR
691
Jesse Hall77726222017-09-19 14:49:27 -0500692// 161
693@extension("VK_EXT_validation_cache") @nonDispatchHandle type u64 VkValidationCacheEXT
Jesse Halld27f6aa2015-08-15 17:58:48 -0700694
Jesse Hallb5297192018-09-22 20:52:13 +0200695// 166
696@extension("VK_NVX_raytracing") @nonDispatchHandle type u64 VkAccelerationStructureNVX
697
Jesse Halld27f6aa2015-08-15 17:58:48 -0700698/////////////
699// Enums //
700/////////////
701
702enum VkImageLayout {
703 VK_IMAGE_LAYOUT_UNDEFINED = 0x00000000, /// Implicit layout an image is when its contents are undefined due to various reasons (e.g. right after creation)
704 VK_IMAGE_LAYOUT_GENERAL = 0x00000001, /// General layout when image can be used for any kind of access
705 VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL = 0x00000002, /// Optimal layout when image is only used for color attachment read/write
706 VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL = 0x00000003, /// Optimal layout when image is only used for depth/stencil attachment read/write
707 VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL = 0x00000004, /// Optimal layout when image is used for read only depth/stencil attachment and shader access
708 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 -0800709 VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL = 0x00000006, /// Optimal layout when image is used only as source of transfer operations
710 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 -0700711 VK_IMAGE_LAYOUT_PREINITIALIZED = 0x00000008, /// Initial layout used when the data is populated by the CPU
Jesse Hall1356b0d2015-11-23 17:24:58 -0800712
Ian Elliott28bd2c32017-10-13 09:21:12 -0600713 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -0400714 VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL = 1000117000,
715 VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL = 1000117001,
716
Jesse Hallad250842017-03-10 18:35:38 -0800717 //@extension("VK_KHR_swapchain") // 2
Jesse Hallbd888842015-11-30 21:44:14 -0800718 VK_IMAGE_LAYOUT_PRESENT_SRC_KHR = 1000001002,
Chris Forbesaf3a1112017-01-31 15:37:03 +1300719
Jesse Hall05556b12017-05-18 17:40:25 -0700720 //@extension("VK_KHR_shared_presentable_image") // 112
Chris Forbesaf3a1112017-01-31 15:37:03 +1300721 VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR = 1000111000,
Jesse Hall076f95d2017-09-20 11:34:47 -0700722
723 //@extension("VK_KHR_maintenance2") // 118
724 VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL_KHR = 1000117000,
725 VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL_KHR = 1000117001,
Jesse Hallb5297192018-09-22 20:52:13 +0200726
727 //@extension("VK_NV_shading_rate_image") // 165
728 VK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV = 1000164003,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700729}
730
731enum VkAttachmentLoadOp {
732 VK_ATTACHMENT_LOAD_OP_LOAD = 0x00000000,
733 VK_ATTACHMENT_LOAD_OP_CLEAR = 0x00000001,
734 VK_ATTACHMENT_LOAD_OP_DONT_CARE = 0x00000002,
735}
736
737enum VkAttachmentStoreOp {
738 VK_ATTACHMENT_STORE_OP_STORE = 0x00000000,
739 VK_ATTACHMENT_STORE_OP_DONT_CARE = 0x00000001,
740}
741
742enum VkImageType {
743 VK_IMAGE_TYPE_1D = 0x00000000,
744 VK_IMAGE_TYPE_2D = 0x00000001,
745 VK_IMAGE_TYPE_3D = 0x00000002,
746}
747
748enum VkImageTiling {
Jesse Hallc7467b72015-11-29 21:05:26 -0800749 VK_IMAGE_TILING_OPTIMAL = 0x00000000,
750 VK_IMAGE_TILING_LINEAR = 0x00000001,
Jesse Hallf47e8f82018-10-27 23:41:45 -0700751
752 //@extension("VK_EXT_image_drm_format_modifier") // 159
753 VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT = 1000158000,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700754}
755
756enum VkImageViewType {
757 VK_IMAGE_VIEW_TYPE_1D = 0x00000000,
758 VK_IMAGE_VIEW_TYPE_2D = 0x00000001,
759 VK_IMAGE_VIEW_TYPE_3D = 0x00000002,
760 VK_IMAGE_VIEW_TYPE_CUBE = 0x00000003,
761 VK_IMAGE_VIEW_TYPE_1D_ARRAY = 0x00000004,
762 VK_IMAGE_VIEW_TYPE_2D_ARRAY = 0x00000005,
763 VK_IMAGE_VIEW_TYPE_CUBE_ARRAY = 0x00000006,
764}
765
Jesse Hall3fbc8562015-11-29 22:10:52 -0800766enum VkCommandBufferLevel {
767 VK_COMMAND_BUFFER_LEVEL_PRIMARY = 0x00000000,
768 VK_COMMAND_BUFFER_LEVEL_SECONDARY = 0x00000001,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700769}
770
Jesse Hall65ab5522015-11-30 00:07:16 -0800771enum VkComponentSwizzle {
772 VK_COMPONENT_SWIZZLE_IDENTITY = 0x00000000,
773 VK_COMPONENT_SWIZZLE_ZERO = 0x00000001,
774 VK_COMPONENT_SWIZZLE_ONE = 0x00000002,
775 VK_COMPONENT_SWIZZLE_R = 0x00000003,
776 VK_COMPONENT_SWIZZLE_G = 0x00000004,
777 VK_COMPONENT_SWIZZLE_B = 0x00000005,
778 VK_COMPONENT_SWIZZLE_A = 0x00000006,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700779}
780
781enum VkDescriptorType {
782 VK_DESCRIPTOR_TYPE_SAMPLER = 0x00000000,
783 VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER = 0x00000001,
784 VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE = 0x00000002,
785 VK_DESCRIPTOR_TYPE_STORAGE_IMAGE = 0x00000003,
786 VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER = 0x00000004,
787 VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER = 0x00000005,
788 VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER = 0x00000006,
789 VK_DESCRIPTOR_TYPE_STORAGE_BUFFER = 0x00000007,
790 VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC = 0x00000008,
791 VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC = 0x00000009,
792 VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT = 0x0000000a,
Jesse Hall4af6c462018-09-10 09:04:25 -0700793
794 //@extension("VK_EXT_inline_uniform_block") // 139
795 VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT = 1000138000,
Jesse Hallb5297192018-09-22 20:52:13 +0200796
797 //@extension("VK_NVX_raytracing") // 166
798 VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NVX = 1000165000,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700799}
800
Jesse Halld27f6aa2015-08-15 17:58:48 -0700801enum VkQueryType {
802 VK_QUERY_TYPE_OCCLUSION = 0x00000000,
803 VK_QUERY_TYPE_PIPELINE_STATISTICS = 0x00000001, /// Optional
Jesse Halla3a7a1d2015-11-24 11:37:23 -0800804 VK_QUERY_TYPE_TIMESTAMP = 0x00000002,
Jesse Hallb5297192018-09-22 20:52:13 +0200805
Jesse Hallf47e8f82018-10-27 23:41:45 -0700806 //@extension("VK_EXT_transform_feedback") // 29
807 VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT = 1000028004,
808
Jesse Hallb5297192018-09-22 20:52:13 +0200809 //@extension("VK_NVX_raytracing") // 166
810 VK_QUERY_TYPE_COMPACTED_SIZE_NVX = 1000165000,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700811}
812
Jesse Halld27f6aa2015-08-15 17:58:48 -0700813enum VkBorderColor {
814 VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK = 0x00000000,
815 VK_BORDER_COLOR_INT_TRANSPARENT_BLACK = 0x00000001,
816 VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK = 0x00000002,
817 VK_BORDER_COLOR_INT_OPAQUE_BLACK = 0x00000003,
818 VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE = 0x00000004,
819 VK_BORDER_COLOR_INT_OPAQUE_WHITE = 0x00000005,
820}
821
822enum VkPipelineBindPoint {
Jesse Hallc7467b72015-11-29 21:05:26 -0800823 VK_PIPELINE_BIND_POINT_GRAPHICS = 0x00000000,
824 VK_PIPELINE_BIND_POINT_COMPUTE = 0x00000001,
Jesse Hallb5297192018-09-22 20:52:13 +0200825
826 //@extension("VK_NVX_raytracing") // 166
827 VK_PIPELINE_BIND_POINT_RAYTRACING_NVX = 1000165000,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700828}
829
830enum VkPrimitiveTopology {
831 VK_PRIMITIVE_TOPOLOGY_POINT_LIST = 0x00000000,
832 VK_PRIMITIVE_TOPOLOGY_LINE_LIST = 0x00000001,
833 VK_PRIMITIVE_TOPOLOGY_LINE_STRIP = 0x00000002,
834 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST = 0x00000003,
835 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP = 0x00000004,
836 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN = 0x00000005,
Jesse Hall3fbc8562015-11-29 22:10:52 -0800837 VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY = 0x00000006,
838 VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY = 0x00000007,
839 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY = 0x00000008,
840 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY = 0x00000009,
Jesse Hall091ed9e2015-11-30 00:55:29 -0800841 VK_PRIMITIVE_TOPOLOGY_PATCH_LIST = 0x0000000a,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700842}
843
844enum VkSharingMode {
845 VK_SHARING_MODE_EXCLUSIVE = 0x00000000,
846 VK_SHARING_MODE_CONCURRENT = 0x00000001,
847}
848
849enum VkIndexType {
850 VK_INDEX_TYPE_UINT16 = 0x00000000,
851 VK_INDEX_TYPE_UINT32 = 0x00000001,
852}
853
Jesse Hall23ff73f2015-11-29 14:36:39 -0800854enum VkFilter {
855 VK_FILTER_NEAREST = 0x00000000,
856 VK_FILTER_LINEAR = 0x00000001,
Jesse Hall26763382016-05-20 07:13:52 -0700857
Jesse Hallad250842017-03-10 18:35:38 -0800858 //@extension("VK_IMG_filter_cubic") // 16
Jesse Hall26763382016-05-20 07:13:52 -0700859 VK_FILTER_CUBIC_IMG = 1000015000,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700860}
861
Jesse Hall23ff73f2015-11-29 14:36:39 -0800862enum VkSamplerMipmapMode {
Jesse Hall23ff73f2015-11-29 14:36:39 -0800863 VK_SAMPLER_MIPMAP_MODE_NEAREST = 0x00000001, /// Choose nearest mip level
864 VK_SAMPLER_MIPMAP_MODE_LINEAR = 0x00000002, /// Linear filter between mip levels
Jesse Halld27f6aa2015-08-15 17:58:48 -0700865}
866
Jesse Hall23ff73f2015-11-29 14:36:39 -0800867enum VkSamplerAddressMode {
Jesse Hallc7467b72015-11-29 21:05:26 -0800868 VK_SAMPLER_ADDRESS_MODE_REPEAT = 0x00000000,
869 VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT = 0x00000001,
870 VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE = 0x00000002,
871 VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER = 0x00000003,
872 VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE = 0x00000004,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700873}
874
875enum VkCompareOp {
876 VK_COMPARE_OP_NEVER = 0x00000000,
877 VK_COMPARE_OP_LESS = 0x00000001,
878 VK_COMPARE_OP_EQUAL = 0x00000002,
Jesse Hall3fbc8562015-11-29 22:10:52 -0800879 VK_COMPARE_OP_LESS_OR_EQUAL = 0x00000003,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700880 VK_COMPARE_OP_GREATER = 0x00000004,
881 VK_COMPARE_OP_NOT_EQUAL = 0x00000005,
Jesse Hall3fbc8562015-11-29 22:10:52 -0800882 VK_COMPARE_OP_GREATER_OR_EQUAL = 0x00000006,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700883 VK_COMPARE_OP_ALWAYS = 0x00000007,
884}
885
Jesse Hall65ab5522015-11-30 00:07:16 -0800886enum VkPolygonMode {
887 VK_POLYGON_MODE_FILL = 0x00000000,
888 VK_POLYGON_MODE_LINE = 0x00000001,
889 VK_POLYGON_MODE_POINT = 0x00000002,
Jesse Hall7ba0ac72017-07-07 17:13:23 -0700890
891 //@extension("VK_NV_fill_rectangle") // 154
892 VK_POLYGON_MODE_FILL_RECTANGLE_NV = 1000153000,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700893}
894
895enum VkFrontFace {
Jesse Hall3fbc8562015-11-29 22:10:52 -0800896 VK_FRONT_FACE_COUNTER_CLOCKWISE = 0x00000000,
897 VK_FRONT_FACE_CLOCKWISE = 0x00000001,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700898}
899
Jesse Hall65ab5522015-11-30 00:07:16 -0800900enum VkBlendFactor {
901 VK_BLEND_FACTOR_ZERO = 0x00000000,
902 VK_BLEND_FACTOR_ONE = 0x00000001,
903 VK_BLEND_FACTOR_SRC_COLOR = 0x00000002,
904 VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR = 0x00000003,
905 VK_BLEND_FACTOR_DST_COLOR = 0x00000004,
906 VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR = 0x00000005,
907 VK_BLEND_FACTOR_SRC_ALPHA = 0x00000006,
908 VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA = 0x00000007,
909 VK_BLEND_FACTOR_DST_ALPHA = 0x00000008,
910 VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA = 0x00000009,
911 VK_BLEND_FACTOR_CONSTANT_COLOR = 0x0000000a,
912 VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR = 0x0000000b,
913 VK_BLEND_FACTOR_CONSTANT_ALPHA = 0x0000000c,
914 VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA = 0x0000000d,
915 VK_BLEND_FACTOR_SRC_ALPHA_SATURATE = 0x0000000e,
916 VK_BLEND_FACTOR_SRC1_COLOR = 0x0000000f,
917 VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR = 0x00000010,
918 VK_BLEND_FACTOR_SRC1_ALPHA = 0x00000011,
919 VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA = 0x00000012,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700920}
921
922enum VkBlendOp {
923 VK_BLEND_OP_ADD = 0x00000000,
924 VK_BLEND_OP_SUBTRACT = 0x00000001,
925 VK_BLEND_OP_REVERSE_SUBTRACT = 0x00000002,
926 VK_BLEND_OP_MIN = 0x00000003,
927 VK_BLEND_OP_MAX = 0x00000004,
Jesse Hall7ba0ac72017-07-07 17:13:23 -0700928
929 //@extension("VK_EXT_blend_operation_advanced") // 149
930 VK_BLEND_OP_ZERO_EXT = 1000148000,
931 VK_BLEND_OP_SRC_EXT = 1000148001,
932 VK_BLEND_OP_DST_EXT = 1000148002,
933 VK_BLEND_OP_SRC_OVER_EXT = 1000148003,
934 VK_BLEND_OP_DST_OVER_EXT = 1000148004,
935 VK_BLEND_OP_SRC_IN_EXT = 1000148005,
936 VK_BLEND_OP_DST_IN_EXT = 1000148006,
937 VK_BLEND_OP_SRC_OUT_EXT = 1000148007,
938 VK_BLEND_OP_DST_OUT_EXT = 1000148008,
939 VK_BLEND_OP_SRC_ATOP_EXT = 1000148009,
940 VK_BLEND_OP_DST_ATOP_EXT = 1000148010,
941 VK_BLEND_OP_XOR_EXT = 1000148011,
942 VK_BLEND_OP_MULTIPLY_EXT = 1000148012,
943 VK_BLEND_OP_SCREEN_EXT = 1000148013,
944 VK_BLEND_OP_OVERLAY_EXT = 1000148014,
945 VK_BLEND_OP_DARKEN_EXT = 1000148015,
946 VK_BLEND_OP_LIGHTEN_EXT = 1000148016,
947 VK_BLEND_OP_COLORDODGE_EXT = 1000148017,
948 VK_BLEND_OP_COLORBURN_EXT = 1000148018,
949 VK_BLEND_OP_HARDLIGHT_EXT = 1000148019,
950 VK_BLEND_OP_SOFTLIGHT_EXT = 1000148020,
951 VK_BLEND_OP_DIFFERENCE_EXT = 1000148021,
952 VK_BLEND_OP_EXCLUSION_EXT = 1000148022,
953 VK_BLEND_OP_INVERT_EXT = 1000148023,
954 VK_BLEND_OP_INVERT_RGB_EXT = 1000148024,
955 VK_BLEND_OP_LINEARDODGE_EXT = 1000148025,
956 VK_BLEND_OP_LINEARBURN_EXT = 1000148026,
957 VK_BLEND_OP_VIVIDLIGHT_EXT = 1000148027,
958 VK_BLEND_OP_LINEARLIGHT_EXT = 1000148028,
959 VK_BLEND_OP_PINLIGHT_EXT = 1000148029,
960 VK_BLEND_OP_HARDMIX_EXT = 1000148030,
961 VK_BLEND_OP_HSL_HUE_EXT = 1000148031,
962 VK_BLEND_OP_HSL_SATURATION_EXT = 1000148032,
963 VK_BLEND_OP_HSL_COLOR_EXT = 1000148033,
964 VK_BLEND_OP_HSL_LUMINOSITY_EXT = 1000148034,
965 VK_BLEND_OP_PLUS_EXT = 1000148035,
966 VK_BLEND_OP_PLUS_CLAMPED_EXT = 1000148036,
967 VK_BLEND_OP_PLUS_CLAMPED_ALPHA_EXT = 1000148037,
968 VK_BLEND_OP_PLUS_DARKER_EXT = 1000148038,
969 VK_BLEND_OP_MINUS_EXT = 1000148039,
970 VK_BLEND_OP_MINUS_CLAMPED_EXT = 1000148040,
971 VK_BLEND_OP_CONTRAST_EXT = 1000148041,
972 VK_BLEND_OP_INVERT_OVG_EXT = 1000148042,
973 VK_BLEND_OP_RED_EXT = 1000148043,
974 VK_BLEND_OP_GREEN_EXT = 1000148044,
975 VK_BLEND_OP_BLUE_EXT = 1000148045,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700976}
977
978enum VkStencilOp {
979 VK_STENCIL_OP_KEEP = 0x00000000,
980 VK_STENCIL_OP_ZERO = 0x00000001,
981 VK_STENCIL_OP_REPLACE = 0x00000002,
Jesse Hall3fbc8562015-11-29 22:10:52 -0800982 VK_STENCIL_OP_INCREMENT_AND_CLAMP = 0x00000003,
983 VK_STENCIL_OP_DECREMENT_AND_CLAMP = 0x00000004,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700984 VK_STENCIL_OP_INVERT = 0x00000005,
Jesse Hall3fbc8562015-11-29 22:10:52 -0800985 VK_STENCIL_OP_INCREMENT_AND_WRAP = 0x00000006,
986 VK_STENCIL_OP_DECREMENT_AND_WRAP = 0x00000007,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700987}
988
989enum VkLogicOp {
990 VK_LOGIC_OP_CLEAR = 0x00000000,
991 VK_LOGIC_OP_AND = 0x00000001,
992 VK_LOGIC_OP_AND_REVERSE = 0x00000002,
993 VK_LOGIC_OP_COPY = 0x00000003,
994 VK_LOGIC_OP_AND_INVERTED = 0x00000004,
Jesse Hall3fbc8562015-11-29 22:10:52 -0800995 VK_LOGIC_OP_NO_OP = 0x00000005,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700996 VK_LOGIC_OP_XOR = 0x00000006,
997 VK_LOGIC_OP_OR = 0x00000007,
998 VK_LOGIC_OP_NOR = 0x00000008,
Jesse Hall3fbc8562015-11-29 22:10:52 -0800999 VK_LOGIC_OP_EQUIVALENT = 0x00000009,
Jesse Halld27f6aa2015-08-15 17:58:48 -07001000 VK_LOGIC_OP_INVERT = 0x0000000a,
1001 VK_LOGIC_OP_OR_REVERSE = 0x0000000b,
1002 VK_LOGIC_OP_COPY_INVERTED = 0x0000000c,
1003 VK_LOGIC_OP_OR_INVERTED = 0x0000000d,
1004 VK_LOGIC_OP_NAND = 0x0000000e,
1005 VK_LOGIC_OP_SET = 0x0000000f,
1006}
1007
Jesse Hall3fbc8562015-11-29 22:10:52 -08001008enum VkSystemAllocationScope {
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08001009 VK_SYSTEM_ALLOCATION_SCOPE_COMMAND = 0x00000000,
Jesse Hall3fbc8562015-11-29 22:10:52 -08001010 VK_SYSTEM_ALLOCATION_SCOPE_OBJECT = 0x00000001,
1011 VK_SYSTEM_ALLOCATION_SCOPE_CACHE = 0x00000002,
1012 VK_SYSTEM_ALLOCATION_SCOPE_DEVICE = 0x00000003,
1013 VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE = 0x00000004,
Jesse Hall03b6fe12015-11-24 12:44:21 -08001014}
1015
Jesse Hall3fbc8562015-11-29 22:10:52 -08001016enum VkInternalAllocationType {
1017 VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE = 0x00000000,
Jesse Halld27f6aa2015-08-15 17:58:48 -07001018}
1019
1020enum VkPhysicalDeviceType {
1021 VK_PHYSICAL_DEVICE_TYPE_OTHER = 0x00000000,
1022 VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU = 0x00000001,
1023 VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU = 0x00000002,
1024 VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU = 0x00000003,
1025 VK_PHYSICAL_DEVICE_TYPE_CPU = 0x00000004,
1026}
1027
Jesse Hall65ab5522015-11-30 00:07:16 -08001028enum VkVertexInputRate {
1029 VK_VERTEX_INPUT_RATE_VERTEX = 0x00000000,
1030 VK_VERTEX_INPUT_RATE_INSTANCE = 0x00000001,
Jesse Halld27f6aa2015-08-15 17:58:48 -07001031}
1032
1033/// Vulkan format definitions
1034enum VkFormat {
Jesse Hallf4ab2b12015-11-30 16:04:55 -08001035 VK_FORMAT_UNDEFINED = 0,
1036 VK_FORMAT_R4G4_UNORM_PACK8 = 1,
1037 VK_FORMAT_R4G4B4A4_UNORM_PACK16 = 2,
1038 VK_FORMAT_B4G4R4A4_UNORM_PACK16 = 3,
1039 VK_FORMAT_R5G6B5_UNORM_PACK16 = 4,
1040 VK_FORMAT_B5G6R5_UNORM_PACK16 = 5,
1041 VK_FORMAT_R5G5B5A1_UNORM_PACK16 = 6,
1042 VK_FORMAT_B5G5R5A1_UNORM_PACK16 = 7,
1043 VK_FORMAT_A1R5G5B5_UNORM_PACK16 = 8,
1044 VK_FORMAT_R8_UNORM = 9,
1045 VK_FORMAT_R8_SNORM = 10,
1046 VK_FORMAT_R8_USCALED = 11,
1047 VK_FORMAT_R8_SSCALED = 12,
1048 VK_FORMAT_R8_UINT = 13,
1049 VK_FORMAT_R8_SINT = 14,
1050 VK_FORMAT_R8_SRGB = 15,
1051 VK_FORMAT_R8G8_UNORM = 16,
1052 VK_FORMAT_R8G8_SNORM = 17,
1053 VK_FORMAT_R8G8_USCALED = 18,
1054 VK_FORMAT_R8G8_SSCALED = 19,
1055 VK_FORMAT_R8G8_UINT = 20,
1056 VK_FORMAT_R8G8_SINT = 21,
1057 VK_FORMAT_R8G8_SRGB = 22,
1058 VK_FORMAT_R8G8B8_UNORM = 23,
1059 VK_FORMAT_R8G8B8_SNORM = 24,
1060 VK_FORMAT_R8G8B8_USCALED = 25,
1061 VK_FORMAT_R8G8B8_SSCALED = 26,
1062 VK_FORMAT_R8G8B8_UINT = 27,
1063 VK_FORMAT_R8G8B8_SINT = 28,
1064 VK_FORMAT_R8G8B8_SRGB = 29,
1065 VK_FORMAT_B8G8R8_UNORM = 30,
1066 VK_FORMAT_B8G8R8_SNORM = 31,
1067 VK_FORMAT_B8G8R8_USCALED = 32,
1068 VK_FORMAT_B8G8R8_SSCALED = 33,
1069 VK_FORMAT_B8G8R8_UINT = 34,
1070 VK_FORMAT_B8G8R8_SINT = 35,
1071 VK_FORMAT_B8G8R8_SRGB = 36,
1072 VK_FORMAT_R8G8B8A8_UNORM = 37,
1073 VK_FORMAT_R8G8B8A8_SNORM = 38,
1074 VK_FORMAT_R8G8B8A8_USCALED = 39,
1075 VK_FORMAT_R8G8B8A8_SSCALED = 40,
1076 VK_FORMAT_R8G8B8A8_UINT = 41,
1077 VK_FORMAT_R8G8B8A8_SINT = 42,
1078 VK_FORMAT_R8G8B8A8_SRGB = 43,
1079 VK_FORMAT_B8G8R8A8_UNORM = 44,
1080 VK_FORMAT_B8G8R8A8_SNORM = 45,
1081 VK_FORMAT_B8G8R8A8_USCALED = 46,
1082 VK_FORMAT_B8G8R8A8_SSCALED = 47,
1083 VK_FORMAT_B8G8R8A8_UINT = 48,
1084 VK_FORMAT_B8G8R8A8_SINT = 49,
1085 VK_FORMAT_B8G8R8A8_SRGB = 50,
1086 VK_FORMAT_A8B8G8R8_UNORM_PACK32 = 51,
1087 VK_FORMAT_A8B8G8R8_SNORM_PACK32 = 52,
1088 VK_FORMAT_A8B8G8R8_USCALED_PACK32 = 53,
1089 VK_FORMAT_A8B8G8R8_SSCALED_PACK32 = 54,
1090 VK_FORMAT_A8B8G8R8_UINT_PACK32 = 55,
1091 VK_FORMAT_A8B8G8R8_SINT_PACK32 = 56,
1092 VK_FORMAT_A8B8G8R8_SRGB_PACK32 = 57,
1093 VK_FORMAT_A2R10G10B10_UNORM_PACK32 = 58,
1094 VK_FORMAT_A2R10G10B10_SNORM_PACK32 = 59,
1095 VK_FORMAT_A2R10G10B10_USCALED_PACK32 = 60,
1096 VK_FORMAT_A2R10G10B10_SSCALED_PACK32 = 61,
1097 VK_FORMAT_A2R10G10B10_UINT_PACK32 = 62,
1098 VK_FORMAT_A2R10G10B10_SINT_PACK32 = 63,
1099 VK_FORMAT_A2B10G10R10_UNORM_PACK32 = 64,
1100 VK_FORMAT_A2B10G10R10_SNORM_PACK32 = 65,
1101 VK_FORMAT_A2B10G10R10_USCALED_PACK32 = 66,
1102 VK_FORMAT_A2B10G10R10_SSCALED_PACK32 = 67,
1103 VK_FORMAT_A2B10G10R10_UINT_PACK32 = 68,
1104 VK_FORMAT_A2B10G10R10_SINT_PACK32 = 69,
1105 VK_FORMAT_R16_UNORM = 70,
1106 VK_FORMAT_R16_SNORM = 71,
1107 VK_FORMAT_R16_USCALED = 72,
1108 VK_FORMAT_R16_SSCALED = 73,
1109 VK_FORMAT_R16_UINT = 74,
1110 VK_FORMAT_R16_SINT = 75,
1111 VK_FORMAT_R16_SFLOAT = 76,
1112 VK_FORMAT_R16G16_UNORM = 77,
1113 VK_FORMAT_R16G16_SNORM = 78,
1114 VK_FORMAT_R16G16_USCALED = 79,
1115 VK_FORMAT_R16G16_SSCALED = 80,
1116 VK_FORMAT_R16G16_UINT = 81,
1117 VK_FORMAT_R16G16_SINT = 82,
1118 VK_FORMAT_R16G16_SFLOAT = 83,
1119 VK_FORMAT_R16G16B16_UNORM = 84,
1120 VK_FORMAT_R16G16B16_SNORM = 85,
1121 VK_FORMAT_R16G16B16_USCALED = 86,
1122 VK_FORMAT_R16G16B16_SSCALED = 87,
1123 VK_FORMAT_R16G16B16_UINT = 88,
1124 VK_FORMAT_R16G16B16_SINT = 89,
1125 VK_FORMAT_R16G16B16_SFLOAT = 90,
1126 VK_FORMAT_R16G16B16A16_UNORM = 91,
1127 VK_FORMAT_R16G16B16A16_SNORM = 92,
1128 VK_FORMAT_R16G16B16A16_USCALED = 93,
1129 VK_FORMAT_R16G16B16A16_SSCALED = 94,
1130 VK_FORMAT_R16G16B16A16_UINT = 95,
1131 VK_FORMAT_R16G16B16A16_SINT = 96,
1132 VK_FORMAT_R16G16B16A16_SFLOAT = 97,
1133 VK_FORMAT_R32_UINT = 98,
1134 VK_FORMAT_R32_SINT = 99,
1135 VK_FORMAT_R32_SFLOAT = 100,
1136 VK_FORMAT_R32G32_UINT = 101,
1137 VK_FORMAT_R32G32_SINT = 102,
1138 VK_FORMAT_R32G32_SFLOAT = 103,
1139 VK_FORMAT_R32G32B32_UINT = 104,
1140 VK_FORMAT_R32G32B32_SINT = 105,
1141 VK_FORMAT_R32G32B32_SFLOAT = 106,
1142 VK_FORMAT_R32G32B32A32_UINT = 107,
1143 VK_FORMAT_R32G32B32A32_SINT = 108,
1144 VK_FORMAT_R32G32B32A32_SFLOAT = 109,
1145 VK_FORMAT_R64_UINT = 110,
1146 VK_FORMAT_R64_SINT = 111,
1147 VK_FORMAT_R64_SFLOAT = 112,
1148 VK_FORMAT_R64G64_UINT = 113,
1149 VK_FORMAT_R64G64_SINT = 114,
1150 VK_FORMAT_R64G64_SFLOAT = 115,
1151 VK_FORMAT_R64G64B64_UINT = 116,
1152 VK_FORMAT_R64G64B64_SINT = 117,
1153 VK_FORMAT_R64G64B64_SFLOAT = 118,
1154 VK_FORMAT_R64G64B64A64_UINT = 119,
1155 VK_FORMAT_R64G64B64A64_SINT = 120,
1156 VK_FORMAT_R64G64B64A64_SFLOAT = 121,
1157 VK_FORMAT_B10G11R11_UFLOAT_PACK32 = 122,
1158 VK_FORMAT_E5B9G9R9_UFLOAT_PACK32 = 123,
1159 VK_FORMAT_D16_UNORM = 124,
1160 VK_FORMAT_X8_D24_UNORM_PACK32 = 125,
1161 VK_FORMAT_D32_SFLOAT = 126,
1162 VK_FORMAT_S8_UINT = 127,
1163 VK_FORMAT_D16_UNORM_S8_UINT = 128,
1164 VK_FORMAT_D24_UNORM_S8_UINT = 129,
1165 VK_FORMAT_D32_SFLOAT_S8_UINT = 130,
1166 VK_FORMAT_BC1_RGB_UNORM_BLOCK = 131,
1167 VK_FORMAT_BC1_RGB_SRGB_BLOCK = 132,
1168 VK_FORMAT_BC1_RGBA_UNORM_BLOCK = 133,
1169 VK_FORMAT_BC1_RGBA_SRGB_BLOCK = 134,
1170 VK_FORMAT_BC2_UNORM_BLOCK = 135,
1171 VK_FORMAT_BC2_SRGB_BLOCK = 136,
1172 VK_FORMAT_BC3_UNORM_BLOCK = 137,
1173 VK_FORMAT_BC3_SRGB_BLOCK = 138,
1174 VK_FORMAT_BC4_UNORM_BLOCK = 139,
1175 VK_FORMAT_BC4_SNORM_BLOCK = 140,
1176 VK_FORMAT_BC5_UNORM_BLOCK = 141,
1177 VK_FORMAT_BC5_SNORM_BLOCK = 142,
1178 VK_FORMAT_BC6H_UFLOAT_BLOCK = 143,
1179 VK_FORMAT_BC6H_SFLOAT_BLOCK = 144,
1180 VK_FORMAT_BC7_UNORM_BLOCK = 145,
1181 VK_FORMAT_BC7_SRGB_BLOCK = 146,
1182 VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK = 147,
1183 VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK = 148,
1184 VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK = 149,
1185 VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK = 150,
1186 VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK = 151,
1187 VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK = 152,
1188 VK_FORMAT_EAC_R11_UNORM_BLOCK = 153,
1189 VK_FORMAT_EAC_R11_SNORM_BLOCK = 154,
1190 VK_FORMAT_EAC_R11G11_UNORM_BLOCK = 155,
1191 VK_FORMAT_EAC_R11G11_SNORM_BLOCK = 156,
1192 VK_FORMAT_ASTC_4x4_UNORM_BLOCK = 157,
1193 VK_FORMAT_ASTC_4x4_SRGB_BLOCK = 158,
1194 VK_FORMAT_ASTC_5x4_UNORM_BLOCK = 159,
1195 VK_FORMAT_ASTC_5x4_SRGB_BLOCK = 160,
1196 VK_FORMAT_ASTC_5x5_UNORM_BLOCK = 161,
1197 VK_FORMAT_ASTC_5x5_SRGB_BLOCK = 162,
1198 VK_FORMAT_ASTC_6x5_UNORM_BLOCK = 163,
1199 VK_FORMAT_ASTC_6x5_SRGB_BLOCK = 164,
1200 VK_FORMAT_ASTC_6x6_UNORM_BLOCK = 165,
1201 VK_FORMAT_ASTC_6x6_SRGB_BLOCK = 166,
1202 VK_FORMAT_ASTC_8x5_UNORM_BLOCK = 167,
1203 VK_FORMAT_ASTC_8x5_SRGB_BLOCK = 168,
1204 VK_FORMAT_ASTC_8x6_UNORM_BLOCK = 169,
1205 VK_FORMAT_ASTC_8x6_SRGB_BLOCK = 170,
1206 VK_FORMAT_ASTC_8x8_UNORM_BLOCK = 171,
1207 VK_FORMAT_ASTC_8x8_SRGB_BLOCK = 172,
1208 VK_FORMAT_ASTC_10x5_UNORM_BLOCK = 173,
1209 VK_FORMAT_ASTC_10x5_SRGB_BLOCK = 174,
1210 VK_FORMAT_ASTC_10x6_UNORM_BLOCK = 175,
1211 VK_FORMAT_ASTC_10x6_SRGB_BLOCK = 176,
1212 VK_FORMAT_ASTC_10x8_UNORM_BLOCK = 177,
1213 VK_FORMAT_ASTC_10x8_SRGB_BLOCK = 178,
1214 VK_FORMAT_ASTC_10x10_UNORM_BLOCK = 179,
1215 VK_FORMAT_ASTC_10x10_SRGB_BLOCK = 180,
1216 VK_FORMAT_ASTC_12x10_UNORM_BLOCK = 181,
1217 VK_FORMAT_ASTC_12x10_SRGB_BLOCK = 182,
1218 VK_FORMAT_ASTC_12x12_UNORM_BLOCK = 183,
1219 VK_FORMAT_ASTC_12x12_SRGB_BLOCK = 184,
Chris Forbes289cb792016-12-30 15:03:55 +13001220
Ian Elliott28bd2c32017-10-13 09:21:12 -06001221 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04001222 VK_FORMAT_G8B8G8R8_422_UNORM = 1000156000,
1223 VK_FORMAT_B8G8R8G8_422_UNORM = 1000156001,
1224 VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM = 1000156002,
1225 VK_FORMAT_G8_B8R8_2PLANE_420_UNORM = 1000156003,
1226 VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM = 1000156004,
1227 VK_FORMAT_G8_B8R8_2PLANE_422_UNORM = 1000156005,
1228 VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM = 1000156006,
1229 VK_FORMAT_R10X6_UNORM_PACK16 = 1000156007,
1230 VK_FORMAT_R10X6G10X6_UNORM_2PACK16 = 1000156008,
1231 VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16 = 1000156009,
1232 VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16 = 1000156010,
1233 VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16 = 1000156011,
1234 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16 = 1000156012,
1235 VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16 = 1000156013,
1236 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16 = 1000156014,
1237 VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16 = 1000156015,
1238 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16 = 1000156016,
1239 VK_FORMAT_R12X4_UNORM_PACK16 = 1000156017,
1240 VK_FORMAT_R12X4G12X4_UNORM_2PACK16 = 1000156018,
1241 VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16 = 1000156019,
1242 VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16 = 1000156020,
1243 VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16 = 1000156021,
1244 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16 = 1000156022,
1245 VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16 = 1000156023,
1246 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16 = 1000156024,
1247 VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16 = 1000156025,
1248 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16 = 1000156026,
1249 VK_FORMAT_G16B16G16R16_422_UNORM = 1000156027,
1250 VK_FORMAT_B16G16R16G16_422_UNORM = 1000156028,
1251 VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM = 1000156029,
1252 VK_FORMAT_G16_B16R16_2PLANE_420_UNORM = 1000156030,
1253 VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM = 1000156031,
1254 VK_FORMAT_G16_B16R16_2PLANE_422_UNORM = 1000156032,
1255 VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM = 1000156033,
1256
Jesse Hallad250842017-03-10 18:35:38 -08001257 //@extension("VK_IMG_format_pvrtc") // 28
Jesse Halleb02c472017-02-24 15:13:45 -08001258 VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG = 1000054000,
1259 VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG = 1000054001,
1260 VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG = 1000054002,
1261 VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG = 1000054003,
1262 VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG = 1000054004,
1263 VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG = 1000054005,
1264 VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG = 1000054006,
1265 VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG = 1000054007,
Jesse Hall076f95d2017-09-20 11:34:47 -07001266
1267 //@extension("VK_KHR_sampler_ycbcr_conversion") // 157
1268 VK_FORMAT_G8B8G8R8_422_UNORM_KHR = 1000156000,
1269 VK_FORMAT_B8G8R8G8_422_UNORM_KHR = 1000156001,
1270 VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM_KHR = 1000156002,
1271 VK_FORMAT_G8_B8R8_2PLANE_420_UNORM_KHR = 1000156003,
1272 VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM_KHR = 1000156004,
1273 VK_FORMAT_G8_B8R8_2PLANE_422_UNORM_KHR = 1000156005,
1274 VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM_KHR = 1000156006,
1275 VK_FORMAT_R10X6_UNORM_PACK16_KHR = 1000156007,
1276 VK_FORMAT_R10X6G10X6_UNORM_2PACK16_KHR = 1000156008,
1277 VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16_KHR = 1000156009,
1278 VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16_KHR = 1000156010,
1279 VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16_KHR = 1000156011,
1280 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16_KHR = 1000156012,
1281 VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16_KHR = 1000156013,
1282 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16_KHR = 1000156014,
1283 VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16_KHR = 1000156015,
1284 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16_KHR = 1000156016,
1285 VK_FORMAT_R12X4_UNORM_PACK16_KHR = 1000156017,
1286 VK_FORMAT_R12X4G12X4_UNORM_2PACK16_KHR = 1000156018,
1287 VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16_KHR = 1000156019,
1288 VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16_KHR = 1000156020,
1289 VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16_KHR = 1000156021,
1290 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16_KHR = 1000156022,
1291 VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16_KHR = 1000156023,
1292 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16_KHR = 1000156024,
1293 VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16_KHR = 1000156025,
1294 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16_KHR = 1000156026,
1295 VK_FORMAT_G16B16G16R16_422_UNORM_KHR = 1000156027,
1296 VK_FORMAT_B16G16R16G16_422_UNORM_KHR = 1000156028,
1297 VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM_KHR = 1000156029,
1298 VK_FORMAT_G16_B16R16_2PLANE_420_UNORM_KHR = 1000156030,
1299 VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM_KHR = 1000156031,
1300 VK_FORMAT_G16_B16R16_2PLANE_422_UNORM_KHR = 1000156032,
1301 VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM_KHR = 1000156033,
Jesse Halld27f6aa2015-08-15 17:58:48 -07001302}
1303
Jesse Halld27f6aa2015-08-15 17:58:48 -07001304/// Structure type enumerant
1305enum VkStructureType {
1306 VK_STRUCTURE_TYPE_APPLICATION_INFO = 0,
Jesse Hallc7467b72015-11-29 21:05:26 -08001307 VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO = 1,
1308 VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO = 2,
1309 VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO = 3,
1310 VK_STRUCTURE_TYPE_SUBMIT_INFO = 4,
Jesse Hallf4ab2b12015-11-30 16:04:55 -08001311 VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO = 5,
Jesse Hallc7467b72015-11-29 21:05:26 -08001312 VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE = 6,
1313 VK_STRUCTURE_TYPE_BIND_SPARSE_INFO = 7,
1314 VK_STRUCTURE_TYPE_FENCE_CREATE_INFO = 8,
1315 VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO = 9,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07001316 VK_STRUCTURE_TYPE_EVENT_CREATE_INFO = 10,
Jesse Hallc7467b72015-11-29 21:05:26 -08001317 VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO = 11,
1318 VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO = 12,
1319 VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO = 13,
1320 VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO = 14,
1321 VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO = 15,
1322 VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO = 16,
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08001323 VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO = 17,
1324 VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO = 18,
1325 VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO = 19,
1326 VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO = 20,
1327 VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO = 21,
1328 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO = 22,
1329 VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO = 23,
1330 VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO = 24,
1331 VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO = 25,
1332 VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO = 26,
1333 VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO = 27,
1334 VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO = 28,
1335 VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO = 29,
1336 VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO = 30,
1337 VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO = 31,
1338 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO = 32,
1339 VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO = 33,
Jesse Hallf4ab2b12015-11-30 16:04:55 -08001340 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO = 34,
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08001341 VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET = 35,
1342 VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET = 36,
1343 VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO = 37,
1344 VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO = 38,
1345 VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO = 39,
Jesse Hallf4ab2b12015-11-30 16:04:55 -08001346 VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO = 40,
Jesse Hall3dd678a2016-01-08 21:52:01 -08001347 VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO = 41,
1348 VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO = 42,
1349 VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO = 43,
1350 VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER = 44,
1351 VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER = 45,
1352 VK_STRUCTURE_TYPE_MEMORY_BARRIER = 46,
1353 VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO = 47,
1354 VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO = 48,
Jesse Hall1356b0d2015-11-23 17:24:58 -08001355
Ian Elliott28bd2c32017-10-13 09:21:12 -06001356 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04001357 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES = 1000094000,
1358 VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO = 1000157000,
1359 VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO = 1000157001,
1360 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES = 1000083000,
1361 VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS = 1000127000,
1362 VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO = 1000127001,
1363 VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO = 1000060000,
1364 VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO = 1000060003,
1365 VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO = 1000060004,
1366 VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO = 1000060005,
1367 VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO = 1000060006,
1368 VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO = 1000060013,
1369 VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO = 1000060014,
1370 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES = 1000070000,
1371 VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO = 1000070001,
1372 VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2 = 1000146000,
1373 VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2 = 1000146001,
1374 VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2 = 1000146002,
1375 VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2 = 1000146003,
1376 VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2 = 1000146004,
1377 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2 = 1000059000,
1378 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2 = 1000059001,
1379 VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2 = 1000059002,
1380 VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2 = 1000059003,
1381 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2 = 1000059004,
1382 VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2 = 1000059005,
1383 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2 = 1000059006,
1384 VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2 = 1000059007,
1385 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2 = 1000059008,
1386 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES = 1000117000,
1387 VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO = 1000117001,
1388 VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO = 1000117002,
1389 VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO = 1000117003,
1390 VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO = 1000053000,
1391 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES = 1000053001,
1392 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES = 1000053002,
1393 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES = 1000120000,
1394 VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO = 1000145000,
1395 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES = 1000145001,
1396 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES = 1000145002,
1397 VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2 = 1000145003,
1398 VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO = 1000156000,
1399 VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO = 1000156001,
1400 VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO = 1000156002,
1401 VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO = 1000156003,
1402 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES = 1000156004,
1403 VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES = 1000156005,
1404 VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO = 1000085000,
1405 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO = 1000071000,
1406 VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES = 1000071001,
1407 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO = 1000071002,
1408 VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES = 1000071003,
1409 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES = 1000071004,
1410 VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO = 1000072000,
1411 VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO = 1000072001,
1412 VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO = 1000072002,
1413 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO = 1000112000,
1414 VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES = 1000112001,
1415 VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO = 1000113000,
1416 VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO = 1000077000,
1417 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO = 1000076000,
1418 VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES = 1000076001,
1419 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES = 1000168000,
1420 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT = 1000168001,
1421 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES = 1000063000,
1422 VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR = 1000060007,
1423
Jesse Hallad250842017-03-10 18:35:38 -08001424 //@extension("VK_KHR_swapchain") // 2
Jesse Hallbd888842015-11-30 21:44:14 -08001425 VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR = 1000001000,
1426 VK_STRUCTURE_TYPE_PRESENT_INFO_KHR = 1000001001,
Daniel Koch09f7bf92017-10-05 00:26:58 -04001427 // added as interaction from VK_KHR_device_group / VK 1.1
1428 VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR = 1000060008,
1429 VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR = 1000060009,
1430 VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR = 1000060010,
1431 VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR = 1000060011,
1432 VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR = 1000060012,
Jesse Hall1356b0d2015-11-23 17:24:58 -08001433
Jesse Hallad250842017-03-10 18:35:38 -08001434 //@extension("VK_KHR_display") // 3
Jesse Hallbd888842015-11-30 21:44:14 -08001435 VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR = 1000002000,
1436 VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR = 1000002001,
Jesse Hall1356b0d2015-11-23 17:24:58 -08001437
Jesse Hallad250842017-03-10 18:35:38 -08001438 //@extension("VK_KHR_display_swapchain") // 4
Jesse Hallbd888842015-11-30 21:44:14 -08001439 VK_STRUCTURE_TYPE_DISPLAY_DISPLAY_PRESENT_INFO_KHR = 1000003000,
Jesse Hallf9fa9a52016-01-08 16:08:51 -08001440
Jesse Hallad250842017-03-10 18:35:38 -08001441 //@extension("VK_KHR_xlib_surface") // 5
Jesse Hallf9fa9a52016-01-08 16:08:51 -08001442 VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR = 1000004000,
1443
Jesse Hallad250842017-03-10 18:35:38 -08001444 //@extension("VK_KHR_xcb_surface") // 6
Jesse Hallf9fa9a52016-01-08 16:08:51 -08001445 VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR = 1000005000,
1446
Jesse Hallad250842017-03-10 18:35:38 -08001447 //@extension("VK_KHR_wayland_surface") // 7
Jesse Hallf9fa9a52016-01-08 16:08:51 -08001448 VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR = 1000006000,
1449
Jesse Hallad250842017-03-10 18:35:38 -08001450 //@extension("VK_KHR_mir_surface") // 8
Jesse Hallf9fa9a52016-01-08 16:08:51 -08001451 VK_STRUCTURE_TYPE_MIR_SURFACE_CREATE_INFO_KHR = 1000007000,
1452
Jesse Hallad250842017-03-10 18:35:38 -08001453 //@extension("VK_KHR_android_surface") // 9
Jesse Hallf9fa9a52016-01-08 16:08:51 -08001454 VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR = 1000008000,
1455
Jesse Hallad250842017-03-10 18:35:38 -08001456 //@extension("VK_KHR_win32_surface") // 10
Jesse Hallf9fa9a52016-01-08 16:08:51 -08001457 VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR = 1000009000,
Jesse Hall543a7ff2016-01-08 16:38:30 -08001458
Jesse Hallad250842017-03-10 18:35:38 -08001459 //@extension("VK_ANDROID_native_buffer") // 11
Chia-I Wub262ddc2016-03-22 07:38:20 +08001460 VK_STRUCTURE_TYPE_NATIVE_BUFFER_ANDROID = 1000010000,
Chris Forbes8e4438b2016-12-07 16:26:49 +13001461 VK_STRUCTURE_TYPE_SWAPCHAIN_IMAGE_CREATE_INFO_ANDROID = 1000010001,
Chris Forbes1d4e5542017-02-15 19:38:50 +13001462 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENTATION_PROPERTIES_ANDROID = 1000010002,
Chia-I Wub262ddc2016-03-22 07:38:20 +08001463
Jesse Hallad250842017-03-10 18:35:38 -08001464 //@extension("VK_EXT_debug_report") // 12
Jesse Hall26763382016-05-20 07:13:52 -07001465 VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT = 1000011000,
1466
Jesse Hallad250842017-03-10 18:35:38 -08001467 //@extension("VK_AMD_rasterization_order") // 19
Jesse Hall26763382016-05-20 07:13:52 -07001468 VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD = 1000018000,
1469
Jesse Hallad250842017-03-10 18:35:38 -08001470 //@extension("VK_EXT_debug_marker") // 23
Jesse Hall26763382016-05-20 07:13:52 -07001471 VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT = 1000022000,
Jesse Hall26763382016-05-20 07:13:52 -07001472 VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT = 1000022001,
Jesse Hall26763382016-05-20 07:13:52 -07001473 VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT = 1000022002,
Jesse Hall56d386a2016-07-26 15:20:40 -07001474
Jesse Hallad250842017-03-10 18:35:38 -08001475 //@extension("VK_NV_dedicated_allocation") // 27
Jesse Hall56d386a2016-07-26 15:20:40 -07001476 VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV = 1000026000,
Jesse Hall56d386a2016-07-26 15:20:40 -07001477 VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV = 1000026001,
Jesse Hall56d386a2016-07-26 15:20:40 -07001478 VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV = 1000026002,
Chris Forbes289cb792016-12-30 15:03:55 +13001479
Jesse Hallf47e8f82018-10-27 23:41:45 -07001480 //@extension("VK_EXT_transform_feedback") // 29
1481 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT = 1000028000,
1482 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT = 1000028001,
1483 VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT = 1000028002,
1484
Jesse Hall7ba0ac72017-07-07 17:13:23 -07001485 //@extension("VK_AMD_texture_gather_bias_lod") // 42
1486 VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD = 1000041000,
1487
Jesse Hallb5297192018-09-22 20:52:13 +02001488 //@extension("VK_NV_corner_sampled_image") // 51
1489 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV = 1000050000,
1490
Daniel Koch09f7bf92017-10-05 00:26:58 -04001491 //@extension("VK_KHR_multiview") // 54
1492 VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO_KHR = 1000053000,
1493 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES_KHR = 1000053001,
1494 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES_KHR = 1000053002,
Jesse Hallad250842017-03-10 18:35:38 -08001495
1496 //@extension("VK_NV_external_memory") // 57
Jesse Halleb02c472017-02-24 15:13:45 -08001497 VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV = 1000056000,
1498 VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV = 1000056001,
Chris Forbes289cb792016-12-30 15:03:55 +13001499
Jesse Hallad250842017-03-10 18:35:38 -08001500 //@extension("VK_NV_external_memory_win32") // 58
Jesse Halleb02c472017-02-24 15:13:45 -08001501 VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV = 1000057000,
1502 VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV = 1000057001,
Chris Forbes289cb792016-12-30 15:03:55 +13001503
Jesse Hallad250842017-03-10 18:35:38 -08001504 //@extension("VK_NV_win32_keyed_mutex") // 59
Chris Forbes289cb792016-12-30 15:03:55 +13001505 VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV = 1000058000,
1506
Jesse Hallad250842017-03-10 18:35:38 -08001507 //@extension("VK_KHR_get_physical_device_properties2") // 60
Jesse Hall889cd9a2017-02-25 22:12:23 -08001508 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2_KHR = 1000059000,
1509 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2_KHR = 1000059001,
1510 VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2_KHR = 1000059002,
1511 VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2_KHR = 1000059003,
1512 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2_KHR = 1000059004,
1513 VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2_KHR = 1000059005,
1514 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2_KHR = 1000059006,
1515 VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2_KHR = 1000059007,
Chris Forbes1194ede2016-12-30 16:29:25 +13001516 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2_KHR = 1000059008,
1517
Daniel Koch09f7bf92017-10-05 00:26:58 -04001518 //@extension("VK_KHR_device_group") // 61
1519 VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO_KHR = 1000060000,
1520 VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO_KHR = 1000060003,
1521 VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO_KHR = 1000060004,
1522 VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO_KHR = 1000060005,
1523 VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO_KHR = 1000060006,
1524 VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR = 1000060007,
1525 // tokens 08-12 are listed with VK_KHR_swapchain
1526 VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO_KHR = 1000060013,
1527 VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO_KHR = 1000060014,
Jesse Hallad250842017-03-10 18:35:38 -08001528
1529 //@extension("VK_EXT_validation_flags") // 62
Jesse Halleb02c472017-02-24 15:13:45 -08001530 VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT = 1000061000,
Chris Forbes289cb792016-12-30 15:03:55 +13001531
Jesse Hallad250842017-03-10 18:35:38 -08001532 //@extension("VK_NN_vi_surface") // 63
Jesse Hall77ad05b2017-03-10 22:02:20 -08001533 VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN = 1000062000,
1534
Jesse Hall4af6c462018-09-10 09:04:25 -07001535 //@extension("VK_EXT_astc_decode_mode") // 68
1536 VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT = 1000067000,
1537 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT = 1000067001,
1538
Daniel Koch09f7bf92017-10-05 00:26:58 -04001539 //@extension("VK_KHR_device_group_creation") // 71
1540 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES_KHR = 1000070000,
1541 VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO_KHR = 1000070001,
Jesse Hallad250842017-03-10 18:35:38 -08001542
Jesse Hall9492f992017-08-28 12:10:06 -07001543 //@extension("VK_KHR_external_memory_capabilities") // 72
1544 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO_KHR = 1000071000,
1545 VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES_KHR = 1000071001,
1546 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO_KHR = 1000071002,
1547 VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES_KHR = 1000071003,
1548 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES_KHR = 1000071004,
Jesse Hallad250842017-03-10 18:35:38 -08001549
Jesse Hall9492f992017-08-28 12:10:06 -07001550 //@extension("VK_KHR_external_memory") // 73
1551 VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO_KHR = 1000072000,
1552 VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_KHR = 1000072001,
1553 VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_KHR = 1000072002,
Jesse Hallad250842017-03-10 18:35:38 -08001554
Jesse Hall9492f992017-08-28 12:10:06 -07001555 //@extension("VK_KHR_external_memory_win32") // 74
1556 VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR = 1000073000,
1557 VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR = 1000073001,
1558 VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR = 1000073002,
Jesse Hallad250842017-03-10 18:35:38 -08001559
Jesse Hall9492f992017-08-28 12:10:06 -07001560 //@extension("VK_KHR_external_memory_fd") // 75
1561 VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR = 1000074000,
1562 VK_STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR = 1000074001,
Jesse Hallad250842017-03-10 18:35:38 -08001563
Jesse Hall9492f992017-08-28 12:10:06 -07001564 //@extension("VK_KHR_win32_keyed_mutex") // 76
1565 VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR = 1000075000,
Jesse Hallad250842017-03-10 18:35:38 -08001566
Jesse Hall9492f992017-08-28 12:10:06 -07001567 //@extension("VK_KHR_external_semaphore_capabilities") // 77
1568 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO_KHR = 1000076000,
1569 VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES_KHR = 1000076001,
Jesse Hallad250842017-03-10 18:35:38 -08001570
Jesse Hall9492f992017-08-28 12:10:06 -07001571 //@extension("VK_KHR_external_semaphore") // 78
1572 VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO_KHR = 1000077000,
Jesse Hallad250842017-03-10 18:35:38 -08001573
Jesse Hall9492f992017-08-28 12:10:06 -07001574 //@extension("VK_KHR_external_semaphore_win32") // 79
1575 VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR = 1000078000,
1576 VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR = 1000078001,
1577 VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR = 1000078002,
Jesse Hallad250842017-03-10 18:35:38 -08001578
Jesse Hall9492f992017-08-28 12:10:06 -07001579 //@extension("VK_KHR_external_semaphore_fd") // 80
1580 VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR = 1000079000,
1581 VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR = 1000079001,
Jesse Hallad250842017-03-10 18:35:38 -08001582
1583 //@extension("VK_KHR_push_descriptor") // 81
1584 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR = 1000080000,
1585
Jesse Hall9492f992017-08-28 12:10:06 -07001586 //@extension("VK_KHR_16bit_storage") // 84
1587 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES_KHR = 1000083000,
1588
Jesse Hallad250842017-03-10 18:35:38 -08001589 //@extension("VK_KHR_incremental_present") // 85
Jesse Hall889cd9a2017-02-25 22:12:23 -08001590 VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR = 1000084000,
Chris Forbes289cb792016-12-30 15:03:55 +13001591
Jesse Halla13a3cf2018-07-09 15:51:52 -07001592 //@extension("VK_EXT_conditional_rendering") // 82
1593 VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT = 1000081000,
1594 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT = 1000081001,
1595 VK_STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT = 1000081002,
1596
Jesse Hallad250842017-03-10 18:35:38 -08001597 //@extension("VK_KHR_descriptor_update_template") // 86
1598 VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO_KHR = 1000085000,
1599
1600 //@extension("VK_NVX_device_generated_commands") // 87
Jesse Halleb02c472017-02-24 15:13:45 -08001601 VK_STRUCTURE_TYPE_OBJECT_TABLE_CREATE_INFO_NVX = 1000086000,
1602 VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NVX = 1000086001,
1603 VK_STRUCTURE_TYPE_CMD_PROCESS_COMMANDS_INFO_NVX = 1000086002,
1604 VK_STRUCTURE_TYPE_CMD_RESERVE_SPACE_FOR_COMMANDS_INFO_NVX = 1000086003,
1605 VK_STRUCTURE_TYPE_DEVICE_GENERATED_COMMANDS_LIMITS_NVX = 1000086004,
1606 VK_STRUCTURE_TYPE_DEVICE_GENERATED_COMMANDS_FEATURES_NVX = 1000086005,
Jesse Hall77ad05b2017-03-10 22:02:20 -08001607
Jesse Hallad250842017-03-10 18:35:38 -08001608 //@extension("VK_NV_clip_space_w_scaling") // 88
1609 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV = 1000087000,
1610
1611 //@extension("VK_EXT_display_surface_counter") // 91
Jesse Hall77726222017-09-19 14:49:27 -05001612 VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT = 1000090000,
Jesse Hall77ad05b2017-03-10 22:02:20 -08001613
Jesse Hallad250842017-03-10 18:35:38 -08001614 //@extension("VK_EXT_display_control") // 92
Jesse Hall77ad05b2017-03-10 22:02:20 -08001615 VK_STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT = 1000091000,
1616 VK_STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT = 1000091001,
1617 VK_STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT = 1000091002,
1618 VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT = 1000091003,
Jesse Hallad250842017-03-10 18:35:38 -08001619
1620 //@extension("VK_GOOGLE_display_timing") // 93
1621 VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE = 1000092000,
1622
1623 //@extension("VK_NVX_multiview_per_view_attributes") // 98
1624 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX = 1000097000,
1625
1626 //@extension("VK_NV_viewport_swizzle") // 99
1627 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV = 1000098000,
1628
1629 //@extension("VK_EXT_discard_rectangles") // 100
1630 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT = 1000099000,
1631 VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT = 1000099001,
1632
Jesse Hall8c954d32018-01-17 22:06:20 -08001633 //@extension("VK_EXT_conservative_rasterization") // 102
1634 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT = 1000101000,
1635 VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT = 1000101001,
1636
Jesse Halla13a3cf2018-07-09 15:51:52 -07001637 //@extension("VK_KHR_create_renderpass2") // 110
1638 VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2_KHR = 1000109000,
1639 VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2_KHR = 1000109001,
1640 VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2_KHR = 1000109002,
1641 VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2_KHR = 1000109003,
1642 VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2_KHR = 1000109004,
1643 VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO_KHR = 1000109005,
1644 VK_STRUCTURE_TYPE_SUBPASS_END_INFO_KHR = 1000109006,
1645
Jesse Hallfdc8ab32017-03-10 21:01:57 -08001646 //@extension("VK_EXT_hdr_metadata") // 106
1647 VK_STRUCTURE_TYPE_HDR_METADATA_EXT = 1000105000,
1648
Jesse Hall05556b12017-05-18 17:40:25 -07001649 //@extension("VK_KHR_shared_presentable_image") // 112
Chris Forbese2d3ee12017-03-16 16:10:15 +13001650 VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR = 1000111000,
1651
Jesse Hall9492f992017-08-28 12:10:06 -07001652 //@extension("VK_KHR_external_fence_capabilities") // 113
1653 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO_KHR = 1000112000,
1654 VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES_KHR = 1000112001,
1655
1656 //@extension("VK_KHR_external_fence") // 114
1657 VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO_KHR = 1000113000,
1658
1659 //@extension("VK_KHR_external_fence_win32") // 115
1660 VK_STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR = 1000114000,
1661 VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR = 1000114001,
1662 VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR = 1000114002,
1663
1664 //@extension("VK_KHR_external_fence_fd") // 117
1665 VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR = 1000115000,
1666 VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR = 1000115001,
1667
Jesse Hall076f95d2017-09-20 11:34:47 -07001668 //@extension("VK_KHR_maintenance2") // 118
1669 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES_KHR = 1000117000,
1670 VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO_KHR = 1000117001,
1671 VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO_KHR = 1000117002,
1672 VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO_KHR = 1000117003,
1673
Jesse Hall05556b12017-05-18 17:40:25 -07001674 //@extension("VK_KHR_get_surface_capabilities2") // 120
Chris Forbese2d3ee12017-03-16 16:10:15 +13001675 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR = 1000119000,
1676 VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR = 1000119001,
1677 VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR = 1000119002,
1678
Jesse Hall9492f992017-08-28 12:10:06 -07001679 //@extension("VK_KHR_variable_pointers") // 121
1680 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES_KHR = 1000120000,
1681
Jesse Hall54f8d132018-04-18 08:16:59 -07001682 //@extension("VK_KHR_display_properties2") // 122
1683 VK_STRUCTURE_TYPE_DISPLAY_PROPERTIES_2_KHR = 1000121000,
1684 VK_STRUCTURE_TYPE_DISPLAY_PLANE_PROPERTIES_2_KHR = 1000121001,
1685 VK_STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR = 1000121002,
1686 VK_STRUCTURE_TYPE_DISPLAY_PLANE_INFO_2_KHR = 1000121003,
1687 VK_STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR = 1000121004,
1688
Jesse Hallad250842017-03-10 18:35:38 -08001689 //@extension("VK_MVK_ios_surface") // 123
1690 VK_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK = 1000122000,
1691
1692 //@extension("VK_MVK_macos_surface") // 124
1693 VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK = 1000123000,
Jesse Hall7ba0ac72017-07-07 17:13:23 -07001694
Jesse Hall9492f992017-08-28 12:10:06 -07001695 //@extension("VK_KHR_dedicated_allocation") // 128
1696 VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS_KHR = 1000127000,
1697 VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO_KHR = 1000127001,
1698
Jesse Hall8c954d32018-01-17 22:06:20 -08001699 //@extension("VK_EXT_debug_utils") // 129
1700 VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT = 1000128000,
1701 VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT = 1000128001,
1702 VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT = 1000128002,
1703 VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT = 1000128003,
1704 VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT = 1000128004,
1705
Jesse Hall36215a92018-01-18 15:04:37 -08001706 //@extension("VK_ANDROID_external_memory_android_hardware_buffer") // 130
1707 VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID = 1000129000,
1708 VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID = 1000129001,
1709 VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID = 1000129002,
1710 VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID = 1000129003,
1711 VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID = 1000129004,
1712 VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID = 1000129005,
1713
Jesse Hall7ba0ac72017-07-07 17:13:23 -07001714 //@extension("VK_EXT_sampler_filter_minmax") // 131
1715 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES_EXT = 1000130000,
1716 VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO_EXT = 1000130001,
1717
Jesse Hall4af6c462018-09-10 09:04:25 -07001718 //@extension("VK_EXT_inline_uniform_block") // 139
1719 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT = 1000138000,
1720 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES_EXT = 1000138001,
1721 VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK_EXT = 1000138002,
1722 VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO_EXT = 1000138003,
1723
Jesse Hall77726222017-09-19 14:49:27 -05001724 //@extension("VK_EXT_sample_locations") // 144
1725 VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT = 1000143000,
1726 VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT = 1000143001,
1727 VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT = 1000143002,
1728 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT = 1000143003,
1729 VK_STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT = 1000143004,
1730
Jesse Hall9492f992017-08-28 12:10:06 -07001731 //@extension("VK_KHR_get_memory_requirements2") // 147
1732 VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2_KHR = 1000146000,
1733 VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2_KHR = 1000146001,
1734 VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2_KHR = 1000146002,
1735 VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2_KHR = 1000146003,
1736 VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2_KHR = 1000146004,
1737
Jesse Hall076f95d2017-09-20 11:34:47 -07001738 //@extension("VK_KHR_image_format_list") // 148
1739 VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO_KHR = 1000147000,
1740
Jesse Hall7ba0ac72017-07-07 17:13:23 -07001741 //@extension("VK_EXT_blend_operation_advanced") // 149
1742 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT = 1000148000,
1743 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT = 1000148001,
1744 VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT = 1000148002,
1745
1746 //@extension("VK_NV_fragment_coverage_to_color") // 150
1747 VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV = 1000149000,
1748
Jesse Hall77726222017-09-19 14:49:27 -05001749 //@extension("VK_NV_framebuffer_mixed_samples") // 153
Jesse Hall7ba0ac72017-07-07 17:13:23 -07001750 VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV = 1000152000,
Jesse Hall77726222017-09-19 14:49:27 -05001751
Jesse Hall076f95d2017-09-20 11:34:47 -07001752 //@extension("VK_KHR_sampler_ycbcr_conversion") // 157
1753 VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO_KHR = 1000156000,
1754 VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO_KHR = 1000156001,
1755 VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO_KHR = 1000156002,
1756 VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO_KHR = 1000156003,
1757 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES_KHR = 1000156004,
1758 VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES_KHR = 1000156005,
1759
Jesse Hallf47e8f82018-10-27 23:41:45 -07001760 //@extension("VK_EXT_image_drm_format_modifier") // 159
1761 VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT = 1000158000,
1762 VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT = 1000158001,
1763 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT = 1000158002,
1764 VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT = 1000158003,
1765 VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT = 1000158004,
1766 VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT = 1000158005,
1767
Jesse Hall076f95d2017-09-20 11:34:47 -07001768 //@extension("VK_KHR_bind_memory2") // 158
1769 VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO_KHR = 1000157000,
1770 VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO_KHR = 1000157001,
1771
Jesse Hall77726222017-09-19 14:49:27 -05001772 //@extension("VK_EXT_validation_cache") // 161
1773 VK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT = 1000160000,
1774 VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT = 1000160001,
Daniel Koch09f7bf92017-10-05 00:26:58 -04001775
Jesse Hall72e6a132018-04-06 13:00:44 -07001776 //@extension("VK_EXT_descriptor_indexing") // 162
1777 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO_EXT = 1000161000,
1778 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES_EXT = 1000161001,
1779 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES_EXT = 1000161002,
1780 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO_EXT = 1000161003,
1781 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT_EXT = 1000161004,
1782
Jesse Hallb5297192018-09-22 20:52:13 +02001783 //@extension("VK_NV_shading_rate_image") // 165
1784 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV = 1000164000,
1785 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV = 1000164001,
1786 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV = 1000164002,
1787 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV = 1000164005,
1788
1789 //@extension("VK_NVX_raytracing") // 166
1790 VK_STRUCTURE_TYPE_RAYTRACING_PIPELINE_CREATE_INFO_NVX = 1000165000,
1791 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NVX = 1000165001,
1792 VK_STRUCTURE_TYPE_GEOMETRY_INSTANCE_NVX = 1000165002,
1793 VK_STRUCTURE_TYPE_GEOMETRY_NVX = 1000165003,
1794 VK_STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NVX = 1000165004,
1795 VK_STRUCTURE_TYPE_GEOMETRY_AABB_NVX = 1000165005,
1796 VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NVX = 1000165006,
1797 VK_STRUCTURE_TYPE_DESCRIPTOR_ACCELERATION_STRUCTURE_INFO_NVX = 1000165007,
1798 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NVX = 1000165008,
1799 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAYTRACING_PROPERTIES_NVX = 1000165009,
1800 VK_STRUCTURE_TYPE_HIT_SHADER_MODULE_CREATE_INFO_NVX = 1000165010,
1801
1802 //@extension("VK_NV_representative_fragment_test") // 167
1803 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV = 1000166000,
1804 VK_STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV = 1000166001,
1805
Daniel Koch09f7bf92017-10-05 00:26:58 -04001806 //@extension("VK_KHR_maintenance3") // 169
1807 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES_KHR = 1000168000,
1808 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT_KHR = 1000168001,
Jesse Hall8c954d32018-01-17 22:06:20 -08001809
1810 //@extension("VK_EXT_global_priority") // 175
1811 VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT = 1000174000,
1812
Jesse Halla13a3cf2018-07-09 15:51:52 -07001813 //@extension("VK_KHR_8bit_storage") // 178
1814 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES_KHR = 1000177000,
1815
Jesse Hall8c954d32018-01-17 22:06:20 -08001816 //@extension("VK_EXT_external_memory_host") // 179
1817 VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT = 1000178000,
1818 VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT = 1000178001,
1819 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT = 1000178002,
Jesse Hall72e6a132018-04-06 13:00:44 -07001820
Jesse Hall2e6853c2018-10-02 14:05:37 -07001821 //@extension("VK_KHR_shader_atomic_int64") // 181
1822 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES_KHR = 1000180000,
1823
Jesse Hallf47e8f82018-10-27 23:41:45 -07001824 //@extension("VK_EXT_calibrated_timestamps") // 185
1825 VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT = 1000184000,
1826
Jesse Hall2e6853c2018-10-02 14:05:37 -07001827 //@extension("VK_KHR_driver_properties") // 197
1828 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES_KHR = 1000196000,
1829
Jesse Hall72e6a132018-04-06 13:00:44 -07001830 //@extension("VK_AMD_shader_core_properties") // 186
1831 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD = 1000185000,
1832
1833 //@extension("VK_EXT_vertex_attribute_divisor") // 191
1834 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT = 1000190000,
1835 VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT = 1000190001,
Jesse Hall4af6c462018-09-10 09:04:25 -07001836 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT = 1000190002,
Jesse Hall115df0c2018-07-30 12:00:59 -07001837
1838 //@extension("VK_NV_device_diagnostic_checkpoints") // 207
1839 VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NV = 1000206000,
1840 VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV = 1000206001,
Jesse Hall4af6c462018-09-10 09:04:25 -07001841
1842 //@extension("VK_KHR_vulkan_memory_model") // 212
1843 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES_KHR = 1000211000,
Jesse Hall497c46f2018-10-08 12:52:48 -07001844
Jesse Hallf47e8f82018-10-27 23:41:45 -07001845 //@extension("VK_EXT_pci_bus_info") // 213
1846 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT = 1000212000,
1847
Jesse Hall497c46f2018-10-08 12:52:48 -07001848 //@extension("VK_FUCHSIA_imagepipe_surface") // 215
1849 VK_STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA = 1000214000,
Jesse Halld27f6aa2015-08-15 17:58:48 -07001850}
1851
Jesse Hall65ab5522015-11-30 00:07:16 -08001852enum VkSubpassContents {
1853 VK_SUBPASS_CONTENTS_INLINE = 0x00000000,
1854 VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS = 0x00000001,
Jesse Halld27f6aa2015-08-15 17:58:48 -07001855}
1856
Jesse Hall543a7ff2016-01-08 16:38:30 -08001857enum VkPipelineCacheHeaderVersion {
1858 VK_PIPELINE_CACHE_HEADER_VERSION_ONE = 1,
1859}
1860
Jesse Hallbd888842015-11-30 21:44:14 -08001861@lastUnused(-11)
Jesse Halld27f6aa2015-08-15 17:58:48 -07001862/// Error and return codes
1863enum VkResult {
1864 // Return codes for successful operation execution (positive values)
Jesse Hallbd888842015-11-30 21:44:14 -08001865 VK_SUCCESS = 0,
1866 VK_NOT_READY = 1,
1867 VK_TIMEOUT = 2,
1868 VK_EVENT_SET = 3,
1869 VK_EVENT_RESET = 4,
1870 VK_INCOMPLETE = 5,
Jesse Halld27f6aa2015-08-15 17:58:48 -07001871
Jesse Hallad250842017-03-10 18:35:38 -08001872 //@extension("VK_KHR_swapchain") // 2
Jesse Hallbd888842015-11-30 21:44:14 -08001873 VK_SUBOPTIMAL_KHR = 1000001003,
Jesse Hall1356b0d2015-11-23 17:24:58 -08001874
Jesse Halld27f6aa2015-08-15 17:58:48 -07001875 // Error codes (negative values)
Jesse Hallbd888842015-11-30 21:44:14 -08001876 VK_ERROR_OUT_OF_HOST_MEMORY = 0xFFFFFFFF, // -1
1877 VK_ERROR_OUT_OF_DEVICE_MEMORY = 0xFFFFFFFE, // -2
1878 VK_ERROR_INITIALIZATION_FAILED = 0xFFFFFFFD, // -3
1879 VK_ERROR_DEVICE_LOST = 0xFFFFFFFC, // -4
1880 VK_ERROR_MEMORY_MAP_FAILED = 0xFFFFFFFB, // -5
1881 VK_ERROR_LAYER_NOT_PRESENT = 0xFFFFFFFA, // -6
1882 VK_ERROR_EXTENSION_NOT_PRESENT = 0xFFFFFFF9, // -7
1883 VK_ERROR_FEATURE_NOT_PRESENT = 0xFFFFFFF8, // -8
1884 VK_ERROR_INCOMPATIBLE_DRIVER = 0xFFFFFFF7, // -9
1885 VK_ERROR_TOO_MANY_OBJECTS = 0xFFFFFFF6, // -10
1886 VK_ERROR_FORMAT_NOT_SUPPORTED = 0xFFFFFFF5, // -11
Jesse Hall56d386a2016-07-26 15:20:40 -07001887 VK_ERROR_FRAGMENTED_POOL = 0xFFFFFFF4, // -12
Jesse Hall1356b0d2015-11-23 17:24:58 -08001888
Ian Elliott28bd2c32017-10-13 09:21:12 -06001889 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04001890 VK_ERROR_OUT_OF_POOL_MEMORY = 0xC4642878, // -1000069000
1891 VK_ERROR_INVALID_EXTERNAL_HANDLE = 0xC4641CBD, // -1000072003
1892
Jesse Hallad250842017-03-10 18:35:38 -08001893 //@extension("VK_KHR_surface") // 1
Jesse Hallbd888842015-11-30 21:44:14 -08001894 VK_ERROR_SURFACE_LOST_KHR = 0xC4653600, // -1000000000
Jesse Hallad250842017-03-10 18:35:38 -08001895 VK_ERROR_NATIVE_WINDOW_IN_USE_KHR = 0xC46535FF, // -1000000001
Jesse Halla6429252015-11-29 18:59:42 -08001896
Jesse Hallad250842017-03-10 18:35:38 -08001897 //@extension("VK_KHR_swapchain") // 2
Jesse Hallbd888842015-11-30 21:44:14 -08001898 VK_ERROR_OUT_OF_DATE_KHR = 0xC4653214, // -1000001004
Jesse Hall1356b0d2015-11-23 17:24:58 -08001899
Jesse Hallad250842017-03-10 18:35:38 -08001900 //@extension("VK_KHR_display_swapchain") // 4
Jesse Hallbd888842015-11-30 21:44:14 -08001901 VK_ERROR_INCOMPATIBLE_DISPLAY_KHR = 0xC4652A47, // -1000003001
Jesse Hall1356b0d2015-11-23 17:24:58 -08001902
Jesse Hallad250842017-03-10 18:35:38 -08001903 //@extension("VK_EXT_debug_report") // 12
Jesse Hall543a7ff2016-01-08 16:38:30 -08001904 VK_ERROR_VALIDATION_FAILED_EXT = 0xC4650B07, // -1000011001
Jesse Hall26763382016-05-20 07:13:52 -07001905
Jesse Hallad250842017-03-10 18:35:38 -08001906 //@extension("VK_NV_glsl_shader") // 13
Jesse Hall26763382016-05-20 07:13:52 -07001907 VK_ERROR_INVALID_SHADER_NV = 0xC4650720, // -1000012000
Jesse Hall77ad05b2017-03-10 22:02:20 -08001908
Jesse Hallad250842017-03-10 18:35:38 -08001909 //@extension("VK_KHR_maintenance1") // 70
Jesse Hall77ad05b2017-03-10 22:02:20 -08001910 VK_ERROR_OUT_OF_POOL_MEMORY_KHR = 0xC4642878, // -1000069000
Jesse Hallad250842017-03-10 18:35:38 -08001911
Jesse Hall9492f992017-08-28 12:10:06 -07001912 //@extension("VK_KHR_external_memory") // 73
1913 VK_ERROR_INVALID_EXTERNAL_HANDLE_KHR = 0xC4641CBD, // -1000072003
Jesse Hall72e6a132018-04-06 13:00:44 -07001914
Jesse Hallf47e8f82018-10-27 23:41:45 -07001915 //@extension("VK_EXT_image_drm_format_modifier") // 159
1916 VK_ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT = 0xC462CCD0, // -1000158000
1917
Jesse Hall72e6a132018-04-06 13:00:44 -07001918 //@extension("VK_EXT_descriptor_indexing") // 162
1919 VK_ERROR_FRAGMENTATION_EXT = 0xc462c118, // -1000161000
Jesse Hallf47e8f82018-10-27 23:41:45 -07001920
1921 //@extension("VK_EXT_global_priority") // 175
1922 VK_ERROR_NOT_PERMITTED_EXT = 0xC4628E4F, // -1000174001
Jesse Hall5ae3abb2015-10-08 14:00:22 -07001923}
1924
1925enum VkDynamicState {
1926 VK_DYNAMIC_STATE_VIEWPORT = 0x00000000,
1927 VK_DYNAMIC_STATE_SCISSOR = 0x00000001,
1928 VK_DYNAMIC_STATE_LINE_WIDTH = 0x00000002,
1929 VK_DYNAMIC_STATE_DEPTH_BIAS = 0x00000003,
1930 VK_DYNAMIC_STATE_BLEND_CONSTANTS = 0x00000004,
1931 VK_DYNAMIC_STATE_DEPTH_BOUNDS = 0x00000005,
1932 VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK = 0x00000006,
1933 VK_DYNAMIC_STATE_STENCIL_WRITE_MASK = 0x00000007,
1934 VK_DYNAMIC_STATE_STENCIL_REFERENCE = 0x00000008,
Jesse Hallad250842017-03-10 18:35:38 -08001935
1936 //@extension("VK_NV_clip_space_w_scaling") // 88
1937 VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV = 1000087000,
1938
1939 //@extension("VK_EXT_discard_rectangles") // 100
1940 VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT = 1000099000,
Jesse Hall77726222017-09-19 14:49:27 -05001941
1942 //@extension("VK_EXT_sample_locations") // 144
1943 VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT = 1000143000,
Jesse Hallb5297192018-09-22 20:52:13 +02001944
1945 //@extension("VK_NV_shading_rate_image") // 165
1946 VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV = 1000164004,
1947 VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV = 1000164006,
1948
1949 //@extension("VK_NV_scissor_exclusive") // 206
1950 VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV = 1000205001,
Jesse Halld27f6aa2015-08-15 17:58:48 -07001951}
1952
Jesse Hall05556b12017-05-18 17:40:25 -07001953enum VkObjectType {
1954 VK_OBJECT_TYPE_UNKNOWN = 0,
1955 VK_OBJECT_TYPE_INSTANCE = 1,
1956 VK_OBJECT_TYPE_PHYSICAL_DEVICE = 2,
1957 VK_OBJECT_TYPE_DEVICE = 3,
1958 VK_OBJECT_TYPE_QUEUE = 4,
1959 VK_OBJECT_TYPE_SEMAPHORE = 5,
1960 VK_OBJECT_TYPE_COMMAND_BUFFER = 6,
1961 VK_OBJECT_TYPE_FENCE = 7,
1962 VK_OBJECT_TYPE_DEVICE_MEMORY = 8,
1963 VK_OBJECT_TYPE_BUFFER = 9,
1964 VK_OBJECT_TYPE_IMAGE = 10,
1965 VK_OBJECT_TYPE_EVENT = 11,
1966 VK_OBJECT_TYPE_QUERY_POOL = 12,
1967 VK_OBJECT_TYPE_BUFFER_VIEW = 13,
1968 VK_OBJECT_TYPE_IMAGE_VIEW = 14,
1969 VK_OBJECT_TYPE_SHADER_MODULE = 15,
1970 VK_OBJECT_TYPE_PIPELINE_CACHE = 16,
1971 VK_OBJECT_TYPE_PIPELINE_LAYOUT = 17,
1972 VK_OBJECT_TYPE_RENDER_PASS = 18,
1973 VK_OBJECT_TYPE_PIPELINE = 19,
1974 VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT = 20,
1975 VK_OBJECT_TYPE_SAMPLER = 21,
1976 VK_OBJECT_TYPE_DESCRIPTOR_POOL = 22,
1977 VK_OBJECT_TYPE_DESCRIPTOR_SET = 23,
1978 VK_OBJECT_TYPE_FRAMEBUFFER = 24,
1979 VK_OBJECT_TYPE_COMMAND_POOL = 25,
1980
Ian Elliott28bd2c32017-10-13 09:21:12 -06001981 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04001982 VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION = 1000156000,
1983 VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE = 1000085000,
1984
Jesse Hall05556b12017-05-18 17:40:25 -07001985 //@extension("VK_KHR_surface") // 1
1986 VK_OBJECT_TYPE_SURFACE_KHR = 1000000000,
1987
1988 //@extension("VK_KHR_swapchain") // 2
1989 VK_OBJECT_TYPE_SWAPCHAIN_KHR = 1000001000,
1990
1991 //@extension("VK_KHR_display") // 3
1992 VK_OBJECT_TYPE_DISPLAY_KHR = 1000002000,
1993 VK_OBJECT_TYPE_DISPLAY_MODE_KHR = 1000002001,
1994
1995 //@extension("VK_KHR_debug_report") // 12
1996 VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT = 1000011000,
1997
1998 //@extension("VK_KHR_descriptor_update_template") // 86
1999 VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR = 1000085000,
2000
2001 //@extension("VK_NVX_device_generated_commands") // 87
2002 VK_OBJECT_TYPE_OBJECT_TABLE_NVX = 1000086000,
2003 VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX = 1000086001,
Jesse Hall77726222017-09-19 14:49:27 -05002004
Jesse Hall8c954d32018-01-17 22:06:20 -08002005 //@extension("VK_EXT_debug_utils") // 129
2006 VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT = 1000128000,
2007
Jesse Hall076f95d2017-09-20 11:34:47 -07002008 //@extension("VK_KHR_sampler_ycbcr_conversion") // 157
2009 VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR = 1000156000,
2010
Jesse Hall77726222017-09-19 14:49:27 -05002011 //@extension("VK_EXT_validation_cache") // 161
2012 VK_OBJECT_TYPE_VALIDATION_CACHE_EXT = 1000160000,
Jesse Hallb5297192018-09-22 20:52:13 +02002013
2014 //@extension("VK_NVX_raytracing") // 166
2015 VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_NVX = 1000165000,
Jesse Hall05556b12017-05-18 17:40:25 -07002016}
2017
Daniel Koch09f7bf92017-10-05 00:26:58 -04002018
Ian Elliott28bd2c32017-10-13 09:21:12 -06002019//@vulkan1_1 enums
Daniel Koch09f7bf92017-10-05 00:26:58 -04002020
2021enum VkPointClippingBehavior {
2022 VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES = 0,
2023 VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY = 1,
2024}
2025
2026enum VkTessellationDomainOrigin {
2027 VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT = 0,
2028 VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT = 1,
2029}
2030
2031enum VkSamplerYcbcrModelConversion {
2032 VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY = 0,
2033 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY = 1,
2034 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709 = 2,
2035 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601 = 3,
2036 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020 = 4,
2037}
2038
2039enum VkSamplerYcbcrRange {
2040 VK_SAMPLER_YCBCR_RANGE_ITU_FULL = 0,
2041 VK_SAMPLER_YCBCR_RANGE_ITU_NARROW = 1,
2042}
2043
2044enum VkChromaLocation {
2045 VK_CHROMA_LOCATION_COSITED_EVEN = 0,
2046 VK_CHROMA_LOCATION_MIDPOINT = 1,
2047}
2048
2049enum VkDescriptorUpdateTemplateType {
2050 VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET = 0,
2051 VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR = 1,
2052}
2053
Jesse Halla13a3cf2018-07-09 15:51:52 -07002054enum VkVendorId {
2055 VK_VENDOR_ID_VIV = 0x10001,
2056 VK_VENDOR_ID_VSI = 0x10002,
2057 VK_VENDOR_ID_KAZAN = 0x10003,
2058}
2059
Jesse Hallad250842017-03-10 18:35:38 -08002060@extension("VK_KHR_surface") // 1
Michael Lentine88594d72015-11-12 12:49:45 -08002061enum VkPresentModeKHR {
2062 VK_PRESENT_MODE_IMMEDIATE_KHR = 0x00000000,
2063 VK_PRESENT_MODE_MAILBOX_KHR = 0x00000001,
2064 VK_PRESENT_MODE_FIFO_KHR = 0x00000002,
Jesse Hall03b6fe12015-11-24 12:44:21 -08002065 VK_PRESENT_MODE_FIFO_RELAXED_KHR = 0x00000003,
Jesse Hall77ad05b2017-03-10 22:02:20 -08002066
Jesse Hall05556b12017-05-18 17:40:25 -07002067 //@extension("VK_KHR_shared_presentable_image") // 112
Jesse Hall77ad05b2017-03-10 22:02:20 -08002068 VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR = 1000111000,
2069 VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR = 1000111001,
Michael Lentine88594d72015-11-12 12:49:45 -08002070}
2071
Jesse Hallad250842017-03-10 18:35:38 -08002072@extension("VK_KHR_surface") // 1
Michael Lentine88594d72015-11-12 12:49:45 -08002073enum VkColorSpaceKHR {
Daniel Koch09f7bf92017-10-05 00:26:58 -04002074 VK_COLOR_SPACE_SRGB_NONLINEAR_KHR = 0x00000000,
Jesse Hall77ad05b2017-03-10 22:02:20 -08002075
Jesse Hallf5ad48b2017-03-20 13:09:19 -07002076 //@extension("VK_EXT_swapchain_colorspace") // 105
2077 VK_COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT = 1000104001,
2078 VK_COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT = 1000104002,
2079 VK_COLOR_SPACE_DCI_P3_LINEAR_EXT = 1000104003,
2080 VK_COLOR_SPACE_DCI_P3_NONLINEAR_EXT = 1000104004,
2081 VK_COLOR_SPACE_BT709_LINEAR_EXT = 1000104005,
2082 VK_COLOR_SPACE_BT709_NONLINEAR_EXT = 1000104006,
2083 VK_COLOR_SPACE_BT2020_LINEAR_EXT = 1000104007,
2084 VK_COLOR_SPACE_HDR10_ST2084_EXT = 1000104008,
2085 VK_COLOR_SPACE_DOLBYVISION_EXT = 1000104009,
2086 VK_COLOR_SPACE_HDR10_HLG_EXT = 1000104010,
Courtney Goeltzenleuchter7f558ed2017-01-23 17:15:24 -07002087 VK_COLOR_SPACE_ADOBERGB_LINEAR_EXT = 1000104011,
2088 VK_COLOR_SPACE_ADOBERGB_NONLINEAR_EXT = 1000104012,
Jesse Hallf5ad48b2017-03-20 13:09:19 -07002089 VK_COLOR_SPACE_PASS_THROUGH_EXT = 1000104013,
Jesse Hall77726222017-09-19 14:49:27 -05002090 VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT = 1000104014,
Michael Lentine88594d72015-11-12 12:49:45 -08002091}
Jesse Halld27f6aa2015-08-15 17:58:48 -07002092
Jesse Hallad250842017-03-10 18:35:38 -08002093@extension("VK_EXT_debug_report") // 12
Jesse Hall715b86a2016-01-16 16:34:29 -08002094enum VkDebugReportObjectTypeEXT {
2095 VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT = 0,
2096 VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT = 1,
2097 VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT = 2,
2098 VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT = 3,
2099 VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT = 4,
2100 VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT = 5,
2101 VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT = 6,
2102 VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT = 7,
2103 VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT = 8,
2104 VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT = 9,
2105 VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT = 10,
2106 VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT = 11,
2107 VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT = 12,
2108 VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT = 13,
2109 VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT = 14,
2110 VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT = 15,
2111 VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT = 16,
2112 VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT = 17,
2113 VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT = 18,
2114 VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT = 19,
2115 VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT = 20,
2116 VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT = 21,
2117 VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT = 22,
2118 VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT = 23,
2119 VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT = 24,
2120 VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT = 25,
2121 VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT = 26,
2122 VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT = 27,
Jesse Hall7ba0ac72017-07-07 17:13:23 -07002123 VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT = 28,
Chris Forbes289cb792016-12-30 15:03:55 +13002124 VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT = 29,
2125 VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT = 30,
2126 VK_DEBUG_REPORT_OBJECT_TYPE_OBJECT_TABLE_NVX_EXT = 31,
2127 VK_DEBUG_REPORT_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX_EXT = 32,
Jesse Hallf5ad48b2017-03-20 13:09:19 -07002128
Jesse Hall77726222017-09-19 14:49:27 -05002129 //extension("VK_EXT_validation_cache") // 161
Jesse Hall8c954d32018-01-17 22:06:20 -08002130 VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT = 33,
Jesse Hall77726222017-09-19 14:49:27 -05002131
Jesse Hallf5ad48b2017-03-20 13:09:19 -07002132 //extension("VK_KHR_descriptor_update_template") // 86
2133 VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR_EXT = 1000085000,
Jesse Hall77726222017-09-19 14:49:27 -05002134
Jesse Hall076f95d2017-09-20 11:34:47 -07002135 //@extension("VK_KHR_sampler_ycbcr_conversion") // 157
2136 VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR_EXT = 1000156000,
Jesse Hallb5297192018-09-22 20:52:13 +02002137
2138 //@extension("VK_NVX_raytracing") // 166
2139 VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NVX_EXT = 1000165000,
Jesse Hall715b86a2016-01-16 16:34:29 -08002140}
2141
Jesse Hallad250842017-03-10 18:35:38 -08002142@extension("VK_AMD_rasterization_order") // 19
Jesse Hall26763382016-05-20 07:13:52 -07002143enum VkRasterizationOrderAMD {
2144 VK_RASTERIZATION_ORDER_STRICT_AMD = 0,
2145 VK_RASTERIZATION_ORDER_RELAXED_AMD = 1,
2146}
2147
Jesse Hall8c954d32018-01-17 22:06:20 -08002148@extension("VK_AMD_shader_info") // 43
2149enum VkShaderInfoTypeAMD {
2150 VK_SHADER_INFO_TYPE_STATISTICS_AMD = 0,
2151 VK_SHADER_INFO_TYPE_BINARY_AMD = 1,
2152 VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD = 2,
2153}
2154
Jesse Hallad250842017-03-10 18:35:38 -08002155@extension("VK_EXT_validation_flags") // 62
Chris Forbes289cb792016-12-30 15:03:55 +13002156enum VkValidationCheckEXT {
2157 VK_VALIDATION_CHECK_ALL_EXT = 0,
Jesse Hall7ba0ac72017-07-07 17:13:23 -07002158 VK_VALIDATION_CHECK_SHADERS_EXT = 1,
Chris Forbes289cb792016-12-30 15:03:55 +13002159}
2160
Jesse Hallad250842017-03-10 18:35:38 -08002161@extension("VK_KHR_descriptor_update_template") // 86
2162enum VkDescriptorUpdateTemplateTypeKHR {
2163 VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET_KHR = 0,
2164 VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR = 1,
2165}
2166
2167@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13002168enum VkIndirectCommandsTokenTypeNVX {
Jesse Hall7ba0ac72017-07-07 17:13:23 -07002169 VK_INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NVX = 0,
2170 VK_INDIRECT_COMMANDS_TOKEN_TYPE_DESCRIPTOR_SET_NVX = 1,
2171 VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NVX = 2,
2172 VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NVX = 3,
2173 VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NVX = 4,
2174 VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NVX = 5,
2175 VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NVX = 6,
2176 VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NVX = 7,
Chris Forbes289cb792016-12-30 15:03:55 +13002177}
2178
Jesse Hallad250842017-03-10 18:35:38 -08002179@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13002180enum VkObjectEntryTypeNVX {
Jesse Hall7ba0ac72017-07-07 17:13:23 -07002181 VK_OBJECT_ENTRY_TYPE_DESCRIPTOR_SET_NVX = 0,
2182 VK_OBJECT_ENTRY_TYPE_PIPELINE_NVX = 1,
2183 VK_OBJECT_ENTRY_TYPE_INDEX_BUFFER_NVX = 2,
2184 VK_OBJECT_ENTRY_TYPE_VERTEX_BUFFER_NVX = 3,
2185 VK_OBJECT_ENTRY_TYPE_PUSH_CONSTANT_NVX = 4,
Chris Forbes289cb792016-12-30 15:03:55 +13002186}
Jesse Hall715b86a2016-01-16 16:34:29 -08002187
Jesse Hallad250842017-03-10 18:35:38 -08002188@extension("VK_EXT_display_control") // 92
Jesse Hall77ad05b2017-03-10 22:02:20 -08002189enum VkDisplayPowerStateEXT {
2190 VK_DISPLAY_POWER_STATE_OFF_EXT = 0,
2191 VK_DISPLAY_POWER_STATE_SUSPEND_EXT = 1,
2192 VK_DISPLAY_POWER_STATE_ON_EXT = 2,
2193}
2194
Jesse Hallad250842017-03-10 18:35:38 -08002195@extension("VK_EXT_display_control") // 92
Jesse Hall77ad05b2017-03-10 22:02:20 -08002196enum VkDeviceEventTypeEXT {
2197 VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT = 0,
2198}
2199
Jesse Hallad250842017-03-10 18:35:38 -08002200@extension("VK_EXT_display_control") // 92
Jesse Hall77ad05b2017-03-10 22:02:20 -08002201enum VkDisplayEventTypeEXT {
2202 VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT = 0,
2203}
2204
Jesse Hallad250842017-03-10 18:35:38 -08002205@extension("VK_NV_viewport_swizzle") // 99
2206enum VkViewportCoordinateSwizzleNV {
2207 VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV = 0,
2208 VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV = 1,
2209 VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV = 2,
2210 VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV = 3,
2211 VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV = 4,
2212 VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV = 5,
2213 VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV = 6,
2214 VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV = 7,
2215}
2216
2217@extension("VK_EXT_discard_rectangles") // 100
2218enum VkDiscardRectangleModeEXT {
2219 VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT = 0,
2220 VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT = 1,
2221}
2222
Jesse Hall8c954d32018-01-17 22:06:20 -08002223@extension("VK_EXT_conservative_rasterization") // 102
2224enum VkConservativeRasterizationModeEXT {
2225 VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT = 0,
2226 VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT = 1,
2227 VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT = 2,
2228}
2229
Jesse Hall076f95d2017-09-20 11:34:47 -07002230@extension("VK_KHR_maintenance2") // 118
2231enum VkPointClippingBehaviorKHR {
2232 VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES_KHR = 0,
2233 VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY_KHR = 1,
2234}
2235
2236@extension("VK_KHR_maintenance2") // 118
2237enum VkTessellationDomainOriginKHR {
2238 VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT_KHR = 0,
2239 VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT_KHR = 1,
2240}
2241
Jesse Hall7ba0ac72017-07-07 17:13:23 -07002242@extension("VK_EXT_sampler_filter_minmax") // 131
2243enum VkSamplerReductionModeEXT {
2244 VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_EXT = 0,
2245 VK_SAMPLER_REDUCTION_MODE_MIN_EXT = 1,
2246 VK_SAMPLER_REDUCTION_MODE_MAX_EXT = 2,
2247}
2248
2249@extension("VK_EXT_blend_operation_advanced") // 149
2250enum VkBlendOverlapEXT {
2251 VK_BLEND_OVERLAP_UNCORRELATED_EXT = 0,
2252 VK_BLEND_OVERLAP_DISJOINT_EXT = 1,
2253 VK_BLEND_OVERLAP_CONJOINT_EXT = 2,
2254}
2255
2256@extension("VK_NV_framebuffer_mixed_samples") // 153
2257enum VkCoverageModulationModeNV {
2258 VK_COVERAGE_MODULATION_MODE_NONE_NV = 0,
2259 VK_COVERAGE_MODULATION_MODE_RGB_NV = 1,
2260 VK_COVERAGE_MODULATION_MODE_ALPHA_NV = 2,
2261 VK_COVERAGE_MODULATION_MODE_RGBA_NV = 3,
2262}
2263
Jesse Hall076f95d2017-09-20 11:34:47 -07002264@extension("VK_KHR_sampler_ycbcr_conversion") // 157
2265enum VkSamplerYcbcrModelConversionKHR {
2266 VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY_KHR = 0,
2267 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY_KHR = 1,
2268 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709_KHR = 2,
2269 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601_KHR = 3,
2270 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020_KHR = 4,
2271}
2272
2273@extension("VK_KHR_sampler_ycbcr_conversion") // 157
2274enum VkSamplerYcbcrRangeKHR {
2275 VK_SAMPLER_YCBCR_RANGE_ITU_FULL_KHR = 0,
2276 VK_SAMPLER_YCBCR_RANGE_ITU_NARROW_KHR = 1,
2277}
2278
2279@extension("VK_KHR_sampler_ycbcr_conversion") // 157
2280enum VkChromaLocationKHR {
2281 VK_CHROMA_LOCATION_COSITED_EVEN_KHR = 0,
2282 VK_CHROMA_LOCATION_MIDPOINT_KHR = 1,
2283}
2284
Jesse Hall77726222017-09-19 14:49:27 -05002285@extension("VK_EXT_validation_cache") // 161
2286enum VkValidationCacheHeaderVersionEXT {
2287 VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT = 1,
2288}
2289
Jesse Hallb5297192018-09-22 20:52:13 +02002290@extension("VK_NV_shading_rate_image") // 165
2291enum VkShadingRatePaletteEntryNV {
2292 VK_SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV = 0,
2293 VK_SHADING_RATE_PALETTE_ENTRY_16_INVOCATIONS_PER_PIXEL_NV = 1,
2294 VK_SHADING_RATE_PALETTE_ENTRY_8_INVOCATIONS_PER_PIXEL_NV = 2,
2295 VK_SHADING_RATE_PALETTE_ENTRY_4_INVOCATIONS_PER_PIXEL_NV = 3,
2296 VK_SHADING_RATE_PALETTE_ENTRY_2_INVOCATIONS_PER_PIXEL_NV = 4,
2297 VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_PIXEL_NV = 5,
2298 VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X1_PIXELS_NV = 6,
2299 VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_1X2_PIXELS_NV = 7,
2300 VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X2_PIXELS_NV = 8,
2301 VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X2_PIXELS_NV = 9,
2302 VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X4_PIXELS_NV = 10,
2303 VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV = 11,
2304}
2305
2306@extension("VK_NV_shading_rate_image") // 165
2307enum VkCoarseSampleOrderTypeNV {
2308 VK_COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV = 0,
2309 VK_COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV = 1,
2310 VK_COARSE_SAMPLE_ORDER_TYPE_PIXEL_MAJOR_NV = 2,
2311 VK_COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV = 3,
2312}
2313
2314@extension("VK_NVX_raytracing") // 166
2315enum VkGeometryTypeNVX {
2316 VK_GEOMETRY_TYPE_TRIANGLES_NVX = 0,
2317 VK_GEOMETRY_TYPE_AABBS_NVX = 1,
2318}
2319
2320@extension("VK_NVX_raytracing") // 166
2321enum VkAccelerationStructureTypeNVX {
2322 VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_NVX = 0,
2323 VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NVX = 1,
2324}
2325
2326@extension("VK_NVX_raytracing") // 166
2327enum VkCopyAccelerationStructureModeNVX {
2328 VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_NVX = 0,
2329 VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_NVX = 1,
2330}
2331
Jesse Hall8c954d32018-01-17 22:06:20 -08002332@extension("VK_EXT_global_priority") // 175
2333enum VkQueueGlobalPriorityEXT {
2334 VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT = 128,
2335 VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT = 256,
2336 VK_QUEUE_GLOBAL_PRIORITY_HIGH_EXT = 512,
2337 VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT = 1024,
2338}
2339
Jesse Hallf47e8f82018-10-27 23:41:45 -07002340@extension("VK_EXT_calibrated_timestamps") // 185
2341enum VkTimeDomainEXT {
2342 VK_TIME_DOMAIN_DEVICE_EXT = 0,
2343 VK_TIME_DOMAIN_CLOCK_MONOTONIC_EXT = 1,
2344 VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT = 2,
2345 VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT = 3,
2346}
2347
Jesse Hall2e6853c2018-10-02 14:05:37 -07002348@extension("VK_KHR_driver_properties") // 197
2349enum VkDriverIdKHR {
2350 VK_DRIVER_ID_AMD_PROPRIETARY_KHR = 1,
2351 VK_DRIVER_ID_AMD_OPEN_SOURCE_KHR = 2,
2352 VK_DRIVER_ID_MESA_RADV_KHR = 3,
2353 VK_DRIVER_ID_NVIDIA_PROPRIETARY_KHR = 4,
2354 VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS_KHR = 5,
2355 VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA_KHR = 6,
2356 VK_DRIVER_ID_IMAGINATION_PROPRIETARY_KHR = 7,
2357 VK_DRIVER_ID_QUALCOMM_PROPRIETARY_KHR = 8,
2358 VK_DRIVER_ID_ARM_PROPRIETARY_KHR = 9,
2359}
2360
Jesse Halld27f6aa2015-08-15 17:58:48 -07002361/////////////////
2362// Bitfields //
2363/////////////////
2364
Jesse Halld27f6aa2015-08-15 17:58:48 -07002365/// Queue capabilities
Jesse Halld8bade02015-11-24 10:24:18 -08002366type VkFlags VkQueueFlags
2367bitfield VkQueueFlagBits {
Jesse Halld27f6aa2015-08-15 17:58:48 -07002368 VK_QUEUE_GRAPHICS_BIT = 0x00000001, /// Queue supports graphics operations
2369 VK_QUEUE_COMPUTE_BIT = 0x00000002, /// Queue supports compute operations
Jesse Hall65ab5522015-11-30 00:07:16 -08002370 VK_QUEUE_TRANSFER_BIT = 0x00000004, /// Queue supports transfer operations
Jesse Hallb00daad2015-11-29 19:46:20 -08002371 VK_QUEUE_SPARSE_BINDING_BIT = 0x00000008, /// Queue supports sparse resource memory management operations
Daniel Koch09f7bf92017-10-05 00:26:58 -04002372
Ian Elliott28bd2c32017-10-13 09:21:12 -06002373 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04002374 VK_QUEUE_PROTECTED_BIT = 0x00000010,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002375}
2376
2377/// Memory properties passed into vkAllocMemory().
Jesse Halld8bade02015-11-24 10:24:18 -08002378type VkFlags VkMemoryPropertyFlags
2379bitfield VkMemoryPropertyFlagBits {
Jesse Halld1af8122015-11-29 23:50:38 -08002380 VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT = 0x00000001,
2381 VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT = 0x00000002,
2382 VK_MEMORY_PROPERTY_HOST_COHERENT_BIT = 0x00000004,
2383 VK_MEMORY_PROPERTY_HOST_CACHED_BIT = 0x00000008,
2384 VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT = 0x00000010,
Daniel Koch09f7bf92017-10-05 00:26:58 -04002385
Ian Elliott28bd2c32017-10-13 09:21:12 -06002386 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04002387 VK_MEMORY_PROPERTY_PROTECTED_BIT = 0x00000020,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002388}
2389
2390/// Memory heap flags
Jesse Halld8bade02015-11-24 10:24:18 -08002391type VkFlags VkMemoryHeapFlags
2392bitfield VkMemoryHeapFlagBits {
Jesse Halld1af8122015-11-29 23:50:38 -08002393 VK_MEMORY_HEAP_DEVICE_LOCAL_BIT = 0x00000001,
Jesse Hallad250842017-03-10 18:35:38 -08002394
Ian Elliott28bd2c32017-10-13 09:21:12 -06002395 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04002396 VK_MEMORY_HEAP_MULTI_INSTANCE_BIT = 0x00000002,
2397
2398 //@extension("VK_KHR_device_group_creation") // 71
2399 VK_MEMORY_HEAP_MULTI_INSTANCE_BIT_KHR = 0x00000002,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002400}
2401
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08002402/// Access flags
2403type VkFlags VkAccessFlags
2404bitfield VkAccessFlagBits {
2405 VK_ACCESS_INDIRECT_COMMAND_READ_BIT = 0x00000001,
2406 VK_ACCESS_INDEX_READ_BIT = 0x00000002,
2407 VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT = 0x00000004,
2408 VK_ACCESS_UNIFORM_READ_BIT = 0x00000008,
2409 VK_ACCESS_INPUT_ATTACHMENT_READ_BIT = 0x00000010,
2410 VK_ACCESS_SHADER_READ_BIT = 0x00000020,
2411 VK_ACCESS_SHADER_WRITE_BIT = 0x00000040,
2412 VK_ACCESS_COLOR_ATTACHMENT_READ_BIT = 0x00000080,
2413 VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT = 0x00000100,
2414 VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT = 0x00000200,
2415 VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT = 0x00000400,
2416 VK_ACCESS_TRANSFER_READ_BIT = 0x00000800,
2417 VK_ACCESS_TRANSFER_WRITE_BIT = 0x00001000,
2418 VK_ACCESS_HOST_READ_BIT = 0x00002000,
2419 VK_ACCESS_HOST_WRITE_BIT = 0x00004000,
2420 VK_ACCESS_MEMORY_READ_BIT = 0x00008000,
2421 VK_ACCESS_MEMORY_WRITE_BIT = 0x00010000,
Chris Forbes289cb792016-12-30 15:03:55 +13002422
Jesse Hallad250842017-03-10 18:35:38 -08002423 //@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13002424 VK_ACCESS_COMMAND_PROCESS_READ_BIT_NVX = 0x00020000,
Chris Forbes289cb792016-12-30 15:03:55 +13002425 VK_ACCESS_COMMAND_PROCESS_WRITE_BIT_NVX = 0x00040000,
Jesse Hall7ba0ac72017-07-07 17:13:23 -07002426
2427 //@extension("VK_EXT_blend_operation_advanced") // 149
2428 VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT = 0x00080000,
Jesse Halla13a3cf2018-07-09 15:51:52 -07002429
2430 //@extension("VK_EXT_conditional_rendering") // 82
2431 VK_ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT = 0x00100000,
Jesse Hallb5297192018-09-22 20:52:13 +02002432
2433 //@extension("VK_NV_shading_rate_image") // 165
2434 VK_ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV = 0x00800000,
2435
2436 //@extension("VK_NVX_raytracing") // 166
2437 VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_NVX = 0x00200000,
2438 VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_NVX = 0x00400000,
Jesse Hallf47e8f82018-10-27 23:41:45 -07002439
2440 //@extension("VK_EXT_transform_feedback") // 29
2441 VK_ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT = 0x02000000,
2442 VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT = 0x04000000,
2443 VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT = 0x08000000,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002444}
2445
2446/// Buffer usage flags
Jesse Halld8bade02015-11-24 10:24:18 -08002447type VkFlags VkBufferUsageFlags
2448bitfield VkBufferUsageFlagBits {
Jesse Hall3fbc8562015-11-29 22:10:52 -08002449 VK_BUFFER_USAGE_TRANSFER_SRC_BIT = 0x00000001, /// Can be used as a source of transfer operations
2450 VK_BUFFER_USAGE_TRANSFER_DST_BIT = 0x00000002, /// Can be used as a destination of transfer operations
Jesse Halld27f6aa2015-08-15 17:58:48 -07002451 VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT = 0x00000004, /// Can be used as TBO
2452 VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT = 0x00000008, /// Can be used as IBO
2453 VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT = 0x00000010, /// Can be used as UBO
2454 VK_BUFFER_USAGE_STORAGE_BUFFER_BIT = 0x00000020, /// Can be used as SSBO
2455 VK_BUFFER_USAGE_INDEX_BUFFER_BIT = 0x00000040, /// Can be used as source of fixed function index fetch (index buffer)
2456 VK_BUFFER_USAGE_VERTEX_BUFFER_BIT = 0x00000080, /// Can be used as source of fixed function vertex fetch (VBO)
2457 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 -07002458
2459 //@extension("VK_EXT_conditional_rendering") // 82
2460 VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT = 0x00000200,
Jesse Hallb5297192018-09-22 20:52:13 +02002461
2462 //@extension("VK_NVX_raytracing") // 166
2463 VK_BUFFER_USAGE_RAYTRACING_BIT_NVX = 0x00000400,
Jesse Hallf47e8f82018-10-27 23:41:45 -07002464
2465 //@extension("VK_EXT_transform_feedback") // 29
2466 VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT = 0x00000800,
2467 VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT = 0x00001000,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002468}
2469
2470/// Buffer creation flags
Jesse Halld8bade02015-11-24 10:24:18 -08002471type VkFlags VkBufferCreateFlags
2472bitfield VkBufferCreateFlagBits {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07002473 VK_BUFFER_CREATE_SPARSE_BINDING_BIT = 0x00000001, /// Buffer should support sparse backing
Jesse Halld27f6aa2015-08-15 17:58:48 -07002474 VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT = 0x00000002, /// Buffer should support sparse backing with partial residency
2475 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 -04002476
Ian Elliott28bd2c32017-10-13 09:21:12 -06002477 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04002478 VK_BUFFER_CREATE_PROTECTED_BIT = 0x00000008,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002479}
2480
2481/// Shader stage flags
Jesse Halld8bade02015-11-24 10:24:18 -08002482type VkFlags VkShaderStageFlags
2483bitfield VkShaderStageFlagBits {
Jesse Halld27f6aa2015-08-15 17:58:48 -07002484 VK_SHADER_STAGE_VERTEX_BIT = 0x00000001,
Jesse Hallae38f732015-11-19 21:32:50 -08002485 VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT = 0x00000002,
2486 VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT = 0x00000004,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002487 VK_SHADER_STAGE_GEOMETRY_BIT = 0x00000008,
2488 VK_SHADER_STAGE_FRAGMENT_BIT = 0x00000010,
2489 VK_SHADER_STAGE_COMPUTE_BIT = 0x00000020,
Jesse Hallc7467b72015-11-29 21:05:26 -08002490 VK_SHADER_STAGE_ALL_GRAPHICS = 0x0000001F,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002491
2492 VK_SHADER_STAGE_ALL = 0x7FFFFFFF,
Jesse Hallb5297192018-09-22 20:52:13 +02002493
2494 //@extension("VK_NVX_raytracing") // 166
2495 VK_SHADER_STAGE_RAYGEN_BIT_NVX = 0x00000100,
2496 VK_SHADER_STAGE_ANY_HIT_BIT_NVX = 0x00000200,
2497 VK_SHADER_STAGE_CLOSEST_HIT_BIT_NVX = 0x00000400,
2498 VK_SHADER_STAGE_MISS_BIT_NVX = 0x00000800,
2499 VK_SHADER_STAGE_INTERSECTION_BIT_NVX = 0x00001000,
2500 VK_SHADER_STAGE_CALLABLE_BIT_NVX = 0x00002000,
2501
2502 //@extension("VK_NV_mesh_shader") // 203
2503 VK_SHADER_STAGE_TASK_BIT_NV = 0x00000040,
2504 VK_SHADER_STAGE_MESH_BIT_NV = 0x00000080,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002505}
2506
Jesse Hallfbf97b02015-11-20 14:17:03 -08002507/// Descriptor pool create flags
Jesse Halld8bade02015-11-24 10:24:18 -08002508type VkFlags VkDescriptorPoolCreateFlags
2509bitfield VkDescriptorPoolCreateFlagBits {
Jesse Hallfbf97b02015-11-20 14:17:03 -08002510 VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT = 0x00000001,
Jesse Hall72e6a132018-04-06 13:00:44 -07002511
2512 //@extension("VK_EXT_descriptor_indexing") // 162
2513 VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT_EXT = 0x00000002,
Jesse Hallfbf97b02015-11-20 14:17:03 -08002514}
2515
2516/// Descriptor pool reset flags
Jesse Halld8bade02015-11-24 10:24:18 -08002517type VkFlags VkDescriptorPoolResetFlags
Jesse Halla6429252015-11-29 18:59:42 -08002518//bitfield VkDescriptorPoolResetFlagBits {
2519//}
Jesse Hallfbf97b02015-11-20 14:17:03 -08002520
Jesse Halld27f6aa2015-08-15 17:58:48 -07002521/// Image usage flags
Jesse Halld8bade02015-11-24 10:24:18 -08002522type VkFlags VkImageUsageFlags
2523bitfield VkImageUsageFlagBits {
Jesse Hall3fbc8562015-11-29 22:10:52 -08002524 VK_IMAGE_USAGE_TRANSFER_SRC_BIT = 0x00000001, /// Can be used as a source of transfer operations
2525 VK_IMAGE_USAGE_TRANSFER_DST_BIT = 0x00000002, /// Can be used as a destination of transfer operations
Jesse Halld27f6aa2015-08-15 17:58:48 -07002526 VK_IMAGE_USAGE_SAMPLED_BIT = 0x00000004, /// Can be sampled from (SAMPLED_IMAGE and COMBINED_IMAGE_SAMPLER descriptor types)
2527 VK_IMAGE_USAGE_STORAGE_BIT = 0x00000008, /// Can be used as storage image (STORAGE_IMAGE descriptor type)
2528 VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT = 0x00000010, /// Can be used as framebuffer color attachment
Jesse Hall5ae3abb2015-10-08 14:00:22 -07002529 VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000020, /// Can be used as framebuffer depth/stencil attachment
Jesse Halld27f6aa2015-08-15 17:58:48 -07002530 VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT = 0x00000040, /// Image data not needed outside of rendering
2531 VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT = 0x00000080, /// Can be used as framebuffer input attachment
Jesse Hallb5297192018-09-22 20:52:13 +02002532
2533 //@extension("VK_NV_shading_rate_image") // 165
2534 VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV = 0x00000100,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002535}
2536
2537/// Image creation flags
Jesse Halld8bade02015-11-24 10:24:18 -08002538type VkFlags VkImageCreateFlags
2539bitfield VkImageCreateFlagBits {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07002540 VK_IMAGE_CREATE_SPARSE_BINDING_BIT = 0x00000001, /// Image should support sparse backing
Jesse Halld27f6aa2015-08-15 17:58:48 -07002541 VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT = 0x00000002, /// Image should support sparse backing with partial residency
2542 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 -07002543 VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT = 0x00000008, /// Allows image views to have different format than the base image
2544 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 -08002545
Ian Elliott28bd2c32017-10-13 09:21:12 -06002546 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04002547 VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT = 0x00000020,
Jesse Hall8c954d32018-01-17 22:06:20 -08002548 VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT = 0x00000040,
Daniel Koch09f7bf92017-10-05 00:26:58 -04002549 VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT = 0x00000080,
2550 VK_IMAGE_CREATE_EXTENDED_USAGE_BIT = 0x00000100,
Daniel Koch09f7bf92017-10-05 00:26:58 -04002551 VK_IMAGE_CREATE_DISJOINT_BIT = 0x00000200,
Ian Elliott28bd2c32017-10-13 09:21:12 -06002552 VK_IMAGE_CREATE_ALIAS_BIT = 0x00000400,
2553 VK_IMAGE_CREATE_PROTECTED_BIT = 0x00000800,
Daniel Koch09f7bf92017-10-05 00:26:58 -04002554
Jesse Hallad250842017-03-10 18:35:38 -08002555 //@extension("VK_KHR_maintenance1") // 70
Jesse Hall77ad05b2017-03-10 22:02:20 -08002556 VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT_KHR = 0x00000020,
Jesse Hallad250842017-03-10 18:35:38 -08002557
Daniel Koch09f7bf92017-10-05 00:26:58 -04002558 //@extension("VK_KHR_device_group") // 61
2559 VK_IMAGE_CREATE_BIND_SFR_BIT_KHR = 0x00000040,
Jesse Hall77726222017-09-19 14:49:27 -05002560
Jesse Hall076f95d2017-09-20 11:34:47 -07002561 //@extension("VK_KHR_maintenance2") // 118
2562 VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT_KHR = 0x00000080,
2563 VK_IMAGE_CREATE_EXTENDED_USAGE_BIT_KHR = 0x00000100,
2564
2565 //@extension("VK_KHR_sampler_ycbcr_conversion") // 157
2566 VK_IMAGE_CREATE_DISJOINT_BIT_KHR = 0x00000200,
2567
2568 //@extension("VK_KHR_bind_memory2") // 158
2569 VK_IMAGE_CREATE_ALIAS_BIT_KHR = 0x00000400,
Ian Elliott28bd2c32017-10-13 09:21:12 -06002570
2571 //@extension("VK_EXT_sample_locations") // 144
2572 VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT = 0x00001000,
Jesse Hallb5297192018-09-22 20:52:13 +02002573
2574 //@extension("VK_NV_corner_sampled_image") // 51
2575 VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV = 0x00002000,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002576}
2577
Jesse Hallb00daad2015-11-29 19:46:20 -08002578/// Image view creation flags
Jesse Halld8bade02015-11-24 10:24:18 -08002579type VkFlags VkImageViewCreateFlags
Jesse Hallb00daad2015-11-29 19:46:20 -08002580//bitfield VkImageViewCreateFlagBits {
2581//}
Jesse Halld27f6aa2015-08-15 17:58:48 -07002582
2583/// Pipeline creation flags
Jesse Halld8bade02015-11-24 10:24:18 -08002584type VkFlags VkPipelineCreateFlags
2585bitfield VkPipelineCreateFlagBits {
Jesse Halld27f6aa2015-08-15 17:58:48 -07002586 VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT = 0x00000001,
2587 VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT = 0x00000002,
2588 VK_PIPELINE_CREATE_DERIVATIVE_BIT = 0x00000004,
Jesse Hallad250842017-03-10 18:35:38 -08002589
Ian Elliott28bd2c32017-10-13 09:21:12 -06002590 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04002591 VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT = 0x00000008,
2592 VK_PIPELINE_CREATE_DISPATCH_BASE = 0x00000010,
2593
2594 //@extension("VK_KHR_device_group") // 61
2595 VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR = 0x00000008,
2596 VK_PIPELINE_CREATE_DISPATCH_BASE_KHR = 0x00000010,
Jesse Hallb5297192018-09-22 20:52:13 +02002597
2598 //@extension("VK_NVX_raytracing") // 166
2599 VK_PIPELINE_CREATE_DEFER_COMPILE_BIT_NVX = 0x00000020,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002600}
2601
Jesse Hall65ab5522015-11-30 00:07:16 -08002602/// Color component flags
2603type VkFlags VkColorComponentFlags
2604bitfield VkColorComponentFlagBits {
2605 VK_COLOR_COMPONENT_R_BIT = 0x00000001,
2606 VK_COLOR_COMPONENT_G_BIT = 0x00000002,
2607 VK_COLOR_COMPONENT_B_BIT = 0x00000004,
2608 VK_COLOR_COMPONENT_A_BIT = 0x00000008,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002609}
2610
2611/// Fence creation flags
Jesse Halld8bade02015-11-24 10:24:18 -08002612type VkFlags VkFenceCreateFlags
2613bitfield VkFenceCreateFlagBits {
Jesse Halld27f6aa2015-08-15 17:58:48 -07002614 VK_FENCE_CREATE_SIGNALED_BIT = 0x00000001,
2615}
2616
2617/// Semaphore creation flags
Jesse Halld8bade02015-11-24 10:24:18 -08002618type VkFlags VkSemaphoreCreateFlags
Jesse Halla6429252015-11-29 18:59:42 -08002619//bitfield VkSemaphoreCreateFlagBits {
2620//}
Jesse Halld27f6aa2015-08-15 17:58:48 -07002621
2622/// Format capability flags
Jesse Halld8bade02015-11-24 10:24:18 -08002623type VkFlags VkFormatFeatureFlags
2624bitfield VkFormatFeatureFlagBits {
Jesse Halld27f6aa2015-08-15 17:58:48 -07002625 VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT = 0x00000001, /// Format can be used for sampled images (SAMPLED_IMAGE and COMBINED_IMAGE_SAMPLER descriptor types)
2626 VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT = 0x00000002, /// Format can be used for storage images (STORAGE_IMAGE descriptor type)
2627 VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT = 0x00000004, /// Format supports atomic operations in case it's used for storage images
2628 VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT = 0x00000008, /// Format can be used for uniform texel buffers (TBOs)
2629 VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT = 0x00000010, /// Format can be used for storage texel buffers (IBOs)
2630 VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT = 0x00000020, /// Format supports atomic operations in case it's used for storage texel buffers
2631 VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT = 0x00000040, /// Format can be used for vertex buffers (VBOs)
2632 VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT = 0x00000080, /// Format can be used for color attachment images
2633 VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT = 0x00000100, /// Format supports blending in case it's used for color attachment images
2634 VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000200, /// Format can be used for depth/stencil attachment images
Jesse Hall3fbc8562015-11-29 22:10:52 -08002635 VK_FORMAT_FEATURE_BLIT_SRC_BIT = 0x00000400, /// Format can be used as the source image of blits with vkCommandBlitImage
2636 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 -08002637 VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT = 0x00001000,
Jesse Hall26763382016-05-20 07:13:52 -07002638
Ian Elliott28bd2c32017-10-13 09:21:12 -06002639 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04002640 VK_FORMAT_FEATURE_TRANSFER_SRC_BIT = 0x00004000,
2641 VK_FORMAT_FEATURE_TRANSFER_DST_BIT = 0x00008000,
2642 VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT = 0x00020000,
2643 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT = 0x00040000,
2644 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT = 0x00080000,
2645 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT = 0x00100000,
2646 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT = 0x00200000,
2647 VK_FORMAT_FEATURE_DISJOINT_BIT = 0x00400000,
2648 VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT = 0x00800000,
2649
Jesse Hallad250842017-03-10 18:35:38 -08002650 //@extension("VK_IMG_filter_cubic") // 16
Jesse Hall26763382016-05-20 07:13:52 -07002651 VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG = 0x00002000,
Jesse Hall77ad05b2017-03-10 22:02:20 -08002652
Jesse Hallad250842017-03-10 18:35:38 -08002653 //@extension("VK_KHR_maintenance1") // 70
Jesse Hall77ad05b2017-03-10 22:02:20 -08002654 VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR = 0x00004000,
2655 VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR = 0x00008000,
Jesse Hall7ba0ac72017-07-07 17:13:23 -07002656
2657 //@extension("VK_EXT_sampler_filter_minmax") // 131
2658 VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT_EXT = 0x00010000,
Jesse Hall076f95d2017-09-20 11:34:47 -07002659
2660 //@extension("VK_KHR_sampler_ycbcr_conversion") // 157
2661 VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT_KHR = 0x00020000,
2662 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT_KHR = 0x00040000,
2663 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT_KHR = 0x00080000,
2664 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT_KHR = 0x00100000,
2665 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT_KHR = 0x00200000,
2666 VK_FORMAT_FEATURE_DISJOINT_BIT_KHR = 0x00400000,
2667 VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT_KHR = 0x00800000,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002668}
2669
2670/// Query control flags
Jesse Halld8bade02015-11-24 10:24:18 -08002671type VkFlags VkQueryControlFlags
2672bitfield VkQueryControlFlagBits {
Jesse Hall65ab5522015-11-30 00:07:16 -08002673 VK_QUERY_CONTROL_PRECISE_BIT = 0x00000001,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002674}
2675
2676/// Query result flags
Jesse Halld8bade02015-11-24 10:24:18 -08002677type VkFlags VkQueryResultFlags
2678bitfield VkQueryResultFlagBits {
Jesse Halld27f6aa2015-08-15 17:58:48 -07002679 VK_QUERY_RESULT_64_BIT = 0x00000001, /// Results of the queries are written to the destination buffer as 64-bit values
2680 VK_QUERY_RESULT_WAIT_BIT = 0x00000002, /// Results of the queries are waited on before proceeding with the result copy
2681 VK_QUERY_RESULT_WITH_AVAILABILITY_BIT = 0x00000004, /// Besides the results of the query, the availability of the results is also written
2682 VK_QUERY_RESULT_PARTIAL_BIT = 0x00000008, /// Copy the partial results of the query even if the final results aren't available
2683}
2684
2685/// Shader module creation flags
Jesse Halld8bade02015-11-24 10:24:18 -08002686type VkFlags VkShaderModuleCreateFlags
Jesse Halla6429252015-11-29 18:59:42 -08002687//bitfield VkShaderModuleCreateFlagBits {
2688//}
Jesse Halld27f6aa2015-08-15 17:58:48 -07002689
Jesse Halld27f6aa2015-08-15 17:58:48 -07002690/// Event creation flags
Jesse Halld8bade02015-11-24 10:24:18 -08002691type VkFlags VkEventCreateFlags
Jesse Halla6429252015-11-29 18:59:42 -08002692//bitfield VkEventCreateFlagBits {
2693//}
Jesse Halld27f6aa2015-08-15 17:58:48 -07002694
Jesse Halla15a4bf2015-11-19 22:48:02 -08002695/// Command buffer usage flags
Jesse Hall3fbc8562015-11-29 22:10:52 -08002696type VkFlags VkCommandBufferUsageFlags
2697bitfield VkCommandBufferUsageFlagBits {
2698 VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT = 0x00000001,
2699 VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT = 0x00000002,
2700 VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT = 0x00000004,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002701}
2702
2703/// Pipeline statistics flags
Jesse Halld8bade02015-11-24 10:24:18 -08002704type VkFlags VkQueryPipelineStatisticFlags
2705bitfield VkQueryPipelineStatisticFlagBits {
Jesse Hallae38f732015-11-19 21:32:50 -08002706 VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT = 0x00000001, /// Optional
2707 VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT = 0x00000002, /// Optional
2708 VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT = 0x00000004, /// Optional
2709 VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT = 0x00000008, /// Optional
2710 VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT = 0x00000010, /// Optional
2711 VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT = 0x00000020, /// Optional
2712 VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT = 0x00000040, /// Optional
2713 VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT = 0x00000080, /// Optional
2714 VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT = 0x00000100, /// Optional
2715 VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT = 0x00000200, /// Optional
2716 VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT = 0x00000400, /// Optional
Jesse Halld27f6aa2015-08-15 17:58:48 -07002717}
2718
2719/// Memory mapping flags
Jesse Halld8bade02015-11-24 10:24:18 -08002720type VkFlags VkMemoryMapFlags
Jesse Halla6429252015-11-29 18:59:42 -08002721//bitfield VkMemoryMapFlagBits {
2722//}
Jesse Halld27f6aa2015-08-15 17:58:48 -07002723
2724/// Bitfield of image aspects
Jesse Halld8bade02015-11-24 10:24:18 -08002725type VkFlags VkImageAspectFlags
2726bitfield VkImageAspectFlagBits {
Jesse Halld27f6aa2015-08-15 17:58:48 -07002727 VK_IMAGE_ASPECT_COLOR_BIT = 0x00000001,
2728 VK_IMAGE_ASPECT_DEPTH_BIT = 0x00000002,
2729 VK_IMAGE_ASPECT_STENCIL_BIT = 0x00000004,
2730 VK_IMAGE_ASPECT_METADATA_BIT = 0x00000008,
Jesse Hall076f95d2017-09-20 11:34:47 -07002731
Ian Elliott28bd2c32017-10-13 09:21:12 -06002732 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04002733 VK_IMAGE_ASPECT_PLANE_0_BIT = 0x00000010,
2734 VK_IMAGE_ASPECT_PLANE_1_BIT = 0x00000020,
2735 VK_IMAGE_ASPECT_PLANE_2_BIT = 0x00000040,
2736
Jesse Hall076f95d2017-09-20 11:34:47 -07002737 //@extension("VK_KHR_sampler_ycbcr_conversion") // 157
2738 VK_IMAGE_ASPECT_PLANE_0_BIT_KHR = 0x00000010,
2739 VK_IMAGE_ASPECT_PLANE_1_BIT_KHR = 0x00000020,
2740 VK_IMAGE_ASPECT_PLANE_2_BIT_KHR = 0x00000040,
Jesse Hallf47e8f82018-10-27 23:41:45 -07002741
2742 //@extension("VK_EXT_transform_feedback") // 29
2743 VK_IMAGE_ASPECT_MEMORY_PLANE_0_BIT_EXT = 0x00000080,
2744 VK_IMAGE_ASPECT_MEMORY_PLANE_1_BIT_EXT = 0x00000100,
2745 VK_IMAGE_ASPECT_MEMORY_PLANE_2_BIT_EXT = 0x00000200,
2746 VK_IMAGE_ASPECT_MEMORY_PLANE_3_BIT_EXT = 0x00000400,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002747}
2748
2749/// Sparse memory bind flags
Jesse Halld8bade02015-11-24 10:24:18 -08002750type VkFlags VkSparseMemoryBindFlags
Jesse Hall091ed9e2015-11-30 00:55:29 -08002751bitfield VkSparseMemoryBindFlagBits {
2752 VK_SPARSE_MEMORY_BIND_METADATA_BIT = 0x00000001,
2753}
Jesse Halld27f6aa2015-08-15 17:58:48 -07002754
2755/// Sparse image memory requirements flags
Jesse Halld8bade02015-11-24 10:24:18 -08002756type VkFlags VkSparseImageFormatFlags
2757bitfield VkSparseImageFormatFlagBits {
Jesse Hallb00daad2015-11-29 19:46:20 -08002758 VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT = 0x00000001, /// Image uses a single miptail region for all array slices
2759 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.
2760 VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT = 0x00000004, /// Image uses a non-standard sparse block size
Jesse Halld27f6aa2015-08-15 17:58:48 -07002761}
2762
2763/// Pipeline stages
Jesse Halld8bade02015-11-24 10:24:18 -08002764type VkFlags VkPipelineStageFlags
2765bitfield VkPipelineStageFlagBits {
Jesse Halld27f6aa2015-08-15 17:58:48 -07002766 VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT = 0x00000001, /// Before subsequent commands are processed
2767 VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT = 0x00000002, /// Draw/DispatchIndirect command fetch
2768 VK_PIPELINE_STAGE_VERTEX_INPUT_BIT = 0x00000004, /// Vertex/index fetch
2769 VK_PIPELINE_STAGE_VERTEX_SHADER_BIT = 0x00000008, /// Vertex shading
Jesse Hallae38f732015-11-19 21:32:50 -08002770 VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT = 0x00000010, /// Tessellation control shading
2771 VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT = 0x00000020, /// Tessellation evaluation shading
Jesse Halld27f6aa2015-08-15 17:58:48 -07002772 VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT = 0x00000040, /// Geometry shading
2773 VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT = 0x00000080, /// Fragment shading
2774 VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT = 0x00000100, /// Early fragment (depth/stencil) tests
2775 VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT = 0x00000200, /// Late fragment (depth/stencil) tests
2776 VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT = 0x00000400, /// Color attachment writes
2777 VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT = 0x00000800, /// Compute shading
2778 VK_PIPELINE_STAGE_TRANSFER_BIT = 0x00001000, /// Transfer/copy operations
Jesse Hall543a7ff2016-01-08 16:38:30 -08002779 VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT = 0x00002000,
2780 VK_PIPELINE_STAGE_HOST_BIT = 0x00004000, /// Indicates host (CPU) is a source/sink of the dependency
Jesse Halld27f6aa2015-08-15 17:58:48 -07002781
Jesse Hall543a7ff2016-01-08 16:38:30 -08002782 VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT = 0x00008000, /// All stages of the graphics pipeline
2783 VK_PIPELINE_STAGE_ALL_COMMANDS_BIT = 0x00010000, /// All graphics, compute, copy, and transition commands
Chris Forbes289cb792016-12-30 15:03:55 +13002784
Jesse Hallad250842017-03-10 18:35:38 -08002785 //@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13002786 VK_PIPELINE_STAGE_COMMAND_PROCESS_BIT_NVX = 0x00020000,
Jesse Halla13a3cf2018-07-09 15:51:52 -07002787
2788 //@extension("VK_EXT_conditional_rendering") // 82
2789 VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT = 0x00040000,
Jesse Hallb5297192018-09-22 20:52:13 +02002790
2791 //@extension("VK_NV_shading_rate_image") // 165
2792 VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV = 0x00400000,
2793
2794 //@extension("VK_NVX_raytracing") // 166
2795 VK_PIPELINE_STAGE_RAYTRACING_BIT_NVX = 0x00200000,
2796
2797 //@extension("VK_NV_mesh_shader") // 203
2798 VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV = 0x00080000,
2799 VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV = 0x00100000,
Jesse Hallf47e8f82018-10-27 23:41:45 -07002800
2801 //@extension("VK_EXT_transform_feedback") // 29
2802 VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT = 0x01000000,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07002803}
2804
2805/// Render pass attachment description flags
Jesse Halld8bade02015-11-24 10:24:18 -08002806type VkFlags VkAttachmentDescriptionFlags
2807bitfield VkAttachmentDescriptionFlagBits {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07002808 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 -07002809}
2810
2811/// Subpass description flags
Jesse Halld8bade02015-11-24 10:24:18 -08002812type VkFlags VkSubpassDescriptionFlags
2813bitfield VkSubpassDescriptionFlagBits {
Jesse Hallad250842017-03-10 18:35:38 -08002814 //@extension("VK_NVX_multiview_per_view_attributes") // 98
2815 VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX = 0x00000001,
2816 VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX = 0x00000002,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002817}
2818
2819/// Command pool creation flags
Jesse Hall3fbc8562015-11-29 22:10:52 -08002820type VkFlags VkCommandPoolCreateFlags
2821bitfield VkCommandPoolCreateFlagBits {
2822 VK_COMMAND_POOL_CREATE_TRANSIENT_BIT = 0x00000001, /// Command buffers have a short lifetime
2823 VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT = 0x00000002, /// Command buffers may release their memory individually
Daniel Koch09f7bf92017-10-05 00:26:58 -04002824
Ian Elliott28bd2c32017-10-13 09:21:12 -06002825 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04002826 VK_COMMAND_POOL_CREATE_PROTECTED_BIT = 0x00000004,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002827}
2828
2829/// Command pool reset flags
Jesse Hall3fbc8562015-11-29 22:10:52 -08002830type VkFlags VkCommandPoolResetFlags
2831bitfield VkCommandPoolResetFlagBits {
2832 VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT = 0x00000001, /// Release resources owned by the pool
Jesse Halld27f6aa2015-08-15 17:58:48 -07002833}
2834
Jesse Hall3fbc8562015-11-29 22:10:52 -08002835type VkFlags VkCommandBufferResetFlags
2836bitfield VkCommandBufferResetFlagBits {
2837 VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT = 0x00000001, /// Release resources owned by the buffer
Jesse Hall5ae3abb2015-10-08 14:00:22 -07002838}
2839
Jesse Halld8bade02015-11-24 10:24:18 -08002840type VkFlags VkSampleCountFlags
2841bitfield VkSampleCountFlagBits {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07002842 VK_SAMPLE_COUNT_1_BIT = 0x00000001,
2843 VK_SAMPLE_COUNT_2_BIT = 0x00000002,
2844 VK_SAMPLE_COUNT_4_BIT = 0x00000004,
2845 VK_SAMPLE_COUNT_8_BIT = 0x00000008,
2846 VK_SAMPLE_COUNT_16_BIT = 0x00000010,
2847 VK_SAMPLE_COUNT_32_BIT = 0x00000020,
2848 VK_SAMPLE_COUNT_64_BIT = 0x00000040,
2849}
2850
Jesse Halld8bade02015-11-24 10:24:18 -08002851type VkFlags VkStencilFaceFlags
2852bitfield VkStencilFaceFlagBits {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07002853 VK_STENCIL_FACE_FRONT_BIT = 0x00000001, /// Front face
2854 VK_STENCIL_FACE_BACK_BIT = 0x00000002, /// Back face
Jesse Hallc7467b72015-11-29 21:05:26 -08002855 VK_STENCIL_FRONT_AND_BACK = 0x00000003,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002856}
2857
Jesse Halla6429252015-11-29 18:59:42 -08002858/// Instance creation flags
2859type VkFlags VkInstanceCreateFlags
2860//bitfield VkInstanceCreateFlagBits {
2861//}
2862
2863/// Device creation flags
2864type VkFlags VkDeviceCreateFlags
2865//bitfield VkDeviceCreateFlagBits {
2866//}
2867
2868/// Device queue creation flags
2869type VkFlags VkDeviceQueueCreateFlags
Ian Elliott28bd2c32017-10-13 09:21:12 -06002870@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04002871bitfield VkDeviceQueueCreateFlagBits {
2872 VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT = 0x00000001,
2873}
Jesse Halla6429252015-11-29 18:59:42 -08002874
2875/// Query pool creation flags
2876type VkFlags VkQueryPoolCreateFlags
2877//bitfield VkQueryPoolCreateFlagBits {
2878//}
2879
2880/// Buffer view creation flags
2881type VkFlags VkBufferViewCreateFlags
2882//bitfield VkBufferViewCreateFlagBits {
2883//}
2884
2885/// Pipeline cache creation flags
2886type VkFlags VkPipelineCacheCreateFlags
2887//bitfield VkPipelineCacheCreateFlagBits {
2888//}
2889
2890/// Pipeline shader stage creation flags
2891type VkFlags VkPipelineShaderStageCreateFlags
2892//bitfield VkPipelineShaderStageCreateFlagBits {
2893//}
2894
2895/// Descriptor set layout creation flags
2896type VkFlags VkDescriptorSetLayoutCreateFlags
Jesse Hallad250842017-03-10 18:35:38 -08002897bitfield VkDescriptorSetLayoutCreateFlagBits {
2898 //@extension("VK_KHR_push_descriptor") // 81
2899 VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR = 0x00000001,
Jesse Hall72e6a132018-04-06 13:00:44 -07002900
2901 //@extension("VK_EXT_descriptor_indexing") // 162
2902 VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT = 0x00000002,
Jesse Hallad250842017-03-10 18:35:38 -08002903}
Jesse Halla6429252015-11-29 18:59:42 -08002904
2905/// Pipeline vertex input state creation flags
2906type VkFlags VkPipelineVertexInputStateCreateFlags
2907//bitfield VkPipelineVertexInputStateCreateFlagBits {
2908//}
2909
2910/// Pipeline input assembly state creation flags
2911type VkFlags VkPipelineInputAssemblyStateCreateFlags
2912//bitfield VkPipelineInputAssemblyStateCreateFlagBits {
2913//}
2914
2915/// Tessellation state creation flags
2916type VkFlags VkPipelineTessellationStateCreateFlags
2917//bitfield VkPipelineTessellationStateCreateFlagBits {
2918//}
2919
2920/// Viewport state creation flags
2921type VkFlags VkPipelineViewportStateCreateFlags
2922//bitfield VkPipelineViewportStateCreateFlagBits {
2923//}
2924
Jesse Hall3fbc8562015-11-29 22:10:52 -08002925/// Rasterization state creation flags
2926type VkFlags VkPipelineRasterizationStateCreateFlags
2927//bitfield VkPipelineRasterizationStateCreateFlagBits {
Jesse Halla6429252015-11-29 18:59:42 -08002928//}
2929
2930/// Multisample state creation flags
2931type VkFlags VkPipelineMultisampleStateCreateFlags
2932//bitfield VkPipelineMultisampleStateCreateFlagBits {
2933//}
2934
2935/// Color blend state creation flags
2936type VkFlags VkPipelineColorBlendStateCreateFlags
2937//bitfield VkPipelineColorBlendStateCreateFlagBits {
2938//}
2939
2940/// Depth/stencil state creation flags
2941type VkFlags VkPipelineDepthStencilStateCreateFlags
2942//bitfield VkPipelineDepthStencilStateCreateFlagBits {
2943//}
2944
2945/// Dynamic state creation flags
2946type VkFlags VkPipelineDynamicStateCreateFlags
2947//bitfield VkPipelineDynamicStateCreateFlagBits {
2948//}
2949
2950/// Pipeline layout creation flags
2951type VkFlags VkPipelineLayoutCreateFlags
2952//bitfield VkPipelineLayoutCreateFlagBits {
2953//}
2954
2955/// Sampler creation flags
2956type VkFlags VkSamplerCreateFlags
2957//bitfield VkSamplerCreateFlagBits {
2958//}
2959
2960/// Render pass creation flags
2961type VkFlags VkRenderPassCreateFlags
2962//bitfield VkRenderPassCreateFlagBits {
2963//}
2964
2965/// Framebuffer creation flags
2966type VkFlags VkFramebufferCreateFlags
2967//bitfield VkFramebufferCreateFlagBits {
2968//}
2969
Jesse Halldc6d36c2015-11-29 19:12:15 -08002970/// Dependency flags
2971type VkFlags VkDependencyFlags
2972bitfield VkDependencyFlagBits {
2973 VK_DEPENDENCY_BY_REGION_BIT = 0x00000001,
Jesse Hallad250842017-03-10 18:35:38 -08002974
Ian Elliott28bd2c32017-10-13 09:21:12 -06002975 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04002976 VK_DEPENDENCY_DEVICE_GROUP_BIT = 0x00000004,
2977 VK_DEPENDENCY_VIEW_LOCAL_BIT = 0x00000002,
Jesse Hallad250842017-03-10 18:35:38 -08002978
Daniel Koch09f7bf92017-10-05 00:26:58 -04002979 //@extension("VK_KHR_multiview") // 54
2980 VK_DEPENDENCY_VIEW_LOCAL_BIT_KHR = 0x00000002,
2981
2982 //@extension("VK_KHR_device_group") // 61
2983 VK_DEPENDENCY_DEVICE_GROUP_BIT_KHR = 0x00000004,
Jesse Halldc6d36c2015-11-29 19:12:15 -08002984}
2985
Jesse Hallc7467b72015-11-29 21:05:26 -08002986/// Cull mode flags
2987type VkFlags VkCullModeFlags
2988bitfield VkCullModeFlagBits {
2989 VK_CULL_MODE_NONE = 0x00000000,
2990 VK_CULL_MODE_FRONT_BIT = 0x00000001,
2991 VK_CULL_MODE_BACK_BIT = 0x00000002,
2992 VK_CULL_MODE_FRONT_AND_BACK = 0x00000003,
2993}
2994
Ian Elliott28bd2c32017-10-13 09:21:12 -06002995//@vulkan1_1 flags
Daniel Koch09f7bf92017-10-05 00:26:58 -04002996
2997/// Subgroup feature flags
2998type VkFlags VkSubgroupFeatureFlags
2999bitfield VkSubgroupFeatureFlagBits {
3000 VK_SUBGROUP_FEATURE_BASIC_BIT = 0x00000001,
3001 VK_SUBGROUP_FEATURE_VOTE_BIT = 0x00000002,
3002 VK_SUBGROUP_FEATURE_ARITHMETIC_BIT = 0x00000004,
3003 VK_SUBGROUP_FEATURE_BALLOT_BIT = 0x00000008,
3004 VK_SUBGROUP_FEATURE_SHUFFLE_BIT = 0x00000010,
3005 VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT = 0x00000020,
3006 VK_SUBGROUP_FEATURE_CLUSTERED_BIT = 0x00000040,
3007 VK_SUBGROUP_FEATURE_QUAD_BIT = 0x00000080,
Jesse Hall72e6a132018-04-06 13:00:44 -07003008
3009 //@extension("VK_NV_shader_subgroup_partitioned") // 199
3010 VK_SUBGROUP_FEATURE_PARTITIONED_BIT_NV = 0x00000100,
Daniel Koch09f7bf92017-10-05 00:26:58 -04003011}
3012
3013/// Peer memory feature flags
3014type VkFlags VkPeerMemoryFeatureFlags
3015bitfield VkPeerMemoryFeatureFlagBits {
3016 VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT = 0x00000001,
3017 VK_PEER_MEMORY_FEATURE_COPY_DST_BIT = 0x00000002,
3018 VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT = 0x00000004,
3019 VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT = 0x00000008,
3020}
3021
3022/// Memory allocation flags
3023type VkFlags VkMemoryAllocateFlags
3024bitfield VkMemoryAllocateFlagBits {
3025 VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT = 0x00000001,
3026}
3027
3028type VkFlags VkCommandPoolTrimFlags
3029//bitfield VkCommandPoolTrimFlagBits {
3030//}
3031
3032type VkFlags VkDescriptorUpdateTemplateCreateFlags
3033//bitfield VkDescriptorUpdateTemplateCreateFlagBits {
3034//}
3035
3036/// External memory handle type flags
3037type VkFlags VkExternalMemoryHandleTypeFlags
3038bitfield VkExternalMemoryHandleTypeFlagBits {
3039 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT = 0x00000001,
3040 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT = 0x00000002,
3041 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 0x00000004,
3042 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT = 0x00000008,
3043 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT = 0x00000010,
3044 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT = 0x00000020,
3045 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT = 0x00000040,
Jesse Hall8c954d32018-01-17 22:06:20 -08003046
Jesse Hall8c954d32018-01-17 22:06:20 -08003047 //@extension("VK_EXT_external_memory_host") // 179
Jesse Hall36215a92018-01-18 15:04:37 -08003048 VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT = 0x00000080,
3049 VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT = 0x00000100,
3050
3051 //@extension("VK_EXT_external_memory_dma_buf") // 126
3052 VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT = 0x00000200,
3053
3054 //@extension("VK_ANDROID_external_memory_android_hardware_buffer") // 130
3055 VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID = 0x00000400,
Daniel Koch09f7bf92017-10-05 00:26:58 -04003056}
3057
3058/// External memory feature flags
3059type VkFlags VkExternalMemoryFeatureFlags
3060bitfield VkExternalMemoryFeatureFlagBits {
3061 VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT = 0x00000001,
3062 VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT = 0x00000002,
3063 VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT = 0x00000004,
3064}
3065
3066/// External fence handle type flags
3067type VkFlags VkExternalFenceHandleTypeFlags
3068bitfield VkExternalFenceHandleTypeFlagBits {
3069 VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT = 0x00000001,
3070 VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT = 0x00000002,
3071 VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 0x00000004,
3072 VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT = 0x00000008,
3073}
3074
3075/// External fence feature flags
3076type VkFlags VkExternalFenceFeatureFlags
3077bitfield VkExternalFenceFeatureFlagBits {
3078 VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT = 0x00000001,
3079 VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT = 0x00000002,
3080}
3081
3082/// Fence import flags
3083type VkFlags VkFenceImportFlags
3084bitfield VkFenceImportFlagBits {
3085 VK_FENCE_IMPORT_TEMPORARY_BIT = 0x00000001,
3086}
3087
3088/// Semaphore import flags
3089type VkFlags VkSemaphoreImportFlags
3090bitfield VkSemaphoreImportFlagBits {
3091 VK_SEMAPHORE_IMPORT_TEMPORARY_BIT = 0x00000001,
3092}
3093
3094/// External semaphore handle type flags
3095type VkFlags VkExternalSemaphoreHandleTypeFlags
3096bitfield VkExternalSemaphoreHandleTypeFlagBits {
3097 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT = 0x00000001,
3098 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT = 0x00000002,
3099 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 0x00000004,
3100 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT = 0x00000008,
3101 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT = 0x00000010,
3102}
3103
3104/// External semaphore feature flags
3105type VkFlags VkExternalSemaphoreFeatureFlags
3106bitfield VkExternalSemaphoreFeatureFlagBits {
3107 VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT = 0x00000001,
3108 VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT = 0x00000002,
3109}
3110
Jesse Hallad250842017-03-10 18:35:38 -08003111@extension("VK_KHR_surface") // 1
Jesse Halld8bade02015-11-24 10:24:18 -08003112type VkFlags VkSurfaceTransformFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08003113@extension("VK_KHR_surface") // 1
Jesse Halld8bade02015-11-24 10:24:18 -08003114bitfield VkSurfaceTransformFlagBitsKHR {
Jesse Hallf9fa9a52016-01-08 16:08:51 -08003115 VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR = 0x00000001,
Jesse Hall9ba8bc82015-11-30 16:22:16 -08003116 VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR = 0x00000002,
3117 VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR = 0x00000004,
3118 VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR = 0x00000008,
3119 VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR = 0x00000010,
3120 VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR = 0x00000020,
3121 VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR = 0x00000040,
3122 VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR = 0x00000080,
3123 VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR = 0x00000100,
Michael Lentine88594d72015-11-12 12:49:45 -08003124}
Jesse Halld27f6aa2015-08-15 17:58:48 -07003125
Jesse Hallad250842017-03-10 18:35:38 -08003126@extension("VK_KHR_surface") // 1
Jesse Halla6429252015-11-29 18:59:42 -08003127type VkFlags VkCompositeAlphaFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08003128@extension("VK_KHR_surface") // 1
Jesse Halla6429252015-11-29 18:59:42 -08003129bitfield VkCompositeAlphaFlagBitsKHR {
3130 VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR = 0x00000001,
3131 VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR = 0x00000002,
3132 VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR = 0x00000004,
3133 VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR = 0x00000008,
3134}
3135
Jesse Hallad250842017-03-10 18:35:38 -08003136@extension("VK_KHR_swapchain") // 2
Jesse Hallf4ab2b12015-11-30 16:04:55 -08003137type VkFlags VkSwapchainCreateFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08003138@extension("VK_KHR_swapchain") // 2
3139bitfield VkSwapchainCreateFlagBitsKHR {
Ian Elliott28bd2c32017-10-13 09:21:12 -06003140 //@vulkan1_1
Jesse Hall8c954d32018-01-17 22:06:20 -08003141 VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR = 0x00000001,
Daniel Koch09f7bf92017-10-05 00:26:58 -04003142 VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR = 0x00000002,
3143}
3144
Ian Elliott28bd2c32017-10-13 09:21:12 -06003145@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04003146@extension("VK_KHR_swapchain") // 2
3147type VkFlags VkDeviceGroupPresentModeFlagsKHR
Ian Elliott28bd2c32017-10-13 09:21:12 -06003148@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04003149@extension("VK_KHR_swapchain") // 2
3150bitfield VkDeviceGroupPresentModeFlagBitsKHR {
3151 VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR = 0x00000001,
3152 VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR = 0x00000002,
3153 VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR = 0x00000004,
3154 VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR = 0x00000008,
Jesse Hallad250842017-03-10 18:35:38 -08003155}
Jesse Hallf4ab2b12015-11-30 16:04:55 -08003156
Jesse Hallad250842017-03-10 18:35:38 -08003157@extension("VK_KHR_display") // 3
Jesse Halld8bade02015-11-24 10:24:18 -08003158type VkFlags VkDisplayPlaneAlphaFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08003159@extension("VK_KHR_display") // 3
Jesse Halld8bade02015-11-24 10:24:18 -08003160bitfield VkDisplayPlaneAlphaFlagBitsKHR {
Jesse Hallf4ab2b12015-11-30 16:04:55 -08003161 VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR = 0x00000001,
3162 VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR = 0x00000002,
3163 VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR = 0x00000004,
3164 VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR = 0x00000008,
Jesse Hall1356b0d2015-11-23 17:24:58 -08003165}
3166
Jesse Hallad250842017-03-10 18:35:38 -08003167@extension("VK_KHR_display") // 3
Jesse Hallf4ab2b12015-11-30 16:04:55 -08003168type VkFlags VkDisplaySurfaceCreateFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08003169//@extension("VK_KHR_display") // 3
Jesse Hallf4ab2b12015-11-30 16:04:55 -08003170//bitfield VkDisplaySurfaceCreateFlagBitsKHR {
3171//}
3172
Jesse Hallad250842017-03-10 18:35:38 -08003173@extension("VK_KHR_display") // 3
Jesse Hall9ba8bc82015-11-30 16:22:16 -08003174type VkFlags VkDisplayModeCreateFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08003175//@extension("VK_KHR_display") // 3
Jesse Hall9ba8bc82015-11-30 16:22:16 -08003176//bitfield VkDisplayModeCreateFlagBitsKHR {
3177//}
3178
Jesse Hallad250842017-03-10 18:35:38 -08003179@extension("VK_KHR_xlib_surface") // 5
Jesse Hallf9fa9a52016-01-08 16:08:51 -08003180type VkFlags VkXlibSurfaceCreateFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08003181//@extension("VK_KHR_xlib_surface") // 5
Jesse Hallf9fa9a52016-01-08 16:08:51 -08003182//bitfield VkXlibSurfaceCreateFlagBitsKHR {
3183//}
3184
Jesse Hallad250842017-03-10 18:35:38 -08003185@extension("VK_KHR_xcb_surface") // 6
Jesse Hallf9fa9a52016-01-08 16:08:51 -08003186type VkFlags VkXcbSurfaceCreateFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08003187//@extension("VK_KHR_xcb_surface") // 6
Jesse Hallf9fa9a52016-01-08 16:08:51 -08003188//bitfield VkXcbSurfaceCreateFlagBitsKHR {
3189//}
3190
Jesse Hallad250842017-03-10 18:35:38 -08003191@extension("VK_KHR_wayland_surface") // 7
Jesse Hallf9fa9a52016-01-08 16:08:51 -08003192type VkFlags VkWaylandSurfaceCreateFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08003193//@extension("VK_KHR_wayland_surface") // 7
Jesse Hallf9fa9a52016-01-08 16:08:51 -08003194//bitfield VkWaylandSurfaceCreateFlagBitsKHR {
3195//}
3196
Jesse Hallad250842017-03-10 18:35:38 -08003197@extension("VK_KHR_mir_surface") // 8
Jesse Hallf9fa9a52016-01-08 16:08:51 -08003198type VkFlags VkMirSurfaceCreateFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08003199//@extension("VK_KHR_mir_surface") // 8
Jesse Hallf9fa9a52016-01-08 16:08:51 -08003200//bitfield VkMirSurfaceCreateFlagBitsKHR {
3201//}
3202
Jesse Hallad250842017-03-10 18:35:38 -08003203@extension("VK_KHR_android_surface") // 9
Jesse Hallf9fa9a52016-01-08 16:08:51 -08003204type VkFlags VkAndroidSurfaceCreateFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08003205//@extension("VK_KHR_android_surface") // 9
Jesse Hallf9fa9a52016-01-08 16:08:51 -08003206//bitfield VkAndroidSurfaceCreateFlagBitsKHR {
3207//}
3208
Jesse Hallad250842017-03-10 18:35:38 -08003209@extension("VK_KHR_win32_surface") // 10
Jesse Hallf9fa9a52016-01-08 16:08:51 -08003210type VkFlags VkWin32SurfaceCreateFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08003211//@extension("VK_KHR_win32_surface") // 10
Jesse Hallf9fa9a52016-01-08 16:08:51 -08003212//bitfield VkWin32SurfaceCreateFlagBitsKHR {
3213//}
3214
Jesse Hallad250842017-03-10 18:35:38 -08003215@extension("VK_ANDROID_native_buffer") // 11
Jesse Hall889cd9a2017-02-25 22:12:23 -08003216type VkFlags VkSwapchainImageUsageFlagsANDROID
Jesse Hallad250842017-03-10 18:35:38 -08003217@extension("VK_ANDROID_native_buffer") // 11
Jesse Hall889cd9a2017-02-25 22:12:23 -08003218bitfield VkSwapchainImageUsageFlagBitsANDROID {
3219 VK_SWAPCHAIN_IMAGE_USAGE_FLAGS_SHARED_BIT_ANDROID = 0x00000001,
3220}
3221
Jesse Hallad250842017-03-10 18:35:38 -08003222@extension("VK_EXT_debug_report") // 12
Jesse Hall715b86a2016-01-16 16:34:29 -08003223type VkFlags VkDebugReportFlagsEXT
Jesse Hallad250842017-03-10 18:35:38 -08003224@extension("VK_EXT_debug_report") // 12
Jesse Hall715b86a2016-01-16 16:34:29 -08003225bitfield VkDebugReportFlagBitsEXT {
Jesse Halle2948d82016-02-25 04:19:32 -08003226 VK_DEBUG_REPORT_INFORMATION_BIT_EXT = 0x00000001,
3227 VK_DEBUG_REPORT_WARNING_BIT_EXT = 0x00000002,
3228 VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT = 0x00000004,
Jesse Hall715b86a2016-01-16 16:34:29 -08003229 VK_DEBUG_REPORT_ERROR_BIT_EXT = 0x00000008,
3230 VK_DEBUG_REPORT_DEBUG_BIT_EXT = 0x00000010,
3231}
3232
Jesse Hallf47e8f82018-10-27 23:41:45 -07003233@extension("VK_EXT_transform_feedback") // 29
3234type VkFlags VkPipelineRasterizationStateStreamCreateFlagsEXT
3235//@extension("VK_EXT_transform_feedback") // 29
3236//bitfield VkPipelineRasterizationStateStreamCreateFlagBitsEXT {
3237//}
3238
Jesse Hallad250842017-03-10 18:35:38 -08003239@extension("VK_NV_external_memory_capabilities") // 56
Chris Forbes289cb792016-12-30 15:03:55 +13003240type VkFlags VkExternalMemoryHandleTypeFlagsNV
Jesse Hallad250842017-03-10 18:35:38 -08003241@extension("VK_NV_external_memory_capabilities") // 56
Chris Forbes289cb792016-12-30 15:03:55 +13003242bitfield VkExternalMemoryHandleTypeFlagBitsNV {
Jesse Halleb02c472017-02-24 15:13:45 -08003243 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV = 0x00000001,
3244 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV = 0x00000002,
3245 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV = 0x00000004,
3246 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV = 0x00000008,
Chris Forbes289cb792016-12-30 15:03:55 +13003247}
3248
Jesse Hallad250842017-03-10 18:35:38 -08003249@extension("VK_NV_external_memory_capabilities") // 56
Chris Forbes289cb792016-12-30 15:03:55 +13003250type VkFlags VkExternalMemoryFeatureFlagsNV
Jesse Hallad250842017-03-10 18:35:38 -08003251@extension("VK_NV_external_memory_capabilities") // 56
Chris Forbes289cb792016-12-30 15:03:55 +13003252bitfield VkExternalMemoryFeatureFlagBitsNV {
Jesse Halleb02c472017-02-24 15:13:45 -08003253 VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV = 0x00000001,
3254 VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV = 0x00000002,
3255 VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV = 0x00000004,
Chris Forbes289cb792016-12-30 15:03:55 +13003256}
3257
Daniel Koch09f7bf92017-10-05 00:26:58 -04003258@extension("VK_KHR_device_group") // 61
3259type VkFlags VkPeerMemoryFeatureFlagsKHR
3260@extension("VK_KHR_device_group") // 61
3261bitfield VkPeerMemoryFeatureFlagBitsKHR {
3262 VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT_KHR = 0x00000001,
3263 VK_PEER_MEMORY_FEATURE_COPY_DST_BIT_KHR = 0x00000002,
3264 VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT_KHR = 0x00000004,
3265 VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT_KHR = 0x00000008,
Jesse Hallad250842017-03-10 18:35:38 -08003266}
3267
Daniel Koch09f7bf92017-10-05 00:26:58 -04003268@extension("VK_KHR_device_group") // 61
3269type VkFlags VkMemoryAllocateFlagsKHR
3270@extension("VK_KHR_device_group") // 61
3271bitfield VkMemoryAllocateFlagBitsKHR {
3272 VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT_KHR = 0x00000001,
Jesse Hallad250842017-03-10 18:35:38 -08003273}
3274
3275@extension("VK_NN_vi_surface") // 63
Jesse Hall77ad05b2017-03-10 22:02:20 -08003276type VkFlags VkViSurfaceCreateFlagsNN
Jesse Hallad250842017-03-10 18:35:38 -08003277//@extension("VK_NN_vi_surface") // 63
Jesse Hall77ad05b2017-03-10 22:02:20 -08003278//bitfield VkViSurfaceCreateFlagBitsNN {
3279//}
3280
Jesse Hallad250842017-03-10 18:35:38 -08003281@extension("VK_KHR_maintenance1") // 70
Jesse Hall77ad05b2017-03-10 22:02:20 -08003282type VkFlags VkCommandPoolTrimFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08003283//@extension("VK_KHR_maintenance1") // 70
Jesse Hall77ad05b2017-03-10 22:02:20 -08003284//bitfield VkCommandPoolTrimFlagBitsKHR {
3285//}
3286
Jesse Hall9492f992017-08-28 12:10:06 -07003287@extension("VK_KHR_external_memory_capabilities") // 72
3288type VkFlags VkExternalMemoryHandleTypeFlagsKHR
3289@extension("VK_KHR_external_memory_capabilities") // 72
3290bitfield VkExternalMemoryHandleTypeFlagBitsKHR {
3291 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = 0x00000001,
3292 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = 0x00000002,
3293 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = 0x00000004,
3294 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT_KHR = 0x00000008,
3295 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT_KHR = 0x00000010,
3296 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT_KHR = 0x00000020,
3297 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT_KHR = 0x00000040,
Jesse Hallad250842017-03-10 18:35:38 -08003298}
3299
Jesse Hall9492f992017-08-28 12:10:06 -07003300@extension("VK_KHR_external_memory_capabilities") // 72
3301type VkFlags VkExternalMemoryFeatureFlagsKHR
3302@extension("VK_KHR_external_memory_capabilities") // 72
3303bitfield VkExternalMemoryFeatureFlagBitsKHR {
3304 VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_KHR = 0x00000001,
3305 VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_KHR = 0x00000002,
3306 VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_KHR = 0x00000004,
Jesse Hallad250842017-03-10 18:35:38 -08003307}
3308
Jesse Hall9492f992017-08-28 12:10:06 -07003309@extension("VK_KHR_external_semaphore_capabilities") // 77
3310type VkFlags VkExternalSemaphoreHandleTypeFlagsKHR
3311@extension("VK_KHR_external_semaphore_capabilities") // 77
3312bitfield VkExternalSemaphoreHandleTypeFlagBitsKHR {
3313 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = 0x00000001
3314 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = 0x00000002
3315 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = 0x00000004
3316 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT_KHR = 0x00000008
3317 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_FENCE_FD_BIT_KHR = 0x00000010
Jesse Hallad250842017-03-10 18:35:38 -08003318}
3319
Jesse Hall9492f992017-08-28 12:10:06 -07003320@extension("VK_KHR_external_semaphore_capabilities") // 77
3321type VkFlags VkExternalSemaphoreFeatureFlagsKHR
3322@extension("VK_KHR_external_semaphore_capabilities") // 77
3323bitfield VkExternalSemaphoreFeatureFlagBitsKHR {
3324 VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT_KHR = 0x00000001,
3325 VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT_KHR = 0x00000002,
3326}
3327
3328@extension("VK_KHR_external_semaphore") // 78
3329type VkFlags VkSemaphoreImportFlagsKHR
3330@extension("VK_KHR_external_semaphore") // 78
3331bitfield VkSemaphoreImportFlagBitsKHR {
3332 VK_SEMAPHORE_IMPORT_TEMPORARY_BIT_KHR = 0x00000001,
Jesse Hallad250842017-03-10 18:35:38 -08003333}
3334
Jesse Halla13a3cf2018-07-09 15:51:52 -07003335@extension("VK_EXT_conditional_rendering") // 82
3336type VkFlags VkConditionalRenderingFlagsEXT
3337@extension("VK_EXT_conditional_rendering") // 82
3338bitfield VkConditionalRenderingFlagBitsEXT {
3339 VK_CONDITIONAL_RENDERING_INVERTED_BIT_EXT = 0x00000001,
3340}
3341
Jesse Hallad250842017-03-10 18:35:38 -08003342@extension("VK_KHR_descriptor_update_template") // 86
3343type VkFlags VkDescriptorUpdateTemplateCreateFlagsKHR
3344//@extension("VK_KHR_descriptor_update_template") // 86
3345//bitfield VkDescriptorUpdateTemplateCreateFlagBitsKHR {
3346//}
3347
3348@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13003349type VkFlags VkIndirectCommandsLayoutUsageFlagsNVX
Jesse Hallad250842017-03-10 18:35:38 -08003350@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13003351bitfield VkIndirectCommandsLayoutUsageFlagBitsNVX {
Jesse Halleb02c472017-02-24 15:13:45 -08003352 VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NVX = 0x00000001,
3353 VK_INDIRECT_COMMANDS_LAYOUT_USAGE_SPARSE_SEQUENCES_BIT_NVX = 0x00000002,
3354 VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EMPTY_EXECUTIONS_BIT_NVX = 0x00000004,
3355 VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NVX = 0x00000008,
Chris Forbes289cb792016-12-30 15:03:55 +13003356}
3357
Jesse Hallad250842017-03-10 18:35:38 -08003358@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13003359type VkFlags VkObjectEntryUsageFlagsNVX
Jesse Hallad250842017-03-10 18:35:38 -08003360@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13003361bitfield VkObjectEntryUsageFlagBitsNVX {
Jesse Halleb02c472017-02-24 15:13:45 -08003362 VK_OBJECT_ENTRY_USAGE_GRAPHICS_BIT_NVX = 0x00000001,
3363 VK_OBJECT_ENTRY_USAGE_COMPUTE_BIT_NVX = 0x00000002,
Chris Forbes289cb792016-12-30 15:03:55 +13003364}
3365
Jesse Hallad250842017-03-10 18:35:38 -08003366@extension("VK_EXT_display_surface_counter") // 91
Jesse Hall77ad05b2017-03-10 22:02:20 -08003367type VkFlags VkSurfaceCounterFlagsEXT
Jesse Hallad250842017-03-10 18:35:38 -08003368@extension("VK_EXT_display_surface_counter") // 91
Jesse Hall77ad05b2017-03-10 22:02:20 -08003369bitfield VkSurfaceCounterFlagBitsEXT {
3370 VK_SURFACE_COUNTER_VBLANK_EXT = 0x00000001,
3371}
3372
Jesse Hallad250842017-03-10 18:35:38 -08003373@extension("VK_NV_viewport_swizzle") // 99
3374type VkFlags VkPipelineViewportSwizzleStateCreateFlagsNV
3375//@extension("VK_NV_viewport_swizzle") // 99
3376//bitfield VkPipelineViewportSwizzleStateCreateFlagBitsNV {
3377//}
3378
3379@extension("VK_EXT_discard_rectangles") // 100
3380type VkFlags VkPipelineDiscardRectangleStateCreateFlagsEXT
3381//@extension("VK_EXT_discard_rectangles") // 100
3382//bitfield VkPipelineDiscardRectangleStateCreateFlagBitsEXT {
3383//}
3384
Jesse Hall8c954d32018-01-17 22:06:20 -08003385@extension("VK_EXT_conservative_rasterization") // 102
3386type VkFlags VkPipelineRasterizationConservativeStateCreateFlagsEXT
3387//@extension("VK_EXT_conservative_rasterization") // 102
3388//bitfield VkPipelineRasterizationConservativeStateCreateFlagBitsEXT {
3389//}
3390
Jesse Hall9492f992017-08-28 12:10:06 -07003391@extension("VK_KHR_external_fence_capabilities") // 113
3392type VkFlags VkExternalFenceHandleTypeFlagsKHR
3393@extension("VK_KHR_external_fence_capabilities") // 113
3394bitfield VkExternalFenceHandleTypeFlagBitsKHR {
3395 VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = 0x00000001,
3396 VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = 0x00000002,
3397 VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = 0x00000004,
3398 VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT_KHR = 0x00000008,
3399}
3400
3401@extension("VK_KHR_external_fence_capabilities") // 113
3402type VkFlags VkExternalFenceFeatureFlagsKHR
3403@extension("VK_KHR_external_fence_capabilities") // 113
3404bitfield VkExternalFenceFeatureFlagBitsKHR {
3405 VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT_KHR = 0x00000001,
3406 VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT_KHR = 0x00000002,
3407}
3408
3409@extension("VK_KHR_external_fence") // 114
3410type VkFlags VkFenceImportFlagsKHR
3411@extension("VK_KHR_external_fence") // 114
3412bitfield VkFenceImportFlagBitsKHR {
3413 VK_FENCE_IMPORT_TEMPORARY_BIT_KHR = 0x00000001,
3414}
3415
Jesse Hallad250842017-03-10 18:35:38 -08003416@extension("VK_MVK_ios_surface") // 123
3417type VkFlags VkIOSSurfaceCreateFlagsMVK
3418//@extension("VK_MVK_ios_surface") // 123
3419//bitfield VkIOSSurfaceCreateFlagBitsMVK {
3420//}
3421
3422@extension("VK_MVK_macos_surface") // 124
3423type VkFlags VkMacOSSurfaceCreateFlagsMVK
3424//@extension("VK_MVK_macos_surface") // 124
3425//bitfield VkMacOSSurfaceCreateFlagBitsMVK {
3426//}
3427
Jesse Hall8c954d32018-01-17 22:06:20 -08003428@extension("VK_EXT_debug_utils") // 129
3429type VkFlags VkDebugUtilsMessengerCallbackDataFlagsEXT
3430//@extension("VK_EXT_debug_utils") // 129
3431//bitfield VkDebugUtilsMessengerCallbackDataFlagBitsEXT {
3432//}
3433
3434@extension("VK_EXT_debug_utils") // 129
3435type VkFlags VkDebugUtilsMessengerCreateFlagsEXT
3436//@extension("VK_EXT_debug_utils") // 129
3437//bitfield VkDebugUtilsMessengerCreateFlagBitsEXT {
3438//}
3439
3440@extension("VK_EXT_debug_utils") // 129
3441type VkFlags VkDebugUtilsMessageSeverityFlagsEXT
3442@extension("VK_EXT_debug_utils") // 129
3443bitfield VkDebugUtilsMessageSeverityFlagBitsEXT {
3444 VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT = 0x00000001,
3445 VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT = 0x00000010,
3446 VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT = 0x00000100,
3447 VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT = 0x00001000,
3448}
3449
3450@extension("VK_EXT_debug_utils") // 129
3451type VkFlags VkDebugUtilsMessageTypeFlagsEXT
3452@extension("VK_EXT_debug_utils") // 129
3453bitfield VkDebugUtilsMessageTypeFlagBitsEXT {
3454 VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT = 0x00000001,
3455 VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT = 0x00000002,
3456 VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT = 0x00000004,
3457}
3458
Jesse Hall7ba0ac72017-07-07 17:13:23 -07003459@extension("VK_NV_fragment_coverage_to_color") // 150
3460type VkFlags VkPipelineCoverageToColorStateCreateFlagsNV
3461@extension("VK_NV_fragment_coverage_to_color") // 150
3462//bitfield VkPipelineCoverageToColorStateCreateFlagBitsNV {
3463//}
3464
3465@extension("VK_NV_framebuffer_mixed_samples") // 153
3466type VkFlags VkPipelineCoverageModulationStateCreateFlagsNV
3467@extension("VK_NV_framebuffer_mixed_samples") // 153
3468//bitfield VkPipelineCoverageModulationStateCreateFlagBitsNV {
3469//}
3470
Jesse Hall77726222017-09-19 14:49:27 -05003471@extension("VK_EXT_validation_cache") // 161
3472type VkFlags VkValidationCacheCreateFlagsEXT
3473@extension("VK_EXT_validation_cache") // 161
3474//bitfield VkValidationCacheCreateFlagBitsEXT {
3475//}
3476
Jesse Hall72e6a132018-04-06 13:00:44 -07003477@extension("VK_EXT_descriptor_indexing") // 162
3478type VkFlags VkDescriptorBindingFlagsEXT
3479@extension("VK_EXT_descriptor_indexing") // 162
3480bitfield VkDescriptorBindingFlagBitsEXT {
3481 VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT_EXT = 0x00000001,
3482 VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT_EXT = 0x00000002,
3483 VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT_EXT = 0x00000004,
3484 VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT_EXT = 0x00000008,
3485}
3486
Jesse Hallb5297192018-09-22 20:52:13 +02003487@extension("VK_NVX_raytracing") // 166
3488type VkFlags VkGeometryFlagsNVX
3489@extension("VK_NVX_raytracing") // 166
3490bitfield VkGeometryFlagBitsNVX {
3491 VK_GEOMETRY_OPAQUE_BIT_NVX = 0x00000001,
3492 VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_NVX = 0x00000002,
3493}
3494
3495@extension("VK_NVX_raytracing") // 166
3496type VkFlags VkGeometryInstanceFlagsNVX
3497@extension("VK_NVX_raytracing") // 166
3498bitfield VkGeometryInstanceFlagBitsNVX {
3499 VK_GEOMETRY_INSTANCE_TRIANGLE_CULL_DISABLE_BIT_NVX = 0x00000001,
3500 VK_GEOMETRY_INSTANCE_TRIANGLE_CULL_FLIP_WINDING_BIT_NVX = 0x00000002,
3501 VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_NVX = 0x00000004,
3502 VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_NVX = 0x00000008,
3503}
3504
3505@extension("VK_NVX_raytracing") // 166
3506type VkFlags VkBuildAccelerationStructureFlagsNVX
3507@extension("VK_NVX_raytracing") // 166
3508bitfield VkBuildAccelerationStructureFlagBitsNVX {
3509 VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_NVX = 0x00000001,
3510 VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_NVX = 0x00000002,
3511 VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_NVX = 0x00000004,
3512 VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_NVX = 0x00000008,
3513 VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_NVX = 0x00000010,
3514}
3515
Jesse Hall497c46f2018-10-08 12:52:48 -07003516@extension("VK_FUCHSIA_imagepipe_surface") // 215
3517type VkFlags VkImagePipeSurfaceCreateFlagsFUCHSIA
3518//@extension("VK_FUCHSIA_imagepipe_surface") // 215
3519//bitfield VkImagePipeSurfaceCreateFlagBitsFUCHSIA {
3520//}
3521
Jesse Halld27f6aa2015-08-15 17:58:48 -07003522//////////////////
3523// Structures //
3524//////////////////
3525
3526class VkOffset2D {
3527 s32 x
3528 s32 y
3529}
3530
3531class VkOffset3D {
3532 s32 x
3533 s32 y
3534 s32 z
3535}
3536
3537class VkExtent2D {
Jesse Hall3dd678a2016-01-08 21:52:01 -08003538 u32 width
3539 u32 height
Jesse Halld27f6aa2015-08-15 17:58:48 -07003540}
3541
3542class VkExtent3D {
Jesse Hall3dd678a2016-01-08 21:52:01 -08003543 u32 width
3544 u32 height
3545 u32 depth
Jesse Halld27f6aa2015-08-15 17:58:48 -07003546}
3547
3548class VkViewport {
Jesse Hall65ab5522015-11-30 00:07:16 -08003549 f32 x
3550 f32 y
Jesse Halld27f6aa2015-08-15 17:58:48 -07003551 f32 width
3552 f32 height
3553 f32 minDepth
3554 f32 maxDepth
3555}
3556
3557class VkRect2D {
3558 VkOffset2D offset
3559 VkExtent2D extent
3560}
3561
Jesse Halla15a4bf2015-11-19 22:48:02 -08003562class VkClearRect {
3563 VkRect2D rect
3564 u32 baseArrayLayer
Jesse Hall3fbc8562015-11-29 22:10:52 -08003565 u32 layerCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07003566}
3567
Jesse Hall65ab5522015-11-30 00:07:16 -08003568class VkComponentMapping {
3569 VkComponentSwizzle r
3570 VkComponentSwizzle g
3571 VkComponentSwizzle b
3572 VkComponentSwizzle a
Jesse Halld27f6aa2015-08-15 17:58:48 -07003573}
3574
3575class VkPhysicalDeviceProperties {
3576 u32 apiVersion
3577 u32 driverVersion
Jesse Hall65ab5522015-11-30 00:07:16 -08003578 u32 vendorID
3579 u32 deviceID
Jesse Halld27f6aa2015-08-15 17:58:48 -07003580 VkPhysicalDeviceType deviceType
Jesse Hall65ab5522015-11-30 00:07:16 -08003581 char[VK_MAX_PHYSICAL_DEVICE_NAME_SIZE] deviceName
3582 u8[VK_UUID_SIZE] pipelineCacheUUID
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003583 VkPhysicalDeviceLimits limits
3584 VkPhysicalDeviceSparseProperties sparseProperties
Jesse Halld27f6aa2015-08-15 17:58:48 -07003585}
3586
3587class VkExtensionProperties {
Jesse Hall65ab5522015-11-30 00:07:16 -08003588 char[VK_MAX_EXTENSION_NAME_SIZE] extensionName /// extension name
Jesse Halld27f6aa2015-08-15 17:58:48 -07003589 u32 specVersion /// version of the extension specification implemented
3590}
3591
3592class VkLayerProperties {
Jesse Hall65ab5522015-11-30 00:07:16 -08003593 char[VK_MAX_EXTENSION_NAME_SIZE] layerName /// layer name
Jesse Hall3fbc8562015-11-29 22:10:52 -08003594 u32 specVersion /// version of the layer specification implemented
3595 u32 implementationVersion /// build or release version of the layer's library
Jesse Hall65ab5522015-11-30 00:07:16 -08003596 char[VK_MAX_DESCRIPTION_SIZE] description /// Free-form description of the layer
Jesse Halld27f6aa2015-08-15 17:58:48 -07003597}
3598
Jesse Halla366a512015-11-19 22:30:07 -08003599class VkSubmitInfo {
Jesse Hall03b6fe12015-11-24 12:44:21 -08003600 VkStructureType sType /// Type of structure. Should be VK_STRUCTURE_TYPE_SUBMIT_INFO
3601 const void* pNext /// Next structure in chain
3602 u32 waitSemaphoreCount
Jesse Halla366a512015-11-19 22:30:07 -08003603 const VkSemaphore* pWaitSemaphores
Jesse Hall543a7ff2016-01-08 16:38:30 -08003604 const VkPipelineStageFlags* pWaitDstStageMask
Jesse Hall03b6fe12015-11-24 12:44:21 -08003605 u32 commandBufferCount
Jesse Hall3fbc8562015-11-29 22:10:52 -08003606 const VkCommandBuffer* pCommandBuffers
Jesse Hall03b6fe12015-11-24 12:44:21 -08003607 u32 signalSemaphoreCount
Jesse Halla366a512015-11-19 22:30:07 -08003608 const VkSemaphore* pSignalSemaphores
3609}
3610
Jesse Halld27f6aa2015-08-15 17:58:48 -07003611class VkApplicationInfo {
3612 VkStructureType sType /// Type of structure. Should be VK_STRUCTURE_TYPE_APPLICATION_INFO
3613 const void* pNext /// Next structure in chain
Jesse Hall3fbc8562015-11-29 22:10:52 -08003614 const char* pApplicationName
3615 u32 applicationVersion
Jesse Halld27f6aa2015-08-15 17:58:48 -07003616 const char* pEngineName
3617 u32 engineVersion
3618 u32 apiVersion
3619}
3620
Jesse Hall3fbc8562015-11-29 22:10:52 -08003621class VkAllocationCallbacks {
Jesse Halld27f6aa2015-08-15 17:58:48 -07003622 void* pUserData
Jesse Hall3fbc8562015-11-29 22:10:52 -08003623 PFN_vkAllocationFunction pfnAllocation
3624 PFN_vkReallocationFunction pfnReallocation
Jesse Halld27f6aa2015-08-15 17:58:48 -07003625 PFN_vkFreeFunction pfnFree
Jesse Hall3fbc8562015-11-29 22:10:52 -08003626 PFN_vkInternalAllocationNotification pfnInternalAllocation
Jesse Hall03b6fe12015-11-24 12:44:21 -08003627 PFN_vkInternalFreeNotification pfnInternalFree
Jesse Halld27f6aa2015-08-15 17:58:48 -07003628}
3629
3630class VkDeviceQueueCreateInfo {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003631 VkStructureType sStype /// Should be VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO
3632 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003633 VkDeviceQueueCreateFlags flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07003634 u32 queueFamilyIndex
Jesse Halldba27f72015-11-30 14:25:46 -08003635 u32 queueCount
Jesse Hallfbf97b02015-11-20 14:17:03 -08003636 const f32* pQueuePriorities
Jesse Halld27f6aa2015-08-15 17:58:48 -07003637}
3638
3639class VkDeviceCreateInfo {
3640 VkStructureType sType /// Should be VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO
3641 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003642 VkDeviceCreateFlags flags
Jesse Halldba27f72015-11-30 14:25:46 -08003643 u32 queueCreateInfoCount
3644 const VkDeviceQueueCreateInfo* pQueueCreateInfos
Jesse Hall3dd678a2016-01-08 21:52:01 -08003645 u32 enabledLayerCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07003646 const char* const* ppEnabledLayerNames /// Ordered list of layer names to be enabled
Jesse Hall3dd678a2016-01-08 21:52:01 -08003647 u32 enabledExtensionCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07003648 const char* const* ppEnabledExtensionNames
3649 const VkPhysicalDeviceFeatures* pEnabledFeatures
Jesse Halld27f6aa2015-08-15 17:58:48 -07003650}
3651
3652class VkInstanceCreateInfo {
3653 VkStructureType sType /// Should be VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO
3654 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003655 VkInstanceCreateFlags flags
Jesse Hall3fbc8562015-11-29 22:10:52 -08003656 const VkApplicationInfo* pApplicationInfo
Jesse Hall3dd678a2016-01-08 21:52:01 -08003657 u32 enabledLayerCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07003658 const char* const* ppEnabledLayerNames /// Ordered list of layer names to be enabled
Jesse Hall3dd678a2016-01-08 21:52:01 -08003659 u32 enabledExtensionCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07003660 const char* const* ppEnabledExtensionNames /// Extension names to be enabled
3661}
3662
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003663class VkQueueFamilyProperties {
Jesse Halld27f6aa2015-08-15 17:58:48 -07003664 VkQueueFlags queueFlags /// Queue flags
3665 u32 queueCount
Jesse Hallacfa5342015-11-19 21:51:33 -08003666 u32 timestampValidBits
Jesse Hall65ab5522015-11-30 00:07:16 -08003667 VkExtent3D minImageTransferGranularity
Jesse Halld27f6aa2015-08-15 17:58:48 -07003668}
3669
3670class VkPhysicalDeviceMemoryProperties {
3671 u32 memoryTypeCount
3672 VkMemoryType[VK_MAX_MEMORY_TYPES] memoryTypes
3673 u32 memoryHeapCount
3674 VkMemoryHeap[VK_MAX_MEMORY_HEAPS] memoryHeaps
3675}
3676
Jesse Hall3fbc8562015-11-29 22:10:52 -08003677class VkMemoryAllocateInfo {
Jesse Hallf4ab2b12015-11-30 16:04:55 -08003678 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO
Jesse Halld27f6aa2015-08-15 17:58:48 -07003679 const void* pNext /// Pointer to next structure
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003680 VkDeviceSize allocationSize /// Size of memory allocation
Jesse Halld27f6aa2015-08-15 17:58:48 -07003681 u32 memoryTypeIndex /// Index of the of the memory type to allocate from
3682}
3683
3684class VkMemoryRequirements {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003685 VkDeviceSize size /// Specified in bytes
3686 VkDeviceSize alignment /// Specified in bytes
Jesse Halld27f6aa2015-08-15 17:58:48 -07003687 u32 memoryTypeBits /// Bitfield of the allowed memory type indices into memoryTypes[] for this object
3688}
3689
3690class VkSparseImageFormatProperties {
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08003691 VkImageAspectFlagBits aspectMask
Jesse Halld27f6aa2015-08-15 17:58:48 -07003692 VkExtent3D imageGranularity
3693 VkSparseImageFormatFlags flags
3694}
3695
3696class VkSparseImageMemoryRequirements {
Jesse Hallb00daad2015-11-29 19:46:20 -08003697 VkSparseImageFormatProperties formatProperties
Jesse Hallf9fa9a52016-01-08 16:08:51 -08003698 u32 imageMipTailFirstLod
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003699 VkDeviceSize imageMipTailSize /// Specified in bytes, must be a multiple of image block size / alignment
3700 VkDeviceSize imageMipTailOffset /// Specified in bytes, must be a multiple of image block size / alignment
3701 VkDeviceSize imageMipTailStride /// Specified in bytes, must be a multiple of image block size / alignment
Jesse Halld27f6aa2015-08-15 17:58:48 -07003702}
3703
3704class VkMemoryType {
3705 VkMemoryPropertyFlags propertyFlags /// Memory properties of this memory type
3706 u32 heapIndex /// Index of the memory heap allocations of this memory type are taken from
3707}
3708
3709class VkMemoryHeap {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003710 VkDeviceSize size /// Available memory in the heap
Jesse Halld27f6aa2015-08-15 17:58:48 -07003711 VkMemoryHeapFlags flags /// Flags for the heap
3712}
3713
3714class VkMappedMemoryRange {
3715 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE
3716 const void* pNext /// Pointer to next structure
Jesse Hall3fbc8562015-11-29 22:10:52 -08003717 VkDeviceMemory memory /// Mapped memory object
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003718 VkDeviceSize offset /// Offset within the mapped memory the range starts from
3719 VkDeviceSize size /// Size of the range within the mapped memory
Jesse Halld27f6aa2015-08-15 17:58:48 -07003720}
3721
3722class VkFormatProperties {
3723 VkFormatFeatureFlags linearTilingFeatures /// Format features in case of linear tiling
3724 VkFormatFeatureFlags optimalTilingFeatures /// Format features in case of optimal tiling
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003725 VkFormatFeatureFlags bufferFeatures /// Format features supported by buffers
Jesse Halld27f6aa2015-08-15 17:58:48 -07003726}
3727
3728class VkImageFormatProperties {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003729 VkExtent3D maxExtent /// max image dimensions for this resource type
3730 u32 maxMipLevels /// max number of mipmap levels for this resource type
Jesse Halla15a4bf2015-11-19 22:48:02 -08003731 u32 maxArrayLayers /// max array layers for this resource type
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003732 VkSampleCountFlags sampleCounts /// supported sample counts for this resource type
3733 VkDeviceSize maxResourceSize /// max size (in bytes) of this resource type
3734}
3735
Jesse Halla15a4bf2015-11-19 22:48:02 -08003736class VkDescriptorImageInfo {
3737 VkSampler sampler
3738 VkImageView imageView
3739 VkImageLayout imageLayout
3740}
3741
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003742class VkDescriptorBufferInfo {
3743 VkBuffer buffer /// Buffer used for this descriptor when the descriptor is UNIFORM_BUFFER[_DYNAMIC]
3744 VkDeviceSize offset /// Base offset from buffer start in bytes to update in the descriptor set.
3745 VkDeviceSize range /// Size in bytes of the buffer resource for this descriptor update.
Jesse Halld27f6aa2015-08-15 17:58:48 -07003746}
3747
Jesse Halld27f6aa2015-08-15 17:58:48 -07003748class VkWriteDescriptorSet {
3749 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET
3750 const void* pNext /// Pointer to next structure
Jesse Hall3fbc8562015-11-29 22:10:52 -08003751 VkDescriptorSet dstSet /// Destination descriptor set
3752 u32 dstBinding /// Binding within the destination descriptor set to write
3753 u32 dstArrayElement /// Array element within the destination binding to write
Jesse Hall03b6fe12015-11-24 12:44:21 -08003754 u32 descriptorCount /// Number of descriptors to write (determines the size of the array pointed by <pDescriptors>)
Jesse Halld27f6aa2015-08-15 17:58:48 -07003755 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 -08003756 const VkDescriptorImageInfo* pImageInfo
3757 const VkDescriptorBufferInfo* pBufferInfo
3758 const VkBufferView* pTexelBufferView
Jesse Halld27f6aa2015-08-15 17:58:48 -07003759}
3760
3761class VkCopyDescriptorSet {
3762 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET
3763 const void* pNext /// Pointer to next structure
3764 VkDescriptorSet srcSet /// Source descriptor set
3765 u32 srcBinding /// Binding within the source descriptor set to copy from
3766 u32 srcArrayElement /// Array element within the source binding to copy from
Jesse Hall3fbc8562015-11-29 22:10:52 -08003767 VkDescriptorSet dstSet /// Destination descriptor set
3768 u32 dstBinding /// Binding within the destination descriptor set to copy to
3769 u32 dstArrayElement /// Array element within the destination binding to copy to
Jesse Hall03b6fe12015-11-24 12:44:21 -08003770 u32 descriptorCount /// Number of descriptors to copy
Jesse Halld27f6aa2015-08-15 17:58:48 -07003771}
3772
3773class VkBufferCreateInfo {
3774 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO
3775 const void* pNext /// Pointer to next structure.
Jesse Halla6429252015-11-29 18:59:42 -08003776 VkBufferCreateFlags flags /// Buffer creation flags
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003777 VkDeviceSize size /// Specified in bytes
Jesse Halld27f6aa2015-08-15 17:58:48 -07003778 VkBufferUsageFlags usage /// Buffer usage flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07003779 VkSharingMode sharingMode
Jesse Hall03b6fe12015-11-24 12:44:21 -08003780 u32 queueFamilyIndexCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07003781 const u32* pQueueFamilyIndices
3782}
3783
3784class VkBufferViewCreateInfo {
3785 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO
3786 const void* pNext /// Pointer to next structure.
Jesse Halla6429252015-11-29 18:59:42 -08003787 VkBufferViewCreateFlags flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07003788 VkBuffer buffer
Jesse Halld27f6aa2015-08-15 17:58:48 -07003789 VkFormat format /// Optionally specifies format of elements
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003790 VkDeviceSize offset /// Specified in bytes
3791 VkDeviceSize range /// View size specified in bytes
Jesse Halld27f6aa2015-08-15 17:58:48 -07003792}
3793
3794class VkImageSubresource {
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08003795 VkImageAspectFlagBits aspectMask
Jesse Halld27f6aa2015-08-15 17:58:48 -07003796 u32 mipLevel
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003797 u32 arrayLayer
Jesse Halld27f6aa2015-08-15 17:58:48 -07003798}
3799
3800class VkImageSubresourceRange {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003801 VkImageAspectFlags aspectMask
Jesse Halld27f6aa2015-08-15 17:58:48 -07003802 u32 baseMipLevel
Jesse Hall3fbc8562015-11-29 22:10:52 -08003803 u32 levelCount
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003804 u32 baseArrayLayer
Jesse Hall3fbc8562015-11-29 22:10:52 -08003805 u32 layerCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07003806}
3807
3808class VkMemoryBarrier {
3809 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_MEMORY_BARRIER
3810 const void* pNext /// Pointer to next structure.
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08003811 VkAccessFlags srcAccessMask
3812 VkAccessFlags dstAccessMask
Jesse Halld27f6aa2015-08-15 17:58:48 -07003813}
3814
3815class VkBufferMemoryBarrier {
3816 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER
3817 const void* pNext /// Pointer to next structure.
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08003818 VkAccessFlags srcAccessMask
3819 VkAccessFlags dstAccessMask
Jesse Halld27f6aa2015-08-15 17:58:48 -07003820 u32 srcQueueFamilyIndex /// Queue family to transition ownership from
Jesse Hall3fbc8562015-11-29 22:10:52 -08003821 u32 dstQueueFamilyIndex /// Queue family to transition ownership to
Jesse Halld27f6aa2015-08-15 17:58:48 -07003822 VkBuffer buffer /// Buffer to sync
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003823 VkDeviceSize offset /// Offset within the buffer to sync
3824 VkDeviceSize size /// Amount of bytes to sync
Jesse Halld27f6aa2015-08-15 17:58:48 -07003825}
3826
3827class VkImageMemoryBarrier {
3828 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER
3829 const void* pNext /// Pointer to next structure.
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08003830 VkAccessFlags srcAccessMask
3831 VkAccessFlags dstAccessMask
Jesse Halld27f6aa2015-08-15 17:58:48 -07003832 VkImageLayout oldLayout /// Current layout of the image
3833 VkImageLayout newLayout /// New layout to transition the image to
3834 u32 srcQueueFamilyIndex /// Queue family to transition ownership from
Jesse Hall3fbc8562015-11-29 22:10:52 -08003835 u32 dstQueueFamilyIndex /// Queue family to transition ownership to
Jesse Halld27f6aa2015-08-15 17:58:48 -07003836 VkImage image /// Image to sync
3837 VkImageSubresourceRange subresourceRange /// Subresource range to sync
3838}
3839
3840class VkImageCreateInfo {
3841 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO
3842 const void* pNext /// Pointer to next structure.
Jesse Halla6429252015-11-29 18:59:42 -08003843 VkImageCreateFlags flags /// Image creation flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07003844 VkImageType imageType
3845 VkFormat format
3846 VkExtent3D extent
3847 u32 mipLevels
Jesse Halla15a4bf2015-11-19 22:48:02 -08003848 u32 arrayLayers
Jesse Hall091ed9e2015-11-30 00:55:29 -08003849 VkSampleCountFlagBits samples
Jesse Halld27f6aa2015-08-15 17:58:48 -07003850 VkImageTiling tiling
3851 VkImageUsageFlags usage /// Image usage flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07003852 VkSharingMode sharingMode /// Cross-queue-family sharing mode
Jesse Hall03b6fe12015-11-24 12:44:21 -08003853 u32 queueFamilyIndexCount /// Number of queue families to share across
Jesse Halld27f6aa2015-08-15 17:58:48 -07003854 const u32* pQueueFamilyIndices /// Array of queue family indices to share across
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003855 VkImageLayout initialLayout /// Initial image layout for all subresources
Jesse Halld27f6aa2015-08-15 17:58:48 -07003856}
3857
3858class VkSubresourceLayout {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003859 VkDeviceSize offset /// Specified in bytes
3860 VkDeviceSize size /// Specified in bytes
3861 VkDeviceSize rowPitch /// Specified in bytes
Jesse Hall543a7ff2016-01-08 16:38:30 -08003862 VkDeviceSize arrayPitch /// Specified in bytes
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003863 VkDeviceSize depthPitch /// Specified in bytes
Jesse Halld27f6aa2015-08-15 17:58:48 -07003864}
3865
3866class VkImageViewCreateInfo {
3867 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO
3868 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003869 VkImageViewCreateFlags flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07003870 VkImage image
3871 VkImageViewType viewType
3872 VkFormat format
Jesse Hall65ab5522015-11-30 00:07:16 -08003873 VkComponentMapping components
Jesse Halld27f6aa2015-08-15 17:58:48 -07003874 VkImageSubresourceRange subresourceRange
Jesse Halld27f6aa2015-08-15 17:58:48 -07003875}
3876
3877class VkBufferCopy {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003878 VkDeviceSize srcOffset /// Specified in bytes
Jesse Hall3fbc8562015-11-29 22:10:52 -08003879 VkDeviceSize dstOffset /// Specified in bytes
Jesse Hallb00daad2015-11-29 19:46:20 -08003880 VkDeviceSize size /// Specified in bytes
Jesse Halld27f6aa2015-08-15 17:58:48 -07003881}
3882
Jesse Halla6429252015-11-29 18:59:42 -08003883class VkSparseMemoryBind {
Jesse Hallb00daad2015-11-29 19:46:20 -08003884 VkDeviceSize resourceOffset /// Specified in bytes
3885 VkDeviceSize size /// Specified in bytes
Jesse Hall3fbc8562015-11-29 22:10:52 -08003886 VkDeviceMemory memory
3887 VkDeviceSize memoryOffset /// Specified in bytes
Jesse Halld27f6aa2015-08-15 17:58:48 -07003888 VkSparseMemoryBindFlags flags
3889}
3890
Jesse Halla6429252015-11-29 18:59:42 -08003891class VkSparseImageMemoryBind {
Jesse Halld27f6aa2015-08-15 17:58:48 -07003892 VkImageSubresource subresource
3893 VkOffset3D offset
3894 VkExtent3D extent
Jesse Hall3fbc8562015-11-29 22:10:52 -08003895 VkDeviceMemory memory
3896 VkDeviceSize memoryOffset /// Specified in bytes
Jesse Halld27f6aa2015-08-15 17:58:48 -07003897 VkSparseMemoryBindFlags flags
3898}
3899
Jesse Halla6429252015-11-29 18:59:42 -08003900class VkSparseBufferMemoryBindInfo {
3901 VkBuffer buffer
3902 u32 bindCount
3903 const VkSparseMemoryBind* pBinds
3904}
3905
3906class VkSparseImageOpaqueMemoryBindInfo {
3907 VkImage image
3908 u32 bindCount
3909 const VkSparseMemoryBind* pBinds
3910}
3911
3912class VkSparseImageMemoryBindInfo {
3913 VkImage image
3914 u32 bindCount
3915 const VkSparseMemoryBind* pBinds
3916}
3917
3918class VkBindSparseInfo {
3919 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_BIND_SPARSE_INFO
3920 const void* pNext
3921 u32 waitSemaphoreCount
3922 const VkSemaphore* pWaitSemaphores
3923 u32 numBufferBinds
3924 const VkSparseBufferMemoryBindInfo* pBufferBinds
3925 u32 numImageOpaqueBinds
3926 const VkSparseImageOpaqueMemoryBindInfo* pImageOpaqueBinds
3927 u32 numImageBinds
3928 const VkSparseImageMemoryBindInfo* pImageBinds
3929 u32 signalSemaphoreCount
3930 const VkSemaphore* pSignalSemaphores
3931}
3932
Jesse Hall65ab5522015-11-30 00:07:16 -08003933class VkImageSubresourceLayers {
3934 VkImageAspectFlags aspectMask
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003935 u32 mipLevel
Jesse Halla15a4bf2015-11-19 22:48:02 -08003936 u32 baseArrayLayer
Jesse Hall3fbc8562015-11-29 22:10:52 -08003937 u32 layerCount
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003938}
3939
Jesse Halld27f6aa2015-08-15 17:58:48 -07003940class VkImageCopy {
Jesse Hall65ab5522015-11-30 00:07:16 -08003941 VkImageSubresourceLayers srcSubresource
Jesse Halld27f6aa2015-08-15 17:58:48 -07003942 VkOffset3D srcOffset /// Specified in pixels for both compressed and uncompressed images
Jesse Hall65ab5522015-11-30 00:07:16 -08003943 VkImageSubresourceLayers dstSubresource
Jesse Hall3fbc8562015-11-29 22:10:52 -08003944 VkOffset3D dstOffset /// Specified in pixels for both compressed and uncompressed images
Jesse Halld27f6aa2015-08-15 17:58:48 -07003945 VkExtent3D extent /// Specified in pixels for both compressed and uncompressed images
3946}
3947
3948class VkImageBlit {
Jesse Hall65ab5522015-11-30 00:07:16 -08003949 VkImageSubresourceLayers srcSubresource
Jesse Hall3dd678a2016-01-08 21:52:01 -08003950 VkOffset3D[2] srcOffsets
Jesse Hall65ab5522015-11-30 00:07:16 -08003951 VkImageSubresourceLayers dstSubresource
Jesse Hall3dd678a2016-01-08 21:52:01 -08003952 VkOffset3D[2] dstOffsets
Jesse Halld27f6aa2015-08-15 17:58:48 -07003953}
3954
3955class VkBufferImageCopy {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003956 VkDeviceSize bufferOffset /// Specified in bytes
Jesse Halld27f6aa2015-08-15 17:58:48 -07003957 u32 bufferRowLength /// Specified in texels
3958 u32 bufferImageHeight
Jesse Hall65ab5522015-11-30 00:07:16 -08003959 VkImageSubresourceLayers imageSubresource
Jesse Halld27f6aa2015-08-15 17:58:48 -07003960 VkOffset3D imageOffset /// Specified in pixels for both compressed and uncompressed images
3961 VkExtent3D imageExtent /// Specified in pixels for both compressed and uncompressed images
3962}
3963
3964class VkImageResolve {
Jesse Hall65ab5522015-11-30 00:07:16 -08003965 VkImageSubresourceLayers srcSubresource
Jesse Halld27f6aa2015-08-15 17:58:48 -07003966 VkOffset3D srcOffset
Jesse Hall65ab5522015-11-30 00:07:16 -08003967 VkImageSubresourceLayers dstSubresource
Jesse Hall3fbc8562015-11-29 22:10:52 -08003968 VkOffset3D dstOffset
Jesse Halld27f6aa2015-08-15 17:58:48 -07003969 VkExtent3D extent
3970}
3971
3972class VkShaderModuleCreateInfo {
3973 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO
3974 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003975 VkShaderModuleCreateFlags flags /// Reserved
Jesse Halld27f6aa2015-08-15 17:58:48 -07003976 platform.size_t codeSize /// Specified in bytes
Jesse Halla9bb62b2015-11-21 19:31:56 -08003977 const u32* pCode /// Binary code of size codeSize
Jesse Halld27f6aa2015-08-15 17:58:48 -07003978}
3979
Jesse Halld27f6aa2015-08-15 17:58:48 -07003980class VkDescriptorSetLayoutBinding {
Jesse Hall091ed9e2015-11-30 00:55:29 -08003981 u32 binding
Jesse Halld27f6aa2015-08-15 17:58:48 -07003982 VkDescriptorType descriptorType /// Type of the descriptors in this binding
Jesse Halldba27f72015-11-30 14:25:46 -08003983 u32 descriptorCount /// Number of descriptors in this binding
Jesse Halld27f6aa2015-08-15 17:58:48 -07003984 VkShaderStageFlags stageFlags /// Shader stages this binding is visible to
3985 const VkSampler* pImmutableSamplers /// Immutable samplers (used if descriptor type is SAMPLER or COMBINED_IMAGE_SAMPLER, is either NULL or contains <count> number of elements)
3986}
3987
3988class VkDescriptorSetLayoutCreateInfo {
3989 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO
3990 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003991 VkDescriptorSetLayoutCreateFlags flags
Jesse Hall03b6fe12015-11-24 12:44:21 -08003992 u32 bindingCount /// Number of bindings in the descriptor set layout
Jesse Hall543a7ff2016-01-08 16:38:30 -08003993 const VkDescriptorSetLayoutBinding* pBindings /// Array of descriptor set layout bindings
Jesse Halld27f6aa2015-08-15 17:58:48 -07003994}
3995
Jesse Hall65ab5522015-11-30 00:07:16 -08003996class VkDescriptorPoolSize {
Jesse Halld27f6aa2015-08-15 17:58:48 -07003997 VkDescriptorType type
Jesse Hall03b6fe12015-11-24 12:44:21 -08003998 u32 descriptorCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07003999}
4000
4001class VkDescriptorPoolCreateInfo {
4002 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO
4003 const void* pNext /// Pointer to next structure
Jesse Hallfbf97b02015-11-20 14:17:03 -08004004 VkDescriptorPoolCreateFlags flags
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004005 u32 maxSets
Jesse Hall65ab5522015-11-30 00:07:16 -08004006 u32 poolSizeCount
4007 const VkDescriptorPoolSize* pPoolSizes
Jesse Halld27f6aa2015-08-15 17:58:48 -07004008}
4009
Jesse Hall3fbc8562015-11-29 22:10:52 -08004010class VkDescriptorSetAllocateInfo {
Jesse Hallf4ab2b12015-11-30 16:04:55 -08004011 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO
Jesse Hallfbf97b02015-11-20 14:17:03 -08004012 const void* pNext /// Pointer to next structure
4013 VkDescriptorPool descriptorPool
Jesse Hall03b6fe12015-11-24 12:44:21 -08004014 u32 setCount
Jesse Hallfbf97b02015-11-20 14:17:03 -08004015 const VkDescriptorSetLayout* pSetLayouts
4016}
4017
Jesse Halld27f6aa2015-08-15 17:58:48 -07004018class VkSpecializationMapEntry {
Jesse Hall65ab5522015-11-30 00:07:16 -08004019 u32 constantID /// The SpecConstant ID specified in the BIL
Jesse Halld27f6aa2015-08-15 17:58:48 -07004020 u32 offset /// Offset of the value in the data block
Jesse Hallb00daad2015-11-29 19:46:20 -08004021 platform.size_t size /// Size in bytes of the SpecConstant
Jesse Halld27f6aa2015-08-15 17:58:48 -07004022}
4023
4024class VkSpecializationInfo {
4025 u32 mapEntryCount /// Number of entries in the map
Jesse Hallb00daad2015-11-29 19:46:20 -08004026 const VkSpecializationMapEntry* pMapEntries /// Array of map entries
Jesse Halld27f6aa2015-08-15 17:58:48 -07004027 platform.size_t dataSize /// Size in bytes of pData
4028 const void* pData /// Pointer to SpecConstant data
4029}
4030
4031class VkPipelineShaderStageCreateInfo {
4032 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO
4033 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08004034 VkPipelineShaderStageCreateFlags flags
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08004035 VkShaderStageFlagBits stage
4036 VkShaderModule module
4037 const char* pName
Jesse Halld27f6aa2015-08-15 17:58:48 -07004038 const VkSpecializationInfo* pSpecializationInfo
4039}
4040
4041class VkComputePipelineCreateInfo {
4042 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO
4043 const void* pNext /// Pointer to next structure
Jesse Halld27f6aa2015-08-15 17:58:48 -07004044 VkPipelineCreateFlags flags /// Pipeline creation flags
Jesse Halla6429252015-11-29 18:59:42 -08004045 VkPipelineShaderStageCreateInfo stage
Jesse Halld27f6aa2015-08-15 17:58:48 -07004046 VkPipelineLayout layout /// Interface layout of the pipeline
4047 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
4048 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
4049}
4050
4051class VkVertexInputBindingDescription {
Jesse Hallb00daad2015-11-29 19:46:20 -08004052 u32 binding /// Vertex buffer binding id
4053 u32 stride /// Distance between vertices in bytes (0 = no advancement)
Jesse Hall65ab5522015-11-30 00:07:16 -08004054 VkVertexInputRate inputRate /// Rate at which binding is incremented
Jesse Halld27f6aa2015-08-15 17:58:48 -07004055}
4056
4057class VkVertexInputAttributeDescription {
Jesse Hallb00daad2015-11-29 19:46:20 -08004058 u32 location /// location of the shader vertex attrib
4059 u32 binding /// Vertex buffer binding id
4060 VkFormat format /// format of source data
4061 u32 offset /// Offset of first element in bytes from base of vertex
Jesse Halld27f6aa2015-08-15 17:58:48 -07004062}
4063
4064class VkPipelineVertexInputStateCreateInfo {
Jesse Hall03b6fe12015-11-24 12:44:21 -08004065 VkStructureType sType /// Should be VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO
4066 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08004067 VkPipelineVertexInputStateCreateFlags flags
Jesse Hall03b6fe12015-11-24 12:44:21 -08004068 u32 vertexBindingDescriptionCount /// number of bindings
Jesse Halld27f6aa2015-08-15 17:58:48 -07004069 const VkVertexInputBindingDescription* pVertexBindingDescriptions
Jesse Hall03b6fe12015-11-24 12:44:21 -08004070 u32 vertexAttributeDescriptionCount /// number of attributes
Jesse Halld27f6aa2015-08-15 17:58:48 -07004071 const VkVertexInputAttributeDescription* pVertexAttributeDescriptions
4072}
4073
4074class VkPipelineInputAssemblyStateCreateInfo {
4075 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO
4076 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08004077 VkPipelineInputAssemblyStateCreateFlags flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07004078 VkPrimitiveTopology topology
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004079 VkBool32 primitiveRestartEnable
Jesse Halld27f6aa2015-08-15 17:58:48 -07004080}
4081
4082class VkPipelineTessellationStateCreateInfo {
4083 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO
4084 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08004085 VkPipelineTessellationStateCreateFlags flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07004086 u32 patchControlPoints
4087}
4088
4089class VkPipelineViewportStateCreateInfo {
4090 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO
4091 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08004092 VkPipelineViewportStateCreateFlags flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07004093 u32 viewportCount
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004094 const VkViewport* pViewports
4095 u32 scissorCount
4096 const VkRect2D* pScissors
Jesse Halld27f6aa2015-08-15 17:58:48 -07004097}
4098
Jesse Hall3fbc8562015-11-29 22:10:52 -08004099class VkPipelineRasterizationStateCreateInfo {
Jesse Hall65ab5522015-11-30 00:07:16 -08004100 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO
Jesse Halld27f6aa2015-08-15 17:58:48 -07004101 const void* pNext /// Pointer to next structure
Jesse Hall3fbc8562015-11-29 22:10:52 -08004102 VkPipelineRasterizationStateCreateFlags flags
Jesse Hallae38f732015-11-19 21:32:50 -08004103 VkBool32 depthClampEnable
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004104 VkBool32 rasterizerDiscardEnable
Jesse Hall65ab5522015-11-30 00:07:16 -08004105 VkPolygonMode polygonMode /// optional (GL45)
Jesse Hallc7467b72015-11-29 21:05:26 -08004106 VkCullModeFlags cullMode
Jesse Halld27f6aa2015-08-15 17:58:48 -07004107 VkFrontFace frontFace
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004108 VkBool32 depthBiasEnable
Jesse Halla9bb62b2015-11-21 19:31:56 -08004109 f32 depthBiasConstantFactor
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004110 f32 depthBiasClamp
Jesse Halla9bb62b2015-11-21 19:31:56 -08004111 f32 depthBiasSlopeFactor
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004112 f32 lineWidth
Jesse Halld27f6aa2015-08-15 17:58:48 -07004113}
4114
4115class VkPipelineMultisampleStateCreateInfo {
4116 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO
4117 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08004118 VkPipelineMultisampleStateCreateFlags flags
Jesse Hall091ed9e2015-11-30 00:55:29 -08004119 VkSampleCountFlagBits rasterizationSamples /// Number of samples used for rasterization
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004120 VkBool32 sampleShadingEnable /// optional (GL45)
Jesse Halld27f6aa2015-08-15 17:58:48 -07004121 f32 minSampleShading /// optional (GL45)
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004122 const VkSampleMask* pSampleMask
Jesse Hallacfa5342015-11-19 21:51:33 -08004123 VkBool32 alphaToCoverageEnable
4124 VkBool32 alphaToOneEnable
Jesse Halld27f6aa2015-08-15 17:58:48 -07004125}
4126
4127class VkPipelineColorBlendAttachmentState {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004128 VkBool32 blendEnable
Jesse Hall65ab5522015-11-30 00:07:16 -08004129 VkBlendFactor srcColorBlendFactor
4130 VkBlendFactor dstColorBlendFactor
4131 VkBlendOp colorBlendOp
4132 VkBlendFactor srcAlphaBlendFactor
4133 VkBlendFactor dstAlphaBlendFactor
4134 VkBlendOp alphaBlendOp
4135 VkColorComponentFlags colorWriteMask
Jesse Halld27f6aa2015-08-15 17:58:48 -07004136}
4137
4138class VkPipelineColorBlendStateCreateInfo {
4139 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO
4140 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08004141 VkPipelineColorBlendStateCreateFlags flags
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004142 VkBool32 logicOpEnable
Jesse Halld27f6aa2015-08-15 17:58:48 -07004143 VkLogicOp logicOp
4144 u32 attachmentCount /// # of pAttachments
4145 const VkPipelineColorBlendAttachmentState* pAttachments
Jesse Hallb00daad2015-11-29 19:46:20 -08004146 f32[4] blendConstants
Jesse Halld27f6aa2015-08-15 17:58:48 -07004147}
4148
4149class VkStencilOpState {
Jesse Hall65ab5522015-11-30 00:07:16 -08004150 VkStencilOp failOp
4151 VkStencilOp passOp
4152 VkStencilOp depthFailOp
4153 VkCompareOp compareOp
4154 u32 compareMask
4155 u32 writeMask
4156 u32 reference
Jesse Halld27f6aa2015-08-15 17:58:48 -07004157}
4158
4159class VkPipelineDepthStencilStateCreateInfo {
4160 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO
4161 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08004162 VkPipelineDepthStencilStateCreateFlags flags
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004163 VkBool32 depthTestEnable
4164 VkBool32 depthWriteEnable
Jesse Halld27f6aa2015-08-15 17:58:48 -07004165 VkCompareOp depthCompareOp
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004166 VkBool32 depthBoundsTestEnable /// optional (depth_bounds_test)
4167 VkBool32 stencilTestEnable
Jesse Halld27f6aa2015-08-15 17:58:48 -07004168 VkStencilOpState front
4169 VkStencilOpState back
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004170 f32 minDepthBounds
4171 f32 maxDepthBounds
4172}
4173
4174class VkPipelineDynamicStateCreateInfo {
4175 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO
4176 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08004177 VkPipelineDynamicStateCreateFlags flags
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004178 u32 dynamicStateCount
4179 const VkDynamicState* pDynamicStates
Jesse Halld27f6aa2015-08-15 17:58:48 -07004180}
4181
4182class VkGraphicsPipelineCreateInfo {
Jesse Halla6429252015-11-29 18:59:42 -08004183 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO
4184 const void* pNext /// Pointer to next structure
4185 VkPipelineCreateFlags flags /// Pipeline creation flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07004186 u32 stageCount
Jesse Halla6429252015-11-29 18:59:42 -08004187 const VkPipelineShaderStageCreateInfo* pStages /// One entry for each active shader stage
Jesse Halld27f6aa2015-08-15 17:58:48 -07004188 const VkPipelineVertexInputStateCreateInfo* pVertexInputState
4189 const VkPipelineInputAssemblyStateCreateInfo* pInputAssemblyState
4190 const VkPipelineTessellationStateCreateInfo* pTessellationState
4191 const VkPipelineViewportStateCreateInfo* pViewportState
Jesse Hall3fbc8562015-11-29 22:10:52 -08004192 const VkPipelineRasterizationStateCreateInfo* pRasterizationState
Jesse Halld27f6aa2015-08-15 17:58:48 -07004193 const VkPipelineMultisampleStateCreateInfo* pMultisampleState
4194 const VkPipelineDepthStencilStateCreateInfo* pDepthStencilState
4195 const VkPipelineColorBlendStateCreateInfo* pColorBlendState
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004196 const VkPipelineDynamicStateCreateInfo* pDynamicState
Jesse Halla6429252015-11-29 18:59:42 -08004197 VkPipelineLayout layout /// Interface layout of the pipeline
Jesse Halld27f6aa2015-08-15 17:58:48 -07004198 VkRenderPass renderPass
4199 u32 subpass
Jesse Halla6429252015-11-29 18:59:42 -08004200 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
4201 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 -07004202}
4203
4204class VkPipelineCacheCreateInfo {
Jesse Hallb00daad2015-11-29 19:46:20 -08004205 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO
4206 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08004207 VkPipelineCacheCreateFlags flags
Jesse Hallb00daad2015-11-29 19:46:20 -08004208 platform.size_t initialDataSize /// Size of initial data to populate cache, in bytes
4209 const void* pInitialData /// Initial data to populate cache
Jesse Halld27f6aa2015-08-15 17:58:48 -07004210}
4211
4212class VkPushConstantRange {
4213 VkShaderStageFlags stageFlags /// Which stages use the range
Jesse Hall03b6fe12015-11-24 12:44:21 -08004214 u32 offset /// Start of the range, in bytes
4215 u32 size /// Length of the range, in bytes
Jesse Halld27f6aa2015-08-15 17:58:48 -07004216}
4217
4218class VkPipelineLayoutCreateInfo {
4219 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO
4220 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08004221 VkPipelineLayoutCreateFlags flags
Jesse Hall3dd678a2016-01-08 21:52:01 -08004222 u32 descriptorSetCount /// Number of descriptor sets interfaced by the pipeline
Jesse Halld27f6aa2015-08-15 17:58:48 -07004223 const VkDescriptorSetLayout* pSetLayouts /// Array of <setCount> number of descriptor set layout objects defining the layout of the
4224 u32 pushConstantRangeCount /// Number of push-constant ranges used by the pipeline
4225 const VkPushConstantRange* pPushConstantRanges /// Array of pushConstantRangeCount number of ranges used by various shader stages
4226}
4227
4228class VkSamplerCreateInfo {
4229 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO
4230 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08004231 VkSamplerCreateFlags flags
Jesse Hall23ff73f2015-11-29 14:36:39 -08004232 VkFilter magFilter /// Filter mode for magnification
4233 VkFilter minFilter /// Filter mode for minifiation
4234 VkSamplerMipmapMode mipmapMode /// Mipmap selection mode
4235 VkSamplerAddressMode addressModeU
4236 VkSamplerAddressMode addressModeV
4237 VkSamplerAddressMode addressModeW
Jesse Halld27f6aa2015-08-15 17:58:48 -07004238 f32 mipLodBias
Jesse Hallf9fa9a52016-01-08 16:08:51 -08004239 VkBool32 anisotropyEnable
Jesse Halld27f6aa2015-08-15 17:58:48 -07004240 f32 maxAnisotropy
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004241 VkBool32 compareEnable
Jesse Halld27f6aa2015-08-15 17:58:48 -07004242 VkCompareOp compareOp
4243 f32 minLod
4244 f32 maxLod
4245 VkBorderColor borderColor
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004246 VkBool32 unnormalizedCoordinates
Jesse Halld27f6aa2015-08-15 17:58:48 -07004247}
4248
Jesse Hall3fbc8562015-11-29 22:10:52 -08004249class VkCommandPoolCreateInfo {
4250 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO
Jesse Halld27f6aa2015-08-15 17:58:48 -07004251 const void* pNext /// Pointer to next structure
Jesse Hall3fbc8562015-11-29 22:10:52 -08004252 VkCommandPoolCreateFlags flags /// Command pool creation flags
Jesse Halla6429252015-11-29 18:59:42 -08004253 u32 queueFamilyIndex
Jesse Halld27f6aa2015-08-15 17:58:48 -07004254}
4255
Jesse Hall3fbc8562015-11-29 22:10:52 -08004256class VkCommandBufferAllocateInfo {
Jesse Hallf4ab2b12015-11-30 16:04:55 -08004257 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO
Jesse Halld27f6aa2015-08-15 17:58:48 -07004258 const void* pNext /// Pointer to next structure
Jesse Hall3fbc8562015-11-29 22:10:52 -08004259 VkCommandPool commandPool
4260 VkCommandBufferLevel level
Jesse Hall3dd678a2016-01-08 21:52:01 -08004261 u32 commandBufferCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07004262}
4263
Jesse Hall3dd678a2016-01-08 21:52:01 -08004264class VkCommandBufferInheritanceInfo {
4265 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO
Jesse Halld27f6aa2015-08-15 17:58:48 -07004266 const void* pNext /// Pointer to next structure
Jesse Halld27f6aa2015-08-15 17:58:48 -07004267 VkRenderPass renderPass /// Render pass for secondary command buffers
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004268 u32 subpass
Jesse Halld27f6aa2015-08-15 17:58:48 -07004269 VkFramebuffer framebuffer /// Framebuffer for secondary command buffers
Jesse Hallf4ab2b12015-11-30 16:04:55 -08004270 VkBool32 occlusionQueryEnable
4271 VkQueryControlFlags queryFlags
4272 VkQueryPipelineStatisticFlags pipelineStatistics
Jesse Halld27f6aa2015-08-15 17:58:48 -07004273}
4274
Jesse Hall3dd678a2016-01-08 21:52:01 -08004275class VkCommandBufferBeginInfo {
4276 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO
4277 const void* pNext /// Pointer to next structure
4278 VkCommandBufferUsageFlags flags /// Command buffer usage flags
4279 const VkCommandBufferInheritanceInfo* pInheritanceInfo
4280}
4281
Jesse Halld27f6aa2015-08-15 17:58:48 -07004282class VkRenderPassBeginInfo {
4283 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO
4284 const void* pNext /// Pointer to next structure
4285 VkRenderPass renderPass
4286 VkFramebuffer framebuffer
4287 VkRect2D renderArea
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004288 u32 clearValueCount
4289 const VkClearValue* pClearValues
Jesse Halld27f6aa2015-08-15 17:58:48 -07004290}
4291
4292@union
4293/// Union allowing specification of floating point, integer, or unsigned integer color data. Actual value selected is based on image/attachment being cleared.
4294class VkClearColorValue {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004295 f32[4] float32
4296 s32[4] int32
4297 u32[4] uint32
Jesse Halld27f6aa2015-08-15 17:58:48 -07004298}
4299
4300class VkClearDepthStencilValue {
4301 f32 depth
4302 u32 stencil
4303}
4304
4305@union
4306/// Union allowing specification of color, depth, and stencil color values. Actual value selected is based on attachment being cleared.
4307class VkClearValue {
4308 VkClearColorValue color
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004309 VkClearDepthStencilValue depthStencil
Jesse Halld27f6aa2015-08-15 17:58:48 -07004310}
4311
Jesse Hallae38f732015-11-19 21:32:50 -08004312class VkClearAttachment {
4313 VkImageAspectFlags aspectMask
4314 u32 colorAttachment
4315 VkClearValue clearValue
4316}
4317
Jesse Halld27f6aa2015-08-15 17:58:48 -07004318class VkAttachmentDescription {
Jesse Halla6429252015-11-29 18:59:42 -08004319 VkAttachmentDescriptionFlags flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07004320 VkFormat format
Jesse Hall091ed9e2015-11-30 00:55:29 -08004321 VkSampleCountFlagBits samples
Jesse Halld27f6aa2015-08-15 17:58:48 -07004322 VkAttachmentLoadOp loadOp /// Load op for color or depth data
4323 VkAttachmentStoreOp storeOp /// Store op for color or depth data
4324 VkAttachmentLoadOp stencilLoadOp /// Load op for stencil data
4325 VkAttachmentStoreOp stencilStoreOp /// Store op for stencil data
4326 VkImageLayout initialLayout
4327 VkImageLayout finalLayout
4328}
4329
4330class VkAttachmentReference {
4331 u32 attachment
4332 VkImageLayout layout
4333}
4334
4335class VkSubpassDescription {
Jesse Halld27f6aa2015-08-15 17:58:48 -07004336 VkSubpassDescriptionFlags flags
Jesse Halla6429252015-11-29 18:59:42 -08004337 VkPipelineBindPoint pipelineBindPoint /// Must be VK_PIPELINE_BIND_POINT_GRAPHICS for now
Jesse Hall03b6fe12015-11-24 12:44:21 -08004338 u32 inputAttachmentCount
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004339 const VkAttachmentReference* pInputAttachments
Jesse Hall03b6fe12015-11-24 12:44:21 -08004340 u32 colorAttachmentCount
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004341 const VkAttachmentReference* pColorAttachments
4342 const VkAttachmentReference* pResolveAttachments
Jesse Hallc7467b72015-11-29 21:05:26 -08004343 const VkAttachmentReference* pDepthStencilAttachment
Jesse Hall03b6fe12015-11-24 12:44:21 -08004344 u32 preserveAttachmentCount
Jesse Hall3dd678a2016-01-08 21:52:01 -08004345 const u32* pPreserveAttachments
Jesse Halld27f6aa2015-08-15 17:58:48 -07004346}
4347
4348class VkSubpassDependency {
Jesse Halld27f6aa2015-08-15 17:58:48 -07004349 u32 srcSubpass
Jesse Hall3fbc8562015-11-29 22:10:52 -08004350 u32 dstSubpass
Jesse Halld27f6aa2015-08-15 17:58:48 -07004351 VkPipelineStageFlags srcStageMask
Jesse Hall3fbc8562015-11-29 22:10:52 -08004352 VkPipelineStageFlags dstStageMask
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08004353 VkAccessFlags srcAccessMask
4354 VkAccessFlags dstAccessMask
Jesse Halldc6d36c2015-11-29 19:12:15 -08004355 VkDependencyFlags dependencyFlags
Jesse Halld27f6aa2015-08-15 17:58:48 -07004356}
4357
4358class VkRenderPassCreateInfo {
4359 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO
4360 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08004361 VkRenderPassCreateFlags flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07004362 u32 attachmentCount
4363 const VkAttachmentDescription* pAttachments
4364 u32 subpassCount
4365 const VkSubpassDescription* pSubpasses
4366 u32 dependencyCount
4367 const VkSubpassDependency* pDependencies
4368}
4369
4370class VkEventCreateInfo {
4371 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_EVENT_CREATE_INFO
4372 const void* pNext /// Pointer to next structure
4373 VkEventCreateFlags flags /// Event creation flags
4374}
4375
4376class VkFenceCreateInfo {
4377 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_FENCE_CREATE_INFO
4378 const void* pNext /// Pointer to next structure
4379 VkFenceCreateFlags flags /// Fence creation flags
4380}
4381
4382class VkPhysicalDeviceFeatures {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004383 VkBool32 robustBufferAccess /// out of bounds buffer accesses are well defined
4384 VkBool32 fullDrawIndexUint32 /// full 32-bit range of indices for indexed draw calls
4385 VkBool32 imageCubeArray /// image views which are arrays of cube maps
4386 VkBool32 independentBlend /// blending operations are controlled per-attachment
4387 VkBool32 geometryShader /// geometry stage
4388 VkBool32 tessellationShader /// tessellation control and evaluation stage
4389 VkBool32 sampleRateShading /// per-sample shading and interpolation
Jesse Hall3fbc8562015-11-29 22:10:52 -08004390 VkBool32 dualSrcBlend /// blend operations which take two sources
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004391 VkBool32 logicOp /// logic operations
4392 VkBool32 multiDrawIndirect /// multi draw indirect
Jesse Hall543a7ff2016-01-08 16:38:30 -08004393 VkBool32 drawIndirectFirstInstance
Jesse Hallae38f732015-11-19 21:32:50 -08004394 VkBool32 depthClamp /// depth clamping
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004395 VkBool32 depthBiasClamp /// depth bias clamping
4396 VkBool32 fillModeNonSolid /// point and wireframe fill modes
4397 VkBool32 depthBounds /// depth bounds test
4398 VkBool32 wideLines /// lines with width greater than 1
4399 VkBool32 largePoints /// points with size greater than 1
Jesse Hallfbf97b02015-11-20 14:17:03 -08004400 VkBool32 alphaToOne /// The fragment alpha channel can be forced to maximum representable alpha value
4401 VkBool32 multiViewport
4402 VkBool32 samplerAnisotropy
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004403 VkBool32 textureCompressionETC2 /// ETC texture compression formats
4404 VkBool32 textureCompressionASTC_LDR /// ASTC LDR texture compression formats
4405 VkBool32 textureCompressionBC /// BC1-7 texture compressed formats
Jesse Hall65ab5522015-11-30 00:07:16 -08004406 VkBool32 occlusionQueryPrecise
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004407 VkBool32 pipelineStatisticsQuery /// pipeline statistics query
Jesse Halldc6d36c2015-11-29 19:12:15 -08004408 VkBool32 vertexPipelineStoresAndAtomics
4409 VkBool32 fragmentStoresAndAtomics
4410 VkBool32 shaderTessellationAndGeometryPointSize
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004411 VkBool32 shaderImageGatherExtended /// texture gather with run-time values and independent offsets
4412 VkBool32 shaderStorageImageExtendedFormats /// the extended set of formats can be used for storage images
4413 VkBool32 shaderStorageImageMultisample /// multisample images can be used for storage images
Jesse Halld1af8122015-11-29 23:50:38 -08004414 VkBool32 shaderStorageImageReadWithoutFormat
4415 VkBool32 shaderStorageImageWriteWithoutFormat
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004416 VkBool32 shaderUniformBufferArrayDynamicIndexing /// arrays of uniform buffers can be accessed with dynamically uniform indices
4417 VkBool32 shaderSampledImageArrayDynamicIndexing /// arrays of sampled images can be accessed with dynamically uniform indices
4418 VkBool32 shaderStorageBufferArrayDynamicIndexing /// arrays of storage buffers can be accessed with dynamically uniform indices
4419 VkBool32 shaderStorageImageArrayDynamicIndexing /// arrays of storage images can be accessed with dynamically uniform indices
4420 VkBool32 shaderClipDistance /// clip distance in shaders
4421 VkBool32 shaderCullDistance /// cull distance in shaders
4422 VkBool32 shaderFloat64 /// 64-bit floats (doubles) in shaders
4423 VkBool32 shaderInt64 /// 64-bit integers in shaders
4424 VkBool32 shaderInt16 /// 16-bit integers in shaders
4425 VkBool32 shaderResourceResidency /// shader can use texture operations that return resource residency information (requires sparseNonResident support)
Jesse Hall65ab5522015-11-30 00:07:16 -08004426 VkBool32 shaderResourceMinLod /// shader can use texture operations that specify minimum resource LOD
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004427 VkBool32 sparseBinding /// Sparse resources support: Resource memory can be managed at opaque page level rather than object level
4428 VkBool32 sparseResidencyBuffer /// Sparse resources support: GPU can access partially resident buffers
4429 VkBool32 sparseResidencyImage2D /// Sparse resources support: GPU can access partially resident 2D (non-MSAA non-DepthStencil) images
4430 VkBool32 sparseResidencyImage3D /// Sparse resources support: GPU can access partially resident 3D images
4431 VkBool32 sparseResidency2Samples /// Sparse resources support: GPU can access partially resident MSAA 2D images with 2 samples
4432 VkBool32 sparseResidency4Samples /// Sparse resources support: GPU can access partially resident MSAA 2D images with 4 samples
4433 VkBool32 sparseResidency8Samples /// Sparse resources support: GPU can access partially resident MSAA 2D images with 8 samples
4434 VkBool32 sparseResidency16Samples /// Sparse resources support: GPU can access partially resident MSAA 2D images with 16 samples
4435 VkBool32 sparseResidencyAliased /// Sparse resources support: GPU can correctly access data aliased into multiple locations (opt-in)
Jesse Halld1af8122015-11-29 23:50:38 -08004436 VkBool32 variableMultisampleRate
Jesse Hallf9fa9a52016-01-08 16:08:51 -08004437 VkBool32 inheritedQueries
Jesse Halld27f6aa2015-08-15 17:58:48 -07004438}
4439
4440class VkPhysicalDeviceLimits {
4441 /// resource maximum sizes
4442 u32 maxImageDimension1D /// max 1D image dimension
4443 u32 maxImageDimension2D /// max 2D image dimension
4444 u32 maxImageDimension3D /// max 3D image dimension
4445 u32 maxImageDimensionCube /// max cubemap image dimension
4446 u32 maxImageArrayLayers /// max layers for image arrays
Jesse Hallb00daad2015-11-29 19:46:20 -08004447 u32 maxTexelBufferElements
Jesse Hallfbf97b02015-11-20 14:17:03 -08004448 u32 maxUniformBufferRange /// max uniform buffer size (bytes)
4449 u32 maxStorageBufferRange /// max storage buffer size (bytes)
Jesse Halld27f6aa2015-08-15 17:58:48 -07004450 u32 maxPushConstantsSize /// max size of the push constants pool (bytes)
4451 /// memory limits
4452 u32 maxMemoryAllocationCount /// max number of device memory allocations supported
Jesse Hall091ed9e2015-11-30 00:55:29 -08004453 u32 maxSamplerAllocationCount
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004454 VkDeviceSize bufferImageGranularity /// Granularity (in bytes) at which buffers and images can be bound to adjacent memory for simultaneous usage
4455 VkDeviceSize sparseAddressSpaceSize /// Total address space available for sparse allocations (bytes)
Jesse Halld27f6aa2015-08-15 17:58:48 -07004456 /// descriptor set limits
4457 u32 maxBoundDescriptorSets /// max number of descriptors sets that can be bound to a pipeline
Jesse Halld27f6aa2015-08-15 17:58:48 -07004458 u32 maxPerStageDescriptorSamplers /// max num of samplers allowed per-stage in a descriptor set
4459 u32 maxPerStageDescriptorUniformBuffers /// max num of uniform buffers allowed per-stage in a descriptor set
4460 u32 maxPerStageDescriptorStorageBuffers /// max num of storage buffers allowed per-stage in a descriptor set
4461 u32 maxPerStageDescriptorSampledImages /// max num of sampled images allowed per-stage in a descriptor set
4462 u32 maxPerStageDescriptorStorageImages /// max num of storage images allowed per-stage in a descriptor set
Jesse Halle1b12782015-11-30 11:27:32 -08004463 u32 maxPerStageDescriptorInputAttachments
Jesse Halldba27f72015-11-30 14:25:46 -08004464 u32 maxPerStageResources
Jesse Halld27f6aa2015-08-15 17:58:48 -07004465 u32 maxDescriptorSetSamplers /// max num of samplers allowed in all stages in a descriptor set
4466 u32 maxDescriptorSetUniformBuffers /// max num of uniform buffers allowed in all stages in a descriptor set
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004467 u32 maxDescriptorSetUniformBuffersDynamic /// max num of dynamic uniform buffers allowed in all stages in a descriptor set
Jesse Halld27f6aa2015-08-15 17:58:48 -07004468 u32 maxDescriptorSetStorageBuffers /// max num of storage buffers allowed in all stages in a descriptor set
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004469 u32 maxDescriptorSetStorageBuffersDynamic /// max num of dynamic storage buffers allowed in all stages in a descriptor set
Jesse Halld27f6aa2015-08-15 17:58:48 -07004470 u32 maxDescriptorSetSampledImages /// max num of sampled images allowed in all stages in a descriptor set
4471 u32 maxDescriptorSetStorageImages /// max num of storage images allowed in all stages in a descriptor set
Jesse Halle1b12782015-11-30 11:27:32 -08004472 u32 maxDescriptorSetInputAttachments
Jesse Halld27f6aa2015-08-15 17:58:48 -07004473 /// vertex stage limits
4474 u32 maxVertexInputAttributes /// max num of vertex input attribute slots
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004475 u32 maxVertexInputBindings /// max num of vertex input binding slots
Jesse Halld27f6aa2015-08-15 17:58:48 -07004476 u32 maxVertexInputAttributeOffset /// max vertex input attribute offset added to vertex buffer offset
4477 u32 maxVertexInputBindingStride /// max vertex input binding stride
4478 u32 maxVertexOutputComponents /// max num of output components written by vertex shader
4479 /// tessellation control stage limits
Jesse Hall3fbc8562015-11-29 22:10:52 -08004480 u32 maxTessellationGenerationLevel /// max level supported by tess primitive generator
Jesse Hallae38f732015-11-19 21:32:50 -08004481 u32 maxTessellationPatchSize /// max patch size (vertices)
4482 u32 maxTessellationControlPerVertexInputComponents /// max num of input components per-vertex in TCS
4483 u32 maxTessellationControlPerVertexOutputComponents /// max num of output components per-vertex in TCS
4484 u32 maxTessellationControlPerPatchOutputComponents /// max num of output components per-patch in TCS
4485 u32 maxTessellationControlTotalOutputComponents /// max total num of per-vertex and per-patch output components in TCS
4486 u32 maxTessellationEvaluationInputComponents /// max num of input components per vertex in TES
4487 u32 maxTessellationEvaluationOutputComponents /// max num of output components per vertex in TES
Jesse Halld27f6aa2015-08-15 17:58:48 -07004488 /// geometry stage limits
4489 u32 maxGeometryShaderInvocations /// max invocation count supported in geometry shader
4490 u32 maxGeometryInputComponents /// max num of input components read in geometry stage
4491 u32 maxGeometryOutputComponents /// max num of output components written in geometry stage
4492 u32 maxGeometryOutputVertices /// max num of vertices that can be emitted in geometry stage
4493 u32 maxGeometryTotalOutputComponents /// max total num of components (all vertices) written in geometry stage
4494 /// fragment stage limits
4495 u32 maxFragmentInputComponents /// max num of input compontents read in fragment stage
Jesse Hallfbf97b02015-11-20 14:17:03 -08004496 u32 maxFragmentOutputAttachments /// max num of output attachments written in fragment stage
Jesse Hall3fbc8562015-11-29 22:10:52 -08004497 u32 maxFragmentDualSrcAttachments /// max num of output attachments written when using dual source blending
Jesse Halld27f6aa2015-08-15 17:58:48 -07004498 u32 maxFragmentCombinedOutputResources /// max total num of storage buffers, storage images and output buffers
4499 /// compute stage limits
4500 u32 maxComputeSharedMemorySize /// max total storage size of work group local storage (bytes)
4501 u32[3] maxComputeWorkGroupCount /// max num of compute work groups that may be dispatched by a single command (x,y,z)
4502 u32 maxComputeWorkGroupInvocations /// max total compute invocations in a single local work group
4503 u32[3] maxComputeWorkGroupSize /// max local size of a compute work group (x,y,z)
4504
4505 u32 subPixelPrecisionBits /// num bits of subpixel precision in screen x and y
4506 u32 subTexelPrecisionBits /// num bits of subtexel precision
4507 u32 mipmapPrecisionBits /// num bits of mipmap precision
4508
4509 u32 maxDrawIndexedIndexValue /// max index value for indexed draw calls (for 32-bit indices)
Jesse Halldba27f72015-11-30 14:25:46 -08004510 u32 maxDrawIndirectCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07004511
4512 f32 maxSamplerLodBias /// max absolute sampler level of detail bias
4513 f32 maxSamplerAnisotropy /// max degree of sampler anisotropy
4514
4515 u32 maxViewports /// max number of active viewports
Jesse Halld27f6aa2015-08-15 17:58:48 -07004516 u32[2] maxViewportDimensions /// max viewport dimensions (x,y)
4517 f32[2] viewportBoundsRange /// viewport bounds range (min,max)
4518 u32 viewportSubPixelBits /// num bits of subpixel precision for viewport
4519
Jesse Halldc6d36c2015-11-29 19:12:15 -08004520 platform.size_t minMemoryMapAlignment /// min required alignment of pointers returned by MapMemory (bytes)
4521 VkDeviceSize minTexelBufferOffsetAlignment /// min required alignment for texel buffer offsets (bytes)
4522 VkDeviceSize minUniformBufferOffsetAlignment /// min required alignment for uniform buffer sizes and offsets (bytes)
4523 VkDeviceSize minStorageBufferOffsetAlignment /// min required alignment for storage buffer offsets (bytes)
Jesse Halld27f6aa2015-08-15 17:58:48 -07004524
Jesse Hallfbf97b02015-11-20 14:17:03 -08004525 s32 minTexelOffset /// min texel offset for OpTextureSampleOffset
Jesse Halld27f6aa2015-08-15 17:58:48 -07004526 u32 maxTexelOffset /// max texel offset for OpTextureSampleOffset
Jesse Hallfbf97b02015-11-20 14:17:03 -08004527 s32 minTexelGatherOffset /// min texel offset for OpTextureGatherOffset
Jesse Halld27f6aa2015-08-15 17:58:48 -07004528 u32 maxTexelGatherOffset /// max texel offset for OpTextureGatherOffset
4529 f32 minInterpolationOffset /// furthest negative offset for interpolateAtOffset
4530 f32 maxInterpolationOffset /// furthest positive offset for interpolateAtOffset
4531 u32 subPixelInterpolationOffsetBits /// num of subpixel bits for interpolateAtOffset
4532
4533 u32 maxFramebufferWidth /// max width for a framebuffer
4534 u32 maxFramebufferHeight /// max height for a framebuffer
4535 u32 maxFramebufferLayers /// max layer count for a layered framebuffer
Jesse Hall091ed9e2015-11-30 00:55:29 -08004536 VkSampleCountFlags framebufferColorSampleCounts
4537 VkSampleCountFlags framebufferDepthSampleCounts
4538 VkSampleCountFlags framebufferStencilSampleCounts
4539 VkSampleCountFlags framebufferNoAttachmentSampleCounts
Jesse Halld27f6aa2015-08-15 17:58:48 -07004540 u32 maxColorAttachments /// max num of framebuffer color attachments
4541
Jesse Hall091ed9e2015-11-30 00:55:29 -08004542 VkSampleCountFlags sampledImageColorSampleCounts
4543 VkSampleCountFlags sampledImageIntegerSampleCounts
4544 VkSampleCountFlags sampledImageDepthSampleCounts
4545 VkSampleCountFlags sampledImageStencilSampleCounts
4546 VkSampleCountFlags storageImageSampleCounts
Jesse Halld27f6aa2015-08-15 17:58:48 -07004547 u32 maxSampleMaskWords /// max num of sample mask words
Jesse Hallf9fa9a52016-01-08 16:08:51 -08004548 VkBool32 timestampComputeAndGraphics
Jesse Halld27f6aa2015-08-15 17:58:48 -07004549
Jesse Halla9bb62b2015-11-21 19:31:56 -08004550 f32 timestampPeriod
Jesse Halld27f6aa2015-08-15 17:58:48 -07004551
4552 u32 maxClipDistances /// max number of clip distances
4553 u32 maxCullDistances /// max number of cull distances
4554 u32 maxCombinedClipAndCullDistances /// max combined number of user clipping
4555
Jesse Hallfbf97b02015-11-20 14:17:03 -08004556 u32 discreteQueuePriorities
4557
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004558 f32[2] pointSizeRange /// range (min,max) of supported point sizes
4559 f32[2] lineWidthRange /// range (min,max) of supported line widths
Jesse Halld27f6aa2015-08-15 17:58:48 -07004560 f32 pointSizeGranularity /// granularity of supported point sizes
4561 f32 lineWidthGranularity /// granularity of supported line widths
Jesse Hall03b6fe12015-11-24 12:44:21 -08004562 VkBool32 strictLines
Jesse Hall091ed9e2015-11-30 00:55:29 -08004563 VkBool32 standardSampleLocations
Jesse Halla9bb62b2015-11-21 19:31:56 -08004564
Jesse Hall65ab5522015-11-30 00:07:16 -08004565 VkDeviceSize optimalBufferCopyOffsetAlignment
4566 VkDeviceSize optimalBufferCopyRowPitchAlignment
Jesse Halldba27f72015-11-30 14:25:46 -08004567 VkDeviceSize nonCoherentAtomSize
Jesse Halld27f6aa2015-08-15 17:58:48 -07004568}
4569
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004570class VkPhysicalDeviceSparseProperties {
4571 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 -08004572 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 -07004573 VkBool32 residencyStandard3DBlockShape /// Sparse resources support: GPU will access all 3D sparse resources using the standard block shapes (based on pixel format)
4574 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 -07004575 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
4576}
4577
Jesse Halld27f6aa2015-08-15 17:58:48 -07004578class VkSemaphoreCreateInfo {
4579 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO
4580 const void* pNext /// Pointer to next structure
4581 VkSemaphoreCreateFlags flags /// Semaphore creation flags
4582}
4583
4584class VkQueryPoolCreateInfo {
4585 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO
4586 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08004587 VkQueryPoolCreateFlags flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07004588 VkQueryType queryType
Jesse Hall3dd678a2016-01-08 21:52:01 -08004589 u32 queryCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07004590 VkQueryPipelineStatisticFlags pipelineStatistics /// Optional
4591}
4592
4593class VkFramebufferCreateInfo {
4594 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO
4595 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08004596 VkFramebufferCreateFlags flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07004597 VkRenderPass renderPass
4598 u32 attachmentCount
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004599 const VkImageView* pAttachments
Jesse Halld27f6aa2015-08-15 17:58:48 -07004600 u32 width
4601 u32 height
4602 u32 layers
4603}
4604
Jesse Hall3fbc8562015-11-29 22:10:52 -08004605class VkDrawIndirectCommand {
Jesse Halld27f6aa2015-08-15 17:58:48 -07004606 u32 vertexCount
4607 u32 instanceCount
4608 u32 firstVertex
4609 u32 firstInstance
4610}
4611
Jesse Hall3fbc8562015-11-29 22:10:52 -08004612class VkDrawIndexedIndirectCommand {
Jesse Halld27f6aa2015-08-15 17:58:48 -07004613 u32 indexCount
4614 u32 instanceCount
4615 u32 firstIndex
4616 s32 vertexOffset
4617 u32 firstInstance
4618}
4619
Jesse Hall3fbc8562015-11-29 22:10:52 -08004620class VkDispatchIndirectCommand {
Jesse Halld27f6aa2015-08-15 17:58:48 -07004621 u32 x
4622 u32 y
4623 u32 z
4624}
4625
Jesse Hall54f8d132018-04-18 08:16:59 -07004626class VkBaseOutStructure {
4627 VkStructureType sType
4628 void* pNext
4629}
4630
4631class VkBaseInStructure {
4632 VkStructureType sType
4633 const void* pNext
4634}
4635
Ian Elliott28bd2c32017-10-13 09:21:12 -06004636//@vulkan1_1 structures
Daniel Koch09f7bf92017-10-05 00:26:58 -04004637
4638class VkPhysicalDeviceSubgroupProperties {
4639 VkStructureType sType
4640 void* pNext
4641 u32 subgroupSize
4642 VkShaderStageFlags supportedStages
4643 VkSubgroupFeatureFlags supportedOperations
4644 VkBool32 quadOperationsInAllStages
4645}
4646
4647class VkBindBufferMemoryInfo {
4648 VkStructureType sType
4649 const void* pNext
4650 VkBuffer buffer
4651 VkDeviceMemory memory
4652 VkDeviceSize memoryOffset
4653}
4654
4655class VkBindImageMemoryInfo {
4656 VkStructureType sType
4657 const void* pNext
4658 VkImage image
4659 VkDeviceMemory memory
4660 VkDeviceSize memoryOffset
4661}
4662
4663class VkPhysicalDevice16BitStorageFeatures {
4664 VkStructureType sType
4665 void* pNext
4666 VkBool32 storageBuffer16BitAccess
4667 VkBool32 uniformAndStorageBuffer16BitAccess
4668 VkBool32 storagePushConstant16
4669 VkBool32 storageInputOutput16
4670}
4671
4672class VkMemoryDedicatedRequirements {
4673 VkStructureType sType
4674 void* pNext
4675 VkBool32 prefersDedicatedAllocation
4676 VkBool32 requiresDedicatedAllocation
4677}
4678
4679class VkMemoryDedicatedAllocateInfo {
4680 VkStructureType sType
4681 const void* pNext
4682 VkImage image
4683 VkBuffer buffer
4684}
4685
4686class VkMemoryAllocateFlagsInfo {
4687 VkStructureType sType
4688 const void* pNext
4689 VkMemoryAllocateFlags flags
4690 u32 deviceMask
4691}
4692
4693class VkDeviceGroupRenderPassBeginInfo {
4694 VkStructureType sType
4695 const void* pNext
4696 u32 deviceMask
4697 u32 deviceRenderAreaCount
4698 const VkRect2D* pDeviceRenderAreas
4699}
4700
4701class VkDeviceGroupCommandBufferBeginInfo {
4702 VkStructureType sType
4703 const void* pNext
4704 u32 deviceMask
4705}
4706
4707class VkDeviceGroupSubmitInfo {
4708 VkStructureType sType
4709 const void* pNext
4710 u32 waitSemaphoreCount
4711 const u32* pWaitSemaphoreDeviceIndices
4712 u32 commandBufferCount
4713 const u32* pCommandBufferDeviceMasks
4714 u32 signalSemaphoreCount
4715 const u32* pSignalSemaphoreDeviceIndices
4716}
4717
4718class VkDeviceGroupBindSparseInfo {
4719 VkStructureType sType
4720 const void* pNext
4721 u32 resourceDeviceIndex
4722 u32 memoryDeviceIndex
4723}
4724
4725class VkBindBufferMemoryDeviceGroupInfo {
4726 VkStructureType sType
4727 const void* pNext
4728 u32 deviceIndexCount
4729 const u32* pDeviceIndices
4730}
4731
4732class VkBindImageMemoryDeviceGroupInfo {
4733 VkStructureType sType
4734 const void* pNext
4735 u32 deviceIndexCount
4736 const u32* pDeviceIndices
Jesse Hall8c954d32018-01-17 22:06:20 -08004737 u32 splitInstanceBindRegionCount
4738 const VkRect2D* pSplitInstanceBindRegions
Daniel Koch09f7bf92017-10-05 00:26:58 -04004739}
4740
4741class VkPhysicalDeviceGroupProperties {
4742 VkStructureType sType
4743 void* pNext
4744 u32 physicalDeviceCount
4745 VkPhysicalDevice[VK_MAX_DEVICE_GROUP_SIZE] physicalDevices
4746 VkBool32 subsetAllocation
4747}
4748
4749class VkDeviceGroupDeviceCreateInfo {
4750 VkStructureType sType
4751 const void* pNext
4752 u32 physicalDeviceCount
4753 const VkPhysicalDevice* pPhysicalDevices
4754}
4755
4756class VkBufferMemoryRequirementsInfo2 {
4757 VkStructureType sType
4758 const void* pNext
4759 VkBuffer buffer
4760}
4761
4762class VkImageMemoryRequirementsInfo2 {
4763 VkStructureType sType
4764 const void* pNext
4765 VkImage image
4766}
4767
4768class VkImageSparseMemoryRequirementsInfo2 {
4769 VkStructureType sType
4770 const void* pNext
4771 VkImage image
4772}
4773
4774class VkMemoryRequirements2 {
4775 VkStructureType sType
4776 void* pNext
4777 VkMemoryRequirements memoryRequirements
4778}
4779
4780class VkSparseImageMemoryRequirements2 {
4781 VkStructureType sType
4782 void* pNext
4783 VkSparseImageMemoryRequirements memoryRequirements
4784}
4785
4786class VkPhysicalDeviceFeatures2 {
4787 VkStructureType sType
4788 void* pNext
4789 VkPhysicalDeviceFeatures features
4790}
4791
4792class VkPhysicalDeviceProperties2 {
4793 VkStructureType sType
4794 void* pNext
4795 VkPhysicalDeviceProperties properties
4796}
4797
4798class VkFormatProperties2 {
4799 VkStructureType sType
4800 void* pNext
4801 VkFormatProperties formatProperties
4802}
4803
4804class VkImageFormatProperties2 {
4805 VkStructureType sType
4806 void* pNext
4807 VkImageFormatProperties imageFormatProperties
4808}
4809
4810class VkPhysicalDeviceImageFormatInfo2 {
4811 VkStructureType sType
4812 const void* pNext
4813 VkFormat format
4814 VkImageType type
4815 VkImageTiling tiling
4816 VkImageUsageFlags usage
4817 VkImageCreateFlags flags
4818}
4819
4820class VkQueueFamilyProperties2 {
4821 VkStructureType sType
4822 void* pNext
4823 VkQueueFamilyProperties queueFamilyProperties
4824}
4825
4826class VkPhysicalDeviceMemoryProperties2 {
4827 VkStructureType sType
4828 void* pNext
4829 VkPhysicalDeviceMemoryProperties memoryProperties
4830}
4831
4832class VkSparseImageFormatProperties2 {
4833 VkStructureType sType
4834 void* pNext
4835 VkSparseImageFormatProperties properties
4836}
4837
4838class VkPhysicalDeviceSparseImageFormatInfo2 {
4839 VkStructureType sType
4840 const void* pNext
4841 VkFormat format
4842 VkImageType type
4843 VkSampleCountFlagBits samples
4844 VkImageUsageFlags usage
4845 VkImageTiling tiling
4846}
4847
4848class VkPhysicalDevicePointClippingProperties {
4849 VkStructureType sType
4850 void* pNext
4851 VkPointClippingBehavior pointClippingBehavior
4852}
4853
4854class VkInputAttachmentAspectReference {
4855 u32 subpass
4856 u32 inputAttachmentIndex
4857 VkImageAspectFlags aspectMask
4858}
4859
4860class VkRenderPassInputAttachmentAspectCreateInfo {
4861 VkStructureType sType
4862 const void* pNext
4863 u32 aspectReferenceCount
4864 const VkInputAttachmentAspectReference* pAspectReferences
4865}
4866
4867class VkImageViewUsageCreateInfo {
4868 VkStructureType sType
4869 const void* pNext
4870 VkImageUsageFlags usage
4871}
4872
4873class VkPipelineTessellationDomainOriginStateCreateInfo {
4874 VkStructureType sType
4875 const void* pNext
4876 VkTessellationDomainOrigin domainOrigin
4877}
4878
4879class VkRenderPassMultiviewCreateInfo {
4880 VkStructureType sType
4881 const void* pNext
4882 u32 subpassCount
4883 const u32* pViewMasks
4884 u32 dependencyCount
4885 const s32* pViewOffsets
4886 u32 correlationMaskCount
4887 const u32* pCorrelationMasks
4888}
4889
4890class VkPhysicalDeviceMultiviewFeatures {
4891 VkStructureType sType
4892 void* pNext
4893 VkBool32 multiview
4894 VkBool32 multiviewGeometryShader
4895 VkBool32 multiviewTessellationShader
4896}
4897
4898class VkPhysicalDeviceMultiviewProperties {
4899 VkStructureType sType
4900 void* pNext
4901 u32 maxMultiviewViewCount
4902 u32 maxMultiviewInstanceIndex
4903}
4904
4905class VkPhysicalDeviceVariablePointerFeatures {
4906 VkStructureType sType
4907 void* pNext
4908 VkBool32 variablePointersStorageBuffer
4909 VkBool32 variablePointers
4910}
4911
4912class VkPhysicalDeviceProtectedMemoryFeatures {
4913 VkStructureType sType
4914 void* pNext
4915 VkBool32 protectedMemory
4916}
4917
4918class VkPhysicalDeviceProtectedMemoryProperties {
4919 VkStructureType sType
4920 void* pNext
4921 VkBool32 protectedNoFault
4922}
4923
4924class VkDeviceQueueInfo2 {
4925 VkStructureType sType
4926 const void* pNext
4927 VkDeviceQueueCreateFlags flags
4928 u32 queueFamilyIndex
4929 u32 queueIndex
4930}
4931
4932class VkProtectedSubmitInfo {
4933 VkStructureType sType
4934 const void* pNext
4935 VkBool32 protectedSubmit
4936}
4937
4938class VkSamplerYcbcrConversionCreateInfo {
4939 VkStructureType sType
4940 const void* pNext
4941 VkFormat format
4942 VkSamplerYcbcrModelConversion ycbcrModel
4943 VkSamplerYcbcrRange ycbcrRange
4944 VkComponentMapping components
4945 VkChromaLocation xChromaOffset
4946 VkChromaLocation yChromaOffset
4947 VkFilter chromaFilter
4948 VkBool32 forceExplicitReconstruction
4949}
4950
4951class VkSamplerYcbcrConversionInfo {
4952 VkStructureType sType
4953 const void* pNext
4954 VkSamplerYcbcrConversion conversion
4955}
4956
4957class VkBindImagePlaneMemoryInfo {
4958 VkStructureType sType
4959 const void* pNext
4960 VkImageAspectFlagBits planeAspect
4961}
4962
4963class VkImagePlaneMemoryRequirementsInfo {
4964 VkStructureType sType
4965 const void* pNext
4966 VkImageAspectFlagBits planeAspect
4967}
4968
4969class VkPhysicalDeviceSamplerYcbcrConversionFeatures {
4970 VkStructureType sType
4971 void* pNext
4972 VkBool32 samplerYcbcrConversion
4973}
4974
4975class VkSamplerYcbcrConversionImageFormatProperties {
4976 VkStructureType sType
4977 void* pNext
4978 u32 combinedImageSamplerDescriptorCount
4979}
4980
4981class VkDescriptorUpdateTemplateEntry {
4982 u32 dstBinding
4983 u32 dstArrayElement
4984 u32 descriptorCount
4985 VkDescriptorType descriptorType
4986 platform.size_t offset
4987 platform.size_t stride
4988}
4989
4990class VkDescriptorUpdateTemplateCreateInfo {
4991 VkStructureType sType
4992 void* pNext
4993 VkDescriptorUpdateTemplateCreateFlags flags
4994 u32 descriptorUpdateEntryCount
4995 const VkDescriptorUpdateTemplateEntry* pDescriptorUpdateEntries
4996 VkDescriptorUpdateTemplateType templateType
4997 VkDescriptorSetLayout descriptorSetLayout
4998 VkPipelineBindPoint pipelineBindPoint
4999 VkPipelineLayout pipelineLayout
5000 u32 set
5001}
5002
5003class VkExternalMemoryProperties {
5004 VkExternalMemoryFeatureFlags externalMemoryFeatures
5005 VkExternalMemoryHandleTypeFlags exportFromImportedHandleTypes
5006 VkExternalMemoryHandleTypeFlags compatibleHandleTypes
5007}
5008
5009class VkPhysicalDeviceExternalImageFormatInfo {
5010 VkStructureType sType
5011 const void* pNext
5012 VkExternalMemoryHandleTypeFlagBits handleType
5013}
5014
5015class VkExternalImageFormatProperties {
5016 VkStructureType sType
5017 void* pNext
5018 VkExternalMemoryProperties externalMemoryProperties
5019}
5020
5021class VkPhysicalDeviceExternalBufferInfo {
5022 VkStructureType sType
5023 const void* pNext
5024 VkBufferCreateFlags flags
5025 VkBufferUsageFlags usage
5026 VkExternalMemoryHandleTypeFlagBits handleType
5027}
5028
5029class VkExternalBufferProperties {
5030 VkStructureType sType
5031 void* pNext
5032 VkExternalMemoryProperties externalMemoryProperties
5033}
5034
5035class VkPhysicalDeviceIDProperties {
5036 VkStructureType sType
5037 void* pNext
5038 u8[VK_UUID_SIZE] deviceUUID
5039 u8[VK_UUID_SIZE] driverUUID
5040 u8[VK_LUID_SIZE] deviceLUID
5041 u32 deviceNodeMask
5042 VkBool32 deviceLUIDValid
5043}
5044
5045class VkExternalMemoryImageCreateInfo {
5046 VkStructureType sType
5047 const void* pNext
5048 VkExternalMemoryHandleTypeFlags handleTypes
5049}
5050
5051class VkExternalMemoryBufferCreateInfo {
5052 VkStructureType sType
5053 const void* pNext
5054 VkExternalMemoryHandleTypeFlags handleTypes
5055}
5056
5057class VkExportMemoryAllocateInfo {
5058 VkStructureType sType
5059 const void* pNext
5060 VkExternalMemoryHandleTypeFlags handleTypes
5061}
5062
5063class VkPhysicalDeviceExternalFenceInfo {
5064 VkStructureType sType
5065 const void* pNext
5066 VkExternalFenceHandleTypeFlagBits handleType
5067}
5068
5069class VkExternalFenceProperties {
5070 VkStructureType sType
5071 void* pNext
5072 VkExternalFenceHandleTypeFlags exportFromImportedHandleTypes
5073 VkExternalFenceHandleTypeFlags compatibleHandleTypes
5074 VkExternalFenceFeatureFlags externalFenceFeatures
5075}
5076
5077class VkExportFenceCreateInfo {
5078 VkStructureType sType
5079 const void* pNext
5080 VkExternalFenceHandleTypeFlags handleTypes
5081}
5082
5083class VkExportSemaphoreCreateInfo {
5084 VkStructureType sType
5085 const void* pNext
5086 VkExternalSemaphoreHandleTypeFlags handleTypes
5087}
5088
5089class VkPhysicalDeviceExternalSemaphoreInfo {
5090 VkStructureType sType
5091 const void* pNext
5092 VkExternalSemaphoreHandleTypeFlagBits handleType
5093}
5094
5095class VkExternalSemaphoreProperties {
5096 VkStructureType sType
5097 void* pNext
5098 VkExternalSemaphoreHandleTypeFlags exportFromImportedHandleTypes
5099 VkExternalSemaphoreHandleTypeFlags compatibleHandleTypes
5100 VkExternalSemaphoreFeatureFlags externalSemaphoreFeatures
5101}
5102
5103class VkPhysicalDeviceMaintenance3Properties {
5104 VkStructureType sType
5105 void* pNext
5106 u32 maxPerSetDescriptors
5107 VkDeviceSize maxMemoryAllocationSize
5108}
5109
5110class VkDescriptorSetLayoutSupport {
5111 VkStructureType sType
5112 void* pNext
5113 VkBool32 supported
5114}
5115
5116class VkPhysicalDeviceShaderDrawParameterFeatures {
5117 VkStructureType sType
5118 void* pNext
5119 VkBool32 shaderDrawParameters
5120}
5121
5122
Jesse Hallad250842017-03-10 18:35:38 -08005123@extension("VK_KHR_surface") // 1
Jesse Hallb00daad2015-11-29 19:46:20 -08005124class VkSurfaceCapabilitiesKHR {
Jesse Hall1356b0d2015-11-23 17:24:58 -08005125 u32 minImageCount
5126 u32 maxImageCount
5127 VkExtent2D currentExtent
5128 VkExtent2D minImageExtent
5129 VkExtent2D maxImageExtent
Jesse Hallf4ab2b12015-11-30 16:04:55 -08005130 u32 maxImageArrayLayers
Jesse Hall1356b0d2015-11-23 17:24:58 -08005131 VkSurfaceTransformFlagsKHR supportedTransforms
Jesse Hallf4ab2b12015-11-30 16:04:55 -08005132 VkSurfaceTransformFlagBitsKHR currentTransform
Jesse Halla6429252015-11-29 18:59:42 -08005133 VkCompositeAlphaFlagsKHR supportedCompositeAlpha
Jesse Hall1356b0d2015-11-23 17:24:58 -08005134 VkImageUsageFlags supportedUsageFlags
Michael Lentine88594d72015-11-12 12:49:45 -08005135}
5136
Jesse Hallad250842017-03-10 18:35:38 -08005137@extension("VK_KHR_surface") // 1
Michael Lentine88594d72015-11-12 12:49:45 -08005138class VkSurfaceFormatKHR {
Jesse Hall1356b0d2015-11-23 17:24:58 -08005139 VkFormat format
5140 VkColorSpaceKHR colorSpace
Michael Lentine88594d72015-11-12 12:49:45 -08005141}
5142
Jesse Hallad250842017-03-10 18:35:38 -08005143@extension("VK_KHR_swapchain") // 2
Michael Lentine88594d72015-11-12 12:49:45 -08005144class VkSwapchainCreateInfoKHR {
Jesse Hall1356b0d2015-11-23 17:24:58 -08005145 VkStructureType sType
5146 const void* pNext
Jesse Hallf4ab2b12015-11-30 16:04:55 -08005147 VkSwapchainCreateFlagsKHR flags
Jesse Hall1356b0d2015-11-23 17:24:58 -08005148 VkSurfaceKHR surface
5149 u32 minImageCount
5150 VkFormat imageFormat
5151 VkColorSpaceKHR imageColorSpace
5152 VkExtent2D imageExtent
Jesse Hallf4ab2b12015-11-30 16:04:55 -08005153 u32 imageArrayLayers
5154 VkImageUsageFlags imageUsage
Jesse Hall1356b0d2015-11-23 17:24:58 -08005155 VkSharingMode sharingMode
Jesse Hall03b6fe12015-11-24 12:44:21 -08005156 u32 queueFamilyIndexCount
Jesse Hall1356b0d2015-11-23 17:24:58 -08005157 const u32* pQueueFamilyIndices
Jesse Hallf4ab2b12015-11-30 16:04:55 -08005158 VkSurfaceTransformFlagBitsKHR preTransform
5159 VkCompositeAlphaFlagBitsKHR compositeAlpha
Jesse Hall1356b0d2015-11-23 17:24:58 -08005160 VkPresentModeKHR presentMode
Jesse Hall1356b0d2015-11-23 17:24:58 -08005161 VkBool32 clipped
Jesse Hallf4ab2b12015-11-30 16:04:55 -08005162 VkSwapchainKHR oldSwapchain
Michael Lentine88594d72015-11-12 12:49:45 -08005163}
5164
Jesse Hallad250842017-03-10 18:35:38 -08005165@extension("VK_KHR_swapchain") // 2
Michael Lentine88594d72015-11-12 12:49:45 -08005166class VkPresentInfoKHR {
Jesse Hall1356b0d2015-11-23 17:24:58 -08005167 VkStructureType sType
5168 const void* pNext
Jesse Hallb00daad2015-11-29 19:46:20 -08005169 u32 waitSemaphoreCount
5170 const VkSemaphore* pWaitSemaphores
Jesse Hall1356b0d2015-11-23 17:24:58 -08005171 u32 swapchainCount
Jesse Hall03b6fe12015-11-24 12:44:21 -08005172 const VkSwapchainKHR* pSwapchains
Jesse Hallf4ab2b12015-11-30 16:04:55 -08005173 const u32* pImageIndices
Jesse Halle1b12782015-11-30 11:27:32 -08005174 VkResult* pResults
Michael Lentine88594d72015-11-12 12:49:45 -08005175}
5176
Ian Elliott28bd2c32017-10-13 09:21:12 -06005177@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04005178@extension("VK_KHR_swapchain") // 2
5179class VkImageSwapchainCreateInfoKHR {
5180 VkStructureType sType
5181 const void* pNext
5182 VkSwapchainKHR swapchain
5183}
5184
Ian Elliott28bd2c32017-10-13 09:21:12 -06005185@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04005186@extension("VK_KHR_swapchain") // 2
5187class VkBindImageMemorySwapchainInfoKHR {
5188 VkStructureType sType
5189 const void* pNext
5190 VkSwapchainKHR swapchain
5191 u32 imageIndex
5192}
5193
Ian Elliott28bd2c32017-10-13 09:21:12 -06005194@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04005195@extension("VK_KHR_swapchain") // 2
5196class VkAcquireNextImageInfoKHR {
5197 VkStructureType sType
5198 const void* pNext
5199 VkSwapchainKHR swapchain
5200 u64 timeout
5201 VkSemaphore semaphore
5202 VkFence fence
5203 u32 deviceMask
5204}
5205
Ian Elliott28bd2c32017-10-13 09:21:12 -06005206@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04005207@extension("VK_KHR_swapchain") // 2
5208class VkDeviceGroupPresentCapabilitiesKHR {
5209 VkStructureType sType
5210 const void* pNext
5211 u32[VK_MAX_DEVICE_GROUP_SIZE] presentMask
5212 VkDeviceGroupPresentModeFlagsKHR modes
5213}
5214
Ian Elliott28bd2c32017-10-13 09:21:12 -06005215@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04005216@extension("VK_KHR_swapchain") // 2
5217class VkDeviceGroupPresentInfoKHR {
5218 VkStructureType sType
5219 const void* pNext
5220 u32 swapchainCount
5221 const u32* pDeviceMasks
5222 VkDeviceGroupPresentModeFlagBitsKHR mode
5223}
5224
Ian Elliott28bd2c32017-10-13 09:21:12 -06005225@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04005226@extension("VK_KHR_swapchain") // 2
5227class VkDeviceGroupSwapchainCreateInfoKHR {
5228 VkStructureType sType
5229 const void* pNext
5230 VkDeviceGroupPresentModeFlagsKHR modes
5231}
5232
Jesse Hallad250842017-03-10 18:35:38 -08005233@extension("VK_KHR_display") // 3
Jesse Hall1356b0d2015-11-23 17:24:58 -08005234class VkDisplayPropertiesKHR {
5235 VkDisplayKHR display
5236 const char* displayName
5237 VkExtent2D physicalDimensions
5238 VkExtent2D physicalResolution
5239 VkSurfaceTransformFlagsKHR supportedTransforms
Jesse Hall1356b0d2015-11-23 17:24:58 -08005240 VkBool32 planeReorderPossible
Jesse Halla6429252015-11-29 18:59:42 -08005241 VkBool32 persistentContent
Michael Lentine88594d72015-11-12 12:49:45 -08005242}
5243
Jesse Hallad250842017-03-10 18:35:38 -08005244@extension("VK_KHR_display") // 3
Jesse Halla6429252015-11-29 18:59:42 -08005245class VkDisplayModeParametersKHR {
Jesse Hall1356b0d2015-11-23 17:24:58 -08005246 VkExtent2D visibleRegion
Jesse Halla6429252015-11-29 18:59:42 -08005247 u32 refreshRate
Michael Lentine88594d72015-11-12 12:49:45 -08005248}
Jesse Halld27f6aa2015-08-15 17:58:48 -07005249
Jesse Hallad250842017-03-10 18:35:38 -08005250@extension("VK_KHR_display") // 3
Jesse Hall1356b0d2015-11-23 17:24:58 -08005251class VkDisplayModePropertiesKHR {
5252 VkDisplayModeKHR displayMode
Jesse Halla6429252015-11-29 18:59:42 -08005253 VkDisplayModeParametersKHR parameters
Jesse Hall1356b0d2015-11-23 17:24:58 -08005254}
5255
Jesse Hallad250842017-03-10 18:35:38 -08005256@extension("VK_KHR_display") // 3
Jesse Hall1356b0d2015-11-23 17:24:58 -08005257class VkDisplayModeCreateInfoKHR {
5258 VkStructureType sType
5259 const void* pNext
Jesse Hall9ba8bc82015-11-30 16:22:16 -08005260 VkDisplayModeCreateFlagsKHR flags
Jesse Halla6429252015-11-29 18:59:42 -08005261 VkDisplayModeParametersKHR parameters
Jesse Hall1356b0d2015-11-23 17:24:58 -08005262}
5263
Jesse Hallad250842017-03-10 18:35:38 -08005264@extension("VK_KHR_display") // 3
Jesse Hall1356b0d2015-11-23 17:24:58 -08005265class VkDisplayPlanePropertiesKHR {
Jesse Halla6429252015-11-29 18:59:42 -08005266 VkDisplayKHR currentDisplay
5267 u32 currentStackIndex
5268}
5269
Jesse Hallad250842017-03-10 18:35:38 -08005270@extension("VK_KHR_display") // 3
Jesse Halla6429252015-11-29 18:59:42 -08005271class VkDisplayPlaneCapabilitiesKHR {
Jesse Hall1356b0d2015-11-23 17:24:58 -08005272 VkDisplayPlaneAlphaFlagsKHR supportedAlpha
5273 VkOffset2D minSrcPosition
5274 VkOffset2D maxSrcPosition
5275 VkExtent2D minSrcExtent
5276 VkExtent2D maxSrcExtent
5277 VkOffset2D minDstPosition
5278 VkOffset2D maxDstPosition
5279 VkExtent2D minDstExtent
5280 VkExtent2D maxDstExtent
5281}
5282
Jesse Hallad250842017-03-10 18:35:38 -08005283@extension("VK_KHR_display") // 3
Jesse Halla6429252015-11-29 18:59:42 -08005284class VkDisplaySurfaceCreateInfoKHR {
Jesse Hall1356b0d2015-11-23 17:24:58 -08005285 VkStructureType sType
5286 const void* pNext
Jesse Hallf4ab2b12015-11-30 16:04:55 -08005287 VkDisplaySurfaceCreateFlagsKHR flags
Jesse Hall1356b0d2015-11-23 17:24:58 -08005288 VkDisplayModeKHR displayMode
5289 u32 planeIndex
5290 u32 planeStackIndex
Jesse Hallf4ab2b12015-11-30 16:04:55 -08005291 VkSurfaceTransformFlagBitsKHR transform
Jesse Hall1356b0d2015-11-23 17:24:58 -08005292 f32 globalAlpha
Jesse Hallf4ab2b12015-11-30 16:04:55 -08005293 VkDisplayPlaneAlphaFlagBitsKHR alphaMode
5294 VkExtent2D imageExtent
Jesse Hall1356b0d2015-11-23 17:24:58 -08005295}
5296
Jesse Hallad250842017-03-10 18:35:38 -08005297@extension("VK_KHR_display_swapchain") // 4
Jesse Hall1356b0d2015-11-23 17:24:58 -08005298class VkDisplayPresentInfoKHR {
5299 VkStructureType sType
5300 const void* pNext
5301 VkRect2D srcRect
5302 VkRect2D dstRect
Jesse Halla6429252015-11-29 18:59:42 -08005303 VkBool32 persistent
Jesse Hall1356b0d2015-11-23 17:24:58 -08005304}
5305
Jesse Hallad250842017-03-10 18:35:38 -08005306@extension("VK_KHR_xlib_surface") // 5
Jesse Hallf9fa9a52016-01-08 16:08:51 -08005307class VkXlibSurfaceCreateInfoKHR {
5308 VkStructureType sType
5309 const void* pNext
5310 VkXlibSurfaceCreateFlagsKHR flags
5311 platform.Display* dpy
5312 platform.Window window
5313}
5314
Jesse Hallad250842017-03-10 18:35:38 -08005315@extension("VK_KHR_xcb_surface") // 6
Jesse Hallf9fa9a52016-01-08 16:08:51 -08005316class VkXcbSurfaceCreateInfoKHR {
5317 VkStructureType sType
5318 const void* pNext
5319 VkXcbSurfaceCreateFlagsKHR flags
5320 platform.xcb_connection_t* connection
5321 platform.xcb_window_t window
5322}
5323
Jesse Hallad250842017-03-10 18:35:38 -08005324@extension("VK_KHR_wayland_surface") // 7
Jesse Hallf9fa9a52016-01-08 16:08:51 -08005325class VkWaylandSurfaceCreateInfoKHR {
5326 VkStructureType sType
5327 const void* pNext
5328 VkWaylandSurfaceCreateFlagsKHR flags
5329 platform.wl_display* display
5330 platform.wl_surface* surface
5331}
5332
Jesse Hallad250842017-03-10 18:35:38 -08005333@extension("VK_KHR_mir_surface") // 8
Jesse Hallf9fa9a52016-01-08 16:08:51 -08005334class VkMirSurfaceCreateInfoKHR {
5335 VkStructureType sType
5336 const void* pNext
5337 VkMirSurfaceCreateFlagsKHR flags
5338 platform.MirConnection* connection
5339 platform.MirSurface* mirSurface
5340}
5341
Jesse Hallad250842017-03-10 18:35:38 -08005342@extension("VK_KHR_android_surface") // 9
Jesse Hallf9fa9a52016-01-08 16:08:51 -08005343class VkAndroidSurfaceCreateInfoKHR {
5344 VkStructureType sType
5345 const void* pNext
5346 VkAndroidSurfaceCreateFlagsKHR flags
5347 platform.ANativeWindow* window
5348}
5349
Jesse Hallad250842017-03-10 18:35:38 -08005350@extension("VK_KHR_win32_surface") // 10
Jesse Hallf9fa9a52016-01-08 16:08:51 -08005351class VkWin32SurfaceCreateInfoKHR {
5352 VkStructureType sType
5353 const void* pNext
5354 VkWin32SurfaceCreateFlagsKHR flags
5355 platform.HINSTANCE hinstance
5356 platform.HWND hwnd
5357}
5358
Jesse Hallad250842017-03-10 18:35:38 -08005359@extension("VK_ANDROID_native_buffer") // 11
Jesse Halld1abd742017-02-09 21:45:51 -08005360@internal class Gralloc1Usage {
5361 u64 consumer
5362 u64 producer
5363}
5364
Jesse Hallad250842017-03-10 18:35:38 -08005365@extension("VK_ANDROID_native_buffer") // 11
Chia-I Wub262ddc2016-03-22 07:38:20 +08005366class VkNativeBufferANDROID {
5367 VkStructureType sType
5368 const void* pNext
5369 platform.buffer_handle_t handle
Jesse Halld1abd742017-02-09 21:45:51 -08005370 s32 stride
5371 s32 format
5372 s32 usage
5373 Gralloc1Usage usage2
Chia-I Wub262ddc2016-03-22 07:38:20 +08005374}
5375
Jesse Hallad250842017-03-10 18:35:38 -08005376@extension("VK_ANDROID_native_buffer") // 11
Chris Forbes8e4438b2016-12-07 16:26:49 +13005377class VkSwapchainImageCreateInfoANDROID {
5378 VkStructureType sType
5379 const void* pNext
Chris Forbes134d9582017-01-12 14:26:37 +13005380 VkSwapchainImageUsageFlagsANDROID flags
Chris Forbes48853712017-01-12 14:09:33 +13005381}
Ian Elliott4c8bb2a2016-12-29 11:07:26 -07005382
Jesse Hallad250842017-03-10 18:35:38 -08005383@extension("VK_ANDROID_native_buffer") // 11
Chris Forbes1d4e5542017-02-15 19:38:50 +13005384class VkPhysicalDevicePresentationPropertiesANDROID {
5385 VkStructureType sType
5386 void* pNext
5387 VkBool32 sharedImage
5388}
5389
Jesse Hallad250842017-03-10 18:35:38 -08005390@extension("VK_EXT_debug_report") // 12
Jesse Hall715b86a2016-01-16 16:34:29 -08005391class VkDebugReportCallbackCreateInfoEXT {
5392 VkStructureType sType
5393 const void* pNext
5394 VkDebugReportFlagsEXT flags
5395 PFN_vkDebugReportCallbackEXT pfnCallback
5396 void* pUserData
5397}
5398
Jesse Hallad250842017-03-10 18:35:38 -08005399@extension("VK_AMD_rasterization_order") // 19
Jesse Hall26763382016-05-20 07:13:52 -07005400class VkPipelineRasterizationStateRasterizationOrderAMD {
5401 VkStructureType sType
5402 const void* pNext
5403 VkRasterizationOrderAMD rasterizationOrder
5404}
5405
Jesse Hallad250842017-03-10 18:35:38 -08005406@extension("VK_EXT_debug_marker") // 23
Jesse Hall26763382016-05-20 07:13:52 -07005407class VkDebugMarkerObjectNameInfoEXT {
5408 VkStructureType sType
5409 const void* pNext
5410 VkDebugReportObjectTypeEXT objectType
5411 u64 object
5412 const char* pObjectName
5413}
5414
Jesse Hallad250842017-03-10 18:35:38 -08005415@extension("VK_EXT_debug_marker") // 23
Jesse Hall26763382016-05-20 07:13:52 -07005416class VkDebugMarkerObjectTagInfoEXT {
5417 VkStructureType sType
5418 const void* pNext
5419 VkDebugReportObjectTypeEXT objectType
5420 u64 object
5421 u64 tagName
5422 platform.size_t tagSize
5423 const void* pTag
5424}
5425
Jesse Hallad250842017-03-10 18:35:38 -08005426@extension("VK_EXT_debug_marker") // 23
Jesse Hall26763382016-05-20 07:13:52 -07005427class VkDebugMarkerMarkerInfoEXT {
5428 VkStructureType sType
5429 const void* pNext
5430 const char* pMarkerName
5431 f32[4] color
5432}
5433
Jesse Hallad250842017-03-10 18:35:38 -08005434@extension("VK_NV_dedicated_allocation") // 27
Jesse Hall56d386a2016-07-26 15:20:40 -07005435class VkDedicatedAllocationImageCreateInfoNV {
5436 VkStructureType sType
5437 const void* pNext
5438 VkBool32 dedicatedAllocation
5439}
5440
Jesse Hallad250842017-03-10 18:35:38 -08005441@extension("VK_NV_dedicated_allocation") // 27
Jesse Hall56d386a2016-07-26 15:20:40 -07005442class VkDedicatedAllocationBufferCreateInfoNV {
5443 VkStructureType sType
5444 const void* pNext
5445 VkBool32 dedicatedAllocation
5446}
5447
Jesse Hallad250842017-03-10 18:35:38 -08005448@extension("VK_NV_dedicated_allocation") // 27
Jesse Hall56d386a2016-07-26 15:20:40 -07005449class VkDedicatedAllocationMemoryAllocateInfoNV {
5450 VkStructureType sType
5451 const void* pNext
5452 VkImage image
5453 VkBuffer buffer
5454}
5455
Jesse Hallf47e8f82018-10-27 23:41:45 -07005456@extension("VK_EXT_transform_feedback") // 29
5457class VkPhysicalDeviceTransformFeedbackFeaturesEXT {
5458 VkStructureType sType
5459 void* pNext
5460 VkBool32 transformFeedback
5461 VkBool32 geometryStreams
5462}
5463
5464@extension("VK_EXT_transform_feedback") // 29
5465class VkPhysicalDeviceTransformFeedbackPropertiesEXT {
5466 VkStructureType sType
5467 void* pNext
5468 u32 maxTransformFeedbackStreams
5469 u32 maxTransformFeedbackBuffers
5470 VkDeviceSize maxTransformFeedbackBufferSize
5471 u32 maxTransformFeedbackStreamDataSize
5472 u32 maxTransformFeedbackBufferDataSize
5473 u32 maxTransformFeedbackBufferDataStride
5474 VkBool32 transformFeedbackQueries
5475 VkBool32 transformFeedbackStreamsLinesTriangles
5476 VkBool32 transformFeedbackRasterizationStreamSelect
5477 VkBool32 transformFeedbackDraw
5478}
5479
5480@extension("VK_EXT_transform_feedback") // 29
5481class VkPipelineRasterizationStateStreamCreateInfoEXT {
5482 VkStructureType sType
5483 const void* pNext
5484 VkPipelineRasterizationStateStreamCreateFlagsEXT flags
5485 u32 rasterizationStream
5486}
5487
Jesse Hall7ba0ac72017-07-07 17:13:23 -07005488@extension("VK_AMD_texture_gather_bias_lod") // 42
5489class VkTextureLODGatherFormatPropertiesAMD {
5490 VkStructureType sType
5491 void* pNext
5492 VkBool32 supportsTextureGatherLODBiasAMD
5493}
5494
Jesse Hall8c954d32018-01-17 22:06:20 -08005495@extension("VK_AMD_shader_info") // 43
5496class VkShaderResourceUsageAMD {
5497 u32 numUsedVgprs
5498 u32 numUsedSgprs
5499 u32 ldsSizePerLocalWorkGroup
5500 platform.size_t ldsUsageSizeInBytes
5501 platform.size_t scratchMemUsageInBytes
5502}
5503
5504@extension("VK_AMD_shader_info") // 43
5505class VkShaderStatisticsInfoAMD {
5506 VkShaderStageFlags shaderStageMask
5507 VkShaderResourceUsageAMD resourceUsage
5508 u32 numPhysicalVgprs
5509 u32 numPhysicalSgprs
5510 u32 numAvailableVgprs
5511 u32 numAvailableSgprs
5512 u32[3] computeWorkGroupSize
5513}
5514
Jesse Hallb5297192018-09-22 20:52:13 +02005515@extension("VK_NV_corner_sampled_image") // 51
5516class VkPhysicalDeviceCornerSampledImageFeaturesNV {
5517 VkStructureType sType
5518 void* pNext
5519 VkBool32 cornerSampledImage
5520}
5521
Daniel Koch09f7bf92017-10-05 00:26:58 -04005522@extension("VK_KHR_multiview") // 54
5523class VkRenderPassMultiviewCreateInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005524 VkStructureType sType
5525 const void* pNext
5526 u32 subpassCount
5527 const u32* pViewMasks
5528 u32 dependencyCount
5529 const s32* pViewOffsets
5530 u32 correlationMaskCount
5531 const u32* pCorrelationMasks
5532}
5533
Daniel Koch09f7bf92017-10-05 00:26:58 -04005534@extension("VK_KHR_multiview") // 54
5535class VkPhysicalDeviceMultiviewFeaturesKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005536 VkStructureType sType
5537 void* pNext
5538 VkBool32 multiview
5539 VkBool32 multiviewGeometryShader
5540 VkBool32 multiviewTessellationShader
5541}
5542
Daniel Koch09f7bf92017-10-05 00:26:58 -04005543@extension("VK_KHR_multiview") // 54
5544class VkPhysicalDeviceMultiviewPropertiesKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005545 VkStructureType sType
5546 void* pNext
5547 u32 maxMultiviewViewCount
5548 u32 maxMultiviewInstanceIndex
5549}
5550
5551@extension("VK_NV_external_memory_capabilities") // 56
Jesse Halleb02c472017-02-24 15:13:45 -08005552class VkExternalImageFormatPropertiesNV {
5553 VkImageFormatProperties imageFormatProperties
5554 VkExternalMemoryFeatureFlagsNV externalMemoryFeatures
5555 VkExternalMemoryHandleTypeFlagsNV exportFromImportedHandleTypes
5556 VkExternalMemoryHandleTypeFlagsNV compatibleHandleTypes
5557}
5558
Jesse Hallad250842017-03-10 18:35:38 -08005559@extension("VK_NV_external_memory") // 57
Jesse Halleb02c472017-02-24 15:13:45 -08005560class VkExternalMemoryImageCreateInfoNV {
5561 VkStructureType sType
5562 const void* pNext
5563 VkExternalMemoryHandleTypeFlagsNV handleTypes
5564}
5565
Jesse Hallad250842017-03-10 18:35:38 -08005566@extension("VK_NV_external_memory") // 57
Jesse Halleb02c472017-02-24 15:13:45 -08005567class VkExportMemoryAllocateInfoNV {
5568 VkStructureType sType
5569 const void* pNext
5570 VkExternalMemoryHandleTypeFlagsNV handleTypes
5571}
5572
Jesse Hallad250842017-03-10 18:35:38 -08005573@extension("VK_NV_external_memory_win32") // 58
Jesse Halleb02c472017-02-24 15:13:45 -08005574class VkImportMemoryWin32HandleInfoNV {
5575 VkStructureType sType
5576 const void* pNext
5577 VkExternalMemoryHandleTypeFlagsNV handleType
5578 platform.HANDLE handle
5579}
5580
Jesse Hallad250842017-03-10 18:35:38 -08005581@extension("VK_NV_external_memory_win32") // 58
Jesse Halleb02c472017-02-24 15:13:45 -08005582class VkExportMemoryWin32HandleInfoNV {
5583 VkStructureType sType
5584 const void* pNext
5585 const platform.SECURITY_ATTRIBUTES* pAttributes
5586 platform.DWORD dwAccess
5587}
5588
Jesse Hallad250842017-03-10 18:35:38 -08005589@extension("VK_NV_win32_keyed_mutex") // 59
Jesse Halleb02c472017-02-24 15:13:45 -08005590class VkWin32KeyedMutexAcquireReleaseInfoNV {
5591 VkStructureType sType
5592 const void* pNext
5593 u32 acquireCount
5594 const VkDeviceMemory* pAcquireSyncs
5595 const u64* pAcquireKeys
5596 const u32* pAcquireTimeoutMilliseconds
5597 u32 releaseCount
5598 const VkDeviceMemory* pReleaseSyncs
5599 const u64* pReleaseKeys
5600}
5601
Jesse Hallad250842017-03-10 18:35:38 -08005602@extension("VK_KHR_get_physical_device_properties2") // 60
Chris Forbes1194ede2016-12-30 16:29:25 +13005603class VkPhysicalDeviceFeatures2KHR {
5604 VkStructureType sType
5605 void* pNext
5606 VkPhysicalDeviceFeatures features
5607}
5608
Jesse Hallad250842017-03-10 18:35:38 -08005609@extension("VK_KHR_get_physical_device_properties2") // 60
Chris Forbes1194ede2016-12-30 16:29:25 +13005610class VkPhysicalDeviceProperties2KHR {
5611 VkStructureType sType
5612 void* pNext
5613 VkPhysicalDeviceProperties properties
5614}
5615
Jesse Hallad250842017-03-10 18:35:38 -08005616@extension("VK_KHR_get_physical_device_properties2") // 60
Chris Forbes1194ede2016-12-30 16:29:25 +13005617class VkFormatProperties2KHR {
5618 VkStructureType sType
5619 void* pNext
5620 VkFormatProperties formatProperties
5621}
5622
Jesse Hallad250842017-03-10 18:35:38 -08005623@extension("VK_KHR_get_physical_device_properties2") // 60
Chris Forbes1194ede2016-12-30 16:29:25 +13005624class VkImageFormatProperties2KHR {
5625 VkStructureType sType
5626 void* pNext
5627 VkImageFormatProperties imageFormatProperties
5628}
5629
Jesse Hallad250842017-03-10 18:35:38 -08005630@extension("VK_KHR_get_physical_device_properties2") // 60
Chris Forbes1194ede2016-12-30 16:29:25 +13005631class VkPhysicalDeviceImageFormatInfo2KHR {
5632 VkStructureType sType
5633 const void* pNext
5634 VkFormat format
5635 VkImageType type
5636 VkImageTiling tiling
5637 VkImageUsageFlags usage
5638 VkImageCreateFlags flags
5639}
5640
Jesse Hallad250842017-03-10 18:35:38 -08005641@extension("VK_KHR_get_physical_device_properties2") // 60
Chris Forbes1194ede2016-12-30 16:29:25 +13005642class VkQueueFamilyProperties2KHR {
5643 VkStructureType sType
5644 void* pNext
5645 VkQueueFamilyProperties queueFamilyProperties
5646}
5647
Jesse Hallad250842017-03-10 18:35:38 -08005648@extension("VK_KHR_get_physical_device_properties2") // 60
Chris Forbes1194ede2016-12-30 16:29:25 +13005649class VkPhysicalDeviceMemoryProperties2KHR {
5650 VkStructureType sType
5651 void* pNext
5652 VkPhysicalDeviceMemoryProperties memoryProperties
5653}
5654
Jesse Hallad250842017-03-10 18:35:38 -08005655@extension("VK_KHR_get_physical_device_properties2") // 60
Chris Forbes1194ede2016-12-30 16:29:25 +13005656class VkSparseImageFormatProperties2KHR {
5657 VkStructureType sType
5658 void* pNext
5659 VkSparseImageFormatProperties properties
5660}
5661
Jesse Hallad250842017-03-10 18:35:38 -08005662@extension("VK_KHR_get_physical_device_properties2") // 60
Chris Forbes1194ede2016-12-30 16:29:25 +13005663class VkPhysicalDeviceSparseImageFormatInfo2KHR {
5664 VkStructureType sType
5665 const void* pNext
5666 VkFormat format
5667 VkImageType type
5668 VkSampleCountFlagBits samples
5669 VkImageUsageFlags usage
5670 VkImageTiling tiling
5671}
5672
Daniel Koch09f7bf92017-10-05 00:26:58 -04005673@extension("VK_KHR_device_group") // 61
5674class VkMemoryAllocateFlagsInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005675 VkStructureType sType
5676 const void* pNext
Daniel Koch09f7bf92017-10-05 00:26:58 -04005677 VkMemoryAllocateFlagsKHR flags
Jesse Hallad250842017-03-10 18:35:38 -08005678 u32 deviceMask
5679}
5680
Daniel Koch09f7bf92017-10-05 00:26:58 -04005681@extension("VK_KHR_device_group") // 61
5682class VkBindBufferMemoryDeviceGroupInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005683 VkStructureType sType
5684 const void* pNext
Jesse Hallad250842017-03-10 18:35:38 -08005685 u32 deviceIndexCount
5686 const u32* pDeviceIndices
5687}
5688
Daniel Koch09f7bf92017-10-05 00:26:58 -04005689@extension("VK_KHR_device_group") // 61
5690class VkBindImageMemoryDeviceGroupInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005691 VkStructureType sType
5692 const void* pNext
Jesse Hallad250842017-03-10 18:35:38 -08005693 u32 deviceIndexCount
5694 const u32* pDeviceIndices
5695 u32 SFRRectCount
5696 const VkRect2D* pSFRRects
5697}
5698
Daniel Koch09f7bf92017-10-05 00:26:58 -04005699@extension("VK_KHR_device_group") // 61
5700class VkDeviceGroupRenderPassBeginInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005701 VkStructureType sType
5702 const void* pNext
5703 u32 deviceMask
5704 u32 deviceRenderAreaCount
5705 const VkRect2D* pDeviceRenderAreas
5706}
5707
Daniel Koch09f7bf92017-10-05 00:26:58 -04005708@extension("VK_KHR_device_group") // 61
5709class VkDeviceGroupCommandBufferBeginInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005710 VkStructureType sType
5711 const void* pNext
5712 u32 deviceMask
5713}
5714
Daniel Koch09f7bf92017-10-05 00:26:58 -04005715@extension("VK_KHR_device_group") // 61
5716class VkDeviceGroupSubmitInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005717 VkStructureType sType
5718 const void* pNext
5719 u32 waitSemaphoreCount
5720 const u32* pWaitSemaphoreDeviceIndices
5721 u32 commandBufferCount
5722 const u32* pCommandBufferDeviceMasks
5723 u32 signalSemaphoreCount
5724 const u32* pSignalSemaphoreDeviceIndices
5725}
5726
Daniel Koch09f7bf92017-10-05 00:26:58 -04005727@extension("VK_KHR_device_group") // 61
5728class VkDeviceGroupBindSparseInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005729 VkStructureType sType
5730 const void* pNext
5731 u32 resourceDeviceIndex
5732 u32 memoryDeviceIndex
5733}
5734
Jesse Hallad250842017-03-10 18:35:38 -08005735@extension("VK_EXT_validation_flags") // 62
Chris Forbes289cb792016-12-30 15:03:55 +13005736class VkValidationFlagsEXT {
5737 VkStructureType sType
5738 const void* pNext
5739 u32 disabledValidationCheckCount
Jesse Hall115df0c2018-07-30 12:00:59 -07005740 const VkValidationCheckEXT* pDisabledValidationChecks
Chris Forbes289cb792016-12-30 15:03:55 +13005741}
5742
Jesse Hallad250842017-03-10 18:35:38 -08005743@extension("VK_NN_vi_surface") // 63
Jesse Hall77ad05b2017-03-10 22:02:20 -08005744class VkViSurfaceCreateInfoNN {
5745 VkStructureType sType
5746 const void* pNext
5747 VkViSurfaceCreateFlagsNN flags
5748 void* window
5749}
5750
Jesse Hall4af6c462018-09-10 09:04:25 -07005751@extension("VK_EXT_astc_decode_mode") // 68
5752class VkImageViewASTCDecodeModeEXT {
5753 VkStructureType sType
5754 const void* pNext
5755 VkFormat decodeMode
5756}
5757
5758@extension("VK_EXT_astc_decode_mode") // 68
5759class VkPhysicalDeviceASTCDecodeFeaturesEXT {
5760 VkStructureType sType
5761 void* pNext
5762 VkBool32 decodeModeSharedExponent
5763}
5764
Daniel Koch09f7bf92017-10-05 00:26:58 -04005765@extension("VK_KHR_device_group_creation") // 71
5766class VkPhysicalDeviceGroupPropertiesKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005767 VkStructureType sType
Jesse Hallf5ad48b2017-03-20 13:09:19 -07005768 void* pNext
Jesse Hallad250842017-03-10 18:35:38 -08005769 u32 physicalDeviceCount
Daniel Koch09f7bf92017-10-05 00:26:58 -04005770 VkPhysicalDevice[VK_MAX_DEVICE_GROUP_SIZE] physicalDevices
Jesse Hallad250842017-03-10 18:35:38 -08005771 VkBool32 subsetAllocation
5772}
5773
Daniel Koch09f7bf92017-10-05 00:26:58 -04005774@extension("VK_KHR_device_group_creation") // 71
5775class VkDeviceGroupDeviceCreateInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005776 VkStructureType sType
5777 const void* pNext
5778 u32 physicalDeviceCount
5779 const VkPhysicalDevice* pPhysicalDevices
5780}
5781
Jesse Hall9492f992017-08-28 12:10:06 -07005782@extension("VK_KHR_external_memory_capabilities") // 72
5783class VkExternalMemoryPropertiesKHR {
5784 VkExternalMemoryFeatureFlagsKHR externalMemoryFeatures
5785 VkExternalMemoryHandleTypeFlagsKHR exportFromImportedHandleTypes
5786 VkExternalMemoryHandleTypeFlagsKHR compatibleHandleTypes
Jesse Hallad250842017-03-10 18:35:38 -08005787}
5788
Jesse Hall9492f992017-08-28 12:10:06 -07005789@extension("VK_KHR_external_memory_capabilities") // 72
5790class VkPhysicalDeviceExternalImageFormatInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005791 VkStructureType sType
5792 const void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005793 VkExternalMemoryHandleTypeFlagBitsKHR handleType
Jesse Hallad250842017-03-10 18:35:38 -08005794}
5795
Jesse Hall9492f992017-08-28 12:10:06 -07005796@extension("VK_KHR_external_memory_capabilities") // 72
5797class VkExternalImageFormatPropertiesKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005798 VkStructureType sType
5799 void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005800 VkExternalMemoryPropertiesKHR externalMemoryProperties
Jesse Hallad250842017-03-10 18:35:38 -08005801}
5802
Jesse Hall9492f992017-08-28 12:10:06 -07005803@extension("VK_KHR_external_memory_capabilities") // 72
5804class VkPhysicalDeviceExternalBufferInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005805 VkStructureType sType
5806 const void* pNext
5807 VkBufferCreateFlags flags
5808 VkBufferUsageFlags usage
Jesse Hall9492f992017-08-28 12:10:06 -07005809 VkExternalMemoryHandleTypeFlagBitsKHR handleType
Jesse Hallad250842017-03-10 18:35:38 -08005810}
5811
Jesse Hall9492f992017-08-28 12:10:06 -07005812@extension("VK_KHR_external_memory_capabilities") // 72
5813class VkExternalBufferPropertiesKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005814 VkStructureType sType
5815 void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005816 VkExternalMemoryPropertiesKHR externalMemoryProperties
Jesse Hallad250842017-03-10 18:35:38 -08005817}
5818
Jesse Hall9492f992017-08-28 12:10:06 -07005819@extension("VK_KHR_external_memory_capabilities") // 72
5820class VkPhysicalDeviceIDPropertiesKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005821 VkStructureType sType
5822 void* pNext
5823 u8[VK_UUID_SIZE] deviceUUID
5824 u8[VK_UUID_SIZE] driverUUID
Daniel Koch09f7bf92017-10-05 00:26:58 -04005825 u8[VK_LUID_SIZE] deviceLUID
Jesse Hall9492f992017-08-28 12:10:06 -07005826 u32 deviceNodeMask
Jesse Hallad250842017-03-10 18:35:38 -08005827 VkBool32 deviceLUIDValid
5828}
5829
Jesse Hall9492f992017-08-28 12:10:06 -07005830@extension("VK_KHR_external_memory") // 73
5831class VkExternalMemoryImageCreateInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005832 VkStructureType sType
5833 const void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005834 VkExternalMemoryHandleTypeFlagsKHR handleTypes
Jesse Hallad250842017-03-10 18:35:38 -08005835}
5836
Jesse Hall9492f992017-08-28 12:10:06 -07005837@extension("VK_KHR_external_memory") // 73
5838class VkExternalMemoryBufferCreateInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005839 VkStructureType sType
5840 const void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005841 VkExternalMemoryHandleTypeFlagsKHR handleTypes
Jesse Hallad250842017-03-10 18:35:38 -08005842}
5843
Jesse Hall9492f992017-08-28 12:10:06 -07005844@extension("VK_KHR_external_memory") // 73
5845class VkExportMemoryAllocateInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005846 VkStructureType sType
5847 const void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005848 VkExternalMemoryHandleTypeFlagsKHR handleTypes
Jesse Hallad250842017-03-10 18:35:38 -08005849}
5850
Jesse Hall9492f992017-08-28 12:10:06 -07005851@extension("VK_KHR_external_memory_win32") // 74
5852class VkImportMemoryWin32HandleInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005853 VkStructureType sType
5854 const void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005855 VkExternalMemoryHandleTypeFlagBitsKHR handleType
Jesse Hallad250842017-03-10 18:35:38 -08005856 platform.HANDLE handle
Jesse Hall9492f992017-08-28 12:10:06 -07005857 platform.LPCWSTR name
Jesse Hallad250842017-03-10 18:35:38 -08005858}
5859
Jesse Hall9492f992017-08-28 12:10:06 -07005860@extension("VK_KHR_external_memory_win32") // 74
5861class VkExportMemoryWin32HandleInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005862 VkStructureType sType
5863 const void* pNext
5864 const platform.SECURITY_ATTRIBUTES* pAttributes
5865 platform.DWORD dwAccess
5866 platform.LPCWSTR name
5867}
5868
Jesse Hall9492f992017-08-28 12:10:06 -07005869@extension("VK_KHR_external_memory_win32") // 74
5870class VkMemoryWin32HandlePropertiesKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005871 VkStructureType sType
5872 void* pNext
5873 u32 memoryTypeBits
5874}
5875
Jesse Hall9492f992017-08-28 12:10:06 -07005876@extension("VK_KHR_external_memory_win32") // 74
5877class VkMemoryGetWin32HandleInfoKHR {
5878 VkStructureType sType
5879 void* pNext
5880 VkDeviceMemory memory
5881 VkExternalMemoryHandleTypeFlagBitsKHR handleType
5882}
5883
5884@extension("VK_KHR_external_memory_fd") // 75
5885class VkImportMemoryFdInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005886 VkStructureType sType
5887 const void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005888 VkExternalMemoryHandleTypeFlagBitsKHR handleType
Jesse Hallad250842017-03-10 18:35:38 -08005889 int fd
5890}
5891
Jesse Hall9492f992017-08-28 12:10:06 -07005892@extension("VK_KHR_external_memory_fd") // 75
5893class VkMemoryFdPropertiesKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005894 VkStructureType sType
5895 void* pNext
5896 u32 memoryTypeBits
5897}
5898
Jesse Hall9492f992017-08-28 12:10:06 -07005899@extension("VK_KHR_external_memory_fd") // 75
5900class VkMemoryGetFdInfoKHR {
5901 VkStructureType sType
5902 void* pNext
5903 VkDeviceMemory memory
5904 VkExternalMemoryHandleTypeFlagBitsKHR handleType
5905}
5906
5907@extension("VK_KHR_win32_keyed_mutex") // 76
5908class VkWin32KeyedMutexAcquireReleaseInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005909 VkStructureType sType
5910 const void* pNext
5911 u32 acquireCount
5912 const VkDeviceMemory* pAcquireSyncs
5913 const u64* pAcquireKeys
5914 const u32* pAcquireTimeouts
5915 u32 releaseCount
5916 const VkDeviceMemory* pReleaseSyncs
5917 const u64* pReleaseKeys
5918}
5919
Jesse Hall9492f992017-08-28 12:10:06 -07005920@extension("VK_KHR_external_semaphore_capabilities") // 77
5921class VkPhysicalDeviceExternalSemaphoreInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005922 VkStructureType sType
5923 const void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005924 VkExternalSemaphoreHandleTypeFlagBitsKHR handleType
Jesse Hallad250842017-03-10 18:35:38 -08005925}
5926
Jesse Hall9492f992017-08-28 12:10:06 -07005927@extension("VK_KHR_external_semaphore_capabilities") // 77
5928class VkExternalSemaphorePropertiesKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005929 VkStructureType sType
5930 void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005931 VkExternalSemaphoreHandleTypeFlagsKHR exportFromImportedHandleTypes
5932 VkExternalSemaphoreHandleTypeFlagsKHR compatibleHandleTypes
5933 VkExternalSemaphoreFeatureFlagsKHR externalSemaphoreFeatures
Jesse Hallad250842017-03-10 18:35:38 -08005934}
5935
Jesse Hall9492f992017-08-28 12:10:06 -07005936@extension("VK_KHR_external_semaphore") // 78
5937class VkExportSemaphoreCreateInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005938 VkStructureType sType
5939 const void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005940 VkExternalSemaphoreHandleTypeFlagsKHR handleTypes
Jesse Hallad250842017-03-10 18:35:38 -08005941}
5942
Jesse Hall9492f992017-08-28 12:10:06 -07005943@extension("VK_KHR_external_semaphore_win32") // 79
5944class VkImportSemaphoreWin32HandleInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005945 VkStructureType sType
5946 const void* pNext
5947 VkSemaphore semaphore
Jesse Hall9492f992017-08-28 12:10:06 -07005948 VkSemaphoreImportFlagsKHR flags
5949 VkExternalSemaphoreHandleTypeFlagsKHR handleType
Jesse Hallad250842017-03-10 18:35:38 -08005950 platform.HANDLE handle
Jesse Hall9492f992017-08-28 12:10:06 -07005951 platform.LPCWSTR name
Jesse Hallad250842017-03-10 18:35:38 -08005952}
5953
Jesse Hall9492f992017-08-28 12:10:06 -07005954@extension("VK_KHR_external_semaphore_win32") // 79
5955class VkExportSemaphoreWin32HandleInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005956 VkStructureType sType
5957 const void* pNext
5958 const platform.SECURITY_ATTRIBUTES* pAttributes
5959 platform.DWORD dwAccess
5960 platform.LPCWSTR name
5961}
5962
Jesse Hall9492f992017-08-28 12:10:06 -07005963@extension("VK_KHR_external_semaphore_win32") // 79
5964class VkD3D12FenceSubmitInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005965 VkStructureType sType
5966 const void* pNext
5967 u32 waitSemaphoreValuesCount
5968 const u64* pWaitSemaphoreValues
5969 u32 signalSemaphoreValuesCount
5970 const u64* pSignalSemaphoreValues
5971}
5972
Jesse Hall9492f992017-08-28 12:10:06 -07005973@extension("VK_KHR_external_semaphore_win32") // 79
5974class VkSemaphoreGetWin32HandleInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005975 VkStructureType sType
5976 const void* pNext
5977 VkSemaphore semaphore
Jesse Hall9492f992017-08-28 12:10:06 -07005978 VkExternalSemaphoreHandleTypeFlagBitsKHR handleType
5979}
5980
5981@extension("VK_KHR_external_semaphore_fd") // 80
5982class VkImportSemaphoreFdInfoKHR {
5983 VkStructureType sType
5984 const void* pNext
5985 VkSemaphore semaphore
5986 VkSemaphoreImportFlagsKHR flags
5987 VkExternalSemaphoreHandleTypeFlagBitsKHR handleType
Jesse Hallad250842017-03-10 18:35:38 -08005988 s32 fd
5989}
5990
Jesse Hall9492f992017-08-28 12:10:06 -07005991@extension("VK_KHR_external_semaphore_fd") // 80
5992class VkSemaphoreGetFdInfoKHR {
5993 VkStructureType sType
5994 const void* pNext
5995 VkSemaphore semaphore
5996 VkExternalSemaphoreHandleTypeFlagBitsKHR handleType
5997}
5998
Jesse Hallad250842017-03-10 18:35:38 -08005999@extension("VK_KHR_push_descriptor") // 81
6000class VkPhysicalDevicePushDescriptorPropertiesKHR {
6001 VkStructureType sType
6002 void* pNext
6003 u32 maxPushDescriptors
6004}
6005
Jesse Halla13a3cf2018-07-09 15:51:52 -07006006@extension("VK_EXT_conditional_rendering") // 82
6007class VkConditionalRenderingBeginInfoEXT {
6008 VkStructureType sType
6009 const void* pNext
6010 VkBuffer buffer
6011 VkDeviceSize offset
6012 VkConditionalRenderingFlagsEXT flags
6013}
6014
6015@extension("VK_EXT_conditional_rendering") // 82
6016class VkPhysicalDeviceConditionalRenderingFeaturesEXT {
6017 VkStructureType sType
6018 void* pNext
6019 VkBool32 conditionalRendering
6020 VkBool32 inheritedConditionalRendering
6021}
6022
6023@extension("VK_EXT_conditional_rendering") // 82
6024class VkCommandBufferInheritanceConditionalRenderingInfoEXT {
6025 VkStructureType sType
6026 const void* pNext
6027 VkBool32 conditionalRenderingEnable
6028}
6029
Jesse Hall9492f992017-08-28 12:10:06 -07006030@extension("VK_KHR_16bit_storage") // 84
6031class VkPhysicalDevice16BitStorageFeaturesKHR {
6032 VkStructureType sType
6033 void* pNext
6034 VkBool32 storageBuffer16BitAccess
6035 VkBool32 uniformAndStorageBuffer16BitAccess
6036 VkBool32 storagePushConstant16
6037 VkBool32 storageInputOutput16
6038}
6039
Jesse Hallad250842017-03-10 18:35:38 -08006040@extension("VK_KHR_incremental_present") // 85
6041class VkRectLayerKHR {
6042 VkOffset2D offset
6043 VkExtent2D extent
6044 u32 layer
6045}
6046
6047@extension("VK_KHR_incremental_present") // 85
6048class VkPresentRegionKHR {
6049 u32 rectangleCount
6050 const VkRectLayerKHR* pRectangles
6051}
6052
6053@extension("VK_KHR_incremental_present") // 85
6054class VkPresentRegionsKHR {
6055 VkStructureType sType
6056 const void* pNext
6057 u32 swapchainCount
6058 const VkPresentRegionKHR* pRegions
6059}
6060
6061@extension("VK_KHR_descriptor_update_template") // 86
6062class VkDescriptorUpdateTemplateEntryKHR {
6063 u32 dstBinding
6064 u32 dstArrayElement
6065 u32 descriptorCount
6066 VkDescriptorType descriptorType
6067 platform.size_t offset
6068 platform.size_t stride
6069}
6070
6071@extension("VK_KHR_descriptor_update_template") // 86
6072class VkDescriptorUpdateTemplateCreateInfoKHR {
6073 VkStructureType sType
6074 void* pNext
6075 VkDescriptorUpdateTemplateCreateFlagsKHR flags
6076 u32 descriptorUpdateEntryCount
6077 const VkDescriptorUpdateTemplateEntryKHR* pDescriptorUpdateEntries
6078 VkDescriptorUpdateTemplateTypeKHR templateType
6079 VkDescriptorSetLayout descriptorSetLayout
6080 VkPipelineBindPoint pipelineBindPoint
6081 VkPipelineLayout pipelineLayout
6082 u32 set
6083}
6084
6085@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13006086class VkDeviceGeneratedCommandsFeaturesNVX {
6087 VkStructureType sType
6088 const void* pNext
6089 VkBool32 computeBindingPointSupport
6090}
6091
Jesse Hallad250842017-03-10 18:35:38 -08006092@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13006093class VkDeviceGeneratedCommandsLimitsNVX {
6094 VkStructureType sType
6095 const void* pNext
6096 u32 maxIndirectCommandsLayoutTokenCount
6097 u32 maxObjectEntryCounts
6098 u32 minSequenceCountBufferOffsetAlignment
6099 u32 minSequenceIndexBufferOffsetAlignment
6100 u32 minCommandsTokenBufferOffsetAlignment
6101}
6102
Jesse Hallad250842017-03-10 18:35:38 -08006103@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13006104class VkIndirectCommandsTokenNVX {
6105 VkIndirectCommandsTokenTypeNVX tokenType
6106 VkBuffer buffer
6107 VkDeviceSize offset
6108}
6109
Jesse Hallad250842017-03-10 18:35:38 -08006110@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13006111class VkIndirectCommandsLayoutTokenNVX {
6112 VkIndirectCommandsTokenTypeNVX tokenType
6113 u32 bindingUnit
6114 u32 dynamicCount
6115 u32 divisor
6116}
6117
Jesse Hallad250842017-03-10 18:35:38 -08006118@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13006119class VkIndirectCommandsLayoutCreateInfoNVX {
6120 VkStructureType sType
6121 const void* pNext
6122 VkPipelineBindPoint pipelineBindPoint
6123 VkIndirectCommandsLayoutUsageFlagsNVX flags
6124 u32 tokenCount
6125 const VkIndirectCommandsLayoutTokenNVX* pTokens
6126}
6127
Jesse Hallad250842017-03-10 18:35:38 -08006128@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13006129class VkCmdProcessCommandsInfoNVX {
6130 VkStructureType sType
6131 const void* pNext
6132 VkObjectTableNVX objectTable
6133 VkIndirectCommandsLayoutNVX indirectCommandsLayout
6134 u32 indirectCommandsTokenCount
6135 const VkIndirectCommandsTokenNVX* pIndirectCommandsTokens
6136 u32 maxSequencesCount
6137 VkCommandBuffer targetCommandBuffer
6138 VkBuffer sequencesCountBuffer
6139 VkDeviceSize sequencesCountOffset
6140 VkBuffer sequencesIndexBuffer
6141 VkDeviceSize sequencesIndexOffset
6142}
6143
Jesse Hallad250842017-03-10 18:35:38 -08006144@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13006145class VkCmdReserveSpaceForCommandsInfoNVX {
6146 VkStructureType sType
6147 const void* pNext
6148 VkObjectTableNVX objectTable
6149 VkIndirectCommandsLayoutNVX indirectCommandsLayout
6150 u32 maxSequencesCount
6151}
6152
Jesse Hallad250842017-03-10 18:35:38 -08006153@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13006154class VkObjectTableCreateInfoNVX {
6155 VkStructureType sType
6156 const void* pNext
6157 u32 objectCount
6158 const VkObjectEntryTypeNVX* pObjectEntryTypes
6159 const u32* pObjectEntryCounts
6160 const VkObjectEntryUsageFlagsNVX* pObjectEntryUsageFlags
6161 u32 maxUniformBuffersPerDescriptor
6162 u32 maxStorageBuffersPerDescriptor
6163 u32 maxStorageImagesPerDescriptor
6164 u32 maxSampledImagesPerDescriptor
6165 u32 maxPipelineLayouts
6166}
6167
Jesse Hallad250842017-03-10 18:35:38 -08006168@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13006169class VkObjectTableEntryNVX {
6170 VkObjectEntryTypeNVX type
6171 VkObjectEntryUsageFlagsNVX flags
6172}
6173
Jesse Hallad250842017-03-10 18:35:38 -08006174@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13006175class VkObjectTablePipelineEntryNVX {
6176 VkObjectEntryTypeNVX type
6177 VkObjectEntryUsageFlagsNVX flags
6178 VkPipeline pipeline
6179}
6180
Jesse Hallad250842017-03-10 18:35:38 -08006181@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13006182class VkObjectTableDescriptorSetEntryNVX {
6183 VkObjectEntryTypeNVX type
6184 VkObjectEntryUsageFlagsNVX flags
6185 VkPipelineLayout pipelineLayout
6186 VkDescriptorSet descriptorSet
6187}
6188
Jesse Hallad250842017-03-10 18:35:38 -08006189@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13006190class VkObjectTableVertexBufferEntryNVX {
6191 VkObjectEntryTypeNVX type
6192 VkObjectEntryUsageFlagsNVX flags
6193 VkBuffer buffer
6194}
6195
Jesse Hallad250842017-03-10 18:35:38 -08006196@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13006197class VkObjectTableIndexBufferEntryNVX {
6198 VkObjectEntryTypeNVX type
6199 VkObjectEntryUsageFlagsNVX flags
6200 VkBuffer buffer
Jesse Hall77ad05b2017-03-10 22:02:20 -08006201 VkIndexType indexType
Chris Forbes289cb792016-12-30 15:03:55 +13006202}
6203
Jesse Hallad250842017-03-10 18:35:38 -08006204@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13006205class VkObjectTablePushConstantEntryNVX {
6206 VkObjectEntryTypeNVX type
6207 VkObjectEntryUsageFlagsNVX flags
6208 VkPipelineLayout pipelineLayout
6209 VkShaderStageFlags stageFlags
6210}
6211
Jesse Hallad250842017-03-10 18:35:38 -08006212@extension("VK_NV_clip_space_w_scaling") // 88
6213class VkViewportWScalingNV {
6214 f32 xcoeff
6215 f32 ycoeff
Jesse Hall889cd9a2017-02-25 22:12:23 -08006216}
6217
Jesse Hallad250842017-03-10 18:35:38 -08006218@extension("VK_NV_clip_space_w_scaling") // 88
6219class VkPipelineViewportWScalingStateCreateInfoNV {
Jesse Hall889cd9a2017-02-25 22:12:23 -08006220 VkStructureType sType
6221 const void* pNext
Jesse Hallad250842017-03-10 18:35:38 -08006222 VkBool32 viewportWScalingEnable
6223 u32 viewportCount
6224 const VkViewportWScalingNV* pViewportWScalings
Jesse Hall889cd9a2017-02-25 22:12:23 -08006225}
6226
Jesse Hallad250842017-03-10 18:35:38 -08006227@extension("VK_EXT_display_surface_counter") // 91
Jesse Hall77ad05b2017-03-10 22:02:20 -08006228class VkSurfaceCapabilities2EXT {
6229 VkStructureType sType
6230 void* pNext
6231 u32 minImageCount
6232 u32 maxImageCount
6233 VkExtent2D currentExtent
6234 VkExtent2D minImageExtent
6235 VkExtent2D maxImageExtent
6236 u32 maxImageArrayLayers
6237 VkSurfaceTransformFlagsKHR supportedTransforms
6238 VkSurfaceTransformFlagBitsKHR currentTransform
6239 VkCompositeAlphaFlagsKHR supportedCompositeAlpha
6240 VkImageUsageFlags supportedUsageFlags
6241 VkSurfaceCounterFlagsEXT supportedSurfaceCounters
6242}
6243
Jesse Hallad250842017-03-10 18:35:38 -08006244@extension("VK_EXT_display_control") // 92
Jesse Hall77ad05b2017-03-10 22:02:20 -08006245class VkDisplayPowerInfoEXT {
6246 VkStructureType sType
6247 const void* pNext
6248 VkDisplayPowerStateEXT powerState
6249}
6250
Jesse Hallad250842017-03-10 18:35:38 -08006251@extension("VK_EXT_display_control") // 92
Jesse Hall77ad05b2017-03-10 22:02:20 -08006252class VkDeviceEventInfoEXT {
6253 VkStructureType sType
6254 const void* pNext
6255 VkDeviceEventTypeEXT deviceEvent
6256}
6257
Jesse Hallad250842017-03-10 18:35:38 -08006258@extension("VK_EXT_display_control") // 92
Jesse Hall77ad05b2017-03-10 22:02:20 -08006259class VkDisplayEventInfoEXT {
6260 VkStructureType sType
6261 const void* pNext
6262 VkDisplayEventTypeEXT displayEvent
6263}
6264
Jesse Hallad250842017-03-10 18:35:38 -08006265@extension("VK_EXT_display_control") // 92
Jesse Hall77ad05b2017-03-10 22:02:20 -08006266class VkSwapchainCounterCreateInfoEXT {
6267 VkStructureType sType
6268 const void* pNext
6269 VkSurfaceCounterFlagsEXT surfaceCounters
6270}
6271
Jesse Hallad250842017-03-10 18:35:38 -08006272@extension("VK_GOOGLE_display_timing") // 93
6273class VkRefreshCycleDurationGOOGLE {
Jesse Hallfdc8ab32017-03-10 21:01:57 -08006274 u64 refreshDuration
Jesse Hallad250842017-03-10 18:35:38 -08006275}
6276
6277@extension("VK_GOOGLE_display_timing") // 93
6278class VkPastPresentationTimingGOOGLE {
Jesse Hallfdc8ab32017-03-10 21:01:57 -08006279 u32 presentID
6280 u64 desiredPresentTime
6281 u64 actualPresentTime
6282 u64 earliestPresentTime
6283 u64 presentMargin
Jesse Hallad250842017-03-10 18:35:38 -08006284}
6285
6286@extension("VK_GOOGLE_display_timing") // 93
6287class VkPresentTimeGOOGLE {
Jesse Hallfdc8ab32017-03-10 21:01:57 -08006288 u32 presentID
6289 u64 desiredPresentTime
Jesse Hallad250842017-03-10 18:35:38 -08006290}
6291
6292@extension("VK_GOOGLE_display_timing") // 93
6293class VkPresentTimesInfoGOOGLE {
Jesse Hallfdc8ab32017-03-10 21:01:57 -08006294 VkStructureType sType
6295 const void* pNext
6296 u32 swapchainCount
6297 const VkPresentTimeGOOGLE* pTimes
Jesse Hallad250842017-03-10 18:35:38 -08006298}
6299
6300@extension("VK_NVX_multiview_per_view_attributes") // 98
6301class VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX {
6302 VkStructureType sType
6303 void* pNext
6304 VkBool32 perViewPositionAllComponents
6305}
6306
6307@extension("VK_NV_viewport_swizzle") // 99
6308class VkViewportSwizzleNV {
6309 VkViewportCoordinateSwizzleNV x
6310 VkViewportCoordinateSwizzleNV y
6311 VkViewportCoordinateSwizzleNV z
6312 VkViewportCoordinateSwizzleNV w
6313}
6314
6315@extension("VK_NV_viewport_swizzle") // 99
6316class VkPipelineViewportSwizzleStateCreateInfoNV {
6317 VkStructureType sType
6318 const void* pNext
6319 VkPipelineViewportSwizzleStateCreateFlagsNV flags
6320 u32 viewportCount
6321 const VkViewportSwizzleNV* pViewportSwizzles
6322}
6323
6324@extension("VK_EXT_discard_rectangles") // 100
6325class VkPhysicalDeviceDiscardRectanglePropertiesEXT {
6326 VkStructureType sType
Jesse Hallf5ad48b2017-03-20 13:09:19 -07006327 void* pNext
Jesse Hallad250842017-03-10 18:35:38 -08006328 u32 maxDiscardRectangles
6329}
6330
6331@extension("VK_EXT_discard_rectangles") // 100
6332class VkPipelineDiscardRectangleStateCreateInfoEXT {
Jesse Hallfdc8ab32017-03-10 21:01:57 -08006333 VkStructureType sType
6334 const void* pNext
6335 VkPipelineDiscardRectangleStateCreateFlagsEXT flags
6336 VkDiscardRectangleModeEXT discardRectangleMode
6337 u32 discardRectangleCount
6338 const VkRect2D* pDiscardRectangles
Jesse Hallad250842017-03-10 18:35:38 -08006339}
6340
Jesse Hall8c954d32018-01-17 22:06:20 -08006341@extension("VK_EXT_conservative_rasterization") // 102
6342class VkPhysicalDeviceConservativeRasterizationPropertiesEXT {
6343 VkStructureType sType
6344 void* pNext
6345 f32 primitiveOverestimationSize
6346 f32 maxExtraPrimitiveOverestimationSize
6347 f32 extraPrimitiveOverestimationSizeGranularity
6348 VkBool32 primitiveUnderestimation
6349 VkBool32 conservativePointAndLineRasterization
6350 VkBool32 degenerateTrianglesRasterized
6351 VkBool32 degenerateLinesRasterized
6352 VkBool32 fullyCoveredFragmentShaderInputVariable
6353 VkBool32 conservativeRasterizationPostDepthCoverage
6354}
6355
6356@extension("VK_EXT_conservative_rasterization") // 102
6357class VkPipelineRasterizationConservativeStateCreateInfoEXT {
6358 VkStructureType sType
6359 const void* pNext
6360 VkPipelineRasterizationConservativeStateCreateFlagsEXT flags
6361 VkConservativeRasterizationModeEXT conservativeRasterizationMode
6362 f32 extraPrimitiveOverestimationSize
6363}
6364
Jesse Hallad250842017-03-10 18:35:38 -08006365@extension("VK_EXT_hdr_metadata") // 106
Courtney Goeltzenleuchterd634c482017-01-05 15:55:31 -07006366class VkXYColorEXT {
Jesse Hallfdc8ab32017-03-10 21:01:57 -08006367 f32 x
6368 f32 y
Courtney Goeltzenleuchterd634c482017-01-05 15:55:31 -07006369}
6370
Jesse Hallad250842017-03-10 18:35:38 -08006371@extension("VK_EXT_hdr_metadata") // 106
Courtney Goeltzenleuchterd634c482017-01-05 15:55:31 -07006372class VkHdrMetadataEXT {
Jesse Hallfdc8ab32017-03-10 21:01:57 -08006373 VkStructureType sType
6374 const void* pNext
6375 VkXYColorEXT displayPrimaryRed
6376 VkXYColorEXT displayPrimaryGreen
6377 VkXYColorEXT displayPrimaryBlue
6378 VkXYColorEXT whitePoint
6379 f32 maxLuminance
6380 f32 minLuminance
6381 f32 maxContentLightLevel
6382 f32 maxFrameAverageLightLevel
Courtney Goeltzenleuchterd634c482017-01-05 15:55:31 -07006383}
6384
Jesse Halla13a3cf2018-07-09 15:51:52 -07006385@extension("VK_KHR_create_renderpass2") // 110
6386class VkAttachmentDescription2KHR {
6387 VkStructureType sType
6388 const void* pNext
6389 VkAttachmentDescriptionFlags flags
6390 VkFormat format
6391 VkSampleCountFlagBits samples
6392 VkAttachmentLoadOp loadOp
6393 VkAttachmentStoreOp storeOp
6394 VkAttachmentLoadOp stencilLoadOp
6395 VkAttachmentStoreOp stencilStoreOp
6396 VkImageLayout initialLayout
6397 VkImageLayout finalLayout
6398}
6399
6400@extension("VK_KHR_create_renderpass2") // 110
6401class VkAttachmentReference2KHR {
6402 VkStructureType sType
6403 const void* pNext
6404 u32 attachment
6405 VkImageLayout layout
6406 VkImageAspectFlags aspectMask
6407}
6408
6409@extension("VK_KHR_create_renderpass2") // 110
6410class VkSubpassDescription2KHR {
6411 VkStructureType sType
6412 const void* pNext
6413 VkSubpassDescriptionFlags flags
6414 VkPipelineBindPoint pipelineBindPoint
6415 u32 viewMask
6416 u32 inputAttachmentCount
6417 const VkAttachmentReference2KHR* pInputAttachments
6418 u32 colorAttachmentCount
6419 const VkAttachmentReference2KHR* pColorAttachments
6420 const VkAttachmentReference2KHR* pResolveAttachments
6421 const VkAttachmentReference2KHR* pDepthStencilAttachment
6422 u32 preserveAttachmentCount
6423 const u32* pPreserveAttachments
6424}
6425
6426@extension("VK_KHR_create_renderpass2") // 110
6427class VkSubpassDependency2KHR {
6428 VkStructureType sType
6429 const void* pNext
6430 u32 srcSubpass
6431 u32 dstSubpass
6432 VkPipelineStageFlags srcStageMask
6433 VkPipelineStageFlags dstStageMask
6434 VkAccessFlags srcAccessMask
6435 VkAccessFlags dstAccessMask
6436 VkDependencyFlags dependencyFlags
6437 s32 viewOffset
6438}
6439
6440@extension("VK_KHR_create_renderpass2") // 110
6441class VkRenderPassCreateInfo2KHR {
6442 VkStructureType sType
6443 const void* pNext
6444 VkRenderPassCreateFlags flags
6445 u32 attachmentCount
6446 const VkAttachmentDescription2KHR* pAttachments
6447 u32 subpassCount
6448 const VkSubpassDescription2KHR* pSubpasses
6449 u32 dependencyCount
6450 const VkSubpassDependency2KHR* pDependencies
6451 u32 correlatedViewMaskCount
6452 const u32* pCorrelatedViewMasks
6453}
6454
6455@extension("VK_KHR_create_renderpass2") // 110
6456class VkSubpassBeginInfoKHR {
6457 VkStructureType sType
6458 const void* pNext
6459 VkSubpassContents contents
6460}
6461
6462@extension("VK_KHR_create_renderpass2") // 110
6463class VkSubpassEndInfoKHR {
6464 VkStructureType sType
6465 const void* pNext
6466}
6467
Jesse Hall05556b12017-05-18 17:40:25 -07006468@extension("VK_KHR_shared_presentable_image") // 112
Chris Forbese2d3ee12017-03-16 16:10:15 +13006469class VkSharedPresentSurfaceCapabilitiesKHR {
6470 VkStructureType sType
6471 const void* pNext
6472 VkImageUsageFlags sharedPresentSupportedUsageFlags
6473}
6474
Jesse Hall9492f992017-08-28 12:10:06 -07006475@extension("VK_KHR_external_fence_capabilities") // 113
6476class VkPhysicalDeviceExternalFenceInfoKHR {
6477 VkStructureType sType
6478 const void* pNext
6479 VkExternalFenceHandleTypeFlagBitsKHR handleType
6480}
6481
6482@extension("VK_KHR_external_fence_capabilities") // 113
6483class VkExternalFencePropertiesKHR {
6484 VkStructureType sType
6485 void* pNext
6486 VkExternalFenceHandleTypeFlagsKHR exportFromImportedHandleTypes
6487 VkExternalFenceHandleTypeFlagsKHR compatibleHandleTypes
6488 VkExternalFenceFeatureFlagsKHR externalFenceFeatures
6489}
6490
6491@extension("VK_KHR_external_fence") // 114
6492class VkExportFenceCreateInfoKHR {
6493 VkStructureType sType
6494 const void* pNext
6495 VkExternalFenceHandleTypeFlagsKHR handleTypes
6496}
6497
6498@extension("VK_KHR_external_fence_win32") // 115
6499class VkImportFenceWin32HandleInfoKHR {
6500 VkStructureType sType
6501 const void* pNext
6502 VkFence fence
6503 VkFenceImportFlagsKHR flags
6504 VkExternalFenceHandleTypeFlagBitsKHR handleType
6505 platform.HANDLE handle
6506 platform.LPCWSTR name
6507}
6508
6509@extension("VK_KHR_external_fence_win32") // 115
6510class VkExportFenceWin32HandleInfoKHR {
6511 VkStructureType sType
6512 const void* pNext
6513 const platform.SECURITY_ATTRIBUTES* pAttributes
6514 platform.DWORD dwAccess
6515 platform.LPCWSTR name
6516}
6517
6518@extension("VK_KHR_external_fence_win32") // 115
6519class VkFenceGetWin32HandleInfoKHR {
6520 VkStructureType sType
6521 const void* pNext
6522 VkFence fence
6523 VkExternalFenceHandleTypeFlagBitsKHR handleType
6524}
6525
6526@extension("VK_KHR_external_fence_fd") // 116
6527class VkImportFenceFdInfoKHR {
6528 VkStructureType sType
6529 const void* pNext
6530 VkFence fence
6531 VkFenceImportFlagsKHR flags
6532 VkExternalFenceHandleTypeFlagBitsKHR handleType
6533 int fd
6534}
6535
6536@extension("VK_KHR_external_fence_fd") // 116
6537class VkFenceGetFdInfoKHR {
6538 VkStructureType sType
6539 const void* pNext
6540 VkFence fence
6541 VkExternalFenceHandleTypeFlagBitsKHR handleType
6542}
6543
Jesse Hall076f95d2017-09-20 11:34:47 -07006544@extension("VK_KHR_maintenance2") // 118
6545class VkPhysicalDevicePointClippingPropertiesKHR {
6546 VkStructureType sType
6547 void* pNext
6548 VkPointClippingBehaviorKHR pointClippingBehavior
6549}
6550
6551@extension("VK_KHR_maintenance2") // 118
6552class VkInputAttachmentAspectReferenceKHR {
6553 u32 subpass
6554 u32 inputAttachmentIndex
6555 VkImageAspectFlags aspectMask
6556}
6557
6558@extension("VK_KHR_maintenance2") // 118
6559class VkRenderPassInputAttachmentAspectCreateInfoKHR {
6560 VkStructureType sType
6561 const void* pNext
6562 u32 aspectReferenceCount
6563 const VkInputAttachmentAspectReferenceKHR* pAspectReferences
6564}
6565
6566@extension("VK_KHR_maintenance2") // 118
6567class VkImageViewUsageCreateInfoKHR {
6568 VkStructureType sType
6569 const void* pNext
6570 VkImageUsageFlags usage
6571}
6572
6573@extension("VK_KHR_maintenance2") // 118
6574class VkPipelineTessellationDomainOriginStateCreateInfoKHR {
6575 VkStructureType sType
6576 const void* pNext
6577 VkTessellationDomainOriginKHR domainOrigin
6578}
6579
Jesse Hall05556b12017-05-18 17:40:25 -07006580@extension("VK_KHR_get_surface_capabilities2") // 120
Chris Forbese2d3ee12017-03-16 16:10:15 +13006581class VkPhysicalDeviceSurfaceInfo2KHR {
6582 VkStructureType sType
6583 const void* pNext
6584 VkSurfaceKHR surface
6585}
6586
Jesse Hall05556b12017-05-18 17:40:25 -07006587@extension("VK_KHR_get_surface_capabilities2") // 120
Chris Forbese2d3ee12017-03-16 16:10:15 +13006588class VkSurfaceCapabilities2KHR {
6589 VkStructureType sType
6590 void* pNext
6591 VkSurfaceCapabilitiesKHR surfaceCapabilities
6592}
6593
Jesse Hall05556b12017-05-18 17:40:25 -07006594@extension("VK_KHR_get_surface_capabilities2") // 120
Chris Forbese2d3ee12017-03-16 16:10:15 +13006595class VkSurfaceFormat2KHR {
6596 VkStructureType sType
6597 void* pNext
6598 VkSurfaceFormatKHR surfaceFormat
6599}
6600
Jesse Hall9492f992017-08-28 12:10:06 -07006601@extension("VK_KHR_variable_pointers") // 121
6602class VkPhysicalDeviceVariablePointerFeaturesKHR {
6603 VkStructureType sType
6604 void* pNext
6605 VkBool32 variablePointersStorageBuffer
6606 VkBool32 variablePointers
6607}
6608
Jesse Hall54f8d132018-04-18 08:16:59 -07006609@extension("VK_KHR_display_properties2") // 122
6610class VkDisplayProperties2KHR {
6611 VkStructureType sType
6612 void* pNext
6613 VkDisplayPropertiesKHR displayProperties
6614}
6615
6616@extension("VK_KHR_display_properties2") // 122
6617class VkDisplayPlaneProperties2KHR {
6618 VkStructureType sType
6619 void* pNext
6620 VkDisplayPlanePropertiesKHR displayPlaneProperties
6621}
6622
6623@extension("VK_KHR_display_properties2") // 122
6624class VkDisplayModeProperties2KHR {
6625 VkStructureType sType
6626 void* pNext
6627 VkDisplayModePropertiesKHR displayModeProperties
6628}
6629
6630@extension("VK_KHR_display_properties2") // 122
6631class VkDisplayPlaneInfo2KHR {
6632 VkStructureType sType
6633 const void* pNext
6634 VkDisplayModeKHR mode
6635 u32 planeIndex
6636}
6637
6638@extension("VK_KHR_display_properties2") // 122
6639class VkDisplayPlaneCapabilities2KHR {
6640 VkStructureType sType
6641 void* pNext
6642 VkDisplayPlaneCapabilitiesKHR capabilities
6643}
6644
Jesse Hallad250842017-03-10 18:35:38 -08006645@extension("VK_MVK_ios_surface") // 123
6646class VkIOSSurfaceCreateInfoMVK {
6647 VkStructureType sType
6648 const void* pNext
6649 VkIOSSurfaceCreateFlagsMVK flags
6650 const void* pView
6651}
6652
6653@extension("VK_MVK_macos_surface") // 124
6654class VkMacOSSurfaceCreateInfoMVK {
6655 VkStructureType sType
6656 const void* pNext
6657 VkMacOSSurfaceCreateFlagsMVK flags
6658 const void* pView
6659}
6660
Jesse Hall9492f992017-08-28 12:10:06 -07006661@extension("VK_KHR_dedicated_allocation") // 128
6662class VkMemoryDedicatedRequirementsKHR {
6663 VkStructureType sType
6664 void* pNext
6665 VkBool32 prefersDedicatedAllocation
6666 VkBool32 requiresDedicatedAllocation
6667}
6668
6669@extension("VK_KHR_dedicated_allocation") // 128
6670class VkMemoryDedicatedAllocateInfoKHR {
6671 VkStructureType sType
6672 const void* pNext
6673 VkImage image
6674 VkBuffer buffer
6675}
6676
Jesse Hall8c954d32018-01-17 22:06:20 -08006677@extension("VK_EXT_debug_utils") // 129
6678class VkDebugUtilsObjectNameInfoEXT {
6679 VkStructureType sType
6680 const void* pNext
6681 VkObjectType objectType
6682 u64 objectHandle
6683 const char* pObjectName
6684}
Jesse Hall72e6a132018-04-06 13:00:44 -07006685
Jesse Hall8c954d32018-01-17 22:06:20 -08006686@extension("VK_EXT_debug_utils") // 129
6687class VkDebugUtilsObjectTagInfoEXT {
6688 VkStructureType sType
6689 const void* pNext
6690 VkObjectType objectType
6691 u64 objectHandle
6692 u64 tagName
6693 platform.size_t tagSize
6694 const void* pTag
6695}
Jesse Hall72e6a132018-04-06 13:00:44 -07006696
Jesse Hall8c954d32018-01-17 22:06:20 -08006697@extension("VK_EXT_debug_utils") // 129
6698class VkDebugUtilsLabelEXT {
6699 VkStructureType sType
6700 const void* pNext
6701 const char* pLabelName
6702 f32[4] color
6703}
6704
6705@extension("VK_EXT_debug_utils") // 129
6706class VkDebugUtilsMessengerCallbackDataEXT {
6707 VkStructureType sType
6708 const void* pNext
6709 VkDebugUtilsMessengerCallbackDataFlagsEXT flags
6710 const char* pMessageIdName
6711 s32 messageIdNumber
6712 const char* pMessage
6713 u32 queueLabelCount
6714 VkDebugUtilsLabelEXT* pQueueLabels
6715 u32 cmdBufLabelCount
6716 VkDebugUtilsLabelEXT* pCmdBufLabels
6717 u32 objectCount
6718 VkDebugUtilsObjectNameInfoEXT* pObjects
6719}
6720
6721@extension("VK_EXT_debug_utils") // 129
6722class VkDebugUtilsMessengerCreateInfoEXT {
6723 VkStructureType sType
6724 const void* pNext
6725 VkDebugUtilsMessengerCreateFlagsEXT flags
6726 VkDebugUtilsMessageSeverityFlagsEXT messageSeverity
Jesse Hallf47e8f82018-10-27 23:41:45 -07006727 VkDebugUtilsMessageTypeFlagsEXT messageTypes
Jesse Hall8c954d32018-01-17 22:06:20 -08006728 PFN_vkDebugUtilsMessengerCallbackEXT pfnUserCallback
6729 void* pUserData
6730}
6731
Jesse Hall36215a92018-01-18 15:04:37 -08006732@extension("VK_ANDROID_external_memory_android_hardware_buffer") // 131
6733class VkAndroidHardwareBufferUsageANDROID {
6734 VkStructureType sType
6735 void* pNext
6736 u64 androidHardwareBufferUsage
6737}
6738
6739@extension("VK_ANDROID_external_memory_android_hardware_buffer") // 130
6740class VkAndroidHardwareBufferPropertiesANDROID {
6741 VkStructureType sType
6742 void* pNext
6743 VkDeviceSize allocationSize
6744 u32 memoryTypeBits
6745}
6746
6747@extension("VK_ANDROID_external_memory_android_hardware_buffer") // 130
6748class VkAndroidHardwareBufferFormatPropertiesANDROID {
6749 VkStructureType sType
6750 void* pNext
6751 VkFormat format
6752 u64 externalFormat
6753 VkFormatFeatureFlags formatFeatures
6754 VkComponentMapping samplerYcbcrConversionComponents
6755 VkSamplerYcbcrModelConversion suggestedYcbcrModel
6756 VkSamplerYcbcrRange suggestedYcbcrRange
6757 VkChromaLocation suggestedXChromaOffset
6758 VkChromaLocation suggestedYChromaOffset
6759}
6760
6761@extension("VK_ANDROID_external_memory_android_hardware_buffer") // 130
6762class VkImportAndroidHardwareBufferInfoANDROID {
6763 VkStructureType sType
6764 const void* pNext
6765 platform.AHardwareBuffer* buffer
6766}
6767
6768@extension("VK_ANDROID_external_memory_android_hardware_buffer") // 130
6769class VkMemoryGetAndroidHardwareBufferInfoANDROID {
6770 VkStructureType sType
6771 const void* pNext
6772 VkDeviceMemory memory
6773}
6774
6775@extension("VK_ANDROID_external_memory_android_hardware_buffer") // 130
6776class VkExternalFormatANDROID {
6777 VkStructureType sType
6778 void* pNext
6779 u64 externalFormat
6780}
6781
Jesse Hall7ba0ac72017-07-07 17:13:23 -07006782@extension("VK_EXT_sampler_filter_minmax") // 131
6783class VkSamplerReductionModeCreateInfoEXT {
6784 VkStructureType sType
6785 const void* pNext
6786 VkSamplerReductionModeEXT reductionMode
6787}
6788
6789@extension("VK_EXT_sampler_filter_minmax") // 131
6790class VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT {
6791 VkStructureType sType
6792 void* pNext
6793 VkBool32 filterMinmaxSingleComponentFormats
6794 VkBool32 filterMinmaxImageComponentMapping
6795}
6796
Jesse Hall4af6c462018-09-10 09:04:25 -07006797@extension("VK_EXT_inline_uniform_block") // 139
6798class VkPhysicalDeviceInlineUniformBlockFeaturesEXT {
6799 VkStructureType sType
6800 void* pNext
6801 VkBool32 inlineUniformBlock
6802 VkBool32 descriptorBindingInlineUniformBlockUpdateAfterBind
6803}
6804
6805@extension("VK_EXT_inline_uniform_block") // 139
6806class VkPhysicalDeviceInlineUniformBlockPropertiesEXT {
6807 VkStructureType sType
6808 void* pNext
6809 u32 maxInlineUniformBlockSize
6810 u32 maxPerStageDescriptorInlineUniformBlocks
6811 u32 maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks
6812 u32 maxDescriptorSetInlineUniformBlocks
6813 u32 maxDescriptorSetUpdateAfterBindInlineUniformBlocks
6814}
6815
6816@extension("VK_EXT_inline_uniform_block") // 139
6817class VkWriteDescriptorSetInlineUniformBlockEXT {
6818 VkStructureType sType
6819 const void* pNext
6820 u32 dataSize
6821 const void* pData
6822}
6823
6824@extension("VK_EXT_inline_uniform_block") // 139
6825class VkDescriptorPoolInlineUniformBlockCreateInfoEXT {
6826 VkStructureType sType
6827 const void* pNext
6828 u32 maxInlineUniformBlockBindings
6829}
6830
Jesse Hall77726222017-09-19 14:49:27 -05006831@extension("VK_EXT_sample_locations") // 144
6832class VkSampleLocationEXT {
6833 f32 x
6834 f32 y
6835}
6836
6837@extension("VK_EXT_sample_locations") // 144
6838class VkSampleLocationsInfoEXT {
6839 VkStructureType sType
6840 const void* pNext
6841 VkSampleCountFlagBits sampleLocationsPerPixel
6842 VkExtent2D sampleLocationGridSize
6843 u32 sampleLocationsCount
6844 const VkSampleLocationEXT* pSampleLocations
6845}
6846
6847@extension("VK_EXT_sample_locations") // 144
6848class VkAttachmentSampleLocationsEXT {
6849 u32 attachmentIndex
6850 VkSampleLocationsInfoEXT sampleLocationsInfo
6851}
6852
6853@extension("VK_EXT_sample_locations") // 144
6854class VkSubpassSampleLocationsEXT {
6855 u32 subpassIndex
6856 VkSampleLocationsInfoEXT sampleLocationsInfo
6857}
6858
6859@extension("VK_EXT_sample_locations") // 144
6860class VkRenderPassSampleLocationsBeginInfoEXT {
6861 VkStructureType sType
6862 const void* pNext
6863 u32 attachmentInitialSampleLocationsCount
6864 const VkAttachmentSampleLocationsEXT* pAttachmentInitialSampleLocations
6865 u32 postSubpassSampleLocationsCount
Jesse Hall8c954d32018-01-17 22:06:20 -08006866 const VkSubpassSampleLocationsEXT* pPostSubpassSampleLocations
Jesse Hall77726222017-09-19 14:49:27 -05006867}
6868
6869@extension("VK_EXT_sample_locations") // 144
6870class VkPipelineSampleLocationsStateCreateInfoEXT {
6871 VkStructureType sType
6872 const void* pNext
6873 VkBool32 sampleLocationsEnable
6874 VkSampleLocationsInfoEXT sampleLocationsInfo
6875}
6876
6877@extension("VK_EXT_sample_locations") // 144
6878class VkPhysicalDeviceSampleLocationsPropertiesEXT {
6879 VkStructureType sType
6880 void* pNext
6881 VkSampleCountFlags sampleLocationSampleCounts
6882 VkExtent2D maxSampleLocationGridSize
6883 f32[2] sampleLocationCoordinateRange
6884 u32 sampleLocationSubPixelBits
6885 VkBool32 variableSampleLocations
6886}
6887
6888@extension("VK_EXT_sample_locations") // 144
6889class VkMultisamplePropertiesEXT {
6890 VkStructureType sType
6891 void* pNext
6892 VkExtent2D maxSampleLocationGridSize
6893}
6894
Jesse Hall9492f992017-08-28 12:10:06 -07006895@extension("VK_KHR_get_memory_requirements2") // 147
6896class VkBufferMemoryRequirementsInfo2KHR {
6897 VkStructureType sType
6898 const void* pNext
6899 VkBuffer buffer
6900}
6901
6902@extension("VK_KHR_get_memory_requirements2") // 147
6903class VkImageMemoryRequirementsInfo2KHR {
6904 VkStructureType sType
6905 const void* pNext
6906 VkImage image
6907}
6908
6909@extension("VK_KHR_get_memory_requirements2") // 147
6910class VkImageSparseMemoryRequirementsInfo2KHR {
6911 VkStructureType sType
6912 const void* pNext
6913 VkImage image
6914}
6915
6916@extension("VK_KHR_get_memory_requirements2") // 147
6917class VkMemoryRequirements2KHR {
6918 VkStructureType sType
6919 void* pNext
6920 VkMemoryRequirements memoryRequirements
6921}
6922
6923@extension("VK_KHR_get_memory_requirements2") // 147
6924class VkSparseImageMemoryRequirements2KHR {
6925 VkStructureType sType
6926 void* pNext
6927 VkSparseImageMemoryRequirements memoryRequirements
6928}
6929
Jesse Hall076f95d2017-09-20 11:34:47 -07006930@extension("VK_KHR_image_format_list") // 148
6931class VkImageFormatListCreateInfoKHR {
6932 VkStructureType sType
6933 const void* pNext
6934 u32 viewFormatCount
6935 const VkFormat* pViewFormats
6936}
6937
Jesse Hall7ba0ac72017-07-07 17:13:23 -07006938@extension("VK_EXT_blend_operation_advanced") // 149
6939class VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT {
6940 VkStructureType sType
6941 void* pNext
6942 VkBool32 advancedBlendCoherentOperations
6943}
6944
6945@extension("VK_EXT_blend_operation_advanced") // 149
6946class VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT {
6947 VkStructureType sType
6948 void* pNext
6949 u32 advancedBlendMaxColorAttachments
6950 VkBool32 advancedBlendIndependentBlend
6951 VkBool32 advancedBlendNonPremultipliedSrcColor
6952 VkBool32 advancedBlendNonPremultipliedDstColor
6953 VkBool32 advancedBlendCorrelatedOverlap
6954 VkBool32 advancedBlendAllOperations
6955}
6956
6957@extension("VK_EXT_blend_operation_advanced") // 149
6958class VkPipelineColorBlendAdvancedStateCreateInfoEXT {
6959 VkStructureType sType
6960 const void* pNext
6961 VkBool32 srcPremultiplied
6962 VkBool32 dstPremultiplied
6963 VkBlendOverlapEXT blendOverlap
6964}
6965
6966@extension("VK_NV_fragment_coverage_to_color") // 150
6967class VkPipelineCoverageToColorStateCreateInfoNV {
6968 VkStructureType sType
6969 const void* pNext
6970 VkPipelineCoverageToColorStateCreateFlagsNV flags
6971 VkBool32 coverageToColorEnable
6972 u32 coverageToColorLocation
6973}
6974
6975@extension("VK_NV_framebuffer_mixed_samples") // 153
6976class VkPipelineCoverageModulationStateCreateInfoNV {
6977 VkStructureType sType
6978 const void* pNext
6979 VkPipelineCoverageModulationStateCreateFlagsNV flags
6980 VkCoverageModulationModeNV coverageModulationMode
6981 VkBool32 coverageModulationTableEnable
6982 u32 coverageModulationTableCount
6983 const f32* pCoverageModulationTable
6984}
6985
Jesse Hall076f95d2017-09-20 11:34:47 -07006986@extension("VK_KHR_sampler_ycbcr_conversion") // 157
6987class VkSamplerYcbcrConversionCreateInfoKHR {
6988 VkStructureType sType
6989 const void* pNext
6990 VkFormat format
6991 VkSamplerYcbcrModelConversionKHR ycbcrModel
6992 VkSamplerYcbcrRangeKHR ycbcrRange
6993 VkComponentMapping components
6994 VkChromaLocationKHR xChromaOffset
6995 VkChromaLocationKHR yChromaOffset
6996 VkFilter chromaFilter
6997 VkBool32 forceExplicitReconstruction
6998}
6999
7000@extension("VK_KHR_sampler_ycbcr_conversion") // 157
7001class VkSamplerYcbcrConversionInfoKHR {
7002 VkStructureType sType
7003 const void* pNext
7004 VkSamplerYcbcrConversionKHR conversion
7005}
7006
7007@extension("VK_KHR_sampler_ycbcr_conversion") // 157
7008class VkBindImagePlaneMemoryInfoKHR {
7009 VkStructureType sType
7010 const void* pNext
7011 VkImageAspectFlagBits planeAspect
7012}
7013
7014@extension("VK_KHR_sampler_ycbcr_conversion") // 157
7015class VkImagePlaneMemoryRequirementsInfoKHR {
7016 VkStructureType sType
7017 const void* pNext
7018 VkImageAspectFlagBits planeAspect
7019}
7020
7021@extension("VK_KHR_sampler_ycbcr_conversion") // 157
7022class VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR {
7023 VkStructureType sType
7024 void* pNext
7025 VkBool32 samplerYcbcrConversion
7026}
7027
7028@extension("VK_KHR_sampler_ycbcr_conversion") // 157
7029class VkSamplerYcbcrConversionImageFormatPropertiesKHR {
7030 VkStructureType sType
7031 void* pNext
7032 u32 combinedImageSamplerDescriptorCount
7033}
7034
7035@extension("VK_KHR_bind_memory2") // 158
7036class VkBindBufferMemoryInfoKHR {
7037 VkStructureType sType
7038 const void* pNext
7039 VkBuffer buffer
7040 VkDeviceMemory memory
7041 VkDeviceSize memoryOffset
7042}
7043
7044@extension("VK_KHR_bind_memory2") // 158
7045class VkBindImageMemoryInfoKHR {
7046 VkStructureType sType
7047 const void* pNext
7048 VkImage image
7049 VkDeviceMemory memory
7050 VkDeviceSize memoryOffset
7051}
7052
Jesse Hallf47e8f82018-10-27 23:41:45 -07007053@extension("VK_EXT_image_drm_format_modifier") // 159
7054class VkDrmFormatModifierPropertiesEXT {
7055 u64 drmFormatModifier
7056 u32 drmFormatModifierPlaneCount
7057 VkFormatFeatureFlags drmFormatModifierTilingFeatures
7058}
7059
7060@extension("VK_EXT_image_drm_format_modifier") // 159
7061class VkDrmFormatModifierPropertiesListEXT {
7062 VkStructureType sType
7063 void* pNext
7064 u32 drmFormatModifierCount
7065 VkDrmFormatModifierPropertiesEXT* pDrmFormatModifierProperties
7066}
7067
7068@extension("VK_EXT_image_drm_format_modifier") // 159
7069class VkPhysicalDeviceImageDrmFormatModifierInfoEXT {
7070 VkStructureType sType
7071 const void* pNext
7072 u64 drmFormatModifier
7073 VkSharingMode sharingMode
7074 u32 queueFamilyIndexCount
7075 const u32* pQueueFamilyIndices
7076}
7077
7078@extension("VK_EXT_image_drm_format_modifier") // 159
7079class VkImageDrmFormatModifierListCreateInfoEXT {
7080 VkStructureType sType
7081 const void* pNext
7082 u32 drmFormatModifierCount
7083 const u64* pDrmFormatModifiers
7084}
7085
7086@extension("VK_EXT_image_drm_format_modifier") // 159
7087class VkImageDrmFormatModifierExplicitCreateInfoEXT {
7088 VkStructureType sType
7089 const void* pNext
7090 u64 drmFormatModifier
7091 u32 drmFormatModifierPlaneCount
7092 const VkSubresourceLayout* pPlaneLayouts
7093}
7094
7095@extension("VK_EXT_image_drm_format_modifier") // 159
7096class VkImageDrmFormatModifierPropertiesEXT {
7097 VkStructureType sType
7098 void* pNext
7099 u64 drmFormatModifier
7100}
7101
Jesse Hall77726222017-09-19 14:49:27 -05007102@extension("VK_EXT_validation_cache") // 161
7103class VkValidationCacheCreateInfoEXT {
7104 VkStructureType sType
7105 const void* pNext
7106 VkValidationCacheCreateFlagsEXT flags
7107 platform.size_t initialDataSize
7108 const void* pInitialData
7109}
7110
7111@extension("VK_EXT_validation_cache") // 161
7112class VkShaderModuleValidationCacheCreateInfoEXT {
7113 VkStructureType sType
7114 const void* pNext
7115 VkValidationCacheEXT validationCache
7116}
7117
Jesse Hall72e6a132018-04-06 13:00:44 -07007118@extension("VK_EXT_descriptor_indexing") // 162
7119class VkDescriptorSetLayoutBindingFlagsCreateInfoEXT {
7120 VkStructureType sType
7121 const void* pNext
7122 u32 bindingCount
7123 const VkDescriptorBindingFlagsEXT* pBindingFlags
7124}
7125
7126@extension("VK_EXT_descriptor_indexing") // 162
7127class VkPhysicalDeviceDescriptorIndexingFeaturesEXT {
7128 VkStructureType sType
7129 void* pNext
7130 VkBool32 shaderInputAttachmentArrayDynamicIndexing
7131 VkBool32 shaderUniformTexelBufferArrayDynamicIndexing
7132 VkBool32 shaderStorageTexelBufferArrayDynamicIndexing
7133 VkBool32 shaderUniformBufferArrayNonUniformIndexing
7134 VkBool32 shaderSampledImageArrayNonUniformIndexing
7135 VkBool32 shaderStorageBufferArrayNonUniformIndexing
7136 VkBool32 shaderStorageImageArrayNonUniformIndexing
7137 VkBool32 shaderInputAttachmentArrayNonUniformIndexing
7138 VkBool32 shaderUniformTexelBufferArrayNonUniformIndexing
7139 VkBool32 shaderStorageTexelBufferArrayNonUniformIndexing
7140 VkBool32 descriptorBindingUniformBufferUpdateAfterBind
7141 VkBool32 descriptorBindingSampledImageUpdateAfterBind
7142 VkBool32 descriptorBindingStorageImageUpdateAfterBind
7143 VkBool32 descriptorBindingStorageBufferUpdateAfterBind
7144 VkBool32 descriptorBindingUniformTexelBufferUpdateAfterBind
7145 VkBool32 descriptorBindingStorageTexelBufferUpdateAfterBind
7146 VkBool32 descriptorBindingUpdateUnusedWhilePending
7147 VkBool32 descriptorBindingPartiallyBound
7148 VkBool32 descriptorBindingVariableDescriptorCount
7149 VkBool32 runtimeDescriptorArray
7150}
7151
7152@extension("VK_EXT_descriptor_indexing") // 162
7153class VkPhysicalDeviceDescriptorIndexingPropertiesEXT {
7154 VkStructureType sType
7155 void* pNext
7156 u32 maxUpdateAfterBindDescriptorsInAllPools
7157 VkBool32 shaderUniformBufferArrayNonUniformIndexingNative
7158 VkBool32 shaderSampledImageArrayNonUniformIndexingNative
7159 VkBool32 shaderStorageBufferArrayNonUniformIndexingNative
7160 VkBool32 shaderStorageImageArrayNonUniformIndexingNative
7161 VkBool32 shaderInputAttachmentArrayNonUniformIndexingNative
7162 VkBool32 robustBufferAccessUpdateAfterBind
7163 VkBool32 quadDivergentImplicitLod
7164 u32 maxPerStageDescriptorUpdateAfterBindSamplers
7165 u32 maxPerStageDescriptorUpdateAfterBindUniformBuffers
7166 u32 maxPerStageDescriptorUpdateAfterBindStorageBuffers
7167 u32 maxPerStageDescriptorUpdateAfterBindSampledImages
7168 u32 maxPerStageDescriptorUpdateAfterBindStorageImages
7169 u32 maxPerStageDescriptorUpdateAfterBindInputAttachments
7170 u32 maxPerStageUpdateAfterBindResources
7171 u32 maxDescriptorSetUpdateAfterBindSamplers
7172 u32 maxDescriptorSetUpdateAfterBindUniformBuffers
7173 u32 maxDescriptorSetUpdateAfterBindUniformBuffersDynamic
7174 u32 maxDescriptorSetUpdateAfterBindStorageBuffers
7175 u32 maxDescriptorSetUpdateAfterBindStorageBuffersDynamic
7176 u32 maxDescriptorSetUpdateAfterBindSampledImages
7177 u32 maxDescriptorSetUpdateAfterBindStorageImages
7178 u32 maxDescriptorSetUpdateAfterBindInputAttachments
7179}
7180
7181@extension("VK_EXT_descriptor_indexing") // 162
7182class VkDescriptorSetVariableDescriptorCountAllocateInfoEXT {
7183 VkStructureType sType
7184 const void* pNext
7185 u32 descriptorSetCount
7186 const u32* pDescriptorCounts
7187}
7188
7189@extension("VK_EXT_descriptor_indexing") // 162
7190class VkDescriptorSetVariableDescriptorCountLayoutSupportEXT {
7191 VkStructureType sType
7192 void* pNext
7193 u32 maxVariableDescriptorCount
7194}
7195
Jesse Hallb5297192018-09-22 20:52:13 +02007196@extension("VK_NV_shading_rate_image") // 165
7197class VkShadingRatePaletteNV {
7198 u32 shadingRatePaletteEntryCount
7199 const VkShadingRatePaletteEntryNV* pShadingRatePaletteEntries
7200}
7201
7202@extension("VK_NV_shading_rate_image") // 165
7203class VkPipelineViewportShadingRateImageStateCreateInfoNV {
7204 VkStructureType sType
7205 const void* pNext
7206 VkBool32 shadingRateImageEnable
7207 u32 viewportCount
7208 const VkShadingRatePaletteNV* pShadingRatePalettes
7209}
7210
7211@extension("VK_NV_shading_rate_image") // 165
7212class VkPhysicalDeviceShadingRateImageFeaturesNV {
7213 VkStructureType sType
7214 void* pNext
7215 VkBool32 shadingRateImage
7216 VkBool32 shadingRateCoarseSampleOrder
7217}
7218
7219@extension("VK_NV_shading_rate_image") // 165
7220class VkPhysicalDeviceShadingRateImagePropertiesNV {
7221 VkStructureType sType
7222 void* pNext
7223 VkExtent2D shadingRateTexelSize
7224 u32 shadingRatePaletteSize
7225 u32 shadingRateMaxCoarseSamples
7226}
7227
7228@extension("VK_NV_shading_rate_image") // 165
7229class VkCoarseSampleLocationNV {
7230 u32 pixelX
7231 u32 pixelY
7232 u32 sample
7233}
7234
7235@extension("VK_NV_shading_rate_image") // 165
7236class VkCoarseSampleOrderCustomNV {
7237 VkShadingRatePaletteEntryNV shadingRate
7238 u32 sampleCount
7239 u32 sampleLocationCount
7240 const VkCoarseSampleLocationNV* pSampleLocations
7241}
7242
7243@extension("VK_NV_shading_rate_image") // 165
7244class VkPipelineViewportCoarseSampleOrderStateCreateInfoNV {
7245 VkStructureType sType
7246 const void* pNext
7247 VkCoarseSampleOrderTypeNV sampleOrderType
7248 u32 customSampleOrderCount
7249 const VkCoarseSampleOrderCustomNV* pCustomSampleOrders
7250}
7251
7252@extension("VK_NVX_raytracing") // 166
7253class VkRaytracingPipelineCreateInfoNVX {
7254 VkStructureType sType
7255 const void* pNext
7256 VkPipelineCreateFlags flags
7257 u32 stageCount
7258 const VkPipelineShaderStageCreateInfo* pStages
7259 const u32* pGroupNumbers
7260 u32 maxRecursionDepth
7261 VkPipelineLayout layout
7262 VkPipeline basePipelineHandle
7263 s32 basePipelineIndex
7264}
7265
7266@extension("VK_NVX_raytracing") // 166
7267class VkGeometryTrianglesNVX {
7268 VkStructureType sType
7269 const void* pNext
7270 VkBuffer vertexData
7271 VkDeviceSize vertexOffset
7272 u32 vertexCount
7273 VkDeviceSize vertexStride
7274 VkFormat vertexFormat
7275 VkBuffer indexData
7276 VkDeviceSize indexOffset
7277 u32 indexCount
7278 VkIndexType indexType
7279 VkBuffer transformData
7280 VkDeviceSize transformOffset
7281}
7282
7283@extension("VK_NVX_raytracing") // 166
7284class VkGeometryAABBNVX {
7285 VkStructureType sType
7286 const void* pNext
7287 VkBuffer aabbData
7288 u32 numAABBs
7289 u32 stride
7290 VkDeviceSize offset
7291}
7292
7293@extension("VK_NVX_raytracing") // 166
7294class VkGeometryDataNVX {
7295 VkGeometryTrianglesNVX triangles
7296 VkGeometryAABBNVX aabbs
7297}
7298
7299@extension("VK_NVX_raytracing") // 166
7300class VkGeometryNVX {
7301 VkStructureType sType
7302 const void* pNext
7303 VkGeometryTypeNVX geometryType
7304 VkGeometryDataNVX geometry
7305 VkGeometryFlagsNVX flags
7306}
7307
7308@extension("VK_NVX_raytracing") // 166
7309class VkAccelerationStructureCreateInfoNVX {
7310 VkStructureType sType
7311 const void* pNext
7312 VkAccelerationStructureTypeNVX type
7313 VkBuildAccelerationStructureFlagsNVX flags
7314 VkDeviceSize compactedSize
7315 u32 instanceCount
7316 u32 geometryCount
7317 const VkGeometryNVX* pGeometries
7318}
7319
7320@extension("VK_NVX_raytracing") // 166
7321class VkBindAccelerationStructureMemoryInfoNVX {
7322 VkStructureType sType
7323 const void* pNext
7324 VkAccelerationStructureNVX accelerationStructure
7325 VkDeviceMemory memory
7326 VkDeviceSize memoryOffset
7327 u32 deviceIndexCount
7328 const u32* pDeviceIndices
7329}
7330
7331@extension("VK_NVX_raytracing") // 166
7332class VkDescriptorAccelerationStructureInfoNVX {
7333 VkStructureType sType
7334 const void* pNext
7335 u32 accelerationStructureCount
7336 const VkAccelerationStructureNVX* pAccelerationStructures
7337}
7338
7339@extension("VK_NVX_raytracing") // 166
7340class VkAccelerationStructureMemoryRequirementsInfoNVX {
7341 VkStructureType sType
7342 const void* pNext
7343 VkAccelerationStructureNVX accelerationStructure
7344}
7345
7346@extension("VK_NVX_raytracing") // 166
7347class VkPhysicalDeviceRaytracingPropertiesNVX {
7348 VkStructureType sType
7349 void* pNext
7350 u32 shaderHeaderSize
7351 u32 maxRecursionDepth
7352 u32 maxGeometryCount
7353}
7354
7355@extension("VK_NV_representative_fragment_test") // 167
7356class VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV {
7357 VkStructureType sType
7358 void* pNext
7359 VkBool32 representativeFragmentTest
7360}
7361
7362@extension("VK_NV_representative_fragment_test") // 167
7363class VkPipelineRepresentativeFragmentTestStateCreateInfoNV {
7364 VkStructureType sType
7365 const void* pNext
7366 VkBool32 representativeFragmentTestEnable
7367}
7368
Daniel Koch09f7bf92017-10-05 00:26:58 -04007369@extension("VK_KHR_maintenance3") // 169
7370class VkPhysicalDeviceMaintenance3PropertiesKHR {
7371 VkStructureType sType
7372 void* pNext
7373 u32 maxPerSetDescriptors
7374 VkDeviceSize maxMemoryAllocationSize
7375}
7376
7377@extension("VK_KHR_maintenance3") // 169
7378class VkDescriptorSetLayoutSupportKHR {
7379 VkStructureType sType
7380 void* pNext
7381 VkBool32 supported
7382}
7383
Jesse Hall8c954d32018-01-17 22:06:20 -08007384@extension("VK_EXT_global_priority") // 175
7385class VkDeviceQueueGlobalPriorityCreateInfoEXT {
7386 VkStructureType sType
7387 const void* pNext
7388 VkQueueGlobalPriorityEXT globalPriority
7389}
7390
Jesse Halla13a3cf2018-07-09 15:51:52 -07007391@extension("VK_KHR_8bit_storage") // 178
7392class VkPhysicalDevice8BitStorageFeaturesKHR {
7393 VkStructureType sType
7394 void* pNext
7395 VkBool32 storageBuffer8BitAccess
7396 VkBool32 uniformAndStorageBuffer8BitAccess
7397 VkBool32 storagePushConstant8
7398}
7399
Jesse Hall8c954d32018-01-17 22:06:20 -08007400@extension("VK_EXT_external_memory_host") // 179
7401class VkImportMemoryHostPointerInfoEXT {
7402 VkStructureType sType
7403 const void* pNext
7404 VkExternalMemoryHandleTypeFlagBits handleType
7405 void* pHostPointer
7406}
7407
7408@extension("VK_EXT_external_memory_host") // 179
7409class VkMemoryHostPointerPropertiesEXT {
7410 VkStructureType sType
7411 void* pNext
7412 u32 memoryTypeBits
7413}
7414
7415@extension("VK_EXT_external_memory_host") // 179
7416class VkPhysicalDeviceExternalMemoryHostPropertiesEXT {
7417 VkStructureType sType
7418 void* pNext
7419 VkDeviceSize minImportedHostPointerAlignment
7420}
7421
Jesse Hall2e6853c2018-10-02 14:05:37 -07007422@extension("VK_KHR_shader_atomic_int64") // 181
7423class VkPhysicalDeviceShaderAtomicInt64FeaturesKHR {
7424 VkStructureType sType
7425 void* pNext
7426 VkBool32 shaderBufferInt64Atomics
7427 VkBool32 shaderSharedInt64Atomics
7428}
7429
Jesse Hallf47e8f82018-10-27 23:41:45 -07007430@extension("VK_EXT_calibrated_timestamps") // 185
7431class VkCalibratedTimestampInfoEXT {
7432 VkStructureType sType
7433 const void* pNext
7434 VkTimeDomainEXT timeDomain
7435}
7436
Jesse Hall72e6a132018-04-06 13:00:44 -07007437@extension("VK_AMD_shader_core_properties") // 186
7438class VkPhysicalDeviceShaderCorePropertiesAMD {
7439 VkStructureType sType
7440 void* pNext
7441 u32 shaderEngineCount
7442 u32 shaderArraysPerEngineCount
7443 u32 computeUnitsPerShaderArray
7444 u32 simdPerComputeUnit
7445 u32 wavefrontsPerSimd
7446 u32 wavefrontSize
7447 u32 sgprsPerSimd
7448 u32 minSgprAllocation
7449 u32 maxSgprAllocation
7450 u32 sgprAllocationGranularity
7451 u32 vgprsPerSimd
7452 u32 minVgprAllocation
7453 u32 maxVgprAllocation
7454 u32 vgprAllocationGranularity
7455}
7456
7457@extension("VK_EXT_vertex_attribute_divisor") // 191
7458class VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT {
7459 VkStructureType sType
7460 void* pNext
7461 u32 maxVertexAttribDivisor
7462}
7463
7464@extension("VK_EXT_vertex_attribute_divisor") // 191
7465class VkVertexInputBindingDivisorDescriptionEXT {
7466 u32 binding
7467 u32 divisor
7468}
7469
7470@extension("VK_EXT_vertex_attribute_divisor") // 191
7471class VkPipelineVertexInputDivisorStateCreateInfoEXT {
7472 VkStructureType sType
7473 const void* pNext
7474 u32 vertexBindingDivisorCount
7475 const VkVertexInputBindingDivisorDescriptionEXT* pVertexBindingDivisors
7476}
7477
Jesse Hall4af6c462018-09-10 09:04:25 -07007478@extension("VK_EXT_vertex_attribute_divisor") // 191
7479class VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT {
7480 VkStructureType sType
7481 void* pNext
7482 VkBool32 vertexAttributeInstanceRateDivisor
7483 VkBool32 vertexAttributeInstanceRateZeroDivisor
7484}
7485
Jesse Hall2e6853c2018-10-02 14:05:37 -07007486@extension("VK_KHR_driver_properties") // 197
7487class VkConformanceVersionKHR {
7488 u8 major
7489 u8 minor
7490 u8 subminor
7491 u8 patch
7492}
7493
7494@extension("VK_KHR_driver_properties") // 197
7495class VkPhysicalDeviceDriverPropertiesKHR {
7496 VkStructureType sType
7497 void* pNext
Jesse Hallf47e8f82018-10-27 23:41:45 -07007498 VkDriverIdKHR driverID
Jesse Hall2e6853c2018-10-02 14:05:37 -07007499 char[VK_MAX_DRIVER_NAME_SIZE_KHR] driverName
7500 char[VK_MAX_DRIVER_INFO_SIZE_KHR] driverInfo
7501 VkConformanceVersionKHR conformanceVersion
7502}
7503
Jesse Hallb5297192018-09-22 20:52:13 +02007504@extension("VK_NV_compute_shader_derivatives") // 202
7505class VkPhysicalDeviceComputeShaderDerivativesFeaturesNV {
7506 VkStructureType sType
7507 void* pNext
7508 VkBool32 computeDerivativeGroupQuads
7509 VkBool32 computeDerivativeGroupLinear
7510}
7511
7512@extension("VK_NV_mesh_shader") // 203
7513class VkPhysicalDeviceMeshShaderFeaturesNV {
7514 VkStructureType sType
7515 void* pNext
7516 VkBool32 taskShader
7517 VkBool32 meshShader
7518}
7519
7520@extension("VK_NV_mesh_shader") // 203
7521class VkPhysicalDeviceMeshShaderPropertiesNV {
7522 VkStructureType sType
7523 void* pNext
7524 u32 maxDrawMeshTasksCount
7525 u32 maxTaskWorkGroupInvocations
7526 u32[3] maxTaskWorkGroupSize
7527 u32 maxTaskTotalMemorySize
7528 u32 maxTaskOutputCount
7529 u32 maxMeshWorkGroupInvocations
7530 u32[3] maxMeshWorkGroupSize
7531 u32 maxMeshTotalMemorySize
7532 u32 maxMeshOutputVertices
7533 u32 maxMeshOutputPrimitives
7534 u32 maxMeshMultiviewViewCount
7535 u32 meshOutputPerVertexGranularity
7536 u32 meshOutputPerPrimitiveGranularity
7537}
7538
7539@extension("VK_NV_mesh_shader") // 203
7540class VkDrawMeshTasksIndirectCommandNV {
7541 u32 taskCount
7542 u32 firstTask
7543}
7544
7545@extension("VK_NV_fragment_shader_barycentric") // 204
7546class VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV {
7547 VkStructureType sType
7548 void* pNext
7549 VkBool32 fragmentShaderBarycentric
7550}
7551
7552@extension("VK_NV_shader_image_footprint") // 205
7553class VkPhysicalDeviceShaderImageFootprintFeaturesNV {
7554 VkStructureType sType
7555 void* pNext
7556 VkBool32 imageFootprint
7557}
7558
7559@extension("VK_NV_scissor_exclusive") // 206
7560class VkPipelineViewportExclusiveScissorStateCreateInfoNV {
7561 VkStructureType sType
7562 const void* pNext
7563 u32 exclusiveScissorCount
7564 const VkRect2D* pExclusiveScissors
7565}
7566
7567@extension("VK_NV_scissor_exclusive") // 206
7568class VkPhysicalDeviceExclusiveScissorFeaturesNV {
7569 VkStructureType sType
7570 void* pNext
7571 VkBool32 exclusiveScissor
7572}
7573
Jesse Hall115df0c2018-07-30 12:00:59 -07007574@extension("VK_NV_device_diagnostic_checkpoints") // 207
7575class VkQueueFamilyCheckpointPropertiesNV {
7576 VkStructureType sType
7577 void* pNext
7578 VkPipelineStageFlags checkpointExecutionStageMask
7579}
7580
7581@extension("VK_NV_device_diagnostic_checkpoints") // 207
7582class VkCheckpointDataNV {
7583 VkStructureType sType
7584 void* pNext
7585 VkPipelineStageFlagBits stage
7586 void* pCheckpointMarker
7587}
7588
Jesse Hall4af6c462018-09-10 09:04:25 -07007589@extension("VK_KHR_vulkan_memory_model") // 212
7590class VkPhysicalDeviceVulkanMemoryModelFeaturesKHR {
7591 VkStructureType sType
7592 void* pNext
7593 VkBool32 vulkanMemoryModel
7594 VkBool32 vulkanMemoryModelDeviceScope
7595}
7596
Jesse Hallf47e8f82018-10-27 23:41:45 -07007597@extension("VK_EXT_pci_bus_info") // 213
7598class VkPhysicalDevicePCIBusInfoPropertiesEXT {
7599 VkStructureType sType
7600 void* pNext
7601 u16 pciDomain
7602 u8 pciBus
7603 u8 pciDevice
7604 u8 pciFunction
7605}
7606
Jesse Hall497c46f2018-10-08 12:52:48 -07007607@extension("VK_FUCHSIA_imagepipe_surface") // 215
7608class VkImagePipeSurfaceCreateInfoFUCHSIA {
7609 VkStructureType sType
7610 const void* pNext
7611 VkImagePipeSurfaceCreateFlagsFUCHSIA flags
7612 platform.zx_handle_t imagePipeHandle
7613}
7614
Daniel Koch09f7bf92017-10-05 00:26:58 -04007615
Jesse Halld27f6aa2015-08-15 17:58:48 -07007616////////////////
7617// Commands //
7618////////////////
7619
7620// Function pointers. TODO: add support for function pointers.
7621
7622@external type void* PFN_vkVoidFunction
7623@pfn cmd void vkVoidFunction() {
7624}
7625
Jesse Hall3fbc8562015-11-29 22:10:52 -08007626@external type void* PFN_vkAllocationFunction
7627@pfn cmd void* vkAllocationFunction(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007628 void* pUserData,
7629 platform.size_t size,
7630 platform.size_t alignment,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007631 VkSystemAllocationScope allocationScope) {
Jesse Hall03b6fe12015-11-24 12:44:21 -08007632 return ?
7633}
7634
Jesse Hall3fbc8562015-11-29 22:10:52 -08007635@external type void* PFN_vkReallocationFunction
7636@pfn cmd void* vkReallocationFunction(
Jesse Hall03b6fe12015-11-24 12:44:21 -08007637 void* pUserData,
7638 void* pOriginal,
7639 platform.size_t size,
7640 platform.size_t alignment,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007641 VkSystemAllocationScope allocationScope) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007642 return ?
7643}
7644
7645@external type void* PFN_vkFreeFunction
7646@pfn cmd void vkFreeFunction(
7647 void* pUserData,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007648 void* pMemory) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007649}
7650
Jesse Hall3fbc8562015-11-29 22:10:52 -08007651@external type void* PFN_vkInternalAllocationNotification
7652@pfn cmd void vkInternalAllocationNotification(
Jesse Hall03b6fe12015-11-24 12:44:21 -08007653 void* pUserData,
7654 platform.size_t size,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007655 VkInternalAllocationType allocationType,
7656 VkSystemAllocationScope allocationScope) {
Jesse Hall03b6fe12015-11-24 12:44:21 -08007657}
7658
7659@external type void* PFN_vkInternalFreeNotification
7660@pfn cmd void vkInternalFreeNotification(
7661 void* pUserData,
7662 platform.size_t size,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007663 VkInternalAllocationType allocationType,
7664 VkSystemAllocationScope allocationScope) {
Jesse Hall03b6fe12015-11-24 12:44:21 -08007665}
Jesse Halld27f6aa2015-08-15 17:58:48 -07007666
7667// Global functions
7668
7669@threadSafety("system")
7670cmd VkResult vkCreateInstance(
7671 const VkInstanceCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007672 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007673 VkInstance* pInstance) {
7674 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO)
7675
7676 instance := ?
7677 pInstance[0] = instance
7678 State.Instances[instance] = new!InstanceObject()
7679
Jesse Hall3dd678a2016-01-08 21:52:01 -08007680 layers := pCreateInfo.ppEnabledLayerNames[0:pCreateInfo.enabledLayerCount]
7681 extensions := pCreateInfo.ppEnabledExtensionNames[0:pCreateInfo.enabledExtensionCount]
Jesse Halld27f6aa2015-08-15 17:58:48 -07007682
7683 return ?
7684}
7685
7686@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007687cmd void vkDestroyInstance(
Jesse Hall03b6fe12015-11-24 12:44:21 -08007688 VkInstance instance,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007689 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007690 instanceObject := GetInstance(instance)
7691
7692 State.Instances[instance] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07007693}
7694
7695@threadSafety("system")
7696cmd VkResult vkEnumeratePhysicalDevices(
7697 VkInstance instance,
7698 u32* pPhysicalDeviceCount,
7699 VkPhysicalDevice* pPhysicalDevices) {
7700 instanceObject := GetInstance(instance)
7701
7702 physicalDeviceCount := as!u32(?)
7703 pPhysicalDeviceCount[0] = physicalDeviceCount
7704 physicalDevices := pPhysicalDevices[0:physicalDeviceCount]
7705
7706 for i in (0 .. physicalDeviceCount) {
7707 physicalDevice := ?
7708 physicalDevices[i] = physicalDevice
7709 if !(physicalDevice in State.PhysicalDevices) {
7710 State.PhysicalDevices[physicalDevice] = new!PhysicalDeviceObject(instance: instance)
7711 }
7712 }
7713
7714 return ?
7715}
7716
7717cmd PFN_vkVoidFunction vkGetDeviceProcAddr(
7718 VkDevice device,
7719 const char* pName) {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007720 if device != NULL_HANDLE {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007721 device := GetDevice(device)
7722 }
7723
7724 return ?
7725}
7726
7727cmd PFN_vkVoidFunction vkGetInstanceProcAddr(
7728 VkInstance instance,
7729 const char* pName) {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007730 if instance != NULL_HANDLE {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007731 instanceObject := GetInstance(instance)
7732 }
7733
7734 return ?
7735}
7736
Jesse Hall606a54e2015-11-19 22:17:28 -08007737cmd void vkGetPhysicalDeviceProperties(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007738 VkPhysicalDevice physicalDevice,
7739 VkPhysicalDeviceProperties* pProperties) {
7740 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
7741
7742 properties := ?
7743 pProperties[0] = properties
Jesse Halld27f6aa2015-08-15 17:58:48 -07007744}
7745
Jesse Hall606a54e2015-11-19 22:17:28 -08007746cmd void vkGetPhysicalDeviceQueueFamilyProperties(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007747 VkPhysicalDevice physicalDevice,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007748 u32* pQueueFamilyPropertyCount,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007749 VkQueueFamilyProperties* pQueueFamilyProperties) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007750 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007751 // TODO: Figure out how to express fetch-count-or-properties
7752 // This version fails 'apic validate' with 'fence not allowed in
7753 // *semantic.Branch'. Other attempts have failed with the same or other
7754 // errors.
7755 // if pQueueFamilyProperties != null {
7756 // queuesProperties := pQueueFamilyProperties[0:pCount[0]]
7757 // for i in (0 .. pCount[0]) {
7758 // queueProperties := as!VkQueueFamilyProperties(?)
7759 // queuesProperties[i] = queueProperties
7760 // }
7761 // } else {
7762 // count := ?
7763 // pCount[0] = count
7764 // }
Jesse Halld27f6aa2015-08-15 17:58:48 -07007765}
7766
Jesse Hall606a54e2015-11-19 22:17:28 -08007767cmd void vkGetPhysicalDeviceMemoryProperties(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007768 VkPhysicalDevice physicalDevice,
7769 VkPhysicalDeviceMemoryProperties* pMemoryProperties) {
7770 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
7771
7772 memoryProperties := ?
7773 pMemoryProperties[0] = memoryProperties
Jesse Halld27f6aa2015-08-15 17:58:48 -07007774}
7775
Jesse Hall606a54e2015-11-19 22:17:28 -08007776cmd void vkGetPhysicalDeviceFeatures(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007777 VkPhysicalDevice physicalDevice,
7778 VkPhysicalDeviceFeatures* pFeatures) {
7779 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
7780
7781 features := ?
7782 pFeatures[0] = features
Jesse Halld27f6aa2015-08-15 17:58:48 -07007783}
7784
Jesse Hall606a54e2015-11-19 22:17:28 -08007785cmd void vkGetPhysicalDeviceFormatProperties(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007786 VkPhysicalDevice physicalDevice,
7787 VkFormat format,
7788 VkFormatProperties* pFormatProperties) {
7789 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
7790
7791 formatProperties := ?
7792 pFormatProperties[0] = formatProperties
Jesse Halld27f6aa2015-08-15 17:58:48 -07007793}
7794
Jesse Halla9e57032015-11-30 01:03:10 -08007795cmd VkResult vkGetPhysicalDeviceImageFormatProperties(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007796 VkPhysicalDevice physicalDevice,
7797 VkFormat format,
7798 VkImageType type,
7799 VkImageTiling tiling,
7800 VkImageUsageFlags usage,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007801 VkImageCreateFlags flags,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007802 VkImageFormatProperties* pImageFormatProperties) {
7803 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
7804
7805 imageFormatProperties := ?
7806 pImageFormatProperties[0] = imageFormatProperties
Jesse Halla9e57032015-11-30 01:03:10 -08007807
7808 return ?
Jesse Halld27f6aa2015-08-15 17:58:48 -07007809}
7810
Jesse Halld27f6aa2015-08-15 17:58:48 -07007811
7812// Device functions
7813
7814@threadSafety("system")
7815cmd VkResult vkCreateDevice(
7816 VkPhysicalDevice physicalDevice,
7817 const VkDeviceCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007818 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007819 VkDevice* pDevice) {
7820 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO)
7821 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
7822
7823 device := ?
7824 pDevice[0] = device
7825 State.Devices[device] = new!DeviceObject(physicalDevice: physicalDevice)
7826
7827 return ?
7828}
7829
7830@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007831cmd void vkDestroyDevice(
Jesse Hall03b6fe12015-11-24 12:44:21 -08007832 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007833 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007834 deviceObject := GetDevice(device)
7835
7836 State.Devices[device] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07007837}
7838
7839
7840// Extension discovery functions
7841
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007842cmd VkResult vkEnumerateInstanceLayerProperties(
Jesse Hall03b6fe12015-11-24 12:44:21 -08007843 u32* pPropertyCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007844 VkLayerProperties* pProperties) {
7845 count := as!u32(?)
Jesse Hall03b6fe12015-11-24 12:44:21 -08007846 pPropertyCount[0] = count
Jesse Halld27f6aa2015-08-15 17:58:48 -07007847
7848 properties := pProperties[0:count]
7849 for i in (0 .. count) {
7850 property := ?
7851 properties[i] = property
7852 }
7853
7854 return ?
7855}
7856
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007857cmd VkResult vkEnumerateInstanceExtensionProperties(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007858 const char* pLayerName,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007859 u32* pPropertyCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007860 VkExtensionProperties* pProperties) {
7861 count := as!u32(?)
Jesse Hall03b6fe12015-11-24 12:44:21 -08007862 pPropertyCount[0] = count
Jesse Halld27f6aa2015-08-15 17:58:48 -07007863
7864 properties := pProperties[0:count]
7865 for i in (0 .. count) {
7866 property := ?
7867 properties[i] = property
7868 }
7869
7870 return ?
7871}
7872
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007873cmd VkResult vkEnumerateDeviceLayerProperties(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007874 VkPhysicalDevice physicalDevice,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007875 u32* pPropertyCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007876 VkLayerProperties* pProperties) {
7877 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
7878 count := as!u32(?)
Jesse Hall03b6fe12015-11-24 12:44:21 -08007879 pPropertyCount[0] = count
Jesse Halld27f6aa2015-08-15 17:58:48 -07007880
7881 properties := pProperties[0:count]
7882 for i in (0 .. count) {
7883 property := ?
7884 properties[i] = property
7885 }
7886
7887 return ?
7888}
7889
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007890cmd VkResult vkEnumerateDeviceExtensionProperties(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007891 VkPhysicalDevice physicalDevice,
7892 const char* pLayerName,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007893 u32* pPropertyCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007894 VkExtensionProperties* pProperties) {
7895 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
7896
7897 count := as!u32(?)
Jesse Hall03b6fe12015-11-24 12:44:21 -08007898 pPropertyCount[0] = count
Jesse Halld27f6aa2015-08-15 17:58:48 -07007899
7900 properties := pProperties[0:count]
7901 for i in (0 .. count) {
7902 property := ?
7903 properties[i] = property
7904 }
7905
7906 return ?
7907}
7908
7909
7910// Queue functions
7911
7912@threadSafety("system")
Jesse Hall606a54e2015-11-19 22:17:28 -08007913cmd void vkGetDeviceQueue(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007914 VkDevice device,
7915 u32 queueFamilyIndex,
7916 u32 queueIndex,
7917 VkQueue* pQueue) {
7918 deviceObject := GetDevice(device)
7919
7920 queue := ?
7921 pQueue[0] = queue
7922
7923 if !(queue in State.Queues) {
7924 State.Queues[queue] = new!QueueObject(device: device)
7925 }
Jesse Halld27f6aa2015-08-15 17:58:48 -07007926}
7927
7928@threadSafety("app")
7929cmd VkResult vkQueueSubmit(
7930 VkQueue queue,
Jesse Halla366a512015-11-19 22:30:07 -08007931 u32 submitCount,
Jesse Hallb00daad2015-11-29 19:46:20 -08007932 const VkSubmitInfo* pSubmits,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007933 VkFence fence) {
7934 queueObject := GetQueue(queue)
7935
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007936 if fence != NULL_HANDLE {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007937 fenceObject := GetFence(fence)
7938 assert(fenceObject.device == queueObject.device)
7939 }
7940
Jesse Hall3fbc8562015-11-29 22:10:52 -08007941 // commandBuffers := pcommandBuffers[0:commandBufferCount]
7942 // for i in (0 .. commandBufferCount) {
7943 // commandBuffer := commandBuffers[i]
7944 // commandBufferObject := GetCommandBuffer(commandBuffer)
7945 // assert(commandBufferObject.device == queueObject.device)
Jesse Halla366a512015-11-19 22:30:07 -08007946 //
Jesse Hall3fbc8562015-11-29 22:10:52 -08007947 // validate("QueueCheck", commandBufferObject.queueFlags in queueObject.flags,
7948 // "vkQueueSubmit: enqueued commandBuffer requires missing queue capabilities.")
Jesse Halla366a512015-11-19 22:30:07 -08007949 // }
Jesse Halld27f6aa2015-08-15 17:58:48 -07007950
7951 return ?
7952}
7953
7954@threadSafety("system")
7955cmd VkResult vkQueueWaitIdle(
7956 VkQueue queue) {
7957 queueObject := GetQueue(queue)
7958
7959 return ?
7960}
7961
7962@threadSafety("system")
7963cmd VkResult vkDeviceWaitIdle(
7964 VkDevice device) {
7965 deviceObject := GetDevice(device)
7966
7967 return ?
7968}
7969
7970
7971// Memory functions
7972
7973@threadSafety("system")
Jesse Hall3fbc8562015-11-29 22:10:52 -08007974cmd VkResult vkAllocateMemory(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007975 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007976 const VkMemoryAllocateInfo* pAllocateInfo,
7977 const VkAllocationCallbacks* pAllocator,
7978 VkDeviceMemory* pMemory) {
Jesse Hallf4ab2b12015-11-30 16:04:55 -08007979 assert(pAllocateInfo.sType == VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007980 deviceObject := GetDevice(device)
7981
Jesse Hall3fbc8562015-11-29 22:10:52 -08007982 memory := ?
7983 pMemory[0] = memory
7984 State.DeviceMemories[memory] = new!DeviceMemoryObject(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007985 device: device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007986 allocationSize: pAllocateInfo[0].allocationSize)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007987
7988 return ?
7989}
7990
7991@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007992cmd void vkFreeMemory(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007993 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007994 VkDeviceMemory memory,
7995 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007996 deviceObject := GetDevice(device)
Jesse Hall3fbc8562015-11-29 22:10:52 -08007997 memoryObject := GetDeviceMemory(memory)
7998 assert(memoryObject.device == device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007999
8000 // Check that no objects are still bound before freeing.
Jesse Hall3fbc8562015-11-29 22:10:52 -08008001 validate("MemoryCheck", len(memoryObject.boundObjects) == 0,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008002 "vkFreeMemory: objects still bound")
Jesse Hall3fbc8562015-11-29 22:10:52 -08008003 validate("MemoryCheck", len(memoryObject.boundCommandBuffers) == 0,
8004 "vkFreeMemory: commandBuffers still bound")
8005 State.DeviceMemories[memory] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008006}
8007
8008@threadSafety("app")
8009cmd VkResult vkMapMemory(
8010 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008011 VkDeviceMemory memory,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008012 VkDeviceSize offset,
8013 VkDeviceSize size,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008014 VkMemoryMapFlags flags,
8015 void** ppData) {
8016 deviceObject := GetDevice(device)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008017 memoryObject := GetDeviceMemory(memory)
8018 assert(memoryObject.device == device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008019
8020 assert(flags == as!VkMemoryMapFlags(0))
Jesse Hall3fbc8562015-11-29 22:10:52 -08008021 assert((offset + size) <= memoryObject.allocationSize)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008022
8023 return ?
8024}
8025
8026@threadSafety("app")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008027cmd void vkUnmapMemory(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008028 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008029 VkDeviceMemory memory) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008030 deviceObject := GetDevice(device)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008031 memoryObject := GetDeviceMemory(memory)
8032 assert(memoryObject.device == device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008033}
8034
8035cmd VkResult vkFlushMappedMemoryRanges(
8036 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008037 u32 memoryRangeCount
8038 const VkMappedMemoryRange* pMemoryRanges) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008039 deviceObject := GetDevice(device)
8040
Jesse Hall3fbc8562015-11-29 22:10:52 -08008041 memoryRanges := pMemoryRanges[0:memoryRangeCount]
8042 for i in (0 .. memoryRangeCount) {
8043 memoryRange := memoryRanges[i]
8044 memoryObject := GetDeviceMemory(memoryRange.memory)
8045 assert(memoryObject.device == device)
8046 assert((memoryRange.offset + memoryRange.size) <= memoryObject.allocationSize)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008047 }
8048
8049 return ?
8050}
8051
8052cmd VkResult vkInvalidateMappedMemoryRanges(
8053 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008054 u32 memoryRangeCount,
8055 const VkMappedMemoryRange* pMemoryRanges) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008056 deviceObject := GetDevice(device)
8057
Jesse Hall3fbc8562015-11-29 22:10:52 -08008058 memoryRanges := pMemoryRanges[0:memoryRangeCount]
8059 for i in (0 .. memoryRangeCount) {
8060 memoryRange := memoryRanges[i]
8061 memoryObject := GetDeviceMemory(memoryRange.memory)
8062 assert(memoryObject.device == device)
8063 assert((memoryRange.offset + memoryRange.size) <= memoryObject.allocationSize)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008064 }
8065
8066 return ?
8067}
8068
8069
8070// Memory management API functions
8071
Jesse Hall606a54e2015-11-19 22:17:28 -08008072cmd void vkGetDeviceMemoryCommitment(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008073 VkDevice device,
8074 VkDeviceMemory memory,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008075 VkDeviceSize* pCommittedMemoryInBytes) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008076 deviceObject := GetDevice(device)
8077
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008078 if memory != NULL_HANDLE {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008079 memoryObject := GetDeviceMemory(memory)
8080 assert(memoryObject.device == device)
8081 }
8082
8083 committedMemoryInBytes := ?
8084 pCommittedMemoryInBytes[0] = committedMemoryInBytes
Jesse Halld27f6aa2015-08-15 17:58:48 -07008085}
8086
Jesse Hall606a54e2015-11-19 22:17:28 -08008087cmd void vkGetBufferMemoryRequirements(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008088 VkDevice device,
8089 VkBuffer buffer,
8090 VkMemoryRequirements* pMemoryRequirements) {
8091 deviceObject := GetDevice(device)
8092 bufferObject := GetBuffer(buffer)
8093 assert(bufferObject.device == device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008094}
8095
8096cmd VkResult vkBindBufferMemory(
8097 VkDevice device,
8098 VkBuffer buffer,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008099 VkDeviceMemory memory,
8100 VkDeviceSize memoryOffset) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008101 deviceObject := GetDevice(device)
8102 bufferObject := GetBuffer(buffer)
8103 assert(bufferObject.device == device)
8104
8105 // Unbind buffer from previous memory object, if not VK_NULL_HANDLE.
Jesse Hall3fbc8562015-11-29 22:10:52 -08008106 if bufferObject.memory != NULL_HANDLE {
8107 memoryObject := GetDeviceMemory(bufferObject.memory)
8108 memoryObject.boundObjects[as!u64(buffer)] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008109 }
8110
8111 // Bind buffer to given memory object, if not VK_NULL_HANDLE.
Jesse Hall3fbc8562015-11-29 22:10:52 -08008112 if memory != NULL_HANDLE {
8113 memoryObject := GetDeviceMemory(memory)
8114 assert(memoryObject.device == device)
8115 memoryObject.boundObjects[as!u64(buffer)] = memoryOffset
Jesse Halld27f6aa2015-08-15 17:58:48 -07008116 }
Jesse Hall3fbc8562015-11-29 22:10:52 -08008117 bufferObject.memory = memory
8118 bufferObject.memoryOffset = memoryOffset
Jesse Halld27f6aa2015-08-15 17:58:48 -07008119
8120 return ?
8121}
8122
Jesse Hall606a54e2015-11-19 22:17:28 -08008123cmd void vkGetImageMemoryRequirements(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008124 VkDevice device,
8125 VkImage image,
8126 VkMemoryRequirements* pMemoryRequirements) {
8127 deviceObject := GetDevice(device)
8128 imageObject := GetImage(image)
8129 assert(imageObject.device == device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008130}
8131
8132cmd VkResult vkBindImageMemory(
8133 VkDevice device,
8134 VkImage image,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008135 VkDeviceMemory memory,
8136 VkDeviceSize memoryOffset) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008137 deviceObject := GetDevice(device)
8138 imageObject := GetImage(image)
8139 assert(imageObject.device == device)
8140
8141 // Unbind image from previous memory object, if not VK_NULL_HANDLE.
Jesse Hall3fbc8562015-11-29 22:10:52 -08008142 if imageObject.memory != NULL_HANDLE {
8143 memoryObject := GetDeviceMemory(imageObject.memory)
8144 memoryObject.boundObjects[as!u64(image)] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008145 }
8146
8147 // Bind image to given memory object, if not VK_NULL_HANDLE.
Jesse Hall3fbc8562015-11-29 22:10:52 -08008148 if memory != NULL_HANDLE {
8149 memoryObject := GetDeviceMemory(memory)
8150 assert(memoryObject.device == device)
8151 memoryObject.boundObjects[as!u64(image)] = memoryOffset
Jesse Halld27f6aa2015-08-15 17:58:48 -07008152 }
Jesse Hall3fbc8562015-11-29 22:10:52 -08008153 imageObject.memory = memory
8154 imageObject.memoryOffset = memoryOffset
Jesse Halld27f6aa2015-08-15 17:58:48 -07008155
8156 return ?
8157}
8158
Jesse Hall606a54e2015-11-19 22:17:28 -08008159cmd void vkGetImageSparseMemoryRequirements(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008160 VkDevice device,
8161 VkImage image,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008162 u32* pSparseMemoryRequirementCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008163 VkSparseImageMemoryRequirements* pSparseMemoryRequirements) {
8164 deviceObject := GetDevice(device)
8165 imageObject := GetImage(image)
8166 assert(imageObject.device == device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008167}
8168
Jesse Hall606a54e2015-11-19 22:17:28 -08008169cmd void vkGetPhysicalDeviceSparseImageFormatProperties(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008170 VkPhysicalDevice physicalDevice,
8171 VkFormat format,
8172 VkImageType type,
Jesse Hall091ed9e2015-11-30 00:55:29 -08008173 VkSampleCountFlagBits samples,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008174 VkImageUsageFlags usage,
8175 VkImageTiling tiling,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008176 u32* pPropertyCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008177 VkSparseImageFormatProperties* pProperties) {
8178 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008179}
8180
Jesse Halla6429252015-11-29 18:59:42 -08008181cmd VkResult vkQueueBindSparse(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008182 VkQueue queue,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008183 u32 bindInfoCount,
Jesse Halla6429252015-11-29 18:59:42 -08008184 const VkBindSparseInfo* pBindInfo,
8185 VkFence fence) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008186 queueObject := GetQueue(queue)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008187
8188 return ?
8189}
8190
8191
8192// Fence functions
8193
8194@threadSafety("system")
8195cmd VkResult vkCreateFence(
8196 VkDevice device,
8197 const VkFenceCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008198 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008199 VkFence* pFence) {
8200 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_FENCE_CREATE_INFO)
8201 deviceObject := GetDevice(device)
8202
8203 fence := ?
8204 pFence[0] = fence
8205 State.Fences[fence] = new!FenceObject(
Jesse Halld8bade02015-11-24 10:24:18 -08008206 device: device, signaled: (pCreateInfo.flags == as!VkFenceCreateFlags(VK_FENCE_CREATE_SIGNALED_BIT)))
Jesse Halld27f6aa2015-08-15 17:58:48 -07008207
8208 return ?
8209}
8210
8211@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008212cmd void vkDestroyFence(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008213 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008214 VkFence fence,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008215 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008216 deviceObject := GetDevice(device)
8217 fenceObject := GetFence(fence)
8218 assert(fenceObject.device == device)
8219
8220 State.Fences[fence] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008221}
8222
8223@threadSafety("system")
8224cmd VkResult vkResetFences(
8225 VkDevice device,
8226 u32 fenceCount,
8227 const VkFence* pFences) {
8228 deviceObject := GetDevice(device)
8229
8230 fences := pFences[0:fenceCount]
8231 for i in (0 .. fenceCount) {
8232 fence := fences[i]
8233 fenceObject := GetFence(fence)
8234 assert(fenceObject.device == device)
8235 fenceObject.signaled = false
8236 }
8237
8238 return ?
8239}
8240
8241@threadSafety("system")
8242cmd VkResult vkGetFenceStatus(
8243 VkDevice device,
8244 VkFence fence) {
8245 deviceObject := GetDevice(device)
8246 fenceObject := GetFence(fence)
8247 assert(fenceObject.device == device)
8248
8249 return ?
8250}
8251
8252@threadSafety("system")
8253cmd VkResult vkWaitForFences(
8254 VkDevice device,
8255 u32 fenceCount,
8256 const VkFence* pFences,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008257 VkBool32 waitAll,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008258 u64 timeout) { /// timeout in nanoseconds
8259 deviceObject := GetDevice(device)
8260
8261 fences := pFences[0:fenceCount]
8262 for i in (0 .. fenceCount) {
8263 fence := fences[i]
8264 fenceObject := GetFence(fence)
8265 assert(fenceObject.device == device)
8266 }
8267
8268 return ?
8269}
8270
8271
8272// Queue semaphore functions
8273
8274@threadSafety("system")
8275cmd VkResult vkCreateSemaphore(
8276 VkDevice device,
8277 const VkSemaphoreCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008278 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008279 VkSemaphore* pSemaphore) {
8280 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO)
8281 deviceObject := GetDevice(device)
8282
8283 semaphore := ?
8284 pSemaphore[0] = semaphore
8285 State.Semaphores[semaphore] = new!SemaphoreObject(device: device)
8286
8287 return ?
8288}
8289
8290@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008291cmd void vkDestroySemaphore(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008292 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008293 VkSemaphore semaphore,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008294 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008295 deviceObject := GetDevice(device)
8296 semaphoreObject := GetSemaphore(semaphore)
8297 assert(semaphoreObject.device == device)
8298
8299 State.Semaphores[semaphore] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008300}
8301
Jesse Halld27f6aa2015-08-15 17:58:48 -07008302
8303// Event functions
8304
8305@threadSafety("system")
8306cmd VkResult vkCreateEvent(
8307 VkDevice device,
8308 const VkEventCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008309 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008310 VkEvent* pEvent) {
8311 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_EVENT_CREATE_INFO)
8312 deviceObject := GetDevice(device)
8313
8314 event := ?
8315 pEvent[0] = event
8316 State.Events[event] = new!EventObject(device: device)
8317
8318 return ?
8319}
8320
8321@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008322cmd void vkDestroyEvent(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008323 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008324 VkEvent event,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008325 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008326 deviceObject := GetDevice(device)
8327 eventObject := GetEvent(event)
8328 assert(eventObject.device == device)
8329
8330 State.Events[event] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008331}
8332
8333@threadSafety("system")
8334cmd VkResult vkGetEventStatus(
8335 VkDevice device,
8336 VkEvent event) {
8337 deviceObject := GetDevice(device)
8338 eventObject := GetEvent(event)
8339 assert(eventObject.device == device)
8340
8341 return ?
8342}
8343
8344@threadSafety("system")
8345cmd VkResult vkSetEvent(
8346 VkDevice device,
8347 VkEvent event) {
8348 deviceObject := GetDevice(device)
8349 eventObject := GetEvent(event)
8350 assert(eventObject.device == device)
8351
8352 return ?
8353}
8354
8355@threadSafety("system")
8356cmd VkResult vkResetEvent(
8357 VkDevice device,
8358 VkEvent event) {
8359 deviceObject := GetDevice(device)
8360 eventObject := GetEvent(event)
8361 assert(eventObject.device == device)
8362
8363 return ?
8364}
8365
8366
8367// Query functions
8368
8369@threadSafety("system")
8370cmd VkResult vkCreateQueryPool(
8371 VkDevice device,
8372 const VkQueryPoolCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008373 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008374 VkQueryPool* pQueryPool) {
8375 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO)
8376 deviceObject := GetDevice(device)
8377
8378 queryPool := ?
8379 pQueryPool[0] = queryPool
8380 State.QueryPools[queryPool] = new!QueryPoolObject(device: device)
8381
8382 return ?
8383}
8384
8385@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008386cmd void vkDestroyQueryPool(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008387 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008388 VkQueryPool queryPool,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008389 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008390 deviceObject := GetDevice(device)
8391 queryPoolObject := GetQueryPool(queryPool)
8392 assert(queryPoolObject.device == device)
8393
8394 State.QueryPools[queryPool] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008395}
8396
8397@threadSafety("system")
8398cmd VkResult vkGetQueryPoolResults(
8399 VkDevice device,
8400 VkQueryPool queryPool,
Jesse Hallf9fa9a52016-01-08 16:08:51 -08008401 u32 firstQuery,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008402 u32 queryCount,
Jesse Halla9bb62b2015-11-21 19:31:56 -08008403 platform.size_t dataSize,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008404 void* pData,
Jesse Halla9bb62b2015-11-21 19:31:56 -08008405 VkDeviceSize stride,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008406 VkQueryResultFlags flags) {
8407 deviceObject := GetDevice(device)
8408 queryPoolObject := GetQueryPool(queryPool)
8409 assert(queryPoolObject.device == device)
8410
Jesse Halld27f6aa2015-08-15 17:58:48 -07008411 data := pData[0:dataSize]
8412
8413 return ?
8414}
8415
8416// Buffer functions
8417
8418@threadSafety("system")
8419cmd VkResult vkCreateBuffer(
8420 VkDevice device,
8421 const VkBufferCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008422 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008423 VkBuffer* pBuffer) {
8424 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO)
8425 deviceObject := GetDevice(device)
8426
8427 buffer := ?
8428 pBuffer[0] = buffer
8429 State.Buffers[buffer] = new!BufferObject(device: device)
8430
8431 return ?
8432}
8433
8434@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008435cmd void vkDestroyBuffer(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008436 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008437 VkBuffer buffer,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008438 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008439 deviceObject := GetDevice(device)
8440 bufferObject := GetBuffer(buffer)
8441 assert(bufferObject.device == device)
8442
Jesse Hall3fbc8562015-11-29 22:10:52 -08008443 assert(bufferObject.memory == 0)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008444 State.Buffers[buffer] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008445}
8446
8447
8448// Buffer view functions
8449
8450@threadSafety("system")
8451cmd VkResult vkCreateBufferView(
8452 VkDevice device,
8453 const VkBufferViewCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008454 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008455 VkBufferView* pView) {
8456 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO)
8457 deviceObject := GetDevice(device)
8458
8459 bufferObject := GetBuffer(pCreateInfo.buffer)
8460 assert(bufferObject.device == device)
8461
8462 view := ?
8463 pView[0] = view
8464 State.BufferViews[view] = new!BufferViewObject(device: device, buffer: pCreateInfo.buffer)
8465
8466 return ?
8467}
8468
8469@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008470cmd void vkDestroyBufferView(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008471 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008472 VkBufferView bufferView,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008473 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008474 deviceObject := GetDevice(device)
8475 bufferViewObject := GetBufferView(bufferView)
8476 assert(bufferViewObject.device == device)
8477
8478 State.BufferViews[bufferView] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008479}
8480
8481
8482// Image functions
8483
8484@threadSafety("system")
8485cmd VkResult vkCreateImage(
8486 VkDevice device,
8487 const VkImageCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008488 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008489 VkImage* pImage) {
8490 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO)
8491 deviceObject := GetDevice(device)
8492
8493 image := ?
8494 pImage[0] = image
8495 State.Images[image] = new!ImageObject(device: device)
8496
8497 return ?
8498}
8499
8500@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008501cmd void vkDestroyImage(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008502 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008503 VkImage image,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008504 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008505 deviceObject := GetDevice(device)
8506 imageObject := GetImage(image)
8507 assert(imageObject.device == device)
8508
Jesse Hall3fbc8562015-11-29 22:10:52 -08008509 assert(imageObject.memory == 0)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008510 State.Images[image] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008511}
8512
Jesse Hall606a54e2015-11-19 22:17:28 -08008513cmd void vkGetImageSubresourceLayout(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008514 VkDevice device,
8515 VkImage image,
8516 const VkImageSubresource* pSubresource,
8517 VkSubresourceLayout* pLayout) {
8518 deviceObject := GetDevice(device)
8519 imageObject := GetImage(image)
8520 assert(imageObject.device == device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008521}
8522
8523
8524// Image view functions
8525
8526@threadSafety("system")
8527cmd VkResult vkCreateImageView(
8528 VkDevice device,
8529 const VkImageViewCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008530 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008531 VkImageView* pView) {
8532 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO)
8533 deviceObject := GetDevice(device)
8534
8535 imageObject := GetImage(pCreateInfo.image)
8536 assert(imageObject.device == device)
8537
8538 view := ?
8539 pView[0] = view
8540 State.ImageViews[view] = new!ImageViewObject(device: device, image: pCreateInfo.image)
8541
8542 return ?
8543}
8544
8545@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008546cmd void vkDestroyImageView(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008547 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008548 VkImageView imageView,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008549 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008550 deviceObject := GetDevice(device)
8551 imageViewObject := GetImageView(imageView)
8552 assert(imageViewObject.device == device)
8553
8554 State.ImageViews[imageView] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008555}
8556
8557
8558// Shader functions
8559
8560cmd VkResult vkCreateShaderModule(
8561 VkDevice device,
8562 const VkShaderModuleCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008563 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008564 VkShaderModule* pShaderModule) {
8565 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO)
8566 deviceObject := GetDevice(device)
8567
8568 shaderModule := ?
8569 pShaderModule[0] = shaderModule
8570 State.ShaderModules[shaderModule] = new!ShaderModuleObject(device: device)
8571
8572 return ?
8573}
8574
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008575cmd void vkDestroyShaderModule(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008576 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008577 VkShaderModule shaderModule,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008578 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008579 deviceObject := GetDevice(device)
8580 shaderModuleObject := GetShaderModule(shaderModule)
8581 assert(shaderModuleObject.device == device)
8582
8583 State.ShaderModules[shaderModule] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008584}
8585
Jesse Halld27f6aa2015-08-15 17:58:48 -07008586
8587// Pipeline functions
8588
8589cmd VkResult vkCreatePipelineCache(
8590 VkDevice device,
8591 const VkPipelineCacheCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008592 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008593 VkPipelineCache* pPipelineCache) {
8594 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO)
8595 deviceObject := GetDevice(device)
8596
8597 pipelineCache := ?
8598 pPipelineCache[0] = pipelineCache
8599 State.PipelineCaches[pipelineCache] = new!PipelineCacheObject(device: device)
8600
8601 return ?
8602}
8603
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008604cmd void vkDestroyPipelineCache(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008605 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008606 VkPipelineCache pipelineCache,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008607 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008608 deviceObject := GetDevice(device)
8609 pipelineCacheObject := GetPipelineCache(pipelineCache)
8610 assert(pipelineCacheObject.device == device)
8611
8612 State.PipelineCaches[pipelineCache] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008613}
8614
Jesse Halld27f6aa2015-08-15 17:58:48 -07008615cmd VkResult vkGetPipelineCacheData(
8616 VkDevice device,
8617 VkPipelineCache pipelineCache,
Jesse Halla9bb62b2015-11-21 19:31:56 -08008618 platform.size_t* pDataSize,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008619 void* pData) {
8620 deviceObject := GetDevice(device)
8621 pipelineCacheObject := GetPipelineCache(pipelineCache)
8622 assert(pipelineCacheObject.device == device)
8623
8624 return ?
8625}
8626
8627cmd VkResult vkMergePipelineCaches(
8628 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008629 VkPipelineCache dstCache,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008630 u32 srcCacheCount,
8631 const VkPipelineCache* pSrcCaches) {
8632 deviceObject := GetDevice(device)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008633 dstCacheObject := GetPipelineCache(dstCache)
8634 assert(dstCacheObject.device == device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008635
8636 srcCaches := pSrcCaches[0:srcCacheCount]
8637 for i in (0 .. srcCacheCount) {
8638 srcCache := srcCaches[i]
8639 srcCacheObject := GetPipelineCache(srcCache)
8640 assert(srcCacheObject.device == device)
8641 }
8642
8643 return ?
8644}
8645
8646cmd VkResult vkCreateGraphicsPipelines(
8647 VkDevice device,
8648 VkPipelineCache pipelineCache,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008649 u32 createInfoCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008650 const VkGraphicsPipelineCreateInfo* pCreateInfos,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008651 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008652 VkPipeline* pPipelines) {
8653 deviceObject := GetDevice(device)
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008654 if pipelineCache != NULL_HANDLE {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008655 pipelineCacheObject := GetPipelineCache(pipelineCache)
8656 assert(pipelineCacheObject.device == device)
8657 }
8658
Jesse Hall03b6fe12015-11-24 12:44:21 -08008659 createInfos := pCreateInfos[0:createInfoCount]
8660 pipelines := pPipelines[0:createInfoCount]
8661 for i in (0 .. createInfoCount) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008662 pipeline := ?
8663 pipelines[i] = pipeline
8664 State.Pipelines[pipeline] = new!PipelineObject(device: device)
8665 }
8666
8667 return ?
8668}
8669
8670cmd VkResult vkCreateComputePipelines(
8671 VkDevice device,
8672 VkPipelineCache pipelineCache,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008673 u32 createInfoCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008674 const VkComputePipelineCreateInfo* pCreateInfos,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008675 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008676 VkPipeline* pPipelines) {
8677 deviceObject := GetDevice(device)
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008678 if pipelineCache != NULL_HANDLE {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008679 pipelineCacheObject := GetPipelineCache(pipelineCache)
8680 assert(pipelineCacheObject.device == device)
8681 }
8682
Jesse Hall03b6fe12015-11-24 12:44:21 -08008683 createInfos := pCreateInfos[0:createInfoCount]
8684 pipelines := pPipelines[0:createInfoCount]
8685 for i in (0 .. createInfoCount) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008686 pipeline := ?
8687 pipelines[i] = pipeline
8688 State.Pipelines[pipeline] = new!PipelineObject(device: device)
8689 }
8690
8691 return ?
8692}
8693
8694@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008695cmd void vkDestroyPipeline(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008696 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008697 VkPipeline pipeline,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008698 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008699 deviceObject := GetDevice(device)
8700 pipelineObjects := GetPipeline(pipeline)
8701 assert(pipelineObjects.device == device)
8702
8703 State.Pipelines[pipeline] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008704}
8705
8706
8707// Pipeline layout functions
8708
8709@threadSafety("system")
8710cmd VkResult vkCreatePipelineLayout(
8711 VkDevice device,
8712 const VkPipelineLayoutCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008713 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008714 VkPipelineLayout* pPipelineLayout) {
8715 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO)
8716 deviceObject := GetDevice(device)
8717
8718 pipelineLayout := ?
8719 pPipelineLayout[0] = pipelineLayout
8720 State.PipelineLayouts[pipelineLayout] = new!PipelineLayoutObject(device: device)
8721
8722 return ?
8723}
8724
8725@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008726cmd void vkDestroyPipelineLayout(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008727 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008728 VkPipelineLayout pipelineLayout,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008729 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008730 deviceObject := GetDevice(device)
8731 pipelineLayoutObjects := GetPipelineLayout(pipelineLayout)
8732 assert(pipelineLayoutObjects.device == device)
8733
8734 State.PipelineLayouts[pipelineLayout] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008735}
8736
8737
8738// Sampler functions
8739
8740@threadSafety("system")
8741cmd VkResult vkCreateSampler(
8742 VkDevice device,
8743 const VkSamplerCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008744 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008745 VkSampler* pSampler) {
8746 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO)
8747 deviceObject := GetDevice(device)
8748
8749 sampler := ?
8750 pSampler[0] = sampler
8751 State.Samplers[sampler] = new!SamplerObject(device: device)
8752
8753 return ?
8754}
8755
8756@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008757cmd void vkDestroySampler(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008758 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008759 VkSampler sampler,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008760 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008761 deviceObject := GetDevice(device)
8762 samplerObject := GetSampler(sampler)
8763 assert(samplerObject.device == device)
8764
8765 State.Samplers[sampler] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008766}
8767
8768
8769// Descriptor set functions
8770
8771@threadSafety("system")
8772cmd VkResult vkCreateDescriptorSetLayout(
8773 VkDevice device,
8774 const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008775 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008776 VkDescriptorSetLayout* pSetLayout) {
8777 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO)
8778 deviceObject := GetDevice(device)
8779
8780 setLayout := ?
8781 pSetLayout[0] = setLayout
8782 State.DescriptorSetLayouts[setLayout] = new!DescriptorSetLayoutObject(device: device)
8783
8784 return ?
8785}
8786
8787@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008788cmd void vkDestroyDescriptorSetLayout(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008789 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008790 VkDescriptorSetLayout descriptorSetLayout,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008791 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008792 deviceObject := GetDevice(device)
8793 descriptorSetLayoutObject := GetDescriptorSetLayout(descriptorSetLayout)
8794 assert(descriptorSetLayoutObject.device == device)
8795
8796 State.DescriptorSetLayouts[descriptorSetLayout] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008797}
8798
8799@threadSafety("system")
8800cmd VkResult vkCreateDescriptorPool(
8801 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008802 const VkDescriptorPoolCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008803 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008804 VkDescriptorPool* pDescriptorPool) {
8805 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO)
8806 deviceObject := GetDevice(device)
8807
8808 descriptorPool := ?
8809 pDescriptorPool[0] = descriptorPool
8810 State.DescriptorPools[descriptorPool] = new!DescriptorPoolObject(device: device)
8811
8812 return ?
8813}
8814
8815@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008816cmd void vkDestroyDescriptorPool(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008817 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008818 VkDescriptorPool descriptorPool,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008819 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008820 deviceObject := GetDevice(device)
8821 descriptorPoolObject := GetDescriptorPool(descriptorPool)
8822 assert(descriptorPoolObject.device == device)
8823
8824 State.DescriptorPools[descriptorPool] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008825}
8826
8827@threadSafety("app")
8828cmd VkResult vkResetDescriptorPool(
8829 VkDevice device,
Jesse Hallfbf97b02015-11-20 14:17:03 -08008830 VkDescriptorPool descriptorPool,
8831 VkDescriptorPoolResetFlags flags) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008832 deviceObject := GetDevice(device)
8833 descriptorPoolObject := GetDescriptorPool(descriptorPool)
8834 assert(descriptorPoolObject.device == device)
8835
8836 return ?
8837}
8838
8839@threadSafety("app")
Jesse Hall3fbc8562015-11-29 22:10:52 -08008840cmd VkResult vkAllocateDescriptorSets(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008841 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008842 const VkDescriptorSetAllocateInfo* pAllocateInfo,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008843 VkDescriptorSet* pDescriptorSets) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008844 deviceObject := GetDevice(device)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008845 allocInfo := pAllocateInfo[0]
Jesse Hallfbf97b02015-11-20 14:17:03 -08008846 descriptorPoolObject := GetDescriptorPool(allocInfo.descriptorPool)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008847
Jesse Hall03b6fe12015-11-24 12:44:21 -08008848 setLayouts := allocInfo.pSetLayouts[0:allocInfo.setCount]
8849 for i in (0 .. allocInfo.setCount) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008850 setLayout := setLayouts[i]
8851 setLayoutObject := GetDescriptorSetLayout(setLayout)
8852 assert(setLayoutObject.device == device)
8853 }
8854
Jesse Hall03b6fe12015-11-24 12:44:21 -08008855 descriptorSets := pDescriptorSets[0:allocInfo.setCount]
8856 for i in (0 .. allocInfo.setCount) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008857 descriptorSet := ?
8858 descriptorSets[i] = descriptorSet
8859 State.DescriptorSets[descriptorSet] = new!DescriptorSetObject(device: device)
8860 }
8861
8862 return ?
8863}
8864
Jesse Hallf09c6b12015-08-15 19:54:28 -07008865cmd VkResult vkFreeDescriptorSets(
8866 VkDevice device,
8867 VkDescriptorPool descriptorPool,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008868 u32 descriptorSetCount,
Jesse Hallf09c6b12015-08-15 19:54:28 -07008869 const VkDescriptorSet* pDescriptorSets) {
8870 deviceObject := GetDevice(device)
8871 descriptorPoolObject := GetDescriptorPool(descriptorPool)
8872
Jesse Hall03b6fe12015-11-24 12:44:21 -08008873 descriptorSets := pDescriptorSets[0:descriptorSetCount]
8874 for i in (0 .. descriptorSetCount) {
Jesse Hallf09c6b12015-08-15 19:54:28 -07008875 descriptorSet := descriptorSets[i]
8876 descriptorSetObject := GetDescriptorSet(descriptorSet)
8877 assert(descriptorSetObject.device == device)
8878 State.DescriptorSets[descriptorSet] = null
8879 }
8880
8881 return ?
8882}
8883
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008884cmd void vkUpdateDescriptorSets(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008885 VkDevice device,
Jesse Hallb00daad2015-11-29 19:46:20 -08008886 u32 descriptorWriteCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008887 const VkWriteDescriptorSet* pDescriptorWrites,
Jesse Hallb00daad2015-11-29 19:46:20 -08008888 u32 descriptorCopyCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008889 const VkCopyDescriptorSet* pDescriptorCopies) {
8890 deviceObject := GetDevice(device)
8891
Jesse Hallb00daad2015-11-29 19:46:20 -08008892 descriptorWrites := pDescriptorWrites[0:descriptorWriteCount]
8893 for i in (0 .. descriptorWriteCount) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008894 descriptorWrite := descriptorWrites[i]
Jesse Hall3fbc8562015-11-29 22:10:52 -08008895 descriptorWriteObject := GetDescriptorSet(descriptorWrite.dstSet)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008896 assert(descriptorWriteObject.device == device)
8897 }
8898
Jesse Hallb00daad2015-11-29 19:46:20 -08008899 descriptorCopies := pDescriptorCopies[0:descriptorCopyCount]
8900 for i in (0 .. descriptorCopyCount) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008901 descriptorCopy := descriptorCopies[i]
Jesse Hall3fbc8562015-11-29 22:10:52 -08008902 descriptorCopyObject := GetDescriptorSet(descriptorCopy.dstSet)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008903 assert(descriptorCopyObject.device == device)
8904 }
Jesse Halld27f6aa2015-08-15 17:58:48 -07008905}
8906
8907
8908// Framebuffer functions
8909
8910@threadSafety("system")
8911cmd VkResult vkCreateFramebuffer(
8912 VkDevice device,
8913 const VkFramebufferCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008914 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008915 VkFramebuffer* pFramebuffer) {
8916 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO)
8917 deviceObject := GetDevice(device)
8918
8919 framebuffer := ?
8920 pFramebuffer[0] = framebuffer
8921 State.Framebuffers[framebuffer] = new!FramebufferObject(device: device)
8922
8923 return ?
8924}
8925
8926@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008927cmd void vkDestroyFramebuffer(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008928 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008929 VkFramebuffer framebuffer,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008930 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008931 deviceObject := GetDevice(device)
8932 framebufferObject := GetFramebuffer(framebuffer)
8933 assert(framebufferObject.device == device)
8934
8935 State.Framebuffers[framebuffer] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008936}
8937
8938
8939// Renderpass functions
8940
8941@threadSafety("system")
8942cmd VkResult vkCreateRenderPass(
8943 VkDevice device,
8944 const VkRenderPassCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008945 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008946 VkRenderPass* pRenderPass) {
8947 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO)
8948 deviceObject := GetDevice(device)
8949
8950 renderpass := ?
8951 pRenderPass[0] = renderpass
8952 State.RenderPasses[renderpass] = new!RenderPassObject(device: device)
8953
8954 return ?
8955}
8956
8957@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008958cmd void vkDestroyRenderPass(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008959 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008960 VkRenderPass renderPass,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008961 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008962 deviceObject := GetDevice(device)
8963 renderPassObject := GetRenderPass(renderPass)
8964 assert(renderPassObject.device == device)
8965
8966 State.RenderPasses[renderPass] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008967}
8968
Jesse Hall606a54e2015-11-19 22:17:28 -08008969cmd void vkGetRenderAreaGranularity(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008970 VkDevice device,
8971 VkRenderPass renderPass,
8972 VkExtent2D* pGranularity) {
8973 deviceObject := GetDevice(device)
8974 renderPassObject := GetRenderPass(renderPass)
8975
8976 granularity := ?
8977 pGranularity[0] = granularity
Jesse Halld27f6aa2015-08-15 17:58:48 -07008978}
8979
8980// Command pool functions
8981
8982cmd VkResult vkCreateCommandPool(
8983 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008984 const VkCommandPoolCreateInfo* pCreateInfo,
8985 const VkAllocationCallbacks* pAllocator,
8986 VkCommandPool* pCommandPool) {
8987 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008988 deviceObject := GetDevice(device)
8989
Jesse Hall3fbc8562015-11-29 22:10:52 -08008990 commandPool := ?
8991 pCommandPool[0] = commandPool
8992 State.CommandPools[commandPool] = new!CommandPoolObject(device: device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008993
8994 return ?
8995}
8996
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008997cmd void vkDestroyCommandPool(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008998 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008999 VkCommandPool commandPool,
9000 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07009001 deviceObject := GetDevice(device)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009002 commandPoolObject := GetCommandPool(commandPool)
9003 assert(commandPoolObject.device == device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009004
Jesse Hall3fbc8562015-11-29 22:10:52 -08009005 State.CommandPools[commandPool] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07009006}
9007
9008cmd VkResult vkResetCommandPool(
9009 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08009010 VkCommandPool commandPool,
9011 VkCommandPoolResetFlags flags) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07009012 deviceObject := GetDevice(device)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009013 commandPoolObject := GetCommandPool(commandPool)
9014 assert(commandPoolObject.device == device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009015
9016 return ?
9017}
9018
9019// Command buffer functions
9020
Jesse Hall3fbc8562015-11-29 22:10:52 -08009021macro void bindCommandBuffer(VkCommandBuffer commandBuffer, any obj, VkDeviceMemory memory) {
9022 memoryObject := GetDeviceMemory(memory)
9023 memoryObject.boundCommandBuffers[commandBuffer] = commandBuffer
Jesse Halld27f6aa2015-08-15 17:58:48 -07009024
Jesse Hall3fbc8562015-11-29 22:10:52 -08009025 commandBufferObject := GetCommandBuffer(commandBuffer)
9026 commandBufferObject.boundObjects[as!u64(obj)] = memory
Jesse Halld27f6aa2015-08-15 17:58:48 -07009027}
9028
Jesse Hall3fbc8562015-11-29 22:10:52 -08009029macro void unbindCommandBuffer(VkCommandBuffer commandBuffer, any obj, VkDeviceMemory memory) {
9030 memoryObject := GetDeviceMemory(memory)
9031 memoryObject.boundCommandBuffers[commandBuffer] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07009032
Jesse Hall3fbc8562015-11-29 22:10:52 -08009033 commandBufferObject := GetCommandBuffer(commandBuffer)
9034 commandBufferObject.boundObjects[as!u64(obj)] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07009035}
9036
9037@threadSafety("system")
Jesse Hall3fbc8562015-11-29 22:10:52 -08009038cmd VkResult vkAllocateCommandBuffers(
Jesse Halld27f6aa2015-08-15 17:58:48 -07009039 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08009040 const VkCommandBufferAllocateInfo* pAllocateInfo,
9041 VkCommandBuffer* pCommandBuffers) {
Jesse Hallf4ab2b12015-11-30 16:04:55 -08009042 assert(pAllocateInfo[0].sType == VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009043
Jesse Hall3dd678a2016-01-08 21:52:01 -08009044 count := pAllocateInfo[0].commandBufferCount
Jesse Hall3fbc8562015-11-29 22:10:52 -08009045 commandBuffers := pCommandBuffers[0:count]
Jesse Hallfbf97b02015-11-20 14:17:03 -08009046 for i in (0 .. count) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009047 commandBuffer := ?
9048 commandBuffers[i] = commandBuffer
9049 State.CommandBuffers[commandBuffer] = new!CommandBufferObject(device: device)
Jesse Hallfbf97b02015-11-20 14:17:03 -08009050 }
Jesse Halld27f6aa2015-08-15 17:58:48 -07009051
9052 return ?
9053}
9054
9055@threadSafety("system")
Jesse Hallfbf97b02015-11-20 14:17:03 -08009056cmd void vkFreeCommandBuffers(
Jesse Halld27f6aa2015-08-15 17:58:48 -07009057 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08009058 VkCommandPool commandPool,
Jesse Hall03b6fe12015-11-24 12:44:21 -08009059 u32 commandBufferCount,
Jesse Hall3fbc8562015-11-29 22:10:52 -08009060 const VkCommandBuffer* pCommandBuffers) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07009061 deviceObject := GetDevice(device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009062
Jesse Hall3fbc8562015-11-29 22:10:52 -08009063 commandBuffers := pCommandBuffers[0:commandBufferCount]
Jesse Hall03b6fe12015-11-24 12:44:21 -08009064 for i in (0 .. commandBufferCount) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009065 commandBufferObject := GetCommandBuffer(commandBuffers[i])
9066 assert(commandBufferObject.device == device)
Jesse Hallfbf97b02015-11-20 14:17:03 -08009067 // TODO: iterate over boundObjects and clear memory bindings
Jesse Hall3fbc8562015-11-29 22:10:52 -08009068 State.CommandBuffers[commandBuffers[i]] = null
Jesse Hallfbf97b02015-11-20 14:17:03 -08009069 }
Jesse Halld27f6aa2015-08-15 17:58:48 -07009070}
9071
9072@threadSafety("app")
9073cmd VkResult vkBeginCommandBuffer(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009074 VkCommandBuffer commandBuffer,
9075 const VkCommandBufferBeginInfo* pBeginInfo) {
9076 assert(pBeginInfo.sType == VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO)
9077 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009078
9079 // TODO: iterate over boundObjects and clear memory bindings
9080
9081 return ?
9082}
9083
9084@threadSafety("app")
9085cmd VkResult vkEndCommandBuffer(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009086 VkCommandBuffer commandBuffer) {
9087 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009088
9089 return ?
9090}
9091
9092@threadSafety("app")
9093cmd VkResult vkResetCommandBuffer(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009094 VkCommandBuffer commandBuffer,
9095 VkCommandBufferResetFlags flags) {
9096 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009097
9098 // TODO: iterate over boundObjects and clear memory bindings
9099
9100 return ?
9101}
9102
9103
9104// Command buffer building functions
9105
9106@threadSafety("app")
9107cmd void vkCmdBindPipeline(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009108 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009109 VkPipelineBindPoint pipelineBindPoint,
9110 VkPipeline pipeline) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009111 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009112 pipelineObject := GetPipeline(pipeline)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009113 assert(commandBufferObject.device == pipelineObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009114
Jesse Halld8bade02015-11-24 10:24:18 -08009115 queue := switch (pipelineBindPoint) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07009116 case VK_PIPELINE_BIND_POINT_COMPUTE: VK_QUEUE_COMPUTE_BIT
9117 case VK_PIPELINE_BIND_POINT_GRAPHICS: VK_QUEUE_GRAPHICS_BIT
9118 }
Jesse Hall3fbc8562015-11-29 22:10:52 -08009119 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, queue)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009120}
9121
9122@threadSafety("app")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009123cmd void vkCmdSetViewport(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009124 VkCommandBuffer commandBuffer,
Jesse Hallf9fa9a52016-01-08 16:08:51 -08009125 u32 firstViewport,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009126 u32 viewportCount,
9127 const VkViewport* pViewports) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009128 commandBufferObject := GetCommandBuffer(commandBuffer)
9129 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009130}
9131
9132@threadSafety("app")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009133cmd void vkCmdSetScissor(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009134 VkCommandBuffer commandBuffer,
Jesse Hallf9fa9a52016-01-08 16:08:51 -08009135 u32 firstScissor,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009136 u32 scissorCount,
9137 const VkRect2D* pScissors) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009138 commandBufferObject := GetCommandBuffer(commandBuffer)
9139 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009140}
9141
9142@threadSafety("app")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009143cmd void vkCmdSetLineWidth(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009144 VkCommandBuffer commandBuffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009145 f32 lineWidth) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009146 commandBufferObject := GetCommandBuffer(commandBuffer)
9147 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009148}
9149
9150@threadSafety("app")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009151cmd void vkCmdSetDepthBias(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009152 VkCommandBuffer commandBuffer,
Jesse Halla9bb62b2015-11-21 19:31:56 -08009153 f32 depthBiasConstantFactor,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009154 f32 depthBiasClamp,
Jesse Halla9bb62b2015-11-21 19:31:56 -08009155 f32 depthBiasSlopeFactor) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009156 commandBufferObject := GetCommandBuffer(commandBuffer)
9157 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009158}
Jesse Halld27f6aa2015-08-15 17:58:48 -07009159
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009160@threadSafety("app")
9161cmd void vkCmdSetBlendConstants(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009162 VkCommandBuffer commandBuffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009163 // TODO(jessehall): apic only supports 'const' on pointer types. Using
9164 // an annotation as a quick hack to pass this to the template without
9165 // having to modify the AST and semantic model.
Jesse Hallb00daad2015-11-29 19:46:20 -08009166 @readonly f32[4] blendConstants) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009167 commandBufferObject := GetCommandBuffer(commandBuffer)
9168 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009169}
9170
9171@threadSafety("app")
9172cmd void vkCmdSetDepthBounds(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009173 VkCommandBuffer commandBuffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009174 f32 minDepthBounds,
9175 f32 maxDepthBounds) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009176 commandBufferObject := GetCommandBuffer(commandBuffer)
9177 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009178}
9179
9180@threadSafety("app")
9181cmd void vkCmdSetStencilCompareMask(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009182 VkCommandBuffer commandBuffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009183 VkStencilFaceFlags faceMask,
Jesse Hall65ab5522015-11-30 00:07:16 -08009184 u32 compareMask) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009185 commandBufferObject := GetCommandBuffer(commandBuffer)
9186 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009187}
9188
9189@threadSafety("app")
9190cmd void vkCmdSetStencilWriteMask(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009191 VkCommandBuffer commandBuffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009192 VkStencilFaceFlags faceMask,
Jesse Hall65ab5522015-11-30 00:07:16 -08009193 u32 writeMask) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009194 commandBufferObject := GetCommandBuffer(commandBuffer)
9195 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009196}
9197
9198@threadSafety("app")
9199cmd void vkCmdSetStencilReference(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009200 VkCommandBuffer commandBuffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009201 VkStencilFaceFlags faceMask,
Jesse Hall65ab5522015-11-30 00:07:16 -08009202 u32 reference) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009203 commandBufferObject := GetCommandBuffer(commandBuffer)
9204 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009205}
9206
9207@threadSafety("app")
9208cmd void vkCmdBindDescriptorSets(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009209 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009210 VkPipelineBindPoint pipelineBindPoint,
9211 VkPipelineLayout layout,
9212 u32 firstSet,
Jesse Hall03b6fe12015-11-24 12:44:21 -08009213 u32 descriptorSetCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009214 const VkDescriptorSet* pDescriptorSets,
9215 u32 dynamicOffsetCount,
9216 const u32* pDynamicOffsets) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009217 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009218
Jesse Hall03b6fe12015-11-24 12:44:21 -08009219 descriptorSets := pDescriptorSets[0:descriptorSetCount]
9220 for i in (0 .. descriptorSetCount) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07009221 descriptorSet := descriptorSets[i]
9222 descriptorSetObject := GetDescriptorSet(descriptorSet)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009223 assert(commandBufferObject.device == descriptorSetObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009224 }
9225
9226 dynamicOffsets := pDynamicOffsets[0:dynamicOffsetCount]
9227 for i in (0 .. dynamicOffsetCount) {
9228 dynamicOffset := dynamicOffsets[i]
9229 }
9230
Jesse Halld8bade02015-11-24 10:24:18 -08009231 queue := switch (pipelineBindPoint) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07009232 case VK_PIPELINE_BIND_POINT_COMPUTE: VK_QUEUE_COMPUTE_BIT
9233 case VK_PIPELINE_BIND_POINT_GRAPHICS: VK_QUEUE_GRAPHICS_BIT
9234 }
Jesse Hall3fbc8562015-11-29 22:10:52 -08009235 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, queue)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009236}
9237
9238@threadSafety("app")
9239cmd void vkCmdBindIndexBuffer(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009240 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009241 VkBuffer buffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009242 VkDeviceSize offset,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009243 VkIndexType indexType) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009244 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009245 bufferObject := GetBuffer(buffer)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009246 assert(commandBufferObject.device == bufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009247
Jesse Hall3fbc8562015-11-29 22:10:52 -08009248 bindCommandBuffer(commandBuffer, buffer, bufferObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009249
Jesse Hall3fbc8562015-11-29 22:10:52 -08009250 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009251}
9252
9253@threadSafety("app")
9254cmd void vkCmdBindVertexBuffers(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009255 VkCommandBuffer commandBuffer,
Jesse Hallf9fa9a52016-01-08 16:08:51 -08009256 u32 firstBinding,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009257 u32 bindingCount,
9258 const VkBuffer* pBuffers,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009259 const VkDeviceSize* pOffsets) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009260 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009261
Jesse Hallf9fa9a52016-01-08 16:08:51 -08009262 // TODO: check if not [firstBinding:firstBinding+bindingCount]
Jesse Halld27f6aa2015-08-15 17:58:48 -07009263 buffers := pBuffers[0:bindingCount]
9264 offsets := pOffsets[0:bindingCount]
9265 for i in (0 .. bindingCount) {
9266 buffer := buffers[i]
9267 offset := offsets[i]
9268 bufferObject := GetBuffer(buffer)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009269 assert(commandBufferObject.device == bufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009270
Jesse Hall3fbc8562015-11-29 22:10:52 -08009271 bindCommandBuffer(commandBuffer, buffer, bufferObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009272 }
9273
Jesse Hall3fbc8562015-11-29 22:10:52 -08009274 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009275}
9276
9277@threadSafety("app")
9278cmd void vkCmdDraw(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009279 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009280 u32 vertexCount,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009281 u32 instanceCount,
9282 u32 firstVertex,
9283 u32 firstInstance) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009284 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009285
Jesse Hall3fbc8562015-11-29 22:10:52 -08009286 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009287}
9288
9289@threadSafety("app")
9290cmd void vkCmdDrawIndexed(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009291 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009292 u32 indexCount,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009293 u32 instanceCount,
9294 u32 firstIndex,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009295 s32 vertexOffset,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009296 u32 firstInstance) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009297 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009298
Jesse Hall3fbc8562015-11-29 22:10:52 -08009299 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009300}
9301
9302@threadSafety("app")
9303cmd void vkCmdDrawIndirect(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009304 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009305 VkBuffer buffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009306 VkDeviceSize offset,
Jesse Hall03b6fe12015-11-24 12:44:21 -08009307 u32 drawCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009308 u32 stride) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009309 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009310 bufferObject := GetBuffer(buffer)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009311 assert(commandBufferObject.device == bufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009312
Jesse Hall3fbc8562015-11-29 22:10:52 -08009313 bindCommandBuffer(commandBuffer, buffer, bufferObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009314
Jesse Hall3fbc8562015-11-29 22:10:52 -08009315 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009316}
9317
9318@threadSafety("app")
9319cmd void vkCmdDrawIndexedIndirect(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009320 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009321 VkBuffer buffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009322 VkDeviceSize offset,
Jesse Hall03b6fe12015-11-24 12:44:21 -08009323 u32 drawCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009324 u32 stride) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009325 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009326 bufferObject := GetBuffer(buffer)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009327 assert(commandBufferObject.device == bufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009328
Jesse Hall3fbc8562015-11-29 22:10:52 -08009329 bindCommandBuffer(commandBuffer, buffer, bufferObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009330
Jesse Hall3fbc8562015-11-29 22:10:52 -08009331 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009332}
9333
9334@threadSafety("app")
9335cmd void vkCmdDispatch(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009336 VkCommandBuffer commandBuffer,
Jesse Hallad250842017-03-10 18:35:38 -08009337 u32 groupCountX,
9338 u32 groupCountY,
9339 u32 groupCountZ) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009340 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009341
Jesse Hall3fbc8562015-11-29 22:10:52 -08009342 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_COMPUTE_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009343}
9344
9345@threadSafety("app")
9346cmd void vkCmdDispatchIndirect(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009347 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009348 VkBuffer buffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009349 VkDeviceSize offset) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009350 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009351 bufferObject := GetBuffer(buffer)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009352 assert(commandBufferObject.device == bufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009353
Jesse Hall3fbc8562015-11-29 22:10:52 -08009354 bindCommandBuffer(commandBuffer, buffer, bufferObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009355
Jesse Hall3fbc8562015-11-29 22:10:52 -08009356 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_COMPUTE_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009357}
9358
9359@threadSafety("app")
9360cmd void vkCmdCopyBuffer(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009361 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009362 VkBuffer srcBuffer,
Jesse Hall3fbc8562015-11-29 22:10:52 -08009363 VkBuffer dstBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009364 u32 regionCount,
9365 const VkBufferCopy* pRegions) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009366 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009367 srcBufferObject := GetBuffer(srcBuffer)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009368 dstBufferObject := GetBuffer(dstBuffer)
9369 assert(commandBufferObject.device == srcBufferObject.device)
9370 assert(commandBufferObject.device == dstBufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009371
9372 regions := pRegions[0:regionCount]
9373 for i in (0 .. regionCount) {
9374 region := regions[i]
9375 }
9376
Jesse Hall3fbc8562015-11-29 22:10:52 -08009377 bindCommandBuffer(commandBuffer, srcBuffer, srcBufferObject.memory)
9378 bindCommandBuffer(commandBuffer, dstBuffer, dstBufferObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009379
Jesse Hall65ab5522015-11-30 00:07:16 -08009380 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_TRANSFER_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009381}
9382
9383@threadSafety("app")
9384cmd void vkCmdCopyImage(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009385 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009386 VkImage srcImage,
9387 VkImageLayout srcImageLayout,
Jesse Hall3fbc8562015-11-29 22:10:52 -08009388 VkImage dstImage,
9389 VkImageLayout dstImageLayout,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009390 u32 regionCount,
9391 const VkImageCopy* pRegions) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009392 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009393 srcImageObject := GetImage(srcImage)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009394 dstImageObject := GetImage(dstImage)
9395 assert(commandBufferObject.device == srcImageObject.device)
9396 assert(commandBufferObject.device == dstImageObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009397
9398 regions := pRegions[0:regionCount]
9399 for i in (0 .. regionCount) {
9400 region := regions[i]
9401 }
9402
Jesse Hall3fbc8562015-11-29 22:10:52 -08009403 bindCommandBuffer(commandBuffer, srcImage, srcImageObject.memory)
9404 bindCommandBuffer(commandBuffer, dstImage, dstImageObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009405
Jesse Hall65ab5522015-11-30 00:07:16 -08009406 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_TRANSFER_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009407}
9408
9409@threadSafety("app")
9410cmd void vkCmdBlitImage(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009411 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009412 VkImage srcImage,
9413 VkImageLayout srcImageLayout,
Jesse Hall3fbc8562015-11-29 22:10:52 -08009414 VkImage dstImage,
9415 VkImageLayout dstImageLayout,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009416 u32 regionCount,
9417 const VkImageBlit* pRegions,
Jesse Hall23ff73f2015-11-29 14:36:39 -08009418 VkFilter filter) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009419 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009420 srcImageObject := GetImage(srcImage)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009421 dstImageObject := GetImage(dstImage)
9422 assert(commandBufferObject.device == srcImageObject.device)
9423 assert(commandBufferObject.device == dstImageObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009424
9425 regions := pRegions[0:regionCount]
9426 for i in (0 .. regionCount) {
9427 region := regions[i]
9428 }
9429
Jesse Hall3fbc8562015-11-29 22:10:52 -08009430 bindCommandBuffer(commandBuffer, srcImage, srcImageObject.memory)
9431 bindCommandBuffer(commandBuffer, dstImage, dstImageObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009432
Jesse Hall3fbc8562015-11-29 22:10:52 -08009433 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009434}
9435
9436@threadSafety("app")
9437cmd void vkCmdCopyBufferToImage(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009438 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009439 VkBuffer srcBuffer,
Jesse Hall3fbc8562015-11-29 22:10:52 -08009440 VkImage dstImage,
9441 VkImageLayout dstImageLayout,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009442 u32 regionCount,
9443 const VkBufferImageCopy* pRegions) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009444 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009445 srcBufferObject := GetBuffer(srcBuffer)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009446 dstImageObject := GetImage(dstImage)
9447 assert(commandBufferObject.device == srcBufferObject.device)
9448 assert(commandBufferObject.device == dstImageObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009449
9450 regions := pRegions[0:regionCount]
9451 for i in (0 .. regionCount) {
9452 region := regions[i]
9453 }
9454
Jesse Hall3fbc8562015-11-29 22:10:52 -08009455 bindCommandBuffer(commandBuffer, srcBuffer, srcBufferObject.memory)
9456 bindCommandBuffer(commandBuffer, dstImage, dstImageObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009457
Jesse Hall65ab5522015-11-30 00:07:16 -08009458 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_TRANSFER_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009459}
9460
9461@threadSafety("app")
9462cmd void vkCmdCopyImageToBuffer(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009463 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009464 VkImage srcImage,
9465 VkImageLayout srcImageLayout,
Jesse Hall3fbc8562015-11-29 22:10:52 -08009466 VkBuffer dstBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009467 u32 regionCount,
9468 const VkBufferImageCopy* pRegions) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009469 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009470 srcImageObject := GetImage(srcImage)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009471 dstBufferObject := GetBuffer(dstBuffer)
9472 assert(commandBufferObject.device == srcImageObject.device)
9473 assert(commandBufferObject.device == dstBufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009474
9475 regions := pRegions[0:regionCount]
9476 for i in (0 .. regionCount) {
9477 region := regions[i]
9478 }
9479
Jesse Hall3fbc8562015-11-29 22:10:52 -08009480 bindCommandBuffer(commandBuffer, srcImage, srcImageObject.memory)
9481 bindCommandBuffer(commandBuffer, dstBuffer, dstBufferObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009482
Jesse Hall65ab5522015-11-30 00:07:16 -08009483 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_TRANSFER_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009484}
9485
9486@threadSafety("app")
9487cmd void vkCmdUpdateBuffer(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009488 VkCommandBuffer commandBuffer,
9489 VkBuffer dstBuffer,
9490 VkDeviceSize dstOffset,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009491 VkDeviceSize dataSize,
Jesse Hall56d386a2016-07-26 15:20:40 -07009492 const void* pData) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009493 commandBufferObject := GetCommandBuffer(commandBuffer)
9494 dstBufferObject := GetBuffer(dstBuffer)
9495 assert(commandBufferObject.device == dstBufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009496
9497 data := pData[0:dataSize]
9498
Jesse Hall3fbc8562015-11-29 22:10:52 -08009499 bindCommandBuffer(commandBuffer, dstBuffer, dstBufferObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009500
Jesse Hall65ab5522015-11-30 00:07:16 -08009501 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_TRANSFER_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009502}
9503
9504@threadSafety("app")
9505cmd void vkCmdFillBuffer(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009506 VkCommandBuffer commandBuffer,
9507 VkBuffer dstBuffer,
9508 VkDeviceSize dstOffset,
Jesse Hallb00daad2015-11-29 19:46:20 -08009509 VkDeviceSize size,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009510 u32 data) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009511 commandBufferObject := GetCommandBuffer(commandBuffer)
9512 dstBufferObject := GetBuffer(dstBuffer)
9513 assert(commandBufferObject.device == dstBufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009514
Jesse Hall65ab5522015-11-30 00:07:16 -08009515 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_TRANSFER_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009516}
9517
9518@threadSafety("app")
9519cmd void vkCmdClearColorImage(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009520 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009521 VkImage image,
9522 VkImageLayout imageLayout,
9523 const VkClearColorValue* pColor,
9524 u32 rangeCount,
9525 const VkImageSubresourceRange* pRanges) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009526 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009527 imageObject := GetImage(image)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009528 assert(commandBufferObject.device == imageObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009529
9530 ranges := pRanges[0:rangeCount]
9531 for i in (0 .. rangeCount) {
9532 range := ranges[i]
9533 }
9534
Jesse Hall3fbc8562015-11-29 22:10:52 -08009535 bindCommandBuffer(commandBuffer, image, imageObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009536
Jesse Hall3fbc8562015-11-29 22:10:52 -08009537 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009538}
9539
9540@threadSafety("app")
9541cmd void vkCmdClearDepthStencilImage(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009542 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009543 VkImage image,
9544 VkImageLayout imageLayout,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009545 const VkClearDepthStencilValue* pDepthStencil,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009546 u32 rangeCount,
9547 const VkImageSubresourceRange* pRanges) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009548 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009549 imageObject := GetImage(image)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009550 assert(commandBufferObject.device == imageObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009551
9552 ranges := pRanges[0:rangeCount]
9553 for i in (0 .. rangeCount) {
9554 range := ranges[i]
9555 }
9556
Jesse Hall3fbc8562015-11-29 22:10:52 -08009557 bindCommandBuffer(commandBuffer, image, imageObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009558
Jesse Hall3fbc8562015-11-29 22:10:52 -08009559 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009560}
9561
9562@threadSafety("app")
Jesse Hallae38f732015-11-19 21:32:50 -08009563cmd void vkCmdClearAttachments(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009564 VkCommandBuffer commandBuffer,
Jesse Hallae38f732015-11-19 21:32:50 -08009565 u32 attachmentCount,
9566 const VkClearAttachment* pAttachments,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009567 u32 rectCount,
Jesse Halla15a4bf2015-11-19 22:48:02 -08009568 const VkClearRect* pRects) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009569 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009570
9571 rects := pRects[0:rectCount]
9572 for i in (0 .. rectCount) {
9573 rect := rects[i]
9574 }
9575
Jesse Hall3fbc8562015-11-29 22:10:52 -08009576 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009577}
9578
9579@threadSafety("app")
9580cmd void vkCmdResolveImage(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009581 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009582 VkImage srcImage,
9583 VkImageLayout srcImageLayout,
Jesse Hall3fbc8562015-11-29 22:10:52 -08009584 VkImage dstImage,
9585 VkImageLayout dstImageLayout,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009586 u32 regionCount,
9587 const VkImageResolve* pRegions) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009588 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009589 srcImageObject := GetImage(srcImage)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009590 dstImageObject := GetImage(dstImage)
9591 assert(commandBufferObject.device == srcImageObject.device)
9592 assert(commandBufferObject.device == dstImageObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009593
9594 regions := pRegions[0:regionCount]
9595 for i in (0 .. regionCount) {
9596 region := regions[i]
9597 }
9598
Jesse Hall3fbc8562015-11-29 22:10:52 -08009599 bindCommandBuffer(commandBuffer, srcImage, srcImageObject.memory)
9600 bindCommandBuffer(commandBuffer, dstImage, dstImageObject.memory)
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
9605@threadSafety("app")
9606cmd void vkCmdSetEvent(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009607 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009608 VkEvent event,
9609 VkPipelineStageFlags stageMask) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009610 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009611 eventObject := GetEvent(event)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009612 assert(commandBufferObject.device == eventObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009613}
9614
9615@threadSafety("app")
9616cmd void vkCmdResetEvent(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009617 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009618 VkEvent event,
9619 VkPipelineStageFlags stageMask) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009620 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009621 eventObject := GetEvent(event)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009622 assert(commandBufferObject.device == eventObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009623}
9624
9625@threadSafety("app")
9626cmd void vkCmdWaitEvents(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009627 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009628 u32 eventCount,
9629 const VkEvent* pEvents,
9630 VkPipelineStageFlags srcStageMask,
Jesse Hall3fbc8562015-11-29 22:10:52 -08009631 VkPipelineStageFlags dstStageMask,
9632 u32 memoryBarrierCount,
Jesse Hall3dd678a2016-01-08 21:52:01 -08009633 const VkMemoryBarrier* pMemoryBarriers,
9634 u32 bufferMemoryBarrierCount,
9635 const VkBufferMemoryBarrier* pBufferMemoryBarriers,
9636 u32 imageMemoryBarrierCount,
9637 const VkImageMemoryBarrier* pImageMemoryBarriers) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009638 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009639
9640 events := pEvents[0:eventCount]
9641 for i in (0 .. eventCount) {
9642 event := events[i]
9643 eventObject := GetEvent(event)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009644 assert(commandBufferObject.device == eventObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009645 }
9646
Jesse Hall3dd678a2016-01-08 21:52:01 -08009647 memoryBarriers := pMemoryBarriers[0:memoryBarrierCount]
Jesse Hall3fbc8562015-11-29 22:10:52 -08009648 for i in (0 .. memoryBarrierCount) {
Jesse Hall3dd678a2016-01-08 21:52:01 -08009649 memoryBarrier := memoryBarriers[i]
9650 }
9651 bufferMemoryBarriers := pBufferMemoryBarriers[0:bufferMemoryBarrierCount]
9652 for i in (0 .. bufferMemoryBarrierCount) {
9653 bufferMemoryBarrier := bufferMemoryBarriers[i]
9654 bufferObject := GetBuffer(bufferMemoryBarrier.buffer)
9655 assert(bufferObject.device == commandBufferObject.device)
9656 }
9657 imageMemoryBarriers := pImageMemoryBarriers[0:imageMemoryBarrierCount]
9658 for i in (0 .. imageMemoryBarrierCount) {
9659 imageMemoryBarrier := imageMemoryBarriers[i]
9660 imageObject := GetImage(imageMemoryBarrier.image)
9661 assert(imageObject.device == commandBufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009662 }
9663}
9664
9665@threadSafety("app")
9666cmd void vkCmdPipelineBarrier(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009667 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009668 VkPipelineStageFlags srcStageMask,
Jesse Hall3fbc8562015-11-29 22:10:52 -08009669 VkPipelineStageFlags dstStageMask,
Jesse Halldc6d36c2015-11-29 19:12:15 -08009670 VkDependencyFlags dependencyFlags,
Jesse Hall3fbc8562015-11-29 22:10:52 -08009671 u32 memoryBarrierCount,
Jesse Hall3dd678a2016-01-08 21:52:01 -08009672 const VkMemoryBarrier* pMemoryBarriers,
9673 u32 bufferMemoryBarrierCount,
9674 const VkBufferMemoryBarrier* pBufferMemoryBarriers,
9675 u32 imageMemoryBarrierCount,
9676 const VkImageMemoryBarrier* pImageMemoryBarriers) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009677 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009678
Jesse Hall3dd678a2016-01-08 21:52:01 -08009679 memoryBarriers := pMemoryBarriers[0:memoryBarrierCount]
Jesse Hall3fbc8562015-11-29 22:10:52 -08009680 for i in (0 .. memoryBarrierCount) {
Jesse Hall3dd678a2016-01-08 21:52:01 -08009681 memoryBarrier := memoryBarriers[i]
9682 }
9683 bufferMemoryBarriers := pBufferMemoryBarriers[0:bufferMemoryBarrierCount]
9684 for i in (0 .. bufferMemoryBarrierCount) {
9685 bufferMemoryBarrier := bufferMemoryBarriers[i]
9686 bufferObject := GetBuffer(bufferMemoryBarrier.buffer)
9687 assert(bufferObject.device == commandBufferObject.device)
9688 }
9689 imageMemoryBarriers := pImageMemoryBarriers[0:imageMemoryBarrierCount]
9690 for i in (0 .. imageMemoryBarrierCount) {
9691 imageMemoryBarrier := imageMemoryBarriers[i]
9692 imageObject := GetImage(imageMemoryBarrier.image)
9693 assert(imageObject.device == commandBufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009694 }
9695}
9696
9697@threadSafety("app")
9698cmd void vkCmdBeginQuery(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009699 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009700 VkQueryPool queryPool,
Jesse Hall3dd678a2016-01-08 21:52:01 -08009701 u32 query,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009702 VkQueryControlFlags flags) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009703 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009704 queryPoolObject := GetQueryPool(queryPool)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009705 assert(commandBufferObject.device == queryPoolObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009706}
9707
9708@threadSafety("app")
9709cmd void vkCmdEndQuery(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009710 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009711 VkQueryPool queryPool,
Jesse Hall3dd678a2016-01-08 21:52:01 -08009712 u32 query) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009713 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009714 queryPoolObject := GetQueryPool(queryPool)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009715 assert(commandBufferObject.device == queryPoolObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009716}
9717
9718@threadSafety("app")
9719cmd void vkCmdResetQueryPool(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009720 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009721 VkQueryPool queryPool,
Jesse Hallf9fa9a52016-01-08 16:08:51 -08009722 u32 firstQuery,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009723 u32 queryCount) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009724 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009725 queryPoolObject := GetQueryPool(queryPool)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009726 assert(commandBufferObject.device == queryPoolObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009727}
9728
9729@threadSafety("app")
9730cmd void vkCmdWriteTimestamp(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009731 VkCommandBuffer commandBuffer,
Jesse Hall6f39a6d2015-11-24 11:08:36 -08009732 VkPipelineStageFlagBits pipelineStage,
Jesse Halla3a7a1d2015-11-24 11:37:23 -08009733 VkQueryPool queryPool,
Jesse Hall3dd678a2016-01-08 21:52:01 -08009734 u32 query) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009735 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halla3a7a1d2015-11-24 11:37:23 -08009736 queryPoolObject := GetQueryPool(queryPool)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009737 assert(commandBufferObject.device == queryPoolObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009738}
9739
9740@threadSafety("app")
9741cmd void vkCmdCopyQueryPoolResults(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009742 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009743 VkQueryPool queryPool,
Jesse Hallf9fa9a52016-01-08 16:08:51 -08009744 u32 firstQuery,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009745 u32 queryCount,
Jesse Hall3fbc8562015-11-29 22:10:52 -08009746 VkBuffer dstBuffer,
9747 VkDeviceSize dstOffset,
Jesse Halla9bb62b2015-11-21 19:31:56 -08009748 VkDeviceSize stride,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009749 VkQueryResultFlags flags) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009750 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009751 queryPoolObject := GetQueryPool(queryPool)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009752 dstBufferObject := GetBuffer(dstBuffer)
9753 assert(commandBufferObject.device == queryPoolObject.device)
9754 assert(commandBufferObject.device == dstBufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009755}
9756
9757cmd void vkCmdPushConstants(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009758 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009759 VkPipelineLayout layout,
9760 VkShaderStageFlags stageFlags,
Jesse Hall03b6fe12015-11-24 12:44:21 -08009761 u32 offset,
9762 u32 size,
Jesse Hallf4ab2b12015-11-30 16:04:55 -08009763 const void* pValues) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009764 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009765 layoutObject := GetPipelineLayout(layout)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009766 assert(commandBufferObject.device == layoutObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009767}
9768
9769@threadSafety("app")
9770cmd void vkCmdBeginRenderPass(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009771 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009772 const VkRenderPassBeginInfo* pRenderPassBegin,
Jesse Hall65ab5522015-11-30 00:07:16 -08009773 VkSubpassContents contents) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009774 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009775 renderPassObject := GetRenderPass(pRenderPassBegin.renderPass)
9776 framebufferObject := GetFramebuffer(pRenderPassBegin.framebuffer)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009777 assert(commandBufferObject.device == renderPassObject.device)
9778 assert(commandBufferObject.device == framebufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009779
Jesse Hall3fbc8562015-11-29 22:10:52 -08009780 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009781}
9782
9783cmd void vkCmdNextSubpass(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009784 VkCommandBuffer commandBuffer,
Jesse Hall65ab5522015-11-30 00:07:16 -08009785 VkSubpassContents contents) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009786 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009787}
9788
9789@threadSafety("app")
9790cmd void vkCmdEndRenderPass(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009791 VkCommandBuffer commandBuffer) {
9792 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009793
Jesse Hall3fbc8562015-11-29 22:10:52 -08009794 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009795}
9796
9797cmd void vkCmdExecuteCommands(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009798 VkCommandBuffer commandBuffer,
Jesse Hall3dd678a2016-01-08 21:52:01 -08009799 u32 commandBufferCount,
Jesse Hall3fbc8562015-11-29 22:10:52 -08009800 const VkCommandBuffer* pCommandBuffers) {
9801 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009802
Jesse Hall3dd678a2016-01-08 21:52:01 -08009803 commandBuffers := pCommandBuffers[0:commandBufferCount]
9804 for i in (0 .. commandBufferCount) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009805 secondaryCommandBuffer := commandBuffers[i]
9806 secondaryCommandBufferObject := GetCommandBuffer(secondaryCommandBuffer)
9807 assert(commandBufferObject.device == secondaryCommandBufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009808 }
9809}
9810
Ian Elliott28bd2c32017-10-13 09:21:12 -06009811//@vulkan1_1 functions
Daniel Koch09f7bf92017-10-05 00:26:58 -04009812
Ian Elliott28bd2c32017-10-13 09:21:12 -06009813@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009814cmd VkResult vkEnumerateInstanceVersion(
9815 u32* pApiVersion) {
9816 return ?
9817}
9818
Ian Elliott28bd2c32017-10-13 09:21:12 -06009819@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009820cmd VkResult vkBindBufferMemory2(
9821 VkDevice device,
9822 u32 bindInfoCount,
9823 const VkBindBufferMemoryInfo* pBindInfos) {
9824 return ?
9825}
9826
Ian Elliott28bd2c32017-10-13 09:21:12 -06009827@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009828cmd VkResult vkBindImageMemory2(
9829 VkDevice device,
9830 u32 bindInfoCount,
9831 const VkBindImageMemoryInfo* pBindInfos) {
9832 return ?
9833}
9834
Ian Elliott28bd2c32017-10-13 09:21:12 -06009835@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009836cmd void vkGetDeviceGroupPeerMemoryFeatures(
9837 VkDevice device,
9838 u32 heapIndex,
9839 u32 localDeviceIndex,
9840 u32 remoteDeviceIndex,
9841 VkPeerMemoryFeatureFlags* pPeerMemoryFeatures) {
9842}
9843
Ian Elliott28bd2c32017-10-13 09:21:12 -06009844@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009845cmd void vkCmdSetDeviceMask(
9846 VkCommandBuffer commandBuffer,
9847 u32 deviceMask) {
9848}
9849
Ian Elliott28bd2c32017-10-13 09:21:12 -06009850@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009851cmd void vkCmdDispatchBase(
9852 VkCommandBuffer commandBuffer,
9853 u32 baseGroupX,
9854 u32 baseGroupY,
9855 u32 baseGroupZ,
9856 u32 groupCountX,
9857 u32 groupCountY,
9858 u32 groupCountZ) {
9859}
9860
9861@threadSafety("system")
Ian Elliott28bd2c32017-10-13 09:21:12 -06009862@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009863cmd VkResult vkEnumeratePhysicalDeviceGroups(
9864 VkInstance instance,
9865 u32* pPhysicalDeviceGroupCount,
9866 VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties) {
9867 instanceObject := GetInstance(instance)
9868
9869 physicalDeviceGroupCount := as!u32(?)
9870 pPhysicalDeviceGroupCount[0] = physicalDeviceGroupCount
9871 physicalDevices := pPhysicalDeviceGroupProperties[0:physicalDeviceGroupCount]
9872
9873 for i in (0 .. physicalDeviceGroupCount) {
9874 physicalDevice := ?
9875 physicalDevices[i] = physicalDevice
9876 if !(physicalDevice in State.PhysicalDevices) {
9877 State.PhysicalDevices[physicalDevice] = new!PhysicalDeviceObject(instance: instance)
9878 }
9879 }
9880
9881 return ?
9882}
9883
Ian Elliott28bd2c32017-10-13 09:21:12 -06009884@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009885cmd void vkGetImageMemoryRequirements2(
9886 VkDevice device,
9887 const VkImageMemoryRequirementsInfo2* pInfo,
9888 VkMemoryRequirements2* pMemoryRequirements) {
9889}
9890
Ian Elliott28bd2c32017-10-13 09:21:12 -06009891@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009892cmd void vkGetBufferMemoryRequirements2(
9893 VkDevice device,
9894 const VkBufferMemoryRequirementsInfo2* pInfo,
9895 VkMemoryRequirements2* pMemoryRequirements) {
9896}
9897
Ian Elliott28bd2c32017-10-13 09:21:12 -06009898@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009899cmd void vkGetImageSparseMemoryRequirements2(
9900 VkDevice device,
9901 const VkImageSparseMemoryRequirementsInfo2* pInfo,
9902 u32* pSparseMemoryRequirementCount,
9903 VkSparseImageMemoryRequirements2* pSparseMemoryRequirements) {
9904}
9905
Ian Elliott28bd2c32017-10-13 09:21:12 -06009906@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009907cmd void vkGetPhysicalDeviceFeatures2(
9908 VkPhysicalDevice physicalDevice,
9909 VkPhysicalDeviceFeatures2* pFeatures) {
9910}
9911
Ian Elliott28bd2c32017-10-13 09:21:12 -06009912@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009913cmd void vkGetPhysicalDeviceProperties2(
9914 VkPhysicalDevice physicalDevice,
9915 VkPhysicalDeviceProperties2* pProperties) {
9916}
9917
Ian Elliott28bd2c32017-10-13 09:21:12 -06009918@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009919cmd void vkGetPhysicalDeviceFormatProperties2(
9920 VkPhysicalDevice physicalDevice,
9921 VkFormat format,
9922 VkFormatProperties2* pFormatProperties) {
9923}
9924
Ian Elliott28bd2c32017-10-13 09:21:12 -06009925@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009926cmd VkResult vkGetPhysicalDeviceImageFormatProperties2(
9927 VkPhysicalDevice physicalDevice,
9928 const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo,
9929 VkImageFormatProperties2* pImageFormatProperties) {
9930 return ?
9931}
9932
Ian Elliott28bd2c32017-10-13 09:21:12 -06009933@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009934cmd void vkGetPhysicalDeviceQueueFamilyProperties2(
9935 VkPhysicalDevice physicalDevice,
9936 u32* pQueueFamilyPropertyCount,
9937 VkQueueFamilyProperties2* pQueueFamilyProperties) {
9938}
9939
Ian Elliott28bd2c32017-10-13 09:21:12 -06009940@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009941cmd void vkGetPhysicalDeviceMemoryProperties2(
9942 VkPhysicalDevice physicalDevice,
9943 VkPhysicalDeviceMemoryProperties2* pMemoryProperties) {
9944}
9945
Ian Elliott28bd2c32017-10-13 09:21:12 -06009946@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009947cmd void vkGetPhysicalDeviceSparseImageFormatProperties2(
9948 VkPhysicalDevice physicalDevice,
9949 const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo,
9950 u32* pPropertyCount,
9951 VkSparseImageFormatProperties2* pProperties) {
9952}
9953
Ian Elliott28bd2c32017-10-13 09:21:12 -06009954@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009955cmd void vkTrimCommandPool(
9956 VkDevice device,
9957 VkCommandPool commandPool,
9958 VkCommandPoolTrimFlags flags) {
9959}
9960
9961
Ian Elliott28bd2c32017-10-13 09:21:12 -06009962@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009963cmd void vkGetDeviceQueue2(
9964 VkDevice device,
9965 const VkDeviceQueueInfo2* pQueueInfo,
9966 VkQueue* pQueue) {
9967 deviceObject := GetDevice(device)
9968
9969 queue := ?
9970 pQueue[0] = queue
9971
9972 if !(queue in State.Queues) {
9973 State.Queues[queue] = new!QueueObject(device: device)
9974 }
9975}
9976
Ian Elliott28bd2c32017-10-13 09:21:12 -06009977@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009978cmd VkResult vkCreateSamplerYcbcrConversion(
9979 VkDevice device,
9980 const VkSamplerYcbcrConversionCreateInfo* pCreateInfo,
9981 const VkAllocationCallbacks* pAllocator,
9982 VkSamplerYcbcrConversion* pYcbcrConversion) {
9983 return ?
9984}
9985
Ian Elliott28bd2c32017-10-13 09:21:12 -06009986@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009987cmd void vkDestroySamplerYcbcrConversion(
9988 VkDevice device,
9989 VkSamplerYcbcrConversion ycbcrConversion,
9990 const VkAllocationCallbacks* pAllocator) {
9991}
9992
Ian Elliott28bd2c32017-10-13 09:21:12 -06009993@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009994cmd VkResult vkCreateDescriptorUpdateTemplate(
9995 VkDevice device,
9996 const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo,
9997 const VkAllocationCallbacks* pAllocator,
9998 VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate) {
9999 return ?
10000}
10001
Ian Elliott28bd2c32017-10-13 09:21:12 -060010002@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -040010003cmd void vkDestroyDescriptorUpdateTemplate(
10004 VkDevice device,
10005 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
10006 const VkAllocationCallbacks* pAllocator) {
10007}
10008
Ian Elliott28bd2c32017-10-13 09:21:12 -060010009@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -040010010cmd void vkUpdateDescriptorSetWithTemplate(
10011 VkDevice device,
10012 VkDescriptorSet descriptorSet,
10013 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
10014 const void* pData) {
10015}
10016
Ian Elliott28bd2c32017-10-13 09:21:12 -060010017@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -040010018cmd void vkGetPhysicalDeviceExternalBufferProperties(
10019 VkPhysicalDevice physicalDevice,
10020 const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo,
10021 VkExternalBufferProperties* pExternalBufferProperties) {
10022}
10023
Ian Elliott28bd2c32017-10-13 09:21:12 -060010024@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -040010025cmd void vkGetPhysicalDeviceExternalFenceProperties(
10026 VkPhysicalDevice physicalDevice,
10027 const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo,
10028 VkExternalFenceProperties* pExternalFenceProperties) {
10029}
10030
Ian Elliott28bd2c32017-10-13 09:21:12 -060010031@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -040010032cmd void vkGetPhysicalDeviceExternalSemaphoreProperties(
10033 VkPhysicalDevice physicalDevice,
10034 const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo,
10035 VkExternalSemaphoreProperties* pExternalSemaphoreProperties) {
10036}
10037
Ian Elliott28bd2c32017-10-13 09:21:12 -060010038@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -040010039cmd void vkGetDescriptorSetLayoutSupport(
10040 VkDevice device,
10041 const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
10042 VkDescriptorSetLayoutSupport* pSupport) {
10043}
10044
10045
Jesse Hallad250842017-03-10 18:35:38 -080010046@extension("VK_KHR_surface") // 1
Jesse Hall1356b0d2015-11-23 17:24:58 -080010047cmd void vkDestroySurfaceKHR(
10048 VkInstance instance,
Jesse Hall0e74f002015-11-30 11:37:59 -080010049 VkSurfaceKHR surface,
10050 const VkAllocationCallbacks* pAllocator) {
Jesse Hall1356b0d2015-11-23 17:24:58 -080010051 instanceObject := GetInstance(instance)
10052 surfaceObject := GetSurface(surface)
10053 assert(surfaceObject.instance == instance)
Michael Lentine88594d72015-11-12 12:49:45 -080010054
Jesse Hall1356b0d2015-11-23 17:24:58 -080010055 State.Surfaces[surface] = null
Jesse Hall2818f932015-11-19 21:19:17 -080010056}
10057
Jesse Hallad250842017-03-10 18:35:38 -080010058@extension("VK_KHR_surface") // 1
Jesse Halla6429252015-11-29 18:59:42 -080010059cmd VkResult vkGetPhysicalDeviceSurfaceSupportKHR(
Jesse Hall1356b0d2015-11-23 17:24:58 -080010060 VkPhysicalDevice physicalDevice,
10061 u32 queueFamilyIndex,
Jesse Hall1356b0d2015-11-23 17:24:58 -080010062 VkSurfaceKHR surface,
Jesse Hallb00daad2015-11-29 19:46:20 -080010063 VkBool32* pSupported) {
10064 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
Michael Lentine88594d72015-11-12 12:49:45 -080010065
10066 return ?
10067}
10068
Jesse Hallad250842017-03-10 18:35:38 -080010069@extension("VK_KHR_surface") // 1
Jesse Hallb00daad2015-11-29 19:46:20 -080010070cmd VkResult vkGetPhysicalDeviceSurfaceCapabilitiesKHR(
10071 VkPhysicalDevice physicalDevice,
10072 VkSurfaceKHR surface,
10073 VkSurfaceCapabilitiesKHR* pSurfaceCapabilities) {
10074 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
10075
10076 surfaceCapabilities := ?
10077 pSurfaceCapabilities[0] = surfaceCapabilities
10078
10079 return ?
10080}
10081
Jesse Hallad250842017-03-10 18:35:38 -080010082@extension("VK_KHR_surface") // 1
Jesse Hallb00daad2015-11-29 19:46:20 -080010083cmd VkResult vkGetPhysicalDeviceSurfaceFormatsKHR(
10084 VkPhysicalDevice physicalDevice,
Jesse Hall1356b0d2015-11-23 17:24:58 -080010085 VkSurfaceKHR surface,
Jesse Hall03b6fe12015-11-24 12:44:21 -080010086 u32* pSurfaceFormatCount,
Jesse Hall1356b0d2015-11-23 17:24:58 -080010087 VkSurfaceFormatKHR* pSurfaceFormats) {
Jesse Hallb00daad2015-11-29 19:46:20 -080010088 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
Michael Lentine88594d72015-11-12 12:49:45 -080010089
10090 count := as!u32(?)
Jesse Hall03b6fe12015-11-24 12:44:21 -080010091 pSurfaceFormatCount[0] = count
Michael Lentine88594d72015-11-12 12:49:45 -080010092 surfaceFormats := pSurfaceFormats[0:count]
10093
10094 for i in (0 .. count) {
10095 surfaceFormat := ?
10096 surfaceFormats[i] = surfaceFormat
10097 }
10098
10099 return ?
10100}
10101
Jesse Hallad250842017-03-10 18:35:38 -080010102@extension("VK_KHR_surface") // 1
Jesse Hallb00daad2015-11-29 19:46:20 -080010103cmd VkResult vkGetPhysicalDeviceSurfacePresentModesKHR(
10104 VkPhysicalDevice physicalDevice,
Jesse Hall1356b0d2015-11-23 17:24:58 -080010105 VkSurfaceKHR surface,
Jesse Hall03b6fe12015-11-24 12:44:21 -080010106 u32* pPresentModeCount,
Jesse Hall1356b0d2015-11-23 17:24:58 -080010107 VkPresentModeKHR* pPresentModes) {
Jesse Hallb00daad2015-11-29 19:46:20 -080010108 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
Michael Lentine88594d72015-11-12 12:49:45 -080010109
10110 count := as!u32(?)
Jesse Hall03b6fe12015-11-24 12:44:21 -080010111 pPresentModeCount[0] = count
Michael Lentine88594d72015-11-12 12:49:45 -080010112 presentModes := pPresentModes[0:count]
10113
10114 for i in (0 .. count) {
10115 presentMode := ?
10116 presentModes[i] = presentMode
10117 }
10118
10119 return ?
10120}
10121
Jesse Hallad250842017-03-10 18:35:38 -080010122@extension("VK_KHR_swapchain") // 2
Michael Lentine88594d72015-11-12 12:49:45 -080010123cmd VkResult vkCreateSwapchainKHR(
10124 VkDevice device,
10125 const VkSwapchainCreateInfoKHR* pCreateInfo,
Jesse Hall0e74f002015-11-30 11:37:59 -080010126 const VkAllocationCallbacks* pAllocator,
Michael Lentine88594d72015-11-12 12:49:45 -080010127 VkSwapchainKHR* pSwapchain) {
Jesse Hall1356b0d2015-11-23 17:24:58 -080010128 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR)
Michael Lentine88594d72015-11-12 12:49:45 -080010129 deviceObject := GetDevice(device)
10130
10131 swapchain := ?
10132 pSwapchain[0] = swapchain
10133 State.Swapchains[swapchain] = new!SwapchainObject(device: device)
10134
10135 return ?
10136}
10137
Jesse Hallad250842017-03-10 18:35:38 -080010138@extension("VK_KHR_swapchain") // 2
Jesse Hall1356b0d2015-11-23 17:24:58 -080010139cmd void vkDestroySwapchainKHR(
Michael Lentine88594d72015-11-12 12:49:45 -080010140 VkDevice device,
Jesse Hall0e74f002015-11-30 11:37:59 -080010141 VkSwapchainKHR swapchain,
10142 const VkAllocationCallbacks* pAllocator) {
Michael Lentine88594d72015-11-12 12:49:45 -080010143 deviceObject := GetDevice(device)
10144 swapchainObject := GetSwapchain(swapchain)
10145 assert(swapchainObject.device == device)
10146
10147 State.Swapchains[swapchain] = null
Michael Lentine88594d72015-11-12 12:49:45 -080010148}
10149
Jesse Hallad250842017-03-10 18:35:38 -080010150@extension("VK_KHR_swapchain") // 2
Michael Lentine88594d72015-11-12 12:49:45 -080010151cmd VkResult vkGetSwapchainImagesKHR(
10152 VkDevice device,
10153 VkSwapchainKHR swapchain,
Jesse Hall03b6fe12015-11-24 12:44:21 -080010154 u32* pSwapchainImageCount,
Michael Lentine88594d72015-11-12 12:49:45 -080010155 VkImage* pSwapchainImages) {
10156 deviceObject := GetDevice(device)
10157
10158 count := as!u32(?)
Jesse Hall03b6fe12015-11-24 12:44:21 -080010159 pSwapchainImageCount[0] = count
Michael Lentine88594d72015-11-12 12:49:45 -080010160 swapchainImages := pSwapchainImages[0:count]
10161
10162 for i in (0 .. count) {
10163 swapchainImage := ?
10164 swapchainImages[i] = swapchainImage
Jesse Hall1356b0d2015-11-23 17:24:58 -080010165 State.Images[swapchainImage] = new!ImageObject(device: device)
Michael Lentine88594d72015-11-12 12:49:45 -080010166 }
10167
10168 return ?
10169}
10170
Jesse Hallad250842017-03-10 18:35:38 -080010171@extension("VK_KHR_swapchain") // 2
Michael Lentine88594d72015-11-12 12:49:45 -080010172cmd VkResult vkAcquireNextImageKHR(
10173 VkDevice device,
10174 VkSwapchainKHR swapchain,
10175 u64 timeout,
10176 VkSemaphore semaphore,
Jesse Hall1356b0d2015-11-23 17:24:58 -080010177 VkFence fence,
Michael Lentine88594d72015-11-12 12:49:45 -080010178 u32* pImageIndex) {
10179 deviceObject := GetDevice(device)
10180 swapchainObject := GetSwapchain(swapchain)
10181
10182 imageIndex := ?
10183 pImageIndex[0] = imageIndex
10184
10185 return ?
10186}
10187
Jesse Hallad250842017-03-10 18:35:38 -080010188@extension("VK_KHR_swapchain") // 2
Michael Lentine88594d72015-11-12 12:49:45 -080010189cmd VkResult vkQueuePresentKHR(
10190 VkQueue queue,
Jesse Hallf4ab2b12015-11-30 16:04:55 -080010191 const VkPresentInfoKHR* pPresentInfo) {
Michael Lentine88594d72015-11-12 12:49:45 -080010192 queueObject := GetQueue(queue)
10193
10194 presentInfo := ?
10195 pPresentInfo[0] = presentInfo
10196
10197 return ?
10198}
10199
Ian Elliott28bd2c32017-10-13 09:21:12 -060010200@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -040010201@extension("VK_KHR_swapchain") // 2
10202cmd VkResult vkGetDeviceGroupPresentCapabilitiesKHR(
10203 VkDevice device,
10204 VkDeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities) {
10205 return ?
10206}
10207
Ian Elliott28bd2c32017-10-13 09:21:12 -060010208@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -040010209@extension("VK_KHR_swapchain") // 2
10210cmd VkResult vkGetDeviceGroupSurfacePresentModesKHR(
10211 VkDevice device,
10212 VkSurfaceKHR surface,
10213 VkDeviceGroupPresentModeFlagsKHR* pModes) {
10214 return ?
10215}
10216
Ian Elliott28bd2c32017-10-13 09:21:12 -060010217@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -040010218@extension("VK_KHR_swapchain") // 2
10219cmd VkResult vkGetPhysicalDevicePresentRectanglesKHR(
10220 VkPhysicalDevice physicalDevice,
10221 VkSurfaceKHR surface,
10222 u32* pRectCount,
10223 VkRect2D* pRects) {
10224 return ?
10225}
10226
Ian Elliott28bd2c32017-10-13 09:21:12 -060010227@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -040010228@extension("VK_KHR_swapchain") // 2
10229cmd VkResult vkAcquireNextImage2KHR(
10230 VkDevice device,
10231 const VkAcquireNextImageInfoKHR* pAcquireInfo,
10232 u32* pImageIndex) {
10233 return ?
10234}
10235
Jesse Hallad250842017-03-10 18:35:38 -080010236@extension("VK_KHR_display") // 3
Jesse Hall1356b0d2015-11-23 17:24:58 -080010237cmd VkResult vkGetPhysicalDeviceDisplayPropertiesKHR(
10238 VkPhysicalDevice physicalDevice,
Jesse Hall03b6fe12015-11-24 12:44:21 -080010239 u32* pPropertyCount,
Jesse Hall1356b0d2015-11-23 17:24:58 -080010240 VkDisplayPropertiesKHR* pProperties) {
10241 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
10242 return ?
10243}
10244
Jesse Hallad250842017-03-10 18:35:38 -080010245@extension("VK_KHR_display") // 3
Jesse Halla6429252015-11-29 18:59:42 -080010246cmd VkResult vkGetPhysicalDeviceDisplayPlanePropertiesKHR(
10247 VkPhysicalDevice physicalDevice,
10248 u32* pPropertyCount,
10249 VkDisplayPlanePropertiesKHR* pProperties) {
10250 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
10251 return ?
10252}
10253
Jesse Hallad250842017-03-10 18:35:38 -080010254@extension("VK_KHR_display") // 3
Jesse Halla6429252015-11-29 18:59:42 -080010255cmd VkResult vkGetDisplayPlaneSupportedDisplaysKHR(
10256 VkPhysicalDevice physicalDevice,
Jesse Hall3dd678a2016-01-08 21:52:01 -080010257 u32 planeIndex,
Jesse Hallf4ab2b12015-11-30 16:04:55 -080010258 u32* pDisplayCount,
10259 VkDisplayKHR* pDisplays) {
Jesse Halla6429252015-11-29 18:59:42 -080010260 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
10261 return ?
10262}
10263
Jesse Hallad250842017-03-10 18:35:38 -080010264@extension("VK_KHR_display") // 3
Jesse Hall1356b0d2015-11-23 17:24:58 -080010265cmd VkResult vkGetDisplayModePropertiesKHR(
10266 VkPhysicalDevice physicalDevice,
10267 VkDisplayKHR display,
Jesse Hall03b6fe12015-11-24 12:44:21 -080010268 u32* pPropertyCount,
10269 VkDisplayModePropertiesKHR* pProperties) {
Jesse Hall1356b0d2015-11-23 17:24:58 -080010270 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
10271 return ?
10272}
10273
Jesse Hallad250842017-03-10 18:35:38 -080010274@extension("VK_KHR_display") // 3
Jesse Hall1356b0d2015-11-23 17:24:58 -080010275cmd VkResult vkCreateDisplayModeKHR(
10276 VkPhysicalDevice physicalDevice,
10277 VkDisplayKHR display,
10278 const VkDisplayModeCreateInfoKHR* pCreateInfo,
Jesse Hall0e74f002015-11-30 11:37:59 -080010279 const VkAllocationCallbacks* pAllocator,
Jesse Hall1356b0d2015-11-23 17:24:58 -080010280 VkDisplayModeKHR* pMode) {
10281 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
10282 return ?
10283}
10284
Jesse Hallad250842017-03-10 18:35:38 -080010285@extension("VK_KHR_display") // 3
Jesse Halla6429252015-11-29 18:59:42 -080010286cmd VkResult vkGetDisplayPlaneCapabilitiesKHR(
Jesse Hall1356b0d2015-11-23 17:24:58 -080010287 VkPhysicalDevice physicalDevice,
Jesse Hall9ba8bc82015-11-30 16:22:16 -080010288 VkDisplayModeKHR mode,
Jesse Hall1356b0d2015-11-23 17:24:58 -080010289 u32 planeIndex,
Jesse Halla6429252015-11-29 18:59:42 -080010290 VkDisplayPlaneCapabilitiesKHR* pCapabilities) {
Jesse Hall1356b0d2015-11-23 17:24:58 -080010291 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
10292 return ?
10293}
10294
Jesse Hallad250842017-03-10 18:35:38 -080010295@extension("VK_KHR_display") // 3
Jesse Halla6429252015-11-29 18:59:42 -080010296cmd VkResult vkCreateDisplayPlaneSurfaceKHR(
10297 VkInstance instance,
10298 const VkDisplaySurfaceCreateInfoKHR* pCreateInfo,
Jesse Hall0e74f002015-11-30 11:37:59 -080010299 const VkAllocationCallbacks* pAllocator,
Jesse Halla6429252015-11-29 18:59:42 -080010300 VkSurfaceKHR* pSurface) {
10301 return ?
10302}
10303
Jesse Hallad250842017-03-10 18:35:38 -080010304@extension("VK_KHR_display_swapchain") // 4
Jesse Hall9ba8bc82015-11-30 16:22:16 -080010305cmd VkResult vkCreateSharedSwapchainsKHR(
10306 VkDevice device,
10307 u32 swapchainCount,
10308 const VkSwapchainCreateInfoKHR* pCreateInfos,
10309 const VkAllocationCallbacks* pAllocator,
10310 VkSwapchainKHR* pSwapchains) {
10311 return ?
10312}
10313
Jesse Hallad250842017-03-10 18:35:38 -080010314@extension("VK_KHR_xlib_surface") // 5
Jesse Halla6429252015-11-29 18:59:42 -080010315cmd VkResult vkCreateXlibSurfaceKHR(
Jesse Hall1356b0d2015-11-23 17:24:58 -080010316 VkInstance instance,
Jesse Hallf9fa9a52016-01-08 16:08:51 -080010317 const VkXlibSurfaceCreateInfoKHR* pCreateInfo,
Jesse Hall0e74f002015-11-30 11:37:59 -080010318 const VkAllocationCallbacks* pAllocator,
Jesse Hall1356b0d2015-11-23 17:24:58 -080010319 VkSurfaceKHR* pSurface) {
10320 instanceObject := GetInstance(instance)
10321 return ?
10322}
10323
Jesse Hallad250842017-03-10 18:35:38 -080010324@extension("VK_KHR_xlib_surface") // 5
Jesse Halla6429252015-11-29 18:59:42 -080010325cmd VkBool32 vkGetPhysicalDeviceXlibPresentationSupportKHR(
10326 VkPhysicalDevice physicalDevice,
10327 u32 queueFamilyIndex,
10328 platform.Display* dpy,
Jesse Hall65ab5522015-11-30 00:07:16 -080010329 platform.VisualID visualID) {
Jesse Halla6429252015-11-29 18:59:42 -080010330 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
10331 return ?
10332}
10333
Jesse Hallad250842017-03-10 18:35:38 -080010334@extension("VK_KHR_xcb_surface") // 6
Jesse Hallf9fa9a52016-01-08 16:08:51 -080010335cmd VkResult vkCreateXcbSurfaceKHR(
Jesse Hall1356b0d2015-11-23 17:24:58 -080010336 VkInstance instance,
Jesse Hallf9fa9a52016-01-08 16:08:51 -080010337 const VkXcbSurfaceCreateInfoKHR* pCreateInfo,
Jesse Hall0e74f002015-11-30 11:37:59 -080010338 const VkAllocationCallbacks* pAllocator,
Jesse Hall1356b0d2015-11-23 17:24:58 -080010339 VkSurfaceKHR* pSurface) {
10340 instanceObject := GetInstance(instance)
10341 return ?
10342}
10343
Jesse Hallad250842017-03-10 18:35:38 -080010344@extension("VK_KHR_xcb_surface") // 6
Jesse Halla6429252015-11-29 18:59:42 -080010345cmd VkBool32 vkGetPhysicalDeviceXcbPresentationSupportKHR(
10346 VkPhysicalDevice physicalDevice,
10347 u32 queueFamilyIndex,
10348 platform.xcb_connection_t* connection,
10349 platform.xcb_visualid_t visual_id) {
10350 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
10351 return ?
10352}
10353
Jesse Hallad250842017-03-10 18:35:38 -080010354@extension("VK_KHR_wayland_surface") // 7
Jesse Hall1356b0d2015-11-23 17:24:58 -080010355cmd VkResult vkCreateWaylandSurfaceKHR(
10356 VkInstance instance,
Jesse Hallf9fa9a52016-01-08 16:08:51 -080010357 const VkWaylandSurfaceCreateInfoKHR* pCreateInfo,
Jesse Hall0e74f002015-11-30 11:37:59 -080010358 const VkAllocationCallbacks* pAllocator,
Jesse Hall1356b0d2015-11-23 17:24:58 -080010359 VkSurfaceKHR* pSurface) {
10360 instanceObject := GetInstance(instance)
10361 return ?
10362}
10363
Jesse Hallad250842017-03-10 18:35:38 -080010364@extension("VK_KHR_wayland_surface") // 7
Jesse Halla6429252015-11-29 18:59:42 -080010365cmd VkBool32 vkGetPhysicalDeviceWaylandPresentationSupportKHR(
10366 VkPhysicalDevice physicalDevice,
10367 u32 queueFamilyIndex,
10368 platform.wl_display* display) {
10369 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
10370 return ?
10371}
10372
Jesse Hallad250842017-03-10 18:35:38 -080010373@extension("VK_KHR_mir_surface") // 8
Jesse Hall1356b0d2015-11-23 17:24:58 -080010374cmd VkResult vkCreateMirSurfaceKHR(
10375 VkInstance instance,
Jesse Hallf9fa9a52016-01-08 16:08:51 -080010376 const VkMirSurfaceCreateInfoKHR* pCreateInfo,
Jesse Hall0e74f002015-11-30 11:37:59 -080010377 const VkAllocationCallbacks* pAllocator,
Jesse Hall1356b0d2015-11-23 17:24:58 -080010378 VkSurfaceKHR* pSurface) {
10379 instanceObject := GetInstance(instance)
10380 return ?
10381}
10382
Jesse Hallad250842017-03-10 18:35:38 -080010383@extension("VK_KHR_mir_surface") // 8
Jesse Halla6429252015-11-29 18:59:42 -080010384cmd VkBool32 vkGetPhysicalDeviceMirPresentationSupportKHR(
10385 VkPhysicalDevice physicalDevice,
10386 u32 queueFamilyIndex,
10387 platform.MirConnection* connection) {
10388 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
10389 return ?
10390}
10391
Jesse Hallad250842017-03-10 18:35:38 -080010392@extension("VK_KHR_android_surface") // 9
Jesse Hall1356b0d2015-11-23 17:24:58 -080010393cmd VkResult vkCreateAndroidSurfaceKHR(
10394 VkInstance instance,
Jesse Hallf9fa9a52016-01-08 16:08:51 -080010395 const VkAndroidSurfaceCreateInfoKHR* pCreateInfo,
Jesse Hall0e74f002015-11-30 11:37:59 -080010396 const VkAllocationCallbacks* pAllocator,
Jesse Hall1356b0d2015-11-23 17:24:58 -080010397 VkSurfaceKHR* pSurface) {
10398 instanceObject := GetInstance(instance)
10399 return ?
10400}
10401
Jesse Hallad250842017-03-10 18:35:38 -080010402@extension("VK_KHR_win32_surface") // 10
Jesse Hall1356b0d2015-11-23 17:24:58 -080010403cmd VkResult vkCreateWin32SurfaceKHR(
10404 VkInstance instance,
Jesse Hallf9fa9a52016-01-08 16:08:51 -080010405 const VkWin32SurfaceCreateInfoKHR* pCreateInfo,
Jesse Hall0e74f002015-11-30 11:37:59 -080010406 const VkAllocationCallbacks* pAllocator,
Jesse Hall1356b0d2015-11-23 17:24:58 -080010407 VkSurfaceKHR* pSurface) {
10408 instanceObject := GetInstance(instance)
10409 return ?
10410}
10411
Jesse Hallad250842017-03-10 18:35:38 -080010412@extension("VK_KHR_win32_surface") // 10
Jesse Halla6429252015-11-29 18:59:42 -080010413cmd VkResult vkGetPhysicalDeviceWin32PresentationSupportKHR(
10414 VkPhysicalDevice physicalDevice,
10415 u32 queueFamilyIndex) {
Jesse Halle2948d82016-02-25 04:19:32 -080010416 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
Jesse Halla6429252015-11-29 18:59:42 -080010417 return ?
10418}
10419
Jesse Hallad250842017-03-10 18:35:38 -080010420@extension("VK_ANDROID_native_buffer") // 11
Jesse Halld1abd742017-02-09 21:45:51 -080010421@optional
Chia-I Wub262ddc2016-03-22 07:38:20 +080010422cmd VkResult vkGetSwapchainGrallocUsageANDROID(
10423 VkDevice device,
10424 VkFormat format,
10425 VkImageUsageFlags imageUsage,
Jesse Halld1abd742017-02-09 21:45:51 -080010426 s32* grallocUsage) {
Chia-I Wub262ddc2016-03-22 07:38:20 +080010427 return ?
10428}
10429
Jesse Hallad250842017-03-10 18:35:38 -080010430@extension("VK_ANDROID_native_buffer") // 11
Jesse Halld1abd742017-02-09 21:45:51 -080010431@optional
Chris Forbes8e4438b2016-12-07 16:26:49 +130010432cmd VkResult vkGetSwapchainGrallocUsage2ANDROID(
10433 VkDevice device,
10434 VkFormat format,
10435 VkImageUsageFlags imageUsage,
10436 VkSwapchainImageUsageFlagsANDROID swapchainImageUsage,
Jesse Halld1abd742017-02-09 21:45:51 -080010437 u64* grallocConsumerUsage,
10438 u64* grallocProducerUsage) {
Chris Forbes8e4438b2016-12-07 16:26:49 +130010439 return ?
10440}
10441
Jesse Hallad250842017-03-10 18:35:38 -080010442@extension("VK_ANDROID_native_buffer") // 11
Chia-I Wub262ddc2016-03-22 07:38:20 +080010443cmd VkResult vkAcquireImageANDROID(
10444 VkDevice device,
10445 VkImage image,
10446 int nativeFenceFd,
10447 VkSemaphore semaphore,
10448 VkFence fence) {
10449 return ?
10450}
10451
Jesse Hallad250842017-03-10 18:35:38 -080010452@extension("VK_ANDROID_native_buffer") // 11
Chia-I Wub262ddc2016-03-22 07:38:20 +080010453cmd VkResult vkQueueSignalReleaseImageANDROID(
10454 VkQueue queue,
10455 u32 waitSemaphoreCount,
10456 const VkSemaphore* pWaitSemaphores,
10457 VkImage image,
10458 int* pNativeFenceFd) {
10459 return ?
10460}
10461
Jesse Hallad250842017-03-10 18:35:38 -080010462@extension("VK_EXT_debug_report") // 12
10463@external type void* PFN_vkDebugReportCallbackEXT
10464@extension("VK_EXT_debug_report") // 12
10465@pfn cmd VkBool32 vkDebugReportCallbackEXT(
10466 VkDebugReportFlagsEXT flags,
10467 VkDebugReportObjectTypeEXT objectType,
10468 u64 object,
10469 platform.size_t location,
10470 s32 messageCode,
10471 const char* pLayerPrefix,
10472 const char* pMessage,
10473 void* pUserData) {
10474 return ?
10475}
10476
10477@extension("VK_EXT_debug_report") // 12
10478cmd VkResult vkCreateDebugReportCallbackEXT(
10479 VkInstance instance,
10480 const VkDebugReportCallbackCreateInfoEXT* pCreateInfo,
10481 const VkAllocationCallbacks* pAllocator,
10482 VkDebugReportCallbackEXT* pCallback) {
10483 return ?
10484}
10485
10486@extension("VK_EXT_debug_report") // 12
10487cmd void vkDestroyDebugReportCallbackEXT(
10488 VkInstance instance,
10489 VkDebugReportCallbackEXT callback,
10490 const VkAllocationCallbacks* pAllocator) {
10491}
10492
10493@extension("VK_EXT_debug_report") // 12
10494cmd void vkDebugReportMessageEXT(
10495 VkInstance instance,
10496 VkDebugReportFlagsEXT flags,
10497 VkDebugReportObjectTypeEXT objectType,
10498 u64 object,
10499 platform.size_t location,
10500 s32 messageCode,
10501 const char* pLayerPrefix,
10502 const char* pMessage) {
10503}
10504
10505@extension("VK_EXT_debug_marker") // 23
10506cmd VkResult vkDebugMarkerSetObjectTagEXT(
10507 VkDevice device,
Jesse Hall77726222017-09-19 14:49:27 -050010508 const VkDebugMarkerObjectTagInfoEXT* pTagInfo) {
Jesse Hallad250842017-03-10 18:35:38 -080010509 return ?
10510}
10511
10512@extension("VK_EXT_debug_marker") // 23
10513cmd VkResult vkDebugMarkerSetObjectNameEXT(
10514 VkDevice device,
Jesse Hall77726222017-09-19 14:49:27 -050010515 const VkDebugMarkerObjectNameInfoEXT* pNameInfo) {
Jesse Hallad250842017-03-10 18:35:38 -080010516 return ?
10517}
10518
10519@extension("VK_EXT_debug_marker") // 23
10520cmd void vkCmdDebugMarkerBeginEXT(
10521 VkCommandBuffer commandBuffer,
Jesse Hall77726222017-09-19 14:49:27 -050010522 const VkDebugMarkerMarkerInfoEXT* pMarkerInfo) {
Jesse Hallad250842017-03-10 18:35:38 -080010523}
10524
10525@extension("VK_EXT_debug_marker") // 23
10526cmd void vkCmdDebugMarkerEndEXT(
10527 VkCommandBuffer commandBuffer) {
10528}
10529
10530@extension("VK_EXT_debug_marker") // 23
10531cmd void vkCmdDebugMarkerInsertEXT(
10532 VkCommandBuffer commandBuffer,
Jesse Hall77726222017-09-19 14:49:27 -050010533 const VkDebugMarkerMarkerInfoEXT* pMarkerInfo) {
Jesse Hallad250842017-03-10 18:35:38 -080010534}
10535
Jesse Hallf47e8f82018-10-27 23:41:45 -070010536@extension("VK_EXT_transform_feedback") // 29
10537cmd void vkCmdBindTransformFeedbackBuffersEXT(
10538 VkCommandBuffer commandBuffer,
10539 u32 firstBinding,
10540 u32 bindingCount,
10541 const VkBuffer* pBuffers,
10542 const VkDeviceSize* pOffsets,
10543 const VkDeviceSize* pSizes) {
10544}
10545
10546@extension("VK_EXT_transform_feedback") // 29
10547cmd void vkCmdBeginTransformFeedbackEXT(
10548 VkCommandBuffer commandBuffer,
10549 u32 firstCounterBuffer,
10550 u32 counterBufferCount,
10551 const VkBuffer* pCounterBuffers,
10552 const VkDeviceSize* pCounterBufferOffsets) {
10553}
10554
10555@extension("VK_EXT_transform_feedback") // 29
10556cmd void vkCmdEndTransformFeedbackEXT(
10557 VkCommandBuffer commandBuffer,
10558 u32 firstCounterBuffer,
10559 u32 counterBufferCount,
10560 const VkBuffer* pCounterBuffers,
10561 const VkDeviceSize* pCounterBufferOffsets) {
10562}
10563
10564@extension("VK_EXT_transform_feedback") // 29
10565cmd void vkCmdBeginQueryIndexedEXT(
10566 VkCommandBuffer commandBuffer,
10567 VkQueryPool queryPool,
10568 u32 query,
10569 VkQueryControlFlags flags,
10570 u32 index) {
10571}
10572
10573@extension("VK_EXT_transform_feedback") // 29
10574cmd void vkCmdEndQueryIndexedEXT(
10575 VkCommandBuffer commandBuffer,
10576 VkQueryPool queryPool,
10577 u32 query,
10578 u32 index) {
10579}
10580
10581@extension("VK_EXT_transform_feedback") // 29
10582cmd void vkCmdDrawIndirectByteCountEXT(
10583 VkCommandBuffer commandBuffer,
10584 u32 instanceCount,
10585 u32 firstInstance,
10586 VkBuffer counterBuffer,
10587 VkDeviceSize counterBufferOffset,
10588 u32 counterOffset,
10589 u32 vertexStride) {
10590}
10591
Jesse Hallad250842017-03-10 18:35:38 -080010592@extension("VK_AMD_draw_indirect_count") // 34
10593cmd void vkCmdDrawIndirectCountAMD(
10594 VkCommandBuffer commandBuffer,
10595 VkBuffer buffer,
10596 VkDeviceSize offset,
10597 VkBuffer countBuffer,
10598 VkDeviceSize countBufferOffset,
10599 u32 maxDrawCount,
10600 u32 stride) {
10601}
10602
10603@extension("VK_AMD_draw_indirect_count") // 34
10604cmd void vkCmdDrawIndexedIndirectCountAMD(
10605 VkCommandBuffer commandBuffer,
10606 VkBuffer buffer,
10607 VkDeviceSize offset,
10608 VkBuffer countBuffer,
10609 VkDeviceSize countBufferOffset,
10610 u32 maxDrawCount,
10611 u32 stride) {
10612}
10613
Jesse Hall8c954d32018-01-17 22:06:20 -080010614@extension("VK_AMD_shader_info") // 43
10615cmd VkResult vkGetShaderInfoAMD(
10616 VkDevice device,
10617 VkPipeline pipeline,
10618 VkShaderStageFlagBits shaderStage,
10619 VkShaderInfoTypeAMD infoType,
10620 platform.size_t* pInfoSize,
10621 void* pInfo) {
10622 return ?
10623}
10624
Jesse Hallad250842017-03-10 18:35:38 -080010625@extension("VK_NV_external_memory_capabilities") // 56
10626cmd VkResult vkGetPhysicalDeviceExternalImageFormatPropertiesNV(
10627 VkPhysicalDevice physicalDevice,
10628 VkFormat format,
10629 VkImageType type,
10630 VkImageTiling tiling,
10631 VkImageUsageFlags usage,
10632 VkImageCreateFlags flags,
10633 VkExternalMemoryHandleTypeFlagsNV externalHandleType,
10634 VkExternalImageFormatPropertiesNV* pExternalImageFormatProperties) {
10635 return ?
10636}
10637
10638@extension("VK_NV_external_memory_win32") // 58
10639cmd VkResult vkGetMemoryWin32HandleNV(
10640 VkDevice device,
10641 VkDeviceMemory memory,
10642 VkExternalMemoryHandleTypeFlagsNV handleType,
10643 platform.HANDLE* pHandle) {
10644 return ?
10645}
10646
10647@extension("VK_KHR_get_physical_device_properties2") // 60
10648cmd void vkGetPhysicalDeviceFeatures2KHR(
10649 VkPhysicalDevice physicalDevice,
10650 VkPhysicalDeviceFeatures2KHR* pFeatures) {
10651}
10652
10653@extension("VK_KHR_get_physical_device_properties2") // 60
10654cmd void vkGetPhysicalDeviceProperties2KHR(
10655 VkPhysicalDevice physicalDevice,
10656 VkPhysicalDeviceProperties2KHR* pProperties) {
10657}
10658
10659@extension("VK_KHR_get_physical_device_properties2") // 60
10660cmd void vkGetPhysicalDeviceFormatProperties2KHR(
10661 VkPhysicalDevice physicalDevice,
10662 VkFormat format,
10663 VkFormatProperties2KHR* pFormatProperties) {
10664}
10665
10666@extension("VK_KHR_get_physical_device_properties2") // 60
10667cmd VkResult vkGetPhysicalDeviceImageFormatProperties2KHR(
10668 VkPhysicalDevice physicalDevice,
10669 const VkPhysicalDeviceImageFormatInfo2KHR* pImageFormatInfo,
10670 VkImageFormatProperties2KHR* pImageFormatProperties) {
10671 return ?
10672}
10673
10674@extension("VK_KHR_get_physical_device_properties2") // 60
10675cmd void vkGetPhysicalDeviceQueueFamilyProperties2KHR(
10676 VkPhysicalDevice physicalDevice,
10677 u32* pQueueFamilyPropertyCount,
10678 VkQueueFamilyProperties2KHR* pQueueFamilyProperties) {
10679}
10680
10681@extension("VK_KHR_get_physical_device_properties2") // 60
10682cmd void vkGetPhysicalDeviceMemoryProperties2KHR(
10683 VkPhysicalDevice physicalDevice,
10684 VkPhysicalDeviceMemoryProperties2KHR* pMemoryProperties) {
10685}
10686
10687@extension("VK_KHR_get_physical_device_properties2") // 60
10688cmd void vkGetPhysicalDeviceSparseImageFormatProperties2KHR(
10689 VkPhysicalDevice physicalDevice,
10690 const VkPhysicalDeviceSparseImageFormatInfo2KHR* pFormatInfo,
10691 u32* pPropertyCount,
10692 VkSparseImageFormatProperties2KHR* pProperties) {
10693}
10694
Daniel Koch09f7bf92017-10-05 00:26:58 -040010695@extension("VK_KHR_device_group") // 61
10696cmd void vkGetDeviceGroupPeerMemoryFeaturesKHR(
Jesse Hallad250842017-03-10 18:35:38 -080010697 VkDevice device,
10698 u32 heapIndex,
10699 u32 localDeviceIndex,
10700 u32 remoteDeviceIndex,
Daniel Koch09f7bf92017-10-05 00:26:58 -040010701 VkPeerMemoryFeatureFlagsKHR* pPeerMemoryFeatures) {
Jesse Hallad250842017-03-10 18:35:38 -080010702}
10703
Daniel Koch09f7bf92017-10-05 00:26:58 -040010704@extension("VK_KHR_device_group") // 61
10705cmd void vkCmdSetDeviceMaskKHR(
Jesse Hallad250842017-03-10 18:35:38 -080010706 VkCommandBuffer commandBuffer,
10707 u32 deviceMask) {
10708}
10709
Jesse Hallad250842017-03-10 18:35:38 -080010710
Daniel Koch09f7bf92017-10-05 00:26:58 -040010711@extension("VK_KHR_device_group") // 61
10712cmd void vkCmdDispatchBaseKHR(
Jesse Hallad250842017-03-10 18:35:38 -080010713 VkCommandBuffer commandBuffer,
10714 u32 baseGroupX,
10715 u32 baseGroupY,
10716 u32 baseGroupZ,
10717 u32 groupCountX,
10718 u32 groupCountY,
10719 u32 groupCountZ) {
10720}
10721
Jesse Hallad250842017-03-10 18:35:38 -080010722@extension("VK_NN_vi_surface") // 63
10723cmd VkResult vkCreateViSurfaceNN(
10724 VkInstance instance,
10725 const VkViSurfaceCreateInfoNN* pCreateInfo,
10726 const VkAllocationCallbacks* pAllocator,
10727 VkSurfaceKHR* pSurface) {
10728 return ?
10729}
10730
10731@extension("VK_KHR_maintenance1") // 70
10732cmd void vkTrimCommandPoolKHR(
10733 VkDevice device,
10734 VkCommandPool commandPool,
10735 VkCommandPoolTrimFlagsKHR flags) {
10736}
10737
Daniel Koch09f7bf92017-10-05 00:26:58 -040010738@extension("VK_KHR_device_group_creation") // 71
10739@threadSafety("system")
10740cmd VkResult vkEnumeratePhysicalDeviceGroupsKHR(
Jesse Hallad250842017-03-10 18:35:38 -080010741 VkInstance instance,
10742 u32* pPhysicalDeviceGroupCount,
Daniel Koch09f7bf92017-10-05 00:26:58 -040010743 VkPhysicalDeviceGroupPropertiesKHR* pPhysicalDeviceGroupProperties) {
10744 instanceObject := GetInstance(instance)
10745
10746 physicalDeviceGroupCount := as!u32(?)
10747 pPhysicalDeviceGroupCount[0] = physicalDeviceGroupCount
10748 physicalDevices := pPhysicalDeviceGroupProperties[0:physicalDeviceGroupCount]
10749
10750 for i in (0 .. physicalDeviceGroupCount) {
10751 physicalDevice := ?
10752 physicalDevices[i] = physicalDevice
10753 if !(physicalDevice in State.PhysicalDevices) {
10754 State.PhysicalDevices[physicalDevice] = new!PhysicalDeviceObject(instance: instance)
10755 }
10756 }
10757
Jesse Hallad250842017-03-10 18:35:38 -080010758 return ?
10759}
10760
Jesse Hall9492f992017-08-28 12:10:06 -070010761@extension("VK_KHR_external_memory_capabilities") // 72
10762cmd void vkGetPhysicalDeviceExternalBufferPropertiesKHR(
Jesse Hallad250842017-03-10 18:35:38 -080010763 VkPhysicalDevice physicalDevice,
Jesse Hall9492f992017-08-28 12:10:06 -070010764 const VkPhysicalDeviceExternalBufferInfoKHR* pExternalBufferInfo,
10765 VkExternalBufferPropertiesKHR* pExternalBufferProperties) {
Jesse Hallad250842017-03-10 18:35:38 -080010766}
10767
Jesse Hall9492f992017-08-28 12:10:06 -070010768@extension("VK_KHR_external_memory_win32") // 74
10769cmd VkResult vkGetMemoryWin32HandleKHR(
Jesse Hallad250842017-03-10 18:35:38 -080010770 VkDevice device,
Jesse Hall9492f992017-08-28 12:10:06 -070010771 const VkMemoryGetWin32HandleInfoKHR* pGetWin32HandleInfo,
Jesse Hallad250842017-03-10 18:35:38 -080010772 platform.HANDLE* pHandle) {
10773 return ?
10774}
10775
Jesse Hall9492f992017-08-28 12:10:06 -070010776@extension("VK_KHR_external_memory_win32") // 74
10777cmd VkResult vkGetMemoryWin32HandlePropertiesKHR(
Jesse Hallad250842017-03-10 18:35:38 -080010778 VkDevice device,
Jesse Hall9492f992017-08-28 12:10:06 -070010779 VkExternalMemoryHandleTypeFlagBitsKHR handleType,
Jesse Hallad250842017-03-10 18:35:38 -080010780 platform.HANDLE handle,
Jesse Hall9492f992017-08-28 12:10:06 -070010781 VkMemoryWin32HandlePropertiesKHR* pMemoryWin32HandleProperties) {
Jesse Hallad250842017-03-10 18:35:38 -080010782 return ?
10783}
10784
Jesse Hall9492f992017-08-28 12:10:06 -070010785@extension("VK_KHR_external_memory_fd") // 75
10786cmd VkResult vkGetMemoryFdKHR(
Jesse Hallad250842017-03-10 18:35:38 -080010787 VkDevice device,
Jesse Hall9492f992017-08-28 12:10:06 -070010788 const VkMemoryGetFdInfoKHR* pGetFdInfo,
Jesse Hallad250842017-03-10 18:35:38 -080010789 s32* pFd) {
10790 return ?
10791}
10792
Jesse Hall9492f992017-08-28 12:10:06 -070010793@extension("VK_KHR_external_memory_fd") // 75
10794cmd VkResult vkGetMemoryFdPropertiesKHR(
Jesse Hallad250842017-03-10 18:35:38 -080010795 VkDevice device,
Jesse Hall9492f992017-08-28 12:10:06 -070010796 VkExternalMemoryHandleTypeFlagBitsKHR handleType,
Jesse Hallad250842017-03-10 18:35:38 -080010797 s32 fd,
Jesse Hall9492f992017-08-28 12:10:06 -070010798 VkMemoryFdPropertiesKHR* pMemoryFdProperties) {
Jesse Hallad250842017-03-10 18:35:38 -080010799 return ?
10800}
10801
Jesse Hall9492f992017-08-28 12:10:06 -070010802@extension("VK_KHR_external_semaphore_capabilities") // 77
10803cmd void vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(
Jesse Hallad250842017-03-10 18:35:38 -080010804 VkPhysicalDevice physicalDevice,
Jesse Hall9492f992017-08-28 12:10:06 -070010805 const VkPhysicalDeviceExternalSemaphoreInfoKHR* pExternalSemaphoreInfo,
10806 VkExternalSemaphorePropertiesKHR* pExternalSemaphoreProperties) {
Jesse Hallad250842017-03-10 18:35:38 -080010807}
10808
Jesse Hall9492f992017-08-28 12:10:06 -070010809@extension("VK_KHR_external_semaphore_win32") // 79
10810cmd VkResult vkImportSemaphoreWin32HandleKHR(
Jesse Hallad250842017-03-10 18:35:38 -080010811 VkDevice device,
Jesse Hall9492f992017-08-28 12:10:06 -070010812 const VkImportSemaphoreWin32HandleInfoKHR* pImportSemaphoreWin32HandleInfo) {
Jesse Hallad250842017-03-10 18:35:38 -080010813 return ?
10814}
10815
Jesse Hall9492f992017-08-28 12:10:06 -070010816@extension("VK_KHR_external_semaphore_win32") // 79
10817cmd VkResult vkGetSemaphoreWin32HandleKHR(
Jesse Hallad250842017-03-10 18:35:38 -080010818 VkDevice device,
Jesse Hall9492f992017-08-28 12:10:06 -070010819 const VkSemaphoreGetWin32HandleInfoKHR* pGetWin32HandleInfo,
Jesse Hallad250842017-03-10 18:35:38 -080010820 platform.HANDLE* pHandle) {
10821 return ?
10822}
10823
Jesse Hall9492f992017-08-28 12:10:06 -070010824@extension("VK_KHR_external_semaphore_fd") // 80
10825cmd VkResult vkImportSemaphoreFdKHR(
Jesse Hallad250842017-03-10 18:35:38 -080010826 VkDevice device,
Jesse Hall9492f992017-08-28 12:10:06 -070010827 const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo) {
Jesse Hallad250842017-03-10 18:35:38 -080010828 return ?
10829}
10830
Jesse Hall9492f992017-08-28 12:10:06 -070010831@extension("VK_KHR_external_semaphore_fd") // 80
10832cmd VkResult vkGetSemaphoreFdKHR(
Jesse Hallad250842017-03-10 18:35:38 -080010833 VkDevice device,
Jesse Hall9492f992017-08-28 12:10:06 -070010834 const VkSemaphoreGetFdInfoKHR* pGetFdInfo,
Jesse Hallad250842017-03-10 18:35:38 -080010835 s32* pFd) {
10836 return ?
10837}
10838
10839@extension("VK_KHR_push_descriptor") // 81
10840cmd void vkCmdPushDescriptorSetKHR(
10841 VkCommandBuffer commandBuffer,
10842 VkPipelineBindPoint pipelineBindPoint,
10843 VkPipelineLayout layout,
10844 u32 set,
10845 u32 descriptorWriteCount,
10846 const VkWriteDescriptorSet* pDescriptorWrites) {
10847}
10848
Jesse Halla13a3cf2018-07-09 15:51:52 -070010849@extension("VK_EXT_conditional_rendering") // 82
10850cmd void vkCmdBeginConditionalRenderingEXT(
10851 VkCommandBuffer commandBuffer,
10852 const VkConditionalRenderingBeginInfoEXT* pConditionalRenderingBegin) {
10853}
10854
10855@extension("VK_EXT_conditional_rendering") // 82
10856cmd void vkCmdEndConditionalRenderingEXT(
10857 VkCommandBuffer commandBuffer) {
10858}
10859
Jesse Hallad250842017-03-10 18:35:38 -080010860@extension("VK_KHR_descriptor_update_template") // 86
10861cmd VkResult vkCreateDescriptorUpdateTemplateKHR(
10862 VkDevice device,
10863 const VkDescriptorUpdateTemplateCreateInfoKHR* pCreateInfo,
10864 const VkAllocationCallbacks* pAllocator,
10865 VkDescriptorUpdateTemplateKHR* pDescriptorUpdateTemplate) {
10866 return ?
10867}
10868
10869@extension("VK_KHR_descriptor_update_template") // 86
10870cmd void vkDestroyDescriptorUpdateTemplateKHR(
10871 VkDevice device,
10872 VkDescriptorUpdateTemplateKHR descriptorUpdateTemplate,
10873 const VkAllocationCallbacks* pAllocator) {
10874}
10875
10876@extension("VK_KHR_descriptor_update_template") // 86
10877cmd void vkUpdateDescriptorSetWithTemplateKHR(
10878 VkDevice device,
10879 VkDescriptorSet descriptorSet,
10880 VkDescriptorUpdateTemplateKHR descriptorUpdateTemplate,
10881 const void* pData) {
10882}
10883
10884@extension("VK_KHR_descriptor_update_template") // 86
10885cmd void vkCmdPushDescriptorSetWithTemplateKHR(
10886 VkCommandBuffer commandBuffer,
10887 VkDescriptorUpdateTemplateKHR descriptorUpdateTemplate,
10888 VkPipelineLayout layout,
10889 u32 set,
10890 const void* pData) {
10891}
10892
10893@extension("VK_NVX_device_generated_commands") // 87
10894cmd void vkCmdProcessCommandsNVX(
10895 VkCommandBuffer commandBuffer,
10896 const VkCmdProcessCommandsInfoNVX* pProcessCommandsInfo) {
10897}
10898
10899@extension("VK_NVX_device_generated_commands") // 87
10900cmd void vkCmdReserveSpaceForCommandsNVX(
10901 VkCommandBuffer commandBuffer,
10902 const VkCmdReserveSpaceForCommandsInfoNVX* pReserveSpaceInfo) {
10903}
10904
10905@extension("VK_NVX_device_generated_commands") // 87
10906cmd VkResult vkCreateIndirectCommandsLayoutNVX(
10907 VkDevice device,
10908 const VkIndirectCommandsLayoutCreateInfoNVX* pCreateInfo,
10909 const VkAllocationCallbacks* pAllocator,
10910 VkIndirectCommandsLayoutNVX* pIndirectCommandsLayout) {
10911 return ?
10912}
10913
10914@extension("VK_NVX_device_generated_commands") // 87
10915cmd void vkDestroyIndirectCommandsLayoutNVX(
10916 VkDevice device,
10917 VkIndirectCommandsLayoutNVX indirectCommandsLayout,
10918 const VkAllocationCallbacks* pAllocator) {
10919}
10920
10921@extension("VK_NVX_device_generated_commands") // 87
10922cmd VkResult vkCreateObjectTableNVX(
10923 VkDevice device,
10924 const VkObjectTableCreateInfoNVX* pCreateInfo,
10925 const VkAllocationCallbacks* pAllocator,
10926 VkObjectTableNVX* pObjectTable) {
10927 return ?
10928}
10929
10930@extension("VK_NVX_device_generated_commands") // 87
10931cmd void vkDestroyObjectTableNVX(
10932 VkDevice device,
10933 VkObjectTableNVX objectTable,
10934 const VkAllocationCallbacks* pAllocator) {
10935}
10936
10937@extension("VK_NVX_device_generated_commands") // 87
10938cmd VkResult vkRegisterObjectsNVX(
10939 VkDevice device,
10940 VkObjectTableNVX objectTable,
10941 u32 objectCount,
10942 const VkObjectTableEntryNVX* const* ppObjectTableEntries,
10943 const u32* pObjectIndices) {
10944 return ?
10945}
10946
10947@extension("VK_NVX_device_generated_commands") // 87
10948cmd VkResult vkUnregisterObjectsNVX(
10949 VkDevice device,
10950 VkObjectTableNVX objectTable,
10951 u32 objectCount,
10952 const VkObjectEntryTypeNVX* pObjectEntryTypes,
10953 const u32* pObjectIndices) {
10954 return ?
10955}
10956
10957@extension("VK_NVX_device_generated_commands") // 87
10958cmd void vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX(
10959 VkPhysicalDevice physicalDevice,
10960 VkDeviceGeneratedCommandsFeaturesNVX* pFeatures,
10961 VkDeviceGeneratedCommandsLimitsNVX* pLimits) {
10962}
10963
10964@extension("VK_NV_clip_space_w_scaling") // 88
10965cmd void vkCmdSetViewportWScalingNV(
10966 VkCommandBuffer commandBuffer,
10967 u32 firstViewport,
10968 u32 viewportCount,
10969 const VkViewportWScalingNV* pViewportWScalings) {
10970}
10971
10972@extension("VK_EXT_direct_mode_display") // 89
10973cmd VkResult vkReleaseDisplayEXT(
10974 VkPhysicalDevice physicalDevice,
10975 VkDisplayKHR display) {
10976 return ?
10977}
10978
10979@extension("VK_EXT_acquire_xlib_display") // 90
10980cmd VkResult vkAcquireXlibDisplayEXT(
10981 VkPhysicalDevice physicalDevice,
10982 platform.Display* dpy,
10983 VkDisplayKHR display) {
10984 return ?
10985}
10986
10987@extension("VK_EXT_acquire_xlib_display") // 90
10988cmd VkResult vkGetRandROutputDisplayEXT(
10989 VkPhysicalDevice physicalDevice,
10990 platform.Display* dpy,
10991 platform.RROutput rrOutput,
10992 VkDisplayKHR* pDisplay) {
10993 return ?
10994}
10995
10996@extension("VK_EXT_display_surface_counter") // 91
10997cmd VkResult vkGetPhysicalDeviceSurfaceCapabilities2EXT(
10998 VkPhysicalDevice physicalDevice,
10999 VkSurfaceKHR surface,
11000 VkSurfaceCapabilities2EXT* pSurfaceCapabilities) {
11001 return ?
11002}
11003
11004@extension("VK_EXT_display_control") // 92
11005cmd VkResult vkDisplayPowerControlEXT(
11006 VkDevice device,
11007 VkDisplayKHR display,
11008 const VkDisplayPowerInfoEXT* pDisplayPowerInfo) {
11009 return ?
11010}
11011
11012@extension("VK_EXT_display_control") // 92
11013cmd VkResult vkRegisterDeviceEventEXT(
11014 VkDevice device,
11015 const VkDeviceEventInfoEXT* pDeviceEventInfo,
11016 const VkAllocationCallbacks* pAllocator,
11017 VkFence* pFence) {
11018 return ?
11019}
11020
11021@extension("VK_EXT_display_control") // 92
11022cmd VkResult vkRegisterDisplayEventEXT(
11023 VkDevice device,
11024 VkDisplayKHR display,
11025 const VkDisplayEventInfoEXT* pDisplayEventInfo,
11026 const VkAllocationCallbacks* pAllocator,
11027 VkFence* pFence) {
11028 return ?
11029}
11030
11031@extension("VK_EXT_display_control") // 92
11032cmd VkResult vkGetSwapchainCounterEXT(
11033 VkDevice device,
11034 VkSwapchainKHR swapchain,
11035 VkSurfaceCounterFlagBitsEXT counter,
11036 u64* pCounterValue) {
11037 return ?
11038}
11039
11040@extension("VK_GOOGLE_display_timing") // 93
Ian Elliott4c8bb2a2016-12-29 11:07:26 -070011041cmd VkResult vkGetRefreshCycleDurationGOOGLE(
Jesse Hallfdc8ab32017-03-10 21:01:57 -080011042 VkDevice device,
11043 VkSwapchainKHR swapchain,
11044 VkRefreshCycleDurationGOOGLE* pDisplayTimingProperties) {
Ian Elliott4c8bb2a2016-12-29 11:07:26 -070011045 deviceObject := GetDevice(device)
11046 swapchainObject := GetSwapchain(swapchain)
11047
11048 displayTimingProperties := ?
11049 pDisplayTimingProperties[0] = displayTimingProperties
11050
11051 return ?
11052}
11053
Jesse Hallad250842017-03-10 18:35:38 -080011054@extension("VK_GOOGLE_display_timing") // 93
Ian Elliott4c8bb2a2016-12-29 11:07:26 -070011055cmd VkResult vkGetPastPresentationTimingGOOGLE(
Jesse Hallfdc8ab32017-03-10 21:01:57 -080011056 VkDevice device,
11057 VkSwapchainKHR swapchain,
11058 u32* pPresentationTimingCount,
11059 VkPastPresentationTimingGOOGLE* pPresentationTimings) {
Ian Elliott4c8bb2a2016-12-29 11:07:26 -070011060 return ?
11061}
11062
Jesse Hallad250842017-03-10 18:35:38 -080011063@extension("VK_EXT_discard_rectangles") // 100
11064cmd void vkCmdSetDiscardRectangleEXT(
Jesse Hall26763382016-05-20 07:13:52 -070011065 VkCommandBuffer commandBuffer,
Jesse Hallad250842017-03-10 18:35:38 -080011066 u32 firstDiscardRectangle,
11067 u32 discardRectangleCount,
11068 const VkRect2D* pDiscardRectangles) {
Jesse Hall26763382016-05-20 07:13:52 -070011069}
11070
Jesse Hallad250842017-03-10 18:35:38 -080011071@extension("VK_EXT_hdr_metadata") // 106
Jesse Hall889cd9a2017-02-25 22:12:23 -080011072cmd void vkSetHdrMetadataEXT(
Jesse Hallfdc8ab32017-03-10 21:01:57 -080011073 VkDevice device,
11074 u32 swapchainCount,
11075 const VkSwapchainKHR* pSwapchains,
11076 const VkHdrMetadataEXT* pMetadata) {
Jesse Hall889cd9a2017-02-25 22:12:23 -080011077}
11078
Jesse Halla13a3cf2018-07-09 15:51:52 -070011079@extension("VK_KHR_create_renderpass2") // 110
11080cmd VkResult vkCreateRenderPass2KHR(
11081 VkDevice device,
11082 const VkRenderPassCreateInfo2KHR* pCreateInfo,
11083 const VkAllocationCallbacks* pAllocator,
11084 VkRenderPass* pRenderPass) {
11085 return ?
11086}
11087
11088@extension("VK_KHR_create_renderpass2") // 110
11089cmd void vkCmdBeginRenderPass2KHR(
11090 VkCommandBuffer commandBuffer,
11091 const VkRenderPassBeginInfo* pRenderPassBegin,
11092 const VkSubpassBeginInfoKHR* pSubpassBeginInfo) {
11093}
11094
11095@extension("VK_KHR_create_renderpass2") // 110
11096cmd void vkCmdNextSubpass2KHR(
11097 VkCommandBuffer commandBuffer,
11098 const VkSubpassBeginInfoKHR* pSubpassBeginInfo,
11099 const VkSubpassEndInfoKHR* pSubpassEndInfo) {
11100}
11101
11102@extension("VK_KHR_create_renderpass2") // 110
11103cmd void vkCmdEndRenderPass2KHR(
11104 VkCommandBuffer commandBuffer,
11105 const VkSubpassEndInfoKHR* pSubpassEndInfo) {
11106}
11107
Jesse Hallad250842017-03-10 18:35:38 -080011108@extension("VK_KHR_shared_presentable_image") // 112
Chris Forbes2e12cb82017-01-18 11:45:17 +130011109cmd VkResult vkGetSwapchainStatusKHR(
11110 VkDevice device,
11111 VkSwapchainKHR swapchain) {
11112 return ?
11113}
11114
Jesse Hall9492f992017-08-28 12:10:06 -070011115@extension("VK_KHR_external_fence_capabilities") // 113
11116cmd void vkGetPhysicalDeviceExternalFencePropertiesKHR(
11117 VkPhysicalDevice physicalDevice,
11118 const VkPhysicalDeviceExternalFenceInfoKHR* pExternalFenceInfo,
11119 VkExternalFencePropertiesKHR* pExternalFenceProperties) {
11120}
11121
11122@extension("VK_KHR_external_fence_win32") // 115
11123cmd VkResult vkImportFenceWin32HandleKHR(
11124 VkDevice device,
11125 const VkImportFenceWin32HandleInfoKHR* pImportFenceWin32HandleInfo) {
11126 return ?
11127}
11128
11129@extension("VK_KHR_external_fence_win32") // 115
11130cmd VkResult vkGetFenceWin32HandleKHR(
11131 VkDevice device,
11132 const VkFenceGetWin32HandleInfoKHR* pGetWin32HandleInfo,
11133 platform.HANDLE* pHandle) {
11134 return ?
11135}
11136
11137@extension("VK_KHR_external_fence_fd") // 116
11138cmd VkResult vkImportFenceFdKHR(
11139 VkDevice device,
11140 const VkImportFenceFdInfoKHR* pImportFenceFdInfo) {
11141 return ?
11142}
11143
11144@extension("VK_KHR_external_fence_fd") // 116
11145cmd VkResult vkGetFenceFdKHR(
11146 VkDevice device,
11147 const VkFenceGetFdInfoKHR* pGetFdInfo,
11148 int* pFd) {
11149 return ?
11150}
11151
Jesse Hall05556b12017-05-18 17:40:25 -070011152@extension("VK_KHR_get_surface_capabilities2") // 120
Chris Forbese2d3ee12017-03-16 16:10:15 +130011153cmd VkResult vkGetPhysicalDeviceSurfaceCapabilities2KHR(
11154 VkPhysicalDevice physicalDevice,
11155 const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo,
11156 VkSurfaceCapabilities2KHR* pSurfaceCapabilities) {
11157 return ?
11158}
11159
Jesse Hall05556b12017-05-18 17:40:25 -070011160@extension("VK_KHR_get_surface_capabilities2") // 120
Chris Forbese2d3ee12017-03-16 16:10:15 +130011161cmd VkResult vkGetPhysicalDeviceSurfaceFormats2KHR(
11162 VkPhysicalDevice physicalDevice,
11163 const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo,
11164 u32* pSurfaceFormatCount,
11165 VkSurfaceFormat2KHR* pSurfaceFormats) {
11166 return ?
11167}
11168
Jesse Hall54f8d132018-04-18 08:16:59 -070011169@extension("VK_KHR_display_properties2") // 122
11170cmd VkResult vkGetPhysicalDeviceDisplayProperties2KHR(
11171 VkPhysicalDevice physicalDevice,
11172 u32* pPropertyCount,
11173 VkDisplayProperties2KHR* pProperties) {
11174 return ?
11175}
11176
11177@extension("VK_KHR_display_properties2") // 122
11178cmd VkResult vkGetPhysicalDeviceDisplayPlaneProperties2KHR(
11179 VkPhysicalDevice physicalDevice,
11180 u32* pPropertyCount,
11181 VkDisplayPlaneProperties2KHR* pProperties) {
11182 return ?
11183}
11184
11185@extension("VK_KHR_display_properties2") // 122
11186cmd VkResult vkGetDisplayModeProperties2KHR(
11187 VkPhysicalDevice physicalDevice,
11188 VkDisplayKHR display,
11189 u32* pPropertyCount,
11190 VkDisplayModeProperties2KHR* pProperties) {
11191 return ?
11192}
11193
11194@extension("VK_KHR_display_properties2") // 122
11195cmd VkResult vkGetDisplayPlaneCapabilities2KHR(
11196 VkPhysicalDevice physicalDevice,
11197 const VkDisplayPlaneInfo2KHR* pDisplayPlaneInfo,
11198 VkDisplayPlaneCapabilities2KHR* pCapabilities) {
11199 return ?
11200}
11201
Jesse Hallad250842017-03-10 18:35:38 -080011202@extension("VK_MVK_ios_surface") // 123
11203cmd VkResult vkCreateIOSSurfaceMVK(
11204 VkInstance instance,
11205 const VkIOSSurfaceCreateInfoMVK* pCreateInfo,
11206 const VkAllocationCallbacks* pAllocator,
11207 VkSurfaceKHR* pSurface) {
11208 return ?
11209}
11210
11211@extension("VK_MVK_macos_surface") // 124
11212cmd VkResult vkCreateMacOSSurfaceMVK(
11213 VkInstance instance,
11214 const VkMacOSSurfaceCreateInfoMVK* pCreateInfo,
11215 const VkAllocationCallbacks* pAllocator,
11216 VkSurfaceKHR* pSurface) {
11217 return ?
11218}
11219
Jesse Hall8c954d32018-01-17 22:06:20 -080011220@extension("VK_EXT_debug_utils") // 129
11221@external type void* PFN_vkDebugUtilsMessengerCallbackEXT
11222@extension("VK_EXT_debug_utils") // 129
11223@pfn cmd VkBool32 vkDebugUtilsMessengerCallbackEXT(
11224 VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity,
11225 VkDebugUtilsMessageTypeFlagsEXT messageType,
11226 const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData,
11227 void* pUserData) {
11228 return ?
11229}
11230
11231@extension("VK_EXT_debug_utils") // 129
11232cmd VkResult vkSetDebugUtilsObjectNameEXT(
11233 VkDevice device,
11234 const VkDebugUtilsObjectNameInfoEXT* pNameInfo) {
11235 return ?
11236}
Jesse Hall72e6a132018-04-06 13:00:44 -070011237
Jesse Hall8c954d32018-01-17 22:06:20 -080011238@extension("VK_EXT_debug_utils") // 129
11239cmd VkResult vkSetDebugUtilsObjectTagEXT(
11240 VkDevice device,
11241 const VkDebugUtilsObjectTagInfoEXT* pTagInfo) {
11242 return ?
11243}
Jesse Hall72e6a132018-04-06 13:00:44 -070011244
Jesse Hall8c954d32018-01-17 22:06:20 -080011245@extension("VK_EXT_debug_utils") // 129
11246cmd void vkQueueBeginDebugUtilsLabelEXT(
11247 VkQueue queue,
11248 const VkDebugUtilsLabelEXT* pLabelInfo) {
11249}
Jesse Hall72e6a132018-04-06 13:00:44 -070011250
Jesse Hall8c954d32018-01-17 22:06:20 -080011251@extension("VK_EXT_debug_utils") // 129
11252cmd void vkQueueEndDebugUtilsLabelEXT(VkQueue queue) {
11253}
Jesse Hall72e6a132018-04-06 13:00:44 -070011254
Jesse Hall8c954d32018-01-17 22:06:20 -080011255@extension("VK_EXT_debug_utils") // 129
11256cmd void vkQueueInsertDebugUtilsLabelEXT(
11257 VkQueue queue,
11258 const VkDebugUtilsLabelEXT* pLabelInfo) {
11259}
Jesse Hall72e6a132018-04-06 13:00:44 -070011260
Jesse Hall8c954d32018-01-17 22:06:20 -080011261@extension("VK_EXT_debug_utils") // 129
11262cmd void vkCmdBeginDebugUtilsLabelEXT(
11263 VkCommandBuffer commandBuffer,
11264 const VkDebugUtilsLabelEXT* pLabelInfo) {
11265}
Jesse Hall72e6a132018-04-06 13:00:44 -070011266
Jesse Hall8c954d32018-01-17 22:06:20 -080011267@extension("VK_EXT_debug_utils") // 129
11268cmd void vkCmdEndDebugUtilsLabelEXT(VkCommandBuffer commandBuffer) {
11269}
11270
11271@extension("VK_EXT_debug_utils") // 129
11272cmd void vkCmdInsertDebugUtilsLabelEXT(
11273 VkCommandBuffer commandBuffer,
11274 const VkDebugUtilsLabelEXT* pLabelInfo) {
11275}
11276
11277@extension("VK_EXT_debug_utils") // 129
11278cmd VkResult vkCreateDebugUtilsMessengerEXT(
11279 VkInstance instance,
11280 const VkDebugUtilsMessengerCreateInfoEXT* pCreateInfo,
11281 const VkAllocationCallbacks* pAllocator,
11282 VkDebugUtilsMessengerEXT* pMessenger) {
11283 return ?
11284}
11285
11286@extension("VK_EXT_debug_utils") // 129
11287cmd void vkDestroyDebugUtilsMessengerEXT(
11288 VkInstance instance,
11289 VkDebugUtilsMessengerEXT messenger,
11290 const VkAllocationCallbacks* pAllocator) {
11291}
11292
11293@extension("VK_EXT_debug_utils") // 129
11294cmd void vkSubmitDebugUtilsMessageEXT(
11295 VkInstance instance,
11296 VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity,
11297 VkDebugUtilsMessageTypeFlagsEXT messageTypes,
11298 const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData) {
11299}
11300
Jesse Hall36215a92018-01-18 15:04:37 -080011301@extension("VK_ANDROID_external_memory_android_hardware_buffer") // 130
11302@vulkan1_1 // extension requires 1.1, and should become non-optional when 1.1 does
11303cmd VkResult vkGetAndroidHardwareBufferPropertiesANDROID(
11304 VkDevice device,
11305 const platform.AHardwareBuffer* buffer,
11306 VkAndroidHardwareBufferPropertiesANDROID* pProperties) {
11307 return ?
11308}
11309
11310@extension("VK_ANDROID_external_memory_android_hardware_buffer") // 130
11311@vulkan1_1 // extension requires 1.1, and should become non-optional when 1.1 does
11312cmd VkResult vkGetMemoryAndroidHardwareBufferANDROID(
11313 VkDevice device,
11314 const VkMemoryGetAndroidHardwareBufferInfoANDROID* pInfo,
11315 platform.AHardwareBuffer** pBuffer) {
11316 return ?
11317}
11318
Jesse Hall77726222017-09-19 14:49:27 -050011319@extension("VK_EXT_sample_locations") // 144
11320cmd void vkCmdSetSampleLocationsEXT(
11321 VkCommandBuffer commandBuffer,
11322 const VkSampleLocationsInfoEXT* pSampleLocationsInfo) {
11323}
11324
11325@extension("VK_EXT_sample_locations") // 144
11326cmd void vkGetPhysicalDeviceMultisamplePropertiesEXT(
11327 VkPhysicalDevice physicalDevice,
11328 VkSampleCountFlagBits samples,
11329 VkMultisamplePropertiesEXT* pMultisampleProperties) {
11330}
11331
Jesse Hall9492f992017-08-28 12:10:06 -070011332@extension("VK_KHR_get_memory_requirements2") // 147
11333cmd void vkGetImageMemoryRequirements2KHR(
11334 VkDevice device,
11335 const VkImageMemoryRequirementsInfo2KHR* pInfo,
11336 VkMemoryRequirements2KHR* pMemoryRequirements) {
11337}
11338
11339@extension("VK_KHR_get_memory_requirements2") // 147
11340cmd void vkGetBufferMemoryRequirements2KHR(
11341 VkDevice device,
11342 const VkBufferMemoryRequirementsInfo2KHR* pInfo,
11343 VkMemoryRequirements2KHR* pMemoryRequirements) {
11344}
11345
11346@extension("VK_KHR_get_memory_requirements2") // 147
11347cmd void vkGetImageSparseMemoryRequirements2KHR(
11348 VkDevice device,
11349 const VkImageSparseMemoryRequirementsInfo2KHR* pInfo,
11350 u32* pSparseMemoryRequirementCount,
11351 VkSparseImageMemoryRequirements2KHR* pSparseMemoryRequirements) {
11352}
11353
Jesse Hall076f95d2017-09-20 11:34:47 -070011354@extension("VK_KHR_sampler_ycbcr_conversion") // 157
11355cmd VkResult vkCreateSamplerYcbcrConversionKHR(
11356 VkDevice device,
11357 const VkSamplerYcbcrConversionCreateInfoKHR* pCreateInfo,
11358 const VkAllocationCallbacks* pAllocator,
11359 VkSamplerYcbcrConversionKHR* pYcbcrConversion) {
11360 return ?
11361}
11362
11363@extension("VK_KHR_sampler_ycbcr_conversion") // 157
11364cmd void vkDestroySamplerYcbcrConversionKHR(
11365 VkDevice device,
11366 VkSamplerYcbcrConversionKHR ycbcrConversion,
11367 const VkAllocationCallbacks* pAllocator) {
11368}
11369
11370@extension("VK_KHR_bind_memory2") // 158
11371cmd VkResult vkBindBufferMemory2KHR(
11372 VkDevice device,
11373 u32 bindInfoCount,
11374 const VkBindBufferMemoryInfoKHR* pBindInfos) {
11375 return ?
11376}
11377
11378@extension("VK_KHR_bind_memory2") // 158
11379cmd VkResult vkBindImageMemory2KHR(
11380 VkDevice device,
11381 u32 bindInfoCount,
11382 const VkBindImageMemoryInfoKHR* pBindInfos) {
11383 return ?
11384}
11385
Jesse Hallf47e8f82018-10-27 23:41:45 -070011386@extension("VK_EXT_image_drm_format_modifier") // 159
11387cmd VkResult vkGetImageDrmFormatModifierPropertiesEXT(
11388 VkDevice device,
11389 VkImage image,
11390 VkImageDrmFormatModifierPropertiesEXT* pProperties) {
11391 return ?
11392}
11393
Jesse Hall77726222017-09-19 14:49:27 -050011394@extension("VK_EXT_validation_cache") // 161
11395cmd VkResult vkCreateValidationCacheEXT(
11396 VkDevice device,
11397 const VkValidationCacheCreateInfoEXT* pCreateInfo,
11398 const VkAllocationCallbacks* pAllocator,
11399 VkValidationCacheEXT* pValidationCache) {
11400 return ?
11401}
11402
11403@extension("VK_EXT_validation_cache") // 161
11404cmd void vkDestroyValidationCacheEXT(
11405 VkDevice device,
11406 VkValidationCacheEXT validationCache,
11407 const VkAllocationCallbacks* pAllocator) {
11408}
11409
11410@extension("VK_EXT_validation_cache") // 161
11411cmd VkResult vkMergeValidationCachesEXT(
11412 VkDevice device,
11413 VkValidationCacheEXT dstCache,
11414 u32 srcCacheCount,
11415 const VkValidationCacheEXT* pSrcCaches) {
11416 return ?
11417}
11418
11419@extension("VK_EXT_validation_cache") // 161
11420cmd VkResult vkGetValidationCacheDataEXT(
11421 VkDevice device,
11422 VkValidationCacheEXT validationCache,
11423 platform.size_t* pDataSize,
11424 void* pData) {
11425 return ?
11426}
11427
Jesse Hallb5297192018-09-22 20:52:13 +020011428@extension("VK_NV_shading_rate_image") // 165
11429cmd void vkCmdBindShadingRateImageNV(
11430 VkCommandBuffer commandBuffer,
11431 VkImageView imageView,
11432 VkImageLayout imageLayout) {
11433}
11434
11435@extension("VK_NV_shading_rate_image") // 165
11436cmd void vkCmdSetViewportShadingRatePaletteNV(
11437 VkCommandBuffer commandBuffer,
11438 u32 firstViewport,
11439 u32 viewportCount,
11440 const VkShadingRatePaletteNV* pShadingRatePalettes) {
11441}
11442
11443@extension("VK_NV_shading_rate_image") // 165
11444cmd void vkCmdSetCoarseSampleOrderNV(
11445 VkCommandBuffer commandBuffer,
11446 VkCoarseSampleOrderTypeNV sampleOrderType,
11447 u32 customSampleOrderCount,
11448 const VkCoarseSampleOrderCustomNV* pCustomSampleOrders) {
11449}
11450
11451@extension("VK_NVX_raytracing") // 166
11452cmd VkResult vkCreateAccelerationStructureNVX(
11453 VkDevice device,
11454 const VkAccelerationStructureCreateInfoNVX* pCreateInfo,
11455 const VkAllocationCallbacks* pAllocator,
11456 VkAccelerationStructureNVX* pAccelerationStructure) {
11457 return ?
11458}
11459
11460@extension("VK_NVX_raytracing") // 166
11461cmd void vkDestroyAccelerationStructureNVX(
11462 VkDevice device,
11463 VkAccelerationStructureNVX accelerationStructure,
11464 const VkAllocationCallbacks* pAllocator) {
11465}
11466
11467@extension("VK_NVX_raytracing") // 166
11468cmd void vkGetAccelerationStructureMemoryRequirementsNVX(
11469 VkDevice device,
11470 const VkAccelerationStructureMemoryRequirementsInfoNVX* pInfo,
11471 VkMemoryRequirements2KHR* pMemoryRequirements) {
11472}
11473
11474@extension("VK_NVX_raytracing") // 166
11475cmd void vkGetAccelerationStructureScratchMemoryRequirementsNVX(
11476 VkDevice device,
11477 const VkAccelerationStructureMemoryRequirementsInfoNVX* pInfo,
11478 VkMemoryRequirements2KHR* pMemoryRequirements) {
11479}
11480
11481@extension("VK_NVX_raytracing") // 166
11482cmd VkResult vkBindAccelerationStructureMemoryNVX(
11483 VkDevice device,
11484 u32 bindInfoCount,
11485 const VkBindAccelerationStructureMemoryInfoNVX* pBindInfos) {
11486 return ?
11487}
11488
11489@extension("VK_NVX_raytracing") // 166
11490cmd void vkCmdBuildAccelerationStructureNVX(
Jesse Hall2e6853c2018-10-02 14:05:37 -070011491 VkCommandBuffer commandBuffer,
11492 VkAccelerationStructureTypeNVX type,
11493 u32 instanceCount,
11494 VkBuffer instanceData,
11495 VkDeviceSize instanceOffset,
11496 u32 geometryCount,
11497 const VkGeometryNVX* pGeometries,
11498 VkBuildAccelerationStructureFlagsNVX flags,
11499 VkBool32 update,
11500 VkAccelerationStructureNVX dst,
11501 VkAccelerationStructureNVX src,
11502 VkBuffer scratch,
11503 VkDeviceSize scratchOffset) {
Jesse Hallb5297192018-09-22 20:52:13 +020011504}
11505
11506@extension("VK_NVX_raytracing") // 166
11507cmd void vkCmdCopyAccelerationStructureNVX(
Jesse Hall2e6853c2018-10-02 14:05:37 -070011508 VkCommandBuffer commandBuffer,
11509 VkAccelerationStructureNVX dst,
11510 VkAccelerationStructureNVX src,
11511 VkCopyAccelerationStructureModeNVX mode) {
Jesse Hallb5297192018-09-22 20:52:13 +020011512}
11513
11514@extension("VK_NVX_raytracing") // 166
11515cmd void vkCmdTraceRaysNVX(
Jesse Hall2e6853c2018-10-02 14:05:37 -070011516 VkCommandBuffer commandBuffer,
11517 VkBuffer raygenShaderBindingTableBuffer,
11518 VkDeviceSize raygenShaderBindingOffset,
11519 VkBuffer missShaderBindingTableBuffer,
11520 VkDeviceSize missShaderBindingOffset,
11521 VkDeviceSize missShaderBindingStride,
11522 VkBuffer hitShaderBindingTableBuffer,
11523 VkDeviceSize hitShaderBindingOffset,
11524 VkDeviceSize hitShaderBindingStride,
11525 u32 width,
11526 u32 height) {
Jesse Hallb5297192018-09-22 20:52:13 +020011527}
11528
11529@extension("VK_NVX_raytracing") // 166
11530cmd VkResult vkCreateRaytracingPipelinesNVX(
11531 VkDevice device,
11532 VkPipelineCache pipelineCache,
11533 u32 createInfoCount,
11534 const VkRaytracingPipelineCreateInfoNVX* pCreateInfos,
11535 const VkAllocationCallbacks* pAllocator,
11536 VkPipeline* pPipelines) {
11537 return ?
11538}
11539
11540@extension("VK_NVX_raytracing") // 166
11541cmd VkResult vkGetRaytracingShaderHandlesNVX(
Jesse Hall2e6853c2018-10-02 14:05:37 -070011542 VkDevice device,
11543 VkPipeline pipeline,
11544 u32 firstGroup,
11545 u32 groupCount,
11546 platform.size_t dataSize,
11547 void* pData) {
Jesse Hallb5297192018-09-22 20:52:13 +020011548 return ?
11549}
11550
11551@extension("VK_NVX_raytracing") // 166
11552cmd VkResult vkGetAccelerationStructureHandleNVX(
Jesse Hall2e6853c2018-10-02 14:05:37 -070011553 VkDevice device,
11554 VkAccelerationStructureNVX accelerationStructure,
11555 platform.size_t dataSize,
11556 void* pData) {
Jesse Hallb5297192018-09-22 20:52:13 +020011557 return ?
11558}
11559
11560@extension("VK_NVX_raytracing") // 166
11561cmd void vkCmdWriteAccelerationStructurePropertiesNVX(
Jesse Hall2e6853c2018-10-02 14:05:37 -070011562 VkCommandBuffer commandBuffer,
11563 VkAccelerationStructureNVX accelerationStructure,
11564 VkQueryType queryType,
11565 VkQueryPool queryPool,
11566 u32 query) {
Jesse Hallb5297192018-09-22 20:52:13 +020011567}
11568
11569@extension("VK_NVX_raytracing") // 166
11570cmd VkResult vkCompileDeferredNVX(
Jesse Hall2e6853c2018-10-02 14:05:37 -070011571 VkDevice device,
11572 VkPipeline pipeline,
11573 u32 shader) {
Jesse Hallb5297192018-09-22 20:52:13 +020011574 return ?
11575}
11576
Daniel Koch09f7bf92017-10-05 00:26:58 -040011577@extension("VK_KHR_maintenance3") // 169
11578cmd void vkGetDescriptorSetLayoutSupportKHR(
11579 VkDevice device,
11580 const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
11581 VkDescriptorSetLayoutSupportKHR* pSupport) {
11582}
11583
Jesse Hall54f8d132018-04-18 08:16:59 -070011584@extension("VK_KHR_draw_indirect_count") // 170
11585cmd void vkCmdDrawIndirectCountKHR(
11586 VkCommandBuffer commandBuffer,
11587 VkBuffer buffer,
11588 VkDeviceSize offset,
11589 VkBuffer countBuffer,
11590 VkDeviceSize countBufferOffset,
11591 u32 maxDrawCount,
11592 u32 stride) {
11593}
11594
11595@extension("VK_KHR_draw_indirect_count") // 170
11596cmd void vkCmdDrawIndexedIndirectCountKHR(
11597 VkCommandBuffer commandBuffer,
11598 VkBuffer buffer,
11599 VkDeviceSize offset,
11600 VkBuffer countBuffer,
11601 VkDeviceSize countBufferOffset,
11602 u32 maxDrawCount,
11603 u32 stride) {
11604}
11605
Jesse Hall8c954d32018-01-17 22:06:20 -080011606@extension("VK_EXT_external_memory_host") // 179
11607cmd VkResult vkGetMemoryHostPointerPropertiesEXT(
11608 VkDevice device,
11609 VkExternalMemoryHandleTypeFlagBits handleType,
11610 const void* pHostPointer,
11611 VkMemoryHostPointerPropertiesEXT* pMemoryHostPointerProperties) {
11612 return ?
11613}
11614
Jesse Hall72e6a132018-04-06 13:00:44 -070011615@extension("VK_AMD_buffer_marker") // 180
11616cmd void vkCmdWriteBufferMarkerAMD(
11617 VkCommandBuffer commandBuffer,
11618 VkPipelineStageFlagBits pipelineStage,
11619 VkBuffer dstBuffer,
11620 VkDeviceSize dstOffset,
11621 u32 marker) {
11622}
11623
Jesse Hallf47e8f82018-10-27 23:41:45 -070011624@extension("VK_EXT_calibrated_timestamps") // 185
11625cmd VkResult vkGetPhysicalDeviceCalibrateableTimeDomainsEXT(
11626 VkPhysicalDevice physicalDevice,
11627 u32* pTimeDomainCount,
11628 VkTimeDomainEXT* pTimeDomains) {
11629 return ?
11630}
11631
11632@extension("VK_EXT_calibrated_timestamps") // 185
11633cmd VkResult vkGetCalibratedTimestampsEXT(
11634 VkDevice device,
11635 u32 timestampCount,
11636 const VkCalibratedTimestampInfoEXT* pTimestampInfos,
11637 u64* pTimestamps,
11638 u64* pMaxDeviation) {
11639 return ?
11640}
11641
Jesse Hallb5297192018-09-22 20:52:13 +020011642@extension("VK_NV_mesh_shader") // 203
11643cmd void vkCmdDrawMeshTasksNV(
11644 VkCommandBuffer commandBuffer,
11645 u32 taskCount,
11646 u32 firstTask) {
11647}
11648
11649@extension("VK_NV_mesh_shader") // 203
11650cmd void vkCmdDrawMeshTasksIndirectNV(
11651 VkCommandBuffer commandBuffer,
11652 VkBuffer buffer,
11653 VkDeviceSize offset,
11654 u32 drawCount,
11655 u32 stride) {
11656}
11657
11658@extension("VK_NV_mesh_shader") // 203
11659cmd void vkCmdDrawMeshTasksIndirectCountNV(
11660 VkCommandBuffer commandBuffer,
11661 VkBuffer buffer,
11662 VkDeviceSize offset,
11663 VkBuffer countBuffer,
11664 VkDeviceSize countBufferOffset,
11665 u32 maxDrawCount,
11666 u32 stride) {
11667}
11668
11669@extension("VK_NV_scissor_exclusive") // 206
11670cmd void vkCmdSetExclusiveScissorNV(
11671 VkCommandBuffer commandBuffer,
11672 u32 firstExclusiveScissor,
11673 u32 exclusiveScissorCount,
11674 const VkRect2D* pExclusiveScissors) {
11675}
11676
Jesse Hall115df0c2018-07-30 12:00:59 -070011677@extension("VK_NV_device_diagnostic_checkpoints") // 207
11678cmd void vkCmdSetCheckpointNV(
11679 VkCommandBuffer commandBuffer,
11680 const void* pCheckpointMarker) {
11681}
11682
11683@extension("VK_NV_device_diagnostic_checkpoints") // 207
11684cmd void vkGetQueueCheckpointDataNV(
11685 VkQueue queue,
11686 u32* pCheckpointDataCount,
11687 VkCheckpointDataNV* pCheckpointData) {
11688}
11689
Jesse Hall497c46f2018-10-08 12:52:48 -070011690@extension("VK_FUCHSIA_imagepipe_surface") // 215
11691cmd VkResult vkCreateImagePipeSurfaceFUCHSIA(
11692 VkInstance instance,
11693 const VkImagePipeSurfaceCreateInfoFUCHSIA* pCreateInfo,
11694 const VkAllocationCallbacks* pAllocator,
11695 VkSurfaceKHR* pSurface) {
11696 return ?
11697}
11698
Jesse Hall115df0c2018-07-30 12:00:59 -070011699
Jesse Halld27f6aa2015-08-15 17:58:48 -070011700////////////////
11701// Validation //
11702////////////////
11703
11704extern void validate(string layerName, bool condition, string message)
11705
11706
11707/////////////////////////////
11708// Internal State Tracking //
11709/////////////////////////////
11710
11711StateObject State
11712
11713@internal class StateObject {
11714 // Dispatchable objects.
11715 map!(VkInstance, ref!InstanceObject) Instances
11716 map!(VkPhysicalDevice, ref!PhysicalDeviceObject) PhysicalDevices
11717 map!(VkDevice, ref!DeviceObject) Devices
11718 map!(VkQueue, ref!QueueObject) Queues
Jesse Hall3fbc8562015-11-29 22:10:52 -080011719 map!(VkCommandBuffer, ref!CommandBufferObject) CommandBuffers
Jesse Halld27f6aa2015-08-15 17:58:48 -070011720
11721 // Non-dispatchable objects.
11722 map!(VkDeviceMemory, ref!DeviceMemoryObject) DeviceMemories
11723 map!(VkBuffer, ref!BufferObject) Buffers
11724 map!(VkBufferView, ref!BufferViewObject) BufferViews
11725 map!(VkImage, ref!ImageObject) Images
11726 map!(VkImageView, ref!ImageViewObject) ImageViews
Jesse Halld27f6aa2015-08-15 17:58:48 -070011727 map!(VkShaderModule, ref!ShaderModuleObject) ShaderModules
Jesse Halld27f6aa2015-08-15 17:58:48 -070011728 map!(VkPipeline, ref!PipelineObject) Pipelines
11729 map!(VkPipelineLayout, ref!PipelineLayoutObject) PipelineLayouts
11730 map!(VkSampler, ref!SamplerObject) Samplers
11731 map!(VkDescriptorSet, ref!DescriptorSetObject) DescriptorSets
11732 map!(VkDescriptorSetLayout, ref!DescriptorSetLayoutObject) DescriptorSetLayouts
11733 map!(VkDescriptorPool, ref!DescriptorPoolObject) DescriptorPools
Jesse Halld27f6aa2015-08-15 17:58:48 -070011734 map!(VkFence, ref!FenceObject) Fences
11735 map!(VkSemaphore, ref!SemaphoreObject) Semaphores
11736 map!(VkEvent, ref!EventObject) Events
11737 map!(VkQueryPool, ref!QueryPoolObject) QueryPools
11738 map!(VkFramebuffer, ref!FramebufferObject) Framebuffers
11739 map!(VkRenderPass, ref!RenderPassObject) RenderPasses
11740 map!(VkPipelineCache, ref!PipelineCacheObject) PipelineCaches
Jesse Hall3fbc8562015-11-29 22:10:52 -080011741 map!(VkCommandPool, ref!CommandPoolObject) CommandPools
Jesse Hall1356b0d2015-11-23 17:24:58 -080011742 map!(VkSurfaceKHR, ref!SurfaceObject) Surfaces
Michael Lentine88594d72015-11-12 12:49:45 -080011743 map!(VkSwapchainKHR, ref!SwapchainObject) Swapchains
Jesse Halld27f6aa2015-08-15 17:58:48 -070011744}
11745
11746@internal class InstanceObject {
11747}
11748
11749@internal class PhysicalDeviceObject {
11750 VkInstance instance
11751}
11752
11753@internal class DeviceObject {
11754 VkPhysicalDevice physicalDevice
11755}
11756
11757@internal class QueueObject {
11758 VkDevice device
11759 VkQueueFlags flags
11760}
11761
Jesse Hall3fbc8562015-11-29 22:10:52 -080011762@internal class CommandBufferObject {
Jesse Halld27f6aa2015-08-15 17:58:48 -070011763 VkDevice device
11764 map!(u64, VkDeviceMemory) boundObjects
11765 VkQueueFlags queueFlags
11766}
11767
11768@internal class DeviceMemoryObject {
Jesse Hall3fbc8562015-11-29 22:10:52 -080011769 VkDevice device
11770 VkDeviceSize allocationSize
11771 map!(u64, VkDeviceSize) boundObjects
11772 map!(VkCommandBuffer, VkCommandBuffer) boundCommandBuffers
Jesse Halld27f6aa2015-08-15 17:58:48 -070011773}
11774
11775@internal class BufferObject {
11776 VkDevice device
Jesse Hall3fbc8562015-11-29 22:10:52 -080011777 VkDeviceMemory memory
11778 VkDeviceSize memoryOffset
Jesse Halld27f6aa2015-08-15 17:58:48 -070011779}
11780
11781@internal class BufferViewObject {
11782 VkDevice device
11783 VkBuffer buffer
11784}
11785
11786@internal class ImageObject {
11787 VkDevice device
Jesse Hall3fbc8562015-11-29 22:10:52 -080011788 VkDeviceMemory memory
11789 VkDeviceSize memoryOffset
Jesse Halld27f6aa2015-08-15 17:58:48 -070011790}
11791
11792@internal class ImageViewObject {
11793 VkDevice device
11794 VkImage image
11795}
11796
Jesse Halld27f6aa2015-08-15 17:58:48 -070011797@internal class ShaderObject {
11798 VkDevice device
11799}
11800
11801@internal class ShaderModuleObject {
11802 VkDevice device
11803}
11804
11805@internal class PipelineObject {
11806 VkDevice device
11807}
11808
11809@internal class PipelineLayoutObject {
11810 VkDevice device
11811}
11812
11813@internal class SamplerObject {
11814 VkDevice device
11815}
11816
11817@internal class DescriptorSetObject {
11818 VkDevice device
11819}
11820
11821@internal class DescriptorSetLayoutObject {
11822 VkDevice device
11823}
11824
11825@internal class DescriptorPoolObject {
11826 VkDevice device
11827}
11828
Jesse Halld27f6aa2015-08-15 17:58:48 -070011829@internal class FenceObject {
11830 VkDevice device
11831 bool signaled
11832}
11833
11834@internal class SemaphoreObject {
11835 VkDevice device
11836}
11837
11838@internal class EventObject {
11839 VkDevice device
11840}
11841
11842@internal class QueryPoolObject {
11843 VkDevice device
11844}
11845
11846@internal class FramebufferObject {
11847 VkDevice device
11848}
11849
11850@internal class RenderPassObject {
11851 VkDevice device
11852}
11853
11854@internal class PipelineCacheObject {
11855 VkDevice device
11856}
11857
Jesse Hall3fbc8562015-11-29 22:10:52 -080011858@internal class CommandPoolObject {
Jesse Halld27f6aa2015-08-15 17:58:48 -070011859 VkDevice device
11860}
11861
Jesse Hall1356b0d2015-11-23 17:24:58 -080011862@internal class SurfaceObject {
11863 VkInstance instance
11864}
11865
Michael Lentine88594d72015-11-12 12:49:45 -080011866@internal class SwapchainObject {
11867 VkDevice device
11868}
11869
Jesse Halld27f6aa2015-08-15 17:58:48 -070011870macro ref!InstanceObject GetInstance(VkInstance instance) {
11871 assert(instance in State.Instances)
11872 return State.Instances[instance]
11873}
11874
11875macro ref!PhysicalDeviceObject GetPhysicalDevice(VkPhysicalDevice physicalDevice) {
11876 assert(physicalDevice in State.PhysicalDevices)
11877 return State.PhysicalDevices[physicalDevice]
11878}
11879
11880macro ref!DeviceObject GetDevice(VkDevice device) {
11881 assert(device in State.Devices)
11882 return State.Devices[device]
11883}
11884
11885macro ref!QueueObject GetQueue(VkQueue queue) {
11886 assert(queue in State.Queues)
11887 return State.Queues[queue]
11888}
11889
Jesse Hall3fbc8562015-11-29 22:10:52 -080011890macro ref!CommandBufferObject GetCommandBuffer(VkCommandBuffer commandBuffer) {
11891 assert(commandBuffer in State.CommandBuffers)
11892 return State.CommandBuffers[commandBuffer]
Jesse Halld27f6aa2015-08-15 17:58:48 -070011893}
11894
Jesse Hall3fbc8562015-11-29 22:10:52 -080011895macro ref!DeviceMemoryObject GetDeviceMemory(VkDeviceMemory memory) {
11896 assert(memory in State.DeviceMemories)
11897 return State.DeviceMemories[memory]
Jesse Halld27f6aa2015-08-15 17:58:48 -070011898}
11899
11900macro ref!BufferObject GetBuffer(VkBuffer buffer) {
11901 assert(buffer in State.Buffers)
11902 return State.Buffers[buffer]
11903}
11904
11905macro ref!BufferViewObject GetBufferView(VkBufferView bufferView) {
11906 assert(bufferView in State.BufferViews)
11907 return State.BufferViews[bufferView]
11908}
11909
11910macro ref!ImageObject GetImage(VkImage image) {
11911 assert(image in State.Images)
11912 return State.Images[image]
11913}
11914
11915macro ref!ImageViewObject GetImageView(VkImageView imageView) {
11916 assert(imageView in State.ImageViews)
11917 return State.ImageViews[imageView]
11918}
11919
Jesse Halld27f6aa2015-08-15 17:58:48 -070011920macro ref!ShaderModuleObject GetShaderModule(VkShaderModule shaderModule) {
11921 assert(shaderModule in State.ShaderModules)
11922 return State.ShaderModules[shaderModule]
11923}
11924
11925macro ref!PipelineObject GetPipeline(VkPipeline pipeline) {
11926 assert(pipeline in State.Pipelines)
11927 return State.Pipelines[pipeline]
11928}
11929
11930macro ref!PipelineLayoutObject GetPipelineLayout(VkPipelineLayout pipelineLayout) {
11931 assert(pipelineLayout in State.PipelineLayouts)
11932 return State.PipelineLayouts[pipelineLayout]
11933}
11934
11935macro ref!SamplerObject GetSampler(VkSampler sampler) {
11936 assert(sampler in State.Samplers)
11937 return State.Samplers[sampler]
11938}
11939
11940macro ref!DescriptorSetObject GetDescriptorSet(VkDescriptorSet descriptorSet) {
11941 assert(descriptorSet in State.DescriptorSets)
11942 return State.DescriptorSets[descriptorSet]
11943}
11944
11945macro ref!DescriptorSetLayoutObject GetDescriptorSetLayout(VkDescriptorSetLayout descriptorSetLayout) {
11946 assert(descriptorSetLayout in State.DescriptorSetLayouts)
11947 return State.DescriptorSetLayouts[descriptorSetLayout]
11948}
11949
11950macro ref!DescriptorPoolObject GetDescriptorPool(VkDescriptorPool descriptorPool) {
11951 assert(descriptorPool in State.DescriptorPools)
11952 return State.DescriptorPools[descriptorPool]
11953}
11954
Jesse Halld27f6aa2015-08-15 17:58:48 -070011955macro ref!FenceObject GetFence(VkFence fence) {
11956 assert(fence in State.Fences)
11957 return State.Fences[fence]
11958}
11959
11960macro ref!SemaphoreObject GetSemaphore(VkSemaphore semaphore) {
11961 assert(semaphore in State.Semaphores)
11962 return State.Semaphores[semaphore]
11963}
11964
11965macro ref!EventObject GetEvent(VkEvent event) {
11966 assert(event in State.Events)
11967 return State.Events[event]
11968}
11969
11970macro ref!QueryPoolObject GetQueryPool(VkQueryPool queryPool) {
11971 assert(queryPool in State.QueryPools)
11972 return State.QueryPools[queryPool]
11973}
11974
11975macro ref!FramebufferObject GetFramebuffer(VkFramebuffer framebuffer) {
11976 assert(framebuffer in State.Framebuffers)
11977 return State.Framebuffers[framebuffer]
11978}
11979
11980macro ref!RenderPassObject GetRenderPass(VkRenderPass renderPass) {
11981 assert(renderPass in State.RenderPasses)
11982 return State.RenderPasses[renderPass]
11983}
11984
11985macro ref!PipelineCacheObject GetPipelineCache(VkPipelineCache pipelineCache) {
11986 assert(pipelineCache in State.PipelineCaches)
11987 return State.PipelineCaches[pipelineCache]
11988}
11989
Jesse Hall3fbc8562015-11-29 22:10:52 -080011990macro ref!CommandPoolObject GetCommandPool(VkCommandPool commandPool) {
11991 assert(commandPool in State.CommandPools)
11992 return State.CommandPools[commandPool]
Jesse Hallf09c6b12015-08-15 19:54:28 -070011993}
Michael Lentine88594d72015-11-12 12:49:45 -080011994
Jesse Hall1356b0d2015-11-23 17:24:58 -080011995macro ref!SurfaceObject GetSurface(VkSurfaceKHR surface) {
11996 assert(surface in State.Surfaces)
11997 return State.Surfaces[surface]
11998}
11999
Michael Lentine88594d72015-11-12 12:49:45 -080012000macro ref!SwapchainObject GetSwapchain(VkSwapchainKHR swapchain) {
12001 assert(swapchain in State.Swapchains)
12002 return State.Swapchains[swapchain]
12003}
Jesse Halld8bade02015-11-24 10:24:18 -080012004
12005macro VkQueueFlags AddQueueFlag(VkQueueFlags flags, VkQueueFlagBits bit) {
12006 return as!VkQueueFlags(as!u32(flags) | as!u32(bit))
12007}