blob: 8f766069803a78a908c1c9ff4bbb6d4fdb0ccb90 [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 Halla363a8e2018-11-05 21:18:00 -070031define VERSION_PATCH 91
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 Halla363a8e2018-11-05 21:18:00 -070088// 8 - VK_KHR_mir_surface removed
Jesse Hall1356b0d2015-11-23 17:24:58 -080089
Jesse Halleb02c472017-02-24 15:13:45 -080090// 9
Jesse Hall33faaad2016-01-24 21:00:49 -080091@extension("VK_KHR_android_surface") define VK_KHR_ANDROID_SURFACE_SPEC_VERSION 6
Jesse Hall3e0dc8f2015-11-30 00:42:57 -080092@extension("VK_KHR_android_surface") define VK_KHR_ANDROID_SURFACE_NAME "VK_KHR_android_surface"
Jesse Hall1356b0d2015-11-23 17:24:58 -080093
Jesse Halleb02c472017-02-24 15:13:45 -080094// 10
Jesse Hall7ba0ac72017-07-07 17:13:23 -070095@extension("VK_KHR_win32_surface") define VK_KHR_WIN32_SURFACE_SPEC_VERSION 6
Jesse Hall3e0dc8f2015-11-30 00:42:57 -080096@extension("VK_KHR_win32_surface") define VK_KHR_WIN32_SURFACE_NAME "VK_KHR_win32_surface"
Jesse Hall1356b0d2015-11-23 17:24:58 -080097
Jesse Halleb02c472017-02-24 15:13:45 -080098// 11
Chris Forbes1d4e5542017-02-15 19:38:50 +130099@extension("VK_ANDROID_native_buffer") define VK_ANDROID_NATIVE_BUFFER_SPEC_VERSION 7
Chia-I Wub262ddc2016-03-22 07:38:20 +0800100@extension("VK_ANDROID_native_buffer") define VK_ANDROID_NATIVE_BUFFER_NAME "VK_ANDROID_native_buffer"
101
Jesse Halleb02c472017-02-24 15:13:45 -0800102// 12
Daniel Koch09f7bf92017-10-05 00:26:58 -0400103@extension("VK_EXT_debug_report") define VK_EXT_DEBUG_REPORT_SPEC_VERSION 9
Jesse Hall715b86a2016-01-16 16:34:29 -0800104@extension("VK_EXT_debug_report") define VK_EXT_DEBUG_REPORT_NAME "VK_EXT_debug_report"
105
Jesse Halleb02c472017-02-24 15:13:45 -0800106// 13
Jesse Hall26763382016-05-20 07:13:52 -0700107@extension("VK_NV_glsl_shader") define VK_NV_GLSL_SHADER_SPEC_VERSION 1
108@extension("VK_NV_glsl_shader") define VK_NV_GLSL_SHADER_NAME "VK_NV_glsl_shader"
109
Jesse Hall77726222017-09-19 14:49:27 -0500110// 14
111@extension("VK_EXT_depth_range_unrestricted") define VK_EXT_DEPTH_RANGE_UNRESTRICTED_SPEC_VERSION 1
112@extension("VK_EXT_depth_range_unrestricted") define VK_EXT_DEPTH_RANGE_UNRESTRICTED_NAME "VK_EXT_depth_range_unrestricted"
113
Jesse Halleb02c472017-02-24 15:13:45 -0800114// 15
Jesse Hall26763382016-05-20 07:13:52 -0700115@extension("VK_KHR_sampler_mirror_clamp_to_edge") define VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_SPEC_VERSION 1
116@extension("VK_KHR_sampler_mirror_clamp_to_edge") define VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_NAME "VK_KHR_sampler_mirror_clamp_to_edge"
117
Jesse Halleb02c472017-02-24 15:13:45 -0800118// 16
Jesse Hall26763382016-05-20 07:13:52 -0700119@extension("VK_IMG_filter_cubic") define VK_IMG_FILTER_CUBIC_SPEC_VERSION 1
120@extension("VK_IMG_filter_cubic") define VK_IMG_FILTER_CUBIC_NAME "VK_IMG_filter_cubic"
121
Jesse Halleb02c472017-02-24 15:13:45 -0800122// 19
Jesse Hall26763382016-05-20 07:13:52 -0700123@extension("VK_AMD_rasterization_order") define VK_AMD_RASTERIZATION_ORDER_SPEC_VERSION 1
124@extension("VK_AMD_rasterization_order") define VK_AMD_RASTERIZATION_ORDER_NAME "VK_AMD_rasterization_order"
125
Jesse Halleb02c472017-02-24 15:13:45 -0800126// 21
Jesse Hall56d386a2016-07-26 15:20:40 -0700127@extension("VK_AMD_shader_trinary_minmax") define VK_AMD_SHADER_TRINARY_MINMAX_SPEC_VERSION 1
128@extension("VK_AMD_shader_trinary_minmax") define VK_AMD_SHADER_TRINARY_MINMAX_EXTENSION_NAME "VK_AMD_shader_trinary_minmax"
129
Jesse Halleb02c472017-02-24 15:13:45 -0800130// 22
Jesse Hall56d386a2016-07-26 15:20:40 -0700131@extension("VK_AMD_shader_explicit_vertex_parameter") define VK_AMD_SHADER_EXPLICIT_VERTEX_PARAMETER_SPEC_VERSION 1
132@extension("VK_AMD_shader_explicit_vertex_parameter") define VK_AMD_SHADER_EXPLICIT_VERTEX_PARAMETER_EXTENSION_NAME "VK_AMD_shader_explicit_vertex_parameter"
133
Jesse Halleb02c472017-02-24 15:13:45 -0800134// 23
Jesse Hall8f49fcb2017-03-06 16:02:58 -0800135@extension("VK_EXT_debug_marker") define VK_EXT_DEBUG_MARKER_SPEC_VERSION 4
Jesse Hall26763382016-05-20 07:13:52 -0700136@extension("VK_EXT_debug_marker") define VK_EXT_DEBUG_MARKER_NAME "VK_EXT_debug_marker"
137
Jesse Halleb02c472017-02-24 15:13:45 -0800138// 26
Jesse Hall56d386a2016-07-26 15:20:40 -0700139@extension("VK_AMD_gcn_shader") define VK_AMD_GCN_SHADER_SPEC_VERSION 1
140@extension("VK_AMD_gcn_shader") define VK_AMD_GCN_SHADER_EXTENSION_NAME "VK_AMD_gcn_shader"
141
Jesse Halleb02c472017-02-24 15:13:45 -0800142// 27
Jesse Hall56d386a2016-07-26 15:20:40 -0700143@extension("VK_NV_dedicated_allocation") define VK_NV_DEDICATED_ALLOCATION_SPEC_VERSION 1
144@extension("VK_NV_dedicated_allocation") define VK_NV_DEDICATED_ALLOCATION_EXTENSION_NAME "VK_NV_dedicated_allocation"
145
Jesse Halleb02c472017-02-24 15:13:45 -0800146// 28
Chris Forbes289cb792016-12-30 15:03:55 +1300147@extension("VK_IMG_format_pvrtc") define VK_IMG_FORMAT_PVRTC_SPEC_VERSION 1
148@extension("VK_IMG_format_pvrtc") define VK_IMG_FORMAT_PVRTC_EXTENSION_NAME "VK_IMG_format_pvrtc"
149
Jesse Hallf47e8f82018-10-27 23:41:45 -0700150// 29
151@extension("VK_EXT_transform_feedback") define VK_EXT_TRANSFORM_FEEDBACK_SPEC_VERSION 1
152@extension("VK_EXT_transform_feedback") define VK_EXT_TRANSFORM_FEEDBACK_EXTENSION_NAME "VK_EXT_transform_feedback"
153
Jesse Halleb02c472017-02-24 15:13:45 -0800154// 34
155@extension("VK_AMD_draw_indirect_count") define VK_AMD_DRAW_INDIRECT_COUNT_SPEC_VERSION 1
156@extension("VK_AMD_draw_indirect_count") define VK_AMD_DRAW_INDIRECT_COUNT_EXTENSION_NAME "VK_AMD_draw_indirect_count"
157
158// 36
159@extension("VK_AMD_negative_viewport_height") define VK_AMD_NEGATIVE_VIEWPORT_HEIGHT_SPEC_VERSION 1
160@extension("VK_AMD_negative_viewport_height") define VK_AMD_NEGATIVE_VIEWPORT_HEIGHT_EXTENSION_NAME "VK_AMD_negative_viewport_height"
161
162// 37
163@extension("VK_AMD_gpu_shader_half_float") define VK_AMD_GPU_SHADER_HALF_FLOAT_SPEC_VERSION 1
164@extension("VK_AMD_gpu_shader_half_float") define VK_AMD_GPU_SHADER_HALF_FLOAT_EXTENSION_NAME "VK_AMD_gpu_shader_half_float"
165
166// 38
167@extension("VK_AMD_shader_ballot") define VK_AMD_SHADER_BALLOT_SPEC_VERSION 1
168@extension("VK_AMD_shader_ballot") define VK_AMD_SHADER_BALLOT_EXTENSION_NAME "VK_AMD_shader_ballot"
169
Jesse Hall7ba0ac72017-07-07 17:13:23 -0700170// 42
171@extension("VK_AMD_texture_gather_bias_lod") define VK_AMD_TEXTURE_GATHER_BIAS_LOD_SPEC_VERSION 1
172@extension("VK_AMD_texture_gather_bias_lod") define VK_AMD_TEXTURE_GATHER_BIAS_LOD_EXTENSION_NAME "VK_AMD_texture_gather_bias_lod"
173
Jesse Hall8c954d32018-01-17 22:06:20 -0800174// 43
175@extension("VK_AMD_shader_info") define VK_AMD_SHADER_INFO_SPEC_VERSION 1
176@extension("VK_AMD_shader_info") define VK_AMD_SHADER_INFO_EXTENSION_NAME "VK_AMD_shader_info"
177
178// 47
179@extension("VK_AMD_shader_image_load_store_lod") define VK_AMD_SHADER_IMAGE_LOAD_STORE_LOD_SPEC_VERSION 1
180@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"
181
Jesse Hallb5297192018-09-22 20:52:13 +0200182// 51
183@extension("VK_NV_corner_sampled_image") define VK_NV_CORNER_SAMPLED_IMAGE_SPEC_VERSION 2
184@extension("VK_NV_corner_sampled_image") define VK_NV_CORNER_SAMPLED_IMAGE_EXTENSION_NAME "VK_NV_corner_sampled_image"
185
Jesse Hallad250842017-03-10 18:35:38 -0800186// 54
Daniel Koch09f7bf92017-10-05 00:26:58 -0400187@extension("VK_KHR_multiview") define VK_KHR_MULTIVIEW_SPEC_VERSION 1
188@extension("VK_KHR_multiview") define VK_KHR_MULTIVIEW_EXTENSION_NAME "VK_KHR_multiview"
Jesse Hallad250842017-03-10 18:35:38 -0800189
Jesse Halleb02c472017-02-24 15:13:45 -0800190// 56
Chris Forbes289cb792016-12-30 15:03:55 +1300191@extension("VK_NV_external_memory_capabilities") define VK_NV_EXTERNAL_MEMORY_CAPABILITIES_SPEC_VERSION 1
192@extension("VK_NV_external_memory_capabilities") define VK_NV_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME "VK_NV_external_memory_capabilities"
193
Jesse Halleb02c472017-02-24 15:13:45 -0800194// 57
Chris Forbes289cb792016-12-30 15:03:55 +1300195@extension("VK_NV_external_memory") define VK_NV_EXTERNAL_MEMORY_SPEC_VERSION 1
196@extension("VK_NV_external_memory") define VK_NV_EXTERNAL_MEMORY_EXTENSION_NAME "VK_NV_external_memory"
197
Jesse Halleb02c472017-02-24 15:13:45 -0800198// 58
Chris Forbes289cb792016-12-30 15:03:55 +1300199@extension("VK_NV_external_memory_win32") define VK_NV_EXTERNAL_MEMORY_WIN32_SPEC_VERSION 1
200@extension("VK_NV_external_memory_win32") define VK_NV_EXTERNAL_MEMORY_WIN32_EXTENSION_NAME "VK_NV_external_memory_win32"
201
Jesse Halleb02c472017-02-24 15:13:45 -0800202// 59
Chris Forbes289cb792016-12-30 15:03:55 +1300203@extension("VK_NV_win32_keyed_mutex") define VK_NV_WIN32_KEYED_MUTEX_SPEC_VERSION 1
204@extension("VK_NV_win32_keyed_mutex") define VK_NV_WIN32_KEYED_MUTEX_EXTENSION_NAME "VK_NV_win32_keyed_mutex"
205
Jesse Hall889cd9a2017-02-25 22:12:23 -0800206// 60
207@extension("VK_KHR_get_physical_device_properties2") define VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_SPEC_VERSION 1
208@extension("VK_KHR_get_physical_device_properties2") define VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME "VK_KHR_get_physical_device_properties2"
209
Jesse Hallad250842017-03-10 18:35:38 -0800210// 61
Daniel Koch09f7bf92017-10-05 00:26:58 -0400211@extension("VK_KHR_device_group") define VK_KHR_DEVICE_GROUP_SPEC_VERSION 3
212@extension("VK_KHR_device_group") define VK_KHR_DEVICE_GROUP_EXTENSION_NAME "VK_KHR_device_group"
Jesse Hallad250842017-03-10 18:35:38 -0800213
Jesse Halleb02c472017-02-24 15:13:45 -0800214// 62
Chris Forbes289cb792016-12-30 15:03:55 +1300215@extension("VK_EXT_validation_flags") define VK_EXT_VALIDATION_FLAGS_SPEC_VERSION 1
216@extension("VK_EXT_validation_flags") define VK_EXT_VALIDATION_FLAGS_EXTENSION_NAME "VK_EXT_validation_flags"
217
Jesse Hall77ad05b2017-03-10 22:02:20 -0800218// 63
219@extension("VK_NN_vi_surface") define VK_NN_VI_SURFACE_SPEC_VERSION 1
220@extension("VK_NN_vi_surface") define VK_NN_VI_SURFACE_EXTENSION_NAME "VK_NN_vi_surface"
221
222// 64
223@extension("VK_KHR_shader_draw_parameters") define VK_KHR_SHADER_DRAW_PARAMETERS_SPEC_VERSION 1
224@extension("VK_KHR_shader_draw_parameters") define VK_KHR_SHADER_DRAW_PARAMETERS_EXTENSION_NAME "VK_KHR_shader_draw_parameters"
225
226// 65
227@extension("VK_EXT_shader_subgroup_ballot") define VK_EXT_SHADER_SUBGROUP_BALLOT_SPEC_VERSION 1
228@extension("VK_EXT_shader_subgroup_ballot") define VK_EXT_SHADER_SUBGROUP_BALLOT_EXTENSION_NAME "VK_EXT_shader_subgroup_ballot"
229
230// 66
231@extension("VK_EXT_shader_subgroup_vote") define VK_EXT_SHADER_SUBGROUP_VOTE_SPEC_VERSION 1
232@extension("VK_EXT_shader_subgroup_vote") define VK_EXT_SHADER_SUBGROUP_VOTE_EXTENSION_NAME "VK_EXT_shader_subgroup_vote"
233
Jesse Hall4af6c462018-09-10 09:04:25 -0700234// 68
235@extension("VK_EXT_astc_decode_mode") define VK_EXT_ASTC_DECODE_MODE_SPEC_VERSION 1
236@extension("VK_EXT_astc_decode_mode") define VK_EXT_ASTC_DECODE_MODE_EXTENSION_NAME "VK_EXT_astc_decode_mode"
237
Jesse Hall77ad05b2017-03-10 22:02:20 -0800238// 70
Jesse Hall72e6a132018-04-06 13:00:44 -0700239@extension("VK_KHR_maintenance1") define VK_KHR_MAINTENANCE1_SPEC_VERSION 2
Jesse Hall77ad05b2017-03-10 22:02:20 -0800240@extension("VK_KHR_maintenance1") define VK_KHR_MAINTENANCE1_EXTENSION_NAME "VK_KHR_maintenance1"
241
Jesse Hallad250842017-03-10 18:35:38 -0800242// 71
Daniel Koch09f7bf92017-10-05 00:26:58 -0400243@extension("VK_KHR_device_group_creation") define VK_KHR_DEVICE_GROUP_CREATION_SPEC_VERSION 1
244@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 -0800245
246// 72
Jesse Hall9492f992017-08-28 12:10:06 -0700247@extension("VK_KHR_external_memory_capabilities") define VK_KHR_EXTERNAL_MEMORY_CAPABILITIES_SPEC_VERSION 1
248@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 -0800249
250// 73
Jesse Hall9492f992017-08-28 12:10:06 -0700251@extension("VK_KHR_external_memory") define VK_KHR_EXTERNAL_MEMORY_SPEC_VERSION 1
252@extension("VK_KHR_external_memory") define VK_KHR_EXTERNAL_MEMORY_EXTENSION_NAME "VK_KHR_external_memory"
Jesse Hallad250842017-03-10 18:35:38 -0800253
254// 74
Jesse Hall9492f992017-08-28 12:10:06 -0700255@extension("VK_KHR_external_memory_win32") define VK_KHR_EXTERNAL_MEMORY_WIN32_SPEC_VERSION 1
256@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 -0800257
258// 75
Jesse Hall9492f992017-08-28 12:10:06 -0700259@extension("VK_KHR_external_memory_fd") define VK_KHR_EXTERNAL_MEMORY_FD_SPEC_VERSION 1
260@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 -0800261
262// 76
Jesse Hall9492f992017-08-28 12:10:06 -0700263@extension("VK_KHR_win32_keyed_mutex") define VK_KHR_WIN32_KEYED_MUTEX_SPEC_VERSION 1
264@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 -0800265
266// 77
Jesse Hall9492f992017-08-28 12:10:06 -0700267@extension("VK_KHR_external_semaphore_capabilities") define VK_KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_SPEC_VERSION 1
268@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 -0800269
270// 78
Jesse Hall9492f992017-08-28 12:10:06 -0700271@extension("VK_KHR_external_semaphore") define VK_KHR_EXTERNAL_SEMAPHORE_SPEC_VERSION 1
272@extension("VK_KHR_external_semaphore") define VK_KHR_EXTERNAL_SEMAPHORE_EXTENSION_NAME "VK_KHR_external_semaphore"
Jesse Hallad250842017-03-10 18:35:38 -0800273
274// 79
Jesse Hall9492f992017-08-28 12:10:06 -0700275@extension("VK_KHR_external_semaphore_win32") define VK_KHR_EXTERNAL_SEMAPHORE_WIN32_SPEC_VERSION 1
276@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 -0800277
278// 80
Jesse Hall9492f992017-08-28 12:10:06 -0700279@extension("VK_KHR_external_semaphore_fd") define VK_KHR_EXTERNAL_SEMAPHORE_FD_SPEC_VERSION 1
280@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 -0800281
282// 81
Daniel Koch09f7bf92017-10-05 00:26:58 -0400283@extension("VK_KHR_push_descriptor") define VK_KHR_PUSH_DESCRIPTOR_SPEC_VERSION 2
Jesse Hallad250842017-03-10 18:35:38 -0800284@extension("VK_KHR_push_descriptor") define VK_KHR_PUSH_DESCRIPTOR_EXTENSION_NAME "VK_KHR_push_descriptor"
285
Jesse Halla13a3cf2018-07-09 15:51:52 -0700286// 82
287@extension("VK_EXT_conditional_rendering") define VK_EXT_CONDITIONAL_RENDERING_SPEC_VERSION 1
288@extension("VK_EXT_conditional_rendering") define VK_EXT_CONDITIONAL_RENDERING_EXTENSION_NAME "VK_EXT_conditional_rendering"
289
Jesse Hall9492f992017-08-28 12:10:06 -0700290// 84
291@extension("VK_KHR_16bit_storage") define VK_KHR_16BIT_STORAGE_SPEC_VERSION 1
292@extension("VK_KHR_16bit_storage") define VK_KHR_16BIT_STORAGE_EXTENSION_NAME "VK_KHR_16bit_storage"
293
Jesse Hall889cd9a2017-02-25 22:12:23 -0800294// 85
295@extension("VK_KHR_incremental_present") define VK_KHR_INCREMENTAL_PRESENT_SPEC_VERSION 1
Jesse Hallf5ad48b2017-03-20 13:09:19 -0700296@extension("VK_KHR_incremental_present") define VK_KHR_INCREMENTAL_PRESENT_EXTENSION_NAME "VK_KHR_incremental_present"
Jesse Hall889cd9a2017-02-25 22:12:23 -0800297
Jesse Hallad250842017-03-10 18:35:38 -0800298// 86
299@extension("VK_KHR_descriptor_update_template") define VK_KHR_DESCRIPTOR_UPDATE_TEMPLATE_SPEC_VERSION 1
300@extension("VK_KHR_descriptor_update_template") define VK_KHR_DESCRIPTOR_UPDATE_TEMPLATE_EXTENSION_NAME "VK_KHR_descriptor_update_template"
301
Jesse Halleb02c472017-02-24 15:13:45 -0800302// 87
Jesse Hall77726222017-09-19 14:49:27 -0500303@extension("VK_NVX_device_generated_commands") define VK_NVX_DEVICE_GENERATED_COMMANDS_SPEC_VERSION 3
Chris Forbes289cb792016-12-30 15:03:55 +1300304@extension("VK_NVX_device_generated_commands") define VK_NVX_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME "VK_NVX_device_generated_commands"
305
Jesse Hallad250842017-03-10 18:35:38 -0800306// 88
307@extension("VK_NV_clip_space_w_scaling") define VK_NV_CLIP_SPACE_W_SCALING_SPEC_VERSION 1
308@extension("VK_NV_clip_space_w_scaling") define VK_NV_CLIP_SPACE_W_SCALING_EXTENSION_NAME "VK_NV_clip_space_w_scaling"
309
Jesse Hall77ad05b2017-03-10 22:02:20 -0800310// 89
311@extension("VK_EXT_direct_mode_display") define VK_EXT_DIRECT_MODE_DISPLAY_SPEC_VERSION 1
312@extension("VK_EXT_direct_mode_display") define VK_EXT_DIRECT_MODE_DISPLAY_EXTENSION_NAME "VK_EXT_direct_mode_display"
313
314// 90
315@extension("VK_EXT_acquire_xlib_display") define VK_EXT_ACQUIRE_XLIB_DISPLAY_SPEC_VERSION 1
316@extension("VK_EXT_acquire_xlib_display") define VK_EXT_ACQUIRE_XLIB_DISPLAY_EXTENSION_NAME "VK_EXT_acquire_xlib_display"
317
318// 91
319@extension("VK_EXT_display_surface_counter") define VK_EXT_DISPLAY_SURFACE_COUNTER_SPEC_VERSION 1
320@extension("VK_EXT_display_surface_counter") define VK_EXT_DISPLAY_SURFACE_COUNTER_EXTENSION_NAME "VK_EXT_display_surface_counter"
321
322// 92
323@extension("VK_EXT_display_control") define VK_EXT_DISPLAY_CONTROL_SPEC_VERSION 1
324@extension("VK_EXT_display_control") define VK_EXT_DISPLAY_CONTROL_COUNTER_EXTENSION_NAME "VK_EXT_display_control"
325
Jesse Hall889cd9a2017-02-25 22:12:23 -0800326// 93
327@extension("VK_GOOGLE_display_timing") define VK_GOOGLE_DISPLAY_TIMING_SPEC_VERSION 1
Jesse Hallfdc8ab32017-03-10 21:01:57 -0800328@extension("VK_GOOGLE_display_timing") define VK_GOOGLE_DISPLAY_TIMING_EXTENSION_NAME "VK_GOOGLE_display_timing"
Jesse Hall889cd9a2017-02-25 22:12:23 -0800329
Jesse Hallad250842017-03-10 18:35:38 -0800330// 95
331@extension("VK_NV_sample_mask_override_coverage") define VK_NV_SAMPLE_MASK_OVERRIDE_COVERAGE_SPEC_VERSION 1
332@extension("VK_NV_sample_mask_override_coverage") define VK_NV_SAMPLE_MASK_OVERRIDE_COVERAGE_EXTENSION_NAME "VK_NV_sample_mask_override_coverage"
333
334// 96
335@extension("VK_NV_geometry_shader_passthrough") define VK_NV_GEOMETRY_SHADER_PASSTHROUGH_SPEC_VERSION 1
336@extension("VK_NV_geometry_shader_passthrough") define VK_NV_GEOMETRY_SHADER_PASSTHROUGH_EXTENSION_NAME "VK_NV_geometry_shader_passthrough"
337
338// 97
339@extension("VK_NV_viewport_array2") define VK_NV_VIEWPORT_ARRAY2_SPEC_VERSION 1
340@extension("VK_NV_viewport_array2") define VK_NV_VIEWPORT_ARRAY2_EXTENSION_NAME "VK_NV_viewport_array2"
341
342// 98
343@extension("VK_NVX_multiview_per_view_attributes") define VK_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_SPEC_VERSION 1
344@extension("VK_NVX_multiview_per_view_attributes") define VK_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_EXTENSION_NAME "VK_NVX_multiview_per_view_attributes"
345
346// 99
347@extension("VK_NV_viewport_swizzle") define VK_NV_VIEWPORT_SWIZZLE_SPEC_VERSION 1
348@extension("VK_NV_viewport_swizzle") define VK_NV_VIEWPORT_SWIZZLE_EXTENSION_NAME "VK_NV_viewport_swizzle"
349
350// 100
351@extension("VK_EXT_discard_rectangles") define VK_EXT_DISCARD_RECTANGLES_SPEC_VERSION 1
352@extension("VK_EXT_discard_rectangles") define VK_EXT_DISCARD_RECTANGLES_EXTENSION_NAME "VK_EXT_discard_rectangles"
353
Jesse Hall8c954d32018-01-17 22:06:20 -0800354// 102
355@extension("VK_EXT_conservative_rasterization") define VK_EXT_CONSERVATIVE_RASTERIZATION_SPEC_VERSION 1
356@extension("VK_EXT_conservative_rasterization") define VK_EXT_CONSERVATIVE_RASTERIZATION_EXTENSION_NAME "VK_EXT_conservative_rasterization"
357
Jesse Hall77ad05b2017-03-10 22:02:20 -0800358// 105
Jesse Hall77726222017-09-19 14:49:27 -0500359@extension("VK_EXT_swapchain_colorspace") define VK_EXT_SWAPCHAIN_COLORSPACE_SPEC_VERSION 3
Jesse Hallf5ad48b2017-03-20 13:09:19 -0700360@extension("VK_EXT_swapchain_colorspace") define VK_EXT_SWAPCHAIN_COLORSPACE_EXTENSION_NAME "VK_EXT_swapchain_colorspace"
Jesse Hall77ad05b2017-03-10 22:02:20 -0800361
Jesse Hall889cd9a2017-02-25 22:12:23 -0800362// 106
363@extension("VK_EXT_hdr_metadata") define VK_EXT_HDR_METADATA_SPEC_VERSION 1
364@extension("VK_EXT_hdr_metadata") define VK_EXT_HDR_METADATA_EXTENSION_NAME "VK_EXT_hdr_metadata"
365
Jesse Halla13a3cf2018-07-09 15:51:52 -0700366// 110
367@extension("VK_KHR_create_renderpass2") define VK_KHR_CREATE_RENDERPASS2_SPEC_VERSION 1
368@extension("VK_KHR_create_renderpass2") define VK_KHR_CREATE_RENDERPASS2_EXTENSION_NAME "VK_KHR_create_renderpass2"
369
Jesse Hall889cd9a2017-02-25 22:12:23 -0800370// 112
Chris Forbes1d5f68c2017-01-31 10:17:01 +1300371@extension("VK_KHR_shared_presentable_image") define VK_KHR_SHARED_PRESENTABLE_IMAGE_SPEC_VERSION 1
372@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 +1300373
Jesse Hall9492f992017-08-28 12:10:06 -0700374// 113
375@extension("VK_KHR_external_fence_capabilities") define VK_KHR_EXTERNAL_FENCE_CAPABILITIES_SPEC_VERSION 1
376@extension("VK_KHR_external_fence_capabilities") define VK_KHR_EXTERNAL_FENCE_CAPABILITIES_EXTENSION_NAME "VK_KHR_external_fence_capabilities"
377
378// 114
379@extension("VK_KHR_external_fence") define VK_KHR_EXTERNAL_FENCE_SPEC_VERSION 1
380@extension("VK_KHR_external_fence") define VK_KHR_EXTERNAL_FENCE_EXTENSION_NAME "VK_KHR_external_fence"
381
382// 115
383@extension("VK_KHR_external_fence_win32") define VK_KHR_EXTERNAL_FENCE_WIN32_SPEC_VERSION 1
384@extension("VK_KHR_external_fence_win32") define VK_KHR_EXTERNAL_FENCE_WIN32_EXTENSION_NAME "VK_KHR_external_fence_win32"
385
386// 116
387@extension("VK_KHR_external_fence_fd") define VK_KHR_EXTERNAL_FENCE_FD_SPEC_VERSION 1
388@extension("VK_KHR_external_fence_fd") define VK_KHR_EXTERNAL_FENCE_FD_EXTENSION_NAME "VK_KHR_external_fence_fd"
389
Jesse Hall076f95d2017-09-20 11:34:47 -0700390// 118
391@extension("VK_KHR_maintenance2") define VK_KHR_MAINTENANCE2_SPEC_VERSION 1
392@extension("VK_KHR_maintenance2") define VK_KHR_MAINTENANCE2_EXTENSION_NAME "VK_KHR_maintenance2"
393
Jesse Hall05556b12017-05-18 17:40:25 -0700394// 120
Chris Forbese2d3ee12017-03-16 16:10:15 +1300395@extension("VK_KHR_get_surface_capabilities2") define VK_KHR_GET_SURFACE_CAPABILITIES_2_SPEC_VERSION 1
396@extension("VK_KHR_get_surface_capabilities2") define VK_KHR_GET_SURFACE_CAPABILITIES_2_EXTENSION_NAME "VK_KHR_get_surface_capabilities2"
397
Jesse Hall9492f992017-08-28 12:10:06 -0700398// 121
399@extension("VK_KHR_variable_pointers") define VK_KHR_VARIABLE_POINTERS_SPEC_VERSION 1
400@extension("VK_KHR_variable_pointers") define VK_KHR_VARIABLE_POINTERS_EXTENSION_NAME "VK_KHR_variable_pointers"
401
Jesse Hall54f8d132018-04-18 08:16:59 -0700402// 122
403@extension("VK_KHR_get_display_properties2") define VK_KHR_GET_DISPLAY_PROPERTIES_2_SPEC_VERSION 1
404@extension("VK_KHR_get_display_properties2") define VK_KHR_GET_DISPLAY_PROPERTIES_2_EXTENSION_NAME "VK_KHR_get_display_properties2"
405
Jesse Hallad250842017-03-10 18:35:38 -0800406// 123
407@extension("VK_MVK_ios_surface") define VK_MVK_IOS_SURFACE_SPEC_VERSION 1
408@extension("VK_MVK_ios_surface") define VK_MVK_IOS_SURFACE_EXTENSION_NAME "VK_MVK_ios_surface"
409
410// 124
411@extension("VK_MVK_macos_surface") define VK_MVK_MACOS_SURFACE_SPEC_VERSION 1
412@extension("VK_MVK_macos_surface") define VK_MVK_MACOS_SURFACE_EXTENSION_NAME "VK_MVK_macos_surface"
413
Jesse Hall8c954d32018-01-17 22:06:20 -0800414// 126
415@extension("VK_EXT_external_memory_dma_buf") define VK_EXT_EXTERNAL_MEMORY_DMA_BUF_SPEC_VERSION 1
416@extension("VK_EXT_external_memory_dma_buf") define VK_EXT_EXTERNAL_MEMORY_DMA_BUF_EXTENSION_NAME "VK_EXT_external_memory_dma_buf"
417
418// 127
419@extension("VK_EXT_queue_family_foreign") define VK_EXT_QUEUE_FAMILY_FOREIGN_SPEC_VERSION 1
420@extension("VK_EXT_queue_family_foreign") define VK_EXT_QUEUE_FAMILY_FOREIGN_EXTENSION_NAME "VK_EXT_queue_family_foreign"
421
Jesse Hall9492f992017-08-28 12:10:06 -0700422// 128
Jesse Hall77726222017-09-19 14:49:27 -0500423@extension("VK_KHR_dedicated_allocation") define VK_KHR_DEDICATED_ALLOCATION_SPEC_VERSION 3
Jesse Hall9492f992017-08-28 12:10:06 -0700424@extension("VK_KHR_dedicated_allocation") define VK_KHR_DEDICATED_ALLOCATION_EXTENSION_NAME "VK_KHR_dedicated_allocation"
425
Jesse Hall8c954d32018-01-17 22:06:20 -0800426// 128
427@extension("VK_EXT_debug_utils") define VK_EXT_DEBUG_UTILS_SPEC_VERSION 1
428@extension("VK_EXT_debug_utils") define VK_EXT_DEBUG_UTILS_EXTENSION_NAME "VK_EXT_debug_utils"
429
Jesse Hall36215a92018-01-18 15:04:37 -0800430// 130
Jesse Hall72e6a132018-04-06 13:00:44 -0700431@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 -0800432@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"
433
Jesse Hall7ba0ac72017-07-07 17:13:23 -0700434// 131
435@extension("VK_EXT_sampler_filter_minmax") define VK_EXT_SAMPLER_FILTER_MINMAX_SPEC_VERSION 1
436@extension("VK_EXT_sampler_filter_minmax") define VK_EXT_SAMPLER_FILTER_MINMAX_EXTENSION_NAME "VK_EXT_sampler_filter_minmax"
437
Jesse Hall9492f992017-08-28 12:10:06 -0700438// 132
439@extension("VK_KHR_storage_buffer_storage_class") define VK_KHR_STORAGE_BUFFER_STORAGE_CLASS_SPEC_VERSION 1
440@extension("VK_KHR_storage_buffer_storage_class") define VK_KHR_STORAGE_BUFFER_STORAGE_CLASS_EXTENSION_NAME "VK_KHR_storage_buffer_storage_class"
441
Jesse Hall7ba0ac72017-07-07 17:13:23 -0700442// 133
443@extension("VK_AMD_gpu_shader_int16") define VK_AMD_GPU_SHADER_INT16_SPEC_VERSION 1
444@extension("VK_AMD_gpu_shader_int16") define VK_AMD_GPU_SHADER_INT16_EXTENSION_NAME "VK_AMD_gpu_shader_int16"
445
Jesse Hall77726222017-09-19 14:49:27 -0500446// 137
447@extension("VK_AMD_mixed_attachment_samples") define VK_AMD_MIXED_ATTACHMENT_SAMPLES_SPEC_VERSION 1
448@extension("VK_AMD_mixed_attachment_samples") define VK_AMD_MIXED_ATTACHMENT_SAMPLES_EXTENSION_NAME "VK_AMD_mixed_attachment_samples"
449
450// 138
451@extension("VK_AMD_shader_fragment_mask") define VK_AMD_SHADER_FRAGMENT_MASK_SPEC_VERSION 1
452@extension("VK_AMD_shader_fragment_mask") define VK_AMD_SHADER_FRAGMENT_MASK_EXTENSION_NAME "VK_AMD_shader_fragment_mask"
453
Jesse Hall4af6c462018-09-10 09:04:25 -0700454// 139
455@extension("VK_EXT_inline_uniform_block") define VK_EXT_INLINE_UNIFORM_BLOCK_SPEC_VERSION 1
456@extension("VK_EXT_inline_uniform_block") define VK_EXT_INLINE_UNIFORM_BLOCK_EXTENSION_NAME "VK_EXT_inline_uniform_block"
457
Jesse Hall77726222017-09-19 14:49:27 -0500458// 141
459@extension("VK_EXT_shader_stencil_export") define VK_EXT_SHADER_STENCIL_EXPORT_SPEC_VERSION 1
460@extension("VK_EXT_shader_stencil_export") define VK_EXT_SHADER_STENCIL_EXPORT_EXTENSION_NAME "VK_EXT_shader_stencil_export"
461
462// 144
463@extension("VK_EXT_sample_locations") define VK_EXT_SAMPLE_LOCATIONS_SPEC_VERSION 1
464@extension("VK_EXT_sample_locations") define VK_EXT_SAMPLE_LOCATIONS_EXTENSION_NAME "VK_EXT_sample_locations"
465
466// 145
467@extension("VK_KHR_relaxed_block_layout") define VK_KHR_RELAXED_BLOCK_LAYOUT_SPEC_VERSION 1
468@extension("VK_KHR_relaxed_block_layout") define VK_KHR_RELAXED_BLOCK_LAYOUT_EXTENSION_NAME "VK_KHR_relaxed_block_layout"
469
Jesse Hall9492f992017-08-28 12:10:06 -0700470// 147
471@extension("VK_KHR_get_memory_requirements2") define VK_KHR_GET_MEMORY_REQUIREMENTS2_SPEC_VERSION 1
472@extension("VK_KHR_get_memory_requirements2") define VK_KHR_GET_MEMORY_REQUIREMENTS2_EXTENSION_NAME "VK_KHR_get_memory_requirements2"
473
Jesse Hall076f95d2017-09-20 11:34:47 -0700474// 148
475@extension("VK_KHR_image_format_list") define VK_KHR_IMAGE_FORMAT_LIST_SPEC_VERSION 1
476@extension("VK_KHR_image_format_list") define VK_KHR_IMAGE_FORMAT_LIST_EXTENSION_NAME "VK_KHR_image_format_list"
477
Jesse Hall7ba0ac72017-07-07 17:13:23 -0700478// 149
479@extension("VK_EXT_blend_operation_advanced") define VK_EXT_BLEND_OPERATION_ADVANCED_SPEC_VERSION 2
480@extension("VK_EXT_blend_operation_advanced") define VK_EXT_BLEND_OPERATION_ADVANCED_EXTENSION_NAME "VK_EXT_blend_operation_advanced"
481
482// 150
483@extension("VK_NV_fragment_coverage_to_color") define VK_NV_FRAGMENT_COVERAGE_TO_COLOR_SPEC_VERSION 1
484@extension("VK_NV_fragment_coverage_to_color") define VK_NV_FRAGMENT_COVERAGE_TO_COLOR_EXTENSION_NAME "VK_NV_fragment_coverage_to_color"
485
486// 153
487@extension("VK_NV_framebuffer_mixed_samples") define VK_NV_FRAMEBUFFER_MIXED_SAMPLES_SPEC_VERSION 1
488@extension("VK_NV_framebuffer_mixed_samples") define VK_NV_FRAMEBUFFER_MIXED_SAMPLES_EXTENSION_NAME "VK_NV_framebuffer_mixed_samples"
489
490// 154
491@extension("VK_NV_fill_rectangle") define VK_NV_FILL_RECTANGLE_SPEC_VERSION 1
492@extension("VK_NV_fill_rectangle") define VK_NV_FILL_RECTANGLE_EXTENSION_NAME "VK_NV_fill_rectangle"
493
Jesse Hall77726222017-09-19 14:49:27 -0500494// 156
495@extension("VK_EXT_post_depth_coverage") define VK_EXT_POST_DEPTH_COVERAGE_SPEC_VERSION 1
496@extension("VK_EXT_post_depth_coverage") define VK_EXT_POST_DEPTH_COVERAGE_EXTENSION_NAME "VK_EXT_post_depth_coverage"
497
Jesse Hall076f95d2017-09-20 11:34:47 -0700498// 157
499@extension("VK_KHR_sampler_ycbcr_conversion") define VK_KHR_SAMPLER_YCBCR_CONVERSION_SPEC_VERSION 1
500@extension("VK_KHR_sampler_ycbcr_conversion") define VK_KHR_SAMPLER_YCBCR_CONVERSION_EXTENSION_NAME "VK_KHR_sampler_ycbcr_conversion"
501
502// 158
503@extension("VK_KHR_bind_memory2") define VK_KHR_BIND_MEMORY2_SPEC_VERSION 1
504@extension("VK_KHR_bind_memory2") define VK_KHR_BIND_MEMORY2_EXTENSION_NAME "VK_KHR_bind_memory2"
505
Jesse Hallf47e8f82018-10-27 23:41:45 -0700506// 159
507@extension("VK_EXT_image_drm_format_modifier") define VK_EXT_IMAGE_DRM_FORMAT_MODIFIER_SPEC_VERSION 1
508@extension("VK_EXT_image_drm_format_modifier") define VK_EXT_IMAGE_DRM_FORMAT_MODIFIER_EXTENSION_NAME "VK_EXT_image_drm_format_modifier"
509
Jesse Hall77726222017-09-19 14:49:27 -0500510// 161
511@extension("VK_EXT_validation_cache") define VK_EXT_VALIDATION_CACHE_SPEC_VERSION 1
512@extension("VK_EXT_validation_cache") define VK_EXT_VALIDATION_CACHE_EXTENSION_NAME "VK_EXT_validation_cache"
513
Jesse Hall72e6a132018-04-06 13:00:44 -0700514// 162
515@extension("VK_EXT_descriptor_indexing") define VK_EXT_DESCRIPTOR_INDEXING_SPEC_VERSION 2
516@extension("VK_EXT_descriptor_indexing") define VK_EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME "VK_EXT_descriptor_indexing"
517
Jesse Hallb5297192018-09-22 20:52:13 +0200518// 163
Jesse Hall77726222017-09-19 14:49:27 -0500519@extension("VK_EXT_shader_viewport_index_layer") define VK_EXT_SHADER_VIEWPORT_INDEX_LAYER_SPEC_VERSION 1
520@extension("VK_EXT_shader_viewport_index_layer") define VK_EXT_SHADER_VIEWPORT_INDEX_LAYER_EXTENSION_NAME "VK_EXT_shader_viewport_index_layer"
521
Jesse Hallb5297192018-09-22 20:52:13 +0200522// 165
523@extension("VK_NV_shading_rate_image") define VK_NV_SHADING_RATE_IMAGE_SPEC_VERSION 3
524@extension("VK_NV_shading_rate_image") define VK_NV_SHADING_RATE_IMAGE_EXTENSION_NAME "VK_NV_shading_rate_image"
525
526// 166
Jesse Halla363a8e2018-11-05 21:18:00 -0700527@extension("VK_NV_raytracing") define VK_NV_RAYTRACING_SPEC_VERSION 2
528@extension("VK_NV_raytracing") define VK_NV_RAYTRACING_EXTENSION_NAME "VK_NV_raytracing"
Jesse Hallb5297192018-09-22 20:52:13 +0200529
530// 167
531@extension("VK_NV_representative_fragment_test") define VK_NV_REPRESENTATIVE_FRAGMENT_TEST_SPEC_VERSION 1
532@extension("VK_NV_representative_fragment_test") define VK_NV_REPRESENTATIVE_FRAGMENT_TEST_EXTENSION_NAME "VK_NV_representative_fragment_test"
533
Daniel Koch09f7bf92017-10-05 00:26:58 -0400534// 169
535@extension("VK_KHR_maintenance3") define VK_KHR_MAINTENANCE3_SPEC_VERSION 1
536@extension("VK_KHR_maintenance3") define VK_KHR_MAINTENANCE3_EXTENSION_NAME "VK_KHR_maintenance3"
537
Jesse Hall54f8d132018-04-18 08:16:59 -0700538// 170
539@extension("VK_KHR_draw_indirect_count") define VK_KHR_DRAW_INDIRECT_COUNT_SPEC_VERSION 1
540@extension("VK_KHR_draw_indirect_count") define VK_KHR_DRAW_INDIRECT_COUNT_EXTENSION_NAME "VK_KHR_draw_indirect_count"
541
Jesse Hall8c954d32018-01-17 22:06:20 -0800542// 175
543@extension("VK_EXT_global_priority") define VK_EXT_GLOBAL_PRIORITY_SPEC_VERSION 1
544@extension("VK_EXT_global_priority") define VK_EXT_GLOBAL_PRIORITY_EXTENSION_NAME "VK_EXT_global_priority"
545
Jesse Halla13a3cf2018-07-09 15:51:52 -0700546// 178
547@extension("VK_KHR_8bit_storage") define VK_KHR_8BIT_STORAGE_SPEC_VERSION 1
548@extension("VK_KHR_8bit_storage") define VK_KHR_8BIT_STORAGE_EXTENSION_NAME "VK_KHR_8bit_storage"
549
Jesse Hall8c954d32018-01-17 22:06:20 -0800550// 179
551@extension("VK_EXT_external_memory_host") define VK_EXT_EXTERNAL_MEMORY_HOST_SPEC_VERSION 1
552@extension("VK_EXT_external_memory_host") define VK_EXT_EXTERNAL_MEMORY_HOST_EXTENSION_NAME "VK_EXT_external_memory_host"
553
Jesse Hall72e6a132018-04-06 13:00:44 -0700554// 180
555@extension("VK_AMD_buffer_marker") define VK_AMD_BUFFER_MARKER_SPEC_VERSION 1
556@extension("VK_AMD_buffer_marker") define VK_AMD_BUFFER_MARKER_EXTENSION_NAME "VK_AMD_buffer_marker"
557
Jesse Hall2e6853c2018-10-02 14:05:37 -0700558// 181
559@extension("VK_KHR_shader_atomic_int64") define VK_KHR_SHADER_ATOMIC_INT64_SPEC_VERSION 1
560@extension("VK_KHR_shader_atomic_int64") define VK_KHR_SHADER_ATOMIC_INT64_EXTENSION_NAME "VK_KHR_shader_atomic_int64"
561
Jesse Hall72e6a132018-04-06 13:00:44 -0700562// 186
563@extension("VK_AMD_shader_core_properties") define VK_AMD_SHADER_CORE_PROPERTIES_SPEC_VERSION 1
564@extension("VK_AMD_shader_core_properties") define VK_AMD_SHADER_CORE_PROPERTIES_EXTENSION_NAME "VK_AMD_shader_core_properties"
565
Jesse Halla363a8e2018-11-05 21:18:00 -0700566// 190
567@extension("VK_AMD_memory_overallocation_behavior") define VK_AMD_MEMORY_OVERALLOCATION_BEHAVIOR_SPEC_VERSION 1
568@extension("VK_AMD_memory_overallocation_behavior") define VK_AMD_MEMORY_OVERALLOCATION_BEHAVIOR_EXTENSION_NAME "VK_AMD_memory_overallocation_behavior"
569
Jesse Hall72e6a132018-04-06 13:00:44 -0700570// 191
Jesse Hall4af6c462018-09-10 09:04:25 -0700571@extension("VK_EXT_vertex_attribute_divisor") define VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_SPEC_VERSION 2
572@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 -0700573
Jesse Hall2e6853c2018-10-02 14:05:37 -0700574// 197
575@extension("VK_KHR_driver_properties") define VK_KHR_DRIVER_PROPERTIES_SPEC_VERSION 1
576@extension("VK_KHR_driver_properties") define VK_KHR_DRIVER_PROPERTIES_EXTENSION_NAME "VK_KHR_driver_properties"
577
Jesse Hall72e6a132018-04-06 13:00:44 -0700578// 199
579@extension("VK_NV_shader_subgroup_partitioned") define VK_NV_SHADER_SUBGROUP_PARTITIONED_SPEC_VERSION 1
580@extension("VK_NV_shader_subgroup_partitioned") define VK_NV_SHADER_SUBGROUP_PARTITIONED_EXTENSION_NAME "VK_NV_shader_subgroup_partitioned"
581
Jesse Hallb5297192018-09-22 20:52:13 +0200582// 202
583@extension("VK_NV_compute_shader_derivatives") define VK_NV_COMPUTE_SHADER_DERIVATIVES_SPEC_VERSION 1
584@extension("VK_NV_compute_shader_derivatives") define VK_NV_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME "VK_NV_compute_shader_derivatives"
585
586// 203
587@extension("VK_NV_mesh_shader") define VK_NV_MESH_SHADER_SPEC_VERSION 1
588@extension("VK_NV_mesh_shader") define VK_NV_MESH_SHADER_EXTENSION_NAME "VK_NV_mesh_shader"
589
590// 204
591@extension("VK_NV_fragment_shader_barycentric") define VK_NV_FRAGMENT_SHADER_BARYCENTRIC_SPEC_VERSION 1
592@extension("VK_NV_fragment_shader_barycentric") define VK_NV_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME "VK_NV_fragment_shader_barycentric"
593
594// 205
595@extension("VK_NV_shader_image_footprint") define VK_NV_SHADER_IMAGE_FOOTPRINT_SPEC_VERSION 1
596@extension("VK_NV_shader_image_footprint") define VK_NV_SHADER_IMAGE_FOOTPRINT_EXTENSION_NAME "VK_NV_shader_image_footprint"
597
598// 206
599@extension("VK_NV_scissor_exclusive") define VK_NV_SCISSOR_EXCLUSIVE_SPEC_VERSION 1
600@extension("VK_NV_scissor_exclusive") define VK_NV_SCISSOR_EXCLUSIVE_EXTENSION_NAME "VK_NV_scissor_exclusive"
601
Jesse Hall115df0c2018-07-30 12:00:59 -0700602// 207
603@extension("VK_NV_device_diagnostic_checkpoints") define VK_NV_DEVICE_DIAGNOSTIC_CHECKPOINTS_SPEC_VERSION 2
604@extension("VK_NV_device_diagnostic_checkpoints") define VK_NV_DEVICE_DIAGNOSTIC_CHECKPOINTS_EXTENSION_NAME "VK_NV_device_diagnostic_checkpoints"
605
Jesse Hall4af6c462018-09-10 09:04:25 -0700606// 212
607@extension("VK_KHR_vulkan_memory_model") define VK_KHR_VULKAN_MEMORY_MODEL_SPEC_VERSION 2
608@extension("VK_KHR_vulkan_memory_model") define VK_KHR_VULKAN_MEMORY_MODEL_EXTENSION_NAME "VK_KHR_vulkan_memory_model"
609
Jesse Hallf47e8f82018-10-27 23:41:45 -0700610// 213
611@extension("VK_EXT_pci_bus_info") define VK_EXT_PCI_BUS_INFO_SPEC_VERSION 1
612@extension("VK_EXT_pci_bus_info") define VK_EXT_PCI_BUS_INFO_EXENSION_NAME "VK_EXT_pci_bus_info"
613
Jesse Hall497c46f2018-10-08 12:52:48 -0700614// 215
615@extension("VK_FUCHSIA_imagepipe_surface") define VK_FUCHSIA_IMAGEPIPE_SURFACE_SPEC_VERSION 1
616@extension("VK_FUCHSIA_imagepipe_surface") define VK_FUCHSIA_IMAGEPIPE_SURFACE_EXTENSION_NAME "VK_FUCHSIA_imagepipe_surface"
617
Jesse Hallf47e8f82018-10-27 23:41:45 -0700618// 224
619@extension("VK_GOOGLE_hlsl_functionality1") define VK_GOOGLE_HLSL_FUNCTIONALITY1_SPEC_VERSION 0
620@extension("VK_GOOGLE_hlsl_functionality1") define VK_GOOGLE_HLSL_FUNCTIONALITY1_EXTENSION_NAME "VK_GOOGLE_hlsl_functionality1"
621
622// 225
623@extension("VK_GOOGLE_decorate_string") define VK_GOOGLE_DECORATE_STRING_SPEC_VERSION 0
624@extension("VK_GOOGLE_decorate_string") define VK_GOOGLE_DECORATE_STRING_EXTENSION_NAME "VK_GOOGLE_decorate_string"
625
Jesse Halld27f6aa2015-08-15 17:58:48 -0700626/////////////
627// Types //
628/////////////
629
Jesse Hall5ae3abb2015-10-08 14:00:22 -0700630type u32 VkBool32
631type u32 VkFlags
632type u64 VkDeviceSize
633type u32 VkSampleMask
634
Jesse Halld27f6aa2015-08-15 17:58:48 -0700635/// Dispatchable handle types.
636@dispatchHandle type u64 VkInstance
637@dispatchHandle type u64 VkPhysicalDevice
638@dispatchHandle type u64 VkDevice
639@dispatchHandle type u64 VkQueue
Jesse Hall3fbc8562015-11-29 22:10:52 -0800640@dispatchHandle type u64 VkCommandBuffer
Jesse Halld27f6aa2015-08-15 17:58:48 -0700641
642/// Non dispatchable handle types.
643@nonDispatchHandle type u64 VkDeviceMemory
Jesse Hall3fbc8562015-11-29 22:10:52 -0800644@nonDispatchHandle type u64 VkCommandPool
Jesse Halld27f6aa2015-08-15 17:58:48 -0700645@nonDispatchHandle type u64 VkBuffer
646@nonDispatchHandle type u64 VkBufferView
647@nonDispatchHandle type u64 VkImage
648@nonDispatchHandle type u64 VkImageView
Jesse Halld27f6aa2015-08-15 17:58:48 -0700649@nonDispatchHandle type u64 VkShaderModule
Jesse Halld27f6aa2015-08-15 17:58:48 -0700650@nonDispatchHandle type u64 VkPipeline
651@nonDispatchHandle type u64 VkPipelineLayout
652@nonDispatchHandle type u64 VkSampler
653@nonDispatchHandle type u64 VkDescriptorSet
654@nonDispatchHandle type u64 VkDescriptorSetLayout
655@nonDispatchHandle type u64 VkDescriptorPool
Jesse Halld27f6aa2015-08-15 17:58:48 -0700656@nonDispatchHandle type u64 VkFence
657@nonDispatchHandle type u64 VkSemaphore
658@nonDispatchHandle type u64 VkEvent
659@nonDispatchHandle type u64 VkQueryPool
660@nonDispatchHandle type u64 VkFramebuffer
661@nonDispatchHandle type u64 VkRenderPass
662@nonDispatchHandle type u64 VkPipelineCache
Jesse Hall1356b0d2015-11-23 17:24:58 -0800663
Ian Elliott28bd2c32017-10-13 09:21:12 -0600664@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -0400665@nonDispatchHandle type u64 VkSamplerYcbcrConversion
666@nonDispatchHandle type u64 VkDescriptorUpdateTemplate
667
Jesse Hallad250842017-03-10 18:35:38 -0800668// 1
Jesse Hall3e0dc8f2015-11-30 00:42:57 -0800669@extension("VK_KHR_surface") @nonDispatchHandle type u64 VkSurfaceKHR
Jesse Hall1356b0d2015-11-23 17:24:58 -0800670
Jesse Hallad250842017-03-10 18:35:38 -0800671// 2
Jesse Hall3e0dc8f2015-11-30 00:42:57 -0800672@extension("VK_KHR_swapchain") @nonDispatchHandle type u64 VkSwapchainKHR
Jesse Hall1356b0d2015-11-23 17:24:58 -0800673
Jesse Hallad250842017-03-10 18:35:38 -0800674// 3
Jesse Hall3e0dc8f2015-11-30 00:42:57 -0800675@extension("VK_KHR_display") @nonDispatchHandle type u64 VkDisplayKHR
676@extension("VK_KHR_display") @nonDispatchHandle type u64 VkDisplayModeKHR
Jesse Halld27f6aa2015-08-15 17:58:48 -0700677
Jesse Hallad250842017-03-10 18:35:38 -0800678// 12
Jesse Hall715b86a2016-01-16 16:34:29 -0800679@extension("VK_EXT_debug_report") @nonDispatchHandle type u64 VkDebugReportCallbackEXT
680
Jesse Hallad250842017-03-10 18:35:38 -0800681// 86
682@extension("VK_KHR_descriptor_update_template") @nonDispatchHandle type u64 VkDescriptorUpdateTemplateKHR
683
684// 87
Chris Forbes289cb792016-12-30 15:03:55 +1300685@extension("VK_NVX_device_generated_commands") @nonDispatchHandle type u64 VkObjectTableNVX
686@extension("VK_NVX_device_generated_commands") @nonDispatchHandle type u64 VkIndirectCommandsLayoutNVX
687
Jesse Hall8c954d32018-01-17 22:06:20 -0800688// 129
689@extension("VK_EXT_debug_utils") @nonDispatchHandle type u64 VkDebugUtilsMessengerEXT
690
Jesse Hall076f95d2017-09-20 11:34:47 -0700691// 157
692@extension("VK_KHR_sampler_ycbcr_conversion") @nonDispatchHandle type u64 VkSamplerYcbcrConversionKHR
693
Jesse Hall77726222017-09-19 14:49:27 -0500694// 161
695@extension("VK_EXT_validation_cache") @nonDispatchHandle type u64 VkValidationCacheEXT
Jesse Halld27f6aa2015-08-15 17:58:48 -0700696
Jesse Hallb5297192018-09-22 20:52:13 +0200697// 166
Jesse Halla363a8e2018-11-05 21:18:00 -0700698@extension("VK_NV_raytracing") @nonDispatchHandle type u64 VkAccelerationStructureNV
Jesse Hallb5297192018-09-22 20:52:13 +0200699
Jesse Halld27f6aa2015-08-15 17:58:48 -0700700/////////////
701// Enums //
702/////////////
703
704enum VkImageLayout {
705 VK_IMAGE_LAYOUT_UNDEFINED = 0x00000000, /// Implicit layout an image is when its contents are undefined due to various reasons (e.g. right after creation)
706 VK_IMAGE_LAYOUT_GENERAL = 0x00000001, /// General layout when image can be used for any kind of access
707 VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL = 0x00000002, /// Optimal layout when image is only used for color attachment read/write
708 VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL = 0x00000003, /// Optimal layout when image is only used for depth/stencil attachment read/write
709 VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL = 0x00000004, /// Optimal layout when image is used for read only depth/stencil attachment and shader access
710 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 -0800711 VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL = 0x00000006, /// Optimal layout when image is used only as source of transfer operations
712 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 -0700713 VK_IMAGE_LAYOUT_PREINITIALIZED = 0x00000008, /// Initial layout used when the data is populated by the CPU
Jesse Hall1356b0d2015-11-23 17:24:58 -0800714
Ian Elliott28bd2c32017-10-13 09:21:12 -0600715 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -0400716 VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL = 1000117000,
717 VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL = 1000117001,
718
Jesse Hallad250842017-03-10 18:35:38 -0800719 //@extension("VK_KHR_swapchain") // 2
Jesse Hallbd888842015-11-30 21:44:14 -0800720 VK_IMAGE_LAYOUT_PRESENT_SRC_KHR = 1000001002,
Chris Forbesaf3a1112017-01-31 15:37:03 +1300721
Jesse Hall05556b12017-05-18 17:40:25 -0700722 //@extension("VK_KHR_shared_presentable_image") // 112
Chris Forbesaf3a1112017-01-31 15:37:03 +1300723 VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR = 1000111000,
Jesse Hall076f95d2017-09-20 11:34:47 -0700724
725 //@extension("VK_KHR_maintenance2") // 118
726 VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL_KHR = 1000117000,
727 VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL_KHR = 1000117001,
Jesse Hallb5297192018-09-22 20:52:13 +0200728
729 //@extension("VK_NV_shading_rate_image") // 165
730 VK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV = 1000164003,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700731}
732
733enum VkAttachmentLoadOp {
734 VK_ATTACHMENT_LOAD_OP_LOAD = 0x00000000,
735 VK_ATTACHMENT_LOAD_OP_CLEAR = 0x00000001,
736 VK_ATTACHMENT_LOAD_OP_DONT_CARE = 0x00000002,
737}
738
739enum VkAttachmentStoreOp {
740 VK_ATTACHMENT_STORE_OP_STORE = 0x00000000,
741 VK_ATTACHMENT_STORE_OP_DONT_CARE = 0x00000001,
742}
743
744enum VkImageType {
745 VK_IMAGE_TYPE_1D = 0x00000000,
746 VK_IMAGE_TYPE_2D = 0x00000001,
747 VK_IMAGE_TYPE_3D = 0x00000002,
748}
749
750enum VkImageTiling {
Jesse Hallc7467b72015-11-29 21:05:26 -0800751 VK_IMAGE_TILING_OPTIMAL = 0x00000000,
752 VK_IMAGE_TILING_LINEAR = 0x00000001,
Jesse Hallf47e8f82018-10-27 23:41:45 -0700753
754 //@extension("VK_EXT_image_drm_format_modifier") // 159
755 VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT = 1000158000,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700756}
757
758enum VkImageViewType {
759 VK_IMAGE_VIEW_TYPE_1D = 0x00000000,
760 VK_IMAGE_VIEW_TYPE_2D = 0x00000001,
761 VK_IMAGE_VIEW_TYPE_3D = 0x00000002,
762 VK_IMAGE_VIEW_TYPE_CUBE = 0x00000003,
763 VK_IMAGE_VIEW_TYPE_1D_ARRAY = 0x00000004,
764 VK_IMAGE_VIEW_TYPE_2D_ARRAY = 0x00000005,
765 VK_IMAGE_VIEW_TYPE_CUBE_ARRAY = 0x00000006,
766}
767
Jesse Hall3fbc8562015-11-29 22:10:52 -0800768enum VkCommandBufferLevel {
769 VK_COMMAND_BUFFER_LEVEL_PRIMARY = 0x00000000,
770 VK_COMMAND_BUFFER_LEVEL_SECONDARY = 0x00000001,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700771}
772
Jesse Hall65ab5522015-11-30 00:07:16 -0800773enum VkComponentSwizzle {
774 VK_COMPONENT_SWIZZLE_IDENTITY = 0x00000000,
775 VK_COMPONENT_SWIZZLE_ZERO = 0x00000001,
776 VK_COMPONENT_SWIZZLE_ONE = 0x00000002,
777 VK_COMPONENT_SWIZZLE_R = 0x00000003,
778 VK_COMPONENT_SWIZZLE_G = 0x00000004,
779 VK_COMPONENT_SWIZZLE_B = 0x00000005,
780 VK_COMPONENT_SWIZZLE_A = 0x00000006,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700781}
782
783enum VkDescriptorType {
784 VK_DESCRIPTOR_TYPE_SAMPLER = 0x00000000,
785 VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER = 0x00000001,
786 VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE = 0x00000002,
787 VK_DESCRIPTOR_TYPE_STORAGE_IMAGE = 0x00000003,
788 VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER = 0x00000004,
789 VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER = 0x00000005,
790 VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER = 0x00000006,
791 VK_DESCRIPTOR_TYPE_STORAGE_BUFFER = 0x00000007,
792 VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC = 0x00000008,
793 VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC = 0x00000009,
794 VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT = 0x0000000a,
Jesse Hall4af6c462018-09-10 09:04:25 -0700795
796 //@extension("VK_EXT_inline_uniform_block") // 139
797 VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT = 1000138000,
Jesse Hallb5297192018-09-22 20:52:13 +0200798
Jesse Halla363a8e2018-11-05 21:18:00 -0700799 //@extension("VK_NV_raytracing") // 166
800 VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV = 1000165000,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700801}
802
Jesse Halld27f6aa2015-08-15 17:58:48 -0700803enum VkQueryType {
804 VK_QUERY_TYPE_OCCLUSION = 0x00000000,
805 VK_QUERY_TYPE_PIPELINE_STATISTICS = 0x00000001, /// Optional
Jesse Halla3a7a1d2015-11-24 11:37:23 -0800806 VK_QUERY_TYPE_TIMESTAMP = 0x00000002,
Jesse Hallb5297192018-09-22 20:52:13 +0200807
Jesse Hallf47e8f82018-10-27 23:41:45 -0700808 //@extension("VK_EXT_transform_feedback") // 29
809 VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT = 1000028004,
810
Jesse Halla363a8e2018-11-05 21:18:00 -0700811 //@extension("VK_NV_raytracing") // 166
812 VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV = 1000165000,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700813}
814
Jesse Halld27f6aa2015-08-15 17:58:48 -0700815enum VkBorderColor {
816 VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK = 0x00000000,
817 VK_BORDER_COLOR_INT_TRANSPARENT_BLACK = 0x00000001,
818 VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK = 0x00000002,
819 VK_BORDER_COLOR_INT_OPAQUE_BLACK = 0x00000003,
820 VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE = 0x00000004,
821 VK_BORDER_COLOR_INT_OPAQUE_WHITE = 0x00000005,
822}
823
824enum VkPipelineBindPoint {
Jesse Hallc7467b72015-11-29 21:05:26 -0800825 VK_PIPELINE_BIND_POINT_GRAPHICS = 0x00000000,
826 VK_PIPELINE_BIND_POINT_COMPUTE = 0x00000001,
Jesse Hallb5297192018-09-22 20:52:13 +0200827
Jesse Halla363a8e2018-11-05 21:18:00 -0700828 //@extension("VK_NV_raytracing") // 166
829 VK_PIPELINE_BIND_POINT_RAY_TRACING_NV = 1000165000,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700830}
831
832enum VkPrimitiveTopology {
833 VK_PRIMITIVE_TOPOLOGY_POINT_LIST = 0x00000000,
834 VK_PRIMITIVE_TOPOLOGY_LINE_LIST = 0x00000001,
835 VK_PRIMITIVE_TOPOLOGY_LINE_STRIP = 0x00000002,
836 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST = 0x00000003,
837 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP = 0x00000004,
838 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN = 0x00000005,
Jesse Hall3fbc8562015-11-29 22:10:52 -0800839 VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY = 0x00000006,
840 VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY = 0x00000007,
841 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY = 0x00000008,
842 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY = 0x00000009,
Jesse Hall091ed9e2015-11-30 00:55:29 -0800843 VK_PRIMITIVE_TOPOLOGY_PATCH_LIST = 0x0000000a,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700844}
845
846enum VkSharingMode {
847 VK_SHARING_MODE_EXCLUSIVE = 0x00000000,
848 VK_SHARING_MODE_CONCURRENT = 0x00000001,
849}
850
851enum VkIndexType {
852 VK_INDEX_TYPE_UINT16 = 0x00000000,
853 VK_INDEX_TYPE_UINT32 = 0x00000001,
Jesse Halla363a8e2018-11-05 21:18:00 -0700854
855 //@extension("VK_NV_raytracing") // 166
856 VK_INDEX_TYPE_NONE_NV = 1000165000,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700857}
858
Jesse Hall23ff73f2015-11-29 14:36:39 -0800859enum VkFilter {
860 VK_FILTER_NEAREST = 0x00000000,
861 VK_FILTER_LINEAR = 0x00000001,
Jesse Hall26763382016-05-20 07:13:52 -0700862
Jesse Hallad250842017-03-10 18:35:38 -0800863 //@extension("VK_IMG_filter_cubic") // 16
Jesse Hall26763382016-05-20 07:13:52 -0700864 VK_FILTER_CUBIC_IMG = 1000015000,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700865}
866
Jesse Hall23ff73f2015-11-29 14:36:39 -0800867enum VkSamplerMipmapMode {
Jesse Hall23ff73f2015-11-29 14:36:39 -0800868 VK_SAMPLER_MIPMAP_MODE_NEAREST = 0x00000001, /// Choose nearest mip level
869 VK_SAMPLER_MIPMAP_MODE_LINEAR = 0x00000002, /// Linear filter between mip levels
Jesse Halld27f6aa2015-08-15 17:58:48 -0700870}
871
Jesse Hall23ff73f2015-11-29 14:36:39 -0800872enum VkSamplerAddressMode {
Jesse Hallc7467b72015-11-29 21:05:26 -0800873 VK_SAMPLER_ADDRESS_MODE_REPEAT = 0x00000000,
874 VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT = 0x00000001,
875 VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE = 0x00000002,
876 VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER = 0x00000003,
877 VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE = 0x00000004,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700878}
879
880enum VkCompareOp {
881 VK_COMPARE_OP_NEVER = 0x00000000,
882 VK_COMPARE_OP_LESS = 0x00000001,
883 VK_COMPARE_OP_EQUAL = 0x00000002,
Jesse Hall3fbc8562015-11-29 22:10:52 -0800884 VK_COMPARE_OP_LESS_OR_EQUAL = 0x00000003,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700885 VK_COMPARE_OP_GREATER = 0x00000004,
886 VK_COMPARE_OP_NOT_EQUAL = 0x00000005,
Jesse Hall3fbc8562015-11-29 22:10:52 -0800887 VK_COMPARE_OP_GREATER_OR_EQUAL = 0x00000006,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700888 VK_COMPARE_OP_ALWAYS = 0x00000007,
889}
890
Jesse Hall65ab5522015-11-30 00:07:16 -0800891enum VkPolygonMode {
892 VK_POLYGON_MODE_FILL = 0x00000000,
893 VK_POLYGON_MODE_LINE = 0x00000001,
894 VK_POLYGON_MODE_POINT = 0x00000002,
Jesse Hall7ba0ac72017-07-07 17:13:23 -0700895
896 //@extension("VK_NV_fill_rectangle") // 154
897 VK_POLYGON_MODE_FILL_RECTANGLE_NV = 1000153000,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700898}
899
900enum VkFrontFace {
Jesse Hall3fbc8562015-11-29 22:10:52 -0800901 VK_FRONT_FACE_COUNTER_CLOCKWISE = 0x00000000,
902 VK_FRONT_FACE_CLOCKWISE = 0x00000001,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700903}
904
Jesse Hall65ab5522015-11-30 00:07:16 -0800905enum VkBlendFactor {
906 VK_BLEND_FACTOR_ZERO = 0x00000000,
907 VK_BLEND_FACTOR_ONE = 0x00000001,
908 VK_BLEND_FACTOR_SRC_COLOR = 0x00000002,
909 VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR = 0x00000003,
910 VK_BLEND_FACTOR_DST_COLOR = 0x00000004,
911 VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR = 0x00000005,
912 VK_BLEND_FACTOR_SRC_ALPHA = 0x00000006,
913 VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA = 0x00000007,
914 VK_BLEND_FACTOR_DST_ALPHA = 0x00000008,
915 VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA = 0x00000009,
916 VK_BLEND_FACTOR_CONSTANT_COLOR = 0x0000000a,
917 VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR = 0x0000000b,
918 VK_BLEND_FACTOR_CONSTANT_ALPHA = 0x0000000c,
919 VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA = 0x0000000d,
920 VK_BLEND_FACTOR_SRC_ALPHA_SATURATE = 0x0000000e,
921 VK_BLEND_FACTOR_SRC1_COLOR = 0x0000000f,
922 VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR = 0x00000010,
923 VK_BLEND_FACTOR_SRC1_ALPHA = 0x00000011,
924 VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA = 0x00000012,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700925}
926
927enum VkBlendOp {
928 VK_BLEND_OP_ADD = 0x00000000,
929 VK_BLEND_OP_SUBTRACT = 0x00000001,
930 VK_BLEND_OP_REVERSE_SUBTRACT = 0x00000002,
931 VK_BLEND_OP_MIN = 0x00000003,
932 VK_BLEND_OP_MAX = 0x00000004,
Jesse Hall7ba0ac72017-07-07 17:13:23 -0700933
934 //@extension("VK_EXT_blend_operation_advanced") // 149
935 VK_BLEND_OP_ZERO_EXT = 1000148000,
936 VK_BLEND_OP_SRC_EXT = 1000148001,
937 VK_BLEND_OP_DST_EXT = 1000148002,
938 VK_BLEND_OP_SRC_OVER_EXT = 1000148003,
939 VK_BLEND_OP_DST_OVER_EXT = 1000148004,
940 VK_BLEND_OP_SRC_IN_EXT = 1000148005,
941 VK_BLEND_OP_DST_IN_EXT = 1000148006,
942 VK_BLEND_OP_SRC_OUT_EXT = 1000148007,
943 VK_BLEND_OP_DST_OUT_EXT = 1000148008,
944 VK_BLEND_OP_SRC_ATOP_EXT = 1000148009,
945 VK_BLEND_OP_DST_ATOP_EXT = 1000148010,
946 VK_BLEND_OP_XOR_EXT = 1000148011,
947 VK_BLEND_OP_MULTIPLY_EXT = 1000148012,
948 VK_BLEND_OP_SCREEN_EXT = 1000148013,
949 VK_BLEND_OP_OVERLAY_EXT = 1000148014,
950 VK_BLEND_OP_DARKEN_EXT = 1000148015,
951 VK_BLEND_OP_LIGHTEN_EXT = 1000148016,
952 VK_BLEND_OP_COLORDODGE_EXT = 1000148017,
953 VK_BLEND_OP_COLORBURN_EXT = 1000148018,
954 VK_BLEND_OP_HARDLIGHT_EXT = 1000148019,
955 VK_BLEND_OP_SOFTLIGHT_EXT = 1000148020,
956 VK_BLEND_OP_DIFFERENCE_EXT = 1000148021,
957 VK_BLEND_OP_EXCLUSION_EXT = 1000148022,
958 VK_BLEND_OP_INVERT_EXT = 1000148023,
959 VK_BLEND_OP_INVERT_RGB_EXT = 1000148024,
960 VK_BLEND_OP_LINEARDODGE_EXT = 1000148025,
961 VK_BLEND_OP_LINEARBURN_EXT = 1000148026,
962 VK_BLEND_OP_VIVIDLIGHT_EXT = 1000148027,
963 VK_BLEND_OP_LINEARLIGHT_EXT = 1000148028,
964 VK_BLEND_OP_PINLIGHT_EXT = 1000148029,
965 VK_BLEND_OP_HARDMIX_EXT = 1000148030,
966 VK_BLEND_OP_HSL_HUE_EXT = 1000148031,
967 VK_BLEND_OP_HSL_SATURATION_EXT = 1000148032,
968 VK_BLEND_OP_HSL_COLOR_EXT = 1000148033,
969 VK_BLEND_OP_HSL_LUMINOSITY_EXT = 1000148034,
970 VK_BLEND_OP_PLUS_EXT = 1000148035,
971 VK_BLEND_OP_PLUS_CLAMPED_EXT = 1000148036,
972 VK_BLEND_OP_PLUS_CLAMPED_ALPHA_EXT = 1000148037,
973 VK_BLEND_OP_PLUS_DARKER_EXT = 1000148038,
974 VK_BLEND_OP_MINUS_EXT = 1000148039,
975 VK_BLEND_OP_MINUS_CLAMPED_EXT = 1000148040,
976 VK_BLEND_OP_CONTRAST_EXT = 1000148041,
977 VK_BLEND_OP_INVERT_OVG_EXT = 1000148042,
978 VK_BLEND_OP_RED_EXT = 1000148043,
979 VK_BLEND_OP_GREEN_EXT = 1000148044,
980 VK_BLEND_OP_BLUE_EXT = 1000148045,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700981}
982
983enum VkStencilOp {
984 VK_STENCIL_OP_KEEP = 0x00000000,
985 VK_STENCIL_OP_ZERO = 0x00000001,
986 VK_STENCIL_OP_REPLACE = 0x00000002,
Jesse Hall3fbc8562015-11-29 22:10:52 -0800987 VK_STENCIL_OP_INCREMENT_AND_CLAMP = 0x00000003,
988 VK_STENCIL_OP_DECREMENT_AND_CLAMP = 0x00000004,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700989 VK_STENCIL_OP_INVERT = 0x00000005,
Jesse Hall3fbc8562015-11-29 22:10:52 -0800990 VK_STENCIL_OP_INCREMENT_AND_WRAP = 0x00000006,
991 VK_STENCIL_OP_DECREMENT_AND_WRAP = 0x00000007,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700992}
993
994enum VkLogicOp {
995 VK_LOGIC_OP_CLEAR = 0x00000000,
996 VK_LOGIC_OP_AND = 0x00000001,
997 VK_LOGIC_OP_AND_REVERSE = 0x00000002,
998 VK_LOGIC_OP_COPY = 0x00000003,
999 VK_LOGIC_OP_AND_INVERTED = 0x00000004,
Jesse Hall3fbc8562015-11-29 22:10:52 -08001000 VK_LOGIC_OP_NO_OP = 0x00000005,
Jesse Halld27f6aa2015-08-15 17:58:48 -07001001 VK_LOGIC_OP_XOR = 0x00000006,
1002 VK_LOGIC_OP_OR = 0x00000007,
1003 VK_LOGIC_OP_NOR = 0x00000008,
Jesse Hall3fbc8562015-11-29 22:10:52 -08001004 VK_LOGIC_OP_EQUIVALENT = 0x00000009,
Jesse Halld27f6aa2015-08-15 17:58:48 -07001005 VK_LOGIC_OP_INVERT = 0x0000000a,
1006 VK_LOGIC_OP_OR_REVERSE = 0x0000000b,
1007 VK_LOGIC_OP_COPY_INVERTED = 0x0000000c,
1008 VK_LOGIC_OP_OR_INVERTED = 0x0000000d,
1009 VK_LOGIC_OP_NAND = 0x0000000e,
1010 VK_LOGIC_OP_SET = 0x0000000f,
1011}
1012
Jesse Hall3fbc8562015-11-29 22:10:52 -08001013enum VkSystemAllocationScope {
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08001014 VK_SYSTEM_ALLOCATION_SCOPE_COMMAND = 0x00000000,
Jesse Hall3fbc8562015-11-29 22:10:52 -08001015 VK_SYSTEM_ALLOCATION_SCOPE_OBJECT = 0x00000001,
1016 VK_SYSTEM_ALLOCATION_SCOPE_CACHE = 0x00000002,
1017 VK_SYSTEM_ALLOCATION_SCOPE_DEVICE = 0x00000003,
1018 VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE = 0x00000004,
Jesse Hall03b6fe12015-11-24 12:44:21 -08001019}
1020
Jesse Hall3fbc8562015-11-29 22:10:52 -08001021enum VkInternalAllocationType {
1022 VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE = 0x00000000,
Jesse Halld27f6aa2015-08-15 17:58:48 -07001023}
1024
1025enum VkPhysicalDeviceType {
1026 VK_PHYSICAL_DEVICE_TYPE_OTHER = 0x00000000,
1027 VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU = 0x00000001,
1028 VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU = 0x00000002,
1029 VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU = 0x00000003,
1030 VK_PHYSICAL_DEVICE_TYPE_CPU = 0x00000004,
1031}
1032
Jesse Hall65ab5522015-11-30 00:07:16 -08001033enum VkVertexInputRate {
1034 VK_VERTEX_INPUT_RATE_VERTEX = 0x00000000,
1035 VK_VERTEX_INPUT_RATE_INSTANCE = 0x00000001,
Jesse Halld27f6aa2015-08-15 17:58:48 -07001036}
1037
1038/// Vulkan format definitions
1039enum VkFormat {
Jesse Hallf4ab2b12015-11-30 16:04:55 -08001040 VK_FORMAT_UNDEFINED = 0,
1041 VK_FORMAT_R4G4_UNORM_PACK8 = 1,
1042 VK_FORMAT_R4G4B4A4_UNORM_PACK16 = 2,
1043 VK_FORMAT_B4G4R4A4_UNORM_PACK16 = 3,
1044 VK_FORMAT_R5G6B5_UNORM_PACK16 = 4,
1045 VK_FORMAT_B5G6R5_UNORM_PACK16 = 5,
1046 VK_FORMAT_R5G5B5A1_UNORM_PACK16 = 6,
1047 VK_FORMAT_B5G5R5A1_UNORM_PACK16 = 7,
1048 VK_FORMAT_A1R5G5B5_UNORM_PACK16 = 8,
1049 VK_FORMAT_R8_UNORM = 9,
1050 VK_FORMAT_R8_SNORM = 10,
1051 VK_FORMAT_R8_USCALED = 11,
1052 VK_FORMAT_R8_SSCALED = 12,
1053 VK_FORMAT_R8_UINT = 13,
1054 VK_FORMAT_R8_SINT = 14,
1055 VK_FORMAT_R8_SRGB = 15,
1056 VK_FORMAT_R8G8_UNORM = 16,
1057 VK_FORMAT_R8G8_SNORM = 17,
1058 VK_FORMAT_R8G8_USCALED = 18,
1059 VK_FORMAT_R8G8_SSCALED = 19,
1060 VK_FORMAT_R8G8_UINT = 20,
1061 VK_FORMAT_R8G8_SINT = 21,
1062 VK_FORMAT_R8G8_SRGB = 22,
1063 VK_FORMAT_R8G8B8_UNORM = 23,
1064 VK_FORMAT_R8G8B8_SNORM = 24,
1065 VK_FORMAT_R8G8B8_USCALED = 25,
1066 VK_FORMAT_R8G8B8_SSCALED = 26,
1067 VK_FORMAT_R8G8B8_UINT = 27,
1068 VK_FORMAT_R8G8B8_SINT = 28,
1069 VK_FORMAT_R8G8B8_SRGB = 29,
1070 VK_FORMAT_B8G8R8_UNORM = 30,
1071 VK_FORMAT_B8G8R8_SNORM = 31,
1072 VK_FORMAT_B8G8R8_USCALED = 32,
1073 VK_FORMAT_B8G8R8_SSCALED = 33,
1074 VK_FORMAT_B8G8R8_UINT = 34,
1075 VK_FORMAT_B8G8R8_SINT = 35,
1076 VK_FORMAT_B8G8R8_SRGB = 36,
1077 VK_FORMAT_R8G8B8A8_UNORM = 37,
1078 VK_FORMAT_R8G8B8A8_SNORM = 38,
1079 VK_FORMAT_R8G8B8A8_USCALED = 39,
1080 VK_FORMAT_R8G8B8A8_SSCALED = 40,
1081 VK_FORMAT_R8G8B8A8_UINT = 41,
1082 VK_FORMAT_R8G8B8A8_SINT = 42,
1083 VK_FORMAT_R8G8B8A8_SRGB = 43,
1084 VK_FORMAT_B8G8R8A8_UNORM = 44,
1085 VK_FORMAT_B8G8R8A8_SNORM = 45,
1086 VK_FORMAT_B8G8R8A8_USCALED = 46,
1087 VK_FORMAT_B8G8R8A8_SSCALED = 47,
1088 VK_FORMAT_B8G8R8A8_UINT = 48,
1089 VK_FORMAT_B8G8R8A8_SINT = 49,
1090 VK_FORMAT_B8G8R8A8_SRGB = 50,
1091 VK_FORMAT_A8B8G8R8_UNORM_PACK32 = 51,
1092 VK_FORMAT_A8B8G8R8_SNORM_PACK32 = 52,
1093 VK_FORMAT_A8B8G8R8_USCALED_PACK32 = 53,
1094 VK_FORMAT_A8B8G8R8_SSCALED_PACK32 = 54,
1095 VK_FORMAT_A8B8G8R8_UINT_PACK32 = 55,
1096 VK_FORMAT_A8B8G8R8_SINT_PACK32 = 56,
1097 VK_FORMAT_A8B8G8R8_SRGB_PACK32 = 57,
1098 VK_FORMAT_A2R10G10B10_UNORM_PACK32 = 58,
1099 VK_FORMAT_A2R10G10B10_SNORM_PACK32 = 59,
1100 VK_FORMAT_A2R10G10B10_USCALED_PACK32 = 60,
1101 VK_FORMAT_A2R10G10B10_SSCALED_PACK32 = 61,
1102 VK_FORMAT_A2R10G10B10_UINT_PACK32 = 62,
1103 VK_FORMAT_A2R10G10B10_SINT_PACK32 = 63,
1104 VK_FORMAT_A2B10G10R10_UNORM_PACK32 = 64,
1105 VK_FORMAT_A2B10G10R10_SNORM_PACK32 = 65,
1106 VK_FORMAT_A2B10G10R10_USCALED_PACK32 = 66,
1107 VK_FORMAT_A2B10G10R10_SSCALED_PACK32 = 67,
1108 VK_FORMAT_A2B10G10R10_UINT_PACK32 = 68,
1109 VK_FORMAT_A2B10G10R10_SINT_PACK32 = 69,
1110 VK_FORMAT_R16_UNORM = 70,
1111 VK_FORMAT_R16_SNORM = 71,
1112 VK_FORMAT_R16_USCALED = 72,
1113 VK_FORMAT_R16_SSCALED = 73,
1114 VK_FORMAT_R16_UINT = 74,
1115 VK_FORMAT_R16_SINT = 75,
1116 VK_FORMAT_R16_SFLOAT = 76,
1117 VK_FORMAT_R16G16_UNORM = 77,
1118 VK_FORMAT_R16G16_SNORM = 78,
1119 VK_FORMAT_R16G16_USCALED = 79,
1120 VK_FORMAT_R16G16_SSCALED = 80,
1121 VK_FORMAT_R16G16_UINT = 81,
1122 VK_FORMAT_R16G16_SINT = 82,
1123 VK_FORMAT_R16G16_SFLOAT = 83,
1124 VK_FORMAT_R16G16B16_UNORM = 84,
1125 VK_FORMAT_R16G16B16_SNORM = 85,
1126 VK_FORMAT_R16G16B16_USCALED = 86,
1127 VK_FORMAT_R16G16B16_SSCALED = 87,
1128 VK_FORMAT_R16G16B16_UINT = 88,
1129 VK_FORMAT_R16G16B16_SINT = 89,
1130 VK_FORMAT_R16G16B16_SFLOAT = 90,
1131 VK_FORMAT_R16G16B16A16_UNORM = 91,
1132 VK_FORMAT_R16G16B16A16_SNORM = 92,
1133 VK_FORMAT_R16G16B16A16_USCALED = 93,
1134 VK_FORMAT_R16G16B16A16_SSCALED = 94,
1135 VK_FORMAT_R16G16B16A16_UINT = 95,
1136 VK_FORMAT_R16G16B16A16_SINT = 96,
1137 VK_FORMAT_R16G16B16A16_SFLOAT = 97,
1138 VK_FORMAT_R32_UINT = 98,
1139 VK_FORMAT_R32_SINT = 99,
1140 VK_FORMAT_R32_SFLOAT = 100,
1141 VK_FORMAT_R32G32_UINT = 101,
1142 VK_FORMAT_R32G32_SINT = 102,
1143 VK_FORMAT_R32G32_SFLOAT = 103,
1144 VK_FORMAT_R32G32B32_UINT = 104,
1145 VK_FORMAT_R32G32B32_SINT = 105,
1146 VK_FORMAT_R32G32B32_SFLOAT = 106,
1147 VK_FORMAT_R32G32B32A32_UINT = 107,
1148 VK_FORMAT_R32G32B32A32_SINT = 108,
1149 VK_FORMAT_R32G32B32A32_SFLOAT = 109,
1150 VK_FORMAT_R64_UINT = 110,
1151 VK_FORMAT_R64_SINT = 111,
1152 VK_FORMAT_R64_SFLOAT = 112,
1153 VK_FORMAT_R64G64_UINT = 113,
1154 VK_FORMAT_R64G64_SINT = 114,
1155 VK_FORMAT_R64G64_SFLOAT = 115,
1156 VK_FORMAT_R64G64B64_UINT = 116,
1157 VK_FORMAT_R64G64B64_SINT = 117,
1158 VK_FORMAT_R64G64B64_SFLOAT = 118,
1159 VK_FORMAT_R64G64B64A64_UINT = 119,
1160 VK_FORMAT_R64G64B64A64_SINT = 120,
1161 VK_FORMAT_R64G64B64A64_SFLOAT = 121,
1162 VK_FORMAT_B10G11R11_UFLOAT_PACK32 = 122,
1163 VK_FORMAT_E5B9G9R9_UFLOAT_PACK32 = 123,
1164 VK_FORMAT_D16_UNORM = 124,
1165 VK_FORMAT_X8_D24_UNORM_PACK32 = 125,
1166 VK_FORMAT_D32_SFLOAT = 126,
1167 VK_FORMAT_S8_UINT = 127,
1168 VK_FORMAT_D16_UNORM_S8_UINT = 128,
1169 VK_FORMAT_D24_UNORM_S8_UINT = 129,
1170 VK_FORMAT_D32_SFLOAT_S8_UINT = 130,
1171 VK_FORMAT_BC1_RGB_UNORM_BLOCK = 131,
1172 VK_FORMAT_BC1_RGB_SRGB_BLOCK = 132,
1173 VK_FORMAT_BC1_RGBA_UNORM_BLOCK = 133,
1174 VK_FORMAT_BC1_RGBA_SRGB_BLOCK = 134,
1175 VK_FORMAT_BC2_UNORM_BLOCK = 135,
1176 VK_FORMAT_BC2_SRGB_BLOCK = 136,
1177 VK_FORMAT_BC3_UNORM_BLOCK = 137,
1178 VK_FORMAT_BC3_SRGB_BLOCK = 138,
1179 VK_FORMAT_BC4_UNORM_BLOCK = 139,
1180 VK_FORMAT_BC4_SNORM_BLOCK = 140,
1181 VK_FORMAT_BC5_UNORM_BLOCK = 141,
1182 VK_FORMAT_BC5_SNORM_BLOCK = 142,
1183 VK_FORMAT_BC6H_UFLOAT_BLOCK = 143,
1184 VK_FORMAT_BC6H_SFLOAT_BLOCK = 144,
1185 VK_FORMAT_BC7_UNORM_BLOCK = 145,
1186 VK_FORMAT_BC7_SRGB_BLOCK = 146,
1187 VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK = 147,
1188 VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK = 148,
1189 VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK = 149,
1190 VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK = 150,
1191 VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK = 151,
1192 VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK = 152,
1193 VK_FORMAT_EAC_R11_UNORM_BLOCK = 153,
1194 VK_FORMAT_EAC_R11_SNORM_BLOCK = 154,
1195 VK_FORMAT_EAC_R11G11_UNORM_BLOCK = 155,
1196 VK_FORMAT_EAC_R11G11_SNORM_BLOCK = 156,
1197 VK_FORMAT_ASTC_4x4_UNORM_BLOCK = 157,
1198 VK_FORMAT_ASTC_4x4_SRGB_BLOCK = 158,
1199 VK_FORMAT_ASTC_5x4_UNORM_BLOCK = 159,
1200 VK_FORMAT_ASTC_5x4_SRGB_BLOCK = 160,
1201 VK_FORMAT_ASTC_5x5_UNORM_BLOCK = 161,
1202 VK_FORMAT_ASTC_5x5_SRGB_BLOCK = 162,
1203 VK_FORMAT_ASTC_6x5_UNORM_BLOCK = 163,
1204 VK_FORMAT_ASTC_6x5_SRGB_BLOCK = 164,
1205 VK_FORMAT_ASTC_6x6_UNORM_BLOCK = 165,
1206 VK_FORMAT_ASTC_6x6_SRGB_BLOCK = 166,
1207 VK_FORMAT_ASTC_8x5_UNORM_BLOCK = 167,
1208 VK_FORMAT_ASTC_8x5_SRGB_BLOCK = 168,
1209 VK_FORMAT_ASTC_8x6_UNORM_BLOCK = 169,
1210 VK_FORMAT_ASTC_8x6_SRGB_BLOCK = 170,
1211 VK_FORMAT_ASTC_8x8_UNORM_BLOCK = 171,
1212 VK_FORMAT_ASTC_8x8_SRGB_BLOCK = 172,
1213 VK_FORMAT_ASTC_10x5_UNORM_BLOCK = 173,
1214 VK_FORMAT_ASTC_10x5_SRGB_BLOCK = 174,
1215 VK_FORMAT_ASTC_10x6_UNORM_BLOCK = 175,
1216 VK_FORMAT_ASTC_10x6_SRGB_BLOCK = 176,
1217 VK_FORMAT_ASTC_10x8_UNORM_BLOCK = 177,
1218 VK_FORMAT_ASTC_10x8_SRGB_BLOCK = 178,
1219 VK_FORMAT_ASTC_10x10_UNORM_BLOCK = 179,
1220 VK_FORMAT_ASTC_10x10_SRGB_BLOCK = 180,
1221 VK_FORMAT_ASTC_12x10_UNORM_BLOCK = 181,
1222 VK_FORMAT_ASTC_12x10_SRGB_BLOCK = 182,
1223 VK_FORMAT_ASTC_12x12_UNORM_BLOCK = 183,
1224 VK_FORMAT_ASTC_12x12_SRGB_BLOCK = 184,
Chris Forbes289cb792016-12-30 15:03:55 +13001225
Ian Elliott28bd2c32017-10-13 09:21:12 -06001226 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04001227 VK_FORMAT_G8B8G8R8_422_UNORM = 1000156000,
1228 VK_FORMAT_B8G8R8G8_422_UNORM = 1000156001,
1229 VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM = 1000156002,
1230 VK_FORMAT_G8_B8R8_2PLANE_420_UNORM = 1000156003,
1231 VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM = 1000156004,
1232 VK_FORMAT_G8_B8R8_2PLANE_422_UNORM = 1000156005,
1233 VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM = 1000156006,
1234 VK_FORMAT_R10X6_UNORM_PACK16 = 1000156007,
1235 VK_FORMAT_R10X6G10X6_UNORM_2PACK16 = 1000156008,
1236 VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16 = 1000156009,
1237 VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16 = 1000156010,
1238 VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16 = 1000156011,
1239 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16 = 1000156012,
1240 VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16 = 1000156013,
1241 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16 = 1000156014,
1242 VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16 = 1000156015,
1243 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16 = 1000156016,
1244 VK_FORMAT_R12X4_UNORM_PACK16 = 1000156017,
1245 VK_FORMAT_R12X4G12X4_UNORM_2PACK16 = 1000156018,
1246 VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16 = 1000156019,
1247 VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16 = 1000156020,
1248 VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16 = 1000156021,
1249 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16 = 1000156022,
1250 VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16 = 1000156023,
1251 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16 = 1000156024,
1252 VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16 = 1000156025,
1253 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16 = 1000156026,
1254 VK_FORMAT_G16B16G16R16_422_UNORM = 1000156027,
1255 VK_FORMAT_B16G16R16G16_422_UNORM = 1000156028,
1256 VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM = 1000156029,
1257 VK_FORMAT_G16_B16R16_2PLANE_420_UNORM = 1000156030,
1258 VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM = 1000156031,
1259 VK_FORMAT_G16_B16R16_2PLANE_422_UNORM = 1000156032,
1260 VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM = 1000156033,
1261
Jesse Hallad250842017-03-10 18:35:38 -08001262 //@extension("VK_IMG_format_pvrtc") // 28
Jesse Halleb02c472017-02-24 15:13:45 -08001263 VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG = 1000054000,
1264 VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG = 1000054001,
1265 VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG = 1000054002,
1266 VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG = 1000054003,
1267 VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG = 1000054004,
1268 VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG = 1000054005,
1269 VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG = 1000054006,
1270 VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG = 1000054007,
Jesse Hall076f95d2017-09-20 11:34:47 -07001271
1272 //@extension("VK_KHR_sampler_ycbcr_conversion") // 157
1273 VK_FORMAT_G8B8G8R8_422_UNORM_KHR = 1000156000,
1274 VK_FORMAT_B8G8R8G8_422_UNORM_KHR = 1000156001,
1275 VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM_KHR = 1000156002,
1276 VK_FORMAT_G8_B8R8_2PLANE_420_UNORM_KHR = 1000156003,
1277 VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM_KHR = 1000156004,
1278 VK_FORMAT_G8_B8R8_2PLANE_422_UNORM_KHR = 1000156005,
1279 VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM_KHR = 1000156006,
1280 VK_FORMAT_R10X6_UNORM_PACK16_KHR = 1000156007,
1281 VK_FORMAT_R10X6G10X6_UNORM_2PACK16_KHR = 1000156008,
1282 VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16_KHR = 1000156009,
1283 VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16_KHR = 1000156010,
1284 VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16_KHR = 1000156011,
1285 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16_KHR = 1000156012,
1286 VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16_KHR = 1000156013,
1287 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16_KHR = 1000156014,
1288 VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16_KHR = 1000156015,
1289 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16_KHR = 1000156016,
1290 VK_FORMAT_R12X4_UNORM_PACK16_KHR = 1000156017,
1291 VK_FORMAT_R12X4G12X4_UNORM_2PACK16_KHR = 1000156018,
1292 VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16_KHR = 1000156019,
1293 VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16_KHR = 1000156020,
1294 VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16_KHR = 1000156021,
1295 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16_KHR = 1000156022,
1296 VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16_KHR = 1000156023,
1297 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16_KHR = 1000156024,
1298 VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16_KHR = 1000156025,
1299 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16_KHR = 1000156026,
1300 VK_FORMAT_G16B16G16R16_422_UNORM_KHR = 1000156027,
1301 VK_FORMAT_B16G16R16G16_422_UNORM_KHR = 1000156028,
1302 VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM_KHR = 1000156029,
1303 VK_FORMAT_G16_B16R16_2PLANE_420_UNORM_KHR = 1000156030,
1304 VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM_KHR = 1000156031,
1305 VK_FORMAT_G16_B16R16_2PLANE_422_UNORM_KHR = 1000156032,
1306 VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM_KHR = 1000156033,
Jesse Halld27f6aa2015-08-15 17:58:48 -07001307}
1308
Jesse Halld27f6aa2015-08-15 17:58:48 -07001309/// Structure type enumerant
1310enum VkStructureType {
1311 VK_STRUCTURE_TYPE_APPLICATION_INFO = 0,
Jesse Hallc7467b72015-11-29 21:05:26 -08001312 VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO = 1,
1313 VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO = 2,
1314 VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO = 3,
1315 VK_STRUCTURE_TYPE_SUBMIT_INFO = 4,
Jesse Hallf4ab2b12015-11-30 16:04:55 -08001316 VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO = 5,
Jesse Hallc7467b72015-11-29 21:05:26 -08001317 VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE = 6,
1318 VK_STRUCTURE_TYPE_BIND_SPARSE_INFO = 7,
1319 VK_STRUCTURE_TYPE_FENCE_CREATE_INFO = 8,
1320 VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO = 9,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07001321 VK_STRUCTURE_TYPE_EVENT_CREATE_INFO = 10,
Jesse Hallc7467b72015-11-29 21:05:26 -08001322 VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO = 11,
1323 VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO = 12,
1324 VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO = 13,
1325 VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO = 14,
1326 VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO = 15,
1327 VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO = 16,
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08001328 VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO = 17,
1329 VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO = 18,
1330 VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO = 19,
1331 VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO = 20,
1332 VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO = 21,
1333 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO = 22,
1334 VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO = 23,
1335 VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO = 24,
1336 VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO = 25,
1337 VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO = 26,
1338 VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO = 27,
1339 VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO = 28,
1340 VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO = 29,
1341 VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO = 30,
1342 VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO = 31,
1343 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO = 32,
1344 VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO = 33,
Jesse Hallf4ab2b12015-11-30 16:04:55 -08001345 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO = 34,
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08001346 VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET = 35,
1347 VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET = 36,
1348 VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO = 37,
1349 VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO = 38,
1350 VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO = 39,
Jesse Hallf4ab2b12015-11-30 16:04:55 -08001351 VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO = 40,
Jesse Hall3dd678a2016-01-08 21:52:01 -08001352 VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO = 41,
1353 VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO = 42,
1354 VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO = 43,
1355 VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER = 44,
1356 VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER = 45,
1357 VK_STRUCTURE_TYPE_MEMORY_BARRIER = 46,
1358 VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO = 47,
1359 VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO = 48,
Jesse Hall1356b0d2015-11-23 17:24:58 -08001360
Ian Elliott28bd2c32017-10-13 09:21:12 -06001361 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04001362 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES = 1000094000,
1363 VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO = 1000157000,
1364 VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO = 1000157001,
1365 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES = 1000083000,
1366 VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS = 1000127000,
1367 VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO = 1000127001,
1368 VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO = 1000060000,
1369 VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO = 1000060003,
1370 VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO = 1000060004,
1371 VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO = 1000060005,
1372 VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO = 1000060006,
1373 VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO = 1000060013,
1374 VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO = 1000060014,
1375 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES = 1000070000,
1376 VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO = 1000070001,
1377 VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2 = 1000146000,
1378 VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2 = 1000146001,
1379 VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2 = 1000146002,
1380 VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2 = 1000146003,
1381 VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2 = 1000146004,
1382 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2 = 1000059000,
1383 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2 = 1000059001,
1384 VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2 = 1000059002,
1385 VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2 = 1000059003,
1386 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2 = 1000059004,
1387 VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2 = 1000059005,
1388 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2 = 1000059006,
1389 VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2 = 1000059007,
1390 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2 = 1000059008,
1391 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES = 1000117000,
1392 VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO = 1000117001,
1393 VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO = 1000117002,
1394 VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO = 1000117003,
1395 VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO = 1000053000,
1396 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES = 1000053001,
1397 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES = 1000053002,
1398 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES = 1000120000,
1399 VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO = 1000145000,
1400 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES = 1000145001,
1401 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES = 1000145002,
1402 VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2 = 1000145003,
1403 VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO = 1000156000,
1404 VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO = 1000156001,
1405 VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO = 1000156002,
1406 VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO = 1000156003,
1407 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES = 1000156004,
1408 VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES = 1000156005,
1409 VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO = 1000085000,
1410 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO = 1000071000,
1411 VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES = 1000071001,
1412 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO = 1000071002,
1413 VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES = 1000071003,
1414 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES = 1000071004,
1415 VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO = 1000072000,
1416 VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO = 1000072001,
1417 VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO = 1000072002,
1418 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO = 1000112000,
1419 VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES = 1000112001,
1420 VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO = 1000113000,
1421 VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO = 1000077000,
1422 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO = 1000076000,
1423 VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES = 1000076001,
1424 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES = 1000168000,
1425 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT = 1000168001,
1426 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES = 1000063000,
1427 VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR = 1000060007,
1428
Jesse Hallad250842017-03-10 18:35:38 -08001429 //@extension("VK_KHR_swapchain") // 2
Jesse Hallbd888842015-11-30 21:44:14 -08001430 VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR = 1000001000,
1431 VK_STRUCTURE_TYPE_PRESENT_INFO_KHR = 1000001001,
Daniel Koch09f7bf92017-10-05 00:26:58 -04001432 // added as interaction from VK_KHR_device_group / VK 1.1
1433 VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR = 1000060008,
1434 VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR = 1000060009,
1435 VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR = 1000060010,
1436 VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR = 1000060011,
1437 VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR = 1000060012,
Jesse Hall1356b0d2015-11-23 17:24:58 -08001438
Jesse Hallad250842017-03-10 18:35:38 -08001439 //@extension("VK_KHR_display") // 3
Jesse Hallbd888842015-11-30 21:44:14 -08001440 VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR = 1000002000,
1441 VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR = 1000002001,
Jesse Hall1356b0d2015-11-23 17:24:58 -08001442
Jesse Hallad250842017-03-10 18:35:38 -08001443 //@extension("VK_KHR_display_swapchain") // 4
Jesse Hallbd888842015-11-30 21:44:14 -08001444 VK_STRUCTURE_TYPE_DISPLAY_DISPLAY_PRESENT_INFO_KHR = 1000003000,
Jesse Hallf9fa9a52016-01-08 16:08:51 -08001445
Jesse Hallad250842017-03-10 18:35:38 -08001446 //@extension("VK_KHR_xlib_surface") // 5
Jesse Hallf9fa9a52016-01-08 16:08:51 -08001447 VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR = 1000004000,
1448
Jesse Hallad250842017-03-10 18:35:38 -08001449 //@extension("VK_KHR_xcb_surface") // 6
Jesse Hallf9fa9a52016-01-08 16:08:51 -08001450 VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR = 1000005000,
1451
Jesse Hallad250842017-03-10 18:35:38 -08001452 //@extension("VK_KHR_wayland_surface") // 7
Jesse Hallf9fa9a52016-01-08 16:08:51 -08001453 VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR = 1000006000,
1454
Jesse Hallad250842017-03-10 18:35:38 -08001455 //@extension("VK_KHR_android_surface") // 9
Jesse Hallf9fa9a52016-01-08 16:08:51 -08001456 VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR = 1000008000,
1457
Jesse Hallad250842017-03-10 18:35:38 -08001458 //@extension("VK_KHR_win32_surface") // 10
Jesse Hallf9fa9a52016-01-08 16:08:51 -08001459 VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR = 1000009000,
Jesse Hall543a7ff2016-01-08 16:38:30 -08001460
Jesse Hallad250842017-03-10 18:35:38 -08001461 //@extension("VK_ANDROID_native_buffer") // 11
Chia-I Wub262ddc2016-03-22 07:38:20 +08001462 VK_STRUCTURE_TYPE_NATIVE_BUFFER_ANDROID = 1000010000,
Chris Forbes8e4438b2016-12-07 16:26:49 +13001463 VK_STRUCTURE_TYPE_SWAPCHAIN_IMAGE_CREATE_INFO_ANDROID = 1000010001,
Chris Forbes1d4e5542017-02-15 19:38:50 +13001464 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENTATION_PROPERTIES_ANDROID = 1000010002,
Chia-I Wub262ddc2016-03-22 07:38:20 +08001465
Jesse Hallad250842017-03-10 18:35:38 -08001466 //@extension("VK_EXT_debug_report") // 12
Jesse Hall26763382016-05-20 07:13:52 -07001467 VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT = 1000011000,
1468
Jesse Hallad250842017-03-10 18:35:38 -08001469 //@extension("VK_AMD_rasterization_order") // 19
Jesse Hall26763382016-05-20 07:13:52 -07001470 VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD = 1000018000,
1471
Jesse Hallad250842017-03-10 18:35:38 -08001472 //@extension("VK_EXT_debug_marker") // 23
Jesse Hall26763382016-05-20 07:13:52 -07001473 VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT = 1000022000,
Jesse Hall26763382016-05-20 07:13:52 -07001474 VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT = 1000022001,
Jesse Hall26763382016-05-20 07:13:52 -07001475 VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT = 1000022002,
Jesse Hall56d386a2016-07-26 15:20:40 -07001476
Jesse Hallad250842017-03-10 18:35:38 -08001477 //@extension("VK_NV_dedicated_allocation") // 27
Jesse Hall56d386a2016-07-26 15:20:40 -07001478 VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV = 1000026000,
Jesse Hall56d386a2016-07-26 15:20:40 -07001479 VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV = 1000026001,
Jesse Hall56d386a2016-07-26 15:20:40 -07001480 VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV = 1000026002,
Chris Forbes289cb792016-12-30 15:03:55 +13001481
Jesse Hallf47e8f82018-10-27 23:41:45 -07001482 //@extension("VK_EXT_transform_feedback") // 29
1483 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT = 1000028000,
1484 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT = 1000028001,
1485 VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT = 1000028002,
1486
Jesse Hall7ba0ac72017-07-07 17:13:23 -07001487 //@extension("VK_AMD_texture_gather_bias_lod") // 42
1488 VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD = 1000041000,
1489
Jesse Hallb5297192018-09-22 20:52:13 +02001490 //@extension("VK_NV_corner_sampled_image") // 51
1491 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV = 1000050000,
1492
Daniel Koch09f7bf92017-10-05 00:26:58 -04001493 //@extension("VK_KHR_multiview") // 54
1494 VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO_KHR = 1000053000,
1495 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES_KHR = 1000053001,
1496 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES_KHR = 1000053002,
Jesse Hallad250842017-03-10 18:35:38 -08001497
1498 //@extension("VK_NV_external_memory") // 57
Jesse Halleb02c472017-02-24 15:13:45 -08001499 VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV = 1000056000,
1500 VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV = 1000056001,
Chris Forbes289cb792016-12-30 15:03:55 +13001501
Jesse Hallad250842017-03-10 18:35:38 -08001502 //@extension("VK_NV_external_memory_win32") // 58
Jesse Halleb02c472017-02-24 15:13:45 -08001503 VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV = 1000057000,
1504 VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV = 1000057001,
Chris Forbes289cb792016-12-30 15:03:55 +13001505
Jesse Hallad250842017-03-10 18:35:38 -08001506 //@extension("VK_NV_win32_keyed_mutex") // 59
Chris Forbes289cb792016-12-30 15:03:55 +13001507 VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV = 1000058000,
1508
Jesse Hallad250842017-03-10 18:35:38 -08001509 //@extension("VK_KHR_get_physical_device_properties2") // 60
Jesse Hall889cd9a2017-02-25 22:12:23 -08001510 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2_KHR = 1000059000,
1511 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2_KHR = 1000059001,
1512 VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2_KHR = 1000059002,
1513 VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2_KHR = 1000059003,
1514 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2_KHR = 1000059004,
1515 VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2_KHR = 1000059005,
1516 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2_KHR = 1000059006,
1517 VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2_KHR = 1000059007,
Chris Forbes1194ede2016-12-30 16:29:25 +13001518 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2_KHR = 1000059008,
1519
Daniel Koch09f7bf92017-10-05 00:26:58 -04001520 //@extension("VK_KHR_device_group") // 61
1521 VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO_KHR = 1000060000,
1522 VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO_KHR = 1000060003,
1523 VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO_KHR = 1000060004,
1524 VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO_KHR = 1000060005,
1525 VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO_KHR = 1000060006,
1526 VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR = 1000060007,
1527 // tokens 08-12 are listed with VK_KHR_swapchain
1528 VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO_KHR = 1000060013,
1529 VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO_KHR = 1000060014,
Jesse Hallad250842017-03-10 18:35:38 -08001530
1531 //@extension("VK_EXT_validation_flags") // 62
Jesse Halleb02c472017-02-24 15:13:45 -08001532 VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT = 1000061000,
Chris Forbes289cb792016-12-30 15:03:55 +13001533
Jesse Hallad250842017-03-10 18:35:38 -08001534 //@extension("VK_NN_vi_surface") // 63
Jesse Hall77ad05b2017-03-10 22:02:20 -08001535 VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN = 1000062000,
1536
Jesse Hall4af6c462018-09-10 09:04:25 -07001537 //@extension("VK_EXT_astc_decode_mode") // 68
1538 VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT = 1000067000,
1539 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT = 1000067001,
1540
Daniel Koch09f7bf92017-10-05 00:26:58 -04001541 //@extension("VK_KHR_device_group_creation") // 71
1542 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES_KHR = 1000070000,
1543 VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO_KHR = 1000070001,
Jesse Hallad250842017-03-10 18:35:38 -08001544
Jesse Hall9492f992017-08-28 12:10:06 -07001545 //@extension("VK_KHR_external_memory_capabilities") // 72
1546 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO_KHR = 1000071000,
1547 VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES_KHR = 1000071001,
1548 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO_KHR = 1000071002,
1549 VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES_KHR = 1000071003,
1550 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES_KHR = 1000071004,
Jesse Hallad250842017-03-10 18:35:38 -08001551
Jesse Hall9492f992017-08-28 12:10:06 -07001552 //@extension("VK_KHR_external_memory") // 73
1553 VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO_KHR = 1000072000,
1554 VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_KHR = 1000072001,
1555 VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_KHR = 1000072002,
Jesse Hallad250842017-03-10 18:35:38 -08001556
Jesse Hall9492f992017-08-28 12:10:06 -07001557 //@extension("VK_KHR_external_memory_win32") // 74
1558 VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR = 1000073000,
1559 VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR = 1000073001,
1560 VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR = 1000073002,
Jesse Hallad250842017-03-10 18:35:38 -08001561
Jesse Hall9492f992017-08-28 12:10:06 -07001562 //@extension("VK_KHR_external_memory_fd") // 75
1563 VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR = 1000074000,
1564 VK_STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR = 1000074001,
Jesse Hallad250842017-03-10 18:35:38 -08001565
Jesse Hall9492f992017-08-28 12:10:06 -07001566 //@extension("VK_KHR_win32_keyed_mutex") // 76
1567 VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR = 1000075000,
Jesse Hallad250842017-03-10 18:35:38 -08001568
Jesse Hall9492f992017-08-28 12:10:06 -07001569 //@extension("VK_KHR_external_semaphore_capabilities") // 77
1570 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO_KHR = 1000076000,
1571 VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES_KHR = 1000076001,
Jesse Hallad250842017-03-10 18:35:38 -08001572
Jesse Hall9492f992017-08-28 12:10:06 -07001573 //@extension("VK_KHR_external_semaphore") // 78
1574 VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO_KHR = 1000077000,
Jesse Hallad250842017-03-10 18:35:38 -08001575
Jesse Hall9492f992017-08-28 12:10:06 -07001576 //@extension("VK_KHR_external_semaphore_win32") // 79
1577 VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR = 1000078000,
1578 VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR = 1000078001,
1579 VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR = 1000078002,
Jesse Hallad250842017-03-10 18:35:38 -08001580
Jesse Hall9492f992017-08-28 12:10:06 -07001581 //@extension("VK_KHR_external_semaphore_fd") // 80
1582 VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR = 1000079000,
1583 VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR = 1000079001,
Jesse Hallad250842017-03-10 18:35:38 -08001584
1585 //@extension("VK_KHR_push_descriptor") // 81
1586 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR = 1000080000,
1587
Jesse Hall9492f992017-08-28 12:10:06 -07001588 //@extension("VK_KHR_16bit_storage") // 84
1589 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES_KHR = 1000083000,
1590
Jesse Hallad250842017-03-10 18:35:38 -08001591 //@extension("VK_KHR_incremental_present") // 85
Jesse Hall889cd9a2017-02-25 22:12:23 -08001592 VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR = 1000084000,
Chris Forbes289cb792016-12-30 15:03:55 +13001593
Jesse Halla13a3cf2018-07-09 15:51:52 -07001594 //@extension("VK_EXT_conditional_rendering") // 82
1595 VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT = 1000081000,
1596 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT = 1000081001,
1597 VK_STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT = 1000081002,
1598
Jesse Hallad250842017-03-10 18:35:38 -08001599 //@extension("VK_KHR_descriptor_update_template") // 86
1600 VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO_KHR = 1000085000,
1601
1602 //@extension("VK_NVX_device_generated_commands") // 87
Jesse Halleb02c472017-02-24 15:13:45 -08001603 VK_STRUCTURE_TYPE_OBJECT_TABLE_CREATE_INFO_NVX = 1000086000,
1604 VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NVX = 1000086001,
1605 VK_STRUCTURE_TYPE_CMD_PROCESS_COMMANDS_INFO_NVX = 1000086002,
1606 VK_STRUCTURE_TYPE_CMD_RESERVE_SPACE_FOR_COMMANDS_INFO_NVX = 1000086003,
1607 VK_STRUCTURE_TYPE_DEVICE_GENERATED_COMMANDS_LIMITS_NVX = 1000086004,
1608 VK_STRUCTURE_TYPE_DEVICE_GENERATED_COMMANDS_FEATURES_NVX = 1000086005,
Jesse Hall77ad05b2017-03-10 22:02:20 -08001609
Jesse Hallad250842017-03-10 18:35:38 -08001610 //@extension("VK_NV_clip_space_w_scaling") // 88
1611 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV = 1000087000,
1612
1613 //@extension("VK_EXT_display_surface_counter") // 91
Jesse Hall77726222017-09-19 14:49:27 -05001614 VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT = 1000090000,
Jesse Hall77ad05b2017-03-10 22:02:20 -08001615
Jesse Hallad250842017-03-10 18:35:38 -08001616 //@extension("VK_EXT_display_control") // 92
Jesse Hall77ad05b2017-03-10 22:02:20 -08001617 VK_STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT = 1000091000,
1618 VK_STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT = 1000091001,
1619 VK_STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT = 1000091002,
1620 VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT = 1000091003,
Jesse Hallad250842017-03-10 18:35:38 -08001621
1622 //@extension("VK_GOOGLE_display_timing") // 93
1623 VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE = 1000092000,
1624
1625 //@extension("VK_NVX_multiview_per_view_attributes") // 98
1626 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX = 1000097000,
1627
1628 //@extension("VK_NV_viewport_swizzle") // 99
1629 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV = 1000098000,
1630
1631 //@extension("VK_EXT_discard_rectangles") // 100
1632 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT = 1000099000,
1633 VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT = 1000099001,
1634
Jesse Hall8c954d32018-01-17 22:06:20 -08001635 //@extension("VK_EXT_conservative_rasterization") // 102
1636 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT = 1000101000,
1637 VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT = 1000101001,
1638
Jesse Halla13a3cf2018-07-09 15:51:52 -07001639 //@extension("VK_KHR_create_renderpass2") // 110
1640 VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2_KHR = 1000109000,
1641 VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2_KHR = 1000109001,
1642 VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2_KHR = 1000109002,
1643 VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2_KHR = 1000109003,
1644 VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2_KHR = 1000109004,
1645 VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO_KHR = 1000109005,
1646 VK_STRUCTURE_TYPE_SUBPASS_END_INFO_KHR = 1000109006,
1647
Jesse Hallfdc8ab32017-03-10 21:01:57 -08001648 //@extension("VK_EXT_hdr_metadata") // 106
1649 VK_STRUCTURE_TYPE_HDR_METADATA_EXT = 1000105000,
1650
Jesse Hall05556b12017-05-18 17:40:25 -07001651 //@extension("VK_KHR_shared_presentable_image") // 112
Chris Forbese2d3ee12017-03-16 16:10:15 +13001652 VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR = 1000111000,
1653
Jesse Hall9492f992017-08-28 12:10:06 -07001654 //@extension("VK_KHR_external_fence_capabilities") // 113
1655 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO_KHR = 1000112000,
1656 VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES_KHR = 1000112001,
1657
1658 //@extension("VK_KHR_external_fence") // 114
1659 VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO_KHR = 1000113000,
1660
1661 //@extension("VK_KHR_external_fence_win32") // 115
1662 VK_STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR = 1000114000,
1663 VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR = 1000114001,
1664 VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR = 1000114002,
1665
1666 //@extension("VK_KHR_external_fence_fd") // 117
1667 VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR = 1000115000,
1668 VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR = 1000115001,
1669
Jesse Hall076f95d2017-09-20 11:34:47 -07001670 //@extension("VK_KHR_maintenance2") // 118
1671 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES_KHR = 1000117000,
1672 VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO_KHR = 1000117001,
1673 VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO_KHR = 1000117002,
1674 VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO_KHR = 1000117003,
1675
Jesse Hall05556b12017-05-18 17:40:25 -07001676 //@extension("VK_KHR_get_surface_capabilities2") // 120
Chris Forbese2d3ee12017-03-16 16:10:15 +13001677 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR = 1000119000,
1678 VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR = 1000119001,
1679 VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR = 1000119002,
1680
Jesse Hall9492f992017-08-28 12:10:06 -07001681 //@extension("VK_KHR_variable_pointers") // 121
1682 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES_KHR = 1000120000,
1683
Jesse Hall54f8d132018-04-18 08:16:59 -07001684 //@extension("VK_KHR_display_properties2") // 122
1685 VK_STRUCTURE_TYPE_DISPLAY_PROPERTIES_2_KHR = 1000121000,
1686 VK_STRUCTURE_TYPE_DISPLAY_PLANE_PROPERTIES_2_KHR = 1000121001,
1687 VK_STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR = 1000121002,
1688 VK_STRUCTURE_TYPE_DISPLAY_PLANE_INFO_2_KHR = 1000121003,
1689 VK_STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR = 1000121004,
1690
Jesse Hallad250842017-03-10 18:35:38 -08001691 //@extension("VK_MVK_ios_surface") // 123
1692 VK_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK = 1000122000,
1693
1694 //@extension("VK_MVK_macos_surface") // 124
1695 VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK = 1000123000,
Jesse Hall7ba0ac72017-07-07 17:13:23 -07001696
Jesse Hall9492f992017-08-28 12:10:06 -07001697 //@extension("VK_KHR_dedicated_allocation") // 128
1698 VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS_KHR = 1000127000,
1699 VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO_KHR = 1000127001,
1700
Jesse Hall8c954d32018-01-17 22:06:20 -08001701 //@extension("VK_EXT_debug_utils") // 129
1702 VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT = 1000128000,
1703 VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT = 1000128001,
1704 VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT = 1000128002,
1705 VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT = 1000128003,
1706 VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT = 1000128004,
1707
Jesse Hall36215a92018-01-18 15:04:37 -08001708 //@extension("VK_ANDROID_external_memory_android_hardware_buffer") // 130
1709 VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID = 1000129000,
1710 VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID = 1000129001,
1711 VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID = 1000129002,
1712 VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID = 1000129003,
1713 VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID = 1000129004,
1714 VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID = 1000129005,
1715
Jesse Hall7ba0ac72017-07-07 17:13:23 -07001716 //@extension("VK_EXT_sampler_filter_minmax") // 131
1717 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES_EXT = 1000130000,
1718 VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO_EXT = 1000130001,
1719
Jesse Hall4af6c462018-09-10 09:04:25 -07001720 //@extension("VK_EXT_inline_uniform_block") // 139
1721 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT = 1000138000,
1722 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES_EXT = 1000138001,
1723 VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK_EXT = 1000138002,
1724 VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO_EXT = 1000138003,
1725
Jesse Hall77726222017-09-19 14:49:27 -05001726 //@extension("VK_EXT_sample_locations") // 144
1727 VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT = 1000143000,
1728 VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT = 1000143001,
1729 VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT = 1000143002,
1730 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT = 1000143003,
1731 VK_STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT = 1000143004,
1732
Jesse Hall9492f992017-08-28 12:10:06 -07001733 //@extension("VK_KHR_get_memory_requirements2") // 147
1734 VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2_KHR = 1000146000,
1735 VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2_KHR = 1000146001,
1736 VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2_KHR = 1000146002,
1737 VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2_KHR = 1000146003,
1738 VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2_KHR = 1000146004,
1739
Jesse Hall076f95d2017-09-20 11:34:47 -07001740 //@extension("VK_KHR_image_format_list") // 148
1741 VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO_KHR = 1000147000,
1742
Jesse Hall7ba0ac72017-07-07 17:13:23 -07001743 //@extension("VK_EXT_blend_operation_advanced") // 149
1744 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT = 1000148000,
1745 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT = 1000148001,
1746 VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT = 1000148002,
1747
1748 //@extension("VK_NV_fragment_coverage_to_color") // 150
1749 VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV = 1000149000,
1750
Jesse Hall77726222017-09-19 14:49:27 -05001751 //@extension("VK_NV_framebuffer_mixed_samples") // 153
Jesse Hall7ba0ac72017-07-07 17:13:23 -07001752 VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV = 1000152000,
Jesse Hall77726222017-09-19 14:49:27 -05001753
Jesse Hall076f95d2017-09-20 11:34:47 -07001754 //@extension("VK_KHR_sampler_ycbcr_conversion") // 157
1755 VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO_KHR = 1000156000,
1756 VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO_KHR = 1000156001,
1757 VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO_KHR = 1000156002,
1758 VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO_KHR = 1000156003,
1759 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES_KHR = 1000156004,
1760 VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES_KHR = 1000156005,
1761
Jesse Hallf47e8f82018-10-27 23:41:45 -07001762 //@extension("VK_EXT_image_drm_format_modifier") // 159
1763 VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT = 1000158000,
1764 VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT = 1000158001,
1765 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT = 1000158002,
1766 VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT = 1000158003,
1767 VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT = 1000158004,
1768 VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT = 1000158005,
1769
Jesse Hall076f95d2017-09-20 11:34:47 -07001770 //@extension("VK_KHR_bind_memory2") // 158
1771 VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO_KHR = 1000157000,
1772 VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO_KHR = 1000157001,
1773
Jesse Hall77726222017-09-19 14:49:27 -05001774 //@extension("VK_EXT_validation_cache") // 161
1775 VK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT = 1000160000,
1776 VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT = 1000160001,
Daniel Koch09f7bf92017-10-05 00:26:58 -04001777
Jesse Hall72e6a132018-04-06 13:00:44 -07001778 //@extension("VK_EXT_descriptor_indexing") // 162
1779 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO_EXT = 1000161000,
1780 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES_EXT = 1000161001,
1781 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES_EXT = 1000161002,
1782 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO_EXT = 1000161003,
1783 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT_EXT = 1000161004,
1784
Jesse Hallb5297192018-09-22 20:52:13 +02001785 //@extension("VK_NV_shading_rate_image") // 165
1786 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV = 1000164000,
1787 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV = 1000164001,
1788 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV = 1000164002,
1789 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV = 1000164005,
1790
Jesse Halla363a8e2018-11-05 21:18:00 -07001791 //@extension("VK_NV_raytracing") // 166
1792 VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_NV = 1000165000,
1793 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV = 1000165001,
1794 VK_STRUCTURE_TYPE_GEOMETRY_NV = 1000165003,
1795 VK_STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NV = 1000165004,
1796 VK_STRUCTURE_TYPE_GEOMETRY_AABB_NV = 1000165005,
1797 VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV = 1000165006,
1798 VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV = 1000165007,
1799 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV = 1000165008,
1800 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV = 1000165009,
1801 VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV = 1000165011,
1802 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_INFO_NV = 1000165012,
Jesse Hallb5297192018-09-22 20:52:13 +02001803
1804 //@extension("VK_NV_representative_fragment_test") // 167
1805 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV = 1000166000,
1806 VK_STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV = 1000166001,
1807
Daniel Koch09f7bf92017-10-05 00:26:58 -04001808 //@extension("VK_KHR_maintenance3") // 169
1809 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES_KHR = 1000168000,
1810 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT_KHR = 1000168001,
Jesse Hall8c954d32018-01-17 22:06:20 -08001811
1812 //@extension("VK_EXT_global_priority") // 175
1813 VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT = 1000174000,
1814
Jesse Halla13a3cf2018-07-09 15:51:52 -07001815 //@extension("VK_KHR_8bit_storage") // 178
1816 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES_KHR = 1000177000,
1817
Jesse Hall8c954d32018-01-17 22:06:20 -08001818 //@extension("VK_EXT_external_memory_host") // 179
1819 VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT = 1000178000,
1820 VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT = 1000178001,
1821 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT = 1000178002,
Jesse Hall72e6a132018-04-06 13:00:44 -07001822
Jesse Hall2e6853c2018-10-02 14:05:37 -07001823 //@extension("VK_KHR_shader_atomic_int64") // 181
1824 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES_KHR = 1000180000,
1825
Jesse Hallf47e8f82018-10-27 23:41:45 -07001826 //@extension("VK_EXT_calibrated_timestamps") // 185
1827 VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT = 1000184000,
1828
Jesse Hall2e6853c2018-10-02 14:05:37 -07001829 //@extension("VK_KHR_driver_properties") // 197
1830 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES_KHR = 1000196000,
1831
Jesse Hall72e6a132018-04-06 13:00:44 -07001832 //@extension("VK_AMD_shader_core_properties") // 186
1833 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD = 1000185000,
1834
Jesse Halla363a8e2018-11-05 21:18:00 -07001835 //@extension("VK_AMD_memory_overallocation_behavior") // 190
1836 VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD = 1000189000,
1837
Jesse Hall72e6a132018-04-06 13:00:44 -07001838 //@extension("VK_EXT_vertex_attribute_divisor") // 191
1839 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT = 1000190000,
1840 VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT = 1000190001,
Jesse Hall4af6c462018-09-10 09:04:25 -07001841 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT = 1000190002,
Jesse Hall115df0c2018-07-30 12:00:59 -07001842
1843 //@extension("VK_NV_device_diagnostic_checkpoints") // 207
1844 VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NV = 1000206000,
1845 VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV = 1000206001,
Jesse Hall4af6c462018-09-10 09:04:25 -07001846
1847 //@extension("VK_KHR_vulkan_memory_model") // 212
1848 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES_KHR = 1000211000,
Jesse Hall497c46f2018-10-08 12:52:48 -07001849
Jesse Hallf47e8f82018-10-27 23:41:45 -07001850 //@extension("VK_EXT_pci_bus_info") // 213
1851 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT = 1000212000,
1852
Jesse Hall497c46f2018-10-08 12:52:48 -07001853 //@extension("VK_FUCHSIA_imagepipe_surface") // 215
1854 VK_STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA = 1000214000,
Jesse Halld27f6aa2015-08-15 17:58:48 -07001855}
1856
Jesse Hall65ab5522015-11-30 00:07:16 -08001857enum VkSubpassContents {
1858 VK_SUBPASS_CONTENTS_INLINE = 0x00000000,
1859 VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS = 0x00000001,
Jesse Halld27f6aa2015-08-15 17:58:48 -07001860}
1861
Jesse Hall543a7ff2016-01-08 16:38:30 -08001862enum VkPipelineCacheHeaderVersion {
1863 VK_PIPELINE_CACHE_HEADER_VERSION_ONE = 1,
1864}
1865
Jesse Hallbd888842015-11-30 21:44:14 -08001866@lastUnused(-11)
Jesse Halld27f6aa2015-08-15 17:58:48 -07001867/// Error and return codes
1868enum VkResult {
1869 // Return codes for successful operation execution (positive values)
Jesse Hallbd888842015-11-30 21:44:14 -08001870 VK_SUCCESS = 0,
1871 VK_NOT_READY = 1,
1872 VK_TIMEOUT = 2,
1873 VK_EVENT_SET = 3,
1874 VK_EVENT_RESET = 4,
1875 VK_INCOMPLETE = 5,
Jesse Halld27f6aa2015-08-15 17:58:48 -07001876
Jesse Hallad250842017-03-10 18:35:38 -08001877 //@extension("VK_KHR_swapchain") // 2
Jesse Hallbd888842015-11-30 21:44:14 -08001878 VK_SUBOPTIMAL_KHR = 1000001003,
Jesse Hall1356b0d2015-11-23 17:24:58 -08001879
Jesse Halld27f6aa2015-08-15 17:58:48 -07001880 // Error codes (negative values)
Jesse Hallbd888842015-11-30 21:44:14 -08001881 VK_ERROR_OUT_OF_HOST_MEMORY = 0xFFFFFFFF, // -1
1882 VK_ERROR_OUT_OF_DEVICE_MEMORY = 0xFFFFFFFE, // -2
1883 VK_ERROR_INITIALIZATION_FAILED = 0xFFFFFFFD, // -3
1884 VK_ERROR_DEVICE_LOST = 0xFFFFFFFC, // -4
1885 VK_ERROR_MEMORY_MAP_FAILED = 0xFFFFFFFB, // -5
1886 VK_ERROR_LAYER_NOT_PRESENT = 0xFFFFFFFA, // -6
1887 VK_ERROR_EXTENSION_NOT_PRESENT = 0xFFFFFFF9, // -7
1888 VK_ERROR_FEATURE_NOT_PRESENT = 0xFFFFFFF8, // -8
1889 VK_ERROR_INCOMPATIBLE_DRIVER = 0xFFFFFFF7, // -9
1890 VK_ERROR_TOO_MANY_OBJECTS = 0xFFFFFFF6, // -10
1891 VK_ERROR_FORMAT_NOT_SUPPORTED = 0xFFFFFFF5, // -11
Jesse Hall56d386a2016-07-26 15:20:40 -07001892 VK_ERROR_FRAGMENTED_POOL = 0xFFFFFFF4, // -12
Jesse Hall1356b0d2015-11-23 17:24:58 -08001893
Ian Elliott28bd2c32017-10-13 09:21:12 -06001894 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04001895 VK_ERROR_OUT_OF_POOL_MEMORY = 0xC4642878, // -1000069000
1896 VK_ERROR_INVALID_EXTERNAL_HANDLE = 0xC4641CBD, // -1000072003
1897
Jesse Hallad250842017-03-10 18:35:38 -08001898 //@extension("VK_KHR_surface") // 1
Jesse Hallbd888842015-11-30 21:44:14 -08001899 VK_ERROR_SURFACE_LOST_KHR = 0xC4653600, // -1000000000
Jesse Hallad250842017-03-10 18:35:38 -08001900 VK_ERROR_NATIVE_WINDOW_IN_USE_KHR = 0xC46535FF, // -1000000001
Jesse Halla6429252015-11-29 18:59:42 -08001901
Jesse Hallad250842017-03-10 18:35:38 -08001902 //@extension("VK_KHR_swapchain") // 2
Jesse Hallbd888842015-11-30 21:44:14 -08001903 VK_ERROR_OUT_OF_DATE_KHR = 0xC4653214, // -1000001004
Jesse Hall1356b0d2015-11-23 17:24:58 -08001904
Jesse Hallad250842017-03-10 18:35:38 -08001905 //@extension("VK_KHR_display_swapchain") // 4
Jesse Hallbd888842015-11-30 21:44:14 -08001906 VK_ERROR_INCOMPATIBLE_DISPLAY_KHR = 0xC4652A47, // -1000003001
Jesse Hall1356b0d2015-11-23 17:24:58 -08001907
Jesse Hallad250842017-03-10 18:35:38 -08001908 //@extension("VK_EXT_debug_report") // 12
Jesse Hall543a7ff2016-01-08 16:38:30 -08001909 VK_ERROR_VALIDATION_FAILED_EXT = 0xC4650B07, // -1000011001
Jesse Hall26763382016-05-20 07:13:52 -07001910
Jesse Hallad250842017-03-10 18:35:38 -08001911 //@extension("VK_NV_glsl_shader") // 13
Jesse Hall26763382016-05-20 07:13:52 -07001912 VK_ERROR_INVALID_SHADER_NV = 0xC4650720, // -1000012000
Jesse Hall77ad05b2017-03-10 22:02:20 -08001913
Jesse Hallad250842017-03-10 18:35:38 -08001914 //@extension("VK_KHR_maintenance1") // 70
Jesse Hall77ad05b2017-03-10 22:02:20 -08001915 VK_ERROR_OUT_OF_POOL_MEMORY_KHR = 0xC4642878, // -1000069000
Jesse Hallad250842017-03-10 18:35:38 -08001916
Jesse Hall9492f992017-08-28 12:10:06 -07001917 //@extension("VK_KHR_external_memory") // 73
1918 VK_ERROR_INVALID_EXTERNAL_HANDLE_KHR = 0xC4641CBD, // -1000072003
Jesse Hall72e6a132018-04-06 13:00:44 -07001919
Jesse Hallf47e8f82018-10-27 23:41:45 -07001920 //@extension("VK_EXT_image_drm_format_modifier") // 159
1921 VK_ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT = 0xC462CCD0, // -1000158000
1922
Jesse Hall72e6a132018-04-06 13:00:44 -07001923 //@extension("VK_EXT_descriptor_indexing") // 162
1924 VK_ERROR_FRAGMENTATION_EXT = 0xc462c118, // -1000161000
Jesse Hallf47e8f82018-10-27 23:41:45 -07001925
1926 //@extension("VK_EXT_global_priority") // 175
1927 VK_ERROR_NOT_PERMITTED_EXT = 0xC4628E4F, // -1000174001
Jesse Hall5ae3abb2015-10-08 14:00:22 -07001928}
1929
1930enum VkDynamicState {
1931 VK_DYNAMIC_STATE_VIEWPORT = 0x00000000,
1932 VK_DYNAMIC_STATE_SCISSOR = 0x00000001,
1933 VK_DYNAMIC_STATE_LINE_WIDTH = 0x00000002,
1934 VK_DYNAMIC_STATE_DEPTH_BIAS = 0x00000003,
1935 VK_DYNAMIC_STATE_BLEND_CONSTANTS = 0x00000004,
1936 VK_DYNAMIC_STATE_DEPTH_BOUNDS = 0x00000005,
1937 VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK = 0x00000006,
1938 VK_DYNAMIC_STATE_STENCIL_WRITE_MASK = 0x00000007,
1939 VK_DYNAMIC_STATE_STENCIL_REFERENCE = 0x00000008,
Jesse Hallad250842017-03-10 18:35:38 -08001940
1941 //@extension("VK_NV_clip_space_w_scaling") // 88
1942 VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV = 1000087000,
1943
1944 //@extension("VK_EXT_discard_rectangles") // 100
1945 VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT = 1000099000,
Jesse Hall77726222017-09-19 14:49:27 -05001946
1947 //@extension("VK_EXT_sample_locations") // 144
1948 VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT = 1000143000,
Jesse Hallb5297192018-09-22 20:52:13 +02001949
1950 //@extension("VK_NV_shading_rate_image") // 165
1951 VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV = 1000164004,
1952 VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV = 1000164006,
1953
1954 //@extension("VK_NV_scissor_exclusive") // 206
1955 VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV = 1000205001,
Jesse Halld27f6aa2015-08-15 17:58:48 -07001956}
1957
Jesse Hall05556b12017-05-18 17:40:25 -07001958enum VkObjectType {
1959 VK_OBJECT_TYPE_UNKNOWN = 0,
1960 VK_OBJECT_TYPE_INSTANCE = 1,
1961 VK_OBJECT_TYPE_PHYSICAL_DEVICE = 2,
1962 VK_OBJECT_TYPE_DEVICE = 3,
1963 VK_OBJECT_TYPE_QUEUE = 4,
1964 VK_OBJECT_TYPE_SEMAPHORE = 5,
1965 VK_OBJECT_TYPE_COMMAND_BUFFER = 6,
1966 VK_OBJECT_TYPE_FENCE = 7,
1967 VK_OBJECT_TYPE_DEVICE_MEMORY = 8,
1968 VK_OBJECT_TYPE_BUFFER = 9,
1969 VK_OBJECT_TYPE_IMAGE = 10,
1970 VK_OBJECT_TYPE_EVENT = 11,
1971 VK_OBJECT_TYPE_QUERY_POOL = 12,
1972 VK_OBJECT_TYPE_BUFFER_VIEW = 13,
1973 VK_OBJECT_TYPE_IMAGE_VIEW = 14,
1974 VK_OBJECT_TYPE_SHADER_MODULE = 15,
1975 VK_OBJECT_TYPE_PIPELINE_CACHE = 16,
1976 VK_OBJECT_TYPE_PIPELINE_LAYOUT = 17,
1977 VK_OBJECT_TYPE_RENDER_PASS = 18,
1978 VK_OBJECT_TYPE_PIPELINE = 19,
1979 VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT = 20,
1980 VK_OBJECT_TYPE_SAMPLER = 21,
1981 VK_OBJECT_TYPE_DESCRIPTOR_POOL = 22,
1982 VK_OBJECT_TYPE_DESCRIPTOR_SET = 23,
1983 VK_OBJECT_TYPE_FRAMEBUFFER = 24,
1984 VK_OBJECT_TYPE_COMMAND_POOL = 25,
1985
Ian Elliott28bd2c32017-10-13 09:21:12 -06001986 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04001987 VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION = 1000156000,
1988 VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE = 1000085000,
1989
Jesse Hall05556b12017-05-18 17:40:25 -07001990 //@extension("VK_KHR_surface") // 1
1991 VK_OBJECT_TYPE_SURFACE_KHR = 1000000000,
1992
1993 //@extension("VK_KHR_swapchain") // 2
1994 VK_OBJECT_TYPE_SWAPCHAIN_KHR = 1000001000,
1995
1996 //@extension("VK_KHR_display") // 3
1997 VK_OBJECT_TYPE_DISPLAY_KHR = 1000002000,
1998 VK_OBJECT_TYPE_DISPLAY_MODE_KHR = 1000002001,
1999
2000 //@extension("VK_KHR_debug_report") // 12
2001 VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT = 1000011000,
2002
2003 //@extension("VK_KHR_descriptor_update_template") // 86
2004 VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR = 1000085000,
2005
2006 //@extension("VK_NVX_device_generated_commands") // 87
2007 VK_OBJECT_TYPE_OBJECT_TABLE_NVX = 1000086000,
2008 VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX = 1000086001,
Jesse Hall77726222017-09-19 14:49:27 -05002009
Jesse Hall8c954d32018-01-17 22:06:20 -08002010 //@extension("VK_EXT_debug_utils") // 129
2011 VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT = 1000128000,
2012
Jesse Hall076f95d2017-09-20 11:34:47 -07002013 //@extension("VK_KHR_sampler_ycbcr_conversion") // 157
2014 VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR = 1000156000,
2015
Jesse Hall77726222017-09-19 14:49:27 -05002016 //@extension("VK_EXT_validation_cache") // 161
2017 VK_OBJECT_TYPE_VALIDATION_CACHE_EXT = 1000160000,
Jesse Hallb5297192018-09-22 20:52:13 +02002018
Jesse Halla363a8e2018-11-05 21:18:00 -07002019 //@extension("VK_NV_raytracing") // 166
2020 VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV = 1000165000,
Jesse Hall05556b12017-05-18 17:40:25 -07002021}
2022
Daniel Koch09f7bf92017-10-05 00:26:58 -04002023
Ian Elliott28bd2c32017-10-13 09:21:12 -06002024//@vulkan1_1 enums
Daniel Koch09f7bf92017-10-05 00:26:58 -04002025
2026enum VkPointClippingBehavior {
2027 VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES = 0,
2028 VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY = 1,
2029}
2030
2031enum VkTessellationDomainOrigin {
2032 VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT = 0,
2033 VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT = 1,
2034}
2035
2036enum VkSamplerYcbcrModelConversion {
2037 VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY = 0,
2038 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY = 1,
2039 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709 = 2,
2040 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601 = 3,
2041 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020 = 4,
2042}
2043
2044enum VkSamplerYcbcrRange {
2045 VK_SAMPLER_YCBCR_RANGE_ITU_FULL = 0,
2046 VK_SAMPLER_YCBCR_RANGE_ITU_NARROW = 1,
2047}
2048
2049enum VkChromaLocation {
2050 VK_CHROMA_LOCATION_COSITED_EVEN = 0,
2051 VK_CHROMA_LOCATION_MIDPOINT = 1,
2052}
2053
2054enum VkDescriptorUpdateTemplateType {
2055 VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET = 0,
2056 VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR = 1,
2057}
2058
Jesse Halla13a3cf2018-07-09 15:51:52 -07002059enum VkVendorId {
2060 VK_VENDOR_ID_VIV = 0x10001,
2061 VK_VENDOR_ID_VSI = 0x10002,
2062 VK_VENDOR_ID_KAZAN = 0x10003,
2063}
2064
Jesse Hallad250842017-03-10 18:35:38 -08002065@extension("VK_KHR_surface") // 1
Michael Lentine88594d72015-11-12 12:49:45 -08002066enum VkPresentModeKHR {
2067 VK_PRESENT_MODE_IMMEDIATE_KHR = 0x00000000,
2068 VK_PRESENT_MODE_MAILBOX_KHR = 0x00000001,
2069 VK_PRESENT_MODE_FIFO_KHR = 0x00000002,
Jesse Hall03b6fe12015-11-24 12:44:21 -08002070 VK_PRESENT_MODE_FIFO_RELAXED_KHR = 0x00000003,
Jesse Hall77ad05b2017-03-10 22:02:20 -08002071
Jesse Hall05556b12017-05-18 17:40:25 -07002072 //@extension("VK_KHR_shared_presentable_image") // 112
Jesse Hall77ad05b2017-03-10 22:02:20 -08002073 VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR = 1000111000,
2074 VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR = 1000111001,
Michael Lentine88594d72015-11-12 12:49:45 -08002075}
2076
Jesse Hallad250842017-03-10 18:35:38 -08002077@extension("VK_KHR_surface") // 1
Michael Lentine88594d72015-11-12 12:49:45 -08002078enum VkColorSpaceKHR {
Daniel Koch09f7bf92017-10-05 00:26:58 -04002079 VK_COLOR_SPACE_SRGB_NONLINEAR_KHR = 0x00000000,
Jesse Hall77ad05b2017-03-10 22:02:20 -08002080
Jesse Hallf5ad48b2017-03-20 13:09:19 -07002081 //@extension("VK_EXT_swapchain_colorspace") // 105
2082 VK_COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT = 1000104001,
2083 VK_COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT = 1000104002,
2084 VK_COLOR_SPACE_DCI_P3_LINEAR_EXT = 1000104003,
2085 VK_COLOR_SPACE_DCI_P3_NONLINEAR_EXT = 1000104004,
2086 VK_COLOR_SPACE_BT709_LINEAR_EXT = 1000104005,
2087 VK_COLOR_SPACE_BT709_NONLINEAR_EXT = 1000104006,
2088 VK_COLOR_SPACE_BT2020_LINEAR_EXT = 1000104007,
2089 VK_COLOR_SPACE_HDR10_ST2084_EXT = 1000104008,
2090 VK_COLOR_SPACE_DOLBYVISION_EXT = 1000104009,
2091 VK_COLOR_SPACE_HDR10_HLG_EXT = 1000104010,
Courtney Goeltzenleuchter7f558ed2017-01-23 17:15:24 -07002092 VK_COLOR_SPACE_ADOBERGB_LINEAR_EXT = 1000104011,
2093 VK_COLOR_SPACE_ADOBERGB_NONLINEAR_EXT = 1000104012,
Jesse Hallf5ad48b2017-03-20 13:09:19 -07002094 VK_COLOR_SPACE_PASS_THROUGH_EXT = 1000104013,
Jesse Hall77726222017-09-19 14:49:27 -05002095 VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT = 1000104014,
Michael Lentine88594d72015-11-12 12:49:45 -08002096}
Jesse Halld27f6aa2015-08-15 17:58:48 -07002097
Jesse Hallad250842017-03-10 18:35:38 -08002098@extension("VK_EXT_debug_report") // 12
Jesse Hall715b86a2016-01-16 16:34:29 -08002099enum VkDebugReportObjectTypeEXT {
2100 VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT = 0,
2101 VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT = 1,
2102 VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT = 2,
2103 VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT = 3,
2104 VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT = 4,
2105 VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT = 5,
2106 VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT = 6,
2107 VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT = 7,
2108 VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT = 8,
2109 VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT = 9,
2110 VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT = 10,
2111 VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT = 11,
2112 VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT = 12,
2113 VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT = 13,
2114 VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT = 14,
2115 VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT = 15,
2116 VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT = 16,
2117 VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT = 17,
2118 VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT = 18,
2119 VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT = 19,
2120 VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT = 20,
2121 VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT = 21,
2122 VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT = 22,
2123 VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT = 23,
2124 VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT = 24,
2125 VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT = 25,
2126 VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT = 26,
2127 VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT = 27,
Jesse Hall7ba0ac72017-07-07 17:13:23 -07002128 VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT = 28,
Chris Forbes289cb792016-12-30 15:03:55 +13002129 VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT = 29,
2130 VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT = 30,
2131 VK_DEBUG_REPORT_OBJECT_TYPE_OBJECT_TABLE_NVX_EXT = 31,
2132 VK_DEBUG_REPORT_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX_EXT = 32,
Jesse Hallf5ad48b2017-03-20 13:09:19 -07002133
Jesse Hall77726222017-09-19 14:49:27 -05002134 //extension("VK_EXT_validation_cache") // 161
Jesse Hall8c954d32018-01-17 22:06:20 -08002135 VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT = 33,
Jesse Hall77726222017-09-19 14:49:27 -05002136
Jesse Hallf5ad48b2017-03-20 13:09:19 -07002137 //extension("VK_KHR_descriptor_update_template") // 86
2138 VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR_EXT = 1000085000,
Jesse Hall77726222017-09-19 14:49:27 -05002139
Jesse Hall076f95d2017-09-20 11:34:47 -07002140 //@extension("VK_KHR_sampler_ycbcr_conversion") // 157
2141 VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR_EXT = 1000156000,
Jesse Hallb5297192018-09-22 20:52:13 +02002142
Jesse Halla363a8e2018-11-05 21:18:00 -07002143 //@extension("VK_NV_raytracing") // 166
2144 VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT = 1000165000,
Jesse Hall715b86a2016-01-16 16:34:29 -08002145}
2146
Jesse Hallad250842017-03-10 18:35:38 -08002147@extension("VK_AMD_rasterization_order") // 19
Jesse Hall26763382016-05-20 07:13:52 -07002148enum VkRasterizationOrderAMD {
2149 VK_RASTERIZATION_ORDER_STRICT_AMD = 0,
2150 VK_RASTERIZATION_ORDER_RELAXED_AMD = 1,
2151}
2152
Jesse Hall8c954d32018-01-17 22:06:20 -08002153@extension("VK_AMD_shader_info") // 43
2154enum VkShaderInfoTypeAMD {
2155 VK_SHADER_INFO_TYPE_STATISTICS_AMD = 0,
2156 VK_SHADER_INFO_TYPE_BINARY_AMD = 1,
2157 VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD = 2,
2158}
2159
Jesse Hallad250842017-03-10 18:35:38 -08002160@extension("VK_EXT_validation_flags") // 62
Chris Forbes289cb792016-12-30 15:03:55 +13002161enum VkValidationCheckEXT {
2162 VK_VALIDATION_CHECK_ALL_EXT = 0,
Jesse Hall7ba0ac72017-07-07 17:13:23 -07002163 VK_VALIDATION_CHECK_SHADERS_EXT = 1,
Chris Forbes289cb792016-12-30 15:03:55 +13002164}
2165
Jesse Hallad250842017-03-10 18:35:38 -08002166@extension("VK_KHR_descriptor_update_template") // 86
2167enum VkDescriptorUpdateTemplateTypeKHR {
2168 VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET_KHR = 0,
2169 VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR = 1,
2170}
2171
2172@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13002173enum VkIndirectCommandsTokenTypeNVX {
Jesse Hall7ba0ac72017-07-07 17:13:23 -07002174 VK_INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NVX = 0,
2175 VK_INDIRECT_COMMANDS_TOKEN_TYPE_DESCRIPTOR_SET_NVX = 1,
2176 VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NVX = 2,
2177 VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NVX = 3,
2178 VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NVX = 4,
2179 VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NVX = 5,
2180 VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NVX = 6,
2181 VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NVX = 7,
Chris Forbes289cb792016-12-30 15:03:55 +13002182}
2183
Jesse Hallad250842017-03-10 18:35:38 -08002184@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13002185enum VkObjectEntryTypeNVX {
Jesse Hall7ba0ac72017-07-07 17:13:23 -07002186 VK_OBJECT_ENTRY_TYPE_DESCRIPTOR_SET_NVX = 0,
2187 VK_OBJECT_ENTRY_TYPE_PIPELINE_NVX = 1,
2188 VK_OBJECT_ENTRY_TYPE_INDEX_BUFFER_NVX = 2,
2189 VK_OBJECT_ENTRY_TYPE_VERTEX_BUFFER_NVX = 3,
2190 VK_OBJECT_ENTRY_TYPE_PUSH_CONSTANT_NVX = 4,
Chris Forbes289cb792016-12-30 15:03:55 +13002191}
Jesse Hall715b86a2016-01-16 16:34:29 -08002192
Jesse Hallad250842017-03-10 18:35:38 -08002193@extension("VK_EXT_display_control") // 92
Jesse Hall77ad05b2017-03-10 22:02:20 -08002194enum VkDisplayPowerStateEXT {
2195 VK_DISPLAY_POWER_STATE_OFF_EXT = 0,
2196 VK_DISPLAY_POWER_STATE_SUSPEND_EXT = 1,
2197 VK_DISPLAY_POWER_STATE_ON_EXT = 2,
2198}
2199
Jesse Hallad250842017-03-10 18:35:38 -08002200@extension("VK_EXT_display_control") // 92
Jesse Hall77ad05b2017-03-10 22:02:20 -08002201enum VkDeviceEventTypeEXT {
2202 VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT = 0,
2203}
2204
Jesse Hallad250842017-03-10 18:35:38 -08002205@extension("VK_EXT_display_control") // 92
Jesse Hall77ad05b2017-03-10 22:02:20 -08002206enum VkDisplayEventTypeEXT {
2207 VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT = 0,
2208}
2209
Jesse Hallad250842017-03-10 18:35:38 -08002210@extension("VK_NV_viewport_swizzle") // 99
2211enum VkViewportCoordinateSwizzleNV {
2212 VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV = 0,
2213 VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV = 1,
2214 VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV = 2,
2215 VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV = 3,
2216 VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV = 4,
2217 VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV = 5,
2218 VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV = 6,
2219 VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV = 7,
2220}
2221
2222@extension("VK_EXT_discard_rectangles") // 100
2223enum VkDiscardRectangleModeEXT {
2224 VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT = 0,
2225 VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT = 1,
2226}
2227
Jesse Hall8c954d32018-01-17 22:06:20 -08002228@extension("VK_EXT_conservative_rasterization") // 102
2229enum VkConservativeRasterizationModeEXT {
2230 VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT = 0,
2231 VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT = 1,
2232 VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT = 2,
2233}
2234
Jesse Hall076f95d2017-09-20 11:34:47 -07002235@extension("VK_KHR_maintenance2") // 118
2236enum VkPointClippingBehaviorKHR {
2237 VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES_KHR = 0,
2238 VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY_KHR = 1,
2239}
2240
2241@extension("VK_KHR_maintenance2") // 118
2242enum VkTessellationDomainOriginKHR {
2243 VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT_KHR = 0,
2244 VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT_KHR = 1,
2245}
2246
Jesse Hall7ba0ac72017-07-07 17:13:23 -07002247@extension("VK_EXT_sampler_filter_minmax") // 131
2248enum VkSamplerReductionModeEXT {
2249 VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_EXT = 0,
2250 VK_SAMPLER_REDUCTION_MODE_MIN_EXT = 1,
2251 VK_SAMPLER_REDUCTION_MODE_MAX_EXT = 2,
2252}
2253
2254@extension("VK_EXT_blend_operation_advanced") // 149
2255enum VkBlendOverlapEXT {
2256 VK_BLEND_OVERLAP_UNCORRELATED_EXT = 0,
2257 VK_BLEND_OVERLAP_DISJOINT_EXT = 1,
2258 VK_BLEND_OVERLAP_CONJOINT_EXT = 2,
2259}
2260
2261@extension("VK_NV_framebuffer_mixed_samples") // 153
2262enum VkCoverageModulationModeNV {
2263 VK_COVERAGE_MODULATION_MODE_NONE_NV = 0,
2264 VK_COVERAGE_MODULATION_MODE_RGB_NV = 1,
2265 VK_COVERAGE_MODULATION_MODE_ALPHA_NV = 2,
2266 VK_COVERAGE_MODULATION_MODE_RGBA_NV = 3,
2267}
2268
Jesse Hall076f95d2017-09-20 11:34:47 -07002269@extension("VK_KHR_sampler_ycbcr_conversion") // 157
2270enum VkSamplerYcbcrModelConversionKHR {
2271 VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY_KHR = 0,
2272 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY_KHR = 1,
2273 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709_KHR = 2,
2274 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601_KHR = 3,
2275 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020_KHR = 4,
2276}
2277
2278@extension("VK_KHR_sampler_ycbcr_conversion") // 157
2279enum VkSamplerYcbcrRangeKHR {
2280 VK_SAMPLER_YCBCR_RANGE_ITU_FULL_KHR = 0,
2281 VK_SAMPLER_YCBCR_RANGE_ITU_NARROW_KHR = 1,
2282}
2283
2284@extension("VK_KHR_sampler_ycbcr_conversion") // 157
2285enum VkChromaLocationKHR {
2286 VK_CHROMA_LOCATION_COSITED_EVEN_KHR = 0,
2287 VK_CHROMA_LOCATION_MIDPOINT_KHR = 1,
2288}
2289
Jesse Hall77726222017-09-19 14:49:27 -05002290@extension("VK_EXT_validation_cache") // 161
2291enum VkValidationCacheHeaderVersionEXT {
2292 VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT = 1,
2293}
2294
Jesse Hallb5297192018-09-22 20:52:13 +02002295@extension("VK_NV_shading_rate_image") // 165
2296enum VkShadingRatePaletteEntryNV {
2297 VK_SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV = 0,
2298 VK_SHADING_RATE_PALETTE_ENTRY_16_INVOCATIONS_PER_PIXEL_NV = 1,
2299 VK_SHADING_RATE_PALETTE_ENTRY_8_INVOCATIONS_PER_PIXEL_NV = 2,
2300 VK_SHADING_RATE_PALETTE_ENTRY_4_INVOCATIONS_PER_PIXEL_NV = 3,
2301 VK_SHADING_RATE_PALETTE_ENTRY_2_INVOCATIONS_PER_PIXEL_NV = 4,
2302 VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_PIXEL_NV = 5,
2303 VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X1_PIXELS_NV = 6,
2304 VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_1X2_PIXELS_NV = 7,
2305 VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X2_PIXELS_NV = 8,
2306 VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X2_PIXELS_NV = 9,
2307 VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X4_PIXELS_NV = 10,
2308 VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV = 11,
2309}
2310
2311@extension("VK_NV_shading_rate_image") // 165
2312enum VkCoarseSampleOrderTypeNV {
2313 VK_COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV = 0,
2314 VK_COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV = 1,
2315 VK_COARSE_SAMPLE_ORDER_TYPE_PIXEL_MAJOR_NV = 2,
2316 VK_COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV = 3,
2317}
2318
Jesse Halla363a8e2018-11-05 21:18:00 -07002319@extension("VK_NV_raytracing") // 166
2320enum VkRayTracingShaderGroupTypeNV {
2321 VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_NV = 0,
2322 VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_NV = 1,
2323 VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_NV = 2,
Jesse Hallb5297192018-09-22 20:52:13 +02002324}
2325
Jesse Halla363a8e2018-11-05 21:18:00 -07002326@extension("VK_NV_raytracing") // 166
2327enum VkGeometryTypeNV {
2328 VK_GEOMETRY_TYPE_TRIANGLES_NV = 0,
2329 VK_GEOMETRY_TYPE_AABBS_NV = 1,
Jesse Hallb5297192018-09-22 20:52:13 +02002330}
2331
Jesse Halla363a8e2018-11-05 21:18:00 -07002332@extension("VK_NV_raytracing") // 166
2333enum VkAccelerationStructureTypeNV {
2334 VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_NV = 0,
2335 VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NV = 1,
2336}
2337
2338@extension("VK_NV_raytracing") // 166
2339enum VkCopyAccelerationStructureModeNV {
2340 VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_NV = 0,
2341 VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_NV = 1,
2342}
2343
2344@extension("VK_NV_raytracing") // 166
2345enum VkAccelerationStructureMemoryRequirementsTypeNV {
2346 VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV = 0,
2347 VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_NV = 1,
2348 VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV = 2,
Jesse Hallb5297192018-09-22 20:52:13 +02002349}
2350
Jesse Hall8c954d32018-01-17 22:06:20 -08002351@extension("VK_EXT_global_priority") // 175
2352enum VkQueueGlobalPriorityEXT {
2353 VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT = 128,
2354 VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT = 256,
2355 VK_QUEUE_GLOBAL_PRIORITY_HIGH_EXT = 512,
2356 VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT = 1024,
2357}
2358
Jesse Hallf47e8f82018-10-27 23:41:45 -07002359@extension("VK_EXT_calibrated_timestamps") // 185
2360enum VkTimeDomainEXT {
2361 VK_TIME_DOMAIN_DEVICE_EXT = 0,
2362 VK_TIME_DOMAIN_CLOCK_MONOTONIC_EXT = 1,
2363 VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT = 2,
2364 VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT = 3,
2365}
2366
Jesse Halla363a8e2018-11-05 21:18:00 -07002367@extension("VK_AMD_memory_overallocation_behavior") // 190
2368enum VkMemoryOverallocationBehaviorAMD {
2369 VK_MEMORY_OVERALLOCATION_BEHAVIOR_DEFAULT_AMD = 0,
2370 VK_MEMORY_OVERALLOCATION_BEHAVIOR_ALLOWED_AMD = 1,
2371 VK_MEMORY_OVERALLOCATION_BEHAVIOR_DISALLOWED_AMD = 2,
2372}
2373
Jesse Hall2e6853c2018-10-02 14:05:37 -07002374@extension("VK_KHR_driver_properties") // 197
2375enum VkDriverIdKHR {
2376 VK_DRIVER_ID_AMD_PROPRIETARY_KHR = 1,
2377 VK_DRIVER_ID_AMD_OPEN_SOURCE_KHR = 2,
2378 VK_DRIVER_ID_MESA_RADV_KHR = 3,
2379 VK_DRIVER_ID_NVIDIA_PROPRIETARY_KHR = 4,
2380 VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS_KHR = 5,
2381 VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA_KHR = 6,
2382 VK_DRIVER_ID_IMAGINATION_PROPRIETARY_KHR = 7,
2383 VK_DRIVER_ID_QUALCOMM_PROPRIETARY_KHR = 8,
2384 VK_DRIVER_ID_ARM_PROPRIETARY_KHR = 9,
2385}
2386
Jesse Halld27f6aa2015-08-15 17:58:48 -07002387/////////////////
2388// Bitfields //
2389/////////////////
2390
Jesse Halld27f6aa2015-08-15 17:58:48 -07002391/// Queue capabilities
Jesse Halld8bade02015-11-24 10:24:18 -08002392type VkFlags VkQueueFlags
2393bitfield VkQueueFlagBits {
Jesse Halld27f6aa2015-08-15 17:58:48 -07002394 VK_QUEUE_GRAPHICS_BIT = 0x00000001, /// Queue supports graphics operations
2395 VK_QUEUE_COMPUTE_BIT = 0x00000002, /// Queue supports compute operations
Jesse Hall65ab5522015-11-30 00:07:16 -08002396 VK_QUEUE_TRANSFER_BIT = 0x00000004, /// Queue supports transfer operations
Jesse Hallb00daad2015-11-29 19:46:20 -08002397 VK_QUEUE_SPARSE_BINDING_BIT = 0x00000008, /// Queue supports sparse resource memory management operations
Daniel Koch09f7bf92017-10-05 00:26:58 -04002398
Ian Elliott28bd2c32017-10-13 09:21:12 -06002399 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04002400 VK_QUEUE_PROTECTED_BIT = 0x00000010,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002401}
2402
2403/// Memory properties passed into vkAllocMemory().
Jesse Halld8bade02015-11-24 10:24:18 -08002404type VkFlags VkMemoryPropertyFlags
2405bitfield VkMemoryPropertyFlagBits {
Jesse Halld1af8122015-11-29 23:50:38 -08002406 VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT = 0x00000001,
2407 VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT = 0x00000002,
2408 VK_MEMORY_PROPERTY_HOST_COHERENT_BIT = 0x00000004,
2409 VK_MEMORY_PROPERTY_HOST_CACHED_BIT = 0x00000008,
2410 VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT = 0x00000010,
Daniel Koch09f7bf92017-10-05 00:26:58 -04002411
Ian Elliott28bd2c32017-10-13 09:21:12 -06002412 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04002413 VK_MEMORY_PROPERTY_PROTECTED_BIT = 0x00000020,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002414}
2415
2416/// Memory heap flags
Jesse Halld8bade02015-11-24 10:24:18 -08002417type VkFlags VkMemoryHeapFlags
2418bitfield VkMemoryHeapFlagBits {
Jesse Halld1af8122015-11-29 23:50:38 -08002419 VK_MEMORY_HEAP_DEVICE_LOCAL_BIT = 0x00000001,
Jesse Hallad250842017-03-10 18:35:38 -08002420
Ian Elliott28bd2c32017-10-13 09:21:12 -06002421 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04002422 VK_MEMORY_HEAP_MULTI_INSTANCE_BIT = 0x00000002,
2423
2424 //@extension("VK_KHR_device_group_creation") // 71
2425 VK_MEMORY_HEAP_MULTI_INSTANCE_BIT_KHR = 0x00000002,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002426}
2427
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08002428/// Access flags
2429type VkFlags VkAccessFlags
2430bitfield VkAccessFlagBits {
2431 VK_ACCESS_INDIRECT_COMMAND_READ_BIT = 0x00000001,
2432 VK_ACCESS_INDEX_READ_BIT = 0x00000002,
2433 VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT = 0x00000004,
2434 VK_ACCESS_UNIFORM_READ_BIT = 0x00000008,
2435 VK_ACCESS_INPUT_ATTACHMENT_READ_BIT = 0x00000010,
2436 VK_ACCESS_SHADER_READ_BIT = 0x00000020,
2437 VK_ACCESS_SHADER_WRITE_BIT = 0x00000040,
2438 VK_ACCESS_COLOR_ATTACHMENT_READ_BIT = 0x00000080,
2439 VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT = 0x00000100,
2440 VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT = 0x00000200,
2441 VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT = 0x00000400,
2442 VK_ACCESS_TRANSFER_READ_BIT = 0x00000800,
2443 VK_ACCESS_TRANSFER_WRITE_BIT = 0x00001000,
2444 VK_ACCESS_HOST_READ_BIT = 0x00002000,
2445 VK_ACCESS_HOST_WRITE_BIT = 0x00004000,
2446 VK_ACCESS_MEMORY_READ_BIT = 0x00008000,
2447 VK_ACCESS_MEMORY_WRITE_BIT = 0x00010000,
Chris Forbes289cb792016-12-30 15:03:55 +13002448
Jesse Hallad250842017-03-10 18:35:38 -08002449 //@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13002450 VK_ACCESS_COMMAND_PROCESS_READ_BIT_NVX = 0x00020000,
Chris Forbes289cb792016-12-30 15:03:55 +13002451 VK_ACCESS_COMMAND_PROCESS_WRITE_BIT_NVX = 0x00040000,
Jesse Hall7ba0ac72017-07-07 17:13:23 -07002452
2453 //@extension("VK_EXT_blend_operation_advanced") // 149
2454 VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT = 0x00080000,
Jesse Halla13a3cf2018-07-09 15:51:52 -07002455
2456 //@extension("VK_EXT_conditional_rendering") // 82
2457 VK_ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT = 0x00100000,
Jesse Hallb5297192018-09-22 20:52:13 +02002458
2459 //@extension("VK_NV_shading_rate_image") // 165
2460 VK_ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV = 0x00800000,
2461
Jesse Halla363a8e2018-11-05 21:18:00 -07002462 //@extension("VK_NV_raytracing") // 166
2463 VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_NV = 0x00200000,
2464 VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_NV = 0x00400000,
Jesse Hallf47e8f82018-10-27 23:41:45 -07002465
2466 //@extension("VK_EXT_transform_feedback") // 29
2467 VK_ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT = 0x02000000,
2468 VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT = 0x04000000,
2469 VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT = 0x08000000,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002470}
2471
2472/// Buffer usage flags
Jesse Halld8bade02015-11-24 10:24:18 -08002473type VkFlags VkBufferUsageFlags
2474bitfield VkBufferUsageFlagBits {
Jesse Hall3fbc8562015-11-29 22:10:52 -08002475 VK_BUFFER_USAGE_TRANSFER_SRC_BIT = 0x00000001, /// Can be used as a source of transfer operations
2476 VK_BUFFER_USAGE_TRANSFER_DST_BIT = 0x00000002, /// Can be used as a destination of transfer operations
Jesse Halld27f6aa2015-08-15 17:58:48 -07002477 VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT = 0x00000004, /// Can be used as TBO
2478 VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT = 0x00000008, /// Can be used as IBO
2479 VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT = 0x00000010, /// Can be used as UBO
2480 VK_BUFFER_USAGE_STORAGE_BUFFER_BIT = 0x00000020, /// Can be used as SSBO
2481 VK_BUFFER_USAGE_INDEX_BUFFER_BIT = 0x00000040, /// Can be used as source of fixed function index fetch (index buffer)
2482 VK_BUFFER_USAGE_VERTEX_BUFFER_BIT = 0x00000080, /// Can be used as source of fixed function vertex fetch (VBO)
2483 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 -07002484
2485 //@extension("VK_EXT_conditional_rendering") // 82
2486 VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT = 0x00000200,
Jesse Hallb5297192018-09-22 20:52:13 +02002487
Jesse Halla363a8e2018-11-05 21:18:00 -07002488 //@extension("VK_NV_raytracing") // 166
2489 VK_BUFFER_USAGE_RAY_TRACING_BIT_NV = 0x00000400,
Jesse Hallf47e8f82018-10-27 23:41:45 -07002490
2491 //@extension("VK_EXT_transform_feedback") // 29
2492 VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT = 0x00000800,
2493 VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT = 0x00001000,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002494}
2495
2496/// Buffer creation flags
Jesse Halld8bade02015-11-24 10:24:18 -08002497type VkFlags VkBufferCreateFlags
2498bitfield VkBufferCreateFlagBits {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07002499 VK_BUFFER_CREATE_SPARSE_BINDING_BIT = 0x00000001, /// Buffer should support sparse backing
Jesse Halld27f6aa2015-08-15 17:58:48 -07002500 VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT = 0x00000002, /// Buffer should support sparse backing with partial residency
2501 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 -04002502
Ian Elliott28bd2c32017-10-13 09:21:12 -06002503 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04002504 VK_BUFFER_CREATE_PROTECTED_BIT = 0x00000008,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002505}
2506
2507/// Shader stage flags
Jesse Halld8bade02015-11-24 10:24:18 -08002508type VkFlags VkShaderStageFlags
2509bitfield VkShaderStageFlagBits {
Jesse Halld27f6aa2015-08-15 17:58:48 -07002510 VK_SHADER_STAGE_VERTEX_BIT = 0x00000001,
Jesse Hallae38f732015-11-19 21:32:50 -08002511 VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT = 0x00000002,
2512 VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT = 0x00000004,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002513 VK_SHADER_STAGE_GEOMETRY_BIT = 0x00000008,
2514 VK_SHADER_STAGE_FRAGMENT_BIT = 0x00000010,
2515 VK_SHADER_STAGE_COMPUTE_BIT = 0x00000020,
Jesse Hallc7467b72015-11-29 21:05:26 -08002516 VK_SHADER_STAGE_ALL_GRAPHICS = 0x0000001F,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002517
2518 VK_SHADER_STAGE_ALL = 0x7FFFFFFF,
Jesse Hallb5297192018-09-22 20:52:13 +02002519
Jesse Halla363a8e2018-11-05 21:18:00 -07002520 //@extension("VK_NV_raytracing") // 166
2521 VK_SHADER_STAGE_RAYGEN_BIT_NV = 0x00000100,
2522 VK_SHADER_STAGE_ANY_HIT_BIT_NV = 0x00000200,
2523 VK_SHADER_STAGE_CLOSEST_HIT_BIT_NV = 0x00000400,
2524 VK_SHADER_STAGE_MISS_BIT_NV = 0x00000800,
2525 VK_SHADER_STAGE_INTERSECTION_BIT_NV = 0x00001000,
2526 VK_SHADER_STAGE_CALLABLE_BIT_NV = 0x00002000,
Jesse Hallb5297192018-09-22 20:52:13 +02002527
2528 //@extension("VK_NV_mesh_shader") // 203
2529 VK_SHADER_STAGE_TASK_BIT_NV = 0x00000040,
2530 VK_SHADER_STAGE_MESH_BIT_NV = 0x00000080,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002531}
2532
Jesse Hallfbf97b02015-11-20 14:17:03 -08002533/// Descriptor pool create flags
Jesse Halld8bade02015-11-24 10:24:18 -08002534type VkFlags VkDescriptorPoolCreateFlags
2535bitfield VkDescriptorPoolCreateFlagBits {
Jesse Hallfbf97b02015-11-20 14:17:03 -08002536 VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT = 0x00000001,
Jesse Hall72e6a132018-04-06 13:00:44 -07002537
2538 //@extension("VK_EXT_descriptor_indexing") // 162
2539 VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT_EXT = 0x00000002,
Jesse Hallfbf97b02015-11-20 14:17:03 -08002540}
2541
2542/// Descriptor pool reset flags
Jesse Halld8bade02015-11-24 10:24:18 -08002543type VkFlags VkDescriptorPoolResetFlags
Jesse Halla6429252015-11-29 18:59:42 -08002544//bitfield VkDescriptorPoolResetFlagBits {
2545//}
Jesse Hallfbf97b02015-11-20 14:17:03 -08002546
Jesse Halld27f6aa2015-08-15 17:58:48 -07002547/// Image usage flags
Jesse Halld8bade02015-11-24 10:24:18 -08002548type VkFlags VkImageUsageFlags
2549bitfield VkImageUsageFlagBits {
Jesse Hall3fbc8562015-11-29 22:10:52 -08002550 VK_IMAGE_USAGE_TRANSFER_SRC_BIT = 0x00000001, /// Can be used as a source of transfer operations
2551 VK_IMAGE_USAGE_TRANSFER_DST_BIT = 0x00000002, /// Can be used as a destination of transfer operations
Jesse Halld27f6aa2015-08-15 17:58:48 -07002552 VK_IMAGE_USAGE_SAMPLED_BIT = 0x00000004, /// Can be sampled from (SAMPLED_IMAGE and COMBINED_IMAGE_SAMPLER descriptor types)
2553 VK_IMAGE_USAGE_STORAGE_BIT = 0x00000008, /// Can be used as storage image (STORAGE_IMAGE descriptor type)
2554 VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT = 0x00000010, /// Can be used as framebuffer color attachment
Jesse Hall5ae3abb2015-10-08 14:00:22 -07002555 VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000020, /// Can be used as framebuffer depth/stencil attachment
Jesse Halld27f6aa2015-08-15 17:58:48 -07002556 VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT = 0x00000040, /// Image data not needed outside of rendering
2557 VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT = 0x00000080, /// Can be used as framebuffer input attachment
Jesse Hallb5297192018-09-22 20:52:13 +02002558
2559 //@extension("VK_NV_shading_rate_image") // 165
2560 VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV = 0x00000100,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002561}
2562
2563/// Image creation flags
Jesse Halld8bade02015-11-24 10:24:18 -08002564type VkFlags VkImageCreateFlags
2565bitfield VkImageCreateFlagBits {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07002566 VK_IMAGE_CREATE_SPARSE_BINDING_BIT = 0x00000001, /// Image should support sparse backing
Jesse Halld27f6aa2015-08-15 17:58:48 -07002567 VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT = 0x00000002, /// Image should support sparse backing with partial residency
2568 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 -07002569 VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT = 0x00000008, /// Allows image views to have different format than the base image
2570 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 -08002571
Ian Elliott28bd2c32017-10-13 09:21:12 -06002572 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04002573 VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT = 0x00000020,
Jesse Hall8c954d32018-01-17 22:06:20 -08002574 VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT = 0x00000040,
Daniel Koch09f7bf92017-10-05 00:26:58 -04002575 VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT = 0x00000080,
2576 VK_IMAGE_CREATE_EXTENDED_USAGE_BIT = 0x00000100,
Daniel Koch09f7bf92017-10-05 00:26:58 -04002577 VK_IMAGE_CREATE_DISJOINT_BIT = 0x00000200,
Ian Elliott28bd2c32017-10-13 09:21:12 -06002578 VK_IMAGE_CREATE_ALIAS_BIT = 0x00000400,
2579 VK_IMAGE_CREATE_PROTECTED_BIT = 0x00000800,
Daniel Koch09f7bf92017-10-05 00:26:58 -04002580
Jesse Hallad250842017-03-10 18:35:38 -08002581 //@extension("VK_KHR_maintenance1") // 70
Jesse Hall77ad05b2017-03-10 22:02:20 -08002582 VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT_KHR = 0x00000020,
Jesse Hallad250842017-03-10 18:35:38 -08002583
Daniel Koch09f7bf92017-10-05 00:26:58 -04002584 //@extension("VK_KHR_device_group") // 61
2585 VK_IMAGE_CREATE_BIND_SFR_BIT_KHR = 0x00000040,
Jesse Hall77726222017-09-19 14:49:27 -05002586
Jesse Hall076f95d2017-09-20 11:34:47 -07002587 //@extension("VK_KHR_maintenance2") // 118
2588 VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT_KHR = 0x00000080,
2589 VK_IMAGE_CREATE_EXTENDED_USAGE_BIT_KHR = 0x00000100,
2590
2591 //@extension("VK_KHR_sampler_ycbcr_conversion") // 157
2592 VK_IMAGE_CREATE_DISJOINT_BIT_KHR = 0x00000200,
2593
2594 //@extension("VK_KHR_bind_memory2") // 158
2595 VK_IMAGE_CREATE_ALIAS_BIT_KHR = 0x00000400,
Ian Elliott28bd2c32017-10-13 09:21:12 -06002596
2597 //@extension("VK_EXT_sample_locations") // 144
2598 VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT = 0x00001000,
Jesse Hallb5297192018-09-22 20:52:13 +02002599
2600 //@extension("VK_NV_corner_sampled_image") // 51
2601 VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV = 0x00002000,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002602}
2603
Jesse Hallb00daad2015-11-29 19:46:20 -08002604/// Image view creation flags
Jesse Halld8bade02015-11-24 10:24:18 -08002605type VkFlags VkImageViewCreateFlags
Jesse Hallb00daad2015-11-29 19:46:20 -08002606//bitfield VkImageViewCreateFlagBits {
2607//}
Jesse Halld27f6aa2015-08-15 17:58:48 -07002608
2609/// Pipeline creation flags
Jesse Halld8bade02015-11-24 10:24:18 -08002610type VkFlags VkPipelineCreateFlags
2611bitfield VkPipelineCreateFlagBits {
Jesse Halld27f6aa2015-08-15 17:58:48 -07002612 VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT = 0x00000001,
2613 VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT = 0x00000002,
2614 VK_PIPELINE_CREATE_DERIVATIVE_BIT = 0x00000004,
Jesse Hallad250842017-03-10 18:35:38 -08002615
Ian Elliott28bd2c32017-10-13 09:21:12 -06002616 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04002617 VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT = 0x00000008,
2618 VK_PIPELINE_CREATE_DISPATCH_BASE = 0x00000010,
2619
2620 //@extension("VK_KHR_device_group") // 61
2621 VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR = 0x00000008,
2622 VK_PIPELINE_CREATE_DISPATCH_BASE_KHR = 0x00000010,
Jesse Hallb5297192018-09-22 20:52:13 +02002623
Jesse Halla363a8e2018-11-05 21:18:00 -07002624 //@extension("VK_NV_raytracing") // 166
2625 VK_PIPELINE_CREATE_DEFER_COMPILE_BIT_NV = 0x00000020,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002626}
2627
Jesse Hall65ab5522015-11-30 00:07:16 -08002628/// Color component flags
2629type VkFlags VkColorComponentFlags
2630bitfield VkColorComponentFlagBits {
2631 VK_COLOR_COMPONENT_R_BIT = 0x00000001,
2632 VK_COLOR_COMPONENT_G_BIT = 0x00000002,
2633 VK_COLOR_COMPONENT_B_BIT = 0x00000004,
2634 VK_COLOR_COMPONENT_A_BIT = 0x00000008,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002635}
2636
2637/// Fence creation flags
Jesse Halld8bade02015-11-24 10:24:18 -08002638type VkFlags VkFenceCreateFlags
2639bitfield VkFenceCreateFlagBits {
Jesse Halld27f6aa2015-08-15 17:58:48 -07002640 VK_FENCE_CREATE_SIGNALED_BIT = 0x00000001,
2641}
2642
2643/// Semaphore creation flags
Jesse Halld8bade02015-11-24 10:24:18 -08002644type VkFlags VkSemaphoreCreateFlags
Jesse Halla6429252015-11-29 18:59:42 -08002645//bitfield VkSemaphoreCreateFlagBits {
2646//}
Jesse Halld27f6aa2015-08-15 17:58:48 -07002647
2648/// Format capability flags
Jesse Halld8bade02015-11-24 10:24:18 -08002649type VkFlags VkFormatFeatureFlags
2650bitfield VkFormatFeatureFlagBits {
Jesse Halld27f6aa2015-08-15 17:58:48 -07002651 VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT = 0x00000001, /// Format can be used for sampled images (SAMPLED_IMAGE and COMBINED_IMAGE_SAMPLER descriptor types)
2652 VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT = 0x00000002, /// Format can be used for storage images (STORAGE_IMAGE descriptor type)
2653 VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT = 0x00000004, /// Format supports atomic operations in case it's used for storage images
2654 VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT = 0x00000008, /// Format can be used for uniform texel buffers (TBOs)
2655 VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT = 0x00000010, /// Format can be used for storage texel buffers (IBOs)
2656 VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT = 0x00000020, /// Format supports atomic operations in case it's used for storage texel buffers
2657 VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT = 0x00000040, /// Format can be used for vertex buffers (VBOs)
2658 VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT = 0x00000080, /// Format can be used for color attachment images
2659 VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT = 0x00000100, /// Format supports blending in case it's used for color attachment images
2660 VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000200, /// Format can be used for depth/stencil attachment images
Jesse Hall3fbc8562015-11-29 22:10:52 -08002661 VK_FORMAT_FEATURE_BLIT_SRC_BIT = 0x00000400, /// Format can be used as the source image of blits with vkCommandBlitImage
2662 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 -08002663 VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT = 0x00001000,
Jesse Hall26763382016-05-20 07:13:52 -07002664
Ian Elliott28bd2c32017-10-13 09:21:12 -06002665 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04002666 VK_FORMAT_FEATURE_TRANSFER_SRC_BIT = 0x00004000,
2667 VK_FORMAT_FEATURE_TRANSFER_DST_BIT = 0x00008000,
2668 VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT = 0x00020000,
2669 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT = 0x00040000,
2670 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT = 0x00080000,
2671 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT = 0x00100000,
2672 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT = 0x00200000,
2673 VK_FORMAT_FEATURE_DISJOINT_BIT = 0x00400000,
2674 VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT = 0x00800000,
2675
Jesse Hallad250842017-03-10 18:35:38 -08002676 //@extension("VK_IMG_filter_cubic") // 16
Jesse Hall26763382016-05-20 07:13:52 -07002677 VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG = 0x00002000,
Jesse Hall77ad05b2017-03-10 22:02:20 -08002678
Jesse Hallad250842017-03-10 18:35:38 -08002679 //@extension("VK_KHR_maintenance1") // 70
Jesse Hall77ad05b2017-03-10 22:02:20 -08002680 VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR = 0x00004000,
2681 VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR = 0x00008000,
Jesse Hall7ba0ac72017-07-07 17:13:23 -07002682
2683 //@extension("VK_EXT_sampler_filter_minmax") // 131
2684 VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT_EXT = 0x00010000,
Jesse Hall076f95d2017-09-20 11:34:47 -07002685
2686 //@extension("VK_KHR_sampler_ycbcr_conversion") // 157
2687 VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT_KHR = 0x00020000,
2688 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT_KHR = 0x00040000,
2689 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT_KHR = 0x00080000,
2690 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT_KHR = 0x00100000,
2691 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT_KHR = 0x00200000,
2692 VK_FORMAT_FEATURE_DISJOINT_BIT_KHR = 0x00400000,
2693 VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT_KHR = 0x00800000,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002694}
2695
2696/// Query control flags
Jesse Halld8bade02015-11-24 10:24:18 -08002697type VkFlags VkQueryControlFlags
2698bitfield VkQueryControlFlagBits {
Jesse Hall65ab5522015-11-30 00:07:16 -08002699 VK_QUERY_CONTROL_PRECISE_BIT = 0x00000001,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002700}
2701
2702/// Query result flags
Jesse Halld8bade02015-11-24 10:24:18 -08002703type VkFlags VkQueryResultFlags
2704bitfield VkQueryResultFlagBits {
Jesse Halld27f6aa2015-08-15 17:58:48 -07002705 VK_QUERY_RESULT_64_BIT = 0x00000001, /// Results of the queries are written to the destination buffer as 64-bit values
2706 VK_QUERY_RESULT_WAIT_BIT = 0x00000002, /// Results of the queries are waited on before proceeding with the result copy
2707 VK_QUERY_RESULT_WITH_AVAILABILITY_BIT = 0x00000004, /// Besides the results of the query, the availability of the results is also written
2708 VK_QUERY_RESULT_PARTIAL_BIT = 0x00000008, /// Copy the partial results of the query even if the final results aren't available
2709}
2710
2711/// Shader module creation flags
Jesse Halld8bade02015-11-24 10:24:18 -08002712type VkFlags VkShaderModuleCreateFlags
Jesse Halla6429252015-11-29 18:59:42 -08002713//bitfield VkShaderModuleCreateFlagBits {
2714//}
Jesse Halld27f6aa2015-08-15 17:58:48 -07002715
Jesse Halld27f6aa2015-08-15 17:58:48 -07002716/// Event creation flags
Jesse Halld8bade02015-11-24 10:24:18 -08002717type VkFlags VkEventCreateFlags
Jesse Halla6429252015-11-29 18:59:42 -08002718//bitfield VkEventCreateFlagBits {
2719//}
Jesse Halld27f6aa2015-08-15 17:58:48 -07002720
Jesse Halla15a4bf2015-11-19 22:48:02 -08002721/// Command buffer usage flags
Jesse Hall3fbc8562015-11-29 22:10:52 -08002722type VkFlags VkCommandBufferUsageFlags
2723bitfield VkCommandBufferUsageFlagBits {
2724 VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT = 0x00000001,
2725 VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT = 0x00000002,
2726 VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT = 0x00000004,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002727}
2728
2729/// Pipeline statistics flags
Jesse Halld8bade02015-11-24 10:24:18 -08002730type VkFlags VkQueryPipelineStatisticFlags
2731bitfield VkQueryPipelineStatisticFlagBits {
Jesse Hallae38f732015-11-19 21:32:50 -08002732 VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT = 0x00000001, /// Optional
2733 VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT = 0x00000002, /// Optional
2734 VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT = 0x00000004, /// Optional
2735 VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT = 0x00000008, /// Optional
2736 VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT = 0x00000010, /// Optional
2737 VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT = 0x00000020, /// Optional
2738 VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT = 0x00000040, /// Optional
2739 VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT = 0x00000080, /// Optional
2740 VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT = 0x00000100, /// Optional
2741 VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT = 0x00000200, /// Optional
2742 VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT = 0x00000400, /// Optional
Jesse Halld27f6aa2015-08-15 17:58:48 -07002743}
2744
2745/// Memory mapping flags
Jesse Halld8bade02015-11-24 10:24:18 -08002746type VkFlags VkMemoryMapFlags
Jesse Halla6429252015-11-29 18:59:42 -08002747//bitfield VkMemoryMapFlagBits {
2748//}
Jesse Halld27f6aa2015-08-15 17:58:48 -07002749
2750/// Bitfield of image aspects
Jesse Halld8bade02015-11-24 10:24:18 -08002751type VkFlags VkImageAspectFlags
2752bitfield VkImageAspectFlagBits {
Jesse Halld27f6aa2015-08-15 17:58:48 -07002753 VK_IMAGE_ASPECT_COLOR_BIT = 0x00000001,
2754 VK_IMAGE_ASPECT_DEPTH_BIT = 0x00000002,
2755 VK_IMAGE_ASPECT_STENCIL_BIT = 0x00000004,
2756 VK_IMAGE_ASPECT_METADATA_BIT = 0x00000008,
Jesse Hall076f95d2017-09-20 11:34:47 -07002757
Ian Elliott28bd2c32017-10-13 09:21:12 -06002758 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04002759 VK_IMAGE_ASPECT_PLANE_0_BIT = 0x00000010,
2760 VK_IMAGE_ASPECT_PLANE_1_BIT = 0x00000020,
2761 VK_IMAGE_ASPECT_PLANE_2_BIT = 0x00000040,
2762
Jesse Hall076f95d2017-09-20 11:34:47 -07002763 //@extension("VK_KHR_sampler_ycbcr_conversion") // 157
2764 VK_IMAGE_ASPECT_PLANE_0_BIT_KHR = 0x00000010,
2765 VK_IMAGE_ASPECT_PLANE_1_BIT_KHR = 0x00000020,
2766 VK_IMAGE_ASPECT_PLANE_2_BIT_KHR = 0x00000040,
Jesse Hallf47e8f82018-10-27 23:41:45 -07002767
2768 //@extension("VK_EXT_transform_feedback") // 29
2769 VK_IMAGE_ASPECT_MEMORY_PLANE_0_BIT_EXT = 0x00000080,
2770 VK_IMAGE_ASPECT_MEMORY_PLANE_1_BIT_EXT = 0x00000100,
2771 VK_IMAGE_ASPECT_MEMORY_PLANE_2_BIT_EXT = 0x00000200,
2772 VK_IMAGE_ASPECT_MEMORY_PLANE_3_BIT_EXT = 0x00000400,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002773}
2774
2775/// Sparse memory bind flags
Jesse Halld8bade02015-11-24 10:24:18 -08002776type VkFlags VkSparseMemoryBindFlags
Jesse Hall091ed9e2015-11-30 00:55:29 -08002777bitfield VkSparseMemoryBindFlagBits {
2778 VK_SPARSE_MEMORY_BIND_METADATA_BIT = 0x00000001,
2779}
Jesse Halld27f6aa2015-08-15 17:58:48 -07002780
2781/// Sparse image memory requirements flags
Jesse Halld8bade02015-11-24 10:24:18 -08002782type VkFlags VkSparseImageFormatFlags
2783bitfield VkSparseImageFormatFlagBits {
Jesse Hallb00daad2015-11-29 19:46:20 -08002784 VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT = 0x00000001, /// Image uses a single miptail region for all array slices
2785 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.
2786 VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT = 0x00000004, /// Image uses a non-standard sparse block size
Jesse Halld27f6aa2015-08-15 17:58:48 -07002787}
2788
2789/// Pipeline stages
Jesse Halld8bade02015-11-24 10:24:18 -08002790type VkFlags VkPipelineStageFlags
2791bitfield VkPipelineStageFlagBits {
Jesse Halld27f6aa2015-08-15 17:58:48 -07002792 VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT = 0x00000001, /// Before subsequent commands are processed
2793 VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT = 0x00000002, /// Draw/DispatchIndirect command fetch
2794 VK_PIPELINE_STAGE_VERTEX_INPUT_BIT = 0x00000004, /// Vertex/index fetch
2795 VK_PIPELINE_STAGE_VERTEX_SHADER_BIT = 0x00000008, /// Vertex shading
Jesse Hallae38f732015-11-19 21:32:50 -08002796 VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT = 0x00000010, /// Tessellation control shading
2797 VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT = 0x00000020, /// Tessellation evaluation shading
Jesse Halld27f6aa2015-08-15 17:58:48 -07002798 VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT = 0x00000040, /// Geometry shading
2799 VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT = 0x00000080, /// Fragment shading
2800 VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT = 0x00000100, /// Early fragment (depth/stencil) tests
2801 VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT = 0x00000200, /// Late fragment (depth/stencil) tests
2802 VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT = 0x00000400, /// Color attachment writes
2803 VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT = 0x00000800, /// Compute shading
2804 VK_PIPELINE_STAGE_TRANSFER_BIT = 0x00001000, /// Transfer/copy operations
Jesse Hall543a7ff2016-01-08 16:38:30 -08002805 VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT = 0x00002000,
2806 VK_PIPELINE_STAGE_HOST_BIT = 0x00004000, /// Indicates host (CPU) is a source/sink of the dependency
Jesse Halld27f6aa2015-08-15 17:58:48 -07002807
Jesse Hall543a7ff2016-01-08 16:38:30 -08002808 VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT = 0x00008000, /// All stages of the graphics pipeline
2809 VK_PIPELINE_STAGE_ALL_COMMANDS_BIT = 0x00010000, /// All graphics, compute, copy, and transition commands
Chris Forbes289cb792016-12-30 15:03:55 +13002810
Jesse Hallad250842017-03-10 18:35:38 -08002811 //@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13002812 VK_PIPELINE_STAGE_COMMAND_PROCESS_BIT_NVX = 0x00020000,
Jesse Halla13a3cf2018-07-09 15:51:52 -07002813
2814 //@extension("VK_EXT_conditional_rendering") // 82
2815 VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT = 0x00040000,
Jesse Hallb5297192018-09-22 20:52:13 +02002816
2817 //@extension("VK_NV_shading_rate_image") // 165
2818 VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV = 0x00400000,
2819
Jesse Halla363a8e2018-11-05 21:18:00 -07002820 //@extension("VK_NV_raytracing") // 166
2821 VK_PIPELINE_STAGE_RAY_TRACING_BIT_NV = 0x00200000,
2822 VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_NV = 0x02000000,
Jesse Hallb5297192018-09-22 20:52:13 +02002823
2824 //@extension("VK_NV_mesh_shader") // 203
2825 VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV = 0x00080000,
2826 VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV = 0x00100000,
Jesse Hallf47e8f82018-10-27 23:41:45 -07002827
2828 //@extension("VK_EXT_transform_feedback") // 29
2829 VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT = 0x01000000,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07002830}
2831
2832/// Render pass attachment description flags
Jesse Halld8bade02015-11-24 10:24:18 -08002833type VkFlags VkAttachmentDescriptionFlags
2834bitfield VkAttachmentDescriptionFlagBits {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07002835 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 -07002836}
2837
2838/// Subpass description flags
Jesse Halld8bade02015-11-24 10:24:18 -08002839type VkFlags VkSubpassDescriptionFlags
2840bitfield VkSubpassDescriptionFlagBits {
Jesse Hallad250842017-03-10 18:35:38 -08002841 //@extension("VK_NVX_multiview_per_view_attributes") // 98
2842 VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX = 0x00000001,
2843 VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX = 0x00000002,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002844}
2845
2846/// Command pool creation flags
Jesse Hall3fbc8562015-11-29 22:10:52 -08002847type VkFlags VkCommandPoolCreateFlags
2848bitfield VkCommandPoolCreateFlagBits {
2849 VK_COMMAND_POOL_CREATE_TRANSIENT_BIT = 0x00000001, /// Command buffers have a short lifetime
2850 VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT = 0x00000002, /// Command buffers may release their memory individually
Daniel Koch09f7bf92017-10-05 00:26:58 -04002851
Ian Elliott28bd2c32017-10-13 09:21:12 -06002852 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04002853 VK_COMMAND_POOL_CREATE_PROTECTED_BIT = 0x00000004,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002854}
2855
2856/// Command pool reset flags
Jesse Hall3fbc8562015-11-29 22:10:52 -08002857type VkFlags VkCommandPoolResetFlags
2858bitfield VkCommandPoolResetFlagBits {
2859 VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT = 0x00000001, /// Release resources owned by the pool
Jesse Halld27f6aa2015-08-15 17:58:48 -07002860}
2861
Jesse Hall3fbc8562015-11-29 22:10:52 -08002862type VkFlags VkCommandBufferResetFlags
2863bitfield VkCommandBufferResetFlagBits {
2864 VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT = 0x00000001, /// Release resources owned by the buffer
Jesse Hall5ae3abb2015-10-08 14:00:22 -07002865}
2866
Jesse Halld8bade02015-11-24 10:24:18 -08002867type VkFlags VkSampleCountFlags
2868bitfield VkSampleCountFlagBits {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07002869 VK_SAMPLE_COUNT_1_BIT = 0x00000001,
2870 VK_SAMPLE_COUNT_2_BIT = 0x00000002,
2871 VK_SAMPLE_COUNT_4_BIT = 0x00000004,
2872 VK_SAMPLE_COUNT_8_BIT = 0x00000008,
2873 VK_SAMPLE_COUNT_16_BIT = 0x00000010,
2874 VK_SAMPLE_COUNT_32_BIT = 0x00000020,
2875 VK_SAMPLE_COUNT_64_BIT = 0x00000040,
2876}
2877
Jesse Halld8bade02015-11-24 10:24:18 -08002878type VkFlags VkStencilFaceFlags
2879bitfield VkStencilFaceFlagBits {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07002880 VK_STENCIL_FACE_FRONT_BIT = 0x00000001, /// Front face
2881 VK_STENCIL_FACE_BACK_BIT = 0x00000002, /// Back face
Jesse Hallc7467b72015-11-29 21:05:26 -08002882 VK_STENCIL_FRONT_AND_BACK = 0x00000003,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002883}
2884
Jesse Halla6429252015-11-29 18:59:42 -08002885/// Instance creation flags
2886type VkFlags VkInstanceCreateFlags
2887//bitfield VkInstanceCreateFlagBits {
2888//}
2889
2890/// Device creation flags
2891type VkFlags VkDeviceCreateFlags
2892//bitfield VkDeviceCreateFlagBits {
2893//}
2894
2895/// Device queue creation flags
2896type VkFlags VkDeviceQueueCreateFlags
Ian Elliott28bd2c32017-10-13 09:21:12 -06002897@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04002898bitfield VkDeviceQueueCreateFlagBits {
2899 VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT = 0x00000001,
2900}
Jesse Halla6429252015-11-29 18:59:42 -08002901
2902/// Query pool creation flags
2903type VkFlags VkQueryPoolCreateFlags
2904//bitfield VkQueryPoolCreateFlagBits {
2905//}
2906
2907/// Buffer view creation flags
2908type VkFlags VkBufferViewCreateFlags
2909//bitfield VkBufferViewCreateFlagBits {
2910//}
2911
2912/// Pipeline cache creation flags
2913type VkFlags VkPipelineCacheCreateFlags
2914//bitfield VkPipelineCacheCreateFlagBits {
2915//}
2916
2917/// Pipeline shader stage creation flags
2918type VkFlags VkPipelineShaderStageCreateFlags
2919//bitfield VkPipelineShaderStageCreateFlagBits {
2920//}
2921
2922/// Descriptor set layout creation flags
2923type VkFlags VkDescriptorSetLayoutCreateFlags
Jesse Hallad250842017-03-10 18:35:38 -08002924bitfield VkDescriptorSetLayoutCreateFlagBits {
2925 //@extension("VK_KHR_push_descriptor") // 81
2926 VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR = 0x00000001,
Jesse Hall72e6a132018-04-06 13:00:44 -07002927
2928 //@extension("VK_EXT_descriptor_indexing") // 162
2929 VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT = 0x00000002,
Jesse Hallad250842017-03-10 18:35:38 -08002930}
Jesse Halla6429252015-11-29 18:59:42 -08002931
2932/// Pipeline vertex input state creation flags
2933type VkFlags VkPipelineVertexInputStateCreateFlags
2934//bitfield VkPipelineVertexInputStateCreateFlagBits {
2935//}
2936
2937/// Pipeline input assembly state creation flags
2938type VkFlags VkPipelineInputAssemblyStateCreateFlags
2939//bitfield VkPipelineInputAssemblyStateCreateFlagBits {
2940//}
2941
2942/// Tessellation state creation flags
2943type VkFlags VkPipelineTessellationStateCreateFlags
2944//bitfield VkPipelineTessellationStateCreateFlagBits {
2945//}
2946
2947/// Viewport state creation flags
2948type VkFlags VkPipelineViewportStateCreateFlags
2949//bitfield VkPipelineViewportStateCreateFlagBits {
2950//}
2951
Jesse Hall3fbc8562015-11-29 22:10:52 -08002952/// Rasterization state creation flags
2953type VkFlags VkPipelineRasterizationStateCreateFlags
2954//bitfield VkPipelineRasterizationStateCreateFlagBits {
Jesse Halla6429252015-11-29 18:59:42 -08002955//}
2956
2957/// Multisample state creation flags
2958type VkFlags VkPipelineMultisampleStateCreateFlags
2959//bitfield VkPipelineMultisampleStateCreateFlagBits {
2960//}
2961
2962/// Color blend state creation flags
2963type VkFlags VkPipelineColorBlendStateCreateFlags
2964//bitfield VkPipelineColorBlendStateCreateFlagBits {
2965//}
2966
2967/// Depth/stencil state creation flags
2968type VkFlags VkPipelineDepthStencilStateCreateFlags
2969//bitfield VkPipelineDepthStencilStateCreateFlagBits {
2970//}
2971
2972/// Dynamic state creation flags
2973type VkFlags VkPipelineDynamicStateCreateFlags
2974//bitfield VkPipelineDynamicStateCreateFlagBits {
2975//}
2976
2977/// Pipeline layout creation flags
2978type VkFlags VkPipelineLayoutCreateFlags
2979//bitfield VkPipelineLayoutCreateFlagBits {
2980//}
2981
2982/// Sampler creation flags
2983type VkFlags VkSamplerCreateFlags
2984//bitfield VkSamplerCreateFlagBits {
2985//}
2986
2987/// Render pass creation flags
2988type VkFlags VkRenderPassCreateFlags
2989//bitfield VkRenderPassCreateFlagBits {
2990//}
2991
2992/// Framebuffer creation flags
2993type VkFlags VkFramebufferCreateFlags
2994//bitfield VkFramebufferCreateFlagBits {
2995//}
2996
Jesse Halldc6d36c2015-11-29 19:12:15 -08002997/// Dependency flags
2998type VkFlags VkDependencyFlags
2999bitfield VkDependencyFlagBits {
3000 VK_DEPENDENCY_BY_REGION_BIT = 0x00000001,
Jesse Hallad250842017-03-10 18:35:38 -08003001
Ian Elliott28bd2c32017-10-13 09:21:12 -06003002 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04003003 VK_DEPENDENCY_DEVICE_GROUP_BIT = 0x00000004,
3004 VK_DEPENDENCY_VIEW_LOCAL_BIT = 0x00000002,
Jesse Hallad250842017-03-10 18:35:38 -08003005
Daniel Koch09f7bf92017-10-05 00:26:58 -04003006 //@extension("VK_KHR_multiview") // 54
3007 VK_DEPENDENCY_VIEW_LOCAL_BIT_KHR = 0x00000002,
3008
3009 //@extension("VK_KHR_device_group") // 61
3010 VK_DEPENDENCY_DEVICE_GROUP_BIT_KHR = 0x00000004,
Jesse Halldc6d36c2015-11-29 19:12:15 -08003011}
3012
Jesse Hallc7467b72015-11-29 21:05:26 -08003013/// Cull mode flags
3014type VkFlags VkCullModeFlags
3015bitfield VkCullModeFlagBits {
3016 VK_CULL_MODE_NONE = 0x00000000,
3017 VK_CULL_MODE_FRONT_BIT = 0x00000001,
3018 VK_CULL_MODE_BACK_BIT = 0x00000002,
3019 VK_CULL_MODE_FRONT_AND_BACK = 0x00000003,
3020}
3021
Ian Elliott28bd2c32017-10-13 09:21:12 -06003022//@vulkan1_1 flags
Daniel Koch09f7bf92017-10-05 00:26:58 -04003023
3024/// Subgroup feature flags
3025type VkFlags VkSubgroupFeatureFlags
3026bitfield VkSubgroupFeatureFlagBits {
3027 VK_SUBGROUP_FEATURE_BASIC_BIT = 0x00000001,
3028 VK_SUBGROUP_FEATURE_VOTE_BIT = 0x00000002,
3029 VK_SUBGROUP_FEATURE_ARITHMETIC_BIT = 0x00000004,
3030 VK_SUBGROUP_FEATURE_BALLOT_BIT = 0x00000008,
3031 VK_SUBGROUP_FEATURE_SHUFFLE_BIT = 0x00000010,
3032 VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT = 0x00000020,
3033 VK_SUBGROUP_FEATURE_CLUSTERED_BIT = 0x00000040,
3034 VK_SUBGROUP_FEATURE_QUAD_BIT = 0x00000080,
Jesse Hall72e6a132018-04-06 13:00:44 -07003035
3036 //@extension("VK_NV_shader_subgroup_partitioned") // 199
3037 VK_SUBGROUP_FEATURE_PARTITIONED_BIT_NV = 0x00000100,
Daniel Koch09f7bf92017-10-05 00:26:58 -04003038}
3039
3040/// Peer memory feature flags
3041type VkFlags VkPeerMemoryFeatureFlags
3042bitfield VkPeerMemoryFeatureFlagBits {
3043 VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT = 0x00000001,
3044 VK_PEER_MEMORY_FEATURE_COPY_DST_BIT = 0x00000002,
3045 VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT = 0x00000004,
3046 VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT = 0x00000008,
3047}
3048
3049/// Memory allocation flags
3050type VkFlags VkMemoryAllocateFlags
3051bitfield VkMemoryAllocateFlagBits {
3052 VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT = 0x00000001,
3053}
3054
3055type VkFlags VkCommandPoolTrimFlags
3056//bitfield VkCommandPoolTrimFlagBits {
3057//}
3058
3059type VkFlags VkDescriptorUpdateTemplateCreateFlags
3060//bitfield VkDescriptorUpdateTemplateCreateFlagBits {
3061//}
3062
3063/// External memory handle type flags
3064type VkFlags VkExternalMemoryHandleTypeFlags
3065bitfield VkExternalMemoryHandleTypeFlagBits {
3066 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT = 0x00000001,
3067 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT = 0x00000002,
3068 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 0x00000004,
3069 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT = 0x00000008,
3070 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT = 0x00000010,
3071 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT = 0x00000020,
3072 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT = 0x00000040,
Jesse Hall8c954d32018-01-17 22:06:20 -08003073
Jesse Hall8c954d32018-01-17 22:06:20 -08003074 //@extension("VK_EXT_external_memory_host") // 179
Jesse Hall36215a92018-01-18 15:04:37 -08003075 VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT = 0x00000080,
3076 VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT = 0x00000100,
3077
3078 //@extension("VK_EXT_external_memory_dma_buf") // 126
3079 VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT = 0x00000200,
3080
3081 //@extension("VK_ANDROID_external_memory_android_hardware_buffer") // 130
3082 VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID = 0x00000400,
Daniel Koch09f7bf92017-10-05 00:26:58 -04003083}
3084
3085/// External memory feature flags
3086type VkFlags VkExternalMemoryFeatureFlags
3087bitfield VkExternalMemoryFeatureFlagBits {
3088 VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT = 0x00000001,
3089 VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT = 0x00000002,
3090 VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT = 0x00000004,
3091}
3092
3093/// External fence handle type flags
3094type VkFlags VkExternalFenceHandleTypeFlags
3095bitfield VkExternalFenceHandleTypeFlagBits {
3096 VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT = 0x00000001,
3097 VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT = 0x00000002,
3098 VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 0x00000004,
3099 VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT = 0x00000008,
3100}
3101
3102/// External fence feature flags
3103type VkFlags VkExternalFenceFeatureFlags
3104bitfield VkExternalFenceFeatureFlagBits {
3105 VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT = 0x00000001,
3106 VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT = 0x00000002,
3107}
3108
3109/// Fence import flags
3110type VkFlags VkFenceImportFlags
3111bitfield VkFenceImportFlagBits {
3112 VK_FENCE_IMPORT_TEMPORARY_BIT = 0x00000001,
3113}
3114
3115/// Semaphore import flags
3116type VkFlags VkSemaphoreImportFlags
3117bitfield VkSemaphoreImportFlagBits {
3118 VK_SEMAPHORE_IMPORT_TEMPORARY_BIT = 0x00000001,
3119}
3120
3121/// External semaphore handle type flags
3122type VkFlags VkExternalSemaphoreHandleTypeFlags
3123bitfield VkExternalSemaphoreHandleTypeFlagBits {
3124 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT = 0x00000001,
3125 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT = 0x00000002,
3126 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 0x00000004,
3127 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT = 0x00000008,
3128 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT = 0x00000010,
3129}
3130
3131/// External semaphore feature flags
3132type VkFlags VkExternalSemaphoreFeatureFlags
3133bitfield VkExternalSemaphoreFeatureFlagBits {
3134 VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT = 0x00000001,
3135 VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT = 0x00000002,
3136}
3137
Jesse Hallad250842017-03-10 18:35:38 -08003138@extension("VK_KHR_surface") // 1
Jesse Halld8bade02015-11-24 10:24:18 -08003139type VkFlags VkSurfaceTransformFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08003140@extension("VK_KHR_surface") // 1
Jesse Halld8bade02015-11-24 10:24:18 -08003141bitfield VkSurfaceTransformFlagBitsKHR {
Jesse Hallf9fa9a52016-01-08 16:08:51 -08003142 VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR = 0x00000001,
Jesse Hall9ba8bc82015-11-30 16:22:16 -08003143 VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR = 0x00000002,
3144 VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR = 0x00000004,
3145 VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR = 0x00000008,
3146 VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR = 0x00000010,
3147 VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR = 0x00000020,
3148 VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR = 0x00000040,
3149 VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR = 0x00000080,
3150 VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR = 0x00000100,
Michael Lentine88594d72015-11-12 12:49:45 -08003151}
Jesse Halld27f6aa2015-08-15 17:58:48 -07003152
Jesse Hallad250842017-03-10 18:35:38 -08003153@extension("VK_KHR_surface") // 1
Jesse Halla6429252015-11-29 18:59:42 -08003154type VkFlags VkCompositeAlphaFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08003155@extension("VK_KHR_surface") // 1
Jesse Halla6429252015-11-29 18:59:42 -08003156bitfield VkCompositeAlphaFlagBitsKHR {
3157 VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR = 0x00000001,
3158 VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR = 0x00000002,
3159 VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR = 0x00000004,
3160 VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR = 0x00000008,
3161}
3162
Jesse Hallad250842017-03-10 18:35:38 -08003163@extension("VK_KHR_swapchain") // 2
Jesse Hallf4ab2b12015-11-30 16:04:55 -08003164type VkFlags VkSwapchainCreateFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08003165@extension("VK_KHR_swapchain") // 2
3166bitfield VkSwapchainCreateFlagBitsKHR {
Ian Elliott28bd2c32017-10-13 09:21:12 -06003167 //@vulkan1_1
Jesse Hall8c954d32018-01-17 22:06:20 -08003168 VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR = 0x00000001,
Daniel Koch09f7bf92017-10-05 00:26:58 -04003169 VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR = 0x00000002,
3170}
3171
Ian Elliott28bd2c32017-10-13 09:21:12 -06003172@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04003173@extension("VK_KHR_swapchain") // 2
3174type VkFlags VkDeviceGroupPresentModeFlagsKHR
Ian Elliott28bd2c32017-10-13 09:21:12 -06003175@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04003176@extension("VK_KHR_swapchain") // 2
3177bitfield VkDeviceGroupPresentModeFlagBitsKHR {
3178 VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR = 0x00000001,
3179 VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR = 0x00000002,
3180 VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR = 0x00000004,
3181 VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR = 0x00000008,
Jesse Hallad250842017-03-10 18:35:38 -08003182}
Jesse Hallf4ab2b12015-11-30 16:04:55 -08003183
Jesse Hallad250842017-03-10 18:35:38 -08003184@extension("VK_KHR_display") // 3
Jesse Halld8bade02015-11-24 10:24:18 -08003185type VkFlags VkDisplayPlaneAlphaFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08003186@extension("VK_KHR_display") // 3
Jesse Halld8bade02015-11-24 10:24:18 -08003187bitfield VkDisplayPlaneAlphaFlagBitsKHR {
Jesse Hallf4ab2b12015-11-30 16:04:55 -08003188 VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR = 0x00000001,
3189 VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR = 0x00000002,
3190 VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR = 0x00000004,
3191 VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR = 0x00000008,
Jesse Hall1356b0d2015-11-23 17:24:58 -08003192}
3193
Jesse Hallad250842017-03-10 18:35:38 -08003194@extension("VK_KHR_display") // 3
Jesse Hallf4ab2b12015-11-30 16:04:55 -08003195type VkFlags VkDisplaySurfaceCreateFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08003196//@extension("VK_KHR_display") // 3
Jesse Hallf4ab2b12015-11-30 16:04:55 -08003197//bitfield VkDisplaySurfaceCreateFlagBitsKHR {
3198//}
3199
Jesse Hallad250842017-03-10 18:35:38 -08003200@extension("VK_KHR_display") // 3
Jesse Hall9ba8bc82015-11-30 16:22:16 -08003201type VkFlags VkDisplayModeCreateFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08003202//@extension("VK_KHR_display") // 3
Jesse Hall9ba8bc82015-11-30 16:22:16 -08003203//bitfield VkDisplayModeCreateFlagBitsKHR {
3204//}
3205
Jesse Hallad250842017-03-10 18:35:38 -08003206@extension("VK_KHR_xlib_surface") // 5
Jesse Hallf9fa9a52016-01-08 16:08:51 -08003207type VkFlags VkXlibSurfaceCreateFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08003208//@extension("VK_KHR_xlib_surface") // 5
Jesse Hallf9fa9a52016-01-08 16:08:51 -08003209//bitfield VkXlibSurfaceCreateFlagBitsKHR {
3210//}
3211
Jesse Hallad250842017-03-10 18:35:38 -08003212@extension("VK_KHR_xcb_surface") // 6
Jesse Hallf9fa9a52016-01-08 16:08:51 -08003213type VkFlags VkXcbSurfaceCreateFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08003214//@extension("VK_KHR_xcb_surface") // 6
Jesse Hallf9fa9a52016-01-08 16:08:51 -08003215//bitfield VkXcbSurfaceCreateFlagBitsKHR {
3216//}
3217
Jesse Hallad250842017-03-10 18:35:38 -08003218@extension("VK_KHR_wayland_surface") // 7
Jesse Hallf9fa9a52016-01-08 16:08:51 -08003219type VkFlags VkWaylandSurfaceCreateFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08003220//@extension("VK_KHR_wayland_surface") // 7
Jesse Hallf9fa9a52016-01-08 16:08:51 -08003221//bitfield VkWaylandSurfaceCreateFlagBitsKHR {
3222//}
3223
Jesse Hallad250842017-03-10 18:35:38 -08003224@extension("VK_KHR_android_surface") // 9
Jesse Hallf9fa9a52016-01-08 16:08:51 -08003225type VkFlags VkAndroidSurfaceCreateFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08003226//@extension("VK_KHR_android_surface") // 9
Jesse Hallf9fa9a52016-01-08 16:08:51 -08003227//bitfield VkAndroidSurfaceCreateFlagBitsKHR {
3228//}
3229
Jesse Hallad250842017-03-10 18:35:38 -08003230@extension("VK_KHR_win32_surface") // 10
Jesse Hallf9fa9a52016-01-08 16:08:51 -08003231type VkFlags VkWin32SurfaceCreateFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08003232//@extension("VK_KHR_win32_surface") // 10
Jesse Hallf9fa9a52016-01-08 16:08:51 -08003233//bitfield VkWin32SurfaceCreateFlagBitsKHR {
3234//}
3235
Jesse Hallad250842017-03-10 18:35:38 -08003236@extension("VK_ANDROID_native_buffer") // 11
Jesse Hall889cd9a2017-02-25 22:12:23 -08003237type VkFlags VkSwapchainImageUsageFlagsANDROID
Jesse Hallad250842017-03-10 18:35:38 -08003238@extension("VK_ANDROID_native_buffer") // 11
Jesse Hall889cd9a2017-02-25 22:12:23 -08003239bitfield VkSwapchainImageUsageFlagBitsANDROID {
3240 VK_SWAPCHAIN_IMAGE_USAGE_FLAGS_SHARED_BIT_ANDROID = 0x00000001,
3241}
3242
Jesse Hallad250842017-03-10 18:35:38 -08003243@extension("VK_EXT_debug_report") // 12
Jesse Hall715b86a2016-01-16 16:34:29 -08003244type VkFlags VkDebugReportFlagsEXT
Jesse Hallad250842017-03-10 18:35:38 -08003245@extension("VK_EXT_debug_report") // 12
Jesse Hall715b86a2016-01-16 16:34:29 -08003246bitfield VkDebugReportFlagBitsEXT {
Jesse Halle2948d82016-02-25 04:19:32 -08003247 VK_DEBUG_REPORT_INFORMATION_BIT_EXT = 0x00000001,
3248 VK_DEBUG_REPORT_WARNING_BIT_EXT = 0x00000002,
3249 VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT = 0x00000004,
Jesse Hall715b86a2016-01-16 16:34:29 -08003250 VK_DEBUG_REPORT_ERROR_BIT_EXT = 0x00000008,
3251 VK_DEBUG_REPORT_DEBUG_BIT_EXT = 0x00000010,
3252}
3253
Jesse Hallf47e8f82018-10-27 23:41:45 -07003254@extension("VK_EXT_transform_feedback") // 29
3255type VkFlags VkPipelineRasterizationStateStreamCreateFlagsEXT
3256//@extension("VK_EXT_transform_feedback") // 29
3257//bitfield VkPipelineRasterizationStateStreamCreateFlagBitsEXT {
3258//}
3259
Jesse Hallad250842017-03-10 18:35:38 -08003260@extension("VK_NV_external_memory_capabilities") // 56
Chris Forbes289cb792016-12-30 15:03:55 +13003261type VkFlags VkExternalMemoryHandleTypeFlagsNV
Jesse Hallad250842017-03-10 18:35:38 -08003262@extension("VK_NV_external_memory_capabilities") // 56
Chris Forbes289cb792016-12-30 15:03:55 +13003263bitfield VkExternalMemoryHandleTypeFlagBitsNV {
Jesse Halleb02c472017-02-24 15:13:45 -08003264 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV = 0x00000001,
3265 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV = 0x00000002,
3266 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV = 0x00000004,
3267 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV = 0x00000008,
Chris Forbes289cb792016-12-30 15:03:55 +13003268}
3269
Jesse Hallad250842017-03-10 18:35:38 -08003270@extension("VK_NV_external_memory_capabilities") // 56
Chris Forbes289cb792016-12-30 15:03:55 +13003271type VkFlags VkExternalMemoryFeatureFlagsNV
Jesse Hallad250842017-03-10 18:35:38 -08003272@extension("VK_NV_external_memory_capabilities") // 56
Chris Forbes289cb792016-12-30 15:03:55 +13003273bitfield VkExternalMemoryFeatureFlagBitsNV {
Jesse Halleb02c472017-02-24 15:13:45 -08003274 VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV = 0x00000001,
3275 VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV = 0x00000002,
3276 VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV = 0x00000004,
Chris Forbes289cb792016-12-30 15:03:55 +13003277}
3278
Daniel Koch09f7bf92017-10-05 00:26:58 -04003279@extension("VK_KHR_device_group") // 61
3280type VkFlags VkPeerMemoryFeatureFlagsKHR
3281@extension("VK_KHR_device_group") // 61
3282bitfield VkPeerMemoryFeatureFlagBitsKHR {
3283 VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT_KHR = 0x00000001,
3284 VK_PEER_MEMORY_FEATURE_COPY_DST_BIT_KHR = 0x00000002,
3285 VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT_KHR = 0x00000004,
3286 VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT_KHR = 0x00000008,
Jesse Hallad250842017-03-10 18:35:38 -08003287}
3288
Daniel Koch09f7bf92017-10-05 00:26:58 -04003289@extension("VK_KHR_device_group") // 61
3290type VkFlags VkMemoryAllocateFlagsKHR
3291@extension("VK_KHR_device_group") // 61
3292bitfield VkMemoryAllocateFlagBitsKHR {
3293 VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT_KHR = 0x00000001,
Jesse Hallad250842017-03-10 18:35:38 -08003294}
3295
3296@extension("VK_NN_vi_surface") // 63
Jesse Hall77ad05b2017-03-10 22:02:20 -08003297type VkFlags VkViSurfaceCreateFlagsNN
Jesse Hallad250842017-03-10 18:35:38 -08003298//@extension("VK_NN_vi_surface") // 63
Jesse Hall77ad05b2017-03-10 22:02:20 -08003299//bitfield VkViSurfaceCreateFlagBitsNN {
3300//}
3301
Jesse Hallad250842017-03-10 18:35:38 -08003302@extension("VK_KHR_maintenance1") // 70
Jesse Hall77ad05b2017-03-10 22:02:20 -08003303type VkFlags VkCommandPoolTrimFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08003304//@extension("VK_KHR_maintenance1") // 70
Jesse Hall77ad05b2017-03-10 22:02:20 -08003305//bitfield VkCommandPoolTrimFlagBitsKHR {
3306//}
3307
Jesse Hall9492f992017-08-28 12:10:06 -07003308@extension("VK_KHR_external_memory_capabilities") // 72
3309type VkFlags VkExternalMemoryHandleTypeFlagsKHR
3310@extension("VK_KHR_external_memory_capabilities") // 72
3311bitfield VkExternalMemoryHandleTypeFlagBitsKHR {
3312 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = 0x00000001,
3313 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = 0x00000002,
3314 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = 0x00000004,
3315 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT_KHR = 0x00000008,
3316 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT_KHR = 0x00000010,
3317 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT_KHR = 0x00000020,
3318 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT_KHR = 0x00000040,
Jesse Hallad250842017-03-10 18:35:38 -08003319}
3320
Jesse Hall9492f992017-08-28 12:10:06 -07003321@extension("VK_KHR_external_memory_capabilities") // 72
3322type VkFlags VkExternalMemoryFeatureFlagsKHR
3323@extension("VK_KHR_external_memory_capabilities") // 72
3324bitfield VkExternalMemoryFeatureFlagBitsKHR {
3325 VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_KHR = 0x00000001,
3326 VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_KHR = 0x00000002,
3327 VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_KHR = 0x00000004,
Jesse Hallad250842017-03-10 18:35:38 -08003328}
3329
Jesse Hall9492f992017-08-28 12:10:06 -07003330@extension("VK_KHR_external_semaphore_capabilities") // 77
3331type VkFlags VkExternalSemaphoreHandleTypeFlagsKHR
3332@extension("VK_KHR_external_semaphore_capabilities") // 77
3333bitfield VkExternalSemaphoreHandleTypeFlagBitsKHR {
3334 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = 0x00000001
3335 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = 0x00000002
3336 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = 0x00000004
3337 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT_KHR = 0x00000008
3338 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_FENCE_FD_BIT_KHR = 0x00000010
Jesse Hallad250842017-03-10 18:35:38 -08003339}
3340
Jesse Hall9492f992017-08-28 12:10:06 -07003341@extension("VK_KHR_external_semaphore_capabilities") // 77
3342type VkFlags VkExternalSemaphoreFeatureFlagsKHR
3343@extension("VK_KHR_external_semaphore_capabilities") // 77
3344bitfield VkExternalSemaphoreFeatureFlagBitsKHR {
3345 VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT_KHR = 0x00000001,
3346 VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT_KHR = 0x00000002,
3347}
3348
3349@extension("VK_KHR_external_semaphore") // 78
3350type VkFlags VkSemaphoreImportFlagsKHR
3351@extension("VK_KHR_external_semaphore") // 78
3352bitfield VkSemaphoreImportFlagBitsKHR {
3353 VK_SEMAPHORE_IMPORT_TEMPORARY_BIT_KHR = 0x00000001,
Jesse Hallad250842017-03-10 18:35:38 -08003354}
3355
Jesse Halla13a3cf2018-07-09 15:51:52 -07003356@extension("VK_EXT_conditional_rendering") // 82
3357type VkFlags VkConditionalRenderingFlagsEXT
3358@extension("VK_EXT_conditional_rendering") // 82
3359bitfield VkConditionalRenderingFlagBitsEXT {
3360 VK_CONDITIONAL_RENDERING_INVERTED_BIT_EXT = 0x00000001,
3361}
3362
Jesse Hallad250842017-03-10 18:35:38 -08003363@extension("VK_KHR_descriptor_update_template") // 86
3364type VkFlags VkDescriptorUpdateTemplateCreateFlagsKHR
3365//@extension("VK_KHR_descriptor_update_template") // 86
3366//bitfield VkDescriptorUpdateTemplateCreateFlagBitsKHR {
3367//}
3368
3369@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13003370type VkFlags VkIndirectCommandsLayoutUsageFlagsNVX
Jesse Hallad250842017-03-10 18:35:38 -08003371@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13003372bitfield VkIndirectCommandsLayoutUsageFlagBitsNVX {
Jesse Halleb02c472017-02-24 15:13:45 -08003373 VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NVX = 0x00000001,
3374 VK_INDIRECT_COMMANDS_LAYOUT_USAGE_SPARSE_SEQUENCES_BIT_NVX = 0x00000002,
3375 VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EMPTY_EXECUTIONS_BIT_NVX = 0x00000004,
3376 VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NVX = 0x00000008,
Chris Forbes289cb792016-12-30 15:03:55 +13003377}
3378
Jesse Hallad250842017-03-10 18:35:38 -08003379@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13003380type VkFlags VkObjectEntryUsageFlagsNVX
Jesse Hallad250842017-03-10 18:35:38 -08003381@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13003382bitfield VkObjectEntryUsageFlagBitsNVX {
Jesse Halleb02c472017-02-24 15:13:45 -08003383 VK_OBJECT_ENTRY_USAGE_GRAPHICS_BIT_NVX = 0x00000001,
3384 VK_OBJECT_ENTRY_USAGE_COMPUTE_BIT_NVX = 0x00000002,
Chris Forbes289cb792016-12-30 15:03:55 +13003385}
3386
Jesse Hallad250842017-03-10 18:35:38 -08003387@extension("VK_EXT_display_surface_counter") // 91
Jesse Hall77ad05b2017-03-10 22:02:20 -08003388type VkFlags VkSurfaceCounterFlagsEXT
Jesse Hallad250842017-03-10 18:35:38 -08003389@extension("VK_EXT_display_surface_counter") // 91
Jesse Hall77ad05b2017-03-10 22:02:20 -08003390bitfield VkSurfaceCounterFlagBitsEXT {
3391 VK_SURFACE_COUNTER_VBLANK_EXT = 0x00000001,
3392}
3393
Jesse Hallad250842017-03-10 18:35:38 -08003394@extension("VK_NV_viewport_swizzle") // 99
3395type VkFlags VkPipelineViewportSwizzleStateCreateFlagsNV
3396//@extension("VK_NV_viewport_swizzle") // 99
3397//bitfield VkPipelineViewportSwizzleStateCreateFlagBitsNV {
3398//}
3399
3400@extension("VK_EXT_discard_rectangles") // 100
3401type VkFlags VkPipelineDiscardRectangleStateCreateFlagsEXT
3402//@extension("VK_EXT_discard_rectangles") // 100
3403//bitfield VkPipelineDiscardRectangleStateCreateFlagBitsEXT {
3404//}
3405
Jesse Hall8c954d32018-01-17 22:06:20 -08003406@extension("VK_EXT_conservative_rasterization") // 102
3407type VkFlags VkPipelineRasterizationConservativeStateCreateFlagsEXT
3408//@extension("VK_EXT_conservative_rasterization") // 102
3409//bitfield VkPipelineRasterizationConservativeStateCreateFlagBitsEXT {
3410//}
3411
Jesse Hall9492f992017-08-28 12:10:06 -07003412@extension("VK_KHR_external_fence_capabilities") // 113
3413type VkFlags VkExternalFenceHandleTypeFlagsKHR
3414@extension("VK_KHR_external_fence_capabilities") // 113
3415bitfield VkExternalFenceHandleTypeFlagBitsKHR {
3416 VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = 0x00000001,
3417 VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = 0x00000002,
3418 VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = 0x00000004,
3419 VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT_KHR = 0x00000008,
3420}
3421
3422@extension("VK_KHR_external_fence_capabilities") // 113
3423type VkFlags VkExternalFenceFeatureFlagsKHR
3424@extension("VK_KHR_external_fence_capabilities") // 113
3425bitfield VkExternalFenceFeatureFlagBitsKHR {
3426 VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT_KHR = 0x00000001,
3427 VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT_KHR = 0x00000002,
3428}
3429
3430@extension("VK_KHR_external_fence") // 114
3431type VkFlags VkFenceImportFlagsKHR
3432@extension("VK_KHR_external_fence") // 114
3433bitfield VkFenceImportFlagBitsKHR {
3434 VK_FENCE_IMPORT_TEMPORARY_BIT_KHR = 0x00000001,
3435}
3436
Jesse Hallad250842017-03-10 18:35:38 -08003437@extension("VK_MVK_ios_surface") // 123
3438type VkFlags VkIOSSurfaceCreateFlagsMVK
3439//@extension("VK_MVK_ios_surface") // 123
3440//bitfield VkIOSSurfaceCreateFlagBitsMVK {
3441//}
3442
3443@extension("VK_MVK_macos_surface") // 124
3444type VkFlags VkMacOSSurfaceCreateFlagsMVK
3445//@extension("VK_MVK_macos_surface") // 124
3446//bitfield VkMacOSSurfaceCreateFlagBitsMVK {
3447//}
3448
Jesse Hall8c954d32018-01-17 22:06:20 -08003449@extension("VK_EXT_debug_utils") // 129
3450type VkFlags VkDebugUtilsMessengerCallbackDataFlagsEXT
3451//@extension("VK_EXT_debug_utils") // 129
3452//bitfield VkDebugUtilsMessengerCallbackDataFlagBitsEXT {
3453//}
3454
3455@extension("VK_EXT_debug_utils") // 129
3456type VkFlags VkDebugUtilsMessengerCreateFlagsEXT
3457//@extension("VK_EXT_debug_utils") // 129
3458//bitfield VkDebugUtilsMessengerCreateFlagBitsEXT {
3459//}
3460
3461@extension("VK_EXT_debug_utils") // 129
3462type VkFlags VkDebugUtilsMessageSeverityFlagsEXT
3463@extension("VK_EXT_debug_utils") // 129
3464bitfield VkDebugUtilsMessageSeverityFlagBitsEXT {
3465 VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT = 0x00000001,
3466 VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT = 0x00000010,
3467 VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT = 0x00000100,
3468 VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT = 0x00001000,
3469}
3470
3471@extension("VK_EXT_debug_utils") // 129
3472type VkFlags VkDebugUtilsMessageTypeFlagsEXT
3473@extension("VK_EXT_debug_utils") // 129
3474bitfield VkDebugUtilsMessageTypeFlagBitsEXT {
3475 VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT = 0x00000001,
3476 VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT = 0x00000002,
3477 VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT = 0x00000004,
3478}
3479
Jesse Hall7ba0ac72017-07-07 17:13:23 -07003480@extension("VK_NV_fragment_coverage_to_color") // 150
3481type VkFlags VkPipelineCoverageToColorStateCreateFlagsNV
3482@extension("VK_NV_fragment_coverage_to_color") // 150
3483//bitfield VkPipelineCoverageToColorStateCreateFlagBitsNV {
3484//}
3485
3486@extension("VK_NV_framebuffer_mixed_samples") // 153
3487type VkFlags VkPipelineCoverageModulationStateCreateFlagsNV
3488@extension("VK_NV_framebuffer_mixed_samples") // 153
3489//bitfield VkPipelineCoverageModulationStateCreateFlagBitsNV {
3490//}
3491
Jesse Hall77726222017-09-19 14:49:27 -05003492@extension("VK_EXT_validation_cache") // 161
3493type VkFlags VkValidationCacheCreateFlagsEXT
3494@extension("VK_EXT_validation_cache") // 161
3495//bitfield VkValidationCacheCreateFlagBitsEXT {
3496//}
3497
Jesse Hall72e6a132018-04-06 13:00:44 -07003498@extension("VK_EXT_descriptor_indexing") // 162
3499type VkFlags VkDescriptorBindingFlagsEXT
3500@extension("VK_EXT_descriptor_indexing") // 162
3501bitfield VkDescriptorBindingFlagBitsEXT {
3502 VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT_EXT = 0x00000001,
3503 VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT_EXT = 0x00000002,
3504 VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT_EXT = 0x00000004,
3505 VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT_EXT = 0x00000008,
3506}
3507
Jesse Halla363a8e2018-11-05 21:18:00 -07003508@extension("VK_NV_raytracing") // 166
3509type VkFlags VkGeometryFlagsNV
3510@extension("VK_NV_raytracing") // 166
3511bitfield VkGeometryFlagBitsNV {
3512 VK_GEOMETRY_OPAQUE_BIT_NV = 0x00000001,
3513 VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_NV = 0x00000002,
Jesse Hallb5297192018-09-22 20:52:13 +02003514}
3515
Jesse Halla363a8e2018-11-05 21:18:00 -07003516@extension("VK_NV_raytracing") // 166
3517type VkFlags VkGeometryInstanceFlagsNV
3518@extension("VK_NV_raytracing") // 166
3519bitfield VkGeometryInstanceFlagBitsNV {
3520 VK_GEOMETRY_INSTANCE_TRIANGLE_CULL_DISABLE_BIT_NV = 0x00000001,
3521 VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_NV = 0x00000002,
3522 VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_NV = 0x00000004,
3523 VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_NV = 0x00000008,
Jesse Hallb5297192018-09-22 20:52:13 +02003524}
3525
Jesse Halla363a8e2018-11-05 21:18:00 -07003526@extension("VK_NV_raytracing") // 166
3527type VkFlags VkBuildAccelerationStructureFlagsNV
3528@extension("VK_NV_raytracing") // 166
3529bitfield VkBuildAccelerationStructureFlagBitsNV {
3530 VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_NV = 0x00000001,
3531 VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_NV = 0x00000002,
3532 VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_NV = 0x00000004,
3533 VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_NV = 0x00000008,
3534 VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_NV = 0x00000010,
Jesse Hallb5297192018-09-22 20:52:13 +02003535}
3536
Jesse Hall497c46f2018-10-08 12:52:48 -07003537@extension("VK_FUCHSIA_imagepipe_surface") // 215
3538type VkFlags VkImagePipeSurfaceCreateFlagsFUCHSIA
3539//@extension("VK_FUCHSIA_imagepipe_surface") // 215
3540//bitfield VkImagePipeSurfaceCreateFlagBitsFUCHSIA {
3541//}
3542
Jesse Halld27f6aa2015-08-15 17:58:48 -07003543//////////////////
3544// Structures //
3545//////////////////
3546
3547class VkOffset2D {
3548 s32 x
3549 s32 y
3550}
3551
3552class VkOffset3D {
3553 s32 x
3554 s32 y
3555 s32 z
3556}
3557
3558class VkExtent2D {
Jesse Hall3dd678a2016-01-08 21:52:01 -08003559 u32 width
3560 u32 height
Jesse Halld27f6aa2015-08-15 17:58:48 -07003561}
3562
3563class VkExtent3D {
Jesse Hall3dd678a2016-01-08 21:52:01 -08003564 u32 width
3565 u32 height
3566 u32 depth
Jesse Halld27f6aa2015-08-15 17:58:48 -07003567}
3568
3569class VkViewport {
Jesse Hall65ab5522015-11-30 00:07:16 -08003570 f32 x
3571 f32 y
Jesse Halld27f6aa2015-08-15 17:58:48 -07003572 f32 width
3573 f32 height
3574 f32 minDepth
3575 f32 maxDepth
3576}
3577
3578class VkRect2D {
3579 VkOffset2D offset
3580 VkExtent2D extent
3581}
3582
Jesse Halla15a4bf2015-11-19 22:48:02 -08003583class VkClearRect {
3584 VkRect2D rect
3585 u32 baseArrayLayer
Jesse Hall3fbc8562015-11-29 22:10:52 -08003586 u32 layerCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07003587}
3588
Jesse Hall65ab5522015-11-30 00:07:16 -08003589class VkComponentMapping {
3590 VkComponentSwizzle r
3591 VkComponentSwizzle g
3592 VkComponentSwizzle b
3593 VkComponentSwizzle a
Jesse Halld27f6aa2015-08-15 17:58:48 -07003594}
3595
3596class VkPhysicalDeviceProperties {
3597 u32 apiVersion
3598 u32 driverVersion
Jesse Hall65ab5522015-11-30 00:07:16 -08003599 u32 vendorID
3600 u32 deviceID
Jesse Halld27f6aa2015-08-15 17:58:48 -07003601 VkPhysicalDeviceType deviceType
Jesse Hall65ab5522015-11-30 00:07:16 -08003602 char[VK_MAX_PHYSICAL_DEVICE_NAME_SIZE] deviceName
3603 u8[VK_UUID_SIZE] pipelineCacheUUID
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003604 VkPhysicalDeviceLimits limits
3605 VkPhysicalDeviceSparseProperties sparseProperties
Jesse Halld27f6aa2015-08-15 17:58:48 -07003606}
3607
3608class VkExtensionProperties {
Jesse Hall65ab5522015-11-30 00:07:16 -08003609 char[VK_MAX_EXTENSION_NAME_SIZE] extensionName /// extension name
Jesse Halld27f6aa2015-08-15 17:58:48 -07003610 u32 specVersion /// version of the extension specification implemented
3611}
3612
3613class VkLayerProperties {
Jesse Hall65ab5522015-11-30 00:07:16 -08003614 char[VK_MAX_EXTENSION_NAME_SIZE] layerName /// layer name
Jesse Hall3fbc8562015-11-29 22:10:52 -08003615 u32 specVersion /// version of the layer specification implemented
3616 u32 implementationVersion /// build or release version of the layer's library
Jesse Hall65ab5522015-11-30 00:07:16 -08003617 char[VK_MAX_DESCRIPTION_SIZE] description /// Free-form description of the layer
Jesse Halld27f6aa2015-08-15 17:58:48 -07003618}
3619
Jesse Halla366a512015-11-19 22:30:07 -08003620class VkSubmitInfo {
Jesse Hall03b6fe12015-11-24 12:44:21 -08003621 VkStructureType sType /// Type of structure. Should be VK_STRUCTURE_TYPE_SUBMIT_INFO
3622 const void* pNext /// Next structure in chain
3623 u32 waitSemaphoreCount
Jesse Halla366a512015-11-19 22:30:07 -08003624 const VkSemaphore* pWaitSemaphores
Jesse Hall543a7ff2016-01-08 16:38:30 -08003625 const VkPipelineStageFlags* pWaitDstStageMask
Jesse Hall03b6fe12015-11-24 12:44:21 -08003626 u32 commandBufferCount
Jesse Hall3fbc8562015-11-29 22:10:52 -08003627 const VkCommandBuffer* pCommandBuffers
Jesse Hall03b6fe12015-11-24 12:44:21 -08003628 u32 signalSemaphoreCount
Jesse Halla366a512015-11-19 22:30:07 -08003629 const VkSemaphore* pSignalSemaphores
3630}
3631
Jesse Halld27f6aa2015-08-15 17:58:48 -07003632class VkApplicationInfo {
3633 VkStructureType sType /// Type of structure. Should be VK_STRUCTURE_TYPE_APPLICATION_INFO
3634 const void* pNext /// Next structure in chain
Jesse Hall3fbc8562015-11-29 22:10:52 -08003635 const char* pApplicationName
3636 u32 applicationVersion
Jesse Halld27f6aa2015-08-15 17:58:48 -07003637 const char* pEngineName
3638 u32 engineVersion
3639 u32 apiVersion
3640}
3641
Jesse Hall3fbc8562015-11-29 22:10:52 -08003642class VkAllocationCallbacks {
Jesse Halld27f6aa2015-08-15 17:58:48 -07003643 void* pUserData
Jesse Hall3fbc8562015-11-29 22:10:52 -08003644 PFN_vkAllocationFunction pfnAllocation
3645 PFN_vkReallocationFunction pfnReallocation
Jesse Halld27f6aa2015-08-15 17:58:48 -07003646 PFN_vkFreeFunction pfnFree
Jesse Hall3fbc8562015-11-29 22:10:52 -08003647 PFN_vkInternalAllocationNotification pfnInternalAllocation
Jesse Hall03b6fe12015-11-24 12:44:21 -08003648 PFN_vkInternalFreeNotification pfnInternalFree
Jesse Halld27f6aa2015-08-15 17:58:48 -07003649}
3650
3651class VkDeviceQueueCreateInfo {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003652 VkStructureType sStype /// Should be VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO
3653 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003654 VkDeviceQueueCreateFlags flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07003655 u32 queueFamilyIndex
Jesse Halldba27f72015-11-30 14:25:46 -08003656 u32 queueCount
Jesse Hallfbf97b02015-11-20 14:17:03 -08003657 const f32* pQueuePriorities
Jesse Halld27f6aa2015-08-15 17:58:48 -07003658}
3659
3660class VkDeviceCreateInfo {
3661 VkStructureType sType /// Should be VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO
3662 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003663 VkDeviceCreateFlags flags
Jesse Halldba27f72015-11-30 14:25:46 -08003664 u32 queueCreateInfoCount
3665 const VkDeviceQueueCreateInfo* pQueueCreateInfos
Jesse Hall3dd678a2016-01-08 21:52:01 -08003666 u32 enabledLayerCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07003667 const char* const* ppEnabledLayerNames /// Ordered list of layer names to be enabled
Jesse Hall3dd678a2016-01-08 21:52:01 -08003668 u32 enabledExtensionCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07003669 const char* const* ppEnabledExtensionNames
3670 const VkPhysicalDeviceFeatures* pEnabledFeatures
Jesse Halld27f6aa2015-08-15 17:58:48 -07003671}
3672
3673class VkInstanceCreateInfo {
3674 VkStructureType sType /// Should be VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO
3675 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003676 VkInstanceCreateFlags flags
Jesse Hall3fbc8562015-11-29 22:10:52 -08003677 const VkApplicationInfo* pApplicationInfo
Jesse Hall3dd678a2016-01-08 21:52:01 -08003678 u32 enabledLayerCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07003679 const char* const* ppEnabledLayerNames /// Ordered list of layer names to be enabled
Jesse Hall3dd678a2016-01-08 21:52:01 -08003680 u32 enabledExtensionCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07003681 const char* const* ppEnabledExtensionNames /// Extension names to be enabled
3682}
3683
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003684class VkQueueFamilyProperties {
Jesse Halld27f6aa2015-08-15 17:58:48 -07003685 VkQueueFlags queueFlags /// Queue flags
3686 u32 queueCount
Jesse Hallacfa5342015-11-19 21:51:33 -08003687 u32 timestampValidBits
Jesse Hall65ab5522015-11-30 00:07:16 -08003688 VkExtent3D minImageTransferGranularity
Jesse Halld27f6aa2015-08-15 17:58:48 -07003689}
3690
3691class VkPhysicalDeviceMemoryProperties {
3692 u32 memoryTypeCount
3693 VkMemoryType[VK_MAX_MEMORY_TYPES] memoryTypes
3694 u32 memoryHeapCount
3695 VkMemoryHeap[VK_MAX_MEMORY_HEAPS] memoryHeaps
3696}
3697
Jesse Hall3fbc8562015-11-29 22:10:52 -08003698class VkMemoryAllocateInfo {
Jesse Hallf4ab2b12015-11-30 16:04:55 -08003699 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO
Jesse Halld27f6aa2015-08-15 17:58:48 -07003700 const void* pNext /// Pointer to next structure
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003701 VkDeviceSize allocationSize /// Size of memory allocation
Jesse Halld27f6aa2015-08-15 17:58:48 -07003702 u32 memoryTypeIndex /// Index of the of the memory type to allocate from
3703}
3704
3705class VkMemoryRequirements {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003706 VkDeviceSize size /// Specified in bytes
3707 VkDeviceSize alignment /// Specified in bytes
Jesse Halld27f6aa2015-08-15 17:58:48 -07003708 u32 memoryTypeBits /// Bitfield of the allowed memory type indices into memoryTypes[] for this object
3709}
3710
3711class VkSparseImageFormatProperties {
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08003712 VkImageAspectFlagBits aspectMask
Jesse Halld27f6aa2015-08-15 17:58:48 -07003713 VkExtent3D imageGranularity
3714 VkSparseImageFormatFlags flags
3715}
3716
3717class VkSparseImageMemoryRequirements {
Jesse Hallb00daad2015-11-29 19:46:20 -08003718 VkSparseImageFormatProperties formatProperties
Jesse Hallf9fa9a52016-01-08 16:08:51 -08003719 u32 imageMipTailFirstLod
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003720 VkDeviceSize imageMipTailSize /// Specified in bytes, must be a multiple of image block size / alignment
3721 VkDeviceSize imageMipTailOffset /// Specified in bytes, must be a multiple of image block size / alignment
3722 VkDeviceSize imageMipTailStride /// Specified in bytes, must be a multiple of image block size / alignment
Jesse Halld27f6aa2015-08-15 17:58:48 -07003723}
3724
3725class VkMemoryType {
3726 VkMemoryPropertyFlags propertyFlags /// Memory properties of this memory type
3727 u32 heapIndex /// Index of the memory heap allocations of this memory type are taken from
3728}
3729
3730class VkMemoryHeap {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003731 VkDeviceSize size /// Available memory in the heap
Jesse Halld27f6aa2015-08-15 17:58:48 -07003732 VkMemoryHeapFlags flags /// Flags for the heap
3733}
3734
3735class VkMappedMemoryRange {
3736 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE
3737 const void* pNext /// Pointer to next structure
Jesse Hall3fbc8562015-11-29 22:10:52 -08003738 VkDeviceMemory memory /// Mapped memory object
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003739 VkDeviceSize offset /// Offset within the mapped memory the range starts from
3740 VkDeviceSize size /// Size of the range within the mapped memory
Jesse Halld27f6aa2015-08-15 17:58:48 -07003741}
3742
3743class VkFormatProperties {
3744 VkFormatFeatureFlags linearTilingFeatures /// Format features in case of linear tiling
3745 VkFormatFeatureFlags optimalTilingFeatures /// Format features in case of optimal tiling
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003746 VkFormatFeatureFlags bufferFeatures /// Format features supported by buffers
Jesse Halld27f6aa2015-08-15 17:58:48 -07003747}
3748
3749class VkImageFormatProperties {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003750 VkExtent3D maxExtent /// max image dimensions for this resource type
3751 u32 maxMipLevels /// max number of mipmap levels for this resource type
Jesse Halla15a4bf2015-11-19 22:48:02 -08003752 u32 maxArrayLayers /// max array layers for this resource type
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003753 VkSampleCountFlags sampleCounts /// supported sample counts for this resource type
3754 VkDeviceSize maxResourceSize /// max size (in bytes) of this resource type
3755}
3756
Jesse Halla15a4bf2015-11-19 22:48:02 -08003757class VkDescriptorImageInfo {
3758 VkSampler sampler
3759 VkImageView imageView
3760 VkImageLayout imageLayout
3761}
3762
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003763class VkDescriptorBufferInfo {
3764 VkBuffer buffer /// Buffer used for this descriptor when the descriptor is UNIFORM_BUFFER[_DYNAMIC]
3765 VkDeviceSize offset /// Base offset from buffer start in bytes to update in the descriptor set.
3766 VkDeviceSize range /// Size in bytes of the buffer resource for this descriptor update.
Jesse Halld27f6aa2015-08-15 17:58:48 -07003767}
3768
Jesse Halld27f6aa2015-08-15 17:58:48 -07003769class VkWriteDescriptorSet {
3770 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET
3771 const void* pNext /// Pointer to next structure
Jesse Hall3fbc8562015-11-29 22:10:52 -08003772 VkDescriptorSet dstSet /// Destination descriptor set
3773 u32 dstBinding /// Binding within the destination descriptor set to write
3774 u32 dstArrayElement /// Array element within the destination binding to write
Jesse Hall03b6fe12015-11-24 12:44:21 -08003775 u32 descriptorCount /// Number of descriptors to write (determines the size of the array pointed by <pDescriptors>)
Jesse Halld27f6aa2015-08-15 17:58:48 -07003776 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 -08003777 const VkDescriptorImageInfo* pImageInfo
3778 const VkDescriptorBufferInfo* pBufferInfo
3779 const VkBufferView* pTexelBufferView
Jesse Halld27f6aa2015-08-15 17:58:48 -07003780}
3781
3782class VkCopyDescriptorSet {
3783 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET
3784 const void* pNext /// Pointer to next structure
3785 VkDescriptorSet srcSet /// Source descriptor set
3786 u32 srcBinding /// Binding within the source descriptor set to copy from
3787 u32 srcArrayElement /// Array element within the source binding to copy from
Jesse Hall3fbc8562015-11-29 22:10:52 -08003788 VkDescriptorSet dstSet /// Destination descriptor set
3789 u32 dstBinding /// Binding within the destination descriptor set to copy to
3790 u32 dstArrayElement /// Array element within the destination binding to copy to
Jesse Hall03b6fe12015-11-24 12:44:21 -08003791 u32 descriptorCount /// Number of descriptors to copy
Jesse Halld27f6aa2015-08-15 17:58:48 -07003792}
3793
3794class VkBufferCreateInfo {
3795 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO
3796 const void* pNext /// Pointer to next structure.
Jesse Halla6429252015-11-29 18:59:42 -08003797 VkBufferCreateFlags flags /// Buffer creation flags
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003798 VkDeviceSize size /// Specified in bytes
Jesse Halld27f6aa2015-08-15 17:58:48 -07003799 VkBufferUsageFlags usage /// Buffer usage flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07003800 VkSharingMode sharingMode
Jesse Hall03b6fe12015-11-24 12:44:21 -08003801 u32 queueFamilyIndexCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07003802 const u32* pQueueFamilyIndices
3803}
3804
3805class VkBufferViewCreateInfo {
3806 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO
3807 const void* pNext /// Pointer to next structure.
Jesse Halla6429252015-11-29 18:59:42 -08003808 VkBufferViewCreateFlags flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07003809 VkBuffer buffer
Jesse Halld27f6aa2015-08-15 17:58:48 -07003810 VkFormat format /// Optionally specifies format of elements
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003811 VkDeviceSize offset /// Specified in bytes
3812 VkDeviceSize range /// View size specified in bytes
Jesse Halld27f6aa2015-08-15 17:58:48 -07003813}
3814
3815class VkImageSubresource {
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08003816 VkImageAspectFlagBits aspectMask
Jesse Halld27f6aa2015-08-15 17:58:48 -07003817 u32 mipLevel
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003818 u32 arrayLayer
Jesse Halld27f6aa2015-08-15 17:58:48 -07003819}
3820
3821class VkImageSubresourceRange {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003822 VkImageAspectFlags aspectMask
Jesse Halld27f6aa2015-08-15 17:58:48 -07003823 u32 baseMipLevel
Jesse Hall3fbc8562015-11-29 22:10:52 -08003824 u32 levelCount
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003825 u32 baseArrayLayer
Jesse Hall3fbc8562015-11-29 22:10:52 -08003826 u32 layerCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07003827}
3828
3829class VkMemoryBarrier {
3830 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_MEMORY_BARRIER
3831 const void* pNext /// Pointer to next structure.
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08003832 VkAccessFlags srcAccessMask
3833 VkAccessFlags dstAccessMask
Jesse Halld27f6aa2015-08-15 17:58:48 -07003834}
3835
3836class VkBufferMemoryBarrier {
3837 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER
3838 const void* pNext /// Pointer to next structure.
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08003839 VkAccessFlags srcAccessMask
3840 VkAccessFlags dstAccessMask
Jesse Halld27f6aa2015-08-15 17:58:48 -07003841 u32 srcQueueFamilyIndex /// Queue family to transition ownership from
Jesse Hall3fbc8562015-11-29 22:10:52 -08003842 u32 dstQueueFamilyIndex /// Queue family to transition ownership to
Jesse Halld27f6aa2015-08-15 17:58:48 -07003843 VkBuffer buffer /// Buffer to sync
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003844 VkDeviceSize offset /// Offset within the buffer to sync
3845 VkDeviceSize size /// Amount of bytes to sync
Jesse Halld27f6aa2015-08-15 17:58:48 -07003846}
3847
3848class VkImageMemoryBarrier {
3849 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER
3850 const void* pNext /// Pointer to next structure.
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08003851 VkAccessFlags srcAccessMask
3852 VkAccessFlags dstAccessMask
Jesse Halld27f6aa2015-08-15 17:58:48 -07003853 VkImageLayout oldLayout /// Current layout of the image
3854 VkImageLayout newLayout /// New layout to transition the image to
3855 u32 srcQueueFamilyIndex /// Queue family to transition ownership from
Jesse Hall3fbc8562015-11-29 22:10:52 -08003856 u32 dstQueueFamilyIndex /// Queue family to transition ownership to
Jesse Halld27f6aa2015-08-15 17:58:48 -07003857 VkImage image /// Image to sync
3858 VkImageSubresourceRange subresourceRange /// Subresource range to sync
3859}
3860
3861class VkImageCreateInfo {
3862 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO
3863 const void* pNext /// Pointer to next structure.
Jesse Halla6429252015-11-29 18:59:42 -08003864 VkImageCreateFlags flags /// Image creation flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07003865 VkImageType imageType
3866 VkFormat format
3867 VkExtent3D extent
3868 u32 mipLevels
Jesse Halla15a4bf2015-11-19 22:48:02 -08003869 u32 arrayLayers
Jesse Hall091ed9e2015-11-30 00:55:29 -08003870 VkSampleCountFlagBits samples
Jesse Halld27f6aa2015-08-15 17:58:48 -07003871 VkImageTiling tiling
3872 VkImageUsageFlags usage /// Image usage flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07003873 VkSharingMode sharingMode /// Cross-queue-family sharing mode
Jesse Hall03b6fe12015-11-24 12:44:21 -08003874 u32 queueFamilyIndexCount /// Number of queue families to share across
Jesse Halld27f6aa2015-08-15 17:58:48 -07003875 const u32* pQueueFamilyIndices /// Array of queue family indices to share across
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003876 VkImageLayout initialLayout /// Initial image layout for all subresources
Jesse Halld27f6aa2015-08-15 17:58:48 -07003877}
3878
3879class VkSubresourceLayout {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003880 VkDeviceSize offset /// Specified in bytes
3881 VkDeviceSize size /// Specified in bytes
3882 VkDeviceSize rowPitch /// Specified in bytes
Jesse Hall543a7ff2016-01-08 16:38:30 -08003883 VkDeviceSize arrayPitch /// Specified in bytes
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003884 VkDeviceSize depthPitch /// Specified in bytes
Jesse Halld27f6aa2015-08-15 17:58:48 -07003885}
3886
3887class VkImageViewCreateInfo {
3888 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO
3889 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003890 VkImageViewCreateFlags flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07003891 VkImage image
3892 VkImageViewType viewType
3893 VkFormat format
Jesse Hall65ab5522015-11-30 00:07:16 -08003894 VkComponentMapping components
Jesse Halld27f6aa2015-08-15 17:58:48 -07003895 VkImageSubresourceRange subresourceRange
Jesse Halld27f6aa2015-08-15 17:58:48 -07003896}
3897
3898class VkBufferCopy {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003899 VkDeviceSize srcOffset /// Specified in bytes
Jesse Hall3fbc8562015-11-29 22:10:52 -08003900 VkDeviceSize dstOffset /// Specified in bytes
Jesse Hallb00daad2015-11-29 19:46:20 -08003901 VkDeviceSize size /// Specified in bytes
Jesse Halld27f6aa2015-08-15 17:58:48 -07003902}
3903
Jesse Halla6429252015-11-29 18:59:42 -08003904class VkSparseMemoryBind {
Jesse Hallb00daad2015-11-29 19:46:20 -08003905 VkDeviceSize resourceOffset /// Specified in bytes
3906 VkDeviceSize size /// Specified in bytes
Jesse Hall3fbc8562015-11-29 22:10:52 -08003907 VkDeviceMemory memory
3908 VkDeviceSize memoryOffset /// Specified in bytes
Jesse Halld27f6aa2015-08-15 17:58:48 -07003909 VkSparseMemoryBindFlags flags
3910}
3911
Jesse Halla6429252015-11-29 18:59:42 -08003912class VkSparseImageMemoryBind {
Jesse Halld27f6aa2015-08-15 17:58:48 -07003913 VkImageSubresource subresource
3914 VkOffset3D offset
3915 VkExtent3D extent
Jesse Hall3fbc8562015-11-29 22:10:52 -08003916 VkDeviceMemory memory
3917 VkDeviceSize memoryOffset /// Specified in bytes
Jesse Halld27f6aa2015-08-15 17:58:48 -07003918 VkSparseMemoryBindFlags flags
3919}
3920
Jesse Halla6429252015-11-29 18:59:42 -08003921class VkSparseBufferMemoryBindInfo {
3922 VkBuffer buffer
3923 u32 bindCount
3924 const VkSparseMemoryBind* pBinds
3925}
3926
3927class VkSparseImageOpaqueMemoryBindInfo {
3928 VkImage image
3929 u32 bindCount
3930 const VkSparseMemoryBind* pBinds
3931}
3932
3933class VkSparseImageMemoryBindInfo {
3934 VkImage image
3935 u32 bindCount
3936 const VkSparseMemoryBind* pBinds
3937}
3938
3939class VkBindSparseInfo {
3940 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_BIND_SPARSE_INFO
3941 const void* pNext
3942 u32 waitSemaphoreCount
3943 const VkSemaphore* pWaitSemaphores
3944 u32 numBufferBinds
3945 const VkSparseBufferMemoryBindInfo* pBufferBinds
3946 u32 numImageOpaqueBinds
3947 const VkSparseImageOpaqueMemoryBindInfo* pImageOpaqueBinds
3948 u32 numImageBinds
3949 const VkSparseImageMemoryBindInfo* pImageBinds
3950 u32 signalSemaphoreCount
3951 const VkSemaphore* pSignalSemaphores
3952}
3953
Jesse Hall65ab5522015-11-30 00:07:16 -08003954class VkImageSubresourceLayers {
3955 VkImageAspectFlags aspectMask
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003956 u32 mipLevel
Jesse Halla15a4bf2015-11-19 22:48:02 -08003957 u32 baseArrayLayer
Jesse Hall3fbc8562015-11-29 22:10:52 -08003958 u32 layerCount
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003959}
3960
Jesse Halld27f6aa2015-08-15 17:58:48 -07003961class VkImageCopy {
Jesse Hall65ab5522015-11-30 00:07:16 -08003962 VkImageSubresourceLayers srcSubresource
Jesse Halld27f6aa2015-08-15 17:58:48 -07003963 VkOffset3D srcOffset /// Specified in pixels for both compressed and uncompressed images
Jesse Hall65ab5522015-11-30 00:07:16 -08003964 VkImageSubresourceLayers dstSubresource
Jesse Hall3fbc8562015-11-29 22:10:52 -08003965 VkOffset3D dstOffset /// Specified in pixels for both compressed and uncompressed images
Jesse Halld27f6aa2015-08-15 17:58:48 -07003966 VkExtent3D extent /// Specified in pixels for both compressed and uncompressed images
3967}
3968
3969class VkImageBlit {
Jesse Hall65ab5522015-11-30 00:07:16 -08003970 VkImageSubresourceLayers srcSubresource
Jesse Hall3dd678a2016-01-08 21:52:01 -08003971 VkOffset3D[2] srcOffsets
Jesse Hall65ab5522015-11-30 00:07:16 -08003972 VkImageSubresourceLayers dstSubresource
Jesse Hall3dd678a2016-01-08 21:52:01 -08003973 VkOffset3D[2] dstOffsets
Jesse Halld27f6aa2015-08-15 17:58:48 -07003974}
3975
3976class VkBufferImageCopy {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003977 VkDeviceSize bufferOffset /// Specified in bytes
Jesse Halld27f6aa2015-08-15 17:58:48 -07003978 u32 bufferRowLength /// Specified in texels
3979 u32 bufferImageHeight
Jesse Hall65ab5522015-11-30 00:07:16 -08003980 VkImageSubresourceLayers imageSubresource
Jesse Halld27f6aa2015-08-15 17:58:48 -07003981 VkOffset3D imageOffset /// Specified in pixels for both compressed and uncompressed images
3982 VkExtent3D imageExtent /// Specified in pixels for both compressed and uncompressed images
3983}
3984
3985class VkImageResolve {
Jesse Hall65ab5522015-11-30 00:07:16 -08003986 VkImageSubresourceLayers srcSubresource
Jesse Halld27f6aa2015-08-15 17:58:48 -07003987 VkOffset3D srcOffset
Jesse Hall65ab5522015-11-30 00:07:16 -08003988 VkImageSubresourceLayers dstSubresource
Jesse Hall3fbc8562015-11-29 22:10:52 -08003989 VkOffset3D dstOffset
Jesse Halld27f6aa2015-08-15 17:58:48 -07003990 VkExtent3D extent
3991}
3992
3993class VkShaderModuleCreateInfo {
3994 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO
3995 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003996 VkShaderModuleCreateFlags flags /// Reserved
Jesse Halld27f6aa2015-08-15 17:58:48 -07003997 platform.size_t codeSize /// Specified in bytes
Jesse Halla9bb62b2015-11-21 19:31:56 -08003998 const u32* pCode /// Binary code of size codeSize
Jesse Halld27f6aa2015-08-15 17:58:48 -07003999}
4000
Jesse Halld27f6aa2015-08-15 17:58:48 -07004001class VkDescriptorSetLayoutBinding {
Jesse Hall091ed9e2015-11-30 00:55:29 -08004002 u32 binding
Jesse Halld27f6aa2015-08-15 17:58:48 -07004003 VkDescriptorType descriptorType /// Type of the descriptors in this binding
Jesse Halldba27f72015-11-30 14:25:46 -08004004 u32 descriptorCount /// Number of descriptors in this binding
Jesse Halld27f6aa2015-08-15 17:58:48 -07004005 VkShaderStageFlags stageFlags /// Shader stages this binding is visible to
4006 const VkSampler* pImmutableSamplers /// Immutable samplers (used if descriptor type is SAMPLER or COMBINED_IMAGE_SAMPLER, is either NULL or contains <count> number of elements)
4007}
4008
4009class VkDescriptorSetLayoutCreateInfo {
4010 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO
4011 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08004012 VkDescriptorSetLayoutCreateFlags flags
Jesse Hall03b6fe12015-11-24 12:44:21 -08004013 u32 bindingCount /// Number of bindings in the descriptor set layout
Jesse Hall543a7ff2016-01-08 16:38:30 -08004014 const VkDescriptorSetLayoutBinding* pBindings /// Array of descriptor set layout bindings
Jesse Halld27f6aa2015-08-15 17:58:48 -07004015}
4016
Jesse Hall65ab5522015-11-30 00:07:16 -08004017class VkDescriptorPoolSize {
Jesse Halld27f6aa2015-08-15 17:58:48 -07004018 VkDescriptorType type
Jesse Hall03b6fe12015-11-24 12:44:21 -08004019 u32 descriptorCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07004020}
4021
4022class VkDescriptorPoolCreateInfo {
4023 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO
4024 const void* pNext /// Pointer to next structure
Jesse Hallfbf97b02015-11-20 14:17:03 -08004025 VkDescriptorPoolCreateFlags flags
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004026 u32 maxSets
Jesse Hall65ab5522015-11-30 00:07:16 -08004027 u32 poolSizeCount
4028 const VkDescriptorPoolSize* pPoolSizes
Jesse Halld27f6aa2015-08-15 17:58:48 -07004029}
4030
Jesse Hall3fbc8562015-11-29 22:10:52 -08004031class VkDescriptorSetAllocateInfo {
Jesse Hallf4ab2b12015-11-30 16:04:55 -08004032 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO
Jesse Hallfbf97b02015-11-20 14:17:03 -08004033 const void* pNext /// Pointer to next structure
4034 VkDescriptorPool descriptorPool
Jesse Hall03b6fe12015-11-24 12:44:21 -08004035 u32 setCount
Jesse Hallfbf97b02015-11-20 14:17:03 -08004036 const VkDescriptorSetLayout* pSetLayouts
4037}
4038
Jesse Halld27f6aa2015-08-15 17:58:48 -07004039class VkSpecializationMapEntry {
Jesse Hall65ab5522015-11-30 00:07:16 -08004040 u32 constantID /// The SpecConstant ID specified in the BIL
Jesse Halld27f6aa2015-08-15 17:58:48 -07004041 u32 offset /// Offset of the value in the data block
Jesse Hallb00daad2015-11-29 19:46:20 -08004042 platform.size_t size /// Size in bytes of the SpecConstant
Jesse Halld27f6aa2015-08-15 17:58:48 -07004043}
4044
4045class VkSpecializationInfo {
4046 u32 mapEntryCount /// Number of entries in the map
Jesse Hallb00daad2015-11-29 19:46:20 -08004047 const VkSpecializationMapEntry* pMapEntries /// Array of map entries
Jesse Halld27f6aa2015-08-15 17:58:48 -07004048 platform.size_t dataSize /// Size in bytes of pData
4049 const void* pData /// Pointer to SpecConstant data
4050}
4051
4052class VkPipelineShaderStageCreateInfo {
4053 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO
4054 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08004055 VkPipelineShaderStageCreateFlags flags
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08004056 VkShaderStageFlagBits stage
4057 VkShaderModule module
4058 const char* pName
Jesse Halld27f6aa2015-08-15 17:58:48 -07004059 const VkSpecializationInfo* pSpecializationInfo
4060}
4061
4062class VkComputePipelineCreateInfo {
4063 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO
4064 const void* pNext /// Pointer to next structure
Jesse Halld27f6aa2015-08-15 17:58:48 -07004065 VkPipelineCreateFlags flags /// Pipeline creation flags
Jesse Halla6429252015-11-29 18:59:42 -08004066 VkPipelineShaderStageCreateInfo stage
Jesse Halld27f6aa2015-08-15 17:58:48 -07004067 VkPipelineLayout layout /// Interface layout of the pipeline
4068 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
4069 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
4070}
4071
4072class VkVertexInputBindingDescription {
Jesse Hallb00daad2015-11-29 19:46:20 -08004073 u32 binding /// Vertex buffer binding id
4074 u32 stride /// Distance between vertices in bytes (0 = no advancement)
Jesse Hall65ab5522015-11-30 00:07:16 -08004075 VkVertexInputRate inputRate /// Rate at which binding is incremented
Jesse Halld27f6aa2015-08-15 17:58:48 -07004076}
4077
4078class VkVertexInputAttributeDescription {
Jesse Hallb00daad2015-11-29 19:46:20 -08004079 u32 location /// location of the shader vertex attrib
4080 u32 binding /// Vertex buffer binding id
4081 VkFormat format /// format of source data
4082 u32 offset /// Offset of first element in bytes from base of vertex
Jesse Halld27f6aa2015-08-15 17:58:48 -07004083}
4084
4085class VkPipelineVertexInputStateCreateInfo {
Jesse Hall03b6fe12015-11-24 12:44:21 -08004086 VkStructureType sType /// Should be VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO
4087 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08004088 VkPipelineVertexInputStateCreateFlags flags
Jesse Hall03b6fe12015-11-24 12:44:21 -08004089 u32 vertexBindingDescriptionCount /// number of bindings
Jesse Halld27f6aa2015-08-15 17:58:48 -07004090 const VkVertexInputBindingDescription* pVertexBindingDescriptions
Jesse Hall03b6fe12015-11-24 12:44:21 -08004091 u32 vertexAttributeDescriptionCount /// number of attributes
Jesse Halld27f6aa2015-08-15 17:58:48 -07004092 const VkVertexInputAttributeDescription* pVertexAttributeDescriptions
4093}
4094
4095class VkPipelineInputAssemblyStateCreateInfo {
4096 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO
4097 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08004098 VkPipelineInputAssemblyStateCreateFlags flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07004099 VkPrimitiveTopology topology
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004100 VkBool32 primitiveRestartEnable
Jesse Halld27f6aa2015-08-15 17:58:48 -07004101}
4102
4103class VkPipelineTessellationStateCreateInfo {
4104 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO
4105 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08004106 VkPipelineTessellationStateCreateFlags flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07004107 u32 patchControlPoints
4108}
4109
4110class VkPipelineViewportStateCreateInfo {
4111 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO
4112 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08004113 VkPipelineViewportStateCreateFlags flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07004114 u32 viewportCount
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004115 const VkViewport* pViewports
4116 u32 scissorCount
4117 const VkRect2D* pScissors
Jesse Halld27f6aa2015-08-15 17:58:48 -07004118}
4119
Jesse Hall3fbc8562015-11-29 22:10:52 -08004120class VkPipelineRasterizationStateCreateInfo {
Jesse Hall65ab5522015-11-30 00:07:16 -08004121 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO
Jesse Halld27f6aa2015-08-15 17:58:48 -07004122 const void* pNext /// Pointer to next structure
Jesse Hall3fbc8562015-11-29 22:10:52 -08004123 VkPipelineRasterizationStateCreateFlags flags
Jesse Hallae38f732015-11-19 21:32:50 -08004124 VkBool32 depthClampEnable
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004125 VkBool32 rasterizerDiscardEnable
Jesse Hall65ab5522015-11-30 00:07:16 -08004126 VkPolygonMode polygonMode /// optional (GL45)
Jesse Hallc7467b72015-11-29 21:05:26 -08004127 VkCullModeFlags cullMode
Jesse Halld27f6aa2015-08-15 17:58:48 -07004128 VkFrontFace frontFace
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004129 VkBool32 depthBiasEnable
Jesse Halla9bb62b2015-11-21 19:31:56 -08004130 f32 depthBiasConstantFactor
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004131 f32 depthBiasClamp
Jesse Halla9bb62b2015-11-21 19:31:56 -08004132 f32 depthBiasSlopeFactor
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004133 f32 lineWidth
Jesse Halld27f6aa2015-08-15 17:58:48 -07004134}
4135
4136class VkPipelineMultisampleStateCreateInfo {
4137 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO
4138 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08004139 VkPipelineMultisampleStateCreateFlags flags
Jesse Hall091ed9e2015-11-30 00:55:29 -08004140 VkSampleCountFlagBits rasterizationSamples /// Number of samples used for rasterization
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004141 VkBool32 sampleShadingEnable /// optional (GL45)
Jesse Halld27f6aa2015-08-15 17:58:48 -07004142 f32 minSampleShading /// optional (GL45)
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004143 const VkSampleMask* pSampleMask
Jesse Hallacfa5342015-11-19 21:51:33 -08004144 VkBool32 alphaToCoverageEnable
4145 VkBool32 alphaToOneEnable
Jesse Halld27f6aa2015-08-15 17:58:48 -07004146}
4147
4148class VkPipelineColorBlendAttachmentState {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004149 VkBool32 blendEnable
Jesse Hall65ab5522015-11-30 00:07:16 -08004150 VkBlendFactor srcColorBlendFactor
4151 VkBlendFactor dstColorBlendFactor
4152 VkBlendOp colorBlendOp
4153 VkBlendFactor srcAlphaBlendFactor
4154 VkBlendFactor dstAlphaBlendFactor
4155 VkBlendOp alphaBlendOp
4156 VkColorComponentFlags colorWriteMask
Jesse Halld27f6aa2015-08-15 17:58:48 -07004157}
4158
4159class VkPipelineColorBlendStateCreateInfo {
4160 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO
4161 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08004162 VkPipelineColorBlendStateCreateFlags flags
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004163 VkBool32 logicOpEnable
Jesse Halld27f6aa2015-08-15 17:58:48 -07004164 VkLogicOp logicOp
4165 u32 attachmentCount /// # of pAttachments
4166 const VkPipelineColorBlendAttachmentState* pAttachments
Jesse Hallb00daad2015-11-29 19:46:20 -08004167 f32[4] blendConstants
Jesse Halld27f6aa2015-08-15 17:58:48 -07004168}
4169
4170class VkStencilOpState {
Jesse Hall65ab5522015-11-30 00:07:16 -08004171 VkStencilOp failOp
4172 VkStencilOp passOp
4173 VkStencilOp depthFailOp
4174 VkCompareOp compareOp
4175 u32 compareMask
4176 u32 writeMask
4177 u32 reference
Jesse Halld27f6aa2015-08-15 17:58:48 -07004178}
4179
4180class VkPipelineDepthStencilStateCreateInfo {
4181 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO
4182 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08004183 VkPipelineDepthStencilStateCreateFlags flags
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004184 VkBool32 depthTestEnable
4185 VkBool32 depthWriteEnable
Jesse Halld27f6aa2015-08-15 17:58:48 -07004186 VkCompareOp depthCompareOp
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004187 VkBool32 depthBoundsTestEnable /// optional (depth_bounds_test)
4188 VkBool32 stencilTestEnable
Jesse Halld27f6aa2015-08-15 17:58:48 -07004189 VkStencilOpState front
4190 VkStencilOpState back
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004191 f32 minDepthBounds
4192 f32 maxDepthBounds
4193}
4194
4195class VkPipelineDynamicStateCreateInfo {
4196 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO
4197 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08004198 VkPipelineDynamicStateCreateFlags flags
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004199 u32 dynamicStateCount
4200 const VkDynamicState* pDynamicStates
Jesse Halld27f6aa2015-08-15 17:58:48 -07004201}
4202
4203class VkGraphicsPipelineCreateInfo {
Jesse Halla6429252015-11-29 18:59:42 -08004204 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO
4205 const void* pNext /// Pointer to next structure
4206 VkPipelineCreateFlags flags /// Pipeline creation flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07004207 u32 stageCount
Jesse Halla6429252015-11-29 18:59:42 -08004208 const VkPipelineShaderStageCreateInfo* pStages /// One entry for each active shader stage
Jesse Halld27f6aa2015-08-15 17:58:48 -07004209 const VkPipelineVertexInputStateCreateInfo* pVertexInputState
4210 const VkPipelineInputAssemblyStateCreateInfo* pInputAssemblyState
4211 const VkPipelineTessellationStateCreateInfo* pTessellationState
4212 const VkPipelineViewportStateCreateInfo* pViewportState
Jesse Hall3fbc8562015-11-29 22:10:52 -08004213 const VkPipelineRasterizationStateCreateInfo* pRasterizationState
Jesse Halld27f6aa2015-08-15 17:58:48 -07004214 const VkPipelineMultisampleStateCreateInfo* pMultisampleState
4215 const VkPipelineDepthStencilStateCreateInfo* pDepthStencilState
4216 const VkPipelineColorBlendStateCreateInfo* pColorBlendState
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004217 const VkPipelineDynamicStateCreateInfo* pDynamicState
Jesse Halla6429252015-11-29 18:59:42 -08004218 VkPipelineLayout layout /// Interface layout of the pipeline
Jesse Halld27f6aa2015-08-15 17:58:48 -07004219 VkRenderPass renderPass
4220 u32 subpass
Jesse Halla6429252015-11-29 18:59:42 -08004221 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
4222 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 -07004223}
4224
4225class VkPipelineCacheCreateInfo {
Jesse Hallb00daad2015-11-29 19:46:20 -08004226 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO
4227 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08004228 VkPipelineCacheCreateFlags flags
Jesse Hallb00daad2015-11-29 19:46:20 -08004229 platform.size_t initialDataSize /// Size of initial data to populate cache, in bytes
4230 const void* pInitialData /// Initial data to populate cache
Jesse Halld27f6aa2015-08-15 17:58:48 -07004231}
4232
4233class VkPushConstantRange {
4234 VkShaderStageFlags stageFlags /// Which stages use the range
Jesse Hall03b6fe12015-11-24 12:44:21 -08004235 u32 offset /// Start of the range, in bytes
4236 u32 size /// Length of the range, in bytes
Jesse Halld27f6aa2015-08-15 17:58:48 -07004237}
4238
4239class VkPipelineLayoutCreateInfo {
4240 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO
4241 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08004242 VkPipelineLayoutCreateFlags flags
Jesse Hall3dd678a2016-01-08 21:52:01 -08004243 u32 descriptorSetCount /// Number of descriptor sets interfaced by the pipeline
Jesse Halld27f6aa2015-08-15 17:58:48 -07004244 const VkDescriptorSetLayout* pSetLayouts /// Array of <setCount> number of descriptor set layout objects defining the layout of the
4245 u32 pushConstantRangeCount /// Number of push-constant ranges used by the pipeline
4246 const VkPushConstantRange* pPushConstantRanges /// Array of pushConstantRangeCount number of ranges used by various shader stages
4247}
4248
4249class VkSamplerCreateInfo {
4250 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO
4251 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08004252 VkSamplerCreateFlags flags
Jesse Hall23ff73f2015-11-29 14:36:39 -08004253 VkFilter magFilter /// Filter mode for magnification
4254 VkFilter minFilter /// Filter mode for minifiation
4255 VkSamplerMipmapMode mipmapMode /// Mipmap selection mode
4256 VkSamplerAddressMode addressModeU
4257 VkSamplerAddressMode addressModeV
4258 VkSamplerAddressMode addressModeW
Jesse Halld27f6aa2015-08-15 17:58:48 -07004259 f32 mipLodBias
Jesse Hallf9fa9a52016-01-08 16:08:51 -08004260 VkBool32 anisotropyEnable
Jesse Halld27f6aa2015-08-15 17:58:48 -07004261 f32 maxAnisotropy
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004262 VkBool32 compareEnable
Jesse Halld27f6aa2015-08-15 17:58:48 -07004263 VkCompareOp compareOp
4264 f32 minLod
4265 f32 maxLod
4266 VkBorderColor borderColor
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004267 VkBool32 unnormalizedCoordinates
Jesse Halld27f6aa2015-08-15 17:58:48 -07004268}
4269
Jesse Hall3fbc8562015-11-29 22:10:52 -08004270class VkCommandPoolCreateInfo {
4271 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO
Jesse Halld27f6aa2015-08-15 17:58:48 -07004272 const void* pNext /// Pointer to next structure
Jesse Hall3fbc8562015-11-29 22:10:52 -08004273 VkCommandPoolCreateFlags flags /// Command pool creation flags
Jesse Halla6429252015-11-29 18:59:42 -08004274 u32 queueFamilyIndex
Jesse Halld27f6aa2015-08-15 17:58:48 -07004275}
4276
Jesse Hall3fbc8562015-11-29 22:10:52 -08004277class VkCommandBufferAllocateInfo {
Jesse Hallf4ab2b12015-11-30 16:04:55 -08004278 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO
Jesse Halld27f6aa2015-08-15 17:58:48 -07004279 const void* pNext /// Pointer to next structure
Jesse Hall3fbc8562015-11-29 22:10:52 -08004280 VkCommandPool commandPool
4281 VkCommandBufferLevel level
Jesse Hall3dd678a2016-01-08 21:52:01 -08004282 u32 commandBufferCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07004283}
4284
Jesse Hall3dd678a2016-01-08 21:52:01 -08004285class VkCommandBufferInheritanceInfo {
4286 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO
Jesse Halld27f6aa2015-08-15 17:58:48 -07004287 const void* pNext /// Pointer to next structure
Jesse Halld27f6aa2015-08-15 17:58:48 -07004288 VkRenderPass renderPass /// Render pass for secondary command buffers
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004289 u32 subpass
Jesse Halld27f6aa2015-08-15 17:58:48 -07004290 VkFramebuffer framebuffer /// Framebuffer for secondary command buffers
Jesse Hallf4ab2b12015-11-30 16:04:55 -08004291 VkBool32 occlusionQueryEnable
4292 VkQueryControlFlags queryFlags
4293 VkQueryPipelineStatisticFlags pipelineStatistics
Jesse Halld27f6aa2015-08-15 17:58:48 -07004294}
4295
Jesse Hall3dd678a2016-01-08 21:52:01 -08004296class VkCommandBufferBeginInfo {
4297 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO
4298 const void* pNext /// Pointer to next structure
4299 VkCommandBufferUsageFlags flags /// Command buffer usage flags
4300 const VkCommandBufferInheritanceInfo* pInheritanceInfo
4301}
4302
Jesse Halld27f6aa2015-08-15 17:58:48 -07004303class VkRenderPassBeginInfo {
4304 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO
4305 const void* pNext /// Pointer to next structure
4306 VkRenderPass renderPass
4307 VkFramebuffer framebuffer
4308 VkRect2D renderArea
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004309 u32 clearValueCount
4310 const VkClearValue* pClearValues
Jesse Halld27f6aa2015-08-15 17:58:48 -07004311}
4312
4313@union
4314/// Union allowing specification of floating point, integer, or unsigned integer color data. Actual value selected is based on image/attachment being cleared.
4315class VkClearColorValue {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004316 f32[4] float32
4317 s32[4] int32
4318 u32[4] uint32
Jesse Halld27f6aa2015-08-15 17:58:48 -07004319}
4320
4321class VkClearDepthStencilValue {
4322 f32 depth
4323 u32 stencil
4324}
4325
4326@union
4327/// Union allowing specification of color, depth, and stencil color values. Actual value selected is based on attachment being cleared.
4328class VkClearValue {
4329 VkClearColorValue color
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004330 VkClearDepthStencilValue depthStencil
Jesse Halld27f6aa2015-08-15 17:58:48 -07004331}
4332
Jesse Hallae38f732015-11-19 21:32:50 -08004333class VkClearAttachment {
4334 VkImageAspectFlags aspectMask
4335 u32 colorAttachment
4336 VkClearValue clearValue
4337}
4338
Jesse Halld27f6aa2015-08-15 17:58:48 -07004339class VkAttachmentDescription {
Jesse Halla6429252015-11-29 18:59:42 -08004340 VkAttachmentDescriptionFlags flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07004341 VkFormat format
Jesse Hall091ed9e2015-11-30 00:55:29 -08004342 VkSampleCountFlagBits samples
Jesse Halld27f6aa2015-08-15 17:58:48 -07004343 VkAttachmentLoadOp loadOp /// Load op for color or depth data
4344 VkAttachmentStoreOp storeOp /// Store op for color or depth data
4345 VkAttachmentLoadOp stencilLoadOp /// Load op for stencil data
4346 VkAttachmentStoreOp stencilStoreOp /// Store op for stencil data
4347 VkImageLayout initialLayout
4348 VkImageLayout finalLayout
4349}
4350
4351class VkAttachmentReference {
4352 u32 attachment
4353 VkImageLayout layout
4354}
4355
4356class VkSubpassDescription {
Jesse Halld27f6aa2015-08-15 17:58:48 -07004357 VkSubpassDescriptionFlags flags
Jesse Halla6429252015-11-29 18:59:42 -08004358 VkPipelineBindPoint pipelineBindPoint /// Must be VK_PIPELINE_BIND_POINT_GRAPHICS for now
Jesse Hall03b6fe12015-11-24 12:44:21 -08004359 u32 inputAttachmentCount
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004360 const VkAttachmentReference* pInputAttachments
Jesse Hall03b6fe12015-11-24 12:44:21 -08004361 u32 colorAttachmentCount
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004362 const VkAttachmentReference* pColorAttachments
4363 const VkAttachmentReference* pResolveAttachments
Jesse Hallc7467b72015-11-29 21:05:26 -08004364 const VkAttachmentReference* pDepthStencilAttachment
Jesse Hall03b6fe12015-11-24 12:44:21 -08004365 u32 preserveAttachmentCount
Jesse Hall3dd678a2016-01-08 21:52:01 -08004366 const u32* pPreserveAttachments
Jesse Halld27f6aa2015-08-15 17:58:48 -07004367}
4368
4369class VkSubpassDependency {
Jesse Halld27f6aa2015-08-15 17:58:48 -07004370 u32 srcSubpass
Jesse Hall3fbc8562015-11-29 22:10:52 -08004371 u32 dstSubpass
Jesse Halld27f6aa2015-08-15 17:58:48 -07004372 VkPipelineStageFlags srcStageMask
Jesse Hall3fbc8562015-11-29 22:10:52 -08004373 VkPipelineStageFlags dstStageMask
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08004374 VkAccessFlags srcAccessMask
4375 VkAccessFlags dstAccessMask
Jesse Halldc6d36c2015-11-29 19:12:15 -08004376 VkDependencyFlags dependencyFlags
Jesse Halld27f6aa2015-08-15 17:58:48 -07004377}
4378
4379class VkRenderPassCreateInfo {
4380 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO
4381 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08004382 VkRenderPassCreateFlags flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07004383 u32 attachmentCount
4384 const VkAttachmentDescription* pAttachments
4385 u32 subpassCount
4386 const VkSubpassDescription* pSubpasses
4387 u32 dependencyCount
4388 const VkSubpassDependency* pDependencies
4389}
4390
4391class VkEventCreateInfo {
4392 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_EVENT_CREATE_INFO
4393 const void* pNext /// Pointer to next structure
4394 VkEventCreateFlags flags /// Event creation flags
4395}
4396
4397class VkFenceCreateInfo {
4398 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_FENCE_CREATE_INFO
4399 const void* pNext /// Pointer to next structure
4400 VkFenceCreateFlags flags /// Fence creation flags
4401}
4402
4403class VkPhysicalDeviceFeatures {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004404 VkBool32 robustBufferAccess /// out of bounds buffer accesses are well defined
4405 VkBool32 fullDrawIndexUint32 /// full 32-bit range of indices for indexed draw calls
4406 VkBool32 imageCubeArray /// image views which are arrays of cube maps
4407 VkBool32 independentBlend /// blending operations are controlled per-attachment
4408 VkBool32 geometryShader /// geometry stage
4409 VkBool32 tessellationShader /// tessellation control and evaluation stage
4410 VkBool32 sampleRateShading /// per-sample shading and interpolation
Jesse Hall3fbc8562015-11-29 22:10:52 -08004411 VkBool32 dualSrcBlend /// blend operations which take two sources
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004412 VkBool32 logicOp /// logic operations
4413 VkBool32 multiDrawIndirect /// multi draw indirect
Jesse Hall543a7ff2016-01-08 16:38:30 -08004414 VkBool32 drawIndirectFirstInstance
Jesse Hallae38f732015-11-19 21:32:50 -08004415 VkBool32 depthClamp /// depth clamping
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004416 VkBool32 depthBiasClamp /// depth bias clamping
4417 VkBool32 fillModeNonSolid /// point and wireframe fill modes
4418 VkBool32 depthBounds /// depth bounds test
4419 VkBool32 wideLines /// lines with width greater than 1
4420 VkBool32 largePoints /// points with size greater than 1
Jesse Hallfbf97b02015-11-20 14:17:03 -08004421 VkBool32 alphaToOne /// The fragment alpha channel can be forced to maximum representable alpha value
4422 VkBool32 multiViewport
4423 VkBool32 samplerAnisotropy
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004424 VkBool32 textureCompressionETC2 /// ETC texture compression formats
4425 VkBool32 textureCompressionASTC_LDR /// ASTC LDR texture compression formats
4426 VkBool32 textureCompressionBC /// BC1-7 texture compressed formats
Jesse Hall65ab5522015-11-30 00:07:16 -08004427 VkBool32 occlusionQueryPrecise
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004428 VkBool32 pipelineStatisticsQuery /// pipeline statistics query
Jesse Halldc6d36c2015-11-29 19:12:15 -08004429 VkBool32 vertexPipelineStoresAndAtomics
4430 VkBool32 fragmentStoresAndAtomics
4431 VkBool32 shaderTessellationAndGeometryPointSize
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004432 VkBool32 shaderImageGatherExtended /// texture gather with run-time values and independent offsets
4433 VkBool32 shaderStorageImageExtendedFormats /// the extended set of formats can be used for storage images
4434 VkBool32 shaderStorageImageMultisample /// multisample images can be used for storage images
Jesse Halld1af8122015-11-29 23:50:38 -08004435 VkBool32 shaderStorageImageReadWithoutFormat
4436 VkBool32 shaderStorageImageWriteWithoutFormat
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004437 VkBool32 shaderUniformBufferArrayDynamicIndexing /// arrays of uniform buffers can be accessed with dynamically uniform indices
4438 VkBool32 shaderSampledImageArrayDynamicIndexing /// arrays of sampled images can be accessed with dynamically uniform indices
4439 VkBool32 shaderStorageBufferArrayDynamicIndexing /// arrays of storage buffers can be accessed with dynamically uniform indices
4440 VkBool32 shaderStorageImageArrayDynamicIndexing /// arrays of storage images can be accessed with dynamically uniform indices
4441 VkBool32 shaderClipDistance /// clip distance in shaders
4442 VkBool32 shaderCullDistance /// cull distance in shaders
4443 VkBool32 shaderFloat64 /// 64-bit floats (doubles) in shaders
4444 VkBool32 shaderInt64 /// 64-bit integers in shaders
4445 VkBool32 shaderInt16 /// 16-bit integers in shaders
4446 VkBool32 shaderResourceResidency /// shader can use texture operations that return resource residency information (requires sparseNonResident support)
Jesse Hall65ab5522015-11-30 00:07:16 -08004447 VkBool32 shaderResourceMinLod /// shader can use texture operations that specify minimum resource LOD
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004448 VkBool32 sparseBinding /// Sparse resources support: Resource memory can be managed at opaque page level rather than object level
4449 VkBool32 sparseResidencyBuffer /// Sparse resources support: GPU can access partially resident buffers
4450 VkBool32 sparseResidencyImage2D /// Sparse resources support: GPU can access partially resident 2D (non-MSAA non-DepthStencil) images
4451 VkBool32 sparseResidencyImage3D /// Sparse resources support: GPU can access partially resident 3D images
4452 VkBool32 sparseResidency2Samples /// Sparse resources support: GPU can access partially resident MSAA 2D images with 2 samples
4453 VkBool32 sparseResidency4Samples /// Sparse resources support: GPU can access partially resident MSAA 2D images with 4 samples
4454 VkBool32 sparseResidency8Samples /// Sparse resources support: GPU can access partially resident MSAA 2D images with 8 samples
4455 VkBool32 sparseResidency16Samples /// Sparse resources support: GPU can access partially resident MSAA 2D images with 16 samples
4456 VkBool32 sparseResidencyAliased /// Sparse resources support: GPU can correctly access data aliased into multiple locations (opt-in)
Jesse Halld1af8122015-11-29 23:50:38 -08004457 VkBool32 variableMultisampleRate
Jesse Hallf9fa9a52016-01-08 16:08:51 -08004458 VkBool32 inheritedQueries
Jesse Halld27f6aa2015-08-15 17:58:48 -07004459}
4460
4461class VkPhysicalDeviceLimits {
4462 /// resource maximum sizes
4463 u32 maxImageDimension1D /// max 1D image dimension
4464 u32 maxImageDimension2D /// max 2D image dimension
4465 u32 maxImageDimension3D /// max 3D image dimension
4466 u32 maxImageDimensionCube /// max cubemap image dimension
4467 u32 maxImageArrayLayers /// max layers for image arrays
Jesse Hallb00daad2015-11-29 19:46:20 -08004468 u32 maxTexelBufferElements
Jesse Hallfbf97b02015-11-20 14:17:03 -08004469 u32 maxUniformBufferRange /// max uniform buffer size (bytes)
4470 u32 maxStorageBufferRange /// max storage buffer size (bytes)
Jesse Halld27f6aa2015-08-15 17:58:48 -07004471 u32 maxPushConstantsSize /// max size of the push constants pool (bytes)
4472 /// memory limits
4473 u32 maxMemoryAllocationCount /// max number of device memory allocations supported
Jesse Hall091ed9e2015-11-30 00:55:29 -08004474 u32 maxSamplerAllocationCount
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004475 VkDeviceSize bufferImageGranularity /// Granularity (in bytes) at which buffers and images can be bound to adjacent memory for simultaneous usage
4476 VkDeviceSize sparseAddressSpaceSize /// Total address space available for sparse allocations (bytes)
Jesse Halld27f6aa2015-08-15 17:58:48 -07004477 /// descriptor set limits
4478 u32 maxBoundDescriptorSets /// max number of descriptors sets that can be bound to a pipeline
Jesse Halld27f6aa2015-08-15 17:58:48 -07004479 u32 maxPerStageDescriptorSamplers /// max num of samplers allowed per-stage in a descriptor set
4480 u32 maxPerStageDescriptorUniformBuffers /// max num of uniform buffers allowed per-stage in a descriptor set
4481 u32 maxPerStageDescriptorStorageBuffers /// max num of storage buffers allowed per-stage in a descriptor set
4482 u32 maxPerStageDescriptorSampledImages /// max num of sampled images allowed per-stage in a descriptor set
4483 u32 maxPerStageDescriptorStorageImages /// max num of storage images allowed per-stage in a descriptor set
Jesse Halle1b12782015-11-30 11:27:32 -08004484 u32 maxPerStageDescriptorInputAttachments
Jesse Halldba27f72015-11-30 14:25:46 -08004485 u32 maxPerStageResources
Jesse Halld27f6aa2015-08-15 17:58:48 -07004486 u32 maxDescriptorSetSamplers /// max num of samplers allowed in all stages in a descriptor set
4487 u32 maxDescriptorSetUniformBuffers /// max num of uniform buffers allowed in all stages in a descriptor set
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004488 u32 maxDescriptorSetUniformBuffersDynamic /// max num of dynamic uniform buffers allowed in all stages in a descriptor set
Jesse Halld27f6aa2015-08-15 17:58:48 -07004489 u32 maxDescriptorSetStorageBuffers /// max num of storage buffers allowed in all stages in a descriptor set
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004490 u32 maxDescriptorSetStorageBuffersDynamic /// max num of dynamic storage buffers allowed in all stages in a descriptor set
Jesse Halld27f6aa2015-08-15 17:58:48 -07004491 u32 maxDescriptorSetSampledImages /// max num of sampled images allowed in all stages in a descriptor set
4492 u32 maxDescriptorSetStorageImages /// max num of storage images allowed in all stages in a descriptor set
Jesse Halle1b12782015-11-30 11:27:32 -08004493 u32 maxDescriptorSetInputAttachments
Jesse Halld27f6aa2015-08-15 17:58:48 -07004494 /// vertex stage limits
4495 u32 maxVertexInputAttributes /// max num of vertex input attribute slots
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004496 u32 maxVertexInputBindings /// max num of vertex input binding slots
Jesse Halld27f6aa2015-08-15 17:58:48 -07004497 u32 maxVertexInputAttributeOffset /// max vertex input attribute offset added to vertex buffer offset
4498 u32 maxVertexInputBindingStride /// max vertex input binding stride
4499 u32 maxVertexOutputComponents /// max num of output components written by vertex shader
4500 /// tessellation control stage limits
Jesse Hall3fbc8562015-11-29 22:10:52 -08004501 u32 maxTessellationGenerationLevel /// max level supported by tess primitive generator
Jesse Hallae38f732015-11-19 21:32:50 -08004502 u32 maxTessellationPatchSize /// max patch size (vertices)
4503 u32 maxTessellationControlPerVertexInputComponents /// max num of input components per-vertex in TCS
4504 u32 maxTessellationControlPerVertexOutputComponents /// max num of output components per-vertex in TCS
4505 u32 maxTessellationControlPerPatchOutputComponents /// max num of output components per-patch in TCS
4506 u32 maxTessellationControlTotalOutputComponents /// max total num of per-vertex and per-patch output components in TCS
4507 u32 maxTessellationEvaluationInputComponents /// max num of input components per vertex in TES
4508 u32 maxTessellationEvaluationOutputComponents /// max num of output components per vertex in TES
Jesse Halld27f6aa2015-08-15 17:58:48 -07004509 /// geometry stage limits
4510 u32 maxGeometryShaderInvocations /// max invocation count supported in geometry shader
4511 u32 maxGeometryInputComponents /// max num of input components read in geometry stage
4512 u32 maxGeometryOutputComponents /// max num of output components written in geometry stage
4513 u32 maxGeometryOutputVertices /// max num of vertices that can be emitted in geometry stage
4514 u32 maxGeometryTotalOutputComponents /// max total num of components (all vertices) written in geometry stage
4515 /// fragment stage limits
4516 u32 maxFragmentInputComponents /// max num of input compontents read in fragment stage
Jesse Hallfbf97b02015-11-20 14:17:03 -08004517 u32 maxFragmentOutputAttachments /// max num of output attachments written in fragment stage
Jesse Hall3fbc8562015-11-29 22:10:52 -08004518 u32 maxFragmentDualSrcAttachments /// max num of output attachments written when using dual source blending
Jesse Halld27f6aa2015-08-15 17:58:48 -07004519 u32 maxFragmentCombinedOutputResources /// max total num of storage buffers, storage images and output buffers
4520 /// compute stage limits
4521 u32 maxComputeSharedMemorySize /// max total storage size of work group local storage (bytes)
4522 u32[3] maxComputeWorkGroupCount /// max num of compute work groups that may be dispatched by a single command (x,y,z)
4523 u32 maxComputeWorkGroupInvocations /// max total compute invocations in a single local work group
4524 u32[3] maxComputeWorkGroupSize /// max local size of a compute work group (x,y,z)
4525
4526 u32 subPixelPrecisionBits /// num bits of subpixel precision in screen x and y
4527 u32 subTexelPrecisionBits /// num bits of subtexel precision
4528 u32 mipmapPrecisionBits /// num bits of mipmap precision
4529
4530 u32 maxDrawIndexedIndexValue /// max index value for indexed draw calls (for 32-bit indices)
Jesse Halldba27f72015-11-30 14:25:46 -08004531 u32 maxDrawIndirectCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07004532
4533 f32 maxSamplerLodBias /// max absolute sampler level of detail bias
4534 f32 maxSamplerAnisotropy /// max degree of sampler anisotropy
4535
4536 u32 maxViewports /// max number of active viewports
Jesse Halld27f6aa2015-08-15 17:58:48 -07004537 u32[2] maxViewportDimensions /// max viewport dimensions (x,y)
4538 f32[2] viewportBoundsRange /// viewport bounds range (min,max)
4539 u32 viewportSubPixelBits /// num bits of subpixel precision for viewport
4540
Jesse Halldc6d36c2015-11-29 19:12:15 -08004541 platform.size_t minMemoryMapAlignment /// min required alignment of pointers returned by MapMemory (bytes)
4542 VkDeviceSize minTexelBufferOffsetAlignment /// min required alignment for texel buffer offsets (bytes)
4543 VkDeviceSize minUniformBufferOffsetAlignment /// min required alignment for uniform buffer sizes and offsets (bytes)
4544 VkDeviceSize minStorageBufferOffsetAlignment /// min required alignment for storage buffer offsets (bytes)
Jesse Halld27f6aa2015-08-15 17:58:48 -07004545
Jesse Hallfbf97b02015-11-20 14:17:03 -08004546 s32 minTexelOffset /// min texel offset for OpTextureSampleOffset
Jesse Halld27f6aa2015-08-15 17:58:48 -07004547 u32 maxTexelOffset /// max texel offset for OpTextureSampleOffset
Jesse Hallfbf97b02015-11-20 14:17:03 -08004548 s32 minTexelGatherOffset /// min texel offset for OpTextureGatherOffset
Jesse Halld27f6aa2015-08-15 17:58:48 -07004549 u32 maxTexelGatherOffset /// max texel offset for OpTextureGatherOffset
4550 f32 minInterpolationOffset /// furthest negative offset for interpolateAtOffset
4551 f32 maxInterpolationOffset /// furthest positive offset for interpolateAtOffset
4552 u32 subPixelInterpolationOffsetBits /// num of subpixel bits for interpolateAtOffset
4553
4554 u32 maxFramebufferWidth /// max width for a framebuffer
4555 u32 maxFramebufferHeight /// max height for a framebuffer
4556 u32 maxFramebufferLayers /// max layer count for a layered framebuffer
Jesse Hall091ed9e2015-11-30 00:55:29 -08004557 VkSampleCountFlags framebufferColorSampleCounts
4558 VkSampleCountFlags framebufferDepthSampleCounts
4559 VkSampleCountFlags framebufferStencilSampleCounts
4560 VkSampleCountFlags framebufferNoAttachmentSampleCounts
Jesse Halld27f6aa2015-08-15 17:58:48 -07004561 u32 maxColorAttachments /// max num of framebuffer color attachments
4562
Jesse Hall091ed9e2015-11-30 00:55:29 -08004563 VkSampleCountFlags sampledImageColorSampleCounts
4564 VkSampleCountFlags sampledImageIntegerSampleCounts
4565 VkSampleCountFlags sampledImageDepthSampleCounts
4566 VkSampleCountFlags sampledImageStencilSampleCounts
4567 VkSampleCountFlags storageImageSampleCounts
Jesse Halld27f6aa2015-08-15 17:58:48 -07004568 u32 maxSampleMaskWords /// max num of sample mask words
Jesse Hallf9fa9a52016-01-08 16:08:51 -08004569 VkBool32 timestampComputeAndGraphics
Jesse Halld27f6aa2015-08-15 17:58:48 -07004570
Jesse Halla9bb62b2015-11-21 19:31:56 -08004571 f32 timestampPeriod
Jesse Halld27f6aa2015-08-15 17:58:48 -07004572
4573 u32 maxClipDistances /// max number of clip distances
4574 u32 maxCullDistances /// max number of cull distances
4575 u32 maxCombinedClipAndCullDistances /// max combined number of user clipping
4576
Jesse Hallfbf97b02015-11-20 14:17:03 -08004577 u32 discreteQueuePriorities
4578
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004579 f32[2] pointSizeRange /// range (min,max) of supported point sizes
4580 f32[2] lineWidthRange /// range (min,max) of supported line widths
Jesse Halld27f6aa2015-08-15 17:58:48 -07004581 f32 pointSizeGranularity /// granularity of supported point sizes
4582 f32 lineWidthGranularity /// granularity of supported line widths
Jesse Hall03b6fe12015-11-24 12:44:21 -08004583 VkBool32 strictLines
Jesse Hall091ed9e2015-11-30 00:55:29 -08004584 VkBool32 standardSampleLocations
Jesse Halla9bb62b2015-11-21 19:31:56 -08004585
Jesse Hall65ab5522015-11-30 00:07:16 -08004586 VkDeviceSize optimalBufferCopyOffsetAlignment
4587 VkDeviceSize optimalBufferCopyRowPitchAlignment
Jesse Halldba27f72015-11-30 14:25:46 -08004588 VkDeviceSize nonCoherentAtomSize
Jesse Halld27f6aa2015-08-15 17:58:48 -07004589}
4590
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004591class VkPhysicalDeviceSparseProperties {
4592 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 -08004593 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 -07004594 VkBool32 residencyStandard3DBlockShape /// Sparse resources support: GPU will access all 3D sparse resources using the standard block shapes (based on pixel format)
4595 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 -07004596 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
4597}
4598
Jesse Halld27f6aa2015-08-15 17:58:48 -07004599class VkSemaphoreCreateInfo {
4600 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO
4601 const void* pNext /// Pointer to next structure
4602 VkSemaphoreCreateFlags flags /// Semaphore creation flags
4603}
4604
4605class VkQueryPoolCreateInfo {
4606 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO
4607 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08004608 VkQueryPoolCreateFlags flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07004609 VkQueryType queryType
Jesse Hall3dd678a2016-01-08 21:52:01 -08004610 u32 queryCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07004611 VkQueryPipelineStatisticFlags pipelineStatistics /// Optional
4612}
4613
4614class VkFramebufferCreateInfo {
4615 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO
4616 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08004617 VkFramebufferCreateFlags flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07004618 VkRenderPass renderPass
4619 u32 attachmentCount
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004620 const VkImageView* pAttachments
Jesse Halld27f6aa2015-08-15 17:58:48 -07004621 u32 width
4622 u32 height
4623 u32 layers
4624}
4625
Jesse Hall3fbc8562015-11-29 22:10:52 -08004626class VkDrawIndirectCommand {
Jesse Halld27f6aa2015-08-15 17:58:48 -07004627 u32 vertexCount
4628 u32 instanceCount
4629 u32 firstVertex
4630 u32 firstInstance
4631}
4632
Jesse Hall3fbc8562015-11-29 22:10:52 -08004633class VkDrawIndexedIndirectCommand {
Jesse Halld27f6aa2015-08-15 17:58:48 -07004634 u32 indexCount
4635 u32 instanceCount
4636 u32 firstIndex
4637 s32 vertexOffset
4638 u32 firstInstance
4639}
4640
Jesse Hall3fbc8562015-11-29 22:10:52 -08004641class VkDispatchIndirectCommand {
Jesse Halld27f6aa2015-08-15 17:58:48 -07004642 u32 x
4643 u32 y
4644 u32 z
4645}
4646
Jesse Hall54f8d132018-04-18 08:16:59 -07004647class VkBaseOutStructure {
4648 VkStructureType sType
4649 void* pNext
4650}
4651
4652class VkBaseInStructure {
4653 VkStructureType sType
4654 const void* pNext
4655}
4656
Ian Elliott28bd2c32017-10-13 09:21:12 -06004657//@vulkan1_1 structures
Daniel Koch09f7bf92017-10-05 00:26:58 -04004658
4659class VkPhysicalDeviceSubgroupProperties {
4660 VkStructureType sType
4661 void* pNext
4662 u32 subgroupSize
4663 VkShaderStageFlags supportedStages
4664 VkSubgroupFeatureFlags supportedOperations
4665 VkBool32 quadOperationsInAllStages
4666}
4667
4668class VkBindBufferMemoryInfo {
4669 VkStructureType sType
4670 const void* pNext
4671 VkBuffer buffer
4672 VkDeviceMemory memory
4673 VkDeviceSize memoryOffset
4674}
4675
4676class VkBindImageMemoryInfo {
4677 VkStructureType sType
4678 const void* pNext
4679 VkImage image
4680 VkDeviceMemory memory
4681 VkDeviceSize memoryOffset
4682}
4683
4684class VkPhysicalDevice16BitStorageFeatures {
4685 VkStructureType sType
4686 void* pNext
4687 VkBool32 storageBuffer16BitAccess
4688 VkBool32 uniformAndStorageBuffer16BitAccess
4689 VkBool32 storagePushConstant16
4690 VkBool32 storageInputOutput16
4691}
4692
4693class VkMemoryDedicatedRequirements {
4694 VkStructureType sType
4695 void* pNext
4696 VkBool32 prefersDedicatedAllocation
4697 VkBool32 requiresDedicatedAllocation
4698}
4699
4700class VkMemoryDedicatedAllocateInfo {
4701 VkStructureType sType
4702 const void* pNext
4703 VkImage image
4704 VkBuffer buffer
4705}
4706
4707class VkMemoryAllocateFlagsInfo {
4708 VkStructureType sType
4709 const void* pNext
4710 VkMemoryAllocateFlags flags
4711 u32 deviceMask
4712}
4713
4714class VkDeviceGroupRenderPassBeginInfo {
4715 VkStructureType sType
4716 const void* pNext
4717 u32 deviceMask
4718 u32 deviceRenderAreaCount
4719 const VkRect2D* pDeviceRenderAreas
4720}
4721
4722class VkDeviceGroupCommandBufferBeginInfo {
4723 VkStructureType sType
4724 const void* pNext
4725 u32 deviceMask
4726}
4727
4728class VkDeviceGroupSubmitInfo {
4729 VkStructureType sType
4730 const void* pNext
4731 u32 waitSemaphoreCount
4732 const u32* pWaitSemaphoreDeviceIndices
4733 u32 commandBufferCount
4734 const u32* pCommandBufferDeviceMasks
4735 u32 signalSemaphoreCount
4736 const u32* pSignalSemaphoreDeviceIndices
4737}
4738
4739class VkDeviceGroupBindSparseInfo {
4740 VkStructureType sType
4741 const void* pNext
4742 u32 resourceDeviceIndex
4743 u32 memoryDeviceIndex
4744}
4745
4746class VkBindBufferMemoryDeviceGroupInfo {
4747 VkStructureType sType
4748 const void* pNext
4749 u32 deviceIndexCount
4750 const u32* pDeviceIndices
4751}
4752
4753class VkBindImageMemoryDeviceGroupInfo {
4754 VkStructureType sType
4755 const void* pNext
4756 u32 deviceIndexCount
4757 const u32* pDeviceIndices
Jesse Hall8c954d32018-01-17 22:06:20 -08004758 u32 splitInstanceBindRegionCount
4759 const VkRect2D* pSplitInstanceBindRegions
Daniel Koch09f7bf92017-10-05 00:26:58 -04004760}
4761
4762class VkPhysicalDeviceGroupProperties {
4763 VkStructureType sType
4764 void* pNext
4765 u32 physicalDeviceCount
4766 VkPhysicalDevice[VK_MAX_DEVICE_GROUP_SIZE] physicalDevices
4767 VkBool32 subsetAllocation
4768}
4769
4770class VkDeviceGroupDeviceCreateInfo {
4771 VkStructureType sType
4772 const void* pNext
4773 u32 physicalDeviceCount
4774 const VkPhysicalDevice* pPhysicalDevices
4775}
4776
4777class VkBufferMemoryRequirementsInfo2 {
4778 VkStructureType sType
4779 const void* pNext
4780 VkBuffer buffer
4781}
4782
4783class VkImageMemoryRequirementsInfo2 {
4784 VkStructureType sType
4785 const void* pNext
4786 VkImage image
4787}
4788
4789class VkImageSparseMemoryRequirementsInfo2 {
4790 VkStructureType sType
4791 const void* pNext
4792 VkImage image
4793}
4794
4795class VkMemoryRequirements2 {
4796 VkStructureType sType
4797 void* pNext
4798 VkMemoryRequirements memoryRequirements
4799}
4800
4801class VkSparseImageMemoryRequirements2 {
4802 VkStructureType sType
4803 void* pNext
4804 VkSparseImageMemoryRequirements memoryRequirements
4805}
4806
4807class VkPhysicalDeviceFeatures2 {
4808 VkStructureType sType
4809 void* pNext
4810 VkPhysicalDeviceFeatures features
4811}
4812
4813class VkPhysicalDeviceProperties2 {
4814 VkStructureType sType
4815 void* pNext
4816 VkPhysicalDeviceProperties properties
4817}
4818
4819class VkFormatProperties2 {
4820 VkStructureType sType
4821 void* pNext
4822 VkFormatProperties formatProperties
4823}
4824
4825class VkImageFormatProperties2 {
4826 VkStructureType sType
4827 void* pNext
4828 VkImageFormatProperties imageFormatProperties
4829}
4830
4831class VkPhysicalDeviceImageFormatInfo2 {
4832 VkStructureType sType
4833 const void* pNext
4834 VkFormat format
4835 VkImageType type
4836 VkImageTiling tiling
4837 VkImageUsageFlags usage
4838 VkImageCreateFlags flags
4839}
4840
4841class VkQueueFamilyProperties2 {
4842 VkStructureType sType
4843 void* pNext
4844 VkQueueFamilyProperties queueFamilyProperties
4845}
4846
4847class VkPhysicalDeviceMemoryProperties2 {
4848 VkStructureType sType
4849 void* pNext
4850 VkPhysicalDeviceMemoryProperties memoryProperties
4851}
4852
4853class VkSparseImageFormatProperties2 {
4854 VkStructureType sType
4855 void* pNext
4856 VkSparseImageFormatProperties properties
4857}
4858
4859class VkPhysicalDeviceSparseImageFormatInfo2 {
4860 VkStructureType sType
4861 const void* pNext
4862 VkFormat format
4863 VkImageType type
4864 VkSampleCountFlagBits samples
4865 VkImageUsageFlags usage
4866 VkImageTiling tiling
4867}
4868
4869class VkPhysicalDevicePointClippingProperties {
4870 VkStructureType sType
4871 void* pNext
4872 VkPointClippingBehavior pointClippingBehavior
4873}
4874
4875class VkInputAttachmentAspectReference {
4876 u32 subpass
4877 u32 inputAttachmentIndex
4878 VkImageAspectFlags aspectMask
4879}
4880
4881class VkRenderPassInputAttachmentAspectCreateInfo {
4882 VkStructureType sType
4883 const void* pNext
4884 u32 aspectReferenceCount
4885 const VkInputAttachmentAspectReference* pAspectReferences
4886}
4887
4888class VkImageViewUsageCreateInfo {
4889 VkStructureType sType
4890 const void* pNext
4891 VkImageUsageFlags usage
4892}
4893
4894class VkPipelineTessellationDomainOriginStateCreateInfo {
4895 VkStructureType sType
4896 const void* pNext
4897 VkTessellationDomainOrigin domainOrigin
4898}
4899
4900class VkRenderPassMultiviewCreateInfo {
4901 VkStructureType sType
4902 const void* pNext
4903 u32 subpassCount
4904 const u32* pViewMasks
4905 u32 dependencyCount
4906 const s32* pViewOffsets
4907 u32 correlationMaskCount
4908 const u32* pCorrelationMasks
4909}
4910
4911class VkPhysicalDeviceMultiviewFeatures {
4912 VkStructureType sType
4913 void* pNext
4914 VkBool32 multiview
4915 VkBool32 multiviewGeometryShader
4916 VkBool32 multiviewTessellationShader
4917}
4918
4919class VkPhysicalDeviceMultiviewProperties {
4920 VkStructureType sType
4921 void* pNext
4922 u32 maxMultiviewViewCount
4923 u32 maxMultiviewInstanceIndex
4924}
4925
4926class VkPhysicalDeviceVariablePointerFeatures {
4927 VkStructureType sType
4928 void* pNext
4929 VkBool32 variablePointersStorageBuffer
4930 VkBool32 variablePointers
4931}
4932
4933class VkPhysicalDeviceProtectedMemoryFeatures {
4934 VkStructureType sType
4935 void* pNext
4936 VkBool32 protectedMemory
4937}
4938
4939class VkPhysicalDeviceProtectedMemoryProperties {
4940 VkStructureType sType
4941 void* pNext
4942 VkBool32 protectedNoFault
4943}
4944
4945class VkDeviceQueueInfo2 {
4946 VkStructureType sType
4947 const void* pNext
4948 VkDeviceQueueCreateFlags flags
4949 u32 queueFamilyIndex
4950 u32 queueIndex
4951}
4952
4953class VkProtectedSubmitInfo {
4954 VkStructureType sType
4955 const void* pNext
4956 VkBool32 protectedSubmit
4957}
4958
4959class VkSamplerYcbcrConversionCreateInfo {
4960 VkStructureType sType
4961 const void* pNext
4962 VkFormat format
4963 VkSamplerYcbcrModelConversion ycbcrModel
4964 VkSamplerYcbcrRange ycbcrRange
4965 VkComponentMapping components
4966 VkChromaLocation xChromaOffset
4967 VkChromaLocation yChromaOffset
4968 VkFilter chromaFilter
4969 VkBool32 forceExplicitReconstruction
4970}
4971
4972class VkSamplerYcbcrConversionInfo {
4973 VkStructureType sType
4974 const void* pNext
4975 VkSamplerYcbcrConversion conversion
4976}
4977
4978class VkBindImagePlaneMemoryInfo {
4979 VkStructureType sType
4980 const void* pNext
4981 VkImageAspectFlagBits planeAspect
4982}
4983
4984class VkImagePlaneMemoryRequirementsInfo {
4985 VkStructureType sType
4986 const void* pNext
4987 VkImageAspectFlagBits planeAspect
4988}
4989
4990class VkPhysicalDeviceSamplerYcbcrConversionFeatures {
4991 VkStructureType sType
4992 void* pNext
4993 VkBool32 samplerYcbcrConversion
4994}
4995
4996class VkSamplerYcbcrConversionImageFormatProperties {
4997 VkStructureType sType
4998 void* pNext
4999 u32 combinedImageSamplerDescriptorCount
5000}
5001
5002class VkDescriptorUpdateTemplateEntry {
5003 u32 dstBinding
5004 u32 dstArrayElement
5005 u32 descriptorCount
5006 VkDescriptorType descriptorType
5007 platform.size_t offset
5008 platform.size_t stride
5009}
5010
5011class VkDescriptorUpdateTemplateCreateInfo {
5012 VkStructureType sType
5013 void* pNext
5014 VkDescriptorUpdateTemplateCreateFlags flags
5015 u32 descriptorUpdateEntryCount
5016 const VkDescriptorUpdateTemplateEntry* pDescriptorUpdateEntries
5017 VkDescriptorUpdateTemplateType templateType
5018 VkDescriptorSetLayout descriptorSetLayout
5019 VkPipelineBindPoint pipelineBindPoint
5020 VkPipelineLayout pipelineLayout
5021 u32 set
5022}
5023
5024class VkExternalMemoryProperties {
5025 VkExternalMemoryFeatureFlags externalMemoryFeatures
5026 VkExternalMemoryHandleTypeFlags exportFromImportedHandleTypes
5027 VkExternalMemoryHandleTypeFlags compatibleHandleTypes
5028}
5029
5030class VkPhysicalDeviceExternalImageFormatInfo {
5031 VkStructureType sType
5032 const void* pNext
5033 VkExternalMemoryHandleTypeFlagBits handleType
5034}
5035
5036class VkExternalImageFormatProperties {
5037 VkStructureType sType
5038 void* pNext
5039 VkExternalMemoryProperties externalMemoryProperties
5040}
5041
5042class VkPhysicalDeviceExternalBufferInfo {
5043 VkStructureType sType
5044 const void* pNext
5045 VkBufferCreateFlags flags
5046 VkBufferUsageFlags usage
5047 VkExternalMemoryHandleTypeFlagBits handleType
5048}
5049
5050class VkExternalBufferProperties {
5051 VkStructureType sType
5052 void* pNext
5053 VkExternalMemoryProperties externalMemoryProperties
5054}
5055
5056class VkPhysicalDeviceIDProperties {
5057 VkStructureType sType
5058 void* pNext
5059 u8[VK_UUID_SIZE] deviceUUID
5060 u8[VK_UUID_SIZE] driverUUID
5061 u8[VK_LUID_SIZE] deviceLUID
5062 u32 deviceNodeMask
5063 VkBool32 deviceLUIDValid
5064}
5065
5066class VkExternalMemoryImageCreateInfo {
5067 VkStructureType sType
5068 const void* pNext
5069 VkExternalMemoryHandleTypeFlags handleTypes
5070}
5071
5072class VkExternalMemoryBufferCreateInfo {
5073 VkStructureType sType
5074 const void* pNext
5075 VkExternalMemoryHandleTypeFlags handleTypes
5076}
5077
5078class VkExportMemoryAllocateInfo {
5079 VkStructureType sType
5080 const void* pNext
5081 VkExternalMemoryHandleTypeFlags handleTypes
5082}
5083
5084class VkPhysicalDeviceExternalFenceInfo {
5085 VkStructureType sType
5086 const void* pNext
5087 VkExternalFenceHandleTypeFlagBits handleType
5088}
5089
5090class VkExternalFenceProperties {
5091 VkStructureType sType
5092 void* pNext
5093 VkExternalFenceHandleTypeFlags exportFromImportedHandleTypes
5094 VkExternalFenceHandleTypeFlags compatibleHandleTypes
5095 VkExternalFenceFeatureFlags externalFenceFeatures
5096}
5097
5098class VkExportFenceCreateInfo {
5099 VkStructureType sType
5100 const void* pNext
5101 VkExternalFenceHandleTypeFlags handleTypes
5102}
5103
5104class VkExportSemaphoreCreateInfo {
5105 VkStructureType sType
5106 const void* pNext
5107 VkExternalSemaphoreHandleTypeFlags handleTypes
5108}
5109
5110class VkPhysicalDeviceExternalSemaphoreInfo {
5111 VkStructureType sType
5112 const void* pNext
5113 VkExternalSemaphoreHandleTypeFlagBits handleType
5114}
5115
5116class VkExternalSemaphoreProperties {
5117 VkStructureType sType
5118 void* pNext
5119 VkExternalSemaphoreHandleTypeFlags exportFromImportedHandleTypes
5120 VkExternalSemaphoreHandleTypeFlags compatibleHandleTypes
5121 VkExternalSemaphoreFeatureFlags externalSemaphoreFeatures
5122}
5123
5124class VkPhysicalDeviceMaintenance3Properties {
5125 VkStructureType sType
5126 void* pNext
5127 u32 maxPerSetDescriptors
5128 VkDeviceSize maxMemoryAllocationSize
5129}
5130
5131class VkDescriptorSetLayoutSupport {
5132 VkStructureType sType
5133 void* pNext
5134 VkBool32 supported
5135}
5136
5137class VkPhysicalDeviceShaderDrawParameterFeatures {
5138 VkStructureType sType
5139 void* pNext
5140 VkBool32 shaderDrawParameters
5141}
5142
5143
Jesse Hallad250842017-03-10 18:35:38 -08005144@extension("VK_KHR_surface") // 1
Jesse Hallb00daad2015-11-29 19:46:20 -08005145class VkSurfaceCapabilitiesKHR {
Jesse Hall1356b0d2015-11-23 17:24:58 -08005146 u32 minImageCount
5147 u32 maxImageCount
5148 VkExtent2D currentExtent
5149 VkExtent2D minImageExtent
5150 VkExtent2D maxImageExtent
Jesse Hallf4ab2b12015-11-30 16:04:55 -08005151 u32 maxImageArrayLayers
Jesse Hall1356b0d2015-11-23 17:24:58 -08005152 VkSurfaceTransformFlagsKHR supportedTransforms
Jesse Hallf4ab2b12015-11-30 16:04:55 -08005153 VkSurfaceTransformFlagBitsKHR currentTransform
Jesse Halla6429252015-11-29 18:59:42 -08005154 VkCompositeAlphaFlagsKHR supportedCompositeAlpha
Jesse Hall1356b0d2015-11-23 17:24:58 -08005155 VkImageUsageFlags supportedUsageFlags
Michael Lentine88594d72015-11-12 12:49:45 -08005156}
5157
Jesse Hallad250842017-03-10 18:35:38 -08005158@extension("VK_KHR_surface") // 1
Michael Lentine88594d72015-11-12 12:49:45 -08005159class VkSurfaceFormatKHR {
Jesse Hall1356b0d2015-11-23 17:24:58 -08005160 VkFormat format
5161 VkColorSpaceKHR colorSpace
Michael Lentine88594d72015-11-12 12:49:45 -08005162}
5163
Jesse Hallad250842017-03-10 18:35:38 -08005164@extension("VK_KHR_swapchain") // 2
Michael Lentine88594d72015-11-12 12:49:45 -08005165class VkSwapchainCreateInfoKHR {
Jesse Hall1356b0d2015-11-23 17:24:58 -08005166 VkStructureType sType
5167 const void* pNext
Jesse Hallf4ab2b12015-11-30 16:04:55 -08005168 VkSwapchainCreateFlagsKHR flags
Jesse Hall1356b0d2015-11-23 17:24:58 -08005169 VkSurfaceKHR surface
5170 u32 minImageCount
5171 VkFormat imageFormat
5172 VkColorSpaceKHR imageColorSpace
5173 VkExtent2D imageExtent
Jesse Hallf4ab2b12015-11-30 16:04:55 -08005174 u32 imageArrayLayers
5175 VkImageUsageFlags imageUsage
Jesse Hall1356b0d2015-11-23 17:24:58 -08005176 VkSharingMode sharingMode
Jesse Hall03b6fe12015-11-24 12:44:21 -08005177 u32 queueFamilyIndexCount
Jesse Hall1356b0d2015-11-23 17:24:58 -08005178 const u32* pQueueFamilyIndices
Jesse Hallf4ab2b12015-11-30 16:04:55 -08005179 VkSurfaceTransformFlagBitsKHR preTransform
5180 VkCompositeAlphaFlagBitsKHR compositeAlpha
Jesse Hall1356b0d2015-11-23 17:24:58 -08005181 VkPresentModeKHR presentMode
Jesse Hall1356b0d2015-11-23 17:24:58 -08005182 VkBool32 clipped
Jesse Hallf4ab2b12015-11-30 16:04:55 -08005183 VkSwapchainKHR oldSwapchain
Michael Lentine88594d72015-11-12 12:49:45 -08005184}
5185
Jesse Hallad250842017-03-10 18:35:38 -08005186@extension("VK_KHR_swapchain") // 2
Michael Lentine88594d72015-11-12 12:49:45 -08005187class VkPresentInfoKHR {
Jesse Hall1356b0d2015-11-23 17:24:58 -08005188 VkStructureType sType
5189 const void* pNext
Jesse Hallb00daad2015-11-29 19:46:20 -08005190 u32 waitSemaphoreCount
5191 const VkSemaphore* pWaitSemaphores
Jesse Hall1356b0d2015-11-23 17:24:58 -08005192 u32 swapchainCount
Jesse Hall03b6fe12015-11-24 12:44:21 -08005193 const VkSwapchainKHR* pSwapchains
Jesse Hallf4ab2b12015-11-30 16:04:55 -08005194 const u32* pImageIndices
Jesse Halle1b12782015-11-30 11:27:32 -08005195 VkResult* pResults
Michael Lentine88594d72015-11-12 12:49:45 -08005196}
5197
Ian Elliott28bd2c32017-10-13 09:21:12 -06005198@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04005199@extension("VK_KHR_swapchain") // 2
5200class VkImageSwapchainCreateInfoKHR {
5201 VkStructureType sType
5202 const void* pNext
5203 VkSwapchainKHR swapchain
5204}
5205
Ian Elliott28bd2c32017-10-13 09:21:12 -06005206@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04005207@extension("VK_KHR_swapchain") // 2
5208class VkBindImageMemorySwapchainInfoKHR {
5209 VkStructureType sType
5210 const void* pNext
5211 VkSwapchainKHR swapchain
5212 u32 imageIndex
5213}
5214
Ian Elliott28bd2c32017-10-13 09:21:12 -06005215@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04005216@extension("VK_KHR_swapchain") // 2
5217class VkAcquireNextImageInfoKHR {
5218 VkStructureType sType
5219 const void* pNext
5220 VkSwapchainKHR swapchain
5221 u64 timeout
5222 VkSemaphore semaphore
5223 VkFence fence
5224 u32 deviceMask
5225}
5226
Ian Elliott28bd2c32017-10-13 09:21:12 -06005227@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04005228@extension("VK_KHR_swapchain") // 2
5229class VkDeviceGroupPresentCapabilitiesKHR {
5230 VkStructureType sType
5231 const void* pNext
5232 u32[VK_MAX_DEVICE_GROUP_SIZE] presentMask
5233 VkDeviceGroupPresentModeFlagsKHR modes
5234}
5235
Ian Elliott28bd2c32017-10-13 09:21:12 -06005236@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04005237@extension("VK_KHR_swapchain") // 2
5238class VkDeviceGroupPresentInfoKHR {
5239 VkStructureType sType
5240 const void* pNext
5241 u32 swapchainCount
5242 const u32* pDeviceMasks
5243 VkDeviceGroupPresentModeFlagBitsKHR mode
5244}
5245
Ian Elliott28bd2c32017-10-13 09:21:12 -06005246@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04005247@extension("VK_KHR_swapchain") // 2
5248class VkDeviceGroupSwapchainCreateInfoKHR {
5249 VkStructureType sType
5250 const void* pNext
5251 VkDeviceGroupPresentModeFlagsKHR modes
5252}
5253
Jesse Hallad250842017-03-10 18:35:38 -08005254@extension("VK_KHR_display") // 3
Jesse Hall1356b0d2015-11-23 17:24:58 -08005255class VkDisplayPropertiesKHR {
5256 VkDisplayKHR display
5257 const char* displayName
5258 VkExtent2D physicalDimensions
5259 VkExtent2D physicalResolution
5260 VkSurfaceTransformFlagsKHR supportedTransforms
Jesse Hall1356b0d2015-11-23 17:24:58 -08005261 VkBool32 planeReorderPossible
Jesse Halla6429252015-11-29 18:59:42 -08005262 VkBool32 persistentContent
Michael Lentine88594d72015-11-12 12:49:45 -08005263}
5264
Jesse Hallad250842017-03-10 18:35:38 -08005265@extension("VK_KHR_display") // 3
Jesse Halla6429252015-11-29 18:59:42 -08005266class VkDisplayModeParametersKHR {
Jesse Hall1356b0d2015-11-23 17:24:58 -08005267 VkExtent2D visibleRegion
Jesse Halla6429252015-11-29 18:59:42 -08005268 u32 refreshRate
Michael Lentine88594d72015-11-12 12:49:45 -08005269}
Jesse Halld27f6aa2015-08-15 17:58:48 -07005270
Jesse Hallad250842017-03-10 18:35:38 -08005271@extension("VK_KHR_display") // 3
Jesse Hall1356b0d2015-11-23 17:24:58 -08005272class VkDisplayModePropertiesKHR {
5273 VkDisplayModeKHR displayMode
Jesse Halla6429252015-11-29 18:59:42 -08005274 VkDisplayModeParametersKHR parameters
Jesse Hall1356b0d2015-11-23 17:24:58 -08005275}
5276
Jesse Hallad250842017-03-10 18:35:38 -08005277@extension("VK_KHR_display") // 3
Jesse Hall1356b0d2015-11-23 17:24:58 -08005278class VkDisplayModeCreateInfoKHR {
5279 VkStructureType sType
5280 const void* pNext
Jesse Hall9ba8bc82015-11-30 16:22:16 -08005281 VkDisplayModeCreateFlagsKHR flags
Jesse Halla6429252015-11-29 18:59:42 -08005282 VkDisplayModeParametersKHR parameters
Jesse Hall1356b0d2015-11-23 17:24:58 -08005283}
5284
Jesse Hallad250842017-03-10 18:35:38 -08005285@extension("VK_KHR_display") // 3
Jesse Hall1356b0d2015-11-23 17:24:58 -08005286class VkDisplayPlanePropertiesKHR {
Jesse Halla6429252015-11-29 18:59:42 -08005287 VkDisplayKHR currentDisplay
5288 u32 currentStackIndex
5289}
5290
Jesse Hallad250842017-03-10 18:35:38 -08005291@extension("VK_KHR_display") // 3
Jesse Halla6429252015-11-29 18:59:42 -08005292class VkDisplayPlaneCapabilitiesKHR {
Jesse Hall1356b0d2015-11-23 17:24:58 -08005293 VkDisplayPlaneAlphaFlagsKHR supportedAlpha
5294 VkOffset2D minSrcPosition
5295 VkOffset2D maxSrcPosition
5296 VkExtent2D minSrcExtent
5297 VkExtent2D maxSrcExtent
5298 VkOffset2D minDstPosition
5299 VkOffset2D maxDstPosition
5300 VkExtent2D minDstExtent
5301 VkExtent2D maxDstExtent
5302}
5303
Jesse Hallad250842017-03-10 18:35:38 -08005304@extension("VK_KHR_display") // 3
Jesse Halla6429252015-11-29 18:59:42 -08005305class VkDisplaySurfaceCreateInfoKHR {
Jesse Hall1356b0d2015-11-23 17:24:58 -08005306 VkStructureType sType
5307 const void* pNext
Jesse Hallf4ab2b12015-11-30 16:04:55 -08005308 VkDisplaySurfaceCreateFlagsKHR flags
Jesse Hall1356b0d2015-11-23 17:24:58 -08005309 VkDisplayModeKHR displayMode
5310 u32 planeIndex
5311 u32 planeStackIndex
Jesse Hallf4ab2b12015-11-30 16:04:55 -08005312 VkSurfaceTransformFlagBitsKHR transform
Jesse Hall1356b0d2015-11-23 17:24:58 -08005313 f32 globalAlpha
Jesse Hallf4ab2b12015-11-30 16:04:55 -08005314 VkDisplayPlaneAlphaFlagBitsKHR alphaMode
5315 VkExtent2D imageExtent
Jesse Hall1356b0d2015-11-23 17:24:58 -08005316}
5317
Jesse Hallad250842017-03-10 18:35:38 -08005318@extension("VK_KHR_display_swapchain") // 4
Jesse Hall1356b0d2015-11-23 17:24:58 -08005319class VkDisplayPresentInfoKHR {
5320 VkStructureType sType
5321 const void* pNext
5322 VkRect2D srcRect
5323 VkRect2D dstRect
Jesse Halla6429252015-11-29 18:59:42 -08005324 VkBool32 persistent
Jesse Hall1356b0d2015-11-23 17:24:58 -08005325}
5326
Jesse Hallad250842017-03-10 18:35:38 -08005327@extension("VK_KHR_xlib_surface") // 5
Jesse Hallf9fa9a52016-01-08 16:08:51 -08005328class VkXlibSurfaceCreateInfoKHR {
5329 VkStructureType sType
5330 const void* pNext
5331 VkXlibSurfaceCreateFlagsKHR flags
5332 platform.Display* dpy
5333 platform.Window window
5334}
5335
Jesse Hallad250842017-03-10 18:35:38 -08005336@extension("VK_KHR_xcb_surface") // 6
Jesse Hallf9fa9a52016-01-08 16:08:51 -08005337class VkXcbSurfaceCreateInfoKHR {
5338 VkStructureType sType
5339 const void* pNext
5340 VkXcbSurfaceCreateFlagsKHR flags
5341 platform.xcb_connection_t* connection
5342 platform.xcb_window_t window
5343}
5344
Jesse Hallad250842017-03-10 18:35:38 -08005345@extension("VK_KHR_wayland_surface") // 7
Jesse Hallf9fa9a52016-01-08 16:08:51 -08005346class VkWaylandSurfaceCreateInfoKHR {
5347 VkStructureType sType
5348 const void* pNext
5349 VkWaylandSurfaceCreateFlagsKHR flags
5350 platform.wl_display* display
5351 platform.wl_surface* surface
5352}
5353
Jesse Hallad250842017-03-10 18:35:38 -08005354@extension("VK_KHR_android_surface") // 9
Jesse Hallf9fa9a52016-01-08 16:08:51 -08005355class VkAndroidSurfaceCreateInfoKHR {
5356 VkStructureType sType
5357 const void* pNext
5358 VkAndroidSurfaceCreateFlagsKHR flags
5359 platform.ANativeWindow* window
5360}
5361
Jesse Hallad250842017-03-10 18:35:38 -08005362@extension("VK_KHR_win32_surface") // 10
Jesse Hallf9fa9a52016-01-08 16:08:51 -08005363class VkWin32SurfaceCreateInfoKHR {
5364 VkStructureType sType
5365 const void* pNext
5366 VkWin32SurfaceCreateFlagsKHR flags
5367 platform.HINSTANCE hinstance
5368 platform.HWND hwnd
5369}
5370
Jesse Hallad250842017-03-10 18:35:38 -08005371@extension("VK_ANDROID_native_buffer") // 11
Jesse Halld1abd742017-02-09 21:45:51 -08005372@internal class Gralloc1Usage {
5373 u64 consumer
5374 u64 producer
5375}
5376
Jesse Hallad250842017-03-10 18:35:38 -08005377@extension("VK_ANDROID_native_buffer") // 11
Chia-I Wub262ddc2016-03-22 07:38:20 +08005378class VkNativeBufferANDROID {
5379 VkStructureType sType
5380 const void* pNext
5381 platform.buffer_handle_t handle
Jesse Halld1abd742017-02-09 21:45:51 -08005382 s32 stride
5383 s32 format
5384 s32 usage
5385 Gralloc1Usage usage2
Chia-I Wub262ddc2016-03-22 07:38:20 +08005386}
5387
Jesse Hallad250842017-03-10 18:35:38 -08005388@extension("VK_ANDROID_native_buffer") // 11
Chris Forbes8e4438b2016-12-07 16:26:49 +13005389class VkSwapchainImageCreateInfoANDROID {
5390 VkStructureType sType
5391 const void* pNext
Chris Forbes134d9582017-01-12 14:26:37 +13005392 VkSwapchainImageUsageFlagsANDROID flags
Chris Forbes48853712017-01-12 14:09:33 +13005393}
Ian Elliott4c8bb2a2016-12-29 11:07:26 -07005394
Jesse Hallad250842017-03-10 18:35:38 -08005395@extension("VK_ANDROID_native_buffer") // 11
Chris Forbes1d4e5542017-02-15 19:38:50 +13005396class VkPhysicalDevicePresentationPropertiesANDROID {
5397 VkStructureType sType
5398 void* pNext
5399 VkBool32 sharedImage
5400}
5401
Jesse Hallad250842017-03-10 18:35:38 -08005402@extension("VK_EXT_debug_report") // 12
Jesse Hall715b86a2016-01-16 16:34:29 -08005403class VkDebugReportCallbackCreateInfoEXT {
5404 VkStructureType sType
5405 const void* pNext
5406 VkDebugReportFlagsEXT flags
5407 PFN_vkDebugReportCallbackEXT pfnCallback
5408 void* pUserData
5409}
5410
Jesse Hallad250842017-03-10 18:35:38 -08005411@extension("VK_AMD_rasterization_order") // 19
Jesse Hall26763382016-05-20 07:13:52 -07005412class VkPipelineRasterizationStateRasterizationOrderAMD {
5413 VkStructureType sType
5414 const void* pNext
5415 VkRasterizationOrderAMD rasterizationOrder
5416}
5417
Jesse Hallad250842017-03-10 18:35:38 -08005418@extension("VK_EXT_debug_marker") // 23
Jesse Hall26763382016-05-20 07:13:52 -07005419class VkDebugMarkerObjectNameInfoEXT {
5420 VkStructureType sType
5421 const void* pNext
5422 VkDebugReportObjectTypeEXT objectType
5423 u64 object
5424 const char* pObjectName
5425}
5426
Jesse Hallad250842017-03-10 18:35:38 -08005427@extension("VK_EXT_debug_marker") // 23
Jesse Hall26763382016-05-20 07:13:52 -07005428class VkDebugMarkerObjectTagInfoEXT {
5429 VkStructureType sType
5430 const void* pNext
5431 VkDebugReportObjectTypeEXT objectType
5432 u64 object
5433 u64 tagName
5434 platform.size_t tagSize
5435 const void* pTag
5436}
5437
Jesse Hallad250842017-03-10 18:35:38 -08005438@extension("VK_EXT_debug_marker") // 23
Jesse Hall26763382016-05-20 07:13:52 -07005439class VkDebugMarkerMarkerInfoEXT {
5440 VkStructureType sType
5441 const void* pNext
5442 const char* pMarkerName
5443 f32[4] color
5444}
5445
Jesse Hallad250842017-03-10 18:35:38 -08005446@extension("VK_NV_dedicated_allocation") // 27
Jesse Hall56d386a2016-07-26 15:20:40 -07005447class VkDedicatedAllocationImageCreateInfoNV {
5448 VkStructureType sType
5449 const void* pNext
5450 VkBool32 dedicatedAllocation
5451}
5452
Jesse Hallad250842017-03-10 18:35:38 -08005453@extension("VK_NV_dedicated_allocation") // 27
Jesse Hall56d386a2016-07-26 15:20:40 -07005454class VkDedicatedAllocationBufferCreateInfoNV {
5455 VkStructureType sType
5456 const void* pNext
5457 VkBool32 dedicatedAllocation
5458}
5459
Jesse Hallad250842017-03-10 18:35:38 -08005460@extension("VK_NV_dedicated_allocation") // 27
Jesse Hall56d386a2016-07-26 15:20:40 -07005461class VkDedicatedAllocationMemoryAllocateInfoNV {
5462 VkStructureType sType
5463 const void* pNext
5464 VkImage image
5465 VkBuffer buffer
5466}
5467
Jesse Hallf47e8f82018-10-27 23:41:45 -07005468@extension("VK_EXT_transform_feedback") // 29
5469class VkPhysicalDeviceTransformFeedbackFeaturesEXT {
5470 VkStructureType sType
5471 void* pNext
5472 VkBool32 transformFeedback
5473 VkBool32 geometryStreams
5474}
5475
5476@extension("VK_EXT_transform_feedback") // 29
5477class VkPhysicalDeviceTransformFeedbackPropertiesEXT {
5478 VkStructureType sType
5479 void* pNext
5480 u32 maxTransformFeedbackStreams
5481 u32 maxTransformFeedbackBuffers
5482 VkDeviceSize maxTransformFeedbackBufferSize
5483 u32 maxTransformFeedbackStreamDataSize
5484 u32 maxTransformFeedbackBufferDataSize
5485 u32 maxTransformFeedbackBufferDataStride
5486 VkBool32 transformFeedbackQueries
5487 VkBool32 transformFeedbackStreamsLinesTriangles
5488 VkBool32 transformFeedbackRasterizationStreamSelect
5489 VkBool32 transformFeedbackDraw
5490}
5491
5492@extension("VK_EXT_transform_feedback") // 29
5493class VkPipelineRasterizationStateStreamCreateInfoEXT {
5494 VkStructureType sType
5495 const void* pNext
5496 VkPipelineRasterizationStateStreamCreateFlagsEXT flags
5497 u32 rasterizationStream
5498}
5499
Jesse Hall7ba0ac72017-07-07 17:13:23 -07005500@extension("VK_AMD_texture_gather_bias_lod") // 42
5501class VkTextureLODGatherFormatPropertiesAMD {
5502 VkStructureType sType
5503 void* pNext
5504 VkBool32 supportsTextureGatherLODBiasAMD
5505}
5506
Jesse Hall8c954d32018-01-17 22:06:20 -08005507@extension("VK_AMD_shader_info") // 43
5508class VkShaderResourceUsageAMD {
5509 u32 numUsedVgprs
5510 u32 numUsedSgprs
5511 u32 ldsSizePerLocalWorkGroup
5512 platform.size_t ldsUsageSizeInBytes
5513 platform.size_t scratchMemUsageInBytes
5514}
5515
5516@extension("VK_AMD_shader_info") // 43
5517class VkShaderStatisticsInfoAMD {
5518 VkShaderStageFlags shaderStageMask
5519 VkShaderResourceUsageAMD resourceUsage
5520 u32 numPhysicalVgprs
5521 u32 numPhysicalSgprs
5522 u32 numAvailableVgprs
5523 u32 numAvailableSgprs
5524 u32[3] computeWorkGroupSize
5525}
5526
Jesse Hallb5297192018-09-22 20:52:13 +02005527@extension("VK_NV_corner_sampled_image") // 51
5528class VkPhysicalDeviceCornerSampledImageFeaturesNV {
5529 VkStructureType sType
5530 void* pNext
5531 VkBool32 cornerSampledImage
5532}
5533
Daniel Koch09f7bf92017-10-05 00:26:58 -04005534@extension("VK_KHR_multiview") // 54
5535class VkRenderPassMultiviewCreateInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005536 VkStructureType sType
5537 const void* pNext
5538 u32 subpassCount
5539 const u32* pViewMasks
5540 u32 dependencyCount
5541 const s32* pViewOffsets
5542 u32 correlationMaskCount
5543 const u32* pCorrelationMasks
5544}
5545
Daniel Koch09f7bf92017-10-05 00:26:58 -04005546@extension("VK_KHR_multiview") // 54
5547class VkPhysicalDeviceMultiviewFeaturesKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005548 VkStructureType sType
5549 void* pNext
5550 VkBool32 multiview
5551 VkBool32 multiviewGeometryShader
5552 VkBool32 multiviewTessellationShader
5553}
5554
Daniel Koch09f7bf92017-10-05 00:26:58 -04005555@extension("VK_KHR_multiview") // 54
5556class VkPhysicalDeviceMultiviewPropertiesKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005557 VkStructureType sType
5558 void* pNext
5559 u32 maxMultiviewViewCount
5560 u32 maxMultiviewInstanceIndex
5561}
5562
5563@extension("VK_NV_external_memory_capabilities") // 56
Jesse Halleb02c472017-02-24 15:13:45 -08005564class VkExternalImageFormatPropertiesNV {
5565 VkImageFormatProperties imageFormatProperties
5566 VkExternalMemoryFeatureFlagsNV externalMemoryFeatures
5567 VkExternalMemoryHandleTypeFlagsNV exportFromImportedHandleTypes
5568 VkExternalMemoryHandleTypeFlagsNV compatibleHandleTypes
5569}
5570
Jesse Hallad250842017-03-10 18:35:38 -08005571@extension("VK_NV_external_memory") // 57
Jesse Halleb02c472017-02-24 15:13:45 -08005572class VkExternalMemoryImageCreateInfoNV {
5573 VkStructureType sType
5574 const void* pNext
5575 VkExternalMemoryHandleTypeFlagsNV handleTypes
5576}
5577
Jesse Hallad250842017-03-10 18:35:38 -08005578@extension("VK_NV_external_memory") // 57
Jesse Halleb02c472017-02-24 15:13:45 -08005579class VkExportMemoryAllocateInfoNV {
5580 VkStructureType sType
5581 const void* pNext
5582 VkExternalMemoryHandleTypeFlagsNV handleTypes
5583}
5584
Jesse Hallad250842017-03-10 18:35:38 -08005585@extension("VK_NV_external_memory_win32") // 58
Jesse Halleb02c472017-02-24 15:13:45 -08005586class VkImportMemoryWin32HandleInfoNV {
5587 VkStructureType sType
5588 const void* pNext
5589 VkExternalMemoryHandleTypeFlagsNV handleType
5590 platform.HANDLE handle
5591}
5592
Jesse Hallad250842017-03-10 18:35:38 -08005593@extension("VK_NV_external_memory_win32") // 58
Jesse Halleb02c472017-02-24 15:13:45 -08005594class VkExportMemoryWin32HandleInfoNV {
5595 VkStructureType sType
5596 const void* pNext
5597 const platform.SECURITY_ATTRIBUTES* pAttributes
5598 platform.DWORD dwAccess
5599}
5600
Jesse Hallad250842017-03-10 18:35:38 -08005601@extension("VK_NV_win32_keyed_mutex") // 59
Jesse Halleb02c472017-02-24 15:13:45 -08005602class VkWin32KeyedMutexAcquireReleaseInfoNV {
5603 VkStructureType sType
5604 const void* pNext
5605 u32 acquireCount
5606 const VkDeviceMemory* pAcquireSyncs
5607 const u64* pAcquireKeys
5608 const u32* pAcquireTimeoutMilliseconds
5609 u32 releaseCount
5610 const VkDeviceMemory* pReleaseSyncs
5611 const u64* pReleaseKeys
5612}
5613
Jesse Hallad250842017-03-10 18:35:38 -08005614@extension("VK_KHR_get_physical_device_properties2") // 60
Chris Forbes1194ede2016-12-30 16:29:25 +13005615class VkPhysicalDeviceFeatures2KHR {
5616 VkStructureType sType
5617 void* pNext
5618 VkPhysicalDeviceFeatures features
5619}
5620
Jesse Hallad250842017-03-10 18:35:38 -08005621@extension("VK_KHR_get_physical_device_properties2") // 60
Chris Forbes1194ede2016-12-30 16:29:25 +13005622class VkPhysicalDeviceProperties2KHR {
5623 VkStructureType sType
5624 void* pNext
5625 VkPhysicalDeviceProperties properties
5626}
5627
Jesse Hallad250842017-03-10 18:35:38 -08005628@extension("VK_KHR_get_physical_device_properties2") // 60
Chris Forbes1194ede2016-12-30 16:29:25 +13005629class VkFormatProperties2KHR {
5630 VkStructureType sType
5631 void* pNext
5632 VkFormatProperties formatProperties
5633}
5634
Jesse Hallad250842017-03-10 18:35:38 -08005635@extension("VK_KHR_get_physical_device_properties2") // 60
Chris Forbes1194ede2016-12-30 16:29:25 +13005636class VkImageFormatProperties2KHR {
5637 VkStructureType sType
5638 void* pNext
5639 VkImageFormatProperties imageFormatProperties
5640}
5641
Jesse Hallad250842017-03-10 18:35:38 -08005642@extension("VK_KHR_get_physical_device_properties2") // 60
Chris Forbes1194ede2016-12-30 16:29:25 +13005643class VkPhysicalDeviceImageFormatInfo2KHR {
5644 VkStructureType sType
5645 const void* pNext
5646 VkFormat format
5647 VkImageType type
5648 VkImageTiling tiling
5649 VkImageUsageFlags usage
5650 VkImageCreateFlags flags
5651}
5652
Jesse Hallad250842017-03-10 18:35:38 -08005653@extension("VK_KHR_get_physical_device_properties2") // 60
Chris Forbes1194ede2016-12-30 16:29:25 +13005654class VkQueueFamilyProperties2KHR {
5655 VkStructureType sType
5656 void* pNext
5657 VkQueueFamilyProperties queueFamilyProperties
5658}
5659
Jesse Hallad250842017-03-10 18:35:38 -08005660@extension("VK_KHR_get_physical_device_properties2") // 60
Chris Forbes1194ede2016-12-30 16:29:25 +13005661class VkPhysicalDeviceMemoryProperties2KHR {
5662 VkStructureType sType
5663 void* pNext
5664 VkPhysicalDeviceMemoryProperties memoryProperties
5665}
5666
Jesse Hallad250842017-03-10 18:35:38 -08005667@extension("VK_KHR_get_physical_device_properties2") // 60
Chris Forbes1194ede2016-12-30 16:29:25 +13005668class VkSparseImageFormatProperties2KHR {
5669 VkStructureType sType
5670 void* pNext
5671 VkSparseImageFormatProperties properties
5672}
5673
Jesse Hallad250842017-03-10 18:35:38 -08005674@extension("VK_KHR_get_physical_device_properties2") // 60
Chris Forbes1194ede2016-12-30 16:29:25 +13005675class VkPhysicalDeviceSparseImageFormatInfo2KHR {
5676 VkStructureType sType
5677 const void* pNext
5678 VkFormat format
5679 VkImageType type
5680 VkSampleCountFlagBits samples
5681 VkImageUsageFlags usage
5682 VkImageTiling tiling
5683}
5684
Daniel Koch09f7bf92017-10-05 00:26:58 -04005685@extension("VK_KHR_device_group") // 61
5686class VkMemoryAllocateFlagsInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005687 VkStructureType sType
5688 const void* pNext
Daniel Koch09f7bf92017-10-05 00:26:58 -04005689 VkMemoryAllocateFlagsKHR flags
Jesse Hallad250842017-03-10 18:35:38 -08005690 u32 deviceMask
5691}
5692
Daniel Koch09f7bf92017-10-05 00:26:58 -04005693@extension("VK_KHR_device_group") // 61
5694class VkBindBufferMemoryDeviceGroupInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005695 VkStructureType sType
5696 const void* pNext
Jesse Hallad250842017-03-10 18:35:38 -08005697 u32 deviceIndexCount
5698 const u32* pDeviceIndices
5699}
5700
Daniel Koch09f7bf92017-10-05 00:26:58 -04005701@extension("VK_KHR_device_group") // 61
5702class VkBindImageMemoryDeviceGroupInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005703 VkStructureType sType
5704 const void* pNext
Jesse Hallad250842017-03-10 18:35:38 -08005705 u32 deviceIndexCount
5706 const u32* pDeviceIndices
5707 u32 SFRRectCount
5708 const VkRect2D* pSFRRects
5709}
5710
Daniel Koch09f7bf92017-10-05 00:26:58 -04005711@extension("VK_KHR_device_group") // 61
5712class VkDeviceGroupRenderPassBeginInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005713 VkStructureType sType
5714 const void* pNext
5715 u32 deviceMask
5716 u32 deviceRenderAreaCount
5717 const VkRect2D* pDeviceRenderAreas
5718}
5719
Daniel Koch09f7bf92017-10-05 00:26:58 -04005720@extension("VK_KHR_device_group") // 61
5721class VkDeviceGroupCommandBufferBeginInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005722 VkStructureType sType
5723 const void* pNext
5724 u32 deviceMask
5725}
5726
Daniel Koch09f7bf92017-10-05 00:26:58 -04005727@extension("VK_KHR_device_group") // 61
5728class VkDeviceGroupSubmitInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005729 VkStructureType sType
5730 const void* pNext
5731 u32 waitSemaphoreCount
5732 const u32* pWaitSemaphoreDeviceIndices
5733 u32 commandBufferCount
5734 const u32* pCommandBufferDeviceMasks
5735 u32 signalSemaphoreCount
5736 const u32* pSignalSemaphoreDeviceIndices
5737}
5738
Daniel Koch09f7bf92017-10-05 00:26:58 -04005739@extension("VK_KHR_device_group") // 61
5740class VkDeviceGroupBindSparseInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005741 VkStructureType sType
5742 const void* pNext
5743 u32 resourceDeviceIndex
5744 u32 memoryDeviceIndex
5745}
5746
Jesse Hallad250842017-03-10 18:35:38 -08005747@extension("VK_EXT_validation_flags") // 62
Chris Forbes289cb792016-12-30 15:03:55 +13005748class VkValidationFlagsEXT {
5749 VkStructureType sType
5750 const void* pNext
5751 u32 disabledValidationCheckCount
Jesse Hall115df0c2018-07-30 12:00:59 -07005752 const VkValidationCheckEXT* pDisabledValidationChecks
Chris Forbes289cb792016-12-30 15:03:55 +13005753}
5754
Jesse Hallad250842017-03-10 18:35:38 -08005755@extension("VK_NN_vi_surface") // 63
Jesse Hall77ad05b2017-03-10 22:02:20 -08005756class VkViSurfaceCreateInfoNN {
5757 VkStructureType sType
5758 const void* pNext
5759 VkViSurfaceCreateFlagsNN flags
5760 void* window
5761}
5762
Jesse Hall4af6c462018-09-10 09:04:25 -07005763@extension("VK_EXT_astc_decode_mode") // 68
5764class VkImageViewASTCDecodeModeEXT {
5765 VkStructureType sType
5766 const void* pNext
5767 VkFormat decodeMode
5768}
5769
5770@extension("VK_EXT_astc_decode_mode") // 68
5771class VkPhysicalDeviceASTCDecodeFeaturesEXT {
5772 VkStructureType sType
5773 void* pNext
5774 VkBool32 decodeModeSharedExponent
5775}
5776
Daniel Koch09f7bf92017-10-05 00:26:58 -04005777@extension("VK_KHR_device_group_creation") // 71
5778class VkPhysicalDeviceGroupPropertiesKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005779 VkStructureType sType
Jesse Hallf5ad48b2017-03-20 13:09:19 -07005780 void* pNext
Jesse Hallad250842017-03-10 18:35:38 -08005781 u32 physicalDeviceCount
Daniel Koch09f7bf92017-10-05 00:26:58 -04005782 VkPhysicalDevice[VK_MAX_DEVICE_GROUP_SIZE] physicalDevices
Jesse Hallad250842017-03-10 18:35:38 -08005783 VkBool32 subsetAllocation
5784}
5785
Daniel Koch09f7bf92017-10-05 00:26:58 -04005786@extension("VK_KHR_device_group_creation") // 71
5787class VkDeviceGroupDeviceCreateInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005788 VkStructureType sType
5789 const void* pNext
5790 u32 physicalDeviceCount
5791 const VkPhysicalDevice* pPhysicalDevices
5792}
5793
Jesse Hall9492f992017-08-28 12:10:06 -07005794@extension("VK_KHR_external_memory_capabilities") // 72
5795class VkExternalMemoryPropertiesKHR {
5796 VkExternalMemoryFeatureFlagsKHR externalMemoryFeatures
5797 VkExternalMemoryHandleTypeFlagsKHR exportFromImportedHandleTypes
5798 VkExternalMemoryHandleTypeFlagsKHR compatibleHandleTypes
Jesse Hallad250842017-03-10 18:35:38 -08005799}
5800
Jesse Hall9492f992017-08-28 12:10:06 -07005801@extension("VK_KHR_external_memory_capabilities") // 72
5802class VkPhysicalDeviceExternalImageFormatInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005803 VkStructureType sType
5804 const void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005805 VkExternalMemoryHandleTypeFlagBitsKHR handleType
Jesse Hallad250842017-03-10 18:35:38 -08005806}
5807
Jesse Hall9492f992017-08-28 12:10:06 -07005808@extension("VK_KHR_external_memory_capabilities") // 72
5809class VkExternalImageFormatPropertiesKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005810 VkStructureType sType
5811 void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005812 VkExternalMemoryPropertiesKHR externalMemoryProperties
Jesse Hallad250842017-03-10 18:35:38 -08005813}
5814
Jesse Hall9492f992017-08-28 12:10:06 -07005815@extension("VK_KHR_external_memory_capabilities") // 72
5816class VkPhysicalDeviceExternalBufferInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005817 VkStructureType sType
5818 const void* pNext
5819 VkBufferCreateFlags flags
5820 VkBufferUsageFlags usage
Jesse Hall9492f992017-08-28 12:10:06 -07005821 VkExternalMemoryHandleTypeFlagBitsKHR handleType
Jesse Hallad250842017-03-10 18:35:38 -08005822}
5823
Jesse Hall9492f992017-08-28 12:10:06 -07005824@extension("VK_KHR_external_memory_capabilities") // 72
5825class VkExternalBufferPropertiesKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005826 VkStructureType sType
5827 void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005828 VkExternalMemoryPropertiesKHR externalMemoryProperties
Jesse Hallad250842017-03-10 18:35:38 -08005829}
5830
Jesse Hall9492f992017-08-28 12:10:06 -07005831@extension("VK_KHR_external_memory_capabilities") // 72
5832class VkPhysicalDeviceIDPropertiesKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005833 VkStructureType sType
5834 void* pNext
5835 u8[VK_UUID_SIZE] deviceUUID
5836 u8[VK_UUID_SIZE] driverUUID
Daniel Koch09f7bf92017-10-05 00:26:58 -04005837 u8[VK_LUID_SIZE] deviceLUID
Jesse Hall9492f992017-08-28 12:10:06 -07005838 u32 deviceNodeMask
Jesse Hallad250842017-03-10 18:35:38 -08005839 VkBool32 deviceLUIDValid
5840}
5841
Jesse Hall9492f992017-08-28 12:10:06 -07005842@extension("VK_KHR_external_memory") // 73
5843class VkExternalMemoryImageCreateInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005844 VkStructureType sType
5845 const void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005846 VkExternalMemoryHandleTypeFlagsKHR handleTypes
Jesse Hallad250842017-03-10 18:35:38 -08005847}
5848
Jesse Hall9492f992017-08-28 12:10:06 -07005849@extension("VK_KHR_external_memory") // 73
5850class VkExternalMemoryBufferCreateInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005851 VkStructureType sType
5852 const void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005853 VkExternalMemoryHandleTypeFlagsKHR handleTypes
Jesse Hallad250842017-03-10 18:35:38 -08005854}
5855
Jesse Hall9492f992017-08-28 12:10:06 -07005856@extension("VK_KHR_external_memory") // 73
5857class VkExportMemoryAllocateInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005858 VkStructureType sType
5859 const void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005860 VkExternalMemoryHandleTypeFlagsKHR handleTypes
Jesse Hallad250842017-03-10 18:35:38 -08005861}
5862
Jesse Hall9492f992017-08-28 12:10:06 -07005863@extension("VK_KHR_external_memory_win32") // 74
5864class VkImportMemoryWin32HandleInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005865 VkStructureType sType
5866 const void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005867 VkExternalMemoryHandleTypeFlagBitsKHR handleType
Jesse Hallad250842017-03-10 18:35:38 -08005868 platform.HANDLE handle
Jesse Hall9492f992017-08-28 12:10:06 -07005869 platform.LPCWSTR name
Jesse Hallad250842017-03-10 18:35:38 -08005870}
5871
Jesse Hall9492f992017-08-28 12:10:06 -07005872@extension("VK_KHR_external_memory_win32") // 74
5873class VkExportMemoryWin32HandleInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005874 VkStructureType sType
5875 const void* pNext
5876 const platform.SECURITY_ATTRIBUTES* pAttributes
5877 platform.DWORD dwAccess
5878 platform.LPCWSTR name
5879}
5880
Jesse Hall9492f992017-08-28 12:10:06 -07005881@extension("VK_KHR_external_memory_win32") // 74
5882class VkMemoryWin32HandlePropertiesKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005883 VkStructureType sType
5884 void* pNext
5885 u32 memoryTypeBits
5886}
5887
Jesse Hall9492f992017-08-28 12:10:06 -07005888@extension("VK_KHR_external_memory_win32") // 74
5889class VkMemoryGetWin32HandleInfoKHR {
5890 VkStructureType sType
5891 void* pNext
5892 VkDeviceMemory memory
5893 VkExternalMemoryHandleTypeFlagBitsKHR handleType
5894}
5895
5896@extension("VK_KHR_external_memory_fd") // 75
5897class VkImportMemoryFdInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005898 VkStructureType sType
5899 const void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005900 VkExternalMemoryHandleTypeFlagBitsKHR handleType
Jesse Hallad250842017-03-10 18:35:38 -08005901 int fd
5902}
5903
Jesse Hall9492f992017-08-28 12:10:06 -07005904@extension("VK_KHR_external_memory_fd") // 75
5905class VkMemoryFdPropertiesKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005906 VkStructureType sType
5907 void* pNext
5908 u32 memoryTypeBits
5909}
5910
Jesse Hall9492f992017-08-28 12:10:06 -07005911@extension("VK_KHR_external_memory_fd") // 75
5912class VkMemoryGetFdInfoKHR {
5913 VkStructureType sType
5914 void* pNext
5915 VkDeviceMemory memory
5916 VkExternalMemoryHandleTypeFlagBitsKHR handleType
5917}
5918
5919@extension("VK_KHR_win32_keyed_mutex") // 76
5920class VkWin32KeyedMutexAcquireReleaseInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005921 VkStructureType sType
5922 const void* pNext
5923 u32 acquireCount
5924 const VkDeviceMemory* pAcquireSyncs
5925 const u64* pAcquireKeys
5926 const u32* pAcquireTimeouts
5927 u32 releaseCount
5928 const VkDeviceMemory* pReleaseSyncs
5929 const u64* pReleaseKeys
5930}
5931
Jesse Hall9492f992017-08-28 12:10:06 -07005932@extension("VK_KHR_external_semaphore_capabilities") // 77
5933class VkPhysicalDeviceExternalSemaphoreInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005934 VkStructureType sType
5935 const void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005936 VkExternalSemaphoreHandleTypeFlagBitsKHR handleType
Jesse Hallad250842017-03-10 18:35:38 -08005937}
5938
Jesse Hall9492f992017-08-28 12:10:06 -07005939@extension("VK_KHR_external_semaphore_capabilities") // 77
5940class VkExternalSemaphorePropertiesKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005941 VkStructureType sType
5942 void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005943 VkExternalSemaphoreHandleTypeFlagsKHR exportFromImportedHandleTypes
5944 VkExternalSemaphoreHandleTypeFlagsKHR compatibleHandleTypes
5945 VkExternalSemaphoreFeatureFlagsKHR externalSemaphoreFeatures
Jesse Hallad250842017-03-10 18:35:38 -08005946}
5947
Jesse Hall9492f992017-08-28 12:10:06 -07005948@extension("VK_KHR_external_semaphore") // 78
5949class VkExportSemaphoreCreateInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005950 VkStructureType sType
5951 const void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005952 VkExternalSemaphoreHandleTypeFlagsKHR handleTypes
Jesse Hallad250842017-03-10 18:35:38 -08005953}
5954
Jesse Hall9492f992017-08-28 12:10:06 -07005955@extension("VK_KHR_external_semaphore_win32") // 79
5956class VkImportSemaphoreWin32HandleInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005957 VkStructureType sType
5958 const void* pNext
5959 VkSemaphore semaphore
Jesse Hall9492f992017-08-28 12:10:06 -07005960 VkSemaphoreImportFlagsKHR flags
5961 VkExternalSemaphoreHandleTypeFlagsKHR handleType
Jesse Hallad250842017-03-10 18:35:38 -08005962 platform.HANDLE handle
Jesse Hall9492f992017-08-28 12:10:06 -07005963 platform.LPCWSTR name
Jesse Hallad250842017-03-10 18:35:38 -08005964}
5965
Jesse Hall9492f992017-08-28 12:10:06 -07005966@extension("VK_KHR_external_semaphore_win32") // 79
5967class VkExportSemaphoreWin32HandleInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005968 VkStructureType sType
5969 const void* pNext
5970 const platform.SECURITY_ATTRIBUTES* pAttributes
5971 platform.DWORD dwAccess
5972 platform.LPCWSTR name
5973}
5974
Jesse Hall9492f992017-08-28 12:10:06 -07005975@extension("VK_KHR_external_semaphore_win32") // 79
5976class VkD3D12FenceSubmitInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005977 VkStructureType sType
5978 const void* pNext
5979 u32 waitSemaphoreValuesCount
5980 const u64* pWaitSemaphoreValues
5981 u32 signalSemaphoreValuesCount
5982 const u64* pSignalSemaphoreValues
5983}
5984
Jesse Hall9492f992017-08-28 12:10:06 -07005985@extension("VK_KHR_external_semaphore_win32") // 79
5986class VkSemaphoreGetWin32HandleInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005987 VkStructureType sType
5988 const void* pNext
5989 VkSemaphore semaphore
Jesse Hall9492f992017-08-28 12:10:06 -07005990 VkExternalSemaphoreHandleTypeFlagBitsKHR handleType
5991}
5992
5993@extension("VK_KHR_external_semaphore_fd") // 80
5994class VkImportSemaphoreFdInfoKHR {
5995 VkStructureType sType
5996 const void* pNext
5997 VkSemaphore semaphore
5998 VkSemaphoreImportFlagsKHR flags
5999 VkExternalSemaphoreHandleTypeFlagBitsKHR handleType
Jesse Hallad250842017-03-10 18:35:38 -08006000 s32 fd
6001}
6002
Jesse Hall9492f992017-08-28 12:10:06 -07006003@extension("VK_KHR_external_semaphore_fd") // 80
6004class VkSemaphoreGetFdInfoKHR {
6005 VkStructureType sType
6006 const void* pNext
6007 VkSemaphore semaphore
6008 VkExternalSemaphoreHandleTypeFlagBitsKHR handleType
6009}
6010
Jesse Hallad250842017-03-10 18:35:38 -08006011@extension("VK_KHR_push_descriptor") // 81
6012class VkPhysicalDevicePushDescriptorPropertiesKHR {
6013 VkStructureType sType
6014 void* pNext
6015 u32 maxPushDescriptors
6016}
6017
Jesse Halla13a3cf2018-07-09 15:51:52 -07006018@extension("VK_EXT_conditional_rendering") // 82
6019class VkConditionalRenderingBeginInfoEXT {
6020 VkStructureType sType
6021 const void* pNext
6022 VkBuffer buffer
6023 VkDeviceSize offset
6024 VkConditionalRenderingFlagsEXT flags
6025}
6026
6027@extension("VK_EXT_conditional_rendering") // 82
6028class VkPhysicalDeviceConditionalRenderingFeaturesEXT {
6029 VkStructureType sType
6030 void* pNext
6031 VkBool32 conditionalRendering
6032 VkBool32 inheritedConditionalRendering
6033}
6034
6035@extension("VK_EXT_conditional_rendering") // 82
6036class VkCommandBufferInheritanceConditionalRenderingInfoEXT {
6037 VkStructureType sType
6038 const void* pNext
6039 VkBool32 conditionalRenderingEnable
6040}
6041
Jesse Hall9492f992017-08-28 12:10:06 -07006042@extension("VK_KHR_16bit_storage") // 84
6043class VkPhysicalDevice16BitStorageFeaturesKHR {
6044 VkStructureType sType
6045 void* pNext
6046 VkBool32 storageBuffer16BitAccess
6047 VkBool32 uniformAndStorageBuffer16BitAccess
6048 VkBool32 storagePushConstant16
6049 VkBool32 storageInputOutput16
6050}
6051
Jesse Hallad250842017-03-10 18:35:38 -08006052@extension("VK_KHR_incremental_present") // 85
6053class VkRectLayerKHR {
6054 VkOffset2D offset
6055 VkExtent2D extent
6056 u32 layer
6057}
6058
6059@extension("VK_KHR_incremental_present") // 85
6060class VkPresentRegionKHR {
6061 u32 rectangleCount
6062 const VkRectLayerKHR* pRectangles
6063}
6064
6065@extension("VK_KHR_incremental_present") // 85
6066class VkPresentRegionsKHR {
6067 VkStructureType sType
6068 const void* pNext
6069 u32 swapchainCount
6070 const VkPresentRegionKHR* pRegions
6071}
6072
6073@extension("VK_KHR_descriptor_update_template") // 86
6074class VkDescriptorUpdateTemplateEntryKHR {
6075 u32 dstBinding
6076 u32 dstArrayElement
6077 u32 descriptorCount
6078 VkDescriptorType descriptorType
6079 platform.size_t offset
6080 platform.size_t stride
6081}
6082
6083@extension("VK_KHR_descriptor_update_template") // 86
6084class VkDescriptorUpdateTemplateCreateInfoKHR {
6085 VkStructureType sType
6086 void* pNext
6087 VkDescriptorUpdateTemplateCreateFlagsKHR flags
6088 u32 descriptorUpdateEntryCount
6089 const VkDescriptorUpdateTemplateEntryKHR* pDescriptorUpdateEntries
6090 VkDescriptorUpdateTemplateTypeKHR templateType
6091 VkDescriptorSetLayout descriptorSetLayout
6092 VkPipelineBindPoint pipelineBindPoint
6093 VkPipelineLayout pipelineLayout
6094 u32 set
6095}
6096
6097@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13006098class VkDeviceGeneratedCommandsFeaturesNVX {
6099 VkStructureType sType
6100 const void* pNext
6101 VkBool32 computeBindingPointSupport
6102}
6103
Jesse Hallad250842017-03-10 18:35:38 -08006104@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13006105class VkDeviceGeneratedCommandsLimitsNVX {
6106 VkStructureType sType
6107 const void* pNext
6108 u32 maxIndirectCommandsLayoutTokenCount
6109 u32 maxObjectEntryCounts
6110 u32 minSequenceCountBufferOffsetAlignment
6111 u32 minSequenceIndexBufferOffsetAlignment
6112 u32 minCommandsTokenBufferOffsetAlignment
6113}
6114
Jesse Hallad250842017-03-10 18:35:38 -08006115@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13006116class VkIndirectCommandsTokenNVX {
6117 VkIndirectCommandsTokenTypeNVX tokenType
6118 VkBuffer buffer
6119 VkDeviceSize offset
6120}
6121
Jesse Hallad250842017-03-10 18:35:38 -08006122@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13006123class VkIndirectCommandsLayoutTokenNVX {
6124 VkIndirectCommandsTokenTypeNVX tokenType
6125 u32 bindingUnit
6126 u32 dynamicCount
6127 u32 divisor
6128}
6129
Jesse Hallad250842017-03-10 18:35:38 -08006130@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13006131class VkIndirectCommandsLayoutCreateInfoNVX {
6132 VkStructureType sType
6133 const void* pNext
6134 VkPipelineBindPoint pipelineBindPoint
6135 VkIndirectCommandsLayoutUsageFlagsNVX flags
6136 u32 tokenCount
6137 const VkIndirectCommandsLayoutTokenNVX* pTokens
6138}
6139
Jesse Hallad250842017-03-10 18:35:38 -08006140@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13006141class VkCmdProcessCommandsInfoNVX {
6142 VkStructureType sType
6143 const void* pNext
6144 VkObjectTableNVX objectTable
6145 VkIndirectCommandsLayoutNVX indirectCommandsLayout
6146 u32 indirectCommandsTokenCount
6147 const VkIndirectCommandsTokenNVX* pIndirectCommandsTokens
6148 u32 maxSequencesCount
6149 VkCommandBuffer targetCommandBuffer
6150 VkBuffer sequencesCountBuffer
6151 VkDeviceSize sequencesCountOffset
6152 VkBuffer sequencesIndexBuffer
6153 VkDeviceSize sequencesIndexOffset
6154}
6155
Jesse Hallad250842017-03-10 18:35:38 -08006156@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13006157class VkCmdReserveSpaceForCommandsInfoNVX {
6158 VkStructureType sType
6159 const void* pNext
6160 VkObjectTableNVX objectTable
6161 VkIndirectCommandsLayoutNVX indirectCommandsLayout
6162 u32 maxSequencesCount
6163}
6164
Jesse Hallad250842017-03-10 18:35:38 -08006165@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13006166class VkObjectTableCreateInfoNVX {
6167 VkStructureType sType
6168 const void* pNext
6169 u32 objectCount
6170 const VkObjectEntryTypeNVX* pObjectEntryTypes
6171 const u32* pObjectEntryCounts
6172 const VkObjectEntryUsageFlagsNVX* pObjectEntryUsageFlags
6173 u32 maxUniformBuffersPerDescriptor
6174 u32 maxStorageBuffersPerDescriptor
6175 u32 maxStorageImagesPerDescriptor
6176 u32 maxSampledImagesPerDescriptor
6177 u32 maxPipelineLayouts
6178}
6179
Jesse Hallad250842017-03-10 18:35:38 -08006180@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13006181class VkObjectTableEntryNVX {
6182 VkObjectEntryTypeNVX type
6183 VkObjectEntryUsageFlagsNVX flags
6184}
6185
Jesse Hallad250842017-03-10 18:35:38 -08006186@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13006187class VkObjectTablePipelineEntryNVX {
6188 VkObjectEntryTypeNVX type
6189 VkObjectEntryUsageFlagsNVX flags
6190 VkPipeline pipeline
6191}
6192
Jesse Hallad250842017-03-10 18:35:38 -08006193@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13006194class VkObjectTableDescriptorSetEntryNVX {
6195 VkObjectEntryTypeNVX type
6196 VkObjectEntryUsageFlagsNVX flags
6197 VkPipelineLayout pipelineLayout
6198 VkDescriptorSet descriptorSet
6199}
6200
Jesse Hallad250842017-03-10 18:35:38 -08006201@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13006202class VkObjectTableVertexBufferEntryNVX {
6203 VkObjectEntryTypeNVX type
6204 VkObjectEntryUsageFlagsNVX flags
6205 VkBuffer buffer
6206}
6207
Jesse Hallad250842017-03-10 18:35:38 -08006208@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13006209class VkObjectTableIndexBufferEntryNVX {
6210 VkObjectEntryTypeNVX type
6211 VkObjectEntryUsageFlagsNVX flags
6212 VkBuffer buffer
Jesse Hall77ad05b2017-03-10 22:02:20 -08006213 VkIndexType indexType
Chris Forbes289cb792016-12-30 15:03:55 +13006214}
6215
Jesse Hallad250842017-03-10 18:35:38 -08006216@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13006217class VkObjectTablePushConstantEntryNVX {
6218 VkObjectEntryTypeNVX type
6219 VkObjectEntryUsageFlagsNVX flags
6220 VkPipelineLayout pipelineLayout
6221 VkShaderStageFlags stageFlags
6222}
6223
Jesse Hallad250842017-03-10 18:35:38 -08006224@extension("VK_NV_clip_space_w_scaling") // 88
6225class VkViewportWScalingNV {
6226 f32 xcoeff
6227 f32 ycoeff
Jesse Hall889cd9a2017-02-25 22:12:23 -08006228}
6229
Jesse Hallad250842017-03-10 18:35:38 -08006230@extension("VK_NV_clip_space_w_scaling") // 88
6231class VkPipelineViewportWScalingStateCreateInfoNV {
Jesse Hall889cd9a2017-02-25 22:12:23 -08006232 VkStructureType sType
6233 const void* pNext
Jesse Hallad250842017-03-10 18:35:38 -08006234 VkBool32 viewportWScalingEnable
6235 u32 viewportCount
6236 const VkViewportWScalingNV* pViewportWScalings
Jesse Hall889cd9a2017-02-25 22:12:23 -08006237}
6238
Jesse Hallad250842017-03-10 18:35:38 -08006239@extension("VK_EXT_display_surface_counter") // 91
Jesse Hall77ad05b2017-03-10 22:02:20 -08006240class VkSurfaceCapabilities2EXT {
6241 VkStructureType sType
6242 void* pNext
6243 u32 minImageCount
6244 u32 maxImageCount
6245 VkExtent2D currentExtent
6246 VkExtent2D minImageExtent
6247 VkExtent2D maxImageExtent
6248 u32 maxImageArrayLayers
6249 VkSurfaceTransformFlagsKHR supportedTransforms
6250 VkSurfaceTransformFlagBitsKHR currentTransform
6251 VkCompositeAlphaFlagsKHR supportedCompositeAlpha
6252 VkImageUsageFlags supportedUsageFlags
6253 VkSurfaceCounterFlagsEXT supportedSurfaceCounters
6254}
6255
Jesse Hallad250842017-03-10 18:35:38 -08006256@extension("VK_EXT_display_control") // 92
Jesse Hall77ad05b2017-03-10 22:02:20 -08006257class VkDisplayPowerInfoEXT {
6258 VkStructureType sType
6259 const void* pNext
6260 VkDisplayPowerStateEXT powerState
6261}
6262
Jesse Hallad250842017-03-10 18:35:38 -08006263@extension("VK_EXT_display_control") // 92
Jesse Hall77ad05b2017-03-10 22:02:20 -08006264class VkDeviceEventInfoEXT {
6265 VkStructureType sType
6266 const void* pNext
6267 VkDeviceEventTypeEXT deviceEvent
6268}
6269
Jesse Hallad250842017-03-10 18:35:38 -08006270@extension("VK_EXT_display_control") // 92
Jesse Hall77ad05b2017-03-10 22:02:20 -08006271class VkDisplayEventInfoEXT {
6272 VkStructureType sType
6273 const void* pNext
6274 VkDisplayEventTypeEXT displayEvent
6275}
6276
Jesse Hallad250842017-03-10 18:35:38 -08006277@extension("VK_EXT_display_control") // 92
Jesse Hall77ad05b2017-03-10 22:02:20 -08006278class VkSwapchainCounterCreateInfoEXT {
6279 VkStructureType sType
6280 const void* pNext
6281 VkSurfaceCounterFlagsEXT surfaceCounters
6282}
6283
Jesse Hallad250842017-03-10 18:35:38 -08006284@extension("VK_GOOGLE_display_timing") // 93
6285class VkRefreshCycleDurationGOOGLE {
Jesse Hallfdc8ab32017-03-10 21:01:57 -08006286 u64 refreshDuration
Jesse Hallad250842017-03-10 18:35:38 -08006287}
6288
6289@extension("VK_GOOGLE_display_timing") // 93
6290class VkPastPresentationTimingGOOGLE {
Jesse Hallfdc8ab32017-03-10 21:01:57 -08006291 u32 presentID
6292 u64 desiredPresentTime
6293 u64 actualPresentTime
6294 u64 earliestPresentTime
6295 u64 presentMargin
Jesse Hallad250842017-03-10 18:35:38 -08006296}
6297
6298@extension("VK_GOOGLE_display_timing") // 93
6299class VkPresentTimeGOOGLE {
Jesse Hallfdc8ab32017-03-10 21:01:57 -08006300 u32 presentID
6301 u64 desiredPresentTime
Jesse Hallad250842017-03-10 18:35:38 -08006302}
6303
6304@extension("VK_GOOGLE_display_timing") // 93
6305class VkPresentTimesInfoGOOGLE {
Jesse Hallfdc8ab32017-03-10 21:01:57 -08006306 VkStructureType sType
6307 const void* pNext
6308 u32 swapchainCount
6309 const VkPresentTimeGOOGLE* pTimes
Jesse Hallad250842017-03-10 18:35:38 -08006310}
6311
6312@extension("VK_NVX_multiview_per_view_attributes") // 98
6313class VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX {
6314 VkStructureType sType
6315 void* pNext
6316 VkBool32 perViewPositionAllComponents
6317}
6318
6319@extension("VK_NV_viewport_swizzle") // 99
6320class VkViewportSwizzleNV {
6321 VkViewportCoordinateSwizzleNV x
6322 VkViewportCoordinateSwizzleNV y
6323 VkViewportCoordinateSwizzleNV z
6324 VkViewportCoordinateSwizzleNV w
6325}
6326
6327@extension("VK_NV_viewport_swizzle") // 99
6328class VkPipelineViewportSwizzleStateCreateInfoNV {
6329 VkStructureType sType
6330 const void* pNext
6331 VkPipelineViewportSwizzleStateCreateFlagsNV flags
6332 u32 viewportCount
6333 const VkViewportSwizzleNV* pViewportSwizzles
6334}
6335
6336@extension("VK_EXT_discard_rectangles") // 100
6337class VkPhysicalDeviceDiscardRectanglePropertiesEXT {
6338 VkStructureType sType
Jesse Hallf5ad48b2017-03-20 13:09:19 -07006339 void* pNext
Jesse Hallad250842017-03-10 18:35:38 -08006340 u32 maxDiscardRectangles
6341}
6342
6343@extension("VK_EXT_discard_rectangles") // 100
6344class VkPipelineDiscardRectangleStateCreateInfoEXT {
Jesse Hallfdc8ab32017-03-10 21:01:57 -08006345 VkStructureType sType
6346 const void* pNext
6347 VkPipelineDiscardRectangleStateCreateFlagsEXT flags
6348 VkDiscardRectangleModeEXT discardRectangleMode
6349 u32 discardRectangleCount
6350 const VkRect2D* pDiscardRectangles
Jesse Hallad250842017-03-10 18:35:38 -08006351}
6352
Jesse Hall8c954d32018-01-17 22:06:20 -08006353@extension("VK_EXT_conservative_rasterization") // 102
6354class VkPhysicalDeviceConservativeRasterizationPropertiesEXT {
6355 VkStructureType sType
6356 void* pNext
6357 f32 primitiveOverestimationSize
6358 f32 maxExtraPrimitiveOverestimationSize
6359 f32 extraPrimitiveOverestimationSizeGranularity
6360 VkBool32 primitiveUnderestimation
6361 VkBool32 conservativePointAndLineRasterization
6362 VkBool32 degenerateTrianglesRasterized
6363 VkBool32 degenerateLinesRasterized
6364 VkBool32 fullyCoveredFragmentShaderInputVariable
6365 VkBool32 conservativeRasterizationPostDepthCoverage
6366}
6367
6368@extension("VK_EXT_conservative_rasterization") // 102
6369class VkPipelineRasterizationConservativeStateCreateInfoEXT {
6370 VkStructureType sType
6371 const void* pNext
6372 VkPipelineRasterizationConservativeStateCreateFlagsEXT flags
6373 VkConservativeRasterizationModeEXT conservativeRasterizationMode
6374 f32 extraPrimitiveOverestimationSize
6375}
6376
Jesse Hallad250842017-03-10 18:35:38 -08006377@extension("VK_EXT_hdr_metadata") // 106
Courtney Goeltzenleuchterd634c482017-01-05 15:55:31 -07006378class VkXYColorEXT {
Jesse Hallfdc8ab32017-03-10 21:01:57 -08006379 f32 x
6380 f32 y
Courtney Goeltzenleuchterd634c482017-01-05 15:55:31 -07006381}
6382
Jesse Hallad250842017-03-10 18:35:38 -08006383@extension("VK_EXT_hdr_metadata") // 106
Courtney Goeltzenleuchterd634c482017-01-05 15:55:31 -07006384class VkHdrMetadataEXT {
Jesse Hallfdc8ab32017-03-10 21:01:57 -08006385 VkStructureType sType
6386 const void* pNext
6387 VkXYColorEXT displayPrimaryRed
6388 VkXYColorEXT displayPrimaryGreen
6389 VkXYColorEXT displayPrimaryBlue
6390 VkXYColorEXT whitePoint
6391 f32 maxLuminance
6392 f32 minLuminance
6393 f32 maxContentLightLevel
6394 f32 maxFrameAverageLightLevel
Courtney Goeltzenleuchterd634c482017-01-05 15:55:31 -07006395}
6396
Jesse Halla13a3cf2018-07-09 15:51:52 -07006397@extension("VK_KHR_create_renderpass2") // 110
6398class VkAttachmentDescription2KHR {
6399 VkStructureType sType
6400 const void* pNext
6401 VkAttachmentDescriptionFlags flags
6402 VkFormat format
6403 VkSampleCountFlagBits samples
6404 VkAttachmentLoadOp loadOp
6405 VkAttachmentStoreOp storeOp
6406 VkAttachmentLoadOp stencilLoadOp
6407 VkAttachmentStoreOp stencilStoreOp
6408 VkImageLayout initialLayout
6409 VkImageLayout finalLayout
6410}
6411
6412@extension("VK_KHR_create_renderpass2") // 110
6413class VkAttachmentReference2KHR {
6414 VkStructureType sType
6415 const void* pNext
6416 u32 attachment
6417 VkImageLayout layout
6418 VkImageAspectFlags aspectMask
6419}
6420
6421@extension("VK_KHR_create_renderpass2") // 110
6422class VkSubpassDescription2KHR {
6423 VkStructureType sType
6424 const void* pNext
6425 VkSubpassDescriptionFlags flags
6426 VkPipelineBindPoint pipelineBindPoint
6427 u32 viewMask
6428 u32 inputAttachmentCount
6429 const VkAttachmentReference2KHR* pInputAttachments
6430 u32 colorAttachmentCount
6431 const VkAttachmentReference2KHR* pColorAttachments
6432 const VkAttachmentReference2KHR* pResolveAttachments
6433 const VkAttachmentReference2KHR* pDepthStencilAttachment
6434 u32 preserveAttachmentCount
6435 const u32* pPreserveAttachments
6436}
6437
6438@extension("VK_KHR_create_renderpass2") // 110
6439class VkSubpassDependency2KHR {
6440 VkStructureType sType
6441 const void* pNext
6442 u32 srcSubpass
6443 u32 dstSubpass
6444 VkPipelineStageFlags srcStageMask
6445 VkPipelineStageFlags dstStageMask
6446 VkAccessFlags srcAccessMask
6447 VkAccessFlags dstAccessMask
6448 VkDependencyFlags dependencyFlags
6449 s32 viewOffset
6450}
6451
6452@extension("VK_KHR_create_renderpass2") // 110
6453class VkRenderPassCreateInfo2KHR {
6454 VkStructureType sType
6455 const void* pNext
6456 VkRenderPassCreateFlags flags
6457 u32 attachmentCount
6458 const VkAttachmentDescription2KHR* pAttachments
6459 u32 subpassCount
6460 const VkSubpassDescription2KHR* pSubpasses
6461 u32 dependencyCount
6462 const VkSubpassDependency2KHR* pDependencies
6463 u32 correlatedViewMaskCount
6464 const u32* pCorrelatedViewMasks
6465}
6466
6467@extension("VK_KHR_create_renderpass2") // 110
6468class VkSubpassBeginInfoKHR {
6469 VkStructureType sType
6470 const void* pNext
6471 VkSubpassContents contents
6472}
6473
6474@extension("VK_KHR_create_renderpass2") // 110
6475class VkSubpassEndInfoKHR {
6476 VkStructureType sType
6477 const void* pNext
6478}
6479
Jesse Hall05556b12017-05-18 17:40:25 -07006480@extension("VK_KHR_shared_presentable_image") // 112
Chris Forbese2d3ee12017-03-16 16:10:15 +13006481class VkSharedPresentSurfaceCapabilitiesKHR {
6482 VkStructureType sType
6483 const void* pNext
6484 VkImageUsageFlags sharedPresentSupportedUsageFlags
6485}
6486
Jesse Hall9492f992017-08-28 12:10:06 -07006487@extension("VK_KHR_external_fence_capabilities") // 113
6488class VkPhysicalDeviceExternalFenceInfoKHR {
6489 VkStructureType sType
6490 const void* pNext
6491 VkExternalFenceHandleTypeFlagBitsKHR handleType
6492}
6493
6494@extension("VK_KHR_external_fence_capabilities") // 113
6495class VkExternalFencePropertiesKHR {
6496 VkStructureType sType
6497 void* pNext
6498 VkExternalFenceHandleTypeFlagsKHR exportFromImportedHandleTypes
6499 VkExternalFenceHandleTypeFlagsKHR compatibleHandleTypes
6500 VkExternalFenceFeatureFlagsKHR externalFenceFeatures
6501}
6502
6503@extension("VK_KHR_external_fence") // 114
6504class VkExportFenceCreateInfoKHR {
6505 VkStructureType sType
6506 const void* pNext
6507 VkExternalFenceHandleTypeFlagsKHR handleTypes
6508}
6509
6510@extension("VK_KHR_external_fence_win32") // 115
6511class VkImportFenceWin32HandleInfoKHR {
6512 VkStructureType sType
6513 const void* pNext
6514 VkFence fence
6515 VkFenceImportFlagsKHR flags
6516 VkExternalFenceHandleTypeFlagBitsKHR handleType
6517 platform.HANDLE handle
6518 platform.LPCWSTR name
6519}
6520
6521@extension("VK_KHR_external_fence_win32") // 115
6522class VkExportFenceWin32HandleInfoKHR {
6523 VkStructureType sType
6524 const void* pNext
6525 const platform.SECURITY_ATTRIBUTES* pAttributes
6526 platform.DWORD dwAccess
6527 platform.LPCWSTR name
6528}
6529
6530@extension("VK_KHR_external_fence_win32") // 115
6531class VkFenceGetWin32HandleInfoKHR {
6532 VkStructureType sType
6533 const void* pNext
6534 VkFence fence
6535 VkExternalFenceHandleTypeFlagBitsKHR handleType
6536}
6537
6538@extension("VK_KHR_external_fence_fd") // 116
6539class VkImportFenceFdInfoKHR {
6540 VkStructureType sType
6541 const void* pNext
6542 VkFence fence
6543 VkFenceImportFlagsKHR flags
6544 VkExternalFenceHandleTypeFlagBitsKHR handleType
6545 int fd
6546}
6547
6548@extension("VK_KHR_external_fence_fd") // 116
6549class VkFenceGetFdInfoKHR {
6550 VkStructureType sType
6551 const void* pNext
6552 VkFence fence
6553 VkExternalFenceHandleTypeFlagBitsKHR handleType
6554}
6555
Jesse Hall076f95d2017-09-20 11:34:47 -07006556@extension("VK_KHR_maintenance2") // 118
6557class VkPhysicalDevicePointClippingPropertiesKHR {
6558 VkStructureType sType
6559 void* pNext
6560 VkPointClippingBehaviorKHR pointClippingBehavior
6561}
6562
6563@extension("VK_KHR_maintenance2") // 118
6564class VkInputAttachmentAspectReferenceKHR {
6565 u32 subpass
6566 u32 inputAttachmentIndex
6567 VkImageAspectFlags aspectMask
6568}
6569
6570@extension("VK_KHR_maintenance2") // 118
6571class VkRenderPassInputAttachmentAspectCreateInfoKHR {
6572 VkStructureType sType
6573 const void* pNext
6574 u32 aspectReferenceCount
6575 const VkInputAttachmentAspectReferenceKHR* pAspectReferences
6576}
6577
6578@extension("VK_KHR_maintenance2") // 118
6579class VkImageViewUsageCreateInfoKHR {
6580 VkStructureType sType
6581 const void* pNext
6582 VkImageUsageFlags usage
6583}
6584
6585@extension("VK_KHR_maintenance2") // 118
6586class VkPipelineTessellationDomainOriginStateCreateInfoKHR {
6587 VkStructureType sType
6588 const void* pNext
6589 VkTessellationDomainOriginKHR domainOrigin
6590}
6591
Jesse Hall05556b12017-05-18 17:40:25 -07006592@extension("VK_KHR_get_surface_capabilities2") // 120
Chris Forbese2d3ee12017-03-16 16:10:15 +13006593class VkPhysicalDeviceSurfaceInfo2KHR {
6594 VkStructureType sType
6595 const void* pNext
6596 VkSurfaceKHR surface
6597}
6598
Jesse Hall05556b12017-05-18 17:40:25 -07006599@extension("VK_KHR_get_surface_capabilities2") // 120
Chris Forbese2d3ee12017-03-16 16:10:15 +13006600class VkSurfaceCapabilities2KHR {
6601 VkStructureType sType
6602 void* pNext
6603 VkSurfaceCapabilitiesKHR surfaceCapabilities
6604}
6605
Jesse Hall05556b12017-05-18 17:40:25 -07006606@extension("VK_KHR_get_surface_capabilities2") // 120
Chris Forbese2d3ee12017-03-16 16:10:15 +13006607class VkSurfaceFormat2KHR {
6608 VkStructureType sType
6609 void* pNext
6610 VkSurfaceFormatKHR surfaceFormat
6611}
6612
Jesse Hall9492f992017-08-28 12:10:06 -07006613@extension("VK_KHR_variable_pointers") // 121
6614class VkPhysicalDeviceVariablePointerFeaturesKHR {
6615 VkStructureType sType
6616 void* pNext
6617 VkBool32 variablePointersStorageBuffer
6618 VkBool32 variablePointers
6619}
6620
Jesse Hall54f8d132018-04-18 08:16:59 -07006621@extension("VK_KHR_display_properties2") // 122
6622class VkDisplayProperties2KHR {
6623 VkStructureType sType
6624 void* pNext
6625 VkDisplayPropertiesKHR displayProperties
6626}
6627
6628@extension("VK_KHR_display_properties2") // 122
6629class VkDisplayPlaneProperties2KHR {
6630 VkStructureType sType
6631 void* pNext
6632 VkDisplayPlanePropertiesKHR displayPlaneProperties
6633}
6634
6635@extension("VK_KHR_display_properties2") // 122
6636class VkDisplayModeProperties2KHR {
6637 VkStructureType sType
6638 void* pNext
6639 VkDisplayModePropertiesKHR displayModeProperties
6640}
6641
6642@extension("VK_KHR_display_properties2") // 122
6643class VkDisplayPlaneInfo2KHR {
6644 VkStructureType sType
6645 const void* pNext
6646 VkDisplayModeKHR mode
6647 u32 planeIndex
6648}
6649
6650@extension("VK_KHR_display_properties2") // 122
6651class VkDisplayPlaneCapabilities2KHR {
6652 VkStructureType sType
6653 void* pNext
6654 VkDisplayPlaneCapabilitiesKHR capabilities
6655}
6656
Jesse Hallad250842017-03-10 18:35:38 -08006657@extension("VK_MVK_ios_surface") // 123
6658class VkIOSSurfaceCreateInfoMVK {
6659 VkStructureType sType
6660 const void* pNext
6661 VkIOSSurfaceCreateFlagsMVK flags
6662 const void* pView
6663}
6664
6665@extension("VK_MVK_macos_surface") // 124
6666class VkMacOSSurfaceCreateInfoMVK {
6667 VkStructureType sType
6668 const void* pNext
6669 VkMacOSSurfaceCreateFlagsMVK flags
6670 const void* pView
6671}
6672
Jesse Hall9492f992017-08-28 12:10:06 -07006673@extension("VK_KHR_dedicated_allocation") // 128
6674class VkMemoryDedicatedRequirementsKHR {
6675 VkStructureType sType
6676 void* pNext
6677 VkBool32 prefersDedicatedAllocation
6678 VkBool32 requiresDedicatedAllocation
6679}
6680
6681@extension("VK_KHR_dedicated_allocation") // 128
6682class VkMemoryDedicatedAllocateInfoKHR {
6683 VkStructureType sType
6684 const void* pNext
6685 VkImage image
6686 VkBuffer buffer
6687}
6688
Jesse Hall8c954d32018-01-17 22:06:20 -08006689@extension("VK_EXT_debug_utils") // 129
6690class VkDebugUtilsObjectNameInfoEXT {
6691 VkStructureType sType
6692 const void* pNext
6693 VkObjectType objectType
6694 u64 objectHandle
6695 const char* pObjectName
6696}
Jesse Hall72e6a132018-04-06 13:00:44 -07006697
Jesse Hall8c954d32018-01-17 22:06:20 -08006698@extension("VK_EXT_debug_utils") // 129
6699class VkDebugUtilsObjectTagInfoEXT {
6700 VkStructureType sType
6701 const void* pNext
6702 VkObjectType objectType
6703 u64 objectHandle
6704 u64 tagName
6705 platform.size_t tagSize
6706 const void* pTag
6707}
Jesse Hall72e6a132018-04-06 13:00:44 -07006708
Jesse Hall8c954d32018-01-17 22:06:20 -08006709@extension("VK_EXT_debug_utils") // 129
6710class VkDebugUtilsLabelEXT {
6711 VkStructureType sType
6712 const void* pNext
6713 const char* pLabelName
6714 f32[4] color
6715}
6716
6717@extension("VK_EXT_debug_utils") // 129
6718class VkDebugUtilsMessengerCallbackDataEXT {
6719 VkStructureType sType
6720 const void* pNext
6721 VkDebugUtilsMessengerCallbackDataFlagsEXT flags
6722 const char* pMessageIdName
6723 s32 messageIdNumber
6724 const char* pMessage
6725 u32 queueLabelCount
6726 VkDebugUtilsLabelEXT* pQueueLabels
6727 u32 cmdBufLabelCount
6728 VkDebugUtilsLabelEXT* pCmdBufLabels
6729 u32 objectCount
6730 VkDebugUtilsObjectNameInfoEXT* pObjects
6731}
6732
6733@extension("VK_EXT_debug_utils") // 129
6734class VkDebugUtilsMessengerCreateInfoEXT {
6735 VkStructureType sType
6736 const void* pNext
6737 VkDebugUtilsMessengerCreateFlagsEXT flags
6738 VkDebugUtilsMessageSeverityFlagsEXT messageSeverity
Jesse Hallf47e8f82018-10-27 23:41:45 -07006739 VkDebugUtilsMessageTypeFlagsEXT messageTypes
Jesse Hall8c954d32018-01-17 22:06:20 -08006740 PFN_vkDebugUtilsMessengerCallbackEXT pfnUserCallback
6741 void* pUserData
6742}
6743
Jesse Hall36215a92018-01-18 15:04:37 -08006744@extension("VK_ANDROID_external_memory_android_hardware_buffer") // 131
6745class VkAndroidHardwareBufferUsageANDROID {
6746 VkStructureType sType
6747 void* pNext
6748 u64 androidHardwareBufferUsage
6749}
6750
6751@extension("VK_ANDROID_external_memory_android_hardware_buffer") // 130
6752class VkAndroidHardwareBufferPropertiesANDROID {
6753 VkStructureType sType
6754 void* pNext
6755 VkDeviceSize allocationSize
6756 u32 memoryTypeBits
6757}
6758
6759@extension("VK_ANDROID_external_memory_android_hardware_buffer") // 130
6760class VkAndroidHardwareBufferFormatPropertiesANDROID {
6761 VkStructureType sType
6762 void* pNext
6763 VkFormat format
6764 u64 externalFormat
6765 VkFormatFeatureFlags formatFeatures
6766 VkComponentMapping samplerYcbcrConversionComponents
6767 VkSamplerYcbcrModelConversion suggestedYcbcrModel
6768 VkSamplerYcbcrRange suggestedYcbcrRange
6769 VkChromaLocation suggestedXChromaOffset
6770 VkChromaLocation suggestedYChromaOffset
6771}
6772
6773@extension("VK_ANDROID_external_memory_android_hardware_buffer") // 130
6774class VkImportAndroidHardwareBufferInfoANDROID {
6775 VkStructureType sType
6776 const void* pNext
6777 platform.AHardwareBuffer* buffer
6778}
6779
6780@extension("VK_ANDROID_external_memory_android_hardware_buffer") // 130
6781class VkMemoryGetAndroidHardwareBufferInfoANDROID {
6782 VkStructureType sType
6783 const void* pNext
6784 VkDeviceMemory memory
6785}
6786
6787@extension("VK_ANDROID_external_memory_android_hardware_buffer") // 130
6788class VkExternalFormatANDROID {
6789 VkStructureType sType
6790 void* pNext
6791 u64 externalFormat
6792}
6793
Jesse Hall7ba0ac72017-07-07 17:13:23 -07006794@extension("VK_EXT_sampler_filter_minmax") // 131
6795class VkSamplerReductionModeCreateInfoEXT {
6796 VkStructureType sType
6797 const void* pNext
6798 VkSamplerReductionModeEXT reductionMode
6799}
6800
6801@extension("VK_EXT_sampler_filter_minmax") // 131
6802class VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT {
6803 VkStructureType sType
6804 void* pNext
6805 VkBool32 filterMinmaxSingleComponentFormats
6806 VkBool32 filterMinmaxImageComponentMapping
6807}
6808
Jesse Hall4af6c462018-09-10 09:04:25 -07006809@extension("VK_EXT_inline_uniform_block") // 139
6810class VkPhysicalDeviceInlineUniformBlockFeaturesEXT {
6811 VkStructureType sType
6812 void* pNext
6813 VkBool32 inlineUniformBlock
6814 VkBool32 descriptorBindingInlineUniformBlockUpdateAfterBind
6815}
6816
6817@extension("VK_EXT_inline_uniform_block") // 139
6818class VkPhysicalDeviceInlineUniformBlockPropertiesEXT {
6819 VkStructureType sType
6820 void* pNext
6821 u32 maxInlineUniformBlockSize
6822 u32 maxPerStageDescriptorInlineUniformBlocks
6823 u32 maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks
6824 u32 maxDescriptorSetInlineUniformBlocks
6825 u32 maxDescriptorSetUpdateAfterBindInlineUniformBlocks
6826}
6827
6828@extension("VK_EXT_inline_uniform_block") // 139
6829class VkWriteDescriptorSetInlineUniformBlockEXT {
6830 VkStructureType sType
6831 const void* pNext
6832 u32 dataSize
6833 const void* pData
6834}
6835
6836@extension("VK_EXT_inline_uniform_block") // 139
6837class VkDescriptorPoolInlineUniformBlockCreateInfoEXT {
6838 VkStructureType sType
6839 const void* pNext
6840 u32 maxInlineUniformBlockBindings
6841}
6842
Jesse Hall77726222017-09-19 14:49:27 -05006843@extension("VK_EXT_sample_locations") // 144
6844class VkSampleLocationEXT {
6845 f32 x
6846 f32 y
6847}
6848
6849@extension("VK_EXT_sample_locations") // 144
6850class VkSampleLocationsInfoEXT {
6851 VkStructureType sType
6852 const void* pNext
6853 VkSampleCountFlagBits sampleLocationsPerPixel
6854 VkExtent2D sampleLocationGridSize
6855 u32 sampleLocationsCount
6856 const VkSampleLocationEXT* pSampleLocations
6857}
6858
6859@extension("VK_EXT_sample_locations") // 144
6860class VkAttachmentSampleLocationsEXT {
6861 u32 attachmentIndex
6862 VkSampleLocationsInfoEXT sampleLocationsInfo
6863}
6864
6865@extension("VK_EXT_sample_locations") // 144
6866class VkSubpassSampleLocationsEXT {
6867 u32 subpassIndex
6868 VkSampleLocationsInfoEXT sampleLocationsInfo
6869}
6870
6871@extension("VK_EXT_sample_locations") // 144
6872class VkRenderPassSampleLocationsBeginInfoEXT {
6873 VkStructureType sType
6874 const void* pNext
6875 u32 attachmentInitialSampleLocationsCount
6876 const VkAttachmentSampleLocationsEXT* pAttachmentInitialSampleLocations
6877 u32 postSubpassSampleLocationsCount
Jesse Hall8c954d32018-01-17 22:06:20 -08006878 const VkSubpassSampleLocationsEXT* pPostSubpassSampleLocations
Jesse Hall77726222017-09-19 14:49:27 -05006879}
6880
6881@extension("VK_EXT_sample_locations") // 144
6882class VkPipelineSampleLocationsStateCreateInfoEXT {
6883 VkStructureType sType
6884 const void* pNext
6885 VkBool32 sampleLocationsEnable
6886 VkSampleLocationsInfoEXT sampleLocationsInfo
6887}
6888
6889@extension("VK_EXT_sample_locations") // 144
6890class VkPhysicalDeviceSampleLocationsPropertiesEXT {
6891 VkStructureType sType
6892 void* pNext
6893 VkSampleCountFlags sampleLocationSampleCounts
6894 VkExtent2D maxSampleLocationGridSize
6895 f32[2] sampleLocationCoordinateRange
6896 u32 sampleLocationSubPixelBits
6897 VkBool32 variableSampleLocations
6898}
6899
6900@extension("VK_EXT_sample_locations") // 144
6901class VkMultisamplePropertiesEXT {
6902 VkStructureType sType
6903 void* pNext
6904 VkExtent2D maxSampleLocationGridSize
6905}
6906
Jesse Hall9492f992017-08-28 12:10:06 -07006907@extension("VK_KHR_get_memory_requirements2") // 147
6908class VkBufferMemoryRequirementsInfo2KHR {
6909 VkStructureType sType
6910 const void* pNext
6911 VkBuffer buffer
6912}
6913
6914@extension("VK_KHR_get_memory_requirements2") // 147
6915class VkImageMemoryRequirementsInfo2KHR {
6916 VkStructureType sType
6917 const void* pNext
6918 VkImage image
6919}
6920
6921@extension("VK_KHR_get_memory_requirements2") // 147
6922class VkImageSparseMemoryRequirementsInfo2KHR {
6923 VkStructureType sType
6924 const void* pNext
6925 VkImage image
6926}
6927
6928@extension("VK_KHR_get_memory_requirements2") // 147
6929class VkMemoryRequirements2KHR {
6930 VkStructureType sType
6931 void* pNext
6932 VkMemoryRequirements memoryRequirements
6933}
6934
6935@extension("VK_KHR_get_memory_requirements2") // 147
6936class VkSparseImageMemoryRequirements2KHR {
6937 VkStructureType sType
6938 void* pNext
6939 VkSparseImageMemoryRequirements memoryRequirements
6940}
6941
Jesse Hall076f95d2017-09-20 11:34:47 -07006942@extension("VK_KHR_image_format_list") // 148
6943class VkImageFormatListCreateInfoKHR {
6944 VkStructureType sType
6945 const void* pNext
6946 u32 viewFormatCount
6947 const VkFormat* pViewFormats
6948}
6949
Jesse Hall7ba0ac72017-07-07 17:13:23 -07006950@extension("VK_EXT_blend_operation_advanced") // 149
6951class VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT {
6952 VkStructureType sType
6953 void* pNext
6954 VkBool32 advancedBlendCoherentOperations
6955}
6956
6957@extension("VK_EXT_blend_operation_advanced") // 149
6958class VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT {
6959 VkStructureType sType
6960 void* pNext
6961 u32 advancedBlendMaxColorAttachments
6962 VkBool32 advancedBlendIndependentBlend
6963 VkBool32 advancedBlendNonPremultipliedSrcColor
6964 VkBool32 advancedBlendNonPremultipliedDstColor
6965 VkBool32 advancedBlendCorrelatedOverlap
6966 VkBool32 advancedBlendAllOperations
6967}
6968
6969@extension("VK_EXT_blend_operation_advanced") // 149
6970class VkPipelineColorBlendAdvancedStateCreateInfoEXT {
6971 VkStructureType sType
6972 const void* pNext
6973 VkBool32 srcPremultiplied
6974 VkBool32 dstPremultiplied
6975 VkBlendOverlapEXT blendOverlap
6976}
6977
6978@extension("VK_NV_fragment_coverage_to_color") // 150
6979class VkPipelineCoverageToColorStateCreateInfoNV {
6980 VkStructureType sType
6981 const void* pNext
6982 VkPipelineCoverageToColorStateCreateFlagsNV flags
6983 VkBool32 coverageToColorEnable
6984 u32 coverageToColorLocation
6985}
6986
6987@extension("VK_NV_framebuffer_mixed_samples") // 153
6988class VkPipelineCoverageModulationStateCreateInfoNV {
6989 VkStructureType sType
6990 const void* pNext
6991 VkPipelineCoverageModulationStateCreateFlagsNV flags
6992 VkCoverageModulationModeNV coverageModulationMode
6993 VkBool32 coverageModulationTableEnable
6994 u32 coverageModulationTableCount
6995 const f32* pCoverageModulationTable
6996}
6997
Jesse Hall076f95d2017-09-20 11:34:47 -07006998@extension("VK_KHR_sampler_ycbcr_conversion") // 157
6999class VkSamplerYcbcrConversionCreateInfoKHR {
7000 VkStructureType sType
7001 const void* pNext
7002 VkFormat format
7003 VkSamplerYcbcrModelConversionKHR ycbcrModel
7004 VkSamplerYcbcrRangeKHR ycbcrRange
7005 VkComponentMapping components
7006 VkChromaLocationKHR xChromaOffset
7007 VkChromaLocationKHR yChromaOffset
7008 VkFilter chromaFilter
7009 VkBool32 forceExplicitReconstruction
7010}
7011
7012@extension("VK_KHR_sampler_ycbcr_conversion") // 157
7013class VkSamplerYcbcrConversionInfoKHR {
7014 VkStructureType sType
7015 const void* pNext
7016 VkSamplerYcbcrConversionKHR conversion
7017}
7018
7019@extension("VK_KHR_sampler_ycbcr_conversion") // 157
7020class VkBindImagePlaneMemoryInfoKHR {
7021 VkStructureType sType
7022 const void* pNext
7023 VkImageAspectFlagBits planeAspect
7024}
7025
7026@extension("VK_KHR_sampler_ycbcr_conversion") // 157
7027class VkImagePlaneMemoryRequirementsInfoKHR {
7028 VkStructureType sType
7029 const void* pNext
7030 VkImageAspectFlagBits planeAspect
7031}
7032
7033@extension("VK_KHR_sampler_ycbcr_conversion") // 157
7034class VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR {
7035 VkStructureType sType
7036 void* pNext
7037 VkBool32 samplerYcbcrConversion
7038}
7039
7040@extension("VK_KHR_sampler_ycbcr_conversion") // 157
7041class VkSamplerYcbcrConversionImageFormatPropertiesKHR {
7042 VkStructureType sType
7043 void* pNext
7044 u32 combinedImageSamplerDescriptorCount
7045}
7046
7047@extension("VK_KHR_bind_memory2") // 158
7048class VkBindBufferMemoryInfoKHR {
7049 VkStructureType sType
7050 const void* pNext
7051 VkBuffer buffer
7052 VkDeviceMemory memory
7053 VkDeviceSize memoryOffset
7054}
7055
7056@extension("VK_KHR_bind_memory2") // 158
7057class VkBindImageMemoryInfoKHR {
7058 VkStructureType sType
7059 const void* pNext
7060 VkImage image
7061 VkDeviceMemory memory
7062 VkDeviceSize memoryOffset
7063}
7064
Jesse Hallf47e8f82018-10-27 23:41:45 -07007065@extension("VK_EXT_image_drm_format_modifier") // 159
7066class VkDrmFormatModifierPropertiesEXT {
7067 u64 drmFormatModifier
7068 u32 drmFormatModifierPlaneCount
7069 VkFormatFeatureFlags drmFormatModifierTilingFeatures
7070}
7071
7072@extension("VK_EXT_image_drm_format_modifier") // 159
7073class VkDrmFormatModifierPropertiesListEXT {
7074 VkStructureType sType
7075 void* pNext
7076 u32 drmFormatModifierCount
7077 VkDrmFormatModifierPropertiesEXT* pDrmFormatModifierProperties
7078}
7079
7080@extension("VK_EXT_image_drm_format_modifier") // 159
7081class VkPhysicalDeviceImageDrmFormatModifierInfoEXT {
7082 VkStructureType sType
7083 const void* pNext
7084 u64 drmFormatModifier
7085 VkSharingMode sharingMode
7086 u32 queueFamilyIndexCount
7087 const u32* pQueueFamilyIndices
7088}
7089
7090@extension("VK_EXT_image_drm_format_modifier") // 159
7091class VkImageDrmFormatModifierListCreateInfoEXT {
7092 VkStructureType sType
7093 const void* pNext
7094 u32 drmFormatModifierCount
7095 const u64* pDrmFormatModifiers
7096}
7097
7098@extension("VK_EXT_image_drm_format_modifier") // 159
7099class VkImageDrmFormatModifierExplicitCreateInfoEXT {
7100 VkStructureType sType
7101 const void* pNext
7102 u64 drmFormatModifier
7103 u32 drmFormatModifierPlaneCount
7104 const VkSubresourceLayout* pPlaneLayouts
7105}
7106
7107@extension("VK_EXT_image_drm_format_modifier") // 159
7108class VkImageDrmFormatModifierPropertiesEXT {
7109 VkStructureType sType
7110 void* pNext
7111 u64 drmFormatModifier
7112}
7113
Jesse Hall77726222017-09-19 14:49:27 -05007114@extension("VK_EXT_validation_cache") // 161
7115class VkValidationCacheCreateInfoEXT {
7116 VkStructureType sType
7117 const void* pNext
7118 VkValidationCacheCreateFlagsEXT flags
7119 platform.size_t initialDataSize
7120 const void* pInitialData
7121}
7122
7123@extension("VK_EXT_validation_cache") // 161
7124class VkShaderModuleValidationCacheCreateInfoEXT {
7125 VkStructureType sType
7126 const void* pNext
7127 VkValidationCacheEXT validationCache
7128}
7129
Jesse Hall72e6a132018-04-06 13:00:44 -07007130@extension("VK_EXT_descriptor_indexing") // 162
7131class VkDescriptorSetLayoutBindingFlagsCreateInfoEXT {
7132 VkStructureType sType
7133 const void* pNext
7134 u32 bindingCount
7135 const VkDescriptorBindingFlagsEXT* pBindingFlags
7136}
7137
7138@extension("VK_EXT_descriptor_indexing") // 162
7139class VkPhysicalDeviceDescriptorIndexingFeaturesEXT {
7140 VkStructureType sType
7141 void* pNext
7142 VkBool32 shaderInputAttachmentArrayDynamicIndexing
7143 VkBool32 shaderUniformTexelBufferArrayDynamicIndexing
7144 VkBool32 shaderStorageTexelBufferArrayDynamicIndexing
7145 VkBool32 shaderUniformBufferArrayNonUniformIndexing
7146 VkBool32 shaderSampledImageArrayNonUniformIndexing
7147 VkBool32 shaderStorageBufferArrayNonUniformIndexing
7148 VkBool32 shaderStorageImageArrayNonUniformIndexing
7149 VkBool32 shaderInputAttachmentArrayNonUniformIndexing
7150 VkBool32 shaderUniformTexelBufferArrayNonUniformIndexing
7151 VkBool32 shaderStorageTexelBufferArrayNonUniformIndexing
7152 VkBool32 descriptorBindingUniformBufferUpdateAfterBind
7153 VkBool32 descriptorBindingSampledImageUpdateAfterBind
7154 VkBool32 descriptorBindingStorageImageUpdateAfterBind
7155 VkBool32 descriptorBindingStorageBufferUpdateAfterBind
7156 VkBool32 descriptorBindingUniformTexelBufferUpdateAfterBind
7157 VkBool32 descriptorBindingStorageTexelBufferUpdateAfterBind
7158 VkBool32 descriptorBindingUpdateUnusedWhilePending
7159 VkBool32 descriptorBindingPartiallyBound
7160 VkBool32 descriptorBindingVariableDescriptorCount
7161 VkBool32 runtimeDescriptorArray
7162}
7163
7164@extension("VK_EXT_descriptor_indexing") // 162
7165class VkPhysicalDeviceDescriptorIndexingPropertiesEXT {
7166 VkStructureType sType
7167 void* pNext
7168 u32 maxUpdateAfterBindDescriptorsInAllPools
7169 VkBool32 shaderUniformBufferArrayNonUniformIndexingNative
7170 VkBool32 shaderSampledImageArrayNonUniformIndexingNative
7171 VkBool32 shaderStorageBufferArrayNonUniformIndexingNative
7172 VkBool32 shaderStorageImageArrayNonUniformIndexingNative
7173 VkBool32 shaderInputAttachmentArrayNonUniformIndexingNative
7174 VkBool32 robustBufferAccessUpdateAfterBind
7175 VkBool32 quadDivergentImplicitLod
7176 u32 maxPerStageDescriptorUpdateAfterBindSamplers
7177 u32 maxPerStageDescriptorUpdateAfterBindUniformBuffers
7178 u32 maxPerStageDescriptorUpdateAfterBindStorageBuffers
7179 u32 maxPerStageDescriptorUpdateAfterBindSampledImages
7180 u32 maxPerStageDescriptorUpdateAfterBindStorageImages
7181 u32 maxPerStageDescriptorUpdateAfterBindInputAttachments
7182 u32 maxPerStageUpdateAfterBindResources
7183 u32 maxDescriptorSetUpdateAfterBindSamplers
7184 u32 maxDescriptorSetUpdateAfterBindUniformBuffers
7185 u32 maxDescriptorSetUpdateAfterBindUniformBuffersDynamic
7186 u32 maxDescriptorSetUpdateAfterBindStorageBuffers
7187 u32 maxDescriptorSetUpdateAfterBindStorageBuffersDynamic
7188 u32 maxDescriptorSetUpdateAfterBindSampledImages
7189 u32 maxDescriptorSetUpdateAfterBindStorageImages
7190 u32 maxDescriptorSetUpdateAfterBindInputAttachments
7191}
7192
7193@extension("VK_EXT_descriptor_indexing") // 162
7194class VkDescriptorSetVariableDescriptorCountAllocateInfoEXT {
7195 VkStructureType sType
7196 const void* pNext
7197 u32 descriptorSetCount
7198 const u32* pDescriptorCounts
7199}
7200
7201@extension("VK_EXT_descriptor_indexing") // 162
7202class VkDescriptorSetVariableDescriptorCountLayoutSupportEXT {
7203 VkStructureType sType
7204 void* pNext
7205 u32 maxVariableDescriptorCount
7206}
7207
Jesse Hallb5297192018-09-22 20:52:13 +02007208@extension("VK_NV_shading_rate_image") // 165
7209class VkShadingRatePaletteNV {
7210 u32 shadingRatePaletteEntryCount
7211 const VkShadingRatePaletteEntryNV* pShadingRatePaletteEntries
7212}
7213
7214@extension("VK_NV_shading_rate_image") // 165
7215class VkPipelineViewportShadingRateImageStateCreateInfoNV {
7216 VkStructureType sType
7217 const void* pNext
7218 VkBool32 shadingRateImageEnable
7219 u32 viewportCount
7220 const VkShadingRatePaletteNV* pShadingRatePalettes
7221}
7222
7223@extension("VK_NV_shading_rate_image") // 165
7224class VkPhysicalDeviceShadingRateImageFeaturesNV {
7225 VkStructureType sType
7226 void* pNext
7227 VkBool32 shadingRateImage
7228 VkBool32 shadingRateCoarseSampleOrder
7229}
7230
7231@extension("VK_NV_shading_rate_image") // 165
7232class VkPhysicalDeviceShadingRateImagePropertiesNV {
7233 VkStructureType sType
7234 void* pNext
7235 VkExtent2D shadingRateTexelSize
7236 u32 shadingRatePaletteSize
7237 u32 shadingRateMaxCoarseSamples
7238}
7239
7240@extension("VK_NV_shading_rate_image") // 165
7241class VkCoarseSampleLocationNV {
7242 u32 pixelX
7243 u32 pixelY
7244 u32 sample
7245}
7246
7247@extension("VK_NV_shading_rate_image") // 165
7248class VkCoarseSampleOrderCustomNV {
7249 VkShadingRatePaletteEntryNV shadingRate
7250 u32 sampleCount
7251 u32 sampleLocationCount
7252 const VkCoarseSampleLocationNV* pSampleLocations
7253}
7254
7255@extension("VK_NV_shading_rate_image") // 165
7256class VkPipelineViewportCoarseSampleOrderStateCreateInfoNV {
7257 VkStructureType sType
7258 const void* pNext
7259 VkCoarseSampleOrderTypeNV sampleOrderType
7260 u32 customSampleOrderCount
7261 const VkCoarseSampleOrderCustomNV* pCustomSampleOrders
7262}
7263
Jesse Halla363a8e2018-11-05 21:18:00 -07007264@extension("VK_NV_raytracing") // 166
7265class VkRayTracingShaderGroupCreateInfoNV {
7266 VkStructureType sType
7267 const void* pNext
7268 VkRayTracingShaderGroupTypeNV type
7269 u32 generalShader
7270 u32 closestHitShader
7271 u32 anyHitShader
7272 u32 intersectionShader
Jesse Hallb5297192018-09-22 20:52:13 +02007273}
7274
Jesse Halla363a8e2018-11-05 21:18:00 -07007275@extension("VK_NV_raytracing") // 166
7276class VkRayTracingPipelineCreateInfoNV {
7277 VkStructureType sType
7278 const void* pNext
7279 VkPipelineCreateFlags flags
7280 u32 stageCount
7281 const VkPipelineShaderStageCreateInfo* pStages
7282 u32 groupCount
7283 const VkRayTracingShaderGroupCreateInfoNV* pGroups
7284 u32 maxRecursionDepth
7285 VkPipelineLayout layout
7286 VkPipeline basePipelineHandle
7287 s32 basePipelineIndex
7288}
7289
7290@extension("VK_NV_raytracing") // 166
7291class VkGeometryTrianglesNV {
Jesse Hallb5297192018-09-22 20:52:13 +02007292 VkStructureType sType
7293 const void* pNext
7294 VkBuffer vertexData
7295 VkDeviceSize vertexOffset
7296 u32 vertexCount
7297 VkDeviceSize vertexStride
7298 VkFormat vertexFormat
7299 VkBuffer indexData
7300 VkDeviceSize indexOffset
7301 u32 indexCount
7302 VkIndexType indexType
7303 VkBuffer transformData
7304 VkDeviceSize transformOffset
7305}
7306
Jesse Halla363a8e2018-11-05 21:18:00 -07007307@extension("VK_NV_raytracing") // 166
7308class VkGeometryAABBNV {
Jesse Hallb5297192018-09-22 20:52:13 +02007309 VkStructureType sType
7310 const void* pNext
7311 VkBuffer aabbData
7312 u32 numAABBs
7313 u32 stride
7314 VkDeviceSize offset
7315}
7316
Jesse Halla363a8e2018-11-05 21:18:00 -07007317@extension("VK_NV_raytracing") // 166
7318class VkGeometryDataNV {
7319 VkGeometryTrianglesNV triangles
7320 VkGeometryAABBNV aabbs
Jesse Hallb5297192018-09-22 20:52:13 +02007321}
7322
Jesse Halla363a8e2018-11-05 21:18:00 -07007323@extension("VK_NV_raytracing") // 166
7324class VkGeometryNV {
Jesse Hallb5297192018-09-22 20:52:13 +02007325 VkStructureType sType
7326 const void* pNext
Jesse Halla363a8e2018-11-05 21:18:00 -07007327 VkGeometryTypeNV geometryType
7328 VkGeometryDataNV geometry
7329 VkGeometryFlagsNV flags
Jesse Hallb5297192018-09-22 20:52:13 +02007330}
7331
Jesse Halla363a8e2018-11-05 21:18:00 -07007332@extension("VK_NV_raytracing") // 166
7333class VkAccelerationStructureInfoNV {
Jesse Hallb5297192018-09-22 20:52:13 +02007334 VkStructureType sType
7335 const void* pNext
Jesse Halla363a8e2018-11-05 21:18:00 -07007336 VkAccelerationStructureTypeNV type
7337 VkBuildAccelerationStructureFlagsNV flags
Jesse Hallb5297192018-09-22 20:52:13 +02007338 u32 instanceCount
7339 u32 geometryCount
Jesse Halla363a8e2018-11-05 21:18:00 -07007340 const VkGeometryNV* pGeometries
Jesse Hallb5297192018-09-22 20:52:13 +02007341}
7342
Jesse Halla363a8e2018-11-05 21:18:00 -07007343@extension("VK_NV_raytracing") // 166
7344class VkAccelerationStructureCreateInfoNV {
Jesse Hallb5297192018-09-22 20:52:13 +02007345 VkStructureType sType
7346 const void* pNext
Jesse Halla363a8e2018-11-05 21:18:00 -07007347 VkDeviceSize compactedSize
7348 VkAccelerationStructureInfoNV info
7349}
7350
7351@extension("VK_NV_raytracing") // 166
7352class VkBindAccelerationStructureMemoryInfoNV {
7353 VkStructureType sType
7354 const void* pNext
7355 VkAccelerationStructureNV accelerationStructure
Jesse Hallb5297192018-09-22 20:52:13 +02007356 VkDeviceMemory memory
7357 VkDeviceSize memoryOffset
7358 u32 deviceIndexCount
7359 const u32* pDeviceIndices
7360}
7361
Jesse Halla363a8e2018-11-05 21:18:00 -07007362@extension("VK_NV_raytracing") // 166
7363class VkDescriptorAccelerationStructureInfoNV {
Jesse Hallb5297192018-09-22 20:52:13 +02007364 VkStructureType sType
7365 const void* pNext
7366 u32 accelerationStructureCount
Jesse Halla363a8e2018-11-05 21:18:00 -07007367 const VkAccelerationStructureNV* pAccelerationStructures
Jesse Hallb5297192018-09-22 20:52:13 +02007368}
7369
Jesse Halla363a8e2018-11-05 21:18:00 -07007370@extension("VK_NV_raytracing") // 166
7371class VkAccelerationStructureMemoryRequirementsInfoNV {
Jesse Hallb5297192018-09-22 20:52:13 +02007372 VkStructureType sType
7373 const void* pNext
Jesse Halla363a8e2018-11-05 21:18:00 -07007374 VkAccelerationStructureMemoryRequirementsTypeNV type
7375 VkAccelerationStructureNV accelerationStructure
Jesse Hallb5297192018-09-22 20:52:13 +02007376}
7377
Jesse Halla363a8e2018-11-05 21:18:00 -07007378@extension("VK_NV_raytracing") // 166
7379class VkPhysicalDeviceRaytracingPropertiesNV {
Jesse Hallb5297192018-09-22 20:52:13 +02007380 VkStructureType sType
7381 void* pNext
Jesse Halla363a8e2018-11-05 21:18:00 -07007382 u32 shaderGroupHandleSize
Jesse Hallb5297192018-09-22 20:52:13 +02007383 u32 maxRecursionDepth
Jesse Halla363a8e2018-11-05 21:18:00 -07007384 u32 maxShaderGroupStride
7385 u32 shaderGroupBaseAlignment
7386 u64 maxGeometryCount
7387 u64 maxInstanceCount
7388 u64 maxTriangleCount
7389 u32 maxDescriptorSetAccelerationStructures
Jesse Hallb5297192018-09-22 20:52:13 +02007390}
7391
7392@extension("VK_NV_representative_fragment_test") // 167
7393class VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV {
7394 VkStructureType sType
7395 void* pNext
7396 VkBool32 representativeFragmentTest
7397}
7398
7399@extension("VK_NV_representative_fragment_test") // 167
7400class VkPipelineRepresentativeFragmentTestStateCreateInfoNV {
7401 VkStructureType sType
7402 const void* pNext
7403 VkBool32 representativeFragmentTestEnable
7404}
7405
Daniel Koch09f7bf92017-10-05 00:26:58 -04007406@extension("VK_KHR_maintenance3") // 169
7407class VkPhysicalDeviceMaintenance3PropertiesKHR {
7408 VkStructureType sType
7409 void* pNext
7410 u32 maxPerSetDescriptors
7411 VkDeviceSize maxMemoryAllocationSize
7412}
7413
7414@extension("VK_KHR_maintenance3") // 169
7415class VkDescriptorSetLayoutSupportKHR {
7416 VkStructureType sType
7417 void* pNext
7418 VkBool32 supported
7419}
7420
Jesse Hall8c954d32018-01-17 22:06:20 -08007421@extension("VK_EXT_global_priority") // 175
7422class VkDeviceQueueGlobalPriorityCreateInfoEXT {
7423 VkStructureType sType
7424 const void* pNext
7425 VkQueueGlobalPriorityEXT globalPriority
7426}
7427
Jesse Halla13a3cf2018-07-09 15:51:52 -07007428@extension("VK_KHR_8bit_storage") // 178
7429class VkPhysicalDevice8BitStorageFeaturesKHR {
7430 VkStructureType sType
7431 void* pNext
7432 VkBool32 storageBuffer8BitAccess
7433 VkBool32 uniformAndStorageBuffer8BitAccess
7434 VkBool32 storagePushConstant8
7435}
7436
Jesse Hall8c954d32018-01-17 22:06:20 -08007437@extension("VK_EXT_external_memory_host") // 179
7438class VkImportMemoryHostPointerInfoEXT {
7439 VkStructureType sType
7440 const void* pNext
7441 VkExternalMemoryHandleTypeFlagBits handleType
7442 void* pHostPointer
7443}
7444
7445@extension("VK_EXT_external_memory_host") // 179
7446class VkMemoryHostPointerPropertiesEXT {
7447 VkStructureType sType
7448 void* pNext
7449 u32 memoryTypeBits
7450}
7451
7452@extension("VK_EXT_external_memory_host") // 179
7453class VkPhysicalDeviceExternalMemoryHostPropertiesEXT {
7454 VkStructureType sType
7455 void* pNext
7456 VkDeviceSize minImportedHostPointerAlignment
7457}
7458
Jesse Hall2e6853c2018-10-02 14:05:37 -07007459@extension("VK_KHR_shader_atomic_int64") // 181
7460class VkPhysicalDeviceShaderAtomicInt64FeaturesKHR {
7461 VkStructureType sType
7462 void* pNext
7463 VkBool32 shaderBufferInt64Atomics
7464 VkBool32 shaderSharedInt64Atomics
7465}
7466
Jesse Hallf47e8f82018-10-27 23:41:45 -07007467@extension("VK_EXT_calibrated_timestamps") // 185
7468class VkCalibratedTimestampInfoEXT {
7469 VkStructureType sType
7470 const void* pNext
7471 VkTimeDomainEXT timeDomain
7472}
7473
Jesse Hall72e6a132018-04-06 13:00:44 -07007474@extension("VK_AMD_shader_core_properties") // 186
7475class VkPhysicalDeviceShaderCorePropertiesAMD {
7476 VkStructureType sType
7477 void* pNext
7478 u32 shaderEngineCount
7479 u32 shaderArraysPerEngineCount
7480 u32 computeUnitsPerShaderArray
7481 u32 simdPerComputeUnit
7482 u32 wavefrontsPerSimd
7483 u32 wavefrontSize
7484 u32 sgprsPerSimd
7485 u32 minSgprAllocation
7486 u32 maxSgprAllocation
7487 u32 sgprAllocationGranularity
7488 u32 vgprsPerSimd
7489 u32 minVgprAllocation
7490 u32 maxVgprAllocation
7491 u32 vgprAllocationGranularity
7492}
7493
Jesse Halla363a8e2018-11-05 21:18:00 -07007494@extension("VK_AMD_memory_overallocation_behavior") // 190
7495class VkDeviceMemoryOverallocationCreateInfoAMD {
7496 VkStructureType sType
7497 const void* pNext
7498 VkMemoryOverallocationBehaviorAMD overallocationBehavior
7499}
7500
Jesse Hall72e6a132018-04-06 13:00:44 -07007501@extension("VK_EXT_vertex_attribute_divisor") // 191
7502class VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT {
7503 VkStructureType sType
7504 void* pNext
7505 u32 maxVertexAttribDivisor
7506}
7507
7508@extension("VK_EXT_vertex_attribute_divisor") // 191
7509class VkVertexInputBindingDivisorDescriptionEXT {
7510 u32 binding
7511 u32 divisor
7512}
7513
7514@extension("VK_EXT_vertex_attribute_divisor") // 191
7515class VkPipelineVertexInputDivisorStateCreateInfoEXT {
7516 VkStructureType sType
7517 const void* pNext
7518 u32 vertexBindingDivisorCount
7519 const VkVertexInputBindingDivisorDescriptionEXT* pVertexBindingDivisors
7520}
7521
Jesse Hall4af6c462018-09-10 09:04:25 -07007522@extension("VK_EXT_vertex_attribute_divisor") // 191
7523class VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT {
7524 VkStructureType sType
7525 void* pNext
7526 VkBool32 vertexAttributeInstanceRateDivisor
7527 VkBool32 vertexAttributeInstanceRateZeroDivisor
7528}
7529
Jesse Hall2e6853c2018-10-02 14:05:37 -07007530@extension("VK_KHR_driver_properties") // 197
7531class VkConformanceVersionKHR {
7532 u8 major
7533 u8 minor
7534 u8 subminor
7535 u8 patch
7536}
7537
7538@extension("VK_KHR_driver_properties") // 197
7539class VkPhysicalDeviceDriverPropertiesKHR {
7540 VkStructureType sType
7541 void* pNext
Jesse Hallf47e8f82018-10-27 23:41:45 -07007542 VkDriverIdKHR driverID
Jesse Hall2e6853c2018-10-02 14:05:37 -07007543 char[VK_MAX_DRIVER_NAME_SIZE_KHR] driverName
7544 char[VK_MAX_DRIVER_INFO_SIZE_KHR] driverInfo
7545 VkConformanceVersionKHR conformanceVersion
7546}
7547
Jesse Hallb5297192018-09-22 20:52:13 +02007548@extension("VK_NV_compute_shader_derivatives") // 202
7549class VkPhysicalDeviceComputeShaderDerivativesFeaturesNV {
7550 VkStructureType sType
7551 void* pNext
7552 VkBool32 computeDerivativeGroupQuads
7553 VkBool32 computeDerivativeGroupLinear
7554}
7555
7556@extension("VK_NV_mesh_shader") // 203
7557class VkPhysicalDeviceMeshShaderFeaturesNV {
7558 VkStructureType sType
7559 void* pNext
7560 VkBool32 taskShader
7561 VkBool32 meshShader
7562}
7563
7564@extension("VK_NV_mesh_shader") // 203
7565class VkPhysicalDeviceMeshShaderPropertiesNV {
7566 VkStructureType sType
7567 void* pNext
7568 u32 maxDrawMeshTasksCount
7569 u32 maxTaskWorkGroupInvocations
7570 u32[3] maxTaskWorkGroupSize
7571 u32 maxTaskTotalMemorySize
7572 u32 maxTaskOutputCount
7573 u32 maxMeshWorkGroupInvocations
7574 u32[3] maxMeshWorkGroupSize
7575 u32 maxMeshTotalMemorySize
7576 u32 maxMeshOutputVertices
7577 u32 maxMeshOutputPrimitives
7578 u32 maxMeshMultiviewViewCount
7579 u32 meshOutputPerVertexGranularity
7580 u32 meshOutputPerPrimitiveGranularity
7581}
7582
7583@extension("VK_NV_mesh_shader") // 203
7584class VkDrawMeshTasksIndirectCommandNV {
7585 u32 taskCount
7586 u32 firstTask
7587}
7588
7589@extension("VK_NV_fragment_shader_barycentric") // 204
7590class VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV {
7591 VkStructureType sType
7592 void* pNext
7593 VkBool32 fragmentShaderBarycentric
7594}
7595
7596@extension("VK_NV_shader_image_footprint") // 205
7597class VkPhysicalDeviceShaderImageFootprintFeaturesNV {
7598 VkStructureType sType
7599 void* pNext
7600 VkBool32 imageFootprint
7601}
7602
7603@extension("VK_NV_scissor_exclusive") // 206
7604class VkPipelineViewportExclusiveScissorStateCreateInfoNV {
7605 VkStructureType sType
7606 const void* pNext
7607 u32 exclusiveScissorCount
7608 const VkRect2D* pExclusiveScissors
7609}
7610
7611@extension("VK_NV_scissor_exclusive") // 206
7612class VkPhysicalDeviceExclusiveScissorFeaturesNV {
7613 VkStructureType sType
7614 void* pNext
7615 VkBool32 exclusiveScissor
7616}
7617
Jesse Hall115df0c2018-07-30 12:00:59 -07007618@extension("VK_NV_device_diagnostic_checkpoints") // 207
7619class VkQueueFamilyCheckpointPropertiesNV {
7620 VkStructureType sType
7621 void* pNext
7622 VkPipelineStageFlags checkpointExecutionStageMask
7623}
7624
7625@extension("VK_NV_device_diagnostic_checkpoints") // 207
7626class VkCheckpointDataNV {
7627 VkStructureType sType
7628 void* pNext
7629 VkPipelineStageFlagBits stage
7630 void* pCheckpointMarker
7631}
7632
Jesse Hall4af6c462018-09-10 09:04:25 -07007633@extension("VK_KHR_vulkan_memory_model") // 212
7634class VkPhysicalDeviceVulkanMemoryModelFeaturesKHR {
7635 VkStructureType sType
7636 void* pNext
7637 VkBool32 vulkanMemoryModel
7638 VkBool32 vulkanMemoryModelDeviceScope
7639}
7640
Jesse Hallf47e8f82018-10-27 23:41:45 -07007641@extension("VK_EXT_pci_bus_info") // 213
7642class VkPhysicalDevicePCIBusInfoPropertiesEXT {
7643 VkStructureType sType
7644 void* pNext
7645 u16 pciDomain
7646 u8 pciBus
7647 u8 pciDevice
7648 u8 pciFunction
7649}
7650
Jesse Hall497c46f2018-10-08 12:52:48 -07007651@extension("VK_FUCHSIA_imagepipe_surface") // 215
7652class VkImagePipeSurfaceCreateInfoFUCHSIA {
7653 VkStructureType sType
7654 const void* pNext
7655 VkImagePipeSurfaceCreateFlagsFUCHSIA flags
7656 platform.zx_handle_t imagePipeHandle
7657}
7658
Daniel Koch09f7bf92017-10-05 00:26:58 -04007659
Jesse Halld27f6aa2015-08-15 17:58:48 -07007660////////////////
7661// Commands //
7662////////////////
7663
7664// Function pointers. TODO: add support for function pointers.
7665
7666@external type void* PFN_vkVoidFunction
7667@pfn cmd void vkVoidFunction() {
7668}
7669
Jesse Hall3fbc8562015-11-29 22:10:52 -08007670@external type void* PFN_vkAllocationFunction
7671@pfn cmd void* vkAllocationFunction(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007672 void* pUserData,
7673 platform.size_t size,
7674 platform.size_t alignment,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007675 VkSystemAllocationScope allocationScope) {
Jesse Hall03b6fe12015-11-24 12:44:21 -08007676 return ?
7677}
7678
Jesse Hall3fbc8562015-11-29 22:10:52 -08007679@external type void* PFN_vkReallocationFunction
7680@pfn cmd void* vkReallocationFunction(
Jesse Hall03b6fe12015-11-24 12:44:21 -08007681 void* pUserData,
7682 void* pOriginal,
7683 platform.size_t size,
7684 platform.size_t alignment,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007685 VkSystemAllocationScope allocationScope) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007686 return ?
7687}
7688
7689@external type void* PFN_vkFreeFunction
7690@pfn cmd void vkFreeFunction(
7691 void* pUserData,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007692 void* pMemory) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007693}
7694
Jesse Hall3fbc8562015-11-29 22:10:52 -08007695@external type void* PFN_vkInternalAllocationNotification
7696@pfn cmd void vkInternalAllocationNotification(
Jesse Hall03b6fe12015-11-24 12:44:21 -08007697 void* pUserData,
7698 platform.size_t size,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007699 VkInternalAllocationType allocationType,
7700 VkSystemAllocationScope allocationScope) {
Jesse Hall03b6fe12015-11-24 12:44:21 -08007701}
7702
7703@external type void* PFN_vkInternalFreeNotification
7704@pfn cmd void vkInternalFreeNotification(
7705 void* pUserData,
7706 platform.size_t size,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007707 VkInternalAllocationType allocationType,
7708 VkSystemAllocationScope allocationScope) {
Jesse Hall03b6fe12015-11-24 12:44:21 -08007709}
Jesse Halld27f6aa2015-08-15 17:58:48 -07007710
7711// Global functions
7712
7713@threadSafety("system")
7714cmd VkResult vkCreateInstance(
7715 const VkInstanceCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007716 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007717 VkInstance* pInstance) {
7718 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO)
7719
7720 instance := ?
7721 pInstance[0] = instance
7722 State.Instances[instance] = new!InstanceObject()
7723
Jesse Hall3dd678a2016-01-08 21:52:01 -08007724 layers := pCreateInfo.ppEnabledLayerNames[0:pCreateInfo.enabledLayerCount]
7725 extensions := pCreateInfo.ppEnabledExtensionNames[0:pCreateInfo.enabledExtensionCount]
Jesse Halld27f6aa2015-08-15 17:58:48 -07007726
7727 return ?
7728}
7729
7730@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007731cmd void vkDestroyInstance(
Jesse Hall03b6fe12015-11-24 12:44:21 -08007732 VkInstance instance,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007733 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007734 instanceObject := GetInstance(instance)
7735
7736 State.Instances[instance] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07007737}
7738
7739@threadSafety("system")
7740cmd VkResult vkEnumeratePhysicalDevices(
7741 VkInstance instance,
7742 u32* pPhysicalDeviceCount,
7743 VkPhysicalDevice* pPhysicalDevices) {
7744 instanceObject := GetInstance(instance)
7745
7746 physicalDeviceCount := as!u32(?)
7747 pPhysicalDeviceCount[0] = physicalDeviceCount
7748 physicalDevices := pPhysicalDevices[0:physicalDeviceCount]
7749
7750 for i in (0 .. physicalDeviceCount) {
7751 physicalDevice := ?
7752 physicalDevices[i] = physicalDevice
7753 if !(physicalDevice in State.PhysicalDevices) {
7754 State.PhysicalDevices[physicalDevice] = new!PhysicalDeviceObject(instance: instance)
7755 }
7756 }
7757
7758 return ?
7759}
7760
7761cmd PFN_vkVoidFunction vkGetDeviceProcAddr(
7762 VkDevice device,
7763 const char* pName) {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007764 if device != NULL_HANDLE {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007765 device := GetDevice(device)
7766 }
7767
7768 return ?
7769}
7770
7771cmd PFN_vkVoidFunction vkGetInstanceProcAddr(
7772 VkInstance instance,
7773 const char* pName) {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007774 if instance != NULL_HANDLE {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007775 instanceObject := GetInstance(instance)
7776 }
7777
7778 return ?
7779}
7780
Jesse Hall606a54e2015-11-19 22:17:28 -08007781cmd void vkGetPhysicalDeviceProperties(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007782 VkPhysicalDevice physicalDevice,
7783 VkPhysicalDeviceProperties* pProperties) {
7784 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
7785
7786 properties := ?
7787 pProperties[0] = properties
Jesse Halld27f6aa2015-08-15 17:58:48 -07007788}
7789
Jesse Hall606a54e2015-11-19 22:17:28 -08007790cmd void vkGetPhysicalDeviceQueueFamilyProperties(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007791 VkPhysicalDevice physicalDevice,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007792 u32* pQueueFamilyPropertyCount,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007793 VkQueueFamilyProperties* pQueueFamilyProperties) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007794 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007795 // TODO: Figure out how to express fetch-count-or-properties
7796 // This version fails 'apic validate' with 'fence not allowed in
7797 // *semantic.Branch'. Other attempts have failed with the same or other
7798 // errors.
7799 // if pQueueFamilyProperties != null {
7800 // queuesProperties := pQueueFamilyProperties[0:pCount[0]]
7801 // for i in (0 .. pCount[0]) {
7802 // queueProperties := as!VkQueueFamilyProperties(?)
7803 // queuesProperties[i] = queueProperties
7804 // }
7805 // } else {
7806 // count := ?
7807 // pCount[0] = count
7808 // }
Jesse Halld27f6aa2015-08-15 17:58:48 -07007809}
7810
Jesse Hall606a54e2015-11-19 22:17:28 -08007811cmd void vkGetPhysicalDeviceMemoryProperties(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007812 VkPhysicalDevice physicalDevice,
7813 VkPhysicalDeviceMemoryProperties* pMemoryProperties) {
7814 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
7815
7816 memoryProperties := ?
7817 pMemoryProperties[0] = memoryProperties
Jesse Halld27f6aa2015-08-15 17:58:48 -07007818}
7819
Jesse Hall606a54e2015-11-19 22:17:28 -08007820cmd void vkGetPhysicalDeviceFeatures(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007821 VkPhysicalDevice physicalDevice,
7822 VkPhysicalDeviceFeatures* pFeatures) {
7823 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
7824
7825 features := ?
7826 pFeatures[0] = features
Jesse Halld27f6aa2015-08-15 17:58:48 -07007827}
7828
Jesse Hall606a54e2015-11-19 22:17:28 -08007829cmd void vkGetPhysicalDeviceFormatProperties(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007830 VkPhysicalDevice physicalDevice,
7831 VkFormat format,
7832 VkFormatProperties* pFormatProperties) {
7833 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
7834
7835 formatProperties := ?
7836 pFormatProperties[0] = formatProperties
Jesse Halld27f6aa2015-08-15 17:58:48 -07007837}
7838
Jesse Halla9e57032015-11-30 01:03:10 -08007839cmd VkResult vkGetPhysicalDeviceImageFormatProperties(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007840 VkPhysicalDevice physicalDevice,
7841 VkFormat format,
7842 VkImageType type,
7843 VkImageTiling tiling,
7844 VkImageUsageFlags usage,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007845 VkImageCreateFlags flags,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007846 VkImageFormatProperties* pImageFormatProperties) {
7847 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
7848
7849 imageFormatProperties := ?
7850 pImageFormatProperties[0] = imageFormatProperties
Jesse Halla9e57032015-11-30 01:03:10 -08007851
7852 return ?
Jesse Halld27f6aa2015-08-15 17:58:48 -07007853}
7854
Jesse Halld27f6aa2015-08-15 17:58:48 -07007855
7856// Device functions
7857
7858@threadSafety("system")
7859cmd VkResult vkCreateDevice(
7860 VkPhysicalDevice physicalDevice,
7861 const VkDeviceCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007862 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007863 VkDevice* pDevice) {
7864 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO)
7865 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
7866
7867 device := ?
7868 pDevice[0] = device
7869 State.Devices[device] = new!DeviceObject(physicalDevice: physicalDevice)
7870
7871 return ?
7872}
7873
7874@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007875cmd void vkDestroyDevice(
Jesse Hall03b6fe12015-11-24 12:44:21 -08007876 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007877 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007878 deviceObject := GetDevice(device)
7879
7880 State.Devices[device] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07007881}
7882
7883
7884// Extension discovery functions
7885
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007886cmd VkResult vkEnumerateInstanceLayerProperties(
Jesse Hall03b6fe12015-11-24 12:44:21 -08007887 u32* pPropertyCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007888 VkLayerProperties* pProperties) {
7889 count := as!u32(?)
Jesse Hall03b6fe12015-11-24 12:44:21 -08007890 pPropertyCount[0] = count
Jesse Halld27f6aa2015-08-15 17:58:48 -07007891
7892 properties := pProperties[0:count]
7893 for i in (0 .. count) {
7894 property := ?
7895 properties[i] = property
7896 }
7897
7898 return ?
7899}
7900
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007901cmd VkResult vkEnumerateInstanceExtensionProperties(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007902 const char* pLayerName,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007903 u32* pPropertyCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007904 VkExtensionProperties* pProperties) {
7905 count := as!u32(?)
Jesse Hall03b6fe12015-11-24 12:44:21 -08007906 pPropertyCount[0] = count
Jesse Halld27f6aa2015-08-15 17:58:48 -07007907
7908 properties := pProperties[0:count]
7909 for i in (0 .. count) {
7910 property := ?
7911 properties[i] = property
7912 }
7913
7914 return ?
7915}
7916
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007917cmd VkResult vkEnumerateDeviceLayerProperties(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007918 VkPhysicalDevice physicalDevice,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007919 u32* pPropertyCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007920 VkLayerProperties* pProperties) {
7921 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
7922 count := as!u32(?)
Jesse Hall03b6fe12015-11-24 12:44:21 -08007923 pPropertyCount[0] = count
Jesse Halld27f6aa2015-08-15 17:58:48 -07007924
7925 properties := pProperties[0:count]
7926 for i in (0 .. count) {
7927 property := ?
7928 properties[i] = property
7929 }
7930
7931 return ?
7932}
7933
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007934cmd VkResult vkEnumerateDeviceExtensionProperties(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007935 VkPhysicalDevice physicalDevice,
7936 const char* pLayerName,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007937 u32* pPropertyCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007938 VkExtensionProperties* pProperties) {
7939 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
7940
7941 count := as!u32(?)
Jesse Hall03b6fe12015-11-24 12:44:21 -08007942 pPropertyCount[0] = count
Jesse Halld27f6aa2015-08-15 17:58:48 -07007943
7944 properties := pProperties[0:count]
7945 for i in (0 .. count) {
7946 property := ?
7947 properties[i] = property
7948 }
7949
7950 return ?
7951}
7952
7953
7954// Queue functions
7955
7956@threadSafety("system")
Jesse Hall606a54e2015-11-19 22:17:28 -08007957cmd void vkGetDeviceQueue(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007958 VkDevice device,
7959 u32 queueFamilyIndex,
7960 u32 queueIndex,
7961 VkQueue* pQueue) {
7962 deviceObject := GetDevice(device)
7963
7964 queue := ?
7965 pQueue[0] = queue
7966
7967 if !(queue in State.Queues) {
7968 State.Queues[queue] = new!QueueObject(device: device)
7969 }
Jesse Halld27f6aa2015-08-15 17:58:48 -07007970}
7971
7972@threadSafety("app")
7973cmd VkResult vkQueueSubmit(
7974 VkQueue queue,
Jesse Halla366a512015-11-19 22:30:07 -08007975 u32 submitCount,
Jesse Hallb00daad2015-11-29 19:46:20 -08007976 const VkSubmitInfo* pSubmits,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007977 VkFence fence) {
7978 queueObject := GetQueue(queue)
7979
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007980 if fence != NULL_HANDLE {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007981 fenceObject := GetFence(fence)
7982 assert(fenceObject.device == queueObject.device)
7983 }
7984
Jesse Hall3fbc8562015-11-29 22:10:52 -08007985 // commandBuffers := pcommandBuffers[0:commandBufferCount]
7986 // for i in (0 .. commandBufferCount) {
7987 // commandBuffer := commandBuffers[i]
7988 // commandBufferObject := GetCommandBuffer(commandBuffer)
7989 // assert(commandBufferObject.device == queueObject.device)
Jesse Halla366a512015-11-19 22:30:07 -08007990 //
Jesse Hall3fbc8562015-11-29 22:10:52 -08007991 // validate("QueueCheck", commandBufferObject.queueFlags in queueObject.flags,
7992 // "vkQueueSubmit: enqueued commandBuffer requires missing queue capabilities.")
Jesse Halla366a512015-11-19 22:30:07 -08007993 // }
Jesse Halld27f6aa2015-08-15 17:58:48 -07007994
7995 return ?
7996}
7997
7998@threadSafety("system")
7999cmd VkResult vkQueueWaitIdle(
8000 VkQueue queue) {
8001 queueObject := GetQueue(queue)
8002
8003 return ?
8004}
8005
8006@threadSafety("system")
8007cmd VkResult vkDeviceWaitIdle(
8008 VkDevice device) {
8009 deviceObject := GetDevice(device)
8010
8011 return ?
8012}
8013
8014
8015// Memory functions
8016
8017@threadSafety("system")
Jesse Hall3fbc8562015-11-29 22:10:52 -08008018cmd VkResult vkAllocateMemory(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008019 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008020 const VkMemoryAllocateInfo* pAllocateInfo,
8021 const VkAllocationCallbacks* pAllocator,
8022 VkDeviceMemory* pMemory) {
Jesse Hallf4ab2b12015-11-30 16:04:55 -08008023 assert(pAllocateInfo.sType == VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008024 deviceObject := GetDevice(device)
8025
Jesse Hall3fbc8562015-11-29 22:10:52 -08008026 memory := ?
8027 pMemory[0] = memory
8028 State.DeviceMemories[memory] = new!DeviceMemoryObject(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008029 device: device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008030 allocationSize: pAllocateInfo[0].allocationSize)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008031
8032 return ?
8033}
8034
8035@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008036cmd void vkFreeMemory(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008037 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008038 VkDeviceMemory memory,
8039 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008040 deviceObject := GetDevice(device)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008041 memoryObject := GetDeviceMemory(memory)
8042 assert(memoryObject.device == device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008043
8044 // Check that no objects are still bound before freeing.
Jesse Hall3fbc8562015-11-29 22:10:52 -08008045 validate("MemoryCheck", len(memoryObject.boundObjects) == 0,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008046 "vkFreeMemory: objects still bound")
Jesse Hall3fbc8562015-11-29 22:10:52 -08008047 validate("MemoryCheck", len(memoryObject.boundCommandBuffers) == 0,
8048 "vkFreeMemory: commandBuffers still bound")
8049 State.DeviceMemories[memory] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008050}
8051
8052@threadSafety("app")
8053cmd VkResult vkMapMemory(
8054 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008055 VkDeviceMemory memory,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008056 VkDeviceSize offset,
8057 VkDeviceSize size,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008058 VkMemoryMapFlags flags,
8059 void** ppData) {
8060 deviceObject := GetDevice(device)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008061 memoryObject := GetDeviceMemory(memory)
8062 assert(memoryObject.device == device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008063
8064 assert(flags == as!VkMemoryMapFlags(0))
Jesse Hall3fbc8562015-11-29 22:10:52 -08008065 assert((offset + size) <= memoryObject.allocationSize)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008066
8067 return ?
8068}
8069
8070@threadSafety("app")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008071cmd void vkUnmapMemory(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008072 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008073 VkDeviceMemory memory) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008074 deviceObject := GetDevice(device)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008075 memoryObject := GetDeviceMemory(memory)
8076 assert(memoryObject.device == device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008077}
8078
8079cmd VkResult vkFlushMappedMemoryRanges(
8080 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008081 u32 memoryRangeCount
8082 const VkMappedMemoryRange* pMemoryRanges) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008083 deviceObject := GetDevice(device)
8084
Jesse Hall3fbc8562015-11-29 22:10:52 -08008085 memoryRanges := pMemoryRanges[0:memoryRangeCount]
8086 for i in (0 .. memoryRangeCount) {
8087 memoryRange := memoryRanges[i]
8088 memoryObject := GetDeviceMemory(memoryRange.memory)
8089 assert(memoryObject.device == device)
8090 assert((memoryRange.offset + memoryRange.size) <= memoryObject.allocationSize)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008091 }
8092
8093 return ?
8094}
8095
8096cmd VkResult vkInvalidateMappedMemoryRanges(
8097 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008098 u32 memoryRangeCount,
8099 const VkMappedMemoryRange* pMemoryRanges) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008100 deviceObject := GetDevice(device)
8101
Jesse Hall3fbc8562015-11-29 22:10:52 -08008102 memoryRanges := pMemoryRanges[0:memoryRangeCount]
8103 for i in (0 .. memoryRangeCount) {
8104 memoryRange := memoryRanges[i]
8105 memoryObject := GetDeviceMemory(memoryRange.memory)
8106 assert(memoryObject.device == device)
8107 assert((memoryRange.offset + memoryRange.size) <= memoryObject.allocationSize)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008108 }
8109
8110 return ?
8111}
8112
8113
8114// Memory management API functions
8115
Jesse Hall606a54e2015-11-19 22:17:28 -08008116cmd void vkGetDeviceMemoryCommitment(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008117 VkDevice device,
8118 VkDeviceMemory memory,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008119 VkDeviceSize* pCommittedMemoryInBytes) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008120 deviceObject := GetDevice(device)
8121
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008122 if memory != NULL_HANDLE {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008123 memoryObject := GetDeviceMemory(memory)
8124 assert(memoryObject.device == device)
8125 }
8126
8127 committedMemoryInBytes := ?
8128 pCommittedMemoryInBytes[0] = committedMemoryInBytes
Jesse Halld27f6aa2015-08-15 17:58:48 -07008129}
8130
Jesse Hall606a54e2015-11-19 22:17:28 -08008131cmd void vkGetBufferMemoryRequirements(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008132 VkDevice device,
8133 VkBuffer buffer,
8134 VkMemoryRequirements* pMemoryRequirements) {
8135 deviceObject := GetDevice(device)
8136 bufferObject := GetBuffer(buffer)
8137 assert(bufferObject.device == device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008138}
8139
8140cmd VkResult vkBindBufferMemory(
8141 VkDevice device,
8142 VkBuffer buffer,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008143 VkDeviceMemory memory,
8144 VkDeviceSize memoryOffset) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008145 deviceObject := GetDevice(device)
8146 bufferObject := GetBuffer(buffer)
8147 assert(bufferObject.device == device)
8148
8149 // Unbind buffer from previous memory object, if not VK_NULL_HANDLE.
Jesse Hall3fbc8562015-11-29 22:10:52 -08008150 if bufferObject.memory != NULL_HANDLE {
8151 memoryObject := GetDeviceMemory(bufferObject.memory)
8152 memoryObject.boundObjects[as!u64(buffer)] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008153 }
8154
8155 // Bind buffer to given memory object, if not VK_NULL_HANDLE.
Jesse Hall3fbc8562015-11-29 22:10:52 -08008156 if memory != NULL_HANDLE {
8157 memoryObject := GetDeviceMemory(memory)
8158 assert(memoryObject.device == device)
8159 memoryObject.boundObjects[as!u64(buffer)] = memoryOffset
Jesse Halld27f6aa2015-08-15 17:58:48 -07008160 }
Jesse Hall3fbc8562015-11-29 22:10:52 -08008161 bufferObject.memory = memory
8162 bufferObject.memoryOffset = memoryOffset
Jesse Halld27f6aa2015-08-15 17:58:48 -07008163
8164 return ?
8165}
8166
Jesse Hall606a54e2015-11-19 22:17:28 -08008167cmd void vkGetImageMemoryRequirements(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008168 VkDevice device,
8169 VkImage image,
8170 VkMemoryRequirements* pMemoryRequirements) {
8171 deviceObject := GetDevice(device)
8172 imageObject := GetImage(image)
8173 assert(imageObject.device == device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008174}
8175
8176cmd VkResult vkBindImageMemory(
8177 VkDevice device,
8178 VkImage image,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008179 VkDeviceMemory memory,
8180 VkDeviceSize memoryOffset) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008181 deviceObject := GetDevice(device)
8182 imageObject := GetImage(image)
8183 assert(imageObject.device == device)
8184
8185 // Unbind image from previous memory object, if not VK_NULL_HANDLE.
Jesse Hall3fbc8562015-11-29 22:10:52 -08008186 if imageObject.memory != NULL_HANDLE {
8187 memoryObject := GetDeviceMemory(imageObject.memory)
8188 memoryObject.boundObjects[as!u64(image)] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008189 }
8190
8191 // Bind image to given memory object, if not VK_NULL_HANDLE.
Jesse Hall3fbc8562015-11-29 22:10:52 -08008192 if memory != NULL_HANDLE {
8193 memoryObject := GetDeviceMemory(memory)
8194 assert(memoryObject.device == device)
8195 memoryObject.boundObjects[as!u64(image)] = memoryOffset
Jesse Halld27f6aa2015-08-15 17:58:48 -07008196 }
Jesse Hall3fbc8562015-11-29 22:10:52 -08008197 imageObject.memory = memory
8198 imageObject.memoryOffset = memoryOffset
Jesse Halld27f6aa2015-08-15 17:58:48 -07008199
8200 return ?
8201}
8202
Jesse Hall606a54e2015-11-19 22:17:28 -08008203cmd void vkGetImageSparseMemoryRequirements(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008204 VkDevice device,
8205 VkImage image,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008206 u32* pSparseMemoryRequirementCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008207 VkSparseImageMemoryRequirements* pSparseMemoryRequirements) {
8208 deviceObject := GetDevice(device)
8209 imageObject := GetImage(image)
8210 assert(imageObject.device == device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008211}
8212
Jesse Hall606a54e2015-11-19 22:17:28 -08008213cmd void vkGetPhysicalDeviceSparseImageFormatProperties(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008214 VkPhysicalDevice physicalDevice,
8215 VkFormat format,
8216 VkImageType type,
Jesse Hall091ed9e2015-11-30 00:55:29 -08008217 VkSampleCountFlagBits samples,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008218 VkImageUsageFlags usage,
8219 VkImageTiling tiling,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008220 u32* pPropertyCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008221 VkSparseImageFormatProperties* pProperties) {
8222 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008223}
8224
Jesse Halla6429252015-11-29 18:59:42 -08008225cmd VkResult vkQueueBindSparse(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008226 VkQueue queue,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008227 u32 bindInfoCount,
Jesse Halla6429252015-11-29 18:59:42 -08008228 const VkBindSparseInfo* pBindInfo,
8229 VkFence fence) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008230 queueObject := GetQueue(queue)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008231
8232 return ?
8233}
8234
8235
8236// Fence functions
8237
8238@threadSafety("system")
8239cmd VkResult vkCreateFence(
8240 VkDevice device,
8241 const VkFenceCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008242 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008243 VkFence* pFence) {
8244 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_FENCE_CREATE_INFO)
8245 deviceObject := GetDevice(device)
8246
8247 fence := ?
8248 pFence[0] = fence
8249 State.Fences[fence] = new!FenceObject(
Jesse Halld8bade02015-11-24 10:24:18 -08008250 device: device, signaled: (pCreateInfo.flags == as!VkFenceCreateFlags(VK_FENCE_CREATE_SIGNALED_BIT)))
Jesse Halld27f6aa2015-08-15 17:58:48 -07008251
8252 return ?
8253}
8254
8255@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008256cmd void vkDestroyFence(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008257 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008258 VkFence fence,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008259 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008260 deviceObject := GetDevice(device)
8261 fenceObject := GetFence(fence)
8262 assert(fenceObject.device == device)
8263
8264 State.Fences[fence] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008265}
8266
8267@threadSafety("system")
8268cmd VkResult vkResetFences(
8269 VkDevice device,
8270 u32 fenceCount,
8271 const VkFence* pFences) {
8272 deviceObject := GetDevice(device)
8273
8274 fences := pFences[0:fenceCount]
8275 for i in (0 .. fenceCount) {
8276 fence := fences[i]
8277 fenceObject := GetFence(fence)
8278 assert(fenceObject.device == device)
8279 fenceObject.signaled = false
8280 }
8281
8282 return ?
8283}
8284
8285@threadSafety("system")
8286cmd VkResult vkGetFenceStatus(
8287 VkDevice device,
8288 VkFence fence) {
8289 deviceObject := GetDevice(device)
8290 fenceObject := GetFence(fence)
8291 assert(fenceObject.device == device)
8292
8293 return ?
8294}
8295
8296@threadSafety("system")
8297cmd VkResult vkWaitForFences(
8298 VkDevice device,
8299 u32 fenceCount,
8300 const VkFence* pFences,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008301 VkBool32 waitAll,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008302 u64 timeout) { /// timeout in nanoseconds
8303 deviceObject := GetDevice(device)
8304
8305 fences := pFences[0:fenceCount]
8306 for i in (0 .. fenceCount) {
8307 fence := fences[i]
8308 fenceObject := GetFence(fence)
8309 assert(fenceObject.device == device)
8310 }
8311
8312 return ?
8313}
8314
8315
8316// Queue semaphore functions
8317
8318@threadSafety("system")
8319cmd VkResult vkCreateSemaphore(
8320 VkDevice device,
8321 const VkSemaphoreCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008322 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008323 VkSemaphore* pSemaphore) {
8324 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO)
8325 deviceObject := GetDevice(device)
8326
8327 semaphore := ?
8328 pSemaphore[0] = semaphore
8329 State.Semaphores[semaphore] = new!SemaphoreObject(device: device)
8330
8331 return ?
8332}
8333
8334@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008335cmd void vkDestroySemaphore(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008336 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008337 VkSemaphore semaphore,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008338 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008339 deviceObject := GetDevice(device)
8340 semaphoreObject := GetSemaphore(semaphore)
8341 assert(semaphoreObject.device == device)
8342
8343 State.Semaphores[semaphore] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008344}
8345
Jesse Halld27f6aa2015-08-15 17:58:48 -07008346
8347// Event functions
8348
8349@threadSafety("system")
8350cmd VkResult vkCreateEvent(
8351 VkDevice device,
8352 const VkEventCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008353 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008354 VkEvent* pEvent) {
8355 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_EVENT_CREATE_INFO)
8356 deviceObject := GetDevice(device)
8357
8358 event := ?
8359 pEvent[0] = event
8360 State.Events[event] = new!EventObject(device: device)
8361
8362 return ?
8363}
8364
8365@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008366cmd void vkDestroyEvent(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008367 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008368 VkEvent event,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008369 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008370 deviceObject := GetDevice(device)
8371 eventObject := GetEvent(event)
8372 assert(eventObject.device == device)
8373
8374 State.Events[event] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008375}
8376
8377@threadSafety("system")
8378cmd VkResult vkGetEventStatus(
8379 VkDevice device,
8380 VkEvent event) {
8381 deviceObject := GetDevice(device)
8382 eventObject := GetEvent(event)
8383 assert(eventObject.device == device)
8384
8385 return ?
8386}
8387
8388@threadSafety("system")
8389cmd VkResult vkSetEvent(
8390 VkDevice device,
8391 VkEvent event) {
8392 deviceObject := GetDevice(device)
8393 eventObject := GetEvent(event)
8394 assert(eventObject.device == device)
8395
8396 return ?
8397}
8398
8399@threadSafety("system")
8400cmd VkResult vkResetEvent(
8401 VkDevice device,
8402 VkEvent event) {
8403 deviceObject := GetDevice(device)
8404 eventObject := GetEvent(event)
8405 assert(eventObject.device == device)
8406
8407 return ?
8408}
8409
8410
8411// Query functions
8412
8413@threadSafety("system")
8414cmd VkResult vkCreateQueryPool(
8415 VkDevice device,
8416 const VkQueryPoolCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008417 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008418 VkQueryPool* pQueryPool) {
8419 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO)
8420 deviceObject := GetDevice(device)
8421
8422 queryPool := ?
8423 pQueryPool[0] = queryPool
8424 State.QueryPools[queryPool] = new!QueryPoolObject(device: device)
8425
8426 return ?
8427}
8428
8429@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008430cmd void vkDestroyQueryPool(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008431 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008432 VkQueryPool queryPool,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008433 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008434 deviceObject := GetDevice(device)
8435 queryPoolObject := GetQueryPool(queryPool)
8436 assert(queryPoolObject.device == device)
8437
8438 State.QueryPools[queryPool] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008439}
8440
8441@threadSafety("system")
8442cmd VkResult vkGetQueryPoolResults(
8443 VkDevice device,
8444 VkQueryPool queryPool,
Jesse Hallf9fa9a52016-01-08 16:08:51 -08008445 u32 firstQuery,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008446 u32 queryCount,
Jesse Halla9bb62b2015-11-21 19:31:56 -08008447 platform.size_t dataSize,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008448 void* pData,
Jesse Halla9bb62b2015-11-21 19:31:56 -08008449 VkDeviceSize stride,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008450 VkQueryResultFlags flags) {
8451 deviceObject := GetDevice(device)
8452 queryPoolObject := GetQueryPool(queryPool)
8453 assert(queryPoolObject.device == device)
8454
Jesse Halld27f6aa2015-08-15 17:58:48 -07008455 data := pData[0:dataSize]
8456
8457 return ?
8458}
8459
8460// Buffer functions
8461
8462@threadSafety("system")
8463cmd VkResult vkCreateBuffer(
8464 VkDevice device,
8465 const VkBufferCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008466 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008467 VkBuffer* pBuffer) {
8468 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO)
8469 deviceObject := GetDevice(device)
8470
8471 buffer := ?
8472 pBuffer[0] = buffer
8473 State.Buffers[buffer] = new!BufferObject(device: device)
8474
8475 return ?
8476}
8477
8478@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008479cmd void vkDestroyBuffer(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008480 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008481 VkBuffer buffer,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008482 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008483 deviceObject := GetDevice(device)
8484 bufferObject := GetBuffer(buffer)
8485 assert(bufferObject.device == device)
8486
Jesse Hall3fbc8562015-11-29 22:10:52 -08008487 assert(bufferObject.memory == 0)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008488 State.Buffers[buffer] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008489}
8490
8491
8492// Buffer view functions
8493
8494@threadSafety("system")
8495cmd VkResult vkCreateBufferView(
8496 VkDevice device,
8497 const VkBufferViewCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008498 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008499 VkBufferView* pView) {
8500 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO)
8501 deviceObject := GetDevice(device)
8502
8503 bufferObject := GetBuffer(pCreateInfo.buffer)
8504 assert(bufferObject.device == device)
8505
8506 view := ?
8507 pView[0] = view
8508 State.BufferViews[view] = new!BufferViewObject(device: device, buffer: pCreateInfo.buffer)
8509
8510 return ?
8511}
8512
8513@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008514cmd void vkDestroyBufferView(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008515 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008516 VkBufferView bufferView,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008517 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008518 deviceObject := GetDevice(device)
8519 bufferViewObject := GetBufferView(bufferView)
8520 assert(bufferViewObject.device == device)
8521
8522 State.BufferViews[bufferView] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008523}
8524
8525
8526// Image functions
8527
8528@threadSafety("system")
8529cmd VkResult vkCreateImage(
8530 VkDevice device,
8531 const VkImageCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008532 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008533 VkImage* pImage) {
8534 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO)
8535 deviceObject := GetDevice(device)
8536
8537 image := ?
8538 pImage[0] = image
8539 State.Images[image] = new!ImageObject(device: device)
8540
8541 return ?
8542}
8543
8544@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008545cmd void vkDestroyImage(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008546 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008547 VkImage image,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008548 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008549 deviceObject := GetDevice(device)
8550 imageObject := GetImage(image)
8551 assert(imageObject.device == device)
8552
Jesse Hall3fbc8562015-11-29 22:10:52 -08008553 assert(imageObject.memory == 0)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008554 State.Images[image] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008555}
8556
Jesse Hall606a54e2015-11-19 22:17:28 -08008557cmd void vkGetImageSubresourceLayout(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008558 VkDevice device,
8559 VkImage image,
8560 const VkImageSubresource* pSubresource,
8561 VkSubresourceLayout* pLayout) {
8562 deviceObject := GetDevice(device)
8563 imageObject := GetImage(image)
8564 assert(imageObject.device == device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008565}
8566
8567
8568// Image view functions
8569
8570@threadSafety("system")
8571cmd VkResult vkCreateImageView(
8572 VkDevice device,
8573 const VkImageViewCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008574 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008575 VkImageView* pView) {
8576 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO)
8577 deviceObject := GetDevice(device)
8578
8579 imageObject := GetImage(pCreateInfo.image)
8580 assert(imageObject.device == device)
8581
8582 view := ?
8583 pView[0] = view
8584 State.ImageViews[view] = new!ImageViewObject(device: device, image: pCreateInfo.image)
8585
8586 return ?
8587}
8588
8589@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008590cmd void vkDestroyImageView(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008591 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008592 VkImageView imageView,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008593 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008594 deviceObject := GetDevice(device)
8595 imageViewObject := GetImageView(imageView)
8596 assert(imageViewObject.device == device)
8597
8598 State.ImageViews[imageView] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008599}
8600
8601
8602// Shader functions
8603
8604cmd VkResult vkCreateShaderModule(
8605 VkDevice device,
8606 const VkShaderModuleCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008607 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008608 VkShaderModule* pShaderModule) {
8609 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO)
8610 deviceObject := GetDevice(device)
8611
8612 shaderModule := ?
8613 pShaderModule[0] = shaderModule
8614 State.ShaderModules[shaderModule] = new!ShaderModuleObject(device: device)
8615
8616 return ?
8617}
8618
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008619cmd void vkDestroyShaderModule(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008620 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008621 VkShaderModule shaderModule,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008622 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008623 deviceObject := GetDevice(device)
8624 shaderModuleObject := GetShaderModule(shaderModule)
8625 assert(shaderModuleObject.device == device)
8626
8627 State.ShaderModules[shaderModule] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008628}
8629
Jesse Halld27f6aa2015-08-15 17:58:48 -07008630
8631// Pipeline functions
8632
8633cmd VkResult vkCreatePipelineCache(
8634 VkDevice device,
8635 const VkPipelineCacheCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008636 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008637 VkPipelineCache* pPipelineCache) {
8638 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO)
8639 deviceObject := GetDevice(device)
8640
8641 pipelineCache := ?
8642 pPipelineCache[0] = pipelineCache
8643 State.PipelineCaches[pipelineCache] = new!PipelineCacheObject(device: device)
8644
8645 return ?
8646}
8647
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008648cmd void vkDestroyPipelineCache(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008649 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008650 VkPipelineCache pipelineCache,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008651 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008652 deviceObject := GetDevice(device)
8653 pipelineCacheObject := GetPipelineCache(pipelineCache)
8654 assert(pipelineCacheObject.device == device)
8655
8656 State.PipelineCaches[pipelineCache] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008657}
8658
Jesse Halld27f6aa2015-08-15 17:58:48 -07008659cmd VkResult vkGetPipelineCacheData(
8660 VkDevice device,
8661 VkPipelineCache pipelineCache,
Jesse Halla9bb62b2015-11-21 19:31:56 -08008662 platform.size_t* pDataSize,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008663 void* pData) {
8664 deviceObject := GetDevice(device)
8665 pipelineCacheObject := GetPipelineCache(pipelineCache)
8666 assert(pipelineCacheObject.device == device)
8667
8668 return ?
8669}
8670
8671cmd VkResult vkMergePipelineCaches(
8672 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008673 VkPipelineCache dstCache,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008674 u32 srcCacheCount,
8675 const VkPipelineCache* pSrcCaches) {
8676 deviceObject := GetDevice(device)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008677 dstCacheObject := GetPipelineCache(dstCache)
8678 assert(dstCacheObject.device == device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008679
8680 srcCaches := pSrcCaches[0:srcCacheCount]
8681 for i in (0 .. srcCacheCount) {
8682 srcCache := srcCaches[i]
8683 srcCacheObject := GetPipelineCache(srcCache)
8684 assert(srcCacheObject.device == device)
8685 }
8686
8687 return ?
8688}
8689
8690cmd VkResult vkCreateGraphicsPipelines(
8691 VkDevice device,
8692 VkPipelineCache pipelineCache,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008693 u32 createInfoCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008694 const VkGraphicsPipelineCreateInfo* pCreateInfos,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008695 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008696 VkPipeline* pPipelines) {
8697 deviceObject := GetDevice(device)
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008698 if pipelineCache != NULL_HANDLE {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008699 pipelineCacheObject := GetPipelineCache(pipelineCache)
8700 assert(pipelineCacheObject.device == device)
8701 }
8702
Jesse Hall03b6fe12015-11-24 12:44:21 -08008703 createInfos := pCreateInfos[0:createInfoCount]
8704 pipelines := pPipelines[0:createInfoCount]
8705 for i in (0 .. createInfoCount) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008706 pipeline := ?
8707 pipelines[i] = pipeline
8708 State.Pipelines[pipeline] = new!PipelineObject(device: device)
8709 }
8710
8711 return ?
8712}
8713
8714cmd VkResult vkCreateComputePipelines(
8715 VkDevice device,
8716 VkPipelineCache pipelineCache,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008717 u32 createInfoCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008718 const VkComputePipelineCreateInfo* pCreateInfos,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008719 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008720 VkPipeline* pPipelines) {
8721 deviceObject := GetDevice(device)
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008722 if pipelineCache != NULL_HANDLE {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008723 pipelineCacheObject := GetPipelineCache(pipelineCache)
8724 assert(pipelineCacheObject.device == device)
8725 }
8726
Jesse Hall03b6fe12015-11-24 12:44:21 -08008727 createInfos := pCreateInfos[0:createInfoCount]
8728 pipelines := pPipelines[0:createInfoCount]
8729 for i in (0 .. createInfoCount) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008730 pipeline := ?
8731 pipelines[i] = pipeline
8732 State.Pipelines[pipeline] = new!PipelineObject(device: device)
8733 }
8734
8735 return ?
8736}
8737
8738@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008739cmd void vkDestroyPipeline(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008740 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008741 VkPipeline pipeline,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008742 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008743 deviceObject := GetDevice(device)
8744 pipelineObjects := GetPipeline(pipeline)
8745 assert(pipelineObjects.device == device)
8746
8747 State.Pipelines[pipeline] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008748}
8749
8750
8751// Pipeline layout functions
8752
8753@threadSafety("system")
8754cmd VkResult vkCreatePipelineLayout(
8755 VkDevice device,
8756 const VkPipelineLayoutCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008757 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008758 VkPipelineLayout* pPipelineLayout) {
8759 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO)
8760 deviceObject := GetDevice(device)
8761
8762 pipelineLayout := ?
8763 pPipelineLayout[0] = pipelineLayout
8764 State.PipelineLayouts[pipelineLayout] = new!PipelineLayoutObject(device: device)
8765
8766 return ?
8767}
8768
8769@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008770cmd void vkDestroyPipelineLayout(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008771 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008772 VkPipelineLayout pipelineLayout,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008773 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008774 deviceObject := GetDevice(device)
8775 pipelineLayoutObjects := GetPipelineLayout(pipelineLayout)
8776 assert(pipelineLayoutObjects.device == device)
8777
8778 State.PipelineLayouts[pipelineLayout] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008779}
8780
8781
8782// Sampler functions
8783
8784@threadSafety("system")
8785cmd VkResult vkCreateSampler(
8786 VkDevice device,
8787 const VkSamplerCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008788 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008789 VkSampler* pSampler) {
8790 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO)
8791 deviceObject := GetDevice(device)
8792
8793 sampler := ?
8794 pSampler[0] = sampler
8795 State.Samplers[sampler] = new!SamplerObject(device: device)
8796
8797 return ?
8798}
8799
8800@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008801cmd void vkDestroySampler(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008802 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008803 VkSampler sampler,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008804 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008805 deviceObject := GetDevice(device)
8806 samplerObject := GetSampler(sampler)
8807 assert(samplerObject.device == device)
8808
8809 State.Samplers[sampler] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008810}
8811
8812
8813// Descriptor set functions
8814
8815@threadSafety("system")
8816cmd VkResult vkCreateDescriptorSetLayout(
8817 VkDevice device,
8818 const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008819 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008820 VkDescriptorSetLayout* pSetLayout) {
8821 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO)
8822 deviceObject := GetDevice(device)
8823
8824 setLayout := ?
8825 pSetLayout[0] = setLayout
8826 State.DescriptorSetLayouts[setLayout] = new!DescriptorSetLayoutObject(device: device)
8827
8828 return ?
8829}
8830
8831@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008832cmd void vkDestroyDescriptorSetLayout(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008833 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008834 VkDescriptorSetLayout descriptorSetLayout,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008835 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008836 deviceObject := GetDevice(device)
8837 descriptorSetLayoutObject := GetDescriptorSetLayout(descriptorSetLayout)
8838 assert(descriptorSetLayoutObject.device == device)
8839
8840 State.DescriptorSetLayouts[descriptorSetLayout] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008841}
8842
8843@threadSafety("system")
8844cmd VkResult vkCreateDescriptorPool(
8845 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008846 const VkDescriptorPoolCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008847 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008848 VkDescriptorPool* pDescriptorPool) {
8849 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO)
8850 deviceObject := GetDevice(device)
8851
8852 descriptorPool := ?
8853 pDescriptorPool[0] = descriptorPool
8854 State.DescriptorPools[descriptorPool] = new!DescriptorPoolObject(device: device)
8855
8856 return ?
8857}
8858
8859@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008860cmd void vkDestroyDescriptorPool(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008861 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008862 VkDescriptorPool descriptorPool,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008863 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008864 deviceObject := GetDevice(device)
8865 descriptorPoolObject := GetDescriptorPool(descriptorPool)
8866 assert(descriptorPoolObject.device == device)
8867
8868 State.DescriptorPools[descriptorPool] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008869}
8870
8871@threadSafety("app")
8872cmd VkResult vkResetDescriptorPool(
8873 VkDevice device,
Jesse Hallfbf97b02015-11-20 14:17:03 -08008874 VkDescriptorPool descriptorPool,
8875 VkDescriptorPoolResetFlags flags) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008876 deviceObject := GetDevice(device)
8877 descriptorPoolObject := GetDescriptorPool(descriptorPool)
8878 assert(descriptorPoolObject.device == device)
8879
8880 return ?
8881}
8882
8883@threadSafety("app")
Jesse Hall3fbc8562015-11-29 22:10:52 -08008884cmd VkResult vkAllocateDescriptorSets(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008885 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008886 const VkDescriptorSetAllocateInfo* pAllocateInfo,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008887 VkDescriptorSet* pDescriptorSets) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008888 deviceObject := GetDevice(device)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008889 allocInfo := pAllocateInfo[0]
Jesse Hallfbf97b02015-11-20 14:17:03 -08008890 descriptorPoolObject := GetDescriptorPool(allocInfo.descriptorPool)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008891
Jesse Hall03b6fe12015-11-24 12:44:21 -08008892 setLayouts := allocInfo.pSetLayouts[0:allocInfo.setCount]
8893 for i in (0 .. allocInfo.setCount) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008894 setLayout := setLayouts[i]
8895 setLayoutObject := GetDescriptorSetLayout(setLayout)
8896 assert(setLayoutObject.device == device)
8897 }
8898
Jesse Hall03b6fe12015-11-24 12:44:21 -08008899 descriptorSets := pDescriptorSets[0:allocInfo.setCount]
8900 for i in (0 .. allocInfo.setCount) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008901 descriptorSet := ?
8902 descriptorSets[i] = descriptorSet
8903 State.DescriptorSets[descriptorSet] = new!DescriptorSetObject(device: device)
8904 }
8905
8906 return ?
8907}
8908
Jesse Hallf09c6b12015-08-15 19:54:28 -07008909cmd VkResult vkFreeDescriptorSets(
8910 VkDevice device,
8911 VkDescriptorPool descriptorPool,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008912 u32 descriptorSetCount,
Jesse Hallf09c6b12015-08-15 19:54:28 -07008913 const VkDescriptorSet* pDescriptorSets) {
8914 deviceObject := GetDevice(device)
8915 descriptorPoolObject := GetDescriptorPool(descriptorPool)
8916
Jesse Hall03b6fe12015-11-24 12:44:21 -08008917 descriptorSets := pDescriptorSets[0:descriptorSetCount]
8918 for i in (0 .. descriptorSetCount) {
Jesse Hallf09c6b12015-08-15 19:54:28 -07008919 descriptorSet := descriptorSets[i]
8920 descriptorSetObject := GetDescriptorSet(descriptorSet)
8921 assert(descriptorSetObject.device == device)
8922 State.DescriptorSets[descriptorSet] = null
8923 }
8924
8925 return ?
8926}
8927
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008928cmd void vkUpdateDescriptorSets(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008929 VkDevice device,
Jesse Hallb00daad2015-11-29 19:46:20 -08008930 u32 descriptorWriteCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008931 const VkWriteDescriptorSet* pDescriptorWrites,
Jesse Hallb00daad2015-11-29 19:46:20 -08008932 u32 descriptorCopyCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008933 const VkCopyDescriptorSet* pDescriptorCopies) {
8934 deviceObject := GetDevice(device)
8935
Jesse Hallb00daad2015-11-29 19:46:20 -08008936 descriptorWrites := pDescriptorWrites[0:descriptorWriteCount]
8937 for i in (0 .. descriptorWriteCount) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008938 descriptorWrite := descriptorWrites[i]
Jesse Hall3fbc8562015-11-29 22:10:52 -08008939 descriptorWriteObject := GetDescriptorSet(descriptorWrite.dstSet)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008940 assert(descriptorWriteObject.device == device)
8941 }
8942
Jesse Hallb00daad2015-11-29 19:46:20 -08008943 descriptorCopies := pDescriptorCopies[0:descriptorCopyCount]
8944 for i in (0 .. descriptorCopyCount) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008945 descriptorCopy := descriptorCopies[i]
Jesse Hall3fbc8562015-11-29 22:10:52 -08008946 descriptorCopyObject := GetDescriptorSet(descriptorCopy.dstSet)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008947 assert(descriptorCopyObject.device == device)
8948 }
Jesse Halld27f6aa2015-08-15 17:58:48 -07008949}
8950
8951
8952// Framebuffer functions
8953
8954@threadSafety("system")
8955cmd VkResult vkCreateFramebuffer(
8956 VkDevice device,
8957 const VkFramebufferCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008958 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008959 VkFramebuffer* pFramebuffer) {
8960 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO)
8961 deviceObject := GetDevice(device)
8962
8963 framebuffer := ?
8964 pFramebuffer[0] = framebuffer
8965 State.Framebuffers[framebuffer] = new!FramebufferObject(device: device)
8966
8967 return ?
8968}
8969
8970@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008971cmd void vkDestroyFramebuffer(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008972 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008973 VkFramebuffer framebuffer,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008974 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008975 deviceObject := GetDevice(device)
8976 framebufferObject := GetFramebuffer(framebuffer)
8977 assert(framebufferObject.device == device)
8978
8979 State.Framebuffers[framebuffer] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008980}
8981
8982
8983// Renderpass functions
8984
8985@threadSafety("system")
8986cmd VkResult vkCreateRenderPass(
8987 VkDevice device,
8988 const VkRenderPassCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008989 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008990 VkRenderPass* pRenderPass) {
8991 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO)
8992 deviceObject := GetDevice(device)
8993
8994 renderpass := ?
8995 pRenderPass[0] = renderpass
8996 State.RenderPasses[renderpass] = new!RenderPassObject(device: device)
8997
8998 return ?
8999}
9000
9001@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009002cmd void vkDestroyRenderPass(
Jesse Halld27f6aa2015-08-15 17:58:48 -07009003 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08009004 VkRenderPass renderPass,
Jesse Hall3fbc8562015-11-29 22:10:52 -08009005 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07009006 deviceObject := GetDevice(device)
9007 renderPassObject := GetRenderPass(renderPass)
9008 assert(renderPassObject.device == device)
9009
9010 State.RenderPasses[renderPass] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07009011}
9012
Jesse Hall606a54e2015-11-19 22:17:28 -08009013cmd void vkGetRenderAreaGranularity(
Jesse Halld27f6aa2015-08-15 17:58:48 -07009014 VkDevice device,
9015 VkRenderPass renderPass,
9016 VkExtent2D* pGranularity) {
9017 deviceObject := GetDevice(device)
9018 renderPassObject := GetRenderPass(renderPass)
9019
9020 granularity := ?
9021 pGranularity[0] = granularity
Jesse Halld27f6aa2015-08-15 17:58:48 -07009022}
9023
9024// Command pool functions
9025
9026cmd VkResult vkCreateCommandPool(
9027 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08009028 const VkCommandPoolCreateInfo* pCreateInfo,
9029 const VkAllocationCallbacks* pAllocator,
9030 VkCommandPool* pCommandPool) {
9031 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009032 deviceObject := GetDevice(device)
9033
Jesse Hall3fbc8562015-11-29 22:10:52 -08009034 commandPool := ?
9035 pCommandPool[0] = commandPool
9036 State.CommandPools[commandPool] = new!CommandPoolObject(device: device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009037
9038 return ?
9039}
9040
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009041cmd void vkDestroyCommandPool(
Jesse Halld27f6aa2015-08-15 17:58:48 -07009042 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08009043 VkCommandPool commandPool,
9044 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07009045 deviceObject := GetDevice(device)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009046 commandPoolObject := GetCommandPool(commandPool)
9047 assert(commandPoolObject.device == device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009048
Jesse Hall3fbc8562015-11-29 22:10:52 -08009049 State.CommandPools[commandPool] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07009050}
9051
9052cmd VkResult vkResetCommandPool(
9053 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08009054 VkCommandPool commandPool,
9055 VkCommandPoolResetFlags flags) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07009056 deviceObject := GetDevice(device)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009057 commandPoolObject := GetCommandPool(commandPool)
9058 assert(commandPoolObject.device == device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009059
9060 return ?
9061}
9062
9063// Command buffer functions
9064
Jesse Hall3fbc8562015-11-29 22:10:52 -08009065macro void bindCommandBuffer(VkCommandBuffer commandBuffer, any obj, VkDeviceMemory memory) {
9066 memoryObject := GetDeviceMemory(memory)
9067 memoryObject.boundCommandBuffers[commandBuffer] = commandBuffer
Jesse Halld27f6aa2015-08-15 17:58:48 -07009068
Jesse Hall3fbc8562015-11-29 22:10:52 -08009069 commandBufferObject := GetCommandBuffer(commandBuffer)
9070 commandBufferObject.boundObjects[as!u64(obj)] = memory
Jesse Halld27f6aa2015-08-15 17:58:48 -07009071}
9072
Jesse Hall3fbc8562015-11-29 22:10:52 -08009073macro void unbindCommandBuffer(VkCommandBuffer commandBuffer, any obj, VkDeviceMemory memory) {
9074 memoryObject := GetDeviceMemory(memory)
9075 memoryObject.boundCommandBuffers[commandBuffer] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07009076
Jesse Hall3fbc8562015-11-29 22:10:52 -08009077 commandBufferObject := GetCommandBuffer(commandBuffer)
9078 commandBufferObject.boundObjects[as!u64(obj)] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07009079}
9080
9081@threadSafety("system")
Jesse Hall3fbc8562015-11-29 22:10:52 -08009082cmd VkResult vkAllocateCommandBuffers(
Jesse Halld27f6aa2015-08-15 17:58:48 -07009083 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08009084 const VkCommandBufferAllocateInfo* pAllocateInfo,
9085 VkCommandBuffer* pCommandBuffers) {
Jesse Hallf4ab2b12015-11-30 16:04:55 -08009086 assert(pAllocateInfo[0].sType == VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009087
Jesse Hall3dd678a2016-01-08 21:52:01 -08009088 count := pAllocateInfo[0].commandBufferCount
Jesse Hall3fbc8562015-11-29 22:10:52 -08009089 commandBuffers := pCommandBuffers[0:count]
Jesse Hallfbf97b02015-11-20 14:17:03 -08009090 for i in (0 .. count) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009091 commandBuffer := ?
9092 commandBuffers[i] = commandBuffer
9093 State.CommandBuffers[commandBuffer] = new!CommandBufferObject(device: device)
Jesse Hallfbf97b02015-11-20 14:17:03 -08009094 }
Jesse Halld27f6aa2015-08-15 17:58:48 -07009095
9096 return ?
9097}
9098
9099@threadSafety("system")
Jesse Hallfbf97b02015-11-20 14:17:03 -08009100cmd void vkFreeCommandBuffers(
Jesse Halld27f6aa2015-08-15 17:58:48 -07009101 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08009102 VkCommandPool commandPool,
Jesse Hall03b6fe12015-11-24 12:44:21 -08009103 u32 commandBufferCount,
Jesse Hall3fbc8562015-11-29 22:10:52 -08009104 const VkCommandBuffer* pCommandBuffers) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07009105 deviceObject := GetDevice(device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009106
Jesse Hall3fbc8562015-11-29 22:10:52 -08009107 commandBuffers := pCommandBuffers[0:commandBufferCount]
Jesse Hall03b6fe12015-11-24 12:44:21 -08009108 for i in (0 .. commandBufferCount) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009109 commandBufferObject := GetCommandBuffer(commandBuffers[i])
9110 assert(commandBufferObject.device == device)
Jesse Hallfbf97b02015-11-20 14:17:03 -08009111 // TODO: iterate over boundObjects and clear memory bindings
Jesse Hall3fbc8562015-11-29 22:10:52 -08009112 State.CommandBuffers[commandBuffers[i]] = null
Jesse Hallfbf97b02015-11-20 14:17:03 -08009113 }
Jesse Halld27f6aa2015-08-15 17:58:48 -07009114}
9115
9116@threadSafety("app")
9117cmd VkResult vkBeginCommandBuffer(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009118 VkCommandBuffer commandBuffer,
9119 const VkCommandBufferBeginInfo* pBeginInfo) {
9120 assert(pBeginInfo.sType == VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO)
9121 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009122
9123 // TODO: iterate over boundObjects and clear memory bindings
9124
9125 return ?
9126}
9127
9128@threadSafety("app")
9129cmd VkResult vkEndCommandBuffer(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009130 VkCommandBuffer commandBuffer) {
9131 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009132
9133 return ?
9134}
9135
9136@threadSafety("app")
9137cmd VkResult vkResetCommandBuffer(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009138 VkCommandBuffer commandBuffer,
9139 VkCommandBufferResetFlags flags) {
9140 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009141
9142 // TODO: iterate over boundObjects and clear memory bindings
9143
9144 return ?
9145}
9146
9147
9148// Command buffer building functions
9149
9150@threadSafety("app")
9151cmd void vkCmdBindPipeline(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009152 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009153 VkPipelineBindPoint pipelineBindPoint,
9154 VkPipeline pipeline) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009155 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009156 pipelineObject := GetPipeline(pipeline)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009157 assert(commandBufferObject.device == pipelineObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009158
Jesse Halld8bade02015-11-24 10:24:18 -08009159 queue := switch (pipelineBindPoint) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07009160 case VK_PIPELINE_BIND_POINT_COMPUTE: VK_QUEUE_COMPUTE_BIT
9161 case VK_PIPELINE_BIND_POINT_GRAPHICS: VK_QUEUE_GRAPHICS_BIT
9162 }
Jesse Hall3fbc8562015-11-29 22:10:52 -08009163 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, queue)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009164}
9165
9166@threadSafety("app")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009167cmd void vkCmdSetViewport(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009168 VkCommandBuffer commandBuffer,
Jesse Hallf9fa9a52016-01-08 16:08:51 -08009169 u32 firstViewport,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009170 u32 viewportCount,
9171 const VkViewport* pViewports) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009172 commandBufferObject := GetCommandBuffer(commandBuffer)
9173 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009174}
9175
9176@threadSafety("app")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009177cmd void vkCmdSetScissor(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009178 VkCommandBuffer commandBuffer,
Jesse Hallf9fa9a52016-01-08 16:08:51 -08009179 u32 firstScissor,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009180 u32 scissorCount,
9181 const VkRect2D* pScissors) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009182 commandBufferObject := GetCommandBuffer(commandBuffer)
9183 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009184}
9185
9186@threadSafety("app")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009187cmd void vkCmdSetLineWidth(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009188 VkCommandBuffer commandBuffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009189 f32 lineWidth) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009190 commandBufferObject := GetCommandBuffer(commandBuffer)
9191 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009192}
9193
9194@threadSafety("app")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009195cmd void vkCmdSetDepthBias(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009196 VkCommandBuffer commandBuffer,
Jesse Halla9bb62b2015-11-21 19:31:56 -08009197 f32 depthBiasConstantFactor,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009198 f32 depthBiasClamp,
Jesse Halla9bb62b2015-11-21 19:31:56 -08009199 f32 depthBiasSlopeFactor) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009200 commandBufferObject := GetCommandBuffer(commandBuffer)
9201 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009202}
Jesse Halld27f6aa2015-08-15 17:58:48 -07009203
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009204@threadSafety("app")
9205cmd void vkCmdSetBlendConstants(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009206 VkCommandBuffer commandBuffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009207 // TODO(jessehall): apic only supports 'const' on pointer types. Using
9208 // an annotation as a quick hack to pass this to the template without
9209 // having to modify the AST and semantic model.
Jesse Hallb00daad2015-11-29 19:46:20 -08009210 @readonly f32[4] blendConstants) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009211 commandBufferObject := GetCommandBuffer(commandBuffer)
9212 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009213}
9214
9215@threadSafety("app")
9216cmd void vkCmdSetDepthBounds(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009217 VkCommandBuffer commandBuffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009218 f32 minDepthBounds,
9219 f32 maxDepthBounds) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009220 commandBufferObject := GetCommandBuffer(commandBuffer)
9221 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009222}
9223
9224@threadSafety("app")
9225cmd void vkCmdSetStencilCompareMask(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009226 VkCommandBuffer commandBuffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009227 VkStencilFaceFlags faceMask,
Jesse Hall65ab5522015-11-30 00:07:16 -08009228 u32 compareMask) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009229 commandBufferObject := GetCommandBuffer(commandBuffer)
9230 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009231}
9232
9233@threadSafety("app")
9234cmd void vkCmdSetStencilWriteMask(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009235 VkCommandBuffer commandBuffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009236 VkStencilFaceFlags faceMask,
Jesse Hall65ab5522015-11-30 00:07:16 -08009237 u32 writeMask) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009238 commandBufferObject := GetCommandBuffer(commandBuffer)
9239 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009240}
9241
9242@threadSafety("app")
9243cmd void vkCmdSetStencilReference(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009244 VkCommandBuffer commandBuffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009245 VkStencilFaceFlags faceMask,
Jesse Hall65ab5522015-11-30 00:07:16 -08009246 u32 reference) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009247 commandBufferObject := GetCommandBuffer(commandBuffer)
9248 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009249}
9250
9251@threadSafety("app")
9252cmd void vkCmdBindDescriptorSets(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009253 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009254 VkPipelineBindPoint pipelineBindPoint,
9255 VkPipelineLayout layout,
9256 u32 firstSet,
Jesse Hall03b6fe12015-11-24 12:44:21 -08009257 u32 descriptorSetCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009258 const VkDescriptorSet* pDescriptorSets,
9259 u32 dynamicOffsetCount,
9260 const u32* pDynamicOffsets) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009261 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009262
Jesse Hall03b6fe12015-11-24 12:44:21 -08009263 descriptorSets := pDescriptorSets[0:descriptorSetCount]
9264 for i in (0 .. descriptorSetCount) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07009265 descriptorSet := descriptorSets[i]
9266 descriptorSetObject := GetDescriptorSet(descriptorSet)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009267 assert(commandBufferObject.device == descriptorSetObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009268 }
9269
9270 dynamicOffsets := pDynamicOffsets[0:dynamicOffsetCount]
9271 for i in (0 .. dynamicOffsetCount) {
9272 dynamicOffset := dynamicOffsets[i]
9273 }
9274
Jesse Halld8bade02015-11-24 10:24:18 -08009275 queue := switch (pipelineBindPoint) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07009276 case VK_PIPELINE_BIND_POINT_COMPUTE: VK_QUEUE_COMPUTE_BIT
9277 case VK_PIPELINE_BIND_POINT_GRAPHICS: VK_QUEUE_GRAPHICS_BIT
9278 }
Jesse Hall3fbc8562015-11-29 22:10:52 -08009279 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, queue)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009280}
9281
9282@threadSafety("app")
9283cmd void vkCmdBindIndexBuffer(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009284 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009285 VkBuffer buffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009286 VkDeviceSize offset,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009287 VkIndexType indexType) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009288 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009289 bufferObject := GetBuffer(buffer)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009290 assert(commandBufferObject.device == bufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009291
Jesse Hall3fbc8562015-11-29 22:10:52 -08009292 bindCommandBuffer(commandBuffer, buffer, bufferObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009293
Jesse Hall3fbc8562015-11-29 22:10:52 -08009294 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009295}
9296
9297@threadSafety("app")
9298cmd void vkCmdBindVertexBuffers(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009299 VkCommandBuffer commandBuffer,
Jesse Hallf9fa9a52016-01-08 16:08:51 -08009300 u32 firstBinding,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009301 u32 bindingCount,
9302 const VkBuffer* pBuffers,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009303 const VkDeviceSize* pOffsets) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009304 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009305
Jesse Hallf9fa9a52016-01-08 16:08:51 -08009306 // TODO: check if not [firstBinding:firstBinding+bindingCount]
Jesse Halld27f6aa2015-08-15 17:58:48 -07009307 buffers := pBuffers[0:bindingCount]
9308 offsets := pOffsets[0:bindingCount]
9309 for i in (0 .. bindingCount) {
9310 buffer := buffers[i]
9311 offset := offsets[i]
9312 bufferObject := GetBuffer(buffer)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009313 assert(commandBufferObject.device == bufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009314
Jesse Hall3fbc8562015-11-29 22:10:52 -08009315 bindCommandBuffer(commandBuffer, buffer, bufferObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009316 }
9317
Jesse Hall3fbc8562015-11-29 22:10:52 -08009318 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009319}
9320
9321@threadSafety("app")
9322cmd void vkCmdDraw(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009323 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009324 u32 vertexCount,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009325 u32 instanceCount,
9326 u32 firstVertex,
9327 u32 firstInstance) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009328 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009329
Jesse Hall3fbc8562015-11-29 22:10:52 -08009330 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009331}
9332
9333@threadSafety("app")
9334cmd void vkCmdDrawIndexed(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009335 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009336 u32 indexCount,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009337 u32 instanceCount,
9338 u32 firstIndex,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009339 s32 vertexOffset,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009340 u32 firstInstance) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009341 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009342
Jesse Hall3fbc8562015-11-29 22:10:52 -08009343 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009344}
9345
9346@threadSafety("app")
9347cmd void vkCmdDrawIndirect(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009348 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009349 VkBuffer buffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009350 VkDeviceSize offset,
Jesse Hall03b6fe12015-11-24 12:44:21 -08009351 u32 drawCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009352 u32 stride) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009353 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009354 bufferObject := GetBuffer(buffer)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009355 assert(commandBufferObject.device == bufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009356
Jesse Hall3fbc8562015-11-29 22:10:52 -08009357 bindCommandBuffer(commandBuffer, buffer, bufferObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009358
Jesse Hall3fbc8562015-11-29 22:10:52 -08009359 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009360}
9361
9362@threadSafety("app")
9363cmd void vkCmdDrawIndexedIndirect(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009364 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009365 VkBuffer buffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009366 VkDeviceSize offset,
Jesse Hall03b6fe12015-11-24 12:44:21 -08009367 u32 drawCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009368 u32 stride) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009369 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009370 bufferObject := GetBuffer(buffer)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009371 assert(commandBufferObject.device == bufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009372
Jesse Hall3fbc8562015-11-29 22:10:52 -08009373 bindCommandBuffer(commandBuffer, buffer, bufferObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009374
Jesse Hall3fbc8562015-11-29 22:10:52 -08009375 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009376}
9377
9378@threadSafety("app")
9379cmd void vkCmdDispatch(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009380 VkCommandBuffer commandBuffer,
Jesse Hallad250842017-03-10 18:35:38 -08009381 u32 groupCountX,
9382 u32 groupCountY,
9383 u32 groupCountZ) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009384 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009385
Jesse Hall3fbc8562015-11-29 22:10:52 -08009386 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_COMPUTE_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009387}
9388
9389@threadSafety("app")
9390cmd void vkCmdDispatchIndirect(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009391 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009392 VkBuffer buffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009393 VkDeviceSize offset) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009394 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009395 bufferObject := GetBuffer(buffer)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009396 assert(commandBufferObject.device == bufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009397
Jesse Hall3fbc8562015-11-29 22:10:52 -08009398 bindCommandBuffer(commandBuffer, buffer, bufferObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009399
Jesse Hall3fbc8562015-11-29 22:10:52 -08009400 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_COMPUTE_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009401}
9402
9403@threadSafety("app")
9404cmd void vkCmdCopyBuffer(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009405 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009406 VkBuffer srcBuffer,
Jesse Hall3fbc8562015-11-29 22:10:52 -08009407 VkBuffer dstBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009408 u32 regionCount,
9409 const VkBufferCopy* pRegions) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009410 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009411 srcBufferObject := GetBuffer(srcBuffer)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009412 dstBufferObject := GetBuffer(dstBuffer)
9413 assert(commandBufferObject.device == srcBufferObject.device)
9414 assert(commandBufferObject.device == dstBufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009415
9416 regions := pRegions[0:regionCount]
9417 for i in (0 .. regionCount) {
9418 region := regions[i]
9419 }
9420
Jesse Hall3fbc8562015-11-29 22:10:52 -08009421 bindCommandBuffer(commandBuffer, srcBuffer, srcBufferObject.memory)
9422 bindCommandBuffer(commandBuffer, dstBuffer, dstBufferObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009423
Jesse Hall65ab5522015-11-30 00:07:16 -08009424 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_TRANSFER_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009425}
9426
9427@threadSafety("app")
9428cmd void vkCmdCopyImage(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009429 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009430 VkImage srcImage,
9431 VkImageLayout srcImageLayout,
Jesse Hall3fbc8562015-11-29 22:10:52 -08009432 VkImage dstImage,
9433 VkImageLayout dstImageLayout,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009434 u32 regionCount,
9435 const VkImageCopy* pRegions) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009436 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009437 srcImageObject := GetImage(srcImage)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009438 dstImageObject := GetImage(dstImage)
9439 assert(commandBufferObject.device == srcImageObject.device)
9440 assert(commandBufferObject.device == dstImageObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009441
9442 regions := pRegions[0:regionCount]
9443 for i in (0 .. regionCount) {
9444 region := regions[i]
9445 }
9446
Jesse Hall3fbc8562015-11-29 22:10:52 -08009447 bindCommandBuffer(commandBuffer, srcImage, srcImageObject.memory)
9448 bindCommandBuffer(commandBuffer, dstImage, dstImageObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009449
Jesse Hall65ab5522015-11-30 00:07:16 -08009450 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_TRANSFER_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009451}
9452
9453@threadSafety("app")
9454cmd void vkCmdBlitImage(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009455 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009456 VkImage srcImage,
9457 VkImageLayout srcImageLayout,
Jesse Hall3fbc8562015-11-29 22:10:52 -08009458 VkImage dstImage,
9459 VkImageLayout dstImageLayout,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009460 u32 regionCount,
9461 const VkImageBlit* pRegions,
Jesse Hall23ff73f2015-11-29 14:36:39 -08009462 VkFilter filter) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009463 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009464 srcImageObject := GetImage(srcImage)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009465 dstImageObject := GetImage(dstImage)
9466 assert(commandBufferObject.device == srcImageObject.device)
9467 assert(commandBufferObject.device == dstImageObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009468
9469 regions := pRegions[0:regionCount]
9470 for i in (0 .. regionCount) {
9471 region := regions[i]
9472 }
9473
Jesse Hall3fbc8562015-11-29 22:10:52 -08009474 bindCommandBuffer(commandBuffer, srcImage, srcImageObject.memory)
9475 bindCommandBuffer(commandBuffer, dstImage, dstImageObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009476
Jesse Hall3fbc8562015-11-29 22:10:52 -08009477 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009478}
9479
9480@threadSafety("app")
9481cmd void vkCmdCopyBufferToImage(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009482 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009483 VkBuffer srcBuffer,
Jesse Hall3fbc8562015-11-29 22:10:52 -08009484 VkImage dstImage,
9485 VkImageLayout dstImageLayout,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009486 u32 regionCount,
9487 const VkBufferImageCopy* pRegions) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009488 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009489 srcBufferObject := GetBuffer(srcBuffer)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009490 dstImageObject := GetImage(dstImage)
9491 assert(commandBufferObject.device == srcBufferObject.device)
9492 assert(commandBufferObject.device == dstImageObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009493
9494 regions := pRegions[0:regionCount]
9495 for i in (0 .. regionCount) {
9496 region := regions[i]
9497 }
9498
Jesse Hall3fbc8562015-11-29 22:10:52 -08009499 bindCommandBuffer(commandBuffer, srcBuffer, srcBufferObject.memory)
9500 bindCommandBuffer(commandBuffer, dstImage, dstImageObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009501
Jesse Hall65ab5522015-11-30 00:07:16 -08009502 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_TRANSFER_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009503}
9504
9505@threadSafety("app")
9506cmd void vkCmdCopyImageToBuffer(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009507 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009508 VkImage srcImage,
9509 VkImageLayout srcImageLayout,
Jesse Hall3fbc8562015-11-29 22:10:52 -08009510 VkBuffer dstBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009511 u32 regionCount,
9512 const VkBufferImageCopy* pRegions) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009513 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009514 srcImageObject := GetImage(srcImage)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009515 dstBufferObject := GetBuffer(dstBuffer)
9516 assert(commandBufferObject.device == srcImageObject.device)
9517 assert(commandBufferObject.device == dstBufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009518
9519 regions := pRegions[0:regionCount]
9520 for i in (0 .. regionCount) {
9521 region := regions[i]
9522 }
9523
Jesse Hall3fbc8562015-11-29 22:10:52 -08009524 bindCommandBuffer(commandBuffer, srcImage, srcImageObject.memory)
9525 bindCommandBuffer(commandBuffer, dstBuffer, dstBufferObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009526
Jesse Hall65ab5522015-11-30 00:07:16 -08009527 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_TRANSFER_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009528}
9529
9530@threadSafety("app")
9531cmd void vkCmdUpdateBuffer(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009532 VkCommandBuffer commandBuffer,
9533 VkBuffer dstBuffer,
9534 VkDeviceSize dstOffset,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009535 VkDeviceSize dataSize,
Jesse Hall56d386a2016-07-26 15:20:40 -07009536 const void* pData) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009537 commandBufferObject := GetCommandBuffer(commandBuffer)
9538 dstBufferObject := GetBuffer(dstBuffer)
9539 assert(commandBufferObject.device == dstBufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009540
9541 data := pData[0:dataSize]
9542
Jesse Hall3fbc8562015-11-29 22:10:52 -08009543 bindCommandBuffer(commandBuffer, dstBuffer, dstBufferObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009544
Jesse Hall65ab5522015-11-30 00:07:16 -08009545 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_TRANSFER_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009546}
9547
9548@threadSafety("app")
9549cmd void vkCmdFillBuffer(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009550 VkCommandBuffer commandBuffer,
9551 VkBuffer dstBuffer,
9552 VkDeviceSize dstOffset,
Jesse Hallb00daad2015-11-29 19:46:20 -08009553 VkDeviceSize size,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009554 u32 data) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009555 commandBufferObject := GetCommandBuffer(commandBuffer)
9556 dstBufferObject := GetBuffer(dstBuffer)
9557 assert(commandBufferObject.device == dstBufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009558
Jesse Hall65ab5522015-11-30 00:07:16 -08009559 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_TRANSFER_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009560}
9561
9562@threadSafety("app")
9563cmd void vkCmdClearColorImage(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009564 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009565 VkImage image,
9566 VkImageLayout imageLayout,
9567 const VkClearColorValue* pColor,
9568 u32 rangeCount,
9569 const VkImageSubresourceRange* pRanges) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009570 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009571 imageObject := GetImage(image)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009572 assert(commandBufferObject.device == imageObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009573
9574 ranges := pRanges[0:rangeCount]
9575 for i in (0 .. rangeCount) {
9576 range := ranges[i]
9577 }
9578
Jesse Hall3fbc8562015-11-29 22:10:52 -08009579 bindCommandBuffer(commandBuffer, image, imageObject.memory)
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
9584@threadSafety("app")
9585cmd void vkCmdClearDepthStencilImage(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009586 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009587 VkImage image,
9588 VkImageLayout imageLayout,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009589 const VkClearDepthStencilValue* pDepthStencil,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009590 u32 rangeCount,
9591 const VkImageSubresourceRange* pRanges) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009592 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009593 imageObject := GetImage(image)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009594 assert(commandBufferObject.device == imageObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009595
9596 ranges := pRanges[0:rangeCount]
9597 for i in (0 .. rangeCount) {
9598 range := ranges[i]
9599 }
9600
Jesse Hall3fbc8562015-11-29 22:10:52 -08009601 bindCommandBuffer(commandBuffer, image, imageObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009602
Jesse Hall3fbc8562015-11-29 22:10:52 -08009603 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009604}
9605
9606@threadSafety("app")
Jesse Hallae38f732015-11-19 21:32:50 -08009607cmd void vkCmdClearAttachments(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009608 VkCommandBuffer commandBuffer,
Jesse Hallae38f732015-11-19 21:32:50 -08009609 u32 attachmentCount,
9610 const VkClearAttachment* pAttachments,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009611 u32 rectCount,
Jesse Halla15a4bf2015-11-19 22:48:02 -08009612 const VkClearRect* pRects) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009613 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009614
9615 rects := pRects[0:rectCount]
9616 for i in (0 .. rectCount) {
9617 rect := rects[i]
9618 }
9619
Jesse Hall3fbc8562015-11-29 22:10:52 -08009620 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009621}
9622
9623@threadSafety("app")
9624cmd void vkCmdResolveImage(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009625 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009626 VkImage srcImage,
9627 VkImageLayout srcImageLayout,
Jesse Hall3fbc8562015-11-29 22:10:52 -08009628 VkImage dstImage,
9629 VkImageLayout dstImageLayout,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009630 u32 regionCount,
9631 const VkImageResolve* pRegions) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009632 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009633 srcImageObject := GetImage(srcImage)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009634 dstImageObject := GetImage(dstImage)
9635 assert(commandBufferObject.device == srcImageObject.device)
9636 assert(commandBufferObject.device == dstImageObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009637
9638 regions := pRegions[0:regionCount]
9639 for i in (0 .. regionCount) {
9640 region := regions[i]
9641 }
9642
Jesse Hall3fbc8562015-11-29 22:10:52 -08009643 bindCommandBuffer(commandBuffer, srcImage, srcImageObject.memory)
9644 bindCommandBuffer(commandBuffer, dstImage, dstImageObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009645
Jesse Hall3fbc8562015-11-29 22:10:52 -08009646 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009647}
9648
9649@threadSafety("app")
9650cmd void vkCmdSetEvent(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009651 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009652 VkEvent event,
9653 VkPipelineStageFlags stageMask) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009654 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009655 eventObject := GetEvent(event)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009656 assert(commandBufferObject.device == eventObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009657}
9658
9659@threadSafety("app")
9660cmd void vkCmdResetEvent(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009661 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009662 VkEvent event,
9663 VkPipelineStageFlags stageMask) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009664 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009665 eventObject := GetEvent(event)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009666 assert(commandBufferObject.device == eventObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009667}
9668
9669@threadSafety("app")
9670cmd void vkCmdWaitEvents(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009671 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009672 u32 eventCount,
9673 const VkEvent* pEvents,
9674 VkPipelineStageFlags srcStageMask,
Jesse Hall3fbc8562015-11-29 22:10:52 -08009675 VkPipelineStageFlags dstStageMask,
9676 u32 memoryBarrierCount,
Jesse Hall3dd678a2016-01-08 21:52:01 -08009677 const VkMemoryBarrier* pMemoryBarriers,
9678 u32 bufferMemoryBarrierCount,
9679 const VkBufferMemoryBarrier* pBufferMemoryBarriers,
9680 u32 imageMemoryBarrierCount,
9681 const VkImageMemoryBarrier* pImageMemoryBarriers) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009682 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009683
9684 events := pEvents[0:eventCount]
9685 for i in (0 .. eventCount) {
9686 event := events[i]
9687 eventObject := GetEvent(event)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009688 assert(commandBufferObject.device == eventObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009689 }
9690
Jesse Hall3dd678a2016-01-08 21:52:01 -08009691 memoryBarriers := pMemoryBarriers[0:memoryBarrierCount]
Jesse Hall3fbc8562015-11-29 22:10:52 -08009692 for i in (0 .. memoryBarrierCount) {
Jesse Hall3dd678a2016-01-08 21:52:01 -08009693 memoryBarrier := memoryBarriers[i]
9694 }
9695 bufferMemoryBarriers := pBufferMemoryBarriers[0:bufferMemoryBarrierCount]
9696 for i in (0 .. bufferMemoryBarrierCount) {
9697 bufferMemoryBarrier := bufferMemoryBarriers[i]
9698 bufferObject := GetBuffer(bufferMemoryBarrier.buffer)
9699 assert(bufferObject.device == commandBufferObject.device)
9700 }
9701 imageMemoryBarriers := pImageMemoryBarriers[0:imageMemoryBarrierCount]
9702 for i in (0 .. imageMemoryBarrierCount) {
9703 imageMemoryBarrier := imageMemoryBarriers[i]
9704 imageObject := GetImage(imageMemoryBarrier.image)
9705 assert(imageObject.device == commandBufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009706 }
9707}
9708
9709@threadSafety("app")
9710cmd void vkCmdPipelineBarrier(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009711 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009712 VkPipelineStageFlags srcStageMask,
Jesse Hall3fbc8562015-11-29 22:10:52 -08009713 VkPipelineStageFlags dstStageMask,
Jesse Halldc6d36c2015-11-29 19:12:15 -08009714 VkDependencyFlags dependencyFlags,
Jesse Hall3fbc8562015-11-29 22:10:52 -08009715 u32 memoryBarrierCount,
Jesse Hall3dd678a2016-01-08 21:52:01 -08009716 const VkMemoryBarrier* pMemoryBarriers,
9717 u32 bufferMemoryBarrierCount,
9718 const VkBufferMemoryBarrier* pBufferMemoryBarriers,
9719 u32 imageMemoryBarrierCount,
9720 const VkImageMemoryBarrier* pImageMemoryBarriers) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009721 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009722
Jesse Hall3dd678a2016-01-08 21:52:01 -08009723 memoryBarriers := pMemoryBarriers[0:memoryBarrierCount]
Jesse Hall3fbc8562015-11-29 22:10:52 -08009724 for i in (0 .. memoryBarrierCount) {
Jesse Hall3dd678a2016-01-08 21:52:01 -08009725 memoryBarrier := memoryBarriers[i]
9726 }
9727 bufferMemoryBarriers := pBufferMemoryBarriers[0:bufferMemoryBarrierCount]
9728 for i in (0 .. bufferMemoryBarrierCount) {
9729 bufferMemoryBarrier := bufferMemoryBarriers[i]
9730 bufferObject := GetBuffer(bufferMemoryBarrier.buffer)
9731 assert(bufferObject.device == commandBufferObject.device)
9732 }
9733 imageMemoryBarriers := pImageMemoryBarriers[0:imageMemoryBarrierCount]
9734 for i in (0 .. imageMemoryBarrierCount) {
9735 imageMemoryBarrier := imageMemoryBarriers[i]
9736 imageObject := GetImage(imageMemoryBarrier.image)
9737 assert(imageObject.device == commandBufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009738 }
9739}
9740
9741@threadSafety("app")
9742cmd void vkCmdBeginQuery(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009743 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009744 VkQueryPool queryPool,
Jesse Hall3dd678a2016-01-08 21:52:01 -08009745 u32 query,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009746 VkQueryControlFlags flags) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009747 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009748 queryPoolObject := GetQueryPool(queryPool)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009749 assert(commandBufferObject.device == queryPoolObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009750}
9751
9752@threadSafety("app")
9753cmd void vkCmdEndQuery(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009754 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009755 VkQueryPool queryPool,
Jesse Hall3dd678a2016-01-08 21:52:01 -08009756 u32 query) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009757 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009758 queryPoolObject := GetQueryPool(queryPool)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009759 assert(commandBufferObject.device == queryPoolObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009760}
9761
9762@threadSafety("app")
9763cmd void vkCmdResetQueryPool(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009764 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009765 VkQueryPool queryPool,
Jesse Hallf9fa9a52016-01-08 16:08:51 -08009766 u32 firstQuery,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009767 u32 queryCount) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009768 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009769 queryPoolObject := GetQueryPool(queryPool)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009770 assert(commandBufferObject.device == queryPoolObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009771}
9772
9773@threadSafety("app")
9774cmd void vkCmdWriteTimestamp(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009775 VkCommandBuffer commandBuffer,
Jesse Hall6f39a6d2015-11-24 11:08:36 -08009776 VkPipelineStageFlagBits pipelineStage,
Jesse Halla3a7a1d2015-11-24 11:37:23 -08009777 VkQueryPool queryPool,
Jesse Hall3dd678a2016-01-08 21:52:01 -08009778 u32 query) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009779 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halla3a7a1d2015-11-24 11:37:23 -08009780 queryPoolObject := GetQueryPool(queryPool)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009781 assert(commandBufferObject.device == queryPoolObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009782}
9783
9784@threadSafety("app")
9785cmd void vkCmdCopyQueryPoolResults(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009786 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009787 VkQueryPool queryPool,
Jesse Hallf9fa9a52016-01-08 16:08:51 -08009788 u32 firstQuery,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009789 u32 queryCount,
Jesse Hall3fbc8562015-11-29 22:10:52 -08009790 VkBuffer dstBuffer,
9791 VkDeviceSize dstOffset,
Jesse Halla9bb62b2015-11-21 19:31:56 -08009792 VkDeviceSize stride,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009793 VkQueryResultFlags flags) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009794 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009795 queryPoolObject := GetQueryPool(queryPool)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009796 dstBufferObject := GetBuffer(dstBuffer)
9797 assert(commandBufferObject.device == queryPoolObject.device)
9798 assert(commandBufferObject.device == dstBufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009799}
9800
9801cmd void vkCmdPushConstants(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009802 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009803 VkPipelineLayout layout,
9804 VkShaderStageFlags stageFlags,
Jesse Hall03b6fe12015-11-24 12:44:21 -08009805 u32 offset,
9806 u32 size,
Jesse Hallf4ab2b12015-11-30 16:04:55 -08009807 const void* pValues) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009808 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009809 layoutObject := GetPipelineLayout(layout)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009810 assert(commandBufferObject.device == layoutObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009811}
9812
9813@threadSafety("app")
9814cmd void vkCmdBeginRenderPass(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009815 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009816 const VkRenderPassBeginInfo* pRenderPassBegin,
Jesse Hall65ab5522015-11-30 00:07:16 -08009817 VkSubpassContents contents) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009818 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009819 renderPassObject := GetRenderPass(pRenderPassBegin.renderPass)
9820 framebufferObject := GetFramebuffer(pRenderPassBegin.framebuffer)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009821 assert(commandBufferObject.device == renderPassObject.device)
9822 assert(commandBufferObject.device == framebufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009823
Jesse Hall3fbc8562015-11-29 22:10:52 -08009824 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009825}
9826
9827cmd void vkCmdNextSubpass(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009828 VkCommandBuffer commandBuffer,
Jesse Hall65ab5522015-11-30 00:07:16 -08009829 VkSubpassContents contents) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009830 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009831}
9832
9833@threadSafety("app")
9834cmd void vkCmdEndRenderPass(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009835 VkCommandBuffer commandBuffer) {
9836 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009837
Jesse Hall3fbc8562015-11-29 22:10:52 -08009838 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009839}
9840
9841cmd void vkCmdExecuteCommands(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009842 VkCommandBuffer commandBuffer,
Jesse Hall3dd678a2016-01-08 21:52:01 -08009843 u32 commandBufferCount,
Jesse Hall3fbc8562015-11-29 22:10:52 -08009844 const VkCommandBuffer* pCommandBuffers) {
9845 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009846
Jesse Hall3dd678a2016-01-08 21:52:01 -08009847 commandBuffers := pCommandBuffers[0:commandBufferCount]
9848 for i in (0 .. commandBufferCount) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009849 secondaryCommandBuffer := commandBuffers[i]
9850 secondaryCommandBufferObject := GetCommandBuffer(secondaryCommandBuffer)
9851 assert(commandBufferObject.device == secondaryCommandBufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009852 }
9853}
9854
Ian Elliott28bd2c32017-10-13 09:21:12 -06009855//@vulkan1_1 functions
Daniel Koch09f7bf92017-10-05 00:26:58 -04009856
Ian Elliott28bd2c32017-10-13 09:21:12 -06009857@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009858cmd VkResult vkEnumerateInstanceVersion(
9859 u32* pApiVersion) {
9860 return ?
9861}
9862
Ian Elliott28bd2c32017-10-13 09:21:12 -06009863@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009864cmd VkResult vkBindBufferMemory2(
9865 VkDevice device,
9866 u32 bindInfoCount,
9867 const VkBindBufferMemoryInfo* pBindInfos) {
9868 return ?
9869}
9870
Ian Elliott28bd2c32017-10-13 09:21:12 -06009871@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009872cmd VkResult vkBindImageMemory2(
9873 VkDevice device,
9874 u32 bindInfoCount,
9875 const VkBindImageMemoryInfo* pBindInfos) {
9876 return ?
9877}
9878
Ian Elliott28bd2c32017-10-13 09:21:12 -06009879@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009880cmd void vkGetDeviceGroupPeerMemoryFeatures(
9881 VkDevice device,
9882 u32 heapIndex,
9883 u32 localDeviceIndex,
9884 u32 remoteDeviceIndex,
9885 VkPeerMemoryFeatureFlags* pPeerMemoryFeatures) {
9886}
9887
Ian Elliott28bd2c32017-10-13 09:21:12 -06009888@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009889cmd void vkCmdSetDeviceMask(
9890 VkCommandBuffer commandBuffer,
9891 u32 deviceMask) {
9892}
9893
Ian Elliott28bd2c32017-10-13 09:21:12 -06009894@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009895cmd void vkCmdDispatchBase(
9896 VkCommandBuffer commandBuffer,
9897 u32 baseGroupX,
9898 u32 baseGroupY,
9899 u32 baseGroupZ,
9900 u32 groupCountX,
9901 u32 groupCountY,
9902 u32 groupCountZ) {
9903}
9904
9905@threadSafety("system")
Ian Elliott28bd2c32017-10-13 09:21:12 -06009906@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009907cmd VkResult vkEnumeratePhysicalDeviceGroups(
9908 VkInstance instance,
9909 u32* pPhysicalDeviceGroupCount,
9910 VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties) {
9911 instanceObject := GetInstance(instance)
9912
9913 physicalDeviceGroupCount := as!u32(?)
9914 pPhysicalDeviceGroupCount[0] = physicalDeviceGroupCount
9915 physicalDevices := pPhysicalDeviceGroupProperties[0:physicalDeviceGroupCount]
9916
9917 for i in (0 .. physicalDeviceGroupCount) {
9918 physicalDevice := ?
9919 physicalDevices[i] = physicalDevice
9920 if !(physicalDevice in State.PhysicalDevices) {
9921 State.PhysicalDevices[physicalDevice] = new!PhysicalDeviceObject(instance: instance)
9922 }
9923 }
9924
9925 return ?
9926}
9927
Ian Elliott28bd2c32017-10-13 09:21:12 -06009928@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009929cmd void vkGetImageMemoryRequirements2(
9930 VkDevice device,
9931 const VkImageMemoryRequirementsInfo2* pInfo,
9932 VkMemoryRequirements2* pMemoryRequirements) {
9933}
9934
Ian Elliott28bd2c32017-10-13 09:21:12 -06009935@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009936cmd void vkGetBufferMemoryRequirements2(
9937 VkDevice device,
9938 const VkBufferMemoryRequirementsInfo2* pInfo,
9939 VkMemoryRequirements2* pMemoryRequirements) {
9940}
9941
Ian Elliott28bd2c32017-10-13 09:21:12 -06009942@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009943cmd void vkGetImageSparseMemoryRequirements2(
9944 VkDevice device,
9945 const VkImageSparseMemoryRequirementsInfo2* pInfo,
9946 u32* pSparseMemoryRequirementCount,
9947 VkSparseImageMemoryRequirements2* pSparseMemoryRequirements) {
9948}
9949
Ian Elliott28bd2c32017-10-13 09:21:12 -06009950@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009951cmd void vkGetPhysicalDeviceFeatures2(
9952 VkPhysicalDevice physicalDevice,
9953 VkPhysicalDeviceFeatures2* pFeatures) {
9954}
9955
Ian Elliott28bd2c32017-10-13 09:21:12 -06009956@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009957cmd void vkGetPhysicalDeviceProperties2(
9958 VkPhysicalDevice physicalDevice,
9959 VkPhysicalDeviceProperties2* pProperties) {
9960}
9961
Ian Elliott28bd2c32017-10-13 09:21:12 -06009962@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009963cmd void vkGetPhysicalDeviceFormatProperties2(
9964 VkPhysicalDevice physicalDevice,
9965 VkFormat format,
9966 VkFormatProperties2* pFormatProperties) {
9967}
9968
Ian Elliott28bd2c32017-10-13 09:21:12 -06009969@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009970cmd VkResult vkGetPhysicalDeviceImageFormatProperties2(
9971 VkPhysicalDevice physicalDevice,
9972 const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo,
9973 VkImageFormatProperties2* pImageFormatProperties) {
9974 return ?
9975}
9976
Ian Elliott28bd2c32017-10-13 09:21:12 -06009977@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009978cmd void vkGetPhysicalDeviceQueueFamilyProperties2(
9979 VkPhysicalDevice physicalDevice,
9980 u32* pQueueFamilyPropertyCount,
9981 VkQueueFamilyProperties2* pQueueFamilyProperties) {
9982}
9983
Ian Elliott28bd2c32017-10-13 09:21:12 -06009984@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009985cmd void vkGetPhysicalDeviceMemoryProperties2(
9986 VkPhysicalDevice physicalDevice,
9987 VkPhysicalDeviceMemoryProperties2* pMemoryProperties) {
9988}
9989
Ian Elliott28bd2c32017-10-13 09:21:12 -06009990@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009991cmd void vkGetPhysicalDeviceSparseImageFormatProperties2(
9992 VkPhysicalDevice physicalDevice,
9993 const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo,
9994 u32* pPropertyCount,
9995 VkSparseImageFormatProperties2* pProperties) {
9996}
9997
Ian Elliott28bd2c32017-10-13 09:21:12 -06009998@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009999cmd void vkTrimCommandPool(
10000 VkDevice device,
10001 VkCommandPool commandPool,
10002 VkCommandPoolTrimFlags flags) {
10003}
10004
10005
Ian Elliott28bd2c32017-10-13 09:21:12 -060010006@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -040010007cmd void vkGetDeviceQueue2(
10008 VkDevice device,
10009 const VkDeviceQueueInfo2* pQueueInfo,
10010 VkQueue* pQueue) {
10011 deviceObject := GetDevice(device)
10012
10013 queue := ?
10014 pQueue[0] = queue
10015
10016 if !(queue in State.Queues) {
10017 State.Queues[queue] = new!QueueObject(device: device)
10018 }
10019}
10020
Ian Elliott28bd2c32017-10-13 09:21:12 -060010021@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -040010022cmd VkResult vkCreateSamplerYcbcrConversion(
10023 VkDevice device,
10024 const VkSamplerYcbcrConversionCreateInfo* pCreateInfo,
10025 const VkAllocationCallbacks* pAllocator,
10026 VkSamplerYcbcrConversion* pYcbcrConversion) {
10027 return ?
10028}
10029
Ian Elliott28bd2c32017-10-13 09:21:12 -060010030@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -040010031cmd void vkDestroySamplerYcbcrConversion(
10032 VkDevice device,
10033 VkSamplerYcbcrConversion ycbcrConversion,
10034 const VkAllocationCallbacks* pAllocator) {
10035}
10036
Ian Elliott28bd2c32017-10-13 09:21:12 -060010037@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -040010038cmd VkResult vkCreateDescriptorUpdateTemplate(
10039 VkDevice device,
10040 const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo,
10041 const VkAllocationCallbacks* pAllocator,
10042 VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate) {
10043 return ?
10044}
10045
Ian Elliott28bd2c32017-10-13 09:21:12 -060010046@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -040010047cmd void vkDestroyDescriptorUpdateTemplate(
10048 VkDevice device,
10049 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
10050 const VkAllocationCallbacks* pAllocator) {
10051}
10052
Ian Elliott28bd2c32017-10-13 09:21:12 -060010053@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -040010054cmd void vkUpdateDescriptorSetWithTemplate(
10055 VkDevice device,
10056 VkDescriptorSet descriptorSet,
10057 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
10058 const void* pData) {
10059}
10060
Ian Elliott28bd2c32017-10-13 09:21:12 -060010061@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -040010062cmd void vkGetPhysicalDeviceExternalBufferProperties(
10063 VkPhysicalDevice physicalDevice,
10064 const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo,
10065 VkExternalBufferProperties* pExternalBufferProperties) {
10066}
10067
Ian Elliott28bd2c32017-10-13 09:21:12 -060010068@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -040010069cmd void vkGetPhysicalDeviceExternalFenceProperties(
10070 VkPhysicalDevice physicalDevice,
10071 const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo,
10072 VkExternalFenceProperties* pExternalFenceProperties) {
10073}
10074
Ian Elliott28bd2c32017-10-13 09:21:12 -060010075@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -040010076cmd void vkGetPhysicalDeviceExternalSemaphoreProperties(
10077 VkPhysicalDevice physicalDevice,
10078 const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo,
10079 VkExternalSemaphoreProperties* pExternalSemaphoreProperties) {
10080}
10081
Ian Elliott28bd2c32017-10-13 09:21:12 -060010082@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -040010083cmd void vkGetDescriptorSetLayoutSupport(
10084 VkDevice device,
10085 const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
10086 VkDescriptorSetLayoutSupport* pSupport) {
10087}
10088
10089
Jesse Hallad250842017-03-10 18:35:38 -080010090@extension("VK_KHR_surface") // 1
Jesse Hall1356b0d2015-11-23 17:24:58 -080010091cmd void vkDestroySurfaceKHR(
10092 VkInstance instance,
Jesse Hall0e74f002015-11-30 11:37:59 -080010093 VkSurfaceKHR surface,
10094 const VkAllocationCallbacks* pAllocator) {
Jesse Hall1356b0d2015-11-23 17:24:58 -080010095 instanceObject := GetInstance(instance)
10096 surfaceObject := GetSurface(surface)
10097 assert(surfaceObject.instance == instance)
Michael Lentine88594d72015-11-12 12:49:45 -080010098
Jesse Hall1356b0d2015-11-23 17:24:58 -080010099 State.Surfaces[surface] = null
Jesse Hall2818f932015-11-19 21:19:17 -080010100}
10101
Jesse Hallad250842017-03-10 18:35:38 -080010102@extension("VK_KHR_surface") // 1
Jesse Halla6429252015-11-29 18:59:42 -080010103cmd VkResult vkGetPhysicalDeviceSurfaceSupportKHR(
Jesse Hall1356b0d2015-11-23 17:24:58 -080010104 VkPhysicalDevice physicalDevice,
10105 u32 queueFamilyIndex,
Jesse Hall1356b0d2015-11-23 17:24:58 -080010106 VkSurfaceKHR surface,
Jesse Hallb00daad2015-11-29 19:46:20 -080010107 VkBool32* pSupported) {
10108 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
Michael Lentine88594d72015-11-12 12:49:45 -080010109
10110 return ?
10111}
10112
Jesse Hallad250842017-03-10 18:35:38 -080010113@extension("VK_KHR_surface") // 1
Jesse Hallb00daad2015-11-29 19:46:20 -080010114cmd VkResult vkGetPhysicalDeviceSurfaceCapabilitiesKHR(
10115 VkPhysicalDevice physicalDevice,
10116 VkSurfaceKHR surface,
10117 VkSurfaceCapabilitiesKHR* pSurfaceCapabilities) {
10118 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
10119
10120 surfaceCapabilities := ?
10121 pSurfaceCapabilities[0] = surfaceCapabilities
10122
10123 return ?
10124}
10125
Jesse Hallad250842017-03-10 18:35:38 -080010126@extension("VK_KHR_surface") // 1
Jesse Hallb00daad2015-11-29 19:46:20 -080010127cmd VkResult vkGetPhysicalDeviceSurfaceFormatsKHR(
10128 VkPhysicalDevice physicalDevice,
Jesse Hall1356b0d2015-11-23 17:24:58 -080010129 VkSurfaceKHR surface,
Jesse Hall03b6fe12015-11-24 12:44:21 -080010130 u32* pSurfaceFormatCount,
Jesse Hall1356b0d2015-11-23 17:24:58 -080010131 VkSurfaceFormatKHR* pSurfaceFormats) {
Jesse Hallb00daad2015-11-29 19:46:20 -080010132 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
Michael Lentine88594d72015-11-12 12:49:45 -080010133
10134 count := as!u32(?)
Jesse Hall03b6fe12015-11-24 12:44:21 -080010135 pSurfaceFormatCount[0] = count
Michael Lentine88594d72015-11-12 12:49:45 -080010136 surfaceFormats := pSurfaceFormats[0:count]
10137
10138 for i in (0 .. count) {
10139 surfaceFormat := ?
10140 surfaceFormats[i] = surfaceFormat
10141 }
10142
10143 return ?
10144}
10145
Jesse Hallad250842017-03-10 18:35:38 -080010146@extension("VK_KHR_surface") // 1
Jesse Hallb00daad2015-11-29 19:46:20 -080010147cmd VkResult vkGetPhysicalDeviceSurfacePresentModesKHR(
10148 VkPhysicalDevice physicalDevice,
Jesse Hall1356b0d2015-11-23 17:24:58 -080010149 VkSurfaceKHR surface,
Jesse Hall03b6fe12015-11-24 12:44:21 -080010150 u32* pPresentModeCount,
Jesse Hall1356b0d2015-11-23 17:24:58 -080010151 VkPresentModeKHR* pPresentModes) {
Jesse Hallb00daad2015-11-29 19:46:20 -080010152 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
Michael Lentine88594d72015-11-12 12:49:45 -080010153
10154 count := as!u32(?)
Jesse Hall03b6fe12015-11-24 12:44:21 -080010155 pPresentModeCount[0] = count
Michael Lentine88594d72015-11-12 12:49:45 -080010156 presentModes := pPresentModes[0:count]
10157
10158 for i in (0 .. count) {
10159 presentMode := ?
10160 presentModes[i] = presentMode
10161 }
10162
10163 return ?
10164}
10165
Jesse Hallad250842017-03-10 18:35:38 -080010166@extension("VK_KHR_swapchain") // 2
Michael Lentine88594d72015-11-12 12:49:45 -080010167cmd VkResult vkCreateSwapchainKHR(
10168 VkDevice device,
10169 const VkSwapchainCreateInfoKHR* pCreateInfo,
Jesse Hall0e74f002015-11-30 11:37:59 -080010170 const VkAllocationCallbacks* pAllocator,
Michael Lentine88594d72015-11-12 12:49:45 -080010171 VkSwapchainKHR* pSwapchain) {
Jesse Hall1356b0d2015-11-23 17:24:58 -080010172 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR)
Michael Lentine88594d72015-11-12 12:49:45 -080010173 deviceObject := GetDevice(device)
10174
10175 swapchain := ?
10176 pSwapchain[0] = swapchain
10177 State.Swapchains[swapchain] = new!SwapchainObject(device: device)
10178
10179 return ?
10180}
10181
Jesse Hallad250842017-03-10 18:35:38 -080010182@extension("VK_KHR_swapchain") // 2
Jesse Hall1356b0d2015-11-23 17:24:58 -080010183cmd void vkDestroySwapchainKHR(
Michael Lentine88594d72015-11-12 12:49:45 -080010184 VkDevice device,
Jesse Hall0e74f002015-11-30 11:37:59 -080010185 VkSwapchainKHR swapchain,
10186 const VkAllocationCallbacks* pAllocator) {
Michael Lentine88594d72015-11-12 12:49:45 -080010187 deviceObject := GetDevice(device)
10188 swapchainObject := GetSwapchain(swapchain)
10189 assert(swapchainObject.device == device)
10190
10191 State.Swapchains[swapchain] = null
Michael Lentine88594d72015-11-12 12:49:45 -080010192}
10193
Jesse Hallad250842017-03-10 18:35:38 -080010194@extension("VK_KHR_swapchain") // 2
Michael Lentine88594d72015-11-12 12:49:45 -080010195cmd VkResult vkGetSwapchainImagesKHR(
10196 VkDevice device,
10197 VkSwapchainKHR swapchain,
Jesse Hall03b6fe12015-11-24 12:44:21 -080010198 u32* pSwapchainImageCount,
Michael Lentine88594d72015-11-12 12:49:45 -080010199 VkImage* pSwapchainImages) {
10200 deviceObject := GetDevice(device)
10201
10202 count := as!u32(?)
Jesse Hall03b6fe12015-11-24 12:44:21 -080010203 pSwapchainImageCount[0] = count
Michael Lentine88594d72015-11-12 12:49:45 -080010204 swapchainImages := pSwapchainImages[0:count]
10205
10206 for i in (0 .. count) {
10207 swapchainImage := ?
10208 swapchainImages[i] = swapchainImage
Jesse Hall1356b0d2015-11-23 17:24:58 -080010209 State.Images[swapchainImage] = new!ImageObject(device: device)
Michael Lentine88594d72015-11-12 12:49:45 -080010210 }
10211
10212 return ?
10213}
10214
Jesse Hallad250842017-03-10 18:35:38 -080010215@extension("VK_KHR_swapchain") // 2
Michael Lentine88594d72015-11-12 12:49:45 -080010216cmd VkResult vkAcquireNextImageKHR(
10217 VkDevice device,
10218 VkSwapchainKHR swapchain,
10219 u64 timeout,
10220 VkSemaphore semaphore,
Jesse Hall1356b0d2015-11-23 17:24:58 -080010221 VkFence fence,
Michael Lentine88594d72015-11-12 12:49:45 -080010222 u32* pImageIndex) {
10223 deviceObject := GetDevice(device)
10224 swapchainObject := GetSwapchain(swapchain)
10225
10226 imageIndex := ?
10227 pImageIndex[0] = imageIndex
10228
10229 return ?
10230}
10231
Jesse Hallad250842017-03-10 18:35:38 -080010232@extension("VK_KHR_swapchain") // 2
Michael Lentine88594d72015-11-12 12:49:45 -080010233cmd VkResult vkQueuePresentKHR(
10234 VkQueue queue,
Jesse Hallf4ab2b12015-11-30 16:04:55 -080010235 const VkPresentInfoKHR* pPresentInfo) {
Michael Lentine88594d72015-11-12 12:49:45 -080010236 queueObject := GetQueue(queue)
10237
10238 presentInfo := ?
10239 pPresentInfo[0] = presentInfo
10240
10241 return ?
10242}
10243
Ian Elliott28bd2c32017-10-13 09:21:12 -060010244@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -040010245@extension("VK_KHR_swapchain") // 2
10246cmd VkResult vkGetDeviceGroupPresentCapabilitiesKHR(
10247 VkDevice device,
10248 VkDeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities) {
10249 return ?
10250}
10251
Ian Elliott28bd2c32017-10-13 09:21:12 -060010252@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -040010253@extension("VK_KHR_swapchain") // 2
10254cmd VkResult vkGetDeviceGroupSurfacePresentModesKHR(
10255 VkDevice device,
10256 VkSurfaceKHR surface,
10257 VkDeviceGroupPresentModeFlagsKHR* pModes) {
10258 return ?
10259}
10260
Ian Elliott28bd2c32017-10-13 09:21:12 -060010261@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -040010262@extension("VK_KHR_swapchain") // 2
10263cmd VkResult vkGetPhysicalDevicePresentRectanglesKHR(
10264 VkPhysicalDevice physicalDevice,
10265 VkSurfaceKHR surface,
10266 u32* pRectCount,
10267 VkRect2D* pRects) {
10268 return ?
10269}
10270
Ian Elliott28bd2c32017-10-13 09:21:12 -060010271@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -040010272@extension("VK_KHR_swapchain") // 2
10273cmd VkResult vkAcquireNextImage2KHR(
10274 VkDevice device,
10275 const VkAcquireNextImageInfoKHR* pAcquireInfo,
10276 u32* pImageIndex) {
10277 return ?
10278}
10279
Jesse Hallad250842017-03-10 18:35:38 -080010280@extension("VK_KHR_display") // 3
Jesse Hall1356b0d2015-11-23 17:24:58 -080010281cmd VkResult vkGetPhysicalDeviceDisplayPropertiesKHR(
10282 VkPhysicalDevice physicalDevice,
Jesse Hall03b6fe12015-11-24 12:44:21 -080010283 u32* pPropertyCount,
Jesse Hall1356b0d2015-11-23 17:24:58 -080010284 VkDisplayPropertiesKHR* pProperties) {
10285 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
10286 return ?
10287}
10288
Jesse Hallad250842017-03-10 18:35:38 -080010289@extension("VK_KHR_display") // 3
Jesse Halla6429252015-11-29 18:59:42 -080010290cmd VkResult vkGetPhysicalDeviceDisplayPlanePropertiesKHR(
10291 VkPhysicalDevice physicalDevice,
10292 u32* pPropertyCount,
10293 VkDisplayPlanePropertiesKHR* pProperties) {
10294 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
10295 return ?
10296}
10297
Jesse Hallad250842017-03-10 18:35:38 -080010298@extension("VK_KHR_display") // 3
Jesse Halla6429252015-11-29 18:59:42 -080010299cmd VkResult vkGetDisplayPlaneSupportedDisplaysKHR(
10300 VkPhysicalDevice physicalDevice,
Jesse Hall3dd678a2016-01-08 21:52:01 -080010301 u32 planeIndex,
Jesse Hallf4ab2b12015-11-30 16:04:55 -080010302 u32* pDisplayCount,
10303 VkDisplayKHR* pDisplays) {
Jesse Halla6429252015-11-29 18:59:42 -080010304 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
10305 return ?
10306}
10307
Jesse Hallad250842017-03-10 18:35:38 -080010308@extension("VK_KHR_display") // 3
Jesse Hall1356b0d2015-11-23 17:24:58 -080010309cmd VkResult vkGetDisplayModePropertiesKHR(
10310 VkPhysicalDevice physicalDevice,
10311 VkDisplayKHR display,
Jesse Hall03b6fe12015-11-24 12:44:21 -080010312 u32* pPropertyCount,
10313 VkDisplayModePropertiesKHR* pProperties) {
Jesse Hall1356b0d2015-11-23 17:24:58 -080010314 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
10315 return ?
10316}
10317
Jesse Hallad250842017-03-10 18:35:38 -080010318@extension("VK_KHR_display") // 3
Jesse Hall1356b0d2015-11-23 17:24:58 -080010319cmd VkResult vkCreateDisplayModeKHR(
10320 VkPhysicalDevice physicalDevice,
10321 VkDisplayKHR display,
10322 const VkDisplayModeCreateInfoKHR* pCreateInfo,
Jesse Hall0e74f002015-11-30 11:37:59 -080010323 const VkAllocationCallbacks* pAllocator,
Jesse Hall1356b0d2015-11-23 17:24:58 -080010324 VkDisplayModeKHR* pMode) {
10325 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
10326 return ?
10327}
10328
Jesse Hallad250842017-03-10 18:35:38 -080010329@extension("VK_KHR_display") // 3
Jesse Halla6429252015-11-29 18:59:42 -080010330cmd VkResult vkGetDisplayPlaneCapabilitiesKHR(
Jesse Hall1356b0d2015-11-23 17:24:58 -080010331 VkPhysicalDevice physicalDevice,
Jesse Hall9ba8bc82015-11-30 16:22:16 -080010332 VkDisplayModeKHR mode,
Jesse Hall1356b0d2015-11-23 17:24:58 -080010333 u32 planeIndex,
Jesse Halla6429252015-11-29 18:59:42 -080010334 VkDisplayPlaneCapabilitiesKHR* pCapabilities) {
Jesse Hall1356b0d2015-11-23 17:24:58 -080010335 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
10336 return ?
10337}
10338
Jesse Hallad250842017-03-10 18:35:38 -080010339@extension("VK_KHR_display") // 3
Jesse Halla6429252015-11-29 18:59:42 -080010340cmd VkResult vkCreateDisplayPlaneSurfaceKHR(
10341 VkInstance instance,
10342 const VkDisplaySurfaceCreateInfoKHR* pCreateInfo,
Jesse Hall0e74f002015-11-30 11:37:59 -080010343 const VkAllocationCallbacks* pAllocator,
Jesse Halla6429252015-11-29 18:59:42 -080010344 VkSurfaceKHR* pSurface) {
10345 return ?
10346}
10347
Jesse Hallad250842017-03-10 18:35:38 -080010348@extension("VK_KHR_display_swapchain") // 4
Jesse Hall9ba8bc82015-11-30 16:22:16 -080010349cmd VkResult vkCreateSharedSwapchainsKHR(
10350 VkDevice device,
10351 u32 swapchainCount,
10352 const VkSwapchainCreateInfoKHR* pCreateInfos,
10353 const VkAllocationCallbacks* pAllocator,
10354 VkSwapchainKHR* pSwapchains) {
10355 return ?
10356}
10357
Jesse Hallad250842017-03-10 18:35:38 -080010358@extension("VK_KHR_xlib_surface") // 5
Jesse Halla6429252015-11-29 18:59:42 -080010359cmd VkResult vkCreateXlibSurfaceKHR(
Jesse Hall1356b0d2015-11-23 17:24:58 -080010360 VkInstance instance,
Jesse Hallf9fa9a52016-01-08 16:08:51 -080010361 const VkXlibSurfaceCreateInfoKHR* pCreateInfo,
Jesse Hall0e74f002015-11-30 11:37:59 -080010362 const VkAllocationCallbacks* pAllocator,
Jesse Hall1356b0d2015-11-23 17:24:58 -080010363 VkSurfaceKHR* pSurface) {
10364 instanceObject := GetInstance(instance)
10365 return ?
10366}
10367
Jesse Hallad250842017-03-10 18:35:38 -080010368@extension("VK_KHR_xlib_surface") // 5
Jesse Halla6429252015-11-29 18:59:42 -080010369cmd VkBool32 vkGetPhysicalDeviceXlibPresentationSupportKHR(
10370 VkPhysicalDevice physicalDevice,
10371 u32 queueFamilyIndex,
10372 platform.Display* dpy,
Jesse Hall65ab5522015-11-30 00:07:16 -080010373 platform.VisualID visualID) {
Jesse Halla6429252015-11-29 18:59:42 -080010374 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
10375 return ?
10376}
10377
Jesse Hallad250842017-03-10 18:35:38 -080010378@extension("VK_KHR_xcb_surface") // 6
Jesse Hallf9fa9a52016-01-08 16:08:51 -080010379cmd VkResult vkCreateXcbSurfaceKHR(
Jesse Hall1356b0d2015-11-23 17:24:58 -080010380 VkInstance instance,
Jesse Hallf9fa9a52016-01-08 16:08:51 -080010381 const VkXcbSurfaceCreateInfoKHR* pCreateInfo,
Jesse Hall0e74f002015-11-30 11:37:59 -080010382 const VkAllocationCallbacks* pAllocator,
Jesse Hall1356b0d2015-11-23 17:24:58 -080010383 VkSurfaceKHR* pSurface) {
10384 instanceObject := GetInstance(instance)
10385 return ?
10386}
10387
Jesse Hallad250842017-03-10 18:35:38 -080010388@extension("VK_KHR_xcb_surface") // 6
Jesse Halla6429252015-11-29 18:59:42 -080010389cmd VkBool32 vkGetPhysicalDeviceXcbPresentationSupportKHR(
10390 VkPhysicalDevice physicalDevice,
10391 u32 queueFamilyIndex,
10392 platform.xcb_connection_t* connection,
10393 platform.xcb_visualid_t visual_id) {
10394 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
10395 return ?
10396}
10397
Jesse Hallad250842017-03-10 18:35:38 -080010398@extension("VK_KHR_wayland_surface") // 7
Jesse Hall1356b0d2015-11-23 17:24:58 -080010399cmd VkResult vkCreateWaylandSurfaceKHR(
10400 VkInstance instance,
Jesse Hallf9fa9a52016-01-08 16:08:51 -080010401 const VkWaylandSurfaceCreateInfoKHR* pCreateInfo,
Jesse Hall0e74f002015-11-30 11:37:59 -080010402 const VkAllocationCallbacks* pAllocator,
Jesse Hall1356b0d2015-11-23 17:24:58 -080010403 VkSurfaceKHR* pSurface) {
10404 instanceObject := GetInstance(instance)
10405 return ?
10406}
10407
Jesse Hallad250842017-03-10 18:35:38 -080010408@extension("VK_KHR_wayland_surface") // 7
Jesse Halla6429252015-11-29 18:59:42 -080010409cmd VkBool32 vkGetPhysicalDeviceWaylandPresentationSupportKHR(
10410 VkPhysicalDevice physicalDevice,
10411 u32 queueFamilyIndex,
10412 platform.wl_display* display) {
10413 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
10414 return ?
10415}
10416
Jesse Hallad250842017-03-10 18:35:38 -080010417@extension("VK_KHR_android_surface") // 9
Jesse Hall1356b0d2015-11-23 17:24:58 -080010418cmd VkResult vkCreateAndroidSurfaceKHR(
10419 VkInstance instance,
Jesse Hallf9fa9a52016-01-08 16:08:51 -080010420 const VkAndroidSurfaceCreateInfoKHR* pCreateInfo,
Jesse Hall0e74f002015-11-30 11:37:59 -080010421 const VkAllocationCallbacks* pAllocator,
Jesse Hall1356b0d2015-11-23 17:24:58 -080010422 VkSurfaceKHR* pSurface) {
10423 instanceObject := GetInstance(instance)
10424 return ?
10425}
10426
Jesse Hallad250842017-03-10 18:35:38 -080010427@extension("VK_KHR_win32_surface") // 10
Jesse Hall1356b0d2015-11-23 17:24:58 -080010428cmd VkResult vkCreateWin32SurfaceKHR(
10429 VkInstance instance,
Jesse Hallf9fa9a52016-01-08 16:08:51 -080010430 const VkWin32SurfaceCreateInfoKHR* pCreateInfo,
Jesse Hall0e74f002015-11-30 11:37:59 -080010431 const VkAllocationCallbacks* pAllocator,
Jesse Hall1356b0d2015-11-23 17:24:58 -080010432 VkSurfaceKHR* pSurface) {
10433 instanceObject := GetInstance(instance)
10434 return ?
10435}
10436
Jesse Hallad250842017-03-10 18:35:38 -080010437@extension("VK_KHR_win32_surface") // 10
Jesse Halla6429252015-11-29 18:59:42 -080010438cmd VkResult vkGetPhysicalDeviceWin32PresentationSupportKHR(
10439 VkPhysicalDevice physicalDevice,
10440 u32 queueFamilyIndex) {
Jesse Halle2948d82016-02-25 04:19:32 -080010441 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
Jesse Halla6429252015-11-29 18:59:42 -080010442 return ?
10443}
10444
Jesse Hallad250842017-03-10 18:35:38 -080010445@extension("VK_ANDROID_native_buffer") // 11
Jesse Halld1abd742017-02-09 21:45:51 -080010446@optional
Chia-I Wub262ddc2016-03-22 07:38:20 +080010447cmd VkResult vkGetSwapchainGrallocUsageANDROID(
10448 VkDevice device,
10449 VkFormat format,
10450 VkImageUsageFlags imageUsage,
Jesse Halld1abd742017-02-09 21:45:51 -080010451 s32* grallocUsage) {
Chia-I Wub262ddc2016-03-22 07:38:20 +080010452 return ?
10453}
10454
Jesse Hallad250842017-03-10 18:35:38 -080010455@extension("VK_ANDROID_native_buffer") // 11
Jesse Halld1abd742017-02-09 21:45:51 -080010456@optional
Chris Forbes8e4438b2016-12-07 16:26:49 +130010457cmd VkResult vkGetSwapchainGrallocUsage2ANDROID(
10458 VkDevice device,
10459 VkFormat format,
10460 VkImageUsageFlags imageUsage,
10461 VkSwapchainImageUsageFlagsANDROID swapchainImageUsage,
Jesse Halld1abd742017-02-09 21:45:51 -080010462 u64* grallocConsumerUsage,
10463 u64* grallocProducerUsage) {
Chris Forbes8e4438b2016-12-07 16:26:49 +130010464 return ?
10465}
10466
Jesse Hallad250842017-03-10 18:35:38 -080010467@extension("VK_ANDROID_native_buffer") // 11
Chia-I Wub262ddc2016-03-22 07:38:20 +080010468cmd VkResult vkAcquireImageANDROID(
10469 VkDevice device,
10470 VkImage image,
10471 int nativeFenceFd,
10472 VkSemaphore semaphore,
10473 VkFence fence) {
10474 return ?
10475}
10476
Jesse Hallad250842017-03-10 18:35:38 -080010477@extension("VK_ANDROID_native_buffer") // 11
Chia-I Wub262ddc2016-03-22 07:38:20 +080010478cmd VkResult vkQueueSignalReleaseImageANDROID(
10479 VkQueue queue,
10480 u32 waitSemaphoreCount,
10481 const VkSemaphore* pWaitSemaphores,
10482 VkImage image,
10483 int* pNativeFenceFd) {
10484 return ?
10485}
10486
Jesse Hallad250842017-03-10 18:35:38 -080010487@extension("VK_EXT_debug_report") // 12
10488@external type void* PFN_vkDebugReportCallbackEXT
10489@extension("VK_EXT_debug_report") // 12
10490@pfn cmd VkBool32 vkDebugReportCallbackEXT(
10491 VkDebugReportFlagsEXT flags,
10492 VkDebugReportObjectTypeEXT objectType,
10493 u64 object,
10494 platform.size_t location,
10495 s32 messageCode,
10496 const char* pLayerPrefix,
10497 const char* pMessage,
10498 void* pUserData) {
10499 return ?
10500}
10501
10502@extension("VK_EXT_debug_report") // 12
10503cmd VkResult vkCreateDebugReportCallbackEXT(
10504 VkInstance instance,
10505 const VkDebugReportCallbackCreateInfoEXT* pCreateInfo,
10506 const VkAllocationCallbacks* pAllocator,
10507 VkDebugReportCallbackEXT* pCallback) {
10508 return ?
10509}
10510
10511@extension("VK_EXT_debug_report") // 12
10512cmd void vkDestroyDebugReportCallbackEXT(
10513 VkInstance instance,
10514 VkDebugReportCallbackEXT callback,
10515 const VkAllocationCallbacks* pAllocator) {
10516}
10517
10518@extension("VK_EXT_debug_report") // 12
10519cmd void vkDebugReportMessageEXT(
10520 VkInstance instance,
10521 VkDebugReportFlagsEXT flags,
10522 VkDebugReportObjectTypeEXT objectType,
10523 u64 object,
10524 platform.size_t location,
10525 s32 messageCode,
10526 const char* pLayerPrefix,
10527 const char* pMessage) {
10528}
10529
10530@extension("VK_EXT_debug_marker") // 23
10531cmd VkResult vkDebugMarkerSetObjectTagEXT(
10532 VkDevice device,
Jesse Hall77726222017-09-19 14:49:27 -050010533 const VkDebugMarkerObjectTagInfoEXT* pTagInfo) {
Jesse Hallad250842017-03-10 18:35:38 -080010534 return ?
10535}
10536
10537@extension("VK_EXT_debug_marker") // 23
10538cmd VkResult vkDebugMarkerSetObjectNameEXT(
10539 VkDevice device,
Jesse Hall77726222017-09-19 14:49:27 -050010540 const VkDebugMarkerObjectNameInfoEXT* pNameInfo) {
Jesse Hallad250842017-03-10 18:35:38 -080010541 return ?
10542}
10543
10544@extension("VK_EXT_debug_marker") // 23
10545cmd void vkCmdDebugMarkerBeginEXT(
10546 VkCommandBuffer commandBuffer,
Jesse Hall77726222017-09-19 14:49:27 -050010547 const VkDebugMarkerMarkerInfoEXT* pMarkerInfo) {
Jesse Hallad250842017-03-10 18:35:38 -080010548}
10549
10550@extension("VK_EXT_debug_marker") // 23
10551cmd void vkCmdDebugMarkerEndEXT(
10552 VkCommandBuffer commandBuffer) {
10553}
10554
10555@extension("VK_EXT_debug_marker") // 23
10556cmd void vkCmdDebugMarkerInsertEXT(
10557 VkCommandBuffer commandBuffer,
Jesse Hall77726222017-09-19 14:49:27 -050010558 const VkDebugMarkerMarkerInfoEXT* pMarkerInfo) {
Jesse Hallad250842017-03-10 18:35:38 -080010559}
10560
Jesse Hallf47e8f82018-10-27 23:41:45 -070010561@extension("VK_EXT_transform_feedback") // 29
10562cmd void vkCmdBindTransformFeedbackBuffersEXT(
10563 VkCommandBuffer commandBuffer,
10564 u32 firstBinding,
10565 u32 bindingCount,
10566 const VkBuffer* pBuffers,
10567 const VkDeviceSize* pOffsets,
10568 const VkDeviceSize* pSizes) {
10569}
10570
10571@extension("VK_EXT_transform_feedback") // 29
10572cmd void vkCmdBeginTransformFeedbackEXT(
10573 VkCommandBuffer commandBuffer,
10574 u32 firstCounterBuffer,
10575 u32 counterBufferCount,
10576 const VkBuffer* pCounterBuffers,
10577 const VkDeviceSize* pCounterBufferOffsets) {
10578}
10579
10580@extension("VK_EXT_transform_feedback") // 29
10581cmd void vkCmdEndTransformFeedbackEXT(
10582 VkCommandBuffer commandBuffer,
10583 u32 firstCounterBuffer,
10584 u32 counterBufferCount,
10585 const VkBuffer* pCounterBuffers,
10586 const VkDeviceSize* pCounterBufferOffsets) {
10587}
10588
10589@extension("VK_EXT_transform_feedback") // 29
10590cmd void vkCmdBeginQueryIndexedEXT(
10591 VkCommandBuffer commandBuffer,
10592 VkQueryPool queryPool,
10593 u32 query,
10594 VkQueryControlFlags flags,
10595 u32 index) {
10596}
10597
10598@extension("VK_EXT_transform_feedback") // 29
10599cmd void vkCmdEndQueryIndexedEXT(
10600 VkCommandBuffer commandBuffer,
10601 VkQueryPool queryPool,
10602 u32 query,
10603 u32 index) {
10604}
10605
10606@extension("VK_EXT_transform_feedback") // 29
10607cmd void vkCmdDrawIndirectByteCountEXT(
10608 VkCommandBuffer commandBuffer,
10609 u32 instanceCount,
10610 u32 firstInstance,
10611 VkBuffer counterBuffer,
10612 VkDeviceSize counterBufferOffset,
10613 u32 counterOffset,
10614 u32 vertexStride) {
10615}
10616
Jesse Hallad250842017-03-10 18:35:38 -080010617@extension("VK_AMD_draw_indirect_count") // 34
10618cmd void vkCmdDrawIndirectCountAMD(
10619 VkCommandBuffer commandBuffer,
10620 VkBuffer buffer,
10621 VkDeviceSize offset,
10622 VkBuffer countBuffer,
10623 VkDeviceSize countBufferOffset,
10624 u32 maxDrawCount,
10625 u32 stride) {
10626}
10627
10628@extension("VK_AMD_draw_indirect_count") // 34
10629cmd void vkCmdDrawIndexedIndirectCountAMD(
10630 VkCommandBuffer commandBuffer,
10631 VkBuffer buffer,
10632 VkDeviceSize offset,
10633 VkBuffer countBuffer,
10634 VkDeviceSize countBufferOffset,
10635 u32 maxDrawCount,
10636 u32 stride) {
10637}
10638
Jesse Hall8c954d32018-01-17 22:06:20 -080010639@extension("VK_AMD_shader_info") // 43
10640cmd VkResult vkGetShaderInfoAMD(
10641 VkDevice device,
10642 VkPipeline pipeline,
10643 VkShaderStageFlagBits shaderStage,
10644 VkShaderInfoTypeAMD infoType,
10645 platform.size_t* pInfoSize,
10646 void* pInfo) {
10647 return ?
10648}
10649
Jesse Hallad250842017-03-10 18:35:38 -080010650@extension("VK_NV_external_memory_capabilities") // 56
10651cmd VkResult vkGetPhysicalDeviceExternalImageFormatPropertiesNV(
10652 VkPhysicalDevice physicalDevice,
10653 VkFormat format,
10654 VkImageType type,
10655 VkImageTiling tiling,
10656 VkImageUsageFlags usage,
10657 VkImageCreateFlags flags,
10658 VkExternalMemoryHandleTypeFlagsNV externalHandleType,
10659 VkExternalImageFormatPropertiesNV* pExternalImageFormatProperties) {
10660 return ?
10661}
10662
10663@extension("VK_NV_external_memory_win32") // 58
10664cmd VkResult vkGetMemoryWin32HandleNV(
10665 VkDevice device,
10666 VkDeviceMemory memory,
10667 VkExternalMemoryHandleTypeFlagsNV handleType,
10668 platform.HANDLE* pHandle) {
10669 return ?
10670}
10671
10672@extension("VK_KHR_get_physical_device_properties2") // 60
10673cmd void vkGetPhysicalDeviceFeatures2KHR(
10674 VkPhysicalDevice physicalDevice,
10675 VkPhysicalDeviceFeatures2KHR* pFeatures) {
10676}
10677
10678@extension("VK_KHR_get_physical_device_properties2") // 60
10679cmd void vkGetPhysicalDeviceProperties2KHR(
10680 VkPhysicalDevice physicalDevice,
10681 VkPhysicalDeviceProperties2KHR* pProperties) {
10682}
10683
10684@extension("VK_KHR_get_physical_device_properties2") // 60
10685cmd void vkGetPhysicalDeviceFormatProperties2KHR(
10686 VkPhysicalDevice physicalDevice,
10687 VkFormat format,
10688 VkFormatProperties2KHR* pFormatProperties) {
10689}
10690
10691@extension("VK_KHR_get_physical_device_properties2") // 60
10692cmd VkResult vkGetPhysicalDeviceImageFormatProperties2KHR(
10693 VkPhysicalDevice physicalDevice,
10694 const VkPhysicalDeviceImageFormatInfo2KHR* pImageFormatInfo,
10695 VkImageFormatProperties2KHR* pImageFormatProperties) {
10696 return ?
10697}
10698
10699@extension("VK_KHR_get_physical_device_properties2") // 60
10700cmd void vkGetPhysicalDeviceQueueFamilyProperties2KHR(
10701 VkPhysicalDevice physicalDevice,
10702 u32* pQueueFamilyPropertyCount,
10703 VkQueueFamilyProperties2KHR* pQueueFamilyProperties) {
10704}
10705
10706@extension("VK_KHR_get_physical_device_properties2") // 60
10707cmd void vkGetPhysicalDeviceMemoryProperties2KHR(
10708 VkPhysicalDevice physicalDevice,
10709 VkPhysicalDeviceMemoryProperties2KHR* pMemoryProperties) {
10710}
10711
10712@extension("VK_KHR_get_physical_device_properties2") // 60
10713cmd void vkGetPhysicalDeviceSparseImageFormatProperties2KHR(
10714 VkPhysicalDevice physicalDevice,
10715 const VkPhysicalDeviceSparseImageFormatInfo2KHR* pFormatInfo,
10716 u32* pPropertyCount,
10717 VkSparseImageFormatProperties2KHR* pProperties) {
10718}
10719
Daniel Koch09f7bf92017-10-05 00:26:58 -040010720@extension("VK_KHR_device_group") // 61
10721cmd void vkGetDeviceGroupPeerMemoryFeaturesKHR(
Jesse Hallad250842017-03-10 18:35:38 -080010722 VkDevice device,
10723 u32 heapIndex,
10724 u32 localDeviceIndex,
10725 u32 remoteDeviceIndex,
Daniel Koch09f7bf92017-10-05 00:26:58 -040010726 VkPeerMemoryFeatureFlagsKHR* pPeerMemoryFeatures) {
Jesse Hallad250842017-03-10 18:35:38 -080010727}
10728
Daniel Koch09f7bf92017-10-05 00:26:58 -040010729@extension("VK_KHR_device_group") // 61
10730cmd void vkCmdSetDeviceMaskKHR(
Jesse Hallad250842017-03-10 18:35:38 -080010731 VkCommandBuffer commandBuffer,
10732 u32 deviceMask) {
10733}
10734
Jesse Hallad250842017-03-10 18:35:38 -080010735
Daniel Koch09f7bf92017-10-05 00:26:58 -040010736@extension("VK_KHR_device_group") // 61
10737cmd void vkCmdDispatchBaseKHR(
Jesse Hallad250842017-03-10 18:35:38 -080010738 VkCommandBuffer commandBuffer,
10739 u32 baseGroupX,
10740 u32 baseGroupY,
10741 u32 baseGroupZ,
10742 u32 groupCountX,
10743 u32 groupCountY,
10744 u32 groupCountZ) {
10745}
10746
Jesse Hallad250842017-03-10 18:35:38 -080010747@extension("VK_NN_vi_surface") // 63
10748cmd VkResult vkCreateViSurfaceNN(
10749 VkInstance instance,
10750 const VkViSurfaceCreateInfoNN* pCreateInfo,
10751 const VkAllocationCallbacks* pAllocator,
10752 VkSurfaceKHR* pSurface) {
10753 return ?
10754}
10755
10756@extension("VK_KHR_maintenance1") // 70
10757cmd void vkTrimCommandPoolKHR(
10758 VkDevice device,
10759 VkCommandPool commandPool,
10760 VkCommandPoolTrimFlagsKHR flags) {
10761}
10762
Daniel Koch09f7bf92017-10-05 00:26:58 -040010763@extension("VK_KHR_device_group_creation") // 71
10764@threadSafety("system")
10765cmd VkResult vkEnumeratePhysicalDeviceGroupsKHR(
Jesse Hallad250842017-03-10 18:35:38 -080010766 VkInstance instance,
10767 u32* pPhysicalDeviceGroupCount,
Daniel Koch09f7bf92017-10-05 00:26:58 -040010768 VkPhysicalDeviceGroupPropertiesKHR* pPhysicalDeviceGroupProperties) {
10769 instanceObject := GetInstance(instance)
10770
10771 physicalDeviceGroupCount := as!u32(?)
10772 pPhysicalDeviceGroupCount[0] = physicalDeviceGroupCount
10773 physicalDevices := pPhysicalDeviceGroupProperties[0:physicalDeviceGroupCount]
10774
10775 for i in (0 .. physicalDeviceGroupCount) {
10776 physicalDevice := ?
10777 physicalDevices[i] = physicalDevice
10778 if !(physicalDevice in State.PhysicalDevices) {
10779 State.PhysicalDevices[physicalDevice] = new!PhysicalDeviceObject(instance: instance)
10780 }
10781 }
10782
Jesse Hallad250842017-03-10 18:35:38 -080010783 return ?
10784}
10785
Jesse Hall9492f992017-08-28 12:10:06 -070010786@extension("VK_KHR_external_memory_capabilities") // 72
10787cmd void vkGetPhysicalDeviceExternalBufferPropertiesKHR(
Jesse Hallad250842017-03-10 18:35:38 -080010788 VkPhysicalDevice physicalDevice,
Jesse Hall9492f992017-08-28 12:10:06 -070010789 const VkPhysicalDeviceExternalBufferInfoKHR* pExternalBufferInfo,
10790 VkExternalBufferPropertiesKHR* pExternalBufferProperties) {
Jesse Hallad250842017-03-10 18:35:38 -080010791}
10792
Jesse Hall9492f992017-08-28 12:10:06 -070010793@extension("VK_KHR_external_memory_win32") // 74
10794cmd VkResult vkGetMemoryWin32HandleKHR(
Jesse Hallad250842017-03-10 18:35:38 -080010795 VkDevice device,
Jesse Hall9492f992017-08-28 12:10:06 -070010796 const VkMemoryGetWin32HandleInfoKHR* pGetWin32HandleInfo,
Jesse Hallad250842017-03-10 18:35:38 -080010797 platform.HANDLE* pHandle) {
10798 return ?
10799}
10800
Jesse Hall9492f992017-08-28 12:10:06 -070010801@extension("VK_KHR_external_memory_win32") // 74
10802cmd VkResult vkGetMemoryWin32HandlePropertiesKHR(
Jesse Hallad250842017-03-10 18:35:38 -080010803 VkDevice device,
Jesse Hall9492f992017-08-28 12:10:06 -070010804 VkExternalMemoryHandleTypeFlagBitsKHR handleType,
Jesse Hallad250842017-03-10 18:35:38 -080010805 platform.HANDLE handle,
Jesse Hall9492f992017-08-28 12:10:06 -070010806 VkMemoryWin32HandlePropertiesKHR* pMemoryWin32HandleProperties) {
Jesse Hallad250842017-03-10 18:35:38 -080010807 return ?
10808}
10809
Jesse Hall9492f992017-08-28 12:10:06 -070010810@extension("VK_KHR_external_memory_fd") // 75
10811cmd VkResult vkGetMemoryFdKHR(
Jesse Hallad250842017-03-10 18:35:38 -080010812 VkDevice device,
Jesse Hall9492f992017-08-28 12:10:06 -070010813 const VkMemoryGetFdInfoKHR* pGetFdInfo,
Jesse Hallad250842017-03-10 18:35:38 -080010814 s32* pFd) {
10815 return ?
10816}
10817
Jesse Hall9492f992017-08-28 12:10:06 -070010818@extension("VK_KHR_external_memory_fd") // 75
10819cmd VkResult vkGetMemoryFdPropertiesKHR(
Jesse Hallad250842017-03-10 18:35:38 -080010820 VkDevice device,
Jesse Hall9492f992017-08-28 12:10:06 -070010821 VkExternalMemoryHandleTypeFlagBitsKHR handleType,
Jesse Hallad250842017-03-10 18:35:38 -080010822 s32 fd,
Jesse Hall9492f992017-08-28 12:10:06 -070010823 VkMemoryFdPropertiesKHR* pMemoryFdProperties) {
Jesse Hallad250842017-03-10 18:35:38 -080010824 return ?
10825}
10826
Jesse Hall9492f992017-08-28 12:10:06 -070010827@extension("VK_KHR_external_semaphore_capabilities") // 77
10828cmd void vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(
Jesse Hallad250842017-03-10 18:35:38 -080010829 VkPhysicalDevice physicalDevice,
Jesse Hall9492f992017-08-28 12:10:06 -070010830 const VkPhysicalDeviceExternalSemaphoreInfoKHR* pExternalSemaphoreInfo,
10831 VkExternalSemaphorePropertiesKHR* pExternalSemaphoreProperties) {
Jesse Hallad250842017-03-10 18:35:38 -080010832}
10833
Jesse Hall9492f992017-08-28 12:10:06 -070010834@extension("VK_KHR_external_semaphore_win32") // 79
10835cmd VkResult vkImportSemaphoreWin32HandleKHR(
Jesse Hallad250842017-03-10 18:35:38 -080010836 VkDevice device,
Jesse Hall9492f992017-08-28 12:10:06 -070010837 const VkImportSemaphoreWin32HandleInfoKHR* pImportSemaphoreWin32HandleInfo) {
Jesse Hallad250842017-03-10 18:35:38 -080010838 return ?
10839}
10840
Jesse Hall9492f992017-08-28 12:10:06 -070010841@extension("VK_KHR_external_semaphore_win32") // 79
10842cmd VkResult vkGetSemaphoreWin32HandleKHR(
Jesse Hallad250842017-03-10 18:35:38 -080010843 VkDevice device,
Jesse Hall9492f992017-08-28 12:10:06 -070010844 const VkSemaphoreGetWin32HandleInfoKHR* pGetWin32HandleInfo,
Jesse Hallad250842017-03-10 18:35:38 -080010845 platform.HANDLE* pHandle) {
10846 return ?
10847}
10848
Jesse Hall9492f992017-08-28 12:10:06 -070010849@extension("VK_KHR_external_semaphore_fd") // 80
10850cmd VkResult vkImportSemaphoreFdKHR(
Jesse Hallad250842017-03-10 18:35:38 -080010851 VkDevice device,
Jesse Hall9492f992017-08-28 12:10:06 -070010852 const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo) {
Jesse Hallad250842017-03-10 18:35:38 -080010853 return ?
10854}
10855
Jesse Hall9492f992017-08-28 12:10:06 -070010856@extension("VK_KHR_external_semaphore_fd") // 80
10857cmd VkResult vkGetSemaphoreFdKHR(
Jesse Hallad250842017-03-10 18:35:38 -080010858 VkDevice device,
Jesse Hall9492f992017-08-28 12:10:06 -070010859 const VkSemaphoreGetFdInfoKHR* pGetFdInfo,
Jesse Hallad250842017-03-10 18:35:38 -080010860 s32* pFd) {
10861 return ?
10862}
10863
10864@extension("VK_KHR_push_descriptor") // 81
10865cmd void vkCmdPushDescriptorSetKHR(
10866 VkCommandBuffer commandBuffer,
10867 VkPipelineBindPoint pipelineBindPoint,
10868 VkPipelineLayout layout,
10869 u32 set,
10870 u32 descriptorWriteCount,
10871 const VkWriteDescriptorSet* pDescriptorWrites) {
10872}
10873
Jesse Halla13a3cf2018-07-09 15:51:52 -070010874@extension("VK_EXT_conditional_rendering") // 82
10875cmd void vkCmdBeginConditionalRenderingEXT(
10876 VkCommandBuffer commandBuffer,
10877 const VkConditionalRenderingBeginInfoEXT* pConditionalRenderingBegin) {
10878}
10879
10880@extension("VK_EXT_conditional_rendering") // 82
10881cmd void vkCmdEndConditionalRenderingEXT(
10882 VkCommandBuffer commandBuffer) {
10883}
10884
Jesse Hallad250842017-03-10 18:35:38 -080010885@extension("VK_KHR_descriptor_update_template") // 86
10886cmd VkResult vkCreateDescriptorUpdateTemplateKHR(
10887 VkDevice device,
10888 const VkDescriptorUpdateTemplateCreateInfoKHR* pCreateInfo,
10889 const VkAllocationCallbacks* pAllocator,
10890 VkDescriptorUpdateTemplateKHR* pDescriptorUpdateTemplate) {
10891 return ?
10892}
10893
10894@extension("VK_KHR_descriptor_update_template") // 86
10895cmd void vkDestroyDescriptorUpdateTemplateKHR(
10896 VkDevice device,
10897 VkDescriptorUpdateTemplateKHR descriptorUpdateTemplate,
10898 const VkAllocationCallbacks* pAllocator) {
10899}
10900
10901@extension("VK_KHR_descriptor_update_template") // 86
10902cmd void vkUpdateDescriptorSetWithTemplateKHR(
10903 VkDevice device,
10904 VkDescriptorSet descriptorSet,
10905 VkDescriptorUpdateTemplateKHR descriptorUpdateTemplate,
10906 const void* pData) {
10907}
10908
10909@extension("VK_KHR_descriptor_update_template") // 86
10910cmd void vkCmdPushDescriptorSetWithTemplateKHR(
10911 VkCommandBuffer commandBuffer,
10912 VkDescriptorUpdateTemplateKHR descriptorUpdateTemplate,
10913 VkPipelineLayout layout,
10914 u32 set,
10915 const void* pData) {
10916}
10917
10918@extension("VK_NVX_device_generated_commands") // 87
10919cmd void vkCmdProcessCommandsNVX(
10920 VkCommandBuffer commandBuffer,
10921 const VkCmdProcessCommandsInfoNVX* pProcessCommandsInfo) {
10922}
10923
10924@extension("VK_NVX_device_generated_commands") // 87
10925cmd void vkCmdReserveSpaceForCommandsNVX(
10926 VkCommandBuffer commandBuffer,
10927 const VkCmdReserveSpaceForCommandsInfoNVX* pReserveSpaceInfo) {
10928}
10929
10930@extension("VK_NVX_device_generated_commands") // 87
10931cmd VkResult vkCreateIndirectCommandsLayoutNVX(
10932 VkDevice device,
10933 const VkIndirectCommandsLayoutCreateInfoNVX* pCreateInfo,
10934 const VkAllocationCallbacks* pAllocator,
10935 VkIndirectCommandsLayoutNVX* pIndirectCommandsLayout) {
10936 return ?
10937}
10938
10939@extension("VK_NVX_device_generated_commands") // 87
10940cmd void vkDestroyIndirectCommandsLayoutNVX(
10941 VkDevice device,
10942 VkIndirectCommandsLayoutNVX indirectCommandsLayout,
10943 const VkAllocationCallbacks* pAllocator) {
10944}
10945
10946@extension("VK_NVX_device_generated_commands") // 87
10947cmd VkResult vkCreateObjectTableNVX(
10948 VkDevice device,
10949 const VkObjectTableCreateInfoNVX* pCreateInfo,
10950 const VkAllocationCallbacks* pAllocator,
10951 VkObjectTableNVX* pObjectTable) {
10952 return ?
10953}
10954
10955@extension("VK_NVX_device_generated_commands") // 87
10956cmd void vkDestroyObjectTableNVX(
10957 VkDevice device,
10958 VkObjectTableNVX objectTable,
10959 const VkAllocationCallbacks* pAllocator) {
10960}
10961
10962@extension("VK_NVX_device_generated_commands") // 87
10963cmd VkResult vkRegisterObjectsNVX(
10964 VkDevice device,
10965 VkObjectTableNVX objectTable,
10966 u32 objectCount,
10967 const VkObjectTableEntryNVX* const* ppObjectTableEntries,
10968 const u32* pObjectIndices) {
10969 return ?
10970}
10971
10972@extension("VK_NVX_device_generated_commands") // 87
10973cmd VkResult vkUnregisterObjectsNVX(
10974 VkDevice device,
10975 VkObjectTableNVX objectTable,
10976 u32 objectCount,
10977 const VkObjectEntryTypeNVX* pObjectEntryTypes,
10978 const u32* pObjectIndices) {
10979 return ?
10980}
10981
10982@extension("VK_NVX_device_generated_commands") // 87
10983cmd void vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX(
10984 VkPhysicalDevice physicalDevice,
10985 VkDeviceGeneratedCommandsFeaturesNVX* pFeatures,
10986 VkDeviceGeneratedCommandsLimitsNVX* pLimits) {
10987}
10988
10989@extension("VK_NV_clip_space_w_scaling") // 88
10990cmd void vkCmdSetViewportWScalingNV(
10991 VkCommandBuffer commandBuffer,
10992 u32 firstViewport,
10993 u32 viewportCount,
10994 const VkViewportWScalingNV* pViewportWScalings) {
10995}
10996
10997@extension("VK_EXT_direct_mode_display") // 89
10998cmd VkResult vkReleaseDisplayEXT(
10999 VkPhysicalDevice physicalDevice,
11000 VkDisplayKHR display) {
11001 return ?
11002}
11003
11004@extension("VK_EXT_acquire_xlib_display") // 90
11005cmd VkResult vkAcquireXlibDisplayEXT(
11006 VkPhysicalDevice physicalDevice,
11007 platform.Display* dpy,
11008 VkDisplayKHR display) {
11009 return ?
11010}
11011
11012@extension("VK_EXT_acquire_xlib_display") // 90
11013cmd VkResult vkGetRandROutputDisplayEXT(
11014 VkPhysicalDevice physicalDevice,
11015 platform.Display* dpy,
11016 platform.RROutput rrOutput,
11017 VkDisplayKHR* pDisplay) {
11018 return ?
11019}
11020
11021@extension("VK_EXT_display_surface_counter") // 91
11022cmd VkResult vkGetPhysicalDeviceSurfaceCapabilities2EXT(
11023 VkPhysicalDevice physicalDevice,
11024 VkSurfaceKHR surface,
11025 VkSurfaceCapabilities2EXT* pSurfaceCapabilities) {
11026 return ?
11027}
11028
11029@extension("VK_EXT_display_control") // 92
11030cmd VkResult vkDisplayPowerControlEXT(
11031 VkDevice device,
11032 VkDisplayKHR display,
11033 const VkDisplayPowerInfoEXT* pDisplayPowerInfo) {
11034 return ?
11035}
11036
11037@extension("VK_EXT_display_control") // 92
11038cmd VkResult vkRegisterDeviceEventEXT(
11039 VkDevice device,
11040 const VkDeviceEventInfoEXT* pDeviceEventInfo,
11041 const VkAllocationCallbacks* pAllocator,
11042 VkFence* pFence) {
11043 return ?
11044}
11045
11046@extension("VK_EXT_display_control") // 92
11047cmd VkResult vkRegisterDisplayEventEXT(
11048 VkDevice device,
11049 VkDisplayKHR display,
11050 const VkDisplayEventInfoEXT* pDisplayEventInfo,
11051 const VkAllocationCallbacks* pAllocator,
11052 VkFence* pFence) {
11053 return ?
11054}
11055
11056@extension("VK_EXT_display_control") // 92
11057cmd VkResult vkGetSwapchainCounterEXT(
11058 VkDevice device,
11059 VkSwapchainKHR swapchain,
11060 VkSurfaceCounterFlagBitsEXT counter,
11061 u64* pCounterValue) {
11062 return ?
11063}
11064
11065@extension("VK_GOOGLE_display_timing") // 93
Ian Elliott4c8bb2a2016-12-29 11:07:26 -070011066cmd VkResult vkGetRefreshCycleDurationGOOGLE(
Jesse Hallfdc8ab32017-03-10 21:01:57 -080011067 VkDevice device,
11068 VkSwapchainKHR swapchain,
11069 VkRefreshCycleDurationGOOGLE* pDisplayTimingProperties) {
Ian Elliott4c8bb2a2016-12-29 11:07:26 -070011070 deviceObject := GetDevice(device)
11071 swapchainObject := GetSwapchain(swapchain)
11072
11073 displayTimingProperties := ?
11074 pDisplayTimingProperties[0] = displayTimingProperties
11075
11076 return ?
11077}
11078
Jesse Hallad250842017-03-10 18:35:38 -080011079@extension("VK_GOOGLE_display_timing") // 93
Ian Elliott4c8bb2a2016-12-29 11:07:26 -070011080cmd VkResult vkGetPastPresentationTimingGOOGLE(
Jesse Hallfdc8ab32017-03-10 21:01:57 -080011081 VkDevice device,
11082 VkSwapchainKHR swapchain,
11083 u32* pPresentationTimingCount,
11084 VkPastPresentationTimingGOOGLE* pPresentationTimings) {
Ian Elliott4c8bb2a2016-12-29 11:07:26 -070011085 return ?
11086}
11087
Jesse Hallad250842017-03-10 18:35:38 -080011088@extension("VK_EXT_discard_rectangles") // 100
11089cmd void vkCmdSetDiscardRectangleEXT(
Jesse Hall26763382016-05-20 07:13:52 -070011090 VkCommandBuffer commandBuffer,
Jesse Hallad250842017-03-10 18:35:38 -080011091 u32 firstDiscardRectangle,
11092 u32 discardRectangleCount,
11093 const VkRect2D* pDiscardRectangles) {
Jesse Hall26763382016-05-20 07:13:52 -070011094}
11095
Jesse Hallad250842017-03-10 18:35:38 -080011096@extension("VK_EXT_hdr_metadata") // 106
Jesse Hall889cd9a2017-02-25 22:12:23 -080011097cmd void vkSetHdrMetadataEXT(
Jesse Hallfdc8ab32017-03-10 21:01:57 -080011098 VkDevice device,
11099 u32 swapchainCount,
11100 const VkSwapchainKHR* pSwapchains,
11101 const VkHdrMetadataEXT* pMetadata) {
Jesse Hall889cd9a2017-02-25 22:12:23 -080011102}
11103
Jesse Halla13a3cf2018-07-09 15:51:52 -070011104@extension("VK_KHR_create_renderpass2") // 110
11105cmd VkResult vkCreateRenderPass2KHR(
11106 VkDevice device,
11107 const VkRenderPassCreateInfo2KHR* pCreateInfo,
11108 const VkAllocationCallbacks* pAllocator,
11109 VkRenderPass* pRenderPass) {
11110 return ?
11111}
11112
11113@extension("VK_KHR_create_renderpass2") // 110
11114cmd void vkCmdBeginRenderPass2KHR(
11115 VkCommandBuffer commandBuffer,
11116 const VkRenderPassBeginInfo* pRenderPassBegin,
11117 const VkSubpassBeginInfoKHR* pSubpassBeginInfo) {
11118}
11119
11120@extension("VK_KHR_create_renderpass2") // 110
11121cmd void vkCmdNextSubpass2KHR(
11122 VkCommandBuffer commandBuffer,
11123 const VkSubpassBeginInfoKHR* pSubpassBeginInfo,
11124 const VkSubpassEndInfoKHR* pSubpassEndInfo) {
11125}
11126
11127@extension("VK_KHR_create_renderpass2") // 110
11128cmd void vkCmdEndRenderPass2KHR(
11129 VkCommandBuffer commandBuffer,
11130 const VkSubpassEndInfoKHR* pSubpassEndInfo) {
11131}
11132
Jesse Hallad250842017-03-10 18:35:38 -080011133@extension("VK_KHR_shared_presentable_image") // 112
Chris Forbes2e12cb82017-01-18 11:45:17 +130011134cmd VkResult vkGetSwapchainStatusKHR(
11135 VkDevice device,
11136 VkSwapchainKHR swapchain) {
11137 return ?
11138}
11139
Jesse Hall9492f992017-08-28 12:10:06 -070011140@extension("VK_KHR_external_fence_capabilities") // 113
11141cmd void vkGetPhysicalDeviceExternalFencePropertiesKHR(
11142 VkPhysicalDevice physicalDevice,
11143 const VkPhysicalDeviceExternalFenceInfoKHR* pExternalFenceInfo,
11144 VkExternalFencePropertiesKHR* pExternalFenceProperties) {
11145}
11146
11147@extension("VK_KHR_external_fence_win32") // 115
11148cmd VkResult vkImportFenceWin32HandleKHR(
11149 VkDevice device,
11150 const VkImportFenceWin32HandleInfoKHR* pImportFenceWin32HandleInfo) {
11151 return ?
11152}
11153
11154@extension("VK_KHR_external_fence_win32") // 115
11155cmd VkResult vkGetFenceWin32HandleKHR(
11156 VkDevice device,
11157 const VkFenceGetWin32HandleInfoKHR* pGetWin32HandleInfo,
11158 platform.HANDLE* pHandle) {
11159 return ?
11160}
11161
11162@extension("VK_KHR_external_fence_fd") // 116
11163cmd VkResult vkImportFenceFdKHR(
11164 VkDevice device,
11165 const VkImportFenceFdInfoKHR* pImportFenceFdInfo) {
11166 return ?
11167}
11168
11169@extension("VK_KHR_external_fence_fd") // 116
11170cmd VkResult vkGetFenceFdKHR(
11171 VkDevice device,
11172 const VkFenceGetFdInfoKHR* pGetFdInfo,
11173 int* pFd) {
11174 return ?
11175}
11176
Jesse Hall05556b12017-05-18 17:40:25 -070011177@extension("VK_KHR_get_surface_capabilities2") // 120
Chris Forbese2d3ee12017-03-16 16:10:15 +130011178cmd VkResult vkGetPhysicalDeviceSurfaceCapabilities2KHR(
11179 VkPhysicalDevice physicalDevice,
11180 const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo,
11181 VkSurfaceCapabilities2KHR* pSurfaceCapabilities) {
11182 return ?
11183}
11184
Jesse Hall05556b12017-05-18 17:40:25 -070011185@extension("VK_KHR_get_surface_capabilities2") // 120
Chris Forbese2d3ee12017-03-16 16:10:15 +130011186cmd VkResult vkGetPhysicalDeviceSurfaceFormats2KHR(
11187 VkPhysicalDevice physicalDevice,
11188 const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo,
11189 u32* pSurfaceFormatCount,
11190 VkSurfaceFormat2KHR* pSurfaceFormats) {
11191 return ?
11192}
11193
Jesse Hall54f8d132018-04-18 08:16:59 -070011194@extension("VK_KHR_display_properties2") // 122
11195cmd VkResult vkGetPhysicalDeviceDisplayProperties2KHR(
11196 VkPhysicalDevice physicalDevice,
11197 u32* pPropertyCount,
11198 VkDisplayProperties2KHR* pProperties) {
11199 return ?
11200}
11201
11202@extension("VK_KHR_display_properties2") // 122
11203cmd VkResult vkGetPhysicalDeviceDisplayPlaneProperties2KHR(
11204 VkPhysicalDevice physicalDevice,
11205 u32* pPropertyCount,
11206 VkDisplayPlaneProperties2KHR* pProperties) {
11207 return ?
11208}
11209
11210@extension("VK_KHR_display_properties2") // 122
11211cmd VkResult vkGetDisplayModeProperties2KHR(
11212 VkPhysicalDevice physicalDevice,
11213 VkDisplayKHR display,
11214 u32* pPropertyCount,
11215 VkDisplayModeProperties2KHR* pProperties) {
11216 return ?
11217}
11218
11219@extension("VK_KHR_display_properties2") // 122
11220cmd VkResult vkGetDisplayPlaneCapabilities2KHR(
11221 VkPhysicalDevice physicalDevice,
11222 const VkDisplayPlaneInfo2KHR* pDisplayPlaneInfo,
11223 VkDisplayPlaneCapabilities2KHR* pCapabilities) {
11224 return ?
11225}
11226
Jesse Hallad250842017-03-10 18:35:38 -080011227@extension("VK_MVK_ios_surface") // 123
11228cmd VkResult vkCreateIOSSurfaceMVK(
11229 VkInstance instance,
11230 const VkIOSSurfaceCreateInfoMVK* pCreateInfo,
11231 const VkAllocationCallbacks* pAllocator,
11232 VkSurfaceKHR* pSurface) {
11233 return ?
11234}
11235
11236@extension("VK_MVK_macos_surface") // 124
11237cmd VkResult vkCreateMacOSSurfaceMVK(
11238 VkInstance instance,
11239 const VkMacOSSurfaceCreateInfoMVK* pCreateInfo,
11240 const VkAllocationCallbacks* pAllocator,
11241 VkSurfaceKHR* pSurface) {
11242 return ?
11243}
11244
Jesse Hall8c954d32018-01-17 22:06:20 -080011245@extension("VK_EXT_debug_utils") // 129
11246@external type void* PFN_vkDebugUtilsMessengerCallbackEXT
11247@extension("VK_EXT_debug_utils") // 129
11248@pfn cmd VkBool32 vkDebugUtilsMessengerCallbackEXT(
11249 VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity,
11250 VkDebugUtilsMessageTypeFlagsEXT messageType,
11251 const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData,
11252 void* pUserData) {
11253 return ?
11254}
11255
11256@extension("VK_EXT_debug_utils") // 129
11257cmd VkResult vkSetDebugUtilsObjectNameEXT(
11258 VkDevice device,
11259 const VkDebugUtilsObjectNameInfoEXT* pNameInfo) {
11260 return ?
11261}
Jesse Hall72e6a132018-04-06 13:00:44 -070011262
Jesse Hall8c954d32018-01-17 22:06:20 -080011263@extension("VK_EXT_debug_utils") // 129
11264cmd VkResult vkSetDebugUtilsObjectTagEXT(
11265 VkDevice device,
11266 const VkDebugUtilsObjectTagInfoEXT* pTagInfo) {
11267 return ?
11268}
Jesse Hall72e6a132018-04-06 13:00:44 -070011269
Jesse Hall8c954d32018-01-17 22:06:20 -080011270@extension("VK_EXT_debug_utils") // 129
11271cmd void vkQueueBeginDebugUtilsLabelEXT(
11272 VkQueue queue,
11273 const VkDebugUtilsLabelEXT* pLabelInfo) {
11274}
Jesse Hall72e6a132018-04-06 13:00:44 -070011275
Jesse Hall8c954d32018-01-17 22:06:20 -080011276@extension("VK_EXT_debug_utils") // 129
11277cmd void vkQueueEndDebugUtilsLabelEXT(VkQueue queue) {
11278}
Jesse Hall72e6a132018-04-06 13:00:44 -070011279
Jesse Hall8c954d32018-01-17 22:06:20 -080011280@extension("VK_EXT_debug_utils") // 129
11281cmd void vkQueueInsertDebugUtilsLabelEXT(
11282 VkQueue queue,
11283 const VkDebugUtilsLabelEXT* pLabelInfo) {
11284}
Jesse Hall72e6a132018-04-06 13:00:44 -070011285
Jesse Hall8c954d32018-01-17 22:06:20 -080011286@extension("VK_EXT_debug_utils") // 129
11287cmd void vkCmdBeginDebugUtilsLabelEXT(
11288 VkCommandBuffer commandBuffer,
11289 const VkDebugUtilsLabelEXT* pLabelInfo) {
11290}
Jesse Hall72e6a132018-04-06 13:00:44 -070011291
Jesse Hall8c954d32018-01-17 22:06:20 -080011292@extension("VK_EXT_debug_utils") // 129
11293cmd void vkCmdEndDebugUtilsLabelEXT(VkCommandBuffer commandBuffer) {
11294}
11295
11296@extension("VK_EXT_debug_utils") // 129
11297cmd void vkCmdInsertDebugUtilsLabelEXT(
11298 VkCommandBuffer commandBuffer,
11299 const VkDebugUtilsLabelEXT* pLabelInfo) {
11300}
11301
11302@extension("VK_EXT_debug_utils") // 129
11303cmd VkResult vkCreateDebugUtilsMessengerEXT(
11304 VkInstance instance,
11305 const VkDebugUtilsMessengerCreateInfoEXT* pCreateInfo,
11306 const VkAllocationCallbacks* pAllocator,
11307 VkDebugUtilsMessengerEXT* pMessenger) {
11308 return ?
11309}
11310
11311@extension("VK_EXT_debug_utils") // 129
11312cmd void vkDestroyDebugUtilsMessengerEXT(
11313 VkInstance instance,
11314 VkDebugUtilsMessengerEXT messenger,
11315 const VkAllocationCallbacks* pAllocator) {
11316}
11317
11318@extension("VK_EXT_debug_utils") // 129
11319cmd void vkSubmitDebugUtilsMessageEXT(
11320 VkInstance instance,
11321 VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity,
11322 VkDebugUtilsMessageTypeFlagsEXT messageTypes,
11323 const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData) {
11324}
11325
Jesse Hall36215a92018-01-18 15:04:37 -080011326@extension("VK_ANDROID_external_memory_android_hardware_buffer") // 130
11327@vulkan1_1 // extension requires 1.1, and should become non-optional when 1.1 does
11328cmd VkResult vkGetAndroidHardwareBufferPropertiesANDROID(
11329 VkDevice device,
11330 const platform.AHardwareBuffer* buffer,
11331 VkAndroidHardwareBufferPropertiesANDROID* pProperties) {
11332 return ?
11333}
11334
11335@extension("VK_ANDROID_external_memory_android_hardware_buffer") // 130
11336@vulkan1_1 // extension requires 1.1, and should become non-optional when 1.1 does
11337cmd VkResult vkGetMemoryAndroidHardwareBufferANDROID(
11338 VkDevice device,
11339 const VkMemoryGetAndroidHardwareBufferInfoANDROID* pInfo,
11340 platform.AHardwareBuffer** pBuffer) {
11341 return ?
11342}
11343
Jesse Hall77726222017-09-19 14:49:27 -050011344@extension("VK_EXT_sample_locations") // 144
11345cmd void vkCmdSetSampleLocationsEXT(
11346 VkCommandBuffer commandBuffer,
11347 const VkSampleLocationsInfoEXT* pSampleLocationsInfo) {
11348}
11349
11350@extension("VK_EXT_sample_locations") // 144
11351cmd void vkGetPhysicalDeviceMultisamplePropertiesEXT(
11352 VkPhysicalDevice physicalDevice,
11353 VkSampleCountFlagBits samples,
11354 VkMultisamplePropertiesEXT* pMultisampleProperties) {
11355}
11356
Jesse Hall9492f992017-08-28 12:10:06 -070011357@extension("VK_KHR_get_memory_requirements2") // 147
11358cmd void vkGetImageMemoryRequirements2KHR(
11359 VkDevice device,
11360 const VkImageMemoryRequirementsInfo2KHR* pInfo,
11361 VkMemoryRequirements2KHR* pMemoryRequirements) {
11362}
11363
11364@extension("VK_KHR_get_memory_requirements2") // 147
11365cmd void vkGetBufferMemoryRequirements2KHR(
11366 VkDevice device,
11367 const VkBufferMemoryRequirementsInfo2KHR* pInfo,
11368 VkMemoryRequirements2KHR* pMemoryRequirements) {
11369}
11370
11371@extension("VK_KHR_get_memory_requirements2") // 147
11372cmd void vkGetImageSparseMemoryRequirements2KHR(
11373 VkDevice device,
11374 const VkImageSparseMemoryRequirementsInfo2KHR* pInfo,
11375 u32* pSparseMemoryRequirementCount,
11376 VkSparseImageMemoryRequirements2KHR* pSparseMemoryRequirements) {
11377}
11378
Jesse Hall076f95d2017-09-20 11:34:47 -070011379@extension("VK_KHR_sampler_ycbcr_conversion") // 157
11380cmd VkResult vkCreateSamplerYcbcrConversionKHR(
11381 VkDevice device,
11382 const VkSamplerYcbcrConversionCreateInfoKHR* pCreateInfo,
11383 const VkAllocationCallbacks* pAllocator,
11384 VkSamplerYcbcrConversionKHR* pYcbcrConversion) {
11385 return ?
11386}
11387
11388@extension("VK_KHR_sampler_ycbcr_conversion") // 157
11389cmd void vkDestroySamplerYcbcrConversionKHR(
11390 VkDevice device,
11391 VkSamplerYcbcrConversionKHR ycbcrConversion,
11392 const VkAllocationCallbacks* pAllocator) {
11393}
11394
11395@extension("VK_KHR_bind_memory2") // 158
11396cmd VkResult vkBindBufferMemory2KHR(
11397 VkDevice device,
11398 u32 bindInfoCount,
11399 const VkBindBufferMemoryInfoKHR* pBindInfos) {
11400 return ?
11401}
11402
11403@extension("VK_KHR_bind_memory2") // 158
11404cmd VkResult vkBindImageMemory2KHR(
11405 VkDevice device,
11406 u32 bindInfoCount,
11407 const VkBindImageMemoryInfoKHR* pBindInfos) {
11408 return ?
11409}
11410
Jesse Hallf47e8f82018-10-27 23:41:45 -070011411@extension("VK_EXT_image_drm_format_modifier") // 159
11412cmd VkResult vkGetImageDrmFormatModifierPropertiesEXT(
11413 VkDevice device,
11414 VkImage image,
11415 VkImageDrmFormatModifierPropertiesEXT* pProperties) {
11416 return ?
11417}
11418
Jesse Hall77726222017-09-19 14:49:27 -050011419@extension("VK_EXT_validation_cache") // 161
11420cmd VkResult vkCreateValidationCacheEXT(
11421 VkDevice device,
11422 const VkValidationCacheCreateInfoEXT* pCreateInfo,
11423 const VkAllocationCallbacks* pAllocator,
11424 VkValidationCacheEXT* pValidationCache) {
11425 return ?
11426}
11427
11428@extension("VK_EXT_validation_cache") // 161
11429cmd void vkDestroyValidationCacheEXT(
11430 VkDevice device,
11431 VkValidationCacheEXT validationCache,
11432 const VkAllocationCallbacks* pAllocator) {
11433}
11434
11435@extension("VK_EXT_validation_cache") // 161
11436cmd VkResult vkMergeValidationCachesEXT(
11437 VkDevice device,
11438 VkValidationCacheEXT dstCache,
11439 u32 srcCacheCount,
11440 const VkValidationCacheEXT* pSrcCaches) {
11441 return ?
11442}
11443
11444@extension("VK_EXT_validation_cache") // 161
11445cmd VkResult vkGetValidationCacheDataEXT(
11446 VkDevice device,
11447 VkValidationCacheEXT validationCache,
11448 platform.size_t* pDataSize,
11449 void* pData) {
11450 return ?
11451}
11452
Jesse Hallb5297192018-09-22 20:52:13 +020011453@extension("VK_NV_shading_rate_image") // 165
11454cmd void vkCmdBindShadingRateImageNV(
11455 VkCommandBuffer commandBuffer,
11456 VkImageView imageView,
11457 VkImageLayout imageLayout) {
11458}
11459
11460@extension("VK_NV_shading_rate_image") // 165
11461cmd void vkCmdSetViewportShadingRatePaletteNV(
11462 VkCommandBuffer commandBuffer,
11463 u32 firstViewport,
11464 u32 viewportCount,
11465 const VkShadingRatePaletteNV* pShadingRatePalettes) {
11466}
11467
11468@extension("VK_NV_shading_rate_image") // 165
11469cmd void vkCmdSetCoarseSampleOrderNV(
11470 VkCommandBuffer commandBuffer,
11471 VkCoarseSampleOrderTypeNV sampleOrderType,
11472 u32 customSampleOrderCount,
11473 const VkCoarseSampleOrderCustomNV* pCustomSampleOrders) {
11474}
11475
Jesse Halla363a8e2018-11-05 21:18:00 -070011476@extension("VK_NV_raytracing") // 166
11477cmd VkResult vkCreateAccelerationStructureNV(
Jesse Hallb5297192018-09-22 20:52:13 +020011478 VkDevice device,
Jesse Halla363a8e2018-11-05 21:18:00 -070011479 const VkAccelerationStructureCreateInfoNV* pCreateInfo,
Jesse Hallb5297192018-09-22 20:52:13 +020011480 const VkAllocationCallbacks* pAllocator,
Jesse Halla363a8e2018-11-05 21:18:00 -070011481 VkAccelerationStructureNV* pAccelerationStructure) {
Jesse Hallb5297192018-09-22 20:52:13 +020011482 return ?
11483}
11484
Jesse Halla363a8e2018-11-05 21:18:00 -070011485@extension("VK_NV_raytracing") // 166
11486cmd void vkDestroyAccelerationStructureNV(
Jesse Hallb5297192018-09-22 20:52:13 +020011487 VkDevice device,
Jesse Halla363a8e2018-11-05 21:18:00 -070011488 VkAccelerationStructureNV accelerationStructure,
Jesse Hallb5297192018-09-22 20:52:13 +020011489 const VkAllocationCallbacks* pAllocator) {
11490}
11491
Jesse Halla363a8e2018-11-05 21:18:00 -070011492@extension("VK_NV_raytracing") // 166
11493cmd void vkGetAccelerationStructureMemoryRequirementsNV(
Jesse Hallb5297192018-09-22 20:52:13 +020011494 VkDevice device,
Jesse Halla363a8e2018-11-05 21:18:00 -070011495 const VkAccelerationStructureMemoryRequirementsInfoNV* pInfo,
Jesse Hallb5297192018-09-22 20:52:13 +020011496 VkMemoryRequirements2KHR* pMemoryRequirements) {
11497}
11498
Jesse Halla363a8e2018-11-05 21:18:00 -070011499@extension("VK_NV_raytracing") // 166
11500cmd VkResult vkBindAccelerationStructureMemoryNV(
Jesse Hallb5297192018-09-22 20:52:13 +020011501 VkDevice device,
11502 u32 bindInfoCount,
Jesse Halla363a8e2018-11-05 21:18:00 -070011503 const VkBindAccelerationStructureMemoryInfoNV* pBindInfos) {
Jesse Hallb5297192018-09-22 20:52:13 +020011504 return ?
11505}
11506
Jesse Halla363a8e2018-11-05 21:18:00 -070011507@extension("VK_NV_raytracing") // 166
11508cmd void vkCmdBuildAccelerationStructureNV(
Jesse Hall2e6853c2018-10-02 14:05:37 -070011509 VkCommandBuffer commandBuffer,
Jesse Halla363a8e2018-11-05 21:18:00 -070011510 const VkAccelerationStructureInfoNV* pInfo,
Jesse Hall2e6853c2018-10-02 14:05:37 -070011511 VkBuffer instanceData,
11512 VkDeviceSize instanceOffset,
Jesse Hall2e6853c2018-10-02 14:05:37 -070011513 VkBool32 update,
Jesse Halla363a8e2018-11-05 21:18:00 -070011514 VkAccelerationStructureNV dst,
11515 VkAccelerationStructureNV src,
Jesse Hall2e6853c2018-10-02 14:05:37 -070011516 VkBuffer scratch,
11517 VkDeviceSize scratchOffset) {
Jesse Hallb5297192018-09-22 20:52:13 +020011518}
11519
Jesse Halla363a8e2018-11-05 21:18:00 -070011520@extension("VK_NV_raytracing") // 166
11521cmd void vkCmdCopyAccelerationStructureNV(
Jesse Hall2e6853c2018-10-02 14:05:37 -070011522 VkCommandBuffer commandBuffer,
Jesse Halla363a8e2018-11-05 21:18:00 -070011523 VkAccelerationStructureNV dst,
11524 VkAccelerationStructureNV src,
11525 VkCopyAccelerationStructureModeNV mode) {
Jesse Hallb5297192018-09-22 20:52:13 +020011526}
11527
Jesse Halla363a8e2018-11-05 21:18:00 -070011528@extension("VK_NV_raytracing") // 166
11529cmd void vkCmdTraceRaysNV(
Jesse Hall2e6853c2018-10-02 14:05:37 -070011530 VkCommandBuffer commandBuffer,
11531 VkBuffer raygenShaderBindingTableBuffer,
11532 VkDeviceSize raygenShaderBindingOffset,
11533 VkBuffer missShaderBindingTableBuffer,
11534 VkDeviceSize missShaderBindingOffset,
11535 VkDeviceSize missShaderBindingStride,
11536 VkBuffer hitShaderBindingTableBuffer,
11537 VkDeviceSize hitShaderBindingOffset,
11538 VkDeviceSize hitShaderBindingStride,
Jesse Halla363a8e2018-11-05 21:18:00 -070011539 VkBuffer callableShaderBindingTableBuffer,
11540 VkDeviceSize callableShaderBindingOffset,
11541 VkDeviceSize callableShaderBindingStride,
Jesse Hall2e6853c2018-10-02 14:05:37 -070011542 u32 width,
Jesse Halla363a8e2018-11-05 21:18:00 -070011543 u32 height,
11544 u32 depth) {
Jesse Hallb5297192018-09-22 20:52:13 +020011545}
11546
Jesse Halla363a8e2018-11-05 21:18:00 -070011547@extension("VK_NV_raytracing") // 166
11548cmd VkResult vkCreateRaytracingPipelinesNV(
Jesse Hallb5297192018-09-22 20:52:13 +020011549 VkDevice device,
11550 VkPipelineCache pipelineCache,
11551 u32 createInfoCount,
Jesse Halla363a8e2018-11-05 21:18:00 -070011552 const VkRayTracingPipelineCreateInfoNV* pCreateInfos,
Jesse Hallb5297192018-09-22 20:52:13 +020011553 const VkAllocationCallbacks* pAllocator,
11554 VkPipeline* pPipelines) {
11555 return ?
11556}
11557
Jesse Halla363a8e2018-11-05 21:18:00 -070011558@extension("VK_NV_raytracing") // 166
11559cmd VkResult vkGetRaytracingShaderHandlesNV(
Jesse Hall2e6853c2018-10-02 14:05:37 -070011560 VkDevice device,
11561 VkPipeline pipeline,
11562 u32 firstGroup,
11563 u32 groupCount,
11564 platform.size_t dataSize,
11565 void* pData) {
Jesse Hallb5297192018-09-22 20:52:13 +020011566 return ?
11567}
11568
Jesse Halla363a8e2018-11-05 21:18:00 -070011569@extension("VK_NV_raytracing") // 166
11570cmd VkResult vkGetAccelerationStructureHandleNV(
Jesse Hall2e6853c2018-10-02 14:05:37 -070011571 VkDevice device,
Jesse Halla363a8e2018-11-05 21:18:00 -070011572 VkAccelerationStructureNV accelerationStructure,
Jesse Hall2e6853c2018-10-02 14:05:37 -070011573 platform.size_t dataSize,
11574 void* pData) {
Jesse Hallb5297192018-09-22 20:52:13 +020011575 return ?
11576}
11577
Jesse Halla363a8e2018-11-05 21:18:00 -070011578@extension("VK_NV_raytracing") // 166
11579cmd void vkCmdWriteAccelerationStructurePropertiesNV(
Jesse Hall2e6853c2018-10-02 14:05:37 -070011580 VkCommandBuffer commandBuffer,
Jesse Halla363a8e2018-11-05 21:18:00 -070011581 u32 accelerationStructureCount,
11582 const VkAccelerationStructureNV* pAccelerationStructures,
Jesse Hall2e6853c2018-10-02 14:05:37 -070011583 VkQueryType queryType,
11584 VkQueryPool queryPool,
Jesse Halla363a8e2018-11-05 21:18:00 -070011585 u32 firstQuery) {
Jesse Hallb5297192018-09-22 20:52:13 +020011586}
11587
Jesse Halla363a8e2018-11-05 21:18:00 -070011588@extension("VK_NV_raytracing") // 166
11589cmd VkResult vkCompileDeferredNV(
Jesse Hall2e6853c2018-10-02 14:05:37 -070011590 VkDevice device,
11591 VkPipeline pipeline,
11592 u32 shader) {
Jesse Hallb5297192018-09-22 20:52:13 +020011593 return ?
11594}
11595
Daniel Koch09f7bf92017-10-05 00:26:58 -040011596@extension("VK_KHR_maintenance3") // 169
11597cmd void vkGetDescriptorSetLayoutSupportKHR(
11598 VkDevice device,
11599 const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
11600 VkDescriptorSetLayoutSupportKHR* pSupport) {
11601}
11602
Jesse Hall54f8d132018-04-18 08:16:59 -070011603@extension("VK_KHR_draw_indirect_count") // 170
11604cmd void vkCmdDrawIndirectCountKHR(
11605 VkCommandBuffer commandBuffer,
11606 VkBuffer buffer,
11607 VkDeviceSize offset,
11608 VkBuffer countBuffer,
11609 VkDeviceSize countBufferOffset,
11610 u32 maxDrawCount,
11611 u32 stride) {
11612}
11613
11614@extension("VK_KHR_draw_indirect_count") // 170
11615cmd void vkCmdDrawIndexedIndirectCountKHR(
11616 VkCommandBuffer commandBuffer,
11617 VkBuffer buffer,
11618 VkDeviceSize offset,
11619 VkBuffer countBuffer,
11620 VkDeviceSize countBufferOffset,
11621 u32 maxDrawCount,
11622 u32 stride) {
11623}
11624
Jesse Hall8c954d32018-01-17 22:06:20 -080011625@extension("VK_EXT_external_memory_host") // 179
11626cmd VkResult vkGetMemoryHostPointerPropertiesEXT(
11627 VkDevice device,
11628 VkExternalMemoryHandleTypeFlagBits handleType,
11629 const void* pHostPointer,
11630 VkMemoryHostPointerPropertiesEXT* pMemoryHostPointerProperties) {
11631 return ?
11632}
11633
Jesse Hall72e6a132018-04-06 13:00:44 -070011634@extension("VK_AMD_buffer_marker") // 180
11635cmd void vkCmdWriteBufferMarkerAMD(
11636 VkCommandBuffer commandBuffer,
11637 VkPipelineStageFlagBits pipelineStage,
11638 VkBuffer dstBuffer,
11639 VkDeviceSize dstOffset,
11640 u32 marker) {
11641}
11642
Jesse Hallf47e8f82018-10-27 23:41:45 -070011643@extension("VK_EXT_calibrated_timestamps") // 185
11644cmd VkResult vkGetPhysicalDeviceCalibrateableTimeDomainsEXT(
11645 VkPhysicalDevice physicalDevice,
11646 u32* pTimeDomainCount,
11647 VkTimeDomainEXT* pTimeDomains) {
11648 return ?
11649}
11650
11651@extension("VK_EXT_calibrated_timestamps") // 185
11652cmd VkResult vkGetCalibratedTimestampsEXT(
11653 VkDevice device,
11654 u32 timestampCount,
11655 const VkCalibratedTimestampInfoEXT* pTimestampInfos,
11656 u64* pTimestamps,
11657 u64* pMaxDeviation) {
11658 return ?
11659}
11660
Jesse Hallb5297192018-09-22 20:52:13 +020011661@extension("VK_NV_mesh_shader") // 203
11662cmd void vkCmdDrawMeshTasksNV(
11663 VkCommandBuffer commandBuffer,
11664 u32 taskCount,
11665 u32 firstTask) {
11666}
11667
11668@extension("VK_NV_mesh_shader") // 203
11669cmd void vkCmdDrawMeshTasksIndirectNV(
11670 VkCommandBuffer commandBuffer,
11671 VkBuffer buffer,
11672 VkDeviceSize offset,
11673 u32 drawCount,
11674 u32 stride) {
11675}
11676
11677@extension("VK_NV_mesh_shader") // 203
11678cmd void vkCmdDrawMeshTasksIndirectCountNV(
11679 VkCommandBuffer commandBuffer,
11680 VkBuffer buffer,
11681 VkDeviceSize offset,
11682 VkBuffer countBuffer,
11683 VkDeviceSize countBufferOffset,
11684 u32 maxDrawCount,
11685 u32 stride) {
11686}
11687
11688@extension("VK_NV_scissor_exclusive") // 206
11689cmd void vkCmdSetExclusiveScissorNV(
11690 VkCommandBuffer commandBuffer,
11691 u32 firstExclusiveScissor,
11692 u32 exclusiveScissorCount,
11693 const VkRect2D* pExclusiveScissors) {
11694}
11695
Jesse Hall115df0c2018-07-30 12:00:59 -070011696@extension("VK_NV_device_diagnostic_checkpoints") // 207
11697cmd void vkCmdSetCheckpointNV(
11698 VkCommandBuffer commandBuffer,
11699 const void* pCheckpointMarker) {
11700}
11701
11702@extension("VK_NV_device_diagnostic_checkpoints") // 207
11703cmd void vkGetQueueCheckpointDataNV(
11704 VkQueue queue,
11705 u32* pCheckpointDataCount,
11706 VkCheckpointDataNV* pCheckpointData) {
11707}
11708
Jesse Hall497c46f2018-10-08 12:52:48 -070011709@extension("VK_FUCHSIA_imagepipe_surface") // 215
11710cmd VkResult vkCreateImagePipeSurfaceFUCHSIA(
11711 VkInstance instance,
11712 const VkImagePipeSurfaceCreateInfoFUCHSIA* pCreateInfo,
11713 const VkAllocationCallbacks* pAllocator,
11714 VkSurfaceKHR* pSurface) {
11715 return ?
11716}
11717
Jesse Hall115df0c2018-07-30 12:00:59 -070011718
Jesse Halld27f6aa2015-08-15 17:58:48 -070011719////////////////
11720// Validation //
11721////////////////
11722
11723extern void validate(string layerName, bool condition, string message)
11724
11725
11726/////////////////////////////
11727// Internal State Tracking //
11728/////////////////////////////
11729
11730StateObject State
11731
11732@internal class StateObject {
11733 // Dispatchable objects.
11734 map!(VkInstance, ref!InstanceObject) Instances
11735 map!(VkPhysicalDevice, ref!PhysicalDeviceObject) PhysicalDevices
11736 map!(VkDevice, ref!DeviceObject) Devices
11737 map!(VkQueue, ref!QueueObject) Queues
Jesse Hall3fbc8562015-11-29 22:10:52 -080011738 map!(VkCommandBuffer, ref!CommandBufferObject) CommandBuffers
Jesse Halld27f6aa2015-08-15 17:58:48 -070011739
11740 // Non-dispatchable objects.
11741 map!(VkDeviceMemory, ref!DeviceMemoryObject) DeviceMemories
11742 map!(VkBuffer, ref!BufferObject) Buffers
11743 map!(VkBufferView, ref!BufferViewObject) BufferViews
11744 map!(VkImage, ref!ImageObject) Images
11745 map!(VkImageView, ref!ImageViewObject) ImageViews
Jesse Halld27f6aa2015-08-15 17:58:48 -070011746 map!(VkShaderModule, ref!ShaderModuleObject) ShaderModules
Jesse Halld27f6aa2015-08-15 17:58:48 -070011747 map!(VkPipeline, ref!PipelineObject) Pipelines
11748 map!(VkPipelineLayout, ref!PipelineLayoutObject) PipelineLayouts
11749 map!(VkSampler, ref!SamplerObject) Samplers
11750 map!(VkDescriptorSet, ref!DescriptorSetObject) DescriptorSets
11751 map!(VkDescriptorSetLayout, ref!DescriptorSetLayoutObject) DescriptorSetLayouts
11752 map!(VkDescriptorPool, ref!DescriptorPoolObject) DescriptorPools
Jesse Halld27f6aa2015-08-15 17:58:48 -070011753 map!(VkFence, ref!FenceObject) Fences
11754 map!(VkSemaphore, ref!SemaphoreObject) Semaphores
11755 map!(VkEvent, ref!EventObject) Events
11756 map!(VkQueryPool, ref!QueryPoolObject) QueryPools
11757 map!(VkFramebuffer, ref!FramebufferObject) Framebuffers
11758 map!(VkRenderPass, ref!RenderPassObject) RenderPasses
11759 map!(VkPipelineCache, ref!PipelineCacheObject) PipelineCaches
Jesse Hall3fbc8562015-11-29 22:10:52 -080011760 map!(VkCommandPool, ref!CommandPoolObject) CommandPools
Jesse Hall1356b0d2015-11-23 17:24:58 -080011761 map!(VkSurfaceKHR, ref!SurfaceObject) Surfaces
Michael Lentine88594d72015-11-12 12:49:45 -080011762 map!(VkSwapchainKHR, ref!SwapchainObject) Swapchains
Jesse Halld27f6aa2015-08-15 17:58:48 -070011763}
11764
11765@internal class InstanceObject {
11766}
11767
11768@internal class PhysicalDeviceObject {
11769 VkInstance instance
11770}
11771
11772@internal class DeviceObject {
11773 VkPhysicalDevice physicalDevice
11774}
11775
11776@internal class QueueObject {
11777 VkDevice device
11778 VkQueueFlags flags
11779}
11780
Jesse Hall3fbc8562015-11-29 22:10:52 -080011781@internal class CommandBufferObject {
Jesse Halld27f6aa2015-08-15 17:58:48 -070011782 VkDevice device
11783 map!(u64, VkDeviceMemory) boundObjects
11784 VkQueueFlags queueFlags
11785}
11786
11787@internal class DeviceMemoryObject {
Jesse Hall3fbc8562015-11-29 22:10:52 -080011788 VkDevice device
11789 VkDeviceSize allocationSize
11790 map!(u64, VkDeviceSize) boundObjects
11791 map!(VkCommandBuffer, VkCommandBuffer) boundCommandBuffers
Jesse Halld27f6aa2015-08-15 17:58:48 -070011792}
11793
11794@internal class BufferObject {
11795 VkDevice device
Jesse Hall3fbc8562015-11-29 22:10:52 -080011796 VkDeviceMemory memory
11797 VkDeviceSize memoryOffset
Jesse Halld27f6aa2015-08-15 17:58:48 -070011798}
11799
11800@internal class BufferViewObject {
11801 VkDevice device
11802 VkBuffer buffer
11803}
11804
11805@internal class ImageObject {
11806 VkDevice device
Jesse Hall3fbc8562015-11-29 22:10:52 -080011807 VkDeviceMemory memory
11808 VkDeviceSize memoryOffset
Jesse Halld27f6aa2015-08-15 17:58:48 -070011809}
11810
11811@internal class ImageViewObject {
11812 VkDevice device
11813 VkImage image
11814}
11815
Jesse Halld27f6aa2015-08-15 17:58:48 -070011816@internal class ShaderObject {
11817 VkDevice device
11818}
11819
11820@internal class ShaderModuleObject {
11821 VkDevice device
11822}
11823
11824@internal class PipelineObject {
11825 VkDevice device
11826}
11827
11828@internal class PipelineLayoutObject {
11829 VkDevice device
11830}
11831
11832@internal class SamplerObject {
11833 VkDevice device
11834}
11835
11836@internal class DescriptorSetObject {
11837 VkDevice device
11838}
11839
11840@internal class DescriptorSetLayoutObject {
11841 VkDevice device
11842}
11843
11844@internal class DescriptorPoolObject {
11845 VkDevice device
11846}
11847
Jesse Halld27f6aa2015-08-15 17:58:48 -070011848@internal class FenceObject {
11849 VkDevice device
11850 bool signaled
11851}
11852
11853@internal class SemaphoreObject {
11854 VkDevice device
11855}
11856
11857@internal class EventObject {
11858 VkDevice device
11859}
11860
11861@internal class QueryPoolObject {
11862 VkDevice device
11863}
11864
11865@internal class FramebufferObject {
11866 VkDevice device
11867}
11868
11869@internal class RenderPassObject {
11870 VkDevice device
11871}
11872
11873@internal class PipelineCacheObject {
11874 VkDevice device
11875}
11876
Jesse Hall3fbc8562015-11-29 22:10:52 -080011877@internal class CommandPoolObject {
Jesse Halld27f6aa2015-08-15 17:58:48 -070011878 VkDevice device
11879}
11880
Jesse Hall1356b0d2015-11-23 17:24:58 -080011881@internal class SurfaceObject {
11882 VkInstance instance
11883}
11884
Michael Lentine88594d72015-11-12 12:49:45 -080011885@internal class SwapchainObject {
11886 VkDevice device
11887}
11888
Jesse Halld27f6aa2015-08-15 17:58:48 -070011889macro ref!InstanceObject GetInstance(VkInstance instance) {
11890 assert(instance in State.Instances)
11891 return State.Instances[instance]
11892}
11893
11894macro ref!PhysicalDeviceObject GetPhysicalDevice(VkPhysicalDevice physicalDevice) {
11895 assert(physicalDevice in State.PhysicalDevices)
11896 return State.PhysicalDevices[physicalDevice]
11897}
11898
11899macro ref!DeviceObject GetDevice(VkDevice device) {
11900 assert(device in State.Devices)
11901 return State.Devices[device]
11902}
11903
11904macro ref!QueueObject GetQueue(VkQueue queue) {
11905 assert(queue in State.Queues)
11906 return State.Queues[queue]
11907}
11908
Jesse Hall3fbc8562015-11-29 22:10:52 -080011909macro ref!CommandBufferObject GetCommandBuffer(VkCommandBuffer commandBuffer) {
11910 assert(commandBuffer in State.CommandBuffers)
11911 return State.CommandBuffers[commandBuffer]
Jesse Halld27f6aa2015-08-15 17:58:48 -070011912}
11913
Jesse Hall3fbc8562015-11-29 22:10:52 -080011914macro ref!DeviceMemoryObject GetDeviceMemory(VkDeviceMemory memory) {
11915 assert(memory in State.DeviceMemories)
11916 return State.DeviceMemories[memory]
Jesse Halld27f6aa2015-08-15 17:58:48 -070011917}
11918
11919macro ref!BufferObject GetBuffer(VkBuffer buffer) {
11920 assert(buffer in State.Buffers)
11921 return State.Buffers[buffer]
11922}
11923
11924macro ref!BufferViewObject GetBufferView(VkBufferView bufferView) {
11925 assert(bufferView in State.BufferViews)
11926 return State.BufferViews[bufferView]
11927}
11928
11929macro ref!ImageObject GetImage(VkImage image) {
11930 assert(image in State.Images)
11931 return State.Images[image]
11932}
11933
11934macro ref!ImageViewObject GetImageView(VkImageView imageView) {
11935 assert(imageView in State.ImageViews)
11936 return State.ImageViews[imageView]
11937}
11938
Jesse Halld27f6aa2015-08-15 17:58:48 -070011939macro ref!ShaderModuleObject GetShaderModule(VkShaderModule shaderModule) {
11940 assert(shaderModule in State.ShaderModules)
11941 return State.ShaderModules[shaderModule]
11942}
11943
11944macro ref!PipelineObject GetPipeline(VkPipeline pipeline) {
11945 assert(pipeline in State.Pipelines)
11946 return State.Pipelines[pipeline]
11947}
11948
11949macro ref!PipelineLayoutObject GetPipelineLayout(VkPipelineLayout pipelineLayout) {
11950 assert(pipelineLayout in State.PipelineLayouts)
11951 return State.PipelineLayouts[pipelineLayout]
11952}
11953
11954macro ref!SamplerObject GetSampler(VkSampler sampler) {
11955 assert(sampler in State.Samplers)
11956 return State.Samplers[sampler]
11957}
11958
11959macro ref!DescriptorSetObject GetDescriptorSet(VkDescriptorSet descriptorSet) {
11960 assert(descriptorSet in State.DescriptorSets)
11961 return State.DescriptorSets[descriptorSet]
11962}
11963
11964macro ref!DescriptorSetLayoutObject GetDescriptorSetLayout(VkDescriptorSetLayout descriptorSetLayout) {
11965 assert(descriptorSetLayout in State.DescriptorSetLayouts)
11966 return State.DescriptorSetLayouts[descriptorSetLayout]
11967}
11968
11969macro ref!DescriptorPoolObject GetDescriptorPool(VkDescriptorPool descriptorPool) {
11970 assert(descriptorPool in State.DescriptorPools)
11971 return State.DescriptorPools[descriptorPool]
11972}
11973
Jesse Halld27f6aa2015-08-15 17:58:48 -070011974macro ref!FenceObject GetFence(VkFence fence) {
11975 assert(fence in State.Fences)
11976 return State.Fences[fence]
11977}
11978
11979macro ref!SemaphoreObject GetSemaphore(VkSemaphore semaphore) {
11980 assert(semaphore in State.Semaphores)
11981 return State.Semaphores[semaphore]
11982}
11983
11984macro ref!EventObject GetEvent(VkEvent event) {
11985 assert(event in State.Events)
11986 return State.Events[event]
11987}
11988
11989macro ref!QueryPoolObject GetQueryPool(VkQueryPool queryPool) {
11990 assert(queryPool in State.QueryPools)
11991 return State.QueryPools[queryPool]
11992}
11993
11994macro ref!FramebufferObject GetFramebuffer(VkFramebuffer framebuffer) {
11995 assert(framebuffer in State.Framebuffers)
11996 return State.Framebuffers[framebuffer]
11997}
11998
11999macro ref!RenderPassObject GetRenderPass(VkRenderPass renderPass) {
12000 assert(renderPass in State.RenderPasses)
12001 return State.RenderPasses[renderPass]
12002}
12003
12004macro ref!PipelineCacheObject GetPipelineCache(VkPipelineCache pipelineCache) {
12005 assert(pipelineCache in State.PipelineCaches)
12006 return State.PipelineCaches[pipelineCache]
12007}
12008
Jesse Hall3fbc8562015-11-29 22:10:52 -080012009macro ref!CommandPoolObject GetCommandPool(VkCommandPool commandPool) {
12010 assert(commandPool in State.CommandPools)
12011 return State.CommandPools[commandPool]
Jesse Hallf09c6b12015-08-15 19:54:28 -070012012}
Michael Lentine88594d72015-11-12 12:49:45 -080012013
Jesse Hall1356b0d2015-11-23 17:24:58 -080012014macro ref!SurfaceObject GetSurface(VkSurfaceKHR surface) {
12015 assert(surface in State.Surfaces)
12016 return State.Surfaces[surface]
12017}
12018
Michael Lentine88594d72015-11-12 12:49:45 -080012019macro ref!SwapchainObject GetSwapchain(VkSwapchainKHR swapchain) {
12020 assert(swapchain in State.Swapchains)
12021 return State.Swapchains[swapchain]
12022}
Jesse Halld8bade02015-11-24 10:24:18 -080012023
12024macro VkQueueFlags AddQueueFlag(VkQueueFlags flags, VkQueueFlagBits bit) {
12025 return as!VkQueueFlags(as!u32(flags) | as!u32(bit))
12026}