blob: 57228104e2267555b61c815e856c0b4e506d1241 [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 Hall2e6853c2018-10-02 14:05:37 -070031define VERSION_PATCH 86
Jesse Halld27f6aa2015-08-15 17:58:48 -070032
33// API limits
Jesse Hall65ab5522015-11-30 00:07:16 -080034define VK_MAX_PHYSICAL_DEVICE_NAME_SIZE 256
35define VK_UUID_SIZE 16
36define VK_MAX_EXTENSION_NAME_SIZE 256
37define VK_MAX_DESCRIPTION_SIZE 256
38define VK_MAX_MEMORY_TYPES 32
39define VK_MAX_MEMORY_HEAPS 16 /// The maximum number of unique memory heaps, each of which supporting 1 or more memory types.
Ian Elliott28bd2c32017-10-13 09:21:12 -060040@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -040041define VK_MAX_DEVICE_GROUP_SIZE 32
Jesse Hall8c954d32018-01-17 22:06:20 -080042@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -040043define VK_LUID_SIZE 8
Jesse Hall8c954d32018-01-17 22:06:20 -080044@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -040045define VK_QUEUE_FAMILY_EXTERNAL -2
Jesse Hall8c954d32018-01-17 22:06:20 -080046@extension("VK_EXT_queue_family_foreign")
47define VK_QUEUE_FAMILY_FOREIGN_EXT -3
Jesse Hall2e6853c2018-10-02 14:05:37 -070048@extension("VK_MAX_DRIVER_NAME_SIZE_KHR") // 197
49define VK_MAX_DRIVER_NAME_SIZE_KHR 256
50@extension("VK_MAX_DRIVER_NAME_SIZE_KHR") // 197
51define VK_MAX_DRIVER_INFO_SIZE_KHR 256
Jesse Halld27f6aa2015-08-15 17:58:48 -070052
53// API keywords
54define VK_TRUE 1
55define VK_FALSE 0
Jesse Hall5ae3abb2015-10-08 14:00:22 -070056
57// API keyword, but needs special handling by some templates
58define NULL_HANDLE 0
Jesse Halld27f6aa2015-08-15 17:58:48 -070059
Jesse Halleb02c472017-02-24 15:13:45 -080060// 1
Jesse Hall33faaad2016-01-24 21:00:49 -080061@extension("VK_KHR_surface") define VK_KHR_SURFACE_SPEC_VERSION 25
Jesse Hall3e0dc8f2015-11-30 00:42:57 -080062@extension("VK_KHR_surface") define VK_KHR_SURFACE_EXTENSION_NAME "VK_KHR_surface"
Jesse Hall1356b0d2015-11-23 17:24:58 -080063
Jesse Halleb02c472017-02-24 15:13:45 -080064// 2
Daniel Koch09f7bf92017-10-05 00:26:58 -040065@extension("VK_KHR_swapchain") define VK_KHR_SWAPCHAIN_SPEC_VERSION 70
Jesse Hall3e0dc8f2015-11-30 00:42:57 -080066@extension("VK_KHR_swapchain") define VK_KHR_SWAPCHAIN_EXTENSION_NAME "VK_KHR_swapchain"
Jesse Hall1356b0d2015-11-23 17:24:58 -080067
Jesse Halleb02c472017-02-24 15:13:45 -080068// 3
Jesse Hall543a7ff2016-01-08 16:38:30 -080069@extension("VK_KHR_display") define VK_KHR_DISPLAY_SPEC_VERSION 21
Jesse Hall3e0dc8f2015-11-30 00:42:57 -080070@extension("VK_KHR_display") define VK_KHR_DISPLAY_EXTENSION_NAME "VK_KHR_display"
Jesse Hall1356b0d2015-11-23 17:24:58 -080071
Jesse Halleb02c472017-02-24 15:13:45 -080072// 4
Jesse Hall543a7ff2016-01-08 16:38:30 -080073@extension("VK_KHR_display_swapchain") define VK_KHR_DISPLAY_SWAPCHAIN_SPEC_VERSION 9
Jesse Hall0e74f002015-11-30 11:37:59 -080074@extension("VK_KHR_display_swapchain") define VK_KHR_DISPLAY_SWAPCHAIN_EXTENSION_NAME "VK_KHR_display_swapchain"
Jesse Hall1356b0d2015-11-23 17:24:58 -080075
Jesse Halleb02c472017-02-24 15:13:45 -080076// 5
Jesse Hall543a7ff2016-01-08 16:38:30 -080077@extension("VK_KHR_xlib_surface") define VK_KHR_XLIB_SURFACE_SPEC_VERSION 6
Jesse Hall3e0dc8f2015-11-30 00:42:57 -080078@extension("VK_KHR_xlib_surface") define VK_KHR_XLIB_SURFACE_NAME "VK_KHR_xlib_surface"
Jesse Hall1356b0d2015-11-23 17:24:58 -080079
Jesse Halleb02c472017-02-24 15:13:45 -080080// 6
Jesse Hall543a7ff2016-01-08 16:38:30 -080081@extension("VK_KHR_xcb_surface") define VK_KHR_XCB_SURFACE_SPEC_VERSION 6
Jesse Hall3e0dc8f2015-11-30 00:42:57 -080082@extension("VK_KHR_xcb_surface") define VK_KHR_XCB_SURFACE_NAME "VK_KHR_xcb_surface"
Jesse Hall1356b0d2015-11-23 17:24:58 -080083
Jesse Halleb02c472017-02-24 15:13:45 -080084// 7
Jesse Hallfdc8ab32017-03-10 21:01:57 -080085@extension("VK_KHR_wayland_surface") define VK_KHR_WAYLAND_SURFACE_SPEC_VERSION 6
Jesse Hall3e0dc8f2015-11-30 00:42:57 -080086@extension("VK_KHR_wayland_surface") define VK_KHR_WAYLAND_SURFACE_NAME "VK_KHR_wayland_surface"
Jesse Hall1356b0d2015-11-23 17:24:58 -080087
Jesse Halleb02c472017-02-24 15:13:45 -080088// 8
Jesse Hall543a7ff2016-01-08 16:38:30 -080089@extension("VK_KHR_mir_surface") define VK_KHR_MIR_SURFACE_SPEC_VERSION 4
Jesse Hall3e0dc8f2015-11-30 00:42:57 -080090@extension("VK_KHR_mir_surface") define VK_KHR_MIR_SURFACE_NAME "VK_KHR_mir_surface"
Jesse Hall1356b0d2015-11-23 17:24:58 -080091
Jesse Halleb02c472017-02-24 15:13:45 -080092// 9
Jesse Hall33faaad2016-01-24 21:00:49 -080093@extension("VK_KHR_android_surface") define VK_KHR_ANDROID_SURFACE_SPEC_VERSION 6
Jesse Hall3e0dc8f2015-11-30 00:42:57 -080094@extension("VK_KHR_android_surface") define VK_KHR_ANDROID_SURFACE_NAME "VK_KHR_android_surface"
Jesse Hall1356b0d2015-11-23 17:24:58 -080095
Jesse Halleb02c472017-02-24 15:13:45 -080096// 10
Jesse Hall7ba0ac72017-07-07 17:13:23 -070097@extension("VK_KHR_win32_surface") define VK_KHR_WIN32_SURFACE_SPEC_VERSION 6
Jesse Hall3e0dc8f2015-11-30 00:42:57 -080098@extension("VK_KHR_win32_surface") define VK_KHR_WIN32_SURFACE_NAME "VK_KHR_win32_surface"
Jesse Hall1356b0d2015-11-23 17:24:58 -080099
Jesse Halleb02c472017-02-24 15:13:45 -0800100// 11
Chris Forbes1d4e5542017-02-15 19:38:50 +1300101@extension("VK_ANDROID_native_buffer") define VK_ANDROID_NATIVE_BUFFER_SPEC_VERSION 7
Chia-I Wub262ddc2016-03-22 07:38:20 +0800102@extension("VK_ANDROID_native_buffer") define VK_ANDROID_NATIVE_BUFFER_NAME "VK_ANDROID_native_buffer"
103
Jesse Halleb02c472017-02-24 15:13:45 -0800104// 12
Daniel Koch09f7bf92017-10-05 00:26:58 -0400105@extension("VK_EXT_debug_report") define VK_EXT_DEBUG_REPORT_SPEC_VERSION 9
Jesse Hall715b86a2016-01-16 16:34:29 -0800106@extension("VK_EXT_debug_report") define VK_EXT_DEBUG_REPORT_NAME "VK_EXT_debug_report"
107
Jesse Halleb02c472017-02-24 15:13:45 -0800108// 13
Jesse Hall26763382016-05-20 07:13:52 -0700109@extension("VK_NV_glsl_shader") define VK_NV_GLSL_SHADER_SPEC_VERSION 1
110@extension("VK_NV_glsl_shader") define VK_NV_GLSL_SHADER_NAME "VK_NV_glsl_shader"
111
Jesse Hall77726222017-09-19 14:49:27 -0500112// 14
113@extension("VK_EXT_depth_range_unrestricted") define VK_EXT_DEPTH_RANGE_UNRESTRICTED_SPEC_VERSION 1
114@extension("VK_EXT_depth_range_unrestricted") define VK_EXT_DEPTH_RANGE_UNRESTRICTED_NAME "VK_EXT_depth_range_unrestricted"
115
Jesse Halleb02c472017-02-24 15:13:45 -0800116// 15
Jesse Hall26763382016-05-20 07:13:52 -0700117@extension("VK_KHR_sampler_mirror_clamp_to_edge") define VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_SPEC_VERSION 1
118@extension("VK_KHR_sampler_mirror_clamp_to_edge") define VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_NAME "VK_KHR_sampler_mirror_clamp_to_edge"
119
Jesse Halleb02c472017-02-24 15:13:45 -0800120// 16
Jesse Hall26763382016-05-20 07:13:52 -0700121@extension("VK_IMG_filter_cubic") define VK_IMG_FILTER_CUBIC_SPEC_VERSION 1
122@extension("VK_IMG_filter_cubic") define VK_IMG_FILTER_CUBIC_NAME "VK_IMG_filter_cubic"
123
Jesse Halleb02c472017-02-24 15:13:45 -0800124// 19
Jesse Hall26763382016-05-20 07:13:52 -0700125@extension("VK_AMD_rasterization_order") define VK_AMD_RASTERIZATION_ORDER_SPEC_VERSION 1
126@extension("VK_AMD_rasterization_order") define VK_AMD_RASTERIZATION_ORDER_NAME "VK_AMD_rasterization_order"
127
Jesse Halleb02c472017-02-24 15:13:45 -0800128// 21
Jesse Hall56d386a2016-07-26 15:20:40 -0700129@extension("VK_AMD_shader_trinary_minmax") define VK_AMD_SHADER_TRINARY_MINMAX_SPEC_VERSION 1
130@extension("VK_AMD_shader_trinary_minmax") define VK_AMD_SHADER_TRINARY_MINMAX_EXTENSION_NAME "VK_AMD_shader_trinary_minmax"
131
Jesse Halleb02c472017-02-24 15:13:45 -0800132// 22
Jesse Hall56d386a2016-07-26 15:20:40 -0700133@extension("VK_AMD_shader_explicit_vertex_parameter") define VK_AMD_SHADER_EXPLICIT_VERTEX_PARAMETER_SPEC_VERSION 1
134@extension("VK_AMD_shader_explicit_vertex_parameter") define VK_AMD_SHADER_EXPLICIT_VERTEX_PARAMETER_EXTENSION_NAME "VK_AMD_shader_explicit_vertex_parameter"
135
Jesse Halleb02c472017-02-24 15:13:45 -0800136// 23
Jesse Hall8f49fcb2017-03-06 16:02:58 -0800137@extension("VK_EXT_debug_marker") define VK_EXT_DEBUG_MARKER_SPEC_VERSION 4
Jesse Hall26763382016-05-20 07:13:52 -0700138@extension("VK_EXT_debug_marker") define VK_EXT_DEBUG_MARKER_NAME "VK_EXT_debug_marker"
139
Jesse Halleb02c472017-02-24 15:13:45 -0800140// 26
Jesse Hall56d386a2016-07-26 15:20:40 -0700141@extension("VK_AMD_gcn_shader") define VK_AMD_GCN_SHADER_SPEC_VERSION 1
142@extension("VK_AMD_gcn_shader") define VK_AMD_GCN_SHADER_EXTENSION_NAME "VK_AMD_gcn_shader"
143
Jesse Halleb02c472017-02-24 15:13:45 -0800144// 27
Jesse Hall56d386a2016-07-26 15:20:40 -0700145@extension("VK_NV_dedicated_allocation") define VK_NV_DEDICATED_ALLOCATION_SPEC_VERSION 1
146@extension("VK_NV_dedicated_allocation") define VK_NV_DEDICATED_ALLOCATION_EXTENSION_NAME "VK_NV_dedicated_allocation"
147
Jesse Halleb02c472017-02-24 15:13:45 -0800148// 28
Chris Forbes289cb792016-12-30 15:03:55 +1300149@extension("VK_IMG_format_pvrtc") define VK_IMG_FORMAT_PVRTC_SPEC_VERSION 1
150@extension("VK_IMG_format_pvrtc") define VK_IMG_FORMAT_PVRTC_EXTENSION_NAME "VK_IMG_format_pvrtc"
151
Jesse Halleb02c472017-02-24 15:13:45 -0800152// 34
153@extension("VK_AMD_draw_indirect_count") define VK_AMD_DRAW_INDIRECT_COUNT_SPEC_VERSION 1
154@extension("VK_AMD_draw_indirect_count") define VK_AMD_DRAW_INDIRECT_COUNT_EXTENSION_NAME "VK_AMD_draw_indirect_count"
155
156// 36
157@extension("VK_AMD_negative_viewport_height") define VK_AMD_NEGATIVE_VIEWPORT_HEIGHT_SPEC_VERSION 1
158@extension("VK_AMD_negative_viewport_height") define VK_AMD_NEGATIVE_VIEWPORT_HEIGHT_EXTENSION_NAME "VK_AMD_negative_viewport_height"
159
160// 37
161@extension("VK_AMD_gpu_shader_half_float") define VK_AMD_GPU_SHADER_HALF_FLOAT_SPEC_VERSION 1
162@extension("VK_AMD_gpu_shader_half_float") define VK_AMD_GPU_SHADER_HALF_FLOAT_EXTENSION_NAME "VK_AMD_gpu_shader_half_float"
163
164// 38
165@extension("VK_AMD_shader_ballot") define VK_AMD_SHADER_BALLOT_SPEC_VERSION 1
166@extension("VK_AMD_shader_ballot") define VK_AMD_SHADER_BALLOT_EXTENSION_NAME "VK_AMD_shader_ballot"
167
Jesse Hall7ba0ac72017-07-07 17:13:23 -0700168// 42
169@extension("VK_AMD_texture_gather_bias_lod") define VK_AMD_TEXTURE_GATHER_BIAS_LOD_SPEC_VERSION 1
170@extension("VK_AMD_texture_gather_bias_lod") define VK_AMD_TEXTURE_GATHER_BIAS_LOD_EXTENSION_NAME "VK_AMD_texture_gather_bias_lod"
171
Jesse Hall8c954d32018-01-17 22:06:20 -0800172// 43
173@extension("VK_AMD_shader_info") define VK_AMD_SHADER_INFO_SPEC_VERSION 1
174@extension("VK_AMD_shader_info") define VK_AMD_SHADER_INFO_EXTENSION_NAME "VK_AMD_shader_info"
175
176// 47
177@extension("VK_AMD_shader_image_load_store_lod") define VK_AMD_SHADER_IMAGE_LOAD_STORE_LOD_SPEC_VERSION 1
178@extension("VK_AMD_shader_image_load_store_lod") define VK_AMD_SHADER_IMAGE_LOAD_STORE_LOD_EXTENSION_NAME "VK_AMD_shader_image_load_store_lod"
179
Jesse Hallb5297192018-09-22 20:52:13 +0200180// 51
181@extension("VK_NV_corner_sampled_image") define VK_NV_CORNER_SAMPLED_IMAGE_SPEC_VERSION 2
182@extension("VK_NV_corner_sampled_image") define VK_NV_CORNER_SAMPLED_IMAGE_EXTENSION_NAME "VK_NV_corner_sampled_image"
183
Jesse Hallad250842017-03-10 18:35:38 -0800184// 54
Daniel Koch09f7bf92017-10-05 00:26:58 -0400185@extension("VK_KHR_multiview") define VK_KHR_MULTIVIEW_SPEC_VERSION 1
186@extension("VK_KHR_multiview") define VK_KHR_MULTIVIEW_EXTENSION_NAME "VK_KHR_multiview"
Jesse Hallad250842017-03-10 18:35:38 -0800187
Jesse Halleb02c472017-02-24 15:13:45 -0800188// 56
Chris Forbes289cb792016-12-30 15:03:55 +1300189@extension("VK_NV_external_memory_capabilities") define VK_NV_EXTERNAL_MEMORY_CAPABILITIES_SPEC_VERSION 1
190@extension("VK_NV_external_memory_capabilities") define VK_NV_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME "VK_NV_external_memory_capabilities"
191
Jesse Halleb02c472017-02-24 15:13:45 -0800192// 57
Chris Forbes289cb792016-12-30 15:03:55 +1300193@extension("VK_NV_external_memory") define VK_NV_EXTERNAL_MEMORY_SPEC_VERSION 1
194@extension("VK_NV_external_memory") define VK_NV_EXTERNAL_MEMORY_EXTENSION_NAME "VK_NV_external_memory"
195
Jesse Halleb02c472017-02-24 15:13:45 -0800196// 58
Chris Forbes289cb792016-12-30 15:03:55 +1300197@extension("VK_NV_external_memory_win32") define VK_NV_EXTERNAL_MEMORY_WIN32_SPEC_VERSION 1
198@extension("VK_NV_external_memory_win32") define VK_NV_EXTERNAL_MEMORY_WIN32_EXTENSION_NAME "VK_NV_external_memory_win32"
199
Jesse Halleb02c472017-02-24 15:13:45 -0800200// 59
Chris Forbes289cb792016-12-30 15:03:55 +1300201@extension("VK_NV_win32_keyed_mutex") define VK_NV_WIN32_KEYED_MUTEX_SPEC_VERSION 1
202@extension("VK_NV_win32_keyed_mutex") define VK_NV_WIN32_KEYED_MUTEX_EXTENSION_NAME "VK_NV_win32_keyed_mutex"
203
Jesse Hall889cd9a2017-02-25 22:12:23 -0800204// 60
205@extension("VK_KHR_get_physical_device_properties2") define VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_SPEC_VERSION 1
206@extension("VK_KHR_get_physical_device_properties2") define VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME "VK_KHR_get_physical_device_properties2"
207
Jesse Hallad250842017-03-10 18:35:38 -0800208// 61
Daniel Koch09f7bf92017-10-05 00:26:58 -0400209@extension("VK_KHR_device_group") define VK_KHR_DEVICE_GROUP_SPEC_VERSION 3
210@extension("VK_KHR_device_group") define VK_KHR_DEVICE_GROUP_EXTENSION_NAME "VK_KHR_device_group"
Jesse Hallad250842017-03-10 18:35:38 -0800211
Jesse Halleb02c472017-02-24 15:13:45 -0800212// 62
Chris Forbes289cb792016-12-30 15:03:55 +1300213@extension("VK_EXT_validation_flags") define VK_EXT_VALIDATION_FLAGS_SPEC_VERSION 1
214@extension("VK_EXT_validation_flags") define VK_EXT_VALIDATION_FLAGS_EXTENSION_NAME "VK_EXT_validation_flags"
215
Jesse Hall77ad05b2017-03-10 22:02:20 -0800216// 63
217@extension("VK_NN_vi_surface") define VK_NN_VI_SURFACE_SPEC_VERSION 1
218@extension("VK_NN_vi_surface") define VK_NN_VI_SURFACE_EXTENSION_NAME "VK_NN_vi_surface"
219
220// 64
221@extension("VK_KHR_shader_draw_parameters") define VK_KHR_SHADER_DRAW_PARAMETERS_SPEC_VERSION 1
222@extension("VK_KHR_shader_draw_parameters") define VK_KHR_SHADER_DRAW_PARAMETERS_EXTENSION_NAME "VK_KHR_shader_draw_parameters"
223
224// 65
225@extension("VK_EXT_shader_subgroup_ballot") define VK_EXT_SHADER_SUBGROUP_BALLOT_SPEC_VERSION 1
226@extension("VK_EXT_shader_subgroup_ballot") define VK_EXT_SHADER_SUBGROUP_BALLOT_EXTENSION_NAME "VK_EXT_shader_subgroup_ballot"
227
228// 66
229@extension("VK_EXT_shader_subgroup_vote") define VK_EXT_SHADER_SUBGROUP_VOTE_SPEC_VERSION 1
230@extension("VK_EXT_shader_subgroup_vote") define VK_EXT_SHADER_SUBGROUP_VOTE_EXTENSION_NAME "VK_EXT_shader_subgroup_vote"
231
Jesse Hall4af6c462018-09-10 09:04:25 -0700232// 68
233@extension("VK_EXT_astc_decode_mode") define VK_EXT_ASTC_DECODE_MODE_SPEC_VERSION 1
234@extension("VK_EXT_astc_decode_mode") define VK_EXT_ASTC_DECODE_MODE_EXTENSION_NAME "VK_EXT_astc_decode_mode"
235
Jesse Hall77ad05b2017-03-10 22:02:20 -0800236// 70
Jesse Hall72e6a132018-04-06 13:00:44 -0700237@extension("VK_KHR_maintenance1") define VK_KHR_MAINTENANCE1_SPEC_VERSION 2
Jesse Hall77ad05b2017-03-10 22:02:20 -0800238@extension("VK_KHR_maintenance1") define VK_KHR_MAINTENANCE1_EXTENSION_NAME "VK_KHR_maintenance1"
239
Jesse Hallad250842017-03-10 18:35:38 -0800240// 71
Daniel Koch09f7bf92017-10-05 00:26:58 -0400241@extension("VK_KHR_device_group_creation") define VK_KHR_DEVICE_GROUP_CREATION_SPEC_VERSION 1
242@extension("VK_KHR_device_group_creation") define VK_KHR_DEVICE_GROUP_CREATION_EXTENSION_NAME "VK_KHR_device_group_creation"
Jesse Hallad250842017-03-10 18:35:38 -0800243
244// 72
Jesse Hall9492f992017-08-28 12:10:06 -0700245@extension("VK_KHR_external_memory_capabilities") define VK_KHR_EXTERNAL_MEMORY_CAPABILITIES_SPEC_VERSION 1
246@extension("VK_KHR_external_memory_capabilities") define VK_KHR_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME "VK_KHR_external_memory_capabilities"
Jesse Hallad250842017-03-10 18:35:38 -0800247
248// 73
Jesse Hall9492f992017-08-28 12:10:06 -0700249@extension("VK_KHR_external_memory") define VK_KHR_EXTERNAL_MEMORY_SPEC_VERSION 1
250@extension("VK_KHR_external_memory") define VK_KHR_EXTERNAL_MEMORY_EXTENSION_NAME "VK_KHR_external_memory"
Jesse Hallad250842017-03-10 18:35:38 -0800251
252// 74
Jesse Hall9492f992017-08-28 12:10:06 -0700253@extension("VK_KHR_external_memory_win32") define VK_KHR_EXTERNAL_MEMORY_WIN32_SPEC_VERSION 1
254@extension("VK_KHR_external_memory_win32") define VK_KHR_EXTERNAL_MEMORY_WIN32_EXTENSION_NAME "VK_KHR_external_memory_win32"
Jesse Hallad250842017-03-10 18:35:38 -0800255
256// 75
Jesse Hall9492f992017-08-28 12:10:06 -0700257@extension("VK_KHR_external_memory_fd") define VK_KHR_EXTERNAL_MEMORY_FD_SPEC_VERSION 1
258@extension("VK_KHR_external_memory_fd") define VK_KHR_EXTERNAL_MEMORY_FD_EXTENSION_NAME "VK_KHR_external_memory_fd"
Jesse Hallad250842017-03-10 18:35:38 -0800259
260// 76
Jesse Hall9492f992017-08-28 12:10:06 -0700261@extension("VK_KHR_win32_keyed_mutex") define VK_KHR_WIN32_KEYED_MUTEX_SPEC_VERSION 1
262@extension("VK_KHR_win32_keyed_mutex") define VK_KHR_WIN32_KEYED_MUTEX_EXTENSION_NAME "VK_KHR_win32_keyed_mutex"
Jesse Hallad250842017-03-10 18:35:38 -0800263
264// 77
Jesse Hall9492f992017-08-28 12:10:06 -0700265@extension("VK_KHR_external_semaphore_capabilities") define VK_KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_SPEC_VERSION 1
266@extension("VK_KHR_external_semaphore_capabilities") define VK_KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_EXTENSION_NAME "VK_KHR_external_semaphore_capabilities"
Jesse Hallad250842017-03-10 18:35:38 -0800267
268// 78
Jesse Hall9492f992017-08-28 12:10:06 -0700269@extension("VK_KHR_external_semaphore") define VK_KHR_EXTERNAL_SEMAPHORE_SPEC_VERSION 1
270@extension("VK_KHR_external_semaphore") define VK_KHR_EXTERNAL_SEMAPHORE_EXTENSION_NAME "VK_KHR_external_semaphore"
Jesse Hallad250842017-03-10 18:35:38 -0800271
272// 79
Jesse Hall9492f992017-08-28 12:10:06 -0700273@extension("VK_KHR_external_semaphore_win32") define VK_KHR_EXTERNAL_SEMAPHORE_WIN32_SPEC_VERSION 1
274@extension("VK_KHR_external_semaphore_win32") define VK_KHR_EXTERNAL_SEMAPHORE_WIN32_EXTENSION_NAME "VK_KHR_external_semaphore_win32"
Jesse Hallad250842017-03-10 18:35:38 -0800275
276// 80
Jesse Hall9492f992017-08-28 12:10:06 -0700277@extension("VK_KHR_external_semaphore_fd") define VK_KHR_EXTERNAL_SEMAPHORE_FD_SPEC_VERSION 1
278@extension("VK_KHR_external_semaphore_fd") define VK_KHR_EXTERNAL_SEMAPHORE_FD_EXTENSION_NAME "VK_KHR_external_semaphore_fd"
Jesse Hallad250842017-03-10 18:35:38 -0800279
280// 81
Daniel Koch09f7bf92017-10-05 00:26:58 -0400281@extension("VK_KHR_push_descriptor") define VK_KHR_PUSH_DESCRIPTOR_SPEC_VERSION 2
Jesse Hallad250842017-03-10 18:35:38 -0800282@extension("VK_KHR_push_descriptor") define VK_KHR_PUSH_DESCRIPTOR_EXTENSION_NAME "VK_KHR_push_descriptor"
283
Jesse Halla13a3cf2018-07-09 15:51:52 -0700284// 82
285@extension("VK_EXT_conditional_rendering") define VK_EXT_CONDITIONAL_RENDERING_SPEC_VERSION 1
286@extension("VK_EXT_conditional_rendering") define VK_EXT_CONDITIONAL_RENDERING_EXTENSION_NAME "VK_EXT_conditional_rendering"
287
Jesse Hall9492f992017-08-28 12:10:06 -0700288// 84
289@extension("VK_KHR_16bit_storage") define VK_KHR_16BIT_STORAGE_SPEC_VERSION 1
290@extension("VK_KHR_16bit_storage") define VK_KHR_16BIT_STORAGE_EXTENSION_NAME "VK_KHR_16bit_storage"
291
Jesse Hall889cd9a2017-02-25 22:12:23 -0800292// 85
293@extension("VK_KHR_incremental_present") define VK_KHR_INCREMENTAL_PRESENT_SPEC_VERSION 1
Jesse Hallf5ad48b2017-03-20 13:09:19 -0700294@extension("VK_KHR_incremental_present") define VK_KHR_INCREMENTAL_PRESENT_EXTENSION_NAME "VK_KHR_incremental_present"
Jesse Hall889cd9a2017-02-25 22:12:23 -0800295
Jesse Hallad250842017-03-10 18:35:38 -0800296// 86
297@extension("VK_KHR_descriptor_update_template") define VK_KHR_DESCRIPTOR_UPDATE_TEMPLATE_SPEC_VERSION 1
298@extension("VK_KHR_descriptor_update_template") define VK_KHR_DESCRIPTOR_UPDATE_TEMPLATE_EXTENSION_NAME "VK_KHR_descriptor_update_template"
299
Jesse Halleb02c472017-02-24 15:13:45 -0800300// 87
Jesse Hall77726222017-09-19 14:49:27 -0500301@extension("VK_NVX_device_generated_commands") define VK_NVX_DEVICE_GENERATED_COMMANDS_SPEC_VERSION 3
Chris Forbes289cb792016-12-30 15:03:55 +1300302@extension("VK_NVX_device_generated_commands") define VK_NVX_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME "VK_NVX_device_generated_commands"
303
Jesse Hallad250842017-03-10 18:35:38 -0800304// 88
305@extension("VK_NV_clip_space_w_scaling") define VK_NV_CLIP_SPACE_W_SCALING_SPEC_VERSION 1
306@extension("VK_NV_clip_space_w_scaling") define VK_NV_CLIP_SPACE_W_SCALING_EXTENSION_NAME "VK_NV_clip_space_w_scaling"
307
Jesse Hall77ad05b2017-03-10 22:02:20 -0800308// 89
309@extension("VK_EXT_direct_mode_display") define VK_EXT_DIRECT_MODE_DISPLAY_SPEC_VERSION 1
310@extension("VK_EXT_direct_mode_display") define VK_EXT_DIRECT_MODE_DISPLAY_EXTENSION_NAME "VK_EXT_direct_mode_display"
311
312// 90
313@extension("VK_EXT_acquire_xlib_display") define VK_EXT_ACQUIRE_XLIB_DISPLAY_SPEC_VERSION 1
314@extension("VK_EXT_acquire_xlib_display") define VK_EXT_ACQUIRE_XLIB_DISPLAY_EXTENSION_NAME "VK_EXT_acquire_xlib_display"
315
316// 91
317@extension("VK_EXT_display_surface_counter") define VK_EXT_DISPLAY_SURFACE_COUNTER_SPEC_VERSION 1
318@extension("VK_EXT_display_surface_counter") define VK_EXT_DISPLAY_SURFACE_COUNTER_EXTENSION_NAME "VK_EXT_display_surface_counter"
319
320// 92
321@extension("VK_EXT_display_control") define VK_EXT_DISPLAY_CONTROL_SPEC_VERSION 1
322@extension("VK_EXT_display_control") define VK_EXT_DISPLAY_CONTROL_COUNTER_EXTENSION_NAME "VK_EXT_display_control"
323
Jesse Hall889cd9a2017-02-25 22:12:23 -0800324// 93
325@extension("VK_GOOGLE_display_timing") define VK_GOOGLE_DISPLAY_TIMING_SPEC_VERSION 1
Jesse Hallfdc8ab32017-03-10 21:01:57 -0800326@extension("VK_GOOGLE_display_timing") define VK_GOOGLE_DISPLAY_TIMING_EXTENSION_NAME "VK_GOOGLE_display_timing"
Jesse Hall889cd9a2017-02-25 22:12:23 -0800327
Jesse Hallad250842017-03-10 18:35:38 -0800328// 95
329@extension("VK_NV_sample_mask_override_coverage") define VK_NV_SAMPLE_MASK_OVERRIDE_COVERAGE_SPEC_VERSION 1
330@extension("VK_NV_sample_mask_override_coverage") define VK_NV_SAMPLE_MASK_OVERRIDE_COVERAGE_EXTENSION_NAME "VK_NV_sample_mask_override_coverage"
331
332// 96
333@extension("VK_NV_geometry_shader_passthrough") define VK_NV_GEOMETRY_SHADER_PASSTHROUGH_SPEC_VERSION 1
334@extension("VK_NV_geometry_shader_passthrough") define VK_NV_GEOMETRY_SHADER_PASSTHROUGH_EXTENSION_NAME "VK_NV_geometry_shader_passthrough"
335
336// 97
337@extension("VK_NV_viewport_array2") define VK_NV_VIEWPORT_ARRAY2_SPEC_VERSION 1
338@extension("VK_NV_viewport_array2") define VK_NV_VIEWPORT_ARRAY2_EXTENSION_NAME "VK_NV_viewport_array2"
339
340// 98
341@extension("VK_NVX_multiview_per_view_attributes") define VK_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_SPEC_VERSION 1
342@extension("VK_NVX_multiview_per_view_attributes") define VK_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_EXTENSION_NAME "VK_NVX_multiview_per_view_attributes"
343
344// 99
345@extension("VK_NV_viewport_swizzle") define VK_NV_VIEWPORT_SWIZZLE_SPEC_VERSION 1
346@extension("VK_NV_viewport_swizzle") define VK_NV_VIEWPORT_SWIZZLE_EXTENSION_NAME "VK_NV_viewport_swizzle"
347
348// 100
349@extension("VK_EXT_discard_rectangles") define VK_EXT_DISCARD_RECTANGLES_SPEC_VERSION 1
350@extension("VK_EXT_discard_rectangles") define VK_EXT_DISCARD_RECTANGLES_EXTENSION_NAME "VK_EXT_discard_rectangles"
351
Jesse Hall8c954d32018-01-17 22:06:20 -0800352// 102
353@extension("VK_EXT_conservative_rasterization") define VK_EXT_CONSERVATIVE_RASTERIZATION_SPEC_VERSION 1
354@extension("VK_EXT_conservative_rasterization") define VK_EXT_CONSERVATIVE_RASTERIZATION_EXTENSION_NAME "VK_EXT_conservative_rasterization"
355
Jesse Hall77ad05b2017-03-10 22:02:20 -0800356// 105
Jesse Hall77726222017-09-19 14:49:27 -0500357@extension("VK_EXT_swapchain_colorspace") define VK_EXT_SWAPCHAIN_COLORSPACE_SPEC_VERSION 3
Jesse Hallf5ad48b2017-03-20 13:09:19 -0700358@extension("VK_EXT_swapchain_colorspace") define VK_EXT_SWAPCHAIN_COLORSPACE_EXTENSION_NAME "VK_EXT_swapchain_colorspace"
Jesse Hall77ad05b2017-03-10 22:02:20 -0800359
Jesse Hall889cd9a2017-02-25 22:12:23 -0800360// 106
361@extension("VK_EXT_hdr_metadata") define VK_EXT_HDR_METADATA_SPEC_VERSION 1
362@extension("VK_EXT_hdr_metadata") define VK_EXT_HDR_METADATA_EXTENSION_NAME "VK_EXT_hdr_metadata"
363
Jesse Halla13a3cf2018-07-09 15:51:52 -0700364// 110
365@extension("VK_KHR_create_renderpass2") define VK_KHR_CREATE_RENDERPASS2_SPEC_VERSION 1
366@extension("VK_KHR_create_renderpass2") define VK_KHR_CREATE_RENDERPASS2_EXTENSION_NAME "VK_KHR_create_renderpass2"
367
Jesse Hall889cd9a2017-02-25 22:12:23 -0800368// 112
Chris Forbes1d5f68c2017-01-31 10:17:01 +1300369@extension("VK_KHR_shared_presentable_image") define VK_KHR_SHARED_PRESENTABLE_IMAGE_SPEC_VERSION 1
370@extension("VK_KHR_shared_presentable_image") define VK_KHR_SHARED_PRESENTABLE_IMAGE_EXTENSION_NAME "VK_KHR_shared_presentable_image"
Chris Forbes2e12cb82017-01-18 11:45:17 +1300371
Jesse Hall9492f992017-08-28 12:10:06 -0700372// 113
373@extension("VK_KHR_external_fence_capabilities") define VK_KHR_EXTERNAL_FENCE_CAPABILITIES_SPEC_VERSION 1
374@extension("VK_KHR_external_fence_capabilities") define VK_KHR_EXTERNAL_FENCE_CAPABILITIES_EXTENSION_NAME "VK_KHR_external_fence_capabilities"
375
376// 114
377@extension("VK_KHR_external_fence") define VK_KHR_EXTERNAL_FENCE_SPEC_VERSION 1
378@extension("VK_KHR_external_fence") define VK_KHR_EXTERNAL_FENCE_EXTENSION_NAME "VK_KHR_external_fence"
379
380// 115
381@extension("VK_KHR_external_fence_win32") define VK_KHR_EXTERNAL_FENCE_WIN32_SPEC_VERSION 1
382@extension("VK_KHR_external_fence_win32") define VK_KHR_EXTERNAL_FENCE_WIN32_EXTENSION_NAME "VK_KHR_external_fence_win32"
383
384// 116
385@extension("VK_KHR_external_fence_fd") define VK_KHR_EXTERNAL_FENCE_FD_SPEC_VERSION 1
386@extension("VK_KHR_external_fence_fd") define VK_KHR_EXTERNAL_FENCE_FD_EXTENSION_NAME "VK_KHR_external_fence_fd"
387
Jesse Hall076f95d2017-09-20 11:34:47 -0700388// 118
389@extension("VK_KHR_maintenance2") define VK_KHR_MAINTENANCE2_SPEC_VERSION 1
390@extension("VK_KHR_maintenance2") define VK_KHR_MAINTENANCE2_EXTENSION_NAME "VK_KHR_maintenance2"
391
Jesse Hall05556b12017-05-18 17:40:25 -0700392// 120
Chris Forbese2d3ee12017-03-16 16:10:15 +1300393@extension("VK_KHR_get_surface_capabilities2") define VK_KHR_GET_SURFACE_CAPABILITIES_2_SPEC_VERSION 1
394@extension("VK_KHR_get_surface_capabilities2") define VK_KHR_GET_SURFACE_CAPABILITIES_2_EXTENSION_NAME "VK_KHR_get_surface_capabilities2"
395
Jesse Hall9492f992017-08-28 12:10:06 -0700396// 121
397@extension("VK_KHR_variable_pointers") define VK_KHR_VARIABLE_POINTERS_SPEC_VERSION 1
398@extension("VK_KHR_variable_pointers") define VK_KHR_VARIABLE_POINTERS_EXTENSION_NAME "VK_KHR_variable_pointers"
399
Jesse Hall54f8d132018-04-18 08:16:59 -0700400// 122
401@extension("VK_KHR_get_display_properties2") define VK_KHR_GET_DISPLAY_PROPERTIES_2_SPEC_VERSION 1
402@extension("VK_KHR_get_display_properties2") define VK_KHR_GET_DISPLAY_PROPERTIES_2_EXTENSION_NAME "VK_KHR_get_display_properties2"
403
Jesse Hallad250842017-03-10 18:35:38 -0800404// 123
405@extension("VK_MVK_ios_surface") define VK_MVK_IOS_SURFACE_SPEC_VERSION 1
406@extension("VK_MVK_ios_surface") define VK_MVK_IOS_SURFACE_EXTENSION_NAME "VK_MVK_ios_surface"
407
408// 124
409@extension("VK_MVK_macos_surface") define VK_MVK_MACOS_SURFACE_SPEC_VERSION 1
410@extension("VK_MVK_macos_surface") define VK_MVK_MACOS_SURFACE_EXTENSION_NAME "VK_MVK_macos_surface"
411
Jesse Hall8c954d32018-01-17 22:06:20 -0800412// 126
413@extension("VK_EXT_external_memory_dma_buf") define VK_EXT_EXTERNAL_MEMORY_DMA_BUF_SPEC_VERSION 1
414@extension("VK_EXT_external_memory_dma_buf") define VK_EXT_EXTERNAL_MEMORY_DMA_BUF_EXTENSION_NAME "VK_EXT_external_memory_dma_buf"
415
416// 127
417@extension("VK_EXT_queue_family_foreign") define VK_EXT_QUEUE_FAMILY_FOREIGN_SPEC_VERSION 1
418@extension("VK_EXT_queue_family_foreign") define VK_EXT_QUEUE_FAMILY_FOREIGN_EXTENSION_NAME "VK_EXT_queue_family_foreign"
419
Jesse Hall9492f992017-08-28 12:10:06 -0700420// 128
Jesse Hall77726222017-09-19 14:49:27 -0500421@extension("VK_KHR_dedicated_allocation") define VK_KHR_DEDICATED_ALLOCATION_SPEC_VERSION 3
Jesse Hall9492f992017-08-28 12:10:06 -0700422@extension("VK_KHR_dedicated_allocation") define VK_KHR_DEDICATED_ALLOCATION_EXTENSION_NAME "VK_KHR_dedicated_allocation"
423
Jesse Hall8c954d32018-01-17 22:06:20 -0800424// 128
425@extension("VK_EXT_debug_utils") define VK_EXT_DEBUG_UTILS_SPEC_VERSION 1
426@extension("VK_EXT_debug_utils") define VK_EXT_DEBUG_UTILS_EXTENSION_NAME "VK_EXT_debug_utils"
427
Jesse Hall36215a92018-01-18 15:04:37 -0800428// 130
Jesse Hall72e6a132018-04-06 13:00:44 -0700429@extension("VK_ANDROID_external_memory_android_hardware_buffer") define VK_ANDROID_EXTERNAL_MEMORY_ANDROID_HARDWARE_BUFFER_SPEC_VERSION 3
Jesse Hall36215a92018-01-18 15:04:37 -0800430@extension("VK_ANDROID_external_memory_android_hardware_buffer") define VK_ANDROID_EXTERNAL_MEMORY_ANDROID_HARDWARE_BUFFER_EXTENSION_NAME "VK_ANDROID_external_memory_android_hardware_buffer"
431
Jesse Hall7ba0ac72017-07-07 17:13:23 -0700432// 131
433@extension("VK_EXT_sampler_filter_minmax") define VK_EXT_SAMPLER_FILTER_MINMAX_SPEC_VERSION 1
434@extension("VK_EXT_sampler_filter_minmax") define VK_EXT_SAMPLER_FILTER_MINMAX_EXTENSION_NAME "VK_EXT_sampler_filter_minmax"
435
Jesse Hall9492f992017-08-28 12:10:06 -0700436// 132
437@extension("VK_KHR_storage_buffer_storage_class") define VK_KHR_STORAGE_BUFFER_STORAGE_CLASS_SPEC_VERSION 1
438@extension("VK_KHR_storage_buffer_storage_class") define VK_KHR_STORAGE_BUFFER_STORAGE_CLASS_EXTENSION_NAME "VK_KHR_storage_buffer_storage_class"
439
Jesse Hall7ba0ac72017-07-07 17:13:23 -0700440// 133
441@extension("VK_AMD_gpu_shader_int16") define VK_AMD_GPU_SHADER_INT16_SPEC_VERSION 1
442@extension("VK_AMD_gpu_shader_int16") define VK_AMD_GPU_SHADER_INT16_EXTENSION_NAME "VK_AMD_gpu_shader_int16"
443
Jesse Hall77726222017-09-19 14:49:27 -0500444// 137
445@extension("VK_AMD_mixed_attachment_samples") define VK_AMD_MIXED_ATTACHMENT_SAMPLES_SPEC_VERSION 1
446@extension("VK_AMD_mixed_attachment_samples") define VK_AMD_MIXED_ATTACHMENT_SAMPLES_EXTENSION_NAME "VK_AMD_mixed_attachment_samples"
447
448// 138
449@extension("VK_AMD_shader_fragment_mask") define VK_AMD_SHADER_FRAGMENT_MASK_SPEC_VERSION 1
450@extension("VK_AMD_shader_fragment_mask") define VK_AMD_SHADER_FRAGMENT_MASK_EXTENSION_NAME "VK_AMD_shader_fragment_mask"
451
Jesse Hall4af6c462018-09-10 09:04:25 -0700452// 139
453@extension("VK_EXT_inline_uniform_block") define VK_EXT_INLINE_UNIFORM_BLOCK_SPEC_VERSION 1
454@extension("VK_EXT_inline_uniform_block") define VK_EXT_INLINE_UNIFORM_BLOCK_EXTENSION_NAME "VK_EXT_inline_uniform_block"
455
Jesse Hall77726222017-09-19 14:49:27 -0500456// 141
457@extension("VK_EXT_shader_stencil_export") define VK_EXT_SHADER_STENCIL_EXPORT_SPEC_VERSION 1
458@extension("VK_EXT_shader_stencil_export") define VK_EXT_SHADER_STENCIL_EXPORT_EXTENSION_NAME "VK_EXT_shader_stencil_export"
459
460// 144
461@extension("VK_EXT_sample_locations") define VK_EXT_SAMPLE_LOCATIONS_SPEC_VERSION 1
462@extension("VK_EXT_sample_locations") define VK_EXT_SAMPLE_LOCATIONS_EXTENSION_NAME "VK_EXT_sample_locations"
463
464// 145
465@extension("VK_KHR_relaxed_block_layout") define VK_KHR_RELAXED_BLOCK_LAYOUT_SPEC_VERSION 1
466@extension("VK_KHR_relaxed_block_layout") define VK_KHR_RELAXED_BLOCK_LAYOUT_EXTENSION_NAME "VK_KHR_relaxed_block_layout"
467
Jesse Hall9492f992017-08-28 12:10:06 -0700468// 147
469@extension("VK_KHR_get_memory_requirements2") define VK_KHR_GET_MEMORY_REQUIREMENTS2_SPEC_VERSION 1
470@extension("VK_KHR_get_memory_requirements2") define VK_KHR_GET_MEMORY_REQUIREMENTS2_EXTENSION_NAME "VK_KHR_get_memory_requirements2"
471
Jesse Hall076f95d2017-09-20 11:34:47 -0700472// 148
473@extension("VK_KHR_image_format_list") define VK_KHR_IMAGE_FORMAT_LIST_SPEC_VERSION 1
474@extension("VK_KHR_image_format_list") define VK_KHR_IMAGE_FORMAT_LIST_EXTENSION_NAME "VK_KHR_image_format_list"
475
Jesse Hall7ba0ac72017-07-07 17:13:23 -0700476// 149
477@extension("VK_EXT_blend_operation_advanced") define VK_EXT_BLEND_OPERATION_ADVANCED_SPEC_VERSION 2
478@extension("VK_EXT_blend_operation_advanced") define VK_EXT_BLEND_OPERATION_ADVANCED_EXTENSION_NAME "VK_EXT_blend_operation_advanced"
479
480// 150
481@extension("VK_NV_fragment_coverage_to_color") define VK_NV_FRAGMENT_COVERAGE_TO_COLOR_SPEC_VERSION 1
482@extension("VK_NV_fragment_coverage_to_color") define VK_NV_FRAGMENT_COVERAGE_TO_COLOR_EXTENSION_NAME "VK_NV_fragment_coverage_to_color"
483
484// 153
485@extension("VK_NV_framebuffer_mixed_samples") define VK_NV_FRAMEBUFFER_MIXED_SAMPLES_SPEC_VERSION 1
486@extension("VK_NV_framebuffer_mixed_samples") define VK_NV_FRAMEBUFFER_MIXED_SAMPLES_EXTENSION_NAME "VK_NV_framebuffer_mixed_samples"
487
488// 154
489@extension("VK_NV_fill_rectangle") define VK_NV_FILL_RECTANGLE_SPEC_VERSION 1
490@extension("VK_NV_fill_rectangle") define VK_NV_FILL_RECTANGLE_EXTENSION_NAME "VK_NV_fill_rectangle"
491
Jesse Hall77726222017-09-19 14:49:27 -0500492// 156
493@extension("VK_EXT_post_depth_coverage") define VK_EXT_POST_DEPTH_COVERAGE_SPEC_VERSION 1
494@extension("VK_EXT_post_depth_coverage") define VK_EXT_POST_DEPTH_COVERAGE_EXTENSION_NAME "VK_EXT_post_depth_coverage"
495
Jesse Hall076f95d2017-09-20 11:34:47 -0700496// 157
497@extension("VK_KHR_sampler_ycbcr_conversion") define VK_KHR_SAMPLER_YCBCR_CONVERSION_SPEC_VERSION 1
498@extension("VK_KHR_sampler_ycbcr_conversion") define VK_KHR_SAMPLER_YCBCR_CONVERSION_EXTENSION_NAME "VK_KHR_sampler_ycbcr_conversion"
499
500// 158
501@extension("VK_KHR_bind_memory2") define VK_KHR_BIND_MEMORY2_SPEC_VERSION 1
502@extension("VK_KHR_bind_memory2") define VK_KHR_BIND_MEMORY2_EXTENSION_NAME "VK_KHR_bind_memory2"
503
Jesse Hall77726222017-09-19 14:49:27 -0500504// 161
505@extension("VK_EXT_validation_cache") define VK_EXT_VALIDATION_CACHE_SPEC_VERSION 1
506@extension("VK_EXT_validation_cache") define VK_EXT_VALIDATION_CACHE_EXTENSION_NAME "VK_EXT_validation_cache"
507
Jesse Hall72e6a132018-04-06 13:00:44 -0700508// 162
509@extension("VK_EXT_descriptor_indexing") define VK_EXT_DESCRIPTOR_INDEXING_SPEC_VERSION 2
510@extension("VK_EXT_descriptor_indexing") define VK_EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME "VK_EXT_descriptor_indexing"
511
Jesse Hallb5297192018-09-22 20:52:13 +0200512// 163
Jesse Hall77726222017-09-19 14:49:27 -0500513@extension("VK_EXT_shader_viewport_index_layer") define VK_EXT_SHADER_VIEWPORT_INDEX_LAYER_SPEC_VERSION 1
514@extension("VK_EXT_shader_viewport_index_layer") define VK_EXT_SHADER_VIEWPORT_INDEX_LAYER_EXTENSION_NAME "VK_EXT_shader_viewport_index_layer"
515
Jesse Hallb5297192018-09-22 20:52:13 +0200516// 165
517@extension("VK_NV_shading_rate_image") define VK_NV_SHADING_RATE_IMAGE_SPEC_VERSION 3
518@extension("VK_NV_shading_rate_image") define VK_NV_SHADING_RATE_IMAGE_EXTENSION_NAME "VK_NV_shading_rate_image"
519
520// 166
521@extension("VK_NVX_raytracing") define VK_NVX_RAYTRACING_SPEC_VERSION 1
522@extension("VK_NVX_raytracing") define VK_NVX_RAYTRACING_EXTENSION_NAME "VK_NVX_raytracing"
523
524// 167
525@extension("VK_NV_representative_fragment_test") define VK_NV_REPRESENTATIVE_FRAGMENT_TEST_SPEC_VERSION 1
526@extension("VK_NV_representative_fragment_test") define VK_NV_REPRESENTATIVE_FRAGMENT_TEST_EXTENSION_NAME "VK_NV_representative_fragment_test"
527
Daniel Koch09f7bf92017-10-05 00:26:58 -0400528// 169
529@extension("VK_KHR_maintenance3") define VK_KHR_MAINTENANCE3_SPEC_VERSION 1
530@extension("VK_KHR_maintenance3") define VK_KHR_MAINTENANCE3_EXTENSION_NAME "VK_KHR_maintenance3"
531
Jesse Hall54f8d132018-04-18 08:16:59 -0700532// 170
533@extension("VK_KHR_draw_indirect_count") define VK_KHR_DRAW_INDIRECT_COUNT_SPEC_VERSION 1
534@extension("VK_KHR_draw_indirect_count") define VK_KHR_DRAW_INDIRECT_COUNT_EXTENSION_NAME "VK_KHR_draw_indirect_count"
535
Jesse Hall8c954d32018-01-17 22:06:20 -0800536// 175
537@extension("VK_EXT_global_priority") define VK_EXT_GLOBAL_PRIORITY_SPEC_VERSION 1
538@extension("VK_EXT_global_priority") define VK_EXT_GLOBAL_PRIORITY_EXTENSION_NAME "VK_EXT_global_priority"
539
Jesse Halla13a3cf2018-07-09 15:51:52 -0700540// 178
541@extension("VK_KHR_8bit_storage") define VK_KHR_8BIT_STORAGE_SPEC_VERSION 1
542@extension("VK_KHR_8bit_storage") define VK_KHR_8BIT_STORAGE_EXTENSION_NAME "VK_KHR_8bit_storage"
543
Jesse Hall8c954d32018-01-17 22:06:20 -0800544// 179
545@extension("VK_EXT_external_memory_host") define VK_EXT_EXTERNAL_MEMORY_HOST_SPEC_VERSION 1
546@extension("VK_EXT_external_memory_host") define VK_EXT_EXTERNAL_MEMORY_HOST_EXTENSION_NAME "VK_EXT_external_memory_host"
547
Jesse Hall72e6a132018-04-06 13:00:44 -0700548// 180
549@extension("VK_AMD_buffer_marker") define VK_AMD_BUFFER_MARKER_SPEC_VERSION 1
550@extension("VK_AMD_buffer_marker") define VK_AMD_BUFFER_MARKER_EXTENSION_NAME "VK_AMD_buffer_marker"
551
Jesse Hall2e6853c2018-10-02 14:05:37 -0700552// 181
553@extension("VK_KHR_shader_atomic_int64") define VK_KHR_SHADER_ATOMIC_INT64_SPEC_VERSION 1
554@extension("VK_KHR_shader_atomic_int64") define VK_KHR_SHADER_ATOMIC_INT64_EXTENSION_NAME "VK_KHR_shader_atomic_int64"
555
Jesse Hall72e6a132018-04-06 13:00:44 -0700556// 186
557@extension("VK_AMD_shader_core_properties") define VK_AMD_SHADER_CORE_PROPERTIES_SPEC_VERSION 1
558@extension("VK_AMD_shader_core_properties") define VK_AMD_SHADER_CORE_PROPERTIES_EXTENSION_NAME "VK_AMD_shader_core_properties"
559
560// 191
Jesse Hall4af6c462018-09-10 09:04:25 -0700561@extension("VK_EXT_vertex_attribute_divisor") define VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_SPEC_VERSION 2
562@extension("VK_EXT_vertex_attribute_divisor") define VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_EXTENSION_NAME "VK_EXT_vertex_attribute_divisor"
Jesse Hall72e6a132018-04-06 13:00:44 -0700563
Jesse Hall2e6853c2018-10-02 14:05:37 -0700564// 197
565@extension("VK_KHR_driver_properties") define VK_KHR_DRIVER_PROPERTIES_SPEC_VERSION 1
566@extension("VK_KHR_driver_properties") define VK_KHR_DRIVER_PROPERTIES_EXTENSION_NAME "VK_KHR_driver_properties"
567
Jesse Hall72e6a132018-04-06 13:00:44 -0700568// 199
569@extension("VK_NV_shader_subgroup_partitioned") define VK_NV_SHADER_SUBGROUP_PARTITIONED_SPEC_VERSION 1
570@extension("VK_NV_shader_subgroup_partitioned") define VK_NV_SHADER_SUBGROUP_PARTITIONED_EXTENSION_NAME "VK_NV_shader_subgroup_partitioned"
571
Jesse Hallb5297192018-09-22 20:52:13 +0200572// 202
573@extension("VK_NV_compute_shader_derivatives") define VK_NV_COMPUTE_SHADER_DERIVATIVES_SPEC_VERSION 1
574@extension("VK_NV_compute_shader_derivatives") define VK_NV_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME "VK_NV_compute_shader_derivatives"
575
576// 203
577@extension("VK_NV_mesh_shader") define VK_NV_MESH_SHADER_SPEC_VERSION 1
578@extension("VK_NV_mesh_shader") define VK_NV_MESH_SHADER_EXTENSION_NAME "VK_NV_mesh_shader"
579
580// 204
581@extension("VK_NV_fragment_shader_barycentric") define VK_NV_FRAGMENT_SHADER_BARYCENTRIC_SPEC_VERSION 1
582@extension("VK_NV_fragment_shader_barycentric") define VK_NV_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME "VK_NV_fragment_shader_barycentric"
583
584// 205
585@extension("VK_NV_shader_image_footprint") define VK_NV_SHADER_IMAGE_FOOTPRINT_SPEC_VERSION 1
586@extension("VK_NV_shader_image_footprint") define VK_NV_SHADER_IMAGE_FOOTPRINT_EXTENSION_NAME "VK_NV_shader_image_footprint"
587
588// 206
589@extension("VK_NV_scissor_exclusive") define VK_NV_SCISSOR_EXCLUSIVE_SPEC_VERSION 1
590@extension("VK_NV_scissor_exclusive") define VK_NV_SCISSOR_EXCLUSIVE_EXTENSION_NAME "VK_NV_scissor_exclusive"
591
Jesse Hall115df0c2018-07-30 12:00:59 -0700592// 207
593@extension("VK_NV_device_diagnostic_checkpoints") define VK_NV_DEVICE_DIAGNOSTIC_CHECKPOINTS_SPEC_VERSION 2
594@extension("VK_NV_device_diagnostic_checkpoints") define VK_NV_DEVICE_DIAGNOSTIC_CHECKPOINTS_EXTENSION_NAME "VK_NV_device_diagnostic_checkpoints"
595
Jesse Hall4af6c462018-09-10 09:04:25 -0700596// 212
597@extension("VK_KHR_vulkan_memory_model") define VK_KHR_VULKAN_MEMORY_MODEL_SPEC_VERSION 2
598@extension("VK_KHR_vulkan_memory_model") define VK_KHR_VULKAN_MEMORY_MODEL_EXTENSION_NAME "VK_KHR_vulkan_memory_model"
599
Jesse Halld27f6aa2015-08-15 17:58:48 -0700600/////////////
601// Types //
602/////////////
603
Jesse Hall5ae3abb2015-10-08 14:00:22 -0700604type u32 VkBool32
605type u32 VkFlags
606type u64 VkDeviceSize
607type u32 VkSampleMask
608
Jesse Halld27f6aa2015-08-15 17:58:48 -0700609/// Dispatchable handle types.
610@dispatchHandle type u64 VkInstance
611@dispatchHandle type u64 VkPhysicalDevice
612@dispatchHandle type u64 VkDevice
613@dispatchHandle type u64 VkQueue
Jesse Hall3fbc8562015-11-29 22:10:52 -0800614@dispatchHandle type u64 VkCommandBuffer
Jesse Halld27f6aa2015-08-15 17:58:48 -0700615
616/// Non dispatchable handle types.
617@nonDispatchHandle type u64 VkDeviceMemory
Jesse Hall3fbc8562015-11-29 22:10:52 -0800618@nonDispatchHandle type u64 VkCommandPool
Jesse Halld27f6aa2015-08-15 17:58:48 -0700619@nonDispatchHandle type u64 VkBuffer
620@nonDispatchHandle type u64 VkBufferView
621@nonDispatchHandle type u64 VkImage
622@nonDispatchHandle type u64 VkImageView
Jesse Halld27f6aa2015-08-15 17:58:48 -0700623@nonDispatchHandle type u64 VkShaderModule
Jesse Halld27f6aa2015-08-15 17:58:48 -0700624@nonDispatchHandle type u64 VkPipeline
625@nonDispatchHandle type u64 VkPipelineLayout
626@nonDispatchHandle type u64 VkSampler
627@nonDispatchHandle type u64 VkDescriptorSet
628@nonDispatchHandle type u64 VkDescriptorSetLayout
629@nonDispatchHandle type u64 VkDescriptorPool
Jesse Halld27f6aa2015-08-15 17:58:48 -0700630@nonDispatchHandle type u64 VkFence
631@nonDispatchHandle type u64 VkSemaphore
632@nonDispatchHandle type u64 VkEvent
633@nonDispatchHandle type u64 VkQueryPool
634@nonDispatchHandle type u64 VkFramebuffer
635@nonDispatchHandle type u64 VkRenderPass
636@nonDispatchHandle type u64 VkPipelineCache
Jesse Hall1356b0d2015-11-23 17:24:58 -0800637
Ian Elliott28bd2c32017-10-13 09:21:12 -0600638@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -0400639@nonDispatchHandle type u64 VkSamplerYcbcrConversion
640@nonDispatchHandle type u64 VkDescriptorUpdateTemplate
641
Jesse Hallad250842017-03-10 18:35:38 -0800642// 1
Jesse Hall3e0dc8f2015-11-30 00:42:57 -0800643@extension("VK_KHR_surface") @nonDispatchHandle type u64 VkSurfaceKHR
Jesse Hall1356b0d2015-11-23 17:24:58 -0800644
Jesse Hallad250842017-03-10 18:35:38 -0800645// 2
Jesse Hall3e0dc8f2015-11-30 00:42:57 -0800646@extension("VK_KHR_swapchain") @nonDispatchHandle type u64 VkSwapchainKHR
Jesse Hall1356b0d2015-11-23 17:24:58 -0800647
Jesse Hallad250842017-03-10 18:35:38 -0800648// 3
Jesse Hall3e0dc8f2015-11-30 00:42:57 -0800649@extension("VK_KHR_display") @nonDispatchHandle type u64 VkDisplayKHR
650@extension("VK_KHR_display") @nonDispatchHandle type u64 VkDisplayModeKHR
Jesse Halld27f6aa2015-08-15 17:58:48 -0700651
Jesse Hallad250842017-03-10 18:35:38 -0800652// 12
Jesse Hall715b86a2016-01-16 16:34:29 -0800653@extension("VK_EXT_debug_report") @nonDispatchHandle type u64 VkDebugReportCallbackEXT
654
Jesse Hallad250842017-03-10 18:35:38 -0800655// 86
656@extension("VK_KHR_descriptor_update_template") @nonDispatchHandle type u64 VkDescriptorUpdateTemplateKHR
657
658// 87
Chris Forbes289cb792016-12-30 15:03:55 +1300659@extension("VK_NVX_device_generated_commands") @nonDispatchHandle type u64 VkObjectTableNVX
660@extension("VK_NVX_device_generated_commands") @nonDispatchHandle type u64 VkIndirectCommandsLayoutNVX
661
Jesse Hall8c954d32018-01-17 22:06:20 -0800662// 129
663@extension("VK_EXT_debug_utils") @nonDispatchHandle type u64 VkDebugUtilsMessengerEXT
664
Jesse Hall076f95d2017-09-20 11:34:47 -0700665// 157
666@extension("VK_KHR_sampler_ycbcr_conversion") @nonDispatchHandle type u64 VkSamplerYcbcrConversionKHR
667
Jesse Hall77726222017-09-19 14:49:27 -0500668// 161
669@extension("VK_EXT_validation_cache") @nonDispatchHandle type u64 VkValidationCacheEXT
Jesse Halld27f6aa2015-08-15 17:58:48 -0700670
Jesse Hallb5297192018-09-22 20:52:13 +0200671// 166
672@extension("VK_NVX_raytracing") @nonDispatchHandle type u64 VkAccelerationStructureNVX
673
Jesse Halld27f6aa2015-08-15 17:58:48 -0700674/////////////
675// Enums //
676/////////////
677
678enum VkImageLayout {
679 VK_IMAGE_LAYOUT_UNDEFINED = 0x00000000, /// Implicit layout an image is when its contents are undefined due to various reasons (e.g. right after creation)
680 VK_IMAGE_LAYOUT_GENERAL = 0x00000001, /// General layout when image can be used for any kind of access
681 VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL = 0x00000002, /// Optimal layout when image is only used for color attachment read/write
682 VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL = 0x00000003, /// Optimal layout when image is only used for depth/stencil attachment read/write
683 VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL = 0x00000004, /// Optimal layout when image is used for read only depth/stencil attachment and shader access
684 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 -0800685 VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL = 0x00000006, /// Optimal layout when image is used only as source of transfer operations
686 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 -0700687 VK_IMAGE_LAYOUT_PREINITIALIZED = 0x00000008, /// Initial layout used when the data is populated by the CPU
Jesse Hall1356b0d2015-11-23 17:24:58 -0800688
Ian Elliott28bd2c32017-10-13 09:21:12 -0600689 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -0400690 VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL = 1000117000,
691 VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL = 1000117001,
692
Jesse Hallad250842017-03-10 18:35:38 -0800693 //@extension("VK_KHR_swapchain") // 2
Jesse Hallbd888842015-11-30 21:44:14 -0800694 VK_IMAGE_LAYOUT_PRESENT_SRC_KHR = 1000001002,
Chris Forbesaf3a1112017-01-31 15:37:03 +1300695
Jesse Hall05556b12017-05-18 17:40:25 -0700696 //@extension("VK_KHR_shared_presentable_image") // 112
Chris Forbesaf3a1112017-01-31 15:37:03 +1300697 VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR = 1000111000,
Jesse Hall076f95d2017-09-20 11:34:47 -0700698
699 //@extension("VK_KHR_maintenance2") // 118
700 VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL_KHR = 1000117000,
701 VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL_KHR = 1000117001,
Jesse Hallb5297192018-09-22 20:52:13 +0200702
703 //@extension("VK_NV_shading_rate_image") // 165
704 VK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV = 1000164003,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700705}
706
707enum VkAttachmentLoadOp {
708 VK_ATTACHMENT_LOAD_OP_LOAD = 0x00000000,
709 VK_ATTACHMENT_LOAD_OP_CLEAR = 0x00000001,
710 VK_ATTACHMENT_LOAD_OP_DONT_CARE = 0x00000002,
711}
712
713enum VkAttachmentStoreOp {
714 VK_ATTACHMENT_STORE_OP_STORE = 0x00000000,
715 VK_ATTACHMENT_STORE_OP_DONT_CARE = 0x00000001,
716}
717
718enum VkImageType {
719 VK_IMAGE_TYPE_1D = 0x00000000,
720 VK_IMAGE_TYPE_2D = 0x00000001,
721 VK_IMAGE_TYPE_3D = 0x00000002,
722}
723
724enum VkImageTiling {
Jesse Hallc7467b72015-11-29 21:05:26 -0800725 VK_IMAGE_TILING_OPTIMAL = 0x00000000,
726 VK_IMAGE_TILING_LINEAR = 0x00000001,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700727}
728
729enum VkImageViewType {
730 VK_IMAGE_VIEW_TYPE_1D = 0x00000000,
731 VK_IMAGE_VIEW_TYPE_2D = 0x00000001,
732 VK_IMAGE_VIEW_TYPE_3D = 0x00000002,
733 VK_IMAGE_VIEW_TYPE_CUBE = 0x00000003,
734 VK_IMAGE_VIEW_TYPE_1D_ARRAY = 0x00000004,
735 VK_IMAGE_VIEW_TYPE_2D_ARRAY = 0x00000005,
736 VK_IMAGE_VIEW_TYPE_CUBE_ARRAY = 0x00000006,
737}
738
Jesse Hall3fbc8562015-11-29 22:10:52 -0800739enum VkCommandBufferLevel {
740 VK_COMMAND_BUFFER_LEVEL_PRIMARY = 0x00000000,
741 VK_COMMAND_BUFFER_LEVEL_SECONDARY = 0x00000001,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700742}
743
Jesse Hall65ab5522015-11-30 00:07:16 -0800744enum VkComponentSwizzle {
745 VK_COMPONENT_SWIZZLE_IDENTITY = 0x00000000,
746 VK_COMPONENT_SWIZZLE_ZERO = 0x00000001,
747 VK_COMPONENT_SWIZZLE_ONE = 0x00000002,
748 VK_COMPONENT_SWIZZLE_R = 0x00000003,
749 VK_COMPONENT_SWIZZLE_G = 0x00000004,
750 VK_COMPONENT_SWIZZLE_B = 0x00000005,
751 VK_COMPONENT_SWIZZLE_A = 0x00000006,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700752}
753
754enum VkDescriptorType {
755 VK_DESCRIPTOR_TYPE_SAMPLER = 0x00000000,
756 VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER = 0x00000001,
757 VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE = 0x00000002,
758 VK_DESCRIPTOR_TYPE_STORAGE_IMAGE = 0x00000003,
759 VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER = 0x00000004,
760 VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER = 0x00000005,
761 VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER = 0x00000006,
762 VK_DESCRIPTOR_TYPE_STORAGE_BUFFER = 0x00000007,
763 VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC = 0x00000008,
764 VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC = 0x00000009,
765 VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT = 0x0000000a,
Jesse Hall4af6c462018-09-10 09:04:25 -0700766
767 //@extension("VK_EXT_inline_uniform_block") // 139
768 VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT = 1000138000,
Jesse Hallb5297192018-09-22 20:52:13 +0200769
770 //@extension("VK_NVX_raytracing") // 166
771 VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NVX = 1000165000,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700772}
773
Jesse Halld27f6aa2015-08-15 17:58:48 -0700774enum VkQueryType {
775 VK_QUERY_TYPE_OCCLUSION = 0x00000000,
776 VK_QUERY_TYPE_PIPELINE_STATISTICS = 0x00000001, /// Optional
Jesse Halla3a7a1d2015-11-24 11:37:23 -0800777 VK_QUERY_TYPE_TIMESTAMP = 0x00000002,
Jesse Hallb5297192018-09-22 20:52:13 +0200778
779 //@extension("VK_NVX_raytracing") // 166
780 VK_QUERY_TYPE_COMPACTED_SIZE_NVX = 1000165000,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700781}
782
Jesse Halld27f6aa2015-08-15 17:58:48 -0700783enum VkBorderColor {
784 VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK = 0x00000000,
785 VK_BORDER_COLOR_INT_TRANSPARENT_BLACK = 0x00000001,
786 VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK = 0x00000002,
787 VK_BORDER_COLOR_INT_OPAQUE_BLACK = 0x00000003,
788 VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE = 0x00000004,
789 VK_BORDER_COLOR_INT_OPAQUE_WHITE = 0x00000005,
790}
791
792enum VkPipelineBindPoint {
Jesse Hallc7467b72015-11-29 21:05:26 -0800793 VK_PIPELINE_BIND_POINT_GRAPHICS = 0x00000000,
794 VK_PIPELINE_BIND_POINT_COMPUTE = 0x00000001,
Jesse Hallb5297192018-09-22 20:52:13 +0200795
796 //@extension("VK_NVX_raytracing") // 166
797 VK_PIPELINE_BIND_POINT_RAYTRACING_NVX = 1000165000,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700798}
799
800enum VkPrimitiveTopology {
801 VK_PRIMITIVE_TOPOLOGY_POINT_LIST = 0x00000000,
802 VK_PRIMITIVE_TOPOLOGY_LINE_LIST = 0x00000001,
803 VK_PRIMITIVE_TOPOLOGY_LINE_STRIP = 0x00000002,
804 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST = 0x00000003,
805 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP = 0x00000004,
806 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN = 0x00000005,
Jesse Hall3fbc8562015-11-29 22:10:52 -0800807 VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY = 0x00000006,
808 VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY = 0x00000007,
809 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY = 0x00000008,
810 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY = 0x00000009,
Jesse Hall091ed9e2015-11-30 00:55:29 -0800811 VK_PRIMITIVE_TOPOLOGY_PATCH_LIST = 0x0000000a,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700812}
813
814enum VkSharingMode {
815 VK_SHARING_MODE_EXCLUSIVE = 0x00000000,
816 VK_SHARING_MODE_CONCURRENT = 0x00000001,
817}
818
819enum VkIndexType {
820 VK_INDEX_TYPE_UINT16 = 0x00000000,
821 VK_INDEX_TYPE_UINT32 = 0x00000001,
822}
823
Jesse Hall23ff73f2015-11-29 14:36:39 -0800824enum VkFilter {
825 VK_FILTER_NEAREST = 0x00000000,
826 VK_FILTER_LINEAR = 0x00000001,
Jesse Hall26763382016-05-20 07:13:52 -0700827
Jesse Hallad250842017-03-10 18:35:38 -0800828 //@extension("VK_IMG_filter_cubic") // 16
Jesse Hall26763382016-05-20 07:13:52 -0700829 VK_FILTER_CUBIC_IMG = 1000015000,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700830}
831
Jesse Hall23ff73f2015-11-29 14:36:39 -0800832enum VkSamplerMipmapMode {
Jesse Hall23ff73f2015-11-29 14:36:39 -0800833 VK_SAMPLER_MIPMAP_MODE_NEAREST = 0x00000001, /// Choose nearest mip level
834 VK_SAMPLER_MIPMAP_MODE_LINEAR = 0x00000002, /// Linear filter between mip levels
Jesse Halld27f6aa2015-08-15 17:58:48 -0700835}
836
Jesse Hall23ff73f2015-11-29 14:36:39 -0800837enum VkSamplerAddressMode {
Jesse Hallc7467b72015-11-29 21:05:26 -0800838 VK_SAMPLER_ADDRESS_MODE_REPEAT = 0x00000000,
839 VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT = 0x00000001,
840 VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE = 0x00000002,
841 VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER = 0x00000003,
842 VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE = 0x00000004,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700843}
844
845enum VkCompareOp {
846 VK_COMPARE_OP_NEVER = 0x00000000,
847 VK_COMPARE_OP_LESS = 0x00000001,
848 VK_COMPARE_OP_EQUAL = 0x00000002,
Jesse Hall3fbc8562015-11-29 22:10:52 -0800849 VK_COMPARE_OP_LESS_OR_EQUAL = 0x00000003,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700850 VK_COMPARE_OP_GREATER = 0x00000004,
851 VK_COMPARE_OP_NOT_EQUAL = 0x00000005,
Jesse Hall3fbc8562015-11-29 22:10:52 -0800852 VK_COMPARE_OP_GREATER_OR_EQUAL = 0x00000006,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700853 VK_COMPARE_OP_ALWAYS = 0x00000007,
854}
855
Jesse Hall65ab5522015-11-30 00:07:16 -0800856enum VkPolygonMode {
857 VK_POLYGON_MODE_FILL = 0x00000000,
858 VK_POLYGON_MODE_LINE = 0x00000001,
859 VK_POLYGON_MODE_POINT = 0x00000002,
Jesse Hall7ba0ac72017-07-07 17:13:23 -0700860
861 //@extension("VK_NV_fill_rectangle") // 154
862 VK_POLYGON_MODE_FILL_RECTANGLE_NV = 1000153000,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700863}
864
865enum VkFrontFace {
Jesse Hall3fbc8562015-11-29 22:10:52 -0800866 VK_FRONT_FACE_COUNTER_CLOCKWISE = 0x00000000,
867 VK_FRONT_FACE_CLOCKWISE = 0x00000001,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700868}
869
Jesse Hall65ab5522015-11-30 00:07:16 -0800870enum VkBlendFactor {
871 VK_BLEND_FACTOR_ZERO = 0x00000000,
872 VK_BLEND_FACTOR_ONE = 0x00000001,
873 VK_BLEND_FACTOR_SRC_COLOR = 0x00000002,
874 VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR = 0x00000003,
875 VK_BLEND_FACTOR_DST_COLOR = 0x00000004,
876 VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR = 0x00000005,
877 VK_BLEND_FACTOR_SRC_ALPHA = 0x00000006,
878 VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA = 0x00000007,
879 VK_BLEND_FACTOR_DST_ALPHA = 0x00000008,
880 VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA = 0x00000009,
881 VK_BLEND_FACTOR_CONSTANT_COLOR = 0x0000000a,
882 VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR = 0x0000000b,
883 VK_BLEND_FACTOR_CONSTANT_ALPHA = 0x0000000c,
884 VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA = 0x0000000d,
885 VK_BLEND_FACTOR_SRC_ALPHA_SATURATE = 0x0000000e,
886 VK_BLEND_FACTOR_SRC1_COLOR = 0x0000000f,
887 VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR = 0x00000010,
888 VK_BLEND_FACTOR_SRC1_ALPHA = 0x00000011,
889 VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA = 0x00000012,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700890}
891
892enum VkBlendOp {
893 VK_BLEND_OP_ADD = 0x00000000,
894 VK_BLEND_OP_SUBTRACT = 0x00000001,
895 VK_BLEND_OP_REVERSE_SUBTRACT = 0x00000002,
896 VK_BLEND_OP_MIN = 0x00000003,
897 VK_BLEND_OP_MAX = 0x00000004,
Jesse Hall7ba0ac72017-07-07 17:13:23 -0700898
899 //@extension("VK_EXT_blend_operation_advanced") // 149
900 VK_BLEND_OP_ZERO_EXT = 1000148000,
901 VK_BLEND_OP_SRC_EXT = 1000148001,
902 VK_BLEND_OP_DST_EXT = 1000148002,
903 VK_BLEND_OP_SRC_OVER_EXT = 1000148003,
904 VK_BLEND_OP_DST_OVER_EXT = 1000148004,
905 VK_BLEND_OP_SRC_IN_EXT = 1000148005,
906 VK_BLEND_OP_DST_IN_EXT = 1000148006,
907 VK_BLEND_OP_SRC_OUT_EXT = 1000148007,
908 VK_BLEND_OP_DST_OUT_EXT = 1000148008,
909 VK_BLEND_OP_SRC_ATOP_EXT = 1000148009,
910 VK_BLEND_OP_DST_ATOP_EXT = 1000148010,
911 VK_BLEND_OP_XOR_EXT = 1000148011,
912 VK_BLEND_OP_MULTIPLY_EXT = 1000148012,
913 VK_BLEND_OP_SCREEN_EXT = 1000148013,
914 VK_BLEND_OP_OVERLAY_EXT = 1000148014,
915 VK_BLEND_OP_DARKEN_EXT = 1000148015,
916 VK_BLEND_OP_LIGHTEN_EXT = 1000148016,
917 VK_BLEND_OP_COLORDODGE_EXT = 1000148017,
918 VK_BLEND_OP_COLORBURN_EXT = 1000148018,
919 VK_BLEND_OP_HARDLIGHT_EXT = 1000148019,
920 VK_BLEND_OP_SOFTLIGHT_EXT = 1000148020,
921 VK_BLEND_OP_DIFFERENCE_EXT = 1000148021,
922 VK_BLEND_OP_EXCLUSION_EXT = 1000148022,
923 VK_BLEND_OP_INVERT_EXT = 1000148023,
924 VK_BLEND_OP_INVERT_RGB_EXT = 1000148024,
925 VK_BLEND_OP_LINEARDODGE_EXT = 1000148025,
926 VK_BLEND_OP_LINEARBURN_EXT = 1000148026,
927 VK_BLEND_OP_VIVIDLIGHT_EXT = 1000148027,
928 VK_BLEND_OP_LINEARLIGHT_EXT = 1000148028,
929 VK_BLEND_OP_PINLIGHT_EXT = 1000148029,
930 VK_BLEND_OP_HARDMIX_EXT = 1000148030,
931 VK_BLEND_OP_HSL_HUE_EXT = 1000148031,
932 VK_BLEND_OP_HSL_SATURATION_EXT = 1000148032,
933 VK_BLEND_OP_HSL_COLOR_EXT = 1000148033,
934 VK_BLEND_OP_HSL_LUMINOSITY_EXT = 1000148034,
935 VK_BLEND_OP_PLUS_EXT = 1000148035,
936 VK_BLEND_OP_PLUS_CLAMPED_EXT = 1000148036,
937 VK_BLEND_OP_PLUS_CLAMPED_ALPHA_EXT = 1000148037,
938 VK_BLEND_OP_PLUS_DARKER_EXT = 1000148038,
939 VK_BLEND_OP_MINUS_EXT = 1000148039,
940 VK_BLEND_OP_MINUS_CLAMPED_EXT = 1000148040,
941 VK_BLEND_OP_CONTRAST_EXT = 1000148041,
942 VK_BLEND_OP_INVERT_OVG_EXT = 1000148042,
943 VK_BLEND_OP_RED_EXT = 1000148043,
944 VK_BLEND_OP_GREEN_EXT = 1000148044,
945 VK_BLEND_OP_BLUE_EXT = 1000148045,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700946}
947
948enum VkStencilOp {
949 VK_STENCIL_OP_KEEP = 0x00000000,
950 VK_STENCIL_OP_ZERO = 0x00000001,
951 VK_STENCIL_OP_REPLACE = 0x00000002,
Jesse Hall3fbc8562015-11-29 22:10:52 -0800952 VK_STENCIL_OP_INCREMENT_AND_CLAMP = 0x00000003,
953 VK_STENCIL_OP_DECREMENT_AND_CLAMP = 0x00000004,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700954 VK_STENCIL_OP_INVERT = 0x00000005,
Jesse Hall3fbc8562015-11-29 22:10:52 -0800955 VK_STENCIL_OP_INCREMENT_AND_WRAP = 0x00000006,
956 VK_STENCIL_OP_DECREMENT_AND_WRAP = 0x00000007,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700957}
958
959enum VkLogicOp {
960 VK_LOGIC_OP_CLEAR = 0x00000000,
961 VK_LOGIC_OP_AND = 0x00000001,
962 VK_LOGIC_OP_AND_REVERSE = 0x00000002,
963 VK_LOGIC_OP_COPY = 0x00000003,
964 VK_LOGIC_OP_AND_INVERTED = 0x00000004,
Jesse Hall3fbc8562015-11-29 22:10:52 -0800965 VK_LOGIC_OP_NO_OP = 0x00000005,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700966 VK_LOGIC_OP_XOR = 0x00000006,
967 VK_LOGIC_OP_OR = 0x00000007,
968 VK_LOGIC_OP_NOR = 0x00000008,
Jesse Hall3fbc8562015-11-29 22:10:52 -0800969 VK_LOGIC_OP_EQUIVALENT = 0x00000009,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700970 VK_LOGIC_OP_INVERT = 0x0000000a,
971 VK_LOGIC_OP_OR_REVERSE = 0x0000000b,
972 VK_LOGIC_OP_COPY_INVERTED = 0x0000000c,
973 VK_LOGIC_OP_OR_INVERTED = 0x0000000d,
974 VK_LOGIC_OP_NAND = 0x0000000e,
975 VK_LOGIC_OP_SET = 0x0000000f,
976}
977
Jesse Hall3fbc8562015-11-29 22:10:52 -0800978enum VkSystemAllocationScope {
Jesse Hall3e0dc8f2015-11-30 00:42:57 -0800979 VK_SYSTEM_ALLOCATION_SCOPE_COMMAND = 0x00000000,
Jesse Hall3fbc8562015-11-29 22:10:52 -0800980 VK_SYSTEM_ALLOCATION_SCOPE_OBJECT = 0x00000001,
981 VK_SYSTEM_ALLOCATION_SCOPE_CACHE = 0x00000002,
982 VK_SYSTEM_ALLOCATION_SCOPE_DEVICE = 0x00000003,
983 VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE = 0x00000004,
Jesse Hall03b6fe12015-11-24 12:44:21 -0800984}
985
Jesse Hall3fbc8562015-11-29 22:10:52 -0800986enum VkInternalAllocationType {
987 VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE = 0x00000000,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700988}
989
990enum VkPhysicalDeviceType {
991 VK_PHYSICAL_DEVICE_TYPE_OTHER = 0x00000000,
992 VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU = 0x00000001,
993 VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU = 0x00000002,
994 VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU = 0x00000003,
995 VK_PHYSICAL_DEVICE_TYPE_CPU = 0x00000004,
996}
997
Jesse Hall65ab5522015-11-30 00:07:16 -0800998enum VkVertexInputRate {
999 VK_VERTEX_INPUT_RATE_VERTEX = 0x00000000,
1000 VK_VERTEX_INPUT_RATE_INSTANCE = 0x00000001,
Jesse Halld27f6aa2015-08-15 17:58:48 -07001001}
1002
1003/// Vulkan format definitions
1004enum VkFormat {
Jesse Hallf4ab2b12015-11-30 16:04:55 -08001005 VK_FORMAT_UNDEFINED = 0,
1006 VK_FORMAT_R4G4_UNORM_PACK8 = 1,
1007 VK_FORMAT_R4G4B4A4_UNORM_PACK16 = 2,
1008 VK_FORMAT_B4G4R4A4_UNORM_PACK16 = 3,
1009 VK_FORMAT_R5G6B5_UNORM_PACK16 = 4,
1010 VK_FORMAT_B5G6R5_UNORM_PACK16 = 5,
1011 VK_FORMAT_R5G5B5A1_UNORM_PACK16 = 6,
1012 VK_FORMAT_B5G5R5A1_UNORM_PACK16 = 7,
1013 VK_FORMAT_A1R5G5B5_UNORM_PACK16 = 8,
1014 VK_FORMAT_R8_UNORM = 9,
1015 VK_FORMAT_R8_SNORM = 10,
1016 VK_FORMAT_R8_USCALED = 11,
1017 VK_FORMAT_R8_SSCALED = 12,
1018 VK_FORMAT_R8_UINT = 13,
1019 VK_FORMAT_R8_SINT = 14,
1020 VK_FORMAT_R8_SRGB = 15,
1021 VK_FORMAT_R8G8_UNORM = 16,
1022 VK_FORMAT_R8G8_SNORM = 17,
1023 VK_FORMAT_R8G8_USCALED = 18,
1024 VK_FORMAT_R8G8_SSCALED = 19,
1025 VK_FORMAT_R8G8_UINT = 20,
1026 VK_FORMAT_R8G8_SINT = 21,
1027 VK_FORMAT_R8G8_SRGB = 22,
1028 VK_FORMAT_R8G8B8_UNORM = 23,
1029 VK_FORMAT_R8G8B8_SNORM = 24,
1030 VK_FORMAT_R8G8B8_USCALED = 25,
1031 VK_FORMAT_R8G8B8_SSCALED = 26,
1032 VK_FORMAT_R8G8B8_UINT = 27,
1033 VK_FORMAT_R8G8B8_SINT = 28,
1034 VK_FORMAT_R8G8B8_SRGB = 29,
1035 VK_FORMAT_B8G8R8_UNORM = 30,
1036 VK_FORMAT_B8G8R8_SNORM = 31,
1037 VK_FORMAT_B8G8R8_USCALED = 32,
1038 VK_FORMAT_B8G8R8_SSCALED = 33,
1039 VK_FORMAT_B8G8R8_UINT = 34,
1040 VK_FORMAT_B8G8R8_SINT = 35,
1041 VK_FORMAT_B8G8R8_SRGB = 36,
1042 VK_FORMAT_R8G8B8A8_UNORM = 37,
1043 VK_FORMAT_R8G8B8A8_SNORM = 38,
1044 VK_FORMAT_R8G8B8A8_USCALED = 39,
1045 VK_FORMAT_R8G8B8A8_SSCALED = 40,
1046 VK_FORMAT_R8G8B8A8_UINT = 41,
1047 VK_FORMAT_R8G8B8A8_SINT = 42,
1048 VK_FORMAT_R8G8B8A8_SRGB = 43,
1049 VK_FORMAT_B8G8R8A8_UNORM = 44,
1050 VK_FORMAT_B8G8R8A8_SNORM = 45,
1051 VK_FORMAT_B8G8R8A8_USCALED = 46,
1052 VK_FORMAT_B8G8R8A8_SSCALED = 47,
1053 VK_FORMAT_B8G8R8A8_UINT = 48,
1054 VK_FORMAT_B8G8R8A8_SINT = 49,
1055 VK_FORMAT_B8G8R8A8_SRGB = 50,
1056 VK_FORMAT_A8B8G8R8_UNORM_PACK32 = 51,
1057 VK_FORMAT_A8B8G8R8_SNORM_PACK32 = 52,
1058 VK_FORMAT_A8B8G8R8_USCALED_PACK32 = 53,
1059 VK_FORMAT_A8B8G8R8_SSCALED_PACK32 = 54,
1060 VK_FORMAT_A8B8G8R8_UINT_PACK32 = 55,
1061 VK_FORMAT_A8B8G8R8_SINT_PACK32 = 56,
1062 VK_FORMAT_A8B8G8R8_SRGB_PACK32 = 57,
1063 VK_FORMAT_A2R10G10B10_UNORM_PACK32 = 58,
1064 VK_FORMAT_A2R10G10B10_SNORM_PACK32 = 59,
1065 VK_FORMAT_A2R10G10B10_USCALED_PACK32 = 60,
1066 VK_FORMAT_A2R10G10B10_SSCALED_PACK32 = 61,
1067 VK_FORMAT_A2R10G10B10_UINT_PACK32 = 62,
1068 VK_FORMAT_A2R10G10B10_SINT_PACK32 = 63,
1069 VK_FORMAT_A2B10G10R10_UNORM_PACK32 = 64,
1070 VK_FORMAT_A2B10G10R10_SNORM_PACK32 = 65,
1071 VK_FORMAT_A2B10G10R10_USCALED_PACK32 = 66,
1072 VK_FORMAT_A2B10G10R10_SSCALED_PACK32 = 67,
1073 VK_FORMAT_A2B10G10R10_UINT_PACK32 = 68,
1074 VK_FORMAT_A2B10G10R10_SINT_PACK32 = 69,
1075 VK_FORMAT_R16_UNORM = 70,
1076 VK_FORMAT_R16_SNORM = 71,
1077 VK_FORMAT_R16_USCALED = 72,
1078 VK_FORMAT_R16_SSCALED = 73,
1079 VK_FORMAT_R16_UINT = 74,
1080 VK_FORMAT_R16_SINT = 75,
1081 VK_FORMAT_R16_SFLOAT = 76,
1082 VK_FORMAT_R16G16_UNORM = 77,
1083 VK_FORMAT_R16G16_SNORM = 78,
1084 VK_FORMAT_R16G16_USCALED = 79,
1085 VK_FORMAT_R16G16_SSCALED = 80,
1086 VK_FORMAT_R16G16_UINT = 81,
1087 VK_FORMAT_R16G16_SINT = 82,
1088 VK_FORMAT_R16G16_SFLOAT = 83,
1089 VK_FORMAT_R16G16B16_UNORM = 84,
1090 VK_FORMAT_R16G16B16_SNORM = 85,
1091 VK_FORMAT_R16G16B16_USCALED = 86,
1092 VK_FORMAT_R16G16B16_SSCALED = 87,
1093 VK_FORMAT_R16G16B16_UINT = 88,
1094 VK_FORMAT_R16G16B16_SINT = 89,
1095 VK_FORMAT_R16G16B16_SFLOAT = 90,
1096 VK_FORMAT_R16G16B16A16_UNORM = 91,
1097 VK_FORMAT_R16G16B16A16_SNORM = 92,
1098 VK_FORMAT_R16G16B16A16_USCALED = 93,
1099 VK_FORMAT_R16G16B16A16_SSCALED = 94,
1100 VK_FORMAT_R16G16B16A16_UINT = 95,
1101 VK_FORMAT_R16G16B16A16_SINT = 96,
1102 VK_FORMAT_R16G16B16A16_SFLOAT = 97,
1103 VK_FORMAT_R32_UINT = 98,
1104 VK_FORMAT_R32_SINT = 99,
1105 VK_FORMAT_R32_SFLOAT = 100,
1106 VK_FORMAT_R32G32_UINT = 101,
1107 VK_FORMAT_R32G32_SINT = 102,
1108 VK_FORMAT_R32G32_SFLOAT = 103,
1109 VK_FORMAT_R32G32B32_UINT = 104,
1110 VK_FORMAT_R32G32B32_SINT = 105,
1111 VK_FORMAT_R32G32B32_SFLOAT = 106,
1112 VK_FORMAT_R32G32B32A32_UINT = 107,
1113 VK_FORMAT_R32G32B32A32_SINT = 108,
1114 VK_FORMAT_R32G32B32A32_SFLOAT = 109,
1115 VK_FORMAT_R64_UINT = 110,
1116 VK_FORMAT_R64_SINT = 111,
1117 VK_FORMAT_R64_SFLOAT = 112,
1118 VK_FORMAT_R64G64_UINT = 113,
1119 VK_FORMAT_R64G64_SINT = 114,
1120 VK_FORMAT_R64G64_SFLOAT = 115,
1121 VK_FORMAT_R64G64B64_UINT = 116,
1122 VK_FORMAT_R64G64B64_SINT = 117,
1123 VK_FORMAT_R64G64B64_SFLOAT = 118,
1124 VK_FORMAT_R64G64B64A64_UINT = 119,
1125 VK_FORMAT_R64G64B64A64_SINT = 120,
1126 VK_FORMAT_R64G64B64A64_SFLOAT = 121,
1127 VK_FORMAT_B10G11R11_UFLOAT_PACK32 = 122,
1128 VK_FORMAT_E5B9G9R9_UFLOAT_PACK32 = 123,
1129 VK_FORMAT_D16_UNORM = 124,
1130 VK_FORMAT_X8_D24_UNORM_PACK32 = 125,
1131 VK_FORMAT_D32_SFLOAT = 126,
1132 VK_FORMAT_S8_UINT = 127,
1133 VK_FORMAT_D16_UNORM_S8_UINT = 128,
1134 VK_FORMAT_D24_UNORM_S8_UINT = 129,
1135 VK_FORMAT_D32_SFLOAT_S8_UINT = 130,
1136 VK_FORMAT_BC1_RGB_UNORM_BLOCK = 131,
1137 VK_FORMAT_BC1_RGB_SRGB_BLOCK = 132,
1138 VK_FORMAT_BC1_RGBA_UNORM_BLOCK = 133,
1139 VK_FORMAT_BC1_RGBA_SRGB_BLOCK = 134,
1140 VK_FORMAT_BC2_UNORM_BLOCK = 135,
1141 VK_FORMAT_BC2_SRGB_BLOCK = 136,
1142 VK_FORMAT_BC3_UNORM_BLOCK = 137,
1143 VK_FORMAT_BC3_SRGB_BLOCK = 138,
1144 VK_FORMAT_BC4_UNORM_BLOCK = 139,
1145 VK_FORMAT_BC4_SNORM_BLOCK = 140,
1146 VK_FORMAT_BC5_UNORM_BLOCK = 141,
1147 VK_FORMAT_BC5_SNORM_BLOCK = 142,
1148 VK_FORMAT_BC6H_UFLOAT_BLOCK = 143,
1149 VK_FORMAT_BC6H_SFLOAT_BLOCK = 144,
1150 VK_FORMAT_BC7_UNORM_BLOCK = 145,
1151 VK_FORMAT_BC7_SRGB_BLOCK = 146,
1152 VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK = 147,
1153 VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK = 148,
1154 VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK = 149,
1155 VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK = 150,
1156 VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK = 151,
1157 VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK = 152,
1158 VK_FORMAT_EAC_R11_UNORM_BLOCK = 153,
1159 VK_FORMAT_EAC_R11_SNORM_BLOCK = 154,
1160 VK_FORMAT_EAC_R11G11_UNORM_BLOCK = 155,
1161 VK_FORMAT_EAC_R11G11_SNORM_BLOCK = 156,
1162 VK_FORMAT_ASTC_4x4_UNORM_BLOCK = 157,
1163 VK_FORMAT_ASTC_4x4_SRGB_BLOCK = 158,
1164 VK_FORMAT_ASTC_5x4_UNORM_BLOCK = 159,
1165 VK_FORMAT_ASTC_5x4_SRGB_BLOCK = 160,
1166 VK_FORMAT_ASTC_5x5_UNORM_BLOCK = 161,
1167 VK_FORMAT_ASTC_5x5_SRGB_BLOCK = 162,
1168 VK_FORMAT_ASTC_6x5_UNORM_BLOCK = 163,
1169 VK_FORMAT_ASTC_6x5_SRGB_BLOCK = 164,
1170 VK_FORMAT_ASTC_6x6_UNORM_BLOCK = 165,
1171 VK_FORMAT_ASTC_6x6_SRGB_BLOCK = 166,
1172 VK_FORMAT_ASTC_8x5_UNORM_BLOCK = 167,
1173 VK_FORMAT_ASTC_8x5_SRGB_BLOCK = 168,
1174 VK_FORMAT_ASTC_8x6_UNORM_BLOCK = 169,
1175 VK_FORMAT_ASTC_8x6_SRGB_BLOCK = 170,
1176 VK_FORMAT_ASTC_8x8_UNORM_BLOCK = 171,
1177 VK_FORMAT_ASTC_8x8_SRGB_BLOCK = 172,
1178 VK_FORMAT_ASTC_10x5_UNORM_BLOCK = 173,
1179 VK_FORMAT_ASTC_10x5_SRGB_BLOCK = 174,
1180 VK_FORMAT_ASTC_10x6_UNORM_BLOCK = 175,
1181 VK_FORMAT_ASTC_10x6_SRGB_BLOCK = 176,
1182 VK_FORMAT_ASTC_10x8_UNORM_BLOCK = 177,
1183 VK_FORMAT_ASTC_10x8_SRGB_BLOCK = 178,
1184 VK_FORMAT_ASTC_10x10_UNORM_BLOCK = 179,
1185 VK_FORMAT_ASTC_10x10_SRGB_BLOCK = 180,
1186 VK_FORMAT_ASTC_12x10_UNORM_BLOCK = 181,
1187 VK_FORMAT_ASTC_12x10_SRGB_BLOCK = 182,
1188 VK_FORMAT_ASTC_12x12_UNORM_BLOCK = 183,
1189 VK_FORMAT_ASTC_12x12_SRGB_BLOCK = 184,
Chris Forbes289cb792016-12-30 15:03:55 +13001190
Ian Elliott28bd2c32017-10-13 09:21:12 -06001191 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04001192 VK_FORMAT_G8B8G8R8_422_UNORM = 1000156000,
1193 VK_FORMAT_B8G8R8G8_422_UNORM = 1000156001,
1194 VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM = 1000156002,
1195 VK_FORMAT_G8_B8R8_2PLANE_420_UNORM = 1000156003,
1196 VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM = 1000156004,
1197 VK_FORMAT_G8_B8R8_2PLANE_422_UNORM = 1000156005,
1198 VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM = 1000156006,
1199 VK_FORMAT_R10X6_UNORM_PACK16 = 1000156007,
1200 VK_FORMAT_R10X6G10X6_UNORM_2PACK16 = 1000156008,
1201 VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16 = 1000156009,
1202 VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16 = 1000156010,
1203 VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16 = 1000156011,
1204 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16 = 1000156012,
1205 VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16 = 1000156013,
1206 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16 = 1000156014,
1207 VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16 = 1000156015,
1208 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16 = 1000156016,
1209 VK_FORMAT_R12X4_UNORM_PACK16 = 1000156017,
1210 VK_FORMAT_R12X4G12X4_UNORM_2PACK16 = 1000156018,
1211 VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16 = 1000156019,
1212 VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16 = 1000156020,
1213 VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16 = 1000156021,
1214 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16 = 1000156022,
1215 VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16 = 1000156023,
1216 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16 = 1000156024,
1217 VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16 = 1000156025,
1218 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16 = 1000156026,
1219 VK_FORMAT_G16B16G16R16_422_UNORM = 1000156027,
1220 VK_FORMAT_B16G16R16G16_422_UNORM = 1000156028,
1221 VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM = 1000156029,
1222 VK_FORMAT_G16_B16R16_2PLANE_420_UNORM = 1000156030,
1223 VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM = 1000156031,
1224 VK_FORMAT_G16_B16R16_2PLANE_422_UNORM = 1000156032,
1225 VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM = 1000156033,
1226
Jesse Hallad250842017-03-10 18:35:38 -08001227 //@extension("VK_IMG_format_pvrtc") // 28
Jesse Halleb02c472017-02-24 15:13:45 -08001228 VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG = 1000054000,
1229 VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG = 1000054001,
1230 VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG = 1000054002,
1231 VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG = 1000054003,
1232 VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG = 1000054004,
1233 VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG = 1000054005,
1234 VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG = 1000054006,
1235 VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG = 1000054007,
Jesse Hall076f95d2017-09-20 11:34:47 -07001236
1237 //@extension("VK_KHR_sampler_ycbcr_conversion") // 157
1238 VK_FORMAT_G8B8G8R8_422_UNORM_KHR = 1000156000,
1239 VK_FORMAT_B8G8R8G8_422_UNORM_KHR = 1000156001,
1240 VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM_KHR = 1000156002,
1241 VK_FORMAT_G8_B8R8_2PLANE_420_UNORM_KHR = 1000156003,
1242 VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM_KHR = 1000156004,
1243 VK_FORMAT_G8_B8R8_2PLANE_422_UNORM_KHR = 1000156005,
1244 VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM_KHR = 1000156006,
1245 VK_FORMAT_R10X6_UNORM_PACK16_KHR = 1000156007,
1246 VK_FORMAT_R10X6G10X6_UNORM_2PACK16_KHR = 1000156008,
1247 VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16_KHR = 1000156009,
1248 VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16_KHR = 1000156010,
1249 VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16_KHR = 1000156011,
1250 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16_KHR = 1000156012,
1251 VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16_KHR = 1000156013,
1252 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16_KHR = 1000156014,
1253 VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16_KHR = 1000156015,
1254 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16_KHR = 1000156016,
1255 VK_FORMAT_R12X4_UNORM_PACK16_KHR = 1000156017,
1256 VK_FORMAT_R12X4G12X4_UNORM_2PACK16_KHR = 1000156018,
1257 VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16_KHR = 1000156019,
1258 VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16_KHR = 1000156020,
1259 VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16_KHR = 1000156021,
1260 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16_KHR = 1000156022,
1261 VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16_KHR = 1000156023,
1262 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16_KHR = 1000156024,
1263 VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16_KHR = 1000156025,
1264 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16_KHR = 1000156026,
1265 VK_FORMAT_G16B16G16R16_422_UNORM_KHR = 1000156027,
1266 VK_FORMAT_B16G16R16G16_422_UNORM_KHR = 1000156028,
1267 VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM_KHR = 1000156029,
1268 VK_FORMAT_G16_B16R16_2PLANE_420_UNORM_KHR = 1000156030,
1269 VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM_KHR = 1000156031,
1270 VK_FORMAT_G16_B16R16_2PLANE_422_UNORM_KHR = 1000156032,
1271 VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM_KHR = 1000156033,
Jesse Halld27f6aa2015-08-15 17:58:48 -07001272}
1273
Jesse Halld27f6aa2015-08-15 17:58:48 -07001274/// Structure type enumerant
1275enum VkStructureType {
1276 VK_STRUCTURE_TYPE_APPLICATION_INFO = 0,
Jesse Hallc7467b72015-11-29 21:05:26 -08001277 VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO = 1,
1278 VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO = 2,
1279 VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO = 3,
1280 VK_STRUCTURE_TYPE_SUBMIT_INFO = 4,
Jesse Hallf4ab2b12015-11-30 16:04:55 -08001281 VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO = 5,
Jesse Hallc7467b72015-11-29 21:05:26 -08001282 VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE = 6,
1283 VK_STRUCTURE_TYPE_BIND_SPARSE_INFO = 7,
1284 VK_STRUCTURE_TYPE_FENCE_CREATE_INFO = 8,
1285 VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO = 9,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07001286 VK_STRUCTURE_TYPE_EVENT_CREATE_INFO = 10,
Jesse Hallc7467b72015-11-29 21:05:26 -08001287 VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO = 11,
1288 VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO = 12,
1289 VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO = 13,
1290 VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO = 14,
1291 VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO = 15,
1292 VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO = 16,
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08001293 VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO = 17,
1294 VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO = 18,
1295 VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO = 19,
1296 VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO = 20,
1297 VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO = 21,
1298 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO = 22,
1299 VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO = 23,
1300 VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO = 24,
1301 VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO = 25,
1302 VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO = 26,
1303 VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO = 27,
1304 VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO = 28,
1305 VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO = 29,
1306 VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO = 30,
1307 VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO = 31,
1308 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO = 32,
1309 VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO = 33,
Jesse Hallf4ab2b12015-11-30 16:04:55 -08001310 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO = 34,
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08001311 VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET = 35,
1312 VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET = 36,
1313 VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO = 37,
1314 VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO = 38,
1315 VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO = 39,
Jesse Hallf4ab2b12015-11-30 16:04:55 -08001316 VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO = 40,
Jesse Hall3dd678a2016-01-08 21:52:01 -08001317 VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO = 41,
1318 VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO = 42,
1319 VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO = 43,
1320 VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER = 44,
1321 VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER = 45,
1322 VK_STRUCTURE_TYPE_MEMORY_BARRIER = 46,
1323 VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO = 47,
1324 VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO = 48,
Jesse Hall1356b0d2015-11-23 17:24:58 -08001325
Ian Elliott28bd2c32017-10-13 09:21:12 -06001326 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04001327 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES = 1000094000,
1328 VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO = 1000157000,
1329 VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO = 1000157001,
1330 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES = 1000083000,
1331 VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS = 1000127000,
1332 VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO = 1000127001,
1333 VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO = 1000060000,
1334 VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO = 1000060003,
1335 VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO = 1000060004,
1336 VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO = 1000060005,
1337 VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO = 1000060006,
1338 VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO = 1000060013,
1339 VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO = 1000060014,
1340 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES = 1000070000,
1341 VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO = 1000070001,
1342 VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2 = 1000146000,
1343 VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2 = 1000146001,
1344 VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2 = 1000146002,
1345 VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2 = 1000146003,
1346 VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2 = 1000146004,
1347 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2 = 1000059000,
1348 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2 = 1000059001,
1349 VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2 = 1000059002,
1350 VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2 = 1000059003,
1351 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2 = 1000059004,
1352 VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2 = 1000059005,
1353 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2 = 1000059006,
1354 VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2 = 1000059007,
1355 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2 = 1000059008,
1356 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES = 1000117000,
1357 VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO = 1000117001,
1358 VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO = 1000117002,
1359 VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO = 1000117003,
1360 VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO = 1000053000,
1361 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES = 1000053001,
1362 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES = 1000053002,
1363 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES = 1000120000,
1364 VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO = 1000145000,
1365 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES = 1000145001,
1366 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES = 1000145002,
1367 VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2 = 1000145003,
1368 VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO = 1000156000,
1369 VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO = 1000156001,
1370 VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO = 1000156002,
1371 VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO = 1000156003,
1372 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES = 1000156004,
1373 VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES = 1000156005,
1374 VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO = 1000085000,
1375 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO = 1000071000,
1376 VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES = 1000071001,
1377 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO = 1000071002,
1378 VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES = 1000071003,
1379 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES = 1000071004,
1380 VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO = 1000072000,
1381 VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO = 1000072001,
1382 VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO = 1000072002,
1383 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO = 1000112000,
1384 VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES = 1000112001,
1385 VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO = 1000113000,
1386 VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO = 1000077000,
1387 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO = 1000076000,
1388 VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES = 1000076001,
1389 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES = 1000168000,
1390 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT = 1000168001,
1391 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES = 1000063000,
1392 VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR = 1000060007,
1393
Jesse Hallad250842017-03-10 18:35:38 -08001394 //@extension("VK_KHR_swapchain") // 2
Jesse Hallbd888842015-11-30 21:44:14 -08001395 VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR = 1000001000,
1396 VK_STRUCTURE_TYPE_PRESENT_INFO_KHR = 1000001001,
Daniel Koch09f7bf92017-10-05 00:26:58 -04001397 // added as interaction from VK_KHR_device_group / VK 1.1
1398 VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR = 1000060008,
1399 VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR = 1000060009,
1400 VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR = 1000060010,
1401 VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR = 1000060011,
1402 VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR = 1000060012,
Jesse Hall1356b0d2015-11-23 17:24:58 -08001403
Jesse Hallad250842017-03-10 18:35:38 -08001404 //@extension("VK_KHR_display") // 3
Jesse Hallbd888842015-11-30 21:44:14 -08001405 VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR = 1000002000,
1406 VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR = 1000002001,
Jesse Hall1356b0d2015-11-23 17:24:58 -08001407
Jesse Hallad250842017-03-10 18:35:38 -08001408 //@extension("VK_KHR_display_swapchain") // 4
Jesse Hallbd888842015-11-30 21:44:14 -08001409 VK_STRUCTURE_TYPE_DISPLAY_DISPLAY_PRESENT_INFO_KHR = 1000003000,
Jesse Hallf9fa9a52016-01-08 16:08:51 -08001410
Jesse Hallad250842017-03-10 18:35:38 -08001411 //@extension("VK_KHR_xlib_surface") // 5
Jesse Hallf9fa9a52016-01-08 16:08:51 -08001412 VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR = 1000004000,
1413
Jesse Hallad250842017-03-10 18:35:38 -08001414 //@extension("VK_KHR_xcb_surface") // 6
Jesse Hallf9fa9a52016-01-08 16:08:51 -08001415 VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR = 1000005000,
1416
Jesse Hallad250842017-03-10 18:35:38 -08001417 //@extension("VK_KHR_wayland_surface") // 7
Jesse Hallf9fa9a52016-01-08 16:08:51 -08001418 VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR = 1000006000,
1419
Jesse Hallad250842017-03-10 18:35:38 -08001420 //@extension("VK_KHR_mir_surface") // 8
Jesse Hallf9fa9a52016-01-08 16:08:51 -08001421 VK_STRUCTURE_TYPE_MIR_SURFACE_CREATE_INFO_KHR = 1000007000,
1422
Jesse Hallad250842017-03-10 18:35:38 -08001423 //@extension("VK_KHR_android_surface") // 9
Jesse Hallf9fa9a52016-01-08 16:08:51 -08001424 VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR = 1000008000,
1425
Jesse Hallad250842017-03-10 18:35:38 -08001426 //@extension("VK_KHR_win32_surface") // 10
Jesse Hallf9fa9a52016-01-08 16:08:51 -08001427 VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR = 1000009000,
Jesse Hall543a7ff2016-01-08 16:38:30 -08001428
Jesse Hallad250842017-03-10 18:35:38 -08001429 //@extension("VK_ANDROID_native_buffer") // 11
Chia-I Wub262ddc2016-03-22 07:38:20 +08001430 VK_STRUCTURE_TYPE_NATIVE_BUFFER_ANDROID = 1000010000,
Chris Forbes8e4438b2016-12-07 16:26:49 +13001431 VK_STRUCTURE_TYPE_SWAPCHAIN_IMAGE_CREATE_INFO_ANDROID = 1000010001,
Chris Forbes1d4e5542017-02-15 19:38:50 +13001432 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENTATION_PROPERTIES_ANDROID = 1000010002,
Chia-I Wub262ddc2016-03-22 07:38:20 +08001433
Jesse Hallad250842017-03-10 18:35:38 -08001434 //@extension("VK_EXT_debug_report") // 12
Jesse Hall26763382016-05-20 07:13:52 -07001435 VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT = 1000011000,
1436
Jesse Hallad250842017-03-10 18:35:38 -08001437 //@extension("VK_AMD_rasterization_order") // 19
Jesse Hall26763382016-05-20 07:13:52 -07001438 VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD = 1000018000,
1439
Jesse Hallad250842017-03-10 18:35:38 -08001440 //@extension("VK_EXT_debug_marker") // 23
Jesse Hall26763382016-05-20 07:13:52 -07001441 VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT = 1000022000,
Jesse Hall26763382016-05-20 07:13:52 -07001442 VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT = 1000022001,
Jesse Hall26763382016-05-20 07:13:52 -07001443 VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT = 1000022002,
Jesse Hall56d386a2016-07-26 15:20:40 -07001444
Jesse Hallad250842017-03-10 18:35:38 -08001445 //@extension("VK_NV_dedicated_allocation") // 27
Jesse Hall56d386a2016-07-26 15:20:40 -07001446 VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV = 1000026000,
Jesse Hall56d386a2016-07-26 15:20:40 -07001447 VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV = 1000026001,
Jesse Hall56d386a2016-07-26 15:20:40 -07001448 VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV = 1000026002,
Chris Forbes289cb792016-12-30 15:03:55 +13001449
Jesse Hall7ba0ac72017-07-07 17:13:23 -07001450 //@extension("VK_AMD_texture_gather_bias_lod") // 42
1451 VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD = 1000041000,
1452
Jesse Hallb5297192018-09-22 20:52:13 +02001453 //@extension("VK_NV_corner_sampled_image") // 51
1454 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV = 1000050000,
1455
Daniel Koch09f7bf92017-10-05 00:26:58 -04001456 //@extension("VK_KHR_multiview") // 54
1457 VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO_KHR = 1000053000,
1458 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES_KHR = 1000053001,
1459 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES_KHR = 1000053002,
Jesse Hallad250842017-03-10 18:35:38 -08001460
1461 //@extension("VK_NV_external_memory") // 57
Jesse Halleb02c472017-02-24 15:13:45 -08001462 VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV = 1000056000,
1463 VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV = 1000056001,
Chris Forbes289cb792016-12-30 15:03:55 +13001464
Jesse Hallad250842017-03-10 18:35:38 -08001465 //@extension("VK_NV_external_memory_win32") // 58
Jesse Halleb02c472017-02-24 15:13:45 -08001466 VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV = 1000057000,
1467 VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV = 1000057001,
Chris Forbes289cb792016-12-30 15:03:55 +13001468
Jesse Hallad250842017-03-10 18:35:38 -08001469 //@extension("VK_NV_win32_keyed_mutex") // 59
Chris Forbes289cb792016-12-30 15:03:55 +13001470 VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV = 1000058000,
1471
Jesse Hallad250842017-03-10 18:35:38 -08001472 //@extension("VK_KHR_get_physical_device_properties2") // 60
Jesse Hall889cd9a2017-02-25 22:12:23 -08001473 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2_KHR = 1000059000,
1474 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2_KHR = 1000059001,
1475 VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2_KHR = 1000059002,
1476 VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2_KHR = 1000059003,
1477 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2_KHR = 1000059004,
1478 VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2_KHR = 1000059005,
1479 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2_KHR = 1000059006,
1480 VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2_KHR = 1000059007,
Chris Forbes1194ede2016-12-30 16:29:25 +13001481 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2_KHR = 1000059008,
1482
Daniel Koch09f7bf92017-10-05 00:26:58 -04001483 //@extension("VK_KHR_device_group") // 61
1484 VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO_KHR = 1000060000,
1485 VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO_KHR = 1000060003,
1486 VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO_KHR = 1000060004,
1487 VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO_KHR = 1000060005,
1488 VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO_KHR = 1000060006,
1489 VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR = 1000060007,
1490 // tokens 08-12 are listed with VK_KHR_swapchain
1491 VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO_KHR = 1000060013,
1492 VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO_KHR = 1000060014,
Jesse Hallad250842017-03-10 18:35:38 -08001493
1494 //@extension("VK_EXT_validation_flags") // 62
Jesse Halleb02c472017-02-24 15:13:45 -08001495 VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT = 1000061000,
Chris Forbes289cb792016-12-30 15:03:55 +13001496
Jesse Hallad250842017-03-10 18:35:38 -08001497 //@extension("VK_NN_vi_surface") // 63
Jesse Hall77ad05b2017-03-10 22:02:20 -08001498 VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN = 1000062000,
1499
Jesse Hall4af6c462018-09-10 09:04:25 -07001500 //@extension("VK_EXT_astc_decode_mode") // 68
1501 VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT = 1000067000,
1502 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT = 1000067001,
1503
Daniel Koch09f7bf92017-10-05 00:26:58 -04001504 //@extension("VK_KHR_device_group_creation") // 71
1505 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES_KHR = 1000070000,
1506 VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO_KHR = 1000070001,
Jesse Hallad250842017-03-10 18:35:38 -08001507
Jesse Hall9492f992017-08-28 12:10:06 -07001508 //@extension("VK_KHR_external_memory_capabilities") // 72
1509 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO_KHR = 1000071000,
1510 VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES_KHR = 1000071001,
1511 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO_KHR = 1000071002,
1512 VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES_KHR = 1000071003,
1513 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES_KHR = 1000071004,
Jesse Hallad250842017-03-10 18:35:38 -08001514
Jesse Hall9492f992017-08-28 12:10:06 -07001515 //@extension("VK_KHR_external_memory") // 73
1516 VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO_KHR = 1000072000,
1517 VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_KHR = 1000072001,
1518 VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_KHR = 1000072002,
Jesse Hallad250842017-03-10 18:35:38 -08001519
Jesse Hall9492f992017-08-28 12:10:06 -07001520 //@extension("VK_KHR_external_memory_win32") // 74
1521 VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR = 1000073000,
1522 VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR = 1000073001,
1523 VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR = 1000073002,
Jesse Hallad250842017-03-10 18:35:38 -08001524
Jesse Hall9492f992017-08-28 12:10:06 -07001525 //@extension("VK_KHR_external_memory_fd") // 75
1526 VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR = 1000074000,
1527 VK_STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR = 1000074001,
Jesse Hallad250842017-03-10 18:35:38 -08001528
Jesse Hall9492f992017-08-28 12:10:06 -07001529 //@extension("VK_KHR_win32_keyed_mutex") // 76
1530 VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR = 1000075000,
Jesse Hallad250842017-03-10 18:35:38 -08001531
Jesse Hall9492f992017-08-28 12:10:06 -07001532 //@extension("VK_KHR_external_semaphore_capabilities") // 77
1533 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO_KHR = 1000076000,
1534 VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES_KHR = 1000076001,
Jesse Hallad250842017-03-10 18:35:38 -08001535
Jesse Hall9492f992017-08-28 12:10:06 -07001536 //@extension("VK_KHR_external_semaphore") // 78
1537 VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO_KHR = 1000077000,
Jesse Hallad250842017-03-10 18:35:38 -08001538
Jesse Hall9492f992017-08-28 12:10:06 -07001539 //@extension("VK_KHR_external_semaphore_win32") // 79
1540 VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR = 1000078000,
1541 VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR = 1000078001,
1542 VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR = 1000078002,
Jesse Hallad250842017-03-10 18:35:38 -08001543
Jesse Hall9492f992017-08-28 12:10:06 -07001544 //@extension("VK_KHR_external_semaphore_fd") // 80
1545 VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR = 1000079000,
1546 VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR = 1000079001,
Jesse Hallad250842017-03-10 18:35:38 -08001547
1548 //@extension("VK_KHR_push_descriptor") // 81
1549 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR = 1000080000,
1550
Jesse Hall9492f992017-08-28 12:10:06 -07001551 //@extension("VK_KHR_16bit_storage") // 84
1552 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES_KHR = 1000083000,
1553
Jesse Hallad250842017-03-10 18:35:38 -08001554 //@extension("VK_KHR_incremental_present") // 85
Jesse Hall889cd9a2017-02-25 22:12:23 -08001555 VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR = 1000084000,
Chris Forbes289cb792016-12-30 15:03:55 +13001556
Jesse Halla13a3cf2018-07-09 15:51:52 -07001557 //@extension("VK_EXT_conditional_rendering") // 82
1558 VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT = 1000081000,
1559 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT = 1000081001,
1560 VK_STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT = 1000081002,
1561
Jesse Hallad250842017-03-10 18:35:38 -08001562 //@extension("VK_KHR_descriptor_update_template") // 86
1563 VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO_KHR = 1000085000,
1564
1565 //@extension("VK_NVX_device_generated_commands") // 87
Jesse Halleb02c472017-02-24 15:13:45 -08001566 VK_STRUCTURE_TYPE_OBJECT_TABLE_CREATE_INFO_NVX = 1000086000,
1567 VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NVX = 1000086001,
1568 VK_STRUCTURE_TYPE_CMD_PROCESS_COMMANDS_INFO_NVX = 1000086002,
1569 VK_STRUCTURE_TYPE_CMD_RESERVE_SPACE_FOR_COMMANDS_INFO_NVX = 1000086003,
1570 VK_STRUCTURE_TYPE_DEVICE_GENERATED_COMMANDS_LIMITS_NVX = 1000086004,
1571 VK_STRUCTURE_TYPE_DEVICE_GENERATED_COMMANDS_FEATURES_NVX = 1000086005,
Jesse Hall77ad05b2017-03-10 22:02:20 -08001572
Jesse Hallad250842017-03-10 18:35:38 -08001573 //@extension("VK_NV_clip_space_w_scaling") // 88
1574 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV = 1000087000,
1575
1576 //@extension("VK_EXT_display_surface_counter") // 91
Jesse Hall77726222017-09-19 14:49:27 -05001577 VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT = 1000090000,
Jesse Hall77ad05b2017-03-10 22:02:20 -08001578
Jesse Hallad250842017-03-10 18:35:38 -08001579 //@extension("VK_EXT_display_control") // 92
Jesse Hall77ad05b2017-03-10 22:02:20 -08001580 VK_STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT = 1000091000,
1581 VK_STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT = 1000091001,
1582 VK_STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT = 1000091002,
1583 VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT = 1000091003,
Jesse Hallad250842017-03-10 18:35:38 -08001584
1585 //@extension("VK_GOOGLE_display_timing") // 93
1586 VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE = 1000092000,
1587
1588 //@extension("VK_NVX_multiview_per_view_attributes") // 98
1589 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX = 1000097000,
1590
1591 //@extension("VK_NV_viewport_swizzle") // 99
1592 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV = 1000098000,
1593
1594 //@extension("VK_EXT_discard_rectangles") // 100
1595 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT = 1000099000,
1596 VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT = 1000099001,
1597
Jesse Hall8c954d32018-01-17 22:06:20 -08001598 //@extension("VK_EXT_conservative_rasterization") // 102
1599 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT = 1000101000,
1600 VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT = 1000101001,
1601
Jesse Halla13a3cf2018-07-09 15:51:52 -07001602 //@extension("VK_KHR_create_renderpass2") // 110
1603 VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2_KHR = 1000109000,
1604 VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2_KHR = 1000109001,
1605 VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2_KHR = 1000109002,
1606 VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2_KHR = 1000109003,
1607 VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2_KHR = 1000109004,
1608 VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO_KHR = 1000109005,
1609 VK_STRUCTURE_TYPE_SUBPASS_END_INFO_KHR = 1000109006,
1610
Jesse Hallfdc8ab32017-03-10 21:01:57 -08001611 //@extension("VK_EXT_hdr_metadata") // 106
1612 VK_STRUCTURE_TYPE_HDR_METADATA_EXT = 1000105000,
1613
Jesse Hall05556b12017-05-18 17:40:25 -07001614 //@extension("VK_KHR_shared_presentable_image") // 112
Chris Forbese2d3ee12017-03-16 16:10:15 +13001615 VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR = 1000111000,
1616
Jesse Hall9492f992017-08-28 12:10:06 -07001617 //@extension("VK_KHR_external_fence_capabilities") // 113
1618 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO_KHR = 1000112000,
1619 VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES_KHR = 1000112001,
1620
1621 //@extension("VK_KHR_external_fence") // 114
1622 VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO_KHR = 1000113000,
1623
1624 //@extension("VK_KHR_external_fence_win32") // 115
1625 VK_STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR = 1000114000,
1626 VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR = 1000114001,
1627 VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR = 1000114002,
1628
1629 //@extension("VK_KHR_external_fence_fd") // 117
1630 VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR = 1000115000,
1631 VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR = 1000115001,
1632
Jesse Hall076f95d2017-09-20 11:34:47 -07001633 //@extension("VK_KHR_maintenance2") // 118
1634 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES_KHR = 1000117000,
1635 VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO_KHR = 1000117001,
1636 VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO_KHR = 1000117002,
1637 VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO_KHR = 1000117003,
1638
Jesse Hall05556b12017-05-18 17:40:25 -07001639 //@extension("VK_KHR_get_surface_capabilities2") // 120
Chris Forbese2d3ee12017-03-16 16:10:15 +13001640 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR = 1000119000,
1641 VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR = 1000119001,
1642 VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR = 1000119002,
1643
Jesse Hall9492f992017-08-28 12:10:06 -07001644 //@extension("VK_KHR_variable_pointers") // 121
1645 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES_KHR = 1000120000,
1646
Jesse Hall54f8d132018-04-18 08:16:59 -07001647 //@extension("VK_KHR_display_properties2") // 122
1648 VK_STRUCTURE_TYPE_DISPLAY_PROPERTIES_2_KHR = 1000121000,
1649 VK_STRUCTURE_TYPE_DISPLAY_PLANE_PROPERTIES_2_KHR = 1000121001,
1650 VK_STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR = 1000121002,
1651 VK_STRUCTURE_TYPE_DISPLAY_PLANE_INFO_2_KHR = 1000121003,
1652 VK_STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR = 1000121004,
1653
Jesse Hallad250842017-03-10 18:35:38 -08001654 //@extension("VK_MVK_ios_surface") // 123
1655 VK_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK = 1000122000,
1656
1657 //@extension("VK_MVK_macos_surface") // 124
1658 VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK = 1000123000,
Jesse Hall7ba0ac72017-07-07 17:13:23 -07001659
Jesse Hall9492f992017-08-28 12:10:06 -07001660 //@extension("VK_KHR_dedicated_allocation") // 128
1661 VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS_KHR = 1000127000,
1662 VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO_KHR = 1000127001,
1663
Jesse Hall8c954d32018-01-17 22:06:20 -08001664 //@extension("VK_EXT_debug_utils") // 129
1665 VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT = 1000128000,
1666 VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT = 1000128001,
1667 VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT = 1000128002,
1668 VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT = 1000128003,
1669 VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT = 1000128004,
1670
Jesse Hall36215a92018-01-18 15:04:37 -08001671 //@extension("VK_ANDROID_external_memory_android_hardware_buffer") // 130
1672 VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID = 1000129000,
1673 VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID = 1000129001,
1674 VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID = 1000129002,
1675 VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID = 1000129003,
1676 VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID = 1000129004,
1677 VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID = 1000129005,
1678
Jesse Hall7ba0ac72017-07-07 17:13:23 -07001679 //@extension("VK_EXT_sampler_filter_minmax") // 131
1680 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES_EXT = 1000130000,
1681 VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO_EXT = 1000130001,
1682
Jesse Hall4af6c462018-09-10 09:04:25 -07001683 //@extension("VK_EXT_inline_uniform_block") // 139
1684 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT = 1000138000,
1685 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES_EXT = 1000138001,
1686 VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK_EXT = 1000138002,
1687 VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO_EXT = 1000138003,
1688
Jesse Hall77726222017-09-19 14:49:27 -05001689 //@extension("VK_EXT_sample_locations") // 144
1690 VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT = 1000143000,
1691 VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT = 1000143001,
1692 VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT = 1000143002,
1693 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT = 1000143003,
1694 VK_STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT = 1000143004,
1695
Jesse Hall9492f992017-08-28 12:10:06 -07001696 //@extension("VK_KHR_get_memory_requirements2") // 147
1697 VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2_KHR = 1000146000,
1698 VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2_KHR = 1000146001,
1699 VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2_KHR = 1000146002,
1700 VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2_KHR = 1000146003,
1701 VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2_KHR = 1000146004,
1702
Jesse Hall076f95d2017-09-20 11:34:47 -07001703 //@extension("VK_KHR_image_format_list") // 148
1704 VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO_KHR = 1000147000,
1705
Jesse Hall7ba0ac72017-07-07 17:13:23 -07001706 //@extension("VK_EXT_blend_operation_advanced") // 149
1707 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT = 1000148000,
1708 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT = 1000148001,
1709 VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT = 1000148002,
1710
1711 //@extension("VK_NV_fragment_coverage_to_color") // 150
1712 VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV = 1000149000,
1713
Jesse Hall77726222017-09-19 14:49:27 -05001714 //@extension("VK_NV_framebuffer_mixed_samples") // 153
Jesse Hall7ba0ac72017-07-07 17:13:23 -07001715 VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV = 1000152000,
Jesse Hall77726222017-09-19 14:49:27 -05001716
Jesse Hall076f95d2017-09-20 11:34:47 -07001717 //@extension("VK_KHR_sampler_ycbcr_conversion") // 157
1718 VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO_KHR = 1000156000,
1719 VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO_KHR = 1000156001,
1720 VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO_KHR = 1000156002,
1721 VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO_KHR = 1000156003,
1722 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES_KHR = 1000156004,
1723 VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES_KHR = 1000156005,
1724
1725 //@extension("VK_KHR_bind_memory2") // 158
1726 VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO_KHR = 1000157000,
1727 VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO_KHR = 1000157001,
1728
Jesse Hall77726222017-09-19 14:49:27 -05001729 //@extension("VK_EXT_validation_cache") // 161
1730 VK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT = 1000160000,
1731 VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT = 1000160001,
Daniel Koch09f7bf92017-10-05 00:26:58 -04001732
Jesse Hall72e6a132018-04-06 13:00:44 -07001733 //@extension("VK_EXT_descriptor_indexing") // 162
1734 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO_EXT = 1000161000,
1735 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES_EXT = 1000161001,
1736 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES_EXT = 1000161002,
1737 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO_EXT = 1000161003,
1738 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT_EXT = 1000161004,
1739
Jesse Hallb5297192018-09-22 20:52:13 +02001740 //@extension("VK_NV_shading_rate_image") // 165
1741 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV = 1000164000,
1742 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV = 1000164001,
1743 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV = 1000164002,
1744 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV = 1000164005,
1745
1746 //@extension("VK_NVX_raytracing") // 166
1747 VK_STRUCTURE_TYPE_RAYTRACING_PIPELINE_CREATE_INFO_NVX = 1000165000,
1748 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NVX = 1000165001,
1749 VK_STRUCTURE_TYPE_GEOMETRY_INSTANCE_NVX = 1000165002,
1750 VK_STRUCTURE_TYPE_GEOMETRY_NVX = 1000165003,
1751 VK_STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NVX = 1000165004,
1752 VK_STRUCTURE_TYPE_GEOMETRY_AABB_NVX = 1000165005,
1753 VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NVX = 1000165006,
1754 VK_STRUCTURE_TYPE_DESCRIPTOR_ACCELERATION_STRUCTURE_INFO_NVX = 1000165007,
1755 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NVX = 1000165008,
1756 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAYTRACING_PROPERTIES_NVX = 1000165009,
1757 VK_STRUCTURE_TYPE_HIT_SHADER_MODULE_CREATE_INFO_NVX = 1000165010,
1758
1759 //@extension("VK_NV_representative_fragment_test") // 167
1760 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV = 1000166000,
1761 VK_STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV = 1000166001,
1762
Daniel Koch09f7bf92017-10-05 00:26:58 -04001763 //@extension("VK_KHR_maintenance3") // 169
1764 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES_KHR = 1000168000,
1765 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT_KHR = 1000168001,
Jesse Hall8c954d32018-01-17 22:06:20 -08001766
1767 //@extension("VK_EXT_global_priority") // 175
1768 VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT = 1000174000,
1769
Jesse Halla13a3cf2018-07-09 15:51:52 -07001770 //@extension("VK_KHR_8bit_storage") // 178
1771 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES_KHR = 1000177000,
1772
Jesse Hall8c954d32018-01-17 22:06:20 -08001773 //@extension("VK_EXT_external_memory_host") // 179
1774 VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT = 1000178000,
1775 VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT = 1000178001,
1776 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT = 1000178002,
Jesse Hall72e6a132018-04-06 13:00:44 -07001777
Jesse Hall2e6853c2018-10-02 14:05:37 -07001778 //@extension("VK_KHR_shader_atomic_int64") // 181
1779 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES_KHR = 1000180000,
1780
1781 //@extension("VK_KHR_driver_properties") // 197
1782 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES_KHR = 1000196000,
1783
Jesse Hall72e6a132018-04-06 13:00:44 -07001784 //@extension("VK_AMD_shader_core_properties") // 186
1785 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD = 1000185000,
1786
1787 //@extension("VK_EXT_vertex_attribute_divisor") // 191
1788 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT = 1000190000,
1789 VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT = 1000190001,
Jesse Hall4af6c462018-09-10 09:04:25 -07001790 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT = 1000190002,
Jesse Hall115df0c2018-07-30 12:00:59 -07001791
1792 //@extension("VK_NV_device_diagnostic_checkpoints") // 207
1793 VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NV = 1000206000,
1794 VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV = 1000206001,
Jesse Hall4af6c462018-09-10 09:04:25 -07001795
1796 //@extension("VK_KHR_vulkan_memory_model") // 212
1797 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES_KHR = 1000211000,
Jesse Halld27f6aa2015-08-15 17:58:48 -07001798}
1799
Jesse Hall65ab5522015-11-30 00:07:16 -08001800enum VkSubpassContents {
1801 VK_SUBPASS_CONTENTS_INLINE = 0x00000000,
1802 VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS = 0x00000001,
Jesse Halld27f6aa2015-08-15 17:58:48 -07001803}
1804
Jesse Hall543a7ff2016-01-08 16:38:30 -08001805enum VkPipelineCacheHeaderVersion {
1806 VK_PIPELINE_CACHE_HEADER_VERSION_ONE = 1,
1807}
1808
Jesse Hallbd888842015-11-30 21:44:14 -08001809@lastUnused(-11)
Jesse Halld27f6aa2015-08-15 17:58:48 -07001810/// Error and return codes
1811enum VkResult {
1812 // Return codes for successful operation execution (positive values)
Jesse Hallbd888842015-11-30 21:44:14 -08001813 VK_SUCCESS = 0,
1814 VK_NOT_READY = 1,
1815 VK_TIMEOUT = 2,
1816 VK_EVENT_SET = 3,
1817 VK_EVENT_RESET = 4,
1818 VK_INCOMPLETE = 5,
Jesse Halld27f6aa2015-08-15 17:58:48 -07001819
Jesse Hallad250842017-03-10 18:35:38 -08001820 //@extension("VK_KHR_swapchain") // 2
Jesse Hallbd888842015-11-30 21:44:14 -08001821 VK_SUBOPTIMAL_KHR = 1000001003,
Jesse Hall1356b0d2015-11-23 17:24:58 -08001822
Jesse Halld27f6aa2015-08-15 17:58:48 -07001823 // Error codes (negative values)
Jesse Hallbd888842015-11-30 21:44:14 -08001824 VK_ERROR_OUT_OF_HOST_MEMORY = 0xFFFFFFFF, // -1
1825 VK_ERROR_OUT_OF_DEVICE_MEMORY = 0xFFFFFFFE, // -2
1826 VK_ERROR_INITIALIZATION_FAILED = 0xFFFFFFFD, // -3
1827 VK_ERROR_DEVICE_LOST = 0xFFFFFFFC, // -4
1828 VK_ERROR_MEMORY_MAP_FAILED = 0xFFFFFFFB, // -5
1829 VK_ERROR_LAYER_NOT_PRESENT = 0xFFFFFFFA, // -6
1830 VK_ERROR_EXTENSION_NOT_PRESENT = 0xFFFFFFF9, // -7
1831 VK_ERROR_FEATURE_NOT_PRESENT = 0xFFFFFFF8, // -8
1832 VK_ERROR_INCOMPATIBLE_DRIVER = 0xFFFFFFF7, // -9
1833 VK_ERROR_TOO_MANY_OBJECTS = 0xFFFFFFF6, // -10
1834 VK_ERROR_FORMAT_NOT_SUPPORTED = 0xFFFFFFF5, // -11
Jesse Hall56d386a2016-07-26 15:20:40 -07001835 VK_ERROR_FRAGMENTED_POOL = 0xFFFFFFF4, // -12
Jesse Hall1356b0d2015-11-23 17:24:58 -08001836
Ian Elliott28bd2c32017-10-13 09:21:12 -06001837 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04001838 VK_ERROR_OUT_OF_POOL_MEMORY = 0xC4642878, // -1000069000
1839 VK_ERROR_INVALID_EXTERNAL_HANDLE = 0xC4641CBD, // -1000072003
1840
Jesse Hallad250842017-03-10 18:35:38 -08001841 //@extension("VK_KHR_surface") // 1
Jesse Hallbd888842015-11-30 21:44:14 -08001842 VK_ERROR_SURFACE_LOST_KHR = 0xC4653600, // -1000000000
Jesse Hallad250842017-03-10 18:35:38 -08001843 VK_ERROR_NATIVE_WINDOW_IN_USE_KHR = 0xC46535FF, // -1000000001
Jesse Halla6429252015-11-29 18:59:42 -08001844
Jesse Hallad250842017-03-10 18:35:38 -08001845 //@extension("VK_KHR_swapchain") // 2
Jesse Hallbd888842015-11-30 21:44:14 -08001846 VK_ERROR_OUT_OF_DATE_KHR = 0xC4653214, // -1000001004
Jesse Hall1356b0d2015-11-23 17:24:58 -08001847
Jesse Hallad250842017-03-10 18:35:38 -08001848 //@extension("VK_KHR_display_swapchain") // 4
Jesse Hallbd888842015-11-30 21:44:14 -08001849 VK_ERROR_INCOMPATIBLE_DISPLAY_KHR = 0xC4652A47, // -1000003001
Jesse Hall1356b0d2015-11-23 17:24:58 -08001850
Jesse Hallad250842017-03-10 18:35:38 -08001851 //@extension("VK_EXT_debug_report") // 12
Jesse Hall543a7ff2016-01-08 16:38:30 -08001852 VK_ERROR_VALIDATION_FAILED_EXT = 0xC4650B07, // -1000011001
Jesse Hall26763382016-05-20 07:13:52 -07001853
Jesse Hallad250842017-03-10 18:35:38 -08001854 //@extension("VK_NV_glsl_shader") // 13
Jesse Hall26763382016-05-20 07:13:52 -07001855 VK_ERROR_INVALID_SHADER_NV = 0xC4650720, // -1000012000
Jesse Hall77ad05b2017-03-10 22:02:20 -08001856
Jesse Hallad250842017-03-10 18:35:38 -08001857 //@extension("VK_KHR_maintenance1") // 70
Jesse Hall77ad05b2017-03-10 22:02:20 -08001858 VK_ERROR_OUT_OF_POOL_MEMORY_KHR = 0xC4642878, // -1000069000
Jesse Hallad250842017-03-10 18:35:38 -08001859
Jesse Hall8c954d32018-01-17 22:06:20 -08001860 //@extension("VK_EXT_global_priority") // 175
1861 VK_ERROR_NOT_PERMITTED_EXT = 0xC4628E4F, // -1000174001
1862
Jesse Hall9492f992017-08-28 12:10:06 -07001863 //@extension("VK_KHR_external_memory") // 73
1864 VK_ERROR_INVALID_EXTERNAL_HANDLE_KHR = 0xC4641CBD, // -1000072003
Jesse Hall72e6a132018-04-06 13:00:44 -07001865
1866 //@extension("VK_EXT_descriptor_indexing") // 162
1867 VK_ERROR_FRAGMENTATION_EXT = 0xc462c118, // -1000161000
Jesse Hall5ae3abb2015-10-08 14:00:22 -07001868}
1869
1870enum VkDynamicState {
1871 VK_DYNAMIC_STATE_VIEWPORT = 0x00000000,
1872 VK_DYNAMIC_STATE_SCISSOR = 0x00000001,
1873 VK_DYNAMIC_STATE_LINE_WIDTH = 0x00000002,
1874 VK_DYNAMIC_STATE_DEPTH_BIAS = 0x00000003,
1875 VK_DYNAMIC_STATE_BLEND_CONSTANTS = 0x00000004,
1876 VK_DYNAMIC_STATE_DEPTH_BOUNDS = 0x00000005,
1877 VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK = 0x00000006,
1878 VK_DYNAMIC_STATE_STENCIL_WRITE_MASK = 0x00000007,
1879 VK_DYNAMIC_STATE_STENCIL_REFERENCE = 0x00000008,
Jesse Hallad250842017-03-10 18:35:38 -08001880
1881 //@extension("VK_NV_clip_space_w_scaling") // 88
1882 VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV = 1000087000,
1883
1884 //@extension("VK_EXT_discard_rectangles") // 100
1885 VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT = 1000099000,
Jesse Hall77726222017-09-19 14:49:27 -05001886
1887 //@extension("VK_EXT_sample_locations") // 144
1888 VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT = 1000143000,
Jesse Hallb5297192018-09-22 20:52:13 +02001889
1890 //@extension("VK_NV_shading_rate_image") // 165
1891 VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV = 1000164004,
1892 VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV = 1000164006,
1893
1894 //@extension("VK_NV_scissor_exclusive") // 206
1895 VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV = 1000205001,
Jesse Halld27f6aa2015-08-15 17:58:48 -07001896}
1897
Jesse Hall05556b12017-05-18 17:40:25 -07001898enum VkObjectType {
1899 VK_OBJECT_TYPE_UNKNOWN = 0,
1900 VK_OBJECT_TYPE_INSTANCE = 1,
1901 VK_OBJECT_TYPE_PHYSICAL_DEVICE = 2,
1902 VK_OBJECT_TYPE_DEVICE = 3,
1903 VK_OBJECT_TYPE_QUEUE = 4,
1904 VK_OBJECT_TYPE_SEMAPHORE = 5,
1905 VK_OBJECT_TYPE_COMMAND_BUFFER = 6,
1906 VK_OBJECT_TYPE_FENCE = 7,
1907 VK_OBJECT_TYPE_DEVICE_MEMORY = 8,
1908 VK_OBJECT_TYPE_BUFFER = 9,
1909 VK_OBJECT_TYPE_IMAGE = 10,
1910 VK_OBJECT_TYPE_EVENT = 11,
1911 VK_OBJECT_TYPE_QUERY_POOL = 12,
1912 VK_OBJECT_TYPE_BUFFER_VIEW = 13,
1913 VK_OBJECT_TYPE_IMAGE_VIEW = 14,
1914 VK_OBJECT_TYPE_SHADER_MODULE = 15,
1915 VK_OBJECT_TYPE_PIPELINE_CACHE = 16,
1916 VK_OBJECT_TYPE_PIPELINE_LAYOUT = 17,
1917 VK_OBJECT_TYPE_RENDER_PASS = 18,
1918 VK_OBJECT_TYPE_PIPELINE = 19,
1919 VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT = 20,
1920 VK_OBJECT_TYPE_SAMPLER = 21,
1921 VK_OBJECT_TYPE_DESCRIPTOR_POOL = 22,
1922 VK_OBJECT_TYPE_DESCRIPTOR_SET = 23,
1923 VK_OBJECT_TYPE_FRAMEBUFFER = 24,
1924 VK_OBJECT_TYPE_COMMAND_POOL = 25,
1925
Ian Elliott28bd2c32017-10-13 09:21:12 -06001926 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04001927 VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION = 1000156000,
1928 VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE = 1000085000,
1929
Jesse Hall05556b12017-05-18 17:40:25 -07001930 //@extension("VK_KHR_surface") // 1
1931 VK_OBJECT_TYPE_SURFACE_KHR = 1000000000,
1932
1933 //@extension("VK_KHR_swapchain") // 2
1934 VK_OBJECT_TYPE_SWAPCHAIN_KHR = 1000001000,
1935
1936 //@extension("VK_KHR_display") // 3
1937 VK_OBJECT_TYPE_DISPLAY_KHR = 1000002000,
1938 VK_OBJECT_TYPE_DISPLAY_MODE_KHR = 1000002001,
1939
1940 //@extension("VK_KHR_debug_report") // 12
1941 VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT = 1000011000,
1942
1943 //@extension("VK_KHR_descriptor_update_template") // 86
1944 VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR = 1000085000,
1945
1946 //@extension("VK_NVX_device_generated_commands") // 87
1947 VK_OBJECT_TYPE_OBJECT_TABLE_NVX = 1000086000,
1948 VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX = 1000086001,
Jesse Hall77726222017-09-19 14:49:27 -05001949
Jesse Hall8c954d32018-01-17 22:06:20 -08001950 //@extension("VK_EXT_debug_utils") // 129
1951 VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT = 1000128000,
1952
Jesse Hall076f95d2017-09-20 11:34:47 -07001953 //@extension("VK_KHR_sampler_ycbcr_conversion") // 157
1954 VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR = 1000156000,
1955
Jesse Hall77726222017-09-19 14:49:27 -05001956 //@extension("VK_EXT_validation_cache") // 161
1957 VK_OBJECT_TYPE_VALIDATION_CACHE_EXT = 1000160000,
Jesse Hallb5297192018-09-22 20:52:13 +02001958
1959 //@extension("VK_NVX_raytracing") // 166
1960 VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_NVX = 1000165000,
Jesse Hall05556b12017-05-18 17:40:25 -07001961}
1962
Daniel Koch09f7bf92017-10-05 00:26:58 -04001963
Ian Elliott28bd2c32017-10-13 09:21:12 -06001964//@vulkan1_1 enums
Daniel Koch09f7bf92017-10-05 00:26:58 -04001965
1966enum VkPointClippingBehavior {
1967 VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES = 0,
1968 VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY = 1,
1969}
1970
1971enum VkTessellationDomainOrigin {
1972 VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT = 0,
1973 VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT = 1,
1974}
1975
1976enum VkSamplerYcbcrModelConversion {
1977 VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY = 0,
1978 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY = 1,
1979 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709 = 2,
1980 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601 = 3,
1981 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020 = 4,
1982}
1983
1984enum VkSamplerYcbcrRange {
1985 VK_SAMPLER_YCBCR_RANGE_ITU_FULL = 0,
1986 VK_SAMPLER_YCBCR_RANGE_ITU_NARROW = 1,
1987}
1988
1989enum VkChromaLocation {
1990 VK_CHROMA_LOCATION_COSITED_EVEN = 0,
1991 VK_CHROMA_LOCATION_MIDPOINT = 1,
1992}
1993
1994enum VkDescriptorUpdateTemplateType {
1995 VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET = 0,
1996 VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR = 1,
1997}
1998
Jesse Halla13a3cf2018-07-09 15:51:52 -07001999enum VkVendorId {
2000 VK_VENDOR_ID_VIV = 0x10001,
2001 VK_VENDOR_ID_VSI = 0x10002,
2002 VK_VENDOR_ID_KAZAN = 0x10003,
2003}
2004
Jesse Hallad250842017-03-10 18:35:38 -08002005@extension("VK_KHR_surface") // 1
Michael Lentine88594d72015-11-12 12:49:45 -08002006enum VkPresentModeKHR {
2007 VK_PRESENT_MODE_IMMEDIATE_KHR = 0x00000000,
2008 VK_PRESENT_MODE_MAILBOX_KHR = 0x00000001,
2009 VK_PRESENT_MODE_FIFO_KHR = 0x00000002,
Jesse Hall03b6fe12015-11-24 12:44:21 -08002010 VK_PRESENT_MODE_FIFO_RELAXED_KHR = 0x00000003,
Jesse Hall77ad05b2017-03-10 22:02:20 -08002011
Jesse Hall05556b12017-05-18 17:40:25 -07002012 //@extension("VK_KHR_shared_presentable_image") // 112
Jesse Hall77ad05b2017-03-10 22:02:20 -08002013 VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR = 1000111000,
2014 VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR = 1000111001,
Michael Lentine88594d72015-11-12 12:49:45 -08002015}
2016
Jesse Hallad250842017-03-10 18:35:38 -08002017@extension("VK_KHR_surface") // 1
Michael Lentine88594d72015-11-12 12:49:45 -08002018enum VkColorSpaceKHR {
Daniel Koch09f7bf92017-10-05 00:26:58 -04002019 VK_COLOR_SPACE_SRGB_NONLINEAR_KHR = 0x00000000,
Jesse Hall77ad05b2017-03-10 22:02:20 -08002020
Jesse Hallf5ad48b2017-03-20 13:09:19 -07002021 //@extension("VK_EXT_swapchain_colorspace") // 105
2022 VK_COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT = 1000104001,
2023 VK_COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT = 1000104002,
2024 VK_COLOR_SPACE_DCI_P3_LINEAR_EXT = 1000104003,
2025 VK_COLOR_SPACE_DCI_P3_NONLINEAR_EXT = 1000104004,
2026 VK_COLOR_SPACE_BT709_LINEAR_EXT = 1000104005,
2027 VK_COLOR_SPACE_BT709_NONLINEAR_EXT = 1000104006,
2028 VK_COLOR_SPACE_BT2020_LINEAR_EXT = 1000104007,
2029 VK_COLOR_SPACE_HDR10_ST2084_EXT = 1000104008,
2030 VK_COLOR_SPACE_DOLBYVISION_EXT = 1000104009,
2031 VK_COLOR_SPACE_HDR10_HLG_EXT = 1000104010,
Courtney Goeltzenleuchter7f558ed2017-01-23 17:15:24 -07002032 VK_COLOR_SPACE_ADOBERGB_LINEAR_EXT = 1000104011,
2033 VK_COLOR_SPACE_ADOBERGB_NONLINEAR_EXT = 1000104012,
Jesse Hallf5ad48b2017-03-20 13:09:19 -07002034 VK_COLOR_SPACE_PASS_THROUGH_EXT = 1000104013,
Jesse Hall77726222017-09-19 14:49:27 -05002035 VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT = 1000104014,
Michael Lentine88594d72015-11-12 12:49:45 -08002036}
Jesse Halld27f6aa2015-08-15 17:58:48 -07002037
Jesse Hallad250842017-03-10 18:35:38 -08002038@extension("VK_EXT_debug_report") // 12
Jesse Hall715b86a2016-01-16 16:34:29 -08002039enum VkDebugReportObjectTypeEXT {
2040 VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT = 0,
2041 VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT = 1,
2042 VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT = 2,
2043 VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT = 3,
2044 VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT = 4,
2045 VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT = 5,
2046 VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT = 6,
2047 VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT = 7,
2048 VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT = 8,
2049 VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT = 9,
2050 VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT = 10,
2051 VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT = 11,
2052 VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT = 12,
2053 VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT = 13,
2054 VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT = 14,
2055 VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT = 15,
2056 VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT = 16,
2057 VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT = 17,
2058 VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT = 18,
2059 VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT = 19,
2060 VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT = 20,
2061 VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT = 21,
2062 VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT = 22,
2063 VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT = 23,
2064 VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT = 24,
2065 VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT = 25,
2066 VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT = 26,
2067 VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT = 27,
Jesse Hall7ba0ac72017-07-07 17:13:23 -07002068 VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT = 28,
Chris Forbes289cb792016-12-30 15:03:55 +13002069 VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT = 29,
2070 VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT = 30,
2071 VK_DEBUG_REPORT_OBJECT_TYPE_OBJECT_TABLE_NVX_EXT = 31,
2072 VK_DEBUG_REPORT_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX_EXT = 32,
Jesse Hallf5ad48b2017-03-20 13:09:19 -07002073
Jesse Hall77726222017-09-19 14:49:27 -05002074 //extension("VK_EXT_validation_cache") // 161
Jesse Hall8c954d32018-01-17 22:06:20 -08002075 VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT = 33,
Jesse Hall77726222017-09-19 14:49:27 -05002076
Jesse Hallf5ad48b2017-03-20 13:09:19 -07002077 //extension("VK_KHR_descriptor_update_template") // 86
2078 VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR_EXT = 1000085000,
Jesse Hall77726222017-09-19 14:49:27 -05002079
Jesse Hall076f95d2017-09-20 11:34:47 -07002080 //@extension("VK_KHR_sampler_ycbcr_conversion") // 157
2081 VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR_EXT = 1000156000,
Jesse Hallb5297192018-09-22 20:52:13 +02002082
2083 //@extension("VK_NVX_raytracing") // 166
2084 VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NVX_EXT = 1000165000,
Jesse Hall715b86a2016-01-16 16:34:29 -08002085}
2086
Jesse Hallad250842017-03-10 18:35:38 -08002087@extension("VK_AMD_rasterization_order") // 19
Jesse Hall26763382016-05-20 07:13:52 -07002088enum VkRasterizationOrderAMD {
2089 VK_RASTERIZATION_ORDER_STRICT_AMD = 0,
2090 VK_RASTERIZATION_ORDER_RELAXED_AMD = 1,
2091}
2092
Jesse Hall8c954d32018-01-17 22:06:20 -08002093@extension("VK_AMD_shader_info") // 43
2094enum VkShaderInfoTypeAMD {
2095 VK_SHADER_INFO_TYPE_STATISTICS_AMD = 0,
2096 VK_SHADER_INFO_TYPE_BINARY_AMD = 1,
2097 VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD = 2,
2098}
2099
Jesse Hallad250842017-03-10 18:35:38 -08002100@extension("VK_EXT_validation_flags") // 62
Chris Forbes289cb792016-12-30 15:03:55 +13002101enum VkValidationCheckEXT {
2102 VK_VALIDATION_CHECK_ALL_EXT = 0,
Jesse Hall7ba0ac72017-07-07 17:13:23 -07002103 VK_VALIDATION_CHECK_SHADERS_EXT = 1,
Chris Forbes289cb792016-12-30 15:03:55 +13002104}
2105
Jesse Hallad250842017-03-10 18:35:38 -08002106@extension("VK_KHR_descriptor_update_template") // 86
2107enum VkDescriptorUpdateTemplateTypeKHR {
2108 VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET_KHR = 0,
2109 VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR = 1,
2110}
2111
2112@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13002113enum VkIndirectCommandsTokenTypeNVX {
Jesse Hall7ba0ac72017-07-07 17:13:23 -07002114 VK_INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NVX = 0,
2115 VK_INDIRECT_COMMANDS_TOKEN_TYPE_DESCRIPTOR_SET_NVX = 1,
2116 VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NVX = 2,
2117 VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NVX = 3,
2118 VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NVX = 4,
2119 VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NVX = 5,
2120 VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NVX = 6,
2121 VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NVX = 7,
Chris Forbes289cb792016-12-30 15:03:55 +13002122}
2123
Jesse Hallad250842017-03-10 18:35:38 -08002124@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13002125enum VkObjectEntryTypeNVX {
Jesse Hall7ba0ac72017-07-07 17:13:23 -07002126 VK_OBJECT_ENTRY_TYPE_DESCRIPTOR_SET_NVX = 0,
2127 VK_OBJECT_ENTRY_TYPE_PIPELINE_NVX = 1,
2128 VK_OBJECT_ENTRY_TYPE_INDEX_BUFFER_NVX = 2,
2129 VK_OBJECT_ENTRY_TYPE_VERTEX_BUFFER_NVX = 3,
2130 VK_OBJECT_ENTRY_TYPE_PUSH_CONSTANT_NVX = 4,
Chris Forbes289cb792016-12-30 15:03:55 +13002131}
Jesse Hall715b86a2016-01-16 16:34:29 -08002132
Jesse Hallad250842017-03-10 18:35:38 -08002133@extension("VK_EXT_display_control") // 92
Jesse Hall77ad05b2017-03-10 22:02:20 -08002134enum VkDisplayPowerStateEXT {
2135 VK_DISPLAY_POWER_STATE_OFF_EXT = 0,
2136 VK_DISPLAY_POWER_STATE_SUSPEND_EXT = 1,
2137 VK_DISPLAY_POWER_STATE_ON_EXT = 2,
2138}
2139
Jesse Hallad250842017-03-10 18:35:38 -08002140@extension("VK_EXT_display_control") // 92
Jesse Hall77ad05b2017-03-10 22:02:20 -08002141enum VkDeviceEventTypeEXT {
2142 VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT = 0,
2143}
2144
Jesse Hallad250842017-03-10 18:35:38 -08002145@extension("VK_EXT_display_control") // 92
Jesse Hall77ad05b2017-03-10 22:02:20 -08002146enum VkDisplayEventTypeEXT {
2147 VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT = 0,
2148}
2149
Jesse Hallad250842017-03-10 18:35:38 -08002150@extension("VK_NV_viewport_swizzle") // 99
2151enum VkViewportCoordinateSwizzleNV {
2152 VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV = 0,
2153 VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV = 1,
2154 VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV = 2,
2155 VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV = 3,
2156 VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV = 4,
2157 VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV = 5,
2158 VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV = 6,
2159 VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV = 7,
2160}
2161
2162@extension("VK_EXT_discard_rectangles") // 100
2163enum VkDiscardRectangleModeEXT {
2164 VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT = 0,
2165 VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT = 1,
2166}
2167
Jesse Hall8c954d32018-01-17 22:06:20 -08002168@extension("VK_EXT_conservative_rasterization") // 102
2169enum VkConservativeRasterizationModeEXT {
2170 VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT = 0,
2171 VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT = 1,
2172 VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT = 2,
2173}
2174
Jesse Hall076f95d2017-09-20 11:34:47 -07002175@extension("VK_KHR_maintenance2") // 118
2176enum VkPointClippingBehaviorKHR {
2177 VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES_KHR = 0,
2178 VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY_KHR = 1,
2179}
2180
2181@extension("VK_KHR_maintenance2") // 118
2182enum VkTessellationDomainOriginKHR {
2183 VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT_KHR = 0,
2184 VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT_KHR = 1,
2185}
2186
Jesse Hall7ba0ac72017-07-07 17:13:23 -07002187@extension("VK_EXT_sampler_filter_minmax") // 131
2188enum VkSamplerReductionModeEXT {
2189 VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_EXT = 0,
2190 VK_SAMPLER_REDUCTION_MODE_MIN_EXT = 1,
2191 VK_SAMPLER_REDUCTION_MODE_MAX_EXT = 2,
2192}
2193
2194@extension("VK_EXT_blend_operation_advanced") // 149
2195enum VkBlendOverlapEXT {
2196 VK_BLEND_OVERLAP_UNCORRELATED_EXT = 0,
2197 VK_BLEND_OVERLAP_DISJOINT_EXT = 1,
2198 VK_BLEND_OVERLAP_CONJOINT_EXT = 2,
2199}
2200
2201@extension("VK_NV_framebuffer_mixed_samples") // 153
2202enum VkCoverageModulationModeNV {
2203 VK_COVERAGE_MODULATION_MODE_NONE_NV = 0,
2204 VK_COVERAGE_MODULATION_MODE_RGB_NV = 1,
2205 VK_COVERAGE_MODULATION_MODE_ALPHA_NV = 2,
2206 VK_COVERAGE_MODULATION_MODE_RGBA_NV = 3,
2207}
2208
Jesse Hall076f95d2017-09-20 11:34:47 -07002209@extension("VK_KHR_sampler_ycbcr_conversion") // 157
2210enum VkSamplerYcbcrModelConversionKHR {
2211 VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY_KHR = 0,
2212 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY_KHR = 1,
2213 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709_KHR = 2,
2214 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601_KHR = 3,
2215 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020_KHR = 4,
2216}
2217
2218@extension("VK_KHR_sampler_ycbcr_conversion") // 157
2219enum VkSamplerYcbcrRangeKHR {
2220 VK_SAMPLER_YCBCR_RANGE_ITU_FULL_KHR = 0,
2221 VK_SAMPLER_YCBCR_RANGE_ITU_NARROW_KHR = 1,
2222}
2223
2224@extension("VK_KHR_sampler_ycbcr_conversion") // 157
2225enum VkChromaLocationKHR {
2226 VK_CHROMA_LOCATION_COSITED_EVEN_KHR = 0,
2227 VK_CHROMA_LOCATION_MIDPOINT_KHR = 1,
2228}
2229
Jesse Hall77726222017-09-19 14:49:27 -05002230@extension("VK_EXT_validation_cache") // 161
2231enum VkValidationCacheHeaderVersionEXT {
2232 VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT = 1,
2233}
2234
Jesse Hallb5297192018-09-22 20:52:13 +02002235@extension("VK_NV_shading_rate_image") // 165
2236enum VkShadingRatePaletteEntryNV {
2237 VK_SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV = 0,
2238 VK_SHADING_RATE_PALETTE_ENTRY_16_INVOCATIONS_PER_PIXEL_NV = 1,
2239 VK_SHADING_RATE_PALETTE_ENTRY_8_INVOCATIONS_PER_PIXEL_NV = 2,
2240 VK_SHADING_RATE_PALETTE_ENTRY_4_INVOCATIONS_PER_PIXEL_NV = 3,
2241 VK_SHADING_RATE_PALETTE_ENTRY_2_INVOCATIONS_PER_PIXEL_NV = 4,
2242 VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_PIXEL_NV = 5,
2243 VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X1_PIXELS_NV = 6,
2244 VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_1X2_PIXELS_NV = 7,
2245 VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X2_PIXELS_NV = 8,
2246 VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X2_PIXELS_NV = 9,
2247 VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X4_PIXELS_NV = 10,
2248 VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV = 11,
2249}
2250
2251@extension("VK_NV_shading_rate_image") // 165
2252enum VkCoarseSampleOrderTypeNV {
2253 VK_COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV = 0,
2254 VK_COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV = 1,
2255 VK_COARSE_SAMPLE_ORDER_TYPE_PIXEL_MAJOR_NV = 2,
2256 VK_COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV = 3,
2257}
2258
2259@extension("VK_NVX_raytracing") // 166
2260enum VkGeometryTypeNVX {
2261 VK_GEOMETRY_TYPE_TRIANGLES_NVX = 0,
2262 VK_GEOMETRY_TYPE_AABBS_NVX = 1,
2263}
2264
2265@extension("VK_NVX_raytracing") // 166
2266enum VkAccelerationStructureTypeNVX {
2267 VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_NVX = 0,
2268 VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NVX = 1,
2269}
2270
2271@extension("VK_NVX_raytracing") // 166
2272enum VkCopyAccelerationStructureModeNVX {
2273 VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_NVX = 0,
2274 VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_NVX = 1,
2275}
2276
Jesse Hall8c954d32018-01-17 22:06:20 -08002277@extension("VK_EXT_global_priority") // 175
2278enum VkQueueGlobalPriorityEXT {
2279 VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT = 128,
2280 VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT = 256,
2281 VK_QUEUE_GLOBAL_PRIORITY_HIGH_EXT = 512,
2282 VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT = 1024,
2283}
2284
Jesse Hall2e6853c2018-10-02 14:05:37 -07002285@extension("VK_KHR_driver_properties") // 197
2286enum VkDriverIdKHR {
2287 VK_DRIVER_ID_AMD_PROPRIETARY_KHR = 1,
2288 VK_DRIVER_ID_AMD_OPEN_SOURCE_KHR = 2,
2289 VK_DRIVER_ID_MESA_RADV_KHR = 3,
2290 VK_DRIVER_ID_NVIDIA_PROPRIETARY_KHR = 4,
2291 VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS_KHR = 5,
2292 VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA_KHR = 6,
2293 VK_DRIVER_ID_IMAGINATION_PROPRIETARY_KHR = 7,
2294 VK_DRIVER_ID_QUALCOMM_PROPRIETARY_KHR = 8,
2295 VK_DRIVER_ID_ARM_PROPRIETARY_KHR = 9,
2296}
2297
Jesse Halld27f6aa2015-08-15 17:58:48 -07002298/////////////////
2299// Bitfields //
2300/////////////////
2301
Jesse Halld27f6aa2015-08-15 17:58:48 -07002302/// Queue capabilities
Jesse Halld8bade02015-11-24 10:24:18 -08002303type VkFlags VkQueueFlags
2304bitfield VkQueueFlagBits {
Jesse Halld27f6aa2015-08-15 17:58:48 -07002305 VK_QUEUE_GRAPHICS_BIT = 0x00000001, /// Queue supports graphics operations
2306 VK_QUEUE_COMPUTE_BIT = 0x00000002, /// Queue supports compute operations
Jesse Hall65ab5522015-11-30 00:07:16 -08002307 VK_QUEUE_TRANSFER_BIT = 0x00000004, /// Queue supports transfer operations
Jesse Hallb00daad2015-11-29 19:46:20 -08002308 VK_QUEUE_SPARSE_BINDING_BIT = 0x00000008, /// Queue supports sparse resource memory management operations
Daniel Koch09f7bf92017-10-05 00:26:58 -04002309
Ian Elliott28bd2c32017-10-13 09:21:12 -06002310 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04002311 VK_QUEUE_PROTECTED_BIT = 0x00000010,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002312}
2313
2314/// Memory properties passed into vkAllocMemory().
Jesse Halld8bade02015-11-24 10:24:18 -08002315type VkFlags VkMemoryPropertyFlags
2316bitfield VkMemoryPropertyFlagBits {
Jesse Halld1af8122015-11-29 23:50:38 -08002317 VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT = 0x00000001,
2318 VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT = 0x00000002,
2319 VK_MEMORY_PROPERTY_HOST_COHERENT_BIT = 0x00000004,
2320 VK_MEMORY_PROPERTY_HOST_CACHED_BIT = 0x00000008,
2321 VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT = 0x00000010,
Daniel Koch09f7bf92017-10-05 00:26:58 -04002322
Ian Elliott28bd2c32017-10-13 09:21:12 -06002323 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04002324 VK_MEMORY_PROPERTY_PROTECTED_BIT = 0x00000020,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002325}
2326
2327/// Memory heap flags
Jesse Halld8bade02015-11-24 10:24:18 -08002328type VkFlags VkMemoryHeapFlags
2329bitfield VkMemoryHeapFlagBits {
Jesse Halld1af8122015-11-29 23:50:38 -08002330 VK_MEMORY_HEAP_DEVICE_LOCAL_BIT = 0x00000001,
Jesse Hallad250842017-03-10 18:35:38 -08002331
Ian Elliott28bd2c32017-10-13 09:21:12 -06002332 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04002333 VK_MEMORY_HEAP_MULTI_INSTANCE_BIT = 0x00000002,
2334
2335 //@extension("VK_KHR_device_group_creation") // 71
2336 VK_MEMORY_HEAP_MULTI_INSTANCE_BIT_KHR = 0x00000002,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002337}
2338
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08002339/// Access flags
2340type VkFlags VkAccessFlags
2341bitfield VkAccessFlagBits {
2342 VK_ACCESS_INDIRECT_COMMAND_READ_BIT = 0x00000001,
2343 VK_ACCESS_INDEX_READ_BIT = 0x00000002,
2344 VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT = 0x00000004,
2345 VK_ACCESS_UNIFORM_READ_BIT = 0x00000008,
2346 VK_ACCESS_INPUT_ATTACHMENT_READ_BIT = 0x00000010,
2347 VK_ACCESS_SHADER_READ_BIT = 0x00000020,
2348 VK_ACCESS_SHADER_WRITE_BIT = 0x00000040,
2349 VK_ACCESS_COLOR_ATTACHMENT_READ_BIT = 0x00000080,
2350 VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT = 0x00000100,
2351 VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT = 0x00000200,
2352 VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT = 0x00000400,
2353 VK_ACCESS_TRANSFER_READ_BIT = 0x00000800,
2354 VK_ACCESS_TRANSFER_WRITE_BIT = 0x00001000,
2355 VK_ACCESS_HOST_READ_BIT = 0x00002000,
2356 VK_ACCESS_HOST_WRITE_BIT = 0x00004000,
2357 VK_ACCESS_MEMORY_READ_BIT = 0x00008000,
2358 VK_ACCESS_MEMORY_WRITE_BIT = 0x00010000,
Chris Forbes289cb792016-12-30 15:03:55 +13002359
Jesse Hallad250842017-03-10 18:35:38 -08002360 //@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13002361 VK_ACCESS_COMMAND_PROCESS_READ_BIT_NVX = 0x00020000,
Chris Forbes289cb792016-12-30 15:03:55 +13002362 VK_ACCESS_COMMAND_PROCESS_WRITE_BIT_NVX = 0x00040000,
Jesse Hall7ba0ac72017-07-07 17:13:23 -07002363
2364 //@extension("VK_EXT_blend_operation_advanced") // 149
2365 VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT = 0x00080000,
Jesse Halla13a3cf2018-07-09 15:51:52 -07002366
2367 //@extension("VK_EXT_conditional_rendering") // 82
2368 VK_ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT = 0x00100000,
Jesse Hallb5297192018-09-22 20:52:13 +02002369
2370 //@extension("VK_NV_shading_rate_image") // 165
2371 VK_ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV = 0x00800000,
2372
2373 //@extension("VK_NVX_raytracing") // 166
2374 VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_NVX = 0x00200000,
2375 VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_NVX = 0x00400000,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002376}
2377
2378/// Buffer usage flags
Jesse Halld8bade02015-11-24 10:24:18 -08002379type VkFlags VkBufferUsageFlags
2380bitfield VkBufferUsageFlagBits {
Jesse Hall3fbc8562015-11-29 22:10:52 -08002381 VK_BUFFER_USAGE_TRANSFER_SRC_BIT = 0x00000001, /// Can be used as a source of transfer operations
2382 VK_BUFFER_USAGE_TRANSFER_DST_BIT = 0x00000002, /// Can be used as a destination of transfer operations
Jesse Halld27f6aa2015-08-15 17:58:48 -07002383 VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT = 0x00000004, /// Can be used as TBO
2384 VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT = 0x00000008, /// Can be used as IBO
2385 VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT = 0x00000010, /// Can be used as UBO
2386 VK_BUFFER_USAGE_STORAGE_BUFFER_BIT = 0x00000020, /// Can be used as SSBO
2387 VK_BUFFER_USAGE_INDEX_BUFFER_BIT = 0x00000040, /// Can be used as source of fixed function index fetch (index buffer)
2388 VK_BUFFER_USAGE_VERTEX_BUFFER_BIT = 0x00000080, /// Can be used as source of fixed function vertex fetch (VBO)
2389 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 -07002390
2391 //@extension("VK_EXT_conditional_rendering") // 82
2392 VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT = 0x00000200,
Jesse Hallb5297192018-09-22 20:52:13 +02002393
2394 //@extension("VK_NVX_raytracing") // 166
2395 VK_BUFFER_USAGE_RAYTRACING_BIT_NVX = 0x00000400,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002396}
2397
2398/// Buffer creation flags
Jesse Halld8bade02015-11-24 10:24:18 -08002399type VkFlags VkBufferCreateFlags
2400bitfield VkBufferCreateFlagBits {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07002401 VK_BUFFER_CREATE_SPARSE_BINDING_BIT = 0x00000001, /// Buffer should support sparse backing
Jesse Halld27f6aa2015-08-15 17:58:48 -07002402 VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT = 0x00000002, /// Buffer should support sparse backing with partial residency
2403 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 -04002404
Ian Elliott28bd2c32017-10-13 09:21:12 -06002405 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04002406 VK_BUFFER_CREATE_PROTECTED_BIT = 0x00000008,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002407}
2408
2409/// Shader stage flags
Jesse Halld8bade02015-11-24 10:24:18 -08002410type VkFlags VkShaderStageFlags
2411bitfield VkShaderStageFlagBits {
Jesse Halld27f6aa2015-08-15 17:58:48 -07002412 VK_SHADER_STAGE_VERTEX_BIT = 0x00000001,
Jesse Hallae38f732015-11-19 21:32:50 -08002413 VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT = 0x00000002,
2414 VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT = 0x00000004,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002415 VK_SHADER_STAGE_GEOMETRY_BIT = 0x00000008,
2416 VK_SHADER_STAGE_FRAGMENT_BIT = 0x00000010,
2417 VK_SHADER_STAGE_COMPUTE_BIT = 0x00000020,
Jesse Hallc7467b72015-11-29 21:05:26 -08002418 VK_SHADER_STAGE_ALL_GRAPHICS = 0x0000001F,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002419
2420 VK_SHADER_STAGE_ALL = 0x7FFFFFFF,
Jesse Hallb5297192018-09-22 20:52:13 +02002421
2422 //@extension("VK_NVX_raytracing") // 166
2423 VK_SHADER_STAGE_RAYGEN_BIT_NVX = 0x00000100,
2424 VK_SHADER_STAGE_ANY_HIT_BIT_NVX = 0x00000200,
2425 VK_SHADER_STAGE_CLOSEST_HIT_BIT_NVX = 0x00000400,
2426 VK_SHADER_STAGE_MISS_BIT_NVX = 0x00000800,
2427 VK_SHADER_STAGE_INTERSECTION_BIT_NVX = 0x00001000,
2428 VK_SHADER_STAGE_CALLABLE_BIT_NVX = 0x00002000,
2429
2430 //@extension("VK_NV_mesh_shader") // 203
2431 VK_SHADER_STAGE_TASK_BIT_NV = 0x00000040,
2432 VK_SHADER_STAGE_MESH_BIT_NV = 0x00000080,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002433}
2434
Jesse Hallfbf97b02015-11-20 14:17:03 -08002435/// Descriptor pool create flags
Jesse Halld8bade02015-11-24 10:24:18 -08002436type VkFlags VkDescriptorPoolCreateFlags
2437bitfield VkDescriptorPoolCreateFlagBits {
Jesse Hallfbf97b02015-11-20 14:17:03 -08002438 VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT = 0x00000001,
Jesse Hall72e6a132018-04-06 13:00:44 -07002439
2440 //@extension("VK_EXT_descriptor_indexing") // 162
2441 VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT_EXT = 0x00000002,
Jesse Hallfbf97b02015-11-20 14:17:03 -08002442}
2443
2444/// Descriptor pool reset flags
Jesse Halld8bade02015-11-24 10:24:18 -08002445type VkFlags VkDescriptorPoolResetFlags
Jesse Halla6429252015-11-29 18:59:42 -08002446//bitfield VkDescriptorPoolResetFlagBits {
2447//}
Jesse Hallfbf97b02015-11-20 14:17:03 -08002448
Jesse Halld27f6aa2015-08-15 17:58:48 -07002449/// Image usage flags
Jesse Halld8bade02015-11-24 10:24:18 -08002450type VkFlags VkImageUsageFlags
2451bitfield VkImageUsageFlagBits {
Jesse Hall3fbc8562015-11-29 22:10:52 -08002452 VK_IMAGE_USAGE_TRANSFER_SRC_BIT = 0x00000001, /// Can be used as a source of transfer operations
2453 VK_IMAGE_USAGE_TRANSFER_DST_BIT = 0x00000002, /// Can be used as a destination of transfer operations
Jesse Halld27f6aa2015-08-15 17:58:48 -07002454 VK_IMAGE_USAGE_SAMPLED_BIT = 0x00000004, /// Can be sampled from (SAMPLED_IMAGE and COMBINED_IMAGE_SAMPLER descriptor types)
2455 VK_IMAGE_USAGE_STORAGE_BIT = 0x00000008, /// Can be used as storage image (STORAGE_IMAGE descriptor type)
2456 VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT = 0x00000010, /// Can be used as framebuffer color attachment
Jesse Hall5ae3abb2015-10-08 14:00:22 -07002457 VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000020, /// Can be used as framebuffer depth/stencil attachment
Jesse Halld27f6aa2015-08-15 17:58:48 -07002458 VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT = 0x00000040, /// Image data not needed outside of rendering
2459 VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT = 0x00000080, /// Can be used as framebuffer input attachment
Jesse Hallb5297192018-09-22 20:52:13 +02002460
2461 //@extension("VK_NV_shading_rate_image") // 165
2462 VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV = 0x00000100,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002463}
2464
2465/// Image creation flags
Jesse Halld8bade02015-11-24 10:24:18 -08002466type VkFlags VkImageCreateFlags
2467bitfield VkImageCreateFlagBits {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07002468 VK_IMAGE_CREATE_SPARSE_BINDING_BIT = 0x00000001, /// Image should support sparse backing
Jesse Halld27f6aa2015-08-15 17:58:48 -07002469 VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT = 0x00000002, /// Image should support sparse backing with partial residency
2470 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 -07002471 VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT = 0x00000008, /// Allows image views to have different format than the base image
2472 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 -08002473
Ian Elliott28bd2c32017-10-13 09:21:12 -06002474 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04002475 VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT = 0x00000020,
Jesse Hall8c954d32018-01-17 22:06:20 -08002476 VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT = 0x00000040,
Daniel Koch09f7bf92017-10-05 00:26:58 -04002477 VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT = 0x00000080,
2478 VK_IMAGE_CREATE_EXTENDED_USAGE_BIT = 0x00000100,
Daniel Koch09f7bf92017-10-05 00:26:58 -04002479 VK_IMAGE_CREATE_DISJOINT_BIT = 0x00000200,
Ian Elliott28bd2c32017-10-13 09:21:12 -06002480 VK_IMAGE_CREATE_ALIAS_BIT = 0x00000400,
2481 VK_IMAGE_CREATE_PROTECTED_BIT = 0x00000800,
Daniel Koch09f7bf92017-10-05 00:26:58 -04002482
Jesse Hallad250842017-03-10 18:35:38 -08002483 //@extension("VK_KHR_maintenance1") // 70
Jesse Hall77ad05b2017-03-10 22:02:20 -08002484 VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT_KHR = 0x00000020,
Jesse Hallad250842017-03-10 18:35:38 -08002485
Daniel Koch09f7bf92017-10-05 00:26:58 -04002486 //@extension("VK_KHR_device_group") // 61
2487 VK_IMAGE_CREATE_BIND_SFR_BIT_KHR = 0x00000040,
Jesse Hall77726222017-09-19 14:49:27 -05002488
Jesse Hall076f95d2017-09-20 11:34:47 -07002489 //@extension("VK_KHR_maintenance2") // 118
2490 VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT_KHR = 0x00000080,
2491 VK_IMAGE_CREATE_EXTENDED_USAGE_BIT_KHR = 0x00000100,
2492
2493 //@extension("VK_KHR_sampler_ycbcr_conversion") // 157
2494 VK_IMAGE_CREATE_DISJOINT_BIT_KHR = 0x00000200,
2495
2496 //@extension("VK_KHR_bind_memory2") // 158
2497 VK_IMAGE_CREATE_ALIAS_BIT_KHR = 0x00000400,
Ian Elliott28bd2c32017-10-13 09:21:12 -06002498
2499 //@extension("VK_EXT_sample_locations") // 144
2500 VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT = 0x00001000,
Jesse Hallb5297192018-09-22 20:52:13 +02002501
2502 //@extension("VK_NV_corner_sampled_image") // 51
2503 VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV = 0x00002000,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002504}
2505
Jesse Hallb00daad2015-11-29 19:46:20 -08002506/// Image view creation flags
Jesse Halld8bade02015-11-24 10:24:18 -08002507type VkFlags VkImageViewCreateFlags
Jesse Hallb00daad2015-11-29 19:46:20 -08002508//bitfield VkImageViewCreateFlagBits {
2509//}
Jesse Halld27f6aa2015-08-15 17:58:48 -07002510
2511/// Pipeline creation flags
Jesse Halld8bade02015-11-24 10:24:18 -08002512type VkFlags VkPipelineCreateFlags
2513bitfield VkPipelineCreateFlagBits {
Jesse Halld27f6aa2015-08-15 17:58:48 -07002514 VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT = 0x00000001,
2515 VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT = 0x00000002,
2516 VK_PIPELINE_CREATE_DERIVATIVE_BIT = 0x00000004,
Jesse Hallad250842017-03-10 18:35:38 -08002517
Ian Elliott28bd2c32017-10-13 09:21:12 -06002518 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04002519 VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT = 0x00000008,
2520 VK_PIPELINE_CREATE_DISPATCH_BASE = 0x00000010,
2521
2522 //@extension("VK_KHR_device_group") // 61
2523 VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR = 0x00000008,
2524 VK_PIPELINE_CREATE_DISPATCH_BASE_KHR = 0x00000010,
Jesse Hallb5297192018-09-22 20:52:13 +02002525
2526 //@extension("VK_NVX_raytracing") // 166
2527 VK_PIPELINE_CREATE_DEFER_COMPILE_BIT_NVX = 0x00000020,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002528}
2529
Jesse Hall65ab5522015-11-30 00:07:16 -08002530/// Color component flags
2531type VkFlags VkColorComponentFlags
2532bitfield VkColorComponentFlagBits {
2533 VK_COLOR_COMPONENT_R_BIT = 0x00000001,
2534 VK_COLOR_COMPONENT_G_BIT = 0x00000002,
2535 VK_COLOR_COMPONENT_B_BIT = 0x00000004,
2536 VK_COLOR_COMPONENT_A_BIT = 0x00000008,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002537}
2538
2539/// Fence creation flags
Jesse Halld8bade02015-11-24 10:24:18 -08002540type VkFlags VkFenceCreateFlags
2541bitfield VkFenceCreateFlagBits {
Jesse Halld27f6aa2015-08-15 17:58:48 -07002542 VK_FENCE_CREATE_SIGNALED_BIT = 0x00000001,
2543}
2544
2545/// Semaphore creation flags
Jesse Halld8bade02015-11-24 10:24:18 -08002546type VkFlags VkSemaphoreCreateFlags
Jesse Halla6429252015-11-29 18:59:42 -08002547//bitfield VkSemaphoreCreateFlagBits {
2548//}
Jesse Halld27f6aa2015-08-15 17:58:48 -07002549
2550/// Format capability flags
Jesse Halld8bade02015-11-24 10:24:18 -08002551type VkFlags VkFormatFeatureFlags
2552bitfield VkFormatFeatureFlagBits {
Jesse Halld27f6aa2015-08-15 17:58:48 -07002553 VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT = 0x00000001, /// Format can be used for sampled images (SAMPLED_IMAGE and COMBINED_IMAGE_SAMPLER descriptor types)
2554 VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT = 0x00000002, /// Format can be used for storage images (STORAGE_IMAGE descriptor type)
2555 VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT = 0x00000004, /// Format supports atomic operations in case it's used for storage images
2556 VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT = 0x00000008, /// Format can be used for uniform texel buffers (TBOs)
2557 VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT = 0x00000010, /// Format can be used for storage texel buffers (IBOs)
2558 VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT = 0x00000020, /// Format supports atomic operations in case it's used for storage texel buffers
2559 VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT = 0x00000040, /// Format can be used for vertex buffers (VBOs)
2560 VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT = 0x00000080, /// Format can be used for color attachment images
2561 VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT = 0x00000100, /// Format supports blending in case it's used for color attachment images
2562 VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000200, /// Format can be used for depth/stencil attachment images
Jesse Hall3fbc8562015-11-29 22:10:52 -08002563 VK_FORMAT_FEATURE_BLIT_SRC_BIT = 0x00000400, /// Format can be used as the source image of blits with vkCommandBlitImage
2564 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 -08002565 VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT = 0x00001000,
Jesse Hall26763382016-05-20 07:13:52 -07002566
Ian Elliott28bd2c32017-10-13 09:21:12 -06002567 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04002568 VK_FORMAT_FEATURE_TRANSFER_SRC_BIT = 0x00004000,
2569 VK_FORMAT_FEATURE_TRANSFER_DST_BIT = 0x00008000,
2570 VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT = 0x00020000,
2571 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT = 0x00040000,
2572 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT = 0x00080000,
2573 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT = 0x00100000,
2574 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT = 0x00200000,
2575 VK_FORMAT_FEATURE_DISJOINT_BIT = 0x00400000,
2576 VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT = 0x00800000,
2577
Jesse Hallad250842017-03-10 18:35:38 -08002578 //@extension("VK_IMG_filter_cubic") // 16
Jesse Hall26763382016-05-20 07:13:52 -07002579 VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG = 0x00002000,
Jesse Hall77ad05b2017-03-10 22:02:20 -08002580
Jesse Hallad250842017-03-10 18:35:38 -08002581 //@extension("VK_KHR_maintenance1") // 70
Jesse Hall77ad05b2017-03-10 22:02:20 -08002582 VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR = 0x00004000,
2583 VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR = 0x00008000,
Jesse Hall7ba0ac72017-07-07 17:13:23 -07002584
2585 //@extension("VK_EXT_sampler_filter_minmax") // 131
2586 VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT_EXT = 0x00010000,
Jesse Hall076f95d2017-09-20 11:34:47 -07002587
2588 //@extension("VK_KHR_sampler_ycbcr_conversion") // 157
2589 VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT_KHR = 0x00020000,
2590 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT_KHR = 0x00040000,
2591 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT_KHR = 0x00080000,
2592 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT_KHR = 0x00100000,
2593 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT_KHR = 0x00200000,
2594 VK_FORMAT_FEATURE_DISJOINT_BIT_KHR = 0x00400000,
2595 VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT_KHR = 0x00800000,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002596}
2597
2598/// Query control flags
Jesse Halld8bade02015-11-24 10:24:18 -08002599type VkFlags VkQueryControlFlags
2600bitfield VkQueryControlFlagBits {
Jesse Hall65ab5522015-11-30 00:07:16 -08002601 VK_QUERY_CONTROL_PRECISE_BIT = 0x00000001,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002602}
2603
2604/// Query result flags
Jesse Halld8bade02015-11-24 10:24:18 -08002605type VkFlags VkQueryResultFlags
2606bitfield VkQueryResultFlagBits {
Jesse Halld27f6aa2015-08-15 17:58:48 -07002607 VK_QUERY_RESULT_64_BIT = 0x00000001, /// Results of the queries are written to the destination buffer as 64-bit values
2608 VK_QUERY_RESULT_WAIT_BIT = 0x00000002, /// Results of the queries are waited on before proceeding with the result copy
2609 VK_QUERY_RESULT_WITH_AVAILABILITY_BIT = 0x00000004, /// Besides the results of the query, the availability of the results is also written
2610 VK_QUERY_RESULT_PARTIAL_BIT = 0x00000008, /// Copy the partial results of the query even if the final results aren't available
2611}
2612
2613/// Shader module creation flags
Jesse Halld8bade02015-11-24 10:24:18 -08002614type VkFlags VkShaderModuleCreateFlags
Jesse Halla6429252015-11-29 18:59:42 -08002615//bitfield VkShaderModuleCreateFlagBits {
2616//}
Jesse Halld27f6aa2015-08-15 17:58:48 -07002617
Jesse Halld27f6aa2015-08-15 17:58:48 -07002618/// Event creation flags
Jesse Halld8bade02015-11-24 10:24:18 -08002619type VkFlags VkEventCreateFlags
Jesse Halla6429252015-11-29 18:59:42 -08002620//bitfield VkEventCreateFlagBits {
2621//}
Jesse Halld27f6aa2015-08-15 17:58:48 -07002622
Jesse Halla15a4bf2015-11-19 22:48:02 -08002623/// Command buffer usage flags
Jesse Hall3fbc8562015-11-29 22:10:52 -08002624type VkFlags VkCommandBufferUsageFlags
2625bitfield VkCommandBufferUsageFlagBits {
2626 VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT = 0x00000001,
2627 VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT = 0x00000002,
2628 VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT = 0x00000004,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002629}
2630
2631/// Pipeline statistics flags
Jesse Halld8bade02015-11-24 10:24:18 -08002632type VkFlags VkQueryPipelineStatisticFlags
2633bitfield VkQueryPipelineStatisticFlagBits {
Jesse Hallae38f732015-11-19 21:32:50 -08002634 VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT = 0x00000001, /// Optional
2635 VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT = 0x00000002, /// Optional
2636 VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT = 0x00000004, /// Optional
2637 VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT = 0x00000008, /// Optional
2638 VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT = 0x00000010, /// Optional
2639 VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT = 0x00000020, /// Optional
2640 VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT = 0x00000040, /// Optional
2641 VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT = 0x00000080, /// Optional
2642 VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT = 0x00000100, /// Optional
2643 VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT = 0x00000200, /// Optional
2644 VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT = 0x00000400, /// Optional
Jesse Halld27f6aa2015-08-15 17:58:48 -07002645}
2646
2647/// Memory mapping flags
Jesse Halld8bade02015-11-24 10:24:18 -08002648type VkFlags VkMemoryMapFlags
Jesse Halla6429252015-11-29 18:59:42 -08002649//bitfield VkMemoryMapFlagBits {
2650//}
Jesse Halld27f6aa2015-08-15 17:58:48 -07002651
2652/// Bitfield of image aspects
Jesse Halld8bade02015-11-24 10:24:18 -08002653type VkFlags VkImageAspectFlags
2654bitfield VkImageAspectFlagBits {
Jesse Halld27f6aa2015-08-15 17:58:48 -07002655 VK_IMAGE_ASPECT_COLOR_BIT = 0x00000001,
2656 VK_IMAGE_ASPECT_DEPTH_BIT = 0x00000002,
2657 VK_IMAGE_ASPECT_STENCIL_BIT = 0x00000004,
2658 VK_IMAGE_ASPECT_METADATA_BIT = 0x00000008,
Jesse Hall076f95d2017-09-20 11:34:47 -07002659
Ian Elliott28bd2c32017-10-13 09:21:12 -06002660 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04002661 VK_IMAGE_ASPECT_PLANE_0_BIT = 0x00000010,
2662 VK_IMAGE_ASPECT_PLANE_1_BIT = 0x00000020,
2663 VK_IMAGE_ASPECT_PLANE_2_BIT = 0x00000040,
2664
Jesse Hall076f95d2017-09-20 11:34:47 -07002665 //@extension("VK_KHR_sampler_ycbcr_conversion") // 157
2666 VK_IMAGE_ASPECT_PLANE_0_BIT_KHR = 0x00000010,
2667 VK_IMAGE_ASPECT_PLANE_1_BIT_KHR = 0x00000020,
2668 VK_IMAGE_ASPECT_PLANE_2_BIT_KHR = 0x00000040,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002669}
2670
2671/// Sparse memory bind flags
Jesse Halld8bade02015-11-24 10:24:18 -08002672type VkFlags VkSparseMemoryBindFlags
Jesse Hall091ed9e2015-11-30 00:55:29 -08002673bitfield VkSparseMemoryBindFlagBits {
2674 VK_SPARSE_MEMORY_BIND_METADATA_BIT = 0x00000001,
2675}
Jesse Halld27f6aa2015-08-15 17:58:48 -07002676
2677/// Sparse image memory requirements flags
Jesse Halld8bade02015-11-24 10:24:18 -08002678type VkFlags VkSparseImageFormatFlags
2679bitfield VkSparseImageFormatFlagBits {
Jesse Hallb00daad2015-11-29 19:46:20 -08002680 VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT = 0x00000001, /// Image uses a single miptail region for all array slices
2681 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.
2682 VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT = 0x00000004, /// Image uses a non-standard sparse block size
Jesse Halld27f6aa2015-08-15 17:58:48 -07002683}
2684
2685/// Pipeline stages
Jesse Halld8bade02015-11-24 10:24:18 -08002686type VkFlags VkPipelineStageFlags
2687bitfield VkPipelineStageFlagBits {
Jesse Halld27f6aa2015-08-15 17:58:48 -07002688 VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT = 0x00000001, /// Before subsequent commands are processed
2689 VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT = 0x00000002, /// Draw/DispatchIndirect command fetch
2690 VK_PIPELINE_STAGE_VERTEX_INPUT_BIT = 0x00000004, /// Vertex/index fetch
2691 VK_PIPELINE_STAGE_VERTEX_SHADER_BIT = 0x00000008, /// Vertex shading
Jesse Hallae38f732015-11-19 21:32:50 -08002692 VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT = 0x00000010, /// Tessellation control shading
2693 VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT = 0x00000020, /// Tessellation evaluation shading
Jesse Halld27f6aa2015-08-15 17:58:48 -07002694 VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT = 0x00000040, /// Geometry shading
2695 VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT = 0x00000080, /// Fragment shading
2696 VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT = 0x00000100, /// Early fragment (depth/stencil) tests
2697 VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT = 0x00000200, /// Late fragment (depth/stencil) tests
2698 VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT = 0x00000400, /// Color attachment writes
2699 VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT = 0x00000800, /// Compute shading
2700 VK_PIPELINE_STAGE_TRANSFER_BIT = 0x00001000, /// Transfer/copy operations
Jesse Hall543a7ff2016-01-08 16:38:30 -08002701 VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT = 0x00002000,
2702 VK_PIPELINE_STAGE_HOST_BIT = 0x00004000, /// Indicates host (CPU) is a source/sink of the dependency
Jesse Halld27f6aa2015-08-15 17:58:48 -07002703
Jesse Hall543a7ff2016-01-08 16:38:30 -08002704 VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT = 0x00008000, /// All stages of the graphics pipeline
2705 VK_PIPELINE_STAGE_ALL_COMMANDS_BIT = 0x00010000, /// All graphics, compute, copy, and transition commands
Chris Forbes289cb792016-12-30 15:03:55 +13002706
Jesse Hallad250842017-03-10 18:35:38 -08002707 //@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13002708 VK_PIPELINE_STAGE_COMMAND_PROCESS_BIT_NVX = 0x00020000,
Jesse Halla13a3cf2018-07-09 15:51:52 -07002709
2710 //@extension("VK_EXT_conditional_rendering") // 82
2711 VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT = 0x00040000,
Jesse Hallb5297192018-09-22 20:52:13 +02002712
2713 //@extension("VK_NV_shading_rate_image") // 165
2714 VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV = 0x00400000,
2715
2716 //@extension("VK_NVX_raytracing") // 166
2717 VK_PIPELINE_STAGE_RAYTRACING_BIT_NVX = 0x00200000,
2718
2719 //@extension("VK_NV_mesh_shader") // 203
2720 VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV = 0x00080000,
2721 VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV = 0x00100000,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07002722}
2723
2724/// Render pass attachment description flags
Jesse Halld8bade02015-11-24 10:24:18 -08002725type VkFlags VkAttachmentDescriptionFlags
2726bitfield VkAttachmentDescriptionFlagBits {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07002727 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 -07002728}
2729
2730/// Subpass description flags
Jesse Halld8bade02015-11-24 10:24:18 -08002731type VkFlags VkSubpassDescriptionFlags
2732bitfield VkSubpassDescriptionFlagBits {
Jesse Hallad250842017-03-10 18:35:38 -08002733 //@extension("VK_NVX_multiview_per_view_attributes") // 98
2734 VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX = 0x00000001,
2735 VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX = 0x00000002,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002736}
2737
2738/// Command pool creation flags
Jesse Hall3fbc8562015-11-29 22:10:52 -08002739type VkFlags VkCommandPoolCreateFlags
2740bitfield VkCommandPoolCreateFlagBits {
2741 VK_COMMAND_POOL_CREATE_TRANSIENT_BIT = 0x00000001, /// Command buffers have a short lifetime
2742 VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT = 0x00000002, /// Command buffers may release their memory individually
Daniel Koch09f7bf92017-10-05 00:26:58 -04002743
Ian Elliott28bd2c32017-10-13 09:21:12 -06002744 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04002745 VK_COMMAND_POOL_CREATE_PROTECTED_BIT = 0x00000004,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002746}
2747
2748/// Command pool reset flags
Jesse Hall3fbc8562015-11-29 22:10:52 -08002749type VkFlags VkCommandPoolResetFlags
2750bitfield VkCommandPoolResetFlagBits {
2751 VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT = 0x00000001, /// Release resources owned by the pool
Jesse Halld27f6aa2015-08-15 17:58:48 -07002752}
2753
Jesse Hall3fbc8562015-11-29 22:10:52 -08002754type VkFlags VkCommandBufferResetFlags
2755bitfield VkCommandBufferResetFlagBits {
2756 VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT = 0x00000001, /// Release resources owned by the buffer
Jesse Hall5ae3abb2015-10-08 14:00:22 -07002757}
2758
Jesse Halld8bade02015-11-24 10:24:18 -08002759type VkFlags VkSampleCountFlags
2760bitfield VkSampleCountFlagBits {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07002761 VK_SAMPLE_COUNT_1_BIT = 0x00000001,
2762 VK_SAMPLE_COUNT_2_BIT = 0x00000002,
2763 VK_SAMPLE_COUNT_4_BIT = 0x00000004,
2764 VK_SAMPLE_COUNT_8_BIT = 0x00000008,
2765 VK_SAMPLE_COUNT_16_BIT = 0x00000010,
2766 VK_SAMPLE_COUNT_32_BIT = 0x00000020,
2767 VK_SAMPLE_COUNT_64_BIT = 0x00000040,
2768}
2769
Jesse Halld8bade02015-11-24 10:24:18 -08002770type VkFlags VkStencilFaceFlags
2771bitfield VkStencilFaceFlagBits {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07002772 VK_STENCIL_FACE_FRONT_BIT = 0x00000001, /// Front face
2773 VK_STENCIL_FACE_BACK_BIT = 0x00000002, /// Back face
Jesse Hallc7467b72015-11-29 21:05:26 -08002774 VK_STENCIL_FRONT_AND_BACK = 0x00000003,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002775}
2776
Jesse Halla6429252015-11-29 18:59:42 -08002777/// Instance creation flags
2778type VkFlags VkInstanceCreateFlags
2779//bitfield VkInstanceCreateFlagBits {
2780//}
2781
2782/// Device creation flags
2783type VkFlags VkDeviceCreateFlags
2784//bitfield VkDeviceCreateFlagBits {
2785//}
2786
2787/// Device queue creation flags
2788type VkFlags VkDeviceQueueCreateFlags
Ian Elliott28bd2c32017-10-13 09:21:12 -06002789@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04002790bitfield VkDeviceQueueCreateFlagBits {
2791 VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT = 0x00000001,
2792}
Jesse Halla6429252015-11-29 18:59:42 -08002793
2794/// Query pool creation flags
2795type VkFlags VkQueryPoolCreateFlags
2796//bitfield VkQueryPoolCreateFlagBits {
2797//}
2798
2799/// Buffer view creation flags
2800type VkFlags VkBufferViewCreateFlags
2801//bitfield VkBufferViewCreateFlagBits {
2802//}
2803
2804/// Pipeline cache creation flags
2805type VkFlags VkPipelineCacheCreateFlags
2806//bitfield VkPipelineCacheCreateFlagBits {
2807//}
2808
2809/// Pipeline shader stage creation flags
2810type VkFlags VkPipelineShaderStageCreateFlags
2811//bitfield VkPipelineShaderStageCreateFlagBits {
2812//}
2813
2814/// Descriptor set layout creation flags
2815type VkFlags VkDescriptorSetLayoutCreateFlags
Jesse Hallad250842017-03-10 18:35:38 -08002816bitfield VkDescriptorSetLayoutCreateFlagBits {
2817 //@extension("VK_KHR_push_descriptor") // 81
2818 VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR = 0x00000001,
Jesse Hall72e6a132018-04-06 13:00:44 -07002819
2820 //@extension("VK_EXT_descriptor_indexing") // 162
2821 VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT = 0x00000002,
Jesse Hallad250842017-03-10 18:35:38 -08002822}
Jesse Halla6429252015-11-29 18:59:42 -08002823
2824/// Pipeline vertex input state creation flags
2825type VkFlags VkPipelineVertexInputStateCreateFlags
2826//bitfield VkPipelineVertexInputStateCreateFlagBits {
2827//}
2828
2829/// Pipeline input assembly state creation flags
2830type VkFlags VkPipelineInputAssemblyStateCreateFlags
2831//bitfield VkPipelineInputAssemblyStateCreateFlagBits {
2832//}
2833
2834/// Tessellation state creation flags
2835type VkFlags VkPipelineTessellationStateCreateFlags
2836//bitfield VkPipelineTessellationStateCreateFlagBits {
2837//}
2838
2839/// Viewport state creation flags
2840type VkFlags VkPipelineViewportStateCreateFlags
2841//bitfield VkPipelineViewportStateCreateFlagBits {
2842//}
2843
Jesse Hall3fbc8562015-11-29 22:10:52 -08002844/// Rasterization state creation flags
2845type VkFlags VkPipelineRasterizationStateCreateFlags
2846//bitfield VkPipelineRasterizationStateCreateFlagBits {
Jesse Halla6429252015-11-29 18:59:42 -08002847//}
2848
2849/// Multisample state creation flags
2850type VkFlags VkPipelineMultisampleStateCreateFlags
2851//bitfield VkPipelineMultisampleStateCreateFlagBits {
2852//}
2853
2854/// Color blend state creation flags
2855type VkFlags VkPipelineColorBlendStateCreateFlags
2856//bitfield VkPipelineColorBlendStateCreateFlagBits {
2857//}
2858
2859/// Depth/stencil state creation flags
2860type VkFlags VkPipelineDepthStencilStateCreateFlags
2861//bitfield VkPipelineDepthStencilStateCreateFlagBits {
2862//}
2863
2864/// Dynamic state creation flags
2865type VkFlags VkPipelineDynamicStateCreateFlags
2866//bitfield VkPipelineDynamicStateCreateFlagBits {
2867//}
2868
2869/// Pipeline layout creation flags
2870type VkFlags VkPipelineLayoutCreateFlags
2871//bitfield VkPipelineLayoutCreateFlagBits {
2872//}
2873
2874/// Sampler creation flags
2875type VkFlags VkSamplerCreateFlags
2876//bitfield VkSamplerCreateFlagBits {
2877//}
2878
2879/// Render pass creation flags
2880type VkFlags VkRenderPassCreateFlags
2881//bitfield VkRenderPassCreateFlagBits {
2882//}
2883
2884/// Framebuffer creation flags
2885type VkFlags VkFramebufferCreateFlags
2886//bitfield VkFramebufferCreateFlagBits {
2887//}
2888
Jesse Halldc6d36c2015-11-29 19:12:15 -08002889/// Dependency flags
2890type VkFlags VkDependencyFlags
2891bitfield VkDependencyFlagBits {
2892 VK_DEPENDENCY_BY_REGION_BIT = 0x00000001,
Jesse Hallad250842017-03-10 18:35:38 -08002893
Ian Elliott28bd2c32017-10-13 09:21:12 -06002894 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04002895 VK_DEPENDENCY_DEVICE_GROUP_BIT = 0x00000004,
2896 VK_DEPENDENCY_VIEW_LOCAL_BIT = 0x00000002,
Jesse Hallad250842017-03-10 18:35:38 -08002897
Daniel Koch09f7bf92017-10-05 00:26:58 -04002898 //@extension("VK_KHR_multiview") // 54
2899 VK_DEPENDENCY_VIEW_LOCAL_BIT_KHR = 0x00000002,
2900
2901 //@extension("VK_KHR_device_group") // 61
2902 VK_DEPENDENCY_DEVICE_GROUP_BIT_KHR = 0x00000004,
Jesse Halldc6d36c2015-11-29 19:12:15 -08002903}
2904
Jesse Hallc7467b72015-11-29 21:05:26 -08002905/// Cull mode flags
2906type VkFlags VkCullModeFlags
2907bitfield VkCullModeFlagBits {
2908 VK_CULL_MODE_NONE = 0x00000000,
2909 VK_CULL_MODE_FRONT_BIT = 0x00000001,
2910 VK_CULL_MODE_BACK_BIT = 0x00000002,
2911 VK_CULL_MODE_FRONT_AND_BACK = 0x00000003,
2912}
2913
Ian Elliott28bd2c32017-10-13 09:21:12 -06002914//@vulkan1_1 flags
Daniel Koch09f7bf92017-10-05 00:26:58 -04002915
2916/// Subgroup feature flags
2917type VkFlags VkSubgroupFeatureFlags
2918bitfield VkSubgroupFeatureFlagBits {
2919 VK_SUBGROUP_FEATURE_BASIC_BIT = 0x00000001,
2920 VK_SUBGROUP_FEATURE_VOTE_BIT = 0x00000002,
2921 VK_SUBGROUP_FEATURE_ARITHMETIC_BIT = 0x00000004,
2922 VK_SUBGROUP_FEATURE_BALLOT_BIT = 0x00000008,
2923 VK_SUBGROUP_FEATURE_SHUFFLE_BIT = 0x00000010,
2924 VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT = 0x00000020,
2925 VK_SUBGROUP_FEATURE_CLUSTERED_BIT = 0x00000040,
2926 VK_SUBGROUP_FEATURE_QUAD_BIT = 0x00000080,
Jesse Hall72e6a132018-04-06 13:00:44 -07002927
2928 //@extension("VK_NV_shader_subgroup_partitioned") // 199
2929 VK_SUBGROUP_FEATURE_PARTITIONED_BIT_NV = 0x00000100,
Daniel Koch09f7bf92017-10-05 00:26:58 -04002930}
2931
2932/// Peer memory feature flags
2933type VkFlags VkPeerMemoryFeatureFlags
2934bitfield VkPeerMemoryFeatureFlagBits {
2935 VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT = 0x00000001,
2936 VK_PEER_MEMORY_FEATURE_COPY_DST_BIT = 0x00000002,
2937 VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT = 0x00000004,
2938 VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT = 0x00000008,
2939}
2940
2941/// Memory allocation flags
2942type VkFlags VkMemoryAllocateFlags
2943bitfield VkMemoryAllocateFlagBits {
2944 VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT = 0x00000001,
2945}
2946
2947type VkFlags VkCommandPoolTrimFlags
2948//bitfield VkCommandPoolTrimFlagBits {
2949//}
2950
2951type VkFlags VkDescriptorUpdateTemplateCreateFlags
2952//bitfield VkDescriptorUpdateTemplateCreateFlagBits {
2953//}
2954
2955/// External memory handle type flags
2956type VkFlags VkExternalMemoryHandleTypeFlags
2957bitfield VkExternalMemoryHandleTypeFlagBits {
2958 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT = 0x00000001,
2959 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT = 0x00000002,
2960 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 0x00000004,
2961 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT = 0x00000008,
2962 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT = 0x00000010,
2963 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT = 0x00000020,
2964 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT = 0x00000040,
Jesse Hall8c954d32018-01-17 22:06:20 -08002965
Jesse Hall8c954d32018-01-17 22:06:20 -08002966 //@extension("VK_EXT_external_memory_host") // 179
Jesse Hall36215a92018-01-18 15:04:37 -08002967 VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT = 0x00000080,
2968 VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT = 0x00000100,
2969
2970 //@extension("VK_EXT_external_memory_dma_buf") // 126
2971 VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT = 0x00000200,
2972
2973 //@extension("VK_ANDROID_external_memory_android_hardware_buffer") // 130
2974 VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID = 0x00000400,
Daniel Koch09f7bf92017-10-05 00:26:58 -04002975}
2976
2977/// External memory feature flags
2978type VkFlags VkExternalMemoryFeatureFlags
2979bitfield VkExternalMemoryFeatureFlagBits {
2980 VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT = 0x00000001,
2981 VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT = 0x00000002,
2982 VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT = 0x00000004,
2983}
2984
2985/// External fence handle type flags
2986type VkFlags VkExternalFenceHandleTypeFlags
2987bitfield VkExternalFenceHandleTypeFlagBits {
2988 VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT = 0x00000001,
2989 VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT = 0x00000002,
2990 VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 0x00000004,
2991 VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT = 0x00000008,
2992}
2993
2994/// External fence feature flags
2995type VkFlags VkExternalFenceFeatureFlags
2996bitfield VkExternalFenceFeatureFlagBits {
2997 VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT = 0x00000001,
2998 VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT = 0x00000002,
2999}
3000
3001/// Fence import flags
3002type VkFlags VkFenceImportFlags
3003bitfield VkFenceImportFlagBits {
3004 VK_FENCE_IMPORT_TEMPORARY_BIT = 0x00000001,
3005}
3006
3007/// Semaphore import flags
3008type VkFlags VkSemaphoreImportFlags
3009bitfield VkSemaphoreImportFlagBits {
3010 VK_SEMAPHORE_IMPORT_TEMPORARY_BIT = 0x00000001,
3011}
3012
3013/// External semaphore handle type flags
3014type VkFlags VkExternalSemaphoreHandleTypeFlags
3015bitfield VkExternalSemaphoreHandleTypeFlagBits {
3016 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT = 0x00000001,
3017 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT = 0x00000002,
3018 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 0x00000004,
3019 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT = 0x00000008,
3020 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT = 0x00000010,
3021}
3022
3023/// External semaphore feature flags
3024type VkFlags VkExternalSemaphoreFeatureFlags
3025bitfield VkExternalSemaphoreFeatureFlagBits {
3026 VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT = 0x00000001,
3027 VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT = 0x00000002,
3028}
3029
Jesse Hallad250842017-03-10 18:35:38 -08003030@extension("VK_KHR_surface") // 1
Jesse Halld8bade02015-11-24 10:24:18 -08003031type VkFlags VkSurfaceTransformFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08003032@extension("VK_KHR_surface") // 1
Jesse Halld8bade02015-11-24 10:24:18 -08003033bitfield VkSurfaceTransformFlagBitsKHR {
Jesse Hallf9fa9a52016-01-08 16:08:51 -08003034 VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR = 0x00000001,
Jesse Hall9ba8bc82015-11-30 16:22:16 -08003035 VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR = 0x00000002,
3036 VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR = 0x00000004,
3037 VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR = 0x00000008,
3038 VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR = 0x00000010,
3039 VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR = 0x00000020,
3040 VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR = 0x00000040,
3041 VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR = 0x00000080,
3042 VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR = 0x00000100,
Michael Lentine88594d72015-11-12 12:49:45 -08003043}
Jesse Halld27f6aa2015-08-15 17:58:48 -07003044
Jesse Hallad250842017-03-10 18:35:38 -08003045@extension("VK_KHR_surface") // 1
Jesse Halla6429252015-11-29 18:59:42 -08003046type VkFlags VkCompositeAlphaFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08003047@extension("VK_KHR_surface") // 1
Jesse Halla6429252015-11-29 18:59:42 -08003048bitfield VkCompositeAlphaFlagBitsKHR {
3049 VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR = 0x00000001,
3050 VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR = 0x00000002,
3051 VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR = 0x00000004,
3052 VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR = 0x00000008,
3053}
3054
Jesse Hallad250842017-03-10 18:35:38 -08003055@extension("VK_KHR_swapchain") // 2
Jesse Hallf4ab2b12015-11-30 16:04:55 -08003056type VkFlags VkSwapchainCreateFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08003057@extension("VK_KHR_swapchain") // 2
3058bitfield VkSwapchainCreateFlagBitsKHR {
Ian Elliott28bd2c32017-10-13 09:21:12 -06003059 //@vulkan1_1
Jesse Hall8c954d32018-01-17 22:06:20 -08003060 VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR = 0x00000001,
Daniel Koch09f7bf92017-10-05 00:26:58 -04003061 VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR = 0x00000002,
3062}
3063
Ian Elliott28bd2c32017-10-13 09:21:12 -06003064@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04003065@extension("VK_KHR_swapchain") // 2
3066type VkFlags VkDeviceGroupPresentModeFlagsKHR
Ian Elliott28bd2c32017-10-13 09:21:12 -06003067@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04003068@extension("VK_KHR_swapchain") // 2
3069bitfield VkDeviceGroupPresentModeFlagBitsKHR {
3070 VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR = 0x00000001,
3071 VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR = 0x00000002,
3072 VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR = 0x00000004,
3073 VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR = 0x00000008,
Jesse Hallad250842017-03-10 18:35:38 -08003074}
Jesse Hallf4ab2b12015-11-30 16:04:55 -08003075
Jesse Hallad250842017-03-10 18:35:38 -08003076@extension("VK_KHR_display") // 3
Jesse Halld8bade02015-11-24 10:24:18 -08003077type VkFlags VkDisplayPlaneAlphaFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08003078@extension("VK_KHR_display") // 3
Jesse Halld8bade02015-11-24 10:24:18 -08003079bitfield VkDisplayPlaneAlphaFlagBitsKHR {
Jesse Hallf4ab2b12015-11-30 16:04:55 -08003080 VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR = 0x00000001,
3081 VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR = 0x00000002,
3082 VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR = 0x00000004,
3083 VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR = 0x00000008,
Jesse Hall1356b0d2015-11-23 17:24:58 -08003084}
3085
Jesse Hallad250842017-03-10 18:35:38 -08003086@extension("VK_KHR_display") // 3
Jesse Hallf4ab2b12015-11-30 16:04:55 -08003087type VkFlags VkDisplaySurfaceCreateFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08003088//@extension("VK_KHR_display") // 3
Jesse Hallf4ab2b12015-11-30 16:04:55 -08003089//bitfield VkDisplaySurfaceCreateFlagBitsKHR {
3090//}
3091
Jesse Hallad250842017-03-10 18:35:38 -08003092@extension("VK_KHR_display") // 3
Jesse Hall9ba8bc82015-11-30 16:22:16 -08003093type VkFlags VkDisplayModeCreateFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08003094//@extension("VK_KHR_display") // 3
Jesse Hall9ba8bc82015-11-30 16:22:16 -08003095//bitfield VkDisplayModeCreateFlagBitsKHR {
3096//}
3097
Jesse Hallad250842017-03-10 18:35:38 -08003098@extension("VK_KHR_xlib_surface") // 5
Jesse Hallf9fa9a52016-01-08 16:08:51 -08003099type VkFlags VkXlibSurfaceCreateFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08003100//@extension("VK_KHR_xlib_surface") // 5
Jesse Hallf9fa9a52016-01-08 16:08:51 -08003101//bitfield VkXlibSurfaceCreateFlagBitsKHR {
3102//}
3103
Jesse Hallad250842017-03-10 18:35:38 -08003104@extension("VK_KHR_xcb_surface") // 6
Jesse Hallf9fa9a52016-01-08 16:08:51 -08003105type VkFlags VkXcbSurfaceCreateFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08003106//@extension("VK_KHR_xcb_surface") // 6
Jesse Hallf9fa9a52016-01-08 16:08:51 -08003107//bitfield VkXcbSurfaceCreateFlagBitsKHR {
3108//}
3109
Jesse Hallad250842017-03-10 18:35:38 -08003110@extension("VK_KHR_wayland_surface") // 7
Jesse Hallf9fa9a52016-01-08 16:08:51 -08003111type VkFlags VkWaylandSurfaceCreateFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08003112//@extension("VK_KHR_wayland_surface") // 7
Jesse Hallf9fa9a52016-01-08 16:08:51 -08003113//bitfield VkWaylandSurfaceCreateFlagBitsKHR {
3114//}
3115
Jesse Hallad250842017-03-10 18:35:38 -08003116@extension("VK_KHR_mir_surface") // 8
Jesse Hallf9fa9a52016-01-08 16:08:51 -08003117type VkFlags VkMirSurfaceCreateFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08003118//@extension("VK_KHR_mir_surface") // 8
Jesse Hallf9fa9a52016-01-08 16:08:51 -08003119//bitfield VkMirSurfaceCreateFlagBitsKHR {
3120//}
3121
Jesse Hallad250842017-03-10 18:35:38 -08003122@extension("VK_KHR_android_surface") // 9
Jesse Hallf9fa9a52016-01-08 16:08:51 -08003123type VkFlags VkAndroidSurfaceCreateFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08003124//@extension("VK_KHR_android_surface") // 9
Jesse Hallf9fa9a52016-01-08 16:08:51 -08003125//bitfield VkAndroidSurfaceCreateFlagBitsKHR {
3126//}
3127
Jesse Hallad250842017-03-10 18:35:38 -08003128@extension("VK_KHR_win32_surface") // 10
Jesse Hallf9fa9a52016-01-08 16:08:51 -08003129type VkFlags VkWin32SurfaceCreateFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08003130//@extension("VK_KHR_win32_surface") // 10
Jesse Hallf9fa9a52016-01-08 16:08:51 -08003131//bitfield VkWin32SurfaceCreateFlagBitsKHR {
3132//}
3133
Jesse Hallad250842017-03-10 18:35:38 -08003134@extension("VK_ANDROID_native_buffer") // 11
Jesse Hall889cd9a2017-02-25 22:12:23 -08003135type VkFlags VkSwapchainImageUsageFlagsANDROID
Jesse Hallad250842017-03-10 18:35:38 -08003136@extension("VK_ANDROID_native_buffer") // 11
Jesse Hall889cd9a2017-02-25 22:12:23 -08003137bitfield VkSwapchainImageUsageFlagBitsANDROID {
3138 VK_SWAPCHAIN_IMAGE_USAGE_FLAGS_SHARED_BIT_ANDROID = 0x00000001,
3139}
3140
Jesse Hallad250842017-03-10 18:35:38 -08003141@extension("VK_EXT_debug_report") // 12
Jesse Hall715b86a2016-01-16 16:34:29 -08003142type VkFlags VkDebugReportFlagsEXT
Jesse Hallad250842017-03-10 18:35:38 -08003143@extension("VK_EXT_debug_report") // 12
Jesse Hall715b86a2016-01-16 16:34:29 -08003144bitfield VkDebugReportFlagBitsEXT {
Jesse Halle2948d82016-02-25 04:19:32 -08003145 VK_DEBUG_REPORT_INFORMATION_BIT_EXT = 0x00000001,
3146 VK_DEBUG_REPORT_WARNING_BIT_EXT = 0x00000002,
3147 VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT = 0x00000004,
Jesse Hall715b86a2016-01-16 16:34:29 -08003148 VK_DEBUG_REPORT_ERROR_BIT_EXT = 0x00000008,
3149 VK_DEBUG_REPORT_DEBUG_BIT_EXT = 0x00000010,
3150}
3151
Jesse Hallad250842017-03-10 18:35:38 -08003152@extension("VK_NV_external_memory_capabilities") // 56
Chris Forbes289cb792016-12-30 15:03:55 +13003153type VkFlags VkExternalMemoryHandleTypeFlagsNV
Jesse Hallad250842017-03-10 18:35:38 -08003154@extension("VK_NV_external_memory_capabilities") // 56
Chris Forbes289cb792016-12-30 15:03:55 +13003155bitfield VkExternalMemoryHandleTypeFlagBitsNV {
Jesse Halleb02c472017-02-24 15:13:45 -08003156 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV = 0x00000001,
3157 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV = 0x00000002,
3158 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV = 0x00000004,
3159 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV = 0x00000008,
Chris Forbes289cb792016-12-30 15:03:55 +13003160}
3161
Jesse Hallad250842017-03-10 18:35:38 -08003162@extension("VK_NV_external_memory_capabilities") // 56
Chris Forbes289cb792016-12-30 15:03:55 +13003163type VkFlags VkExternalMemoryFeatureFlagsNV
Jesse Hallad250842017-03-10 18:35:38 -08003164@extension("VK_NV_external_memory_capabilities") // 56
Chris Forbes289cb792016-12-30 15:03:55 +13003165bitfield VkExternalMemoryFeatureFlagBitsNV {
Jesse Halleb02c472017-02-24 15:13:45 -08003166 VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV = 0x00000001,
3167 VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV = 0x00000002,
3168 VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV = 0x00000004,
Chris Forbes289cb792016-12-30 15:03:55 +13003169}
3170
Daniel Koch09f7bf92017-10-05 00:26:58 -04003171@extension("VK_KHR_device_group") // 61
3172type VkFlags VkPeerMemoryFeatureFlagsKHR
3173@extension("VK_KHR_device_group") // 61
3174bitfield VkPeerMemoryFeatureFlagBitsKHR {
3175 VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT_KHR = 0x00000001,
3176 VK_PEER_MEMORY_FEATURE_COPY_DST_BIT_KHR = 0x00000002,
3177 VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT_KHR = 0x00000004,
3178 VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT_KHR = 0x00000008,
Jesse Hallad250842017-03-10 18:35:38 -08003179}
3180
Daniel Koch09f7bf92017-10-05 00:26:58 -04003181@extension("VK_KHR_device_group") // 61
3182type VkFlags VkMemoryAllocateFlagsKHR
3183@extension("VK_KHR_device_group") // 61
3184bitfield VkMemoryAllocateFlagBitsKHR {
3185 VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT_KHR = 0x00000001,
Jesse Hallad250842017-03-10 18:35:38 -08003186}
3187
3188@extension("VK_NN_vi_surface") // 63
Jesse Hall77ad05b2017-03-10 22:02:20 -08003189type VkFlags VkViSurfaceCreateFlagsNN
Jesse Hallad250842017-03-10 18:35:38 -08003190//@extension("VK_NN_vi_surface") // 63
Jesse Hall77ad05b2017-03-10 22:02:20 -08003191//bitfield VkViSurfaceCreateFlagBitsNN {
3192//}
3193
Jesse Hallad250842017-03-10 18:35:38 -08003194@extension("VK_KHR_maintenance1") // 70
Jesse Hall77ad05b2017-03-10 22:02:20 -08003195type VkFlags VkCommandPoolTrimFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08003196//@extension("VK_KHR_maintenance1") // 70
Jesse Hall77ad05b2017-03-10 22:02:20 -08003197//bitfield VkCommandPoolTrimFlagBitsKHR {
3198//}
3199
Jesse Hall9492f992017-08-28 12:10:06 -07003200@extension("VK_KHR_external_memory_capabilities") // 72
3201type VkFlags VkExternalMemoryHandleTypeFlagsKHR
3202@extension("VK_KHR_external_memory_capabilities") // 72
3203bitfield VkExternalMemoryHandleTypeFlagBitsKHR {
3204 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = 0x00000001,
3205 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = 0x00000002,
3206 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = 0x00000004,
3207 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT_KHR = 0x00000008,
3208 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT_KHR = 0x00000010,
3209 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT_KHR = 0x00000020,
3210 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT_KHR = 0x00000040,
Jesse Hallad250842017-03-10 18:35:38 -08003211}
3212
Jesse Hall9492f992017-08-28 12:10:06 -07003213@extension("VK_KHR_external_memory_capabilities") // 72
3214type VkFlags VkExternalMemoryFeatureFlagsKHR
3215@extension("VK_KHR_external_memory_capabilities") // 72
3216bitfield VkExternalMemoryFeatureFlagBitsKHR {
3217 VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_KHR = 0x00000001,
3218 VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_KHR = 0x00000002,
3219 VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_KHR = 0x00000004,
Jesse Hallad250842017-03-10 18:35:38 -08003220}
3221
Jesse Hall9492f992017-08-28 12:10:06 -07003222@extension("VK_KHR_external_semaphore_capabilities") // 77
3223type VkFlags VkExternalSemaphoreHandleTypeFlagsKHR
3224@extension("VK_KHR_external_semaphore_capabilities") // 77
3225bitfield VkExternalSemaphoreHandleTypeFlagBitsKHR {
3226 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = 0x00000001
3227 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = 0x00000002
3228 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = 0x00000004
3229 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT_KHR = 0x00000008
3230 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_FENCE_FD_BIT_KHR = 0x00000010
Jesse Hallad250842017-03-10 18:35:38 -08003231}
3232
Jesse Hall9492f992017-08-28 12:10:06 -07003233@extension("VK_KHR_external_semaphore_capabilities") // 77
3234type VkFlags VkExternalSemaphoreFeatureFlagsKHR
3235@extension("VK_KHR_external_semaphore_capabilities") // 77
3236bitfield VkExternalSemaphoreFeatureFlagBitsKHR {
3237 VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT_KHR = 0x00000001,
3238 VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT_KHR = 0x00000002,
3239}
3240
3241@extension("VK_KHR_external_semaphore") // 78
3242type VkFlags VkSemaphoreImportFlagsKHR
3243@extension("VK_KHR_external_semaphore") // 78
3244bitfield VkSemaphoreImportFlagBitsKHR {
3245 VK_SEMAPHORE_IMPORT_TEMPORARY_BIT_KHR = 0x00000001,
Jesse Hallad250842017-03-10 18:35:38 -08003246}
3247
Jesse Halla13a3cf2018-07-09 15:51:52 -07003248@extension("VK_EXT_conditional_rendering") // 82
3249type VkFlags VkConditionalRenderingFlagsEXT
3250@extension("VK_EXT_conditional_rendering") // 82
3251bitfield VkConditionalRenderingFlagBitsEXT {
3252 VK_CONDITIONAL_RENDERING_INVERTED_BIT_EXT = 0x00000001,
3253}
3254
Jesse Hallad250842017-03-10 18:35:38 -08003255@extension("VK_KHR_descriptor_update_template") // 86
3256type VkFlags VkDescriptorUpdateTemplateCreateFlagsKHR
3257//@extension("VK_KHR_descriptor_update_template") // 86
3258//bitfield VkDescriptorUpdateTemplateCreateFlagBitsKHR {
3259//}
3260
3261@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13003262type VkFlags VkIndirectCommandsLayoutUsageFlagsNVX
Jesse Hallad250842017-03-10 18:35:38 -08003263@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13003264bitfield VkIndirectCommandsLayoutUsageFlagBitsNVX {
Jesse Halleb02c472017-02-24 15:13:45 -08003265 VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NVX = 0x00000001,
3266 VK_INDIRECT_COMMANDS_LAYOUT_USAGE_SPARSE_SEQUENCES_BIT_NVX = 0x00000002,
3267 VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EMPTY_EXECUTIONS_BIT_NVX = 0x00000004,
3268 VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NVX = 0x00000008,
Chris Forbes289cb792016-12-30 15:03:55 +13003269}
3270
Jesse Hallad250842017-03-10 18:35:38 -08003271@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13003272type VkFlags VkObjectEntryUsageFlagsNVX
Jesse Hallad250842017-03-10 18:35:38 -08003273@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13003274bitfield VkObjectEntryUsageFlagBitsNVX {
Jesse Halleb02c472017-02-24 15:13:45 -08003275 VK_OBJECT_ENTRY_USAGE_GRAPHICS_BIT_NVX = 0x00000001,
3276 VK_OBJECT_ENTRY_USAGE_COMPUTE_BIT_NVX = 0x00000002,
Chris Forbes289cb792016-12-30 15:03:55 +13003277}
3278
Jesse Hallad250842017-03-10 18:35:38 -08003279@extension("VK_EXT_display_surface_counter") // 91
Jesse Hall77ad05b2017-03-10 22:02:20 -08003280type VkFlags VkSurfaceCounterFlagsEXT
Jesse Hallad250842017-03-10 18:35:38 -08003281@extension("VK_EXT_display_surface_counter") // 91
Jesse Hall77ad05b2017-03-10 22:02:20 -08003282bitfield VkSurfaceCounterFlagBitsEXT {
3283 VK_SURFACE_COUNTER_VBLANK_EXT = 0x00000001,
3284}
3285
Jesse Hallad250842017-03-10 18:35:38 -08003286@extension("VK_NV_viewport_swizzle") // 99
3287type VkFlags VkPipelineViewportSwizzleStateCreateFlagsNV
3288//@extension("VK_NV_viewport_swizzle") // 99
3289//bitfield VkPipelineViewportSwizzleStateCreateFlagBitsNV {
3290//}
3291
3292@extension("VK_EXT_discard_rectangles") // 100
3293type VkFlags VkPipelineDiscardRectangleStateCreateFlagsEXT
3294//@extension("VK_EXT_discard_rectangles") // 100
3295//bitfield VkPipelineDiscardRectangleStateCreateFlagBitsEXT {
3296//}
3297
Jesse Hall8c954d32018-01-17 22:06:20 -08003298@extension("VK_EXT_conservative_rasterization") // 102
3299type VkFlags VkPipelineRasterizationConservativeStateCreateFlagsEXT
3300//@extension("VK_EXT_conservative_rasterization") // 102
3301//bitfield VkPipelineRasterizationConservativeStateCreateFlagBitsEXT {
3302//}
3303
Jesse Hall9492f992017-08-28 12:10:06 -07003304@extension("VK_KHR_external_fence_capabilities") // 113
3305type VkFlags VkExternalFenceHandleTypeFlagsKHR
3306@extension("VK_KHR_external_fence_capabilities") // 113
3307bitfield VkExternalFenceHandleTypeFlagBitsKHR {
3308 VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = 0x00000001,
3309 VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = 0x00000002,
3310 VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = 0x00000004,
3311 VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT_KHR = 0x00000008,
3312}
3313
3314@extension("VK_KHR_external_fence_capabilities") // 113
3315type VkFlags VkExternalFenceFeatureFlagsKHR
3316@extension("VK_KHR_external_fence_capabilities") // 113
3317bitfield VkExternalFenceFeatureFlagBitsKHR {
3318 VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT_KHR = 0x00000001,
3319 VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT_KHR = 0x00000002,
3320}
3321
3322@extension("VK_KHR_external_fence") // 114
3323type VkFlags VkFenceImportFlagsKHR
3324@extension("VK_KHR_external_fence") // 114
3325bitfield VkFenceImportFlagBitsKHR {
3326 VK_FENCE_IMPORT_TEMPORARY_BIT_KHR = 0x00000001,
3327}
3328
Jesse Hallad250842017-03-10 18:35:38 -08003329@extension("VK_MVK_ios_surface") // 123
3330type VkFlags VkIOSSurfaceCreateFlagsMVK
3331//@extension("VK_MVK_ios_surface") // 123
3332//bitfield VkIOSSurfaceCreateFlagBitsMVK {
3333//}
3334
3335@extension("VK_MVK_macos_surface") // 124
3336type VkFlags VkMacOSSurfaceCreateFlagsMVK
3337//@extension("VK_MVK_macos_surface") // 124
3338//bitfield VkMacOSSurfaceCreateFlagBitsMVK {
3339//}
3340
Jesse Hall8c954d32018-01-17 22:06:20 -08003341@extension("VK_EXT_debug_utils") // 129
3342type VkFlags VkDebugUtilsMessengerCallbackDataFlagsEXT
3343//@extension("VK_EXT_debug_utils") // 129
3344//bitfield VkDebugUtilsMessengerCallbackDataFlagBitsEXT {
3345//}
3346
3347@extension("VK_EXT_debug_utils") // 129
3348type VkFlags VkDebugUtilsMessengerCreateFlagsEXT
3349//@extension("VK_EXT_debug_utils") // 129
3350//bitfield VkDebugUtilsMessengerCreateFlagBitsEXT {
3351//}
3352
3353@extension("VK_EXT_debug_utils") // 129
3354type VkFlags VkDebugUtilsMessageSeverityFlagsEXT
3355@extension("VK_EXT_debug_utils") // 129
3356bitfield VkDebugUtilsMessageSeverityFlagBitsEXT {
3357 VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT = 0x00000001,
3358 VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT = 0x00000010,
3359 VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT = 0x00000100,
3360 VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT = 0x00001000,
3361}
3362
3363@extension("VK_EXT_debug_utils") // 129
3364type VkFlags VkDebugUtilsMessageTypeFlagsEXT
3365@extension("VK_EXT_debug_utils") // 129
3366bitfield VkDebugUtilsMessageTypeFlagBitsEXT {
3367 VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT = 0x00000001,
3368 VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT = 0x00000002,
3369 VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT = 0x00000004,
3370}
3371
Jesse Hall7ba0ac72017-07-07 17:13:23 -07003372@extension("VK_NV_fragment_coverage_to_color") // 150
3373type VkFlags VkPipelineCoverageToColorStateCreateFlagsNV
3374@extension("VK_NV_fragment_coverage_to_color") // 150
3375//bitfield VkPipelineCoverageToColorStateCreateFlagBitsNV {
3376//}
3377
3378@extension("VK_NV_framebuffer_mixed_samples") // 153
3379type VkFlags VkPipelineCoverageModulationStateCreateFlagsNV
3380@extension("VK_NV_framebuffer_mixed_samples") // 153
3381//bitfield VkPipelineCoverageModulationStateCreateFlagBitsNV {
3382//}
3383
Jesse Hall77726222017-09-19 14:49:27 -05003384@extension("VK_EXT_validation_cache") // 161
3385type VkFlags VkValidationCacheCreateFlagsEXT
3386@extension("VK_EXT_validation_cache") // 161
3387//bitfield VkValidationCacheCreateFlagBitsEXT {
3388//}
3389
Jesse Hall72e6a132018-04-06 13:00:44 -07003390@extension("VK_EXT_descriptor_indexing") // 162
3391type VkFlags VkDescriptorBindingFlagsEXT
3392@extension("VK_EXT_descriptor_indexing") // 162
3393bitfield VkDescriptorBindingFlagBitsEXT {
3394 VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT_EXT = 0x00000001,
3395 VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT_EXT = 0x00000002,
3396 VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT_EXT = 0x00000004,
3397 VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT_EXT = 0x00000008,
3398}
3399
Jesse Hallb5297192018-09-22 20:52:13 +02003400@extension("VK_NVX_raytracing") // 166
3401type VkFlags VkGeometryFlagsNVX
3402@extension("VK_NVX_raytracing") // 166
3403bitfield VkGeometryFlagBitsNVX {
3404 VK_GEOMETRY_OPAQUE_BIT_NVX = 0x00000001,
3405 VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_NVX = 0x00000002,
3406}
3407
3408@extension("VK_NVX_raytracing") // 166
3409type VkFlags VkGeometryInstanceFlagsNVX
3410@extension("VK_NVX_raytracing") // 166
3411bitfield VkGeometryInstanceFlagBitsNVX {
3412 VK_GEOMETRY_INSTANCE_TRIANGLE_CULL_DISABLE_BIT_NVX = 0x00000001,
3413 VK_GEOMETRY_INSTANCE_TRIANGLE_CULL_FLIP_WINDING_BIT_NVX = 0x00000002,
3414 VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_NVX = 0x00000004,
3415 VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_NVX = 0x00000008,
3416}
3417
3418@extension("VK_NVX_raytracing") // 166
3419type VkFlags VkBuildAccelerationStructureFlagsNVX
3420@extension("VK_NVX_raytracing") // 166
3421bitfield VkBuildAccelerationStructureFlagBitsNVX {
3422 VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_NVX = 0x00000001,
3423 VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_NVX = 0x00000002,
3424 VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_NVX = 0x00000004,
3425 VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_NVX = 0x00000008,
3426 VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_NVX = 0x00000010,
3427}
3428
Jesse Halld27f6aa2015-08-15 17:58:48 -07003429//////////////////
3430// Structures //
3431//////////////////
3432
3433class VkOffset2D {
3434 s32 x
3435 s32 y
3436}
3437
3438class VkOffset3D {
3439 s32 x
3440 s32 y
3441 s32 z
3442}
3443
3444class VkExtent2D {
Jesse Hall3dd678a2016-01-08 21:52:01 -08003445 u32 width
3446 u32 height
Jesse Halld27f6aa2015-08-15 17:58:48 -07003447}
3448
3449class VkExtent3D {
Jesse Hall3dd678a2016-01-08 21:52:01 -08003450 u32 width
3451 u32 height
3452 u32 depth
Jesse Halld27f6aa2015-08-15 17:58:48 -07003453}
3454
3455class VkViewport {
Jesse Hall65ab5522015-11-30 00:07:16 -08003456 f32 x
3457 f32 y
Jesse Halld27f6aa2015-08-15 17:58:48 -07003458 f32 width
3459 f32 height
3460 f32 minDepth
3461 f32 maxDepth
3462}
3463
3464class VkRect2D {
3465 VkOffset2D offset
3466 VkExtent2D extent
3467}
3468
Jesse Halla15a4bf2015-11-19 22:48:02 -08003469class VkClearRect {
3470 VkRect2D rect
3471 u32 baseArrayLayer
Jesse Hall3fbc8562015-11-29 22:10:52 -08003472 u32 layerCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07003473}
3474
Jesse Hall65ab5522015-11-30 00:07:16 -08003475class VkComponentMapping {
3476 VkComponentSwizzle r
3477 VkComponentSwizzle g
3478 VkComponentSwizzle b
3479 VkComponentSwizzle a
Jesse Halld27f6aa2015-08-15 17:58:48 -07003480}
3481
3482class VkPhysicalDeviceProperties {
3483 u32 apiVersion
3484 u32 driverVersion
Jesse Hall65ab5522015-11-30 00:07:16 -08003485 u32 vendorID
3486 u32 deviceID
Jesse Halld27f6aa2015-08-15 17:58:48 -07003487 VkPhysicalDeviceType deviceType
Jesse Hall65ab5522015-11-30 00:07:16 -08003488 char[VK_MAX_PHYSICAL_DEVICE_NAME_SIZE] deviceName
3489 u8[VK_UUID_SIZE] pipelineCacheUUID
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003490 VkPhysicalDeviceLimits limits
3491 VkPhysicalDeviceSparseProperties sparseProperties
Jesse Halld27f6aa2015-08-15 17:58:48 -07003492}
3493
3494class VkExtensionProperties {
Jesse Hall65ab5522015-11-30 00:07:16 -08003495 char[VK_MAX_EXTENSION_NAME_SIZE] extensionName /// extension name
Jesse Halld27f6aa2015-08-15 17:58:48 -07003496 u32 specVersion /// version of the extension specification implemented
3497}
3498
3499class VkLayerProperties {
Jesse Hall65ab5522015-11-30 00:07:16 -08003500 char[VK_MAX_EXTENSION_NAME_SIZE] layerName /// layer name
Jesse Hall3fbc8562015-11-29 22:10:52 -08003501 u32 specVersion /// version of the layer specification implemented
3502 u32 implementationVersion /// build or release version of the layer's library
Jesse Hall65ab5522015-11-30 00:07:16 -08003503 char[VK_MAX_DESCRIPTION_SIZE] description /// Free-form description of the layer
Jesse Halld27f6aa2015-08-15 17:58:48 -07003504}
3505
Jesse Halla366a512015-11-19 22:30:07 -08003506class VkSubmitInfo {
Jesse Hall03b6fe12015-11-24 12:44:21 -08003507 VkStructureType sType /// Type of structure. Should be VK_STRUCTURE_TYPE_SUBMIT_INFO
3508 const void* pNext /// Next structure in chain
3509 u32 waitSemaphoreCount
Jesse Halla366a512015-11-19 22:30:07 -08003510 const VkSemaphore* pWaitSemaphores
Jesse Hall543a7ff2016-01-08 16:38:30 -08003511 const VkPipelineStageFlags* pWaitDstStageMask
Jesse Hall03b6fe12015-11-24 12:44:21 -08003512 u32 commandBufferCount
Jesse Hall3fbc8562015-11-29 22:10:52 -08003513 const VkCommandBuffer* pCommandBuffers
Jesse Hall03b6fe12015-11-24 12:44:21 -08003514 u32 signalSemaphoreCount
Jesse Halla366a512015-11-19 22:30:07 -08003515 const VkSemaphore* pSignalSemaphores
3516}
3517
Jesse Halld27f6aa2015-08-15 17:58:48 -07003518class VkApplicationInfo {
3519 VkStructureType sType /// Type of structure. Should be VK_STRUCTURE_TYPE_APPLICATION_INFO
3520 const void* pNext /// Next structure in chain
Jesse Hall3fbc8562015-11-29 22:10:52 -08003521 const char* pApplicationName
3522 u32 applicationVersion
Jesse Halld27f6aa2015-08-15 17:58:48 -07003523 const char* pEngineName
3524 u32 engineVersion
3525 u32 apiVersion
3526}
3527
Jesse Hall3fbc8562015-11-29 22:10:52 -08003528class VkAllocationCallbacks {
Jesse Halld27f6aa2015-08-15 17:58:48 -07003529 void* pUserData
Jesse Hall3fbc8562015-11-29 22:10:52 -08003530 PFN_vkAllocationFunction pfnAllocation
3531 PFN_vkReallocationFunction pfnReallocation
Jesse Halld27f6aa2015-08-15 17:58:48 -07003532 PFN_vkFreeFunction pfnFree
Jesse Hall3fbc8562015-11-29 22:10:52 -08003533 PFN_vkInternalAllocationNotification pfnInternalAllocation
Jesse Hall03b6fe12015-11-24 12:44:21 -08003534 PFN_vkInternalFreeNotification pfnInternalFree
Jesse Halld27f6aa2015-08-15 17:58:48 -07003535}
3536
3537class VkDeviceQueueCreateInfo {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003538 VkStructureType sStype /// Should be VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO
3539 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003540 VkDeviceQueueCreateFlags flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07003541 u32 queueFamilyIndex
Jesse Halldba27f72015-11-30 14:25:46 -08003542 u32 queueCount
Jesse Hallfbf97b02015-11-20 14:17:03 -08003543 const f32* pQueuePriorities
Jesse Halld27f6aa2015-08-15 17:58:48 -07003544}
3545
3546class VkDeviceCreateInfo {
3547 VkStructureType sType /// Should be VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO
3548 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003549 VkDeviceCreateFlags flags
Jesse Halldba27f72015-11-30 14:25:46 -08003550 u32 queueCreateInfoCount
3551 const VkDeviceQueueCreateInfo* pQueueCreateInfos
Jesse Hall3dd678a2016-01-08 21:52:01 -08003552 u32 enabledLayerCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07003553 const char* const* ppEnabledLayerNames /// Ordered list of layer names to be enabled
Jesse Hall3dd678a2016-01-08 21:52:01 -08003554 u32 enabledExtensionCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07003555 const char* const* ppEnabledExtensionNames
3556 const VkPhysicalDeviceFeatures* pEnabledFeatures
Jesse Halld27f6aa2015-08-15 17:58:48 -07003557}
3558
3559class VkInstanceCreateInfo {
3560 VkStructureType sType /// Should be VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO
3561 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003562 VkInstanceCreateFlags flags
Jesse Hall3fbc8562015-11-29 22:10:52 -08003563 const VkApplicationInfo* pApplicationInfo
Jesse Hall3dd678a2016-01-08 21:52:01 -08003564 u32 enabledLayerCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07003565 const char* const* ppEnabledLayerNames /// Ordered list of layer names to be enabled
Jesse Hall3dd678a2016-01-08 21:52:01 -08003566 u32 enabledExtensionCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07003567 const char* const* ppEnabledExtensionNames /// Extension names to be enabled
3568}
3569
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003570class VkQueueFamilyProperties {
Jesse Halld27f6aa2015-08-15 17:58:48 -07003571 VkQueueFlags queueFlags /// Queue flags
3572 u32 queueCount
Jesse Hallacfa5342015-11-19 21:51:33 -08003573 u32 timestampValidBits
Jesse Hall65ab5522015-11-30 00:07:16 -08003574 VkExtent3D minImageTransferGranularity
Jesse Halld27f6aa2015-08-15 17:58:48 -07003575}
3576
3577class VkPhysicalDeviceMemoryProperties {
3578 u32 memoryTypeCount
3579 VkMemoryType[VK_MAX_MEMORY_TYPES] memoryTypes
3580 u32 memoryHeapCount
3581 VkMemoryHeap[VK_MAX_MEMORY_HEAPS] memoryHeaps
3582}
3583
Jesse Hall3fbc8562015-11-29 22:10:52 -08003584class VkMemoryAllocateInfo {
Jesse Hallf4ab2b12015-11-30 16:04:55 -08003585 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO
Jesse Halld27f6aa2015-08-15 17:58:48 -07003586 const void* pNext /// Pointer to next structure
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003587 VkDeviceSize allocationSize /// Size of memory allocation
Jesse Halld27f6aa2015-08-15 17:58:48 -07003588 u32 memoryTypeIndex /// Index of the of the memory type to allocate from
3589}
3590
3591class VkMemoryRequirements {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003592 VkDeviceSize size /// Specified in bytes
3593 VkDeviceSize alignment /// Specified in bytes
Jesse Halld27f6aa2015-08-15 17:58:48 -07003594 u32 memoryTypeBits /// Bitfield of the allowed memory type indices into memoryTypes[] for this object
3595}
3596
3597class VkSparseImageFormatProperties {
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08003598 VkImageAspectFlagBits aspectMask
Jesse Halld27f6aa2015-08-15 17:58:48 -07003599 VkExtent3D imageGranularity
3600 VkSparseImageFormatFlags flags
3601}
3602
3603class VkSparseImageMemoryRequirements {
Jesse Hallb00daad2015-11-29 19:46:20 -08003604 VkSparseImageFormatProperties formatProperties
Jesse Hallf9fa9a52016-01-08 16:08:51 -08003605 u32 imageMipTailFirstLod
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003606 VkDeviceSize imageMipTailSize /// Specified in bytes, must be a multiple of image block size / alignment
3607 VkDeviceSize imageMipTailOffset /// Specified in bytes, must be a multiple of image block size / alignment
3608 VkDeviceSize imageMipTailStride /// Specified in bytes, must be a multiple of image block size / alignment
Jesse Halld27f6aa2015-08-15 17:58:48 -07003609}
3610
3611class VkMemoryType {
3612 VkMemoryPropertyFlags propertyFlags /// Memory properties of this memory type
3613 u32 heapIndex /// Index of the memory heap allocations of this memory type are taken from
3614}
3615
3616class VkMemoryHeap {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003617 VkDeviceSize size /// Available memory in the heap
Jesse Halld27f6aa2015-08-15 17:58:48 -07003618 VkMemoryHeapFlags flags /// Flags for the heap
3619}
3620
3621class VkMappedMemoryRange {
3622 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE
3623 const void* pNext /// Pointer to next structure
Jesse Hall3fbc8562015-11-29 22:10:52 -08003624 VkDeviceMemory memory /// Mapped memory object
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003625 VkDeviceSize offset /// Offset within the mapped memory the range starts from
3626 VkDeviceSize size /// Size of the range within the mapped memory
Jesse Halld27f6aa2015-08-15 17:58:48 -07003627}
3628
3629class VkFormatProperties {
3630 VkFormatFeatureFlags linearTilingFeatures /// Format features in case of linear tiling
3631 VkFormatFeatureFlags optimalTilingFeatures /// Format features in case of optimal tiling
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003632 VkFormatFeatureFlags bufferFeatures /// Format features supported by buffers
Jesse Halld27f6aa2015-08-15 17:58:48 -07003633}
3634
3635class VkImageFormatProperties {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003636 VkExtent3D maxExtent /// max image dimensions for this resource type
3637 u32 maxMipLevels /// max number of mipmap levels for this resource type
Jesse Halla15a4bf2015-11-19 22:48:02 -08003638 u32 maxArrayLayers /// max array layers for this resource type
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003639 VkSampleCountFlags sampleCounts /// supported sample counts for this resource type
3640 VkDeviceSize maxResourceSize /// max size (in bytes) of this resource type
3641}
3642
Jesse Halla15a4bf2015-11-19 22:48:02 -08003643class VkDescriptorImageInfo {
3644 VkSampler sampler
3645 VkImageView imageView
3646 VkImageLayout imageLayout
3647}
3648
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003649class VkDescriptorBufferInfo {
3650 VkBuffer buffer /// Buffer used for this descriptor when the descriptor is UNIFORM_BUFFER[_DYNAMIC]
3651 VkDeviceSize offset /// Base offset from buffer start in bytes to update in the descriptor set.
3652 VkDeviceSize range /// Size in bytes of the buffer resource for this descriptor update.
Jesse Halld27f6aa2015-08-15 17:58:48 -07003653}
3654
Jesse Halld27f6aa2015-08-15 17:58:48 -07003655class VkWriteDescriptorSet {
3656 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET
3657 const void* pNext /// Pointer to next structure
Jesse Hall3fbc8562015-11-29 22:10:52 -08003658 VkDescriptorSet dstSet /// Destination descriptor set
3659 u32 dstBinding /// Binding within the destination descriptor set to write
3660 u32 dstArrayElement /// Array element within the destination binding to write
Jesse Hall03b6fe12015-11-24 12:44:21 -08003661 u32 descriptorCount /// Number of descriptors to write (determines the size of the array pointed by <pDescriptors>)
Jesse Halld27f6aa2015-08-15 17:58:48 -07003662 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 -08003663 const VkDescriptorImageInfo* pImageInfo
3664 const VkDescriptorBufferInfo* pBufferInfo
3665 const VkBufferView* pTexelBufferView
Jesse Halld27f6aa2015-08-15 17:58:48 -07003666}
3667
3668class VkCopyDescriptorSet {
3669 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET
3670 const void* pNext /// Pointer to next structure
3671 VkDescriptorSet srcSet /// Source descriptor set
3672 u32 srcBinding /// Binding within the source descriptor set to copy from
3673 u32 srcArrayElement /// Array element within the source binding to copy from
Jesse Hall3fbc8562015-11-29 22:10:52 -08003674 VkDescriptorSet dstSet /// Destination descriptor set
3675 u32 dstBinding /// Binding within the destination descriptor set to copy to
3676 u32 dstArrayElement /// Array element within the destination binding to copy to
Jesse Hall03b6fe12015-11-24 12:44:21 -08003677 u32 descriptorCount /// Number of descriptors to copy
Jesse Halld27f6aa2015-08-15 17:58:48 -07003678}
3679
3680class VkBufferCreateInfo {
3681 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO
3682 const void* pNext /// Pointer to next structure.
Jesse Halla6429252015-11-29 18:59:42 -08003683 VkBufferCreateFlags flags /// Buffer creation flags
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003684 VkDeviceSize size /// Specified in bytes
Jesse Halld27f6aa2015-08-15 17:58:48 -07003685 VkBufferUsageFlags usage /// Buffer usage flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07003686 VkSharingMode sharingMode
Jesse Hall03b6fe12015-11-24 12:44:21 -08003687 u32 queueFamilyIndexCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07003688 const u32* pQueueFamilyIndices
3689}
3690
3691class VkBufferViewCreateInfo {
3692 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO
3693 const void* pNext /// Pointer to next structure.
Jesse Halla6429252015-11-29 18:59:42 -08003694 VkBufferViewCreateFlags flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07003695 VkBuffer buffer
Jesse Halld27f6aa2015-08-15 17:58:48 -07003696 VkFormat format /// Optionally specifies format of elements
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003697 VkDeviceSize offset /// Specified in bytes
3698 VkDeviceSize range /// View size specified in bytes
Jesse Halld27f6aa2015-08-15 17:58:48 -07003699}
3700
3701class VkImageSubresource {
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08003702 VkImageAspectFlagBits aspectMask
Jesse Halld27f6aa2015-08-15 17:58:48 -07003703 u32 mipLevel
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003704 u32 arrayLayer
Jesse Halld27f6aa2015-08-15 17:58:48 -07003705}
3706
3707class VkImageSubresourceRange {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003708 VkImageAspectFlags aspectMask
Jesse Halld27f6aa2015-08-15 17:58:48 -07003709 u32 baseMipLevel
Jesse Hall3fbc8562015-11-29 22:10:52 -08003710 u32 levelCount
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003711 u32 baseArrayLayer
Jesse Hall3fbc8562015-11-29 22:10:52 -08003712 u32 layerCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07003713}
3714
3715class VkMemoryBarrier {
3716 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_MEMORY_BARRIER
3717 const void* pNext /// Pointer to next structure.
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08003718 VkAccessFlags srcAccessMask
3719 VkAccessFlags dstAccessMask
Jesse Halld27f6aa2015-08-15 17:58:48 -07003720}
3721
3722class VkBufferMemoryBarrier {
3723 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER
3724 const void* pNext /// Pointer to next structure.
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08003725 VkAccessFlags srcAccessMask
3726 VkAccessFlags dstAccessMask
Jesse Halld27f6aa2015-08-15 17:58:48 -07003727 u32 srcQueueFamilyIndex /// Queue family to transition ownership from
Jesse Hall3fbc8562015-11-29 22:10:52 -08003728 u32 dstQueueFamilyIndex /// Queue family to transition ownership to
Jesse Halld27f6aa2015-08-15 17:58:48 -07003729 VkBuffer buffer /// Buffer to sync
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003730 VkDeviceSize offset /// Offset within the buffer to sync
3731 VkDeviceSize size /// Amount of bytes to sync
Jesse Halld27f6aa2015-08-15 17:58:48 -07003732}
3733
3734class VkImageMemoryBarrier {
3735 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER
3736 const void* pNext /// Pointer to next structure.
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08003737 VkAccessFlags srcAccessMask
3738 VkAccessFlags dstAccessMask
Jesse Halld27f6aa2015-08-15 17:58:48 -07003739 VkImageLayout oldLayout /// Current layout of the image
3740 VkImageLayout newLayout /// New layout to transition the image to
3741 u32 srcQueueFamilyIndex /// Queue family to transition ownership from
Jesse Hall3fbc8562015-11-29 22:10:52 -08003742 u32 dstQueueFamilyIndex /// Queue family to transition ownership to
Jesse Halld27f6aa2015-08-15 17:58:48 -07003743 VkImage image /// Image to sync
3744 VkImageSubresourceRange subresourceRange /// Subresource range to sync
3745}
3746
3747class VkImageCreateInfo {
3748 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO
3749 const void* pNext /// Pointer to next structure.
Jesse Halla6429252015-11-29 18:59:42 -08003750 VkImageCreateFlags flags /// Image creation flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07003751 VkImageType imageType
3752 VkFormat format
3753 VkExtent3D extent
3754 u32 mipLevels
Jesse Halla15a4bf2015-11-19 22:48:02 -08003755 u32 arrayLayers
Jesse Hall091ed9e2015-11-30 00:55:29 -08003756 VkSampleCountFlagBits samples
Jesse Halld27f6aa2015-08-15 17:58:48 -07003757 VkImageTiling tiling
3758 VkImageUsageFlags usage /// Image usage flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07003759 VkSharingMode sharingMode /// Cross-queue-family sharing mode
Jesse Hall03b6fe12015-11-24 12:44:21 -08003760 u32 queueFamilyIndexCount /// Number of queue families to share across
Jesse Halld27f6aa2015-08-15 17:58:48 -07003761 const u32* pQueueFamilyIndices /// Array of queue family indices to share across
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003762 VkImageLayout initialLayout /// Initial image layout for all subresources
Jesse Halld27f6aa2015-08-15 17:58:48 -07003763}
3764
3765class VkSubresourceLayout {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003766 VkDeviceSize offset /// Specified in bytes
3767 VkDeviceSize size /// Specified in bytes
3768 VkDeviceSize rowPitch /// Specified in bytes
Jesse Hall543a7ff2016-01-08 16:38:30 -08003769 VkDeviceSize arrayPitch /// Specified in bytes
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003770 VkDeviceSize depthPitch /// Specified in bytes
Jesse Halld27f6aa2015-08-15 17:58:48 -07003771}
3772
3773class VkImageViewCreateInfo {
3774 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO
3775 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003776 VkImageViewCreateFlags flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07003777 VkImage image
3778 VkImageViewType viewType
3779 VkFormat format
Jesse Hall65ab5522015-11-30 00:07:16 -08003780 VkComponentMapping components
Jesse Halld27f6aa2015-08-15 17:58:48 -07003781 VkImageSubresourceRange subresourceRange
Jesse Halld27f6aa2015-08-15 17:58:48 -07003782}
3783
3784class VkBufferCopy {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003785 VkDeviceSize srcOffset /// Specified in bytes
Jesse Hall3fbc8562015-11-29 22:10:52 -08003786 VkDeviceSize dstOffset /// Specified in bytes
Jesse Hallb00daad2015-11-29 19:46:20 -08003787 VkDeviceSize size /// Specified in bytes
Jesse Halld27f6aa2015-08-15 17:58:48 -07003788}
3789
Jesse Halla6429252015-11-29 18:59:42 -08003790class VkSparseMemoryBind {
Jesse Hallb00daad2015-11-29 19:46:20 -08003791 VkDeviceSize resourceOffset /// Specified in bytes
3792 VkDeviceSize size /// Specified in bytes
Jesse Hall3fbc8562015-11-29 22:10:52 -08003793 VkDeviceMemory memory
3794 VkDeviceSize memoryOffset /// Specified in bytes
Jesse Halld27f6aa2015-08-15 17:58:48 -07003795 VkSparseMemoryBindFlags flags
3796}
3797
Jesse Halla6429252015-11-29 18:59:42 -08003798class VkSparseImageMemoryBind {
Jesse Halld27f6aa2015-08-15 17:58:48 -07003799 VkImageSubresource subresource
3800 VkOffset3D offset
3801 VkExtent3D extent
Jesse Hall3fbc8562015-11-29 22:10:52 -08003802 VkDeviceMemory memory
3803 VkDeviceSize memoryOffset /// Specified in bytes
Jesse Halld27f6aa2015-08-15 17:58:48 -07003804 VkSparseMemoryBindFlags flags
3805}
3806
Jesse Halla6429252015-11-29 18:59:42 -08003807class VkSparseBufferMemoryBindInfo {
3808 VkBuffer buffer
3809 u32 bindCount
3810 const VkSparseMemoryBind* pBinds
3811}
3812
3813class VkSparseImageOpaqueMemoryBindInfo {
3814 VkImage image
3815 u32 bindCount
3816 const VkSparseMemoryBind* pBinds
3817}
3818
3819class VkSparseImageMemoryBindInfo {
3820 VkImage image
3821 u32 bindCount
3822 const VkSparseMemoryBind* pBinds
3823}
3824
3825class VkBindSparseInfo {
3826 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_BIND_SPARSE_INFO
3827 const void* pNext
3828 u32 waitSemaphoreCount
3829 const VkSemaphore* pWaitSemaphores
3830 u32 numBufferBinds
3831 const VkSparseBufferMemoryBindInfo* pBufferBinds
3832 u32 numImageOpaqueBinds
3833 const VkSparseImageOpaqueMemoryBindInfo* pImageOpaqueBinds
3834 u32 numImageBinds
3835 const VkSparseImageMemoryBindInfo* pImageBinds
3836 u32 signalSemaphoreCount
3837 const VkSemaphore* pSignalSemaphores
3838}
3839
Jesse Hall65ab5522015-11-30 00:07:16 -08003840class VkImageSubresourceLayers {
3841 VkImageAspectFlags aspectMask
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003842 u32 mipLevel
Jesse Halla15a4bf2015-11-19 22:48:02 -08003843 u32 baseArrayLayer
Jesse Hall3fbc8562015-11-29 22:10:52 -08003844 u32 layerCount
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003845}
3846
Jesse Halld27f6aa2015-08-15 17:58:48 -07003847class VkImageCopy {
Jesse Hall65ab5522015-11-30 00:07:16 -08003848 VkImageSubresourceLayers srcSubresource
Jesse Halld27f6aa2015-08-15 17:58:48 -07003849 VkOffset3D srcOffset /// Specified in pixels for both compressed and uncompressed images
Jesse Hall65ab5522015-11-30 00:07:16 -08003850 VkImageSubresourceLayers dstSubresource
Jesse Hall3fbc8562015-11-29 22:10:52 -08003851 VkOffset3D dstOffset /// Specified in pixels for both compressed and uncompressed images
Jesse Halld27f6aa2015-08-15 17:58:48 -07003852 VkExtent3D extent /// Specified in pixels for both compressed and uncompressed images
3853}
3854
3855class VkImageBlit {
Jesse Hall65ab5522015-11-30 00:07:16 -08003856 VkImageSubresourceLayers srcSubresource
Jesse Hall3dd678a2016-01-08 21:52:01 -08003857 VkOffset3D[2] srcOffsets
Jesse Hall65ab5522015-11-30 00:07:16 -08003858 VkImageSubresourceLayers dstSubresource
Jesse Hall3dd678a2016-01-08 21:52:01 -08003859 VkOffset3D[2] dstOffsets
Jesse Halld27f6aa2015-08-15 17:58:48 -07003860}
3861
3862class VkBufferImageCopy {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003863 VkDeviceSize bufferOffset /// Specified in bytes
Jesse Halld27f6aa2015-08-15 17:58:48 -07003864 u32 bufferRowLength /// Specified in texels
3865 u32 bufferImageHeight
Jesse Hall65ab5522015-11-30 00:07:16 -08003866 VkImageSubresourceLayers imageSubresource
Jesse Halld27f6aa2015-08-15 17:58:48 -07003867 VkOffset3D imageOffset /// Specified in pixels for both compressed and uncompressed images
3868 VkExtent3D imageExtent /// Specified in pixels for both compressed and uncompressed images
3869}
3870
3871class VkImageResolve {
Jesse Hall65ab5522015-11-30 00:07:16 -08003872 VkImageSubresourceLayers srcSubresource
Jesse Halld27f6aa2015-08-15 17:58:48 -07003873 VkOffset3D srcOffset
Jesse Hall65ab5522015-11-30 00:07:16 -08003874 VkImageSubresourceLayers dstSubresource
Jesse Hall3fbc8562015-11-29 22:10:52 -08003875 VkOffset3D dstOffset
Jesse Halld27f6aa2015-08-15 17:58:48 -07003876 VkExtent3D extent
3877}
3878
3879class VkShaderModuleCreateInfo {
3880 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO
3881 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003882 VkShaderModuleCreateFlags flags /// Reserved
Jesse Halld27f6aa2015-08-15 17:58:48 -07003883 platform.size_t codeSize /// Specified in bytes
Jesse Halla9bb62b2015-11-21 19:31:56 -08003884 const u32* pCode /// Binary code of size codeSize
Jesse Halld27f6aa2015-08-15 17:58:48 -07003885}
3886
Jesse Halld27f6aa2015-08-15 17:58:48 -07003887class VkDescriptorSetLayoutBinding {
Jesse Hall091ed9e2015-11-30 00:55:29 -08003888 u32 binding
Jesse Halld27f6aa2015-08-15 17:58:48 -07003889 VkDescriptorType descriptorType /// Type of the descriptors in this binding
Jesse Halldba27f72015-11-30 14:25:46 -08003890 u32 descriptorCount /// Number of descriptors in this binding
Jesse Halld27f6aa2015-08-15 17:58:48 -07003891 VkShaderStageFlags stageFlags /// Shader stages this binding is visible to
3892 const VkSampler* pImmutableSamplers /// Immutable samplers (used if descriptor type is SAMPLER or COMBINED_IMAGE_SAMPLER, is either NULL or contains <count> number of elements)
3893}
3894
3895class VkDescriptorSetLayoutCreateInfo {
3896 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO
3897 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003898 VkDescriptorSetLayoutCreateFlags flags
Jesse Hall03b6fe12015-11-24 12:44:21 -08003899 u32 bindingCount /// Number of bindings in the descriptor set layout
Jesse Hall543a7ff2016-01-08 16:38:30 -08003900 const VkDescriptorSetLayoutBinding* pBindings /// Array of descriptor set layout bindings
Jesse Halld27f6aa2015-08-15 17:58:48 -07003901}
3902
Jesse Hall65ab5522015-11-30 00:07:16 -08003903class VkDescriptorPoolSize {
Jesse Halld27f6aa2015-08-15 17:58:48 -07003904 VkDescriptorType type
Jesse Hall03b6fe12015-11-24 12:44:21 -08003905 u32 descriptorCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07003906}
3907
3908class VkDescriptorPoolCreateInfo {
3909 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO
3910 const void* pNext /// Pointer to next structure
Jesse Hallfbf97b02015-11-20 14:17:03 -08003911 VkDescriptorPoolCreateFlags flags
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003912 u32 maxSets
Jesse Hall65ab5522015-11-30 00:07:16 -08003913 u32 poolSizeCount
3914 const VkDescriptorPoolSize* pPoolSizes
Jesse Halld27f6aa2015-08-15 17:58:48 -07003915}
3916
Jesse Hall3fbc8562015-11-29 22:10:52 -08003917class VkDescriptorSetAllocateInfo {
Jesse Hallf4ab2b12015-11-30 16:04:55 -08003918 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO
Jesse Hallfbf97b02015-11-20 14:17:03 -08003919 const void* pNext /// Pointer to next structure
3920 VkDescriptorPool descriptorPool
Jesse Hall03b6fe12015-11-24 12:44:21 -08003921 u32 setCount
Jesse Hallfbf97b02015-11-20 14:17:03 -08003922 const VkDescriptorSetLayout* pSetLayouts
3923}
3924
Jesse Halld27f6aa2015-08-15 17:58:48 -07003925class VkSpecializationMapEntry {
Jesse Hall65ab5522015-11-30 00:07:16 -08003926 u32 constantID /// The SpecConstant ID specified in the BIL
Jesse Halld27f6aa2015-08-15 17:58:48 -07003927 u32 offset /// Offset of the value in the data block
Jesse Hallb00daad2015-11-29 19:46:20 -08003928 platform.size_t size /// Size in bytes of the SpecConstant
Jesse Halld27f6aa2015-08-15 17:58:48 -07003929}
3930
3931class VkSpecializationInfo {
3932 u32 mapEntryCount /// Number of entries in the map
Jesse Hallb00daad2015-11-29 19:46:20 -08003933 const VkSpecializationMapEntry* pMapEntries /// Array of map entries
Jesse Halld27f6aa2015-08-15 17:58:48 -07003934 platform.size_t dataSize /// Size in bytes of pData
3935 const void* pData /// Pointer to SpecConstant data
3936}
3937
3938class VkPipelineShaderStageCreateInfo {
3939 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO
3940 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003941 VkPipelineShaderStageCreateFlags flags
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08003942 VkShaderStageFlagBits stage
3943 VkShaderModule module
3944 const char* pName
Jesse Halld27f6aa2015-08-15 17:58:48 -07003945 const VkSpecializationInfo* pSpecializationInfo
3946}
3947
3948class VkComputePipelineCreateInfo {
3949 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO
3950 const void* pNext /// Pointer to next structure
Jesse Halld27f6aa2015-08-15 17:58:48 -07003951 VkPipelineCreateFlags flags /// Pipeline creation flags
Jesse Halla6429252015-11-29 18:59:42 -08003952 VkPipelineShaderStageCreateInfo stage
Jesse Halld27f6aa2015-08-15 17:58:48 -07003953 VkPipelineLayout layout /// Interface layout of the pipeline
3954 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
3955 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
3956}
3957
3958class VkVertexInputBindingDescription {
Jesse Hallb00daad2015-11-29 19:46:20 -08003959 u32 binding /// Vertex buffer binding id
3960 u32 stride /// Distance between vertices in bytes (0 = no advancement)
Jesse Hall65ab5522015-11-30 00:07:16 -08003961 VkVertexInputRate inputRate /// Rate at which binding is incremented
Jesse Halld27f6aa2015-08-15 17:58:48 -07003962}
3963
3964class VkVertexInputAttributeDescription {
Jesse Hallb00daad2015-11-29 19:46:20 -08003965 u32 location /// location of the shader vertex attrib
3966 u32 binding /// Vertex buffer binding id
3967 VkFormat format /// format of source data
3968 u32 offset /// Offset of first element in bytes from base of vertex
Jesse Halld27f6aa2015-08-15 17:58:48 -07003969}
3970
3971class VkPipelineVertexInputStateCreateInfo {
Jesse Hall03b6fe12015-11-24 12:44:21 -08003972 VkStructureType sType /// Should be VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO
3973 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003974 VkPipelineVertexInputStateCreateFlags flags
Jesse Hall03b6fe12015-11-24 12:44:21 -08003975 u32 vertexBindingDescriptionCount /// number of bindings
Jesse Halld27f6aa2015-08-15 17:58:48 -07003976 const VkVertexInputBindingDescription* pVertexBindingDescriptions
Jesse Hall03b6fe12015-11-24 12:44:21 -08003977 u32 vertexAttributeDescriptionCount /// number of attributes
Jesse Halld27f6aa2015-08-15 17:58:48 -07003978 const VkVertexInputAttributeDescription* pVertexAttributeDescriptions
3979}
3980
3981class VkPipelineInputAssemblyStateCreateInfo {
3982 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO
3983 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003984 VkPipelineInputAssemblyStateCreateFlags flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07003985 VkPrimitiveTopology topology
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003986 VkBool32 primitiveRestartEnable
Jesse Halld27f6aa2015-08-15 17:58:48 -07003987}
3988
3989class VkPipelineTessellationStateCreateInfo {
3990 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO
3991 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003992 VkPipelineTessellationStateCreateFlags flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07003993 u32 patchControlPoints
3994}
3995
3996class VkPipelineViewportStateCreateInfo {
3997 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO
3998 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003999 VkPipelineViewportStateCreateFlags flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07004000 u32 viewportCount
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004001 const VkViewport* pViewports
4002 u32 scissorCount
4003 const VkRect2D* pScissors
Jesse Halld27f6aa2015-08-15 17:58:48 -07004004}
4005
Jesse Hall3fbc8562015-11-29 22:10:52 -08004006class VkPipelineRasterizationStateCreateInfo {
Jesse Hall65ab5522015-11-30 00:07:16 -08004007 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO
Jesse Halld27f6aa2015-08-15 17:58:48 -07004008 const void* pNext /// Pointer to next structure
Jesse Hall3fbc8562015-11-29 22:10:52 -08004009 VkPipelineRasterizationStateCreateFlags flags
Jesse Hallae38f732015-11-19 21:32:50 -08004010 VkBool32 depthClampEnable
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004011 VkBool32 rasterizerDiscardEnable
Jesse Hall65ab5522015-11-30 00:07:16 -08004012 VkPolygonMode polygonMode /// optional (GL45)
Jesse Hallc7467b72015-11-29 21:05:26 -08004013 VkCullModeFlags cullMode
Jesse Halld27f6aa2015-08-15 17:58:48 -07004014 VkFrontFace frontFace
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004015 VkBool32 depthBiasEnable
Jesse Halla9bb62b2015-11-21 19:31:56 -08004016 f32 depthBiasConstantFactor
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004017 f32 depthBiasClamp
Jesse Halla9bb62b2015-11-21 19:31:56 -08004018 f32 depthBiasSlopeFactor
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004019 f32 lineWidth
Jesse Halld27f6aa2015-08-15 17:58:48 -07004020}
4021
4022class VkPipelineMultisampleStateCreateInfo {
4023 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO
4024 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08004025 VkPipelineMultisampleStateCreateFlags flags
Jesse Hall091ed9e2015-11-30 00:55:29 -08004026 VkSampleCountFlagBits rasterizationSamples /// Number of samples used for rasterization
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004027 VkBool32 sampleShadingEnable /// optional (GL45)
Jesse Halld27f6aa2015-08-15 17:58:48 -07004028 f32 minSampleShading /// optional (GL45)
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004029 const VkSampleMask* pSampleMask
Jesse Hallacfa5342015-11-19 21:51:33 -08004030 VkBool32 alphaToCoverageEnable
4031 VkBool32 alphaToOneEnable
Jesse Halld27f6aa2015-08-15 17:58:48 -07004032}
4033
4034class VkPipelineColorBlendAttachmentState {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004035 VkBool32 blendEnable
Jesse Hall65ab5522015-11-30 00:07:16 -08004036 VkBlendFactor srcColorBlendFactor
4037 VkBlendFactor dstColorBlendFactor
4038 VkBlendOp colorBlendOp
4039 VkBlendFactor srcAlphaBlendFactor
4040 VkBlendFactor dstAlphaBlendFactor
4041 VkBlendOp alphaBlendOp
4042 VkColorComponentFlags colorWriteMask
Jesse Halld27f6aa2015-08-15 17:58:48 -07004043}
4044
4045class VkPipelineColorBlendStateCreateInfo {
4046 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO
4047 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08004048 VkPipelineColorBlendStateCreateFlags flags
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004049 VkBool32 logicOpEnable
Jesse Halld27f6aa2015-08-15 17:58:48 -07004050 VkLogicOp logicOp
4051 u32 attachmentCount /// # of pAttachments
4052 const VkPipelineColorBlendAttachmentState* pAttachments
Jesse Hallb00daad2015-11-29 19:46:20 -08004053 f32[4] blendConstants
Jesse Halld27f6aa2015-08-15 17:58:48 -07004054}
4055
4056class VkStencilOpState {
Jesse Hall65ab5522015-11-30 00:07:16 -08004057 VkStencilOp failOp
4058 VkStencilOp passOp
4059 VkStencilOp depthFailOp
4060 VkCompareOp compareOp
4061 u32 compareMask
4062 u32 writeMask
4063 u32 reference
Jesse Halld27f6aa2015-08-15 17:58:48 -07004064}
4065
4066class VkPipelineDepthStencilStateCreateInfo {
4067 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO
4068 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08004069 VkPipelineDepthStencilStateCreateFlags flags
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004070 VkBool32 depthTestEnable
4071 VkBool32 depthWriteEnable
Jesse Halld27f6aa2015-08-15 17:58:48 -07004072 VkCompareOp depthCompareOp
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004073 VkBool32 depthBoundsTestEnable /// optional (depth_bounds_test)
4074 VkBool32 stencilTestEnable
Jesse Halld27f6aa2015-08-15 17:58:48 -07004075 VkStencilOpState front
4076 VkStencilOpState back
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004077 f32 minDepthBounds
4078 f32 maxDepthBounds
4079}
4080
4081class VkPipelineDynamicStateCreateInfo {
4082 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO
4083 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08004084 VkPipelineDynamicStateCreateFlags flags
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004085 u32 dynamicStateCount
4086 const VkDynamicState* pDynamicStates
Jesse Halld27f6aa2015-08-15 17:58:48 -07004087}
4088
4089class VkGraphicsPipelineCreateInfo {
Jesse Halla6429252015-11-29 18:59:42 -08004090 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO
4091 const void* pNext /// Pointer to next structure
4092 VkPipelineCreateFlags flags /// Pipeline creation flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07004093 u32 stageCount
Jesse Halla6429252015-11-29 18:59:42 -08004094 const VkPipelineShaderStageCreateInfo* pStages /// One entry for each active shader stage
Jesse Halld27f6aa2015-08-15 17:58:48 -07004095 const VkPipelineVertexInputStateCreateInfo* pVertexInputState
4096 const VkPipelineInputAssemblyStateCreateInfo* pInputAssemblyState
4097 const VkPipelineTessellationStateCreateInfo* pTessellationState
4098 const VkPipelineViewportStateCreateInfo* pViewportState
Jesse Hall3fbc8562015-11-29 22:10:52 -08004099 const VkPipelineRasterizationStateCreateInfo* pRasterizationState
Jesse Halld27f6aa2015-08-15 17:58:48 -07004100 const VkPipelineMultisampleStateCreateInfo* pMultisampleState
4101 const VkPipelineDepthStencilStateCreateInfo* pDepthStencilState
4102 const VkPipelineColorBlendStateCreateInfo* pColorBlendState
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004103 const VkPipelineDynamicStateCreateInfo* pDynamicState
Jesse Halla6429252015-11-29 18:59:42 -08004104 VkPipelineLayout layout /// Interface layout of the pipeline
Jesse Halld27f6aa2015-08-15 17:58:48 -07004105 VkRenderPass renderPass
4106 u32 subpass
Jesse Halla6429252015-11-29 18:59:42 -08004107 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
4108 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 -07004109}
4110
4111class VkPipelineCacheCreateInfo {
Jesse Hallb00daad2015-11-29 19:46:20 -08004112 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO
4113 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08004114 VkPipelineCacheCreateFlags flags
Jesse Hallb00daad2015-11-29 19:46:20 -08004115 platform.size_t initialDataSize /// Size of initial data to populate cache, in bytes
4116 const void* pInitialData /// Initial data to populate cache
Jesse Halld27f6aa2015-08-15 17:58:48 -07004117}
4118
4119class VkPushConstantRange {
4120 VkShaderStageFlags stageFlags /// Which stages use the range
Jesse Hall03b6fe12015-11-24 12:44:21 -08004121 u32 offset /// Start of the range, in bytes
4122 u32 size /// Length of the range, in bytes
Jesse Halld27f6aa2015-08-15 17:58:48 -07004123}
4124
4125class VkPipelineLayoutCreateInfo {
4126 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO
4127 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08004128 VkPipelineLayoutCreateFlags flags
Jesse Hall3dd678a2016-01-08 21:52:01 -08004129 u32 descriptorSetCount /// Number of descriptor sets interfaced by the pipeline
Jesse Halld27f6aa2015-08-15 17:58:48 -07004130 const VkDescriptorSetLayout* pSetLayouts /// Array of <setCount> number of descriptor set layout objects defining the layout of the
4131 u32 pushConstantRangeCount /// Number of push-constant ranges used by the pipeline
4132 const VkPushConstantRange* pPushConstantRanges /// Array of pushConstantRangeCount number of ranges used by various shader stages
4133}
4134
4135class VkSamplerCreateInfo {
4136 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO
4137 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08004138 VkSamplerCreateFlags flags
Jesse Hall23ff73f2015-11-29 14:36:39 -08004139 VkFilter magFilter /// Filter mode for magnification
4140 VkFilter minFilter /// Filter mode for minifiation
4141 VkSamplerMipmapMode mipmapMode /// Mipmap selection mode
4142 VkSamplerAddressMode addressModeU
4143 VkSamplerAddressMode addressModeV
4144 VkSamplerAddressMode addressModeW
Jesse Halld27f6aa2015-08-15 17:58:48 -07004145 f32 mipLodBias
Jesse Hallf9fa9a52016-01-08 16:08:51 -08004146 VkBool32 anisotropyEnable
Jesse Halld27f6aa2015-08-15 17:58:48 -07004147 f32 maxAnisotropy
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004148 VkBool32 compareEnable
Jesse Halld27f6aa2015-08-15 17:58:48 -07004149 VkCompareOp compareOp
4150 f32 minLod
4151 f32 maxLod
4152 VkBorderColor borderColor
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004153 VkBool32 unnormalizedCoordinates
Jesse Halld27f6aa2015-08-15 17:58:48 -07004154}
4155
Jesse Hall3fbc8562015-11-29 22:10:52 -08004156class VkCommandPoolCreateInfo {
4157 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO
Jesse Halld27f6aa2015-08-15 17:58:48 -07004158 const void* pNext /// Pointer to next structure
Jesse Hall3fbc8562015-11-29 22:10:52 -08004159 VkCommandPoolCreateFlags flags /// Command pool creation flags
Jesse Halla6429252015-11-29 18:59:42 -08004160 u32 queueFamilyIndex
Jesse Halld27f6aa2015-08-15 17:58:48 -07004161}
4162
Jesse Hall3fbc8562015-11-29 22:10:52 -08004163class VkCommandBufferAllocateInfo {
Jesse Hallf4ab2b12015-11-30 16:04:55 -08004164 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO
Jesse Halld27f6aa2015-08-15 17:58:48 -07004165 const void* pNext /// Pointer to next structure
Jesse Hall3fbc8562015-11-29 22:10:52 -08004166 VkCommandPool commandPool
4167 VkCommandBufferLevel level
Jesse Hall3dd678a2016-01-08 21:52:01 -08004168 u32 commandBufferCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07004169}
4170
Jesse Hall3dd678a2016-01-08 21:52:01 -08004171class VkCommandBufferInheritanceInfo {
4172 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO
Jesse Halld27f6aa2015-08-15 17:58:48 -07004173 const void* pNext /// Pointer to next structure
Jesse Halld27f6aa2015-08-15 17:58:48 -07004174 VkRenderPass renderPass /// Render pass for secondary command buffers
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004175 u32 subpass
Jesse Halld27f6aa2015-08-15 17:58:48 -07004176 VkFramebuffer framebuffer /// Framebuffer for secondary command buffers
Jesse Hallf4ab2b12015-11-30 16:04:55 -08004177 VkBool32 occlusionQueryEnable
4178 VkQueryControlFlags queryFlags
4179 VkQueryPipelineStatisticFlags pipelineStatistics
Jesse Halld27f6aa2015-08-15 17:58:48 -07004180}
4181
Jesse Hall3dd678a2016-01-08 21:52:01 -08004182class VkCommandBufferBeginInfo {
4183 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO
4184 const void* pNext /// Pointer to next structure
4185 VkCommandBufferUsageFlags flags /// Command buffer usage flags
4186 const VkCommandBufferInheritanceInfo* pInheritanceInfo
4187}
4188
Jesse Halld27f6aa2015-08-15 17:58:48 -07004189class VkRenderPassBeginInfo {
4190 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO
4191 const void* pNext /// Pointer to next structure
4192 VkRenderPass renderPass
4193 VkFramebuffer framebuffer
4194 VkRect2D renderArea
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004195 u32 clearValueCount
4196 const VkClearValue* pClearValues
Jesse Halld27f6aa2015-08-15 17:58:48 -07004197}
4198
4199@union
4200/// Union allowing specification of floating point, integer, or unsigned integer color data. Actual value selected is based on image/attachment being cleared.
4201class VkClearColorValue {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004202 f32[4] float32
4203 s32[4] int32
4204 u32[4] uint32
Jesse Halld27f6aa2015-08-15 17:58:48 -07004205}
4206
4207class VkClearDepthStencilValue {
4208 f32 depth
4209 u32 stencil
4210}
4211
4212@union
4213/// Union allowing specification of color, depth, and stencil color values. Actual value selected is based on attachment being cleared.
4214class VkClearValue {
4215 VkClearColorValue color
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004216 VkClearDepthStencilValue depthStencil
Jesse Halld27f6aa2015-08-15 17:58:48 -07004217}
4218
Jesse Hallae38f732015-11-19 21:32:50 -08004219class VkClearAttachment {
4220 VkImageAspectFlags aspectMask
4221 u32 colorAttachment
4222 VkClearValue clearValue
4223}
4224
Jesse Halld27f6aa2015-08-15 17:58:48 -07004225class VkAttachmentDescription {
Jesse Halla6429252015-11-29 18:59:42 -08004226 VkAttachmentDescriptionFlags flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07004227 VkFormat format
Jesse Hall091ed9e2015-11-30 00:55:29 -08004228 VkSampleCountFlagBits samples
Jesse Halld27f6aa2015-08-15 17:58:48 -07004229 VkAttachmentLoadOp loadOp /// Load op for color or depth data
4230 VkAttachmentStoreOp storeOp /// Store op for color or depth data
4231 VkAttachmentLoadOp stencilLoadOp /// Load op for stencil data
4232 VkAttachmentStoreOp stencilStoreOp /// Store op for stencil data
4233 VkImageLayout initialLayout
4234 VkImageLayout finalLayout
4235}
4236
4237class VkAttachmentReference {
4238 u32 attachment
4239 VkImageLayout layout
4240}
4241
4242class VkSubpassDescription {
Jesse Halld27f6aa2015-08-15 17:58:48 -07004243 VkSubpassDescriptionFlags flags
Jesse Halla6429252015-11-29 18:59:42 -08004244 VkPipelineBindPoint pipelineBindPoint /// Must be VK_PIPELINE_BIND_POINT_GRAPHICS for now
Jesse Hall03b6fe12015-11-24 12:44:21 -08004245 u32 inputAttachmentCount
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004246 const VkAttachmentReference* pInputAttachments
Jesse Hall03b6fe12015-11-24 12:44:21 -08004247 u32 colorAttachmentCount
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004248 const VkAttachmentReference* pColorAttachments
4249 const VkAttachmentReference* pResolveAttachments
Jesse Hallc7467b72015-11-29 21:05:26 -08004250 const VkAttachmentReference* pDepthStencilAttachment
Jesse Hall03b6fe12015-11-24 12:44:21 -08004251 u32 preserveAttachmentCount
Jesse Hall3dd678a2016-01-08 21:52:01 -08004252 const u32* pPreserveAttachments
Jesse Halld27f6aa2015-08-15 17:58:48 -07004253}
4254
4255class VkSubpassDependency {
Jesse Halld27f6aa2015-08-15 17:58:48 -07004256 u32 srcSubpass
Jesse Hall3fbc8562015-11-29 22:10:52 -08004257 u32 dstSubpass
Jesse Halld27f6aa2015-08-15 17:58:48 -07004258 VkPipelineStageFlags srcStageMask
Jesse Hall3fbc8562015-11-29 22:10:52 -08004259 VkPipelineStageFlags dstStageMask
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08004260 VkAccessFlags srcAccessMask
4261 VkAccessFlags dstAccessMask
Jesse Halldc6d36c2015-11-29 19:12:15 -08004262 VkDependencyFlags dependencyFlags
Jesse Halld27f6aa2015-08-15 17:58:48 -07004263}
4264
4265class VkRenderPassCreateInfo {
4266 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO
4267 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08004268 VkRenderPassCreateFlags flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07004269 u32 attachmentCount
4270 const VkAttachmentDescription* pAttachments
4271 u32 subpassCount
4272 const VkSubpassDescription* pSubpasses
4273 u32 dependencyCount
4274 const VkSubpassDependency* pDependencies
4275}
4276
4277class VkEventCreateInfo {
4278 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_EVENT_CREATE_INFO
4279 const void* pNext /// Pointer to next structure
4280 VkEventCreateFlags flags /// Event creation flags
4281}
4282
4283class VkFenceCreateInfo {
4284 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_FENCE_CREATE_INFO
4285 const void* pNext /// Pointer to next structure
4286 VkFenceCreateFlags flags /// Fence creation flags
4287}
4288
4289class VkPhysicalDeviceFeatures {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004290 VkBool32 robustBufferAccess /// out of bounds buffer accesses are well defined
4291 VkBool32 fullDrawIndexUint32 /// full 32-bit range of indices for indexed draw calls
4292 VkBool32 imageCubeArray /// image views which are arrays of cube maps
4293 VkBool32 independentBlend /// blending operations are controlled per-attachment
4294 VkBool32 geometryShader /// geometry stage
4295 VkBool32 tessellationShader /// tessellation control and evaluation stage
4296 VkBool32 sampleRateShading /// per-sample shading and interpolation
Jesse Hall3fbc8562015-11-29 22:10:52 -08004297 VkBool32 dualSrcBlend /// blend operations which take two sources
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004298 VkBool32 logicOp /// logic operations
4299 VkBool32 multiDrawIndirect /// multi draw indirect
Jesse Hall543a7ff2016-01-08 16:38:30 -08004300 VkBool32 drawIndirectFirstInstance
Jesse Hallae38f732015-11-19 21:32:50 -08004301 VkBool32 depthClamp /// depth clamping
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004302 VkBool32 depthBiasClamp /// depth bias clamping
4303 VkBool32 fillModeNonSolid /// point and wireframe fill modes
4304 VkBool32 depthBounds /// depth bounds test
4305 VkBool32 wideLines /// lines with width greater than 1
4306 VkBool32 largePoints /// points with size greater than 1
Jesse Hallfbf97b02015-11-20 14:17:03 -08004307 VkBool32 alphaToOne /// The fragment alpha channel can be forced to maximum representable alpha value
4308 VkBool32 multiViewport
4309 VkBool32 samplerAnisotropy
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004310 VkBool32 textureCompressionETC2 /// ETC texture compression formats
4311 VkBool32 textureCompressionASTC_LDR /// ASTC LDR texture compression formats
4312 VkBool32 textureCompressionBC /// BC1-7 texture compressed formats
Jesse Hall65ab5522015-11-30 00:07:16 -08004313 VkBool32 occlusionQueryPrecise
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004314 VkBool32 pipelineStatisticsQuery /// pipeline statistics query
Jesse Halldc6d36c2015-11-29 19:12:15 -08004315 VkBool32 vertexPipelineStoresAndAtomics
4316 VkBool32 fragmentStoresAndAtomics
4317 VkBool32 shaderTessellationAndGeometryPointSize
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004318 VkBool32 shaderImageGatherExtended /// texture gather with run-time values and independent offsets
4319 VkBool32 shaderStorageImageExtendedFormats /// the extended set of formats can be used for storage images
4320 VkBool32 shaderStorageImageMultisample /// multisample images can be used for storage images
Jesse Halld1af8122015-11-29 23:50:38 -08004321 VkBool32 shaderStorageImageReadWithoutFormat
4322 VkBool32 shaderStorageImageWriteWithoutFormat
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004323 VkBool32 shaderUniformBufferArrayDynamicIndexing /// arrays of uniform buffers can be accessed with dynamically uniform indices
4324 VkBool32 shaderSampledImageArrayDynamicIndexing /// arrays of sampled images can be accessed with dynamically uniform indices
4325 VkBool32 shaderStorageBufferArrayDynamicIndexing /// arrays of storage buffers can be accessed with dynamically uniform indices
4326 VkBool32 shaderStorageImageArrayDynamicIndexing /// arrays of storage images can be accessed with dynamically uniform indices
4327 VkBool32 shaderClipDistance /// clip distance in shaders
4328 VkBool32 shaderCullDistance /// cull distance in shaders
4329 VkBool32 shaderFloat64 /// 64-bit floats (doubles) in shaders
4330 VkBool32 shaderInt64 /// 64-bit integers in shaders
4331 VkBool32 shaderInt16 /// 16-bit integers in shaders
4332 VkBool32 shaderResourceResidency /// shader can use texture operations that return resource residency information (requires sparseNonResident support)
Jesse Hall65ab5522015-11-30 00:07:16 -08004333 VkBool32 shaderResourceMinLod /// shader can use texture operations that specify minimum resource LOD
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004334 VkBool32 sparseBinding /// Sparse resources support: Resource memory can be managed at opaque page level rather than object level
4335 VkBool32 sparseResidencyBuffer /// Sparse resources support: GPU can access partially resident buffers
4336 VkBool32 sparseResidencyImage2D /// Sparse resources support: GPU can access partially resident 2D (non-MSAA non-DepthStencil) images
4337 VkBool32 sparseResidencyImage3D /// Sparse resources support: GPU can access partially resident 3D images
4338 VkBool32 sparseResidency2Samples /// Sparse resources support: GPU can access partially resident MSAA 2D images with 2 samples
4339 VkBool32 sparseResidency4Samples /// Sparse resources support: GPU can access partially resident MSAA 2D images with 4 samples
4340 VkBool32 sparseResidency8Samples /// Sparse resources support: GPU can access partially resident MSAA 2D images with 8 samples
4341 VkBool32 sparseResidency16Samples /// Sparse resources support: GPU can access partially resident MSAA 2D images with 16 samples
4342 VkBool32 sparseResidencyAliased /// Sparse resources support: GPU can correctly access data aliased into multiple locations (opt-in)
Jesse Halld1af8122015-11-29 23:50:38 -08004343 VkBool32 variableMultisampleRate
Jesse Hallf9fa9a52016-01-08 16:08:51 -08004344 VkBool32 inheritedQueries
Jesse Halld27f6aa2015-08-15 17:58:48 -07004345}
4346
4347class VkPhysicalDeviceLimits {
4348 /// resource maximum sizes
4349 u32 maxImageDimension1D /// max 1D image dimension
4350 u32 maxImageDimension2D /// max 2D image dimension
4351 u32 maxImageDimension3D /// max 3D image dimension
4352 u32 maxImageDimensionCube /// max cubemap image dimension
4353 u32 maxImageArrayLayers /// max layers for image arrays
Jesse Hallb00daad2015-11-29 19:46:20 -08004354 u32 maxTexelBufferElements
Jesse Hallfbf97b02015-11-20 14:17:03 -08004355 u32 maxUniformBufferRange /// max uniform buffer size (bytes)
4356 u32 maxStorageBufferRange /// max storage buffer size (bytes)
Jesse Halld27f6aa2015-08-15 17:58:48 -07004357 u32 maxPushConstantsSize /// max size of the push constants pool (bytes)
4358 /// memory limits
4359 u32 maxMemoryAllocationCount /// max number of device memory allocations supported
Jesse Hall091ed9e2015-11-30 00:55:29 -08004360 u32 maxSamplerAllocationCount
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004361 VkDeviceSize bufferImageGranularity /// Granularity (in bytes) at which buffers and images can be bound to adjacent memory for simultaneous usage
4362 VkDeviceSize sparseAddressSpaceSize /// Total address space available for sparse allocations (bytes)
Jesse Halld27f6aa2015-08-15 17:58:48 -07004363 /// descriptor set limits
4364 u32 maxBoundDescriptorSets /// max number of descriptors sets that can be bound to a pipeline
Jesse Halld27f6aa2015-08-15 17:58:48 -07004365 u32 maxPerStageDescriptorSamplers /// max num of samplers allowed per-stage in a descriptor set
4366 u32 maxPerStageDescriptorUniformBuffers /// max num of uniform buffers allowed per-stage in a descriptor set
4367 u32 maxPerStageDescriptorStorageBuffers /// max num of storage buffers allowed per-stage in a descriptor set
4368 u32 maxPerStageDescriptorSampledImages /// max num of sampled images allowed per-stage in a descriptor set
4369 u32 maxPerStageDescriptorStorageImages /// max num of storage images allowed per-stage in a descriptor set
Jesse Halle1b12782015-11-30 11:27:32 -08004370 u32 maxPerStageDescriptorInputAttachments
Jesse Halldba27f72015-11-30 14:25:46 -08004371 u32 maxPerStageResources
Jesse Halld27f6aa2015-08-15 17:58:48 -07004372 u32 maxDescriptorSetSamplers /// max num of samplers allowed in all stages in a descriptor set
4373 u32 maxDescriptorSetUniformBuffers /// max num of uniform buffers allowed in all stages in a descriptor set
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004374 u32 maxDescriptorSetUniformBuffersDynamic /// max num of dynamic uniform buffers allowed in all stages in a descriptor set
Jesse Halld27f6aa2015-08-15 17:58:48 -07004375 u32 maxDescriptorSetStorageBuffers /// max num of storage buffers allowed in all stages in a descriptor set
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004376 u32 maxDescriptorSetStorageBuffersDynamic /// max num of dynamic storage buffers allowed in all stages in a descriptor set
Jesse Halld27f6aa2015-08-15 17:58:48 -07004377 u32 maxDescriptorSetSampledImages /// max num of sampled images allowed in all stages in a descriptor set
4378 u32 maxDescriptorSetStorageImages /// max num of storage images allowed in all stages in a descriptor set
Jesse Halle1b12782015-11-30 11:27:32 -08004379 u32 maxDescriptorSetInputAttachments
Jesse Halld27f6aa2015-08-15 17:58:48 -07004380 /// vertex stage limits
4381 u32 maxVertexInputAttributes /// max num of vertex input attribute slots
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004382 u32 maxVertexInputBindings /// max num of vertex input binding slots
Jesse Halld27f6aa2015-08-15 17:58:48 -07004383 u32 maxVertexInputAttributeOffset /// max vertex input attribute offset added to vertex buffer offset
4384 u32 maxVertexInputBindingStride /// max vertex input binding stride
4385 u32 maxVertexOutputComponents /// max num of output components written by vertex shader
4386 /// tessellation control stage limits
Jesse Hall3fbc8562015-11-29 22:10:52 -08004387 u32 maxTessellationGenerationLevel /// max level supported by tess primitive generator
Jesse Hallae38f732015-11-19 21:32:50 -08004388 u32 maxTessellationPatchSize /// max patch size (vertices)
4389 u32 maxTessellationControlPerVertexInputComponents /// max num of input components per-vertex in TCS
4390 u32 maxTessellationControlPerVertexOutputComponents /// max num of output components per-vertex in TCS
4391 u32 maxTessellationControlPerPatchOutputComponents /// max num of output components per-patch in TCS
4392 u32 maxTessellationControlTotalOutputComponents /// max total num of per-vertex and per-patch output components in TCS
4393 u32 maxTessellationEvaluationInputComponents /// max num of input components per vertex in TES
4394 u32 maxTessellationEvaluationOutputComponents /// max num of output components per vertex in TES
Jesse Halld27f6aa2015-08-15 17:58:48 -07004395 /// geometry stage limits
4396 u32 maxGeometryShaderInvocations /// max invocation count supported in geometry shader
4397 u32 maxGeometryInputComponents /// max num of input components read in geometry stage
4398 u32 maxGeometryOutputComponents /// max num of output components written in geometry stage
4399 u32 maxGeometryOutputVertices /// max num of vertices that can be emitted in geometry stage
4400 u32 maxGeometryTotalOutputComponents /// max total num of components (all vertices) written in geometry stage
4401 /// fragment stage limits
4402 u32 maxFragmentInputComponents /// max num of input compontents read in fragment stage
Jesse Hallfbf97b02015-11-20 14:17:03 -08004403 u32 maxFragmentOutputAttachments /// max num of output attachments written in fragment stage
Jesse Hall3fbc8562015-11-29 22:10:52 -08004404 u32 maxFragmentDualSrcAttachments /// max num of output attachments written when using dual source blending
Jesse Halld27f6aa2015-08-15 17:58:48 -07004405 u32 maxFragmentCombinedOutputResources /// max total num of storage buffers, storage images and output buffers
4406 /// compute stage limits
4407 u32 maxComputeSharedMemorySize /// max total storage size of work group local storage (bytes)
4408 u32[3] maxComputeWorkGroupCount /// max num of compute work groups that may be dispatched by a single command (x,y,z)
4409 u32 maxComputeWorkGroupInvocations /// max total compute invocations in a single local work group
4410 u32[3] maxComputeWorkGroupSize /// max local size of a compute work group (x,y,z)
4411
4412 u32 subPixelPrecisionBits /// num bits of subpixel precision in screen x and y
4413 u32 subTexelPrecisionBits /// num bits of subtexel precision
4414 u32 mipmapPrecisionBits /// num bits of mipmap precision
4415
4416 u32 maxDrawIndexedIndexValue /// max index value for indexed draw calls (for 32-bit indices)
Jesse Halldba27f72015-11-30 14:25:46 -08004417 u32 maxDrawIndirectCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07004418
4419 f32 maxSamplerLodBias /// max absolute sampler level of detail bias
4420 f32 maxSamplerAnisotropy /// max degree of sampler anisotropy
4421
4422 u32 maxViewports /// max number of active viewports
Jesse Halld27f6aa2015-08-15 17:58:48 -07004423 u32[2] maxViewportDimensions /// max viewport dimensions (x,y)
4424 f32[2] viewportBoundsRange /// viewport bounds range (min,max)
4425 u32 viewportSubPixelBits /// num bits of subpixel precision for viewport
4426
Jesse Halldc6d36c2015-11-29 19:12:15 -08004427 platform.size_t minMemoryMapAlignment /// min required alignment of pointers returned by MapMemory (bytes)
4428 VkDeviceSize minTexelBufferOffsetAlignment /// min required alignment for texel buffer offsets (bytes)
4429 VkDeviceSize minUniformBufferOffsetAlignment /// min required alignment for uniform buffer sizes and offsets (bytes)
4430 VkDeviceSize minStorageBufferOffsetAlignment /// min required alignment for storage buffer offsets (bytes)
Jesse Halld27f6aa2015-08-15 17:58:48 -07004431
Jesse Hallfbf97b02015-11-20 14:17:03 -08004432 s32 minTexelOffset /// min texel offset for OpTextureSampleOffset
Jesse Halld27f6aa2015-08-15 17:58:48 -07004433 u32 maxTexelOffset /// max texel offset for OpTextureSampleOffset
Jesse Hallfbf97b02015-11-20 14:17:03 -08004434 s32 minTexelGatherOffset /// min texel offset for OpTextureGatherOffset
Jesse Halld27f6aa2015-08-15 17:58:48 -07004435 u32 maxTexelGatherOffset /// max texel offset for OpTextureGatherOffset
4436 f32 minInterpolationOffset /// furthest negative offset for interpolateAtOffset
4437 f32 maxInterpolationOffset /// furthest positive offset for interpolateAtOffset
4438 u32 subPixelInterpolationOffsetBits /// num of subpixel bits for interpolateAtOffset
4439
4440 u32 maxFramebufferWidth /// max width for a framebuffer
4441 u32 maxFramebufferHeight /// max height for a framebuffer
4442 u32 maxFramebufferLayers /// max layer count for a layered framebuffer
Jesse Hall091ed9e2015-11-30 00:55:29 -08004443 VkSampleCountFlags framebufferColorSampleCounts
4444 VkSampleCountFlags framebufferDepthSampleCounts
4445 VkSampleCountFlags framebufferStencilSampleCounts
4446 VkSampleCountFlags framebufferNoAttachmentSampleCounts
Jesse Halld27f6aa2015-08-15 17:58:48 -07004447 u32 maxColorAttachments /// max num of framebuffer color attachments
4448
Jesse Hall091ed9e2015-11-30 00:55:29 -08004449 VkSampleCountFlags sampledImageColorSampleCounts
4450 VkSampleCountFlags sampledImageIntegerSampleCounts
4451 VkSampleCountFlags sampledImageDepthSampleCounts
4452 VkSampleCountFlags sampledImageStencilSampleCounts
4453 VkSampleCountFlags storageImageSampleCounts
Jesse Halld27f6aa2015-08-15 17:58:48 -07004454 u32 maxSampleMaskWords /// max num of sample mask words
Jesse Hallf9fa9a52016-01-08 16:08:51 -08004455 VkBool32 timestampComputeAndGraphics
Jesse Halld27f6aa2015-08-15 17:58:48 -07004456
Jesse Halla9bb62b2015-11-21 19:31:56 -08004457 f32 timestampPeriod
Jesse Halld27f6aa2015-08-15 17:58:48 -07004458
4459 u32 maxClipDistances /// max number of clip distances
4460 u32 maxCullDistances /// max number of cull distances
4461 u32 maxCombinedClipAndCullDistances /// max combined number of user clipping
4462
Jesse Hallfbf97b02015-11-20 14:17:03 -08004463 u32 discreteQueuePriorities
4464
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004465 f32[2] pointSizeRange /// range (min,max) of supported point sizes
4466 f32[2] lineWidthRange /// range (min,max) of supported line widths
Jesse Halld27f6aa2015-08-15 17:58:48 -07004467 f32 pointSizeGranularity /// granularity of supported point sizes
4468 f32 lineWidthGranularity /// granularity of supported line widths
Jesse Hall03b6fe12015-11-24 12:44:21 -08004469 VkBool32 strictLines
Jesse Hall091ed9e2015-11-30 00:55:29 -08004470 VkBool32 standardSampleLocations
Jesse Halla9bb62b2015-11-21 19:31:56 -08004471
Jesse Hall65ab5522015-11-30 00:07:16 -08004472 VkDeviceSize optimalBufferCopyOffsetAlignment
4473 VkDeviceSize optimalBufferCopyRowPitchAlignment
Jesse Halldba27f72015-11-30 14:25:46 -08004474 VkDeviceSize nonCoherentAtomSize
Jesse Halld27f6aa2015-08-15 17:58:48 -07004475}
4476
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004477class VkPhysicalDeviceSparseProperties {
4478 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 -08004479 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 -07004480 VkBool32 residencyStandard3DBlockShape /// Sparse resources support: GPU will access all 3D sparse resources using the standard block shapes (based on pixel format)
4481 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 -07004482 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
4483}
4484
Jesse Halld27f6aa2015-08-15 17:58:48 -07004485class VkSemaphoreCreateInfo {
4486 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO
4487 const void* pNext /// Pointer to next structure
4488 VkSemaphoreCreateFlags flags /// Semaphore creation flags
4489}
4490
4491class VkQueryPoolCreateInfo {
4492 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO
4493 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08004494 VkQueryPoolCreateFlags flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07004495 VkQueryType queryType
Jesse Hall3dd678a2016-01-08 21:52:01 -08004496 u32 queryCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07004497 VkQueryPipelineStatisticFlags pipelineStatistics /// Optional
4498}
4499
4500class VkFramebufferCreateInfo {
4501 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO
4502 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08004503 VkFramebufferCreateFlags flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07004504 VkRenderPass renderPass
4505 u32 attachmentCount
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004506 const VkImageView* pAttachments
Jesse Halld27f6aa2015-08-15 17:58:48 -07004507 u32 width
4508 u32 height
4509 u32 layers
4510}
4511
Jesse Hall3fbc8562015-11-29 22:10:52 -08004512class VkDrawIndirectCommand {
Jesse Halld27f6aa2015-08-15 17:58:48 -07004513 u32 vertexCount
4514 u32 instanceCount
4515 u32 firstVertex
4516 u32 firstInstance
4517}
4518
Jesse Hall3fbc8562015-11-29 22:10:52 -08004519class VkDrawIndexedIndirectCommand {
Jesse Halld27f6aa2015-08-15 17:58:48 -07004520 u32 indexCount
4521 u32 instanceCount
4522 u32 firstIndex
4523 s32 vertexOffset
4524 u32 firstInstance
4525}
4526
Jesse Hall3fbc8562015-11-29 22:10:52 -08004527class VkDispatchIndirectCommand {
Jesse Halld27f6aa2015-08-15 17:58:48 -07004528 u32 x
4529 u32 y
4530 u32 z
4531}
4532
Jesse Hall54f8d132018-04-18 08:16:59 -07004533class VkBaseOutStructure {
4534 VkStructureType sType
4535 void* pNext
4536}
4537
4538class VkBaseInStructure {
4539 VkStructureType sType
4540 const void* pNext
4541}
4542
Ian Elliott28bd2c32017-10-13 09:21:12 -06004543//@vulkan1_1 structures
Daniel Koch09f7bf92017-10-05 00:26:58 -04004544
4545class VkPhysicalDeviceSubgroupProperties {
4546 VkStructureType sType
4547 void* pNext
4548 u32 subgroupSize
4549 VkShaderStageFlags supportedStages
4550 VkSubgroupFeatureFlags supportedOperations
4551 VkBool32 quadOperationsInAllStages
4552}
4553
4554class VkBindBufferMemoryInfo {
4555 VkStructureType sType
4556 const void* pNext
4557 VkBuffer buffer
4558 VkDeviceMemory memory
4559 VkDeviceSize memoryOffset
4560}
4561
4562class VkBindImageMemoryInfo {
4563 VkStructureType sType
4564 const void* pNext
4565 VkImage image
4566 VkDeviceMemory memory
4567 VkDeviceSize memoryOffset
4568}
4569
4570class VkPhysicalDevice16BitStorageFeatures {
4571 VkStructureType sType
4572 void* pNext
4573 VkBool32 storageBuffer16BitAccess
4574 VkBool32 uniformAndStorageBuffer16BitAccess
4575 VkBool32 storagePushConstant16
4576 VkBool32 storageInputOutput16
4577}
4578
4579class VkMemoryDedicatedRequirements {
4580 VkStructureType sType
4581 void* pNext
4582 VkBool32 prefersDedicatedAllocation
4583 VkBool32 requiresDedicatedAllocation
4584}
4585
4586class VkMemoryDedicatedAllocateInfo {
4587 VkStructureType sType
4588 const void* pNext
4589 VkImage image
4590 VkBuffer buffer
4591}
4592
4593class VkMemoryAllocateFlagsInfo {
4594 VkStructureType sType
4595 const void* pNext
4596 VkMemoryAllocateFlags flags
4597 u32 deviceMask
4598}
4599
4600class VkDeviceGroupRenderPassBeginInfo {
4601 VkStructureType sType
4602 const void* pNext
4603 u32 deviceMask
4604 u32 deviceRenderAreaCount
4605 const VkRect2D* pDeviceRenderAreas
4606}
4607
4608class VkDeviceGroupCommandBufferBeginInfo {
4609 VkStructureType sType
4610 const void* pNext
4611 u32 deviceMask
4612}
4613
4614class VkDeviceGroupSubmitInfo {
4615 VkStructureType sType
4616 const void* pNext
4617 u32 waitSemaphoreCount
4618 const u32* pWaitSemaphoreDeviceIndices
4619 u32 commandBufferCount
4620 const u32* pCommandBufferDeviceMasks
4621 u32 signalSemaphoreCount
4622 const u32* pSignalSemaphoreDeviceIndices
4623}
4624
4625class VkDeviceGroupBindSparseInfo {
4626 VkStructureType sType
4627 const void* pNext
4628 u32 resourceDeviceIndex
4629 u32 memoryDeviceIndex
4630}
4631
4632class VkBindBufferMemoryDeviceGroupInfo {
4633 VkStructureType sType
4634 const void* pNext
4635 u32 deviceIndexCount
4636 const u32* pDeviceIndices
4637}
4638
4639class VkBindImageMemoryDeviceGroupInfo {
4640 VkStructureType sType
4641 const void* pNext
4642 u32 deviceIndexCount
4643 const u32* pDeviceIndices
Jesse Hall8c954d32018-01-17 22:06:20 -08004644 u32 splitInstanceBindRegionCount
4645 const VkRect2D* pSplitInstanceBindRegions
Daniel Koch09f7bf92017-10-05 00:26:58 -04004646}
4647
4648class VkPhysicalDeviceGroupProperties {
4649 VkStructureType sType
4650 void* pNext
4651 u32 physicalDeviceCount
4652 VkPhysicalDevice[VK_MAX_DEVICE_GROUP_SIZE] physicalDevices
4653 VkBool32 subsetAllocation
4654}
4655
4656class VkDeviceGroupDeviceCreateInfo {
4657 VkStructureType sType
4658 const void* pNext
4659 u32 physicalDeviceCount
4660 const VkPhysicalDevice* pPhysicalDevices
4661}
4662
4663class VkBufferMemoryRequirementsInfo2 {
4664 VkStructureType sType
4665 const void* pNext
4666 VkBuffer buffer
4667}
4668
4669class VkImageMemoryRequirementsInfo2 {
4670 VkStructureType sType
4671 const void* pNext
4672 VkImage image
4673}
4674
4675class VkImageSparseMemoryRequirementsInfo2 {
4676 VkStructureType sType
4677 const void* pNext
4678 VkImage image
4679}
4680
4681class VkMemoryRequirements2 {
4682 VkStructureType sType
4683 void* pNext
4684 VkMemoryRequirements memoryRequirements
4685}
4686
4687class VkSparseImageMemoryRequirements2 {
4688 VkStructureType sType
4689 void* pNext
4690 VkSparseImageMemoryRequirements memoryRequirements
4691}
4692
4693class VkPhysicalDeviceFeatures2 {
4694 VkStructureType sType
4695 void* pNext
4696 VkPhysicalDeviceFeatures features
4697}
4698
4699class VkPhysicalDeviceProperties2 {
4700 VkStructureType sType
4701 void* pNext
4702 VkPhysicalDeviceProperties properties
4703}
4704
4705class VkFormatProperties2 {
4706 VkStructureType sType
4707 void* pNext
4708 VkFormatProperties formatProperties
4709}
4710
4711class VkImageFormatProperties2 {
4712 VkStructureType sType
4713 void* pNext
4714 VkImageFormatProperties imageFormatProperties
4715}
4716
4717class VkPhysicalDeviceImageFormatInfo2 {
4718 VkStructureType sType
4719 const void* pNext
4720 VkFormat format
4721 VkImageType type
4722 VkImageTiling tiling
4723 VkImageUsageFlags usage
4724 VkImageCreateFlags flags
4725}
4726
4727class VkQueueFamilyProperties2 {
4728 VkStructureType sType
4729 void* pNext
4730 VkQueueFamilyProperties queueFamilyProperties
4731}
4732
4733class VkPhysicalDeviceMemoryProperties2 {
4734 VkStructureType sType
4735 void* pNext
4736 VkPhysicalDeviceMemoryProperties memoryProperties
4737}
4738
4739class VkSparseImageFormatProperties2 {
4740 VkStructureType sType
4741 void* pNext
4742 VkSparseImageFormatProperties properties
4743}
4744
4745class VkPhysicalDeviceSparseImageFormatInfo2 {
4746 VkStructureType sType
4747 const void* pNext
4748 VkFormat format
4749 VkImageType type
4750 VkSampleCountFlagBits samples
4751 VkImageUsageFlags usage
4752 VkImageTiling tiling
4753}
4754
4755class VkPhysicalDevicePointClippingProperties {
4756 VkStructureType sType
4757 void* pNext
4758 VkPointClippingBehavior pointClippingBehavior
4759}
4760
4761class VkInputAttachmentAspectReference {
4762 u32 subpass
4763 u32 inputAttachmentIndex
4764 VkImageAspectFlags aspectMask
4765}
4766
4767class VkRenderPassInputAttachmentAspectCreateInfo {
4768 VkStructureType sType
4769 const void* pNext
4770 u32 aspectReferenceCount
4771 const VkInputAttachmentAspectReference* pAspectReferences
4772}
4773
4774class VkImageViewUsageCreateInfo {
4775 VkStructureType sType
4776 const void* pNext
4777 VkImageUsageFlags usage
4778}
4779
4780class VkPipelineTessellationDomainOriginStateCreateInfo {
4781 VkStructureType sType
4782 const void* pNext
4783 VkTessellationDomainOrigin domainOrigin
4784}
4785
4786class VkRenderPassMultiviewCreateInfo {
4787 VkStructureType sType
4788 const void* pNext
4789 u32 subpassCount
4790 const u32* pViewMasks
4791 u32 dependencyCount
4792 const s32* pViewOffsets
4793 u32 correlationMaskCount
4794 const u32* pCorrelationMasks
4795}
4796
4797class VkPhysicalDeviceMultiviewFeatures {
4798 VkStructureType sType
4799 void* pNext
4800 VkBool32 multiview
4801 VkBool32 multiviewGeometryShader
4802 VkBool32 multiviewTessellationShader
4803}
4804
4805class VkPhysicalDeviceMultiviewProperties {
4806 VkStructureType sType
4807 void* pNext
4808 u32 maxMultiviewViewCount
4809 u32 maxMultiviewInstanceIndex
4810}
4811
4812class VkPhysicalDeviceVariablePointerFeatures {
4813 VkStructureType sType
4814 void* pNext
4815 VkBool32 variablePointersStorageBuffer
4816 VkBool32 variablePointers
4817}
4818
4819class VkPhysicalDeviceProtectedMemoryFeatures {
4820 VkStructureType sType
4821 void* pNext
4822 VkBool32 protectedMemory
4823}
4824
4825class VkPhysicalDeviceProtectedMemoryProperties {
4826 VkStructureType sType
4827 void* pNext
4828 VkBool32 protectedNoFault
4829}
4830
4831class VkDeviceQueueInfo2 {
4832 VkStructureType sType
4833 const void* pNext
4834 VkDeviceQueueCreateFlags flags
4835 u32 queueFamilyIndex
4836 u32 queueIndex
4837}
4838
4839class VkProtectedSubmitInfo {
4840 VkStructureType sType
4841 const void* pNext
4842 VkBool32 protectedSubmit
4843}
4844
4845class VkSamplerYcbcrConversionCreateInfo {
4846 VkStructureType sType
4847 const void* pNext
4848 VkFormat format
4849 VkSamplerYcbcrModelConversion ycbcrModel
4850 VkSamplerYcbcrRange ycbcrRange
4851 VkComponentMapping components
4852 VkChromaLocation xChromaOffset
4853 VkChromaLocation yChromaOffset
4854 VkFilter chromaFilter
4855 VkBool32 forceExplicitReconstruction
4856}
4857
4858class VkSamplerYcbcrConversionInfo {
4859 VkStructureType sType
4860 const void* pNext
4861 VkSamplerYcbcrConversion conversion
4862}
4863
4864class VkBindImagePlaneMemoryInfo {
4865 VkStructureType sType
4866 const void* pNext
4867 VkImageAspectFlagBits planeAspect
4868}
4869
4870class VkImagePlaneMemoryRequirementsInfo {
4871 VkStructureType sType
4872 const void* pNext
4873 VkImageAspectFlagBits planeAspect
4874}
4875
4876class VkPhysicalDeviceSamplerYcbcrConversionFeatures {
4877 VkStructureType sType
4878 void* pNext
4879 VkBool32 samplerYcbcrConversion
4880}
4881
4882class VkSamplerYcbcrConversionImageFormatProperties {
4883 VkStructureType sType
4884 void* pNext
4885 u32 combinedImageSamplerDescriptorCount
4886}
4887
4888class VkDescriptorUpdateTemplateEntry {
4889 u32 dstBinding
4890 u32 dstArrayElement
4891 u32 descriptorCount
4892 VkDescriptorType descriptorType
4893 platform.size_t offset
4894 platform.size_t stride
4895}
4896
4897class VkDescriptorUpdateTemplateCreateInfo {
4898 VkStructureType sType
4899 void* pNext
4900 VkDescriptorUpdateTemplateCreateFlags flags
4901 u32 descriptorUpdateEntryCount
4902 const VkDescriptorUpdateTemplateEntry* pDescriptorUpdateEntries
4903 VkDescriptorUpdateTemplateType templateType
4904 VkDescriptorSetLayout descriptorSetLayout
4905 VkPipelineBindPoint pipelineBindPoint
4906 VkPipelineLayout pipelineLayout
4907 u32 set
4908}
4909
4910class VkExternalMemoryProperties {
4911 VkExternalMemoryFeatureFlags externalMemoryFeatures
4912 VkExternalMemoryHandleTypeFlags exportFromImportedHandleTypes
4913 VkExternalMemoryHandleTypeFlags compatibleHandleTypes
4914}
4915
4916class VkPhysicalDeviceExternalImageFormatInfo {
4917 VkStructureType sType
4918 const void* pNext
4919 VkExternalMemoryHandleTypeFlagBits handleType
4920}
4921
4922class VkExternalImageFormatProperties {
4923 VkStructureType sType
4924 void* pNext
4925 VkExternalMemoryProperties externalMemoryProperties
4926}
4927
4928class VkPhysicalDeviceExternalBufferInfo {
4929 VkStructureType sType
4930 const void* pNext
4931 VkBufferCreateFlags flags
4932 VkBufferUsageFlags usage
4933 VkExternalMemoryHandleTypeFlagBits handleType
4934}
4935
4936class VkExternalBufferProperties {
4937 VkStructureType sType
4938 void* pNext
4939 VkExternalMemoryProperties externalMemoryProperties
4940}
4941
4942class VkPhysicalDeviceIDProperties {
4943 VkStructureType sType
4944 void* pNext
4945 u8[VK_UUID_SIZE] deviceUUID
4946 u8[VK_UUID_SIZE] driverUUID
4947 u8[VK_LUID_SIZE] deviceLUID
4948 u32 deviceNodeMask
4949 VkBool32 deviceLUIDValid
4950}
4951
4952class VkExternalMemoryImageCreateInfo {
4953 VkStructureType sType
4954 const void* pNext
4955 VkExternalMemoryHandleTypeFlags handleTypes
4956}
4957
4958class VkExternalMemoryBufferCreateInfo {
4959 VkStructureType sType
4960 const void* pNext
4961 VkExternalMemoryHandleTypeFlags handleTypes
4962}
4963
4964class VkExportMemoryAllocateInfo {
4965 VkStructureType sType
4966 const void* pNext
4967 VkExternalMemoryHandleTypeFlags handleTypes
4968}
4969
4970class VkPhysicalDeviceExternalFenceInfo {
4971 VkStructureType sType
4972 const void* pNext
4973 VkExternalFenceHandleTypeFlagBits handleType
4974}
4975
4976class VkExternalFenceProperties {
4977 VkStructureType sType
4978 void* pNext
4979 VkExternalFenceHandleTypeFlags exportFromImportedHandleTypes
4980 VkExternalFenceHandleTypeFlags compatibleHandleTypes
4981 VkExternalFenceFeatureFlags externalFenceFeatures
4982}
4983
4984class VkExportFenceCreateInfo {
4985 VkStructureType sType
4986 const void* pNext
4987 VkExternalFenceHandleTypeFlags handleTypes
4988}
4989
4990class VkExportSemaphoreCreateInfo {
4991 VkStructureType sType
4992 const void* pNext
4993 VkExternalSemaphoreHandleTypeFlags handleTypes
4994}
4995
4996class VkPhysicalDeviceExternalSemaphoreInfo {
4997 VkStructureType sType
4998 const void* pNext
4999 VkExternalSemaphoreHandleTypeFlagBits handleType
5000}
5001
5002class VkExternalSemaphoreProperties {
5003 VkStructureType sType
5004 void* pNext
5005 VkExternalSemaphoreHandleTypeFlags exportFromImportedHandleTypes
5006 VkExternalSemaphoreHandleTypeFlags compatibleHandleTypes
5007 VkExternalSemaphoreFeatureFlags externalSemaphoreFeatures
5008}
5009
5010class VkPhysicalDeviceMaintenance3Properties {
5011 VkStructureType sType
5012 void* pNext
5013 u32 maxPerSetDescriptors
5014 VkDeviceSize maxMemoryAllocationSize
5015}
5016
5017class VkDescriptorSetLayoutSupport {
5018 VkStructureType sType
5019 void* pNext
5020 VkBool32 supported
5021}
5022
5023class VkPhysicalDeviceShaderDrawParameterFeatures {
5024 VkStructureType sType
5025 void* pNext
5026 VkBool32 shaderDrawParameters
5027}
5028
5029
Jesse Hallad250842017-03-10 18:35:38 -08005030@extension("VK_KHR_surface") // 1
Jesse Hallb00daad2015-11-29 19:46:20 -08005031class VkSurfaceCapabilitiesKHR {
Jesse Hall1356b0d2015-11-23 17:24:58 -08005032 u32 minImageCount
5033 u32 maxImageCount
5034 VkExtent2D currentExtent
5035 VkExtent2D minImageExtent
5036 VkExtent2D maxImageExtent
Jesse Hallf4ab2b12015-11-30 16:04:55 -08005037 u32 maxImageArrayLayers
Jesse Hall1356b0d2015-11-23 17:24:58 -08005038 VkSurfaceTransformFlagsKHR supportedTransforms
Jesse Hallf4ab2b12015-11-30 16:04:55 -08005039 VkSurfaceTransformFlagBitsKHR currentTransform
Jesse Halla6429252015-11-29 18:59:42 -08005040 VkCompositeAlphaFlagsKHR supportedCompositeAlpha
Jesse Hall1356b0d2015-11-23 17:24:58 -08005041 VkImageUsageFlags supportedUsageFlags
Michael Lentine88594d72015-11-12 12:49:45 -08005042}
5043
Jesse Hallad250842017-03-10 18:35:38 -08005044@extension("VK_KHR_surface") // 1
Michael Lentine88594d72015-11-12 12:49:45 -08005045class VkSurfaceFormatKHR {
Jesse Hall1356b0d2015-11-23 17:24:58 -08005046 VkFormat format
5047 VkColorSpaceKHR colorSpace
Michael Lentine88594d72015-11-12 12:49:45 -08005048}
5049
Jesse Hallad250842017-03-10 18:35:38 -08005050@extension("VK_KHR_swapchain") // 2
Michael Lentine88594d72015-11-12 12:49:45 -08005051class VkSwapchainCreateInfoKHR {
Jesse Hall1356b0d2015-11-23 17:24:58 -08005052 VkStructureType sType
5053 const void* pNext
Jesse Hallf4ab2b12015-11-30 16:04:55 -08005054 VkSwapchainCreateFlagsKHR flags
Jesse Hall1356b0d2015-11-23 17:24:58 -08005055 VkSurfaceKHR surface
5056 u32 minImageCount
5057 VkFormat imageFormat
5058 VkColorSpaceKHR imageColorSpace
5059 VkExtent2D imageExtent
Jesse Hallf4ab2b12015-11-30 16:04:55 -08005060 u32 imageArrayLayers
5061 VkImageUsageFlags imageUsage
Jesse Hall1356b0d2015-11-23 17:24:58 -08005062 VkSharingMode sharingMode
Jesse Hall03b6fe12015-11-24 12:44:21 -08005063 u32 queueFamilyIndexCount
Jesse Hall1356b0d2015-11-23 17:24:58 -08005064 const u32* pQueueFamilyIndices
Jesse Hallf4ab2b12015-11-30 16:04:55 -08005065 VkSurfaceTransformFlagBitsKHR preTransform
5066 VkCompositeAlphaFlagBitsKHR compositeAlpha
Jesse Hall1356b0d2015-11-23 17:24:58 -08005067 VkPresentModeKHR presentMode
Jesse Hall1356b0d2015-11-23 17:24:58 -08005068 VkBool32 clipped
Jesse Hallf4ab2b12015-11-30 16:04:55 -08005069 VkSwapchainKHR oldSwapchain
Michael Lentine88594d72015-11-12 12:49:45 -08005070}
5071
Jesse Hallad250842017-03-10 18:35:38 -08005072@extension("VK_KHR_swapchain") // 2
Michael Lentine88594d72015-11-12 12:49:45 -08005073class VkPresentInfoKHR {
Jesse Hall1356b0d2015-11-23 17:24:58 -08005074 VkStructureType sType
5075 const void* pNext
Jesse Hallb00daad2015-11-29 19:46:20 -08005076 u32 waitSemaphoreCount
5077 const VkSemaphore* pWaitSemaphores
Jesse Hall1356b0d2015-11-23 17:24:58 -08005078 u32 swapchainCount
Jesse Hall03b6fe12015-11-24 12:44:21 -08005079 const VkSwapchainKHR* pSwapchains
Jesse Hallf4ab2b12015-11-30 16:04:55 -08005080 const u32* pImageIndices
Jesse Halle1b12782015-11-30 11:27:32 -08005081 VkResult* pResults
Michael Lentine88594d72015-11-12 12:49:45 -08005082}
5083
Ian Elliott28bd2c32017-10-13 09:21:12 -06005084@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04005085@extension("VK_KHR_swapchain") // 2
5086class VkImageSwapchainCreateInfoKHR {
5087 VkStructureType sType
5088 const void* pNext
5089 VkSwapchainKHR swapchain
5090}
5091
Ian Elliott28bd2c32017-10-13 09:21:12 -06005092@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04005093@extension("VK_KHR_swapchain") // 2
5094class VkBindImageMemorySwapchainInfoKHR {
5095 VkStructureType sType
5096 const void* pNext
5097 VkSwapchainKHR swapchain
5098 u32 imageIndex
5099}
5100
Ian Elliott28bd2c32017-10-13 09:21:12 -06005101@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04005102@extension("VK_KHR_swapchain") // 2
5103class VkAcquireNextImageInfoKHR {
5104 VkStructureType sType
5105 const void* pNext
5106 VkSwapchainKHR swapchain
5107 u64 timeout
5108 VkSemaphore semaphore
5109 VkFence fence
5110 u32 deviceMask
5111}
5112
Ian Elliott28bd2c32017-10-13 09:21:12 -06005113@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04005114@extension("VK_KHR_swapchain") // 2
5115class VkDeviceGroupPresentCapabilitiesKHR {
5116 VkStructureType sType
5117 const void* pNext
5118 u32[VK_MAX_DEVICE_GROUP_SIZE] presentMask
5119 VkDeviceGroupPresentModeFlagsKHR modes
5120}
5121
Ian Elliott28bd2c32017-10-13 09:21:12 -06005122@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04005123@extension("VK_KHR_swapchain") // 2
5124class VkDeviceGroupPresentInfoKHR {
5125 VkStructureType sType
5126 const void* pNext
5127 u32 swapchainCount
5128 const u32* pDeviceMasks
5129 VkDeviceGroupPresentModeFlagBitsKHR mode
5130}
5131
Ian Elliott28bd2c32017-10-13 09:21:12 -06005132@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04005133@extension("VK_KHR_swapchain") // 2
5134class VkDeviceGroupSwapchainCreateInfoKHR {
5135 VkStructureType sType
5136 const void* pNext
5137 VkDeviceGroupPresentModeFlagsKHR modes
5138}
5139
Jesse Hallad250842017-03-10 18:35:38 -08005140@extension("VK_KHR_display") // 3
Jesse Hall1356b0d2015-11-23 17:24:58 -08005141class VkDisplayPropertiesKHR {
5142 VkDisplayKHR display
5143 const char* displayName
5144 VkExtent2D physicalDimensions
5145 VkExtent2D physicalResolution
5146 VkSurfaceTransformFlagsKHR supportedTransforms
Jesse Hall1356b0d2015-11-23 17:24:58 -08005147 VkBool32 planeReorderPossible
Jesse Halla6429252015-11-29 18:59:42 -08005148 VkBool32 persistentContent
Michael Lentine88594d72015-11-12 12:49:45 -08005149}
5150
Jesse Hallad250842017-03-10 18:35:38 -08005151@extension("VK_KHR_display") // 3
Jesse Halla6429252015-11-29 18:59:42 -08005152class VkDisplayModeParametersKHR {
Jesse Hall1356b0d2015-11-23 17:24:58 -08005153 VkExtent2D visibleRegion
Jesse Halla6429252015-11-29 18:59:42 -08005154 u32 refreshRate
Michael Lentine88594d72015-11-12 12:49:45 -08005155}
Jesse Halld27f6aa2015-08-15 17:58:48 -07005156
Jesse Hallad250842017-03-10 18:35:38 -08005157@extension("VK_KHR_display") // 3
Jesse Hall1356b0d2015-11-23 17:24:58 -08005158class VkDisplayModePropertiesKHR {
5159 VkDisplayModeKHR displayMode
Jesse Halla6429252015-11-29 18:59:42 -08005160 VkDisplayModeParametersKHR parameters
Jesse Hall1356b0d2015-11-23 17:24:58 -08005161}
5162
Jesse Hallad250842017-03-10 18:35:38 -08005163@extension("VK_KHR_display") // 3
Jesse Hall1356b0d2015-11-23 17:24:58 -08005164class VkDisplayModeCreateInfoKHR {
5165 VkStructureType sType
5166 const void* pNext
Jesse Hall9ba8bc82015-11-30 16:22:16 -08005167 VkDisplayModeCreateFlagsKHR flags
Jesse Halla6429252015-11-29 18:59:42 -08005168 VkDisplayModeParametersKHR parameters
Jesse Hall1356b0d2015-11-23 17:24:58 -08005169}
5170
Jesse Hallad250842017-03-10 18:35:38 -08005171@extension("VK_KHR_display") // 3
Jesse Hall1356b0d2015-11-23 17:24:58 -08005172class VkDisplayPlanePropertiesKHR {
Jesse Halla6429252015-11-29 18:59:42 -08005173 VkDisplayKHR currentDisplay
5174 u32 currentStackIndex
5175}
5176
Jesse Hallad250842017-03-10 18:35:38 -08005177@extension("VK_KHR_display") // 3
Jesse Halla6429252015-11-29 18:59:42 -08005178class VkDisplayPlaneCapabilitiesKHR {
Jesse Hall1356b0d2015-11-23 17:24:58 -08005179 VkDisplayPlaneAlphaFlagsKHR supportedAlpha
5180 VkOffset2D minSrcPosition
5181 VkOffset2D maxSrcPosition
5182 VkExtent2D minSrcExtent
5183 VkExtent2D maxSrcExtent
5184 VkOffset2D minDstPosition
5185 VkOffset2D maxDstPosition
5186 VkExtent2D minDstExtent
5187 VkExtent2D maxDstExtent
5188}
5189
Jesse Hallad250842017-03-10 18:35:38 -08005190@extension("VK_KHR_display") // 3
Jesse Halla6429252015-11-29 18:59:42 -08005191class VkDisplaySurfaceCreateInfoKHR {
Jesse Hall1356b0d2015-11-23 17:24:58 -08005192 VkStructureType sType
5193 const void* pNext
Jesse Hallf4ab2b12015-11-30 16:04:55 -08005194 VkDisplaySurfaceCreateFlagsKHR flags
Jesse Hall1356b0d2015-11-23 17:24:58 -08005195 VkDisplayModeKHR displayMode
5196 u32 planeIndex
5197 u32 planeStackIndex
Jesse Hallf4ab2b12015-11-30 16:04:55 -08005198 VkSurfaceTransformFlagBitsKHR transform
Jesse Hall1356b0d2015-11-23 17:24:58 -08005199 f32 globalAlpha
Jesse Hallf4ab2b12015-11-30 16:04:55 -08005200 VkDisplayPlaneAlphaFlagBitsKHR alphaMode
5201 VkExtent2D imageExtent
Jesse Hall1356b0d2015-11-23 17:24:58 -08005202}
5203
Jesse Hallad250842017-03-10 18:35:38 -08005204@extension("VK_KHR_display_swapchain") // 4
Jesse Hall1356b0d2015-11-23 17:24:58 -08005205class VkDisplayPresentInfoKHR {
5206 VkStructureType sType
5207 const void* pNext
5208 VkRect2D srcRect
5209 VkRect2D dstRect
Jesse Halla6429252015-11-29 18:59:42 -08005210 VkBool32 persistent
Jesse Hall1356b0d2015-11-23 17:24:58 -08005211}
5212
Jesse Hallad250842017-03-10 18:35:38 -08005213@extension("VK_KHR_xlib_surface") // 5
Jesse Hallf9fa9a52016-01-08 16:08:51 -08005214class VkXlibSurfaceCreateInfoKHR {
5215 VkStructureType sType
5216 const void* pNext
5217 VkXlibSurfaceCreateFlagsKHR flags
5218 platform.Display* dpy
5219 platform.Window window
5220}
5221
Jesse Hallad250842017-03-10 18:35:38 -08005222@extension("VK_KHR_xcb_surface") // 6
Jesse Hallf9fa9a52016-01-08 16:08:51 -08005223class VkXcbSurfaceCreateInfoKHR {
5224 VkStructureType sType
5225 const void* pNext
5226 VkXcbSurfaceCreateFlagsKHR flags
5227 platform.xcb_connection_t* connection
5228 platform.xcb_window_t window
5229}
5230
Jesse Hallad250842017-03-10 18:35:38 -08005231@extension("VK_KHR_wayland_surface") // 7
Jesse Hallf9fa9a52016-01-08 16:08:51 -08005232class VkWaylandSurfaceCreateInfoKHR {
5233 VkStructureType sType
5234 const void* pNext
5235 VkWaylandSurfaceCreateFlagsKHR flags
5236 platform.wl_display* display
5237 platform.wl_surface* surface
5238}
5239
Jesse Hallad250842017-03-10 18:35:38 -08005240@extension("VK_KHR_mir_surface") // 8
Jesse Hallf9fa9a52016-01-08 16:08:51 -08005241class VkMirSurfaceCreateInfoKHR {
5242 VkStructureType sType
5243 const void* pNext
5244 VkMirSurfaceCreateFlagsKHR flags
5245 platform.MirConnection* connection
5246 platform.MirSurface* mirSurface
5247}
5248
Jesse Hallad250842017-03-10 18:35:38 -08005249@extension("VK_KHR_android_surface") // 9
Jesse Hallf9fa9a52016-01-08 16:08:51 -08005250class VkAndroidSurfaceCreateInfoKHR {
5251 VkStructureType sType
5252 const void* pNext
5253 VkAndroidSurfaceCreateFlagsKHR flags
5254 platform.ANativeWindow* window
5255}
5256
Jesse Hallad250842017-03-10 18:35:38 -08005257@extension("VK_KHR_win32_surface") // 10
Jesse Hallf9fa9a52016-01-08 16:08:51 -08005258class VkWin32SurfaceCreateInfoKHR {
5259 VkStructureType sType
5260 const void* pNext
5261 VkWin32SurfaceCreateFlagsKHR flags
5262 platform.HINSTANCE hinstance
5263 platform.HWND hwnd
5264}
5265
Jesse Hallad250842017-03-10 18:35:38 -08005266@extension("VK_ANDROID_native_buffer") // 11
Jesse Halld1abd742017-02-09 21:45:51 -08005267@internal class Gralloc1Usage {
5268 u64 consumer
5269 u64 producer
5270}
5271
Jesse Hallad250842017-03-10 18:35:38 -08005272@extension("VK_ANDROID_native_buffer") // 11
Chia-I Wub262ddc2016-03-22 07:38:20 +08005273class VkNativeBufferANDROID {
5274 VkStructureType sType
5275 const void* pNext
5276 platform.buffer_handle_t handle
Jesse Halld1abd742017-02-09 21:45:51 -08005277 s32 stride
5278 s32 format
5279 s32 usage
5280 Gralloc1Usage usage2
Chia-I Wub262ddc2016-03-22 07:38:20 +08005281}
5282
Jesse Hallad250842017-03-10 18:35:38 -08005283@extension("VK_ANDROID_native_buffer") // 11
Chris Forbes8e4438b2016-12-07 16:26:49 +13005284class VkSwapchainImageCreateInfoANDROID {
5285 VkStructureType sType
5286 const void* pNext
Chris Forbes134d9582017-01-12 14:26:37 +13005287 VkSwapchainImageUsageFlagsANDROID flags
Chris Forbes48853712017-01-12 14:09:33 +13005288}
Ian Elliott4c8bb2a2016-12-29 11:07:26 -07005289
Jesse Hallad250842017-03-10 18:35:38 -08005290@extension("VK_ANDROID_native_buffer") // 11
Chris Forbes1d4e5542017-02-15 19:38:50 +13005291class VkPhysicalDevicePresentationPropertiesANDROID {
5292 VkStructureType sType
5293 void* pNext
5294 VkBool32 sharedImage
5295}
5296
Jesse Hallad250842017-03-10 18:35:38 -08005297@extension("VK_EXT_debug_report") // 12
Jesse Hall715b86a2016-01-16 16:34:29 -08005298class VkDebugReportCallbackCreateInfoEXT {
5299 VkStructureType sType
5300 const void* pNext
5301 VkDebugReportFlagsEXT flags
5302 PFN_vkDebugReportCallbackEXT pfnCallback
5303 void* pUserData
5304}
5305
Jesse Hallad250842017-03-10 18:35:38 -08005306@extension("VK_AMD_rasterization_order") // 19
Jesse Hall26763382016-05-20 07:13:52 -07005307class VkPipelineRasterizationStateRasterizationOrderAMD {
5308 VkStructureType sType
5309 const void* pNext
5310 VkRasterizationOrderAMD rasterizationOrder
5311}
5312
Jesse Hallad250842017-03-10 18:35:38 -08005313@extension("VK_EXT_debug_marker") // 23
Jesse Hall26763382016-05-20 07:13:52 -07005314class VkDebugMarkerObjectNameInfoEXT {
5315 VkStructureType sType
5316 const void* pNext
5317 VkDebugReportObjectTypeEXT objectType
5318 u64 object
5319 const char* pObjectName
5320}
5321
Jesse Hallad250842017-03-10 18:35:38 -08005322@extension("VK_EXT_debug_marker") // 23
Jesse Hall26763382016-05-20 07:13:52 -07005323class VkDebugMarkerObjectTagInfoEXT {
5324 VkStructureType sType
5325 const void* pNext
5326 VkDebugReportObjectTypeEXT objectType
5327 u64 object
5328 u64 tagName
5329 platform.size_t tagSize
5330 const void* pTag
5331}
5332
Jesse Hallad250842017-03-10 18:35:38 -08005333@extension("VK_EXT_debug_marker") // 23
Jesse Hall26763382016-05-20 07:13:52 -07005334class VkDebugMarkerMarkerInfoEXT {
5335 VkStructureType sType
5336 const void* pNext
5337 const char* pMarkerName
5338 f32[4] color
5339}
5340
Jesse Hallad250842017-03-10 18:35:38 -08005341@extension("VK_NV_dedicated_allocation") // 27
Jesse Hall56d386a2016-07-26 15:20:40 -07005342class VkDedicatedAllocationImageCreateInfoNV {
5343 VkStructureType sType
5344 const void* pNext
5345 VkBool32 dedicatedAllocation
5346}
5347
Jesse Hallad250842017-03-10 18:35:38 -08005348@extension("VK_NV_dedicated_allocation") // 27
Jesse Hall56d386a2016-07-26 15:20:40 -07005349class VkDedicatedAllocationBufferCreateInfoNV {
5350 VkStructureType sType
5351 const void* pNext
5352 VkBool32 dedicatedAllocation
5353}
5354
Jesse Hallad250842017-03-10 18:35:38 -08005355@extension("VK_NV_dedicated_allocation") // 27
Jesse Hall56d386a2016-07-26 15:20:40 -07005356class VkDedicatedAllocationMemoryAllocateInfoNV {
5357 VkStructureType sType
5358 const void* pNext
5359 VkImage image
5360 VkBuffer buffer
5361}
5362
Jesse Hall7ba0ac72017-07-07 17:13:23 -07005363@extension("VK_AMD_texture_gather_bias_lod") // 42
5364class VkTextureLODGatherFormatPropertiesAMD {
5365 VkStructureType sType
5366 void* pNext
5367 VkBool32 supportsTextureGatherLODBiasAMD
5368}
5369
Jesse Hall8c954d32018-01-17 22:06:20 -08005370@extension("VK_AMD_shader_info") // 43
5371class VkShaderResourceUsageAMD {
5372 u32 numUsedVgprs
5373 u32 numUsedSgprs
5374 u32 ldsSizePerLocalWorkGroup
5375 platform.size_t ldsUsageSizeInBytes
5376 platform.size_t scratchMemUsageInBytes
5377}
5378
5379@extension("VK_AMD_shader_info") // 43
5380class VkShaderStatisticsInfoAMD {
5381 VkShaderStageFlags shaderStageMask
5382 VkShaderResourceUsageAMD resourceUsage
5383 u32 numPhysicalVgprs
5384 u32 numPhysicalSgprs
5385 u32 numAvailableVgprs
5386 u32 numAvailableSgprs
5387 u32[3] computeWorkGroupSize
5388}
5389
Jesse Hallb5297192018-09-22 20:52:13 +02005390@extension("VK_NV_corner_sampled_image") // 51
5391class VkPhysicalDeviceCornerSampledImageFeaturesNV {
5392 VkStructureType sType
5393 void* pNext
5394 VkBool32 cornerSampledImage
5395}
5396
Daniel Koch09f7bf92017-10-05 00:26:58 -04005397@extension("VK_KHR_multiview") // 54
5398class VkRenderPassMultiviewCreateInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005399 VkStructureType sType
5400 const void* pNext
5401 u32 subpassCount
5402 const u32* pViewMasks
5403 u32 dependencyCount
5404 const s32* pViewOffsets
5405 u32 correlationMaskCount
5406 const u32* pCorrelationMasks
5407}
5408
Daniel Koch09f7bf92017-10-05 00:26:58 -04005409@extension("VK_KHR_multiview") // 54
5410class VkPhysicalDeviceMultiviewFeaturesKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005411 VkStructureType sType
5412 void* pNext
5413 VkBool32 multiview
5414 VkBool32 multiviewGeometryShader
5415 VkBool32 multiviewTessellationShader
5416}
5417
Daniel Koch09f7bf92017-10-05 00:26:58 -04005418@extension("VK_KHR_multiview") // 54
5419class VkPhysicalDeviceMultiviewPropertiesKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005420 VkStructureType sType
5421 void* pNext
5422 u32 maxMultiviewViewCount
5423 u32 maxMultiviewInstanceIndex
5424}
5425
5426@extension("VK_NV_external_memory_capabilities") // 56
Jesse Halleb02c472017-02-24 15:13:45 -08005427class VkExternalImageFormatPropertiesNV {
5428 VkImageFormatProperties imageFormatProperties
5429 VkExternalMemoryFeatureFlagsNV externalMemoryFeatures
5430 VkExternalMemoryHandleTypeFlagsNV exportFromImportedHandleTypes
5431 VkExternalMemoryHandleTypeFlagsNV compatibleHandleTypes
5432}
5433
Jesse Hallad250842017-03-10 18:35:38 -08005434@extension("VK_NV_external_memory") // 57
Jesse Halleb02c472017-02-24 15:13:45 -08005435class VkExternalMemoryImageCreateInfoNV {
5436 VkStructureType sType
5437 const void* pNext
5438 VkExternalMemoryHandleTypeFlagsNV handleTypes
5439}
5440
Jesse Hallad250842017-03-10 18:35:38 -08005441@extension("VK_NV_external_memory") // 57
Jesse Halleb02c472017-02-24 15:13:45 -08005442class VkExportMemoryAllocateInfoNV {
5443 VkStructureType sType
5444 const void* pNext
5445 VkExternalMemoryHandleTypeFlagsNV handleTypes
5446}
5447
Jesse Hallad250842017-03-10 18:35:38 -08005448@extension("VK_NV_external_memory_win32") // 58
Jesse Halleb02c472017-02-24 15:13:45 -08005449class VkImportMemoryWin32HandleInfoNV {
5450 VkStructureType sType
5451 const void* pNext
5452 VkExternalMemoryHandleTypeFlagsNV handleType
5453 platform.HANDLE handle
5454}
5455
Jesse Hallad250842017-03-10 18:35:38 -08005456@extension("VK_NV_external_memory_win32") // 58
Jesse Halleb02c472017-02-24 15:13:45 -08005457class VkExportMemoryWin32HandleInfoNV {
5458 VkStructureType sType
5459 const void* pNext
5460 const platform.SECURITY_ATTRIBUTES* pAttributes
5461 platform.DWORD dwAccess
5462}
5463
Jesse Hallad250842017-03-10 18:35:38 -08005464@extension("VK_NV_win32_keyed_mutex") // 59
Jesse Halleb02c472017-02-24 15:13:45 -08005465class VkWin32KeyedMutexAcquireReleaseInfoNV {
5466 VkStructureType sType
5467 const void* pNext
5468 u32 acquireCount
5469 const VkDeviceMemory* pAcquireSyncs
5470 const u64* pAcquireKeys
5471 const u32* pAcquireTimeoutMilliseconds
5472 u32 releaseCount
5473 const VkDeviceMemory* pReleaseSyncs
5474 const u64* pReleaseKeys
5475}
5476
Jesse Hallad250842017-03-10 18:35:38 -08005477@extension("VK_KHR_get_physical_device_properties2") // 60
Chris Forbes1194ede2016-12-30 16:29:25 +13005478class VkPhysicalDeviceFeatures2KHR {
5479 VkStructureType sType
5480 void* pNext
5481 VkPhysicalDeviceFeatures features
5482}
5483
Jesse Hallad250842017-03-10 18:35:38 -08005484@extension("VK_KHR_get_physical_device_properties2") // 60
Chris Forbes1194ede2016-12-30 16:29:25 +13005485class VkPhysicalDeviceProperties2KHR {
5486 VkStructureType sType
5487 void* pNext
5488 VkPhysicalDeviceProperties properties
5489}
5490
Jesse Hallad250842017-03-10 18:35:38 -08005491@extension("VK_KHR_get_physical_device_properties2") // 60
Chris Forbes1194ede2016-12-30 16:29:25 +13005492class VkFormatProperties2KHR {
5493 VkStructureType sType
5494 void* pNext
5495 VkFormatProperties formatProperties
5496}
5497
Jesse Hallad250842017-03-10 18:35:38 -08005498@extension("VK_KHR_get_physical_device_properties2") // 60
Chris Forbes1194ede2016-12-30 16:29:25 +13005499class VkImageFormatProperties2KHR {
5500 VkStructureType sType
5501 void* pNext
5502 VkImageFormatProperties imageFormatProperties
5503}
5504
Jesse Hallad250842017-03-10 18:35:38 -08005505@extension("VK_KHR_get_physical_device_properties2") // 60
Chris Forbes1194ede2016-12-30 16:29:25 +13005506class VkPhysicalDeviceImageFormatInfo2KHR {
5507 VkStructureType sType
5508 const void* pNext
5509 VkFormat format
5510 VkImageType type
5511 VkImageTiling tiling
5512 VkImageUsageFlags usage
5513 VkImageCreateFlags flags
5514}
5515
Jesse Hallad250842017-03-10 18:35:38 -08005516@extension("VK_KHR_get_physical_device_properties2") // 60
Chris Forbes1194ede2016-12-30 16:29:25 +13005517class VkQueueFamilyProperties2KHR {
5518 VkStructureType sType
5519 void* pNext
5520 VkQueueFamilyProperties queueFamilyProperties
5521}
5522
Jesse Hallad250842017-03-10 18:35:38 -08005523@extension("VK_KHR_get_physical_device_properties2") // 60
Chris Forbes1194ede2016-12-30 16:29:25 +13005524class VkPhysicalDeviceMemoryProperties2KHR {
5525 VkStructureType sType
5526 void* pNext
5527 VkPhysicalDeviceMemoryProperties memoryProperties
5528}
5529
Jesse Hallad250842017-03-10 18:35:38 -08005530@extension("VK_KHR_get_physical_device_properties2") // 60
Chris Forbes1194ede2016-12-30 16:29:25 +13005531class VkSparseImageFormatProperties2KHR {
5532 VkStructureType sType
5533 void* pNext
5534 VkSparseImageFormatProperties properties
5535}
5536
Jesse Hallad250842017-03-10 18:35:38 -08005537@extension("VK_KHR_get_physical_device_properties2") // 60
Chris Forbes1194ede2016-12-30 16:29:25 +13005538class VkPhysicalDeviceSparseImageFormatInfo2KHR {
5539 VkStructureType sType
5540 const void* pNext
5541 VkFormat format
5542 VkImageType type
5543 VkSampleCountFlagBits samples
5544 VkImageUsageFlags usage
5545 VkImageTiling tiling
5546}
5547
Daniel Koch09f7bf92017-10-05 00:26:58 -04005548@extension("VK_KHR_device_group") // 61
5549class VkMemoryAllocateFlagsInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005550 VkStructureType sType
5551 const void* pNext
Daniel Koch09f7bf92017-10-05 00:26:58 -04005552 VkMemoryAllocateFlagsKHR flags
Jesse Hallad250842017-03-10 18:35:38 -08005553 u32 deviceMask
5554}
5555
Daniel Koch09f7bf92017-10-05 00:26:58 -04005556@extension("VK_KHR_device_group") // 61
5557class VkBindBufferMemoryDeviceGroupInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005558 VkStructureType sType
5559 const void* pNext
Jesse Hallad250842017-03-10 18:35:38 -08005560 u32 deviceIndexCount
5561 const u32* pDeviceIndices
5562}
5563
Daniel Koch09f7bf92017-10-05 00:26:58 -04005564@extension("VK_KHR_device_group") // 61
5565class VkBindImageMemoryDeviceGroupInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005566 VkStructureType sType
5567 const void* pNext
Jesse Hallad250842017-03-10 18:35:38 -08005568 u32 deviceIndexCount
5569 const u32* pDeviceIndices
5570 u32 SFRRectCount
5571 const VkRect2D* pSFRRects
5572}
5573
Daniel Koch09f7bf92017-10-05 00:26:58 -04005574@extension("VK_KHR_device_group") // 61
5575class VkDeviceGroupRenderPassBeginInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005576 VkStructureType sType
5577 const void* pNext
5578 u32 deviceMask
5579 u32 deviceRenderAreaCount
5580 const VkRect2D* pDeviceRenderAreas
5581}
5582
Daniel Koch09f7bf92017-10-05 00:26:58 -04005583@extension("VK_KHR_device_group") // 61
5584class VkDeviceGroupCommandBufferBeginInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005585 VkStructureType sType
5586 const void* pNext
5587 u32 deviceMask
5588}
5589
Daniel Koch09f7bf92017-10-05 00:26:58 -04005590@extension("VK_KHR_device_group") // 61
5591class VkDeviceGroupSubmitInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005592 VkStructureType sType
5593 const void* pNext
5594 u32 waitSemaphoreCount
5595 const u32* pWaitSemaphoreDeviceIndices
5596 u32 commandBufferCount
5597 const u32* pCommandBufferDeviceMasks
5598 u32 signalSemaphoreCount
5599 const u32* pSignalSemaphoreDeviceIndices
5600}
5601
Daniel Koch09f7bf92017-10-05 00:26:58 -04005602@extension("VK_KHR_device_group") // 61
5603class VkDeviceGroupBindSparseInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005604 VkStructureType sType
5605 const void* pNext
5606 u32 resourceDeviceIndex
5607 u32 memoryDeviceIndex
5608}
5609
Jesse Hallad250842017-03-10 18:35:38 -08005610@extension("VK_EXT_validation_flags") // 62
Chris Forbes289cb792016-12-30 15:03:55 +13005611class VkValidationFlagsEXT {
5612 VkStructureType sType
5613 const void* pNext
5614 u32 disabledValidationCheckCount
Jesse Hall115df0c2018-07-30 12:00:59 -07005615 const VkValidationCheckEXT* pDisabledValidationChecks
Chris Forbes289cb792016-12-30 15:03:55 +13005616}
5617
Jesse Hallad250842017-03-10 18:35:38 -08005618@extension("VK_NN_vi_surface") // 63
Jesse Hall77ad05b2017-03-10 22:02:20 -08005619class VkViSurfaceCreateInfoNN {
5620 VkStructureType sType
5621 const void* pNext
5622 VkViSurfaceCreateFlagsNN flags
5623 void* window
5624}
5625
Jesse Hall4af6c462018-09-10 09:04:25 -07005626@extension("VK_EXT_astc_decode_mode") // 68
5627class VkImageViewASTCDecodeModeEXT {
5628 VkStructureType sType
5629 const void* pNext
5630 VkFormat decodeMode
5631}
5632
5633@extension("VK_EXT_astc_decode_mode") // 68
5634class VkPhysicalDeviceASTCDecodeFeaturesEXT {
5635 VkStructureType sType
5636 void* pNext
5637 VkBool32 decodeModeSharedExponent
5638}
5639
Daniel Koch09f7bf92017-10-05 00:26:58 -04005640@extension("VK_KHR_device_group_creation") // 71
5641class VkPhysicalDeviceGroupPropertiesKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005642 VkStructureType sType
Jesse Hallf5ad48b2017-03-20 13:09:19 -07005643 void* pNext
Jesse Hallad250842017-03-10 18:35:38 -08005644 u32 physicalDeviceCount
Daniel Koch09f7bf92017-10-05 00:26:58 -04005645 VkPhysicalDevice[VK_MAX_DEVICE_GROUP_SIZE] physicalDevices
Jesse Hallad250842017-03-10 18:35:38 -08005646 VkBool32 subsetAllocation
5647}
5648
Daniel Koch09f7bf92017-10-05 00:26:58 -04005649@extension("VK_KHR_device_group_creation") // 71
5650class VkDeviceGroupDeviceCreateInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005651 VkStructureType sType
5652 const void* pNext
5653 u32 physicalDeviceCount
5654 const VkPhysicalDevice* pPhysicalDevices
5655}
5656
Jesse Hall9492f992017-08-28 12:10:06 -07005657@extension("VK_KHR_external_memory_capabilities") // 72
5658class VkExternalMemoryPropertiesKHR {
5659 VkExternalMemoryFeatureFlagsKHR externalMemoryFeatures
5660 VkExternalMemoryHandleTypeFlagsKHR exportFromImportedHandleTypes
5661 VkExternalMemoryHandleTypeFlagsKHR compatibleHandleTypes
Jesse Hallad250842017-03-10 18:35:38 -08005662}
5663
Jesse Hall9492f992017-08-28 12:10:06 -07005664@extension("VK_KHR_external_memory_capabilities") // 72
5665class VkPhysicalDeviceExternalImageFormatInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005666 VkStructureType sType
5667 const void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005668 VkExternalMemoryHandleTypeFlagBitsKHR handleType
Jesse Hallad250842017-03-10 18:35:38 -08005669}
5670
Jesse Hall9492f992017-08-28 12:10:06 -07005671@extension("VK_KHR_external_memory_capabilities") // 72
5672class VkExternalImageFormatPropertiesKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005673 VkStructureType sType
5674 void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005675 VkExternalMemoryPropertiesKHR externalMemoryProperties
Jesse Hallad250842017-03-10 18:35:38 -08005676}
5677
Jesse Hall9492f992017-08-28 12:10:06 -07005678@extension("VK_KHR_external_memory_capabilities") // 72
5679class VkPhysicalDeviceExternalBufferInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005680 VkStructureType sType
5681 const void* pNext
5682 VkBufferCreateFlags flags
5683 VkBufferUsageFlags usage
Jesse Hall9492f992017-08-28 12:10:06 -07005684 VkExternalMemoryHandleTypeFlagBitsKHR handleType
Jesse Hallad250842017-03-10 18:35:38 -08005685}
5686
Jesse Hall9492f992017-08-28 12:10:06 -07005687@extension("VK_KHR_external_memory_capabilities") // 72
5688class VkExternalBufferPropertiesKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005689 VkStructureType sType
5690 void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005691 VkExternalMemoryPropertiesKHR externalMemoryProperties
Jesse Hallad250842017-03-10 18:35:38 -08005692}
5693
Jesse Hall9492f992017-08-28 12:10:06 -07005694@extension("VK_KHR_external_memory_capabilities") // 72
5695class VkPhysicalDeviceIDPropertiesKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005696 VkStructureType sType
5697 void* pNext
5698 u8[VK_UUID_SIZE] deviceUUID
5699 u8[VK_UUID_SIZE] driverUUID
Daniel Koch09f7bf92017-10-05 00:26:58 -04005700 u8[VK_LUID_SIZE] deviceLUID
Jesse Hall9492f992017-08-28 12:10:06 -07005701 u32 deviceNodeMask
Jesse Hallad250842017-03-10 18:35:38 -08005702 VkBool32 deviceLUIDValid
5703}
5704
Jesse Hall9492f992017-08-28 12:10:06 -07005705@extension("VK_KHR_external_memory") // 73
5706class VkExternalMemoryImageCreateInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005707 VkStructureType sType
5708 const void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005709 VkExternalMemoryHandleTypeFlagsKHR handleTypes
Jesse Hallad250842017-03-10 18:35:38 -08005710}
5711
Jesse Hall9492f992017-08-28 12:10:06 -07005712@extension("VK_KHR_external_memory") // 73
5713class VkExternalMemoryBufferCreateInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005714 VkStructureType sType
5715 const void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005716 VkExternalMemoryHandleTypeFlagsKHR handleTypes
Jesse Hallad250842017-03-10 18:35:38 -08005717}
5718
Jesse Hall9492f992017-08-28 12:10:06 -07005719@extension("VK_KHR_external_memory") // 73
5720class VkExportMemoryAllocateInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005721 VkStructureType sType
5722 const void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005723 VkExternalMemoryHandleTypeFlagsKHR handleTypes
Jesse Hallad250842017-03-10 18:35:38 -08005724}
5725
Jesse Hall9492f992017-08-28 12:10:06 -07005726@extension("VK_KHR_external_memory_win32") // 74
5727class VkImportMemoryWin32HandleInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005728 VkStructureType sType
5729 const void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005730 VkExternalMemoryHandleTypeFlagBitsKHR handleType
Jesse Hallad250842017-03-10 18:35:38 -08005731 platform.HANDLE handle
Jesse Hall9492f992017-08-28 12:10:06 -07005732 platform.LPCWSTR name
Jesse Hallad250842017-03-10 18:35:38 -08005733}
5734
Jesse Hall9492f992017-08-28 12:10:06 -07005735@extension("VK_KHR_external_memory_win32") // 74
5736class VkExportMemoryWin32HandleInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005737 VkStructureType sType
5738 const void* pNext
5739 const platform.SECURITY_ATTRIBUTES* pAttributes
5740 platform.DWORD dwAccess
5741 platform.LPCWSTR name
5742}
5743
Jesse Hall9492f992017-08-28 12:10:06 -07005744@extension("VK_KHR_external_memory_win32") // 74
5745class VkMemoryWin32HandlePropertiesKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005746 VkStructureType sType
5747 void* pNext
5748 u32 memoryTypeBits
5749}
5750
Jesse Hall9492f992017-08-28 12:10:06 -07005751@extension("VK_KHR_external_memory_win32") // 74
5752class VkMemoryGetWin32HandleInfoKHR {
5753 VkStructureType sType
5754 void* pNext
5755 VkDeviceMemory memory
5756 VkExternalMemoryHandleTypeFlagBitsKHR handleType
5757}
5758
5759@extension("VK_KHR_external_memory_fd") // 75
5760class VkImportMemoryFdInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005761 VkStructureType sType
5762 const void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005763 VkExternalMemoryHandleTypeFlagBitsKHR handleType
Jesse Hallad250842017-03-10 18:35:38 -08005764 int fd
5765}
5766
Jesse Hall9492f992017-08-28 12:10:06 -07005767@extension("VK_KHR_external_memory_fd") // 75
5768class VkMemoryFdPropertiesKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005769 VkStructureType sType
5770 void* pNext
5771 u32 memoryTypeBits
5772}
5773
Jesse Hall9492f992017-08-28 12:10:06 -07005774@extension("VK_KHR_external_memory_fd") // 75
5775class VkMemoryGetFdInfoKHR {
5776 VkStructureType sType
5777 void* pNext
5778 VkDeviceMemory memory
5779 VkExternalMemoryHandleTypeFlagBitsKHR handleType
5780}
5781
5782@extension("VK_KHR_win32_keyed_mutex") // 76
5783class VkWin32KeyedMutexAcquireReleaseInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005784 VkStructureType sType
5785 const void* pNext
5786 u32 acquireCount
5787 const VkDeviceMemory* pAcquireSyncs
5788 const u64* pAcquireKeys
5789 const u32* pAcquireTimeouts
5790 u32 releaseCount
5791 const VkDeviceMemory* pReleaseSyncs
5792 const u64* pReleaseKeys
5793}
5794
Jesse Hall9492f992017-08-28 12:10:06 -07005795@extension("VK_KHR_external_semaphore_capabilities") // 77
5796class VkPhysicalDeviceExternalSemaphoreInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005797 VkStructureType sType
5798 const void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005799 VkExternalSemaphoreHandleTypeFlagBitsKHR handleType
Jesse Hallad250842017-03-10 18:35:38 -08005800}
5801
Jesse Hall9492f992017-08-28 12:10:06 -07005802@extension("VK_KHR_external_semaphore_capabilities") // 77
5803class VkExternalSemaphorePropertiesKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005804 VkStructureType sType
5805 void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005806 VkExternalSemaphoreHandleTypeFlagsKHR exportFromImportedHandleTypes
5807 VkExternalSemaphoreHandleTypeFlagsKHR compatibleHandleTypes
5808 VkExternalSemaphoreFeatureFlagsKHR externalSemaphoreFeatures
Jesse Hallad250842017-03-10 18:35:38 -08005809}
5810
Jesse Hall9492f992017-08-28 12:10:06 -07005811@extension("VK_KHR_external_semaphore") // 78
5812class VkExportSemaphoreCreateInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005813 VkStructureType sType
5814 const void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005815 VkExternalSemaphoreHandleTypeFlagsKHR handleTypes
Jesse Hallad250842017-03-10 18:35:38 -08005816}
5817
Jesse Hall9492f992017-08-28 12:10:06 -07005818@extension("VK_KHR_external_semaphore_win32") // 79
5819class VkImportSemaphoreWin32HandleInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005820 VkStructureType sType
5821 const void* pNext
5822 VkSemaphore semaphore
Jesse Hall9492f992017-08-28 12:10:06 -07005823 VkSemaphoreImportFlagsKHR flags
5824 VkExternalSemaphoreHandleTypeFlagsKHR handleType
Jesse Hallad250842017-03-10 18:35:38 -08005825 platform.HANDLE handle
Jesse Hall9492f992017-08-28 12:10:06 -07005826 platform.LPCWSTR name
Jesse Hallad250842017-03-10 18:35:38 -08005827}
5828
Jesse Hall9492f992017-08-28 12:10:06 -07005829@extension("VK_KHR_external_semaphore_win32") // 79
5830class VkExportSemaphoreWin32HandleInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005831 VkStructureType sType
5832 const void* pNext
5833 const platform.SECURITY_ATTRIBUTES* pAttributes
5834 platform.DWORD dwAccess
5835 platform.LPCWSTR name
5836}
5837
Jesse Hall9492f992017-08-28 12:10:06 -07005838@extension("VK_KHR_external_semaphore_win32") // 79
5839class VkD3D12FenceSubmitInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005840 VkStructureType sType
5841 const void* pNext
5842 u32 waitSemaphoreValuesCount
5843 const u64* pWaitSemaphoreValues
5844 u32 signalSemaphoreValuesCount
5845 const u64* pSignalSemaphoreValues
5846}
5847
Jesse Hall9492f992017-08-28 12:10:06 -07005848@extension("VK_KHR_external_semaphore_win32") // 79
5849class VkSemaphoreGetWin32HandleInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005850 VkStructureType sType
5851 const void* pNext
5852 VkSemaphore semaphore
Jesse Hall9492f992017-08-28 12:10:06 -07005853 VkExternalSemaphoreHandleTypeFlagBitsKHR handleType
5854}
5855
5856@extension("VK_KHR_external_semaphore_fd") // 80
5857class VkImportSemaphoreFdInfoKHR {
5858 VkStructureType sType
5859 const void* pNext
5860 VkSemaphore semaphore
5861 VkSemaphoreImportFlagsKHR flags
5862 VkExternalSemaphoreHandleTypeFlagBitsKHR handleType
Jesse Hallad250842017-03-10 18:35:38 -08005863 s32 fd
5864}
5865
Jesse Hall9492f992017-08-28 12:10:06 -07005866@extension("VK_KHR_external_semaphore_fd") // 80
5867class VkSemaphoreGetFdInfoKHR {
5868 VkStructureType sType
5869 const void* pNext
5870 VkSemaphore semaphore
5871 VkExternalSemaphoreHandleTypeFlagBitsKHR handleType
5872}
5873
Jesse Hallad250842017-03-10 18:35:38 -08005874@extension("VK_KHR_push_descriptor") // 81
5875class VkPhysicalDevicePushDescriptorPropertiesKHR {
5876 VkStructureType sType
5877 void* pNext
5878 u32 maxPushDescriptors
5879}
5880
Jesse Halla13a3cf2018-07-09 15:51:52 -07005881@extension("VK_EXT_conditional_rendering") // 82
5882class VkConditionalRenderingBeginInfoEXT {
5883 VkStructureType sType
5884 const void* pNext
5885 VkBuffer buffer
5886 VkDeviceSize offset
5887 VkConditionalRenderingFlagsEXT flags
5888}
5889
5890@extension("VK_EXT_conditional_rendering") // 82
5891class VkPhysicalDeviceConditionalRenderingFeaturesEXT {
5892 VkStructureType sType
5893 void* pNext
5894 VkBool32 conditionalRendering
5895 VkBool32 inheritedConditionalRendering
5896}
5897
5898@extension("VK_EXT_conditional_rendering") // 82
5899class VkCommandBufferInheritanceConditionalRenderingInfoEXT {
5900 VkStructureType sType
5901 const void* pNext
5902 VkBool32 conditionalRenderingEnable
5903}
5904
Jesse Hall9492f992017-08-28 12:10:06 -07005905@extension("VK_KHR_16bit_storage") // 84
5906class VkPhysicalDevice16BitStorageFeaturesKHR {
5907 VkStructureType sType
5908 void* pNext
5909 VkBool32 storageBuffer16BitAccess
5910 VkBool32 uniformAndStorageBuffer16BitAccess
5911 VkBool32 storagePushConstant16
5912 VkBool32 storageInputOutput16
5913}
5914
Jesse Hallad250842017-03-10 18:35:38 -08005915@extension("VK_KHR_incremental_present") // 85
5916class VkRectLayerKHR {
5917 VkOffset2D offset
5918 VkExtent2D extent
5919 u32 layer
5920}
5921
5922@extension("VK_KHR_incremental_present") // 85
5923class VkPresentRegionKHR {
5924 u32 rectangleCount
5925 const VkRectLayerKHR* pRectangles
5926}
5927
5928@extension("VK_KHR_incremental_present") // 85
5929class VkPresentRegionsKHR {
5930 VkStructureType sType
5931 const void* pNext
5932 u32 swapchainCount
5933 const VkPresentRegionKHR* pRegions
5934}
5935
5936@extension("VK_KHR_descriptor_update_template") // 86
5937class VkDescriptorUpdateTemplateEntryKHR {
5938 u32 dstBinding
5939 u32 dstArrayElement
5940 u32 descriptorCount
5941 VkDescriptorType descriptorType
5942 platform.size_t offset
5943 platform.size_t stride
5944}
5945
5946@extension("VK_KHR_descriptor_update_template") // 86
5947class VkDescriptorUpdateTemplateCreateInfoKHR {
5948 VkStructureType sType
5949 void* pNext
5950 VkDescriptorUpdateTemplateCreateFlagsKHR flags
5951 u32 descriptorUpdateEntryCount
5952 const VkDescriptorUpdateTemplateEntryKHR* pDescriptorUpdateEntries
5953 VkDescriptorUpdateTemplateTypeKHR templateType
5954 VkDescriptorSetLayout descriptorSetLayout
5955 VkPipelineBindPoint pipelineBindPoint
5956 VkPipelineLayout pipelineLayout
5957 u32 set
5958}
5959
5960@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13005961class VkDeviceGeneratedCommandsFeaturesNVX {
5962 VkStructureType sType
5963 const void* pNext
5964 VkBool32 computeBindingPointSupport
5965}
5966
Jesse Hallad250842017-03-10 18:35:38 -08005967@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13005968class VkDeviceGeneratedCommandsLimitsNVX {
5969 VkStructureType sType
5970 const void* pNext
5971 u32 maxIndirectCommandsLayoutTokenCount
5972 u32 maxObjectEntryCounts
5973 u32 minSequenceCountBufferOffsetAlignment
5974 u32 minSequenceIndexBufferOffsetAlignment
5975 u32 minCommandsTokenBufferOffsetAlignment
5976}
5977
Jesse Hallad250842017-03-10 18:35:38 -08005978@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13005979class VkIndirectCommandsTokenNVX {
5980 VkIndirectCommandsTokenTypeNVX tokenType
5981 VkBuffer buffer
5982 VkDeviceSize offset
5983}
5984
Jesse Hallad250842017-03-10 18:35:38 -08005985@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13005986class VkIndirectCommandsLayoutTokenNVX {
5987 VkIndirectCommandsTokenTypeNVX tokenType
5988 u32 bindingUnit
5989 u32 dynamicCount
5990 u32 divisor
5991}
5992
Jesse Hallad250842017-03-10 18:35:38 -08005993@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13005994class VkIndirectCommandsLayoutCreateInfoNVX {
5995 VkStructureType sType
5996 const void* pNext
5997 VkPipelineBindPoint pipelineBindPoint
5998 VkIndirectCommandsLayoutUsageFlagsNVX flags
5999 u32 tokenCount
6000 const VkIndirectCommandsLayoutTokenNVX* pTokens
6001}
6002
Jesse Hallad250842017-03-10 18:35:38 -08006003@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13006004class VkCmdProcessCommandsInfoNVX {
6005 VkStructureType sType
6006 const void* pNext
6007 VkObjectTableNVX objectTable
6008 VkIndirectCommandsLayoutNVX indirectCommandsLayout
6009 u32 indirectCommandsTokenCount
6010 const VkIndirectCommandsTokenNVX* pIndirectCommandsTokens
6011 u32 maxSequencesCount
6012 VkCommandBuffer targetCommandBuffer
6013 VkBuffer sequencesCountBuffer
6014 VkDeviceSize sequencesCountOffset
6015 VkBuffer sequencesIndexBuffer
6016 VkDeviceSize sequencesIndexOffset
6017}
6018
Jesse Hallad250842017-03-10 18:35:38 -08006019@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13006020class VkCmdReserveSpaceForCommandsInfoNVX {
6021 VkStructureType sType
6022 const void* pNext
6023 VkObjectTableNVX objectTable
6024 VkIndirectCommandsLayoutNVX indirectCommandsLayout
6025 u32 maxSequencesCount
6026}
6027
Jesse Hallad250842017-03-10 18:35:38 -08006028@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13006029class VkObjectTableCreateInfoNVX {
6030 VkStructureType sType
6031 const void* pNext
6032 u32 objectCount
6033 const VkObjectEntryTypeNVX* pObjectEntryTypes
6034 const u32* pObjectEntryCounts
6035 const VkObjectEntryUsageFlagsNVX* pObjectEntryUsageFlags
6036 u32 maxUniformBuffersPerDescriptor
6037 u32 maxStorageBuffersPerDescriptor
6038 u32 maxStorageImagesPerDescriptor
6039 u32 maxSampledImagesPerDescriptor
6040 u32 maxPipelineLayouts
6041}
6042
Jesse Hallad250842017-03-10 18:35:38 -08006043@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13006044class VkObjectTableEntryNVX {
6045 VkObjectEntryTypeNVX type
6046 VkObjectEntryUsageFlagsNVX flags
6047}
6048
Jesse Hallad250842017-03-10 18:35:38 -08006049@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13006050class VkObjectTablePipelineEntryNVX {
6051 VkObjectEntryTypeNVX type
6052 VkObjectEntryUsageFlagsNVX flags
6053 VkPipeline pipeline
6054}
6055
Jesse Hallad250842017-03-10 18:35:38 -08006056@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13006057class VkObjectTableDescriptorSetEntryNVX {
6058 VkObjectEntryTypeNVX type
6059 VkObjectEntryUsageFlagsNVX flags
6060 VkPipelineLayout pipelineLayout
6061 VkDescriptorSet descriptorSet
6062}
6063
Jesse Hallad250842017-03-10 18:35:38 -08006064@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13006065class VkObjectTableVertexBufferEntryNVX {
6066 VkObjectEntryTypeNVX type
6067 VkObjectEntryUsageFlagsNVX flags
6068 VkBuffer buffer
6069}
6070
Jesse Hallad250842017-03-10 18:35:38 -08006071@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13006072class VkObjectTableIndexBufferEntryNVX {
6073 VkObjectEntryTypeNVX type
6074 VkObjectEntryUsageFlagsNVX flags
6075 VkBuffer buffer
Jesse Hall77ad05b2017-03-10 22:02:20 -08006076 VkIndexType indexType
Chris Forbes289cb792016-12-30 15:03:55 +13006077}
6078
Jesse Hallad250842017-03-10 18:35:38 -08006079@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13006080class VkObjectTablePushConstantEntryNVX {
6081 VkObjectEntryTypeNVX type
6082 VkObjectEntryUsageFlagsNVX flags
6083 VkPipelineLayout pipelineLayout
6084 VkShaderStageFlags stageFlags
6085}
6086
Jesse Hallad250842017-03-10 18:35:38 -08006087@extension("VK_NV_clip_space_w_scaling") // 88
6088class VkViewportWScalingNV {
6089 f32 xcoeff
6090 f32 ycoeff
Jesse Hall889cd9a2017-02-25 22:12:23 -08006091}
6092
Jesse Hallad250842017-03-10 18:35:38 -08006093@extension("VK_NV_clip_space_w_scaling") // 88
6094class VkPipelineViewportWScalingStateCreateInfoNV {
Jesse Hall889cd9a2017-02-25 22:12:23 -08006095 VkStructureType sType
6096 const void* pNext
Jesse Hallad250842017-03-10 18:35:38 -08006097 VkBool32 viewportWScalingEnable
6098 u32 viewportCount
6099 const VkViewportWScalingNV* pViewportWScalings
Jesse Hall889cd9a2017-02-25 22:12:23 -08006100}
6101
Jesse Hallad250842017-03-10 18:35:38 -08006102@extension("VK_EXT_display_surface_counter") // 91
Jesse Hall77ad05b2017-03-10 22:02:20 -08006103class VkSurfaceCapabilities2EXT {
6104 VkStructureType sType
6105 void* pNext
6106 u32 minImageCount
6107 u32 maxImageCount
6108 VkExtent2D currentExtent
6109 VkExtent2D minImageExtent
6110 VkExtent2D maxImageExtent
6111 u32 maxImageArrayLayers
6112 VkSurfaceTransformFlagsKHR supportedTransforms
6113 VkSurfaceTransformFlagBitsKHR currentTransform
6114 VkCompositeAlphaFlagsKHR supportedCompositeAlpha
6115 VkImageUsageFlags supportedUsageFlags
6116 VkSurfaceCounterFlagsEXT supportedSurfaceCounters
6117}
6118
Jesse Hallad250842017-03-10 18:35:38 -08006119@extension("VK_EXT_display_control") // 92
Jesse Hall77ad05b2017-03-10 22:02:20 -08006120class VkDisplayPowerInfoEXT {
6121 VkStructureType sType
6122 const void* pNext
6123 VkDisplayPowerStateEXT powerState
6124}
6125
Jesse Hallad250842017-03-10 18:35:38 -08006126@extension("VK_EXT_display_control") // 92
Jesse Hall77ad05b2017-03-10 22:02:20 -08006127class VkDeviceEventInfoEXT {
6128 VkStructureType sType
6129 const void* pNext
6130 VkDeviceEventTypeEXT deviceEvent
6131}
6132
Jesse Hallad250842017-03-10 18:35:38 -08006133@extension("VK_EXT_display_control") // 92
Jesse Hall77ad05b2017-03-10 22:02:20 -08006134class VkDisplayEventInfoEXT {
6135 VkStructureType sType
6136 const void* pNext
6137 VkDisplayEventTypeEXT displayEvent
6138}
6139
Jesse Hallad250842017-03-10 18:35:38 -08006140@extension("VK_EXT_display_control") // 92
Jesse Hall77ad05b2017-03-10 22:02:20 -08006141class VkSwapchainCounterCreateInfoEXT {
6142 VkStructureType sType
6143 const void* pNext
6144 VkSurfaceCounterFlagsEXT surfaceCounters
6145}
6146
Jesse Hallad250842017-03-10 18:35:38 -08006147@extension("VK_GOOGLE_display_timing") // 93
6148class VkRefreshCycleDurationGOOGLE {
Jesse Hallfdc8ab32017-03-10 21:01:57 -08006149 u64 refreshDuration
Jesse Hallad250842017-03-10 18:35:38 -08006150}
6151
6152@extension("VK_GOOGLE_display_timing") // 93
6153class VkPastPresentationTimingGOOGLE {
Jesse Hallfdc8ab32017-03-10 21:01:57 -08006154 u32 presentID
6155 u64 desiredPresentTime
6156 u64 actualPresentTime
6157 u64 earliestPresentTime
6158 u64 presentMargin
Jesse Hallad250842017-03-10 18:35:38 -08006159}
6160
6161@extension("VK_GOOGLE_display_timing") // 93
6162class VkPresentTimeGOOGLE {
Jesse Hallfdc8ab32017-03-10 21:01:57 -08006163 u32 presentID
6164 u64 desiredPresentTime
Jesse Hallad250842017-03-10 18:35:38 -08006165}
6166
6167@extension("VK_GOOGLE_display_timing") // 93
6168class VkPresentTimesInfoGOOGLE {
Jesse Hallfdc8ab32017-03-10 21:01:57 -08006169 VkStructureType sType
6170 const void* pNext
6171 u32 swapchainCount
6172 const VkPresentTimeGOOGLE* pTimes
Jesse Hallad250842017-03-10 18:35:38 -08006173}
6174
6175@extension("VK_NVX_multiview_per_view_attributes") // 98
6176class VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX {
6177 VkStructureType sType
6178 void* pNext
6179 VkBool32 perViewPositionAllComponents
6180}
6181
6182@extension("VK_NV_viewport_swizzle") // 99
6183class VkViewportSwizzleNV {
6184 VkViewportCoordinateSwizzleNV x
6185 VkViewportCoordinateSwizzleNV y
6186 VkViewportCoordinateSwizzleNV z
6187 VkViewportCoordinateSwizzleNV w
6188}
6189
6190@extension("VK_NV_viewport_swizzle") // 99
6191class VkPipelineViewportSwizzleStateCreateInfoNV {
6192 VkStructureType sType
6193 const void* pNext
6194 VkPipelineViewportSwizzleStateCreateFlagsNV flags
6195 u32 viewportCount
6196 const VkViewportSwizzleNV* pViewportSwizzles
6197}
6198
6199@extension("VK_EXT_discard_rectangles") // 100
6200class VkPhysicalDeviceDiscardRectanglePropertiesEXT {
6201 VkStructureType sType
Jesse Hallf5ad48b2017-03-20 13:09:19 -07006202 void* pNext
Jesse Hallad250842017-03-10 18:35:38 -08006203 u32 maxDiscardRectangles
6204}
6205
6206@extension("VK_EXT_discard_rectangles") // 100
6207class VkPipelineDiscardRectangleStateCreateInfoEXT {
Jesse Hallfdc8ab32017-03-10 21:01:57 -08006208 VkStructureType sType
6209 const void* pNext
6210 VkPipelineDiscardRectangleStateCreateFlagsEXT flags
6211 VkDiscardRectangleModeEXT discardRectangleMode
6212 u32 discardRectangleCount
6213 const VkRect2D* pDiscardRectangles
Jesse Hallad250842017-03-10 18:35:38 -08006214}
6215
Jesse Hall8c954d32018-01-17 22:06:20 -08006216@extension("VK_EXT_conservative_rasterization") // 102
6217class VkPhysicalDeviceConservativeRasterizationPropertiesEXT {
6218 VkStructureType sType
6219 void* pNext
6220 f32 primitiveOverestimationSize
6221 f32 maxExtraPrimitiveOverestimationSize
6222 f32 extraPrimitiveOverestimationSizeGranularity
6223 VkBool32 primitiveUnderestimation
6224 VkBool32 conservativePointAndLineRasterization
6225 VkBool32 degenerateTrianglesRasterized
6226 VkBool32 degenerateLinesRasterized
6227 VkBool32 fullyCoveredFragmentShaderInputVariable
6228 VkBool32 conservativeRasterizationPostDepthCoverage
6229}
6230
6231@extension("VK_EXT_conservative_rasterization") // 102
6232class VkPipelineRasterizationConservativeStateCreateInfoEXT {
6233 VkStructureType sType
6234 const void* pNext
6235 VkPipelineRasterizationConservativeStateCreateFlagsEXT flags
6236 VkConservativeRasterizationModeEXT conservativeRasterizationMode
6237 f32 extraPrimitiveOverestimationSize
6238}
6239
Jesse Hallad250842017-03-10 18:35:38 -08006240@extension("VK_EXT_hdr_metadata") // 106
Courtney Goeltzenleuchterd634c482017-01-05 15:55:31 -07006241class VkXYColorEXT {
Jesse Hallfdc8ab32017-03-10 21:01:57 -08006242 f32 x
6243 f32 y
Courtney Goeltzenleuchterd634c482017-01-05 15:55:31 -07006244}
6245
Jesse Hallad250842017-03-10 18:35:38 -08006246@extension("VK_EXT_hdr_metadata") // 106
Courtney Goeltzenleuchterd634c482017-01-05 15:55:31 -07006247class VkHdrMetadataEXT {
Jesse Hallfdc8ab32017-03-10 21:01:57 -08006248 VkStructureType sType
6249 const void* pNext
6250 VkXYColorEXT displayPrimaryRed
6251 VkXYColorEXT displayPrimaryGreen
6252 VkXYColorEXT displayPrimaryBlue
6253 VkXYColorEXT whitePoint
6254 f32 maxLuminance
6255 f32 minLuminance
6256 f32 maxContentLightLevel
6257 f32 maxFrameAverageLightLevel
Courtney Goeltzenleuchterd634c482017-01-05 15:55:31 -07006258}
6259
Jesse Halla13a3cf2018-07-09 15:51:52 -07006260@extension("VK_KHR_create_renderpass2") // 110
6261class VkAttachmentDescription2KHR {
6262 VkStructureType sType
6263 const void* pNext
6264 VkAttachmentDescriptionFlags flags
6265 VkFormat format
6266 VkSampleCountFlagBits samples
6267 VkAttachmentLoadOp loadOp
6268 VkAttachmentStoreOp storeOp
6269 VkAttachmentLoadOp stencilLoadOp
6270 VkAttachmentStoreOp stencilStoreOp
6271 VkImageLayout initialLayout
6272 VkImageLayout finalLayout
6273}
6274
6275@extension("VK_KHR_create_renderpass2") // 110
6276class VkAttachmentReference2KHR {
6277 VkStructureType sType
6278 const void* pNext
6279 u32 attachment
6280 VkImageLayout layout
6281 VkImageAspectFlags aspectMask
6282}
6283
6284@extension("VK_KHR_create_renderpass2") // 110
6285class VkSubpassDescription2KHR {
6286 VkStructureType sType
6287 const void* pNext
6288 VkSubpassDescriptionFlags flags
6289 VkPipelineBindPoint pipelineBindPoint
6290 u32 viewMask
6291 u32 inputAttachmentCount
6292 const VkAttachmentReference2KHR* pInputAttachments
6293 u32 colorAttachmentCount
6294 const VkAttachmentReference2KHR* pColorAttachments
6295 const VkAttachmentReference2KHR* pResolveAttachments
6296 const VkAttachmentReference2KHR* pDepthStencilAttachment
6297 u32 preserveAttachmentCount
6298 const u32* pPreserveAttachments
6299}
6300
6301@extension("VK_KHR_create_renderpass2") // 110
6302class VkSubpassDependency2KHR {
6303 VkStructureType sType
6304 const void* pNext
6305 u32 srcSubpass
6306 u32 dstSubpass
6307 VkPipelineStageFlags srcStageMask
6308 VkPipelineStageFlags dstStageMask
6309 VkAccessFlags srcAccessMask
6310 VkAccessFlags dstAccessMask
6311 VkDependencyFlags dependencyFlags
6312 s32 viewOffset
6313}
6314
6315@extension("VK_KHR_create_renderpass2") // 110
6316class VkRenderPassCreateInfo2KHR {
6317 VkStructureType sType
6318 const void* pNext
6319 VkRenderPassCreateFlags flags
6320 u32 attachmentCount
6321 const VkAttachmentDescription2KHR* pAttachments
6322 u32 subpassCount
6323 const VkSubpassDescription2KHR* pSubpasses
6324 u32 dependencyCount
6325 const VkSubpassDependency2KHR* pDependencies
6326 u32 correlatedViewMaskCount
6327 const u32* pCorrelatedViewMasks
6328}
6329
6330@extension("VK_KHR_create_renderpass2") // 110
6331class VkSubpassBeginInfoKHR {
6332 VkStructureType sType
6333 const void* pNext
6334 VkSubpassContents contents
6335}
6336
6337@extension("VK_KHR_create_renderpass2") // 110
6338class VkSubpassEndInfoKHR {
6339 VkStructureType sType
6340 const void* pNext
6341}
6342
Jesse Hall05556b12017-05-18 17:40:25 -07006343@extension("VK_KHR_shared_presentable_image") // 112
Chris Forbese2d3ee12017-03-16 16:10:15 +13006344class VkSharedPresentSurfaceCapabilitiesKHR {
6345 VkStructureType sType
6346 const void* pNext
6347 VkImageUsageFlags sharedPresentSupportedUsageFlags
6348}
6349
Jesse Hall9492f992017-08-28 12:10:06 -07006350@extension("VK_KHR_external_fence_capabilities") // 113
6351class VkPhysicalDeviceExternalFenceInfoKHR {
6352 VkStructureType sType
6353 const void* pNext
6354 VkExternalFenceHandleTypeFlagBitsKHR handleType
6355}
6356
6357@extension("VK_KHR_external_fence_capabilities") // 113
6358class VkExternalFencePropertiesKHR {
6359 VkStructureType sType
6360 void* pNext
6361 VkExternalFenceHandleTypeFlagsKHR exportFromImportedHandleTypes
6362 VkExternalFenceHandleTypeFlagsKHR compatibleHandleTypes
6363 VkExternalFenceFeatureFlagsKHR externalFenceFeatures
6364}
6365
6366@extension("VK_KHR_external_fence") // 114
6367class VkExportFenceCreateInfoKHR {
6368 VkStructureType sType
6369 const void* pNext
6370 VkExternalFenceHandleTypeFlagsKHR handleTypes
6371}
6372
6373@extension("VK_KHR_external_fence_win32") // 115
6374class VkImportFenceWin32HandleInfoKHR {
6375 VkStructureType sType
6376 const void* pNext
6377 VkFence fence
6378 VkFenceImportFlagsKHR flags
6379 VkExternalFenceHandleTypeFlagBitsKHR handleType
6380 platform.HANDLE handle
6381 platform.LPCWSTR name
6382}
6383
6384@extension("VK_KHR_external_fence_win32") // 115
6385class VkExportFenceWin32HandleInfoKHR {
6386 VkStructureType sType
6387 const void* pNext
6388 const platform.SECURITY_ATTRIBUTES* pAttributes
6389 platform.DWORD dwAccess
6390 platform.LPCWSTR name
6391}
6392
6393@extension("VK_KHR_external_fence_win32") // 115
6394class VkFenceGetWin32HandleInfoKHR {
6395 VkStructureType sType
6396 const void* pNext
6397 VkFence fence
6398 VkExternalFenceHandleTypeFlagBitsKHR handleType
6399}
6400
6401@extension("VK_KHR_external_fence_fd") // 116
6402class VkImportFenceFdInfoKHR {
6403 VkStructureType sType
6404 const void* pNext
6405 VkFence fence
6406 VkFenceImportFlagsKHR flags
6407 VkExternalFenceHandleTypeFlagBitsKHR handleType
6408 int fd
6409}
6410
6411@extension("VK_KHR_external_fence_fd") // 116
6412class VkFenceGetFdInfoKHR {
6413 VkStructureType sType
6414 const void* pNext
6415 VkFence fence
6416 VkExternalFenceHandleTypeFlagBitsKHR handleType
6417}
6418
Jesse Hall076f95d2017-09-20 11:34:47 -07006419@extension("VK_KHR_maintenance2") // 118
6420class VkPhysicalDevicePointClippingPropertiesKHR {
6421 VkStructureType sType
6422 void* pNext
6423 VkPointClippingBehaviorKHR pointClippingBehavior
6424}
6425
6426@extension("VK_KHR_maintenance2") // 118
6427class VkInputAttachmentAspectReferenceKHR {
6428 u32 subpass
6429 u32 inputAttachmentIndex
6430 VkImageAspectFlags aspectMask
6431}
6432
6433@extension("VK_KHR_maintenance2") // 118
6434class VkRenderPassInputAttachmentAspectCreateInfoKHR {
6435 VkStructureType sType
6436 const void* pNext
6437 u32 aspectReferenceCount
6438 const VkInputAttachmentAspectReferenceKHR* pAspectReferences
6439}
6440
6441@extension("VK_KHR_maintenance2") // 118
6442class VkImageViewUsageCreateInfoKHR {
6443 VkStructureType sType
6444 const void* pNext
6445 VkImageUsageFlags usage
6446}
6447
6448@extension("VK_KHR_maintenance2") // 118
6449class VkPipelineTessellationDomainOriginStateCreateInfoKHR {
6450 VkStructureType sType
6451 const void* pNext
6452 VkTessellationDomainOriginKHR domainOrigin
6453}
6454
Jesse Hall05556b12017-05-18 17:40:25 -07006455@extension("VK_KHR_get_surface_capabilities2") // 120
Chris Forbese2d3ee12017-03-16 16:10:15 +13006456class VkPhysicalDeviceSurfaceInfo2KHR {
6457 VkStructureType sType
6458 const void* pNext
6459 VkSurfaceKHR surface
6460}
6461
Jesse Hall05556b12017-05-18 17:40:25 -07006462@extension("VK_KHR_get_surface_capabilities2") // 120
Chris Forbese2d3ee12017-03-16 16:10:15 +13006463class VkSurfaceCapabilities2KHR {
6464 VkStructureType sType
6465 void* pNext
6466 VkSurfaceCapabilitiesKHR surfaceCapabilities
6467}
6468
Jesse Hall05556b12017-05-18 17:40:25 -07006469@extension("VK_KHR_get_surface_capabilities2") // 120
Chris Forbese2d3ee12017-03-16 16:10:15 +13006470class VkSurfaceFormat2KHR {
6471 VkStructureType sType
6472 void* pNext
6473 VkSurfaceFormatKHR surfaceFormat
6474}
6475
Jesse Hall9492f992017-08-28 12:10:06 -07006476@extension("VK_KHR_variable_pointers") // 121
6477class VkPhysicalDeviceVariablePointerFeaturesKHR {
6478 VkStructureType sType
6479 void* pNext
6480 VkBool32 variablePointersStorageBuffer
6481 VkBool32 variablePointers
6482}
6483
Jesse Hall54f8d132018-04-18 08:16:59 -07006484@extension("VK_KHR_display_properties2") // 122
6485class VkDisplayProperties2KHR {
6486 VkStructureType sType
6487 void* pNext
6488 VkDisplayPropertiesKHR displayProperties
6489}
6490
6491@extension("VK_KHR_display_properties2") // 122
6492class VkDisplayPlaneProperties2KHR {
6493 VkStructureType sType
6494 void* pNext
6495 VkDisplayPlanePropertiesKHR displayPlaneProperties
6496}
6497
6498@extension("VK_KHR_display_properties2") // 122
6499class VkDisplayModeProperties2KHR {
6500 VkStructureType sType
6501 void* pNext
6502 VkDisplayModePropertiesKHR displayModeProperties
6503}
6504
6505@extension("VK_KHR_display_properties2") // 122
6506class VkDisplayPlaneInfo2KHR {
6507 VkStructureType sType
6508 const void* pNext
6509 VkDisplayModeKHR mode
6510 u32 planeIndex
6511}
6512
6513@extension("VK_KHR_display_properties2") // 122
6514class VkDisplayPlaneCapabilities2KHR {
6515 VkStructureType sType
6516 void* pNext
6517 VkDisplayPlaneCapabilitiesKHR capabilities
6518}
6519
Jesse Hallad250842017-03-10 18:35:38 -08006520@extension("VK_MVK_ios_surface") // 123
6521class VkIOSSurfaceCreateInfoMVK {
6522 VkStructureType sType
6523 const void* pNext
6524 VkIOSSurfaceCreateFlagsMVK flags
6525 const void* pView
6526}
6527
6528@extension("VK_MVK_macos_surface") // 124
6529class VkMacOSSurfaceCreateInfoMVK {
6530 VkStructureType sType
6531 const void* pNext
6532 VkMacOSSurfaceCreateFlagsMVK flags
6533 const void* pView
6534}
6535
Jesse Hall9492f992017-08-28 12:10:06 -07006536@extension("VK_KHR_dedicated_allocation") // 128
6537class VkMemoryDedicatedRequirementsKHR {
6538 VkStructureType sType
6539 void* pNext
6540 VkBool32 prefersDedicatedAllocation
6541 VkBool32 requiresDedicatedAllocation
6542}
6543
6544@extension("VK_KHR_dedicated_allocation") // 128
6545class VkMemoryDedicatedAllocateInfoKHR {
6546 VkStructureType sType
6547 const void* pNext
6548 VkImage image
6549 VkBuffer buffer
6550}
6551
Jesse Hall8c954d32018-01-17 22:06:20 -08006552@extension("VK_EXT_debug_utils") // 129
6553class VkDebugUtilsObjectNameInfoEXT {
6554 VkStructureType sType
6555 const void* pNext
6556 VkObjectType objectType
6557 u64 objectHandle
6558 const char* pObjectName
6559}
Jesse Hall72e6a132018-04-06 13:00:44 -07006560
Jesse Hall8c954d32018-01-17 22:06:20 -08006561@extension("VK_EXT_debug_utils") // 129
6562class VkDebugUtilsObjectTagInfoEXT {
6563 VkStructureType sType
6564 const void* pNext
6565 VkObjectType objectType
6566 u64 objectHandle
6567 u64 tagName
6568 platform.size_t tagSize
6569 const void* pTag
6570}
Jesse Hall72e6a132018-04-06 13:00:44 -07006571
Jesse Hall8c954d32018-01-17 22:06:20 -08006572@extension("VK_EXT_debug_utils") // 129
6573class VkDebugUtilsLabelEXT {
6574 VkStructureType sType
6575 const void* pNext
6576 const char* pLabelName
6577 f32[4] color
6578}
6579
6580@extension("VK_EXT_debug_utils") // 129
6581class VkDebugUtilsMessengerCallbackDataEXT {
6582 VkStructureType sType
6583 const void* pNext
6584 VkDebugUtilsMessengerCallbackDataFlagsEXT flags
6585 const char* pMessageIdName
6586 s32 messageIdNumber
6587 const char* pMessage
6588 u32 queueLabelCount
6589 VkDebugUtilsLabelEXT* pQueueLabels
6590 u32 cmdBufLabelCount
6591 VkDebugUtilsLabelEXT* pCmdBufLabels
6592 u32 objectCount
6593 VkDebugUtilsObjectNameInfoEXT* pObjects
6594}
6595
6596@extension("VK_EXT_debug_utils") // 129
6597class VkDebugUtilsMessengerCreateInfoEXT {
6598 VkStructureType sType
6599 const void* pNext
6600 VkDebugUtilsMessengerCreateFlagsEXT flags
6601 VkDebugUtilsMessageSeverityFlagsEXT messageSeverity
6602 VkDebugUtilsMessageTypeFlagsEXT messageType
6603 PFN_vkDebugUtilsMessengerCallbackEXT pfnUserCallback
6604 void* pUserData
6605}
6606
Jesse Hall36215a92018-01-18 15:04:37 -08006607@extension("VK_ANDROID_external_memory_android_hardware_buffer") // 131
6608class VkAndroidHardwareBufferUsageANDROID {
6609 VkStructureType sType
6610 void* pNext
6611 u64 androidHardwareBufferUsage
6612}
6613
6614@extension("VK_ANDROID_external_memory_android_hardware_buffer") // 130
6615class VkAndroidHardwareBufferPropertiesANDROID {
6616 VkStructureType sType
6617 void* pNext
6618 VkDeviceSize allocationSize
6619 u32 memoryTypeBits
6620}
6621
6622@extension("VK_ANDROID_external_memory_android_hardware_buffer") // 130
6623class VkAndroidHardwareBufferFormatPropertiesANDROID {
6624 VkStructureType sType
6625 void* pNext
6626 VkFormat format
6627 u64 externalFormat
6628 VkFormatFeatureFlags formatFeatures
6629 VkComponentMapping samplerYcbcrConversionComponents
6630 VkSamplerYcbcrModelConversion suggestedYcbcrModel
6631 VkSamplerYcbcrRange suggestedYcbcrRange
6632 VkChromaLocation suggestedXChromaOffset
6633 VkChromaLocation suggestedYChromaOffset
6634}
6635
6636@extension("VK_ANDROID_external_memory_android_hardware_buffer") // 130
6637class VkImportAndroidHardwareBufferInfoANDROID {
6638 VkStructureType sType
6639 const void* pNext
6640 platform.AHardwareBuffer* buffer
6641}
6642
6643@extension("VK_ANDROID_external_memory_android_hardware_buffer") // 130
6644class VkMemoryGetAndroidHardwareBufferInfoANDROID {
6645 VkStructureType sType
6646 const void* pNext
6647 VkDeviceMemory memory
6648}
6649
6650@extension("VK_ANDROID_external_memory_android_hardware_buffer") // 130
6651class VkExternalFormatANDROID {
6652 VkStructureType sType
6653 void* pNext
6654 u64 externalFormat
6655}
6656
Jesse Hall7ba0ac72017-07-07 17:13:23 -07006657@extension("VK_EXT_sampler_filter_minmax") // 131
6658class VkSamplerReductionModeCreateInfoEXT {
6659 VkStructureType sType
6660 const void* pNext
6661 VkSamplerReductionModeEXT reductionMode
6662}
6663
6664@extension("VK_EXT_sampler_filter_minmax") // 131
6665class VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT {
6666 VkStructureType sType
6667 void* pNext
6668 VkBool32 filterMinmaxSingleComponentFormats
6669 VkBool32 filterMinmaxImageComponentMapping
6670}
6671
Jesse Hall4af6c462018-09-10 09:04:25 -07006672@extension("VK_EXT_inline_uniform_block") // 139
6673class VkPhysicalDeviceInlineUniformBlockFeaturesEXT {
6674 VkStructureType sType
6675 void* pNext
6676 VkBool32 inlineUniformBlock
6677 VkBool32 descriptorBindingInlineUniformBlockUpdateAfterBind
6678}
6679
6680@extension("VK_EXT_inline_uniform_block") // 139
6681class VkPhysicalDeviceInlineUniformBlockPropertiesEXT {
6682 VkStructureType sType
6683 void* pNext
6684 u32 maxInlineUniformBlockSize
6685 u32 maxPerStageDescriptorInlineUniformBlocks
6686 u32 maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks
6687 u32 maxDescriptorSetInlineUniformBlocks
6688 u32 maxDescriptorSetUpdateAfterBindInlineUniformBlocks
6689}
6690
6691@extension("VK_EXT_inline_uniform_block") // 139
6692class VkWriteDescriptorSetInlineUniformBlockEXT {
6693 VkStructureType sType
6694 const void* pNext
6695 u32 dataSize
6696 const void* pData
6697}
6698
6699@extension("VK_EXT_inline_uniform_block") // 139
6700class VkDescriptorPoolInlineUniformBlockCreateInfoEXT {
6701 VkStructureType sType
6702 const void* pNext
6703 u32 maxInlineUniformBlockBindings
6704}
6705
Jesse Hall77726222017-09-19 14:49:27 -05006706@extension("VK_EXT_sample_locations") // 144
6707class VkSampleLocationEXT {
6708 f32 x
6709 f32 y
6710}
6711
6712@extension("VK_EXT_sample_locations") // 144
6713class VkSampleLocationsInfoEXT {
6714 VkStructureType sType
6715 const void* pNext
6716 VkSampleCountFlagBits sampleLocationsPerPixel
6717 VkExtent2D sampleLocationGridSize
6718 u32 sampleLocationsCount
6719 const VkSampleLocationEXT* pSampleLocations
6720}
6721
6722@extension("VK_EXT_sample_locations") // 144
6723class VkAttachmentSampleLocationsEXT {
6724 u32 attachmentIndex
6725 VkSampleLocationsInfoEXT sampleLocationsInfo
6726}
6727
6728@extension("VK_EXT_sample_locations") // 144
6729class VkSubpassSampleLocationsEXT {
6730 u32 subpassIndex
6731 VkSampleLocationsInfoEXT sampleLocationsInfo
6732}
6733
6734@extension("VK_EXT_sample_locations") // 144
6735class VkRenderPassSampleLocationsBeginInfoEXT {
6736 VkStructureType sType
6737 const void* pNext
6738 u32 attachmentInitialSampleLocationsCount
6739 const VkAttachmentSampleLocationsEXT* pAttachmentInitialSampleLocations
6740 u32 postSubpassSampleLocationsCount
Jesse Hall8c954d32018-01-17 22:06:20 -08006741 const VkSubpassSampleLocationsEXT* pPostSubpassSampleLocations
Jesse Hall77726222017-09-19 14:49:27 -05006742}
6743
6744@extension("VK_EXT_sample_locations") // 144
6745class VkPipelineSampleLocationsStateCreateInfoEXT {
6746 VkStructureType sType
6747 const void* pNext
6748 VkBool32 sampleLocationsEnable
6749 VkSampleLocationsInfoEXT sampleLocationsInfo
6750}
6751
6752@extension("VK_EXT_sample_locations") // 144
6753class VkPhysicalDeviceSampleLocationsPropertiesEXT {
6754 VkStructureType sType
6755 void* pNext
6756 VkSampleCountFlags sampleLocationSampleCounts
6757 VkExtent2D maxSampleLocationGridSize
6758 f32[2] sampleLocationCoordinateRange
6759 u32 sampleLocationSubPixelBits
6760 VkBool32 variableSampleLocations
6761}
6762
6763@extension("VK_EXT_sample_locations") // 144
6764class VkMultisamplePropertiesEXT {
6765 VkStructureType sType
6766 void* pNext
6767 VkExtent2D maxSampleLocationGridSize
6768}
6769
Jesse Hall9492f992017-08-28 12:10:06 -07006770@extension("VK_KHR_get_memory_requirements2") // 147
6771class VkBufferMemoryRequirementsInfo2KHR {
6772 VkStructureType sType
6773 const void* pNext
6774 VkBuffer buffer
6775}
6776
6777@extension("VK_KHR_get_memory_requirements2") // 147
6778class VkImageMemoryRequirementsInfo2KHR {
6779 VkStructureType sType
6780 const void* pNext
6781 VkImage image
6782}
6783
6784@extension("VK_KHR_get_memory_requirements2") // 147
6785class VkImageSparseMemoryRequirementsInfo2KHR {
6786 VkStructureType sType
6787 const void* pNext
6788 VkImage image
6789}
6790
6791@extension("VK_KHR_get_memory_requirements2") // 147
6792class VkMemoryRequirements2KHR {
6793 VkStructureType sType
6794 void* pNext
6795 VkMemoryRequirements memoryRequirements
6796}
6797
6798@extension("VK_KHR_get_memory_requirements2") // 147
6799class VkSparseImageMemoryRequirements2KHR {
6800 VkStructureType sType
6801 void* pNext
6802 VkSparseImageMemoryRequirements memoryRequirements
6803}
6804
Jesse Hall076f95d2017-09-20 11:34:47 -07006805@extension("VK_KHR_image_format_list") // 148
6806class VkImageFormatListCreateInfoKHR {
6807 VkStructureType sType
6808 const void* pNext
6809 u32 viewFormatCount
6810 const VkFormat* pViewFormats
6811}
6812
Jesse Hall7ba0ac72017-07-07 17:13:23 -07006813@extension("VK_EXT_blend_operation_advanced") // 149
6814class VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT {
6815 VkStructureType sType
6816 void* pNext
6817 VkBool32 advancedBlendCoherentOperations
6818}
6819
6820@extension("VK_EXT_blend_operation_advanced") // 149
6821class VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT {
6822 VkStructureType sType
6823 void* pNext
6824 u32 advancedBlendMaxColorAttachments
6825 VkBool32 advancedBlendIndependentBlend
6826 VkBool32 advancedBlendNonPremultipliedSrcColor
6827 VkBool32 advancedBlendNonPremultipliedDstColor
6828 VkBool32 advancedBlendCorrelatedOverlap
6829 VkBool32 advancedBlendAllOperations
6830}
6831
6832@extension("VK_EXT_blend_operation_advanced") // 149
6833class VkPipelineColorBlendAdvancedStateCreateInfoEXT {
6834 VkStructureType sType
6835 const void* pNext
6836 VkBool32 srcPremultiplied
6837 VkBool32 dstPremultiplied
6838 VkBlendOverlapEXT blendOverlap
6839}
6840
6841@extension("VK_NV_fragment_coverage_to_color") // 150
6842class VkPipelineCoverageToColorStateCreateInfoNV {
6843 VkStructureType sType
6844 const void* pNext
6845 VkPipelineCoverageToColorStateCreateFlagsNV flags
6846 VkBool32 coverageToColorEnable
6847 u32 coverageToColorLocation
6848}
6849
6850@extension("VK_NV_framebuffer_mixed_samples") // 153
6851class VkPipelineCoverageModulationStateCreateInfoNV {
6852 VkStructureType sType
6853 const void* pNext
6854 VkPipelineCoverageModulationStateCreateFlagsNV flags
6855 VkCoverageModulationModeNV coverageModulationMode
6856 VkBool32 coverageModulationTableEnable
6857 u32 coverageModulationTableCount
6858 const f32* pCoverageModulationTable
6859}
6860
Jesse Hall076f95d2017-09-20 11:34:47 -07006861@extension("VK_KHR_sampler_ycbcr_conversion") // 157
6862class VkSamplerYcbcrConversionCreateInfoKHR {
6863 VkStructureType sType
6864 const void* pNext
6865 VkFormat format
6866 VkSamplerYcbcrModelConversionKHR ycbcrModel
6867 VkSamplerYcbcrRangeKHR ycbcrRange
6868 VkComponentMapping components
6869 VkChromaLocationKHR xChromaOffset
6870 VkChromaLocationKHR yChromaOffset
6871 VkFilter chromaFilter
6872 VkBool32 forceExplicitReconstruction
6873}
6874
6875@extension("VK_KHR_sampler_ycbcr_conversion") // 157
6876class VkSamplerYcbcrConversionInfoKHR {
6877 VkStructureType sType
6878 const void* pNext
6879 VkSamplerYcbcrConversionKHR conversion
6880}
6881
6882@extension("VK_KHR_sampler_ycbcr_conversion") // 157
6883class VkBindImagePlaneMemoryInfoKHR {
6884 VkStructureType sType
6885 const void* pNext
6886 VkImageAspectFlagBits planeAspect
6887}
6888
6889@extension("VK_KHR_sampler_ycbcr_conversion") // 157
6890class VkImagePlaneMemoryRequirementsInfoKHR {
6891 VkStructureType sType
6892 const void* pNext
6893 VkImageAspectFlagBits planeAspect
6894}
6895
6896@extension("VK_KHR_sampler_ycbcr_conversion") // 157
6897class VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR {
6898 VkStructureType sType
6899 void* pNext
6900 VkBool32 samplerYcbcrConversion
6901}
6902
6903@extension("VK_KHR_sampler_ycbcr_conversion") // 157
6904class VkSamplerYcbcrConversionImageFormatPropertiesKHR {
6905 VkStructureType sType
6906 void* pNext
6907 u32 combinedImageSamplerDescriptorCount
6908}
6909
6910@extension("VK_KHR_bind_memory2") // 158
6911class VkBindBufferMemoryInfoKHR {
6912 VkStructureType sType
6913 const void* pNext
6914 VkBuffer buffer
6915 VkDeviceMemory memory
6916 VkDeviceSize memoryOffset
6917}
6918
6919@extension("VK_KHR_bind_memory2") // 158
6920class VkBindImageMemoryInfoKHR {
6921 VkStructureType sType
6922 const void* pNext
6923 VkImage image
6924 VkDeviceMemory memory
6925 VkDeviceSize memoryOffset
6926}
6927
Jesse Hall77726222017-09-19 14:49:27 -05006928@extension("VK_EXT_validation_cache") // 161
6929class VkValidationCacheCreateInfoEXT {
6930 VkStructureType sType
6931 const void* pNext
6932 VkValidationCacheCreateFlagsEXT flags
6933 platform.size_t initialDataSize
6934 const void* pInitialData
6935}
6936
6937@extension("VK_EXT_validation_cache") // 161
6938class VkShaderModuleValidationCacheCreateInfoEXT {
6939 VkStructureType sType
6940 const void* pNext
6941 VkValidationCacheEXT validationCache
6942}
6943
Jesse Hall72e6a132018-04-06 13:00:44 -07006944@extension("VK_EXT_descriptor_indexing") // 162
6945class VkDescriptorSetLayoutBindingFlagsCreateInfoEXT {
6946 VkStructureType sType
6947 const void* pNext
6948 u32 bindingCount
6949 const VkDescriptorBindingFlagsEXT* pBindingFlags
6950}
6951
6952@extension("VK_EXT_descriptor_indexing") // 162
6953class VkPhysicalDeviceDescriptorIndexingFeaturesEXT {
6954 VkStructureType sType
6955 void* pNext
6956 VkBool32 shaderInputAttachmentArrayDynamicIndexing
6957 VkBool32 shaderUniformTexelBufferArrayDynamicIndexing
6958 VkBool32 shaderStorageTexelBufferArrayDynamicIndexing
6959 VkBool32 shaderUniformBufferArrayNonUniformIndexing
6960 VkBool32 shaderSampledImageArrayNonUniformIndexing
6961 VkBool32 shaderStorageBufferArrayNonUniformIndexing
6962 VkBool32 shaderStorageImageArrayNonUniformIndexing
6963 VkBool32 shaderInputAttachmentArrayNonUniformIndexing
6964 VkBool32 shaderUniformTexelBufferArrayNonUniformIndexing
6965 VkBool32 shaderStorageTexelBufferArrayNonUniformIndexing
6966 VkBool32 descriptorBindingUniformBufferUpdateAfterBind
6967 VkBool32 descriptorBindingSampledImageUpdateAfterBind
6968 VkBool32 descriptorBindingStorageImageUpdateAfterBind
6969 VkBool32 descriptorBindingStorageBufferUpdateAfterBind
6970 VkBool32 descriptorBindingUniformTexelBufferUpdateAfterBind
6971 VkBool32 descriptorBindingStorageTexelBufferUpdateAfterBind
6972 VkBool32 descriptorBindingUpdateUnusedWhilePending
6973 VkBool32 descriptorBindingPartiallyBound
6974 VkBool32 descriptorBindingVariableDescriptorCount
6975 VkBool32 runtimeDescriptorArray
6976}
6977
6978@extension("VK_EXT_descriptor_indexing") // 162
6979class VkPhysicalDeviceDescriptorIndexingPropertiesEXT {
6980 VkStructureType sType
6981 void* pNext
6982 u32 maxUpdateAfterBindDescriptorsInAllPools
6983 VkBool32 shaderUniformBufferArrayNonUniformIndexingNative
6984 VkBool32 shaderSampledImageArrayNonUniformIndexingNative
6985 VkBool32 shaderStorageBufferArrayNonUniformIndexingNative
6986 VkBool32 shaderStorageImageArrayNonUniformIndexingNative
6987 VkBool32 shaderInputAttachmentArrayNonUniformIndexingNative
6988 VkBool32 robustBufferAccessUpdateAfterBind
6989 VkBool32 quadDivergentImplicitLod
6990 u32 maxPerStageDescriptorUpdateAfterBindSamplers
6991 u32 maxPerStageDescriptorUpdateAfterBindUniformBuffers
6992 u32 maxPerStageDescriptorUpdateAfterBindStorageBuffers
6993 u32 maxPerStageDescriptorUpdateAfterBindSampledImages
6994 u32 maxPerStageDescriptorUpdateAfterBindStorageImages
6995 u32 maxPerStageDescriptorUpdateAfterBindInputAttachments
6996 u32 maxPerStageUpdateAfterBindResources
6997 u32 maxDescriptorSetUpdateAfterBindSamplers
6998 u32 maxDescriptorSetUpdateAfterBindUniformBuffers
6999 u32 maxDescriptorSetUpdateAfterBindUniformBuffersDynamic
7000 u32 maxDescriptorSetUpdateAfterBindStorageBuffers
7001 u32 maxDescriptorSetUpdateAfterBindStorageBuffersDynamic
7002 u32 maxDescriptorSetUpdateAfterBindSampledImages
7003 u32 maxDescriptorSetUpdateAfterBindStorageImages
7004 u32 maxDescriptorSetUpdateAfterBindInputAttachments
7005}
7006
7007@extension("VK_EXT_descriptor_indexing") // 162
7008class VkDescriptorSetVariableDescriptorCountAllocateInfoEXT {
7009 VkStructureType sType
7010 const void* pNext
7011 u32 descriptorSetCount
7012 const u32* pDescriptorCounts
7013}
7014
7015@extension("VK_EXT_descriptor_indexing") // 162
7016class VkDescriptorSetVariableDescriptorCountLayoutSupportEXT {
7017 VkStructureType sType
7018 void* pNext
7019 u32 maxVariableDescriptorCount
7020}
7021
Jesse Hallb5297192018-09-22 20:52:13 +02007022@extension("VK_NV_shading_rate_image") // 165
7023class VkShadingRatePaletteNV {
7024 u32 shadingRatePaletteEntryCount
7025 const VkShadingRatePaletteEntryNV* pShadingRatePaletteEntries
7026}
7027
7028@extension("VK_NV_shading_rate_image") // 165
7029class VkPipelineViewportShadingRateImageStateCreateInfoNV {
7030 VkStructureType sType
7031 const void* pNext
7032 VkBool32 shadingRateImageEnable
7033 u32 viewportCount
7034 const VkShadingRatePaletteNV* pShadingRatePalettes
7035}
7036
7037@extension("VK_NV_shading_rate_image") // 165
7038class VkPhysicalDeviceShadingRateImageFeaturesNV {
7039 VkStructureType sType
7040 void* pNext
7041 VkBool32 shadingRateImage
7042 VkBool32 shadingRateCoarseSampleOrder
7043}
7044
7045@extension("VK_NV_shading_rate_image") // 165
7046class VkPhysicalDeviceShadingRateImagePropertiesNV {
7047 VkStructureType sType
7048 void* pNext
7049 VkExtent2D shadingRateTexelSize
7050 u32 shadingRatePaletteSize
7051 u32 shadingRateMaxCoarseSamples
7052}
7053
7054@extension("VK_NV_shading_rate_image") // 165
7055class VkCoarseSampleLocationNV {
7056 u32 pixelX
7057 u32 pixelY
7058 u32 sample
7059}
7060
7061@extension("VK_NV_shading_rate_image") // 165
7062class VkCoarseSampleOrderCustomNV {
7063 VkShadingRatePaletteEntryNV shadingRate
7064 u32 sampleCount
7065 u32 sampleLocationCount
7066 const VkCoarseSampleLocationNV* pSampleLocations
7067}
7068
7069@extension("VK_NV_shading_rate_image") // 165
7070class VkPipelineViewportCoarseSampleOrderStateCreateInfoNV {
7071 VkStructureType sType
7072 const void* pNext
7073 VkCoarseSampleOrderTypeNV sampleOrderType
7074 u32 customSampleOrderCount
7075 const VkCoarseSampleOrderCustomNV* pCustomSampleOrders
7076}
7077
7078@extension("VK_NVX_raytracing") // 166
7079class VkRaytracingPipelineCreateInfoNVX {
7080 VkStructureType sType
7081 const void* pNext
7082 VkPipelineCreateFlags flags
7083 u32 stageCount
7084 const VkPipelineShaderStageCreateInfo* pStages
7085 const u32* pGroupNumbers
7086 u32 maxRecursionDepth
7087 VkPipelineLayout layout
7088 VkPipeline basePipelineHandle
7089 s32 basePipelineIndex
7090}
7091
7092@extension("VK_NVX_raytracing") // 166
7093class VkGeometryTrianglesNVX {
7094 VkStructureType sType
7095 const void* pNext
7096 VkBuffer vertexData
7097 VkDeviceSize vertexOffset
7098 u32 vertexCount
7099 VkDeviceSize vertexStride
7100 VkFormat vertexFormat
7101 VkBuffer indexData
7102 VkDeviceSize indexOffset
7103 u32 indexCount
7104 VkIndexType indexType
7105 VkBuffer transformData
7106 VkDeviceSize transformOffset
7107}
7108
7109@extension("VK_NVX_raytracing") // 166
7110class VkGeometryAABBNVX {
7111 VkStructureType sType
7112 const void* pNext
7113 VkBuffer aabbData
7114 u32 numAABBs
7115 u32 stride
7116 VkDeviceSize offset
7117}
7118
7119@extension("VK_NVX_raytracing") // 166
7120class VkGeometryDataNVX {
7121 VkGeometryTrianglesNVX triangles
7122 VkGeometryAABBNVX aabbs
7123}
7124
7125@extension("VK_NVX_raytracing") // 166
7126class VkGeometryNVX {
7127 VkStructureType sType
7128 const void* pNext
7129 VkGeometryTypeNVX geometryType
7130 VkGeometryDataNVX geometry
7131 VkGeometryFlagsNVX flags
7132}
7133
7134@extension("VK_NVX_raytracing") // 166
7135class VkAccelerationStructureCreateInfoNVX {
7136 VkStructureType sType
7137 const void* pNext
7138 VkAccelerationStructureTypeNVX type
7139 VkBuildAccelerationStructureFlagsNVX flags
7140 VkDeviceSize compactedSize
7141 u32 instanceCount
7142 u32 geometryCount
7143 const VkGeometryNVX* pGeometries
7144}
7145
7146@extension("VK_NVX_raytracing") // 166
7147class VkBindAccelerationStructureMemoryInfoNVX {
7148 VkStructureType sType
7149 const void* pNext
7150 VkAccelerationStructureNVX accelerationStructure
7151 VkDeviceMemory memory
7152 VkDeviceSize memoryOffset
7153 u32 deviceIndexCount
7154 const u32* pDeviceIndices
7155}
7156
7157@extension("VK_NVX_raytracing") // 166
7158class VkDescriptorAccelerationStructureInfoNVX {
7159 VkStructureType sType
7160 const void* pNext
7161 u32 accelerationStructureCount
7162 const VkAccelerationStructureNVX* pAccelerationStructures
7163}
7164
7165@extension("VK_NVX_raytracing") // 166
7166class VkAccelerationStructureMemoryRequirementsInfoNVX {
7167 VkStructureType sType
7168 const void* pNext
7169 VkAccelerationStructureNVX accelerationStructure
7170}
7171
7172@extension("VK_NVX_raytracing") // 166
7173class VkPhysicalDeviceRaytracingPropertiesNVX {
7174 VkStructureType sType
7175 void* pNext
7176 u32 shaderHeaderSize
7177 u32 maxRecursionDepth
7178 u32 maxGeometryCount
7179}
7180
7181@extension("VK_NV_representative_fragment_test") // 167
7182class VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV {
7183 VkStructureType sType
7184 void* pNext
7185 VkBool32 representativeFragmentTest
7186}
7187
7188@extension("VK_NV_representative_fragment_test") // 167
7189class VkPipelineRepresentativeFragmentTestStateCreateInfoNV {
7190 VkStructureType sType
7191 const void* pNext
7192 VkBool32 representativeFragmentTestEnable
7193}
7194
Daniel Koch09f7bf92017-10-05 00:26:58 -04007195@extension("VK_KHR_maintenance3") // 169
7196class VkPhysicalDeviceMaintenance3PropertiesKHR {
7197 VkStructureType sType
7198 void* pNext
7199 u32 maxPerSetDescriptors
7200 VkDeviceSize maxMemoryAllocationSize
7201}
7202
7203@extension("VK_KHR_maintenance3") // 169
7204class VkDescriptorSetLayoutSupportKHR {
7205 VkStructureType sType
7206 void* pNext
7207 VkBool32 supported
7208}
7209
Jesse Hall8c954d32018-01-17 22:06:20 -08007210@extension("VK_EXT_global_priority") // 175
7211class VkDeviceQueueGlobalPriorityCreateInfoEXT {
7212 VkStructureType sType
7213 const void* pNext
7214 VkQueueGlobalPriorityEXT globalPriority
7215}
7216
Jesse Halla13a3cf2018-07-09 15:51:52 -07007217@extension("VK_KHR_8bit_storage") // 178
7218class VkPhysicalDevice8BitStorageFeaturesKHR {
7219 VkStructureType sType
7220 void* pNext
7221 VkBool32 storageBuffer8BitAccess
7222 VkBool32 uniformAndStorageBuffer8BitAccess
7223 VkBool32 storagePushConstant8
7224}
7225
Jesse Hall8c954d32018-01-17 22:06:20 -08007226@extension("VK_EXT_external_memory_host") // 179
7227class VkImportMemoryHostPointerInfoEXT {
7228 VkStructureType sType
7229 const void* pNext
7230 VkExternalMemoryHandleTypeFlagBits handleType
7231 void* pHostPointer
7232}
7233
7234@extension("VK_EXT_external_memory_host") // 179
7235class VkMemoryHostPointerPropertiesEXT {
7236 VkStructureType sType
7237 void* pNext
7238 u32 memoryTypeBits
7239}
7240
7241@extension("VK_EXT_external_memory_host") // 179
7242class VkPhysicalDeviceExternalMemoryHostPropertiesEXT {
7243 VkStructureType sType
7244 void* pNext
7245 VkDeviceSize minImportedHostPointerAlignment
7246}
7247
Jesse Hall2e6853c2018-10-02 14:05:37 -07007248@extension("VK_KHR_shader_atomic_int64") // 181
7249class VkPhysicalDeviceShaderAtomicInt64FeaturesKHR {
7250 VkStructureType sType
7251 void* pNext
7252 VkBool32 shaderBufferInt64Atomics
7253 VkBool32 shaderSharedInt64Atomics
7254}
7255
Jesse Hall72e6a132018-04-06 13:00:44 -07007256@extension("VK_AMD_shader_core_properties") // 186
7257class VkPhysicalDeviceShaderCorePropertiesAMD {
7258 VkStructureType sType
7259 void* pNext
7260 u32 shaderEngineCount
7261 u32 shaderArraysPerEngineCount
7262 u32 computeUnitsPerShaderArray
7263 u32 simdPerComputeUnit
7264 u32 wavefrontsPerSimd
7265 u32 wavefrontSize
7266 u32 sgprsPerSimd
7267 u32 minSgprAllocation
7268 u32 maxSgprAllocation
7269 u32 sgprAllocationGranularity
7270 u32 vgprsPerSimd
7271 u32 minVgprAllocation
7272 u32 maxVgprAllocation
7273 u32 vgprAllocationGranularity
7274}
7275
7276@extension("VK_EXT_vertex_attribute_divisor") // 191
7277class VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT {
7278 VkStructureType sType
7279 void* pNext
7280 u32 maxVertexAttribDivisor
7281}
7282
7283@extension("VK_EXT_vertex_attribute_divisor") // 191
7284class VkVertexInputBindingDivisorDescriptionEXT {
7285 u32 binding
7286 u32 divisor
7287}
7288
7289@extension("VK_EXT_vertex_attribute_divisor") // 191
7290class VkPipelineVertexInputDivisorStateCreateInfoEXT {
7291 VkStructureType sType
7292 const void* pNext
7293 u32 vertexBindingDivisorCount
7294 const VkVertexInputBindingDivisorDescriptionEXT* pVertexBindingDivisors
7295}
7296
Jesse Hall4af6c462018-09-10 09:04:25 -07007297@extension("VK_EXT_vertex_attribute_divisor") // 191
7298class VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT {
7299 VkStructureType sType
7300 void* pNext
7301 VkBool32 vertexAttributeInstanceRateDivisor
7302 VkBool32 vertexAttributeInstanceRateZeroDivisor
7303}
7304
Jesse Hall2e6853c2018-10-02 14:05:37 -07007305@extension("VK_KHR_driver_properties") // 197
7306class VkConformanceVersionKHR {
7307 u8 major
7308 u8 minor
7309 u8 subminor
7310 u8 patch
7311}
7312
7313@extension("VK_KHR_driver_properties") // 197
7314class VkPhysicalDeviceDriverPropertiesKHR {
7315 VkStructureType sType
7316 void* pNext
7317 u32 driverID
7318 char[VK_MAX_DRIVER_NAME_SIZE_KHR] driverName
7319 char[VK_MAX_DRIVER_INFO_SIZE_KHR] driverInfo
7320 VkConformanceVersionKHR conformanceVersion
7321}
7322
Jesse Hallb5297192018-09-22 20:52:13 +02007323@extension("VK_NV_compute_shader_derivatives") // 202
7324class VkPhysicalDeviceComputeShaderDerivativesFeaturesNV {
7325 VkStructureType sType
7326 void* pNext
7327 VkBool32 computeDerivativeGroupQuads
7328 VkBool32 computeDerivativeGroupLinear
7329}
7330
7331@extension("VK_NV_mesh_shader") // 203
7332class VkPhysicalDeviceMeshShaderFeaturesNV {
7333 VkStructureType sType
7334 void* pNext
7335 VkBool32 taskShader
7336 VkBool32 meshShader
7337}
7338
7339@extension("VK_NV_mesh_shader") // 203
7340class VkPhysicalDeviceMeshShaderPropertiesNV {
7341 VkStructureType sType
7342 void* pNext
7343 u32 maxDrawMeshTasksCount
7344 u32 maxTaskWorkGroupInvocations
7345 u32[3] maxTaskWorkGroupSize
7346 u32 maxTaskTotalMemorySize
7347 u32 maxTaskOutputCount
7348 u32 maxMeshWorkGroupInvocations
7349 u32[3] maxMeshWorkGroupSize
7350 u32 maxMeshTotalMemorySize
7351 u32 maxMeshOutputVertices
7352 u32 maxMeshOutputPrimitives
7353 u32 maxMeshMultiviewViewCount
7354 u32 meshOutputPerVertexGranularity
7355 u32 meshOutputPerPrimitiveGranularity
7356}
7357
7358@extension("VK_NV_mesh_shader") // 203
7359class VkDrawMeshTasksIndirectCommandNV {
7360 u32 taskCount
7361 u32 firstTask
7362}
7363
7364@extension("VK_NV_fragment_shader_barycentric") // 204
7365class VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV {
7366 VkStructureType sType
7367 void* pNext
7368 VkBool32 fragmentShaderBarycentric
7369}
7370
7371@extension("VK_NV_shader_image_footprint") // 205
7372class VkPhysicalDeviceShaderImageFootprintFeaturesNV {
7373 VkStructureType sType
7374 void* pNext
7375 VkBool32 imageFootprint
7376}
7377
7378@extension("VK_NV_scissor_exclusive") // 206
7379class VkPipelineViewportExclusiveScissorStateCreateInfoNV {
7380 VkStructureType sType
7381 const void* pNext
7382 u32 exclusiveScissorCount
7383 const VkRect2D* pExclusiveScissors
7384}
7385
7386@extension("VK_NV_scissor_exclusive") // 206
7387class VkPhysicalDeviceExclusiveScissorFeaturesNV {
7388 VkStructureType sType
7389 void* pNext
7390 VkBool32 exclusiveScissor
7391}
7392
Jesse Hall115df0c2018-07-30 12:00:59 -07007393@extension("VK_NV_device_diagnostic_checkpoints") // 207
7394class VkQueueFamilyCheckpointPropertiesNV {
7395 VkStructureType sType
7396 void* pNext
7397 VkPipelineStageFlags checkpointExecutionStageMask
7398}
7399
7400@extension("VK_NV_device_diagnostic_checkpoints") // 207
7401class VkCheckpointDataNV {
7402 VkStructureType sType
7403 void* pNext
7404 VkPipelineStageFlagBits stage
7405 void* pCheckpointMarker
7406}
7407
Jesse Hall4af6c462018-09-10 09:04:25 -07007408@extension("VK_KHR_vulkan_memory_model") // 212
7409class VkPhysicalDeviceVulkanMemoryModelFeaturesKHR {
7410 VkStructureType sType
7411 void* pNext
7412 VkBool32 vulkanMemoryModel
7413 VkBool32 vulkanMemoryModelDeviceScope
7414}
7415
Daniel Koch09f7bf92017-10-05 00:26:58 -04007416
Jesse Halld27f6aa2015-08-15 17:58:48 -07007417////////////////
7418// Commands //
7419////////////////
7420
7421// Function pointers. TODO: add support for function pointers.
7422
7423@external type void* PFN_vkVoidFunction
7424@pfn cmd void vkVoidFunction() {
7425}
7426
Jesse Hall3fbc8562015-11-29 22:10:52 -08007427@external type void* PFN_vkAllocationFunction
7428@pfn cmd void* vkAllocationFunction(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007429 void* pUserData,
7430 platform.size_t size,
7431 platform.size_t alignment,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007432 VkSystemAllocationScope allocationScope) {
Jesse Hall03b6fe12015-11-24 12:44:21 -08007433 return ?
7434}
7435
Jesse Hall3fbc8562015-11-29 22:10:52 -08007436@external type void* PFN_vkReallocationFunction
7437@pfn cmd void* vkReallocationFunction(
Jesse Hall03b6fe12015-11-24 12:44:21 -08007438 void* pUserData,
7439 void* pOriginal,
7440 platform.size_t size,
7441 platform.size_t alignment,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007442 VkSystemAllocationScope allocationScope) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007443 return ?
7444}
7445
7446@external type void* PFN_vkFreeFunction
7447@pfn cmd void vkFreeFunction(
7448 void* pUserData,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007449 void* pMemory) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007450}
7451
Jesse Hall3fbc8562015-11-29 22:10:52 -08007452@external type void* PFN_vkInternalAllocationNotification
7453@pfn cmd void vkInternalAllocationNotification(
Jesse Hall03b6fe12015-11-24 12:44:21 -08007454 void* pUserData,
7455 platform.size_t size,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007456 VkInternalAllocationType allocationType,
7457 VkSystemAllocationScope allocationScope) {
Jesse Hall03b6fe12015-11-24 12:44:21 -08007458}
7459
7460@external type void* PFN_vkInternalFreeNotification
7461@pfn cmd void vkInternalFreeNotification(
7462 void* pUserData,
7463 platform.size_t size,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007464 VkInternalAllocationType allocationType,
7465 VkSystemAllocationScope allocationScope) {
Jesse Hall03b6fe12015-11-24 12:44:21 -08007466}
Jesse Halld27f6aa2015-08-15 17:58:48 -07007467
7468// Global functions
7469
7470@threadSafety("system")
7471cmd VkResult vkCreateInstance(
7472 const VkInstanceCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007473 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007474 VkInstance* pInstance) {
7475 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO)
7476
7477 instance := ?
7478 pInstance[0] = instance
7479 State.Instances[instance] = new!InstanceObject()
7480
Jesse Hall3dd678a2016-01-08 21:52:01 -08007481 layers := pCreateInfo.ppEnabledLayerNames[0:pCreateInfo.enabledLayerCount]
7482 extensions := pCreateInfo.ppEnabledExtensionNames[0:pCreateInfo.enabledExtensionCount]
Jesse Halld27f6aa2015-08-15 17:58:48 -07007483
7484 return ?
7485}
7486
7487@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007488cmd void vkDestroyInstance(
Jesse Hall03b6fe12015-11-24 12:44:21 -08007489 VkInstance instance,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007490 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007491 instanceObject := GetInstance(instance)
7492
7493 State.Instances[instance] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07007494}
7495
7496@threadSafety("system")
7497cmd VkResult vkEnumeratePhysicalDevices(
7498 VkInstance instance,
7499 u32* pPhysicalDeviceCount,
7500 VkPhysicalDevice* pPhysicalDevices) {
7501 instanceObject := GetInstance(instance)
7502
7503 physicalDeviceCount := as!u32(?)
7504 pPhysicalDeviceCount[0] = physicalDeviceCount
7505 physicalDevices := pPhysicalDevices[0:physicalDeviceCount]
7506
7507 for i in (0 .. physicalDeviceCount) {
7508 physicalDevice := ?
7509 physicalDevices[i] = physicalDevice
7510 if !(physicalDevice in State.PhysicalDevices) {
7511 State.PhysicalDevices[physicalDevice] = new!PhysicalDeviceObject(instance: instance)
7512 }
7513 }
7514
7515 return ?
7516}
7517
7518cmd PFN_vkVoidFunction vkGetDeviceProcAddr(
7519 VkDevice device,
7520 const char* pName) {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007521 if device != NULL_HANDLE {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007522 device := GetDevice(device)
7523 }
7524
7525 return ?
7526}
7527
7528cmd PFN_vkVoidFunction vkGetInstanceProcAddr(
7529 VkInstance instance,
7530 const char* pName) {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007531 if instance != NULL_HANDLE {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007532 instanceObject := GetInstance(instance)
7533 }
7534
7535 return ?
7536}
7537
Jesse Hall606a54e2015-11-19 22:17:28 -08007538cmd void vkGetPhysicalDeviceProperties(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007539 VkPhysicalDevice physicalDevice,
7540 VkPhysicalDeviceProperties* pProperties) {
7541 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
7542
7543 properties := ?
7544 pProperties[0] = properties
Jesse Halld27f6aa2015-08-15 17:58:48 -07007545}
7546
Jesse Hall606a54e2015-11-19 22:17:28 -08007547cmd void vkGetPhysicalDeviceQueueFamilyProperties(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007548 VkPhysicalDevice physicalDevice,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007549 u32* pQueueFamilyPropertyCount,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007550 VkQueueFamilyProperties* pQueueFamilyProperties) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007551 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007552 // TODO: Figure out how to express fetch-count-or-properties
7553 // This version fails 'apic validate' with 'fence not allowed in
7554 // *semantic.Branch'. Other attempts have failed with the same or other
7555 // errors.
7556 // if pQueueFamilyProperties != null {
7557 // queuesProperties := pQueueFamilyProperties[0:pCount[0]]
7558 // for i in (0 .. pCount[0]) {
7559 // queueProperties := as!VkQueueFamilyProperties(?)
7560 // queuesProperties[i] = queueProperties
7561 // }
7562 // } else {
7563 // count := ?
7564 // pCount[0] = count
7565 // }
Jesse Halld27f6aa2015-08-15 17:58:48 -07007566}
7567
Jesse Hall606a54e2015-11-19 22:17:28 -08007568cmd void vkGetPhysicalDeviceMemoryProperties(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007569 VkPhysicalDevice physicalDevice,
7570 VkPhysicalDeviceMemoryProperties* pMemoryProperties) {
7571 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
7572
7573 memoryProperties := ?
7574 pMemoryProperties[0] = memoryProperties
Jesse Halld27f6aa2015-08-15 17:58:48 -07007575}
7576
Jesse Hall606a54e2015-11-19 22:17:28 -08007577cmd void vkGetPhysicalDeviceFeatures(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007578 VkPhysicalDevice physicalDevice,
7579 VkPhysicalDeviceFeatures* pFeatures) {
7580 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
7581
7582 features := ?
7583 pFeatures[0] = features
Jesse Halld27f6aa2015-08-15 17:58:48 -07007584}
7585
Jesse Hall606a54e2015-11-19 22:17:28 -08007586cmd void vkGetPhysicalDeviceFormatProperties(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007587 VkPhysicalDevice physicalDevice,
7588 VkFormat format,
7589 VkFormatProperties* pFormatProperties) {
7590 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
7591
7592 formatProperties := ?
7593 pFormatProperties[0] = formatProperties
Jesse Halld27f6aa2015-08-15 17:58:48 -07007594}
7595
Jesse Halla9e57032015-11-30 01:03:10 -08007596cmd VkResult vkGetPhysicalDeviceImageFormatProperties(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007597 VkPhysicalDevice physicalDevice,
7598 VkFormat format,
7599 VkImageType type,
7600 VkImageTiling tiling,
7601 VkImageUsageFlags usage,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007602 VkImageCreateFlags flags,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007603 VkImageFormatProperties* pImageFormatProperties) {
7604 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
7605
7606 imageFormatProperties := ?
7607 pImageFormatProperties[0] = imageFormatProperties
Jesse Halla9e57032015-11-30 01:03:10 -08007608
7609 return ?
Jesse Halld27f6aa2015-08-15 17:58:48 -07007610}
7611
Jesse Halld27f6aa2015-08-15 17:58:48 -07007612
7613// Device functions
7614
7615@threadSafety("system")
7616cmd VkResult vkCreateDevice(
7617 VkPhysicalDevice physicalDevice,
7618 const VkDeviceCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007619 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007620 VkDevice* pDevice) {
7621 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO)
7622 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
7623
7624 device := ?
7625 pDevice[0] = device
7626 State.Devices[device] = new!DeviceObject(physicalDevice: physicalDevice)
7627
7628 return ?
7629}
7630
7631@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007632cmd void vkDestroyDevice(
Jesse Hall03b6fe12015-11-24 12:44:21 -08007633 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007634 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007635 deviceObject := GetDevice(device)
7636
7637 State.Devices[device] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07007638}
7639
7640
7641// Extension discovery functions
7642
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007643cmd VkResult vkEnumerateInstanceLayerProperties(
Jesse Hall03b6fe12015-11-24 12:44:21 -08007644 u32* pPropertyCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007645 VkLayerProperties* pProperties) {
7646 count := as!u32(?)
Jesse Hall03b6fe12015-11-24 12:44:21 -08007647 pPropertyCount[0] = count
Jesse Halld27f6aa2015-08-15 17:58:48 -07007648
7649 properties := pProperties[0:count]
7650 for i in (0 .. count) {
7651 property := ?
7652 properties[i] = property
7653 }
7654
7655 return ?
7656}
7657
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007658cmd VkResult vkEnumerateInstanceExtensionProperties(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007659 const char* pLayerName,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007660 u32* pPropertyCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007661 VkExtensionProperties* pProperties) {
7662 count := as!u32(?)
Jesse Hall03b6fe12015-11-24 12:44:21 -08007663 pPropertyCount[0] = count
Jesse Halld27f6aa2015-08-15 17:58:48 -07007664
7665 properties := pProperties[0:count]
7666 for i in (0 .. count) {
7667 property := ?
7668 properties[i] = property
7669 }
7670
7671 return ?
7672}
7673
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007674cmd VkResult vkEnumerateDeviceLayerProperties(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007675 VkPhysicalDevice physicalDevice,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007676 u32* pPropertyCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007677 VkLayerProperties* pProperties) {
7678 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
7679 count := as!u32(?)
Jesse Hall03b6fe12015-11-24 12:44:21 -08007680 pPropertyCount[0] = count
Jesse Halld27f6aa2015-08-15 17:58:48 -07007681
7682 properties := pProperties[0:count]
7683 for i in (0 .. count) {
7684 property := ?
7685 properties[i] = property
7686 }
7687
7688 return ?
7689}
7690
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007691cmd VkResult vkEnumerateDeviceExtensionProperties(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007692 VkPhysicalDevice physicalDevice,
7693 const char* pLayerName,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007694 u32* pPropertyCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007695 VkExtensionProperties* pProperties) {
7696 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
7697
7698 count := as!u32(?)
Jesse Hall03b6fe12015-11-24 12:44:21 -08007699 pPropertyCount[0] = count
Jesse Halld27f6aa2015-08-15 17:58:48 -07007700
7701 properties := pProperties[0:count]
7702 for i in (0 .. count) {
7703 property := ?
7704 properties[i] = property
7705 }
7706
7707 return ?
7708}
7709
7710
7711// Queue functions
7712
7713@threadSafety("system")
Jesse Hall606a54e2015-11-19 22:17:28 -08007714cmd void vkGetDeviceQueue(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007715 VkDevice device,
7716 u32 queueFamilyIndex,
7717 u32 queueIndex,
7718 VkQueue* pQueue) {
7719 deviceObject := GetDevice(device)
7720
7721 queue := ?
7722 pQueue[0] = queue
7723
7724 if !(queue in State.Queues) {
7725 State.Queues[queue] = new!QueueObject(device: device)
7726 }
Jesse Halld27f6aa2015-08-15 17:58:48 -07007727}
7728
7729@threadSafety("app")
7730cmd VkResult vkQueueSubmit(
7731 VkQueue queue,
Jesse Halla366a512015-11-19 22:30:07 -08007732 u32 submitCount,
Jesse Hallb00daad2015-11-29 19:46:20 -08007733 const VkSubmitInfo* pSubmits,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007734 VkFence fence) {
7735 queueObject := GetQueue(queue)
7736
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007737 if fence != NULL_HANDLE {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007738 fenceObject := GetFence(fence)
7739 assert(fenceObject.device == queueObject.device)
7740 }
7741
Jesse Hall3fbc8562015-11-29 22:10:52 -08007742 // commandBuffers := pcommandBuffers[0:commandBufferCount]
7743 // for i in (0 .. commandBufferCount) {
7744 // commandBuffer := commandBuffers[i]
7745 // commandBufferObject := GetCommandBuffer(commandBuffer)
7746 // assert(commandBufferObject.device == queueObject.device)
Jesse Halla366a512015-11-19 22:30:07 -08007747 //
Jesse Hall3fbc8562015-11-29 22:10:52 -08007748 // validate("QueueCheck", commandBufferObject.queueFlags in queueObject.flags,
7749 // "vkQueueSubmit: enqueued commandBuffer requires missing queue capabilities.")
Jesse Halla366a512015-11-19 22:30:07 -08007750 // }
Jesse Halld27f6aa2015-08-15 17:58:48 -07007751
7752 return ?
7753}
7754
7755@threadSafety("system")
7756cmd VkResult vkQueueWaitIdle(
7757 VkQueue queue) {
7758 queueObject := GetQueue(queue)
7759
7760 return ?
7761}
7762
7763@threadSafety("system")
7764cmd VkResult vkDeviceWaitIdle(
7765 VkDevice device) {
7766 deviceObject := GetDevice(device)
7767
7768 return ?
7769}
7770
7771
7772// Memory functions
7773
7774@threadSafety("system")
Jesse Hall3fbc8562015-11-29 22:10:52 -08007775cmd VkResult vkAllocateMemory(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007776 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007777 const VkMemoryAllocateInfo* pAllocateInfo,
7778 const VkAllocationCallbacks* pAllocator,
7779 VkDeviceMemory* pMemory) {
Jesse Hallf4ab2b12015-11-30 16:04:55 -08007780 assert(pAllocateInfo.sType == VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007781 deviceObject := GetDevice(device)
7782
Jesse Hall3fbc8562015-11-29 22:10:52 -08007783 memory := ?
7784 pMemory[0] = memory
7785 State.DeviceMemories[memory] = new!DeviceMemoryObject(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007786 device: device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007787 allocationSize: pAllocateInfo[0].allocationSize)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007788
7789 return ?
7790}
7791
7792@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007793cmd void vkFreeMemory(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007794 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007795 VkDeviceMemory memory,
7796 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007797 deviceObject := GetDevice(device)
Jesse Hall3fbc8562015-11-29 22:10:52 -08007798 memoryObject := GetDeviceMemory(memory)
7799 assert(memoryObject.device == device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007800
7801 // Check that no objects are still bound before freeing.
Jesse Hall3fbc8562015-11-29 22:10:52 -08007802 validate("MemoryCheck", len(memoryObject.boundObjects) == 0,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007803 "vkFreeMemory: objects still bound")
Jesse Hall3fbc8562015-11-29 22:10:52 -08007804 validate("MemoryCheck", len(memoryObject.boundCommandBuffers) == 0,
7805 "vkFreeMemory: commandBuffers still bound")
7806 State.DeviceMemories[memory] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07007807}
7808
7809@threadSafety("app")
7810cmd VkResult vkMapMemory(
7811 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007812 VkDeviceMemory memory,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007813 VkDeviceSize offset,
7814 VkDeviceSize size,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007815 VkMemoryMapFlags flags,
7816 void** ppData) {
7817 deviceObject := GetDevice(device)
Jesse Hall3fbc8562015-11-29 22:10:52 -08007818 memoryObject := GetDeviceMemory(memory)
7819 assert(memoryObject.device == device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007820
7821 assert(flags == as!VkMemoryMapFlags(0))
Jesse Hall3fbc8562015-11-29 22:10:52 -08007822 assert((offset + size) <= memoryObject.allocationSize)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007823
7824 return ?
7825}
7826
7827@threadSafety("app")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007828cmd void vkUnmapMemory(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007829 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007830 VkDeviceMemory memory) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007831 deviceObject := GetDevice(device)
Jesse Hall3fbc8562015-11-29 22:10:52 -08007832 memoryObject := GetDeviceMemory(memory)
7833 assert(memoryObject.device == device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007834}
7835
7836cmd VkResult vkFlushMappedMemoryRanges(
7837 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007838 u32 memoryRangeCount
7839 const VkMappedMemoryRange* pMemoryRanges) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007840 deviceObject := GetDevice(device)
7841
Jesse Hall3fbc8562015-11-29 22:10:52 -08007842 memoryRanges := pMemoryRanges[0:memoryRangeCount]
7843 for i in (0 .. memoryRangeCount) {
7844 memoryRange := memoryRanges[i]
7845 memoryObject := GetDeviceMemory(memoryRange.memory)
7846 assert(memoryObject.device == device)
7847 assert((memoryRange.offset + memoryRange.size) <= memoryObject.allocationSize)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007848 }
7849
7850 return ?
7851}
7852
7853cmd VkResult vkInvalidateMappedMemoryRanges(
7854 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007855 u32 memoryRangeCount,
7856 const VkMappedMemoryRange* pMemoryRanges) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007857 deviceObject := GetDevice(device)
7858
Jesse Hall3fbc8562015-11-29 22:10:52 -08007859 memoryRanges := pMemoryRanges[0:memoryRangeCount]
7860 for i in (0 .. memoryRangeCount) {
7861 memoryRange := memoryRanges[i]
7862 memoryObject := GetDeviceMemory(memoryRange.memory)
7863 assert(memoryObject.device == device)
7864 assert((memoryRange.offset + memoryRange.size) <= memoryObject.allocationSize)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007865 }
7866
7867 return ?
7868}
7869
7870
7871// Memory management API functions
7872
Jesse Hall606a54e2015-11-19 22:17:28 -08007873cmd void vkGetDeviceMemoryCommitment(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007874 VkDevice device,
7875 VkDeviceMemory memory,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007876 VkDeviceSize* pCommittedMemoryInBytes) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007877 deviceObject := GetDevice(device)
7878
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007879 if memory != NULL_HANDLE {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007880 memoryObject := GetDeviceMemory(memory)
7881 assert(memoryObject.device == device)
7882 }
7883
7884 committedMemoryInBytes := ?
7885 pCommittedMemoryInBytes[0] = committedMemoryInBytes
Jesse Halld27f6aa2015-08-15 17:58:48 -07007886}
7887
Jesse Hall606a54e2015-11-19 22:17:28 -08007888cmd void vkGetBufferMemoryRequirements(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007889 VkDevice device,
7890 VkBuffer buffer,
7891 VkMemoryRequirements* pMemoryRequirements) {
7892 deviceObject := GetDevice(device)
7893 bufferObject := GetBuffer(buffer)
7894 assert(bufferObject.device == device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007895}
7896
7897cmd VkResult vkBindBufferMemory(
7898 VkDevice device,
7899 VkBuffer buffer,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007900 VkDeviceMemory memory,
7901 VkDeviceSize memoryOffset) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007902 deviceObject := GetDevice(device)
7903 bufferObject := GetBuffer(buffer)
7904 assert(bufferObject.device == device)
7905
7906 // Unbind buffer from previous memory object, if not VK_NULL_HANDLE.
Jesse Hall3fbc8562015-11-29 22:10:52 -08007907 if bufferObject.memory != NULL_HANDLE {
7908 memoryObject := GetDeviceMemory(bufferObject.memory)
7909 memoryObject.boundObjects[as!u64(buffer)] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07007910 }
7911
7912 // Bind buffer to given memory object, if not VK_NULL_HANDLE.
Jesse Hall3fbc8562015-11-29 22:10:52 -08007913 if memory != NULL_HANDLE {
7914 memoryObject := GetDeviceMemory(memory)
7915 assert(memoryObject.device == device)
7916 memoryObject.boundObjects[as!u64(buffer)] = memoryOffset
Jesse Halld27f6aa2015-08-15 17:58:48 -07007917 }
Jesse Hall3fbc8562015-11-29 22:10:52 -08007918 bufferObject.memory = memory
7919 bufferObject.memoryOffset = memoryOffset
Jesse Halld27f6aa2015-08-15 17:58:48 -07007920
7921 return ?
7922}
7923
Jesse Hall606a54e2015-11-19 22:17:28 -08007924cmd void vkGetImageMemoryRequirements(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007925 VkDevice device,
7926 VkImage image,
7927 VkMemoryRequirements* pMemoryRequirements) {
7928 deviceObject := GetDevice(device)
7929 imageObject := GetImage(image)
7930 assert(imageObject.device == device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007931}
7932
7933cmd VkResult vkBindImageMemory(
7934 VkDevice device,
7935 VkImage image,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007936 VkDeviceMemory memory,
7937 VkDeviceSize memoryOffset) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007938 deviceObject := GetDevice(device)
7939 imageObject := GetImage(image)
7940 assert(imageObject.device == device)
7941
7942 // Unbind image from previous memory object, if not VK_NULL_HANDLE.
Jesse Hall3fbc8562015-11-29 22:10:52 -08007943 if imageObject.memory != NULL_HANDLE {
7944 memoryObject := GetDeviceMemory(imageObject.memory)
7945 memoryObject.boundObjects[as!u64(image)] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07007946 }
7947
7948 // Bind image to given memory object, if not VK_NULL_HANDLE.
Jesse Hall3fbc8562015-11-29 22:10:52 -08007949 if memory != NULL_HANDLE {
7950 memoryObject := GetDeviceMemory(memory)
7951 assert(memoryObject.device == device)
7952 memoryObject.boundObjects[as!u64(image)] = memoryOffset
Jesse Halld27f6aa2015-08-15 17:58:48 -07007953 }
Jesse Hall3fbc8562015-11-29 22:10:52 -08007954 imageObject.memory = memory
7955 imageObject.memoryOffset = memoryOffset
Jesse Halld27f6aa2015-08-15 17:58:48 -07007956
7957 return ?
7958}
7959
Jesse Hall606a54e2015-11-19 22:17:28 -08007960cmd void vkGetImageSparseMemoryRequirements(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007961 VkDevice device,
7962 VkImage image,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007963 u32* pSparseMemoryRequirementCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007964 VkSparseImageMemoryRequirements* pSparseMemoryRequirements) {
7965 deviceObject := GetDevice(device)
7966 imageObject := GetImage(image)
7967 assert(imageObject.device == device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007968}
7969
Jesse Hall606a54e2015-11-19 22:17:28 -08007970cmd void vkGetPhysicalDeviceSparseImageFormatProperties(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007971 VkPhysicalDevice physicalDevice,
7972 VkFormat format,
7973 VkImageType type,
Jesse Hall091ed9e2015-11-30 00:55:29 -08007974 VkSampleCountFlagBits samples,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007975 VkImageUsageFlags usage,
7976 VkImageTiling tiling,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007977 u32* pPropertyCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007978 VkSparseImageFormatProperties* pProperties) {
7979 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007980}
7981
Jesse Halla6429252015-11-29 18:59:42 -08007982cmd VkResult vkQueueBindSparse(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007983 VkQueue queue,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007984 u32 bindInfoCount,
Jesse Halla6429252015-11-29 18:59:42 -08007985 const VkBindSparseInfo* pBindInfo,
7986 VkFence fence) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007987 queueObject := GetQueue(queue)
Jesse Halld27f6aa2015-08-15 17:58:48 -07007988
7989 return ?
7990}
7991
7992
7993// Fence functions
7994
7995@threadSafety("system")
7996cmd VkResult vkCreateFence(
7997 VkDevice device,
7998 const VkFenceCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007999 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008000 VkFence* pFence) {
8001 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_FENCE_CREATE_INFO)
8002 deviceObject := GetDevice(device)
8003
8004 fence := ?
8005 pFence[0] = fence
8006 State.Fences[fence] = new!FenceObject(
Jesse Halld8bade02015-11-24 10:24:18 -08008007 device: device, signaled: (pCreateInfo.flags == as!VkFenceCreateFlags(VK_FENCE_CREATE_SIGNALED_BIT)))
Jesse Halld27f6aa2015-08-15 17:58:48 -07008008
8009 return ?
8010}
8011
8012@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008013cmd void vkDestroyFence(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008014 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008015 VkFence fence,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008016 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008017 deviceObject := GetDevice(device)
8018 fenceObject := GetFence(fence)
8019 assert(fenceObject.device == device)
8020
8021 State.Fences[fence] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008022}
8023
8024@threadSafety("system")
8025cmd VkResult vkResetFences(
8026 VkDevice device,
8027 u32 fenceCount,
8028 const VkFence* pFences) {
8029 deviceObject := GetDevice(device)
8030
8031 fences := pFences[0:fenceCount]
8032 for i in (0 .. fenceCount) {
8033 fence := fences[i]
8034 fenceObject := GetFence(fence)
8035 assert(fenceObject.device == device)
8036 fenceObject.signaled = false
8037 }
8038
8039 return ?
8040}
8041
8042@threadSafety("system")
8043cmd VkResult vkGetFenceStatus(
8044 VkDevice device,
8045 VkFence fence) {
8046 deviceObject := GetDevice(device)
8047 fenceObject := GetFence(fence)
8048 assert(fenceObject.device == device)
8049
8050 return ?
8051}
8052
8053@threadSafety("system")
8054cmd VkResult vkWaitForFences(
8055 VkDevice device,
8056 u32 fenceCount,
8057 const VkFence* pFences,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008058 VkBool32 waitAll,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008059 u64 timeout) { /// timeout in nanoseconds
8060 deviceObject := GetDevice(device)
8061
8062 fences := pFences[0:fenceCount]
8063 for i in (0 .. fenceCount) {
8064 fence := fences[i]
8065 fenceObject := GetFence(fence)
8066 assert(fenceObject.device == device)
8067 }
8068
8069 return ?
8070}
8071
8072
8073// Queue semaphore functions
8074
8075@threadSafety("system")
8076cmd VkResult vkCreateSemaphore(
8077 VkDevice device,
8078 const VkSemaphoreCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008079 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008080 VkSemaphore* pSemaphore) {
8081 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO)
8082 deviceObject := GetDevice(device)
8083
8084 semaphore := ?
8085 pSemaphore[0] = semaphore
8086 State.Semaphores[semaphore] = new!SemaphoreObject(device: device)
8087
8088 return ?
8089}
8090
8091@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008092cmd void vkDestroySemaphore(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008093 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008094 VkSemaphore semaphore,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008095 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008096 deviceObject := GetDevice(device)
8097 semaphoreObject := GetSemaphore(semaphore)
8098 assert(semaphoreObject.device == device)
8099
8100 State.Semaphores[semaphore] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008101}
8102
Jesse Halld27f6aa2015-08-15 17:58:48 -07008103
8104// Event functions
8105
8106@threadSafety("system")
8107cmd VkResult vkCreateEvent(
8108 VkDevice device,
8109 const VkEventCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008110 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008111 VkEvent* pEvent) {
8112 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_EVENT_CREATE_INFO)
8113 deviceObject := GetDevice(device)
8114
8115 event := ?
8116 pEvent[0] = event
8117 State.Events[event] = new!EventObject(device: device)
8118
8119 return ?
8120}
8121
8122@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008123cmd void vkDestroyEvent(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008124 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008125 VkEvent event,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008126 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008127 deviceObject := GetDevice(device)
8128 eventObject := GetEvent(event)
8129 assert(eventObject.device == device)
8130
8131 State.Events[event] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008132}
8133
8134@threadSafety("system")
8135cmd VkResult vkGetEventStatus(
8136 VkDevice device,
8137 VkEvent event) {
8138 deviceObject := GetDevice(device)
8139 eventObject := GetEvent(event)
8140 assert(eventObject.device == device)
8141
8142 return ?
8143}
8144
8145@threadSafety("system")
8146cmd VkResult vkSetEvent(
8147 VkDevice device,
8148 VkEvent event) {
8149 deviceObject := GetDevice(device)
8150 eventObject := GetEvent(event)
8151 assert(eventObject.device == device)
8152
8153 return ?
8154}
8155
8156@threadSafety("system")
8157cmd VkResult vkResetEvent(
8158 VkDevice device,
8159 VkEvent event) {
8160 deviceObject := GetDevice(device)
8161 eventObject := GetEvent(event)
8162 assert(eventObject.device == device)
8163
8164 return ?
8165}
8166
8167
8168// Query functions
8169
8170@threadSafety("system")
8171cmd VkResult vkCreateQueryPool(
8172 VkDevice device,
8173 const VkQueryPoolCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008174 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008175 VkQueryPool* pQueryPool) {
8176 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO)
8177 deviceObject := GetDevice(device)
8178
8179 queryPool := ?
8180 pQueryPool[0] = queryPool
8181 State.QueryPools[queryPool] = new!QueryPoolObject(device: device)
8182
8183 return ?
8184}
8185
8186@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008187cmd void vkDestroyQueryPool(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008188 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008189 VkQueryPool queryPool,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008190 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008191 deviceObject := GetDevice(device)
8192 queryPoolObject := GetQueryPool(queryPool)
8193 assert(queryPoolObject.device == device)
8194
8195 State.QueryPools[queryPool] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008196}
8197
8198@threadSafety("system")
8199cmd VkResult vkGetQueryPoolResults(
8200 VkDevice device,
8201 VkQueryPool queryPool,
Jesse Hallf9fa9a52016-01-08 16:08:51 -08008202 u32 firstQuery,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008203 u32 queryCount,
Jesse Halla9bb62b2015-11-21 19:31:56 -08008204 platform.size_t dataSize,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008205 void* pData,
Jesse Halla9bb62b2015-11-21 19:31:56 -08008206 VkDeviceSize stride,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008207 VkQueryResultFlags flags) {
8208 deviceObject := GetDevice(device)
8209 queryPoolObject := GetQueryPool(queryPool)
8210 assert(queryPoolObject.device == device)
8211
Jesse Halld27f6aa2015-08-15 17:58:48 -07008212 data := pData[0:dataSize]
8213
8214 return ?
8215}
8216
8217// Buffer functions
8218
8219@threadSafety("system")
8220cmd VkResult vkCreateBuffer(
8221 VkDevice device,
8222 const VkBufferCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008223 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008224 VkBuffer* pBuffer) {
8225 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO)
8226 deviceObject := GetDevice(device)
8227
8228 buffer := ?
8229 pBuffer[0] = buffer
8230 State.Buffers[buffer] = new!BufferObject(device: device)
8231
8232 return ?
8233}
8234
8235@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008236cmd void vkDestroyBuffer(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008237 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008238 VkBuffer buffer,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008239 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008240 deviceObject := GetDevice(device)
8241 bufferObject := GetBuffer(buffer)
8242 assert(bufferObject.device == device)
8243
Jesse Hall3fbc8562015-11-29 22:10:52 -08008244 assert(bufferObject.memory == 0)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008245 State.Buffers[buffer] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008246}
8247
8248
8249// Buffer view functions
8250
8251@threadSafety("system")
8252cmd VkResult vkCreateBufferView(
8253 VkDevice device,
8254 const VkBufferViewCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008255 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008256 VkBufferView* pView) {
8257 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO)
8258 deviceObject := GetDevice(device)
8259
8260 bufferObject := GetBuffer(pCreateInfo.buffer)
8261 assert(bufferObject.device == device)
8262
8263 view := ?
8264 pView[0] = view
8265 State.BufferViews[view] = new!BufferViewObject(device: device, buffer: pCreateInfo.buffer)
8266
8267 return ?
8268}
8269
8270@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008271cmd void vkDestroyBufferView(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008272 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008273 VkBufferView bufferView,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008274 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008275 deviceObject := GetDevice(device)
8276 bufferViewObject := GetBufferView(bufferView)
8277 assert(bufferViewObject.device == device)
8278
8279 State.BufferViews[bufferView] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008280}
8281
8282
8283// Image functions
8284
8285@threadSafety("system")
8286cmd VkResult vkCreateImage(
8287 VkDevice device,
8288 const VkImageCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008289 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008290 VkImage* pImage) {
8291 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO)
8292 deviceObject := GetDevice(device)
8293
8294 image := ?
8295 pImage[0] = image
8296 State.Images[image] = new!ImageObject(device: device)
8297
8298 return ?
8299}
8300
8301@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008302cmd void vkDestroyImage(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008303 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008304 VkImage image,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008305 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008306 deviceObject := GetDevice(device)
8307 imageObject := GetImage(image)
8308 assert(imageObject.device == device)
8309
Jesse Hall3fbc8562015-11-29 22:10:52 -08008310 assert(imageObject.memory == 0)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008311 State.Images[image] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008312}
8313
Jesse Hall606a54e2015-11-19 22:17:28 -08008314cmd void vkGetImageSubresourceLayout(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008315 VkDevice device,
8316 VkImage image,
8317 const VkImageSubresource* pSubresource,
8318 VkSubresourceLayout* pLayout) {
8319 deviceObject := GetDevice(device)
8320 imageObject := GetImage(image)
8321 assert(imageObject.device == device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008322}
8323
8324
8325// Image view functions
8326
8327@threadSafety("system")
8328cmd VkResult vkCreateImageView(
8329 VkDevice device,
8330 const VkImageViewCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008331 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008332 VkImageView* pView) {
8333 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO)
8334 deviceObject := GetDevice(device)
8335
8336 imageObject := GetImage(pCreateInfo.image)
8337 assert(imageObject.device == device)
8338
8339 view := ?
8340 pView[0] = view
8341 State.ImageViews[view] = new!ImageViewObject(device: device, image: pCreateInfo.image)
8342
8343 return ?
8344}
8345
8346@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008347cmd void vkDestroyImageView(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008348 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008349 VkImageView imageView,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008350 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008351 deviceObject := GetDevice(device)
8352 imageViewObject := GetImageView(imageView)
8353 assert(imageViewObject.device == device)
8354
8355 State.ImageViews[imageView] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008356}
8357
8358
8359// Shader functions
8360
8361cmd VkResult vkCreateShaderModule(
8362 VkDevice device,
8363 const VkShaderModuleCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008364 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008365 VkShaderModule* pShaderModule) {
8366 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO)
8367 deviceObject := GetDevice(device)
8368
8369 shaderModule := ?
8370 pShaderModule[0] = shaderModule
8371 State.ShaderModules[shaderModule] = new!ShaderModuleObject(device: device)
8372
8373 return ?
8374}
8375
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008376cmd void vkDestroyShaderModule(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008377 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008378 VkShaderModule shaderModule,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008379 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008380 deviceObject := GetDevice(device)
8381 shaderModuleObject := GetShaderModule(shaderModule)
8382 assert(shaderModuleObject.device == device)
8383
8384 State.ShaderModules[shaderModule] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008385}
8386
Jesse Halld27f6aa2015-08-15 17:58:48 -07008387
8388// Pipeline functions
8389
8390cmd VkResult vkCreatePipelineCache(
8391 VkDevice device,
8392 const VkPipelineCacheCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008393 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008394 VkPipelineCache* pPipelineCache) {
8395 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO)
8396 deviceObject := GetDevice(device)
8397
8398 pipelineCache := ?
8399 pPipelineCache[0] = pipelineCache
8400 State.PipelineCaches[pipelineCache] = new!PipelineCacheObject(device: device)
8401
8402 return ?
8403}
8404
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008405cmd void vkDestroyPipelineCache(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008406 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008407 VkPipelineCache pipelineCache,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008408 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008409 deviceObject := GetDevice(device)
8410 pipelineCacheObject := GetPipelineCache(pipelineCache)
8411 assert(pipelineCacheObject.device == device)
8412
8413 State.PipelineCaches[pipelineCache] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008414}
8415
Jesse Halld27f6aa2015-08-15 17:58:48 -07008416cmd VkResult vkGetPipelineCacheData(
8417 VkDevice device,
8418 VkPipelineCache pipelineCache,
Jesse Halla9bb62b2015-11-21 19:31:56 -08008419 platform.size_t* pDataSize,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008420 void* pData) {
8421 deviceObject := GetDevice(device)
8422 pipelineCacheObject := GetPipelineCache(pipelineCache)
8423 assert(pipelineCacheObject.device == device)
8424
8425 return ?
8426}
8427
8428cmd VkResult vkMergePipelineCaches(
8429 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008430 VkPipelineCache dstCache,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008431 u32 srcCacheCount,
8432 const VkPipelineCache* pSrcCaches) {
8433 deviceObject := GetDevice(device)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008434 dstCacheObject := GetPipelineCache(dstCache)
8435 assert(dstCacheObject.device == device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008436
8437 srcCaches := pSrcCaches[0:srcCacheCount]
8438 for i in (0 .. srcCacheCount) {
8439 srcCache := srcCaches[i]
8440 srcCacheObject := GetPipelineCache(srcCache)
8441 assert(srcCacheObject.device == device)
8442 }
8443
8444 return ?
8445}
8446
8447cmd VkResult vkCreateGraphicsPipelines(
8448 VkDevice device,
8449 VkPipelineCache pipelineCache,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008450 u32 createInfoCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008451 const VkGraphicsPipelineCreateInfo* pCreateInfos,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008452 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008453 VkPipeline* pPipelines) {
8454 deviceObject := GetDevice(device)
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008455 if pipelineCache != NULL_HANDLE {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008456 pipelineCacheObject := GetPipelineCache(pipelineCache)
8457 assert(pipelineCacheObject.device == device)
8458 }
8459
Jesse Hall03b6fe12015-11-24 12:44:21 -08008460 createInfos := pCreateInfos[0:createInfoCount]
8461 pipelines := pPipelines[0:createInfoCount]
8462 for i in (0 .. createInfoCount) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008463 pipeline := ?
8464 pipelines[i] = pipeline
8465 State.Pipelines[pipeline] = new!PipelineObject(device: device)
8466 }
8467
8468 return ?
8469}
8470
8471cmd VkResult vkCreateComputePipelines(
8472 VkDevice device,
8473 VkPipelineCache pipelineCache,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008474 u32 createInfoCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008475 const VkComputePipelineCreateInfo* pCreateInfos,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008476 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008477 VkPipeline* pPipelines) {
8478 deviceObject := GetDevice(device)
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008479 if pipelineCache != NULL_HANDLE {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008480 pipelineCacheObject := GetPipelineCache(pipelineCache)
8481 assert(pipelineCacheObject.device == device)
8482 }
8483
Jesse Hall03b6fe12015-11-24 12:44:21 -08008484 createInfos := pCreateInfos[0:createInfoCount]
8485 pipelines := pPipelines[0:createInfoCount]
8486 for i in (0 .. createInfoCount) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008487 pipeline := ?
8488 pipelines[i] = pipeline
8489 State.Pipelines[pipeline] = new!PipelineObject(device: device)
8490 }
8491
8492 return ?
8493}
8494
8495@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008496cmd void vkDestroyPipeline(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008497 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008498 VkPipeline pipeline,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008499 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008500 deviceObject := GetDevice(device)
8501 pipelineObjects := GetPipeline(pipeline)
8502 assert(pipelineObjects.device == device)
8503
8504 State.Pipelines[pipeline] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008505}
8506
8507
8508// Pipeline layout functions
8509
8510@threadSafety("system")
8511cmd VkResult vkCreatePipelineLayout(
8512 VkDevice device,
8513 const VkPipelineLayoutCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008514 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008515 VkPipelineLayout* pPipelineLayout) {
8516 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO)
8517 deviceObject := GetDevice(device)
8518
8519 pipelineLayout := ?
8520 pPipelineLayout[0] = pipelineLayout
8521 State.PipelineLayouts[pipelineLayout] = new!PipelineLayoutObject(device: device)
8522
8523 return ?
8524}
8525
8526@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008527cmd void vkDestroyPipelineLayout(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008528 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008529 VkPipelineLayout pipelineLayout,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008530 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008531 deviceObject := GetDevice(device)
8532 pipelineLayoutObjects := GetPipelineLayout(pipelineLayout)
8533 assert(pipelineLayoutObjects.device == device)
8534
8535 State.PipelineLayouts[pipelineLayout] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008536}
8537
8538
8539// Sampler functions
8540
8541@threadSafety("system")
8542cmd VkResult vkCreateSampler(
8543 VkDevice device,
8544 const VkSamplerCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008545 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008546 VkSampler* pSampler) {
8547 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO)
8548 deviceObject := GetDevice(device)
8549
8550 sampler := ?
8551 pSampler[0] = sampler
8552 State.Samplers[sampler] = new!SamplerObject(device: device)
8553
8554 return ?
8555}
8556
8557@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008558cmd void vkDestroySampler(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008559 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008560 VkSampler sampler,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008561 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008562 deviceObject := GetDevice(device)
8563 samplerObject := GetSampler(sampler)
8564 assert(samplerObject.device == device)
8565
8566 State.Samplers[sampler] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008567}
8568
8569
8570// Descriptor set functions
8571
8572@threadSafety("system")
8573cmd VkResult vkCreateDescriptorSetLayout(
8574 VkDevice device,
8575 const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008576 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008577 VkDescriptorSetLayout* pSetLayout) {
8578 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO)
8579 deviceObject := GetDevice(device)
8580
8581 setLayout := ?
8582 pSetLayout[0] = setLayout
8583 State.DescriptorSetLayouts[setLayout] = new!DescriptorSetLayoutObject(device: device)
8584
8585 return ?
8586}
8587
8588@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008589cmd void vkDestroyDescriptorSetLayout(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008590 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008591 VkDescriptorSetLayout descriptorSetLayout,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008592 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008593 deviceObject := GetDevice(device)
8594 descriptorSetLayoutObject := GetDescriptorSetLayout(descriptorSetLayout)
8595 assert(descriptorSetLayoutObject.device == device)
8596
8597 State.DescriptorSetLayouts[descriptorSetLayout] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008598}
8599
8600@threadSafety("system")
8601cmd VkResult vkCreateDescriptorPool(
8602 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008603 const VkDescriptorPoolCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008604 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008605 VkDescriptorPool* pDescriptorPool) {
8606 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO)
8607 deviceObject := GetDevice(device)
8608
8609 descriptorPool := ?
8610 pDescriptorPool[0] = descriptorPool
8611 State.DescriptorPools[descriptorPool] = new!DescriptorPoolObject(device: device)
8612
8613 return ?
8614}
8615
8616@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008617cmd void vkDestroyDescriptorPool(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008618 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008619 VkDescriptorPool descriptorPool,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008620 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008621 deviceObject := GetDevice(device)
8622 descriptorPoolObject := GetDescriptorPool(descriptorPool)
8623 assert(descriptorPoolObject.device == device)
8624
8625 State.DescriptorPools[descriptorPool] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008626}
8627
8628@threadSafety("app")
8629cmd VkResult vkResetDescriptorPool(
8630 VkDevice device,
Jesse Hallfbf97b02015-11-20 14:17:03 -08008631 VkDescriptorPool descriptorPool,
8632 VkDescriptorPoolResetFlags flags) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008633 deviceObject := GetDevice(device)
8634 descriptorPoolObject := GetDescriptorPool(descriptorPool)
8635 assert(descriptorPoolObject.device == device)
8636
8637 return ?
8638}
8639
8640@threadSafety("app")
Jesse Hall3fbc8562015-11-29 22:10:52 -08008641cmd VkResult vkAllocateDescriptorSets(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008642 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008643 const VkDescriptorSetAllocateInfo* pAllocateInfo,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008644 VkDescriptorSet* pDescriptorSets) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008645 deviceObject := GetDevice(device)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008646 allocInfo := pAllocateInfo[0]
Jesse Hallfbf97b02015-11-20 14:17:03 -08008647 descriptorPoolObject := GetDescriptorPool(allocInfo.descriptorPool)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008648
Jesse Hall03b6fe12015-11-24 12:44:21 -08008649 setLayouts := allocInfo.pSetLayouts[0:allocInfo.setCount]
8650 for i in (0 .. allocInfo.setCount) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008651 setLayout := setLayouts[i]
8652 setLayoutObject := GetDescriptorSetLayout(setLayout)
8653 assert(setLayoutObject.device == device)
8654 }
8655
Jesse Hall03b6fe12015-11-24 12:44:21 -08008656 descriptorSets := pDescriptorSets[0:allocInfo.setCount]
8657 for i in (0 .. allocInfo.setCount) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008658 descriptorSet := ?
8659 descriptorSets[i] = descriptorSet
8660 State.DescriptorSets[descriptorSet] = new!DescriptorSetObject(device: device)
8661 }
8662
8663 return ?
8664}
8665
Jesse Hallf09c6b12015-08-15 19:54:28 -07008666cmd VkResult vkFreeDescriptorSets(
8667 VkDevice device,
8668 VkDescriptorPool descriptorPool,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008669 u32 descriptorSetCount,
Jesse Hallf09c6b12015-08-15 19:54:28 -07008670 const VkDescriptorSet* pDescriptorSets) {
8671 deviceObject := GetDevice(device)
8672 descriptorPoolObject := GetDescriptorPool(descriptorPool)
8673
Jesse Hall03b6fe12015-11-24 12:44:21 -08008674 descriptorSets := pDescriptorSets[0:descriptorSetCount]
8675 for i in (0 .. descriptorSetCount) {
Jesse Hallf09c6b12015-08-15 19:54:28 -07008676 descriptorSet := descriptorSets[i]
8677 descriptorSetObject := GetDescriptorSet(descriptorSet)
8678 assert(descriptorSetObject.device == device)
8679 State.DescriptorSets[descriptorSet] = null
8680 }
8681
8682 return ?
8683}
8684
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008685cmd void vkUpdateDescriptorSets(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008686 VkDevice device,
Jesse Hallb00daad2015-11-29 19:46:20 -08008687 u32 descriptorWriteCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008688 const VkWriteDescriptorSet* pDescriptorWrites,
Jesse Hallb00daad2015-11-29 19:46:20 -08008689 u32 descriptorCopyCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008690 const VkCopyDescriptorSet* pDescriptorCopies) {
8691 deviceObject := GetDevice(device)
8692
Jesse Hallb00daad2015-11-29 19:46:20 -08008693 descriptorWrites := pDescriptorWrites[0:descriptorWriteCount]
8694 for i in (0 .. descriptorWriteCount) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008695 descriptorWrite := descriptorWrites[i]
Jesse Hall3fbc8562015-11-29 22:10:52 -08008696 descriptorWriteObject := GetDescriptorSet(descriptorWrite.dstSet)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008697 assert(descriptorWriteObject.device == device)
8698 }
8699
Jesse Hallb00daad2015-11-29 19:46:20 -08008700 descriptorCopies := pDescriptorCopies[0:descriptorCopyCount]
8701 for i in (0 .. descriptorCopyCount) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008702 descriptorCopy := descriptorCopies[i]
Jesse Hall3fbc8562015-11-29 22:10:52 -08008703 descriptorCopyObject := GetDescriptorSet(descriptorCopy.dstSet)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008704 assert(descriptorCopyObject.device == device)
8705 }
Jesse Halld27f6aa2015-08-15 17:58:48 -07008706}
8707
8708
8709// Framebuffer functions
8710
8711@threadSafety("system")
8712cmd VkResult vkCreateFramebuffer(
8713 VkDevice device,
8714 const VkFramebufferCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008715 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008716 VkFramebuffer* pFramebuffer) {
8717 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO)
8718 deviceObject := GetDevice(device)
8719
8720 framebuffer := ?
8721 pFramebuffer[0] = framebuffer
8722 State.Framebuffers[framebuffer] = new!FramebufferObject(device: device)
8723
8724 return ?
8725}
8726
8727@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008728cmd void vkDestroyFramebuffer(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008729 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008730 VkFramebuffer framebuffer,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008731 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008732 deviceObject := GetDevice(device)
8733 framebufferObject := GetFramebuffer(framebuffer)
8734 assert(framebufferObject.device == device)
8735
8736 State.Framebuffers[framebuffer] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008737}
8738
8739
8740// Renderpass functions
8741
8742@threadSafety("system")
8743cmd VkResult vkCreateRenderPass(
8744 VkDevice device,
8745 const VkRenderPassCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008746 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008747 VkRenderPass* pRenderPass) {
8748 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO)
8749 deviceObject := GetDevice(device)
8750
8751 renderpass := ?
8752 pRenderPass[0] = renderpass
8753 State.RenderPasses[renderpass] = new!RenderPassObject(device: device)
8754
8755 return ?
8756}
8757
8758@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008759cmd void vkDestroyRenderPass(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008760 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008761 VkRenderPass renderPass,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008762 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008763 deviceObject := GetDevice(device)
8764 renderPassObject := GetRenderPass(renderPass)
8765 assert(renderPassObject.device == device)
8766
8767 State.RenderPasses[renderPass] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008768}
8769
Jesse Hall606a54e2015-11-19 22:17:28 -08008770cmd void vkGetRenderAreaGranularity(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008771 VkDevice device,
8772 VkRenderPass renderPass,
8773 VkExtent2D* pGranularity) {
8774 deviceObject := GetDevice(device)
8775 renderPassObject := GetRenderPass(renderPass)
8776
8777 granularity := ?
8778 pGranularity[0] = granularity
Jesse Halld27f6aa2015-08-15 17:58:48 -07008779}
8780
8781// Command pool functions
8782
8783cmd VkResult vkCreateCommandPool(
8784 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008785 const VkCommandPoolCreateInfo* pCreateInfo,
8786 const VkAllocationCallbacks* pAllocator,
8787 VkCommandPool* pCommandPool) {
8788 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008789 deviceObject := GetDevice(device)
8790
Jesse Hall3fbc8562015-11-29 22:10:52 -08008791 commandPool := ?
8792 pCommandPool[0] = commandPool
8793 State.CommandPools[commandPool] = new!CommandPoolObject(device: device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008794
8795 return ?
8796}
8797
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008798cmd void vkDestroyCommandPool(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008799 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008800 VkCommandPool commandPool,
8801 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008802 deviceObject := GetDevice(device)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008803 commandPoolObject := GetCommandPool(commandPool)
8804 assert(commandPoolObject.device == device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008805
Jesse Hall3fbc8562015-11-29 22:10:52 -08008806 State.CommandPools[commandPool] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008807}
8808
8809cmd VkResult vkResetCommandPool(
8810 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008811 VkCommandPool commandPool,
8812 VkCommandPoolResetFlags flags) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008813 deviceObject := GetDevice(device)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008814 commandPoolObject := GetCommandPool(commandPool)
8815 assert(commandPoolObject.device == device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008816
8817 return ?
8818}
8819
8820// Command buffer functions
8821
Jesse Hall3fbc8562015-11-29 22:10:52 -08008822macro void bindCommandBuffer(VkCommandBuffer commandBuffer, any obj, VkDeviceMemory memory) {
8823 memoryObject := GetDeviceMemory(memory)
8824 memoryObject.boundCommandBuffers[commandBuffer] = commandBuffer
Jesse Halld27f6aa2015-08-15 17:58:48 -07008825
Jesse Hall3fbc8562015-11-29 22:10:52 -08008826 commandBufferObject := GetCommandBuffer(commandBuffer)
8827 commandBufferObject.boundObjects[as!u64(obj)] = memory
Jesse Halld27f6aa2015-08-15 17:58:48 -07008828}
8829
Jesse Hall3fbc8562015-11-29 22:10:52 -08008830macro void unbindCommandBuffer(VkCommandBuffer commandBuffer, any obj, VkDeviceMemory memory) {
8831 memoryObject := GetDeviceMemory(memory)
8832 memoryObject.boundCommandBuffers[commandBuffer] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008833
Jesse Hall3fbc8562015-11-29 22:10:52 -08008834 commandBufferObject := GetCommandBuffer(commandBuffer)
8835 commandBufferObject.boundObjects[as!u64(obj)] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008836}
8837
8838@threadSafety("system")
Jesse Hall3fbc8562015-11-29 22:10:52 -08008839cmd VkResult vkAllocateCommandBuffers(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008840 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008841 const VkCommandBufferAllocateInfo* pAllocateInfo,
8842 VkCommandBuffer* pCommandBuffers) {
Jesse Hallf4ab2b12015-11-30 16:04:55 -08008843 assert(pAllocateInfo[0].sType == VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008844
Jesse Hall3dd678a2016-01-08 21:52:01 -08008845 count := pAllocateInfo[0].commandBufferCount
Jesse Hall3fbc8562015-11-29 22:10:52 -08008846 commandBuffers := pCommandBuffers[0:count]
Jesse Hallfbf97b02015-11-20 14:17:03 -08008847 for i in (0 .. count) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008848 commandBuffer := ?
8849 commandBuffers[i] = commandBuffer
8850 State.CommandBuffers[commandBuffer] = new!CommandBufferObject(device: device)
Jesse Hallfbf97b02015-11-20 14:17:03 -08008851 }
Jesse Halld27f6aa2015-08-15 17:58:48 -07008852
8853 return ?
8854}
8855
8856@threadSafety("system")
Jesse Hallfbf97b02015-11-20 14:17:03 -08008857cmd void vkFreeCommandBuffers(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008858 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008859 VkCommandPool commandPool,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008860 u32 commandBufferCount,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008861 const VkCommandBuffer* pCommandBuffers) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008862 deviceObject := GetDevice(device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008863
Jesse Hall3fbc8562015-11-29 22:10:52 -08008864 commandBuffers := pCommandBuffers[0:commandBufferCount]
Jesse Hall03b6fe12015-11-24 12:44:21 -08008865 for i in (0 .. commandBufferCount) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008866 commandBufferObject := GetCommandBuffer(commandBuffers[i])
8867 assert(commandBufferObject.device == device)
Jesse Hallfbf97b02015-11-20 14:17:03 -08008868 // TODO: iterate over boundObjects and clear memory bindings
Jesse Hall3fbc8562015-11-29 22:10:52 -08008869 State.CommandBuffers[commandBuffers[i]] = null
Jesse Hallfbf97b02015-11-20 14:17:03 -08008870 }
Jesse Halld27f6aa2015-08-15 17:58:48 -07008871}
8872
8873@threadSafety("app")
8874cmd VkResult vkBeginCommandBuffer(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008875 VkCommandBuffer commandBuffer,
8876 const VkCommandBufferBeginInfo* pBeginInfo) {
8877 assert(pBeginInfo.sType == VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO)
8878 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008879
8880 // TODO: iterate over boundObjects and clear memory bindings
8881
8882 return ?
8883}
8884
8885@threadSafety("app")
8886cmd VkResult vkEndCommandBuffer(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008887 VkCommandBuffer commandBuffer) {
8888 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008889
8890 return ?
8891}
8892
8893@threadSafety("app")
8894cmd VkResult vkResetCommandBuffer(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008895 VkCommandBuffer commandBuffer,
8896 VkCommandBufferResetFlags flags) {
8897 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008898
8899 // TODO: iterate over boundObjects and clear memory bindings
8900
8901 return ?
8902}
8903
8904
8905// Command buffer building functions
8906
8907@threadSafety("app")
8908cmd void vkCmdBindPipeline(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008909 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008910 VkPipelineBindPoint pipelineBindPoint,
8911 VkPipeline pipeline) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008912 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008913 pipelineObject := GetPipeline(pipeline)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008914 assert(commandBufferObject.device == pipelineObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008915
Jesse Halld8bade02015-11-24 10:24:18 -08008916 queue := switch (pipelineBindPoint) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008917 case VK_PIPELINE_BIND_POINT_COMPUTE: VK_QUEUE_COMPUTE_BIT
8918 case VK_PIPELINE_BIND_POINT_GRAPHICS: VK_QUEUE_GRAPHICS_BIT
8919 }
Jesse Hall3fbc8562015-11-29 22:10:52 -08008920 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, queue)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008921}
8922
8923@threadSafety("app")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008924cmd void vkCmdSetViewport(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008925 VkCommandBuffer commandBuffer,
Jesse Hallf9fa9a52016-01-08 16:08:51 -08008926 u32 firstViewport,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008927 u32 viewportCount,
8928 const VkViewport* pViewports) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008929 commandBufferObject := GetCommandBuffer(commandBuffer)
8930 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008931}
8932
8933@threadSafety("app")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008934cmd void vkCmdSetScissor(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008935 VkCommandBuffer commandBuffer,
Jesse Hallf9fa9a52016-01-08 16:08:51 -08008936 u32 firstScissor,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008937 u32 scissorCount,
8938 const VkRect2D* pScissors) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008939 commandBufferObject := GetCommandBuffer(commandBuffer)
8940 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008941}
8942
8943@threadSafety("app")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008944cmd void vkCmdSetLineWidth(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008945 VkCommandBuffer commandBuffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008946 f32 lineWidth) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008947 commandBufferObject := GetCommandBuffer(commandBuffer)
8948 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008949}
8950
8951@threadSafety("app")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008952cmd void vkCmdSetDepthBias(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008953 VkCommandBuffer commandBuffer,
Jesse Halla9bb62b2015-11-21 19:31:56 -08008954 f32 depthBiasConstantFactor,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008955 f32 depthBiasClamp,
Jesse Halla9bb62b2015-11-21 19:31:56 -08008956 f32 depthBiasSlopeFactor) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008957 commandBufferObject := GetCommandBuffer(commandBuffer)
8958 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008959}
Jesse Halld27f6aa2015-08-15 17:58:48 -07008960
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008961@threadSafety("app")
8962cmd void vkCmdSetBlendConstants(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008963 VkCommandBuffer commandBuffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008964 // TODO(jessehall): apic only supports 'const' on pointer types. Using
8965 // an annotation as a quick hack to pass this to the template without
8966 // having to modify the AST and semantic model.
Jesse Hallb00daad2015-11-29 19:46:20 -08008967 @readonly f32[4] blendConstants) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008968 commandBufferObject := GetCommandBuffer(commandBuffer)
8969 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008970}
8971
8972@threadSafety("app")
8973cmd void vkCmdSetDepthBounds(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008974 VkCommandBuffer commandBuffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008975 f32 minDepthBounds,
8976 f32 maxDepthBounds) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008977 commandBufferObject := GetCommandBuffer(commandBuffer)
8978 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008979}
8980
8981@threadSafety("app")
8982cmd void vkCmdSetStencilCompareMask(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008983 VkCommandBuffer commandBuffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008984 VkStencilFaceFlags faceMask,
Jesse Hall65ab5522015-11-30 00:07:16 -08008985 u32 compareMask) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008986 commandBufferObject := GetCommandBuffer(commandBuffer)
8987 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008988}
8989
8990@threadSafety("app")
8991cmd void vkCmdSetStencilWriteMask(
Jesse Hall3fbc8562015-11-29 22:10:52 -08008992 VkCommandBuffer commandBuffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008993 VkStencilFaceFlags faceMask,
Jesse Hall65ab5522015-11-30 00:07:16 -08008994 u32 writeMask) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08008995 commandBufferObject := GetCommandBuffer(commandBuffer)
8996 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008997}
8998
8999@threadSafety("app")
9000cmd void vkCmdSetStencilReference(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009001 VkCommandBuffer commandBuffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009002 VkStencilFaceFlags faceMask,
Jesse Hall65ab5522015-11-30 00:07:16 -08009003 u32 reference) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009004 commandBufferObject := GetCommandBuffer(commandBuffer)
9005 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009006}
9007
9008@threadSafety("app")
9009cmd void vkCmdBindDescriptorSets(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009010 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009011 VkPipelineBindPoint pipelineBindPoint,
9012 VkPipelineLayout layout,
9013 u32 firstSet,
Jesse Hall03b6fe12015-11-24 12:44:21 -08009014 u32 descriptorSetCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009015 const VkDescriptorSet* pDescriptorSets,
9016 u32 dynamicOffsetCount,
9017 const u32* pDynamicOffsets) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009018 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009019
Jesse Hall03b6fe12015-11-24 12:44:21 -08009020 descriptorSets := pDescriptorSets[0:descriptorSetCount]
9021 for i in (0 .. descriptorSetCount) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07009022 descriptorSet := descriptorSets[i]
9023 descriptorSetObject := GetDescriptorSet(descriptorSet)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009024 assert(commandBufferObject.device == descriptorSetObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009025 }
9026
9027 dynamicOffsets := pDynamicOffsets[0:dynamicOffsetCount]
9028 for i in (0 .. dynamicOffsetCount) {
9029 dynamicOffset := dynamicOffsets[i]
9030 }
9031
Jesse Halld8bade02015-11-24 10:24:18 -08009032 queue := switch (pipelineBindPoint) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07009033 case VK_PIPELINE_BIND_POINT_COMPUTE: VK_QUEUE_COMPUTE_BIT
9034 case VK_PIPELINE_BIND_POINT_GRAPHICS: VK_QUEUE_GRAPHICS_BIT
9035 }
Jesse Hall3fbc8562015-11-29 22:10:52 -08009036 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, queue)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009037}
9038
9039@threadSafety("app")
9040cmd void vkCmdBindIndexBuffer(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009041 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009042 VkBuffer buffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009043 VkDeviceSize offset,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009044 VkIndexType indexType) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009045 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009046 bufferObject := GetBuffer(buffer)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009047 assert(commandBufferObject.device == bufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009048
Jesse Hall3fbc8562015-11-29 22:10:52 -08009049 bindCommandBuffer(commandBuffer, buffer, bufferObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009050
Jesse Hall3fbc8562015-11-29 22:10:52 -08009051 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009052}
9053
9054@threadSafety("app")
9055cmd void vkCmdBindVertexBuffers(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009056 VkCommandBuffer commandBuffer,
Jesse Hallf9fa9a52016-01-08 16:08:51 -08009057 u32 firstBinding,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009058 u32 bindingCount,
9059 const VkBuffer* pBuffers,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009060 const VkDeviceSize* pOffsets) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009061 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009062
Jesse Hallf9fa9a52016-01-08 16:08:51 -08009063 // TODO: check if not [firstBinding:firstBinding+bindingCount]
Jesse Halld27f6aa2015-08-15 17:58:48 -07009064 buffers := pBuffers[0:bindingCount]
9065 offsets := pOffsets[0:bindingCount]
9066 for i in (0 .. bindingCount) {
9067 buffer := buffers[i]
9068 offset := offsets[i]
9069 bufferObject := GetBuffer(buffer)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009070 assert(commandBufferObject.device == bufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009071
Jesse Hall3fbc8562015-11-29 22:10:52 -08009072 bindCommandBuffer(commandBuffer, buffer, bufferObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009073 }
9074
Jesse Hall3fbc8562015-11-29 22:10:52 -08009075 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009076}
9077
9078@threadSafety("app")
9079cmd void vkCmdDraw(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009080 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009081 u32 vertexCount,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009082 u32 instanceCount,
9083 u32 firstVertex,
9084 u32 firstInstance) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009085 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009086
Jesse Hall3fbc8562015-11-29 22:10:52 -08009087 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009088}
9089
9090@threadSafety("app")
9091cmd void vkCmdDrawIndexed(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009092 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009093 u32 indexCount,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009094 u32 instanceCount,
9095 u32 firstIndex,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009096 s32 vertexOffset,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009097 u32 firstInstance) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009098 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009099
Jesse Hall3fbc8562015-11-29 22:10:52 -08009100 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009101}
9102
9103@threadSafety("app")
9104cmd void vkCmdDrawIndirect(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009105 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009106 VkBuffer buffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009107 VkDeviceSize offset,
Jesse Hall03b6fe12015-11-24 12:44:21 -08009108 u32 drawCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009109 u32 stride) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009110 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009111 bufferObject := GetBuffer(buffer)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009112 assert(commandBufferObject.device == bufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009113
Jesse Hall3fbc8562015-11-29 22:10:52 -08009114 bindCommandBuffer(commandBuffer, buffer, bufferObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009115
Jesse Hall3fbc8562015-11-29 22:10:52 -08009116 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009117}
9118
9119@threadSafety("app")
9120cmd void vkCmdDrawIndexedIndirect(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009121 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009122 VkBuffer buffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009123 VkDeviceSize offset,
Jesse Hall03b6fe12015-11-24 12:44:21 -08009124 u32 drawCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009125 u32 stride) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009126 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009127 bufferObject := GetBuffer(buffer)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009128 assert(commandBufferObject.device == bufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009129
Jesse Hall3fbc8562015-11-29 22:10:52 -08009130 bindCommandBuffer(commandBuffer, buffer, bufferObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009131
Jesse Hall3fbc8562015-11-29 22:10:52 -08009132 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009133}
9134
9135@threadSafety("app")
9136cmd void vkCmdDispatch(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009137 VkCommandBuffer commandBuffer,
Jesse Hallad250842017-03-10 18:35:38 -08009138 u32 groupCountX,
9139 u32 groupCountY,
9140 u32 groupCountZ) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009141 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009142
Jesse Hall3fbc8562015-11-29 22:10:52 -08009143 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_COMPUTE_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009144}
9145
9146@threadSafety("app")
9147cmd void vkCmdDispatchIndirect(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009148 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009149 VkBuffer buffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009150 VkDeviceSize offset) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009151 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009152 bufferObject := GetBuffer(buffer)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009153 assert(commandBufferObject.device == bufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009154
Jesse Hall3fbc8562015-11-29 22:10:52 -08009155 bindCommandBuffer(commandBuffer, buffer, bufferObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009156
Jesse Hall3fbc8562015-11-29 22:10:52 -08009157 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_COMPUTE_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009158}
9159
9160@threadSafety("app")
9161cmd void vkCmdCopyBuffer(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009162 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009163 VkBuffer srcBuffer,
Jesse Hall3fbc8562015-11-29 22:10:52 -08009164 VkBuffer dstBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009165 u32 regionCount,
9166 const VkBufferCopy* pRegions) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009167 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009168 srcBufferObject := GetBuffer(srcBuffer)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009169 dstBufferObject := GetBuffer(dstBuffer)
9170 assert(commandBufferObject.device == srcBufferObject.device)
9171 assert(commandBufferObject.device == dstBufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009172
9173 regions := pRegions[0:regionCount]
9174 for i in (0 .. regionCount) {
9175 region := regions[i]
9176 }
9177
Jesse Hall3fbc8562015-11-29 22:10:52 -08009178 bindCommandBuffer(commandBuffer, srcBuffer, srcBufferObject.memory)
9179 bindCommandBuffer(commandBuffer, dstBuffer, dstBufferObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009180
Jesse Hall65ab5522015-11-30 00:07:16 -08009181 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_TRANSFER_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009182}
9183
9184@threadSafety("app")
9185cmd void vkCmdCopyImage(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009186 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009187 VkImage srcImage,
9188 VkImageLayout srcImageLayout,
Jesse Hall3fbc8562015-11-29 22:10:52 -08009189 VkImage dstImage,
9190 VkImageLayout dstImageLayout,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009191 u32 regionCount,
9192 const VkImageCopy* pRegions) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009193 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009194 srcImageObject := GetImage(srcImage)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009195 dstImageObject := GetImage(dstImage)
9196 assert(commandBufferObject.device == srcImageObject.device)
9197 assert(commandBufferObject.device == dstImageObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009198
9199 regions := pRegions[0:regionCount]
9200 for i in (0 .. regionCount) {
9201 region := regions[i]
9202 }
9203
Jesse Hall3fbc8562015-11-29 22:10:52 -08009204 bindCommandBuffer(commandBuffer, srcImage, srcImageObject.memory)
9205 bindCommandBuffer(commandBuffer, dstImage, dstImageObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009206
Jesse Hall65ab5522015-11-30 00:07:16 -08009207 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_TRANSFER_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009208}
9209
9210@threadSafety("app")
9211cmd void vkCmdBlitImage(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009212 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009213 VkImage srcImage,
9214 VkImageLayout srcImageLayout,
Jesse Hall3fbc8562015-11-29 22:10:52 -08009215 VkImage dstImage,
9216 VkImageLayout dstImageLayout,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009217 u32 regionCount,
9218 const VkImageBlit* pRegions,
Jesse Hall23ff73f2015-11-29 14:36:39 -08009219 VkFilter filter) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009220 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009221 srcImageObject := GetImage(srcImage)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009222 dstImageObject := GetImage(dstImage)
9223 assert(commandBufferObject.device == srcImageObject.device)
9224 assert(commandBufferObject.device == dstImageObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009225
9226 regions := pRegions[0:regionCount]
9227 for i in (0 .. regionCount) {
9228 region := regions[i]
9229 }
9230
Jesse Hall3fbc8562015-11-29 22:10:52 -08009231 bindCommandBuffer(commandBuffer, srcImage, srcImageObject.memory)
9232 bindCommandBuffer(commandBuffer, dstImage, dstImageObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009233
Jesse Hall3fbc8562015-11-29 22:10:52 -08009234 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009235}
9236
9237@threadSafety("app")
9238cmd void vkCmdCopyBufferToImage(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009239 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009240 VkBuffer srcBuffer,
Jesse Hall3fbc8562015-11-29 22:10:52 -08009241 VkImage dstImage,
9242 VkImageLayout dstImageLayout,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009243 u32 regionCount,
9244 const VkBufferImageCopy* pRegions) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009245 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009246 srcBufferObject := GetBuffer(srcBuffer)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009247 dstImageObject := GetImage(dstImage)
9248 assert(commandBufferObject.device == srcBufferObject.device)
9249 assert(commandBufferObject.device == dstImageObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009250
9251 regions := pRegions[0:regionCount]
9252 for i in (0 .. regionCount) {
9253 region := regions[i]
9254 }
9255
Jesse Hall3fbc8562015-11-29 22:10:52 -08009256 bindCommandBuffer(commandBuffer, srcBuffer, srcBufferObject.memory)
9257 bindCommandBuffer(commandBuffer, dstImage, dstImageObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009258
Jesse Hall65ab5522015-11-30 00:07:16 -08009259 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_TRANSFER_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009260}
9261
9262@threadSafety("app")
9263cmd void vkCmdCopyImageToBuffer(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009264 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009265 VkImage srcImage,
9266 VkImageLayout srcImageLayout,
Jesse Hall3fbc8562015-11-29 22:10:52 -08009267 VkBuffer dstBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009268 u32 regionCount,
9269 const VkBufferImageCopy* pRegions) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009270 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009271 srcImageObject := GetImage(srcImage)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009272 dstBufferObject := GetBuffer(dstBuffer)
9273 assert(commandBufferObject.device == srcImageObject.device)
9274 assert(commandBufferObject.device == dstBufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009275
9276 regions := pRegions[0:regionCount]
9277 for i in (0 .. regionCount) {
9278 region := regions[i]
9279 }
9280
Jesse Hall3fbc8562015-11-29 22:10:52 -08009281 bindCommandBuffer(commandBuffer, srcImage, srcImageObject.memory)
9282 bindCommandBuffer(commandBuffer, dstBuffer, dstBufferObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009283
Jesse Hall65ab5522015-11-30 00:07:16 -08009284 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_TRANSFER_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009285}
9286
9287@threadSafety("app")
9288cmd void vkCmdUpdateBuffer(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009289 VkCommandBuffer commandBuffer,
9290 VkBuffer dstBuffer,
9291 VkDeviceSize dstOffset,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009292 VkDeviceSize dataSize,
Jesse Hall56d386a2016-07-26 15:20:40 -07009293 const void* pData) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009294 commandBufferObject := GetCommandBuffer(commandBuffer)
9295 dstBufferObject := GetBuffer(dstBuffer)
9296 assert(commandBufferObject.device == dstBufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009297
9298 data := pData[0:dataSize]
9299
Jesse Hall3fbc8562015-11-29 22:10:52 -08009300 bindCommandBuffer(commandBuffer, dstBuffer, dstBufferObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009301
Jesse Hall65ab5522015-11-30 00:07:16 -08009302 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_TRANSFER_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009303}
9304
9305@threadSafety("app")
9306cmd void vkCmdFillBuffer(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009307 VkCommandBuffer commandBuffer,
9308 VkBuffer dstBuffer,
9309 VkDeviceSize dstOffset,
Jesse Hallb00daad2015-11-29 19:46:20 -08009310 VkDeviceSize size,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009311 u32 data) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009312 commandBufferObject := GetCommandBuffer(commandBuffer)
9313 dstBufferObject := GetBuffer(dstBuffer)
9314 assert(commandBufferObject.device == dstBufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009315
Jesse Hall65ab5522015-11-30 00:07:16 -08009316 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_TRANSFER_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009317}
9318
9319@threadSafety("app")
9320cmd void vkCmdClearColorImage(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009321 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009322 VkImage image,
9323 VkImageLayout imageLayout,
9324 const VkClearColorValue* pColor,
9325 u32 rangeCount,
9326 const VkImageSubresourceRange* pRanges) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009327 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009328 imageObject := GetImage(image)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009329 assert(commandBufferObject.device == imageObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009330
9331 ranges := pRanges[0:rangeCount]
9332 for i in (0 .. rangeCount) {
9333 range := ranges[i]
9334 }
9335
Jesse Hall3fbc8562015-11-29 22:10:52 -08009336 bindCommandBuffer(commandBuffer, image, imageObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009337
Jesse Hall3fbc8562015-11-29 22:10:52 -08009338 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009339}
9340
9341@threadSafety("app")
9342cmd void vkCmdClearDepthStencilImage(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009343 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009344 VkImage image,
9345 VkImageLayout imageLayout,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009346 const VkClearDepthStencilValue* pDepthStencil,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009347 u32 rangeCount,
9348 const VkImageSubresourceRange* pRanges) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009349 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009350 imageObject := GetImage(image)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009351 assert(commandBufferObject.device == imageObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009352
9353 ranges := pRanges[0:rangeCount]
9354 for i in (0 .. rangeCount) {
9355 range := ranges[i]
9356 }
9357
Jesse Hall3fbc8562015-11-29 22:10:52 -08009358 bindCommandBuffer(commandBuffer, image, imageObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009359
Jesse Hall3fbc8562015-11-29 22:10:52 -08009360 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009361}
9362
9363@threadSafety("app")
Jesse Hallae38f732015-11-19 21:32:50 -08009364cmd void vkCmdClearAttachments(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009365 VkCommandBuffer commandBuffer,
Jesse Hallae38f732015-11-19 21:32:50 -08009366 u32 attachmentCount,
9367 const VkClearAttachment* pAttachments,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009368 u32 rectCount,
Jesse Halla15a4bf2015-11-19 22:48:02 -08009369 const VkClearRect* pRects) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009370 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009371
9372 rects := pRects[0:rectCount]
9373 for i in (0 .. rectCount) {
9374 rect := rects[i]
9375 }
9376
Jesse Hall3fbc8562015-11-29 22:10:52 -08009377 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009378}
9379
9380@threadSafety("app")
9381cmd void vkCmdResolveImage(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009382 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009383 VkImage srcImage,
9384 VkImageLayout srcImageLayout,
Jesse Hall3fbc8562015-11-29 22:10:52 -08009385 VkImage dstImage,
9386 VkImageLayout dstImageLayout,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009387 u32 regionCount,
9388 const VkImageResolve* pRegions) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009389 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009390 srcImageObject := GetImage(srcImage)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009391 dstImageObject := GetImage(dstImage)
9392 assert(commandBufferObject.device == srcImageObject.device)
9393 assert(commandBufferObject.device == dstImageObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009394
9395 regions := pRegions[0:regionCount]
9396 for i in (0 .. regionCount) {
9397 region := regions[i]
9398 }
9399
Jesse Hall3fbc8562015-11-29 22:10:52 -08009400 bindCommandBuffer(commandBuffer, srcImage, srcImageObject.memory)
9401 bindCommandBuffer(commandBuffer, dstImage, dstImageObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009402
Jesse Hall3fbc8562015-11-29 22:10:52 -08009403 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009404}
9405
9406@threadSafety("app")
9407cmd void vkCmdSetEvent(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009408 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009409 VkEvent event,
9410 VkPipelineStageFlags stageMask) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009411 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009412 eventObject := GetEvent(event)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009413 assert(commandBufferObject.device == eventObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009414}
9415
9416@threadSafety("app")
9417cmd void vkCmdResetEvent(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009418 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009419 VkEvent event,
9420 VkPipelineStageFlags stageMask) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009421 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009422 eventObject := GetEvent(event)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009423 assert(commandBufferObject.device == eventObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009424}
9425
9426@threadSafety("app")
9427cmd void vkCmdWaitEvents(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009428 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009429 u32 eventCount,
9430 const VkEvent* pEvents,
9431 VkPipelineStageFlags srcStageMask,
Jesse Hall3fbc8562015-11-29 22:10:52 -08009432 VkPipelineStageFlags dstStageMask,
9433 u32 memoryBarrierCount,
Jesse Hall3dd678a2016-01-08 21:52:01 -08009434 const VkMemoryBarrier* pMemoryBarriers,
9435 u32 bufferMemoryBarrierCount,
9436 const VkBufferMemoryBarrier* pBufferMemoryBarriers,
9437 u32 imageMemoryBarrierCount,
9438 const VkImageMemoryBarrier* pImageMemoryBarriers) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009439 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009440
9441 events := pEvents[0:eventCount]
9442 for i in (0 .. eventCount) {
9443 event := events[i]
9444 eventObject := GetEvent(event)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009445 assert(commandBufferObject.device == eventObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009446 }
9447
Jesse Hall3dd678a2016-01-08 21:52:01 -08009448 memoryBarriers := pMemoryBarriers[0:memoryBarrierCount]
Jesse Hall3fbc8562015-11-29 22:10:52 -08009449 for i in (0 .. memoryBarrierCount) {
Jesse Hall3dd678a2016-01-08 21:52:01 -08009450 memoryBarrier := memoryBarriers[i]
9451 }
9452 bufferMemoryBarriers := pBufferMemoryBarriers[0:bufferMemoryBarrierCount]
9453 for i in (0 .. bufferMemoryBarrierCount) {
9454 bufferMemoryBarrier := bufferMemoryBarriers[i]
9455 bufferObject := GetBuffer(bufferMemoryBarrier.buffer)
9456 assert(bufferObject.device == commandBufferObject.device)
9457 }
9458 imageMemoryBarriers := pImageMemoryBarriers[0:imageMemoryBarrierCount]
9459 for i in (0 .. imageMemoryBarrierCount) {
9460 imageMemoryBarrier := imageMemoryBarriers[i]
9461 imageObject := GetImage(imageMemoryBarrier.image)
9462 assert(imageObject.device == commandBufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009463 }
9464}
9465
9466@threadSafety("app")
9467cmd void vkCmdPipelineBarrier(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009468 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009469 VkPipelineStageFlags srcStageMask,
Jesse Hall3fbc8562015-11-29 22:10:52 -08009470 VkPipelineStageFlags dstStageMask,
Jesse Halldc6d36c2015-11-29 19:12:15 -08009471 VkDependencyFlags dependencyFlags,
Jesse Hall3fbc8562015-11-29 22:10:52 -08009472 u32 memoryBarrierCount,
Jesse Hall3dd678a2016-01-08 21:52:01 -08009473 const VkMemoryBarrier* pMemoryBarriers,
9474 u32 bufferMemoryBarrierCount,
9475 const VkBufferMemoryBarrier* pBufferMemoryBarriers,
9476 u32 imageMemoryBarrierCount,
9477 const VkImageMemoryBarrier* pImageMemoryBarriers) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009478 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009479
Jesse Hall3dd678a2016-01-08 21:52:01 -08009480 memoryBarriers := pMemoryBarriers[0:memoryBarrierCount]
Jesse Hall3fbc8562015-11-29 22:10:52 -08009481 for i in (0 .. memoryBarrierCount) {
Jesse Hall3dd678a2016-01-08 21:52:01 -08009482 memoryBarrier := memoryBarriers[i]
9483 }
9484 bufferMemoryBarriers := pBufferMemoryBarriers[0:bufferMemoryBarrierCount]
9485 for i in (0 .. bufferMemoryBarrierCount) {
9486 bufferMemoryBarrier := bufferMemoryBarriers[i]
9487 bufferObject := GetBuffer(bufferMemoryBarrier.buffer)
9488 assert(bufferObject.device == commandBufferObject.device)
9489 }
9490 imageMemoryBarriers := pImageMemoryBarriers[0:imageMemoryBarrierCount]
9491 for i in (0 .. imageMemoryBarrierCount) {
9492 imageMemoryBarrier := imageMemoryBarriers[i]
9493 imageObject := GetImage(imageMemoryBarrier.image)
9494 assert(imageObject.device == commandBufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009495 }
9496}
9497
9498@threadSafety("app")
9499cmd void vkCmdBeginQuery(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009500 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009501 VkQueryPool queryPool,
Jesse Hall3dd678a2016-01-08 21:52:01 -08009502 u32 query,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009503 VkQueryControlFlags flags) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009504 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009505 queryPoolObject := GetQueryPool(queryPool)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009506 assert(commandBufferObject.device == queryPoolObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009507}
9508
9509@threadSafety("app")
9510cmd void vkCmdEndQuery(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009511 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009512 VkQueryPool queryPool,
Jesse Hall3dd678a2016-01-08 21:52:01 -08009513 u32 query) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009514 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009515 queryPoolObject := GetQueryPool(queryPool)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009516 assert(commandBufferObject.device == queryPoolObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009517}
9518
9519@threadSafety("app")
9520cmd void vkCmdResetQueryPool(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009521 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009522 VkQueryPool queryPool,
Jesse Hallf9fa9a52016-01-08 16:08:51 -08009523 u32 firstQuery,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009524 u32 queryCount) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009525 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009526 queryPoolObject := GetQueryPool(queryPool)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009527 assert(commandBufferObject.device == queryPoolObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009528}
9529
9530@threadSafety("app")
9531cmd void vkCmdWriteTimestamp(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009532 VkCommandBuffer commandBuffer,
Jesse Hall6f39a6d2015-11-24 11:08:36 -08009533 VkPipelineStageFlagBits pipelineStage,
Jesse Halla3a7a1d2015-11-24 11:37:23 -08009534 VkQueryPool queryPool,
Jesse Hall3dd678a2016-01-08 21:52:01 -08009535 u32 query) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009536 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halla3a7a1d2015-11-24 11:37:23 -08009537 queryPoolObject := GetQueryPool(queryPool)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009538 assert(commandBufferObject.device == queryPoolObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009539}
9540
9541@threadSafety("app")
9542cmd void vkCmdCopyQueryPoolResults(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009543 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009544 VkQueryPool queryPool,
Jesse Hallf9fa9a52016-01-08 16:08:51 -08009545 u32 firstQuery,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009546 u32 queryCount,
Jesse Hall3fbc8562015-11-29 22:10:52 -08009547 VkBuffer dstBuffer,
9548 VkDeviceSize dstOffset,
Jesse Halla9bb62b2015-11-21 19:31:56 -08009549 VkDeviceSize stride,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009550 VkQueryResultFlags flags) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009551 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009552 queryPoolObject := GetQueryPool(queryPool)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009553 dstBufferObject := GetBuffer(dstBuffer)
9554 assert(commandBufferObject.device == queryPoolObject.device)
9555 assert(commandBufferObject.device == dstBufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009556}
9557
9558cmd void vkCmdPushConstants(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009559 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009560 VkPipelineLayout layout,
9561 VkShaderStageFlags stageFlags,
Jesse Hall03b6fe12015-11-24 12:44:21 -08009562 u32 offset,
9563 u32 size,
Jesse Hallf4ab2b12015-11-30 16:04:55 -08009564 const void* pValues) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009565 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009566 layoutObject := GetPipelineLayout(layout)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009567 assert(commandBufferObject.device == layoutObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009568}
9569
9570@threadSafety("app")
9571cmd void vkCmdBeginRenderPass(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009572 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009573 const VkRenderPassBeginInfo* pRenderPassBegin,
Jesse Hall65ab5522015-11-30 00:07:16 -08009574 VkSubpassContents contents) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009575 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009576 renderPassObject := GetRenderPass(pRenderPassBegin.renderPass)
9577 framebufferObject := GetFramebuffer(pRenderPassBegin.framebuffer)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009578 assert(commandBufferObject.device == renderPassObject.device)
9579 assert(commandBufferObject.device == framebufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009580
Jesse Hall3fbc8562015-11-29 22:10:52 -08009581 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009582}
9583
9584cmd void vkCmdNextSubpass(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009585 VkCommandBuffer commandBuffer,
Jesse Hall65ab5522015-11-30 00:07:16 -08009586 VkSubpassContents contents) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009587 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009588}
9589
9590@threadSafety("app")
9591cmd void vkCmdEndRenderPass(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009592 VkCommandBuffer commandBuffer) {
9593 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009594
Jesse Hall3fbc8562015-11-29 22:10:52 -08009595 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009596}
9597
9598cmd void vkCmdExecuteCommands(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009599 VkCommandBuffer commandBuffer,
Jesse Hall3dd678a2016-01-08 21:52:01 -08009600 u32 commandBufferCount,
Jesse Hall3fbc8562015-11-29 22:10:52 -08009601 const VkCommandBuffer* pCommandBuffers) {
9602 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009603
Jesse Hall3dd678a2016-01-08 21:52:01 -08009604 commandBuffers := pCommandBuffers[0:commandBufferCount]
9605 for i in (0 .. commandBufferCount) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009606 secondaryCommandBuffer := commandBuffers[i]
9607 secondaryCommandBufferObject := GetCommandBuffer(secondaryCommandBuffer)
9608 assert(commandBufferObject.device == secondaryCommandBufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009609 }
9610}
9611
Ian Elliott28bd2c32017-10-13 09:21:12 -06009612//@vulkan1_1 functions
Daniel Koch09f7bf92017-10-05 00:26:58 -04009613
Ian Elliott28bd2c32017-10-13 09:21:12 -06009614@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009615cmd VkResult vkEnumerateInstanceVersion(
9616 u32* pApiVersion) {
9617 return ?
9618}
9619
Ian Elliott28bd2c32017-10-13 09:21:12 -06009620@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009621cmd VkResult vkBindBufferMemory2(
9622 VkDevice device,
9623 u32 bindInfoCount,
9624 const VkBindBufferMemoryInfo* pBindInfos) {
9625 return ?
9626}
9627
Ian Elliott28bd2c32017-10-13 09:21:12 -06009628@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009629cmd VkResult vkBindImageMemory2(
9630 VkDevice device,
9631 u32 bindInfoCount,
9632 const VkBindImageMemoryInfo* pBindInfos) {
9633 return ?
9634}
9635
Ian Elliott28bd2c32017-10-13 09:21:12 -06009636@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009637cmd void vkGetDeviceGroupPeerMemoryFeatures(
9638 VkDevice device,
9639 u32 heapIndex,
9640 u32 localDeviceIndex,
9641 u32 remoteDeviceIndex,
9642 VkPeerMemoryFeatureFlags* pPeerMemoryFeatures) {
9643}
9644
Ian Elliott28bd2c32017-10-13 09:21:12 -06009645@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009646cmd void vkCmdSetDeviceMask(
9647 VkCommandBuffer commandBuffer,
9648 u32 deviceMask) {
9649}
9650
Ian Elliott28bd2c32017-10-13 09:21:12 -06009651@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009652cmd void vkCmdDispatchBase(
9653 VkCommandBuffer commandBuffer,
9654 u32 baseGroupX,
9655 u32 baseGroupY,
9656 u32 baseGroupZ,
9657 u32 groupCountX,
9658 u32 groupCountY,
9659 u32 groupCountZ) {
9660}
9661
9662@threadSafety("system")
Ian Elliott28bd2c32017-10-13 09:21:12 -06009663@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009664cmd VkResult vkEnumeratePhysicalDeviceGroups(
9665 VkInstance instance,
9666 u32* pPhysicalDeviceGroupCount,
9667 VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties) {
9668 instanceObject := GetInstance(instance)
9669
9670 physicalDeviceGroupCount := as!u32(?)
9671 pPhysicalDeviceGroupCount[0] = physicalDeviceGroupCount
9672 physicalDevices := pPhysicalDeviceGroupProperties[0:physicalDeviceGroupCount]
9673
9674 for i in (0 .. physicalDeviceGroupCount) {
9675 physicalDevice := ?
9676 physicalDevices[i] = physicalDevice
9677 if !(physicalDevice in State.PhysicalDevices) {
9678 State.PhysicalDevices[physicalDevice] = new!PhysicalDeviceObject(instance: instance)
9679 }
9680 }
9681
9682 return ?
9683}
9684
Ian Elliott28bd2c32017-10-13 09:21:12 -06009685@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009686cmd void vkGetImageMemoryRequirements2(
9687 VkDevice device,
9688 const VkImageMemoryRequirementsInfo2* pInfo,
9689 VkMemoryRequirements2* pMemoryRequirements) {
9690}
9691
Ian Elliott28bd2c32017-10-13 09:21:12 -06009692@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009693cmd void vkGetBufferMemoryRequirements2(
9694 VkDevice device,
9695 const VkBufferMemoryRequirementsInfo2* pInfo,
9696 VkMemoryRequirements2* pMemoryRequirements) {
9697}
9698
Ian Elliott28bd2c32017-10-13 09:21:12 -06009699@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009700cmd void vkGetImageSparseMemoryRequirements2(
9701 VkDevice device,
9702 const VkImageSparseMemoryRequirementsInfo2* pInfo,
9703 u32* pSparseMemoryRequirementCount,
9704 VkSparseImageMemoryRequirements2* pSparseMemoryRequirements) {
9705}
9706
Ian Elliott28bd2c32017-10-13 09:21:12 -06009707@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009708cmd void vkGetPhysicalDeviceFeatures2(
9709 VkPhysicalDevice physicalDevice,
9710 VkPhysicalDeviceFeatures2* pFeatures) {
9711}
9712
Ian Elliott28bd2c32017-10-13 09:21:12 -06009713@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009714cmd void vkGetPhysicalDeviceProperties2(
9715 VkPhysicalDevice physicalDevice,
9716 VkPhysicalDeviceProperties2* pProperties) {
9717}
9718
Ian Elliott28bd2c32017-10-13 09:21:12 -06009719@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009720cmd void vkGetPhysicalDeviceFormatProperties2(
9721 VkPhysicalDevice physicalDevice,
9722 VkFormat format,
9723 VkFormatProperties2* pFormatProperties) {
9724}
9725
Ian Elliott28bd2c32017-10-13 09:21:12 -06009726@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009727cmd VkResult vkGetPhysicalDeviceImageFormatProperties2(
9728 VkPhysicalDevice physicalDevice,
9729 const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo,
9730 VkImageFormatProperties2* pImageFormatProperties) {
9731 return ?
9732}
9733
Ian Elliott28bd2c32017-10-13 09:21:12 -06009734@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009735cmd void vkGetPhysicalDeviceQueueFamilyProperties2(
9736 VkPhysicalDevice physicalDevice,
9737 u32* pQueueFamilyPropertyCount,
9738 VkQueueFamilyProperties2* pQueueFamilyProperties) {
9739}
9740
Ian Elliott28bd2c32017-10-13 09:21:12 -06009741@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009742cmd void vkGetPhysicalDeviceMemoryProperties2(
9743 VkPhysicalDevice physicalDevice,
9744 VkPhysicalDeviceMemoryProperties2* pMemoryProperties) {
9745}
9746
Ian Elliott28bd2c32017-10-13 09:21:12 -06009747@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009748cmd void vkGetPhysicalDeviceSparseImageFormatProperties2(
9749 VkPhysicalDevice physicalDevice,
9750 const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo,
9751 u32* pPropertyCount,
9752 VkSparseImageFormatProperties2* pProperties) {
9753}
9754
Ian Elliott28bd2c32017-10-13 09:21:12 -06009755@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009756cmd void vkTrimCommandPool(
9757 VkDevice device,
9758 VkCommandPool commandPool,
9759 VkCommandPoolTrimFlags flags) {
9760}
9761
9762
Ian Elliott28bd2c32017-10-13 09:21:12 -06009763@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009764cmd void vkGetDeviceQueue2(
9765 VkDevice device,
9766 const VkDeviceQueueInfo2* pQueueInfo,
9767 VkQueue* pQueue) {
9768 deviceObject := GetDevice(device)
9769
9770 queue := ?
9771 pQueue[0] = queue
9772
9773 if !(queue in State.Queues) {
9774 State.Queues[queue] = new!QueueObject(device: device)
9775 }
9776}
9777
Ian Elliott28bd2c32017-10-13 09:21:12 -06009778@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009779cmd VkResult vkCreateSamplerYcbcrConversion(
9780 VkDevice device,
9781 const VkSamplerYcbcrConversionCreateInfo* pCreateInfo,
9782 const VkAllocationCallbacks* pAllocator,
9783 VkSamplerYcbcrConversion* pYcbcrConversion) {
9784 return ?
9785}
9786
Ian Elliott28bd2c32017-10-13 09:21:12 -06009787@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009788cmd void vkDestroySamplerYcbcrConversion(
9789 VkDevice device,
9790 VkSamplerYcbcrConversion ycbcrConversion,
9791 const VkAllocationCallbacks* pAllocator) {
9792}
9793
Ian Elliott28bd2c32017-10-13 09:21:12 -06009794@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009795cmd VkResult vkCreateDescriptorUpdateTemplate(
9796 VkDevice device,
9797 const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo,
9798 const VkAllocationCallbacks* pAllocator,
9799 VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate) {
9800 return ?
9801}
9802
Ian Elliott28bd2c32017-10-13 09:21:12 -06009803@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009804cmd void vkDestroyDescriptorUpdateTemplate(
9805 VkDevice device,
9806 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
9807 const VkAllocationCallbacks* pAllocator) {
9808}
9809
Ian Elliott28bd2c32017-10-13 09:21:12 -06009810@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009811cmd void vkUpdateDescriptorSetWithTemplate(
9812 VkDevice device,
9813 VkDescriptorSet descriptorSet,
9814 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
9815 const void* pData) {
9816}
9817
Ian Elliott28bd2c32017-10-13 09:21:12 -06009818@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009819cmd void vkGetPhysicalDeviceExternalBufferProperties(
9820 VkPhysicalDevice physicalDevice,
9821 const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo,
9822 VkExternalBufferProperties* pExternalBufferProperties) {
9823}
9824
Ian Elliott28bd2c32017-10-13 09:21:12 -06009825@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009826cmd void vkGetPhysicalDeviceExternalFenceProperties(
9827 VkPhysicalDevice physicalDevice,
9828 const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo,
9829 VkExternalFenceProperties* pExternalFenceProperties) {
9830}
9831
Ian Elliott28bd2c32017-10-13 09:21:12 -06009832@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009833cmd void vkGetPhysicalDeviceExternalSemaphoreProperties(
9834 VkPhysicalDevice physicalDevice,
9835 const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo,
9836 VkExternalSemaphoreProperties* pExternalSemaphoreProperties) {
9837}
9838
Ian Elliott28bd2c32017-10-13 09:21:12 -06009839@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009840cmd void vkGetDescriptorSetLayoutSupport(
9841 VkDevice device,
9842 const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
9843 VkDescriptorSetLayoutSupport* pSupport) {
9844}
9845
9846
Jesse Hallad250842017-03-10 18:35:38 -08009847@extension("VK_KHR_surface") // 1
Jesse Hall1356b0d2015-11-23 17:24:58 -08009848cmd void vkDestroySurfaceKHR(
9849 VkInstance instance,
Jesse Hall0e74f002015-11-30 11:37:59 -08009850 VkSurfaceKHR surface,
9851 const VkAllocationCallbacks* pAllocator) {
Jesse Hall1356b0d2015-11-23 17:24:58 -08009852 instanceObject := GetInstance(instance)
9853 surfaceObject := GetSurface(surface)
9854 assert(surfaceObject.instance == instance)
Michael Lentine88594d72015-11-12 12:49:45 -08009855
Jesse Hall1356b0d2015-11-23 17:24:58 -08009856 State.Surfaces[surface] = null
Jesse Hall2818f932015-11-19 21:19:17 -08009857}
9858
Jesse Hallad250842017-03-10 18:35:38 -08009859@extension("VK_KHR_surface") // 1
Jesse Halla6429252015-11-29 18:59:42 -08009860cmd VkResult vkGetPhysicalDeviceSurfaceSupportKHR(
Jesse Hall1356b0d2015-11-23 17:24:58 -08009861 VkPhysicalDevice physicalDevice,
9862 u32 queueFamilyIndex,
Jesse Hall1356b0d2015-11-23 17:24:58 -08009863 VkSurfaceKHR surface,
Jesse Hallb00daad2015-11-29 19:46:20 -08009864 VkBool32* pSupported) {
9865 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
Michael Lentine88594d72015-11-12 12:49:45 -08009866
9867 return ?
9868}
9869
Jesse Hallad250842017-03-10 18:35:38 -08009870@extension("VK_KHR_surface") // 1
Jesse Hallb00daad2015-11-29 19:46:20 -08009871cmd VkResult vkGetPhysicalDeviceSurfaceCapabilitiesKHR(
9872 VkPhysicalDevice physicalDevice,
9873 VkSurfaceKHR surface,
9874 VkSurfaceCapabilitiesKHR* pSurfaceCapabilities) {
9875 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
9876
9877 surfaceCapabilities := ?
9878 pSurfaceCapabilities[0] = surfaceCapabilities
9879
9880 return ?
9881}
9882
Jesse Hallad250842017-03-10 18:35:38 -08009883@extension("VK_KHR_surface") // 1
Jesse Hallb00daad2015-11-29 19:46:20 -08009884cmd VkResult vkGetPhysicalDeviceSurfaceFormatsKHR(
9885 VkPhysicalDevice physicalDevice,
Jesse Hall1356b0d2015-11-23 17:24:58 -08009886 VkSurfaceKHR surface,
Jesse Hall03b6fe12015-11-24 12:44:21 -08009887 u32* pSurfaceFormatCount,
Jesse Hall1356b0d2015-11-23 17:24:58 -08009888 VkSurfaceFormatKHR* pSurfaceFormats) {
Jesse Hallb00daad2015-11-29 19:46:20 -08009889 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
Michael Lentine88594d72015-11-12 12:49:45 -08009890
9891 count := as!u32(?)
Jesse Hall03b6fe12015-11-24 12:44:21 -08009892 pSurfaceFormatCount[0] = count
Michael Lentine88594d72015-11-12 12:49:45 -08009893 surfaceFormats := pSurfaceFormats[0:count]
9894
9895 for i in (0 .. count) {
9896 surfaceFormat := ?
9897 surfaceFormats[i] = surfaceFormat
9898 }
9899
9900 return ?
9901}
9902
Jesse Hallad250842017-03-10 18:35:38 -08009903@extension("VK_KHR_surface") // 1
Jesse Hallb00daad2015-11-29 19:46:20 -08009904cmd VkResult vkGetPhysicalDeviceSurfacePresentModesKHR(
9905 VkPhysicalDevice physicalDevice,
Jesse Hall1356b0d2015-11-23 17:24:58 -08009906 VkSurfaceKHR surface,
Jesse Hall03b6fe12015-11-24 12:44:21 -08009907 u32* pPresentModeCount,
Jesse Hall1356b0d2015-11-23 17:24:58 -08009908 VkPresentModeKHR* pPresentModes) {
Jesse Hallb00daad2015-11-29 19:46:20 -08009909 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
Michael Lentine88594d72015-11-12 12:49:45 -08009910
9911 count := as!u32(?)
Jesse Hall03b6fe12015-11-24 12:44:21 -08009912 pPresentModeCount[0] = count
Michael Lentine88594d72015-11-12 12:49:45 -08009913 presentModes := pPresentModes[0:count]
9914
9915 for i in (0 .. count) {
9916 presentMode := ?
9917 presentModes[i] = presentMode
9918 }
9919
9920 return ?
9921}
9922
Jesse Hallad250842017-03-10 18:35:38 -08009923@extension("VK_KHR_swapchain") // 2
Michael Lentine88594d72015-11-12 12:49:45 -08009924cmd VkResult vkCreateSwapchainKHR(
9925 VkDevice device,
9926 const VkSwapchainCreateInfoKHR* pCreateInfo,
Jesse Hall0e74f002015-11-30 11:37:59 -08009927 const VkAllocationCallbacks* pAllocator,
Michael Lentine88594d72015-11-12 12:49:45 -08009928 VkSwapchainKHR* pSwapchain) {
Jesse Hall1356b0d2015-11-23 17:24:58 -08009929 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR)
Michael Lentine88594d72015-11-12 12:49:45 -08009930 deviceObject := GetDevice(device)
9931
9932 swapchain := ?
9933 pSwapchain[0] = swapchain
9934 State.Swapchains[swapchain] = new!SwapchainObject(device: device)
9935
9936 return ?
9937}
9938
Jesse Hallad250842017-03-10 18:35:38 -08009939@extension("VK_KHR_swapchain") // 2
Jesse Hall1356b0d2015-11-23 17:24:58 -08009940cmd void vkDestroySwapchainKHR(
Michael Lentine88594d72015-11-12 12:49:45 -08009941 VkDevice device,
Jesse Hall0e74f002015-11-30 11:37:59 -08009942 VkSwapchainKHR swapchain,
9943 const VkAllocationCallbacks* pAllocator) {
Michael Lentine88594d72015-11-12 12:49:45 -08009944 deviceObject := GetDevice(device)
9945 swapchainObject := GetSwapchain(swapchain)
9946 assert(swapchainObject.device == device)
9947
9948 State.Swapchains[swapchain] = null
Michael Lentine88594d72015-11-12 12:49:45 -08009949}
9950
Jesse Hallad250842017-03-10 18:35:38 -08009951@extension("VK_KHR_swapchain") // 2
Michael Lentine88594d72015-11-12 12:49:45 -08009952cmd VkResult vkGetSwapchainImagesKHR(
9953 VkDevice device,
9954 VkSwapchainKHR swapchain,
Jesse Hall03b6fe12015-11-24 12:44:21 -08009955 u32* pSwapchainImageCount,
Michael Lentine88594d72015-11-12 12:49:45 -08009956 VkImage* pSwapchainImages) {
9957 deviceObject := GetDevice(device)
9958
9959 count := as!u32(?)
Jesse Hall03b6fe12015-11-24 12:44:21 -08009960 pSwapchainImageCount[0] = count
Michael Lentine88594d72015-11-12 12:49:45 -08009961 swapchainImages := pSwapchainImages[0:count]
9962
9963 for i in (0 .. count) {
9964 swapchainImage := ?
9965 swapchainImages[i] = swapchainImage
Jesse Hall1356b0d2015-11-23 17:24:58 -08009966 State.Images[swapchainImage] = new!ImageObject(device: device)
Michael Lentine88594d72015-11-12 12:49:45 -08009967 }
9968
9969 return ?
9970}
9971
Jesse Hallad250842017-03-10 18:35:38 -08009972@extension("VK_KHR_swapchain") // 2
Michael Lentine88594d72015-11-12 12:49:45 -08009973cmd VkResult vkAcquireNextImageKHR(
9974 VkDevice device,
9975 VkSwapchainKHR swapchain,
9976 u64 timeout,
9977 VkSemaphore semaphore,
Jesse Hall1356b0d2015-11-23 17:24:58 -08009978 VkFence fence,
Michael Lentine88594d72015-11-12 12:49:45 -08009979 u32* pImageIndex) {
9980 deviceObject := GetDevice(device)
9981 swapchainObject := GetSwapchain(swapchain)
9982
9983 imageIndex := ?
9984 pImageIndex[0] = imageIndex
9985
9986 return ?
9987}
9988
Jesse Hallad250842017-03-10 18:35:38 -08009989@extension("VK_KHR_swapchain") // 2
Michael Lentine88594d72015-11-12 12:49:45 -08009990cmd VkResult vkQueuePresentKHR(
9991 VkQueue queue,
Jesse Hallf4ab2b12015-11-30 16:04:55 -08009992 const VkPresentInfoKHR* pPresentInfo) {
Michael Lentine88594d72015-11-12 12:49:45 -08009993 queueObject := GetQueue(queue)
9994
9995 presentInfo := ?
9996 pPresentInfo[0] = presentInfo
9997
9998 return ?
9999}
10000
Ian Elliott28bd2c32017-10-13 09:21:12 -060010001@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -040010002@extension("VK_KHR_swapchain") // 2
10003cmd VkResult vkGetDeviceGroupPresentCapabilitiesKHR(
10004 VkDevice device,
10005 VkDeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities) {
10006 return ?
10007}
10008
Ian Elliott28bd2c32017-10-13 09:21:12 -060010009@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -040010010@extension("VK_KHR_swapchain") // 2
10011cmd VkResult vkGetDeviceGroupSurfacePresentModesKHR(
10012 VkDevice device,
10013 VkSurfaceKHR surface,
10014 VkDeviceGroupPresentModeFlagsKHR* pModes) {
10015 return ?
10016}
10017
Ian Elliott28bd2c32017-10-13 09:21:12 -060010018@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -040010019@extension("VK_KHR_swapchain") // 2
10020cmd VkResult vkGetPhysicalDevicePresentRectanglesKHR(
10021 VkPhysicalDevice physicalDevice,
10022 VkSurfaceKHR surface,
10023 u32* pRectCount,
10024 VkRect2D* pRects) {
10025 return ?
10026}
10027
Ian Elliott28bd2c32017-10-13 09:21:12 -060010028@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -040010029@extension("VK_KHR_swapchain") // 2
10030cmd VkResult vkAcquireNextImage2KHR(
10031 VkDevice device,
10032 const VkAcquireNextImageInfoKHR* pAcquireInfo,
10033 u32* pImageIndex) {
10034 return ?
10035}
10036
Jesse Hallad250842017-03-10 18:35:38 -080010037@extension("VK_KHR_display") // 3
Jesse Hall1356b0d2015-11-23 17:24:58 -080010038cmd VkResult vkGetPhysicalDeviceDisplayPropertiesKHR(
10039 VkPhysicalDevice physicalDevice,
Jesse Hall03b6fe12015-11-24 12:44:21 -080010040 u32* pPropertyCount,
Jesse Hall1356b0d2015-11-23 17:24:58 -080010041 VkDisplayPropertiesKHR* pProperties) {
10042 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
10043 return ?
10044}
10045
Jesse Hallad250842017-03-10 18:35:38 -080010046@extension("VK_KHR_display") // 3
Jesse Halla6429252015-11-29 18:59:42 -080010047cmd VkResult vkGetPhysicalDeviceDisplayPlanePropertiesKHR(
10048 VkPhysicalDevice physicalDevice,
10049 u32* pPropertyCount,
10050 VkDisplayPlanePropertiesKHR* pProperties) {
10051 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
10052 return ?
10053}
10054
Jesse Hallad250842017-03-10 18:35:38 -080010055@extension("VK_KHR_display") // 3
Jesse Halla6429252015-11-29 18:59:42 -080010056cmd VkResult vkGetDisplayPlaneSupportedDisplaysKHR(
10057 VkPhysicalDevice physicalDevice,
Jesse Hall3dd678a2016-01-08 21:52:01 -080010058 u32 planeIndex,
Jesse Hallf4ab2b12015-11-30 16:04:55 -080010059 u32* pDisplayCount,
10060 VkDisplayKHR* pDisplays) {
Jesse Halla6429252015-11-29 18:59:42 -080010061 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
10062 return ?
10063}
10064
Jesse Hallad250842017-03-10 18:35:38 -080010065@extension("VK_KHR_display") // 3
Jesse Hall1356b0d2015-11-23 17:24:58 -080010066cmd VkResult vkGetDisplayModePropertiesKHR(
10067 VkPhysicalDevice physicalDevice,
10068 VkDisplayKHR display,
Jesse Hall03b6fe12015-11-24 12:44:21 -080010069 u32* pPropertyCount,
10070 VkDisplayModePropertiesKHR* pProperties) {
Jesse Hall1356b0d2015-11-23 17:24:58 -080010071 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
10072 return ?
10073}
10074
Jesse Hallad250842017-03-10 18:35:38 -080010075@extension("VK_KHR_display") // 3
Jesse Hall1356b0d2015-11-23 17:24:58 -080010076cmd VkResult vkCreateDisplayModeKHR(
10077 VkPhysicalDevice physicalDevice,
10078 VkDisplayKHR display,
10079 const VkDisplayModeCreateInfoKHR* pCreateInfo,
Jesse Hall0e74f002015-11-30 11:37:59 -080010080 const VkAllocationCallbacks* pAllocator,
Jesse Hall1356b0d2015-11-23 17:24:58 -080010081 VkDisplayModeKHR* pMode) {
10082 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
10083 return ?
10084}
10085
Jesse Hallad250842017-03-10 18:35:38 -080010086@extension("VK_KHR_display") // 3
Jesse Halla6429252015-11-29 18:59:42 -080010087cmd VkResult vkGetDisplayPlaneCapabilitiesKHR(
Jesse Hall1356b0d2015-11-23 17:24:58 -080010088 VkPhysicalDevice physicalDevice,
Jesse Hall9ba8bc82015-11-30 16:22:16 -080010089 VkDisplayModeKHR mode,
Jesse Hall1356b0d2015-11-23 17:24:58 -080010090 u32 planeIndex,
Jesse Halla6429252015-11-29 18:59:42 -080010091 VkDisplayPlaneCapabilitiesKHR* pCapabilities) {
Jesse Hall1356b0d2015-11-23 17:24:58 -080010092 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
10093 return ?
10094}
10095
Jesse Hallad250842017-03-10 18:35:38 -080010096@extension("VK_KHR_display") // 3
Jesse Halla6429252015-11-29 18:59:42 -080010097cmd VkResult vkCreateDisplayPlaneSurfaceKHR(
10098 VkInstance instance,
10099 const VkDisplaySurfaceCreateInfoKHR* pCreateInfo,
Jesse Hall0e74f002015-11-30 11:37:59 -080010100 const VkAllocationCallbacks* pAllocator,
Jesse Halla6429252015-11-29 18:59:42 -080010101 VkSurfaceKHR* pSurface) {
10102 return ?
10103}
10104
Jesse Hallad250842017-03-10 18:35:38 -080010105@extension("VK_KHR_display_swapchain") // 4
Jesse Hall9ba8bc82015-11-30 16:22:16 -080010106cmd VkResult vkCreateSharedSwapchainsKHR(
10107 VkDevice device,
10108 u32 swapchainCount,
10109 const VkSwapchainCreateInfoKHR* pCreateInfos,
10110 const VkAllocationCallbacks* pAllocator,
10111 VkSwapchainKHR* pSwapchains) {
10112 return ?
10113}
10114
Jesse Hallad250842017-03-10 18:35:38 -080010115@extension("VK_KHR_xlib_surface") // 5
Jesse Halla6429252015-11-29 18:59:42 -080010116cmd VkResult vkCreateXlibSurfaceKHR(
Jesse Hall1356b0d2015-11-23 17:24:58 -080010117 VkInstance instance,
Jesse Hallf9fa9a52016-01-08 16:08:51 -080010118 const VkXlibSurfaceCreateInfoKHR* pCreateInfo,
Jesse Hall0e74f002015-11-30 11:37:59 -080010119 const VkAllocationCallbacks* pAllocator,
Jesse Hall1356b0d2015-11-23 17:24:58 -080010120 VkSurfaceKHR* pSurface) {
10121 instanceObject := GetInstance(instance)
10122 return ?
10123}
10124
Jesse Hallad250842017-03-10 18:35:38 -080010125@extension("VK_KHR_xlib_surface") // 5
Jesse Halla6429252015-11-29 18:59:42 -080010126cmd VkBool32 vkGetPhysicalDeviceXlibPresentationSupportKHR(
10127 VkPhysicalDevice physicalDevice,
10128 u32 queueFamilyIndex,
10129 platform.Display* dpy,
Jesse Hall65ab5522015-11-30 00:07:16 -080010130 platform.VisualID visualID) {
Jesse Halla6429252015-11-29 18:59:42 -080010131 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
10132 return ?
10133}
10134
Jesse Hallad250842017-03-10 18:35:38 -080010135@extension("VK_KHR_xcb_surface") // 6
Jesse Hallf9fa9a52016-01-08 16:08:51 -080010136cmd VkResult vkCreateXcbSurfaceKHR(
Jesse Hall1356b0d2015-11-23 17:24:58 -080010137 VkInstance instance,
Jesse Hallf9fa9a52016-01-08 16:08:51 -080010138 const VkXcbSurfaceCreateInfoKHR* pCreateInfo,
Jesse Hall0e74f002015-11-30 11:37:59 -080010139 const VkAllocationCallbacks* pAllocator,
Jesse Hall1356b0d2015-11-23 17:24:58 -080010140 VkSurfaceKHR* pSurface) {
10141 instanceObject := GetInstance(instance)
10142 return ?
10143}
10144
Jesse Hallad250842017-03-10 18:35:38 -080010145@extension("VK_KHR_xcb_surface") // 6
Jesse Halla6429252015-11-29 18:59:42 -080010146cmd VkBool32 vkGetPhysicalDeviceXcbPresentationSupportKHR(
10147 VkPhysicalDevice physicalDevice,
10148 u32 queueFamilyIndex,
10149 platform.xcb_connection_t* connection,
10150 platform.xcb_visualid_t visual_id) {
10151 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
10152 return ?
10153}
10154
Jesse Hallad250842017-03-10 18:35:38 -080010155@extension("VK_KHR_wayland_surface") // 7
Jesse Hall1356b0d2015-11-23 17:24:58 -080010156cmd VkResult vkCreateWaylandSurfaceKHR(
10157 VkInstance instance,
Jesse Hallf9fa9a52016-01-08 16:08:51 -080010158 const VkWaylandSurfaceCreateInfoKHR* pCreateInfo,
Jesse Hall0e74f002015-11-30 11:37:59 -080010159 const VkAllocationCallbacks* pAllocator,
Jesse Hall1356b0d2015-11-23 17:24:58 -080010160 VkSurfaceKHR* pSurface) {
10161 instanceObject := GetInstance(instance)
10162 return ?
10163}
10164
Jesse Hallad250842017-03-10 18:35:38 -080010165@extension("VK_KHR_wayland_surface") // 7
Jesse Halla6429252015-11-29 18:59:42 -080010166cmd VkBool32 vkGetPhysicalDeviceWaylandPresentationSupportKHR(
10167 VkPhysicalDevice physicalDevice,
10168 u32 queueFamilyIndex,
10169 platform.wl_display* display) {
10170 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
10171 return ?
10172}
10173
Jesse Hallad250842017-03-10 18:35:38 -080010174@extension("VK_KHR_mir_surface") // 8
Jesse Hall1356b0d2015-11-23 17:24:58 -080010175cmd VkResult vkCreateMirSurfaceKHR(
10176 VkInstance instance,
Jesse Hallf9fa9a52016-01-08 16:08:51 -080010177 const VkMirSurfaceCreateInfoKHR* pCreateInfo,
Jesse Hall0e74f002015-11-30 11:37:59 -080010178 const VkAllocationCallbacks* pAllocator,
Jesse Hall1356b0d2015-11-23 17:24:58 -080010179 VkSurfaceKHR* pSurface) {
10180 instanceObject := GetInstance(instance)
10181 return ?
10182}
10183
Jesse Hallad250842017-03-10 18:35:38 -080010184@extension("VK_KHR_mir_surface") // 8
Jesse Halla6429252015-11-29 18:59:42 -080010185cmd VkBool32 vkGetPhysicalDeviceMirPresentationSupportKHR(
10186 VkPhysicalDevice physicalDevice,
10187 u32 queueFamilyIndex,
10188 platform.MirConnection* connection) {
10189 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
10190 return ?
10191}
10192
Jesse Hallad250842017-03-10 18:35:38 -080010193@extension("VK_KHR_android_surface") // 9
Jesse Hall1356b0d2015-11-23 17:24:58 -080010194cmd VkResult vkCreateAndroidSurfaceKHR(
10195 VkInstance instance,
Jesse Hallf9fa9a52016-01-08 16:08:51 -080010196 const VkAndroidSurfaceCreateInfoKHR* pCreateInfo,
Jesse Hall0e74f002015-11-30 11:37:59 -080010197 const VkAllocationCallbacks* pAllocator,
Jesse Hall1356b0d2015-11-23 17:24:58 -080010198 VkSurfaceKHR* pSurface) {
10199 instanceObject := GetInstance(instance)
10200 return ?
10201}
10202
Jesse Hallad250842017-03-10 18:35:38 -080010203@extension("VK_KHR_win32_surface") // 10
Jesse Hall1356b0d2015-11-23 17:24:58 -080010204cmd VkResult vkCreateWin32SurfaceKHR(
10205 VkInstance instance,
Jesse Hallf9fa9a52016-01-08 16:08:51 -080010206 const VkWin32SurfaceCreateInfoKHR* pCreateInfo,
Jesse Hall0e74f002015-11-30 11:37:59 -080010207 const VkAllocationCallbacks* pAllocator,
Jesse Hall1356b0d2015-11-23 17:24:58 -080010208 VkSurfaceKHR* pSurface) {
10209 instanceObject := GetInstance(instance)
10210 return ?
10211}
10212
Jesse Hallad250842017-03-10 18:35:38 -080010213@extension("VK_KHR_win32_surface") // 10
Jesse Halla6429252015-11-29 18:59:42 -080010214cmd VkResult vkGetPhysicalDeviceWin32PresentationSupportKHR(
10215 VkPhysicalDevice physicalDevice,
10216 u32 queueFamilyIndex) {
Jesse Halle2948d82016-02-25 04:19:32 -080010217 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
Jesse Halla6429252015-11-29 18:59:42 -080010218 return ?
10219}
10220
Jesse Hallad250842017-03-10 18:35:38 -080010221@extension("VK_ANDROID_native_buffer") // 11
Jesse Halld1abd742017-02-09 21:45:51 -080010222@optional
Chia-I Wub262ddc2016-03-22 07:38:20 +080010223cmd VkResult vkGetSwapchainGrallocUsageANDROID(
10224 VkDevice device,
10225 VkFormat format,
10226 VkImageUsageFlags imageUsage,
Jesse Halld1abd742017-02-09 21:45:51 -080010227 s32* grallocUsage) {
Chia-I Wub262ddc2016-03-22 07:38:20 +080010228 return ?
10229}
10230
Jesse Hallad250842017-03-10 18:35:38 -080010231@extension("VK_ANDROID_native_buffer") // 11
Jesse Halld1abd742017-02-09 21:45:51 -080010232@optional
Chris Forbes8e4438b2016-12-07 16:26:49 +130010233cmd VkResult vkGetSwapchainGrallocUsage2ANDROID(
10234 VkDevice device,
10235 VkFormat format,
10236 VkImageUsageFlags imageUsage,
10237 VkSwapchainImageUsageFlagsANDROID swapchainImageUsage,
Jesse Halld1abd742017-02-09 21:45:51 -080010238 u64* grallocConsumerUsage,
10239 u64* grallocProducerUsage) {
Chris Forbes8e4438b2016-12-07 16:26:49 +130010240 return ?
10241}
10242
Jesse Hallad250842017-03-10 18:35:38 -080010243@extension("VK_ANDROID_native_buffer") // 11
Chia-I Wub262ddc2016-03-22 07:38:20 +080010244cmd VkResult vkAcquireImageANDROID(
10245 VkDevice device,
10246 VkImage image,
10247 int nativeFenceFd,
10248 VkSemaphore semaphore,
10249 VkFence fence) {
10250 return ?
10251}
10252
Jesse Hallad250842017-03-10 18:35:38 -080010253@extension("VK_ANDROID_native_buffer") // 11
Chia-I Wub262ddc2016-03-22 07:38:20 +080010254cmd VkResult vkQueueSignalReleaseImageANDROID(
10255 VkQueue queue,
10256 u32 waitSemaphoreCount,
10257 const VkSemaphore* pWaitSemaphores,
10258 VkImage image,
10259 int* pNativeFenceFd) {
10260 return ?
10261}
10262
Jesse Hallad250842017-03-10 18:35:38 -080010263@extension("VK_EXT_debug_report") // 12
10264@external type void* PFN_vkDebugReportCallbackEXT
10265@extension("VK_EXT_debug_report") // 12
10266@pfn cmd VkBool32 vkDebugReportCallbackEXT(
10267 VkDebugReportFlagsEXT flags,
10268 VkDebugReportObjectTypeEXT objectType,
10269 u64 object,
10270 platform.size_t location,
10271 s32 messageCode,
10272 const char* pLayerPrefix,
10273 const char* pMessage,
10274 void* pUserData) {
10275 return ?
10276}
10277
10278@extension("VK_EXT_debug_report") // 12
10279cmd VkResult vkCreateDebugReportCallbackEXT(
10280 VkInstance instance,
10281 const VkDebugReportCallbackCreateInfoEXT* pCreateInfo,
10282 const VkAllocationCallbacks* pAllocator,
10283 VkDebugReportCallbackEXT* pCallback) {
10284 return ?
10285}
10286
10287@extension("VK_EXT_debug_report") // 12
10288cmd void vkDestroyDebugReportCallbackEXT(
10289 VkInstance instance,
10290 VkDebugReportCallbackEXT callback,
10291 const VkAllocationCallbacks* pAllocator) {
10292}
10293
10294@extension("VK_EXT_debug_report") // 12
10295cmd void vkDebugReportMessageEXT(
10296 VkInstance instance,
10297 VkDebugReportFlagsEXT flags,
10298 VkDebugReportObjectTypeEXT objectType,
10299 u64 object,
10300 platform.size_t location,
10301 s32 messageCode,
10302 const char* pLayerPrefix,
10303 const char* pMessage) {
10304}
10305
10306@extension("VK_EXT_debug_marker") // 23
10307cmd VkResult vkDebugMarkerSetObjectTagEXT(
10308 VkDevice device,
Jesse Hall77726222017-09-19 14:49:27 -050010309 const VkDebugMarkerObjectTagInfoEXT* pTagInfo) {
Jesse Hallad250842017-03-10 18:35:38 -080010310 return ?
10311}
10312
10313@extension("VK_EXT_debug_marker") // 23
10314cmd VkResult vkDebugMarkerSetObjectNameEXT(
10315 VkDevice device,
Jesse Hall77726222017-09-19 14:49:27 -050010316 const VkDebugMarkerObjectNameInfoEXT* pNameInfo) {
Jesse Hallad250842017-03-10 18:35:38 -080010317 return ?
10318}
10319
10320@extension("VK_EXT_debug_marker") // 23
10321cmd void vkCmdDebugMarkerBeginEXT(
10322 VkCommandBuffer commandBuffer,
Jesse Hall77726222017-09-19 14:49:27 -050010323 const VkDebugMarkerMarkerInfoEXT* pMarkerInfo) {
Jesse Hallad250842017-03-10 18:35:38 -080010324}
10325
10326@extension("VK_EXT_debug_marker") // 23
10327cmd void vkCmdDebugMarkerEndEXT(
10328 VkCommandBuffer commandBuffer) {
10329}
10330
10331@extension("VK_EXT_debug_marker") // 23
10332cmd void vkCmdDebugMarkerInsertEXT(
10333 VkCommandBuffer commandBuffer,
Jesse Hall77726222017-09-19 14:49:27 -050010334 const VkDebugMarkerMarkerInfoEXT* pMarkerInfo) {
Jesse Hallad250842017-03-10 18:35:38 -080010335}
10336
10337@extension("VK_AMD_draw_indirect_count") // 34
10338cmd void vkCmdDrawIndirectCountAMD(
10339 VkCommandBuffer commandBuffer,
10340 VkBuffer buffer,
10341 VkDeviceSize offset,
10342 VkBuffer countBuffer,
10343 VkDeviceSize countBufferOffset,
10344 u32 maxDrawCount,
10345 u32 stride) {
10346}
10347
10348@extension("VK_AMD_draw_indirect_count") // 34
10349cmd void vkCmdDrawIndexedIndirectCountAMD(
10350 VkCommandBuffer commandBuffer,
10351 VkBuffer buffer,
10352 VkDeviceSize offset,
10353 VkBuffer countBuffer,
10354 VkDeviceSize countBufferOffset,
10355 u32 maxDrawCount,
10356 u32 stride) {
10357}
10358
Jesse Hall8c954d32018-01-17 22:06:20 -080010359@extension("VK_AMD_shader_info") // 43
10360cmd VkResult vkGetShaderInfoAMD(
10361 VkDevice device,
10362 VkPipeline pipeline,
10363 VkShaderStageFlagBits shaderStage,
10364 VkShaderInfoTypeAMD infoType,
10365 platform.size_t* pInfoSize,
10366 void* pInfo) {
10367 return ?
10368}
10369
Jesse Hallad250842017-03-10 18:35:38 -080010370@extension("VK_NV_external_memory_capabilities") // 56
10371cmd VkResult vkGetPhysicalDeviceExternalImageFormatPropertiesNV(
10372 VkPhysicalDevice physicalDevice,
10373 VkFormat format,
10374 VkImageType type,
10375 VkImageTiling tiling,
10376 VkImageUsageFlags usage,
10377 VkImageCreateFlags flags,
10378 VkExternalMemoryHandleTypeFlagsNV externalHandleType,
10379 VkExternalImageFormatPropertiesNV* pExternalImageFormatProperties) {
10380 return ?
10381}
10382
10383@extension("VK_NV_external_memory_win32") // 58
10384cmd VkResult vkGetMemoryWin32HandleNV(
10385 VkDevice device,
10386 VkDeviceMemory memory,
10387 VkExternalMemoryHandleTypeFlagsNV handleType,
10388 platform.HANDLE* pHandle) {
10389 return ?
10390}
10391
10392@extension("VK_KHR_get_physical_device_properties2") // 60
10393cmd void vkGetPhysicalDeviceFeatures2KHR(
10394 VkPhysicalDevice physicalDevice,
10395 VkPhysicalDeviceFeatures2KHR* pFeatures) {
10396}
10397
10398@extension("VK_KHR_get_physical_device_properties2") // 60
10399cmd void vkGetPhysicalDeviceProperties2KHR(
10400 VkPhysicalDevice physicalDevice,
10401 VkPhysicalDeviceProperties2KHR* pProperties) {
10402}
10403
10404@extension("VK_KHR_get_physical_device_properties2") // 60
10405cmd void vkGetPhysicalDeviceFormatProperties2KHR(
10406 VkPhysicalDevice physicalDevice,
10407 VkFormat format,
10408 VkFormatProperties2KHR* pFormatProperties) {
10409}
10410
10411@extension("VK_KHR_get_physical_device_properties2") // 60
10412cmd VkResult vkGetPhysicalDeviceImageFormatProperties2KHR(
10413 VkPhysicalDevice physicalDevice,
10414 const VkPhysicalDeviceImageFormatInfo2KHR* pImageFormatInfo,
10415 VkImageFormatProperties2KHR* pImageFormatProperties) {
10416 return ?
10417}
10418
10419@extension("VK_KHR_get_physical_device_properties2") // 60
10420cmd void vkGetPhysicalDeviceQueueFamilyProperties2KHR(
10421 VkPhysicalDevice physicalDevice,
10422 u32* pQueueFamilyPropertyCount,
10423 VkQueueFamilyProperties2KHR* pQueueFamilyProperties) {
10424}
10425
10426@extension("VK_KHR_get_physical_device_properties2") // 60
10427cmd void vkGetPhysicalDeviceMemoryProperties2KHR(
10428 VkPhysicalDevice physicalDevice,
10429 VkPhysicalDeviceMemoryProperties2KHR* pMemoryProperties) {
10430}
10431
10432@extension("VK_KHR_get_physical_device_properties2") // 60
10433cmd void vkGetPhysicalDeviceSparseImageFormatProperties2KHR(
10434 VkPhysicalDevice physicalDevice,
10435 const VkPhysicalDeviceSparseImageFormatInfo2KHR* pFormatInfo,
10436 u32* pPropertyCount,
10437 VkSparseImageFormatProperties2KHR* pProperties) {
10438}
10439
Daniel Koch09f7bf92017-10-05 00:26:58 -040010440@extension("VK_KHR_device_group") // 61
10441cmd void vkGetDeviceGroupPeerMemoryFeaturesKHR(
Jesse Hallad250842017-03-10 18:35:38 -080010442 VkDevice device,
10443 u32 heapIndex,
10444 u32 localDeviceIndex,
10445 u32 remoteDeviceIndex,
Daniel Koch09f7bf92017-10-05 00:26:58 -040010446 VkPeerMemoryFeatureFlagsKHR* pPeerMemoryFeatures) {
Jesse Hallad250842017-03-10 18:35:38 -080010447}
10448
Daniel Koch09f7bf92017-10-05 00:26:58 -040010449@extension("VK_KHR_device_group") // 61
10450cmd void vkCmdSetDeviceMaskKHR(
Jesse Hallad250842017-03-10 18:35:38 -080010451 VkCommandBuffer commandBuffer,
10452 u32 deviceMask) {
10453}
10454
Jesse Hallad250842017-03-10 18:35:38 -080010455
Daniel Koch09f7bf92017-10-05 00:26:58 -040010456@extension("VK_KHR_device_group") // 61
10457cmd void vkCmdDispatchBaseKHR(
Jesse Hallad250842017-03-10 18:35:38 -080010458 VkCommandBuffer commandBuffer,
10459 u32 baseGroupX,
10460 u32 baseGroupY,
10461 u32 baseGroupZ,
10462 u32 groupCountX,
10463 u32 groupCountY,
10464 u32 groupCountZ) {
10465}
10466
Jesse Hallad250842017-03-10 18:35:38 -080010467@extension("VK_NN_vi_surface") // 63
10468cmd VkResult vkCreateViSurfaceNN(
10469 VkInstance instance,
10470 const VkViSurfaceCreateInfoNN* pCreateInfo,
10471 const VkAllocationCallbacks* pAllocator,
10472 VkSurfaceKHR* pSurface) {
10473 return ?
10474}
10475
10476@extension("VK_KHR_maintenance1") // 70
10477cmd void vkTrimCommandPoolKHR(
10478 VkDevice device,
10479 VkCommandPool commandPool,
10480 VkCommandPoolTrimFlagsKHR flags) {
10481}
10482
Daniel Koch09f7bf92017-10-05 00:26:58 -040010483@extension("VK_KHR_device_group_creation") // 71
10484@threadSafety("system")
10485cmd VkResult vkEnumeratePhysicalDeviceGroupsKHR(
Jesse Hallad250842017-03-10 18:35:38 -080010486 VkInstance instance,
10487 u32* pPhysicalDeviceGroupCount,
Daniel Koch09f7bf92017-10-05 00:26:58 -040010488 VkPhysicalDeviceGroupPropertiesKHR* pPhysicalDeviceGroupProperties) {
10489 instanceObject := GetInstance(instance)
10490
10491 physicalDeviceGroupCount := as!u32(?)
10492 pPhysicalDeviceGroupCount[0] = physicalDeviceGroupCount
10493 physicalDevices := pPhysicalDeviceGroupProperties[0:physicalDeviceGroupCount]
10494
10495 for i in (0 .. physicalDeviceGroupCount) {
10496 physicalDevice := ?
10497 physicalDevices[i] = physicalDevice
10498 if !(physicalDevice in State.PhysicalDevices) {
10499 State.PhysicalDevices[physicalDevice] = new!PhysicalDeviceObject(instance: instance)
10500 }
10501 }
10502
Jesse Hallad250842017-03-10 18:35:38 -080010503 return ?
10504}
10505
Jesse Hall9492f992017-08-28 12:10:06 -070010506@extension("VK_KHR_external_memory_capabilities") // 72
10507cmd void vkGetPhysicalDeviceExternalBufferPropertiesKHR(
Jesse Hallad250842017-03-10 18:35:38 -080010508 VkPhysicalDevice physicalDevice,
Jesse Hall9492f992017-08-28 12:10:06 -070010509 const VkPhysicalDeviceExternalBufferInfoKHR* pExternalBufferInfo,
10510 VkExternalBufferPropertiesKHR* pExternalBufferProperties) {
Jesse Hallad250842017-03-10 18:35:38 -080010511}
10512
Jesse Hall9492f992017-08-28 12:10:06 -070010513@extension("VK_KHR_external_memory_win32") // 74
10514cmd VkResult vkGetMemoryWin32HandleKHR(
Jesse Hallad250842017-03-10 18:35:38 -080010515 VkDevice device,
Jesse Hall9492f992017-08-28 12:10:06 -070010516 const VkMemoryGetWin32HandleInfoKHR* pGetWin32HandleInfo,
Jesse Hallad250842017-03-10 18:35:38 -080010517 platform.HANDLE* pHandle) {
10518 return ?
10519}
10520
Jesse Hall9492f992017-08-28 12:10:06 -070010521@extension("VK_KHR_external_memory_win32") // 74
10522cmd VkResult vkGetMemoryWin32HandlePropertiesKHR(
Jesse Hallad250842017-03-10 18:35:38 -080010523 VkDevice device,
Jesse Hall9492f992017-08-28 12:10:06 -070010524 VkExternalMemoryHandleTypeFlagBitsKHR handleType,
Jesse Hallad250842017-03-10 18:35:38 -080010525 platform.HANDLE handle,
Jesse Hall9492f992017-08-28 12:10:06 -070010526 VkMemoryWin32HandlePropertiesKHR* pMemoryWin32HandleProperties) {
Jesse Hallad250842017-03-10 18:35:38 -080010527 return ?
10528}
10529
Jesse Hall9492f992017-08-28 12:10:06 -070010530@extension("VK_KHR_external_memory_fd") // 75
10531cmd VkResult vkGetMemoryFdKHR(
Jesse Hallad250842017-03-10 18:35:38 -080010532 VkDevice device,
Jesse Hall9492f992017-08-28 12:10:06 -070010533 const VkMemoryGetFdInfoKHR* pGetFdInfo,
Jesse Hallad250842017-03-10 18:35:38 -080010534 s32* pFd) {
10535 return ?
10536}
10537
Jesse Hall9492f992017-08-28 12:10:06 -070010538@extension("VK_KHR_external_memory_fd") // 75
10539cmd VkResult vkGetMemoryFdPropertiesKHR(
Jesse Hallad250842017-03-10 18:35:38 -080010540 VkDevice device,
Jesse Hall9492f992017-08-28 12:10:06 -070010541 VkExternalMemoryHandleTypeFlagBitsKHR handleType,
Jesse Hallad250842017-03-10 18:35:38 -080010542 s32 fd,
Jesse Hall9492f992017-08-28 12:10:06 -070010543 VkMemoryFdPropertiesKHR* pMemoryFdProperties) {
Jesse Hallad250842017-03-10 18:35:38 -080010544 return ?
10545}
10546
Jesse Hall9492f992017-08-28 12:10:06 -070010547@extension("VK_KHR_external_semaphore_capabilities") // 77
10548cmd void vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(
Jesse Hallad250842017-03-10 18:35:38 -080010549 VkPhysicalDevice physicalDevice,
Jesse Hall9492f992017-08-28 12:10:06 -070010550 const VkPhysicalDeviceExternalSemaphoreInfoKHR* pExternalSemaphoreInfo,
10551 VkExternalSemaphorePropertiesKHR* pExternalSemaphoreProperties) {
Jesse Hallad250842017-03-10 18:35:38 -080010552}
10553
Jesse Hall9492f992017-08-28 12:10:06 -070010554@extension("VK_KHR_external_semaphore_win32") // 79
10555cmd VkResult vkImportSemaphoreWin32HandleKHR(
Jesse Hallad250842017-03-10 18:35:38 -080010556 VkDevice device,
Jesse Hall9492f992017-08-28 12:10:06 -070010557 const VkImportSemaphoreWin32HandleInfoKHR* pImportSemaphoreWin32HandleInfo) {
Jesse Hallad250842017-03-10 18:35:38 -080010558 return ?
10559}
10560
Jesse Hall9492f992017-08-28 12:10:06 -070010561@extension("VK_KHR_external_semaphore_win32") // 79
10562cmd VkResult vkGetSemaphoreWin32HandleKHR(
Jesse Hallad250842017-03-10 18:35:38 -080010563 VkDevice device,
Jesse Hall9492f992017-08-28 12:10:06 -070010564 const VkSemaphoreGetWin32HandleInfoKHR* pGetWin32HandleInfo,
Jesse Hallad250842017-03-10 18:35:38 -080010565 platform.HANDLE* pHandle) {
10566 return ?
10567}
10568
Jesse Hall9492f992017-08-28 12:10:06 -070010569@extension("VK_KHR_external_semaphore_fd") // 80
10570cmd VkResult vkImportSemaphoreFdKHR(
Jesse Hallad250842017-03-10 18:35:38 -080010571 VkDevice device,
Jesse Hall9492f992017-08-28 12:10:06 -070010572 const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo) {
Jesse Hallad250842017-03-10 18:35:38 -080010573 return ?
10574}
10575
Jesse Hall9492f992017-08-28 12:10:06 -070010576@extension("VK_KHR_external_semaphore_fd") // 80
10577cmd VkResult vkGetSemaphoreFdKHR(
Jesse Hallad250842017-03-10 18:35:38 -080010578 VkDevice device,
Jesse Hall9492f992017-08-28 12:10:06 -070010579 const VkSemaphoreGetFdInfoKHR* pGetFdInfo,
Jesse Hallad250842017-03-10 18:35:38 -080010580 s32* pFd) {
10581 return ?
10582}
10583
10584@extension("VK_KHR_push_descriptor") // 81
10585cmd void vkCmdPushDescriptorSetKHR(
10586 VkCommandBuffer commandBuffer,
10587 VkPipelineBindPoint pipelineBindPoint,
10588 VkPipelineLayout layout,
10589 u32 set,
10590 u32 descriptorWriteCount,
10591 const VkWriteDescriptorSet* pDescriptorWrites) {
10592}
10593
Jesse Halla13a3cf2018-07-09 15:51:52 -070010594@extension("VK_EXT_conditional_rendering") // 82
10595cmd void vkCmdBeginConditionalRenderingEXT(
10596 VkCommandBuffer commandBuffer,
10597 const VkConditionalRenderingBeginInfoEXT* pConditionalRenderingBegin) {
10598}
10599
10600@extension("VK_EXT_conditional_rendering") // 82
10601cmd void vkCmdEndConditionalRenderingEXT(
10602 VkCommandBuffer commandBuffer) {
10603}
10604
Jesse Hallad250842017-03-10 18:35:38 -080010605@extension("VK_KHR_descriptor_update_template") // 86
10606cmd VkResult vkCreateDescriptorUpdateTemplateKHR(
10607 VkDevice device,
10608 const VkDescriptorUpdateTemplateCreateInfoKHR* pCreateInfo,
10609 const VkAllocationCallbacks* pAllocator,
10610 VkDescriptorUpdateTemplateKHR* pDescriptorUpdateTemplate) {
10611 return ?
10612}
10613
10614@extension("VK_KHR_descriptor_update_template") // 86
10615cmd void vkDestroyDescriptorUpdateTemplateKHR(
10616 VkDevice device,
10617 VkDescriptorUpdateTemplateKHR descriptorUpdateTemplate,
10618 const VkAllocationCallbacks* pAllocator) {
10619}
10620
10621@extension("VK_KHR_descriptor_update_template") // 86
10622cmd void vkUpdateDescriptorSetWithTemplateKHR(
10623 VkDevice device,
10624 VkDescriptorSet descriptorSet,
10625 VkDescriptorUpdateTemplateKHR descriptorUpdateTemplate,
10626 const void* pData) {
10627}
10628
10629@extension("VK_KHR_descriptor_update_template") // 86
10630cmd void vkCmdPushDescriptorSetWithTemplateKHR(
10631 VkCommandBuffer commandBuffer,
10632 VkDescriptorUpdateTemplateKHR descriptorUpdateTemplate,
10633 VkPipelineLayout layout,
10634 u32 set,
10635 const void* pData) {
10636}
10637
10638@extension("VK_NVX_device_generated_commands") // 87
10639cmd void vkCmdProcessCommandsNVX(
10640 VkCommandBuffer commandBuffer,
10641 const VkCmdProcessCommandsInfoNVX* pProcessCommandsInfo) {
10642}
10643
10644@extension("VK_NVX_device_generated_commands") // 87
10645cmd void vkCmdReserveSpaceForCommandsNVX(
10646 VkCommandBuffer commandBuffer,
10647 const VkCmdReserveSpaceForCommandsInfoNVX* pReserveSpaceInfo) {
10648}
10649
10650@extension("VK_NVX_device_generated_commands") // 87
10651cmd VkResult vkCreateIndirectCommandsLayoutNVX(
10652 VkDevice device,
10653 const VkIndirectCommandsLayoutCreateInfoNVX* pCreateInfo,
10654 const VkAllocationCallbacks* pAllocator,
10655 VkIndirectCommandsLayoutNVX* pIndirectCommandsLayout) {
10656 return ?
10657}
10658
10659@extension("VK_NVX_device_generated_commands") // 87
10660cmd void vkDestroyIndirectCommandsLayoutNVX(
10661 VkDevice device,
10662 VkIndirectCommandsLayoutNVX indirectCommandsLayout,
10663 const VkAllocationCallbacks* pAllocator) {
10664}
10665
10666@extension("VK_NVX_device_generated_commands") // 87
10667cmd VkResult vkCreateObjectTableNVX(
10668 VkDevice device,
10669 const VkObjectTableCreateInfoNVX* pCreateInfo,
10670 const VkAllocationCallbacks* pAllocator,
10671 VkObjectTableNVX* pObjectTable) {
10672 return ?
10673}
10674
10675@extension("VK_NVX_device_generated_commands") // 87
10676cmd void vkDestroyObjectTableNVX(
10677 VkDevice device,
10678 VkObjectTableNVX objectTable,
10679 const VkAllocationCallbacks* pAllocator) {
10680}
10681
10682@extension("VK_NVX_device_generated_commands") // 87
10683cmd VkResult vkRegisterObjectsNVX(
10684 VkDevice device,
10685 VkObjectTableNVX objectTable,
10686 u32 objectCount,
10687 const VkObjectTableEntryNVX* const* ppObjectTableEntries,
10688 const u32* pObjectIndices) {
10689 return ?
10690}
10691
10692@extension("VK_NVX_device_generated_commands") // 87
10693cmd VkResult vkUnregisterObjectsNVX(
10694 VkDevice device,
10695 VkObjectTableNVX objectTable,
10696 u32 objectCount,
10697 const VkObjectEntryTypeNVX* pObjectEntryTypes,
10698 const u32* pObjectIndices) {
10699 return ?
10700}
10701
10702@extension("VK_NVX_device_generated_commands") // 87
10703cmd void vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX(
10704 VkPhysicalDevice physicalDevice,
10705 VkDeviceGeneratedCommandsFeaturesNVX* pFeatures,
10706 VkDeviceGeneratedCommandsLimitsNVX* pLimits) {
10707}
10708
10709@extension("VK_NV_clip_space_w_scaling") // 88
10710cmd void vkCmdSetViewportWScalingNV(
10711 VkCommandBuffer commandBuffer,
10712 u32 firstViewport,
10713 u32 viewportCount,
10714 const VkViewportWScalingNV* pViewportWScalings) {
10715}
10716
10717@extension("VK_EXT_direct_mode_display") // 89
10718cmd VkResult vkReleaseDisplayEXT(
10719 VkPhysicalDevice physicalDevice,
10720 VkDisplayKHR display) {
10721 return ?
10722}
10723
10724@extension("VK_EXT_acquire_xlib_display") // 90
10725cmd VkResult vkAcquireXlibDisplayEXT(
10726 VkPhysicalDevice physicalDevice,
10727 platform.Display* dpy,
10728 VkDisplayKHR display) {
10729 return ?
10730}
10731
10732@extension("VK_EXT_acquire_xlib_display") // 90
10733cmd VkResult vkGetRandROutputDisplayEXT(
10734 VkPhysicalDevice physicalDevice,
10735 platform.Display* dpy,
10736 platform.RROutput rrOutput,
10737 VkDisplayKHR* pDisplay) {
10738 return ?
10739}
10740
10741@extension("VK_EXT_display_surface_counter") // 91
10742cmd VkResult vkGetPhysicalDeviceSurfaceCapabilities2EXT(
10743 VkPhysicalDevice physicalDevice,
10744 VkSurfaceKHR surface,
10745 VkSurfaceCapabilities2EXT* pSurfaceCapabilities) {
10746 return ?
10747}
10748
10749@extension("VK_EXT_display_control") // 92
10750cmd VkResult vkDisplayPowerControlEXT(
10751 VkDevice device,
10752 VkDisplayKHR display,
10753 const VkDisplayPowerInfoEXT* pDisplayPowerInfo) {
10754 return ?
10755}
10756
10757@extension("VK_EXT_display_control") // 92
10758cmd VkResult vkRegisterDeviceEventEXT(
10759 VkDevice device,
10760 const VkDeviceEventInfoEXT* pDeviceEventInfo,
10761 const VkAllocationCallbacks* pAllocator,
10762 VkFence* pFence) {
10763 return ?
10764}
10765
10766@extension("VK_EXT_display_control") // 92
10767cmd VkResult vkRegisterDisplayEventEXT(
10768 VkDevice device,
10769 VkDisplayKHR display,
10770 const VkDisplayEventInfoEXT* pDisplayEventInfo,
10771 const VkAllocationCallbacks* pAllocator,
10772 VkFence* pFence) {
10773 return ?
10774}
10775
10776@extension("VK_EXT_display_control") // 92
10777cmd VkResult vkGetSwapchainCounterEXT(
10778 VkDevice device,
10779 VkSwapchainKHR swapchain,
10780 VkSurfaceCounterFlagBitsEXT counter,
10781 u64* pCounterValue) {
10782 return ?
10783}
10784
10785@extension("VK_GOOGLE_display_timing") // 93
Ian Elliott4c8bb2a2016-12-29 11:07:26 -070010786cmd VkResult vkGetRefreshCycleDurationGOOGLE(
Jesse Hallfdc8ab32017-03-10 21:01:57 -080010787 VkDevice device,
10788 VkSwapchainKHR swapchain,
10789 VkRefreshCycleDurationGOOGLE* pDisplayTimingProperties) {
Ian Elliott4c8bb2a2016-12-29 11:07:26 -070010790 deviceObject := GetDevice(device)
10791 swapchainObject := GetSwapchain(swapchain)
10792
10793 displayTimingProperties := ?
10794 pDisplayTimingProperties[0] = displayTimingProperties
10795
10796 return ?
10797}
10798
Jesse Hallad250842017-03-10 18:35:38 -080010799@extension("VK_GOOGLE_display_timing") // 93
Ian Elliott4c8bb2a2016-12-29 11:07:26 -070010800cmd VkResult vkGetPastPresentationTimingGOOGLE(
Jesse Hallfdc8ab32017-03-10 21:01:57 -080010801 VkDevice device,
10802 VkSwapchainKHR swapchain,
10803 u32* pPresentationTimingCount,
10804 VkPastPresentationTimingGOOGLE* pPresentationTimings) {
Ian Elliott4c8bb2a2016-12-29 11:07:26 -070010805 return ?
10806}
10807
Jesse Hallad250842017-03-10 18:35:38 -080010808@extension("VK_EXT_discard_rectangles") // 100
10809cmd void vkCmdSetDiscardRectangleEXT(
Jesse Hall26763382016-05-20 07:13:52 -070010810 VkCommandBuffer commandBuffer,
Jesse Hallad250842017-03-10 18:35:38 -080010811 u32 firstDiscardRectangle,
10812 u32 discardRectangleCount,
10813 const VkRect2D* pDiscardRectangles) {
Jesse Hall26763382016-05-20 07:13:52 -070010814}
10815
Jesse Hallad250842017-03-10 18:35:38 -080010816@extension("VK_EXT_hdr_metadata") // 106
Jesse Hall889cd9a2017-02-25 22:12:23 -080010817cmd void vkSetHdrMetadataEXT(
Jesse Hallfdc8ab32017-03-10 21:01:57 -080010818 VkDevice device,
10819 u32 swapchainCount,
10820 const VkSwapchainKHR* pSwapchains,
10821 const VkHdrMetadataEXT* pMetadata) {
Jesse Hall889cd9a2017-02-25 22:12:23 -080010822}
10823
Jesse Halla13a3cf2018-07-09 15:51:52 -070010824@extension("VK_KHR_create_renderpass2") // 110
10825cmd VkResult vkCreateRenderPass2KHR(
10826 VkDevice device,
10827 const VkRenderPassCreateInfo2KHR* pCreateInfo,
10828 const VkAllocationCallbacks* pAllocator,
10829 VkRenderPass* pRenderPass) {
10830 return ?
10831}
10832
10833@extension("VK_KHR_create_renderpass2") // 110
10834cmd void vkCmdBeginRenderPass2KHR(
10835 VkCommandBuffer commandBuffer,
10836 const VkRenderPassBeginInfo* pRenderPassBegin,
10837 const VkSubpassBeginInfoKHR* pSubpassBeginInfo) {
10838}
10839
10840@extension("VK_KHR_create_renderpass2") // 110
10841cmd void vkCmdNextSubpass2KHR(
10842 VkCommandBuffer commandBuffer,
10843 const VkSubpassBeginInfoKHR* pSubpassBeginInfo,
10844 const VkSubpassEndInfoKHR* pSubpassEndInfo) {
10845}
10846
10847@extension("VK_KHR_create_renderpass2") // 110
10848cmd void vkCmdEndRenderPass2KHR(
10849 VkCommandBuffer commandBuffer,
10850 const VkSubpassEndInfoKHR* pSubpassEndInfo) {
10851}
10852
Jesse Hallad250842017-03-10 18:35:38 -080010853@extension("VK_KHR_shared_presentable_image") // 112
Chris Forbes2e12cb82017-01-18 11:45:17 +130010854cmd VkResult vkGetSwapchainStatusKHR(
10855 VkDevice device,
10856 VkSwapchainKHR swapchain) {
10857 return ?
10858}
10859
Jesse Hall9492f992017-08-28 12:10:06 -070010860@extension("VK_KHR_external_fence_capabilities") // 113
10861cmd void vkGetPhysicalDeviceExternalFencePropertiesKHR(
10862 VkPhysicalDevice physicalDevice,
10863 const VkPhysicalDeviceExternalFenceInfoKHR* pExternalFenceInfo,
10864 VkExternalFencePropertiesKHR* pExternalFenceProperties) {
10865}
10866
10867@extension("VK_KHR_external_fence_win32") // 115
10868cmd VkResult vkImportFenceWin32HandleKHR(
10869 VkDevice device,
10870 const VkImportFenceWin32HandleInfoKHR* pImportFenceWin32HandleInfo) {
10871 return ?
10872}
10873
10874@extension("VK_KHR_external_fence_win32") // 115
10875cmd VkResult vkGetFenceWin32HandleKHR(
10876 VkDevice device,
10877 const VkFenceGetWin32HandleInfoKHR* pGetWin32HandleInfo,
10878 platform.HANDLE* pHandle) {
10879 return ?
10880}
10881
10882@extension("VK_KHR_external_fence_fd") // 116
10883cmd VkResult vkImportFenceFdKHR(
10884 VkDevice device,
10885 const VkImportFenceFdInfoKHR* pImportFenceFdInfo) {
10886 return ?
10887}
10888
10889@extension("VK_KHR_external_fence_fd") // 116
10890cmd VkResult vkGetFenceFdKHR(
10891 VkDevice device,
10892 const VkFenceGetFdInfoKHR* pGetFdInfo,
10893 int* pFd) {
10894 return ?
10895}
10896
Jesse Hall05556b12017-05-18 17:40:25 -070010897@extension("VK_KHR_get_surface_capabilities2") // 120
Chris Forbese2d3ee12017-03-16 16:10:15 +130010898cmd VkResult vkGetPhysicalDeviceSurfaceCapabilities2KHR(
10899 VkPhysicalDevice physicalDevice,
10900 const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo,
10901 VkSurfaceCapabilities2KHR* pSurfaceCapabilities) {
10902 return ?
10903}
10904
Jesse Hall05556b12017-05-18 17:40:25 -070010905@extension("VK_KHR_get_surface_capabilities2") // 120
Chris Forbese2d3ee12017-03-16 16:10:15 +130010906cmd VkResult vkGetPhysicalDeviceSurfaceFormats2KHR(
10907 VkPhysicalDevice physicalDevice,
10908 const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo,
10909 u32* pSurfaceFormatCount,
10910 VkSurfaceFormat2KHR* pSurfaceFormats) {
10911 return ?
10912}
10913
Jesse Hall54f8d132018-04-18 08:16:59 -070010914@extension("VK_KHR_display_properties2") // 122
10915cmd VkResult vkGetPhysicalDeviceDisplayProperties2KHR(
10916 VkPhysicalDevice physicalDevice,
10917 u32* pPropertyCount,
10918 VkDisplayProperties2KHR* pProperties) {
10919 return ?
10920}
10921
10922@extension("VK_KHR_display_properties2") // 122
10923cmd VkResult vkGetPhysicalDeviceDisplayPlaneProperties2KHR(
10924 VkPhysicalDevice physicalDevice,
10925 u32* pPropertyCount,
10926 VkDisplayPlaneProperties2KHR* pProperties) {
10927 return ?
10928}
10929
10930@extension("VK_KHR_display_properties2") // 122
10931cmd VkResult vkGetDisplayModeProperties2KHR(
10932 VkPhysicalDevice physicalDevice,
10933 VkDisplayKHR display,
10934 u32* pPropertyCount,
10935 VkDisplayModeProperties2KHR* pProperties) {
10936 return ?
10937}
10938
10939@extension("VK_KHR_display_properties2") // 122
10940cmd VkResult vkGetDisplayPlaneCapabilities2KHR(
10941 VkPhysicalDevice physicalDevice,
10942 const VkDisplayPlaneInfo2KHR* pDisplayPlaneInfo,
10943 VkDisplayPlaneCapabilities2KHR* pCapabilities) {
10944 return ?
10945}
10946
Jesse Hallad250842017-03-10 18:35:38 -080010947@extension("VK_MVK_ios_surface") // 123
10948cmd VkResult vkCreateIOSSurfaceMVK(
10949 VkInstance instance,
10950 const VkIOSSurfaceCreateInfoMVK* pCreateInfo,
10951 const VkAllocationCallbacks* pAllocator,
10952 VkSurfaceKHR* pSurface) {
10953 return ?
10954}
10955
10956@extension("VK_MVK_macos_surface") // 124
10957cmd VkResult vkCreateMacOSSurfaceMVK(
10958 VkInstance instance,
10959 const VkMacOSSurfaceCreateInfoMVK* pCreateInfo,
10960 const VkAllocationCallbacks* pAllocator,
10961 VkSurfaceKHR* pSurface) {
10962 return ?
10963}
10964
Jesse Hall8c954d32018-01-17 22:06:20 -080010965@extension("VK_EXT_debug_utils") // 129
10966@external type void* PFN_vkDebugUtilsMessengerCallbackEXT
10967@extension("VK_EXT_debug_utils") // 129
10968@pfn cmd VkBool32 vkDebugUtilsMessengerCallbackEXT(
10969 VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity,
10970 VkDebugUtilsMessageTypeFlagsEXT messageType,
10971 const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData,
10972 void* pUserData) {
10973 return ?
10974}
10975
10976@extension("VK_EXT_debug_utils") // 129
10977cmd VkResult vkSetDebugUtilsObjectNameEXT(
10978 VkDevice device,
10979 const VkDebugUtilsObjectNameInfoEXT* pNameInfo) {
10980 return ?
10981}
Jesse Hall72e6a132018-04-06 13:00:44 -070010982
Jesse Hall8c954d32018-01-17 22:06:20 -080010983@extension("VK_EXT_debug_utils") // 129
10984cmd VkResult vkSetDebugUtilsObjectTagEXT(
10985 VkDevice device,
10986 const VkDebugUtilsObjectTagInfoEXT* pTagInfo) {
10987 return ?
10988}
Jesse Hall72e6a132018-04-06 13:00:44 -070010989
Jesse Hall8c954d32018-01-17 22:06:20 -080010990@extension("VK_EXT_debug_utils") // 129
10991cmd void vkQueueBeginDebugUtilsLabelEXT(
10992 VkQueue queue,
10993 const VkDebugUtilsLabelEXT* pLabelInfo) {
10994}
Jesse Hall72e6a132018-04-06 13:00:44 -070010995
Jesse Hall8c954d32018-01-17 22:06:20 -080010996@extension("VK_EXT_debug_utils") // 129
10997cmd void vkQueueEndDebugUtilsLabelEXT(VkQueue queue) {
10998}
Jesse Hall72e6a132018-04-06 13:00:44 -070010999
Jesse Hall8c954d32018-01-17 22:06:20 -080011000@extension("VK_EXT_debug_utils") // 129
11001cmd void vkQueueInsertDebugUtilsLabelEXT(
11002 VkQueue queue,
11003 const VkDebugUtilsLabelEXT* pLabelInfo) {
11004}
Jesse Hall72e6a132018-04-06 13:00:44 -070011005
Jesse Hall8c954d32018-01-17 22:06:20 -080011006@extension("VK_EXT_debug_utils") // 129
11007cmd void vkCmdBeginDebugUtilsLabelEXT(
11008 VkCommandBuffer commandBuffer,
11009 const VkDebugUtilsLabelEXT* pLabelInfo) {
11010}
Jesse Hall72e6a132018-04-06 13:00:44 -070011011
Jesse Hall8c954d32018-01-17 22:06:20 -080011012@extension("VK_EXT_debug_utils") // 129
11013cmd void vkCmdEndDebugUtilsLabelEXT(VkCommandBuffer commandBuffer) {
11014}
11015
11016@extension("VK_EXT_debug_utils") // 129
11017cmd void vkCmdInsertDebugUtilsLabelEXT(
11018 VkCommandBuffer commandBuffer,
11019 const VkDebugUtilsLabelEXT* pLabelInfo) {
11020}
11021
11022@extension("VK_EXT_debug_utils") // 129
11023cmd VkResult vkCreateDebugUtilsMessengerEXT(
11024 VkInstance instance,
11025 const VkDebugUtilsMessengerCreateInfoEXT* pCreateInfo,
11026 const VkAllocationCallbacks* pAllocator,
11027 VkDebugUtilsMessengerEXT* pMessenger) {
11028 return ?
11029}
11030
11031@extension("VK_EXT_debug_utils") // 129
11032cmd void vkDestroyDebugUtilsMessengerEXT(
11033 VkInstance instance,
11034 VkDebugUtilsMessengerEXT messenger,
11035 const VkAllocationCallbacks* pAllocator) {
11036}
11037
11038@extension("VK_EXT_debug_utils") // 129
11039cmd void vkSubmitDebugUtilsMessageEXT(
11040 VkInstance instance,
11041 VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity,
11042 VkDebugUtilsMessageTypeFlagsEXT messageTypes,
11043 const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData) {
11044}
11045
Jesse Hall36215a92018-01-18 15:04:37 -080011046@extension("VK_ANDROID_external_memory_android_hardware_buffer") // 130
11047@vulkan1_1 // extension requires 1.1, and should become non-optional when 1.1 does
11048cmd VkResult vkGetAndroidHardwareBufferPropertiesANDROID(
11049 VkDevice device,
11050 const platform.AHardwareBuffer* buffer,
11051 VkAndroidHardwareBufferPropertiesANDROID* pProperties) {
11052 return ?
11053}
11054
11055@extension("VK_ANDROID_external_memory_android_hardware_buffer") // 130
11056@vulkan1_1 // extension requires 1.1, and should become non-optional when 1.1 does
11057cmd VkResult vkGetMemoryAndroidHardwareBufferANDROID(
11058 VkDevice device,
11059 const VkMemoryGetAndroidHardwareBufferInfoANDROID* pInfo,
11060 platform.AHardwareBuffer** pBuffer) {
11061 return ?
11062}
11063
Jesse Hall77726222017-09-19 14:49:27 -050011064@extension("VK_EXT_sample_locations") // 144
11065cmd void vkCmdSetSampleLocationsEXT(
11066 VkCommandBuffer commandBuffer,
11067 const VkSampleLocationsInfoEXT* pSampleLocationsInfo) {
11068}
11069
11070@extension("VK_EXT_sample_locations") // 144
11071cmd void vkGetPhysicalDeviceMultisamplePropertiesEXT(
11072 VkPhysicalDevice physicalDevice,
11073 VkSampleCountFlagBits samples,
11074 VkMultisamplePropertiesEXT* pMultisampleProperties) {
11075}
11076
Jesse Hall9492f992017-08-28 12:10:06 -070011077@extension("VK_KHR_get_memory_requirements2") // 147
11078cmd void vkGetImageMemoryRequirements2KHR(
11079 VkDevice device,
11080 const VkImageMemoryRequirementsInfo2KHR* pInfo,
11081 VkMemoryRequirements2KHR* pMemoryRequirements) {
11082}
11083
11084@extension("VK_KHR_get_memory_requirements2") // 147
11085cmd void vkGetBufferMemoryRequirements2KHR(
11086 VkDevice device,
11087 const VkBufferMemoryRequirementsInfo2KHR* pInfo,
11088 VkMemoryRequirements2KHR* pMemoryRequirements) {
11089}
11090
11091@extension("VK_KHR_get_memory_requirements2") // 147
11092cmd void vkGetImageSparseMemoryRequirements2KHR(
11093 VkDevice device,
11094 const VkImageSparseMemoryRequirementsInfo2KHR* pInfo,
11095 u32* pSparseMemoryRequirementCount,
11096 VkSparseImageMemoryRequirements2KHR* pSparseMemoryRequirements) {
11097}
11098
Jesse Hall076f95d2017-09-20 11:34:47 -070011099@extension("VK_KHR_sampler_ycbcr_conversion") // 157
11100cmd VkResult vkCreateSamplerYcbcrConversionKHR(
11101 VkDevice device,
11102 const VkSamplerYcbcrConversionCreateInfoKHR* pCreateInfo,
11103 const VkAllocationCallbacks* pAllocator,
11104 VkSamplerYcbcrConversionKHR* pYcbcrConversion) {
11105 return ?
11106}
11107
11108@extension("VK_KHR_sampler_ycbcr_conversion") // 157
11109cmd void vkDestroySamplerYcbcrConversionKHR(
11110 VkDevice device,
11111 VkSamplerYcbcrConversionKHR ycbcrConversion,
11112 const VkAllocationCallbacks* pAllocator) {
11113}
11114
11115@extension("VK_KHR_bind_memory2") // 158
11116cmd VkResult vkBindBufferMemory2KHR(
11117 VkDevice device,
11118 u32 bindInfoCount,
11119 const VkBindBufferMemoryInfoKHR* pBindInfos) {
11120 return ?
11121}
11122
11123@extension("VK_KHR_bind_memory2") // 158
11124cmd VkResult vkBindImageMemory2KHR(
11125 VkDevice device,
11126 u32 bindInfoCount,
11127 const VkBindImageMemoryInfoKHR* pBindInfos) {
11128 return ?
11129}
11130
Jesse Hall77726222017-09-19 14:49:27 -050011131@extension("VK_EXT_validation_cache") // 161
11132cmd VkResult vkCreateValidationCacheEXT(
11133 VkDevice device,
11134 const VkValidationCacheCreateInfoEXT* pCreateInfo,
11135 const VkAllocationCallbacks* pAllocator,
11136 VkValidationCacheEXT* pValidationCache) {
11137 return ?
11138}
11139
11140@extension("VK_EXT_validation_cache") // 161
11141cmd void vkDestroyValidationCacheEXT(
11142 VkDevice device,
11143 VkValidationCacheEXT validationCache,
11144 const VkAllocationCallbacks* pAllocator) {
11145}
11146
11147@extension("VK_EXT_validation_cache") // 161
11148cmd VkResult vkMergeValidationCachesEXT(
11149 VkDevice device,
11150 VkValidationCacheEXT dstCache,
11151 u32 srcCacheCount,
11152 const VkValidationCacheEXT* pSrcCaches) {
11153 return ?
11154}
11155
11156@extension("VK_EXT_validation_cache") // 161
11157cmd VkResult vkGetValidationCacheDataEXT(
11158 VkDevice device,
11159 VkValidationCacheEXT validationCache,
11160 platform.size_t* pDataSize,
11161 void* pData) {
11162 return ?
11163}
11164
Jesse Hallb5297192018-09-22 20:52:13 +020011165@extension("VK_NV_shading_rate_image") // 165
11166cmd void vkCmdBindShadingRateImageNV(
11167 VkCommandBuffer commandBuffer,
11168 VkImageView imageView,
11169 VkImageLayout imageLayout) {
11170}
11171
11172@extension("VK_NV_shading_rate_image") // 165
11173cmd void vkCmdSetViewportShadingRatePaletteNV(
11174 VkCommandBuffer commandBuffer,
11175 u32 firstViewport,
11176 u32 viewportCount,
11177 const VkShadingRatePaletteNV* pShadingRatePalettes) {
11178}
11179
11180@extension("VK_NV_shading_rate_image") // 165
11181cmd void vkCmdSetCoarseSampleOrderNV(
11182 VkCommandBuffer commandBuffer,
11183 VkCoarseSampleOrderTypeNV sampleOrderType,
11184 u32 customSampleOrderCount,
11185 const VkCoarseSampleOrderCustomNV* pCustomSampleOrders) {
11186}
11187
11188@extension("VK_NVX_raytracing") // 166
11189cmd VkResult vkCreateAccelerationStructureNVX(
11190 VkDevice device,
11191 const VkAccelerationStructureCreateInfoNVX* pCreateInfo,
11192 const VkAllocationCallbacks* pAllocator,
11193 VkAccelerationStructureNVX* pAccelerationStructure) {
11194 return ?
11195}
11196
11197@extension("VK_NVX_raytracing") // 166
11198cmd void vkDestroyAccelerationStructureNVX(
11199 VkDevice device,
11200 VkAccelerationStructureNVX accelerationStructure,
11201 const VkAllocationCallbacks* pAllocator) {
11202}
11203
11204@extension("VK_NVX_raytracing") // 166
11205cmd void vkGetAccelerationStructureMemoryRequirementsNVX(
11206 VkDevice device,
11207 const VkAccelerationStructureMemoryRequirementsInfoNVX* pInfo,
11208 VkMemoryRequirements2KHR* pMemoryRequirements) {
11209}
11210
11211@extension("VK_NVX_raytracing") // 166
11212cmd void vkGetAccelerationStructureScratchMemoryRequirementsNVX(
11213 VkDevice device,
11214 const VkAccelerationStructureMemoryRequirementsInfoNVX* pInfo,
11215 VkMemoryRequirements2KHR* pMemoryRequirements) {
11216}
11217
11218@extension("VK_NVX_raytracing") // 166
11219cmd VkResult vkBindAccelerationStructureMemoryNVX(
11220 VkDevice device,
11221 u32 bindInfoCount,
11222 const VkBindAccelerationStructureMemoryInfoNVX* pBindInfos) {
11223 return ?
11224}
11225
11226@extension("VK_NVX_raytracing") // 166
11227cmd void vkCmdBuildAccelerationStructureNVX(
Jesse Hall2e6853c2018-10-02 14:05:37 -070011228 VkCommandBuffer commandBuffer,
11229 VkAccelerationStructureTypeNVX type,
11230 u32 instanceCount,
11231 VkBuffer instanceData,
11232 VkDeviceSize instanceOffset,
11233 u32 geometryCount,
11234 const VkGeometryNVX* pGeometries,
11235 VkBuildAccelerationStructureFlagsNVX flags,
11236 VkBool32 update,
11237 VkAccelerationStructureNVX dst,
11238 VkAccelerationStructureNVX src,
11239 VkBuffer scratch,
11240 VkDeviceSize scratchOffset) {
Jesse Hallb5297192018-09-22 20:52:13 +020011241}
11242
11243@extension("VK_NVX_raytracing") // 166
11244cmd void vkCmdCopyAccelerationStructureNVX(
Jesse Hall2e6853c2018-10-02 14:05:37 -070011245 VkCommandBuffer commandBuffer,
11246 VkAccelerationStructureNVX dst,
11247 VkAccelerationStructureNVX src,
11248 VkCopyAccelerationStructureModeNVX mode) {
Jesse Hallb5297192018-09-22 20:52:13 +020011249}
11250
11251@extension("VK_NVX_raytracing") // 166
11252cmd void vkCmdTraceRaysNVX(
Jesse Hall2e6853c2018-10-02 14:05:37 -070011253 VkCommandBuffer commandBuffer,
11254 VkBuffer raygenShaderBindingTableBuffer,
11255 VkDeviceSize raygenShaderBindingOffset,
11256 VkBuffer missShaderBindingTableBuffer,
11257 VkDeviceSize missShaderBindingOffset,
11258 VkDeviceSize missShaderBindingStride,
11259 VkBuffer hitShaderBindingTableBuffer,
11260 VkDeviceSize hitShaderBindingOffset,
11261 VkDeviceSize hitShaderBindingStride,
11262 u32 width,
11263 u32 height) {
Jesse Hallb5297192018-09-22 20:52:13 +020011264}
11265
11266@extension("VK_NVX_raytracing") // 166
11267cmd VkResult vkCreateRaytracingPipelinesNVX(
11268 VkDevice device,
11269 VkPipelineCache pipelineCache,
11270 u32 createInfoCount,
11271 const VkRaytracingPipelineCreateInfoNVX* pCreateInfos,
11272 const VkAllocationCallbacks* pAllocator,
11273 VkPipeline* pPipelines) {
11274 return ?
11275}
11276
11277@extension("VK_NVX_raytracing") // 166
11278cmd VkResult vkGetRaytracingShaderHandlesNVX(
Jesse Hall2e6853c2018-10-02 14:05:37 -070011279 VkDevice device,
11280 VkPipeline pipeline,
11281 u32 firstGroup,
11282 u32 groupCount,
11283 platform.size_t dataSize,
11284 void* pData) {
Jesse Hallb5297192018-09-22 20:52:13 +020011285 return ?
11286}
11287
11288@extension("VK_NVX_raytracing") // 166
11289cmd VkResult vkGetAccelerationStructureHandleNVX(
Jesse Hall2e6853c2018-10-02 14:05:37 -070011290 VkDevice device,
11291 VkAccelerationStructureNVX accelerationStructure,
11292 platform.size_t dataSize,
11293 void* pData) {
Jesse Hallb5297192018-09-22 20:52:13 +020011294 return ?
11295}
11296
11297@extension("VK_NVX_raytracing") // 166
11298cmd void vkCmdWriteAccelerationStructurePropertiesNVX(
Jesse Hall2e6853c2018-10-02 14:05:37 -070011299 VkCommandBuffer commandBuffer,
11300 VkAccelerationStructureNVX accelerationStructure,
11301 VkQueryType queryType,
11302 VkQueryPool queryPool,
11303 u32 query) {
Jesse Hallb5297192018-09-22 20:52:13 +020011304}
11305
11306@extension("VK_NVX_raytracing") // 166
11307cmd VkResult vkCompileDeferredNVX(
Jesse Hall2e6853c2018-10-02 14:05:37 -070011308 VkDevice device,
11309 VkPipeline pipeline,
11310 u32 shader) {
Jesse Hallb5297192018-09-22 20:52:13 +020011311 return ?
11312}
11313
Daniel Koch09f7bf92017-10-05 00:26:58 -040011314@extension("VK_KHR_maintenance3") // 169
11315cmd void vkGetDescriptorSetLayoutSupportKHR(
11316 VkDevice device,
11317 const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
11318 VkDescriptorSetLayoutSupportKHR* pSupport) {
11319}
11320
Jesse Hall54f8d132018-04-18 08:16:59 -070011321@extension("VK_KHR_draw_indirect_count") // 170
11322cmd void vkCmdDrawIndirectCountKHR(
11323 VkCommandBuffer commandBuffer,
11324 VkBuffer buffer,
11325 VkDeviceSize offset,
11326 VkBuffer countBuffer,
11327 VkDeviceSize countBufferOffset,
11328 u32 maxDrawCount,
11329 u32 stride) {
11330}
11331
11332@extension("VK_KHR_draw_indirect_count") // 170
11333cmd void vkCmdDrawIndexedIndirectCountKHR(
11334 VkCommandBuffer commandBuffer,
11335 VkBuffer buffer,
11336 VkDeviceSize offset,
11337 VkBuffer countBuffer,
11338 VkDeviceSize countBufferOffset,
11339 u32 maxDrawCount,
11340 u32 stride) {
11341}
11342
Jesse Hall8c954d32018-01-17 22:06:20 -080011343@extension("VK_EXT_external_memory_host") // 179
11344cmd VkResult vkGetMemoryHostPointerPropertiesEXT(
11345 VkDevice device,
11346 VkExternalMemoryHandleTypeFlagBits handleType,
11347 const void* pHostPointer,
11348 VkMemoryHostPointerPropertiesEXT* pMemoryHostPointerProperties) {
11349 return ?
11350}
11351
Jesse Hall72e6a132018-04-06 13:00:44 -070011352@extension("VK_AMD_buffer_marker") // 180
11353cmd void vkCmdWriteBufferMarkerAMD(
11354 VkCommandBuffer commandBuffer,
11355 VkPipelineStageFlagBits pipelineStage,
11356 VkBuffer dstBuffer,
11357 VkDeviceSize dstOffset,
11358 u32 marker) {
11359}
11360
Jesse Hallb5297192018-09-22 20:52:13 +020011361@extension("VK_NV_mesh_shader") // 203
11362cmd void vkCmdDrawMeshTasksNV(
11363 VkCommandBuffer commandBuffer,
11364 u32 taskCount,
11365 u32 firstTask) {
11366}
11367
11368@extension("VK_NV_mesh_shader") // 203
11369cmd void vkCmdDrawMeshTasksIndirectNV(
11370 VkCommandBuffer commandBuffer,
11371 VkBuffer buffer,
11372 VkDeviceSize offset,
11373 u32 drawCount,
11374 u32 stride) {
11375}
11376
11377@extension("VK_NV_mesh_shader") // 203
11378cmd void vkCmdDrawMeshTasksIndirectCountNV(
11379 VkCommandBuffer commandBuffer,
11380 VkBuffer buffer,
11381 VkDeviceSize offset,
11382 VkBuffer countBuffer,
11383 VkDeviceSize countBufferOffset,
11384 u32 maxDrawCount,
11385 u32 stride) {
11386}
11387
11388@extension("VK_NV_scissor_exclusive") // 206
11389cmd void vkCmdSetExclusiveScissorNV(
11390 VkCommandBuffer commandBuffer,
11391 u32 firstExclusiveScissor,
11392 u32 exclusiveScissorCount,
11393 const VkRect2D* pExclusiveScissors) {
11394}
11395
Jesse Hall115df0c2018-07-30 12:00:59 -070011396@extension("VK_NV_device_diagnostic_checkpoints") // 207
11397cmd void vkCmdSetCheckpointNV(
11398 VkCommandBuffer commandBuffer,
11399 const void* pCheckpointMarker) {
11400}
11401
11402@extension("VK_NV_device_diagnostic_checkpoints") // 207
11403cmd void vkGetQueueCheckpointDataNV(
11404 VkQueue queue,
11405 u32* pCheckpointDataCount,
11406 VkCheckpointDataNV* pCheckpointData) {
11407}
11408
11409
Jesse Halld27f6aa2015-08-15 17:58:48 -070011410////////////////
11411// Validation //
11412////////////////
11413
11414extern void validate(string layerName, bool condition, string message)
11415
11416
11417/////////////////////////////
11418// Internal State Tracking //
11419/////////////////////////////
11420
11421StateObject State
11422
11423@internal class StateObject {
11424 // Dispatchable objects.
11425 map!(VkInstance, ref!InstanceObject) Instances
11426 map!(VkPhysicalDevice, ref!PhysicalDeviceObject) PhysicalDevices
11427 map!(VkDevice, ref!DeviceObject) Devices
11428 map!(VkQueue, ref!QueueObject) Queues
Jesse Hall3fbc8562015-11-29 22:10:52 -080011429 map!(VkCommandBuffer, ref!CommandBufferObject) CommandBuffers
Jesse Halld27f6aa2015-08-15 17:58:48 -070011430
11431 // Non-dispatchable objects.
11432 map!(VkDeviceMemory, ref!DeviceMemoryObject) DeviceMemories
11433 map!(VkBuffer, ref!BufferObject) Buffers
11434 map!(VkBufferView, ref!BufferViewObject) BufferViews
11435 map!(VkImage, ref!ImageObject) Images
11436 map!(VkImageView, ref!ImageViewObject) ImageViews
Jesse Halld27f6aa2015-08-15 17:58:48 -070011437 map!(VkShaderModule, ref!ShaderModuleObject) ShaderModules
Jesse Halld27f6aa2015-08-15 17:58:48 -070011438 map!(VkPipeline, ref!PipelineObject) Pipelines
11439 map!(VkPipelineLayout, ref!PipelineLayoutObject) PipelineLayouts
11440 map!(VkSampler, ref!SamplerObject) Samplers
11441 map!(VkDescriptorSet, ref!DescriptorSetObject) DescriptorSets
11442 map!(VkDescriptorSetLayout, ref!DescriptorSetLayoutObject) DescriptorSetLayouts
11443 map!(VkDescriptorPool, ref!DescriptorPoolObject) DescriptorPools
Jesse Halld27f6aa2015-08-15 17:58:48 -070011444 map!(VkFence, ref!FenceObject) Fences
11445 map!(VkSemaphore, ref!SemaphoreObject) Semaphores
11446 map!(VkEvent, ref!EventObject) Events
11447 map!(VkQueryPool, ref!QueryPoolObject) QueryPools
11448 map!(VkFramebuffer, ref!FramebufferObject) Framebuffers
11449 map!(VkRenderPass, ref!RenderPassObject) RenderPasses
11450 map!(VkPipelineCache, ref!PipelineCacheObject) PipelineCaches
Jesse Hall3fbc8562015-11-29 22:10:52 -080011451 map!(VkCommandPool, ref!CommandPoolObject) CommandPools
Jesse Hall1356b0d2015-11-23 17:24:58 -080011452 map!(VkSurfaceKHR, ref!SurfaceObject) Surfaces
Michael Lentine88594d72015-11-12 12:49:45 -080011453 map!(VkSwapchainKHR, ref!SwapchainObject) Swapchains
Jesse Halld27f6aa2015-08-15 17:58:48 -070011454}
11455
11456@internal class InstanceObject {
11457}
11458
11459@internal class PhysicalDeviceObject {
11460 VkInstance instance
11461}
11462
11463@internal class DeviceObject {
11464 VkPhysicalDevice physicalDevice
11465}
11466
11467@internal class QueueObject {
11468 VkDevice device
11469 VkQueueFlags flags
11470}
11471
Jesse Hall3fbc8562015-11-29 22:10:52 -080011472@internal class CommandBufferObject {
Jesse Halld27f6aa2015-08-15 17:58:48 -070011473 VkDevice device
11474 map!(u64, VkDeviceMemory) boundObjects
11475 VkQueueFlags queueFlags
11476}
11477
11478@internal class DeviceMemoryObject {
Jesse Hall3fbc8562015-11-29 22:10:52 -080011479 VkDevice device
11480 VkDeviceSize allocationSize
11481 map!(u64, VkDeviceSize) boundObjects
11482 map!(VkCommandBuffer, VkCommandBuffer) boundCommandBuffers
Jesse Halld27f6aa2015-08-15 17:58:48 -070011483}
11484
11485@internal class BufferObject {
11486 VkDevice device
Jesse Hall3fbc8562015-11-29 22:10:52 -080011487 VkDeviceMemory memory
11488 VkDeviceSize memoryOffset
Jesse Halld27f6aa2015-08-15 17:58:48 -070011489}
11490
11491@internal class BufferViewObject {
11492 VkDevice device
11493 VkBuffer buffer
11494}
11495
11496@internal class ImageObject {
11497 VkDevice device
Jesse Hall3fbc8562015-11-29 22:10:52 -080011498 VkDeviceMemory memory
11499 VkDeviceSize memoryOffset
Jesse Halld27f6aa2015-08-15 17:58:48 -070011500}
11501
11502@internal class ImageViewObject {
11503 VkDevice device
11504 VkImage image
11505}
11506
Jesse Halld27f6aa2015-08-15 17:58:48 -070011507@internal class ShaderObject {
11508 VkDevice device
11509}
11510
11511@internal class ShaderModuleObject {
11512 VkDevice device
11513}
11514
11515@internal class PipelineObject {
11516 VkDevice device
11517}
11518
11519@internal class PipelineLayoutObject {
11520 VkDevice device
11521}
11522
11523@internal class SamplerObject {
11524 VkDevice device
11525}
11526
11527@internal class DescriptorSetObject {
11528 VkDevice device
11529}
11530
11531@internal class DescriptorSetLayoutObject {
11532 VkDevice device
11533}
11534
11535@internal class DescriptorPoolObject {
11536 VkDevice device
11537}
11538
Jesse Halld27f6aa2015-08-15 17:58:48 -070011539@internal class FenceObject {
11540 VkDevice device
11541 bool signaled
11542}
11543
11544@internal class SemaphoreObject {
11545 VkDevice device
11546}
11547
11548@internal class EventObject {
11549 VkDevice device
11550}
11551
11552@internal class QueryPoolObject {
11553 VkDevice device
11554}
11555
11556@internal class FramebufferObject {
11557 VkDevice device
11558}
11559
11560@internal class RenderPassObject {
11561 VkDevice device
11562}
11563
11564@internal class PipelineCacheObject {
11565 VkDevice device
11566}
11567
Jesse Hall3fbc8562015-11-29 22:10:52 -080011568@internal class CommandPoolObject {
Jesse Halld27f6aa2015-08-15 17:58:48 -070011569 VkDevice device
11570}
11571
Jesse Hall1356b0d2015-11-23 17:24:58 -080011572@internal class SurfaceObject {
11573 VkInstance instance
11574}
11575
Michael Lentine88594d72015-11-12 12:49:45 -080011576@internal class SwapchainObject {
11577 VkDevice device
11578}
11579
Jesse Halld27f6aa2015-08-15 17:58:48 -070011580macro ref!InstanceObject GetInstance(VkInstance instance) {
11581 assert(instance in State.Instances)
11582 return State.Instances[instance]
11583}
11584
11585macro ref!PhysicalDeviceObject GetPhysicalDevice(VkPhysicalDevice physicalDevice) {
11586 assert(physicalDevice in State.PhysicalDevices)
11587 return State.PhysicalDevices[physicalDevice]
11588}
11589
11590macro ref!DeviceObject GetDevice(VkDevice device) {
11591 assert(device in State.Devices)
11592 return State.Devices[device]
11593}
11594
11595macro ref!QueueObject GetQueue(VkQueue queue) {
11596 assert(queue in State.Queues)
11597 return State.Queues[queue]
11598}
11599
Jesse Hall3fbc8562015-11-29 22:10:52 -080011600macro ref!CommandBufferObject GetCommandBuffer(VkCommandBuffer commandBuffer) {
11601 assert(commandBuffer in State.CommandBuffers)
11602 return State.CommandBuffers[commandBuffer]
Jesse Halld27f6aa2015-08-15 17:58:48 -070011603}
11604
Jesse Hall3fbc8562015-11-29 22:10:52 -080011605macro ref!DeviceMemoryObject GetDeviceMemory(VkDeviceMemory memory) {
11606 assert(memory in State.DeviceMemories)
11607 return State.DeviceMemories[memory]
Jesse Halld27f6aa2015-08-15 17:58:48 -070011608}
11609
11610macro ref!BufferObject GetBuffer(VkBuffer buffer) {
11611 assert(buffer in State.Buffers)
11612 return State.Buffers[buffer]
11613}
11614
11615macro ref!BufferViewObject GetBufferView(VkBufferView bufferView) {
11616 assert(bufferView in State.BufferViews)
11617 return State.BufferViews[bufferView]
11618}
11619
11620macro ref!ImageObject GetImage(VkImage image) {
11621 assert(image in State.Images)
11622 return State.Images[image]
11623}
11624
11625macro ref!ImageViewObject GetImageView(VkImageView imageView) {
11626 assert(imageView in State.ImageViews)
11627 return State.ImageViews[imageView]
11628}
11629
Jesse Halld27f6aa2015-08-15 17:58:48 -070011630macro ref!ShaderModuleObject GetShaderModule(VkShaderModule shaderModule) {
11631 assert(shaderModule in State.ShaderModules)
11632 return State.ShaderModules[shaderModule]
11633}
11634
11635macro ref!PipelineObject GetPipeline(VkPipeline pipeline) {
11636 assert(pipeline in State.Pipelines)
11637 return State.Pipelines[pipeline]
11638}
11639
11640macro ref!PipelineLayoutObject GetPipelineLayout(VkPipelineLayout pipelineLayout) {
11641 assert(pipelineLayout in State.PipelineLayouts)
11642 return State.PipelineLayouts[pipelineLayout]
11643}
11644
11645macro ref!SamplerObject GetSampler(VkSampler sampler) {
11646 assert(sampler in State.Samplers)
11647 return State.Samplers[sampler]
11648}
11649
11650macro ref!DescriptorSetObject GetDescriptorSet(VkDescriptorSet descriptorSet) {
11651 assert(descriptorSet in State.DescriptorSets)
11652 return State.DescriptorSets[descriptorSet]
11653}
11654
11655macro ref!DescriptorSetLayoutObject GetDescriptorSetLayout(VkDescriptorSetLayout descriptorSetLayout) {
11656 assert(descriptorSetLayout in State.DescriptorSetLayouts)
11657 return State.DescriptorSetLayouts[descriptorSetLayout]
11658}
11659
11660macro ref!DescriptorPoolObject GetDescriptorPool(VkDescriptorPool descriptorPool) {
11661 assert(descriptorPool in State.DescriptorPools)
11662 return State.DescriptorPools[descriptorPool]
11663}
11664
Jesse Halld27f6aa2015-08-15 17:58:48 -070011665macro ref!FenceObject GetFence(VkFence fence) {
11666 assert(fence in State.Fences)
11667 return State.Fences[fence]
11668}
11669
11670macro ref!SemaphoreObject GetSemaphore(VkSemaphore semaphore) {
11671 assert(semaphore in State.Semaphores)
11672 return State.Semaphores[semaphore]
11673}
11674
11675macro ref!EventObject GetEvent(VkEvent event) {
11676 assert(event in State.Events)
11677 return State.Events[event]
11678}
11679
11680macro ref!QueryPoolObject GetQueryPool(VkQueryPool queryPool) {
11681 assert(queryPool in State.QueryPools)
11682 return State.QueryPools[queryPool]
11683}
11684
11685macro ref!FramebufferObject GetFramebuffer(VkFramebuffer framebuffer) {
11686 assert(framebuffer in State.Framebuffers)
11687 return State.Framebuffers[framebuffer]
11688}
11689
11690macro ref!RenderPassObject GetRenderPass(VkRenderPass renderPass) {
11691 assert(renderPass in State.RenderPasses)
11692 return State.RenderPasses[renderPass]
11693}
11694
11695macro ref!PipelineCacheObject GetPipelineCache(VkPipelineCache pipelineCache) {
11696 assert(pipelineCache in State.PipelineCaches)
11697 return State.PipelineCaches[pipelineCache]
11698}
11699
Jesse Hall3fbc8562015-11-29 22:10:52 -080011700macro ref!CommandPoolObject GetCommandPool(VkCommandPool commandPool) {
11701 assert(commandPool in State.CommandPools)
11702 return State.CommandPools[commandPool]
Jesse Hallf09c6b12015-08-15 19:54:28 -070011703}
Michael Lentine88594d72015-11-12 12:49:45 -080011704
Jesse Hall1356b0d2015-11-23 17:24:58 -080011705macro ref!SurfaceObject GetSurface(VkSurfaceKHR surface) {
11706 assert(surface in State.Surfaces)
11707 return State.Surfaces[surface]
11708}
11709
Michael Lentine88594d72015-11-12 12:49:45 -080011710macro ref!SwapchainObject GetSwapchain(VkSwapchainKHR swapchain) {
11711 assert(swapchain in State.Swapchains)
11712 return State.Swapchains[swapchain]
11713}
Jesse Halld8bade02015-11-24 10:24:18 -080011714
11715macro VkQueueFlags AddQueueFlag(VkQueueFlags flags, VkQueueFlagBits bit) {
11716 return as!VkQueueFlags(as!u32(flags) | as!u32(bit))
11717}