blob: e4c50d533f44f6bb77a19879a5d907ea84f1cf77 [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 Hall89bde782018-11-12 08:06:07 -080031define VERSION_PATCH 93
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 Hall89bde782018-11-12 08:06:07 -0800618// 222
619@extension("VK_EXT_scalar_block_layout") define VK_EXT_SCALAR_BLOCK_LAYOUT_SPEC_VERSION 1
620@extension("VK_EXT_scalar_block_layout") define VK_EXT_SCALAR_BLOCK_LAYOUT_EXTENSION_NAME "VK_EXT_scalar_block_layout"
621
Jesse Hallf47e8f82018-10-27 23:41:45 -0700622// 224
623@extension("VK_GOOGLE_hlsl_functionality1") define VK_GOOGLE_HLSL_FUNCTIONALITY1_SPEC_VERSION 0
624@extension("VK_GOOGLE_hlsl_functionality1") define VK_GOOGLE_HLSL_FUNCTIONALITY1_EXTENSION_NAME "VK_GOOGLE_hlsl_functionality1"
625
626// 225
627@extension("VK_GOOGLE_decorate_string") define VK_GOOGLE_DECORATE_STRING_SPEC_VERSION 0
628@extension("VK_GOOGLE_decorate_string") define VK_GOOGLE_DECORATE_STRING_EXTENSION_NAME "VK_GOOGLE_decorate_string"
629
Jesse Hall89bde782018-11-12 08:06:07 -0800630// 247
631@extension("VK_EXT_separate_stencil_usage") define VK_EXT_SEPARATE_STENCIL_USAGE_SPEC_VERSION 1
632@extension("VK_EXT_separate_stencil_usage") define VK_EXT_SEPARATE_STENCIL_USAGE_EXTENSION_NAME "VK_EXT_separate_stencil_usage"
633
Jesse Halld27f6aa2015-08-15 17:58:48 -0700634/////////////
635// Types //
636/////////////
637
Jesse Hall5ae3abb2015-10-08 14:00:22 -0700638type u32 VkBool32
639type u32 VkFlags
640type u64 VkDeviceSize
641type u32 VkSampleMask
642
Jesse Halld27f6aa2015-08-15 17:58:48 -0700643/// Dispatchable handle types.
644@dispatchHandle type u64 VkInstance
645@dispatchHandle type u64 VkPhysicalDevice
646@dispatchHandle type u64 VkDevice
647@dispatchHandle type u64 VkQueue
Jesse Hall3fbc8562015-11-29 22:10:52 -0800648@dispatchHandle type u64 VkCommandBuffer
Jesse Halld27f6aa2015-08-15 17:58:48 -0700649
650/// Non dispatchable handle types.
651@nonDispatchHandle type u64 VkDeviceMemory
Jesse Hall3fbc8562015-11-29 22:10:52 -0800652@nonDispatchHandle type u64 VkCommandPool
Jesse Halld27f6aa2015-08-15 17:58:48 -0700653@nonDispatchHandle type u64 VkBuffer
654@nonDispatchHandle type u64 VkBufferView
655@nonDispatchHandle type u64 VkImage
656@nonDispatchHandle type u64 VkImageView
Jesse Halld27f6aa2015-08-15 17:58:48 -0700657@nonDispatchHandle type u64 VkShaderModule
Jesse Halld27f6aa2015-08-15 17:58:48 -0700658@nonDispatchHandle type u64 VkPipeline
659@nonDispatchHandle type u64 VkPipelineLayout
660@nonDispatchHandle type u64 VkSampler
661@nonDispatchHandle type u64 VkDescriptorSet
662@nonDispatchHandle type u64 VkDescriptorSetLayout
663@nonDispatchHandle type u64 VkDescriptorPool
Jesse Halld27f6aa2015-08-15 17:58:48 -0700664@nonDispatchHandle type u64 VkFence
665@nonDispatchHandle type u64 VkSemaphore
666@nonDispatchHandle type u64 VkEvent
667@nonDispatchHandle type u64 VkQueryPool
668@nonDispatchHandle type u64 VkFramebuffer
669@nonDispatchHandle type u64 VkRenderPass
670@nonDispatchHandle type u64 VkPipelineCache
Jesse Hall1356b0d2015-11-23 17:24:58 -0800671
Ian Elliott28bd2c32017-10-13 09:21:12 -0600672@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -0400673@nonDispatchHandle type u64 VkSamplerYcbcrConversion
674@nonDispatchHandle type u64 VkDescriptorUpdateTemplate
675
Jesse Hallad250842017-03-10 18:35:38 -0800676// 1
Jesse Hall3e0dc8f2015-11-30 00:42:57 -0800677@extension("VK_KHR_surface") @nonDispatchHandle type u64 VkSurfaceKHR
Jesse Hall1356b0d2015-11-23 17:24:58 -0800678
Jesse Hallad250842017-03-10 18:35:38 -0800679// 2
Jesse Hall3e0dc8f2015-11-30 00:42:57 -0800680@extension("VK_KHR_swapchain") @nonDispatchHandle type u64 VkSwapchainKHR
Jesse Hall1356b0d2015-11-23 17:24:58 -0800681
Jesse Hallad250842017-03-10 18:35:38 -0800682// 3
Jesse Hall3e0dc8f2015-11-30 00:42:57 -0800683@extension("VK_KHR_display") @nonDispatchHandle type u64 VkDisplayKHR
684@extension("VK_KHR_display") @nonDispatchHandle type u64 VkDisplayModeKHR
Jesse Halld27f6aa2015-08-15 17:58:48 -0700685
Jesse Hallad250842017-03-10 18:35:38 -0800686// 12
Jesse Hall715b86a2016-01-16 16:34:29 -0800687@extension("VK_EXT_debug_report") @nonDispatchHandle type u64 VkDebugReportCallbackEXT
688
Jesse Hallad250842017-03-10 18:35:38 -0800689// 86
690@extension("VK_KHR_descriptor_update_template") @nonDispatchHandle type u64 VkDescriptorUpdateTemplateKHR
691
692// 87
Chris Forbes289cb792016-12-30 15:03:55 +1300693@extension("VK_NVX_device_generated_commands") @nonDispatchHandle type u64 VkObjectTableNVX
694@extension("VK_NVX_device_generated_commands") @nonDispatchHandle type u64 VkIndirectCommandsLayoutNVX
695
Jesse Hall8c954d32018-01-17 22:06:20 -0800696// 129
697@extension("VK_EXT_debug_utils") @nonDispatchHandle type u64 VkDebugUtilsMessengerEXT
698
Jesse Hall076f95d2017-09-20 11:34:47 -0700699// 157
700@extension("VK_KHR_sampler_ycbcr_conversion") @nonDispatchHandle type u64 VkSamplerYcbcrConversionKHR
701
Jesse Hall77726222017-09-19 14:49:27 -0500702// 161
703@extension("VK_EXT_validation_cache") @nonDispatchHandle type u64 VkValidationCacheEXT
Jesse Halld27f6aa2015-08-15 17:58:48 -0700704
Jesse Hallb5297192018-09-22 20:52:13 +0200705// 166
Jesse Halla363a8e2018-11-05 21:18:00 -0700706@extension("VK_NV_raytracing") @nonDispatchHandle type u64 VkAccelerationStructureNV
Jesse Hallb5297192018-09-22 20:52:13 +0200707
Jesse Halld27f6aa2015-08-15 17:58:48 -0700708/////////////
709// Enums //
710/////////////
711
712enum VkImageLayout {
713 VK_IMAGE_LAYOUT_UNDEFINED = 0x00000000, /// Implicit layout an image is when its contents are undefined due to various reasons (e.g. right after creation)
714 VK_IMAGE_LAYOUT_GENERAL = 0x00000001, /// General layout when image can be used for any kind of access
715 VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL = 0x00000002, /// Optimal layout when image is only used for color attachment read/write
716 VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL = 0x00000003, /// Optimal layout when image is only used for depth/stencil attachment read/write
717 VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL = 0x00000004, /// Optimal layout when image is used for read only depth/stencil attachment and shader access
718 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 -0800719 VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL = 0x00000006, /// Optimal layout when image is used only as source of transfer operations
720 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 -0700721 VK_IMAGE_LAYOUT_PREINITIALIZED = 0x00000008, /// Initial layout used when the data is populated by the CPU
Jesse Hall1356b0d2015-11-23 17:24:58 -0800722
Ian Elliott28bd2c32017-10-13 09:21:12 -0600723 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -0400724 VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL = 1000117000,
725 VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL = 1000117001,
726
Jesse Hallad250842017-03-10 18:35:38 -0800727 //@extension("VK_KHR_swapchain") // 2
Jesse Hallbd888842015-11-30 21:44:14 -0800728 VK_IMAGE_LAYOUT_PRESENT_SRC_KHR = 1000001002,
Chris Forbesaf3a1112017-01-31 15:37:03 +1300729
Jesse Hall05556b12017-05-18 17:40:25 -0700730 //@extension("VK_KHR_shared_presentable_image") // 112
Chris Forbesaf3a1112017-01-31 15:37:03 +1300731 VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR = 1000111000,
Jesse Hall076f95d2017-09-20 11:34:47 -0700732
733 //@extension("VK_KHR_maintenance2") // 118
734 VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL_KHR = 1000117000,
735 VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL_KHR = 1000117001,
Jesse Hallb5297192018-09-22 20:52:13 +0200736
737 //@extension("VK_NV_shading_rate_image") // 165
738 VK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV = 1000164003,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700739}
740
741enum VkAttachmentLoadOp {
742 VK_ATTACHMENT_LOAD_OP_LOAD = 0x00000000,
743 VK_ATTACHMENT_LOAD_OP_CLEAR = 0x00000001,
744 VK_ATTACHMENT_LOAD_OP_DONT_CARE = 0x00000002,
745}
746
747enum VkAttachmentStoreOp {
748 VK_ATTACHMENT_STORE_OP_STORE = 0x00000000,
749 VK_ATTACHMENT_STORE_OP_DONT_CARE = 0x00000001,
750}
751
752enum VkImageType {
753 VK_IMAGE_TYPE_1D = 0x00000000,
754 VK_IMAGE_TYPE_2D = 0x00000001,
755 VK_IMAGE_TYPE_3D = 0x00000002,
756}
757
758enum VkImageTiling {
Jesse Hallc7467b72015-11-29 21:05:26 -0800759 VK_IMAGE_TILING_OPTIMAL = 0x00000000,
760 VK_IMAGE_TILING_LINEAR = 0x00000001,
Jesse Hallf47e8f82018-10-27 23:41:45 -0700761
762 //@extension("VK_EXT_image_drm_format_modifier") // 159
763 VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT = 1000158000,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700764}
765
766enum VkImageViewType {
767 VK_IMAGE_VIEW_TYPE_1D = 0x00000000,
768 VK_IMAGE_VIEW_TYPE_2D = 0x00000001,
769 VK_IMAGE_VIEW_TYPE_3D = 0x00000002,
770 VK_IMAGE_VIEW_TYPE_CUBE = 0x00000003,
771 VK_IMAGE_VIEW_TYPE_1D_ARRAY = 0x00000004,
772 VK_IMAGE_VIEW_TYPE_2D_ARRAY = 0x00000005,
773 VK_IMAGE_VIEW_TYPE_CUBE_ARRAY = 0x00000006,
774}
775
Jesse Hall3fbc8562015-11-29 22:10:52 -0800776enum VkCommandBufferLevel {
777 VK_COMMAND_BUFFER_LEVEL_PRIMARY = 0x00000000,
778 VK_COMMAND_BUFFER_LEVEL_SECONDARY = 0x00000001,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700779}
780
Jesse Hall65ab5522015-11-30 00:07:16 -0800781enum VkComponentSwizzle {
782 VK_COMPONENT_SWIZZLE_IDENTITY = 0x00000000,
783 VK_COMPONENT_SWIZZLE_ZERO = 0x00000001,
784 VK_COMPONENT_SWIZZLE_ONE = 0x00000002,
785 VK_COMPONENT_SWIZZLE_R = 0x00000003,
786 VK_COMPONENT_SWIZZLE_G = 0x00000004,
787 VK_COMPONENT_SWIZZLE_B = 0x00000005,
788 VK_COMPONENT_SWIZZLE_A = 0x00000006,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700789}
790
791enum VkDescriptorType {
792 VK_DESCRIPTOR_TYPE_SAMPLER = 0x00000000,
793 VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER = 0x00000001,
794 VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE = 0x00000002,
795 VK_DESCRIPTOR_TYPE_STORAGE_IMAGE = 0x00000003,
796 VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER = 0x00000004,
797 VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER = 0x00000005,
798 VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER = 0x00000006,
799 VK_DESCRIPTOR_TYPE_STORAGE_BUFFER = 0x00000007,
800 VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC = 0x00000008,
801 VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC = 0x00000009,
802 VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT = 0x0000000a,
Jesse Hall4af6c462018-09-10 09:04:25 -0700803
804 //@extension("VK_EXT_inline_uniform_block") // 139
805 VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT = 1000138000,
Jesse Hallb5297192018-09-22 20:52:13 +0200806
Jesse Halla363a8e2018-11-05 21:18:00 -0700807 //@extension("VK_NV_raytracing") // 166
808 VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV = 1000165000,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700809}
810
Jesse Halld27f6aa2015-08-15 17:58:48 -0700811enum VkQueryType {
812 VK_QUERY_TYPE_OCCLUSION = 0x00000000,
813 VK_QUERY_TYPE_PIPELINE_STATISTICS = 0x00000001, /// Optional
Jesse Halla3a7a1d2015-11-24 11:37:23 -0800814 VK_QUERY_TYPE_TIMESTAMP = 0x00000002,
Jesse Hallb5297192018-09-22 20:52:13 +0200815
Jesse Hallf47e8f82018-10-27 23:41:45 -0700816 //@extension("VK_EXT_transform_feedback") // 29
817 VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT = 1000028004,
818
Jesse Halla363a8e2018-11-05 21:18:00 -0700819 //@extension("VK_NV_raytracing") // 166
820 VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV = 1000165000,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700821}
822
Jesse Halld27f6aa2015-08-15 17:58:48 -0700823enum VkBorderColor {
824 VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK = 0x00000000,
825 VK_BORDER_COLOR_INT_TRANSPARENT_BLACK = 0x00000001,
826 VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK = 0x00000002,
827 VK_BORDER_COLOR_INT_OPAQUE_BLACK = 0x00000003,
828 VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE = 0x00000004,
829 VK_BORDER_COLOR_INT_OPAQUE_WHITE = 0x00000005,
830}
831
832enum VkPipelineBindPoint {
Jesse Hallc7467b72015-11-29 21:05:26 -0800833 VK_PIPELINE_BIND_POINT_GRAPHICS = 0x00000000,
834 VK_PIPELINE_BIND_POINT_COMPUTE = 0x00000001,
Jesse Hallb5297192018-09-22 20:52:13 +0200835
Jesse Halla363a8e2018-11-05 21:18:00 -0700836 //@extension("VK_NV_raytracing") // 166
837 VK_PIPELINE_BIND_POINT_RAY_TRACING_NV = 1000165000,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700838}
839
840enum VkPrimitiveTopology {
841 VK_PRIMITIVE_TOPOLOGY_POINT_LIST = 0x00000000,
842 VK_PRIMITIVE_TOPOLOGY_LINE_LIST = 0x00000001,
843 VK_PRIMITIVE_TOPOLOGY_LINE_STRIP = 0x00000002,
844 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST = 0x00000003,
845 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP = 0x00000004,
846 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN = 0x00000005,
Jesse Hall3fbc8562015-11-29 22:10:52 -0800847 VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY = 0x00000006,
848 VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY = 0x00000007,
849 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY = 0x00000008,
850 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY = 0x00000009,
Jesse Hall091ed9e2015-11-30 00:55:29 -0800851 VK_PRIMITIVE_TOPOLOGY_PATCH_LIST = 0x0000000a,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700852}
853
854enum VkSharingMode {
855 VK_SHARING_MODE_EXCLUSIVE = 0x00000000,
856 VK_SHARING_MODE_CONCURRENT = 0x00000001,
857}
858
859enum VkIndexType {
860 VK_INDEX_TYPE_UINT16 = 0x00000000,
861 VK_INDEX_TYPE_UINT32 = 0x00000001,
Jesse Halla363a8e2018-11-05 21:18:00 -0700862
863 //@extension("VK_NV_raytracing") // 166
864 VK_INDEX_TYPE_NONE_NV = 1000165000,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700865}
866
Jesse Hall23ff73f2015-11-29 14:36:39 -0800867enum VkFilter {
868 VK_FILTER_NEAREST = 0x00000000,
869 VK_FILTER_LINEAR = 0x00000001,
Jesse Hall26763382016-05-20 07:13:52 -0700870
Jesse Hallad250842017-03-10 18:35:38 -0800871 //@extension("VK_IMG_filter_cubic") // 16
Jesse Hall26763382016-05-20 07:13:52 -0700872 VK_FILTER_CUBIC_IMG = 1000015000,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700873}
874
Jesse Hall23ff73f2015-11-29 14:36:39 -0800875enum VkSamplerMipmapMode {
Jesse Hall23ff73f2015-11-29 14:36:39 -0800876 VK_SAMPLER_MIPMAP_MODE_NEAREST = 0x00000001, /// Choose nearest mip level
877 VK_SAMPLER_MIPMAP_MODE_LINEAR = 0x00000002, /// Linear filter between mip levels
Jesse Halld27f6aa2015-08-15 17:58:48 -0700878}
879
Jesse Hall23ff73f2015-11-29 14:36:39 -0800880enum VkSamplerAddressMode {
Jesse Hallc7467b72015-11-29 21:05:26 -0800881 VK_SAMPLER_ADDRESS_MODE_REPEAT = 0x00000000,
882 VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT = 0x00000001,
883 VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE = 0x00000002,
884 VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER = 0x00000003,
885 VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE = 0x00000004,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700886}
887
888enum VkCompareOp {
889 VK_COMPARE_OP_NEVER = 0x00000000,
890 VK_COMPARE_OP_LESS = 0x00000001,
891 VK_COMPARE_OP_EQUAL = 0x00000002,
Jesse Hall3fbc8562015-11-29 22:10:52 -0800892 VK_COMPARE_OP_LESS_OR_EQUAL = 0x00000003,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700893 VK_COMPARE_OP_GREATER = 0x00000004,
894 VK_COMPARE_OP_NOT_EQUAL = 0x00000005,
Jesse Hall3fbc8562015-11-29 22:10:52 -0800895 VK_COMPARE_OP_GREATER_OR_EQUAL = 0x00000006,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700896 VK_COMPARE_OP_ALWAYS = 0x00000007,
897}
898
Jesse Hall65ab5522015-11-30 00:07:16 -0800899enum VkPolygonMode {
900 VK_POLYGON_MODE_FILL = 0x00000000,
901 VK_POLYGON_MODE_LINE = 0x00000001,
902 VK_POLYGON_MODE_POINT = 0x00000002,
Jesse Hall7ba0ac72017-07-07 17:13:23 -0700903
904 //@extension("VK_NV_fill_rectangle") // 154
905 VK_POLYGON_MODE_FILL_RECTANGLE_NV = 1000153000,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700906}
907
908enum VkFrontFace {
Jesse Hall3fbc8562015-11-29 22:10:52 -0800909 VK_FRONT_FACE_COUNTER_CLOCKWISE = 0x00000000,
910 VK_FRONT_FACE_CLOCKWISE = 0x00000001,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700911}
912
Jesse Hall65ab5522015-11-30 00:07:16 -0800913enum VkBlendFactor {
914 VK_BLEND_FACTOR_ZERO = 0x00000000,
915 VK_BLEND_FACTOR_ONE = 0x00000001,
916 VK_BLEND_FACTOR_SRC_COLOR = 0x00000002,
917 VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR = 0x00000003,
918 VK_BLEND_FACTOR_DST_COLOR = 0x00000004,
919 VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR = 0x00000005,
920 VK_BLEND_FACTOR_SRC_ALPHA = 0x00000006,
921 VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA = 0x00000007,
922 VK_BLEND_FACTOR_DST_ALPHA = 0x00000008,
923 VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA = 0x00000009,
924 VK_BLEND_FACTOR_CONSTANT_COLOR = 0x0000000a,
925 VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR = 0x0000000b,
926 VK_BLEND_FACTOR_CONSTANT_ALPHA = 0x0000000c,
927 VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA = 0x0000000d,
928 VK_BLEND_FACTOR_SRC_ALPHA_SATURATE = 0x0000000e,
929 VK_BLEND_FACTOR_SRC1_COLOR = 0x0000000f,
930 VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR = 0x00000010,
931 VK_BLEND_FACTOR_SRC1_ALPHA = 0x00000011,
932 VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA = 0x00000012,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700933}
934
935enum VkBlendOp {
936 VK_BLEND_OP_ADD = 0x00000000,
937 VK_BLEND_OP_SUBTRACT = 0x00000001,
938 VK_BLEND_OP_REVERSE_SUBTRACT = 0x00000002,
939 VK_BLEND_OP_MIN = 0x00000003,
940 VK_BLEND_OP_MAX = 0x00000004,
Jesse Hall7ba0ac72017-07-07 17:13:23 -0700941
942 //@extension("VK_EXT_blend_operation_advanced") // 149
943 VK_BLEND_OP_ZERO_EXT = 1000148000,
944 VK_BLEND_OP_SRC_EXT = 1000148001,
945 VK_BLEND_OP_DST_EXT = 1000148002,
946 VK_BLEND_OP_SRC_OVER_EXT = 1000148003,
947 VK_BLEND_OP_DST_OVER_EXT = 1000148004,
948 VK_BLEND_OP_SRC_IN_EXT = 1000148005,
949 VK_BLEND_OP_DST_IN_EXT = 1000148006,
950 VK_BLEND_OP_SRC_OUT_EXT = 1000148007,
951 VK_BLEND_OP_DST_OUT_EXT = 1000148008,
952 VK_BLEND_OP_SRC_ATOP_EXT = 1000148009,
953 VK_BLEND_OP_DST_ATOP_EXT = 1000148010,
954 VK_BLEND_OP_XOR_EXT = 1000148011,
955 VK_BLEND_OP_MULTIPLY_EXT = 1000148012,
956 VK_BLEND_OP_SCREEN_EXT = 1000148013,
957 VK_BLEND_OP_OVERLAY_EXT = 1000148014,
958 VK_BLEND_OP_DARKEN_EXT = 1000148015,
959 VK_BLEND_OP_LIGHTEN_EXT = 1000148016,
960 VK_BLEND_OP_COLORDODGE_EXT = 1000148017,
961 VK_BLEND_OP_COLORBURN_EXT = 1000148018,
962 VK_BLEND_OP_HARDLIGHT_EXT = 1000148019,
963 VK_BLEND_OP_SOFTLIGHT_EXT = 1000148020,
964 VK_BLEND_OP_DIFFERENCE_EXT = 1000148021,
965 VK_BLEND_OP_EXCLUSION_EXT = 1000148022,
966 VK_BLEND_OP_INVERT_EXT = 1000148023,
967 VK_BLEND_OP_INVERT_RGB_EXT = 1000148024,
968 VK_BLEND_OP_LINEARDODGE_EXT = 1000148025,
969 VK_BLEND_OP_LINEARBURN_EXT = 1000148026,
970 VK_BLEND_OP_VIVIDLIGHT_EXT = 1000148027,
971 VK_BLEND_OP_LINEARLIGHT_EXT = 1000148028,
972 VK_BLEND_OP_PINLIGHT_EXT = 1000148029,
973 VK_BLEND_OP_HARDMIX_EXT = 1000148030,
974 VK_BLEND_OP_HSL_HUE_EXT = 1000148031,
975 VK_BLEND_OP_HSL_SATURATION_EXT = 1000148032,
976 VK_BLEND_OP_HSL_COLOR_EXT = 1000148033,
977 VK_BLEND_OP_HSL_LUMINOSITY_EXT = 1000148034,
978 VK_BLEND_OP_PLUS_EXT = 1000148035,
979 VK_BLEND_OP_PLUS_CLAMPED_EXT = 1000148036,
980 VK_BLEND_OP_PLUS_CLAMPED_ALPHA_EXT = 1000148037,
981 VK_BLEND_OP_PLUS_DARKER_EXT = 1000148038,
982 VK_BLEND_OP_MINUS_EXT = 1000148039,
983 VK_BLEND_OP_MINUS_CLAMPED_EXT = 1000148040,
984 VK_BLEND_OP_CONTRAST_EXT = 1000148041,
985 VK_BLEND_OP_INVERT_OVG_EXT = 1000148042,
986 VK_BLEND_OP_RED_EXT = 1000148043,
987 VK_BLEND_OP_GREEN_EXT = 1000148044,
988 VK_BLEND_OP_BLUE_EXT = 1000148045,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700989}
990
991enum VkStencilOp {
992 VK_STENCIL_OP_KEEP = 0x00000000,
993 VK_STENCIL_OP_ZERO = 0x00000001,
994 VK_STENCIL_OP_REPLACE = 0x00000002,
Jesse Hall3fbc8562015-11-29 22:10:52 -0800995 VK_STENCIL_OP_INCREMENT_AND_CLAMP = 0x00000003,
996 VK_STENCIL_OP_DECREMENT_AND_CLAMP = 0x00000004,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700997 VK_STENCIL_OP_INVERT = 0x00000005,
Jesse Hall3fbc8562015-11-29 22:10:52 -0800998 VK_STENCIL_OP_INCREMENT_AND_WRAP = 0x00000006,
999 VK_STENCIL_OP_DECREMENT_AND_WRAP = 0x00000007,
Jesse Halld27f6aa2015-08-15 17:58:48 -07001000}
1001
1002enum VkLogicOp {
1003 VK_LOGIC_OP_CLEAR = 0x00000000,
1004 VK_LOGIC_OP_AND = 0x00000001,
1005 VK_LOGIC_OP_AND_REVERSE = 0x00000002,
1006 VK_LOGIC_OP_COPY = 0x00000003,
1007 VK_LOGIC_OP_AND_INVERTED = 0x00000004,
Jesse Hall3fbc8562015-11-29 22:10:52 -08001008 VK_LOGIC_OP_NO_OP = 0x00000005,
Jesse Halld27f6aa2015-08-15 17:58:48 -07001009 VK_LOGIC_OP_XOR = 0x00000006,
1010 VK_LOGIC_OP_OR = 0x00000007,
1011 VK_LOGIC_OP_NOR = 0x00000008,
Jesse Hall3fbc8562015-11-29 22:10:52 -08001012 VK_LOGIC_OP_EQUIVALENT = 0x00000009,
Jesse Halld27f6aa2015-08-15 17:58:48 -07001013 VK_LOGIC_OP_INVERT = 0x0000000a,
1014 VK_LOGIC_OP_OR_REVERSE = 0x0000000b,
1015 VK_LOGIC_OP_COPY_INVERTED = 0x0000000c,
1016 VK_LOGIC_OP_OR_INVERTED = 0x0000000d,
1017 VK_LOGIC_OP_NAND = 0x0000000e,
1018 VK_LOGIC_OP_SET = 0x0000000f,
1019}
1020
Jesse Hall3fbc8562015-11-29 22:10:52 -08001021enum VkSystemAllocationScope {
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08001022 VK_SYSTEM_ALLOCATION_SCOPE_COMMAND = 0x00000000,
Jesse Hall3fbc8562015-11-29 22:10:52 -08001023 VK_SYSTEM_ALLOCATION_SCOPE_OBJECT = 0x00000001,
1024 VK_SYSTEM_ALLOCATION_SCOPE_CACHE = 0x00000002,
1025 VK_SYSTEM_ALLOCATION_SCOPE_DEVICE = 0x00000003,
1026 VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE = 0x00000004,
Jesse Hall03b6fe12015-11-24 12:44:21 -08001027}
1028
Jesse Hall3fbc8562015-11-29 22:10:52 -08001029enum VkInternalAllocationType {
1030 VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE = 0x00000000,
Jesse Halld27f6aa2015-08-15 17:58:48 -07001031}
1032
1033enum VkPhysicalDeviceType {
1034 VK_PHYSICAL_DEVICE_TYPE_OTHER = 0x00000000,
1035 VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU = 0x00000001,
1036 VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU = 0x00000002,
1037 VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU = 0x00000003,
1038 VK_PHYSICAL_DEVICE_TYPE_CPU = 0x00000004,
1039}
1040
Jesse Hall65ab5522015-11-30 00:07:16 -08001041enum VkVertexInputRate {
1042 VK_VERTEX_INPUT_RATE_VERTEX = 0x00000000,
1043 VK_VERTEX_INPUT_RATE_INSTANCE = 0x00000001,
Jesse Halld27f6aa2015-08-15 17:58:48 -07001044}
1045
1046/// Vulkan format definitions
1047enum VkFormat {
Jesse Hallf4ab2b12015-11-30 16:04:55 -08001048 VK_FORMAT_UNDEFINED = 0,
1049 VK_FORMAT_R4G4_UNORM_PACK8 = 1,
1050 VK_FORMAT_R4G4B4A4_UNORM_PACK16 = 2,
1051 VK_FORMAT_B4G4R4A4_UNORM_PACK16 = 3,
1052 VK_FORMAT_R5G6B5_UNORM_PACK16 = 4,
1053 VK_FORMAT_B5G6R5_UNORM_PACK16 = 5,
1054 VK_FORMAT_R5G5B5A1_UNORM_PACK16 = 6,
1055 VK_FORMAT_B5G5R5A1_UNORM_PACK16 = 7,
1056 VK_FORMAT_A1R5G5B5_UNORM_PACK16 = 8,
1057 VK_FORMAT_R8_UNORM = 9,
1058 VK_FORMAT_R8_SNORM = 10,
1059 VK_FORMAT_R8_USCALED = 11,
1060 VK_FORMAT_R8_SSCALED = 12,
1061 VK_FORMAT_R8_UINT = 13,
1062 VK_FORMAT_R8_SINT = 14,
1063 VK_FORMAT_R8_SRGB = 15,
1064 VK_FORMAT_R8G8_UNORM = 16,
1065 VK_FORMAT_R8G8_SNORM = 17,
1066 VK_FORMAT_R8G8_USCALED = 18,
1067 VK_FORMAT_R8G8_SSCALED = 19,
1068 VK_FORMAT_R8G8_UINT = 20,
1069 VK_FORMAT_R8G8_SINT = 21,
1070 VK_FORMAT_R8G8_SRGB = 22,
1071 VK_FORMAT_R8G8B8_UNORM = 23,
1072 VK_FORMAT_R8G8B8_SNORM = 24,
1073 VK_FORMAT_R8G8B8_USCALED = 25,
1074 VK_FORMAT_R8G8B8_SSCALED = 26,
1075 VK_FORMAT_R8G8B8_UINT = 27,
1076 VK_FORMAT_R8G8B8_SINT = 28,
1077 VK_FORMAT_R8G8B8_SRGB = 29,
1078 VK_FORMAT_B8G8R8_UNORM = 30,
1079 VK_FORMAT_B8G8R8_SNORM = 31,
1080 VK_FORMAT_B8G8R8_USCALED = 32,
1081 VK_FORMAT_B8G8R8_SSCALED = 33,
1082 VK_FORMAT_B8G8R8_UINT = 34,
1083 VK_FORMAT_B8G8R8_SINT = 35,
1084 VK_FORMAT_B8G8R8_SRGB = 36,
1085 VK_FORMAT_R8G8B8A8_UNORM = 37,
1086 VK_FORMAT_R8G8B8A8_SNORM = 38,
1087 VK_FORMAT_R8G8B8A8_USCALED = 39,
1088 VK_FORMAT_R8G8B8A8_SSCALED = 40,
1089 VK_FORMAT_R8G8B8A8_UINT = 41,
1090 VK_FORMAT_R8G8B8A8_SINT = 42,
1091 VK_FORMAT_R8G8B8A8_SRGB = 43,
1092 VK_FORMAT_B8G8R8A8_UNORM = 44,
1093 VK_FORMAT_B8G8R8A8_SNORM = 45,
1094 VK_FORMAT_B8G8R8A8_USCALED = 46,
1095 VK_FORMAT_B8G8R8A8_SSCALED = 47,
1096 VK_FORMAT_B8G8R8A8_UINT = 48,
1097 VK_FORMAT_B8G8R8A8_SINT = 49,
1098 VK_FORMAT_B8G8R8A8_SRGB = 50,
1099 VK_FORMAT_A8B8G8R8_UNORM_PACK32 = 51,
1100 VK_FORMAT_A8B8G8R8_SNORM_PACK32 = 52,
1101 VK_FORMAT_A8B8G8R8_USCALED_PACK32 = 53,
1102 VK_FORMAT_A8B8G8R8_SSCALED_PACK32 = 54,
1103 VK_FORMAT_A8B8G8R8_UINT_PACK32 = 55,
1104 VK_FORMAT_A8B8G8R8_SINT_PACK32 = 56,
1105 VK_FORMAT_A8B8G8R8_SRGB_PACK32 = 57,
1106 VK_FORMAT_A2R10G10B10_UNORM_PACK32 = 58,
1107 VK_FORMAT_A2R10G10B10_SNORM_PACK32 = 59,
1108 VK_FORMAT_A2R10G10B10_USCALED_PACK32 = 60,
1109 VK_FORMAT_A2R10G10B10_SSCALED_PACK32 = 61,
1110 VK_FORMAT_A2R10G10B10_UINT_PACK32 = 62,
1111 VK_FORMAT_A2R10G10B10_SINT_PACK32 = 63,
1112 VK_FORMAT_A2B10G10R10_UNORM_PACK32 = 64,
1113 VK_FORMAT_A2B10G10R10_SNORM_PACK32 = 65,
1114 VK_FORMAT_A2B10G10R10_USCALED_PACK32 = 66,
1115 VK_FORMAT_A2B10G10R10_SSCALED_PACK32 = 67,
1116 VK_FORMAT_A2B10G10R10_UINT_PACK32 = 68,
1117 VK_FORMAT_A2B10G10R10_SINT_PACK32 = 69,
1118 VK_FORMAT_R16_UNORM = 70,
1119 VK_FORMAT_R16_SNORM = 71,
1120 VK_FORMAT_R16_USCALED = 72,
1121 VK_FORMAT_R16_SSCALED = 73,
1122 VK_FORMAT_R16_UINT = 74,
1123 VK_FORMAT_R16_SINT = 75,
1124 VK_FORMAT_R16_SFLOAT = 76,
1125 VK_FORMAT_R16G16_UNORM = 77,
1126 VK_FORMAT_R16G16_SNORM = 78,
1127 VK_FORMAT_R16G16_USCALED = 79,
1128 VK_FORMAT_R16G16_SSCALED = 80,
1129 VK_FORMAT_R16G16_UINT = 81,
1130 VK_FORMAT_R16G16_SINT = 82,
1131 VK_FORMAT_R16G16_SFLOAT = 83,
1132 VK_FORMAT_R16G16B16_UNORM = 84,
1133 VK_FORMAT_R16G16B16_SNORM = 85,
1134 VK_FORMAT_R16G16B16_USCALED = 86,
1135 VK_FORMAT_R16G16B16_SSCALED = 87,
1136 VK_FORMAT_R16G16B16_UINT = 88,
1137 VK_FORMAT_R16G16B16_SINT = 89,
1138 VK_FORMAT_R16G16B16_SFLOAT = 90,
1139 VK_FORMAT_R16G16B16A16_UNORM = 91,
1140 VK_FORMAT_R16G16B16A16_SNORM = 92,
1141 VK_FORMAT_R16G16B16A16_USCALED = 93,
1142 VK_FORMAT_R16G16B16A16_SSCALED = 94,
1143 VK_FORMAT_R16G16B16A16_UINT = 95,
1144 VK_FORMAT_R16G16B16A16_SINT = 96,
1145 VK_FORMAT_R16G16B16A16_SFLOAT = 97,
1146 VK_FORMAT_R32_UINT = 98,
1147 VK_FORMAT_R32_SINT = 99,
1148 VK_FORMAT_R32_SFLOAT = 100,
1149 VK_FORMAT_R32G32_UINT = 101,
1150 VK_FORMAT_R32G32_SINT = 102,
1151 VK_FORMAT_R32G32_SFLOAT = 103,
1152 VK_FORMAT_R32G32B32_UINT = 104,
1153 VK_FORMAT_R32G32B32_SINT = 105,
1154 VK_FORMAT_R32G32B32_SFLOAT = 106,
1155 VK_FORMAT_R32G32B32A32_UINT = 107,
1156 VK_FORMAT_R32G32B32A32_SINT = 108,
1157 VK_FORMAT_R32G32B32A32_SFLOAT = 109,
1158 VK_FORMAT_R64_UINT = 110,
1159 VK_FORMAT_R64_SINT = 111,
1160 VK_FORMAT_R64_SFLOAT = 112,
1161 VK_FORMAT_R64G64_UINT = 113,
1162 VK_FORMAT_R64G64_SINT = 114,
1163 VK_FORMAT_R64G64_SFLOAT = 115,
1164 VK_FORMAT_R64G64B64_UINT = 116,
1165 VK_FORMAT_R64G64B64_SINT = 117,
1166 VK_FORMAT_R64G64B64_SFLOAT = 118,
1167 VK_FORMAT_R64G64B64A64_UINT = 119,
1168 VK_FORMAT_R64G64B64A64_SINT = 120,
1169 VK_FORMAT_R64G64B64A64_SFLOAT = 121,
1170 VK_FORMAT_B10G11R11_UFLOAT_PACK32 = 122,
1171 VK_FORMAT_E5B9G9R9_UFLOAT_PACK32 = 123,
1172 VK_FORMAT_D16_UNORM = 124,
1173 VK_FORMAT_X8_D24_UNORM_PACK32 = 125,
1174 VK_FORMAT_D32_SFLOAT = 126,
1175 VK_FORMAT_S8_UINT = 127,
1176 VK_FORMAT_D16_UNORM_S8_UINT = 128,
1177 VK_FORMAT_D24_UNORM_S8_UINT = 129,
1178 VK_FORMAT_D32_SFLOAT_S8_UINT = 130,
1179 VK_FORMAT_BC1_RGB_UNORM_BLOCK = 131,
1180 VK_FORMAT_BC1_RGB_SRGB_BLOCK = 132,
1181 VK_FORMAT_BC1_RGBA_UNORM_BLOCK = 133,
1182 VK_FORMAT_BC1_RGBA_SRGB_BLOCK = 134,
1183 VK_FORMAT_BC2_UNORM_BLOCK = 135,
1184 VK_FORMAT_BC2_SRGB_BLOCK = 136,
1185 VK_FORMAT_BC3_UNORM_BLOCK = 137,
1186 VK_FORMAT_BC3_SRGB_BLOCK = 138,
1187 VK_FORMAT_BC4_UNORM_BLOCK = 139,
1188 VK_FORMAT_BC4_SNORM_BLOCK = 140,
1189 VK_FORMAT_BC5_UNORM_BLOCK = 141,
1190 VK_FORMAT_BC5_SNORM_BLOCK = 142,
1191 VK_FORMAT_BC6H_UFLOAT_BLOCK = 143,
1192 VK_FORMAT_BC6H_SFLOAT_BLOCK = 144,
1193 VK_FORMAT_BC7_UNORM_BLOCK = 145,
1194 VK_FORMAT_BC7_SRGB_BLOCK = 146,
1195 VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK = 147,
1196 VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK = 148,
1197 VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK = 149,
1198 VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK = 150,
1199 VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK = 151,
1200 VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK = 152,
1201 VK_FORMAT_EAC_R11_UNORM_BLOCK = 153,
1202 VK_FORMAT_EAC_R11_SNORM_BLOCK = 154,
1203 VK_FORMAT_EAC_R11G11_UNORM_BLOCK = 155,
1204 VK_FORMAT_EAC_R11G11_SNORM_BLOCK = 156,
1205 VK_FORMAT_ASTC_4x4_UNORM_BLOCK = 157,
1206 VK_FORMAT_ASTC_4x4_SRGB_BLOCK = 158,
1207 VK_FORMAT_ASTC_5x4_UNORM_BLOCK = 159,
1208 VK_FORMAT_ASTC_5x4_SRGB_BLOCK = 160,
1209 VK_FORMAT_ASTC_5x5_UNORM_BLOCK = 161,
1210 VK_FORMAT_ASTC_5x5_SRGB_BLOCK = 162,
1211 VK_FORMAT_ASTC_6x5_UNORM_BLOCK = 163,
1212 VK_FORMAT_ASTC_6x5_SRGB_BLOCK = 164,
1213 VK_FORMAT_ASTC_6x6_UNORM_BLOCK = 165,
1214 VK_FORMAT_ASTC_6x6_SRGB_BLOCK = 166,
1215 VK_FORMAT_ASTC_8x5_UNORM_BLOCK = 167,
1216 VK_FORMAT_ASTC_8x5_SRGB_BLOCK = 168,
1217 VK_FORMAT_ASTC_8x6_UNORM_BLOCK = 169,
1218 VK_FORMAT_ASTC_8x6_SRGB_BLOCK = 170,
1219 VK_FORMAT_ASTC_8x8_UNORM_BLOCK = 171,
1220 VK_FORMAT_ASTC_8x8_SRGB_BLOCK = 172,
1221 VK_FORMAT_ASTC_10x5_UNORM_BLOCK = 173,
1222 VK_FORMAT_ASTC_10x5_SRGB_BLOCK = 174,
1223 VK_FORMAT_ASTC_10x6_UNORM_BLOCK = 175,
1224 VK_FORMAT_ASTC_10x6_SRGB_BLOCK = 176,
1225 VK_FORMAT_ASTC_10x8_UNORM_BLOCK = 177,
1226 VK_FORMAT_ASTC_10x8_SRGB_BLOCK = 178,
1227 VK_FORMAT_ASTC_10x10_UNORM_BLOCK = 179,
1228 VK_FORMAT_ASTC_10x10_SRGB_BLOCK = 180,
1229 VK_FORMAT_ASTC_12x10_UNORM_BLOCK = 181,
1230 VK_FORMAT_ASTC_12x10_SRGB_BLOCK = 182,
1231 VK_FORMAT_ASTC_12x12_UNORM_BLOCK = 183,
1232 VK_FORMAT_ASTC_12x12_SRGB_BLOCK = 184,
Chris Forbes289cb792016-12-30 15:03:55 +13001233
Ian Elliott28bd2c32017-10-13 09:21:12 -06001234 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04001235 VK_FORMAT_G8B8G8R8_422_UNORM = 1000156000,
1236 VK_FORMAT_B8G8R8G8_422_UNORM = 1000156001,
1237 VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM = 1000156002,
1238 VK_FORMAT_G8_B8R8_2PLANE_420_UNORM = 1000156003,
1239 VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM = 1000156004,
1240 VK_FORMAT_G8_B8R8_2PLANE_422_UNORM = 1000156005,
1241 VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM = 1000156006,
1242 VK_FORMAT_R10X6_UNORM_PACK16 = 1000156007,
1243 VK_FORMAT_R10X6G10X6_UNORM_2PACK16 = 1000156008,
1244 VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16 = 1000156009,
1245 VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16 = 1000156010,
1246 VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16 = 1000156011,
1247 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16 = 1000156012,
1248 VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16 = 1000156013,
1249 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16 = 1000156014,
1250 VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16 = 1000156015,
1251 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16 = 1000156016,
1252 VK_FORMAT_R12X4_UNORM_PACK16 = 1000156017,
1253 VK_FORMAT_R12X4G12X4_UNORM_2PACK16 = 1000156018,
1254 VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16 = 1000156019,
1255 VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16 = 1000156020,
1256 VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16 = 1000156021,
1257 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16 = 1000156022,
1258 VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16 = 1000156023,
1259 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16 = 1000156024,
1260 VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16 = 1000156025,
1261 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16 = 1000156026,
1262 VK_FORMAT_G16B16G16R16_422_UNORM = 1000156027,
1263 VK_FORMAT_B16G16R16G16_422_UNORM = 1000156028,
1264 VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM = 1000156029,
1265 VK_FORMAT_G16_B16R16_2PLANE_420_UNORM = 1000156030,
1266 VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM = 1000156031,
1267 VK_FORMAT_G16_B16R16_2PLANE_422_UNORM = 1000156032,
1268 VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM = 1000156033,
1269
Jesse Hallad250842017-03-10 18:35:38 -08001270 //@extension("VK_IMG_format_pvrtc") // 28
Jesse Halleb02c472017-02-24 15:13:45 -08001271 VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG = 1000054000,
1272 VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG = 1000054001,
1273 VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG = 1000054002,
1274 VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG = 1000054003,
1275 VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG = 1000054004,
1276 VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG = 1000054005,
1277 VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG = 1000054006,
1278 VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG = 1000054007,
Jesse Hall076f95d2017-09-20 11:34:47 -07001279
1280 //@extension("VK_KHR_sampler_ycbcr_conversion") // 157
1281 VK_FORMAT_G8B8G8R8_422_UNORM_KHR = 1000156000,
1282 VK_FORMAT_B8G8R8G8_422_UNORM_KHR = 1000156001,
1283 VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM_KHR = 1000156002,
1284 VK_FORMAT_G8_B8R8_2PLANE_420_UNORM_KHR = 1000156003,
1285 VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM_KHR = 1000156004,
1286 VK_FORMAT_G8_B8R8_2PLANE_422_UNORM_KHR = 1000156005,
1287 VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM_KHR = 1000156006,
1288 VK_FORMAT_R10X6_UNORM_PACK16_KHR = 1000156007,
1289 VK_FORMAT_R10X6G10X6_UNORM_2PACK16_KHR = 1000156008,
1290 VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16_KHR = 1000156009,
1291 VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16_KHR = 1000156010,
1292 VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16_KHR = 1000156011,
1293 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16_KHR = 1000156012,
1294 VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16_KHR = 1000156013,
1295 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16_KHR = 1000156014,
1296 VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16_KHR = 1000156015,
1297 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16_KHR = 1000156016,
1298 VK_FORMAT_R12X4_UNORM_PACK16_KHR = 1000156017,
1299 VK_FORMAT_R12X4G12X4_UNORM_2PACK16_KHR = 1000156018,
1300 VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16_KHR = 1000156019,
1301 VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16_KHR = 1000156020,
1302 VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16_KHR = 1000156021,
1303 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16_KHR = 1000156022,
1304 VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16_KHR = 1000156023,
1305 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16_KHR = 1000156024,
1306 VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16_KHR = 1000156025,
1307 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16_KHR = 1000156026,
1308 VK_FORMAT_G16B16G16R16_422_UNORM_KHR = 1000156027,
1309 VK_FORMAT_B16G16R16G16_422_UNORM_KHR = 1000156028,
1310 VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM_KHR = 1000156029,
1311 VK_FORMAT_G16_B16R16_2PLANE_420_UNORM_KHR = 1000156030,
1312 VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM_KHR = 1000156031,
1313 VK_FORMAT_G16_B16R16_2PLANE_422_UNORM_KHR = 1000156032,
1314 VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM_KHR = 1000156033,
Jesse Halld27f6aa2015-08-15 17:58:48 -07001315}
1316
Jesse Halld27f6aa2015-08-15 17:58:48 -07001317/// Structure type enumerant
1318enum VkStructureType {
1319 VK_STRUCTURE_TYPE_APPLICATION_INFO = 0,
Jesse Hallc7467b72015-11-29 21:05:26 -08001320 VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO = 1,
1321 VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO = 2,
1322 VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO = 3,
1323 VK_STRUCTURE_TYPE_SUBMIT_INFO = 4,
Jesse Hallf4ab2b12015-11-30 16:04:55 -08001324 VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO = 5,
Jesse Hallc7467b72015-11-29 21:05:26 -08001325 VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE = 6,
1326 VK_STRUCTURE_TYPE_BIND_SPARSE_INFO = 7,
1327 VK_STRUCTURE_TYPE_FENCE_CREATE_INFO = 8,
1328 VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO = 9,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07001329 VK_STRUCTURE_TYPE_EVENT_CREATE_INFO = 10,
Jesse Hallc7467b72015-11-29 21:05:26 -08001330 VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO = 11,
1331 VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO = 12,
1332 VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO = 13,
1333 VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO = 14,
1334 VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO = 15,
1335 VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO = 16,
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08001336 VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO = 17,
1337 VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO = 18,
1338 VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO = 19,
1339 VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO = 20,
1340 VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO = 21,
1341 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO = 22,
1342 VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO = 23,
1343 VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO = 24,
1344 VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO = 25,
1345 VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO = 26,
1346 VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO = 27,
1347 VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO = 28,
1348 VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO = 29,
1349 VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO = 30,
1350 VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO = 31,
1351 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO = 32,
1352 VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO = 33,
Jesse Hallf4ab2b12015-11-30 16:04:55 -08001353 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO = 34,
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08001354 VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET = 35,
1355 VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET = 36,
1356 VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO = 37,
1357 VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO = 38,
1358 VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO = 39,
Jesse Hallf4ab2b12015-11-30 16:04:55 -08001359 VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO = 40,
Jesse Hall3dd678a2016-01-08 21:52:01 -08001360 VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO = 41,
1361 VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO = 42,
1362 VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO = 43,
1363 VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER = 44,
1364 VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER = 45,
1365 VK_STRUCTURE_TYPE_MEMORY_BARRIER = 46,
1366 VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO = 47,
1367 VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO = 48,
Jesse Hall1356b0d2015-11-23 17:24:58 -08001368
Ian Elliott28bd2c32017-10-13 09:21:12 -06001369 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04001370 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES = 1000094000,
1371 VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO = 1000157000,
1372 VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO = 1000157001,
1373 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES = 1000083000,
1374 VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS = 1000127000,
1375 VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO = 1000127001,
1376 VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO = 1000060000,
1377 VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO = 1000060003,
1378 VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO = 1000060004,
1379 VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO = 1000060005,
1380 VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO = 1000060006,
1381 VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO = 1000060013,
1382 VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO = 1000060014,
1383 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES = 1000070000,
1384 VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO = 1000070001,
1385 VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2 = 1000146000,
1386 VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2 = 1000146001,
1387 VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2 = 1000146002,
1388 VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2 = 1000146003,
1389 VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2 = 1000146004,
1390 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2 = 1000059000,
1391 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2 = 1000059001,
1392 VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2 = 1000059002,
1393 VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2 = 1000059003,
1394 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2 = 1000059004,
1395 VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2 = 1000059005,
1396 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2 = 1000059006,
1397 VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2 = 1000059007,
1398 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2 = 1000059008,
1399 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES = 1000117000,
1400 VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO = 1000117001,
1401 VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO = 1000117002,
1402 VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO = 1000117003,
1403 VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO = 1000053000,
1404 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES = 1000053001,
1405 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES = 1000053002,
1406 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES = 1000120000,
1407 VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO = 1000145000,
1408 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES = 1000145001,
1409 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES = 1000145002,
1410 VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2 = 1000145003,
1411 VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO = 1000156000,
1412 VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO = 1000156001,
1413 VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO = 1000156002,
1414 VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO = 1000156003,
1415 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES = 1000156004,
1416 VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES = 1000156005,
1417 VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO = 1000085000,
1418 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO = 1000071000,
1419 VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES = 1000071001,
1420 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO = 1000071002,
1421 VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES = 1000071003,
1422 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES = 1000071004,
1423 VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO = 1000072000,
1424 VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO = 1000072001,
1425 VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO = 1000072002,
1426 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO = 1000112000,
1427 VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES = 1000112001,
1428 VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO = 1000113000,
1429 VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO = 1000077000,
1430 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO = 1000076000,
1431 VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES = 1000076001,
1432 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES = 1000168000,
1433 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT = 1000168001,
1434 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES = 1000063000,
1435 VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR = 1000060007,
1436
Jesse Hallad250842017-03-10 18:35:38 -08001437 //@extension("VK_KHR_swapchain") // 2
Jesse Hallbd888842015-11-30 21:44:14 -08001438 VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR = 1000001000,
1439 VK_STRUCTURE_TYPE_PRESENT_INFO_KHR = 1000001001,
Daniel Koch09f7bf92017-10-05 00:26:58 -04001440 // added as interaction from VK_KHR_device_group / VK 1.1
1441 VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR = 1000060008,
1442 VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR = 1000060009,
1443 VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR = 1000060010,
1444 VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR = 1000060011,
1445 VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR = 1000060012,
Jesse Hall1356b0d2015-11-23 17:24:58 -08001446
Jesse Hallad250842017-03-10 18:35:38 -08001447 //@extension("VK_KHR_display") // 3
Jesse Hallbd888842015-11-30 21:44:14 -08001448 VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR = 1000002000,
1449 VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR = 1000002001,
Jesse Hall1356b0d2015-11-23 17:24:58 -08001450
Jesse Hallad250842017-03-10 18:35:38 -08001451 //@extension("VK_KHR_display_swapchain") // 4
Jesse Hallbd888842015-11-30 21:44:14 -08001452 VK_STRUCTURE_TYPE_DISPLAY_DISPLAY_PRESENT_INFO_KHR = 1000003000,
Jesse Hallf9fa9a52016-01-08 16:08:51 -08001453
Jesse Hallad250842017-03-10 18:35:38 -08001454 //@extension("VK_KHR_xlib_surface") // 5
Jesse Hallf9fa9a52016-01-08 16:08:51 -08001455 VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR = 1000004000,
1456
Jesse Hallad250842017-03-10 18:35:38 -08001457 //@extension("VK_KHR_xcb_surface") // 6
Jesse Hallf9fa9a52016-01-08 16:08:51 -08001458 VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR = 1000005000,
1459
Jesse Hallad250842017-03-10 18:35:38 -08001460 //@extension("VK_KHR_wayland_surface") // 7
Jesse Hallf9fa9a52016-01-08 16:08:51 -08001461 VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR = 1000006000,
1462
Jesse Hallad250842017-03-10 18:35:38 -08001463 //@extension("VK_KHR_android_surface") // 9
Jesse Hallf9fa9a52016-01-08 16:08:51 -08001464 VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR = 1000008000,
1465
Jesse Hallad250842017-03-10 18:35:38 -08001466 //@extension("VK_KHR_win32_surface") // 10
Jesse Hallf9fa9a52016-01-08 16:08:51 -08001467 VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR = 1000009000,
Jesse Hall543a7ff2016-01-08 16:38:30 -08001468
Jesse Hallad250842017-03-10 18:35:38 -08001469 //@extension("VK_ANDROID_native_buffer") // 11
Chia-I Wub262ddc2016-03-22 07:38:20 +08001470 VK_STRUCTURE_TYPE_NATIVE_BUFFER_ANDROID = 1000010000,
Chris Forbes8e4438b2016-12-07 16:26:49 +13001471 VK_STRUCTURE_TYPE_SWAPCHAIN_IMAGE_CREATE_INFO_ANDROID = 1000010001,
Chris Forbes1d4e5542017-02-15 19:38:50 +13001472 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENTATION_PROPERTIES_ANDROID = 1000010002,
Chia-I Wub262ddc2016-03-22 07:38:20 +08001473
Jesse Hallad250842017-03-10 18:35:38 -08001474 //@extension("VK_EXT_debug_report") // 12
Jesse Hall26763382016-05-20 07:13:52 -07001475 VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT = 1000011000,
1476
Jesse Hallad250842017-03-10 18:35:38 -08001477 //@extension("VK_AMD_rasterization_order") // 19
Jesse Hall26763382016-05-20 07:13:52 -07001478 VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD = 1000018000,
1479
Jesse Hallad250842017-03-10 18:35:38 -08001480 //@extension("VK_EXT_debug_marker") // 23
Jesse Hall26763382016-05-20 07:13:52 -07001481 VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT = 1000022000,
Jesse Hall26763382016-05-20 07:13:52 -07001482 VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT = 1000022001,
Jesse Hall26763382016-05-20 07:13:52 -07001483 VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT = 1000022002,
Jesse Hall56d386a2016-07-26 15:20:40 -07001484
Jesse Hallad250842017-03-10 18:35:38 -08001485 //@extension("VK_NV_dedicated_allocation") // 27
Jesse Hall56d386a2016-07-26 15:20:40 -07001486 VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV = 1000026000,
Jesse Hall56d386a2016-07-26 15:20:40 -07001487 VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV = 1000026001,
Jesse Hall56d386a2016-07-26 15:20:40 -07001488 VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV = 1000026002,
Chris Forbes289cb792016-12-30 15:03:55 +13001489
Jesse Hallf47e8f82018-10-27 23:41:45 -07001490 //@extension("VK_EXT_transform_feedback") // 29
1491 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT = 1000028000,
1492 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT = 1000028001,
1493 VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT = 1000028002,
1494
Jesse Hall7ba0ac72017-07-07 17:13:23 -07001495 //@extension("VK_AMD_texture_gather_bias_lod") // 42
1496 VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD = 1000041000,
1497
Jesse Hallb5297192018-09-22 20:52:13 +02001498 //@extension("VK_NV_corner_sampled_image") // 51
1499 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV = 1000050000,
1500
Daniel Koch09f7bf92017-10-05 00:26:58 -04001501 //@extension("VK_KHR_multiview") // 54
1502 VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO_KHR = 1000053000,
1503 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES_KHR = 1000053001,
1504 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES_KHR = 1000053002,
Jesse Hallad250842017-03-10 18:35:38 -08001505
1506 //@extension("VK_NV_external_memory") // 57
Jesse Halleb02c472017-02-24 15:13:45 -08001507 VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV = 1000056000,
1508 VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV = 1000056001,
Chris Forbes289cb792016-12-30 15:03:55 +13001509
Jesse Hallad250842017-03-10 18:35:38 -08001510 //@extension("VK_NV_external_memory_win32") // 58
Jesse Halleb02c472017-02-24 15:13:45 -08001511 VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV = 1000057000,
1512 VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV = 1000057001,
Chris Forbes289cb792016-12-30 15:03:55 +13001513
Jesse Hallad250842017-03-10 18:35:38 -08001514 //@extension("VK_NV_win32_keyed_mutex") // 59
Chris Forbes289cb792016-12-30 15:03:55 +13001515 VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV = 1000058000,
1516
Jesse Hallad250842017-03-10 18:35:38 -08001517 //@extension("VK_KHR_get_physical_device_properties2") // 60
Jesse Hall889cd9a2017-02-25 22:12:23 -08001518 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2_KHR = 1000059000,
1519 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2_KHR = 1000059001,
1520 VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2_KHR = 1000059002,
1521 VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2_KHR = 1000059003,
1522 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2_KHR = 1000059004,
1523 VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2_KHR = 1000059005,
1524 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2_KHR = 1000059006,
1525 VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2_KHR = 1000059007,
Chris Forbes1194ede2016-12-30 16:29:25 +13001526 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2_KHR = 1000059008,
1527
Daniel Koch09f7bf92017-10-05 00:26:58 -04001528 //@extension("VK_KHR_device_group") // 61
1529 VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO_KHR = 1000060000,
1530 VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO_KHR = 1000060003,
1531 VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO_KHR = 1000060004,
1532 VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO_KHR = 1000060005,
1533 VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO_KHR = 1000060006,
1534 VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR = 1000060007,
1535 // tokens 08-12 are listed with VK_KHR_swapchain
1536 VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO_KHR = 1000060013,
1537 VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO_KHR = 1000060014,
Jesse Hallad250842017-03-10 18:35:38 -08001538
1539 //@extension("VK_EXT_validation_flags") // 62
Jesse Halleb02c472017-02-24 15:13:45 -08001540 VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT = 1000061000,
Chris Forbes289cb792016-12-30 15:03:55 +13001541
Jesse Hallad250842017-03-10 18:35:38 -08001542 //@extension("VK_NN_vi_surface") // 63
Jesse Hall77ad05b2017-03-10 22:02:20 -08001543 VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN = 1000062000,
1544
Jesse Hall4af6c462018-09-10 09:04:25 -07001545 //@extension("VK_EXT_astc_decode_mode") // 68
1546 VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT = 1000067000,
1547 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT = 1000067001,
1548
Daniel Koch09f7bf92017-10-05 00:26:58 -04001549 //@extension("VK_KHR_device_group_creation") // 71
1550 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES_KHR = 1000070000,
1551 VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO_KHR = 1000070001,
Jesse Hallad250842017-03-10 18:35:38 -08001552
Jesse Hall9492f992017-08-28 12:10:06 -07001553 //@extension("VK_KHR_external_memory_capabilities") // 72
1554 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO_KHR = 1000071000,
1555 VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES_KHR = 1000071001,
1556 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO_KHR = 1000071002,
1557 VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES_KHR = 1000071003,
1558 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES_KHR = 1000071004,
Jesse Hallad250842017-03-10 18:35:38 -08001559
Jesse Hall9492f992017-08-28 12:10:06 -07001560 //@extension("VK_KHR_external_memory") // 73
1561 VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO_KHR = 1000072000,
1562 VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_KHR = 1000072001,
1563 VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_KHR = 1000072002,
Jesse Hallad250842017-03-10 18:35:38 -08001564
Jesse Hall9492f992017-08-28 12:10:06 -07001565 //@extension("VK_KHR_external_memory_win32") // 74
1566 VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR = 1000073000,
1567 VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR = 1000073001,
1568 VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR = 1000073002,
Jesse Hallad250842017-03-10 18:35:38 -08001569
Jesse Hall9492f992017-08-28 12:10:06 -07001570 //@extension("VK_KHR_external_memory_fd") // 75
1571 VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR = 1000074000,
1572 VK_STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR = 1000074001,
Jesse Hallad250842017-03-10 18:35:38 -08001573
Jesse Hall9492f992017-08-28 12:10:06 -07001574 //@extension("VK_KHR_win32_keyed_mutex") // 76
1575 VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR = 1000075000,
Jesse Hallad250842017-03-10 18:35:38 -08001576
Jesse Hall9492f992017-08-28 12:10:06 -07001577 //@extension("VK_KHR_external_semaphore_capabilities") // 77
1578 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO_KHR = 1000076000,
1579 VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES_KHR = 1000076001,
Jesse Hallad250842017-03-10 18:35:38 -08001580
Jesse Hall9492f992017-08-28 12:10:06 -07001581 //@extension("VK_KHR_external_semaphore") // 78
1582 VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO_KHR = 1000077000,
Jesse Hallad250842017-03-10 18:35:38 -08001583
Jesse Hall9492f992017-08-28 12:10:06 -07001584 //@extension("VK_KHR_external_semaphore_win32") // 79
1585 VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR = 1000078000,
1586 VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR = 1000078001,
1587 VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR = 1000078002,
Jesse Hallad250842017-03-10 18:35:38 -08001588
Jesse Hall9492f992017-08-28 12:10:06 -07001589 //@extension("VK_KHR_external_semaphore_fd") // 80
1590 VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR = 1000079000,
1591 VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR = 1000079001,
Jesse Hallad250842017-03-10 18:35:38 -08001592
1593 //@extension("VK_KHR_push_descriptor") // 81
1594 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR = 1000080000,
1595
Jesse Hall9492f992017-08-28 12:10:06 -07001596 //@extension("VK_KHR_16bit_storage") // 84
1597 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES_KHR = 1000083000,
1598
Jesse Hallad250842017-03-10 18:35:38 -08001599 //@extension("VK_KHR_incremental_present") // 85
Jesse Hall889cd9a2017-02-25 22:12:23 -08001600 VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR = 1000084000,
Chris Forbes289cb792016-12-30 15:03:55 +13001601
Jesse Halla13a3cf2018-07-09 15:51:52 -07001602 //@extension("VK_EXT_conditional_rendering") // 82
1603 VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT = 1000081000,
1604 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT = 1000081001,
1605 VK_STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT = 1000081002,
1606
Jesse Hallad250842017-03-10 18:35:38 -08001607 //@extension("VK_KHR_descriptor_update_template") // 86
1608 VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO_KHR = 1000085000,
1609
1610 //@extension("VK_NVX_device_generated_commands") // 87
Jesse Halleb02c472017-02-24 15:13:45 -08001611 VK_STRUCTURE_TYPE_OBJECT_TABLE_CREATE_INFO_NVX = 1000086000,
1612 VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NVX = 1000086001,
1613 VK_STRUCTURE_TYPE_CMD_PROCESS_COMMANDS_INFO_NVX = 1000086002,
1614 VK_STRUCTURE_TYPE_CMD_RESERVE_SPACE_FOR_COMMANDS_INFO_NVX = 1000086003,
1615 VK_STRUCTURE_TYPE_DEVICE_GENERATED_COMMANDS_LIMITS_NVX = 1000086004,
1616 VK_STRUCTURE_TYPE_DEVICE_GENERATED_COMMANDS_FEATURES_NVX = 1000086005,
Jesse Hall77ad05b2017-03-10 22:02:20 -08001617
Jesse Hallad250842017-03-10 18:35:38 -08001618 //@extension("VK_NV_clip_space_w_scaling") // 88
1619 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV = 1000087000,
1620
1621 //@extension("VK_EXT_display_surface_counter") // 91
Jesse Hall77726222017-09-19 14:49:27 -05001622 VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT = 1000090000,
Jesse Hall77ad05b2017-03-10 22:02:20 -08001623
Jesse Hallad250842017-03-10 18:35:38 -08001624 //@extension("VK_EXT_display_control") // 92
Jesse Hall77ad05b2017-03-10 22:02:20 -08001625 VK_STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT = 1000091000,
1626 VK_STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT = 1000091001,
1627 VK_STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT = 1000091002,
1628 VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT = 1000091003,
Jesse Hallad250842017-03-10 18:35:38 -08001629
1630 //@extension("VK_GOOGLE_display_timing") // 93
1631 VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE = 1000092000,
1632
1633 //@extension("VK_NVX_multiview_per_view_attributes") // 98
1634 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX = 1000097000,
1635
1636 //@extension("VK_NV_viewport_swizzle") // 99
1637 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV = 1000098000,
1638
1639 //@extension("VK_EXT_discard_rectangles") // 100
1640 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT = 1000099000,
1641 VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT = 1000099001,
1642
Jesse Hall8c954d32018-01-17 22:06:20 -08001643 //@extension("VK_EXT_conservative_rasterization") // 102
1644 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT = 1000101000,
1645 VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT = 1000101001,
1646
Jesse Halla13a3cf2018-07-09 15:51:52 -07001647 //@extension("VK_KHR_create_renderpass2") // 110
1648 VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2_KHR = 1000109000,
1649 VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2_KHR = 1000109001,
1650 VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2_KHR = 1000109002,
1651 VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2_KHR = 1000109003,
1652 VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2_KHR = 1000109004,
1653 VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO_KHR = 1000109005,
1654 VK_STRUCTURE_TYPE_SUBPASS_END_INFO_KHR = 1000109006,
1655
Jesse Hallfdc8ab32017-03-10 21:01:57 -08001656 //@extension("VK_EXT_hdr_metadata") // 106
1657 VK_STRUCTURE_TYPE_HDR_METADATA_EXT = 1000105000,
1658
Jesse Hall05556b12017-05-18 17:40:25 -07001659 //@extension("VK_KHR_shared_presentable_image") // 112
Chris Forbese2d3ee12017-03-16 16:10:15 +13001660 VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR = 1000111000,
1661
Jesse Hall9492f992017-08-28 12:10:06 -07001662 //@extension("VK_KHR_external_fence_capabilities") // 113
1663 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO_KHR = 1000112000,
1664 VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES_KHR = 1000112001,
1665
1666 //@extension("VK_KHR_external_fence") // 114
1667 VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO_KHR = 1000113000,
1668
1669 //@extension("VK_KHR_external_fence_win32") // 115
1670 VK_STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR = 1000114000,
1671 VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR = 1000114001,
1672 VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR = 1000114002,
1673
1674 //@extension("VK_KHR_external_fence_fd") // 117
1675 VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR = 1000115000,
1676 VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR = 1000115001,
1677
Jesse Hall076f95d2017-09-20 11:34:47 -07001678 //@extension("VK_KHR_maintenance2") // 118
1679 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES_KHR = 1000117000,
1680 VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO_KHR = 1000117001,
1681 VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO_KHR = 1000117002,
1682 VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO_KHR = 1000117003,
1683
Jesse Hall05556b12017-05-18 17:40:25 -07001684 //@extension("VK_KHR_get_surface_capabilities2") // 120
Chris Forbese2d3ee12017-03-16 16:10:15 +13001685 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR = 1000119000,
1686 VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR = 1000119001,
1687 VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR = 1000119002,
1688
Jesse Hall9492f992017-08-28 12:10:06 -07001689 //@extension("VK_KHR_variable_pointers") // 121
1690 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES_KHR = 1000120000,
1691
Jesse Hall54f8d132018-04-18 08:16:59 -07001692 //@extension("VK_KHR_display_properties2") // 122
1693 VK_STRUCTURE_TYPE_DISPLAY_PROPERTIES_2_KHR = 1000121000,
1694 VK_STRUCTURE_TYPE_DISPLAY_PLANE_PROPERTIES_2_KHR = 1000121001,
1695 VK_STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR = 1000121002,
1696 VK_STRUCTURE_TYPE_DISPLAY_PLANE_INFO_2_KHR = 1000121003,
1697 VK_STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR = 1000121004,
1698
Jesse Hallad250842017-03-10 18:35:38 -08001699 //@extension("VK_MVK_ios_surface") // 123
1700 VK_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK = 1000122000,
1701
1702 //@extension("VK_MVK_macos_surface") // 124
1703 VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK = 1000123000,
Jesse Hall7ba0ac72017-07-07 17:13:23 -07001704
Jesse Hall9492f992017-08-28 12:10:06 -07001705 //@extension("VK_KHR_dedicated_allocation") // 128
1706 VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS_KHR = 1000127000,
1707 VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO_KHR = 1000127001,
1708
Jesse Hall8c954d32018-01-17 22:06:20 -08001709 //@extension("VK_EXT_debug_utils") // 129
1710 VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT = 1000128000,
1711 VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT = 1000128001,
1712 VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT = 1000128002,
1713 VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT = 1000128003,
1714 VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT = 1000128004,
1715
Jesse Hall36215a92018-01-18 15:04:37 -08001716 //@extension("VK_ANDROID_external_memory_android_hardware_buffer") // 130
1717 VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID = 1000129000,
1718 VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID = 1000129001,
1719 VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID = 1000129002,
1720 VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID = 1000129003,
1721 VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID = 1000129004,
1722 VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID = 1000129005,
1723
Jesse Hall7ba0ac72017-07-07 17:13:23 -07001724 //@extension("VK_EXT_sampler_filter_minmax") // 131
1725 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES_EXT = 1000130000,
1726 VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO_EXT = 1000130001,
1727
Jesse Hall4af6c462018-09-10 09:04:25 -07001728 //@extension("VK_EXT_inline_uniform_block") // 139
1729 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT = 1000138000,
1730 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES_EXT = 1000138001,
1731 VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK_EXT = 1000138002,
1732 VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO_EXT = 1000138003,
1733
Jesse Hall77726222017-09-19 14:49:27 -05001734 //@extension("VK_EXT_sample_locations") // 144
1735 VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT = 1000143000,
1736 VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT = 1000143001,
1737 VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT = 1000143002,
1738 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT = 1000143003,
1739 VK_STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT = 1000143004,
1740
Jesse Hall9492f992017-08-28 12:10:06 -07001741 //@extension("VK_KHR_get_memory_requirements2") // 147
1742 VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2_KHR = 1000146000,
1743 VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2_KHR = 1000146001,
1744 VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2_KHR = 1000146002,
1745 VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2_KHR = 1000146003,
1746 VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2_KHR = 1000146004,
1747
Jesse Hall076f95d2017-09-20 11:34:47 -07001748 //@extension("VK_KHR_image_format_list") // 148
1749 VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO_KHR = 1000147000,
1750
Jesse Hall7ba0ac72017-07-07 17:13:23 -07001751 //@extension("VK_EXT_blend_operation_advanced") // 149
1752 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT = 1000148000,
1753 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT = 1000148001,
1754 VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT = 1000148002,
1755
1756 //@extension("VK_NV_fragment_coverage_to_color") // 150
1757 VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV = 1000149000,
1758
Jesse Hall77726222017-09-19 14:49:27 -05001759 //@extension("VK_NV_framebuffer_mixed_samples") // 153
Jesse Hall7ba0ac72017-07-07 17:13:23 -07001760 VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV = 1000152000,
Jesse Hall77726222017-09-19 14:49:27 -05001761
Jesse Hall076f95d2017-09-20 11:34:47 -07001762 //@extension("VK_KHR_sampler_ycbcr_conversion") // 157
1763 VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO_KHR = 1000156000,
1764 VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO_KHR = 1000156001,
1765 VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO_KHR = 1000156002,
1766 VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO_KHR = 1000156003,
1767 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES_KHR = 1000156004,
1768 VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES_KHR = 1000156005,
1769
Jesse Hallf47e8f82018-10-27 23:41:45 -07001770 //@extension("VK_EXT_image_drm_format_modifier") // 159
1771 VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT = 1000158000,
1772 VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT = 1000158001,
1773 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT = 1000158002,
1774 VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT = 1000158003,
1775 VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT = 1000158004,
1776 VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT = 1000158005,
1777
Jesse Hall076f95d2017-09-20 11:34:47 -07001778 //@extension("VK_KHR_bind_memory2") // 158
1779 VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO_KHR = 1000157000,
1780 VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO_KHR = 1000157001,
1781
Jesse Hall77726222017-09-19 14:49:27 -05001782 //@extension("VK_EXT_validation_cache") // 161
1783 VK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT = 1000160000,
1784 VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT = 1000160001,
Daniel Koch09f7bf92017-10-05 00:26:58 -04001785
Jesse Hall72e6a132018-04-06 13:00:44 -07001786 //@extension("VK_EXT_descriptor_indexing") // 162
1787 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO_EXT = 1000161000,
1788 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES_EXT = 1000161001,
1789 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES_EXT = 1000161002,
1790 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO_EXT = 1000161003,
1791 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT_EXT = 1000161004,
1792
Jesse Hallb5297192018-09-22 20:52:13 +02001793 //@extension("VK_NV_shading_rate_image") // 165
1794 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV = 1000164000,
1795 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV = 1000164001,
1796 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV = 1000164002,
1797 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV = 1000164005,
1798
Jesse Halla363a8e2018-11-05 21:18:00 -07001799 //@extension("VK_NV_raytracing") // 166
1800 VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_NV = 1000165000,
1801 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV = 1000165001,
1802 VK_STRUCTURE_TYPE_GEOMETRY_NV = 1000165003,
1803 VK_STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NV = 1000165004,
1804 VK_STRUCTURE_TYPE_GEOMETRY_AABB_NV = 1000165005,
1805 VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV = 1000165006,
1806 VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV = 1000165007,
1807 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV = 1000165008,
1808 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV = 1000165009,
1809 VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV = 1000165011,
1810 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_INFO_NV = 1000165012,
Jesse Hallb5297192018-09-22 20:52:13 +02001811
1812 //@extension("VK_NV_representative_fragment_test") // 167
1813 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV = 1000166000,
1814 VK_STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV = 1000166001,
1815
Daniel Koch09f7bf92017-10-05 00:26:58 -04001816 //@extension("VK_KHR_maintenance3") // 169
1817 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES_KHR = 1000168000,
1818 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT_KHR = 1000168001,
Jesse Hall8c954d32018-01-17 22:06:20 -08001819
1820 //@extension("VK_EXT_global_priority") // 175
1821 VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT = 1000174000,
1822
Jesse Halla13a3cf2018-07-09 15:51:52 -07001823 //@extension("VK_KHR_8bit_storage") // 178
1824 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES_KHR = 1000177000,
1825
Jesse Hall8c954d32018-01-17 22:06:20 -08001826 //@extension("VK_EXT_external_memory_host") // 179
1827 VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT = 1000178000,
1828 VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT = 1000178001,
1829 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT = 1000178002,
Jesse Hall72e6a132018-04-06 13:00:44 -07001830
Jesse Hall2e6853c2018-10-02 14:05:37 -07001831 //@extension("VK_KHR_shader_atomic_int64") // 181
1832 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES_KHR = 1000180000,
1833
Jesse Hallf47e8f82018-10-27 23:41:45 -07001834 //@extension("VK_EXT_calibrated_timestamps") // 185
1835 VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT = 1000184000,
1836
Jesse Hall2e6853c2018-10-02 14:05:37 -07001837 //@extension("VK_KHR_driver_properties") // 197
1838 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES_KHR = 1000196000,
1839
Jesse Hall72e6a132018-04-06 13:00:44 -07001840 //@extension("VK_AMD_shader_core_properties") // 186
1841 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD = 1000185000,
1842
Jesse Halla363a8e2018-11-05 21:18:00 -07001843 //@extension("VK_AMD_memory_overallocation_behavior") // 190
1844 VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD = 1000189000,
1845
Jesse Hall72e6a132018-04-06 13:00:44 -07001846 //@extension("VK_EXT_vertex_attribute_divisor") // 191
1847 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT = 1000190000,
1848 VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT = 1000190001,
Jesse Hall4af6c462018-09-10 09:04:25 -07001849 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT = 1000190002,
Jesse Hall115df0c2018-07-30 12:00:59 -07001850
1851 //@extension("VK_NV_device_diagnostic_checkpoints") // 207
1852 VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NV = 1000206000,
1853 VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV = 1000206001,
Jesse Hall4af6c462018-09-10 09:04:25 -07001854
1855 //@extension("VK_KHR_vulkan_memory_model") // 212
1856 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES_KHR = 1000211000,
Jesse Hall497c46f2018-10-08 12:52:48 -07001857
Jesse Hallf47e8f82018-10-27 23:41:45 -07001858 //@extension("VK_EXT_pci_bus_info") // 213
Jesse Hall89bde782018-11-12 08:06:07 -08001859 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT = 1000212000,
Jesse Hallf47e8f82018-10-27 23:41:45 -07001860
Jesse Hall497c46f2018-10-08 12:52:48 -07001861 //@extension("VK_FUCHSIA_imagepipe_surface") // 215
1862 VK_STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA = 1000214000,
Jesse Hall89bde782018-11-12 08:06:07 -08001863
1864 //@extension("VK_EXT_scalar_block_layout")
1865 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES_EXT = 1000221000,
1866
1867 //@extension("VK_EXT_separate_stencil_usage") // 247
1868 VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO_EXT = 1000246000,
Jesse Halld27f6aa2015-08-15 17:58:48 -07001869}
1870
Jesse Hall65ab5522015-11-30 00:07:16 -08001871enum VkSubpassContents {
1872 VK_SUBPASS_CONTENTS_INLINE = 0x00000000,
1873 VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS = 0x00000001,
Jesse Halld27f6aa2015-08-15 17:58:48 -07001874}
1875
Jesse Hall543a7ff2016-01-08 16:38:30 -08001876enum VkPipelineCacheHeaderVersion {
1877 VK_PIPELINE_CACHE_HEADER_VERSION_ONE = 1,
1878}
1879
Jesse Hallbd888842015-11-30 21:44:14 -08001880@lastUnused(-11)
Jesse Halld27f6aa2015-08-15 17:58:48 -07001881/// Error and return codes
1882enum VkResult {
1883 // Return codes for successful operation execution (positive values)
Jesse Hallbd888842015-11-30 21:44:14 -08001884 VK_SUCCESS = 0,
1885 VK_NOT_READY = 1,
1886 VK_TIMEOUT = 2,
1887 VK_EVENT_SET = 3,
1888 VK_EVENT_RESET = 4,
1889 VK_INCOMPLETE = 5,
Jesse Halld27f6aa2015-08-15 17:58:48 -07001890
Jesse Hallad250842017-03-10 18:35:38 -08001891 //@extension("VK_KHR_swapchain") // 2
Jesse Hallbd888842015-11-30 21:44:14 -08001892 VK_SUBOPTIMAL_KHR = 1000001003,
Jesse Hall1356b0d2015-11-23 17:24:58 -08001893
Jesse Halld27f6aa2015-08-15 17:58:48 -07001894 // Error codes (negative values)
Jesse Hallbd888842015-11-30 21:44:14 -08001895 VK_ERROR_OUT_OF_HOST_MEMORY = 0xFFFFFFFF, // -1
1896 VK_ERROR_OUT_OF_DEVICE_MEMORY = 0xFFFFFFFE, // -2
1897 VK_ERROR_INITIALIZATION_FAILED = 0xFFFFFFFD, // -3
1898 VK_ERROR_DEVICE_LOST = 0xFFFFFFFC, // -4
1899 VK_ERROR_MEMORY_MAP_FAILED = 0xFFFFFFFB, // -5
1900 VK_ERROR_LAYER_NOT_PRESENT = 0xFFFFFFFA, // -6
1901 VK_ERROR_EXTENSION_NOT_PRESENT = 0xFFFFFFF9, // -7
1902 VK_ERROR_FEATURE_NOT_PRESENT = 0xFFFFFFF8, // -8
1903 VK_ERROR_INCOMPATIBLE_DRIVER = 0xFFFFFFF7, // -9
1904 VK_ERROR_TOO_MANY_OBJECTS = 0xFFFFFFF6, // -10
1905 VK_ERROR_FORMAT_NOT_SUPPORTED = 0xFFFFFFF5, // -11
Jesse Hall56d386a2016-07-26 15:20:40 -07001906 VK_ERROR_FRAGMENTED_POOL = 0xFFFFFFF4, // -12
Jesse Hall1356b0d2015-11-23 17:24:58 -08001907
Ian Elliott28bd2c32017-10-13 09:21:12 -06001908 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04001909 VK_ERROR_OUT_OF_POOL_MEMORY = 0xC4642878, // -1000069000
1910 VK_ERROR_INVALID_EXTERNAL_HANDLE = 0xC4641CBD, // -1000072003
1911
Jesse Hallad250842017-03-10 18:35:38 -08001912 //@extension("VK_KHR_surface") // 1
Jesse Hallbd888842015-11-30 21:44:14 -08001913 VK_ERROR_SURFACE_LOST_KHR = 0xC4653600, // -1000000000
Jesse Hallad250842017-03-10 18:35:38 -08001914 VK_ERROR_NATIVE_WINDOW_IN_USE_KHR = 0xC46535FF, // -1000000001
Jesse Halla6429252015-11-29 18:59:42 -08001915
Jesse Hallad250842017-03-10 18:35:38 -08001916 //@extension("VK_KHR_swapchain") // 2
Jesse Hallbd888842015-11-30 21:44:14 -08001917 VK_ERROR_OUT_OF_DATE_KHR = 0xC4653214, // -1000001004
Jesse Hall1356b0d2015-11-23 17:24:58 -08001918
Jesse Hallad250842017-03-10 18:35:38 -08001919 //@extension("VK_KHR_display_swapchain") // 4
Jesse Hallbd888842015-11-30 21:44:14 -08001920 VK_ERROR_INCOMPATIBLE_DISPLAY_KHR = 0xC4652A47, // -1000003001
Jesse Hall1356b0d2015-11-23 17:24:58 -08001921
Jesse Hallad250842017-03-10 18:35:38 -08001922 //@extension("VK_EXT_debug_report") // 12
Jesse Hall543a7ff2016-01-08 16:38:30 -08001923 VK_ERROR_VALIDATION_FAILED_EXT = 0xC4650B07, // -1000011001
Jesse Hall26763382016-05-20 07:13:52 -07001924
Jesse Hallad250842017-03-10 18:35:38 -08001925 //@extension("VK_NV_glsl_shader") // 13
Jesse Hall26763382016-05-20 07:13:52 -07001926 VK_ERROR_INVALID_SHADER_NV = 0xC4650720, // -1000012000
Jesse Hall77ad05b2017-03-10 22:02:20 -08001927
Jesse Hallad250842017-03-10 18:35:38 -08001928 //@extension("VK_KHR_maintenance1") // 70
Jesse Hall77ad05b2017-03-10 22:02:20 -08001929 VK_ERROR_OUT_OF_POOL_MEMORY_KHR = 0xC4642878, // -1000069000
Jesse Hallad250842017-03-10 18:35:38 -08001930
Jesse Hall9492f992017-08-28 12:10:06 -07001931 //@extension("VK_KHR_external_memory") // 73
1932 VK_ERROR_INVALID_EXTERNAL_HANDLE_KHR = 0xC4641CBD, // -1000072003
Jesse Hall72e6a132018-04-06 13:00:44 -07001933
Jesse Hallf47e8f82018-10-27 23:41:45 -07001934 //@extension("VK_EXT_image_drm_format_modifier") // 159
1935 VK_ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT = 0xC462CCD0, // -1000158000
1936
Jesse Hall72e6a132018-04-06 13:00:44 -07001937 //@extension("VK_EXT_descriptor_indexing") // 162
1938 VK_ERROR_FRAGMENTATION_EXT = 0xc462c118, // -1000161000
Jesse Hallf47e8f82018-10-27 23:41:45 -07001939
1940 //@extension("VK_EXT_global_priority") // 175
1941 VK_ERROR_NOT_PERMITTED_EXT = 0xC4628E4F, // -1000174001
Jesse Hall5ae3abb2015-10-08 14:00:22 -07001942}
1943
1944enum VkDynamicState {
1945 VK_DYNAMIC_STATE_VIEWPORT = 0x00000000,
1946 VK_DYNAMIC_STATE_SCISSOR = 0x00000001,
1947 VK_DYNAMIC_STATE_LINE_WIDTH = 0x00000002,
1948 VK_DYNAMIC_STATE_DEPTH_BIAS = 0x00000003,
1949 VK_DYNAMIC_STATE_BLEND_CONSTANTS = 0x00000004,
1950 VK_DYNAMIC_STATE_DEPTH_BOUNDS = 0x00000005,
1951 VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK = 0x00000006,
1952 VK_DYNAMIC_STATE_STENCIL_WRITE_MASK = 0x00000007,
1953 VK_DYNAMIC_STATE_STENCIL_REFERENCE = 0x00000008,
Jesse Hallad250842017-03-10 18:35:38 -08001954
1955 //@extension("VK_NV_clip_space_w_scaling") // 88
1956 VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV = 1000087000,
1957
1958 //@extension("VK_EXT_discard_rectangles") // 100
1959 VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT = 1000099000,
Jesse Hall77726222017-09-19 14:49:27 -05001960
1961 //@extension("VK_EXT_sample_locations") // 144
1962 VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT = 1000143000,
Jesse Hallb5297192018-09-22 20:52:13 +02001963
1964 //@extension("VK_NV_shading_rate_image") // 165
1965 VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV = 1000164004,
1966 VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV = 1000164006,
1967
1968 //@extension("VK_NV_scissor_exclusive") // 206
1969 VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV = 1000205001,
Jesse Halld27f6aa2015-08-15 17:58:48 -07001970}
1971
Jesse Hall05556b12017-05-18 17:40:25 -07001972enum VkObjectType {
1973 VK_OBJECT_TYPE_UNKNOWN = 0,
1974 VK_OBJECT_TYPE_INSTANCE = 1,
1975 VK_OBJECT_TYPE_PHYSICAL_DEVICE = 2,
1976 VK_OBJECT_TYPE_DEVICE = 3,
1977 VK_OBJECT_TYPE_QUEUE = 4,
1978 VK_OBJECT_TYPE_SEMAPHORE = 5,
1979 VK_OBJECT_TYPE_COMMAND_BUFFER = 6,
1980 VK_OBJECT_TYPE_FENCE = 7,
1981 VK_OBJECT_TYPE_DEVICE_MEMORY = 8,
1982 VK_OBJECT_TYPE_BUFFER = 9,
1983 VK_OBJECT_TYPE_IMAGE = 10,
1984 VK_OBJECT_TYPE_EVENT = 11,
1985 VK_OBJECT_TYPE_QUERY_POOL = 12,
1986 VK_OBJECT_TYPE_BUFFER_VIEW = 13,
1987 VK_OBJECT_TYPE_IMAGE_VIEW = 14,
1988 VK_OBJECT_TYPE_SHADER_MODULE = 15,
1989 VK_OBJECT_TYPE_PIPELINE_CACHE = 16,
1990 VK_OBJECT_TYPE_PIPELINE_LAYOUT = 17,
1991 VK_OBJECT_TYPE_RENDER_PASS = 18,
1992 VK_OBJECT_TYPE_PIPELINE = 19,
1993 VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT = 20,
1994 VK_OBJECT_TYPE_SAMPLER = 21,
1995 VK_OBJECT_TYPE_DESCRIPTOR_POOL = 22,
1996 VK_OBJECT_TYPE_DESCRIPTOR_SET = 23,
1997 VK_OBJECT_TYPE_FRAMEBUFFER = 24,
1998 VK_OBJECT_TYPE_COMMAND_POOL = 25,
1999
Ian Elliott28bd2c32017-10-13 09:21:12 -06002000 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04002001 VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION = 1000156000,
2002 VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE = 1000085000,
2003
Jesse Hall05556b12017-05-18 17:40:25 -07002004 //@extension("VK_KHR_surface") // 1
2005 VK_OBJECT_TYPE_SURFACE_KHR = 1000000000,
2006
2007 //@extension("VK_KHR_swapchain") // 2
2008 VK_OBJECT_TYPE_SWAPCHAIN_KHR = 1000001000,
2009
2010 //@extension("VK_KHR_display") // 3
2011 VK_OBJECT_TYPE_DISPLAY_KHR = 1000002000,
2012 VK_OBJECT_TYPE_DISPLAY_MODE_KHR = 1000002001,
2013
2014 //@extension("VK_KHR_debug_report") // 12
2015 VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT = 1000011000,
2016
2017 //@extension("VK_KHR_descriptor_update_template") // 86
2018 VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR = 1000085000,
2019
2020 //@extension("VK_NVX_device_generated_commands") // 87
2021 VK_OBJECT_TYPE_OBJECT_TABLE_NVX = 1000086000,
2022 VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX = 1000086001,
Jesse Hall77726222017-09-19 14:49:27 -05002023
Jesse Hall8c954d32018-01-17 22:06:20 -08002024 //@extension("VK_EXT_debug_utils") // 129
2025 VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT = 1000128000,
2026
Jesse Hall076f95d2017-09-20 11:34:47 -07002027 //@extension("VK_KHR_sampler_ycbcr_conversion") // 157
2028 VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR = 1000156000,
2029
Jesse Hall77726222017-09-19 14:49:27 -05002030 //@extension("VK_EXT_validation_cache") // 161
2031 VK_OBJECT_TYPE_VALIDATION_CACHE_EXT = 1000160000,
Jesse Hallb5297192018-09-22 20:52:13 +02002032
Jesse Halla363a8e2018-11-05 21:18:00 -07002033 //@extension("VK_NV_raytracing") // 166
2034 VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV = 1000165000,
Jesse Hall05556b12017-05-18 17:40:25 -07002035}
2036
Daniel Koch09f7bf92017-10-05 00:26:58 -04002037
Ian Elliott28bd2c32017-10-13 09:21:12 -06002038//@vulkan1_1 enums
Daniel Koch09f7bf92017-10-05 00:26:58 -04002039
2040enum VkPointClippingBehavior {
2041 VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES = 0,
2042 VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY = 1,
2043}
2044
2045enum VkTessellationDomainOrigin {
2046 VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT = 0,
2047 VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT = 1,
2048}
2049
2050enum VkSamplerYcbcrModelConversion {
2051 VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY = 0,
2052 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY = 1,
2053 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709 = 2,
2054 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601 = 3,
2055 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020 = 4,
2056}
2057
2058enum VkSamplerYcbcrRange {
2059 VK_SAMPLER_YCBCR_RANGE_ITU_FULL = 0,
2060 VK_SAMPLER_YCBCR_RANGE_ITU_NARROW = 1,
2061}
2062
2063enum VkChromaLocation {
2064 VK_CHROMA_LOCATION_COSITED_EVEN = 0,
2065 VK_CHROMA_LOCATION_MIDPOINT = 1,
2066}
2067
2068enum VkDescriptorUpdateTemplateType {
2069 VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET = 0,
2070 VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR = 1,
2071}
2072
Jesse Halla13a3cf2018-07-09 15:51:52 -07002073enum VkVendorId {
2074 VK_VENDOR_ID_VIV = 0x10001,
2075 VK_VENDOR_ID_VSI = 0x10002,
2076 VK_VENDOR_ID_KAZAN = 0x10003,
2077}
2078
Jesse Hallad250842017-03-10 18:35:38 -08002079@extension("VK_KHR_surface") // 1
Michael Lentine88594d72015-11-12 12:49:45 -08002080enum VkPresentModeKHR {
2081 VK_PRESENT_MODE_IMMEDIATE_KHR = 0x00000000,
2082 VK_PRESENT_MODE_MAILBOX_KHR = 0x00000001,
2083 VK_PRESENT_MODE_FIFO_KHR = 0x00000002,
Jesse Hall03b6fe12015-11-24 12:44:21 -08002084 VK_PRESENT_MODE_FIFO_RELAXED_KHR = 0x00000003,
Jesse Hall77ad05b2017-03-10 22:02:20 -08002085
Jesse Hall05556b12017-05-18 17:40:25 -07002086 //@extension("VK_KHR_shared_presentable_image") // 112
Jesse Hall77ad05b2017-03-10 22:02:20 -08002087 VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR = 1000111000,
2088 VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR = 1000111001,
Michael Lentine88594d72015-11-12 12:49:45 -08002089}
2090
Jesse Hallad250842017-03-10 18:35:38 -08002091@extension("VK_KHR_surface") // 1
Michael Lentine88594d72015-11-12 12:49:45 -08002092enum VkColorSpaceKHR {
Daniel Koch09f7bf92017-10-05 00:26:58 -04002093 VK_COLOR_SPACE_SRGB_NONLINEAR_KHR = 0x00000000,
Jesse Hall77ad05b2017-03-10 22:02:20 -08002094
Jesse Hallf5ad48b2017-03-20 13:09:19 -07002095 //@extension("VK_EXT_swapchain_colorspace") // 105
2096 VK_COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT = 1000104001,
2097 VK_COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT = 1000104002,
2098 VK_COLOR_SPACE_DCI_P3_LINEAR_EXT = 1000104003,
2099 VK_COLOR_SPACE_DCI_P3_NONLINEAR_EXT = 1000104004,
2100 VK_COLOR_SPACE_BT709_LINEAR_EXT = 1000104005,
2101 VK_COLOR_SPACE_BT709_NONLINEAR_EXT = 1000104006,
2102 VK_COLOR_SPACE_BT2020_LINEAR_EXT = 1000104007,
2103 VK_COLOR_SPACE_HDR10_ST2084_EXT = 1000104008,
2104 VK_COLOR_SPACE_DOLBYVISION_EXT = 1000104009,
2105 VK_COLOR_SPACE_HDR10_HLG_EXT = 1000104010,
Courtney Goeltzenleuchter7f558ed2017-01-23 17:15:24 -07002106 VK_COLOR_SPACE_ADOBERGB_LINEAR_EXT = 1000104011,
2107 VK_COLOR_SPACE_ADOBERGB_NONLINEAR_EXT = 1000104012,
Jesse Hallf5ad48b2017-03-20 13:09:19 -07002108 VK_COLOR_SPACE_PASS_THROUGH_EXT = 1000104013,
Jesse Hall77726222017-09-19 14:49:27 -05002109 VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT = 1000104014,
Michael Lentine88594d72015-11-12 12:49:45 -08002110}
Jesse Halld27f6aa2015-08-15 17:58:48 -07002111
Jesse Hallad250842017-03-10 18:35:38 -08002112@extension("VK_EXT_debug_report") // 12
Jesse Hall715b86a2016-01-16 16:34:29 -08002113enum VkDebugReportObjectTypeEXT {
2114 VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT = 0,
2115 VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT = 1,
2116 VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT = 2,
2117 VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT = 3,
2118 VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT = 4,
2119 VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT = 5,
2120 VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT = 6,
2121 VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT = 7,
2122 VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT = 8,
2123 VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT = 9,
2124 VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT = 10,
2125 VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT = 11,
2126 VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT = 12,
2127 VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT = 13,
2128 VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT = 14,
2129 VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT = 15,
2130 VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT = 16,
2131 VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT = 17,
2132 VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT = 18,
2133 VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT = 19,
2134 VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT = 20,
2135 VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT = 21,
2136 VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT = 22,
2137 VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT = 23,
2138 VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT = 24,
2139 VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT = 25,
2140 VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT = 26,
2141 VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT = 27,
Jesse Hall7ba0ac72017-07-07 17:13:23 -07002142 VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT = 28,
Chris Forbes289cb792016-12-30 15:03:55 +13002143 VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT = 29,
2144 VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT = 30,
2145 VK_DEBUG_REPORT_OBJECT_TYPE_OBJECT_TABLE_NVX_EXT = 31,
2146 VK_DEBUG_REPORT_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX_EXT = 32,
Jesse Hallf5ad48b2017-03-20 13:09:19 -07002147
Jesse Hall77726222017-09-19 14:49:27 -05002148 //extension("VK_EXT_validation_cache") // 161
Jesse Hall8c954d32018-01-17 22:06:20 -08002149 VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT = 33,
Jesse Hall77726222017-09-19 14:49:27 -05002150
Jesse Hallf5ad48b2017-03-20 13:09:19 -07002151 //extension("VK_KHR_descriptor_update_template") // 86
2152 VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR_EXT = 1000085000,
Jesse Hall77726222017-09-19 14:49:27 -05002153
Jesse Hall076f95d2017-09-20 11:34:47 -07002154 //@extension("VK_KHR_sampler_ycbcr_conversion") // 157
2155 VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR_EXT = 1000156000,
Jesse Hallb5297192018-09-22 20:52:13 +02002156
Jesse Halla363a8e2018-11-05 21:18:00 -07002157 //@extension("VK_NV_raytracing") // 166
2158 VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT = 1000165000,
Jesse Hall715b86a2016-01-16 16:34:29 -08002159}
2160
Jesse Hallad250842017-03-10 18:35:38 -08002161@extension("VK_AMD_rasterization_order") // 19
Jesse Hall26763382016-05-20 07:13:52 -07002162enum VkRasterizationOrderAMD {
2163 VK_RASTERIZATION_ORDER_STRICT_AMD = 0,
2164 VK_RASTERIZATION_ORDER_RELAXED_AMD = 1,
2165}
2166
Jesse Hall8c954d32018-01-17 22:06:20 -08002167@extension("VK_AMD_shader_info") // 43
2168enum VkShaderInfoTypeAMD {
2169 VK_SHADER_INFO_TYPE_STATISTICS_AMD = 0,
2170 VK_SHADER_INFO_TYPE_BINARY_AMD = 1,
2171 VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD = 2,
2172}
2173
Jesse Hallad250842017-03-10 18:35:38 -08002174@extension("VK_EXT_validation_flags") // 62
Chris Forbes289cb792016-12-30 15:03:55 +13002175enum VkValidationCheckEXT {
2176 VK_VALIDATION_CHECK_ALL_EXT = 0,
Jesse Hall7ba0ac72017-07-07 17:13:23 -07002177 VK_VALIDATION_CHECK_SHADERS_EXT = 1,
Chris Forbes289cb792016-12-30 15:03:55 +13002178}
2179
Jesse Hallad250842017-03-10 18:35:38 -08002180@extension("VK_KHR_descriptor_update_template") // 86
2181enum VkDescriptorUpdateTemplateTypeKHR {
2182 VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET_KHR = 0,
2183 VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR = 1,
2184}
2185
2186@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13002187enum VkIndirectCommandsTokenTypeNVX {
Jesse Hall7ba0ac72017-07-07 17:13:23 -07002188 VK_INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NVX = 0,
2189 VK_INDIRECT_COMMANDS_TOKEN_TYPE_DESCRIPTOR_SET_NVX = 1,
2190 VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NVX = 2,
2191 VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NVX = 3,
2192 VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NVX = 4,
2193 VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NVX = 5,
2194 VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NVX = 6,
2195 VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NVX = 7,
Chris Forbes289cb792016-12-30 15:03:55 +13002196}
2197
Jesse Hallad250842017-03-10 18:35:38 -08002198@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13002199enum VkObjectEntryTypeNVX {
Jesse Hall7ba0ac72017-07-07 17:13:23 -07002200 VK_OBJECT_ENTRY_TYPE_DESCRIPTOR_SET_NVX = 0,
2201 VK_OBJECT_ENTRY_TYPE_PIPELINE_NVX = 1,
2202 VK_OBJECT_ENTRY_TYPE_INDEX_BUFFER_NVX = 2,
2203 VK_OBJECT_ENTRY_TYPE_VERTEX_BUFFER_NVX = 3,
2204 VK_OBJECT_ENTRY_TYPE_PUSH_CONSTANT_NVX = 4,
Chris Forbes289cb792016-12-30 15:03:55 +13002205}
Jesse Hall715b86a2016-01-16 16:34:29 -08002206
Jesse Hallad250842017-03-10 18:35:38 -08002207@extension("VK_EXT_display_control") // 92
Jesse Hall77ad05b2017-03-10 22:02:20 -08002208enum VkDisplayPowerStateEXT {
2209 VK_DISPLAY_POWER_STATE_OFF_EXT = 0,
2210 VK_DISPLAY_POWER_STATE_SUSPEND_EXT = 1,
2211 VK_DISPLAY_POWER_STATE_ON_EXT = 2,
2212}
2213
Jesse Hallad250842017-03-10 18:35:38 -08002214@extension("VK_EXT_display_control") // 92
Jesse Hall77ad05b2017-03-10 22:02:20 -08002215enum VkDeviceEventTypeEXT {
2216 VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT = 0,
2217}
2218
Jesse Hallad250842017-03-10 18:35:38 -08002219@extension("VK_EXT_display_control") // 92
Jesse Hall77ad05b2017-03-10 22:02:20 -08002220enum VkDisplayEventTypeEXT {
2221 VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT = 0,
2222}
2223
Jesse Hallad250842017-03-10 18:35:38 -08002224@extension("VK_NV_viewport_swizzle") // 99
2225enum VkViewportCoordinateSwizzleNV {
2226 VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV = 0,
2227 VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV = 1,
2228 VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV = 2,
2229 VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV = 3,
2230 VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV = 4,
2231 VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV = 5,
2232 VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV = 6,
2233 VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV = 7,
2234}
2235
2236@extension("VK_EXT_discard_rectangles") // 100
2237enum VkDiscardRectangleModeEXT {
2238 VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT = 0,
2239 VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT = 1,
2240}
2241
Jesse Hall8c954d32018-01-17 22:06:20 -08002242@extension("VK_EXT_conservative_rasterization") // 102
2243enum VkConservativeRasterizationModeEXT {
2244 VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT = 0,
2245 VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT = 1,
2246 VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT = 2,
2247}
2248
Jesse Hall076f95d2017-09-20 11:34:47 -07002249@extension("VK_KHR_maintenance2") // 118
2250enum VkPointClippingBehaviorKHR {
2251 VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES_KHR = 0,
2252 VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY_KHR = 1,
2253}
2254
2255@extension("VK_KHR_maintenance2") // 118
2256enum VkTessellationDomainOriginKHR {
2257 VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT_KHR = 0,
2258 VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT_KHR = 1,
2259}
2260
Jesse Hall7ba0ac72017-07-07 17:13:23 -07002261@extension("VK_EXT_sampler_filter_minmax") // 131
2262enum VkSamplerReductionModeEXT {
2263 VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_EXT = 0,
2264 VK_SAMPLER_REDUCTION_MODE_MIN_EXT = 1,
2265 VK_SAMPLER_REDUCTION_MODE_MAX_EXT = 2,
2266}
2267
2268@extension("VK_EXT_blend_operation_advanced") // 149
2269enum VkBlendOverlapEXT {
2270 VK_BLEND_OVERLAP_UNCORRELATED_EXT = 0,
2271 VK_BLEND_OVERLAP_DISJOINT_EXT = 1,
2272 VK_BLEND_OVERLAP_CONJOINT_EXT = 2,
2273}
2274
2275@extension("VK_NV_framebuffer_mixed_samples") // 153
2276enum VkCoverageModulationModeNV {
2277 VK_COVERAGE_MODULATION_MODE_NONE_NV = 0,
2278 VK_COVERAGE_MODULATION_MODE_RGB_NV = 1,
2279 VK_COVERAGE_MODULATION_MODE_ALPHA_NV = 2,
2280 VK_COVERAGE_MODULATION_MODE_RGBA_NV = 3,
2281}
2282
Jesse Hall076f95d2017-09-20 11:34:47 -07002283@extension("VK_KHR_sampler_ycbcr_conversion") // 157
2284enum VkSamplerYcbcrModelConversionKHR {
2285 VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY_KHR = 0,
2286 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY_KHR = 1,
2287 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709_KHR = 2,
2288 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601_KHR = 3,
2289 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020_KHR = 4,
2290}
2291
2292@extension("VK_KHR_sampler_ycbcr_conversion") // 157
2293enum VkSamplerYcbcrRangeKHR {
2294 VK_SAMPLER_YCBCR_RANGE_ITU_FULL_KHR = 0,
2295 VK_SAMPLER_YCBCR_RANGE_ITU_NARROW_KHR = 1,
2296}
2297
2298@extension("VK_KHR_sampler_ycbcr_conversion") // 157
2299enum VkChromaLocationKHR {
2300 VK_CHROMA_LOCATION_COSITED_EVEN_KHR = 0,
2301 VK_CHROMA_LOCATION_MIDPOINT_KHR = 1,
2302}
2303
Jesse Hall77726222017-09-19 14:49:27 -05002304@extension("VK_EXT_validation_cache") // 161
2305enum VkValidationCacheHeaderVersionEXT {
2306 VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT = 1,
2307}
2308
Jesse Hallb5297192018-09-22 20:52:13 +02002309@extension("VK_NV_shading_rate_image") // 165
2310enum VkShadingRatePaletteEntryNV {
2311 VK_SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV = 0,
2312 VK_SHADING_RATE_PALETTE_ENTRY_16_INVOCATIONS_PER_PIXEL_NV = 1,
2313 VK_SHADING_RATE_PALETTE_ENTRY_8_INVOCATIONS_PER_PIXEL_NV = 2,
2314 VK_SHADING_RATE_PALETTE_ENTRY_4_INVOCATIONS_PER_PIXEL_NV = 3,
2315 VK_SHADING_RATE_PALETTE_ENTRY_2_INVOCATIONS_PER_PIXEL_NV = 4,
2316 VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_PIXEL_NV = 5,
2317 VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X1_PIXELS_NV = 6,
2318 VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_1X2_PIXELS_NV = 7,
2319 VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X2_PIXELS_NV = 8,
2320 VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X2_PIXELS_NV = 9,
2321 VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X4_PIXELS_NV = 10,
2322 VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV = 11,
2323}
2324
2325@extension("VK_NV_shading_rate_image") // 165
2326enum VkCoarseSampleOrderTypeNV {
2327 VK_COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV = 0,
2328 VK_COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV = 1,
2329 VK_COARSE_SAMPLE_ORDER_TYPE_PIXEL_MAJOR_NV = 2,
2330 VK_COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV = 3,
2331}
2332
Jesse Halla363a8e2018-11-05 21:18:00 -07002333@extension("VK_NV_raytracing") // 166
2334enum VkRayTracingShaderGroupTypeNV {
2335 VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_NV = 0,
2336 VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_NV = 1,
2337 VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_NV = 2,
Jesse Hallb5297192018-09-22 20:52:13 +02002338}
2339
Jesse Halla363a8e2018-11-05 21:18:00 -07002340@extension("VK_NV_raytracing") // 166
2341enum VkGeometryTypeNV {
2342 VK_GEOMETRY_TYPE_TRIANGLES_NV = 0,
2343 VK_GEOMETRY_TYPE_AABBS_NV = 1,
Jesse Hallb5297192018-09-22 20:52:13 +02002344}
2345
Jesse Halla363a8e2018-11-05 21:18:00 -07002346@extension("VK_NV_raytracing") // 166
2347enum VkAccelerationStructureTypeNV {
2348 VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_NV = 0,
2349 VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NV = 1,
2350}
2351
2352@extension("VK_NV_raytracing") // 166
2353enum VkCopyAccelerationStructureModeNV {
2354 VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_NV = 0,
2355 VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_NV = 1,
2356}
2357
2358@extension("VK_NV_raytracing") // 166
2359enum VkAccelerationStructureMemoryRequirementsTypeNV {
2360 VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV = 0,
2361 VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_NV = 1,
2362 VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV = 2,
Jesse Hallb5297192018-09-22 20:52:13 +02002363}
2364
Jesse Hall8c954d32018-01-17 22:06:20 -08002365@extension("VK_EXT_global_priority") // 175
2366enum VkQueueGlobalPriorityEXT {
2367 VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT = 128,
2368 VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT = 256,
2369 VK_QUEUE_GLOBAL_PRIORITY_HIGH_EXT = 512,
2370 VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT = 1024,
2371}
2372
Jesse Hallf47e8f82018-10-27 23:41:45 -07002373@extension("VK_EXT_calibrated_timestamps") // 185
2374enum VkTimeDomainEXT {
2375 VK_TIME_DOMAIN_DEVICE_EXT = 0,
2376 VK_TIME_DOMAIN_CLOCK_MONOTONIC_EXT = 1,
2377 VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT = 2,
2378 VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT = 3,
2379}
2380
Jesse Halla363a8e2018-11-05 21:18:00 -07002381@extension("VK_AMD_memory_overallocation_behavior") // 190
2382enum VkMemoryOverallocationBehaviorAMD {
2383 VK_MEMORY_OVERALLOCATION_BEHAVIOR_DEFAULT_AMD = 0,
2384 VK_MEMORY_OVERALLOCATION_BEHAVIOR_ALLOWED_AMD = 1,
2385 VK_MEMORY_OVERALLOCATION_BEHAVIOR_DISALLOWED_AMD = 2,
2386}
2387
Jesse Hall2e6853c2018-10-02 14:05:37 -07002388@extension("VK_KHR_driver_properties") // 197
2389enum VkDriverIdKHR {
2390 VK_DRIVER_ID_AMD_PROPRIETARY_KHR = 1,
2391 VK_DRIVER_ID_AMD_OPEN_SOURCE_KHR = 2,
2392 VK_DRIVER_ID_MESA_RADV_KHR = 3,
2393 VK_DRIVER_ID_NVIDIA_PROPRIETARY_KHR = 4,
2394 VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS_KHR = 5,
2395 VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA_KHR = 6,
2396 VK_DRIVER_ID_IMAGINATION_PROPRIETARY_KHR = 7,
2397 VK_DRIVER_ID_QUALCOMM_PROPRIETARY_KHR = 8,
2398 VK_DRIVER_ID_ARM_PROPRIETARY_KHR = 9,
Jesse Hall89bde782018-11-12 08:06:07 -08002399 VK_DRIVER_ID_GOOGLE_PASTEL_KHR = 10,
Jesse Hall2e6853c2018-10-02 14:05:37 -07002400}
2401
Jesse Halld27f6aa2015-08-15 17:58:48 -07002402/////////////////
2403// Bitfields //
2404/////////////////
2405
Jesse Halld27f6aa2015-08-15 17:58:48 -07002406/// Queue capabilities
Jesse Halld8bade02015-11-24 10:24:18 -08002407type VkFlags VkQueueFlags
2408bitfield VkQueueFlagBits {
Jesse Halld27f6aa2015-08-15 17:58:48 -07002409 VK_QUEUE_GRAPHICS_BIT = 0x00000001, /// Queue supports graphics operations
2410 VK_QUEUE_COMPUTE_BIT = 0x00000002, /// Queue supports compute operations
Jesse Hall65ab5522015-11-30 00:07:16 -08002411 VK_QUEUE_TRANSFER_BIT = 0x00000004, /// Queue supports transfer operations
Jesse Hallb00daad2015-11-29 19:46:20 -08002412 VK_QUEUE_SPARSE_BINDING_BIT = 0x00000008, /// Queue supports sparse resource memory management operations
Daniel Koch09f7bf92017-10-05 00:26:58 -04002413
Ian Elliott28bd2c32017-10-13 09:21:12 -06002414 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04002415 VK_QUEUE_PROTECTED_BIT = 0x00000010,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002416}
2417
2418/// Memory properties passed into vkAllocMemory().
Jesse Halld8bade02015-11-24 10:24:18 -08002419type VkFlags VkMemoryPropertyFlags
2420bitfield VkMemoryPropertyFlagBits {
Jesse Halld1af8122015-11-29 23:50:38 -08002421 VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT = 0x00000001,
2422 VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT = 0x00000002,
2423 VK_MEMORY_PROPERTY_HOST_COHERENT_BIT = 0x00000004,
2424 VK_MEMORY_PROPERTY_HOST_CACHED_BIT = 0x00000008,
2425 VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT = 0x00000010,
Daniel Koch09f7bf92017-10-05 00:26:58 -04002426
Ian Elliott28bd2c32017-10-13 09:21:12 -06002427 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04002428 VK_MEMORY_PROPERTY_PROTECTED_BIT = 0x00000020,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002429}
2430
2431/// Memory heap flags
Jesse Halld8bade02015-11-24 10:24:18 -08002432type VkFlags VkMemoryHeapFlags
2433bitfield VkMemoryHeapFlagBits {
Jesse Halld1af8122015-11-29 23:50:38 -08002434 VK_MEMORY_HEAP_DEVICE_LOCAL_BIT = 0x00000001,
Jesse Hallad250842017-03-10 18:35:38 -08002435
Ian Elliott28bd2c32017-10-13 09:21:12 -06002436 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04002437 VK_MEMORY_HEAP_MULTI_INSTANCE_BIT = 0x00000002,
2438
2439 //@extension("VK_KHR_device_group_creation") // 71
2440 VK_MEMORY_HEAP_MULTI_INSTANCE_BIT_KHR = 0x00000002,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002441}
2442
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08002443/// Access flags
2444type VkFlags VkAccessFlags
2445bitfield VkAccessFlagBits {
2446 VK_ACCESS_INDIRECT_COMMAND_READ_BIT = 0x00000001,
2447 VK_ACCESS_INDEX_READ_BIT = 0x00000002,
2448 VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT = 0x00000004,
2449 VK_ACCESS_UNIFORM_READ_BIT = 0x00000008,
2450 VK_ACCESS_INPUT_ATTACHMENT_READ_BIT = 0x00000010,
2451 VK_ACCESS_SHADER_READ_BIT = 0x00000020,
2452 VK_ACCESS_SHADER_WRITE_BIT = 0x00000040,
2453 VK_ACCESS_COLOR_ATTACHMENT_READ_BIT = 0x00000080,
2454 VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT = 0x00000100,
2455 VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT = 0x00000200,
2456 VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT = 0x00000400,
2457 VK_ACCESS_TRANSFER_READ_BIT = 0x00000800,
2458 VK_ACCESS_TRANSFER_WRITE_BIT = 0x00001000,
2459 VK_ACCESS_HOST_READ_BIT = 0x00002000,
2460 VK_ACCESS_HOST_WRITE_BIT = 0x00004000,
2461 VK_ACCESS_MEMORY_READ_BIT = 0x00008000,
2462 VK_ACCESS_MEMORY_WRITE_BIT = 0x00010000,
Chris Forbes289cb792016-12-30 15:03:55 +13002463
Jesse Hallad250842017-03-10 18:35:38 -08002464 //@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13002465 VK_ACCESS_COMMAND_PROCESS_READ_BIT_NVX = 0x00020000,
Chris Forbes289cb792016-12-30 15:03:55 +13002466 VK_ACCESS_COMMAND_PROCESS_WRITE_BIT_NVX = 0x00040000,
Jesse Hall7ba0ac72017-07-07 17:13:23 -07002467
2468 //@extension("VK_EXT_blend_operation_advanced") // 149
2469 VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT = 0x00080000,
Jesse Halla13a3cf2018-07-09 15:51:52 -07002470
2471 //@extension("VK_EXT_conditional_rendering") // 82
2472 VK_ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT = 0x00100000,
Jesse Hallb5297192018-09-22 20:52:13 +02002473
2474 //@extension("VK_NV_shading_rate_image") // 165
2475 VK_ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV = 0x00800000,
2476
Jesse Halla363a8e2018-11-05 21:18:00 -07002477 //@extension("VK_NV_raytracing") // 166
2478 VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_NV = 0x00200000,
2479 VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_NV = 0x00400000,
Jesse Hallf47e8f82018-10-27 23:41:45 -07002480
2481 //@extension("VK_EXT_transform_feedback") // 29
2482 VK_ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT = 0x02000000,
2483 VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT = 0x04000000,
2484 VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT = 0x08000000,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002485}
2486
2487/// Buffer usage flags
Jesse Halld8bade02015-11-24 10:24:18 -08002488type VkFlags VkBufferUsageFlags
2489bitfield VkBufferUsageFlagBits {
Jesse Hall3fbc8562015-11-29 22:10:52 -08002490 VK_BUFFER_USAGE_TRANSFER_SRC_BIT = 0x00000001, /// Can be used as a source of transfer operations
2491 VK_BUFFER_USAGE_TRANSFER_DST_BIT = 0x00000002, /// Can be used as a destination of transfer operations
Jesse Halld27f6aa2015-08-15 17:58:48 -07002492 VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT = 0x00000004, /// Can be used as TBO
2493 VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT = 0x00000008, /// Can be used as IBO
2494 VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT = 0x00000010, /// Can be used as UBO
2495 VK_BUFFER_USAGE_STORAGE_BUFFER_BIT = 0x00000020, /// Can be used as SSBO
2496 VK_BUFFER_USAGE_INDEX_BUFFER_BIT = 0x00000040, /// Can be used as source of fixed function index fetch (index buffer)
2497 VK_BUFFER_USAGE_VERTEX_BUFFER_BIT = 0x00000080, /// Can be used as source of fixed function vertex fetch (VBO)
2498 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 -07002499
2500 //@extension("VK_EXT_conditional_rendering") // 82
2501 VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT = 0x00000200,
Jesse Hallb5297192018-09-22 20:52:13 +02002502
Jesse Halla363a8e2018-11-05 21:18:00 -07002503 //@extension("VK_NV_raytracing") // 166
2504 VK_BUFFER_USAGE_RAY_TRACING_BIT_NV = 0x00000400,
Jesse Hallf47e8f82018-10-27 23:41:45 -07002505
2506 //@extension("VK_EXT_transform_feedback") // 29
2507 VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT = 0x00000800,
2508 VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT = 0x00001000,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002509}
2510
2511/// Buffer creation flags
Jesse Halld8bade02015-11-24 10:24:18 -08002512type VkFlags VkBufferCreateFlags
2513bitfield VkBufferCreateFlagBits {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07002514 VK_BUFFER_CREATE_SPARSE_BINDING_BIT = 0x00000001, /// Buffer should support sparse backing
Jesse Halld27f6aa2015-08-15 17:58:48 -07002515 VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT = 0x00000002, /// Buffer should support sparse backing with partial residency
2516 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 -04002517
Ian Elliott28bd2c32017-10-13 09:21:12 -06002518 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04002519 VK_BUFFER_CREATE_PROTECTED_BIT = 0x00000008,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002520}
2521
2522/// Shader stage flags
Jesse Halld8bade02015-11-24 10:24:18 -08002523type VkFlags VkShaderStageFlags
2524bitfield VkShaderStageFlagBits {
Jesse Halld27f6aa2015-08-15 17:58:48 -07002525 VK_SHADER_STAGE_VERTEX_BIT = 0x00000001,
Jesse Hallae38f732015-11-19 21:32:50 -08002526 VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT = 0x00000002,
2527 VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT = 0x00000004,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002528 VK_SHADER_STAGE_GEOMETRY_BIT = 0x00000008,
2529 VK_SHADER_STAGE_FRAGMENT_BIT = 0x00000010,
2530 VK_SHADER_STAGE_COMPUTE_BIT = 0x00000020,
Jesse Hallc7467b72015-11-29 21:05:26 -08002531 VK_SHADER_STAGE_ALL_GRAPHICS = 0x0000001F,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002532
2533 VK_SHADER_STAGE_ALL = 0x7FFFFFFF,
Jesse Hallb5297192018-09-22 20:52:13 +02002534
Jesse Halla363a8e2018-11-05 21:18:00 -07002535 //@extension("VK_NV_raytracing") // 166
2536 VK_SHADER_STAGE_RAYGEN_BIT_NV = 0x00000100,
2537 VK_SHADER_STAGE_ANY_HIT_BIT_NV = 0x00000200,
2538 VK_SHADER_STAGE_CLOSEST_HIT_BIT_NV = 0x00000400,
2539 VK_SHADER_STAGE_MISS_BIT_NV = 0x00000800,
2540 VK_SHADER_STAGE_INTERSECTION_BIT_NV = 0x00001000,
2541 VK_SHADER_STAGE_CALLABLE_BIT_NV = 0x00002000,
Jesse Hallb5297192018-09-22 20:52:13 +02002542
2543 //@extension("VK_NV_mesh_shader") // 203
2544 VK_SHADER_STAGE_TASK_BIT_NV = 0x00000040,
2545 VK_SHADER_STAGE_MESH_BIT_NV = 0x00000080,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002546}
2547
Jesse Hallfbf97b02015-11-20 14:17:03 -08002548/// Descriptor pool create flags
Jesse Halld8bade02015-11-24 10:24:18 -08002549type VkFlags VkDescriptorPoolCreateFlags
2550bitfield VkDescriptorPoolCreateFlagBits {
Jesse Hallfbf97b02015-11-20 14:17:03 -08002551 VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT = 0x00000001,
Jesse Hall72e6a132018-04-06 13:00:44 -07002552
2553 //@extension("VK_EXT_descriptor_indexing") // 162
2554 VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT_EXT = 0x00000002,
Jesse Hallfbf97b02015-11-20 14:17:03 -08002555}
2556
2557/// Descriptor pool reset flags
Jesse Halld8bade02015-11-24 10:24:18 -08002558type VkFlags VkDescriptorPoolResetFlags
Jesse Halla6429252015-11-29 18:59:42 -08002559//bitfield VkDescriptorPoolResetFlagBits {
2560//}
Jesse Hallfbf97b02015-11-20 14:17:03 -08002561
Jesse Halld27f6aa2015-08-15 17:58:48 -07002562/// Image usage flags
Jesse Halld8bade02015-11-24 10:24:18 -08002563type VkFlags VkImageUsageFlags
2564bitfield VkImageUsageFlagBits {
Jesse Hall3fbc8562015-11-29 22:10:52 -08002565 VK_IMAGE_USAGE_TRANSFER_SRC_BIT = 0x00000001, /// Can be used as a source of transfer operations
2566 VK_IMAGE_USAGE_TRANSFER_DST_BIT = 0x00000002, /// Can be used as a destination of transfer operations
Jesse Halld27f6aa2015-08-15 17:58:48 -07002567 VK_IMAGE_USAGE_SAMPLED_BIT = 0x00000004, /// Can be sampled from (SAMPLED_IMAGE and COMBINED_IMAGE_SAMPLER descriptor types)
2568 VK_IMAGE_USAGE_STORAGE_BIT = 0x00000008, /// Can be used as storage image (STORAGE_IMAGE descriptor type)
2569 VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT = 0x00000010, /// Can be used as framebuffer color attachment
Jesse Hall5ae3abb2015-10-08 14:00:22 -07002570 VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000020, /// Can be used as framebuffer depth/stencil attachment
Jesse Halld27f6aa2015-08-15 17:58:48 -07002571 VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT = 0x00000040, /// Image data not needed outside of rendering
2572 VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT = 0x00000080, /// Can be used as framebuffer input attachment
Jesse Hallb5297192018-09-22 20:52:13 +02002573
2574 //@extension("VK_NV_shading_rate_image") // 165
2575 VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV = 0x00000100,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002576}
2577
2578/// Image creation flags
Jesse Halld8bade02015-11-24 10:24:18 -08002579type VkFlags VkImageCreateFlags
2580bitfield VkImageCreateFlagBits {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07002581 VK_IMAGE_CREATE_SPARSE_BINDING_BIT = 0x00000001, /// Image should support sparse backing
Jesse Halld27f6aa2015-08-15 17:58:48 -07002582 VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT = 0x00000002, /// Image should support sparse backing with partial residency
2583 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 -07002584 VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT = 0x00000008, /// Allows image views to have different format than the base image
2585 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 -08002586
Ian Elliott28bd2c32017-10-13 09:21:12 -06002587 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04002588 VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT = 0x00000020,
Jesse Hall8c954d32018-01-17 22:06:20 -08002589 VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT = 0x00000040,
Daniel Koch09f7bf92017-10-05 00:26:58 -04002590 VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT = 0x00000080,
2591 VK_IMAGE_CREATE_EXTENDED_USAGE_BIT = 0x00000100,
Daniel Koch09f7bf92017-10-05 00:26:58 -04002592 VK_IMAGE_CREATE_DISJOINT_BIT = 0x00000200,
Ian Elliott28bd2c32017-10-13 09:21:12 -06002593 VK_IMAGE_CREATE_ALIAS_BIT = 0x00000400,
2594 VK_IMAGE_CREATE_PROTECTED_BIT = 0x00000800,
Daniel Koch09f7bf92017-10-05 00:26:58 -04002595
Jesse Hallad250842017-03-10 18:35:38 -08002596 //@extension("VK_KHR_maintenance1") // 70
Jesse Hall77ad05b2017-03-10 22:02:20 -08002597 VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT_KHR = 0x00000020,
Jesse Hallad250842017-03-10 18:35:38 -08002598
Daniel Koch09f7bf92017-10-05 00:26:58 -04002599 //@extension("VK_KHR_device_group") // 61
2600 VK_IMAGE_CREATE_BIND_SFR_BIT_KHR = 0x00000040,
Jesse Hall77726222017-09-19 14:49:27 -05002601
Jesse Hall076f95d2017-09-20 11:34:47 -07002602 //@extension("VK_KHR_maintenance2") // 118
2603 VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT_KHR = 0x00000080,
2604 VK_IMAGE_CREATE_EXTENDED_USAGE_BIT_KHR = 0x00000100,
2605
2606 //@extension("VK_KHR_sampler_ycbcr_conversion") // 157
2607 VK_IMAGE_CREATE_DISJOINT_BIT_KHR = 0x00000200,
2608
2609 //@extension("VK_KHR_bind_memory2") // 158
2610 VK_IMAGE_CREATE_ALIAS_BIT_KHR = 0x00000400,
Ian Elliott28bd2c32017-10-13 09:21:12 -06002611
2612 //@extension("VK_EXT_sample_locations") // 144
2613 VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT = 0x00001000,
Jesse Hallb5297192018-09-22 20:52:13 +02002614
2615 //@extension("VK_NV_corner_sampled_image") // 51
2616 VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV = 0x00002000,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002617}
2618
Jesse Hallb00daad2015-11-29 19:46:20 -08002619/// Image view creation flags
Jesse Halld8bade02015-11-24 10:24:18 -08002620type VkFlags VkImageViewCreateFlags
Jesse Hallb00daad2015-11-29 19:46:20 -08002621//bitfield VkImageViewCreateFlagBits {
2622//}
Jesse Halld27f6aa2015-08-15 17:58:48 -07002623
2624/// Pipeline creation flags
Jesse Halld8bade02015-11-24 10:24:18 -08002625type VkFlags VkPipelineCreateFlags
2626bitfield VkPipelineCreateFlagBits {
Jesse Halld27f6aa2015-08-15 17:58:48 -07002627 VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT = 0x00000001,
2628 VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT = 0x00000002,
2629 VK_PIPELINE_CREATE_DERIVATIVE_BIT = 0x00000004,
Jesse Hallad250842017-03-10 18:35:38 -08002630
Ian Elliott28bd2c32017-10-13 09:21:12 -06002631 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04002632 VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT = 0x00000008,
2633 VK_PIPELINE_CREATE_DISPATCH_BASE = 0x00000010,
2634
2635 //@extension("VK_KHR_device_group") // 61
2636 VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR = 0x00000008,
2637 VK_PIPELINE_CREATE_DISPATCH_BASE_KHR = 0x00000010,
Jesse Hallb5297192018-09-22 20:52:13 +02002638
Jesse Halla363a8e2018-11-05 21:18:00 -07002639 //@extension("VK_NV_raytracing") // 166
2640 VK_PIPELINE_CREATE_DEFER_COMPILE_BIT_NV = 0x00000020,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002641}
2642
Jesse Hall65ab5522015-11-30 00:07:16 -08002643/// Color component flags
2644type VkFlags VkColorComponentFlags
2645bitfield VkColorComponentFlagBits {
2646 VK_COLOR_COMPONENT_R_BIT = 0x00000001,
2647 VK_COLOR_COMPONENT_G_BIT = 0x00000002,
2648 VK_COLOR_COMPONENT_B_BIT = 0x00000004,
2649 VK_COLOR_COMPONENT_A_BIT = 0x00000008,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002650}
2651
2652/// Fence creation flags
Jesse Halld8bade02015-11-24 10:24:18 -08002653type VkFlags VkFenceCreateFlags
2654bitfield VkFenceCreateFlagBits {
Jesse Halld27f6aa2015-08-15 17:58:48 -07002655 VK_FENCE_CREATE_SIGNALED_BIT = 0x00000001,
2656}
2657
2658/// Semaphore creation flags
Jesse Halld8bade02015-11-24 10:24:18 -08002659type VkFlags VkSemaphoreCreateFlags
Jesse Halla6429252015-11-29 18:59:42 -08002660//bitfield VkSemaphoreCreateFlagBits {
2661//}
Jesse Halld27f6aa2015-08-15 17:58:48 -07002662
2663/// Format capability flags
Jesse Halld8bade02015-11-24 10:24:18 -08002664type VkFlags VkFormatFeatureFlags
2665bitfield VkFormatFeatureFlagBits {
Jesse Halld27f6aa2015-08-15 17:58:48 -07002666 VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT = 0x00000001, /// Format can be used for sampled images (SAMPLED_IMAGE and COMBINED_IMAGE_SAMPLER descriptor types)
2667 VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT = 0x00000002, /// Format can be used for storage images (STORAGE_IMAGE descriptor type)
2668 VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT = 0x00000004, /// Format supports atomic operations in case it's used for storage images
2669 VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT = 0x00000008, /// Format can be used for uniform texel buffers (TBOs)
2670 VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT = 0x00000010, /// Format can be used for storage texel buffers (IBOs)
2671 VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT = 0x00000020, /// Format supports atomic operations in case it's used for storage texel buffers
2672 VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT = 0x00000040, /// Format can be used for vertex buffers (VBOs)
2673 VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT = 0x00000080, /// Format can be used for color attachment images
2674 VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT = 0x00000100, /// Format supports blending in case it's used for color attachment images
2675 VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000200, /// Format can be used for depth/stencil attachment images
Jesse Hall3fbc8562015-11-29 22:10:52 -08002676 VK_FORMAT_FEATURE_BLIT_SRC_BIT = 0x00000400, /// Format can be used as the source image of blits with vkCommandBlitImage
2677 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 -08002678 VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT = 0x00001000,
Jesse Hall26763382016-05-20 07:13:52 -07002679
Ian Elliott28bd2c32017-10-13 09:21:12 -06002680 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04002681 VK_FORMAT_FEATURE_TRANSFER_SRC_BIT = 0x00004000,
2682 VK_FORMAT_FEATURE_TRANSFER_DST_BIT = 0x00008000,
2683 VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT = 0x00020000,
2684 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT = 0x00040000,
2685 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT = 0x00080000,
2686 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT = 0x00100000,
2687 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT = 0x00200000,
2688 VK_FORMAT_FEATURE_DISJOINT_BIT = 0x00400000,
2689 VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT = 0x00800000,
2690
Jesse Hallad250842017-03-10 18:35:38 -08002691 //@extension("VK_IMG_filter_cubic") // 16
Jesse Hall26763382016-05-20 07:13:52 -07002692 VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG = 0x00002000,
Jesse Hall77ad05b2017-03-10 22:02:20 -08002693
Jesse Hallad250842017-03-10 18:35:38 -08002694 //@extension("VK_KHR_maintenance1") // 70
Jesse Hall77ad05b2017-03-10 22:02:20 -08002695 VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR = 0x00004000,
2696 VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR = 0x00008000,
Jesse Hall7ba0ac72017-07-07 17:13:23 -07002697
2698 //@extension("VK_EXT_sampler_filter_minmax") // 131
2699 VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT_EXT = 0x00010000,
Jesse Hall076f95d2017-09-20 11:34:47 -07002700
2701 //@extension("VK_KHR_sampler_ycbcr_conversion") // 157
2702 VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT_KHR = 0x00020000,
2703 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT_KHR = 0x00040000,
2704 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT_KHR = 0x00080000,
2705 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT_KHR = 0x00100000,
2706 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT_KHR = 0x00200000,
2707 VK_FORMAT_FEATURE_DISJOINT_BIT_KHR = 0x00400000,
2708 VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT_KHR = 0x00800000,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002709}
2710
2711/// Query control flags
Jesse Halld8bade02015-11-24 10:24:18 -08002712type VkFlags VkQueryControlFlags
2713bitfield VkQueryControlFlagBits {
Jesse Hall65ab5522015-11-30 00:07:16 -08002714 VK_QUERY_CONTROL_PRECISE_BIT = 0x00000001,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002715}
2716
2717/// Query result flags
Jesse Halld8bade02015-11-24 10:24:18 -08002718type VkFlags VkQueryResultFlags
2719bitfield VkQueryResultFlagBits {
Jesse Halld27f6aa2015-08-15 17:58:48 -07002720 VK_QUERY_RESULT_64_BIT = 0x00000001, /// Results of the queries are written to the destination buffer as 64-bit values
2721 VK_QUERY_RESULT_WAIT_BIT = 0x00000002, /// Results of the queries are waited on before proceeding with the result copy
2722 VK_QUERY_RESULT_WITH_AVAILABILITY_BIT = 0x00000004, /// Besides the results of the query, the availability of the results is also written
2723 VK_QUERY_RESULT_PARTIAL_BIT = 0x00000008, /// Copy the partial results of the query even if the final results aren't available
2724}
2725
2726/// Shader module creation flags
Jesse Halld8bade02015-11-24 10:24:18 -08002727type VkFlags VkShaderModuleCreateFlags
Jesse Halla6429252015-11-29 18:59:42 -08002728//bitfield VkShaderModuleCreateFlagBits {
2729//}
Jesse Halld27f6aa2015-08-15 17:58:48 -07002730
Jesse Halld27f6aa2015-08-15 17:58:48 -07002731/// Event creation flags
Jesse Halld8bade02015-11-24 10:24:18 -08002732type VkFlags VkEventCreateFlags
Jesse Halla6429252015-11-29 18:59:42 -08002733//bitfield VkEventCreateFlagBits {
2734//}
Jesse Halld27f6aa2015-08-15 17:58:48 -07002735
Jesse Halla15a4bf2015-11-19 22:48:02 -08002736/// Command buffer usage flags
Jesse Hall3fbc8562015-11-29 22:10:52 -08002737type VkFlags VkCommandBufferUsageFlags
2738bitfield VkCommandBufferUsageFlagBits {
2739 VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT = 0x00000001,
2740 VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT = 0x00000002,
2741 VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT = 0x00000004,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002742}
2743
2744/// Pipeline statistics flags
Jesse Halld8bade02015-11-24 10:24:18 -08002745type VkFlags VkQueryPipelineStatisticFlags
2746bitfield VkQueryPipelineStatisticFlagBits {
Jesse Hallae38f732015-11-19 21:32:50 -08002747 VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT = 0x00000001, /// Optional
2748 VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT = 0x00000002, /// Optional
2749 VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT = 0x00000004, /// Optional
2750 VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT = 0x00000008, /// Optional
2751 VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT = 0x00000010, /// Optional
2752 VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT = 0x00000020, /// Optional
2753 VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT = 0x00000040, /// Optional
2754 VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT = 0x00000080, /// Optional
2755 VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT = 0x00000100, /// Optional
2756 VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT = 0x00000200, /// Optional
2757 VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT = 0x00000400, /// Optional
Jesse Halld27f6aa2015-08-15 17:58:48 -07002758}
2759
2760/// Memory mapping flags
Jesse Halld8bade02015-11-24 10:24:18 -08002761type VkFlags VkMemoryMapFlags
Jesse Halla6429252015-11-29 18:59:42 -08002762//bitfield VkMemoryMapFlagBits {
2763//}
Jesse Halld27f6aa2015-08-15 17:58:48 -07002764
2765/// Bitfield of image aspects
Jesse Halld8bade02015-11-24 10:24:18 -08002766type VkFlags VkImageAspectFlags
2767bitfield VkImageAspectFlagBits {
Jesse Halld27f6aa2015-08-15 17:58:48 -07002768 VK_IMAGE_ASPECT_COLOR_BIT = 0x00000001,
2769 VK_IMAGE_ASPECT_DEPTH_BIT = 0x00000002,
2770 VK_IMAGE_ASPECT_STENCIL_BIT = 0x00000004,
2771 VK_IMAGE_ASPECT_METADATA_BIT = 0x00000008,
Jesse Hall076f95d2017-09-20 11:34:47 -07002772
Ian Elliott28bd2c32017-10-13 09:21:12 -06002773 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04002774 VK_IMAGE_ASPECT_PLANE_0_BIT = 0x00000010,
2775 VK_IMAGE_ASPECT_PLANE_1_BIT = 0x00000020,
2776 VK_IMAGE_ASPECT_PLANE_2_BIT = 0x00000040,
2777
Jesse Hall076f95d2017-09-20 11:34:47 -07002778 //@extension("VK_KHR_sampler_ycbcr_conversion") // 157
2779 VK_IMAGE_ASPECT_PLANE_0_BIT_KHR = 0x00000010,
2780 VK_IMAGE_ASPECT_PLANE_1_BIT_KHR = 0x00000020,
2781 VK_IMAGE_ASPECT_PLANE_2_BIT_KHR = 0x00000040,
Jesse Hallf47e8f82018-10-27 23:41:45 -07002782
2783 //@extension("VK_EXT_transform_feedback") // 29
2784 VK_IMAGE_ASPECT_MEMORY_PLANE_0_BIT_EXT = 0x00000080,
2785 VK_IMAGE_ASPECT_MEMORY_PLANE_1_BIT_EXT = 0x00000100,
2786 VK_IMAGE_ASPECT_MEMORY_PLANE_2_BIT_EXT = 0x00000200,
2787 VK_IMAGE_ASPECT_MEMORY_PLANE_3_BIT_EXT = 0x00000400,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002788}
2789
2790/// Sparse memory bind flags
Jesse Halld8bade02015-11-24 10:24:18 -08002791type VkFlags VkSparseMemoryBindFlags
Jesse Hall091ed9e2015-11-30 00:55:29 -08002792bitfield VkSparseMemoryBindFlagBits {
2793 VK_SPARSE_MEMORY_BIND_METADATA_BIT = 0x00000001,
2794}
Jesse Halld27f6aa2015-08-15 17:58:48 -07002795
2796/// Sparse image memory requirements flags
Jesse Halld8bade02015-11-24 10:24:18 -08002797type VkFlags VkSparseImageFormatFlags
2798bitfield VkSparseImageFormatFlagBits {
Jesse Hallb00daad2015-11-29 19:46:20 -08002799 VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT = 0x00000001, /// Image uses a single miptail region for all array slices
2800 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.
2801 VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT = 0x00000004, /// Image uses a non-standard sparse block size
Jesse Halld27f6aa2015-08-15 17:58:48 -07002802}
2803
2804/// Pipeline stages
Jesse Halld8bade02015-11-24 10:24:18 -08002805type VkFlags VkPipelineStageFlags
2806bitfield VkPipelineStageFlagBits {
Jesse Halld27f6aa2015-08-15 17:58:48 -07002807 VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT = 0x00000001, /// Before subsequent commands are processed
2808 VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT = 0x00000002, /// Draw/DispatchIndirect command fetch
2809 VK_PIPELINE_STAGE_VERTEX_INPUT_BIT = 0x00000004, /// Vertex/index fetch
2810 VK_PIPELINE_STAGE_VERTEX_SHADER_BIT = 0x00000008, /// Vertex shading
Jesse Hallae38f732015-11-19 21:32:50 -08002811 VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT = 0x00000010, /// Tessellation control shading
2812 VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT = 0x00000020, /// Tessellation evaluation shading
Jesse Halld27f6aa2015-08-15 17:58:48 -07002813 VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT = 0x00000040, /// Geometry shading
2814 VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT = 0x00000080, /// Fragment shading
2815 VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT = 0x00000100, /// Early fragment (depth/stencil) tests
2816 VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT = 0x00000200, /// Late fragment (depth/stencil) tests
2817 VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT = 0x00000400, /// Color attachment writes
2818 VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT = 0x00000800, /// Compute shading
2819 VK_PIPELINE_STAGE_TRANSFER_BIT = 0x00001000, /// Transfer/copy operations
Jesse Hall543a7ff2016-01-08 16:38:30 -08002820 VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT = 0x00002000,
2821 VK_PIPELINE_STAGE_HOST_BIT = 0x00004000, /// Indicates host (CPU) is a source/sink of the dependency
Jesse Halld27f6aa2015-08-15 17:58:48 -07002822
Jesse Hall543a7ff2016-01-08 16:38:30 -08002823 VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT = 0x00008000, /// All stages of the graphics pipeline
2824 VK_PIPELINE_STAGE_ALL_COMMANDS_BIT = 0x00010000, /// All graphics, compute, copy, and transition commands
Chris Forbes289cb792016-12-30 15:03:55 +13002825
Jesse Hallad250842017-03-10 18:35:38 -08002826 //@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13002827 VK_PIPELINE_STAGE_COMMAND_PROCESS_BIT_NVX = 0x00020000,
Jesse Halla13a3cf2018-07-09 15:51:52 -07002828
2829 //@extension("VK_EXT_conditional_rendering") // 82
2830 VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT = 0x00040000,
Jesse Hallb5297192018-09-22 20:52:13 +02002831
2832 //@extension("VK_NV_shading_rate_image") // 165
2833 VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV = 0x00400000,
2834
Jesse Halla363a8e2018-11-05 21:18:00 -07002835 //@extension("VK_NV_raytracing") // 166
2836 VK_PIPELINE_STAGE_RAY_TRACING_BIT_NV = 0x00200000,
2837 VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_NV = 0x02000000,
Jesse Hallb5297192018-09-22 20:52:13 +02002838
2839 //@extension("VK_NV_mesh_shader") // 203
2840 VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV = 0x00080000,
2841 VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV = 0x00100000,
Jesse Hallf47e8f82018-10-27 23:41:45 -07002842
2843 //@extension("VK_EXT_transform_feedback") // 29
2844 VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT = 0x01000000,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07002845}
2846
2847/// Render pass attachment description flags
Jesse Halld8bade02015-11-24 10:24:18 -08002848type VkFlags VkAttachmentDescriptionFlags
2849bitfield VkAttachmentDescriptionFlagBits {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07002850 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 -07002851}
2852
2853/// Subpass description flags
Jesse Halld8bade02015-11-24 10:24:18 -08002854type VkFlags VkSubpassDescriptionFlags
2855bitfield VkSubpassDescriptionFlagBits {
Jesse Hallad250842017-03-10 18:35:38 -08002856 //@extension("VK_NVX_multiview_per_view_attributes") // 98
2857 VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX = 0x00000001,
2858 VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX = 0x00000002,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002859}
2860
2861/// Command pool creation flags
Jesse Hall3fbc8562015-11-29 22:10:52 -08002862type VkFlags VkCommandPoolCreateFlags
2863bitfield VkCommandPoolCreateFlagBits {
2864 VK_COMMAND_POOL_CREATE_TRANSIENT_BIT = 0x00000001, /// Command buffers have a short lifetime
2865 VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT = 0x00000002, /// Command buffers may release their memory individually
Daniel Koch09f7bf92017-10-05 00:26:58 -04002866
Ian Elliott28bd2c32017-10-13 09:21:12 -06002867 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04002868 VK_COMMAND_POOL_CREATE_PROTECTED_BIT = 0x00000004,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002869}
2870
2871/// Command pool reset flags
Jesse Hall3fbc8562015-11-29 22:10:52 -08002872type VkFlags VkCommandPoolResetFlags
2873bitfield VkCommandPoolResetFlagBits {
2874 VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT = 0x00000001, /// Release resources owned by the pool
Jesse Halld27f6aa2015-08-15 17:58:48 -07002875}
2876
Jesse Hall3fbc8562015-11-29 22:10:52 -08002877type VkFlags VkCommandBufferResetFlags
2878bitfield VkCommandBufferResetFlagBits {
2879 VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT = 0x00000001, /// Release resources owned by the buffer
Jesse Hall5ae3abb2015-10-08 14:00:22 -07002880}
2881
Jesse Halld8bade02015-11-24 10:24:18 -08002882type VkFlags VkSampleCountFlags
2883bitfield VkSampleCountFlagBits {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07002884 VK_SAMPLE_COUNT_1_BIT = 0x00000001,
2885 VK_SAMPLE_COUNT_2_BIT = 0x00000002,
2886 VK_SAMPLE_COUNT_4_BIT = 0x00000004,
2887 VK_SAMPLE_COUNT_8_BIT = 0x00000008,
2888 VK_SAMPLE_COUNT_16_BIT = 0x00000010,
2889 VK_SAMPLE_COUNT_32_BIT = 0x00000020,
2890 VK_SAMPLE_COUNT_64_BIT = 0x00000040,
2891}
2892
Jesse Halld8bade02015-11-24 10:24:18 -08002893type VkFlags VkStencilFaceFlags
2894bitfield VkStencilFaceFlagBits {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07002895 VK_STENCIL_FACE_FRONT_BIT = 0x00000001, /// Front face
2896 VK_STENCIL_FACE_BACK_BIT = 0x00000002, /// Back face
Jesse Hallc7467b72015-11-29 21:05:26 -08002897 VK_STENCIL_FRONT_AND_BACK = 0x00000003,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002898}
2899
Jesse Halla6429252015-11-29 18:59:42 -08002900/// Instance creation flags
2901type VkFlags VkInstanceCreateFlags
2902//bitfield VkInstanceCreateFlagBits {
2903//}
2904
2905/// Device creation flags
2906type VkFlags VkDeviceCreateFlags
2907//bitfield VkDeviceCreateFlagBits {
2908//}
2909
2910/// Device queue creation flags
2911type VkFlags VkDeviceQueueCreateFlags
Ian Elliott28bd2c32017-10-13 09:21:12 -06002912@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04002913bitfield VkDeviceQueueCreateFlagBits {
2914 VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT = 0x00000001,
2915}
Jesse Halla6429252015-11-29 18:59:42 -08002916
2917/// Query pool creation flags
2918type VkFlags VkQueryPoolCreateFlags
2919//bitfield VkQueryPoolCreateFlagBits {
2920//}
2921
2922/// Buffer view creation flags
2923type VkFlags VkBufferViewCreateFlags
2924//bitfield VkBufferViewCreateFlagBits {
2925//}
2926
2927/// Pipeline cache creation flags
2928type VkFlags VkPipelineCacheCreateFlags
2929//bitfield VkPipelineCacheCreateFlagBits {
2930//}
2931
2932/// Pipeline shader stage creation flags
2933type VkFlags VkPipelineShaderStageCreateFlags
2934//bitfield VkPipelineShaderStageCreateFlagBits {
2935//}
2936
2937/// Descriptor set layout creation flags
2938type VkFlags VkDescriptorSetLayoutCreateFlags
Jesse Hallad250842017-03-10 18:35:38 -08002939bitfield VkDescriptorSetLayoutCreateFlagBits {
2940 //@extension("VK_KHR_push_descriptor") // 81
2941 VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR = 0x00000001,
Jesse Hall72e6a132018-04-06 13:00:44 -07002942
2943 //@extension("VK_EXT_descriptor_indexing") // 162
2944 VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT = 0x00000002,
Jesse Hallad250842017-03-10 18:35:38 -08002945}
Jesse Halla6429252015-11-29 18:59:42 -08002946
2947/// Pipeline vertex input state creation flags
2948type VkFlags VkPipelineVertexInputStateCreateFlags
2949//bitfield VkPipelineVertexInputStateCreateFlagBits {
2950//}
2951
2952/// Pipeline input assembly state creation flags
2953type VkFlags VkPipelineInputAssemblyStateCreateFlags
2954//bitfield VkPipelineInputAssemblyStateCreateFlagBits {
2955//}
2956
2957/// Tessellation state creation flags
2958type VkFlags VkPipelineTessellationStateCreateFlags
2959//bitfield VkPipelineTessellationStateCreateFlagBits {
2960//}
2961
2962/// Viewport state creation flags
2963type VkFlags VkPipelineViewportStateCreateFlags
2964//bitfield VkPipelineViewportStateCreateFlagBits {
2965//}
2966
Jesse Hall3fbc8562015-11-29 22:10:52 -08002967/// Rasterization state creation flags
2968type VkFlags VkPipelineRasterizationStateCreateFlags
2969//bitfield VkPipelineRasterizationStateCreateFlagBits {
Jesse Halla6429252015-11-29 18:59:42 -08002970//}
2971
2972/// Multisample state creation flags
2973type VkFlags VkPipelineMultisampleStateCreateFlags
2974//bitfield VkPipelineMultisampleStateCreateFlagBits {
2975//}
2976
2977/// Color blend state creation flags
2978type VkFlags VkPipelineColorBlendStateCreateFlags
2979//bitfield VkPipelineColorBlendStateCreateFlagBits {
2980//}
2981
2982/// Depth/stencil state creation flags
2983type VkFlags VkPipelineDepthStencilStateCreateFlags
2984//bitfield VkPipelineDepthStencilStateCreateFlagBits {
2985//}
2986
2987/// Dynamic state creation flags
2988type VkFlags VkPipelineDynamicStateCreateFlags
2989//bitfield VkPipelineDynamicStateCreateFlagBits {
2990//}
2991
2992/// Pipeline layout creation flags
2993type VkFlags VkPipelineLayoutCreateFlags
2994//bitfield VkPipelineLayoutCreateFlagBits {
2995//}
2996
2997/// Sampler creation flags
2998type VkFlags VkSamplerCreateFlags
2999//bitfield VkSamplerCreateFlagBits {
3000//}
3001
3002/// Render pass creation flags
3003type VkFlags VkRenderPassCreateFlags
3004//bitfield VkRenderPassCreateFlagBits {
3005//}
3006
3007/// Framebuffer creation flags
3008type VkFlags VkFramebufferCreateFlags
3009//bitfield VkFramebufferCreateFlagBits {
3010//}
3011
Jesse Halldc6d36c2015-11-29 19:12:15 -08003012/// Dependency flags
3013type VkFlags VkDependencyFlags
3014bitfield VkDependencyFlagBits {
3015 VK_DEPENDENCY_BY_REGION_BIT = 0x00000001,
Jesse Hallad250842017-03-10 18:35:38 -08003016
Ian Elliott28bd2c32017-10-13 09:21:12 -06003017 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04003018 VK_DEPENDENCY_DEVICE_GROUP_BIT = 0x00000004,
3019 VK_DEPENDENCY_VIEW_LOCAL_BIT = 0x00000002,
Jesse Hallad250842017-03-10 18:35:38 -08003020
Daniel Koch09f7bf92017-10-05 00:26:58 -04003021 //@extension("VK_KHR_multiview") // 54
3022 VK_DEPENDENCY_VIEW_LOCAL_BIT_KHR = 0x00000002,
3023
3024 //@extension("VK_KHR_device_group") // 61
3025 VK_DEPENDENCY_DEVICE_GROUP_BIT_KHR = 0x00000004,
Jesse Halldc6d36c2015-11-29 19:12:15 -08003026}
3027
Jesse Hallc7467b72015-11-29 21:05:26 -08003028/// Cull mode flags
3029type VkFlags VkCullModeFlags
3030bitfield VkCullModeFlagBits {
3031 VK_CULL_MODE_NONE = 0x00000000,
3032 VK_CULL_MODE_FRONT_BIT = 0x00000001,
3033 VK_CULL_MODE_BACK_BIT = 0x00000002,
3034 VK_CULL_MODE_FRONT_AND_BACK = 0x00000003,
3035}
3036
Ian Elliott28bd2c32017-10-13 09:21:12 -06003037//@vulkan1_1 flags
Daniel Koch09f7bf92017-10-05 00:26:58 -04003038
3039/// Subgroup feature flags
3040type VkFlags VkSubgroupFeatureFlags
3041bitfield VkSubgroupFeatureFlagBits {
3042 VK_SUBGROUP_FEATURE_BASIC_BIT = 0x00000001,
3043 VK_SUBGROUP_FEATURE_VOTE_BIT = 0x00000002,
3044 VK_SUBGROUP_FEATURE_ARITHMETIC_BIT = 0x00000004,
3045 VK_SUBGROUP_FEATURE_BALLOT_BIT = 0x00000008,
3046 VK_SUBGROUP_FEATURE_SHUFFLE_BIT = 0x00000010,
3047 VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT = 0x00000020,
3048 VK_SUBGROUP_FEATURE_CLUSTERED_BIT = 0x00000040,
3049 VK_SUBGROUP_FEATURE_QUAD_BIT = 0x00000080,
Jesse Hall72e6a132018-04-06 13:00:44 -07003050
3051 //@extension("VK_NV_shader_subgroup_partitioned") // 199
3052 VK_SUBGROUP_FEATURE_PARTITIONED_BIT_NV = 0x00000100,
Daniel Koch09f7bf92017-10-05 00:26:58 -04003053}
3054
3055/// Peer memory feature flags
3056type VkFlags VkPeerMemoryFeatureFlags
3057bitfield VkPeerMemoryFeatureFlagBits {
3058 VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT = 0x00000001,
3059 VK_PEER_MEMORY_FEATURE_COPY_DST_BIT = 0x00000002,
3060 VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT = 0x00000004,
3061 VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT = 0x00000008,
3062}
3063
3064/// Memory allocation flags
3065type VkFlags VkMemoryAllocateFlags
3066bitfield VkMemoryAllocateFlagBits {
3067 VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT = 0x00000001,
3068}
3069
3070type VkFlags VkCommandPoolTrimFlags
3071//bitfield VkCommandPoolTrimFlagBits {
3072//}
3073
3074type VkFlags VkDescriptorUpdateTemplateCreateFlags
3075//bitfield VkDescriptorUpdateTemplateCreateFlagBits {
3076//}
3077
3078/// External memory handle type flags
3079type VkFlags VkExternalMemoryHandleTypeFlags
3080bitfield VkExternalMemoryHandleTypeFlagBits {
3081 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT = 0x00000001,
3082 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT = 0x00000002,
3083 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 0x00000004,
3084 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT = 0x00000008,
3085 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT = 0x00000010,
3086 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT = 0x00000020,
3087 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT = 0x00000040,
Jesse Hall8c954d32018-01-17 22:06:20 -08003088
Jesse Hall8c954d32018-01-17 22:06:20 -08003089 //@extension("VK_EXT_external_memory_host") // 179
Jesse Hall36215a92018-01-18 15:04:37 -08003090 VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT = 0x00000080,
3091 VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT = 0x00000100,
3092
3093 //@extension("VK_EXT_external_memory_dma_buf") // 126
3094 VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT = 0x00000200,
3095
3096 //@extension("VK_ANDROID_external_memory_android_hardware_buffer") // 130
3097 VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID = 0x00000400,
Daniel Koch09f7bf92017-10-05 00:26:58 -04003098}
3099
3100/// External memory feature flags
3101type VkFlags VkExternalMemoryFeatureFlags
3102bitfield VkExternalMemoryFeatureFlagBits {
3103 VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT = 0x00000001,
3104 VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT = 0x00000002,
3105 VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT = 0x00000004,
3106}
3107
3108/// External fence handle type flags
3109type VkFlags VkExternalFenceHandleTypeFlags
3110bitfield VkExternalFenceHandleTypeFlagBits {
3111 VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT = 0x00000001,
3112 VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT = 0x00000002,
3113 VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 0x00000004,
3114 VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT = 0x00000008,
3115}
3116
3117/// External fence feature flags
3118type VkFlags VkExternalFenceFeatureFlags
3119bitfield VkExternalFenceFeatureFlagBits {
3120 VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT = 0x00000001,
3121 VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT = 0x00000002,
3122}
3123
3124/// Fence import flags
3125type VkFlags VkFenceImportFlags
3126bitfield VkFenceImportFlagBits {
3127 VK_FENCE_IMPORT_TEMPORARY_BIT = 0x00000001,
3128}
3129
3130/// Semaphore import flags
3131type VkFlags VkSemaphoreImportFlags
3132bitfield VkSemaphoreImportFlagBits {
3133 VK_SEMAPHORE_IMPORT_TEMPORARY_BIT = 0x00000001,
3134}
3135
3136/// External semaphore handle type flags
3137type VkFlags VkExternalSemaphoreHandleTypeFlags
3138bitfield VkExternalSemaphoreHandleTypeFlagBits {
3139 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT = 0x00000001,
3140 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT = 0x00000002,
3141 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 0x00000004,
3142 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT = 0x00000008,
3143 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT = 0x00000010,
3144}
3145
3146/// External semaphore feature flags
3147type VkFlags VkExternalSemaphoreFeatureFlags
3148bitfield VkExternalSemaphoreFeatureFlagBits {
3149 VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT = 0x00000001,
3150 VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT = 0x00000002,
3151}
3152
Jesse Hallad250842017-03-10 18:35:38 -08003153@extension("VK_KHR_surface") // 1
Jesse Halld8bade02015-11-24 10:24:18 -08003154type VkFlags VkSurfaceTransformFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08003155@extension("VK_KHR_surface") // 1
Jesse Halld8bade02015-11-24 10:24:18 -08003156bitfield VkSurfaceTransformFlagBitsKHR {
Jesse Hallf9fa9a52016-01-08 16:08:51 -08003157 VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR = 0x00000001,
Jesse Hall9ba8bc82015-11-30 16:22:16 -08003158 VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR = 0x00000002,
3159 VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR = 0x00000004,
3160 VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR = 0x00000008,
3161 VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR = 0x00000010,
3162 VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR = 0x00000020,
3163 VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR = 0x00000040,
3164 VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR = 0x00000080,
3165 VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR = 0x00000100,
Michael Lentine88594d72015-11-12 12:49:45 -08003166}
Jesse Halld27f6aa2015-08-15 17:58:48 -07003167
Jesse Hallad250842017-03-10 18:35:38 -08003168@extension("VK_KHR_surface") // 1
Jesse Halla6429252015-11-29 18:59:42 -08003169type VkFlags VkCompositeAlphaFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08003170@extension("VK_KHR_surface") // 1
Jesse Halla6429252015-11-29 18:59:42 -08003171bitfield VkCompositeAlphaFlagBitsKHR {
3172 VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR = 0x00000001,
3173 VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR = 0x00000002,
3174 VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR = 0x00000004,
3175 VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR = 0x00000008,
3176}
3177
Jesse Hallad250842017-03-10 18:35:38 -08003178@extension("VK_KHR_swapchain") // 2
Jesse Hallf4ab2b12015-11-30 16:04:55 -08003179type VkFlags VkSwapchainCreateFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08003180@extension("VK_KHR_swapchain") // 2
3181bitfield VkSwapchainCreateFlagBitsKHR {
Ian Elliott28bd2c32017-10-13 09:21:12 -06003182 //@vulkan1_1
Jesse Hall8c954d32018-01-17 22:06:20 -08003183 VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR = 0x00000001,
Daniel Koch09f7bf92017-10-05 00:26:58 -04003184 VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR = 0x00000002,
3185}
3186
Ian Elliott28bd2c32017-10-13 09:21:12 -06003187@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04003188@extension("VK_KHR_swapchain") // 2
3189type VkFlags VkDeviceGroupPresentModeFlagsKHR
Ian Elliott28bd2c32017-10-13 09:21:12 -06003190@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04003191@extension("VK_KHR_swapchain") // 2
3192bitfield VkDeviceGroupPresentModeFlagBitsKHR {
3193 VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR = 0x00000001,
3194 VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR = 0x00000002,
3195 VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR = 0x00000004,
3196 VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR = 0x00000008,
Jesse Hallad250842017-03-10 18:35:38 -08003197}
Jesse Hallf4ab2b12015-11-30 16:04:55 -08003198
Jesse Hallad250842017-03-10 18:35:38 -08003199@extension("VK_KHR_display") // 3
Jesse Halld8bade02015-11-24 10:24:18 -08003200type VkFlags VkDisplayPlaneAlphaFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08003201@extension("VK_KHR_display") // 3
Jesse Halld8bade02015-11-24 10:24:18 -08003202bitfield VkDisplayPlaneAlphaFlagBitsKHR {
Jesse Hallf4ab2b12015-11-30 16:04:55 -08003203 VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR = 0x00000001,
3204 VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR = 0x00000002,
3205 VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR = 0x00000004,
3206 VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR = 0x00000008,
Jesse Hall1356b0d2015-11-23 17:24:58 -08003207}
3208
Jesse Hallad250842017-03-10 18:35:38 -08003209@extension("VK_KHR_display") // 3
Jesse Hallf4ab2b12015-11-30 16:04:55 -08003210type VkFlags VkDisplaySurfaceCreateFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08003211//@extension("VK_KHR_display") // 3
Jesse Hallf4ab2b12015-11-30 16:04:55 -08003212//bitfield VkDisplaySurfaceCreateFlagBitsKHR {
3213//}
3214
Jesse Hallad250842017-03-10 18:35:38 -08003215@extension("VK_KHR_display") // 3
Jesse Hall9ba8bc82015-11-30 16:22:16 -08003216type VkFlags VkDisplayModeCreateFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08003217//@extension("VK_KHR_display") // 3
Jesse Hall9ba8bc82015-11-30 16:22:16 -08003218//bitfield VkDisplayModeCreateFlagBitsKHR {
3219//}
3220
Jesse Hallad250842017-03-10 18:35:38 -08003221@extension("VK_KHR_xlib_surface") // 5
Jesse Hallf9fa9a52016-01-08 16:08:51 -08003222type VkFlags VkXlibSurfaceCreateFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08003223//@extension("VK_KHR_xlib_surface") // 5
Jesse Hallf9fa9a52016-01-08 16:08:51 -08003224//bitfield VkXlibSurfaceCreateFlagBitsKHR {
3225//}
3226
Jesse Hallad250842017-03-10 18:35:38 -08003227@extension("VK_KHR_xcb_surface") // 6
Jesse Hallf9fa9a52016-01-08 16:08:51 -08003228type VkFlags VkXcbSurfaceCreateFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08003229//@extension("VK_KHR_xcb_surface") // 6
Jesse Hallf9fa9a52016-01-08 16:08:51 -08003230//bitfield VkXcbSurfaceCreateFlagBitsKHR {
3231//}
3232
Jesse Hallad250842017-03-10 18:35:38 -08003233@extension("VK_KHR_wayland_surface") // 7
Jesse Hallf9fa9a52016-01-08 16:08:51 -08003234type VkFlags VkWaylandSurfaceCreateFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08003235//@extension("VK_KHR_wayland_surface") // 7
Jesse Hallf9fa9a52016-01-08 16:08:51 -08003236//bitfield VkWaylandSurfaceCreateFlagBitsKHR {
3237//}
3238
Jesse Hallad250842017-03-10 18:35:38 -08003239@extension("VK_KHR_android_surface") // 9
Jesse Hallf9fa9a52016-01-08 16:08:51 -08003240type VkFlags VkAndroidSurfaceCreateFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08003241//@extension("VK_KHR_android_surface") // 9
Jesse Hallf9fa9a52016-01-08 16:08:51 -08003242//bitfield VkAndroidSurfaceCreateFlagBitsKHR {
3243//}
3244
Jesse Hallad250842017-03-10 18:35:38 -08003245@extension("VK_KHR_win32_surface") // 10
Jesse Hallf9fa9a52016-01-08 16:08:51 -08003246type VkFlags VkWin32SurfaceCreateFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08003247//@extension("VK_KHR_win32_surface") // 10
Jesse Hallf9fa9a52016-01-08 16:08:51 -08003248//bitfield VkWin32SurfaceCreateFlagBitsKHR {
3249//}
3250
Jesse Hallad250842017-03-10 18:35:38 -08003251@extension("VK_ANDROID_native_buffer") // 11
Jesse Hall889cd9a2017-02-25 22:12:23 -08003252type VkFlags VkSwapchainImageUsageFlagsANDROID
Jesse Hallad250842017-03-10 18:35:38 -08003253@extension("VK_ANDROID_native_buffer") // 11
Jesse Hall889cd9a2017-02-25 22:12:23 -08003254bitfield VkSwapchainImageUsageFlagBitsANDROID {
3255 VK_SWAPCHAIN_IMAGE_USAGE_FLAGS_SHARED_BIT_ANDROID = 0x00000001,
3256}
3257
Jesse Hallad250842017-03-10 18:35:38 -08003258@extension("VK_EXT_debug_report") // 12
Jesse Hall715b86a2016-01-16 16:34:29 -08003259type VkFlags VkDebugReportFlagsEXT
Jesse Hallad250842017-03-10 18:35:38 -08003260@extension("VK_EXT_debug_report") // 12
Jesse Hall715b86a2016-01-16 16:34:29 -08003261bitfield VkDebugReportFlagBitsEXT {
Jesse Halle2948d82016-02-25 04:19:32 -08003262 VK_DEBUG_REPORT_INFORMATION_BIT_EXT = 0x00000001,
3263 VK_DEBUG_REPORT_WARNING_BIT_EXT = 0x00000002,
3264 VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT = 0x00000004,
Jesse Hall715b86a2016-01-16 16:34:29 -08003265 VK_DEBUG_REPORT_ERROR_BIT_EXT = 0x00000008,
3266 VK_DEBUG_REPORT_DEBUG_BIT_EXT = 0x00000010,
3267}
3268
Jesse Hallf47e8f82018-10-27 23:41:45 -07003269@extension("VK_EXT_transform_feedback") // 29
3270type VkFlags VkPipelineRasterizationStateStreamCreateFlagsEXT
3271//@extension("VK_EXT_transform_feedback") // 29
3272//bitfield VkPipelineRasterizationStateStreamCreateFlagBitsEXT {
3273//}
3274
Jesse Hallad250842017-03-10 18:35:38 -08003275@extension("VK_NV_external_memory_capabilities") // 56
Chris Forbes289cb792016-12-30 15:03:55 +13003276type VkFlags VkExternalMemoryHandleTypeFlagsNV
Jesse Hallad250842017-03-10 18:35:38 -08003277@extension("VK_NV_external_memory_capabilities") // 56
Chris Forbes289cb792016-12-30 15:03:55 +13003278bitfield VkExternalMemoryHandleTypeFlagBitsNV {
Jesse Halleb02c472017-02-24 15:13:45 -08003279 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV = 0x00000001,
3280 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV = 0x00000002,
3281 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV = 0x00000004,
3282 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV = 0x00000008,
Chris Forbes289cb792016-12-30 15:03:55 +13003283}
3284
Jesse Hallad250842017-03-10 18:35:38 -08003285@extension("VK_NV_external_memory_capabilities") // 56
Chris Forbes289cb792016-12-30 15:03:55 +13003286type VkFlags VkExternalMemoryFeatureFlagsNV
Jesse Hallad250842017-03-10 18:35:38 -08003287@extension("VK_NV_external_memory_capabilities") // 56
Chris Forbes289cb792016-12-30 15:03:55 +13003288bitfield VkExternalMemoryFeatureFlagBitsNV {
Jesse Halleb02c472017-02-24 15:13:45 -08003289 VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV = 0x00000001,
3290 VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV = 0x00000002,
3291 VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV = 0x00000004,
Chris Forbes289cb792016-12-30 15:03:55 +13003292}
3293
Daniel Koch09f7bf92017-10-05 00:26:58 -04003294@extension("VK_KHR_device_group") // 61
3295type VkFlags VkPeerMemoryFeatureFlagsKHR
3296@extension("VK_KHR_device_group") // 61
3297bitfield VkPeerMemoryFeatureFlagBitsKHR {
3298 VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT_KHR = 0x00000001,
3299 VK_PEER_MEMORY_FEATURE_COPY_DST_BIT_KHR = 0x00000002,
3300 VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT_KHR = 0x00000004,
3301 VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT_KHR = 0x00000008,
Jesse Hallad250842017-03-10 18:35:38 -08003302}
3303
Daniel Koch09f7bf92017-10-05 00:26:58 -04003304@extension("VK_KHR_device_group") // 61
3305type VkFlags VkMemoryAllocateFlagsKHR
3306@extension("VK_KHR_device_group") // 61
3307bitfield VkMemoryAllocateFlagBitsKHR {
3308 VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT_KHR = 0x00000001,
Jesse Hallad250842017-03-10 18:35:38 -08003309}
3310
3311@extension("VK_NN_vi_surface") // 63
Jesse Hall77ad05b2017-03-10 22:02:20 -08003312type VkFlags VkViSurfaceCreateFlagsNN
Jesse Hallad250842017-03-10 18:35:38 -08003313//@extension("VK_NN_vi_surface") // 63
Jesse Hall77ad05b2017-03-10 22:02:20 -08003314//bitfield VkViSurfaceCreateFlagBitsNN {
3315//}
3316
Jesse Hallad250842017-03-10 18:35:38 -08003317@extension("VK_KHR_maintenance1") // 70
Jesse Hall77ad05b2017-03-10 22:02:20 -08003318type VkFlags VkCommandPoolTrimFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08003319//@extension("VK_KHR_maintenance1") // 70
Jesse Hall77ad05b2017-03-10 22:02:20 -08003320//bitfield VkCommandPoolTrimFlagBitsKHR {
3321//}
3322
Jesse Hall9492f992017-08-28 12:10:06 -07003323@extension("VK_KHR_external_memory_capabilities") // 72
3324type VkFlags VkExternalMemoryHandleTypeFlagsKHR
3325@extension("VK_KHR_external_memory_capabilities") // 72
3326bitfield VkExternalMemoryHandleTypeFlagBitsKHR {
3327 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = 0x00000001,
3328 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = 0x00000002,
3329 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = 0x00000004,
3330 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT_KHR = 0x00000008,
3331 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT_KHR = 0x00000010,
3332 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT_KHR = 0x00000020,
3333 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT_KHR = 0x00000040,
Jesse Hallad250842017-03-10 18:35:38 -08003334}
3335
Jesse Hall9492f992017-08-28 12:10:06 -07003336@extension("VK_KHR_external_memory_capabilities") // 72
3337type VkFlags VkExternalMemoryFeatureFlagsKHR
3338@extension("VK_KHR_external_memory_capabilities") // 72
3339bitfield VkExternalMemoryFeatureFlagBitsKHR {
3340 VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_KHR = 0x00000001,
3341 VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_KHR = 0x00000002,
3342 VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_KHR = 0x00000004,
Jesse Hallad250842017-03-10 18:35:38 -08003343}
3344
Jesse Hall9492f992017-08-28 12:10:06 -07003345@extension("VK_KHR_external_semaphore_capabilities") // 77
3346type VkFlags VkExternalSemaphoreHandleTypeFlagsKHR
3347@extension("VK_KHR_external_semaphore_capabilities") // 77
3348bitfield VkExternalSemaphoreHandleTypeFlagBitsKHR {
3349 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = 0x00000001
3350 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = 0x00000002
3351 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = 0x00000004
3352 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT_KHR = 0x00000008
3353 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_FENCE_FD_BIT_KHR = 0x00000010
Jesse Hallad250842017-03-10 18:35:38 -08003354}
3355
Jesse Hall9492f992017-08-28 12:10:06 -07003356@extension("VK_KHR_external_semaphore_capabilities") // 77
3357type VkFlags VkExternalSemaphoreFeatureFlagsKHR
3358@extension("VK_KHR_external_semaphore_capabilities") // 77
3359bitfield VkExternalSemaphoreFeatureFlagBitsKHR {
3360 VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT_KHR = 0x00000001,
3361 VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT_KHR = 0x00000002,
3362}
3363
3364@extension("VK_KHR_external_semaphore") // 78
3365type VkFlags VkSemaphoreImportFlagsKHR
3366@extension("VK_KHR_external_semaphore") // 78
3367bitfield VkSemaphoreImportFlagBitsKHR {
3368 VK_SEMAPHORE_IMPORT_TEMPORARY_BIT_KHR = 0x00000001,
Jesse Hallad250842017-03-10 18:35:38 -08003369}
3370
Jesse Halla13a3cf2018-07-09 15:51:52 -07003371@extension("VK_EXT_conditional_rendering") // 82
3372type VkFlags VkConditionalRenderingFlagsEXT
3373@extension("VK_EXT_conditional_rendering") // 82
3374bitfield VkConditionalRenderingFlagBitsEXT {
3375 VK_CONDITIONAL_RENDERING_INVERTED_BIT_EXT = 0x00000001,
3376}
3377
Jesse Hallad250842017-03-10 18:35:38 -08003378@extension("VK_KHR_descriptor_update_template") // 86
3379type VkFlags VkDescriptorUpdateTemplateCreateFlagsKHR
3380//@extension("VK_KHR_descriptor_update_template") // 86
3381//bitfield VkDescriptorUpdateTemplateCreateFlagBitsKHR {
3382//}
3383
3384@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13003385type VkFlags VkIndirectCommandsLayoutUsageFlagsNVX
Jesse Hallad250842017-03-10 18:35:38 -08003386@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13003387bitfield VkIndirectCommandsLayoutUsageFlagBitsNVX {
Jesse Halleb02c472017-02-24 15:13:45 -08003388 VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NVX = 0x00000001,
3389 VK_INDIRECT_COMMANDS_LAYOUT_USAGE_SPARSE_SEQUENCES_BIT_NVX = 0x00000002,
3390 VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EMPTY_EXECUTIONS_BIT_NVX = 0x00000004,
3391 VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NVX = 0x00000008,
Chris Forbes289cb792016-12-30 15:03:55 +13003392}
3393
Jesse Hallad250842017-03-10 18:35:38 -08003394@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13003395type VkFlags VkObjectEntryUsageFlagsNVX
Jesse Hallad250842017-03-10 18:35:38 -08003396@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13003397bitfield VkObjectEntryUsageFlagBitsNVX {
Jesse Halleb02c472017-02-24 15:13:45 -08003398 VK_OBJECT_ENTRY_USAGE_GRAPHICS_BIT_NVX = 0x00000001,
3399 VK_OBJECT_ENTRY_USAGE_COMPUTE_BIT_NVX = 0x00000002,
Chris Forbes289cb792016-12-30 15:03:55 +13003400}
3401
Jesse Hallad250842017-03-10 18:35:38 -08003402@extension("VK_EXT_display_surface_counter") // 91
Jesse Hall77ad05b2017-03-10 22:02:20 -08003403type VkFlags VkSurfaceCounterFlagsEXT
Jesse Hallad250842017-03-10 18:35:38 -08003404@extension("VK_EXT_display_surface_counter") // 91
Jesse Hall77ad05b2017-03-10 22:02:20 -08003405bitfield VkSurfaceCounterFlagBitsEXT {
3406 VK_SURFACE_COUNTER_VBLANK_EXT = 0x00000001,
3407}
3408
Jesse Hallad250842017-03-10 18:35:38 -08003409@extension("VK_NV_viewport_swizzle") // 99
3410type VkFlags VkPipelineViewportSwizzleStateCreateFlagsNV
3411//@extension("VK_NV_viewport_swizzle") // 99
3412//bitfield VkPipelineViewportSwizzleStateCreateFlagBitsNV {
3413//}
3414
3415@extension("VK_EXT_discard_rectangles") // 100
3416type VkFlags VkPipelineDiscardRectangleStateCreateFlagsEXT
3417//@extension("VK_EXT_discard_rectangles") // 100
3418//bitfield VkPipelineDiscardRectangleStateCreateFlagBitsEXT {
3419//}
3420
Jesse Hall8c954d32018-01-17 22:06:20 -08003421@extension("VK_EXT_conservative_rasterization") // 102
3422type VkFlags VkPipelineRasterizationConservativeStateCreateFlagsEXT
3423//@extension("VK_EXT_conservative_rasterization") // 102
3424//bitfield VkPipelineRasterizationConservativeStateCreateFlagBitsEXT {
3425//}
3426
Jesse Hall9492f992017-08-28 12:10:06 -07003427@extension("VK_KHR_external_fence_capabilities") // 113
3428type VkFlags VkExternalFenceHandleTypeFlagsKHR
3429@extension("VK_KHR_external_fence_capabilities") // 113
3430bitfield VkExternalFenceHandleTypeFlagBitsKHR {
3431 VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = 0x00000001,
3432 VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = 0x00000002,
3433 VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = 0x00000004,
3434 VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT_KHR = 0x00000008,
3435}
3436
3437@extension("VK_KHR_external_fence_capabilities") // 113
3438type VkFlags VkExternalFenceFeatureFlagsKHR
3439@extension("VK_KHR_external_fence_capabilities") // 113
3440bitfield VkExternalFenceFeatureFlagBitsKHR {
3441 VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT_KHR = 0x00000001,
3442 VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT_KHR = 0x00000002,
3443}
3444
3445@extension("VK_KHR_external_fence") // 114
3446type VkFlags VkFenceImportFlagsKHR
3447@extension("VK_KHR_external_fence") // 114
3448bitfield VkFenceImportFlagBitsKHR {
3449 VK_FENCE_IMPORT_TEMPORARY_BIT_KHR = 0x00000001,
3450}
3451
Jesse Hallad250842017-03-10 18:35:38 -08003452@extension("VK_MVK_ios_surface") // 123
3453type VkFlags VkIOSSurfaceCreateFlagsMVK
3454//@extension("VK_MVK_ios_surface") // 123
3455//bitfield VkIOSSurfaceCreateFlagBitsMVK {
3456//}
3457
3458@extension("VK_MVK_macos_surface") // 124
3459type VkFlags VkMacOSSurfaceCreateFlagsMVK
3460//@extension("VK_MVK_macos_surface") // 124
3461//bitfield VkMacOSSurfaceCreateFlagBitsMVK {
3462//}
3463
Jesse Hall8c954d32018-01-17 22:06:20 -08003464@extension("VK_EXT_debug_utils") // 129
3465type VkFlags VkDebugUtilsMessengerCallbackDataFlagsEXT
3466//@extension("VK_EXT_debug_utils") // 129
3467//bitfield VkDebugUtilsMessengerCallbackDataFlagBitsEXT {
3468//}
3469
3470@extension("VK_EXT_debug_utils") // 129
3471type VkFlags VkDebugUtilsMessengerCreateFlagsEXT
3472//@extension("VK_EXT_debug_utils") // 129
3473//bitfield VkDebugUtilsMessengerCreateFlagBitsEXT {
3474//}
3475
3476@extension("VK_EXT_debug_utils") // 129
3477type VkFlags VkDebugUtilsMessageSeverityFlagsEXT
3478@extension("VK_EXT_debug_utils") // 129
3479bitfield VkDebugUtilsMessageSeverityFlagBitsEXT {
3480 VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT = 0x00000001,
3481 VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT = 0x00000010,
3482 VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT = 0x00000100,
3483 VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT = 0x00001000,
3484}
3485
3486@extension("VK_EXT_debug_utils") // 129
3487type VkFlags VkDebugUtilsMessageTypeFlagsEXT
3488@extension("VK_EXT_debug_utils") // 129
3489bitfield VkDebugUtilsMessageTypeFlagBitsEXT {
3490 VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT = 0x00000001,
3491 VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT = 0x00000002,
3492 VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT = 0x00000004,
3493}
3494
Jesse Hall7ba0ac72017-07-07 17:13:23 -07003495@extension("VK_NV_fragment_coverage_to_color") // 150
3496type VkFlags VkPipelineCoverageToColorStateCreateFlagsNV
3497@extension("VK_NV_fragment_coverage_to_color") // 150
3498//bitfield VkPipelineCoverageToColorStateCreateFlagBitsNV {
3499//}
3500
3501@extension("VK_NV_framebuffer_mixed_samples") // 153
3502type VkFlags VkPipelineCoverageModulationStateCreateFlagsNV
3503@extension("VK_NV_framebuffer_mixed_samples") // 153
3504//bitfield VkPipelineCoverageModulationStateCreateFlagBitsNV {
3505//}
3506
Jesse Hall77726222017-09-19 14:49:27 -05003507@extension("VK_EXT_validation_cache") // 161
3508type VkFlags VkValidationCacheCreateFlagsEXT
3509@extension("VK_EXT_validation_cache") // 161
3510//bitfield VkValidationCacheCreateFlagBitsEXT {
3511//}
3512
Jesse Hall72e6a132018-04-06 13:00:44 -07003513@extension("VK_EXT_descriptor_indexing") // 162
3514type VkFlags VkDescriptorBindingFlagsEXT
3515@extension("VK_EXT_descriptor_indexing") // 162
3516bitfield VkDescriptorBindingFlagBitsEXT {
3517 VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT_EXT = 0x00000001,
3518 VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT_EXT = 0x00000002,
3519 VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT_EXT = 0x00000004,
3520 VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT_EXT = 0x00000008,
3521}
3522
Jesse Halla363a8e2018-11-05 21:18:00 -07003523@extension("VK_NV_raytracing") // 166
3524type VkFlags VkGeometryFlagsNV
3525@extension("VK_NV_raytracing") // 166
3526bitfield VkGeometryFlagBitsNV {
3527 VK_GEOMETRY_OPAQUE_BIT_NV = 0x00000001,
3528 VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_NV = 0x00000002,
Jesse Hallb5297192018-09-22 20:52:13 +02003529}
3530
Jesse Halla363a8e2018-11-05 21:18:00 -07003531@extension("VK_NV_raytracing") // 166
3532type VkFlags VkGeometryInstanceFlagsNV
3533@extension("VK_NV_raytracing") // 166
3534bitfield VkGeometryInstanceFlagBitsNV {
3535 VK_GEOMETRY_INSTANCE_TRIANGLE_CULL_DISABLE_BIT_NV = 0x00000001,
3536 VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_NV = 0x00000002,
3537 VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_NV = 0x00000004,
3538 VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_NV = 0x00000008,
Jesse Hallb5297192018-09-22 20:52:13 +02003539}
3540
Jesse Halla363a8e2018-11-05 21:18:00 -07003541@extension("VK_NV_raytracing") // 166
3542type VkFlags VkBuildAccelerationStructureFlagsNV
3543@extension("VK_NV_raytracing") // 166
3544bitfield VkBuildAccelerationStructureFlagBitsNV {
3545 VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_NV = 0x00000001,
3546 VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_NV = 0x00000002,
3547 VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_NV = 0x00000004,
3548 VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_NV = 0x00000008,
3549 VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_NV = 0x00000010,
Jesse Hallb5297192018-09-22 20:52:13 +02003550}
3551
Jesse Hall497c46f2018-10-08 12:52:48 -07003552@extension("VK_FUCHSIA_imagepipe_surface") // 215
3553type VkFlags VkImagePipeSurfaceCreateFlagsFUCHSIA
3554//@extension("VK_FUCHSIA_imagepipe_surface") // 215
3555//bitfield VkImagePipeSurfaceCreateFlagBitsFUCHSIA {
3556//}
3557
Jesse Halld27f6aa2015-08-15 17:58:48 -07003558//////////////////
3559// Structures //
3560//////////////////
3561
3562class VkOffset2D {
3563 s32 x
3564 s32 y
3565}
3566
3567class VkOffset3D {
3568 s32 x
3569 s32 y
3570 s32 z
3571}
3572
3573class VkExtent2D {
Jesse Hall3dd678a2016-01-08 21:52:01 -08003574 u32 width
3575 u32 height
Jesse Halld27f6aa2015-08-15 17:58:48 -07003576}
3577
3578class VkExtent3D {
Jesse Hall3dd678a2016-01-08 21:52:01 -08003579 u32 width
3580 u32 height
3581 u32 depth
Jesse Halld27f6aa2015-08-15 17:58:48 -07003582}
3583
3584class VkViewport {
Jesse Hall65ab5522015-11-30 00:07:16 -08003585 f32 x
3586 f32 y
Jesse Halld27f6aa2015-08-15 17:58:48 -07003587 f32 width
3588 f32 height
3589 f32 minDepth
3590 f32 maxDepth
3591}
3592
3593class VkRect2D {
3594 VkOffset2D offset
3595 VkExtent2D extent
3596}
3597
Jesse Halla15a4bf2015-11-19 22:48:02 -08003598class VkClearRect {
3599 VkRect2D rect
3600 u32 baseArrayLayer
Jesse Hall3fbc8562015-11-29 22:10:52 -08003601 u32 layerCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07003602}
3603
Jesse Hall65ab5522015-11-30 00:07:16 -08003604class VkComponentMapping {
3605 VkComponentSwizzle r
3606 VkComponentSwizzle g
3607 VkComponentSwizzle b
3608 VkComponentSwizzle a
Jesse Halld27f6aa2015-08-15 17:58:48 -07003609}
3610
3611class VkPhysicalDeviceProperties {
3612 u32 apiVersion
3613 u32 driverVersion
Jesse Hall65ab5522015-11-30 00:07:16 -08003614 u32 vendorID
3615 u32 deviceID
Jesse Halld27f6aa2015-08-15 17:58:48 -07003616 VkPhysicalDeviceType deviceType
Jesse Hall65ab5522015-11-30 00:07:16 -08003617 char[VK_MAX_PHYSICAL_DEVICE_NAME_SIZE] deviceName
3618 u8[VK_UUID_SIZE] pipelineCacheUUID
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003619 VkPhysicalDeviceLimits limits
3620 VkPhysicalDeviceSparseProperties sparseProperties
Jesse Halld27f6aa2015-08-15 17:58:48 -07003621}
3622
3623class VkExtensionProperties {
Jesse Hall65ab5522015-11-30 00:07:16 -08003624 char[VK_MAX_EXTENSION_NAME_SIZE] extensionName /// extension name
Jesse Halld27f6aa2015-08-15 17:58:48 -07003625 u32 specVersion /// version of the extension specification implemented
3626}
3627
3628class VkLayerProperties {
Jesse Hall65ab5522015-11-30 00:07:16 -08003629 char[VK_MAX_EXTENSION_NAME_SIZE] layerName /// layer name
Jesse Hall3fbc8562015-11-29 22:10:52 -08003630 u32 specVersion /// version of the layer specification implemented
3631 u32 implementationVersion /// build or release version of the layer's library
Jesse Hall65ab5522015-11-30 00:07:16 -08003632 char[VK_MAX_DESCRIPTION_SIZE] description /// Free-form description of the layer
Jesse Halld27f6aa2015-08-15 17:58:48 -07003633}
3634
Jesse Halla366a512015-11-19 22:30:07 -08003635class VkSubmitInfo {
Jesse Hall03b6fe12015-11-24 12:44:21 -08003636 VkStructureType sType /// Type of structure. Should be VK_STRUCTURE_TYPE_SUBMIT_INFO
3637 const void* pNext /// Next structure in chain
3638 u32 waitSemaphoreCount
Jesse Halla366a512015-11-19 22:30:07 -08003639 const VkSemaphore* pWaitSemaphores
Jesse Hall543a7ff2016-01-08 16:38:30 -08003640 const VkPipelineStageFlags* pWaitDstStageMask
Jesse Hall03b6fe12015-11-24 12:44:21 -08003641 u32 commandBufferCount
Jesse Hall3fbc8562015-11-29 22:10:52 -08003642 const VkCommandBuffer* pCommandBuffers
Jesse Hall03b6fe12015-11-24 12:44:21 -08003643 u32 signalSemaphoreCount
Jesse Halla366a512015-11-19 22:30:07 -08003644 const VkSemaphore* pSignalSemaphores
3645}
3646
Jesse Halld27f6aa2015-08-15 17:58:48 -07003647class VkApplicationInfo {
3648 VkStructureType sType /// Type of structure. Should be VK_STRUCTURE_TYPE_APPLICATION_INFO
3649 const void* pNext /// Next structure in chain
Jesse Hall3fbc8562015-11-29 22:10:52 -08003650 const char* pApplicationName
3651 u32 applicationVersion
Jesse Halld27f6aa2015-08-15 17:58:48 -07003652 const char* pEngineName
3653 u32 engineVersion
3654 u32 apiVersion
3655}
3656
Jesse Hall3fbc8562015-11-29 22:10:52 -08003657class VkAllocationCallbacks {
Jesse Halld27f6aa2015-08-15 17:58:48 -07003658 void* pUserData
Jesse Hall3fbc8562015-11-29 22:10:52 -08003659 PFN_vkAllocationFunction pfnAllocation
3660 PFN_vkReallocationFunction pfnReallocation
Jesse Halld27f6aa2015-08-15 17:58:48 -07003661 PFN_vkFreeFunction pfnFree
Jesse Hall3fbc8562015-11-29 22:10:52 -08003662 PFN_vkInternalAllocationNotification pfnInternalAllocation
Jesse Hall03b6fe12015-11-24 12:44:21 -08003663 PFN_vkInternalFreeNotification pfnInternalFree
Jesse Halld27f6aa2015-08-15 17:58:48 -07003664}
3665
3666class VkDeviceQueueCreateInfo {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003667 VkStructureType sStype /// Should be VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO
3668 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003669 VkDeviceQueueCreateFlags flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07003670 u32 queueFamilyIndex
Jesse Halldba27f72015-11-30 14:25:46 -08003671 u32 queueCount
Jesse Hallfbf97b02015-11-20 14:17:03 -08003672 const f32* pQueuePriorities
Jesse Halld27f6aa2015-08-15 17:58:48 -07003673}
3674
3675class VkDeviceCreateInfo {
3676 VkStructureType sType /// Should be VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO
3677 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003678 VkDeviceCreateFlags flags
Jesse Halldba27f72015-11-30 14:25:46 -08003679 u32 queueCreateInfoCount
3680 const VkDeviceQueueCreateInfo* pQueueCreateInfos
Jesse Hall3dd678a2016-01-08 21:52:01 -08003681 u32 enabledLayerCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07003682 const char* const* ppEnabledLayerNames /// Ordered list of layer names to be enabled
Jesse Hall3dd678a2016-01-08 21:52:01 -08003683 u32 enabledExtensionCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07003684 const char* const* ppEnabledExtensionNames
3685 const VkPhysicalDeviceFeatures* pEnabledFeatures
Jesse Halld27f6aa2015-08-15 17:58:48 -07003686}
3687
3688class VkInstanceCreateInfo {
3689 VkStructureType sType /// Should be VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO
3690 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003691 VkInstanceCreateFlags flags
Jesse Hall3fbc8562015-11-29 22:10:52 -08003692 const VkApplicationInfo* pApplicationInfo
Jesse Hall3dd678a2016-01-08 21:52:01 -08003693 u32 enabledLayerCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07003694 const char* const* ppEnabledLayerNames /// Ordered list of layer names to be enabled
Jesse Hall3dd678a2016-01-08 21:52:01 -08003695 u32 enabledExtensionCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07003696 const char* const* ppEnabledExtensionNames /// Extension names to be enabled
3697}
3698
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003699class VkQueueFamilyProperties {
Jesse Halld27f6aa2015-08-15 17:58:48 -07003700 VkQueueFlags queueFlags /// Queue flags
3701 u32 queueCount
Jesse Hallacfa5342015-11-19 21:51:33 -08003702 u32 timestampValidBits
Jesse Hall65ab5522015-11-30 00:07:16 -08003703 VkExtent3D minImageTransferGranularity
Jesse Halld27f6aa2015-08-15 17:58:48 -07003704}
3705
3706class VkPhysicalDeviceMemoryProperties {
3707 u32 memoryTypeCount
3708 VkMemoryType[VK_MAX_MEMORY_TYPES] memoryTypes
3709 u32 memoryHeapCount
3710 VkMemoryHeap[VK_MAX_MEMORY_HEAPS] memoryHeaps
3711}
3712
Jesse Hall3fbc8562015-11-29 22:10:52 -08003713class VkMemoryAllocateInfo {
Jesse Hallf4ab2b12015-11-30 16:04:55 -08003714 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO
Jesse Halld27f6aa2015-08-15 17:58:48 -07003715 const void* pNext /// Pointer to next structure
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003716 VkDeviceSize allocationSize /// Size of memory allocation
Jesse Halld27f6aa2015-08-15 17:58:48 -07003717 u32 memoryTypeIndex /// Index of the of the memory type to allocate from
3718}
3719
3720class VkMemoryRequirements {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003721 VkDeviceSize size /// Specified in bytes
3722 VkDeviceSize alignment /// Specified in bytes
Jesse Halld27f6aa2015-08-15 17:58:48 -07003723 u32 memoryTypeBits /// Bitfield of the allowed memory type indices into memoryTypes[] for this object
3724}
3725
3726class VkSparseImageFormatProperties {
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08003727 VkImageAspectFlagBits aspectMask
Jesse Halld27f6aa2015-08-15 17:58:48 -07003728 VkExtent3D imageGranularity
3729 VkSparseImageFormatFlags flags
3730}
3731
3732class VkSparseImageMemoryRequirements {
Jesse Hallb00daad2015-11-29 19:46:20 -08003733 VkSparseImageFormatProperties formatProperties
Jesse Hallf9fa9a52016-01-08 16:08:51 -08003734 u32 imageMipTailFirstLod
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003735 VkDeviceSize imageMipTailSize /// Specified in bytes, must be a multiple of image block size / alignment
3736 VkDeviceSize imageMipTailOffset /// Specified in bytes, must be a multiple of image block size / alignment
3737 VkDeviceSize imageMipTailStride /// Specified in bytes, must be a multiple of image block size / alignment
Jesse Halld27f6aa2015-08-15 17:58:48 -07003738}
3739
3740class VkMemoryType {
3741 VkMemoryPropertyFlags propertyFlags /// Memory properties of this memory type
3742 u32 heapIndex /// Index of the memory heap allocations of this memory type are taken from
3743}
3744
3745class VkMemoryHeap {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003746 VkDeviceSize size /// Available memory in the heap
Jesse Halld27f6aa2015-08-15 17:58:48 -07003747 VkMemoryHeapFlags flags /// Flags for the heap
3748}
3749
3750class VkMappedMemoryRange {
3751 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE
3752 const void* pNext /// Pointer to next structure
Jesse Hall3fbc8562015-11-29 22:10:52 -08003753 VkDeviceMemory memory /// Mapped memory object
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003754 VkDeviceSize offset /// Offset within the mapped memory the range starts from
3755 VkDeviceSize size /// Size of the range within the mapped memory
Jesse Halld27f6aa2015-08-15 17:58:48 -07003756}
3757
3758class VkFormatProperties {
3759 VkFormatFeatureFlags linearTilingFeatures /// Format features in case of linear tiling
3760 VkFormatFeatureFlags optimalTilingFeatures /// Format features in case of optimal tiling
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003761 VkFormatFeatureFlags bufferFeatures /// Format features supported by buffers
Jesse Halld27f6aa2015-08-15 17:58:48 -07003762}
3763
3764class VkImageFormatProperties {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003765 VkExtent3D maxExtent /// max image dimensions for this resource type
3766 u32 maxMipLevels /// max number of mipmap levels for this resource type
Jesse Halla15a4bf2015-11-19 22:48:02 -08003767 u32 maxArrayLayers /// max array layers for this resource type
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003768 VkSampleCountFlags sampleCounts /// supported sample counts for this resource type
3769 VkDeviceSize maxResourceSize /// max size (in bytes) of this resource type
3770}
3771
Jesse Halla15a4bf2015-11-19 22:48:02 -08003772class VkDescriptorImageInfo {
3773 VkSampler sampler
3774 VkImageView imageView
3775 VkImageLayout imageLayout
3776}
3777
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003778class VkDescriptorBufferInfo {
3779 VkBuffer buffer /// Buffer used for this descriptor when the descriptor is UNIFORM_BUFFER[_DYNAMIC]
3780 VkDeviceSize offset /// Base offset from buffer start in bytes to update in the descriptor set.
3781 VkDeviceSize range /// Size in bytes of the buffer resource for this descriptor update.
Jesse Halld27f6aa2015-08-15 17:58:48 -07003782}
3783
Jesse Halld27f6aa2015-08-15 17:58:48 -07003784class VkWriteDescriptorSet {
3785 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET
3786 const void* pNext /// Pointer to next structure
Jesse Hall3fbc8562015-11-29 22:10:52 -08003787 VkDescriptorSet dstSet /// Destination descriptor set
3788 u32 dstBinding /// Binding within the destination descriptor set to write
3789 u32 dstArrayElement /// Array element within the destination binding to write
Jesse Hall03b6fe12015-11-24 12:44:21 -08003790 u32 descriptorCount /// Number of descriptors to write (determines the size of the array pointed by <pDescriptors>)
Jesse Halld27f6aa2015-08-15 17:58:48 -07003791 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 -08003792 const VkDescriptorImageInfo* pImageInfo
3793 const VkDescriptorBufferInfo* pBufferInfo
3794 const VkBufferView* pTexelBufferView
Jesse Halld27f6aa2015-08-15 17:58:48 -07003795}
3796
3797class VkCopyDescriptorSet {
3798 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET
3799 const void* pNext /// Pointer to next structure
3800 VkDescriptorSet srcSet /// Source descriptor set
3801 u32 srcBinding /// Binding within the source descriptor set to copy from
3802 u32 srcArrayElement /// Array element within the source binding to copy from
Jesse Hall3fbc8562015-11-29 22:10:52 -08003803 VkDescriptorSet dstSet /// Destination descriptor set
3804 u32 dstBinding /// Binding within the destination descriptor set to copy to
3805 u32 dstArrayElement /// Array element within the destination binding to copy to
Jesse Hall03b6fe12015-11-24 12:44:21 -08003806 u32 descriptorCount /// Number of descriptors to copy
Jesse Halld27f6aa2015-08-15 17:58:48 -07003807}
3808
3809class VkBufferCreateInfo {
3810 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO
3811 const void* pNext /// Pointer to next structure.
Jesse Halla6429252015-11-29 18:59:42 -08003812 VkBufferCreateFlags flags /// Buffer creation flags
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003813 VkDeviceSize size /// Specified in bytes
Jesse Halld27f6aa2015-08-15 17:58:48 -07003814 VkBufferUsageFlags usage /// Buffer usage flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07003815 VkSharingMode sharingMode
Jesse Hall03b6fe12015-11-24 12:44:21 -08003816 u32 queueFamilyIndexCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07003817 const u32* pQueueFamilyIndices
3818}
3819
3820class VkBufferViewCreateInfo {
3821 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO
3822 const void* pNext /// Pointer to next structure.
Jesse Halla6429252015-11-29 18:59:42 -08003823 VkBufferViewCreateFlags flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07003824 VkBuffer buffer
Jesse Halld27f6aa2015-08-15 17:58:48 -07003825 VkFormat format /// Optionally specifies format of elements
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003826 VkDeviceSize offset /// Specified in bytes
3827 VkDeviceSize range /// View size specified in bytes
Jesse Halld27f6aa2015-08-15 17:58:48 -07003828}
3829
3830class VkImageSubresource {
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08003831 VkImageAspectFlagBits aspectMask
Jesse Halld27f6aa2015-08-15 17:58:48 -07003832 u32 mipLevel
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003833 u32 arrayLayer
Jesse Halld27f6aa2015-08-15 17:58:48 -07003834}
3835
3836class VkImageSubresourceRange {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003837 VkImageAspectFlags aspectMask
Jesse Halld27f6aa2015-08-15 17:58:48 -07003838 u32 baseMipLevel
Jesse Hall3fbc8562015-11-29 22:10:52 -08003839 u32 levelCount
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003840 u32 baseArrayLayer
Jesse Hall3fbc8562015-11-29 22:10:52 -08003841 u32 layerCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07003842}
3843
3844class VkMemoryBarrier {
3845 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_MEMORY_BARRIER
3846 const void* pNext /// Pointer to next structure.
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08003847 VkAccessFlags srcAccessMask
3848 VkAccessFlags dstAccessMask
Jesse Halld27f6aa2015-08-15 17:58:48 -07003849}
3850
3851class VkBufferMemoryBarrier {
3852 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER
3853 const void* pNext /// Pointer to next structure.
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08003854 VkAccessFlags srcAccessMask
3855 VkAccessFlags dstAccessMask
Jesse Halld27f6aa2015-08-15 17:58:48 -07003856 u32 srcQueueFamilyIndex /// Queue family to transition ownership from
Jesse Hall3fbc8562015-11-29 22:10:52 -08003857 u32 dstQueueFamilyIndex /// Queue family to transition ownership to
Jesse Halld27f6aa2015-08-15 17:58:48 -07003858 VkBuffer buffer /// Buffer to sync
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003859 VkDeviceSize offset /// Offset within the buffer to sync
3860 VkDeviceSize size /// Amount of bytes to sync
Jesse Halld27f6aa2015-08-15 17:58:48 -07003861}
3862
3863class VkImageMemoryBarrier {
3864 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER
3865 const void* pNext /// Pointer to next structure.
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08003866 VkAccessFlags srcAccessMask
3867 VkAccessFlags dstAccessMask
Jesse Halld27f6aa2015-08-15 17:58:48 -07003868 VkImageLayout oldLayout /// Current layout of the image
3869 VkImageLayout newLayout /// New layout to transition the image to
3870 u32 srcQueueFamilyIndex /// Queue family to transition ownership from
Jesse Hall3fbc8562015-11-29 22:10:52 -08003871 u32 dstQueueFamilyIndex /// Queue family to transition ownership to
Jesse Halld27f6aa2015-08-15 17:58:48 -07003872 VkImage image /// Image to sync
3873 VkImageSubresourceRange subresourceRange /// Subresource range to sync
3874}
3875
3876class VkImageCreateInfo {
3877 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO
3878 const void* pNext /// Pointer to next structure.
Jesse Halla6429252015-11-29 18:59:42 -08003879 VkImageCreateFlags flags /// Image creation flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07003880 VkImageType imageType
3881 VkFormat format
3882 VkExtent3D extent
3883 u32 mipLevels
Jesse Halla15a4bf2015-11-19 22:48:02 -08003884 u32 arrayLayers
Jesse Hall091ed9e2015-11-30 00:55:29 -08003885 VkSampleCountFlagBits samples
Jesse Halld27f6aa2015-08-15 17:58:48 -07003886 VkImageTiling tiling
3887 VkImageUsageFlags usage /// Image usage flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07003888 VkSharingMode sharingMode /// Cross-queue-family sharing mode
Jesse Hall03b6fe12015-11-24 12:44:21 -08003889 u32 queueFamilyIndexCount /// Number of queue families to share across
Jesse Halld27f6aa2015-08-15 17:58:48 -07003890 const u32* pQueueFamilyIndices /// Array of queue family indices to share across
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003891 VkImageLayout initialLayout /// Initial image layout for all subresources
Jesse Halld27f6aa2015-08-15 17:58:48 -07003892}
3893
3894class VkSubresourceLayout {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003895 VkDeviceSize offset /// Specified in bytes
3896 VkDeviceSize size /// Specified in bytes
3897 VkDeviceSize rowPitch /// Specified in bytes
Jesse Hall543a7ff2016-01-08 16:38:30 -08003898 VkDeviceSize arrayPitch /// Specified in bytes
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003899 VkDeviceSize depthPitch /// Specified in bytes
Jesse Halld27f6aa2015-08-15 17:58:48 -07003900}
3901
3902class VkImageViewCreateInfo {
3903 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO
3904 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003905 VkImageViewCreateFlags flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07003906 VkImage image
3907 VkImageViewType viewType
3908 VkFormat format
Jesse Hall65ab5522015-11-30 00:07:16 -08003909 VkComponentMapping components
Jesse Halld27f6aa2015-08-15 17:58:48 -07003910 VkImageSubresourceRange subresourceRange
Jesse Halld27f6aa2015-08-15 17:58:48 -07003911}
3912
3913class VkBufferCopy {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003914 VkDeviceSize srcOffset /// Specified in bytes
Jesse Hall3fbc8562015-11-29 22:10:52 -08003915 VkDeviceSize dstOffset /// Specified in bytes
Jesse Hallb00daad2015-11-29 19:46:20 -08003916 VkDeviceSize size /// Specified in bytes
Jesse Halld27f6aa2015-08-15 17:58:48 -07003917}
3918
Jesse Halla6429252015-11-29 18:59:42 -08003919class VkSparseMemoryBind {
Jesse Hallb00daad2015-11-29 19:46:20 -08003920 VkDeviceSize resourceOffset /// Specified in bytes
3921 VkDeviceSize size /// Specified in bytes
Jesse Hall3fbc8562015-11-29 22:10:52 -08003922 VkDeviceMemory memory
3923 VkDeviceSize memoryOffset /// Specified in bytes
Jesse Halld27f6aa2015-08-15 17:58:48 -07003924 VkSparseMemoryBindFlags flags
3925}
3926
Jesse Halla6429252015-11-29 18:59:42 -08003927class VkSparseImageMemoryBind {
Jesse Halld27f6aa2015-08-15 17:58:48 -07003928 VkImageSubresource subresource
3929 VkOffset3D offset
3930 VkExtent3D extent
Jesse Hall3fbc8562015-11-29 22:10:52 -08003931 VkDeviceMemory memory
3932 VkDeviceSize memoryOffset /// Specified in bytes
Jesse Halld27f6aa2015-08-15 17:58:48 -07003933 VkSparseMemoryBindFlags flags
3934}
3935
Jesse Halla6429252015-11-29 18:59:42 -08003936class VkSparseBufferMemoryBindInfo {
3937 VkBuffer buffer
3938 u32 bindCount
3939 const VkSparseMemoryBind* pBinds
3940}
3941
3942class VkSparseImageOpaqueMemoryBindInfo {
3943 VkImage image
3944 u32 bindCount
3945 const VkSparseMemoryBind* pBinds
3946}
3947
3948class VkSparseImageMemoryBindInfo {
3949 VkImage image
3950 u32 bindCount
3951 const VkSparseMemoryBind* pBinds
3952}
3953
3954class VkBindSparseInfo {
3955 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_BIND_SPARSE_INFO
3956 const void* pNext
3957 u32 waitSemaphoreCount
3958 const VkSemaphore* pWaitSemaphores
3959 u32 numBufferBinds
3960 const VkSparseBufferMemoryBindInfo* pBufferBinds
3961 u32 numImageOpaqueBinds
3962 const VkSparseImageOpaqueMemoryBindInfo* pImageOpaqueBinds
3963 u32 numImageBinds
3964 const VkSparseImageMemoryBindInfo* pImageBinds
3965 u32 signalSemaphoreCount
3966 const VkSemaphore* pSignalSemaphores
3967}
3968
Jesse Hall65ab5522015-11-30 00:07:16 -08003969class VkImageSubresourceLayers {
3970 VkImageAspectFlags aspectMask
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003971 u32 mipLevel
Jesse Halla15a4bf2015-11-19 22:48:02 -08003972 u32 baseArrayLayer
Jesse Hall3fbc8562015-11-29 22:10:52 -08003973 u32 layerCount
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003974}
3975
Jesse Halld27f6aa2015-08-15 17:58:48 -07003976class VkImageCopy {
Jesse Hall65ab5522015-11-30 00:07:16 -08003977 VkImageSubresourceLayers srcSubresource
Jesse Halld27f6aa2015-08-15 17:58:48 -07003978 VkOffset3D srcOffset /// Specified in pixels for both compressed and uncompressed images
Jesse Hall65ab5522015-11-30 00:07:16 -08003979 VkImageSubresourceLayers dstSubresource
Jesse Hall3fbc8562015-11-29 22:10:52 -08003980 VkOffset3D dstOffset /// Specified in pixels for both compressed and uncompressed images
Jesse Halld27f6aa2015-08-15 17:58:48 -07003981 VkExtent3D extent /// Specified in pixels for both compressed and uncompressed images
3982}
3983
3984class VkImageBlit {
Jesse Hall65ab5522015-11-30 00:07:16 -08003985 VkImageSubresourceLayers srcSubresource
Jesse Hall3dd678a2016-01-08 21:52:01 -08003986 VkOffset3D[2] srcOffsets
Jesse Hall65ab5522015-11-30 00:07:16 -08003987 VkImageSubresourceLayers dstSubresource
Jesse Hall3dd678a2016-01-08 21:52:01 -08003988 VkOffset3D[2] dstOffsets
Jesse Halld27f6aa2015-08-15 17:58:48 -07003989}
3990
3991class VkBufferImageCopy {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003992 VkDeviceSize bufferOffset /// Specified in bytes
Jesse Halld27f6aa2015-08-15 17:58:48 -07003993 u32 bufferRowLength /// Specified in texels
3994 u32 bufferImageHeight
Jesse Hall65ab5522015-11-30 00:07:16 -08003995 VkImageSubresourceLayers imageSubresource
Jesse Halld27f6aa2015-08-15 17:58:48 -07003996 VkOffset3D imageOffset /// Specified in pixels for both compressed and uncompressed images
3997 VkExtent3D imageExtent /// Specified in pixels for both compressed and uncompressed images
3998}
3999
4000class VkImageResolve {
Jesse Hall65ab5522015-11-30 00:07:16 -08004001 VkImageSubresourceLayers srcSubresource
Jesse Halld27f6aa2015-08-15 17:58:48 -07004002 VkOffset3D srcOffset
Jesse Hall65ab5522015-11-30 00:07:16 -08004003 VkImageSubresourceLayers dstSubresource
Jesse Hall3fbc8562015-11-29 22:10:52 -08004004 VkOffset3D dstOffset
Jesse Halld27f6aa2015-08-15 17:58:48 -07004005 VkExtent3D extent
4006}
4007
4008class VkShaderModuleCreateInfo {
4009 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO
4010 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08004011 VkShaderModuleCreateFlags flags /// Reserved
Jesse Halld27f6aa2015-08-15 17:58:48 -07004012 platform.size_t codeSize /// Specified in bytes
Jesse Halla9bb62b2015-11-21 19:31:56 -08004013 const u32* pCode /// Binary code of size codeSize
Jesse Halld27f6aa2015-08-15 17:58:48 -07004014}
4015
Jesse Halld27f6aa2015-08-15 17:58:48 -07004016class VkDescriptorSetLayoutBinding {
Jesse Hall091ed9e2015-11-30 00:55:29 -08004017 u32 binding
Jesse Halld27f6aa2015-08-15 17:58:48 -07004018 VkDescriptorType descriptorType /// Type of the descriptors in this binding
Jesse Halldba27f72015-11-30 14:25:46 -08004019 u32 descriptorCount /// Number of descriptors in this binding
Jesse Halld27f6aa2015-08-15 17:58:48 -07004020 VkShaderStageFlags stageFlags /// Shader stages this binding is visible to
4021 const VkSampler* pImmutableSamplers /// Immutable samplers (used if descriptor type is SAMPLER or COMBINED_IMAGE_SAMPLER, is either NULL or contains <count> number of elements)
4022}
4023
4024class VkDescriptorSetLayoutCreateInfo {
4025 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO
4026 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08004027 VkDescriptorSetLayoutCreateFlags flags
Jesse Hall03b6fe12015-11-24 12:44:21 -08004028 u32 bindingCount /// Number of bindings in the descriptor set layout
Jesse Hall543a7ff2016-01-08 16:38:30 -08004029 const VkDescriptorSetLayoutBinding* pBindings /// Array of descriptor set layout bindings
Jesse Halld27f6aa2015-08-15 17:58:48 -07004030}
4031
Jesse Hall65ab5522015-11-30 00:07:16 -08004032class VkDescriptorPoolSize {
Jesse Halld27f6aa2015-08-15 17:58:48 -07004033 VkDescriptorType type
Jesse Hall03b6fe12015-11-24 12:44:21 -08004034 u32 descriptorCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07004035}
4036
4037class VkDescriptorPoolCreateInfo {
4038 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO
4039 const void* pNext /// Pointer to next structure
Jesse Hallfbf97b02015-11-20 14:17:03 -08004040 VkDescriptorPoolCreateFlags flags
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004041 u32 maxSets
Jesse Hall65ab5522015-11-30 00:07:16 -08004042 u32 poolSizeCount
4043 const VkDescriptorPoolSize* pPoolSizes
Jesse Halld27f6aa2015-08-15 17:58:48 -07004044}
4045
Jesse Hall3fbc8562015-11-29 22:10:52 -08004046class VkDescriptorSetAllocateInfo {
Jesse Hallf4ab2b12015-11-30 16:04:55 -08004047 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO
Jesse Hallfbf97b02015-11-20 14:17:03 -08004048 const void* pNext /// Pointer to next structure
4049 VkDescriptorPool descriptorPool
Jesse Hall03b6fe12015-11-24 12:44:21 -08004050 u32 setCount
Jesse Hallfbf97b02015-11-20 14:17:03 -08004051 const VkDescriptorSetLayout* pSetLayouts
4052}
4053
Jesse Halld27f6aa2015-08-15 17:58:48 -07004054class VkSpecializationMapEntry {
Jesse Hall65ab5522015-11-30 00:07:16 -08004055 u32 constantID /// The SpecConstant ID specified in the BIL
Jesse Halld27f6aa2015-08-15 17:58:48 -07004056 u32 offset /// Offset of the value in the data block
Jesse Hallb00daad2015-11-29 19:46:20 -08004057 platform.size_t size /// Size in bytes of the SpecConstant
Jesse Halld27f6aa2015-08-15 17:58:48 -07004058}
4059
4060class VkSpecializationInfo {
4061 u32 mapEntryCount /// Number of entries in the map
Jesse Hallb00daad2015-11-29 19:46:20 -08004062 const VkSpecializationMapEntry* pMapEntries /// Array of map entries
Jesse Halld27f6aa2015-08-15 17:58:48 -07004063 platform.size_t dataSize /// Size in bytes of pData
4064 const void* pData /// Pointer to SpecConstant data
4065}
4066
4067class VkPipelineShaderStageCreateInfo {
4068 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO
4069 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08004070 VkPipelineShaderStageCreateFlags flags
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08004071 VkShaderStageFlagBits stage
4072 VkShaderModule module
4073 const char* pName
Jesse Halld27f6aa2015-08-15 17:58:48 -07004074 const VkSpecializationInfo* pSpecializationInfo
4075}
4076
4077class VkComputePipelineCreateInfo {
4078 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO
4079 const void* pNext /// Pointer to next structure
Jesse Halld27f6aa2015-08-15 17:58:48 -07004080 VkPipelineCreateFlags flags /// Pipeline creation flags
Jesse Halla6429252015-11-29 18:59:42 -08004081 VkPipelineShaderStageCreateInfo stage
Jesse Halld27f6aa2015-08-15 17:58:48 -07004082 VkPipelineLayout layout /// Interface layout of the pipeline
4083 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
4084 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
4085}
4086
4087class VkVertexInputBindingDescription {
Jesse Hallb00daad2015-11-29 19:46:20 -08004088 u32 binding /// Vertex buffer binding id
4089 u32 stride /// Distance between vertices in bytes (0 = no advancement)
Jesse Hall65ab5522015-11-30 00:07:16 -08004090 VkVertexInputRate inputRate /// Rate at which binding is incremented
Jesse Halld27f6aa2015-08-15 17:58:48 -07004091}
4092
4093class VkVertexInputAttributeDescription {
Jesse Hallb00daad2015-11-29 19:46:20 -08004094 u32 location /// location of the shader vertex attrib
4095 u32 binding /// Vertex buffer binding id
4096 VkFormat format /// format of source data
4097 u32 offset /// Offset of first element in bytes from base of vertex
Jesse Halld27f6aa2015-08-15 17:58:48 -07004098}
4099
4100class VkPipelineVertexInputStateCreateInfo {
Jesse Hall03b6fe12015-11-24 12:44:21 -08004101 VkStructureType sType /// Should be VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO
4102 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08004103 VkPipelineVertexInputStateCreateFlags flags
Jesse Hall03b6fe12015-11-24 12:44:21 -08004104 u32 vertexBindingDescriptionCount /// number of bindings
Jesse Halld27f6aa2015-08-15 17:58:48 -07004105 const VkVertexInputBindingDescription* pVertexBindingDescriptions
Jesse Hall03b6fe12015-11-24 12:44:21 -08004106 u32 vertexAttributeDescriptionCount /// number of attributes
Jesse Halld27f6aa2015-08-15 17:58:48 -07004107 const VkVertexInputAttributeDescription* pVertexAttributeDescriptions
4108}
4109
4110class VkPipelineInputAssemblyStateCreateInfo {
4111 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO
4112 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08004113 VkPipelineInputAssemblyStateCreateFlags flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07004114 VkPrimitiveTopology topology
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004115 VkBool32 primitiveRestartEnable
Jesse Halld27f6aa2015-08-15 17:58:48 -07004116}
4117
4118class VkPipelineTessellationStateCreateInfo {
4119 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO
4120 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08004121 VkPipelineTessellationStateCreateFlags flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07004122 u32 patchControlPoints
4123}
4124
4125class VkPipelineViewportStateCreateInfo {
4126 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO
4127 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08004128 VkPipelineViewportStateCreateFlags flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07004129 u32 viewportCount
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004130 const VkViewport* pViewports
4131 u32 scissorCount
4132 const VkRect2D* pScissors
Jesse Halld27f6aa2015-08-15 17:58:48 -07004133}
4134
Jesse Hall3fbc8562015-11-29 22:10:52 -08004135class VkPipelineRasterizationStateCreateInfo {
Jesse Hall65ab5522015-11-30 00:07:16 -08004136 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO
Jesse Halld27f6aa2015-08-15 17:58:48 -07004137 const void* pNext /// Pointer to next structure
Jesse Hall3fbc8562015-11-29 22:10:52 -08004138 VkPipelineRasterizationStateCreateFlags flags
Jesse Hallae38f732015-11-19 21:32:50 -08004139 VkBool32 depthClampEnable
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004140 VkBool32 rasterizerDiscardEnable
Jesse Hall65ab5522015-11-30 00:07:16 -08004141 VkPolygonMode polygonMode /// optional (GL45)
Jesse Hallc7467b72015-11-29 21:05:26 -08004142 VkCullModeFlags cullMode
Jesse Halld27f6aa2015-08-15 17:58:48 -07004143 VkFrontFace frontFace
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004144 VkBool32 depthBiasEnable
Jesse Halla9bb62b2015-11-21 19:31:56 -08004145 f32 depthBiasConstantFactor
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004146 f32 depthBiasClamp
Jesse Halla9bb62b2015-11-21 19:31:56 -08004147 f32 depthBiasSlopeFactor
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004148 f32 lineWidth
Jesse Halld27f6aa2015-08-15 17:58:48 -07004149}
4150
4151class VkPipelineMultisampleStateCreateInfo {
4152 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO
4153 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08004154 VkPipelineMultisampleStateCreateFlags flags
Jesse Hall091ed9e2015-11-30 00:55:29 -08004155 VkSampleCountFlagBits rasterizationSamples /// Number of samples used for rasterization
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004156 VkBool32 sampleShadingEnable /// optional (GL45)
Jesse Halld27f6aa2015-08-15 17:58:48 -07004157 f32 minSampleShading /// optional (GL45)
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004158 const VkSampleMask* pSampleMask
Jesse Hallacfa5342015-11-19 21:51:33 -08004159 VkBool32 alphaToCoverageEnable
4160 VkBool32 alphaToOneEnable
Jesse Halld27f6aa2015-08-15 17:58:48 -07004161}
4162
4163class VkPipelineColorBlendAttachmentState {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004164 VkBool32 blendEnable
Jesse Hall65ab5522015-11-30 00:07:16 -08004165 VkBlendFactor srcColorBlendFactor
4166 VkBlendFactor dstColorBlendFactor
4167 VkBlendOp colorBlendOp
4168 VkBlendFactor srcAlphaBlendFactor
4169 VkBlendFactor dstAlphaBlendFactor
4170 VkBlendOp alphaBlendOp
4171 VkColorComponentFlags colorWriteMask
Jesse Halld27f6aa2015-08-15 17:58:48 -07004172}
4173
4174class VkPipelineColorBlendStateCreateInfo {
4175 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO
4176 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08004177 VkPipelineColorBlendStateCreateFlags flags
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004178 VkBool32 logicOpEnable
Jesse Halld27f6aa2015-08-15 17:58:48 -07004179 VkLogicOp logicOp
4180 u32 attachmentCount /// # of pAttachments
4181 const VkPipelineColorBlendAttachmentState* pAttachments
Jesse Hallb00daad2015-11-29 19:46:20 -08004182 f32[4] blendConstants
Jesse Halld27f6aa2015-08-15 17:58:48 -07004183}
4184
4185class VkStencilOpState {
Jesse Hall65ab5522015-11-30 00:07:16 -08004186 VkStencilOp failOp
4187 VkStencilOp passOp
4188 VkStencilOp depthFailOp
4189 VkCompareOp compareOp
4190 u32 compareMask
4191 u32 writeMask
4192 u32 reference
Jesse Halld27f6aa2015-08-15 17:58:48 -07004193}
4194
4195class VkPipelineDepthStencilStateCreateInfo {
4196 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO
4197 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08004198 VkPipelineDepthStencilStateCreateFlags flags
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004199 VkBool32 depthTestEnable
4200 VkBool32 depthWriteEnable
Jesse Halld27f6aa2015-08-15 17:58:48 -07004201 VkCompareOp depthCompareOp
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004202 VkBool32 depthBoundsTestEnable /// optional (depth_bounds_test)
4203 VkBool32 stencilTestEnable
Jesse Halld27f6aa2015-08-15 17:58:48 -07004204 VkStencilOpState front
4205 VkStencilOpState back
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004206 f32 minDepthBounds
4207 f32 maxDepthBounds
4208}
4209
4210class VkPipelineDynamicStateCreateInfo {
4211 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO
4212 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08004213 VkPipelineDynamicStateCreateFlags flags
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004214 u32 dynamicStateCount
4215 const VkDynamicState* pDynamicStates
Jesse Halld27f6aa2015-08-15 17:58:48 -07004216}
4217
4218class VkGraphicsPipelineCreateInfo {
Jesse Halla6429252015-11-29 18:59:42 -08004219 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO
4220 const void* pNext /// Pointer to next structure
4221 VkPipelineCreateFlags flags /// Pipeline creation flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07004222 u32 stageCount
Jesse Halla6429252015-11-29 18:59:42 -08004223 const VkPipelineShaderStageCreateInfo* pStages /// One entry for each active shader stage
Jesse Halld27f6aa2015-08-15 17:58:48 -07004224 const VkPipelineVertexInputStateCreateInfo* pVertexInputState
4225 const VkPipelineInputAssemblyStateCreateInfo* pInputAssemblyState
4226 const VkPipelineTessellationStateCreateInfo* pTessellationState
4227 const VkPipelineViewportStateCreateInfo* pViewportState
Jesse Hall3fbc8562015-11-29 22:10:52 -08004228 const VkPipelineRasterizationStateCreateInfo* pRasterizationState
Jesse Halld27f6aa2015-08-15 17:58:48 -07004229 const VkPipelineMultisampleStateCreateInfo* pMultisampleState
4230 const VkPipelineDepthStencilStateCreateInfo* pDepthStencilState
4231 const VkPipelineColorBlendStateCreateInfo* pColorBlendState
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004232 const VkPipelineDynamicStateCreateInfo* pDynamicState
Jesse Halla6429252015-11-29 18:59:42 -08004233 VkPipelineLayout layout /// Interface layout of the pipeline
Jesse Halld27f6aa2015-08-15 17:58:48 -07004234 VkRenderPass renderPass
4235 u32 subpass
Jesse Halla6429252015-11-29 18:59:42 -08004236 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
4237 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 -07004238}
4239
4240class VkPipelineCacheCreateInfo {
Jesse Hallb00daad2015-11-29 19:46:20 -08004241 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO
4242 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08004243 VkPipelineCacheCreateFlags flags
Jesse Hallb00daad2015-11-29 19:46:20 -08004244 platform.size_t initialDataSize /// Size of initial data to populate cache, in bytes
4245 const void* pInitialData /// Initial data to populate cache
Jesse Halld27f6aa2015-08-15 17:58:48 -07004246}
4247
4248class VkPushConstantRange {
4249 VkShaderStageFlags stageFlags /// Which stages use the range
Jesse Hall03b6fe12015-11-24 12:44:21 -08004250 u32 offset /// Start of the range, in bytes
4251 u32 size /// Length of the range, in bytes
Jesse Halld27f6aa2015-08-15 17:58:48 -07004252}
4253
4254class VkPipelineLayoutCreateInfo {
4255 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO
4256 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08004257 VkPipelineLayoutCreateFlags flags
Jesse Hall3dd678a2016-01-08 21:52:01 -08004258 u32 descriptorSetCount /// Number of descriptor sets interfaced by the pipeline
Jesse Halld27f6aa2015-08-15 17:58:48 -07004259 const VkDescriptorSetLayout* pSetLayouts /// Array of <setCount> number of descriptor set layout objects defining the layout of the
4260 u32 pushConstantRangeCount /// Number of push-constant ranges used by the pipeline
4261 const VkPushConstantRange* pPushConstantRanges /// Array of pushConstantRangeCount number of ranges used by various shader stages
4262}
4263
4264class VkSamplerCreateInfo {
4265 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO
4266 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08004267 VkSamplerCreateFlags flags
Jesse Hall23ff73f2015-11-29 14:36:39 -08004268 VkFilter magFilter /// Filter mode for magnification
4269 VkFilter minFilter /// Filter mode for minifiation
4270 VkSamplerMipmapMode mipmapMode /// Mipmap selection mode
4271 VkSamplerAddressMode addressModeU
4272 VkSamplerAddressMode addressModeV
4273 VkSamplerAddressMode addressModeW
Jesse Halld27f6aa2015-08-15 17:58:48 -07004274 f32 mipLodBias
Jesse Hallf9fa9a52016-01-08 16:08:51 -08004275 VkBool32 anisotropyEnable
Jesse Halld27f6aa2015-08-15 17:58:48 -07004276 f32 maxAnisotropy
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004277 VkBool32 compareEnable
Jesse Halld27f6aa2015-08-15 17:58:48 -07004278 VkCompareOp compareOp
4279 f32 minLod
4280 f32 maxLod
4281 VkBorderColor borderColor
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004282 VkBool32 unnormalizedCoordinates
Jesse Halld27f6aa2015-08-15 17:58:48 -07004283}
4284
Jesse Hall3fbc8562015-11-29 22:10:52 -08004285class VkCommandPoolCreateInfo {
4286 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO
Jesse Halld27f6aa2015-08-15 17:58:48 -07004287 const void* pNext /// Pointer to next structure
Jesse Hall3fbc8562015-11-29 22:10:52 -08004288 VkCommandPoolCreateFlags flags /// Command pool creation flags
Jesse Halla6429252015-11-29 18:59:42 -08004289 u32 queueFamilyIndex
Jesse Halld27f6aa2015-08-15 17:58:48 -07004290}
4291
Jesse Hall3fbc8562015-11-29 22:10:52 -08004292class VkCommandBufferAllocateInfo {
Jesse Hallf4ab2b12015-11-30 16:04:55 -08004293 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO
Jesse Halld27f6aa2015-08-15 17:58:48 -07004294 const void* pNext /// Pointer to next structure
Jesse Hall3fbc8562015-11-29 22:10:52 -08004295 VkCommandPool commandPool
4296 VkCommandBufferLevel level
Jesse Hall3dd678a2016-01-08 21:52:01 -08004297 u32 commandBufferCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07004298}
4299
Jesse Hall3dd678a2016-01-08 21:52:01 -08004300class VkCommandBufferInheritanceInfo {
4301 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO
Jesse Halld27f6aa2015-08-15 17:58:48 -07004302 const void* pNext /// Pointer to next structure
Jesse Halld27f6aa2015-08-15 17:58:48 -07004303 VkRenderPass renderPass /// Render pass for secondary command buffers
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004304 u32 subpass
Jesse Halld27f6aa2015-08-15 17:58:48 -07004305 VkFramebuffer framebuffer /// Framebuffer for secondary command buffers
Jesse Hallf4ab2b12015-11-30 16:04:55 -08004306 VkBool32 occlusionQueryEnable
4307 VkQueryControlFlags queryFlags
4308 VkQueryPipelineStatisticFlags pipelineStatistics
Jesse Halld27f6aa2015-08-15 17:58:48 -07004309}
4310
Jesse Hall3dd678a2016-01-08 21:52:01 -08004311class VkCommandBufferBeginInfo {
4312 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO
4313 const void* pNext /// Pointer to next structure
4314 VkCommandBufferUsageFlags flags /// Command buffer usage flags
4315 const VkCommandBufferInheritanceInfo* pInheritanceInfo
4316}
4317
Jesse Halld27f6aa2015-08-15 17:58:48 -07004318class VkRenderPassBeginInfo {
4319 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO
4320 const void* pNext /// Pointer to next structure
4321 VkRenderPass renderPass
4322 VkFramebuffer framebuffer
4323 VkRect2D renderArea
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004324 u32 clearValueCount
4325 const VkClearValue* pClearValues
Jesse Halld27f6aa2015-08-15 17:58:48 -07004326}
4327
4328@union
4329/// Union allowing specification of floating point, integer, or unsigned integer color data. Actual value selected is based on image/attachment being cleared.
4330class VkClearColorValue {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004331 f32[4] float32
4332 s32[4] int32
4333 u32[4] uint32
Jesse Halld27f6aa2015-08-15 17:58:48 -07004334}
4335
4336class VkClearDepthStencilValue {
4337 f32 depth
4338 u32 stencil
4339}
4340
4341@union
4342/// Union allowing specification of color, depth, and stencil color values. Actual value selected is based on attachment being cleared.
4343class VkClearValue {
4344 VkClearColorValue color
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004345 VkClearDepthStencilValue depthStencil
Jesse Halld27f6aa2015-08-15 17:58:48 -07004346}
4347
Jesse Hallae38f732015-11-19 21:32:50 -08004348class VkClearAttachment {
4349 VkImageAspectFlags aspectMask
4350 u32 colorAttachment
4351 VkClearValue clearValue
4352}
4353
Jesse Halld27f6aa2015-08-15 17:58:48 -07004354class VkAttachmentDescription {
Jesse Halla6429252015-11-29 18:59:42 -08004355 VkAttachmentDescriptionFlags flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07004356 VkFormat format
Jesse Hall091ed9e2015-11-30 00:55:29 -08004357 VkSampleCountFlagBits samples
Jesse Halld27f6aa2015-08-15 17:58:48 -07004358 VkAttachmentLoadOp loadOp /// Load op for color or depth data
4359 VkAttachmentStoreOp storeOp /// Store op for color or depth data
4360 VkAttachmentLoadOp stencilLoadOp /// Load op for stencil data
4361 VkAttachmentStoreOp stencilStoreOp /// Store op for stencil data
4362 VkImageLayout initialLayout
4363 VkImageLayout finalLayout
4364}
4365
4366class VkAttachmentReference {
4367 u32 attachment
4368 VkImageLayout layout
4369}
4370
4371class VkSubpassDescription {
Jesse Halld27f6aa2015-08-15 17:58:48 -07004372 VkSubpassDescriptionFlags flags
Jesse Halla6429252015-11-29 18:59:42 -08004373 VkPipelineBindPoint pipelineBindPoint /// Must be VK_PIPELINE_BIND_POINT_GRAPHICS for now
Jesse Hall03b6fe12015-11-24 12:44:21 -08004374 u32 inputAttachmentCount
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004375 const VkAttachmentReference* pInputAttachments
Jesse Hall03b6fe12015-11-24 12:44:21 -08004376 u32 colorAttachmentCount
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004377 const VkAttachmentReference* pColorAttachments
4378 const VkAttachmentReference* pResolveAttachments
Jesse Hallc7467b72015-11-29 21:05:26 -08004379 const VkAttachmentReference* pDepthStencilAttachment
Jesse Hall03b6fe12015-11-24 12:44:21 -08004380 u32 preserveAttachmentCount
Jesse Hall3dd678a2016-01-08 21:52:01 -08004381 const u32* pPreserveAttachments
Jesse Halld27f6aa2015-08-15 17:58:48 -07004382}
4383
4384class VkSubpassDependency {
Jesse Halld27f6aa2015-08-15 17:58:48 -07004385 u32 srcSubpass
Jesse Hall3fbc8562015-11-29 22:10:52 -08004386 u32 dstSubpass
Jesse Halld27f6aa2015-08-15 17:58:48 -07004387 VkPipelineStageFlags srcStageMask
Jesse Hall3fbc8562015-11-29 22:10:52 -08004388 VkPipelineStageFlags dstStageMask
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08004389 VkAccessFlags srcAccessMask
4390 VkAccessFlags dstAccessMask
Jesse Halldc6d36c2015-11-29 19:12:15 -08004391 VkDependencyFlags dependencyFlags
Jesse Halld27f6aa2015-08-15 17:58:48 -07004392}
4393
4394class VkRenderPassCreateInfo {
4395 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO
4396 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08004397 VkRenderPassCreateFlags flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07004398 u32 attachmentCount
4399 const VkAttachmentDescription* pAttachments
4400 u32 subpassCount
4401 const VkSubpassDescription* pSubpasses
4402 u32 dependencyCount
4403 const VkSubpassDependency* pDependencies
4404}
4405
4406class VkEventCreateInfo {
4407 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_EVENT_CREATE_INFO
4408 const void* pNext /// Pointer to next structure
4409 VkEventCreateFlags flags /// Event creation flags
4410}
4411
4412class VkFenceCreateInfo {
4413 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_FENCE_CREATE_INFO
4414 const void* pNext /// Pointer to next structure
4415 VkFenceCreateFlags flags /// Fence creation flags
4416}
4417
4418class VkPhysicalDeviceFeatures {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004419 VkBool32 robustBufferAccess /// out of bounds buffer accesses are well defined
4420 VkBool32 fullDrawIndexUint32 /// full 32-bit range of indices for indexed draw calls
4421 VkBool32 imageCubeArray /// image views which are arrays of cube maps
4422 VkBool32 independentBlend /// blending operations are controlled per-attachment
4423 VkBool32 geometryShader /// geometry stage
4424 VkBool32 tessellationShader /// tessellation control and evaluation stage
4425 VkBool32 sampleRateShading /// per-sample shading and interpolation
Jesse Hall3fbc8562015-11-29 22:10:52 -08004426 VkBool32 dualSrcBlend /// blend operations which take two sources
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004427 VkBool32 logicOp /// logic operations
4428 VkBool32 multiDrawIndirect /// multi draw indirect
Jesse Hall543a7ff2016-01-08 16:38:30 -08004429 VkBool32 drawIndirectFirstInstance
Jesse Hallae38f732015-11-19 21:32:50 -08004430 VkBool32 depthClamp /// depth clamping
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004431 VkBool32 depthBiasClamp /// depth bias clamping
4432 VkBool32 fillModeNonSolid /// point and wireframe fill modes
4433 VkBool32 depthBounds /// depth bounds test
4434 VkBool32 wideLines /// lines with width greater than 1
4435 VkBool32 largePoints /// points with size greater than 1
Jesse Hallfbf97b02015-11-20 14:17:03 -08004436 VkBool32 alphaToOne /// The fragment alpha channel can be forced to maximum representable alpha value
4437 VkBool32 multiViewport
4438 VkBool32 samplerAnisotropy
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004439 VkBool32 textureCompressionETC2 /// ETC texture compression formats
4440 VkBool32 textureCompressionASTC_LDR /// ASTC LDR texture compression formats
4441 VkBool32 textureCompressionBC /// BC1-7 texture compressed formats
Jesse Hall65ab5522015-11-30 00:07:16 -08004442 VkBool32 occlusionQueryPrecise
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004443 VkBool32 pipelineStatisticsQuery /// pipeline statistics query
Jesse Halldc6d36c2015-11-29 19:12:15 -08004444 VkBool32 vertexPipelineStoresAndAtomics
4445 VkBool32 fragmentStoresAndAtomics
4446 VkBool32 shaderTessellationAndGeometryPointSize
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004447 VkBool32 shaderImageGatherExtended /// texture gather with run-time values and independent offsets
4448 VkBool32 shaderStorageImageExtendedFormats /// the extended set of formats can be used for storage images
4449 VkBool32 shaderStorageImageMultisample /// multisample images can be used for storage images
Jesse Halld1af8122015-11-29 23:50:38 -08004450 VkBool32 shaderStorageImageReadWithoutFormat
4451 VkBool32 shaderStorageImageWriteWithoutFormat
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004452 VkBool32 shaderUniformBufferArrayDynamicIndexing /// arrays of uniform buffers can be accessed with dynamically uniform indices
4453 VkBool32 shaderSampledImageArrayDynamicIndexing /// arrays of sampled images can be accessed with dynamically uniform indices
4454 VkBool32 shaderStorageBufferArrayDynamicIndexing /// arrays of storage buffers can be accessed with dynamically uniform indices
4455 VkBool32 shaderStorageImageArrayDynamicIndexing /// arrays of storage images can be accessed with dynamically uniform indices
4456 VkBool32 shaderClipDistance /// clip distance in shaders
4457 VkBool32 shaderCullDistance /// cull distance in shaders
4458 VkBool32 shaderFloat64 /// 64-bit floats (doubles) in shaders
4459 VkBool32 shaderInt64 /// 64-bit integers in shaders
4460 VkBool32 shaderInt16 /// 16-bit integers in shaders
4461 VkBool32 shaderResourceResidency /// shader can use texture operations that return resource residency information (requires sparseNonResident support)
Jesse Hall65ab5522015-11-30 00:07:16 -08004462 VkBool32 shaderResourceMinLod /// shader can use texture operations that specify minimum resource LOD
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004463 VkBool32 sparseBinding /// Sparse resources support: Resource memory can be managed at opaque page level rather than object level
4464 VkBool32 sparseResidencyBuffer /// Sparse resources support: GPU can access partially resident buffers
4465 VkBool32 sparseResidencyImage2D /// Sparse resources support: GPU can access partially resident 2D (non-MSAA non-DepthStencil) images
4466 VkBool32 sparseResidencyImage3D /// Sparse resources support: GPU can access partially resident 3D images
4467 VkBool32 sparseResidency2Samples /// Sparse resources support: GPU can access partially resident MSAA 2D images with 2 samples
4468 VkBool32 sparseResidency4Samples /// Sparse resources support: GPU can access partially resident MSAA 2D images with 4 samples
4469 VkBool32 sparseResidency8Samples /// Sparse resources support: GPU can access partially resident MSAA 2D images with 8 samples
4470 VkBool32 sparseResidency16Samples /// Sparse resources support: GPU can access partially resident MSAA 2D images with 16 samples
4471 VkBool32 sparseResidencyAliased /// Sparse resources support: GPU can correctly access data aliased into multiple locations (opt-in)
Jesse Halld1af8122015-11-29 23:50:38 -08004472 VkBool32 variableMultisampleRate
Jesse Hallf9fa9a52016-01-08 16:08:51 -08004473 VkBool32 inheritedQueries
Jesse Halld27f6aa2015-08-15 17:58:48 -07004474}
4475
4476class VkPhysicalDeviceLimits {
4477 /// resource maximum sizes
4478 u32 maxImageDimension1D /// max 1D image dimension
4479 u32 maxImageDimension2D /// max 2D image dimension
4480 u32 maxImageDimension3D /// max 3D image dimension
4481 u32 maxImageDimensionCube /// max cubemap image dimension
4482 u32 maxImageArrayLayers /// max layers for image arrays
Jesse Hallb00daad2015-11-29 19:46:20 -08004483 u32 maxTexelBufferElements
Jesse Hallfbf97b02015-11-20 14:17:03 -08004484 u32 maxUniformBufferRange /// max uniform buffer size (bytes)
4485 u32 maxStorageBufferRange /// max storage buffer size (bytes)
Jesse Halld27f6aa2015-08-15 17:58:48 -07004486 u32 maxPushConstantsSize /// max size of the push constants pool (bytes)
4487 /// memory limits
4488 u32 maxMemoryAllocationCount /// max number of device memory allocations supported
Jesse Hall091ed9e2015-11-30 00:55:29 -08004489 u32 maxSamplerAllocationCount
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004490 VkDeviceSize bufferImageGranularity /// Granularity (in bytes) at which buffers and images can be bound to adjacent memory for simultaneous usage
4491 VkDeviceSize sparseAddressSpaceSize /// Total address space available for sparse allocations (bytes)
Jesse Halld27f6aa2015-08-15 17:58:48 -07004492 /// descriptor set limits
4493 u32 maxBoundDescriptorSets /// max number of descriptors sets that can be bound to a pipeline
Jesse Halld27f6aa2015-08-15 17:58:48 -07004494 u32 maxPerStageDescriptorSamplers /// max num of samplers allowed per-stage in a descriptor set
4495 u32 maxPerStageDescriptorUniformBuffers /// max num of uniform buffers allowed per-stage in a descriptor set
4496 u32 maxPerStageDescriptorStorageBuffers /// max num of storage buffers allowed per-stage in a descriptor set
4497 u32 maxPerStageDescriptorSampledImages /// max num of sampled images allowed per-stage in a descriptor set
4498 u32 maxPerStageDescriptorStorageImages /// max num of storage images allowed per-stage in a descriptor set
Jesse Halle1b12782015-11-30 11:27:32 -08004499 u32 maxPerStageDescriptorInputAttachments
Jesse Halldba27f72015-11-30 14:25:46 -08004500 u32 maxPerStageResources
Jesse Halld27f6aa2015-08-15 17:58:48 -07004501 u32 maxDescriptorSetSamplers /// max num of samplers allowed in all stages in a descriptor set
4502 u32 maxDescriptorSetUniformBuffers /// max num of uniform buffers allowed in all stages in a descriptor set
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004503 u32 maxDescriptorSetUniformBuffersDynamic /// max num of dynamic uniform buffers allowed in all stages in a descriptor set
Jesse Halld27f6aa2015-08-15 17:58:48 -07004504 u32 maxDescriptorSetStorageBuffers /// max num of storage buffers allowed in all stages in a descriptor set
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004505 u32 maxDescriptorSetStorageBuffersDynamic /// max num of dynamic storage buffers allowed in all stages in a descriptor set
Jesse Halld27f6aa2015-08-15 17:58:48 -07004506 u32 maxDescriptorSetSampledImages /// max num of sampled images allowed in all stages in a descriptor set
4507 u32 maxDescriptorSetStorageImages /// max num of storage images allowed in all stages in a descriptor set
Jesse Halle1b12782015-11-30 11:27:32 -08004508 u32 maxDescriptorSetInputAttachments
Jesse Halld27f6aa2015-08-15 17:58:48 -07004509 /// vertex stage limits
4510 u32 maxVertexInputAttributes /// max num of vertex input attribute slots
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004511 u32 maxVertexInputBindings /// max num of vertex input binding slots
Jesse Halld27f6aa2015-08-15 17:58:48 -07004512 u32 maxVertexInputAttributeOffset /// max vertex input attribute offset added to vertex buffer offset
4513 u32 maxVertexInputBindingStride /// max vertex input binding stride
4514 u32 maxVertexOutputComponents /// max num of output components written by vertex shader
4515 /// tessellation control stage limits
Jesse Hall3fbc8562015-11-29 22:10:52 -08004516 u32 maxTessellationGenerationLevel /// max level supported by tess primitive generator
Jesse Hallae38f732015-11-19 21:32:50 -08004517 u32 maxTessellationPatchSize /// max patch size (vertices)
4518 u32 maxTessellationControlPerVertexInputComponents /// max num of input components per-vertex in TCS
4519 u32 maxTessellationControlPerVertexOutputComponents /// max num of output components per-vertex in TCS
4520 u32 maxTessellationControlPerPatchOutputComponents /// max num of output components per-patch in TCS
4521 u32 maxTessellationControlTotalOutputComponents /// max total num of per-vertex and per-patch output components in TCS
4522 u32 maxTessellationEvaluationInputComponents /// max num of input components per vertex in TES
4523 u32 maxTessellationEvaluationOutputComponents /// max num of output components per vertex in TES
Jesse Halld27f6aa2015-08-15 17:58:48 -07004524 /// geometry stage limits
4525 u32 maxGeometryShaderInvocations /// max invocation count supported in geometry shader
4526 u32 maxGeometryInputComponents /// max num of input components read in geometry stage
4527 u32 maxGeometryOutputComponents /// max num of output components written in geometry stage
4528 u32 maxGeometryOutputVertices /// max num of vertices that can be emitted in geometry stage
4529 u32 maxGeometryTotalOutputComponents /// max total num of components (all vertices) written in geometry stage
4530 /// fragment stage limits
4531 u32 maxFragmentInputComponents /// max num of input compontents read in fragment stage
Jesse Hallfbf97b02015-11-20 14:17:03 -08004532 u32 maxFragmentOutputAttachments /// max num of output attachments written in fragment stage
Jesse Hall3fbc8562015-11-29 22:10:52 -08004533 u32 maxFragmentDualSrcAttachments /// max num of output attachments written when using dual source blending
Jesse Halld27f6aa2015-08-15 17:58:48 -07004534 u32 maxFragmentCombinedOutputResources /// max total num of storage buffers, storage images and output buffers
4535 /// compute stage limits
4536 u32 maxComputeSharedMemorySize /// max total storage size of work group local storage (bytes)
4537 u32[3] maxComputeWorkGroupCount /// max num of compute work groups that may be dispatched by a single command (x,y,z)
4538 u32 maxComputeWorkGroupInvocations /// max total compute invocations in a single local work group
4539 u32[3] maxComputeWorkGroupSize /// max local size of a compute work group (x,y,z)
4540
4541 u32 subPixelPrecisionBits /// num bits of subpixel precision in screen x and y
4542 u32 subTexelPrecisionBits /// num bits of subtexel precision
4543 u32 mipmapPrecisionBits /// num bits of mipmap precision
4544
4545 u32 maxDrawIndexedIndexValue /// max index value for indexed draw calls (for 32-bit indices)
Jesse Halldba27f72015-11-30 14:25:46 -08004546 u32 maxDrawIndirectCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07004547
4548 f32 maxSamplerLodBias /// max absolute sampler level of detail bias
4549 f32 maxSamplerAnisotropy /// max degree of sampler anisotropy
4550
4551 u32 maxViewports /// max number of active viewports
Jesse Halld27f6aa2015-08-15 17:58:48 -07004552 u32[2] maxViewportDimensions /// max viewport dimensions (x,y)
4553 f32[2] viewportBoundsRange /// viewport bounds range (min,max)
4554 u32 viewportSubPixelBits /// num bits of subpixel precision for viewport
4555
Jesse Halldc6d36c2015-11-29 19:12:15 -08004556 platform.size_t minMemoryMapAlignment /// min required alignment of pointers returned by MapMemory (bytes)
4557 VkDeviceSize minTexelBufferOffsetAlignment /// min required alignment for texel buffer offsets (bytes)
4558 VkDeviceSize minUniformBufferOffsetAlignment /// min required alignment for uniform buffer sizes and offsets (bytes)
4559 VkDeviceSize minStorageBufferOffsetAlignment /// min required alignment for storage buffer offsets (bytes)
Jesse Halld27f6aa2015-08-15 17:58:48 -07004560
Jesse Hallfbf97b02015-11-20 14:17:03 -08004561 s32 minTexelOffset /// min texel offset for OpTextureSampleOffset
Jesse Halld27f6aa2015-08-15 17:58:48 -07004562 u32 maxTexelOffset /// max texel offset for OpTextureSampleOffset
Jesse Hallfbf97b02015-11-20 14:17:03 -08004563 s32 minTexelGatherOffset /// min texel offset for OpTextureGatherOffset
Jesse Halld27f6aa2015-08-15 17:58:48 -07004564 u32 maxTexelGatherOffset /// max texel offset for OpTextureGatherOffset
4565 f32 minInterpolationOffset /// furthest negative offset for interpolateAtOffset
4566 f32 maxInterpolationOffset /// furthest positive offset for interpolateAtOffset
4567 u32 subPixelInterpolationOffsetBits /// num of subpixel bits for interpolateAtOffset
4568
4569 u32 maxFramebufferWidth /// max width for a framebuffer
4570 u32 maxFramebufferHeight /// max height for a framebuffer
4571 u32 maxFramebufferLayers /// max layer count for a layered framebuffer
Jesse Hall091ed9e2015-11-30 00:55:29 -08004572 VkSampleCountFlags framebufferColorSampleCounts
4573 VkSampleCountFlags framebufferDepthSampleCounts
4574 VkSampleCountFlags framebufferStencilSampleCounts
4575 VkSampleCountFlags framebufferNoAttachmentSampleCounts
Jesse Halld27f6aa2015-08-15 17:58:48 -07004576 u32 maxColorAttachments /// max num of framebuffer color attachments
4577
Jesse Hall091ed9e2015-11-30 00:55:29 -08004578 VkSampleCountFlags sampledImageColorSampleCounts
4579 VkSampleCountFlags sampledImageIntegerSampleCounts
4580 VkSampleCountFlags sampledImageDepthSampleCounts
4581 VkSampleCountFlags sampledImageStencilSampleCounts
4582 VkSampleCountFlags storageImageSampleCounts
Jesse Halld27f6aa2015-08-15 17:58:48 -07004583 u32 maxSampleMaskWords /// max num of sample mask words
Jesse Hallf9fa9a52016-01-08 16:08:51 -08004584 VkBool32 timestampComputeAndGraphics
Jesse Halld27f6aa2015-08-15 17:58:48 -07004585
Jesse Halla9bb62b2015-11-21 19:31:56 -08004586 f32 timestampPeriod
Jesse Halld27f6aa2015-08-15 17:58:48 -07004587
4588 u32 maxClipDistances /// max number of clip distances
4589 u32 maxCullDistances /// max number of cull distances
4590 u32 maxCombinedClipAndCullDistances /// max combined number of user clipping
4591
Jesse Hallfbf97b02015-11-20 14:17:03 -08004592 u32 discreteQueuePriorities
4593
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004594 f32[2] pointSizeRange /// range (min,max) of supported point sizes
4595 f32[2] lineWidthRange /// range (min,max) of supported line widths
Jesse Halld27f6aa2015-08-15 17:58:48 -07004596 f32 pointSizeGranularity /// granularity of supported point sizes
4597 f32 lineWidthGranularity /// granularity of supported line widths
Jesse Hall03b6fe12015-11-24 12:44:21 -08004598 VkBool32 strictLines
Jesse Hall091ed9e2015-11-30 00:55:29 -08004599 VkBool32 standardSampleLocations
Jesse Halla9bb62b2015-11-21 19:31:56 -08004600
Jesse Hall65ab5522015-11-30 00:07:16 -08004601 VkDeviceSize optimalBufferCopyOffsetAlignment
4602 VkDeviceSize optimalBufferCopyRowPitchAlignment
Jesse Halldba27f72015-11-30 14:25:46 -08004603 VkDeviceSize nonCoherentAtomSize
Jesse Halld27f6aa2015-08-15 17:58:48 -07004604}
4605
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004606class VkPhysicalDeviceSparseProperties {
4607 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 -08004608 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 -07004609 VkBool32 residencyStandard3DBlockShape /// Sparse resources support: GPU will access all 3D sparse resources using the standard block shapes (based on pixel format)
4610 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 -07004611 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
4612}
4613
Jesse Halld27f6aa2015-08-15 17:58:48 -07004614class VkSemaphoreCreateInfo {
4615 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO
4616 const void* pNext /// Pointer to next structure
4617 VkSemaphoreCreateFlags flags /// Semaphore creation flags
4618}
4619
4620class VkQueryPoolCreateInfo {
4621 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO
4622 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08004623 VkQueryPoolCreateFlags flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07004624 VkQueryType queryType
Jesse Hall3dd678a2016-01-08 21:52:01 -08004625 u32 queryCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07004626 VkQueryPipelineStatisticFlags pipelineStatistics /// Optional
4627}
4628
4629class VkFramebufferCreateInfo {
4630 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO
4631 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08004632 VkFramebufferCreateFlags flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07004633 VkRenderPass renderPass
4634 u32 attachmentCount
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004635 const VkImageView* pAttachments
Jesse Halld27f6aa2015-08-15 17:58:48 -07004636 u32 width
4637 u32 height
4638 u32 layers
4639}
4640
Jesse Hall3fbc8562015-11-29 22:10:52 -08004641class VkDrawIndirectCommand {
Jesse Halld27f6aa2015-08-15 17:58:48 -07004642 u32 vertexCount
4643 u32 instanceCount
4644 u32 firstVertex
4645 u32 firstInstance
4646}
4647
Jesse Hall3fbc8562015-11-29 22:10:52 -08004648class VkDrawIndexedIndirectCommand {
Jesse Halld27f6aa2015-08-15 17:58:48 -07004649 u32 indexCount
4650 u32 instanceCount
4651 u32 firstIndex
4652 s32 vertexOffset
4653 u32 firstInstance
4654}
4655
Jesse Hall3fbc8562015-11-29 22:10:52 -08004656class VkDispatchIndirectCommand {
Jesse Halld27f6aa2015-08-15 17:58:48 -07004657 u32 x
4658 u32 y
4659 u32 z
4660}
4661
Jesse Hall54f8d132018-04-18 08:16:59 -07004662class VkBaseOutStructure {
4663 VkStructureType sType
4664 void* pNext
4665}
4666
4667class VkBaseInStructure {
4668 VkStructureType sType
4669 const void* pNext
4670}
4671
Ian Elliott28bd2c32017-10-13 09:21:12 -06004672//@vulkan1_1 structures
Daniel Koch09f7bf92017-10-05 00:26:58 -04004673
4674class VkPhysicalDeviceSubgroupProperties {
4675 VkStructureType sType
4676 void* pNext
4677 u32 subgroupSize
4678 VkShaderStageFlags supportedStages
4679 VkSubgroupFeatureFlags supportedOperations
4680 VkBool32 quadOperationsInAllStages
4681}
4682
4683class VkBindBufferMemoryInfo {
4684 VkStructureType sType
4685 const void* pNext
4686 VkBuffer buffer
4687 VkDeviceMemory memory
4688 VkDeviceSize memoryOffset
4689}
4690
4691class VkBindImageMemoryInfo {
4692 VkStructureType sType
4693 const void* pNext
4694 VkImage image
4695 VkDeviceMemory memory
4696 VkDeviceSize memoryOffset
4697}
4698
4699class VkPhysicalDevice16BitStorageFeatures {
4700 VkStructureType sType
4701 void* pNext
4702 VkBool32 storageBuffer16BitAccess
4703 VkBool32 uniformAndStorageBuffer16BitAccess
4704 VkBool32 storagePushConstant16
4705 VkBool32 storageInputOutput16
4706}
4707
4708class VkMemoryDedicatedRequirements {
4709 VkStructureType sType
4710 void* pNext
4711 VkBool32 prefersDedicatedAllocation
4712 VkBool32 requiresDedicatedAllocation
4713}
4714
4715class VkMemoryDedicatedAllocateInfo {
4716 VkStructureType sType
4717 const void* pNext
4718 VkImage image
4719 VkBuffer buffer
4720}
4721
4722class VkMemoryAllocateFlagsInfo {
4723 VkStructureType sType
4724 const void* pNext
4725 VkMemoryAllocateFlags flags
4726 u32 deviceMask
4727}
4728
4729class VkDeviceGroupRenderPassBeginInfo {
4730 VkStructureType sType
4731 const void* pNext
4732 u32 deviceMask
4733 u32 deviceRenderAreaCount
4734 const VkRect2D* pDeviceRenderAreas
4735}
4736
4737class VkDeviceGroupCommandBufferBeginInfo {
4738 VkStructureType sType
4739 const void* pNext
4740 u32 deviceMask
4741}
4742
4743class VkDeviceGroupSubmitInfo {
4744 VkStructureType sType
4745 const void* pNext
4746 u32 waitSemaphoreCount
4747 const u32* pWaitSemaphoreDeviceIndices
4748 u32 commandBufferCount
4749 const u32* pCommandBufferDeviceMasks
4750 u32 signalSemaphoreCount
4751 const u32* pSignalSemaphoreDeviceIndices
4752}
4753
4754class VkDeviceGroupBindSparseInfo {
4755 VkStructureType sType
4756 const void* pNext
4757 u32 resourceDeviceIndex
4758 u32 memoryDeviceIndex
4759}
4760
4761class VkBindBufferMemoryDeviceGroupInfo {
4762 VkStructureType sType
4763 const void* pNext
4764 u32 deviceIndexCount
4765 const u32* pDeviceIndices
4766}
4767
4768class VkBindImageMemoryDeviceGroupInfo {
4769 VkStructureType sType
4770 const void* pNext
4771 u32 deviceIndexCount
4772 const u32* pDeviceIndices
Jesse Hall8c954d32018-01-17 22:06:20 -08004773 u32 splitInstanceBindRegionCount
4774 const VkRect2D* pSplitInstanceBindRegions
Daniel Koch09f7bf92017-10-05 00:26:58 -04004775}
4776
4777class VkPhysicalDeviceGroupProperties {
4778 VkStructureType sType
4779 void* pNext
4780 u32 physicalDeviceCount
4781 VkPhysicalDevice[VK_MAX_DEVICE_GROUP_SIZE] physicalDevices
4782 VkBool32 subsetAllocation
4783}
4784
4785class VkDeviceGroupDeviceCreateInfo {
4786 VkStructureType sType
4787 const void* pNext
4788 u32 physicalDeviceCount
4789 const VkPhysicalDevice* pPhysicalDevices
4790}
4791
4792class VkBufferMemoryRequirementsInfo2 {
4793 VkStructureType sType
4794 const void* pNext
4795 VkBuffer buffer
4796}
4797
4798class VkImageMemoryRequirementsInfo2 {
4799 VkStructureType sType
4800 const void* pNext
4801 VkImage image
4802}
4803
4804class VkImageSparseMemoryRequirementsInfo2 {
4805 VkStructureType sType
4806 const void* pNext
4807 VkImage image
4808}
4809
4810class VkMemoryRequirements2 {
4811 VkStructureType sType
4812 void* pNext
4813 VkMemoryRequirements memoryRequirements
4814}
4815
4816class VkSparseImageMemoryRequirements2 {
4817 VkStructureType sType
4818 void* pNext
4819 VkSparseImageMemoryRequirements memoryRequirements
4820}
4821
4822class VkPhysicalDeviceFeatures2 {
4823 VkStructureType sType
4824 void* pNext
4825 VkPhysicalDeviceFeatures features
4826}
4827
4828class VkPhysicalDeviceProperties2 {
4829 VkStructureType sType
4830 void* pNext
4831 VkPhysicalDeviceProperties properties
4832}
4833
4834class VkFormatProperties2 {
4835 VkStructureType sType
4836 void* pNext
4837 VkFormatProperties formatProperties
4838}
4839
4840class VkImageFormatProperties2 {
4841 VkStructureType sType
4842 void* pNext
4843 VkImageFormatProperties imageFormatProperties
4844}
4845
4846class VkPhysicalDeviceImageFormatInfo2 {
4847 VkStructureType sType
4848 const void* pNext
4849 VkFormat format
4850 VkImageType type
4851 VkImageTiling tiling
4852 VkImageUsageFlags usage
4853 VkImageCreateFlags flags
4854}
4855
4856class VkQueueFamilyProperties2 {
4857 VkStructureType sType
4858 void* pNext
4859 VkQueueFamilyProperties queueFamilyProperties
4860}
4861
4862class VkPhysicalDeviceMemoryProperties2 {
4863 VkStructureType sType
4864 void* pNext
4865 VkPhysicalDeviceMemoryProperties memoryProperties
4866}
4867
4868class VkSparseImageFormatProperties2 {
4869 VkStructureType sType
4870 void* pNext
4871 VkSparseImageFormatProperties properties
4872}
4873
4874class VkPhysicalDeviceSparseImageFormatInfo2 {
4875 VkStructureType sType
4876 const void* pNext
4877 VkFormat format
4878 VkImageType type
4879 VkSampleCountFlagBits samples
4880 VkImageUsageFlags usage
4881 VkImageTiling tiling
4882}
4883
4884class VkPhysicalDevicePointClippingProperties {
4885 VkStructureType sType
4886 void* pNext
4887 VkPointClippingBehavior pointClippingBehavior
4888}
4889
4890class VkInputAttachmentAspectReference {
4891 u32 subpass
4892 u32 inputAttachmentIndex
4893 VkImageAspectFlags aspectMask
4894}
4895
4896class VkRenderPassInputAttachmentAspectCreateInfo {
4897 VkStructureType sType
4898 const void* pNext
4899 u32 aspectReferenceCount
4900 const VkInputAttachmentAspectReference* pAspectReferences
4901}
4902
4903class VkImageViewUsageCreateInfo {
4904 VkStructureType sType
4905 const void* pNext
4906 VkImageUsageFlags usage
4907}
4908
4909class VkPipelineTessellationDomainOriginStateCreateInfo {
4910 VkStructureType sType
4911 const void* pNext
4912 VkTessellationDomainOrigin domainOrigin
4913}
4914
4915class VkRenderPassMultiviewCreateInfo {
4916 VkStructureType sType
4917 const void* pNext
4918 u32 subpassCount
4919 const u32* pViewMasks
4920 u32 dependencyCount
4921 const s32* pViewOffsets
4922 u32 correlationMaskCount
4923 const u32* pCorrelationMasks
4924}
4925
4926class VkPhysicalDeviceMultiviewFeatures {
4927 VkStructureType sType
4928 void* pNext
4929 VkBool32 multiview
4930 VkBool32 multiviewGeometryShader
4931 VkBool32 multiviewTessellationShader
4932}
4933
4934class VkPhysicalDeviceMultiviewProperties {
4935 VkStructureType sType
4936 void* pNext
4937 u32 maxMultiviewViewCount
4938 u32 maxMultiviewInstanceIndex
4939}
4940
4941class VkPhysicalDeviceVariablePointerFeatures {
4942 VkStructureType sType
4943 void* pNext
4944 VkBool32 variablePointersStorageBuffer
4945 VkBool32 variablePointers
4946}
4947
4948class VkPhysicalDeviceProtectedMemoryFeatures {
4949 VkStructureType sType
4950 void* pNext
4951 VkBool32 protectedMemory
4952}
4953
4954class VkPhysicalDeviceProtectedMemoryProperties {
4955 VkStructureType sType
4956 void* pNext
4957 VkBool32 protectedNoFault
4958}
4959
4960class VkDeviceQueueInfo2 {
4961 VkStructureType sType
4962 const void* pNext
4963 VkDeviceQueueCreateFlags flags
4964 u32 queueFamilyIndex
4965 u32 queueIndex
4966}
4967
4968class VkProtectedSubmitInfo {
4969 VkStructureType sType
4970 const void* pNext
4971 VkBool32 protectedSubmit
4972}
4973
4974class VkSamplerYcbcrConversionCreateInfo {
4975 VkStructureType sType
4976 const void* pNext
4977 VkFormat format
4978 VkSamplerYcbcrModelConversion ycbcrModel
4979 VkSamplerYcbcrRange ycbcrRange
4980 VkComponentMapping components
4981 VkChromaLocation xChromaOffset
4982 VkChromaLocation yChromaOffset
4983 VkFilter chromaFilter
4984 VkBool32 forceExplicitReconstruction
4985}
4986
4987class VkSamplerYcbcrConversionInfo {
4988 VkStructureType sType
4989 const void* pNext
4990 VkSamplerYcbcrConversion conversion
4991}
4992
4993class VkBindImagePlaneMemoryInfo {
4994 VkStructureType sType
4995 const void* pNext
4996 VkImageAspectFlagBits planeAspect
4997}
4998
4999class VkImagePlaneMemoryRequirementsInfo {
5000 VkStructureType sType
5001 const void* pNext
5002 VkImageAspectFlagBits planeAspect
5003}
5004
5005class VkPhysicalDeviceSamplerYcbcrConversionFeatures {
5006 VkStructureType sType
5007 void* pNext
5008 VkBool32 samplerYcbcrConversion
5009}
5010
5011class VkSamplerYcbcrConversionImageFormatProperties {
5012 VkStructureType sType
5013 void* pNext
5014 u32 combinedImageSamplerDescriptorCount
5015}
5016
5017class VkDescriptorUpdateTemplateEntry {
5018 u32 dstBinding
5019 u32 dstArrayElement
5020 u32 descriptorCount
5021 VkDescriptorType descriptorType
5022 platform.size_t offset
5023 platform.size_t stride
5024}
5025
5026class VkDescriptorUpdateTemplateCreateInfo {
5027 VkStructureType sType
5028 void* pNext
5029 VkDescriptorUpdateTemplateCreateFlags flags
5030 u32 descriptorUpdateEntryCount
5031 const VkDescriptorUpdateTemplateEntry* pDescriptorUpdateEntries
5032 VkDescriptorUpdateTemplateType templateType
5033 VkDescriptorSetLayout descriptorSetLayout
5034 VkPipelineBindPoint pipelineBindPoint
5035 VkPipelineLayout pipelineLayout
5036 u32 set
5037}
5038
5039class VkExternalMemoryProperties {
5040 VkExternalMemoryFeatureFlags externalMemoryFeatures
5041 VkExternalMemoryHandleTypeFlags exportFromImportedHandleTypes
5042 VkExternalMemoryHandleTypeFlags compatibleHandleTypes
5043}
5044
5045class VkPhysicalDeviceExternalImageFormatInfo {
5046 VkStructureType sType
5047 const void* pNext
5048 VkExternalMemoryHandleTypeFlagBits handleType
5049}
5050
5051class VkExternalImageFormatProperties {
5052 VkStructureType sType
5053 void* pNext
5054 VkExternalMemoryProperties externalMemoryProperties
5055}
5056
5057class VkPhysicalDeviceExternalBufferInfo {
5058 VkStructureType sType
5059 const void* pNext
5060 VkBufferCreateFlags flags
5061 VkBufferUsageFlags usage
5062 VkExternalMemoryHandleTypeFlagBits handleType
5063}
5064
5065class VkExternalBufferProperties {
5066 VkStructureType sType
5067 void* pNext
5068 VkExternalMemoryProperties externalMemoryProperties
5069}
5070
5071class VkPhysicalDeviceIDProperties {
5072 VkStructureType sType
5073 void* pNext
5074 u8[VK_UUID_SIZE] deviceUUID
5075 u8[VK_UUID_SIZE] driverUUID
5076 u8[VK_LUID_SIZE] deviceLUID
5077 u32 deviceNodeMask
5078 VkBool32 deviceLUIDValid
5079}
5080
5081class VkExternalMemoryImageCreateInfo {
5082 VkStructureType sType
5083 const void* pNext
5084 VkExternalMemoryHandleTypeFlags handleTypes
5085}
5086
5087class VkExternalMemoryBufferCreateInfo {
5088 VkStructureType sType
5089 const void* pNext
5090 VkExternalMemoryHandleTypeFlags handleTypes
5091}
5092
5093class VkExportMemoryAllocateInfo {
5094 VkStructureType sType
5095 const void* pNext
5096 VkExternalMemoryHandleTypeFlags handleTypes
5097}
5098
5099class VkPhysicalDeviceExternalFenceInfo {
5100 VkStructureType sType
5101 const void* pNext
5102 VkExternalFenceHandleTypeFlagBits handleType
5103}
5104
5105class VkExternalFenceProperties {
5106 VkStructureType sType
5107 void* pNext
5108 VkExternalFenceHandleTypeFlags exportFromImportedHandleTypes
5109 VkExternalFenceHandleTypeFlags compatibleHandleTypes
5110 VkExternalFenceFeatureFlags externalFenceFeatures
5111}
5112
5113class VkExportFenceCreateInfo {
5114 VkStructureType sType
5115 const void* pNext
5116 VkExternalFenceHandleTypeFlags handleTypes
5117}
5118
5119class VkExportSemaphoreCreateInfo {
5120 VkStructureType sType
5121 const void* pNext
5122 VkExternalSemaphoreHandleTypeFlags handleTypes
5123}
5124
5125class VkPhysicalDeviceExternalSemaphoreInfo {
5126 VkStructureType sType
5127 const void* pNext
5128 VkExternalSemaphoreHandleTypeFlagBits handleType
5129}
5130
5131class VkExternalSemaphoreProperties {
5132 VkStructureType sType
5133 void* pNext
5134 VkExternalSemaphoreHandleTypeFlags exportFromImportedHandleTypes
5135 VkExternalSemaphoreHandleTypeFlags compatibleHandleTypes
5136 VkExternalSemaphoreFeatureFlags externalSemaphoreFeatures
5137}
5138
5139class VkPhysicalDeviceMaintenance3Properties {
5140 VkStructureType sType
5141 void* pNext
5142 u32 maxPerSetDescriptors
5143 VkDeviceSize maxMemoryAllocationSize
5144}
5145
5146class VkDescriptorSetLayoutSupport {
5147 VkStructureType sType
5148 void* pNext
5149 VkBool32 supported
5150}
5151
5152class VkPhysicalDeviceShaderDrawParameterFeatures {
5153 VkStructureType sType
5154 void* pNext
5155 VkBool32 shaderDrawParameters
5156}
5157
5158
Jesse Hallad250842017-03-10 18:35:38 -08005159@extension("VK_KHR_surface") // 1
Jesse Hallb00daad2015-11-29 19:46:20 -08005160class VkSurfaceCapabilitiesKHR {
Jesse Hall1356b0d2015-11-23 17:24:58 -08005161 u32 minImageCount
5162 u32 maxImageCount
5163 VkExtent2D currentExtent
5164 VkExtent2D minImageExtent
5165 VkExtent2D maxImageExtent
Jesse Hallf4ab2b12015-11-30 16:04:55 -08005166 u32 maxImageArrayLayers
Jesse Hall1356b0d2015-11-23 17:24:58 -08005167 VkSurfaceTransformFlagsKHR supportedTransforms
Jesse Hallf4ab2b12015-11-30 16:04:55 -08005168 VkSurfaceTransformFlagBitsKHR currentTransform
Jesse Halla6429252015-11-29 18:59:42 -08005169 VkCompositeAlphaFlagsKHR supportedCompositeAlpha
Jesse Hall1356b0d2015-11-23 17:24:58 -08005170 VkImageUsageFlags supportedUsageFlags
Michael Lentine88594d72015-11-12 12:49:45 -08005171}
5172
Jesse Hallad250842017-03-10 18:35:38 -08005173@extension("VK_KHR_surface") // 1
Michael Lentine88594d72015-11-12 12:49:45 -08005174class VkSurfaceFormatKHR {
Jesse Hall1356b0d2015-11-23 17:24:58 -08005175 VkFormat format
5176 VkColorSpaceKHR colorSpace
Michael Lentine88594d72015-11-12 12:49:45 -08005177}
5178
Jesse Hallad250842017-03-10 18:35:38 -08005179@extension("VK_KHR_swapchain") // 2
Michael Lentine88594d72015-11-12 12:49:45 -08005180class VkSwapchainCreateInfoKHR {
Jesse Hall1356b0d2015-11-23 17:24:58 -08005181 VkStructureType sType
5182 const void* pNext
Jesse Hallf4ab2b12015-11-30 16:04:55 -08005183 VkSwapchainCreateFlagsKHR flags
Jesse Hall1356b0d2015-11-23 17:24:58 -08005184 VkSurfaceKHR surface
5185 u32 minImageCount
5186 VkFormat imageFormat
5187 VkColorSpaceKHR imageColorSpace
5188 VkExtent2D imageExtent
Jesse Hallf4ab2b12015-11-30 16:04:55 -08005189 u32 imageArrayLayers
5190 VkImageUsageFlags imageUsage
Jesse Hall1356b0d2015-11-23 17:24:58 -08005191 VkSharingMode sharingMode
Jesse Hall03b6fe12015-11-24 12:44:21 -08005192 u32 queueFamilyIndexCount
Jesse Hall1356b0d2015-11-23 17:24:58 -08005193 const u32* pQueueFamilyIndices
Jesse Hallf4ab2b12015-11-30 16:04:55 -08005194 VkSurfaceTransformFlagBitsKHR preTransform
5195 VkCompositeAlphaFlagBitsKHR compositeAlpha
Jesse Hall1356b0d2015-11-23 17:24:58 -08005196 VkPresentModeKHR presentMode
Jesse Hall1356b0d2015-11-23 17:24:58 -08005197 VkBool32 clipped
Jesse Hallf4ab2b12015-11-30 16:04:55 -08005198 VkSwapchainKHR oldSwapchain
Michael Lentine88594d72015-11-12 12:49:45 -08005199}
5200
Jesse Hallad250842017-03-10 18:35:38 -08005201@extension("VK_KHR_swapchain") // 2
Michael Lentine88594d72015-11-12 12:49:45 -08005202class VkPresentInfoKHR {
Jesse Hall1356b0d2015-11-23 17:24:58 -08005203 VkStructureType sType
5204 const void* pNext
Jesse Hallb00daad2015-11-29 19:46:20 -08005205 u32 waitSemaphoreCount
5206 const VkSemaphore* pWaitSemaphores
Jesse Hall1356b0d2015-11-23 17:24:58 -08005207 u32 swapchainCount
Jesse Hall03b6fe12015-11-24 12:44:21 -08005208 const VkSwapchainKHR* pSwapchains
Jesse Hallf4ab2b12015-11-30 16:04:55 -08005209 const u32* pImageIndices
Jesse Halle1b12782015-11-30 11:27:32 -08005210 VkResult* pResults
Michael Lentine88594d72015-11-12 12:49:45 -08005211}
5212
Ian Elliott28bd2c32017-10-13 09:21:12 -06005213@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04005214@extension("VK_KHR_swapchain") // 2
5215class VkImageSwapchainCreateInfoKHR {
5216 VkStructureType sType
5217 const void* pNext
5218 VkSwapchainKHR swapchain
5219}
5220
Ian Elliott28bd2c32017-10-13 09:21:12 -06005221@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04005222@extension("VK_KHR_swapchain") // 2
5223class VkBindImageMemorySwapchainInfoKHR {
5224 VkStructureType sType
5225 const void* pNext
5226 VkSwapchainKHR swapchain
5227 u32 imageIndex
5228}
5229
Ian Elliott28bd2c32017-10-13 09:21:12 -06005230@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04005231@extension("VK_KHR_swapchain") // 2
5232class VkAcquireNextImageInfoKHR {
5233 VkStructureType sType
5234 const void* pNext
5235 VkSwapchainKHR swapchain
5236 u64 timeout
5237 VkSemaphore semaphore
5238 VkFence fence
5239 u32 deviceMask
5240}
5241
Ian Elliott28bd2c32017-10-13 09:21:12 -06005242@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04005243@extension("VK_KHR_swapchain") // 2
5244class VkDeviceGroupPresentCapabilitiesKHR {
5245 VkStructureType sType
5246 const void* pNext
5247 u32[VK_MAX_DEVICE_GROUP_SIZE] presentMask
5248 VkDeviceGroupPresentModeFlagsKHR modes
5249}
5250
Ian Elliott28bd2c32017-10-13 09:21:12 -06005251@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04005252@extension("VK_KHR_swapchain") // 2
5253class VkDeviceGroupPresentInfoKHR {
5254 VkStructureType sType
5255 const void* pNext
5256 u32 swapchainCount
5257 const u32* pDeviceMasks
5258 VkDeviceGroupPresentModeFlagBitsKHR mode
5259}
5260
Ian Elliott28bd2c32017-10-13 09:21:12 -06005261@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04005262@extension("VK_KHR_swapchain") // 2
5263class VkDeviceGroupSwapchainCreateInfoKHR {
5264 VkStructureType sType
5265 const void* pNext
5266 VkDeviceGroupPresentModeFlagsKHR modes
5267}
5268
Jesse Hallad250842017-03-10 18:35:38 -08005269@extension("VK_KHR_display") // 3
Jesse Hall1356b0d2015-11-23 17:24:58 -08005270class VkDisplayPropertiesKHR {
5271 VkDisplayKHR display
5272 const char* displayName
5273 VkExtent2D physicalDimensions
5274 VkExtent2D physicalResolution
5275 VkSurfaceTransformFlagsKHR supportedTransforms
Jesse Hall1356b0d2015-11-23 17:24:58 -08005276 VkBool32 planeReorderPossible
Jesse Halla6429252015-11-29 18:59:42 -08005277 VkBool32 persistentContent
Michael Lentine88594d72015-11-12 12:49:45 -08005278}
5279
Jesse Hallad250842017-03-10 18:35:38 -08005280@extension("VK_KHR_display") // 3
Jesse Halla6429252015-11-29 18:59:42 -08005281class VkDisplayModeParametersKHR {
Jesse Hall1356b0d2015-11-23 17:24:58 -08005282 VkExtent2D visibleRegion
Jesse Halla6429252015-11-29 18:59:42 -08005283 u32 refreshRate
Michael Lentine88594d72015-11-12 12:49:45 -08005284}
Jesse Halld27f6aa2015-08-15 17:58:48 -07005285
Jesse Hallad250842017-03-10 18:35:38 -08005286@extension("VK_KHR_display") // 3
Jesse Hall1356b0d2015-11-23 17:24:58 -08005287class VkDisplayModePropertiesKHR {
5288 VkDisplayModeKHR displayMode
Jesse Halla6429252015-11-29 18:59:42 -08005289 VkDisplayModeParametersKHR parameters
Jesse Hall1356b0d2015-11-23 17:24:58 -08005290}
5291
Jesse Hallad250842017-03-10 18:35:38 -08005292@extension("VK_KHR_display") // 3
Jesse Hall1356b0d2015-11-23 17:24:58 -08005293class VkDisplayModeCreateInfoKHR {
5294 VkStructureType sType
5295 const void* pNext
Jesse Hall9ba8bc82015-11-30 16:22:16 -08005296 VkDisplayModeCreateFlagsKHR flags
Jesse Halla6429252015-11-29 18:59:42 -08005297 VkDisplayModeParametersKHR parameters
Jesse Hall1356b0d2015-11-23 17:24:58 -08005298}
5299
Jesse Hallad250842017-03-10 18:35:38 -08005300@extension("VK_KHR_display") // 3
Jesse Hall1356b0d2015-11-23 17:24:58 -08005301class VkDisplayPlanePropertiesKHR {
Jesse Halla6429252015-11-29 18:59:42 -08005302 VkDisplayKHR currentDisplay
5303 u32 currentStackIndex
5304}
5305
Jesse Hallad250842017-03-10 18:35:38 -08005306@extension("VK_KHR_display") // 3
Jesse Halla6429252015-11-29 18:59:42 -08005307class VkDisplayPlaneCapabilitiesKHR {
Jesse Hall1356b0d2015-11-23 17:24:58 -08005308 VkDisplayPlaneAlphaFlagsKHR supportedAlpha
5309 VkOffset2D minSrcPosition
5310 VkOffset2D maxSrcPosition
5311 VkExtent2D minSrcExtent
5312 VkExtent2D maxSrcExtent
5313 VkOffset2D minDstPosition
5314 VkOffset2D maxDstPosition
5315 VkExtent2D minDstExtent
5316 VkExtent2D maxDstExtent
5317}
5318
Jesse Hallad250842017-03-10 18:35:38 -08005319@extension("VK_KHR_display") // 3
Jesse Halla6429252015-11-29 18:59:42 -08005320class VkDisplaySurfaceCreateInfoKHR {
Jesse Hall1356b0d2015-11-23 17:24:58 -08005321 VkStructureType sType
5322 const void* pNext
Jesse Hallf4ab2b12015-11-30 16:04:55 -08005323 VkDisplaySurfaceCreateFlagsKHR flags
Jesse Hall1356b0d2015-11-23 17:24:58 -08005324 VkDisplayModeKHR displayMode
5325 u32 planeIndex
5326 u32 planeStackIndex
Jesse Hallf4ab2b12015-11-30 16:04:55 -08005327 VkSurfaceTransformFlagBitsKHR transform
Jesse Hall1356b0d2015-11-23 17:24:58 -08005328 f32 globalAlpha
Jesse Hallf4ab2b12015-11-30 16:04:55 -08005329 VkDisplayPlaneAlphaFlagBitsKHR alphaMode
5330 VkExtent2D imageExtent
Jesse Hall1356b0d2015-11-23 17:24:58 -08005331}
5332
Jesse Hallad250842017-03-10 18:35:38 -08005333@extension("VK_KHR_display_swapchain") // 4
Jesse Hall1356b0d2015-11-23 17:24:58 -08005334class VkDisplayPresentInfoKHR {
5335 VkStructureType sType
5336 const void* pNext
5337 VkRect2D srcRect
5338 VkRect2D dstRect
Jesse Halla6429252015-11-29 18:59:42 -08005339 VkBool32 persistent
Jesse Hall1356b0d2015-11-23 17:24:58 -08005340}
5341
Jesse Hallad250842017-03-10 18:35:38 -08005342@extension("VK_KHR_xlib_surface") // 5
Jesse Hallf9fa9a52016-01-08 16:08:51 -08005343class VkXlibSurfaceCreateInfoKHR {
5344 VkStructureType sType
5345 const void* pNext
5346 VkXlibSurfaceCreateFlagsKHR flags
5347 platform.Display* dpy
5348 platform.Window window
5349}
5350
Jesse Hallad250842017-03-10 18:35:38 -08005351@extension("VK_KHR_xcb_surface") // 6
Jesse Hallf9fa9a52016-01-08 16:08:51 -08005352class VkXcbSurfaceCreateInfoKHR {
5353 VkStructureType sType
5354 const void* pNext
5355 VkXcbSurfaceCreateFlagsKHR flags
5356 platform.xcb_connection_t* connection
5357 platform.xcb_window_t window
5358}
5359
Jesse Hallad250842017-03-10 18:35:38 -08005360@extension("VK_KHR_wayland_surface") // 7
Jesse Hallf9fa9a52016-01-08 16:08:51 -08005361class VkWaylandSurfaceCreateInfoKHR {
5362 VkStructureType sType
5363 const void* pNext
5364 VkWaylandSurfaceCreateFlagsKHR flags
5365 platform.wl_display* display
5366 platform.wl_surface* surface
5367}
5368
Jesse Hallad250842017-03-10 18:35:38 -08005369@extension("VK_KHR_android_surface") // 9
Jesse Hallf9fa9a52016-01-08 16:08:51 -08005370class VkAndroidSurfaceCreateInfoKHR {
5371 VkStructureType sType
5372 const void* pNext
5373 VkAndroidSurfaceCreateFlagsKHR flags
5374 platform.ANativeWindow* window
5375}
5376
Jesse Hallad250842017-03-10 18:35:38 -08005377@extension("VK_KHR_win32_surface") // 10
Jesse Hallf9fa9a52016-01-08 16:08:51 -08005378class VkWin32SurfaceCreateInfoKHR {
5379 VkStructureType sType
5380 const void* pNext
5381 VkWin32SurfaceCreateFlagsKHR flags
5382 platform.HINSTANCE hinstance
5383 platform.HWND hwnd
5384}
5385
Jesse Hallad250842017-03-10 18:35:38 -08005386@extension("VK_ANDROID_native_buffer") // 11
Jesse Halld1abd742017-02-09 21:45:51 -08005387@internal class Gralloc1Usage {
5388 u64 consumer
5389 u64 producer
5390}
5391
Jesse Hallad250842017-03-10 18:35:38 -08005392@extension("VK_ANDROID_native_buffer") // 11
Chia-I Wub262ddc2016-03-22 07:38:20 +08005393class VkNativeBufferANDROID {
5394 VkStructureType sType
5395 const void* pNext
5396 platform.buffer_handle_t handle
Jesse Halld1abd742017-02-09 21:45:51 -08005397 s32 stride
5398 s32 format
5399 s32 usage
5400 Gralloc1Usage usage2
Chia-I Wub262ddc2016-03-22 07:38:20 +08005401}
5402
Jesse Hallad250842017-03-10 18:35:38 -08005403@extension("VK_ANDROID_native_buffer") // 11
Chris Forbes8e4438b2016-12-07 16:26:49 +13005404class VkSwapchainImageCreateInfoANDROID {
5405 VkStructureType sType
5406 const void* pNext
Chris Forbes134d9582017-01-12 14:26:37 +13005407 VkSwapchainImageUsageFlagsANDROID flags
Chris Forbes48853712017-01-12 14:09:33 +13005408}
Ian Elliott4c8bb2a2016-12-29 11:07:26 -07005409
Jesse Hallad250842017-03-10 18:35:38 -08005410@extension("VK_ANDROID_native_buffer") // 11
Chris Forbes1d4e5542017-02-15 19:38:50 +13005411class VkPhysicalDevicePresentationPropertiesANDROID {
5412 VkStructureType sType
5413 void* pNext
5414 VkBool32 sharedImage
5415}
5416
Jesse Hallad250842017-03-10 18:35:38 -08005417@extension("VK_EXT_debug_report") // 12
Jesse Hall715b86a2016-01-16 16:34:29 -08005418class VkDebugReportCallbackCreateInfoEXT {
5419 VkStructureType sType
5420 const void* pNext
5421 VkDebugReportFlagsEXT flags
5422 PFN_vkDebugReportCallbackEXT pfnCallback
5423 void* pUserData
5424}
5425
Jesse Hallad250842017-03-10 18:35:38 -08005426@extension("VK_AMD_rasterization_order") // 19
Jesse Hall26763382016-05-20 07:13:52 -07005427class VkPipelineRasterizationStateRasterizationOrderAMD {
5428 VkStructureType sType
5429 const void* pNext
5430 VkRasterizationOrderAMD rasterizationOrder
5431}
5432
Jesse Hallad250842017-03-10 18:35:38 -08005433@extension("VK_EXT_debug_marker") // 23
Jesse Hall26763382016-05-20 07:13:52 -07005434class VkDebugMarkerObjectNameInfoEXT {
5435 VkStructureType sType
5436 const void* pNext
5437 VkDebugReportObjectTypeEXT objectType
5438 u64 object
5439 const char* pObjectName
5440}
5441
Jesse Hallad250842017-03-10 18:35:38 -08005442@extension("VK_EXT_debug_marker") // 23
Jesse Hall26763382016-05-20 07:13:52 -07005443class VkDebugMarkerObjectTagInfoEXT {
5444 VkStructureType sType
5445 const void* pNext
5446 VkDebugReportObjectTypeEXT objectType
5447 u64 object
5448 u64 tagName
5449 platform.size_t tagSize
5450 const void* pTag
5451}
5452
Jesse Hallad250842017-03-10 18:35:38 -08005453@extension("VK_EXT_debug_marker") // 23
Jesse Hall26763382016-05-20 07:13:52 -07005454class VkDebugMarkerMarkerInfoEXT {
5455 VkStructureType sType
5456 const void* pNext
5457 const char* pMarkerName
5458 f32[4] color
5459}
5460
Jesse Hallad250842017-03-10 18:35:38 -08005461@extension("VK_NV_dedicated_allocation") // 27
Jesse Hall56d386a2016-07-26 15:20:40 -07005462class VkDedicatedAllocationImageCreateInfoNV {
5463 VkStructureType sType
5464 const void* pNext
5465 VkBool32 dedicatedAllocation
5466}
5467
Jesse Hallad250842017-03-10 18:35:38 -08005468@extension("VK_NV_dedicated_allocation") // 27
Jesse Hall56d386a2016-07-26 15:20:40 -07005469class VkDedicatedAllocationBufferCreateInfoNV {
5470 VkStructureType sType
5471 const void* pNext
5472 VkBool32 dedicatedAllocation
5473}
5474
Jesse Hallad250842017-03-10 18:35:38 -08005475@extension("VK_NV_dedicated_allocation") // 27
Jesse Hall56d386a2016-07-26 15:20:40 -07005476class VkDedicatedAllocationMemoryAllocateInfoNV {
5477 VkStructureType sType
5478 const void* pNext
5479 VkImage image
5480 VkBuffer buffer
5481}
5482
Jesse Hallf47e8f82018-10-27 23:41:45 -07005483@extension("VK_EXT_transform_feedback") // 29
5484class VkPhysicalDeviceTransformFeedbackFeaturesEXT {
5485 VkStructureType sType
5486 void* pNext
5487 VkBool32 transformFeedback
5488 VkBool32 geometryStreams
5489}
5490
5491@extension("VK_EXT_transform_feedback") // 29
5492class VkPhysicalDeviceTransformFeedbackPropertiesEXT {
5493 VkStructureType sType
5494 void* pNext
5495 u32 maxTransformFeedbackStreams
5496 u32 maxTransformFeedbackBuffers
5497 VkDeviceSize maxTransformFeedbackBufferSize
5498 u32 maxTransformFeedbackStreamDataSize
5499 u32 maxTransformFeedbackBufferDataSize
5500 u32 maxTransformFeedbackBufferDataStride
5501 VkBool32 transformFeedbackQueries
5502 VkBool32 transformFeedbackStreamsLinesTriangles
5503 VkBool32 transformFeedbackRasterizationStreamSelect
5504 VkBool32 transformFeedbackDraw
5505}
5506
5507@extension("VK_EXT_transform_feedback") // 29
5508class VkPipelineRasterizationStateStreamCreateInfoEXT {
5509 VkStructureType sType
5510 const void* pNext
5511 VkPipelineRasterizationStateStreamCreateFlagsEXT flags
5512 u32 rasterizationStream
5513}
5514
Jesse Hall7ba0ac72017-07-07 17:13:23 -07005515@extension("VK_AMD_texture_gather_bias_lod") // 42
5516class VkTextureLODGatherFormatPropertiesAMD {
5517 VkStructureType sType
5518 void* pNext
5519 VkBool32 supportsTextureGatherLODBiasAMD
5520}
5521
Jesse Hall8c954d32018-01-17 22:06:20 -08005522@extension("VK_AMD_shader_info") // 43
5523class VkShaderResourceUsageAMD {
5524 u32 numUsedVgprs
5525 u32 numUsedSgprs
5526 u32 ldsSizePerLocalWorkGroup
5527 platform.size_t ldsUsageSizeInBytes
5528 platform.size_t scratchMemUsageInBytes
5529}
5530
5531@extension("VK_AMD_shader_info") // 43
5532class VkShaderStatisticsInfoAMD {
5533 VkShaderStageFlags shaderStageMask
5534 VkShaderResourceUsageAMD resourceUsage
5535 u32 numPhysicalVgprs
5536 u32 numPhysicalSgprs
5537 u32 numAvailableVgprs
5538 u32 numAvailableSgprs
5539 u32[3] computeWorkGroupSize
5540}
5541
Jesse Hallb5297192018-09-22 20:52:13 +02005542@extension("VK_NV_corner_sampled_image") // 51
5543class VkPhysicalDeviceCornerSampledImageFeaturesNV {
5544 VkStructureType sType
5545 void* pNext
5546 VkBool32 cornerSampledImage
5547}
5548
Daniel Koch09f7bf92017-10-05 00:26:58 -04005549@extension("VK_KHR_multiview") // 54
5550class VkRenderPassMultiviewCreateInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005551 VkStructureType sType
5552 const void* pNext
5553 u32 subpassCount
5554 const u32* pViewMasks
5555 u32 dependencyCount
5556 const s32* pViewOffsets
5557 u32 correlationMaskCount
5558 const u32* pCorrelationMasks
5559}
5560
Daniel Koch09f7bf92017-10-05 00:26:58 -04005561@extension("VK_KHR_multiview") // 54
5562class VkPhysicalDeviceMultiviewFeaturesKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005563 VkStructureType sType
5564 void* pNext
5565 VkBool32 multiview
5566 VkBool32 multiviewGeometryShader
5567 VkBool32 multiviewTessellationShader
5568}
5569
Daniel Koch09f7bf92017-10-05 00:26:58 -04005570@extension("VK_KHR_multiview") // 54
5571class VkPhysicalDeviceMultiviewPropertiesKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005572 VkStructureType sType
5573 void* pNext
5574 u32 maxMultiviewViewCount
5575 u32 maxMultiviewInstanceIndex
5576}
5577
5578@extension("VK_NV_external_memory_capabilities") // 56
Jesse Halleb02c472017-02-24 15:13:45 -08005579class VkExternalImageFormatPropertiesNV {
5580 VkImageFormatProperties imageFormatProperties
5581 VkExternalMemoryFeatureFlagsNV externalMemoryFeatures
5582 VkExternalMemoryHandleTypeFlagsNV exportFromImportedHandleTypes
5583 VkExternalMemoryHandleTypeFlagsNV compatibleHandleTypes
5584}
5585
Jesse Hallad250842017-03-10 18:35:38 -08005586@extension("VK_NV_external_memory") // 57
Jesse Halleb02c472017-02-24 15:13:45 -08005587class VkExternalMemoryImageCreateInfoNV {
5588 VkStructureType sType
5589 const void* pNext
5590 VkExternalMemoryHandleTypeFlagsNV handleTypes
5591}
5592
Jesse Hallad250842017-03-10 18:35:38 -08005593@extension("VK_NV_external_memory") // 57
Jesse Halleb02c472017-02-24 15:13:45 -08005594class VkExportMemoryAllocateInfoNV {
5595 VkStructureType sType
5596 const void* pNext
5597 VkExternalMemoryHandleTypeFlagsNV handleTypes
5598}
5599
Jesse Hallad250842017-03-10 18:35:38 -08005600@extension("VK_NV_external_memory_win32") // 58
Jesse Halleb02c472017-02-24 15:13:45 -08005601class VkImportMemoryWin32HandleInfoNV {
5602 VkStructureType sType
5603 const void* pNext
5604 VkExternalMemoryHandleTypeFlagsNV handleType
5605 platform.HANDLE handle
5606}
5607
Jesse Hallad250842017-03-10 18:35:38 -08005608@extension("VK_NV_external_memory_win32") // 58
Jesse Halleb02c472017-02-24 15:13:45 -08005609class VkExportMemoryWin32HandleInfoNV {
5610 VkStructureType sType
5611 const void* pNext
5612 const platform.SECURITY_ATTRIBUTES* pAttributes
5613 platform.DWORD dwAccess
5614}
5615
Jesse Hallad250842017-03-10 18:35:38 -08005616@extension("VK_NV_win32_keyed_mutex") // 59
Jesse Halleb02c472017-02-24 15:13:45 -08005617class VkWin32KeyedMutexAcquireReleaseInfoNV {
5618 VkStructureType sType
5619 const void* pNext
5620 u32 acquireCount
5621 const VkDeviceMemory* pAcquireSyncs
5622 const u64* pAcquireKeys
5623 const u32* pAcquireTimeoutMilliseconds
5624 u32 releaseCount
5625 const VkDeviceMemory* pReleaseSyncs
5626 const u64* pReleaseKeys
5627}
5628
Jesse Hallad250842017-03-10 18:35:38 -08005629@extension("VK_KHR_get_physical_device_properties2") // 60
Chris Forbes1194ede2016-12-30 16:29:25 +13005630class VkPhysicalDeviceFeatures2KHR {
5631 VkStructureType sType
5632 void* pNext
5633 VkPhysicalDeviceFeatures features
5634}
5635
Jesse Hallad250842017-03-10 18:35:38 -08005636@extension("VK_KHR_get_physical_device_properties2") // 60
Chris Forbes1194ede2016-12-30 16:29:25 +13005637class VkPhysicalDeviceProperties2KHR {
5638 VkStructureType sType
5639 void* pNext
5640 VkPhysicalDeviceProperties properties
5641}
5642
Jesse Hallad250842017-03-10 18:35:38 -08005643@extension("VK_KHR_get_physical_device_properties2") // 60
Chris Forbes1194ede2016-12-30 16:29:25 +13005644class VkFormatProperties2KHR {
5645 VkStructureType sType
5646 void* pNext
5647 VkFormatProperties formatProperties
5648}
5649
Jesse Hallad250842017-03-10 18:35:38 -08005650@extension("VK_KHR_get_physical_device_properties2") // 60
Chris Forbes1194ede2016-12-30 16:29:25 +13005651class VkImageFormatProperties2KHR {
5652 VkStructureType sType
5653 void* pNext
5654 VkImageFormatProperties imageFormatProperties
5655}
5656
Jesse Hallad250842017-03-10 18:35:38 -08005657@extension("VK_KHR_get_physical_device_properties2") // 60
Chris Forbes1194ede2016-12-30 16:29:25 +13005658class VkPhysicalDeviceImageFormatInfo2KHR {
5659 VkStructureType sType
5660 const void* pNext
5661 VkFormat format
5662 VkImageType type
5663 VkImageTiling tiling
5664 VkImageUsageFlags usage
5665 VkImageCreateFlags flags
5666}
5667
Jesse Hallad250842017-03-10 18:35:38 -08005668@extension("VK_KHR_get_physical_device_properties2") // 60
Chris Forbes1194ede2016-12-30 16:29:25 +13005669class VkQueueFamilyProperties2KHR {
5670 VkStructureType sType
5671 void* pNext
5672 VkQueueFamilyProperties queueFamilyProperties
5673}
5674
Jesse Hallad250842017-03-10 18:35:38 -08005675@extension("VK_KHR_get_physical_device_properties2") // 60
Chris Forbes1194ede2016-12-30 16:29:25 +13005676class VkPhysicalDeviceMemoryProperties2KHR {
5677 VkStructureType sType
5678 void* pNext
5679 VkPhysicalDeviceMemoryProperties memoryProperties
5680}
5681
Jesse Hallad250842017-03-10 18:35:38 -08005682@extension("VK_KHR_get_physical_device_properties2") // 60
Chris Forbes1194ede2016-12-30 16:29:25 +13005683class VkSparseImageFormatProperties2KHR {
5684 VkStructureType sType
5685 void* pNext
5686 VkSparseImageFormatProperties properties
5687}
5688
Jesse Hallad250842017-03-10 18:35:38 -08005689@extension("VK_KHR_get_physical_device_properties2") // 60
Chris Forbes1194ede2016-12-30 16:29:25 +13005690class VkPhysicalDeviceSparseImageFormatInfo2KHR {
5691 VkStructureType sType
5692 const void* pNext
5693 VkFormat format
5694 VkImageType type
5695 VkSampleCountFlagBits samples
5696 VkImageUsageFlags usage
5697 VkImageTiling tiling
5698}
5699
Daniel Koch09f7bf92017-10-05 00:26:58 -04005700@extension("VK_KHR_device_group") // 61
5701class VkMemoryAllocateFlagsInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005702 VkStructureType sType
5703 const void* pNext
Daniel Koch09f7bf92017-10-05 00:26:58 -04005704 VkMemoryAllocateFlagsKHR flags
Jesse Hallad250842017-03-10 18:35:38 -08005705 u32 deviceMask
5706}
5707
Daniel Koch09f7bf92017-10-05 00:26:58 -04005708@extension("VK_KHR_device_group") // 61
5709class VkBindBufferMemoryDeviceGroupInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005710 VkStructureType sType
5711 const void* pNext
Jesse Hallad250842017-03-10 18:35:38 -08005712 u32 deviceIndexCount
5713 const u32* pDeviceIndices
5714}
5715
Daniel Koch09f7bf92017-10-05 00:26:58 -04005716@extension("VK_KHR_device_group") // 61
5717class VkBindImageMemoryDeviceGroupInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005718 VkStructureType sType
5719 const void* pNext
Jesse Hallad250842017-03-10 18:35:38 -08005720 u32 deviceIndexCount
5721 const u32* pDeviceIndices
5722 u32 SFRRectCount
5723 const VkRect2D* pSFRRects
5724}
5725
Daniel Koch09f7bf92017-10-05 00:26:58 -04005726@extension("VK_KHR_device_group") // 61
5727class VkDeviceGroupRenderPassBeginInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005728 VkStructureType sType
5729 const void* pNext
5730 u32 deviceMask
5731 u32 deviceRenderAreaCount
5732 const VkRect2D* pDeviceRenderAreas
5733}
5734
Daniel Koch09f7bf92017-10-05 00:26:58 -04005735@extension("VK_KHR_device_group") // 61
5736class VkDeviceGroupCommandBufferBeginInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005737 VkStructureType sType
5738 const void* pNext
5739 u32 deviceMask
5740}
5741
Daniel Koch09f7bf92017-10-05 00:26:58 -04005742@extension("VK_KHR_device_group") // 61
5743class VkDeviceGroupSubmitInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005744 VkStructureType sType
5745 const void* pNext
5746 u32 waitSemaphoreCount
5747 const u32* pWaitSemaphoreDeviceIndices
5748 u32 commandBufferCount
5749 const u32* pCommandBufferDeviceMasks
5750 u32 signalSemaphoreCount
5751 const u32* pSignalSemaphoreDeviceIndices
5752}
5753
Daniel Koch09f7bf92017-10-05 00:26:58 -04005754@extension("VK_KHR_device_group") // 61
5755class VkDeviceGroupBindSparseInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005756 VkStructureType sType
5757 const void* pNext
5758 u32 resourceDeviceIndex
5759 u32 memoryDeviceIndex
5760}
5761
Jesse Hallad250842017-03-10 18:35:38 -08005762@extension("VK_EXT_validation_flags") // 62
Chris Forbes289cb792016-12-30 15:03:55 +13005763class VkValidationFlagsEXT {
5764 VkStructureType sType
5765 const void* pNext
5766 u32 disabledValidationCheckCount
Jesse Hall115df0c2018-07-30 12:00:59 -07005767 const VkValidationCheckEXT* pDisabledValidationChecks
Chris Forbes289cb792016-12-30 15:03:55 +13005768}
5769
Jesse Hallad250842017-03-10 18:35:38 -08005770@extension("VK_NN_vi_surface") // 63
Jesse Hall77ad05b2017-03-10 22:02:20 -08005771class VkViSurfaceCreateInfoNN {
5772 VkStructureType sType
5773 const void* pNext
5774 VkViSurfaceCreateFlagsNN flags
5775 void* window
5776}
5777
Jesse Hall4af6c462018-09-10 09:04:25 -07005778@extension("VK_EXT_astc_decode_mode") // 68
5779class VkImageViewASTCDecodeModeEXT {
5780 VkStructureType sType
5781 const void* pNext
5782 VkFormat decodeMode
5783}
5784
5785@extension("VK_EXT_astc_decode_mode") // 68
5786class VkPhysicalDeviceASTCDecodeFeaturesEXT {
5787 VkStructureType sType
5788 void* pNext
5789 VkBool32 decodeModeSharedExponent
5790}
5791
Daniel Koch09f7bf92017-10-05 00:26:58 -04005792@extension("VK_KHR_device_group_creation") // 71
5793class VkPhysicalDeviceGroupPropertiesKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005794 VkStructureType sType
Jesse Hallf5ad48b2017-03-20 13:09:19 -07005795 void* pNext
Jesse Hallad250842017-03-10 18:35:38 -08005796 u32 physicalDeviceCount
Daniel Koch09f7bf92017-10-05 00:26:58 -04005797 VkPhysicalDevice[VK_MAX_DEVICE_GROUP_SIZE] physicalDevices
Jesse Hallad250842017-03-10 18:35:38 -08005798 VkBool32 subsetAllocation
5799}
5800
Daniel Koch09f7bf92017-10-05 00:26:58 -04005801@extension("VK_KHR_device_group_creation") // 71
5802class VkDeviceGroupDeviceCreateInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005803 VkStructureType sType
5804 const void* pNext
5805 u32 physicalDeviceCount
5806 const VkPhysicalDevice* pPhysicalDevices
5807}
5808
Jesse Hall9492f992017-08-28 12:10:06 -07005809@extension("VK_KHR_external_memory_capabilities") // 72
5810class VkExternalMemoryPropertiesKHR {
5811 VkExternalMemoryFeatureFlagsKHR externalMemoryFeatures
5812 VkExternalMemoryHandleTypeFlagsKHR exportFromImportedHandleTypes
5813 VkExternalMemoryHandleTypeFlagsKHR compatibleHandleTypes
Jesse Hallad250842017-03-10 18:35:38 -08005814}
5815
Jesse Hall9492f992017-08-28 12:10:06 -07005816@extension("VK_KHR_external_memory_capabilities") // 72
5817class VkPhysicalDeviceExternalImageFormatInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005818 VkStructureType sType
5819 const void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005820 VkExternalMemoryHandleTypeFlagBitsKHR handleType
Jesse Hallad250842017-03-10 18:35:38 -08005821}
5822
Jesse Hall9492f992017-08-28 12:10:06 -07005823@extension("VK_KHR_external_memory_capabilities") // 72
5824class VkExternalImageFormatPropertiesKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005825 VkStructureType sType
5826 void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005827 VkExternalMemoryPropertiesKHR externalMemoryProperties
Jesse Hallad250842017-03-10 18:35:38 -08005828}
5829
Jesse Hall9492f992017-08-28 12:10:06 -07005830@extension("VK_KHR_external_memory_capabilities") // 72
5831class VkPhysicalDeviceExternalBufferInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005832 VkStructureType sType
5833 const void* pNext
5834 VkBufferCreateFlags flags
5835 VkBufferUsageFlags usage
Jesse Hall9492f992017-08-28 12:10:06 -07005836 VkExternalMemoryHandleTypeFlagBitsKHR handleType
Jesse Hallad250842017-03-10 18:35:38 -08005837}
5838
Jesse Hall9492f992017-08-28 12:10:06 -07005839@extension("VK_KHR_external_memory_capabilities") // 72
5840class VkExternalBufferPropertiesKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005841 VkStructureType sType
5842 void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005843 VkExternalMemoryPropertiesKHR externalMemoryProperties
Jesse Hallad250842017-03-10 18:35:38 -08005844}
5845
Jesse Hall9492f992017-08-28 12:10:06 -07005846@extension("VK_KHR_external_memory_capabilities") // 72
5847class VkPhysicalDeviceIDPropertiesKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005848 VkStructureType sType
5849 void* pNext
5850 u8[VK_UUID_SIZE] deviceUUID
5851 u8[VK_UUID_SIZE] driverUUID
Daniel Koch09f7bf92017-10-05 00:26:58 -04005852 u8[VK_LUID_SIZE] deviceLUID
Jesse Hall9492f992017-08-28 12:10:06 -07005853 u32 deviceNodeMask
Jesse Hallad250842017-03-10 18:35:38 -08005854 VkBool32 deviceLUIDValid
5855}
5856
Jesse Hall9492f992017-08-28 12:10:06 -07005857@extension("VK_KHR_external_memory") // 73
5858class VkExternalMemoryImageCreateInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005859 VkStructureType sType
5860 const void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005861 VkExternalMemoryHandleTypeFlagsKHR handleTypes
Jesse Hallad250842017-03-10 18:35:38 -08005862}
5863
Jesse Hall9492f992017-08-28 12:10:06 -07005864@extension("VK_KHR_external_memory") // 73
5865class VkExternalMemoryBufferCreateInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005866 VkStructureType sType
5867 const void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005868 VkExternalMemoryHandleTypeFlagsKHR handleTypes
Jesse Hallad250842017-03-10 18:35:38 -08005869}
5870
Jesse Hall9492f992017-08-28 12:10:06 -07005871@extension("VK_KHR_external_memory") // 73
5872class VkExportMemoryAllocateInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005873 VkStructureType sType
5874 const void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005875 VkExternalMemoryHandleTypeFlagsKHR handleTypes
Jesse Hallad250842017-03-10 18:35:38 -08005876}
5877
Jesse Hall9492f992017-08-28 12:10:06 -07005878@extension("VK_KHR_external_memory_win32") // 74
5879class VkImportMemoryWin32HandleInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005880 VkStructureType sType
5881 const void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005882 VkExternalMemoryHandleTypeFlagBitsKHR handleType
Jesse Hallad250842017-03-10 18:35:38 -08005883 platform.HANDLE handle
Jesse Hall9492f992017-08-28 12:10:06 -07005884 platform.LPCWSTR name
Jesse Hallad250842017-03-10 18:35:38 -08005885}
5886
Jesse Hall9492f992017-08-28 12:10:06 -07005887@extension("VK_KHR_external_memory_win32") // 74
5888class VkExportMemoryWin32HandleInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005889 VkStructureType sType
5890 const void* pNext
5891 const platform.SECURITY_ATTRIBUTES* pAttributes
5892 platform.DWORD dwAccess
5893 platform.LPCWSTR name
5894}
5895
Jesse Hall9492f992017-08-28 12:10:06 -07005896@extension("VK_KHR_external_memory_win32") // 74
5897class VkMemoryWin32HandlePropertiesKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005898 VkStructureType sType
5899 void* pNext
5900 u32 memoryTypeBits
5901}
5902
Jesse Hall9492f992017-08-28 12:10:06 -07005903@extension("VK_KHR_external_memory_win32") // 74
5904class VkMemoryGetWin32HandleInfoKHR {
5905 VkStructureType sType
5906 void* pNext
5907 VkDeviceMemory memory
5908 VkExternalMemoryHandleTypeFlagBitsKHR handleType
5909}
5910
5911@extension("VK_KHR_external_memory_fd") // 75
5912class VkImportMemoryFdInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005913 VkStructureType sType
5914 const void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005915 VkExternalMemoryHandleTypeFlagBitsKHR handleType
Jesse Hallad250842017-03-10 18:35:38 -08005916 int fd
5917}
5918
Jesse Hall9492f992017-08-28 12:10:06 -07005919@extension("VK_KHR_external_memory_fd") // 75
5920class VkMemoryFdPropertiesKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005921 VkStructureType sType
5922 void* pNext
5923 u32 memoryTypeBits
5924}
5925
Jesse Hall9492f992017-08-28 12:10:06 -07005926@extension("VK_KHR_external_memory_fd") // 75
5927class VkMemoryGetFdInfoKHR {
5928 VkStructureType sType
5929 void* pNext
5930 VkDeviceMemory memory
5931 VkExternalMemoryHandleTypeFlagBitsKHR handleType
5932}
5933
5934@extension("VK_KHR_win32_keyed_mutex") // 76
5935class VkWin32KeyedMutexAcquireReleaseInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005936 VkStructureType sType
5937 const void* pNext
5938 u32 acquireCount
5939 const VkDeviceMemory* pAcquireSyncs
5940 const u64* pAcquireKeys
5941 const u32* pAcquireTimeouts
5942 u32 releaseCount
5943 const VkDeviceMemory* pReleaseSyncs
5944 const u64* pReleaseKeys
5945}
5946
Jesse Hall9492f992017-08-28 12:10:06 -07005947@extension("VK_KHR_external_semaphore_capabilities") // 77
5948class VkPhysicalDeviceExternalSemaphoreInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005949 VkStructureType sType
5950 const void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005951 VkExternalSemaphoreHandleTypeFlagBitsKHR handleType
Jesse Hallad250842017-03-10 18:35:38 -08005952}
5953
Jesse Hall9492f992017-08-28 12:10:06 -07005954@extension("VK_KHR_external_semaphore_capabilities") // 77
5955class VkExternalSemaphorePropertiesKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005956 VkStructureType sType
5957 void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005958 VkExternalSemaphoreHandleTypeFlagsKHR exportFromImportedHandleTypes
5959 VkExternalSemaphoreHandleTypeFlagsKHR compatibleHandleTypes
5960 VkExternalSemaphoreFeatureFlagsKHR externalSemaphoreFeatures
Jesse Hallad250842017-03-10 18:35:38 -08005961}
5962
Jesse Hall9492f992017-08-28 12:10:06 -07005963@extension("VK_KHR_external_semaphore") // 78
5964class VkExportSemaphoreCreateInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005965 VkStructureType sType
5966 const void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005967 VkExternalSemaphoreHandleTypeFlagsKHR handleTypes
Jesse Hallad250842017-03-10 18:35:38 -08005968}
5969
Jesse Hall9492f992017-08-28 12:10:06 -07005970@extension("VK_KHR_external_semaphore_win32") // 79
5971class VkImportSemaphoreWin32HandleInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005972 VkStructureType sType
5973 const void* pNext
5974 VkSemaphore semaphore
Jesse Hall9492f992017-08-28 12:10:06 -07005975 VkSemaphoreImportFlagsKHR flags
5976 VkExternalSemaphoreHandleTypeFlagsKHR handleType
Jesse Hallad250842017-03-10 18:35:38 -08005977 platform.HANDLE handle
Jesse Hall9492f992017-08-28 12:10:06 -07005978 platform.LPCWSTR name
Jesse Hallad250842017-03-10 18:35:38 -08005979}
5980
Jesse Hall9492f992017-08-28 12:10:06 -07005981@extension("VK_KHR_external_semaphore_win32") // 79
5982class VkExportSemaphoreWin32HandleInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005983 VkStructureType sType
5984 const void* pNext
5985 const platform.SECURITY_ATTRIBUTES* pAttributes
5986 platform.DWORD dwAccess
5987 platform.LPCWSTR name
5988}
5989
Jesse Hall9492f992017-08-28 12:10:06 -07005990@extension("VK_KHR_external_semaphore_win32") // 79
5991class VkD3D12FenceSubmitInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005992 VkStructureType sType
5993 const void* pNext
5994 u32 waitSemaphoreValuesCount
5995 const u64* pWaitSemaphoreValues
5996 u32 signalSemaphoreValuesCount
5997 const u64* pSignalSemaphoreValues
5998}
5999
Jesse Hall9492f992017-08-28 12:10:06 -07006000@extension("VK_KHR_external_semaphore_win32") // 79
6001class VkSemaphoreGetWin32HandleInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08006002 VkStructureType sType
6003 const void* pNext
6004 VkSemaphore semaphore
Jesse Hall9492f992017-08-28 12:10:06 -07006005 VkExternalSemaphoreHandleTypeFlagBitsKHR handleType
6006}
6007
6008@extension("VK_KHR_external_semaphore_fd") // 80
6009class VkImportSemaphoreFdInfoKHR {
6010 VkStructureType sType
6011 const void* pNext
6012 VkSemaphore semaphore
6013 VkSemaphoreImportFlagsKHR flags
6014 VkExternalSemaphoreHandleTypeFlagBitsKHR handleType
Jesse Hallad250842017-03-10 18:35:38 -08006015 s32 fd
6016}
6017
Jesse Hall9492f992017-08-28 12:10:06 -07006018@extension("VK_KHR_external_semaphore_fd") // 80
6019class VkSemaphoreGetFdInfoKHR {
6020 VkStructureType sType
6021 const void* pNext
6022 VkSemaphore semaphore
6023 VkExternalSemaphoreHandleTypeFlagBitsKHR handleType
6024}
6025
Jesse Hallad250842017-03-10 18:35:38 -08006026@extension("VK_KHR_push_descriptor") // 81
6027class VkPhysicalDevicePushDescriptorPropertiesKHR {
6028 VkStructureType sType
6029 void* pNext
6030 u32 maxPushDescriptors
6031}
6032
Jesse Halla13a3cf2018-07-09 15:51:52 -07006033@extension("VK_EXT_conditional_rendering") // 82
6034class VkConditionalRenderingBeginInfoEXT {
6035 VkStructureType sType
6036 const void* pNext
6037 VkBuffer buffer
6038 VkDeviceSize offset
6039 VkConditionalRenderingFlagsEXT flags
6040}
6041
6042@extension("VK_EXT_conditional_rendering") // 82
6043class VkPhysicalDeviceConditionalRenderingFeaturesEXT {
6044 VkStructureType sType
6045 void* pNext
6046 VkBool32 conditionalRendering
6047 VkBool32 inheritedConditionalRendering
6048}
6049
6050@extension("VK_EXT_conditional_rendering") // 82
6051class VkCommandBufferInheritanceConditionalRenderingInfoEXT {
6052 VkStructureType sType
6053 const void* pNext
6054 VkBool32 conditionalRenderingEnable
6055}
6056
Jesse Hall9492f992017-08-28 12:10:06 -07006057@extension("VK_KHR_16bit_storage") // 84
6058class VkPhysicalDevice16BitStorageFeaturesKHR {
6059 VkStructureType sType
6060 void* pNext
6061 VkBool32 storageBuffer16BitAccess
6062 VkBool32 uniformAndStorageBuffer16BitAccess
6063 VkBool32 storagePushConstant16
6064 VkBool32 storageInputOutput16
6065}
6066
Jesse Hallad250842017-03-10 18:35:38 -08006067@extension("VK_KHR_incremental_present") // 85
6068class VkRectLayerKHR {
6069 VkOffset2D offset
6070 VkExtent2D extent
6071 u32 layer
6072}
6073
6074@extension("VK_KHR_incremental_present") // 85
6075class VkPresentRegionKHR {
6076 u32 rectangleCount
6077 const VkRectLayerKHR* pRectangles
6078}
6079
6080@extension("VK_KHR_incremental_present") // 85
6081class VkPresentRegionsKHR {
6082 VkStructureType sType
6083 const void* pNext
6084 u32 swapchainCount
6085 const VkPresentRegionKHR* pRegions
6086}
6087
6088@extension("VK_KHR_descriptor_update_template") // 86
6089class VkDescriptorUpdateTemplateEntryKHR {
6090 u32 dstBinding
6091 u32 dstArrayElement
6092 u32 descriptorCount
6093 VkDescriptorType descriptorType
6094 platform.size_t offset
6095 platform.size_t stride
6096}
6097
6098@extension("VK_KHR_descriptor_update_template") // 86
6099class VkDescriptorUpdateTemplateCreateInfoKHR {
6100 VkStructureType sType
6101 void* pNext
6102 VkDescriptorUpdateTemplateCreateFlagsKHR flags
6103 u32 descriptorUpdateEntryCount
6104 const VkDescriptorUpdateTemplateEntryKHR* pDescriptorUpdateEntries
6105 VkDescriptorUpdateTemplateTypeKHR templateType
6106 VkDescriptorSetLayout descriptorSetLayout
6107 VkPipelineBindPoint pipelineBindPoint
6108 VkPipelineLayout pipelineLayout
6109 u32 set
6110}
6111
6112@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13006113class VkDeviceGeneratedCommandsFeaturesNVX {
6114 VkStructureType sType
6115 const void* pNext
6116 VkBool32 computeBindingPointSupport
6117}
6118
Jesse Hallad250842017-03-10 18:35:38 -08006119@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13006120class VkDeviceGeneratedCommandsLimitsNVX {
6121 VkStructureType sType
6122 const void* pNext
6123 u32 maxIndirectCommandsLayoutTokenCount
6124 u32 maxObjectEntryCounts
6125 u32 minSequenceCountBufferOffsetAlignment
6126 u32 minSequenceIndexBufferOffsetAlignment
6127 u32 minCommandsTokenBufferOffsetAlignment
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 VkIndirectCommandsTokenNVX {
6132 VkIndirectCommandsTokenTypeNVX tokenType
6133 VkBuffer buffer
6134 VkDeviceSize offset
6135}
6136
Jesse Hallad250842017-03-10 18:35:38 -08006137@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13006138class VkIndirectCommandsLayoutTokenNVX {
6139 VkIndirectCommandsTokenTypeNVX tokenType
6140 u32 bindingUnit
6141 u32 dynamicCount
6142 u32 divisor
6143}
6144
Jesse Hallad250842017-03-10 18:35:38 -08006145@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13006146class VkIndirectCommandsLayoutCreateInfoNVX {
6147 VkStructureType sType
6148 const void* pNext
6149 VkPipelineBindPoint pipelineBindPoint
6150 VkIndirectCommandsLayoutUsageFlagsNVX flags
6151 u32 tokenCount
6152 const VkIndirectCommandsLayoutTokenNVX* pTokens
6153}
6154
Jesse Hallad250842017-03-10 18:35:38 -08006155@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13006156class VkCmdProcessCommandsInfoNVX {
6157 VkStructureType sType
6158 const void* pNext
6159 VkObjectTableNVX objectTable
6160 VkIndirectCommandsLayoutNVX indirectCommandsLayout
6161 u32 indirectCommandsTokenCount
6162 const VkIndirectCommandsTokenNVX* pIndirectCommandsTokens
6163 u32 maxSequencesCount
6164 VkCommandBuffer targetCommandBuffer
6165 VkBuffer sequencesCountBuffer
6166 VkDeviceSize sequencesCountOffset
6167 VkBuffer sequencesIndexBuffer
6168 VkDeviceSize sequencesIndexOffset
6169}
6170
Jesse Hallad250842017-03-10 18:35:38 -08006171@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13006172class VkCmdReserveSpaceForCommandsInfoNVX {
6173 VkStructureType sType
6174 const void* pNext
6175 VkObjectTableNVX objectTable
6176 VkIndirectCommandsLayoutNVX indirectCommandsLayout
6177 u32 maxSequencesCount
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 VkObjectTableCreateInfoNVX {
6182 VkStructureType sType
6183 const void* pNext
6184 u32 objectCount
6185 const VkObjectEntryTypeNVX* pObjectEntryTypes
6186 const u32* pObjectEntryCounts
6187 const VkObjectEntryUsageFlagsNVX* pObjectEntryUsageFlags
6188 u32 maxUniformBuffersPerDescriptor
6189 u32 maxStorageBuffersPerDescriptor
6190 u32 maxStorageImagesPerDescriptor
6191 u32 maxSampledImagesPerDescriptor
6192 u32 maxPipelineLayouts
6193}
6194
Jesse Hallad250842017-03-10 18:35:38 -08006195@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13006196class VkObjectTableEntryNVX {
6197 VkObjectEntryTypeNVX type
6198 VkObjectEntryUsageFlagsNVX flags
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 VkObjectTablePipelineEntryNVX {
6203 VkObjectEntryTypeNVX type
6204 VkObjectEntryUsageFlagsNVX flags
6205 VkPipeline pipeline
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 VkObjectTableDescriptorSetEntryNVX {
6210 VkObjectEntryTypeNVX type
6211 VkObjectEntryUsageFlagsNVX flags
6212 VkPipelineLayout pipelineLayout
6213 VkDescriptorSet descriptorSet
6214}
6215
Jesse Hallad250842017-03-10 18:35:38 -08006216@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13006217class VkObjectTableVertexBufferEntryNVX {
6218 VkObjectEntryTypeNVX type
6219 VkObjectEntryUsageFlagsNVX flags
6220 VkBuffer buffer
6221}
6222
Jesse Hallad250842017-03-10 18:35:38 -08006223@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13006224class VkObjectTableIndexBufferEntryNVX {
6225 VkObjectEntryTypeNVX type
6226 VkObjectEntryUsageFlagsNVX flags
6227 VkBuffer buffer
Jesse Hall77ad05b2017-03-10 22:02:20 -08006228 VkIndexType indexType
Chris Forbes289cb792016-12-30 15:03:55 +13006229}
6230
Jesse Hallad250842017-03-10 18:35:38 -08006231@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13006232class VkObjectTablePushConstantEntryNVX {
6233 VkObjectEntryTypeNVX type
6234 VkObjectEntryUsageFlagsNVX flags
6235 VkPipelineLayout pipelineLayout
6236 VkShaderStageFlags stageFlags
6237}
6238
Jesse Hallad250842017-03-10 18:35:38 -08006239@extension("VK_NV_clip_space_w_scaling") // 88
6240class VkViewportWScalingNV {
6241 f32 xcoeff
6242 f32 ycoeff
Jesse Hall889cd9a2017-02-25 22:12:23 -08006243}
6244
Jesse Hallad250842017-03-10 18:35:38 -08006245@extension("VK_NV_clip_space_w_scaling") // 88
6246class VkPipelineViewportWScalingStateCreateInfoNV {
Jesse Hall889cd9a2017-02-25 22:12:23 -08006247 VkStructureType sType
6248 const void* pNext
Jesse Hallad250842017-03-10 18:35:38 -08006249 VkBool32 viewportWScalingEnable
6250 u32 viewportCount
6251 const VkViewportWScalingNV* pViewportWScalings
Jesse Hall889cd9a2017-02-25 22:12:23 -08006252}
6253
Jesse Hallad250842017-03-10 18:35:38 -08006254@extension("VK_EXT_display_surface_counter") // 91
Jesse Hall77ad05b2017-03-10 22:02:20 -08006255class VkSurfaceCapabilities2EXT {
6256 VkStructureType sType
6257 void* pNext
6258 u32 minImageCount
6259 u32 maxImageCount
6260 VkExtent2D currentExtent
6261 VkExtent2D minImageExtent
6262 VkExtent2D maxImageExtent
6263 u32 maxImageArrayLayers
6264 VkSurfaceTransformFlagsKHR supportedTransforms
6265 VkSurfaceTransformFlagBitsKHR currentTransform
6266 VkCompositeAlphaFlagsKHR supportedCompositeAlpha
6267 VkImageUsageFlags supportedUsageFlags
6268 VkSurfaceCounterFlagsEXT supportedSurfaceCounters
6269}
6270
Jesse Hallad250842017-03-10 18:35:38 -08006271@extension("VK_EXT_display_control") // 92
Jesse Hall77ad05b2017-03-10 22:02:20 -08006272class VkDisplayPowerInfoEXT {
6273 VkStructureType sType
6274 const void* pNext
6275 VkDisplayPowerStateEXT powerState
6276}
6277
Jesse Hallad250842017-03-10 18:35:38 -08006278@extension("VK_EXT_display_control") // 92
Jesse Hall77ad05b2017-03-10 22:02:20 -08006279class VkDeviceEventInfoEXT {
6280 VkStructureType sType
6281 const void* pNext
6282 VkDeviceEventTypeEXT deviceEvent
6283}
6284
Jesse Hallad250842017-03-10 18:35:38 -08006285@extension("VK_EXT_display_control") // 92
Jesse Hall77ad05b2017-03-10 22:02:20 -08006286class VkDisplayEventInfoEXT {
6287 VkStructureType sType
6288 const void* pNext
6289 VkDisplayEventTypeEXT displayEvent
6290}
6291
Jesse Hallad250842017-03-10 18:35:38 -08006292@extension("VK_EXT_display_control") // 92
Jesse Hall77ad05b2017-03-10 22:02:20 -08006293class VkSwapchainCounterCreateInfoEXT {
6294 VkStructureType sType
6295 const void* pNext
6296 VkSurfaceCounterFlagsEXT surfaceCounters
6297}
6298
Jesse Hallad250842017-03-10 18:35:38 -08006299@extension("VK_GOOGLE_display_timing") // 93
6300class VkRefreshCycleDurationGOOGLE {
Jesse Hallfdc8ab32017-03-10 21:01:57 -08006301 u64 refreshDuration
Jesse Hallad250842017-03-10 18:35:38 -08006302}
6303
6304@extension("VK_GOOGLE_display_timing") // 93
6305class VkPastPresentationTimingGOOGLE {
Jesse Hallfdc8ab32017-03-10 21:01:57 -08006306 u32 presentID
6307 u64 desiredPresentTime
6308 u64 actualPresentTime
6309 u64 earliestPresentTime
6310 u64 presentMargin
Jesse Hallad250842017-03-10 18:35:38 -08006311}
6312
6313@extension("VK_GOOGLE_display_timing") // 93
6314class VkPresentTimeGOOGLE {
Jesse Hallfdc8ab32017-03-10 21:01:57 -08006315 u32 presentID
6316 u64 desiredPresentTime
Jesse Hallad250842017-03-10 18:35:38 -08006317}
6318
6319@extension("VK_GOOGLE_display_timing") // 93
6320class VkPresentTimesInfoGOOGLE {
Jesse Hallfdc8ab32017-03-10 21:01:57 -08006321 VkStructureType sType
6322 const void* pNext
6323 u32 swapchainCount
6324 const VkPresentTimeGOOGLE* pTimes
Jesse Hallad250842017-03-10 18:35:38 -08006325}
6326
6327@extension("VK_NVX_multiview_per_view_attributes") // 98
6328class VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX {
6329 VkStructureType sType
6330 void* pNext
6331 VkBool32 perViewPositionAllComponents
6332}
6333
6334@extension("VK_NV_viewport_swizzle") // 99
6335class VkViewportSwizzleNV {
6336 VkViewportCoordinateSwizzleNV x
6337 VkViewportCoordinateSwizzleNV y
6338 VkViewportCoordinateSwizzleNV z
6339 VkViewportCoordinateSwizzleNV w
6340}
6341
6342@extension("VK_NV_viewport_swizzle") // 99
6343class VkPipelineViewportSwizzleStateCreateInfoNV {
6344 VkStructureType sType
6345 const void* pNext
6346 VkPipelineViewportSwizzleStateCreateFlagsNV flags
6347 u32 viewportCount
6348 const VkViewportSwizzleNV* pViewportSwizzles
6349}
6350
6351@extension("VK_EXT_discard_rectangles") // 100
6352class VkPhysicalDeviceDiscardRectanglePropertiesEXT {
6353 VkStructureType sType
Jesse Hallf5ad48b2017-03-20 13:09:19 -07006354 void* pNext
Jesse Hallad250842017-03-10 18:35:38 -08006355 u32 maxDiscardRectangles
6356}
6357
6358@extension("VK_EXT_discard_rectangles") // 100
6359class VkPipelineDiscardRectangleStateCreateInfoEXT {
Jesse Hallfdc8ab32017-03-10 21:01:57 -08006360 VkStructureType sType
6361 const void* pNext
6362 VkPipelineDiscardRectangleStateCreateFlagsEXT flags
6363 VkDiscardRectangleModeEXT discardRectangleMode
6364 u32 discardRectangleCount
6365 const VkRect2D* pDiscardRectangles
Jesse Hallad250842017-03-10 18:35:38 -08006366}
6367
Jesse Hall8c954d32018-01-17 22:06:20 -08006368@extension("VK_EXT_conservative_rasterization") // 102
6369class VkPhysicalDeviceConservativeRasterizationPropertiesEXT {
6370 VkStructureType sType
6371 void* pNext
6372 f32 primitiveOverestimationSize
6373 f32 maxExtraPrimitiveOverestimationSize
6374 f32 extraPrimitiveOverestimationSizeGranularity
6375 VkBool32 primitiveUnderestimation
6376 VkBool32 conservativePointAndLineRasterization
6377 VkBool32 degenerateTrianglesRasterized
6378 VkBool32 degenerateLinesRasterized
6379 VkBool32 fullyCoveredFragmentShaderInputVariable
6380 VkBool32 conservativeRasterizationPostDepthCoverage
6381}
6382
6383@extension("VK_EXT_conservative_rasterization") // 102
6384class VkPipelineRasterizationConservativeStateCreateInfoEXT {
6385 VkStructureType sType
6386 const void* pNext
6387 VkPipelineRasterizationConservativeStateCreateFlagsEXT flags
6388 VkConservativeRasterizationModeEXT conservativeRasterizationMode
6389 f32 extraPrimitiveOverestimationSize
6390}
6391
Jesse Hallad250842017-03-10 18:35:38 -08006392@extension("VK_EXT_hdr_metadata") // 106
Courtney Goeltzenleuchterd634c482017-01-05 15:55:31 -07006393class VkXYColorEXT {
Jesse Hallfdc8ab32017-03-10 21:01:57 -08006394 f32 x
6395 f32 y
Courtney Goeltzenleuchterd634c482017-01-05 15:55:31 -07006396}
6397
Jesse Hallad250842017-03-10 18:35:38 -08006398@extension("VK_EXT_hdr_metadata") // 106
Courtney Goeltzenleuchterd634c482017-01-05 15:55:31 -07006399class VkHdrMetadataEXT {
Jesse Hallfdc8ab32017-03-10 21:01:57 -08006400 VkStructureType sType
6401 const void* pNext
6402 VkXYColorEXT displayPrimaryRed
6403 VkXYColorEXT displayPrimaryGreen
6404 VkXYColorEXT displayPrimaryBlue
6405 VkXYColorEXT whitePoint
6406 f32 maxLuminance
6407 f32 minLuminance
6408 f32 maxContentLightLevel
6409 f32 maxFrameAverageLightLevel
Courtney Goeltzenleuchterd634c482017-01-05 15:55:31 -07006410}
6411
Jesse Halla13a3cf2018-07-09 15:51:52 -07006412@extension("VK_KHR_create_renderpass2") // 110
6413class VkAttachmentDescription2KHR {
6414 VkStructureType sType
6415 const void* pNext
6416 VkAttachmentDescriptionFlags flags
6417 VkFormat format
6418 VkSampleCountFlagBits samples
6419 VkAttachmentLoadOp loadOp
6420 VkAttachmentStoreOp storeOp
6421 VkAttachmentLoadOp stencilLoadOp
6422 VkAttachmentStoreOp stencilStoreOp
6423 VkImageLayout initialLayout
6424 VkImageLayout finalLayout
6425}
6426
6427@extension("VK_KHR_create_renderpass2") // 110
6428class VkAttachmentReference2KHR {
6429 VkStructureType sType
6430 const void* pNext
6431 u32 attachment
6432 VkImageLayout layout
6433 VkImageAspectFlags aspectMask
6434}
6435
6436@extension("VK_KHR_create_renderpass2") // 110
6437class VkSubpassDescription2KHR {
6438 VkStructureType sType
6439 const void* pNext
6440 VkSubpassDescriptionFlags flags
6441 VkPipelineBindPoint pipelineBindPoint
6442 u32 viewMask
6443 u32 inputAttachmentCount
6444 const VkAttachmentReference2KHR* pInputAttachments
6445 u32 colorAttachmentCount
6446 const VkAttachmentReference2KHR* pColorAttachments
6447 const VkAttachmentReference2KHR* pResolveAttachments
6448 const VkAttachmentReference2KHR* pDepthStencilAttachment
6449 u32 preserveAttachmentCount
6450 const u32* pPreserveAttachments
6451}
6452
6453@extension("VK_KHR_create_renderpass2") // 110
6454class VkSubpassDependency2KHR {
6455 VkStructureType sType
6456 const void* pNext
6457 u32 srcSubpass
6458 u32 dstSubpass
6459 VkPipelineStageFlags srcStageMask
6460 VkPipelineStageFlags dstStageMask
6461 VkAccessFlags srcAccessMask
6462 VkAccessFlags dstAccessMask
6463 VkDependencyFlags dependencyFlags
6464 s32 viewOffset
6465}
6466
6467@extension("VK_KHR_create_renderpass2") // 110
6468class VkRenderPassCreateInfo2KHR {
6469 VkStructureType sType
6470 const void* pNext
6471 VkRenderPassCreateFlags flags
6472 u32 attachmentCount
6473 const VkAttachmentDescription2KHR* pAttachments
6474 u32 subpassCount
6475 const VkSubpassDescription2KHR* pSubpasses
6476 u32 dependencyCount
6477 const VkSubpassDependency2KHR* pDependencies
6478 u32 correlatedViewMaskCount
6479 const u32* pCorrelatedViewMasks
6480}
6481
6482@extension("VK_KHR_create_renderpass2") // 110
6483class VkSubpassBeginInfoKHR {
6484 VkStructureType sType
6485 const void* pNext
6486 VkSubpassContents contents
6487}
6488
6489@extension("VK_KHR_create_renderpass2") // 110
6490class VkSubpassEndInfoKHR {
6491 VkStructureType sType
6492 const void* pNext
6493}
6494
Jesse Hall05556b12017-05-18 17:40:25 -07006495@extension("VK_KHR_shared_presentable_image") // 112
Chris Forbese2d3ee12017-03-16 16:10:15 +13006496class VkSharedPresentSurfaceCapabilitiesKHR {
6497 VkStructureType sType
6498 const void* pNext
6499 VkImageUsageFlags sharedPresentSupportedUsageFlags
6500}
6501
Jesse Hall9492f992017-08-28 12:10:06 -07006502@extension("VK_KHR_external_fence_capabilities") // 113
6503class VkPhysicalDeviceExternalFenceInfoKHR {
6504 VkStructureType sType
6505 const void* pNext
6506 VkExternalFenceHandleTypeFlagBitsKHR handleType
6507}
6508
6509@extension("VK_KHR_external_fence_capabilities") // 113
6510class VkExternalFencePropertiesKHR {
6511 VkStructureType sType
6512 void* pNext
6513 VkExternalFenceHandleTypeFlagsKHR exportFromImportedHandleTypes
6514 VkExternalFenceHandleTypeFlagsKHR compatibleHandleTypes
6515 VkExternalFenceFeatureFlagsKHR externalFenceFeatures
6516}
6517
6518@extension("VK_KHR_external_fence") // 114
6519class VkExportFenceCreateInfoKHR {
6520 VkStructureType sType
6521 const void* pNext
6522 VkExternalFenceHandleTypeFlagsKHR handleTypes
6523}
6524
6525@extension("VK_KHR_external_fence_win32") // 115
6526class VkImportFenceWin32HandleInfoKHR {
6527 VkStructureType sType
6528 const void* pNext
6529 VkFence fence
6530 VkFenceImportFlagsKHR flags
6531 VkExternalFenceHandleTypeFlagBitsKHR handleType
6532 platform.HANDLE handle
6533 platform.LPCWSTR name
6534}
6535
6536@extension("VK_KHR_external_fence_win32") // 115
6537class VkExportFenceWin32HandleInfoKHR {
6538 VkStructureType sType
6539 const void* pNext
6540 const platform.SECURITY_ATTRIBUTES* pAttributes
6541 platform.DWORD dwAccess
6542 platform.LPCWSTR name
6543}
6544
6545@extension("VK_KHR_external_fence_win32") // 115
6546class VkFenceGetWin32HandleInfoKHR {
6547 VkStructureType sType
6548 const void* pNext
6549 VkFence fence
6550 VkExternalFenceHandleTypeFlagBitsKHR handleType
6551}
6552
6553@extension("VK_KHR_external_fence_fd") // 116
6554class VkImportFenceFdInfoKHR {
6555 VkStructureType sType
6556 const void* pNext
6557 VkFence fence
6558 VkFenceImportFlagsKHR flags
6559 VkExternalFenceHandleTypeFlagBitsKHR handleType
6560 int fd
6561}
6562
6563@extension("VK_KHR_external_fence_fd") // 116
6564class VkFenceGetFdInfoKHR {
6565 VkStructureType sType
6566 const void* pNext
6567 VkFence fence
6568 VkExternalFenceHandleTypeFlagBitsKHR handleType
6569}
6570
Jesse Hall076f95d2017-09-20 11:34:47 -07006571@extension("VK_KHR_maintenance2") // 118
6572class VkPhysicalDevicePointClippingPropertiesKHR {
6573 VkStructureType sType
6574 void* pNext
6575 VkPointClippingBehaviorKHR pointClippingBehavior
6576}
6577
6578@extension("VK_KHR_maintenance2") // 118
6579class VkInputAttachmentAspectReferenceKHR {
6580 u32 subpass
6581 u32 inputAttachmentIndex
6582 VkImageAspectFlags aspectMask
6583}
6584
6585@extension("VK_KHR_maintenance2") // 118
6586class VkRenderPassInputAttachmentAspectCreateInfoKHR {
6587 VkStructureType sType
6588 const void* pNext
6589 u32 aspectReferenceCount
6590 const VkInputAttachmentAspectReferenceKHR* pAspectReferences
6591}
6592
6593@extension("VK_KHR_maintenance2") // 118
6594class VkImageViewUsageCreateInfoKHR {
6595 VkStructureType sType
6596 const void* pNext
6597 VkImageUsageFlags usage
6598}
6599
6600@extension("VK_KHR_maintenance2") // 118
6601class VkPipelineTessellationDomainOriginStateCreateInfoKHR {
6602 VkStructureType sType
6603 const void* pNext
6604 VkTessellationDomainOriginKHR domainOrigin
6605}
6606
Jesse Hall05556b12017-05-18 17:40:25 -07006607@extension("VK_KHR_get_surface_capabilities2") // 120
Chris Forbese2d3ee12017-03-16 16:10:15 +13006608class VkPhysicalDeviceSurfaceInfo2KHR {
6609 VkStructureType sType
6610 const void* pNext
6611 VkSurfaceKHR surface
6612}
6613
Jesse Hall05556b12017-05-18 17:40:25 -07006614@extension("VK_KHR_get_surface_capabilities2") // 120
Chris Forbese2d3ee12017-03-16 16:10:15 +13006615class VkSurfaceCapabilities2KHR {
6616 VkStructureType sType
6617 void* pNext
6618 VkSurfaceCapabilitiesKHR surfaceCapabilities
6619}
6620
Jesse Hall05556b12017-05-18 17:40:25 -07006621@extension("VK_KHR_get_surface_capabilities2") // 120
Chris Forbese2d3ee12017-03-16 16:10:15 +13006622class VkSurfaceFormat2KHR {
6623 VkStructureType sType
6624 void* pNext
6625 VkSurfaceFormatKHR surfaceFormat
6626}
6627
Jesse Hall9492f992017-08-28 12:10:06 -07006628@extension("VK_KHR_variable_pointers") // 121
6629class VkPhysicalDeviceVariablePointerFeaturesKHR {
6630 VkStructureType sType
6631 void* pNext
6632 VkBool32 variablePointersStorageBuffer
6633 VkBool32 variablePointers
6634}
6635
Jesse Hall54f8d132018-04-18 08:16:59 -07006636@extension("VK_KHR_display_properties2") // 122
6637class VkDisplayProperties2KHR {
6638 VkStructureType sType
6639 void* pNext
6640 VkDisplayPropertiesKHR displayProperties
6641}
6642
6643@extension("VK_KHR_display_properties2") // 122
6644class VkDisplayPlaneProperties2KHR {
6645 VkStructureType sType
6646 void* pNext
6647 VkDisplayPlanePropertiesKHR displayPlaneProperties
6648}
6649
6650@extension("VK_KHR_display_properties2") // 122
6651class VkDisplayModeProperties2KHR {
6652 VkStructureType sType
6653 void* pNext
6654 VkDisplayModePropertiesKHR displayModeProperties
6655}
6656
6657@extension("VK_KHR_display_properties2") // 122
6658class VkDisplayPlaneInfo2KHR {
6659 VkStructureType sType
6660 const void* pNext
6661 VkDisplayModeKHR mode
6662 u32 planeIndex
6663}
6664
6665@extension("VK_KHR_display_properties2") // 122
6666class VkDisplayPlaneCapabilities2KHR {
6667 VkStructureType sType
6668 void* pNext
6669 VkDisplayPlaneCapabilitiesKHR capabilities
6670}
6671
Jesse Hallad250842017-03-10 18:35:38 -08006672@extension("VK_MVK_ios_surface") // 123
6673class VkIOSSurfaceCreateInfoMVK {
6674 VkStructureType sType
6675 const void* pNext
6676 VkIOSSurfaceCreateFlagsMVK flags
6677 const void* pView
6678}
6679
6680@extension("VK_MVK_macos_surface") // 124
6681class VkMacOSSurfaceCreateInfoMVK {
6682 VkStructureType sType
6683 const void* pNext
6684 VkMacOSSurfaceCreateFlagsMVK flags
6685 const void* pView
6686}
6687
Jesse Hall9492f992017-08-28 12:10:06 -07006688@extension("VK_KHR_dedicated_allocation") // 128
6689class VkMemoryDedicatedRequirementsKHR {
6690 VkStructureType sType
6691 void* pNext
6692 VkBool32 prefersDedicatedAllocation
6693 VkBool32 requiresDedicatedAllocation
6694}
6695
6696@extension("VK_KHR_dedicated_allocation") // 128
6697class VkMemoryDedicatedAllocateInfoKHR {
6698 VkStructureType sType
6699 const void* pNext
6700 VkImage image
6701 VkBuffer buffer
6702}
6703
Jesse Hall8c954d32018-01-17 22:06:20 -08006704@extension("VK_EXT_debug_utils") // 129
6705class VkDebugUtilsObjectNameInfoEXT {
6706 VkStructureType sType
6707 const void* pNext
6708 VkObjectType objectType
6709 u64 objectHandle
6710 const char* pObjectName
6711}
Jesse Hall72e6a132018-04-06 13:00:44 -07006712
Jesse Hall8c954d32018-01-17 22:06:20 -08006713@extension("VK_EXT_debug_utils") // 129
6714class VkDebugUtilsObjectTagInfoEXT {
6715 VkStructureType sType
6716 const void* pNext
6717 VkObjectType objectType
6718 u64 objectHandle
6719 u64 tagName
6720 platform.size_t tagSize
6721 const void* pTag
6722}
Jesse Hall72e6a132018-04-06 13:00:44 -07006723
Jesse Hall8c954d32018-01-17 22:06:20 -08006724@extension("VK_EXT_debug_utils") // 129
6725class VkDebugUtilsLabelEXT {
6726 VkStructureType sType
6727 const void* pNext
6728 const char* pLabelName
6729 f32[4] color
6730}
6731
6732@extension("VK_EXT_debug_utils") // 129
6733class VkDebugUtilsMessengerCallbackDataEXT {
6734 VkStructureType sType
6735 const void* pNext
6736 VkDebugUtilsMessengerCallbackDataFlagsEXT flags
6737 const char* pMessageIdName
6738 s32 messageIdNumber
6739 const char* pMessage
6740 u32 queueLabelCount
6741 VkDebugUtilsLabelEXT* pQueueLabels
6742 u32 cmdBufLabelCount
6743 VkDebugUtilsLabelEXT* pCmdBufLabels
6744 u32 objectCount
6745 VkDebugUtilsObjectNameInfoEXT* pObjects
6746}
6747
6748@extension("VK_EXT_debug_utils") // 129
6749class VkDebugUtilsMessengerCreateInfoEXT {
6750 VkStructureType sType
6751 const void* pNext
6752 VkDebugUtilsMessengerCreateFlagsEXT flags
6753 VkDebugUtilsMessageSeverityFlagsEXT messageSeverity
Jesse Hallf47e8f82018-10-27 23:41:45 -07006754 VkDebugUtilsMessageTypeFlagsEXT messageTypes
Jesse Hall8c954d32018-01-17 22:06:20 -08006755 PFN_vkDebugUtilsMessengerCallbackEXT pfnUserCallback
6756 void* pUserData
6757}
6758
Jesse Hall36215a92018-01-18 15:04:37 -08006759@extension("VK_ANDROID_external_memory_android_hardware_buffer") // 131
6760class VkAndroidHardwareBufferUsageANDROID {
6761 VkStructureType sType
6762 void* pNext
6763 u64 androidHardwareBufferUsage
6764}
6765
6766@extension("VK_ANDROID_external_memory_android_hardware_buffer") // 130
6767class VkAndroidHardwareBufferPropertiesANDROID {
6768 VkStructureType sType
6769 void* pNext
6770 VkDeviceSize allocationSize
6771 u32 memoryTypeBits
6772}
6773
6774@extension("VK_ANDROID_external_memory_android_hardware_buffer") // 130
6775class VkAndroidHardwareBufferFormatPropertiesANDROID {
6776 VkStructureType sType
6777 void* pNext
6778 VkFormat format
6779 u64 externalFormat
6780 VkFormatFeatureFlags formatFeatures
6781 VkComponentMapping samplerYcbcrConversionComponents
6782 VkSamplerYcbcrModelConversion suggestedYcbcrModel
6783 VkSamplerYcbcrRange suggestedYcbcrRange
6784 VkChromaLocation suggestedXChromaOffset
6785 VkChromaLocation suggestedYChromaOffset
6786}
6787
6788@extension("VK_ANDROID_external_memory_android_hardware_buffer") // 130
6789class VkImportAndroidHardwareBufferInfoANDROID {
6790 VkStructureType sType
6791 const void* pNext
6792 platform.AHardwareBuffer* buffer
6793}
6794
6795@extension("VK_ANDROID_external_memory_android_hardware_buffer") // 130
6796class VkMemoryGetAndroidHardwareBufferInfoANDROID {
6797 VkStructureType sType
6798 const void* pNext
6799 VkDeviceMemory memory
6800}
6801
6802@extension("VK_ANDROID_external_memory_android_hardware_buffer") // 130
6803class VkExternalFormatANDROID {
6804 VkStructureType sType
6805 void* pNext
6806 u64 externalFormat
6807}
6808
Jesse Hall7ba0ac72017-07-07 17:13:23 -07006809@extension("VK_EXT_sampler_filter_minmax") // 131
6810class VkSamplerReductionModeCreateInfoEXT {
6811 VkStructureType sType
6812 const void* pNext
6813 VkSamplerReductionModeEXT reductionMode
6814}
6815
6816@extension("VK_EXT_sampler_filter_minmax") // 131
6817class VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT {
6818 VkStructureType sType
6819 void* pNext
6820 VkBool32 filterMinmaxSingleComponentFormats
6821 VkBool32 filterMinmaxImageComponentMapping
6822}
6823
Jesse Hall4af6c462018-09-10 09:04:25 -07006824@extension("VK_EXT_inline_uniform_block") // 139
6825class VkPhysicalDeviceInlineUniformBlockFeaturesEXT {
6826 VkStructureType sType
6827 void* pNext
6828 VkBool32 inlineUniformBlock
6829 VkBool32 descriptorBindingInlineUniformBlockUpdateAfterBind
6830}
6831
6832@extension("VK_EXT_inline_uniform_block") // 139
6833class VkPhysicalDeviceInlineUniformBlockPropertiesEXT {
6834 VkStructureType sType
6835 void* pNext
6836 u32 maxInlineUniformBlockSize
6837 u32 maxPerStageDescriptorInlineUniformBlocks
6838 u32 maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks
6839 u32 maxDescriptorSetInlineUniformBlocks
6840 u32 maxDescriptorSetUpdateAfterBindInlineUniformBlocks
6841}
6842
6843@extension("VK_EXT_inline_uniform_block") // 139
6844class VkWriteDescriptorSetInlineUniformBlockEXT {
6845 VkStructureType sType
6846 const void* pNext
6847 u32 dataSize
6848 const void* pData
6849}
6850
6851@extension("VK_EXT_inline_uniform_block") // 139
6852class VkDescriptorPoolInlineUniformBlockCreateInfoEXT {
6853 VkStructureType sType
6854 const void* pNext
6855 u32 maxInlineUniformBlockBindings
6856}
6857
Jesse Hall77726222017-09-19 14:49:27 -05006858@extension("VK_EXT_sample_locations") // 144
6859class VkSampleLocationEXT {
6860 f32 x
6861 f32 y
6862}
6863
6864@extension("VK_EXT_sample_locations") // 144
6865class VkSampleLocationsInfoEXT {
6866 VkStructureType sType
6867 const void* pNext
6868 VkSampleCountFlagBits sampleLocationsPerPixel
6869 VkExtent2D sampleLocationGridSize
6870 u32 sampleLocationsCount
6871 const VkSampleLocationEXT* pSampleLocations
6872}
6873
6874@extension("VK_EXT_sample_locations") // 144
6875class VkAttachmentSampleLocationsEXT {
6876 u32 attachmentIndex
6877 VkSampleLocationsInfoEXT sampleLocationsInfo
6878}
6879
6880@extension("VK_EXT_sample_locations") // 144
6881class VkSubpassSampleLocationsEXT {
6882 u32 subpassIndex
6883 VkSampleLocationsInfoEXT sampleLocationsInfo
6884}
6885
6886@extension("VK_EXT_sample_locations") // 144
6887class VkRenderPassSampleLocationsBeginInfoEXT {
6888 VkStructureType sType
6889 const void* pNext
6890 u32 attachmentInitialSampleLocationsCount
6891 const VkAttachmentSampleLocationsEXT* pAttachmentInitialSampleLocations
6892 u32 postSubpassSampleLocationsCount
Jesse Hall8c954d32018-01-17 22:06:20 -08006893 const VkSubpassSampleLocationsEXT* pPostSubpassSampleLocations
Jesse Hall77726222017-09-19 14:49:27 -05006894}
6895
6896@extension("VK_EXT_sample_locations") // 144
6897class VkPipelineSampleLocationsStateCreateInfoEXT {
6898 VkStructureType sType
6899 const void* pNext
6900 VkBool32 sampleLocationsEnable
6901 VkSampleLocationsInfoEXT sampleLocationsInfo
6902}
6903
6904@extension("VK_EXT_sample_locations") // 144
6905class VkPhysicalDeviceSampleLocationsPropertiesEXT {
6906 VkStructureType sType
6907 void* pNext
6908 VkSampleCountFlags sampleLocationSampleCounts
6909 VkExtent2D maxSampleLocationGridSize
6910 f32[2] sampleLocationCoordinateRange
6911 u32 sampleLocationSubPixelBits
6912 VkBool32 variableSampleLocations
6913}
6914
6915@extension("VK_EXT_sample_locations") // 144
6916class VkMultisamplePropertiesEXT {
6917 VkStructureType sType
6918 void* pNext
6919 VkExtent2D maxSampleLocationGridSize
6920}
6921
Jesse Hall9492f992017-08-28 12:10:06 -07006922@extension("VK_KHR_get_memory_requirements2") // 147
6923class VkBufferMemoryRequirementsInfo2KHR {
6924 VkStructureType sType
6925 const void* pNext
6926 VkBuffer buffer
6927}
6928
6929@extension("VK_KHR_get_memory_requirements2") // 147
6930class VkImageMemoryRequirementsInfo2KHR {
6931 VkStructureType sType
6932 const void* pNext
6933 VkImage image
6934}
6935
6936@extension("VK_KHR_get_memory_requirements2") // 147
6937class VkImageSparseMemoryRequirementsInfo2KHR {
6938 VkStructureType sType
6939 const void* pNext
6940 VkImage image
6941}
6942
6943@extension("VK_KHR_get_memory_requirements2") // 147
6944class VkMemoryRequirements2KHR {
6945 VkStructureType sType
6946 void* pNext
6947 VkMemoryRequirements memoryRequirements
6948}
6949
6950@extension("VK_KHR_get_memory_requirements2") // 147
6951class VkSparseImageMemoryRequirements2KHR {
6952 VkStructureType sType
6953 void* pNext
6954 VkSparseImageMemoryRequirements memoryRequirements
6955}
6956
Jesse Hall076f95d2017-09-20 11:34:47 -07006957@extension("VK_KHR_image_format_list") // 148
6958class VkImageFormatListCreateInfoKHR {
6959 VkStructureType sType
6960 const void* pNext
6961 u32 viewFormatCount
6962 const VkFormat* pViewFormats
6963}
6964
Jesse Hall7ba0ac72017-07-07 17:13:23 -07006965@extension("VK_EXT_blend_operation_advanced") // 149
6966class VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT {
6967 VkStructureType sType
6968 void* pNext
6969 VkBool32 advancedBlendCoherentOperations
6970}
6971
6972@extension("VK_EXT_blend_operation_advanced") // 149
6973class VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT {
6974 VkStructureType sType
6975 void* pNext
6976 u32 advancedBlendMaxColorAttachments
6977 VkBool32 advancedBlendIndependentBlend
6978 VkBool32 advancedBlendNonPremultipliedSrcColor
6979 VkBool32 advancedBlendNonPremultipliedDstColor
6980 VkBool32 advancedBlendCorrelatedOverlap
6981 VkBool32 advancedBlendAllOperations
6982}
6983
6984@extension("VK_EXT_blend_operation_advanced") // 149
6985class VkPipelineColorBlendAdvancedStateCreateInfoEXT {
6986 VkStructureType sType
6987 const void* pNext
6988 VkBool32 srcPremultiplied
6989 VkBool32 dstPremultiplied
6990 VkBlendOverlapEXT blendOverlap
6991}
6992
6993@extension("VK_NV_fragment_coverage_to_color") // 150
6994class VkPipelineCoverageToColorStateCreateInfoNV {
6995 VkStructureType sType
6996 const void* pNext
6997 VkPipelineCoverageToColorStateCreateFlagsNV flags
6998 VkBool32 coverageToColorEnable
6999 u32 coverageToColorLocation
7000}
7001
7002@extension("VK_NV_framebuffer_mixed_samples") // 153
7003class VkPipelineCoverageModulationStateCreateInfoNV {
7004 VkStructureType sType
7005 const void* pNext
7006 VkPipelineCoverageModulationStateCreateFlagsNV flags
7007 VkCoverageModulationModeNV coverageModulationMode
7008 VkBool32 coverageModulationTableEnable
7009 u32 coverageModulationTableCount
7010 const f32* pCoverageModulationTable
7011}
7012
Jesse Hall076f95d2017-09-20 11:34:47 -07007013@extension("VK_KHR_sampler_ycbcr_conversion") // 157
7014class VkSamplerYcbcrConversionCreateInfoKHR {
7015 VkStructureType sType
7016 const void* pNext
7017 VkFormat format
7018 VkSamplerYcbcrModelConversionKHR ycbcrModel
7019 VkSamplerYcbcrRangeKHR ycbcrRange
7020 VkComponentMapping components
7021 VkChromaLocationKHR xChromaOffset
7022 VkChromaLocationKHR yChromaOffset
7023 VkFilter chromaFilter
7024 VkBool32 forceExplicitReconstruction
7025}
7026
7027@extension("VK_KHR_sampler_ycbcr_conversion") // 157
7028class VkSamplerYcbcrConversionInfoKHR {
7029 VkStructureType sType
7030 const void* pNext
7031 VkSamplerYcbcrConversionKHR conversion
7032}
7033
7034@extension("VK_KHR_sampler_ycbcr_conversion") // 157
7035class VkBindImagePlaneMemoryInfoKHR {
7036 VkStructureType sType
7037 const void* pNext
7038 VkImageAspectFlagBits planeAspect
7039}
7040
7041@extension("VK_KHR_sampler_ycbcr_conversion") // 157
7042class VkImagePlaneMemoryRequirementsInfoKHR {
7043 VkStructureType sType
7044 const void* pNext
7045 VkImageAspectFlagBits planeAspect
7046}
7047
7048@extension("VK_KHR_sampler_ycbcr_conversion") // 157
7049class VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR {
7050 VkStructureType sType
7051 void* pNext
7052 VkBool32 samplerYcbcrConversion
7053}
7054
7055@extension("VK_KHR_sampler_ycbcr_conversion") // 157
7056class VkSamplerYcbcrConversionImageFormatPropertiesKHR {
7057 VkStructureType sType
7058 void* pNext
7059 u32 combinedImageSamplerDescriptorCount
7060}
7061
7062@extension("VK_KHR_bind_memory2") // 158
7063class VkBindBufferMemoryInfoKHR {
7064 VkStructureType sType
7065 const void* pNext
7066 VkBuffer buffer
7067 VkDeviceMemory memory
7068 VkDeviceSize memoryOffset
7069}
7070
7071@extension("VK_KHR_bind_memory2") // 158
7072class VkBindImageMemoryInfoKHR {
7073 VkStructureType sType
7074 const void* pNext
7075 VkImage image
7076 VkDeviceMemory memory
7077 VkDeviceSize memoryOffset
7078}
7079
Jesse Hallf47e8f82018-10-27 23:41:45 -07007080@extension("VK_EXT_image_drm_format_modifier") // 159
7081class VkDrmFormatModifierPropertiesEXT {
7082 u64 drmFormatModifier
7083 u32 drmFormatModifierPlaneCount
7084 VkFormatFeatureFlags drmFormatModifierTilingFeatures
7085}
7086
7087@extension("VK_EXT_image_drm_format_modifier") // 159
7088class VkDrmFormatModifierPropertiesListEXT {
7089 VkStructureType sType
7090 void* pNext
7091 u32 drmFormatModifierCount
7092 VkDrmFormatModifierPropertiesEXT* pDrmFormatModifierProperties
7093}
7094
7095@extension("VK_EXT_image_drm_format_modifier") // 159
7096class VkPhysicalDeviceImageDrmFormatModifierInfoEXT {
7097 VkStructureType sType
7098 const void* pNext
7099 u64 drmFormatModifier
7100 VkSharingMode sharingMode
7101 u32 queueFamilyIndexCount
7102 const u32* pQueueFamilyIndices
7103}
7104
7105@extension("VK_EXT_image_drm_format_modifier") // 159
7106class VkImageDrmFormatModifierListCreateInfoEXT {
7107 VkStructureType sType
7108 const void* pNext
7109 u32 drmFormatModifierCount
7110 const u64* pDrmFormatModifiers
7111}
7112
7113@extension("VK_EXT_image_drm_format_modifier") // 159
7114class VkImageDrmFormatModifierExplicitCreateInfoEXT {
7115 VkStructureType sType
7116 const void* pNext
7117 u64 drmFormatModifier
7118 u32 drmFormatModifierPlaneCount
7119 const VkSubresourceLayout* pPlaneLayouts
7120}
7121
7122@extension("VK_EXT_image_drm_format_modifier") // 159
7123class VkImageDrmFormatModifierPropertiesEXT {
7124 VkStructureType sType
7125 void* pNext
7126 u64 drmFormatModifier
7127}
7128
Jesse Hall77726222017-09-19 14:49:27 -05007129@extension("VK_EXT_validation_cache") // 161
7130class VkValidationCacheCreateInfoEXT {
7131 VkStructureType sType
7132 const void* pNext
7133 VkValidationCacheCreateFlagsEXT flags
7134 platform.size_t initialDataSize
7135 const void* pInitialData
7136}
7137
7138@extension("VK_EXT_validation_cache") // 161
7139class VkShaderModuleValidationCacheCreateInfoEXT {
7140 VkStructureType sType
7141 const void* pNext
7142 VkValidationCacheEXT validationCache
7143}
7144
Jesse Hall72e6a132018-04-06 13:00:44 -07007145@extension("VK_EXT_descriptor_indexing") // 162
7146class VkDescriptorSetLayoutBindingFlagsCreateInfoEXT {
7147 VkStructureType sType
7148 const void* pNext
7149 u32 bindingCount
7150 const VkDescriptorBindingFlagsEXT* pBindingFlags
7151}
7152
7153@extension("VK_EXT_descriptor_indexing") // 162
7154class VkPhysicalDeviceDescriptorIndexingFeaturesEXT {
7155 VkStructureType sType
7156 void* pNext
7157 VkBool32 shaderInputAttachmentArrayDynamicIndexing
7158 VkBool32 shaderUniformTexelBufferArrayDynamicIndexing
7159 VkBool32 shaderStorageTexelBufferArrayDynamicIndexing
7160 VkBool32 shaderUniformBufferArrayNonUniformIndexing
7161 VkBool32 shaderSampledImageArrayNonUniformIndexing
7162 VkBool32 shaderStorageBufferArrayNonUniformIndexing
7163 VkBool32 shaderStorageImageArrayNonUniformIndexing
7164 VkBool32 shaderInputAttachmentArrayNonUniformIndexing
7165 VkBool32 shaderUniformTexelBufferArrayNonUniformIndexing
7166 VkBool32 shaderStorageTexelBufferArrayNonUniformIndexing
7167 VkBool32 descriptorBindingUniformBufferUpdateAfterBind
7168 VkBool32 descriptorBindingSampledImageUpdateAfterBind
7169 VkBool32 descriptorBindingStorageImageUpdateAfterBind
7170 VkBool32 descriptorBindingStorageBufferUpdateAfterBind
7171 VkBool32 descriptorBindingUniformTexelBufferUpdateAfterBind
7172 VkBool32 descriptorBindingStorageTexelBufferUpdateAfterBind
7173 VkBool32 descriptorBindingUpdateUnusedWhilePending
7174 VkBool32 descriptorBindingPartiallyBound
7175 VkBool32 descriptorBindingVariableDescriptorCount
7176 VkBool32 runtimeDescriptorArray
7177}
7178
7179@extension("VK_EXT_descriptor_indexing") // 162
7180class VkPhysicalDeviceDescriptorIndexingPropertiesEXT {
7181 VkStructureType sType
7182 void* pNext
7183 u32 maxUpdateAfterBindDescriptorsInAllPools
7184 VkBool32 shaderUniformBufferArrayNonUniformIndexingNative
7185 VkBool32 shaderSampledImageArrayNonUniformIndexingNative
7186 VkBool32 shaderStorageBufferArrayNonUniformIndexingNative
7187 VkBool32 shaderStorageImageArrayNonUniformIndexingNative
7188 VkBool32 shaderInputAttachmentArrayNonUniformIndexingNative
7189 VkBool32 robustBufferAccessUpdateAfterBind
7190 VkBool32 quadDivergentImplicitLod
7191 u32 maxPerStageDescriptorUpdateAfterBindSamplers
7192 u32 maxPerStageDescriptorUpdateAfterBindUniformBuffers
7193 u32 maxPerStageDescriptorUpdateAfterBindStorageBuffers
7194 u32 maxPerStageDescriptorUpdateAfterBindSampledImages
7195 u32 maxPerStageDescriptorUpdateAfterBindStorageImages
7196 u32 maxPerStageDescriptorUpdateAfterBindInputAttachments
7197 u32 maxPerStageUpdateAfterBindResources
7198 u32 maxDescriptorSetUpdateAfterBindSamplers
7199 u32 maxDescriptorSetUpdateAfterBindUniformBuffers
7200 u32 maxDescriptorSetUpdateAfterBindUniformBuffersDynamic
7201 u32 maxDescriptorSetUpdateAfterBindStorageBuffers
7202 u32 maxDescriptorSetUpdateAfterBindStorageBuffersDynamic
7203 u32 maxDescriptorSetUpdateAfterBindSampledImages
7204 u32 maxDescriptorSetUpdateAfterBindStorageImages
7205 u32 maxDescriptorSetUpdateAfterBindInputAttachments
7206}
7207
7208@extension("VK_EXT_descriptor_indexing") // 162
7209class VkDescriptorSetVariableDescriptorCountAllocateInfoEXT {
7210 VkStructureType sType
7211 const void* pNext
7212 u32 descriptorSetCount
7213 const u32* pDescriptorCounts
7214}
7215
7216@extension("VK_EXT_descriptor_indexing") // 162
7217class VkDescriptorSetVariableDescriptorCountLayoutSupportEXT {
7218 VkStructureType sType
7219 void* pNext
7220 u32 maxVariableDescriptorCount
7221}
7222
Jesse Hallb5297192018-09-22 20:52:13 +02007223@extension("VK_NV_shading_rate_image") // 165
7224class VkShadingRatePaletteNV {
7225 u32 shadingRatePaletteEntryCount
7226 const VkShadingRatePaletteEntryNV* pShadingRatePaletteEntries
7227}
7228
7229@extension("VK_NV_shading_rate_image") // 165
7230class VkPipelineViewportShadingRateImageStateCreateInfoNV {
7231 VkStructureType sType
7232 const void* pNext
7233 VkBool32 shadingRateImageEnable
7234 u32 viewportCount
7235 const VkShadingRatePaletteNV* pShadingRatePalettes
7236}
7237
7238@extension("VK_NV_shading_rate_image") // 165
7239class VkPhysicalDeviceShadingRateImageFeaturesNV {
7240 VkStructureType sType
7241 void* pNext
7242 VkBool32 shadingRateImage
7243 VkBool32 shadingRateCoarseSampleOrder
7244}
7245
7246@extension("VK_NV_shading_rate_image") // 165
7247class VkPhysicalDeviceShadingRateImagePropertiesNV {
7248 VkStructureType sType
7249 void* pNext
7250 VkExtent2D shadingRateTexelSize
7251 u32 shadingRatePaletteSize
7252 u32 shadingRateMaxCoarseSamples
7253}
7254
7255@extension("VK_NV_shading_rate_image") // 165
7256class VkCoarseSampleLocationNV {
7257 u32 pixelX
7258 u32 pixelY
7259 u32 sample
7260}
7261
7262@extension("VK_NV_shading_rate_image") // 165
7263class VkCoarseSampleOrderCustomNV {
7264 VkShadingRatePaletteEntryNV shadingRate
7265 u32 sampleCount
7266 u32 sampleLocationCount
7267 const VkCoarseSampleLocationNV* pSampleLocations
7268}
7269
7270@extension("VK_NV_shading_rate_image") // 165
7271class VkPipelineViewportCoarseSampleOrderStateCreateInfoNV {
7272 VkStructureType sType
7273 const void* pNext
7274 VkCoarseSampleOrderTypeNV sampleOrderType
7275 u32 customSampleOrderCount
7276 const VkCoarseSampleOrderCustomNV* pCustomSampleOrders
7277}
7278
Jesse Halla363a8e2018-11-05 21:18:00 -07007279@extension("VK_NV_raytracing") // 166
7280class VkRayTracingShaderGroupCreateInfoNV {
7281 VkStructureType sType
7282 const void* pNext
7283 VkRayTracingShaderGroupTypeNV type
7284 u32 generalShader
7285 u32 closestHitShader
7286 u32 anyHitShader
7287 u32 intersectionShader
Jesse Hallb5297192018-09-22 20:52:13 +02007288}
7289
Jesse Halla363a8e2018-11-05 21:18:00 -07007290@extension("VK_NV_raytracing") // 166
7291class VkRayTracingPipelineCreateInfoNV {
7292 VkStructureType sType
7293 const void* pNext
7294 VkPipelineCreateFlags flags
7295 u32 stageCount
7296 const VkPipelineShaderStageCreateInfo* pStages
7297 u32 groupCount
7298 const VkRayTracingShaderGroupCreateInfoNV* pGroups
7299 u32 maxRecursionDepth
7300 VkPipelineLayout layout
7301 VkPipeline basePipelineHandle
7302 s32 basePipelineIndex
7303}
7304
7305@extension("VK_NV_raytracing") // 166
7306class VkGeometryTrianglesNV {
Jesse Hallb5297192018-09-22 20:52:13 +02007307 VkStructureType sType
7308 const void* pNext
7309 VkBuffer vertexData
7310 VkDeviceSize vertexOffset
7311 u32 vertexCount
7312 VkDeviceSize vertexStride
7313 VkFormat vertexFormat
7314 VkBuffer indexData
7315 VkDeviceSize indexOffset
7316 u32 indexCount
7317 VkIndexType indexType
7318 VkBuffer transformData
7319 VkDeviceSize transformOffset
7320}
7321
Jesse Halla363a8e2018-11-05 21:18:00 -07007322@extension("VK_NV_raytracing") // 166
7323class VkGeometryAABBNV {
Jesse Hallb5297192018-09-22 20:52:13 +02007324 VkStructureType sType
7325 const void* pNext
7326 VkBuffer aabbData
7327 u32 numAABBs
7328 u32 stride
7329 VkDeviceSize offset
7330}
7331
Jesse Halla363a8e2018-11-05 21:18:00 -07007332@extension("VK_NV_raytracing") // 166
7333class VkGeometryDataNV {
7334 VkGeometryTrianglesNV triangles
7335 VkGeometryAABBNV aabbs
Jesse Hallb5297192018-09-22 20:52:13 +02007336}
7337
Jesse Halla363a8e2018-11-05 21:18:00 -07007338@extension("VK_NV_raytracing") // 166
7339class VkGeometryNV {
Jesse Hallb5297192018-09-22 20:52:13 +02007340 VkStructureType sType
7341 const void* pNext
Jesse Halla363a8e2018-11-05 21:18:00 -07007342 VkGeometryTypeNV geometryType
7343 VkGeometryDataNV geometry
7344 VkGeometryFlagsNV flags
Jesse Hallb5297192018-09-22 20:52:13 +02007345}
7346
Jesse Halla363a8e2018-11-05 21:18:00 -07007347@extension("VK_NV_raytracing") // 166
7348class VkAccelerationStructureInfoNV {
Jesse Hallb5297192018-09-22 20:52:13 +02007349 VkStructureType sType
7350 const void* pNext
Jesse Halla363a8e2018-11-05 21:18:00 -07007351 VkAccelerationStructureTypeNV type
7352 VkBuildAccelerationStructureFlagsNV flags
Jesse Hallb5297192018-09-22 20:52:13 +02007353 u32 instanceCount
7354 u32 geometryCount
Jesse Halla363a8e2018-11-05 21:18:00 -07007355 const VkGeometryNV* pGeometries
Jesse Hallb5297192018-09-22 20:52:13 +02007356}
7357
Jesse Halla363a8e2018-11-05 21:18:00 -07007358@extension("VK_NV_raytracing") // 166
7359class VkAccelerationStructureCreateInfoNV {
Jesse Hallb5297192018-09-22 20:52:13 +02007360 VkStructureType sType
7361 const void* pNext
Jesse Halla363a8e2018-11-05 21:18:00 -07007362 VkDeviceSize compactedSize
7363 VkAccelerationStructureInfoNV info
7364}
7365
7366@extension("VK_NV_raytracing") // 166
7367class VkBindAccelerationStructureMemoryInfoNV {
7368 VkStructureType sType
7369 const void* pNext
7370 VkAccelerationStructureNV accelerationStructure
Jesse Hallb5297192018-09-22 20:52:13 +02007371 VkDeviceMemory memory
7372 VkDeviceSize memoryOffset
7373 u32 deviceIndexCount
7374 const u32* pDeviceIndices
7375}
7376
Jesse Halla363a8e2018-11-05 21:18:00 -07007377@extension("VK_NV_raytracing") // 166
7378class VkDescriptorAccelerationStructureInfoNV {
Jesse Hallb5297192018-09-22 20:52:13 +02007379 VkStructureType sType
7380 const void* pNext
7381 u32 accelerationStructureCount
Jesse Halla363a8e2018-11-05 21:18:00 -07007382 const VkAccelerationStructureNV* pAccelerationStructures
Jesse Hallb5297192018-09-22 20:52:13 +02007383}
7384
Jesse Halla363a8e2018-11-05 21:18:00 -07007385@extension("VK_NV_raytracing") // 166
7386class VkAccelerationStructureMemoryRequirementsInfoNV {
Jesse Hallb5297192018-09-22 20:52:13 +02007387 VkStructureType sType
7388 const void* pNext
Jesse Halla363a8e2018-11-05 21:18:00 -07007389 VkAccelerationStructureMemoryRequirementsTypeNV type
7390 VkAccelerationStructureNV accelerationStructure
Jesse Hallb5297192018-09-22 20:52:13 +02007391}
7392
Jesse Halla363a8e2018-11-05 21:18:00 -07007393@extension("VK_NV_raytracing") // 166
7394class VkPhysicalDeviceRaytracingPropertiesNV {
Jesse Hallb5297192018-09-22 20:52:13 +02007395 VkStructureType sType
7396 void* pNext
Jesse Halla363a8e2018-11-05 21:18:00 -07007397 u32 shaderGroupHandleSize
Jesse Hallb5297192018-09-22 20:52:13 +02007398 u32 maxRecursionDepth
Jesse Halla363a8e2018-11-05 21:18:00 -07007399 u32 maxShaderGroupStride
7400 u32 shaderGroupBaseAlignment
7401 u64 maxGeometryCount
7402 u64 maxInstanceCount
7403 u64 maxTriangleCount
7404 u32 maxDescriptorSetAccelerationStructures
Jesse Hallb5297192018-09-22 20:52:13 +02007405}
7406
7407@extension("VK_NV_representative_fragment_test") // 167
7408class VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV {
7409 VkStructureType sType
7410 void* pNext
7411 VkBool32 representativeFragmentTest
7412}
7413
7414@extension("VK_NV_representative_fragment_test") // 167
7415class VkPipelineRepresentativeFragmentTestStateCreateInfoNV {
7416 VkStructureType sType
7417 const void* pNext
7418 VkBool32 representativeFragmentTestEnable
7419}
7420
Daniel Koch09f7bf92017-10-05 00:26:58 -04007421@extension("VK_KHR_maintenance3") // 169
7422class VkPhysicalDeviceMaintenance3PropertiesKHR {
7423 VkStructureType sType
7424 void* pNext
7425 u32 maxPerSetDescriptors
7426 VkDeviceSize maxMemoryAllocationSize
7427}
7428
7429@extension("VK_KHR_maintenance3") // 169
7430class VkDescriptorSetLayoutSupportKHR {
7431 VkStructureType sType
7432 void* pNext
7433 VkBool32 supported
7434}
7435
Jesse Hall8c954d32018-01-17 22:06:20 -08007436@extension("VK_EXT_global_priority") // 175
7437class VkDeviceQueueGlobalPriorityCreateInfoEXT {
7438 VkStructureType sType
7439 const void* pNext
7440 VkQueueGlobalPriorityEXT globalPriority
7441}
7442
Jesse Halla13a3cf2018-07-09 15:51:52 -07007443@extension("VK_KHR_8bit_storage") // 178
7444class VkPhysicalDevice8BitStorageFeaturesKHR {
7445 VkStructureType sType
7446 void* pNext
7447 VkBool32 storageBuffer8BitAccess
7448 VkBool32 uniformAndStorageBuffer8BitAccess
7449 VkBool32 storagePushConstant8
7450}
7451
Jesse Hall8c954d32018-01-17 22:06:20 -08007452@extension("VK_EXT_external_memory_host") // 179
7453class VkImportMemoryHostPointerInfoEXT {
7454 VkStructureType sType
7455 const void* pNext
7456 VkExternalMemoryHandleTypeFlagBits handleType
7457 void* pHostPointer
7458}
7459
7460@extension("VK_EXT_external_memory_host") // 179
7461class VkMemoryHostPointerPropertiesEXT {
7462 VkStructureType sType
7463 void* pNext
7464 u32 memoryTypeBits
7465}
7466
7467@extension("VK_EXT_external_memory_host") // 179
7468class VkPhysicalDeviceExternalMemoryHostPropertiesEXT {
7469 VkStructureType sType
7470 void* pNext
7471 VkDeviceSize minImportedHostPointerAlignment
7472}
7473
Jesse Hall2e6853c2018-10-02 14:05:37 -07007474@extension("VK_KHR_shader_atomic_int64") // 181
7475class VkPhysicalDeviceShaderAtomicInt64FeaturesKHR {
7476 VkStructureType sType
7477 void* pNext
7478 VkBool32 shaderBufferInt64Atomics
7479 VkBool32 shaderSharedInt64Atomics
7480}
7481
Jesse Hallf47e8f82018-10-27 23:41:45 -07007482@extension("VK_EXT_calibrated_timestamps") // 185
7483class VkCalibratedTimestampInfoEXT {
7484 VkStructureType sType
7485 const void* pNext
7486 VkTimeDomainEXT timeDomain
7487}
7488
Jesse Hall72e6a132018-04-06 13:00:44 -07007489@extension("VK_AMD_shader_core_properties") // 186
7490class VkPhysicalDeviceShaderCorePropertiesAMD {
7491 VkStructureType sType
7492 void* pNext
7493 u32 shaderEngineCount
7494 u32 shaderArraysPerEngineCount
7495 u32 computeUnitsPerShaderArray
7496 u32 simdPerComputeUnit
7497 u32 wavefrontsPerSimd
7498 u32 wavefrontSize
7499 u32 sgprsPerSimd
7500 u32 minSgprAllocation
7501 u32 maxSgprAllocation
7502 u32 sgprAllocationGranularity
7503 u32 vgprsPerSimd
7504 u32 minVgprAllocation
7505 u32 maxVgprAllocation
7506 u32 vgprAllocationGranularity
7507}
7508
Jesse Halla363a8e2018-11-05 21:18:00 -07007509@extension("VK_AMD_memory_overallocation_behavior") // 190
7510class VkDeviceMemoryOverallocationCreateInfoAMD {
7511 VkStructureType sType
7512 const void* pNext
7513 VkMemoryOverallocationBehaviorAMD overallocationBehavior
7514}
7515
Jesse Hall72e6a132018-04-06 13:00:44 -07007516@extension("VK_EXT_vertex_attribute_divisor") // 191
7517class VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT {
7518 VkStructureType sType
7519 void* pNext
7520 u32 maxVertexAttribDivisor
7521}
7522
7523@extension("VK_EXT_vertex_attribute_divisor") // 191
7524class VkVertexInputBindingDivisorDescriptionEXT {
7525 u32 binding
7526 u32 divisor
7527}
7528
7529@extension("VK_EXT_vertex_attribute_divisor") // 191
7530class VkPipelineVertexInputDivisorStateCreateInfoEXT {
7531 VkStructureType sType
7532 const void* pNext
7533 u32 vertexBindingDivisorCount
7534 const VkVertexInputBindingDivisorDescriptionEXT* pVertexBindingDivisors
7535}
7536
Jesse Hall4af6c462018-09-10 09:04:25 -07007537@extension("VK_EXT_vertex_attribute_divisor") // 191
7538class VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT {
7539 VkStructureType sType
7540 void* pNext
7541 VkBool32 vertexAttributeInstanceRateDivisor
7542 VkBool32 vertexAttributeInstanceRateZeroDivisor
7543}
7544
Jesse Hall2e6853c2018-10-02 14:05:37 -07007545@extension("VK_KHR_driver_properties") // 197
7546class VkConformanceVersionKHR {
7547 u8 major
7548 u8 minor
7549 u8 subminor
7550 u8 patch
7551}
7552
7553@extension("VK_KHR_driver_properties") // 197
7554class VkPhysicalDeviceDriverPropertiesKHR {
7555 VkStructureType sType
7556 void* pNext
Jesse Hallf47e8f82018-10-27 23:41:45 -07007557 VkDriverIdKHR driverID
Jesse Hall2e6853c2018-10-02 14:05:37 -07007558 char[VK_MAX_DRIVER_NAME_SIZE_KHR] driverName
7559 char[VK_MAX_DRIVER_INFO_SIZE_KHR] driverInfo
7560 VkConformanceVersionKHR conformanceVersion
7561}
7562
Jesse Hallb5297192018-09-22 20:52:13 +02007563@extension("VK_NV_compute_shader_derivatives") // 202
7564class VkPhysicalDeviceComputeShaderDerivativesFeaturesNV {
7565 VkStructureType sType
7566 void* pNext
7567 VkBool32 computeDerivativeGroupQuads
7568 VkBool32 computeDerivativeGroupLinear
7569}
7570
7571@extension("VK_NV_mesh_shader") // 203
7572class VkPhysicalDeviceMeshShaderFeaturesNV {
7573 VkStructureType sType
7574 void* pNext
7575 VkBool32 taskShader
7576 VkBool32 meshShader
7577}
7578
7579@extension("VK_NV_mesh_shader") // 203
7580class VkPhysicalDeviceMeshShaderPropertiesNV {
7581 VkStructureType sType
7582 void* pNext
7583 u32 maxDrawMeshTasksCount
7584 u32 maxTaskWorkGroupInvocations
7585 u32[3] maxTaskWorkGroupSize
7586 u32 maxTaskTotalMemorySize
7587 u32 maxTaskOutputCount
7588 u32 maxMeshWorkGroupInvocations
7589 u32[3] maxMeshWorkGroupSize
7590 u32 maxMeshTotalMemorySize
7591 u32 maxMeshOutputVertices
7592 u32 maxMeshOutputPrimitives
7593 u32 maxMeshMultiviewViewCount
7594 u32 meshOutputPerVertexGranularity
7595 u32 meshOutputPerPrimitiveGranularity
7596}
7597
7598@extension("VK_NV_mesh_shader") // 203
7599class VkDrawMeshTasksIndirectCommandNV {
7600 u32 taskCount
7601 u32 firstTask
7602}
7603
7604@extension("VK_NV_fragment_shader_barycentric") // 204
7605class VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV {
7606 VkStructureType sType
7607 void* pNext
7608 VkBool32 fragmentShaderBarycentric
7609}
7610
7611@extension("VK_NV_shader_image_footprint") // 205
7612class VkPhysicalDeviceShaderImageFootprintFeaturesNV {
7613 VkStructureType sType
7614 void* pNext
7615 VkBool32 imageFootprint
7616}
7617
7618@extension("VK_NV_scissor_exclusive") // 206
7619class VkPipelineViewportExclusiveScissorStateCreateInfoNV {
7620 VkStructureType sType
7621 const void* pNext
7622 u32 exclusiveScissorCount
7623 const VkRect2D* pExclusiveScissors
7624}
7625
7626@extension("VK_NV_scissor_exclusive") // 206
7627class VkPhysicalDeviceExclusiveScissorFeaturesNV {
7628 VkStructureType sType
7629 void* pNext
7630 VkBool32 exclusiveScissor
7631}
7632
Jesse Hall115df0c2018-07-30 12:00:59 -07007633@extension("VK_NV_device_diagnostic_checkpoints") // 207
7634class VkQueueFamilyCheckpointPropertiesNV {
7635 VkStructureType sType
7636 void* pNext
7637 VkPipelineStageFlags checkpointExecutionStageMask
7638}
7639
7640@extension("VK_NV_device_diagnostic_checkpoints") // 207
7641class VkCheckpointDataNV {
7642 VkStructureType sType
7643 void* pNext
7644 VkPipelineStageFlagBits stage
7645 void* pCheckpointMarker
7646}
7647
Jesse Hall4af6c462018-09-10 09:04:25 -07007648@extension("VK_KHR_vulkan_memory_model") // 212
7649class VkPhysicalDeviceVulkanMemoryModelFeaturesKHR {
7650 VkStructureType sType
7651 void* pNext
7652 VkBool32 vulkanMemoryModel
7653 VkBool32 vulkanMemoryModelDeviceScope
7654}
7655
Jesse Hallf47e8f82018-10-27 23:41:45 -07007656@extension("VK_EXT_pci_bus_info") // 213
7657class VkPhysicalDevicePCIBusInfoPropertiesEXT {
7658 VkStructureType sType
7659 void* pNext
7660 u16 pciDomain
7661 u8 pciBus
7662 u8 pciDevice
7663 u8 pciFunction
7664}
7665
Jesse Hall497c46f2018-10-08 12:52:48 -07007666@extension("VK_FUCHSIA_imagepipe_surface") // 215
7667class VkImagePipeSurfaceCreateInfoFUCHSIA {
7668 VkStructureType sType
7669 const void* pNext
7670 VkImagePipeSurfaceCreateFlagsFUCHSIA flags
7671 platform.zx_handle_t imagePipeHandle
7672}
7673
Jesse Hall89bde782018-11-12 08:06:07 -08007674@extension("VK_EXT_scalar_block_layout") // 222
7675class VkPhysicalDeviceScalarBlockLayoutFeaturesEXT {
7676 VkStructureType sType
7677 void* pNext
7678 VkBool32 scalarBlockLayout
7679}
7680
7681@extension("VK_EXT_separate_stencil_usage") // 247
7682class VkImageStencilUsageCreateInfoEXT {
7683 VkStructureType sType
7684 const void* pNext
7685 VkImageUsageFlags stencilUsage
7686}
7687
Daniel Koch09f7bf92017-10-05 00:26:58 -04007688
Jesse Halld27f6aa2015-08-15 17:58:48 -07007689////////////////
7690// Commands //
7691////////////////
7692
7693// Function pointers. TODO: add support for function pointers.
7694
7695@external type void* PFN_vkVoidFunction
7696@pfn cmd void vkVoidFunction() {
7697}
7698
Jesse Hall3fbc8562015-11-29 22:10:52 -08007699@external type void* PFN_vkAllocationFunction
7700@pfn cmd void* vkAllocationFunction(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007701 void* pUserData,
7702 platform.size_t size,
7703 platform.size_t alignment,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007704 VkSystemAllocationScope allocationScope) {
Jesse Hall03b6fe12015-11-24 12:44:21 -08007705 return ?
7706}
7707
Jesse Hall3fbc8562015-11-29 22:10:52 -08007708@external type void* PFN_vkReallocationFunction
7709@pfn cmd void* vkReallocationFunction(
Jesse Hall03b6fe12015-11-24 12:44:21 -08007710 void* pUserData,
7711 void* pOriginal,
7712 platform.size_t size,
7713 platform.size_t alignment,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007714 VkSystemAllocationScope allocationScope) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007715 return ?
7716}
7717
7718@external type void* PFN_vkFreeFunction
7719@pfn cmd void vkFreeFunction(
7720 void* pUserData,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007721 void* pMemory) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007722}
7723
Jesse Hall3fbc8562015-11-29 22:10:52 -08007724@external type void* PFN_vkInternalAllocationNotification
7725@pfn cmd void vkInternalAllocationNotification(
Jesse Hall03b6fe12015-11-24 12:44:21 -08007726 void* pUserData,
7727 platform.size_t size,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007728 VkInternalAllocationType allocationType,
7729 VkSystemAllocationScope allocationScope) {
Jesse Hall03b6fe12015-11-24 12:44:21 -08007730}
7731
7732@external type void* PFN_vkInternalFreeNotification
7733@pfn cmd void vkInternalFreeNotification(
7734 void* pUserData,
7735 platform.size_t size,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007736 VkInternalAllocationType allocationType,
7737 VkSystemAllocationScope allocationScope) {
Jesse Hall03b6fe12015-11-24 12:44:21 -08007738}
Jesse Halld27f6aa2015-08-15 17:58:48 -07007739
7740// Global functions
7741
7742@threadSafety("system")
7743cmd VkResult vkCreateInstance(
7744 const VkInstanceCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007745 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007746 VkInstance* pInstance) {
7747 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO)
7748
7749 instance := ?
7750 pInstance[0] = instance
7751 State.Instances[instance] = new!InstanceObject()
7752
Jesse Hall3dd678a2016-01-08 21:52:01 -08007753 layers := pCreateInfo.ppEnabledLayerNames[0:pCreateInfo.enabledLayerCount]
7754 extensions := pCreateInfo.ppEnabledExtensionNames[0:pCreateInfo.enabledExtensionCount]
Jesse Halld27f6aa2015-08-15 17:58:48 -07007755
7756 return ?
7757}
7758
7759@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007760cmd void vkDestroyInstance(
Jesse Hall03b6fe12015-11-24 12:44:21 -08007761 VkInstance instance,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007762 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007763 instanceObject := GetInstance(instance)
7764
7765 State.Instances[instance] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07007766}
7767
7768@threadSafety("system")
7769cmd VkResult vkEnumeratePhysicalDevices(
7770 VkInstance instance,
7771 u32* pPhysicalDeviceCount,
7772 VkPhysicalDevice* pPhysicalDevices) {
7773 instanceObject := GetInstance(instance)
7774
7775 physicalDeviceCount := as!u32(?)
7776 pPhysicalDeviceCount[0] = physicalDeviceCount
7777 physicalDevices := pPhysicalDevices[0:physicalDeviceCount]
7778
7779 for i in (0 .. physicalDeviceCount) {
7780 physicalDevice := ?
7781 physicalDevices[i] = physicalDevice
7782 if !(physicalDevice in State.PhysicalDevices) {
7783 State.PhysicalDevices[physicalDevice] = new!PhysicalDeviceObject(instance: instance)
7784 }
7785 }
7786
7787 return ?
7788}
7789
7790cmd PFN_vkVoidFunction vkGetDeviceProcAddr(
7791 VkDevice device,
7792 const char* pName) {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007793 if device != NULL_HANDLE {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007794 device := GetDevice(device)
7795 }
7796
7797 return ?
7798}
7799
7800cmd PFN_vkVoidFunction vkGetInstanceProcAddr(
7801 VkInstance instance,
7802 const char* pName) {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007803 if instance != NULL_HANDLE {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007804 instanceObject := GetInstance(instance)
7805 }
7806
7807 return ?
7808}
7809
Jesse Hall606a54e2015-11-19 22:17:28 -08007810cmd void vkGetPhysicalDeviceProperties(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007811 VkPhysicalDevice physicalDevice,
7812 VkPhysicalDeviceProperties* pProperties) {
7813 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
7814
7815 properties := ?
7816 pProperties[0] = properties
Jesse Halld27f6aa2015-08-15 17:58:48 -07007817}
7818
Jesse Hall606a54e2015-11-19 22:17:28 -08007819cmd void vkGetPhysicalDeviceQueueFamilyProperties(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007820 VkPhysicalDevice physicalDevice,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007821 u32* pQueueFamilyPropertyCount,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007822 VkQueueFamilyProperties* pQueueFamilyProperties) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007823 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007824 // TODO: Figure out how to express fetch-count-or-properties
7825 // This version fails 'apic validate' with 'fence not allowed in
7826 // *semantic.Branch'. Other attempts have failed with the same or other
7827 // errors.
7828 // if pQueueFamilyProperties != null {
7829 // queuesProperties := pQueueFamilyProperties[0:pCount[0]]
7830 // for i in (0 .. pCount[0]) {
7831 // queueProperties := as!VkQueueFamilyProperties(?)
7832 // queuesProperties[i] = queueProperties
7833 // }
7834 // } else {
7835 // count := ?
7836 // pCount[0] = count
7837 // }
Jesse Halld27f6aa2015-08-15 17:58:48 -07007838}
7839
Jesse Hall606a54e2015-11-19 22:17:28 -08007840cmd void vkGetPhysicalDeviceMemoryProperties(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007841 VkPhysicalDevice physicalDevice,
7842 VkPhysicalDeviceMemoryProperties* pMemoryProperties) {
7843 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
7844
7845 memoryProperties := ?
7846 pMemoryProperties[0] = memoryProperties
Jesse Halld27f6aa2015-08-15 17:58:48 -07007847}
7848
Jesse Hall606a54e2015-11-19 22:17:28 -08007849cmd void vkGetPhysicalDeviceFeatures(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007850 VkPhysicalDevice physicalDevice,
7851 VkPhysicalDeviceFeatures* pFeatures) {
7852 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
7853
7854 features := ?
7855 pFeatures[0] = features
Jesse Halld27f6aa2015-08-15 17:58:48 -07007856}
7857
Jesse Hall606a54e2015-11-19 22:17:28 -08007858cmd void vkGetPhysicalDeviceFormatProperties(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007859 VkPhysicalDevice physicalDevice,
7860 VkFormat format,
7861 VkFormatProperties* pFormatProperties) {
7862 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
7863
7864 formatProperties := ?
7865 pFormatProperties[0] = formatProperties
Jesse Halld27f6aa2015-08-15 17:58:48 -07007866}
7867
Jesse Halla9e57032015-11-30 01:03:10 -08007868cmd VkResult vkGetPhysicalDeviceImageFormatProperties(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007869 VkPhysicalDevice physicalDevice,
7870 VkFormat format,
7871 VkImageType type,
7872 VkImageTiling tiling,
7873 VkImageUsageFlags usage,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007874 VkImageCreateFlags flags,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007875 VkImageFormatProperties* pImageFormatProperties) {
7876 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
7877
7878 imageFormatProperties := ?
7879 pImageFormatProperties[0] = imageFormatProperties
Jesse Halla9e57032015-11-30 01:03:10 -08007880
7881 return ?
Jesse Halld27f6aa2015-08-15 17:58:48 -07007882}
7883
Jesse Halld27f6aa2015-08-15 17:58:48 -07007884
7885// Device functions
7886
7887@threadSafety("system")
7888cmd VkResult vkCreateDevice(
7889 VkPhysicalDevice physicalDevice,
7890 const VkDeviceCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007891 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007892 VkDevice* pDevice) {
7893 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO)
7894 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
7895
7896 device := ?
7897 pDevice[0] = device
7898 State.Devices[device] = new!DeviceObject(physicalDevice: physicalDevice)
7899
7900 return ?
7901}
7902
7903@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007904cmd void vkDestroyDevice(
Jesse Hall03b6fe12015-11-24 12:44:21 -08007905 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007906 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007907 deviceObject := GetDevice(device)
7908
7909 State.Devices[device] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07007910}
7911
7912
7913// Extension discovery functions
7914
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007915cmd VkResult vkEnumerateInstanceLayerProperties(
Jesse Hall03b6fe12015-11-24 12:44:21 -08007916 u32* pPropertyCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007917 VkLayerProperties* pProperties) {
7918 count := as!u32(?)
Jesse Hall03b6fe12015-11-24 12:44:21 -08007919 pPropertyCount[0] = count
Jesse Halld27f6aa2015-08-15 17:58:48 -07007920
7921 properties := pProperties[0:count]
7922 for i in (0 .. count) {
7923 property := ?
7924 properties[i] = property
7925 }
7926
7927 return ?
7928}
7929
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007930cmd VkResult vkEnumerateInstanceExtensionProperties(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007931 const char* pLayerName,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007932 u32* pPropertyCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007933 VkExtensionProperties* pProperties) {
7934 count := as!u32(?)
Jesse Hall03b6fe12015-11-24 12:44:21 -08007935 pPropertyCount[0] = count
Jesse Halld27f6aa2015-08-15 17:58:48 -07007936
7937 properties := pProperties[0:count]
7938 for i in (0 .. count) {
7939 property := ?
7940 properties[i] = property
7941 }
7942
7943 return ?
7944}
7945
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007946cmd VkResult vkEnumerateDeviceLayerProperties(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007947 VkPhysicalDevice physicalDevice,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007948 u32* pPropertyCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007949 VkLayerProperties* pProperties) {
7950 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
7951 count := as!u32(?)
Jesse Hall03b6fe12015-11-24 12:44:21 -08007952 pPropertyCount[0] = count
Jesse Halld27f6aa2015-08-15 17:58:48 -07007953
7954 properties := pProperties[0:count]
7955 for i in (0 .. count) {
7956 property := ?
7957 properties[i] = property
7958 }
7959
7960 return ?
7961}
7962
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007963cmd VkResult vkEnumerateDeviceExtensionProperties(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007964 VkPhysicalDevice physicalDevice,
7965 const char* pLayerName,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007966 u32* pPropertyCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007967 VkExtensionProperties* pProperties) {
7968 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
7969
7970 count := as!u32(?)
Jesse Hall03b6fe12015-11-24 12:44:21 -08007971 pPropertyCount[0] = count
Jesse Halld27f6aa2015-08-15 17:58:48 -07007972
7973 properties := pProperties[0:count]
7974 for i in (0 .. count) {
7975 property := ?
7976 properties[i] = property
7977 }
7978
7979 return ?
7980}
7981
7982
7983// Queue functions
7984
7985@threadSafety("system")
Jesse Hall606a54e2015-11-19 22:17:28 -08007986cmd void vkGetDeviceQueue(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007987 VkDevice device,
7988 u32 queueFamilyIndex,
7989 u32 queueIndex,
7990 VkQueue* pQueue) {
7991 deviceObject := GetDevice(device)
7992
7993 queue := ?
7994 pQueue[0] = queue
7995
7996 if !(queue in State.Queues) {
7997 State.Queues[queue] = new!QueueObject(device: device)
7998 }
Jesse Halld27f6aa2015-08-15 17:58:48 -07007999}
8000
8001@threadSafety("app")
8002cmd VkResult vkQueueSubmit(
8003 VkQueue queue,
Jesse Halla366a512015-11-19 22:30:07 -08008004 u32 submitCount,
Jesse Hallb00daad2015-11-29 19:46:20 -08008005 const VkSubmitInfo* pSubmits,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008006 VkFence fence) {
8007 queueObject := GetQueue(queue)
8008
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008009 if fence != NULL_HANDLE {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008010 fenceObject := GetFence(fence)
8011 assert(fenceObject.device == queueObject.device)
8012 }
8013
Jesse Hall3fbc8562015-11-29 22:10:52 -08008014 // commandBuffers := pcommandBuffers[0:commandBufferCount]
8015 // for i in (0 .. commandBufferCount) {
8016 // commandBuffer := commandBuffers[i]
8017 // commandBufferObject := GetCommandBuffer(commandBuffer)
8018 // assert(commandBufferObject.device == queueObject.device)
Jesse Halla366a512015-11-19 22:30:07 -08008019 //
Jesse Hall3fbc8562015-11-29 22:10:52 -08008020 // validate("QueueCheck", commandBufferObject.queueFlags in queueObject.flags,
8021 // "vkQueueSubmit: enqueued commandBuffer requires missing queue capabilities.")
Jesse Halla366a512015-11-19 22:30:07 -08008022 // }
Jesse Halld27f6aa2015-08-15 17:58:48 -07008023
8024 return ?
8025}
8026
8027@threadSafety("system")
8028cmd VkResult vkQueueWaitIdle(
8029 VkQueue queue) {
8030 queueObject := GetQueue(queue)
8031
8032 return ?
8033}
8034
8035@threadSafety("system")
8036cmd VkResult vkDeviceWaitIdle(
8037 VkDevice device) {
8038 deviceObject := GetDevice(device)
8039
8040 return ?
8041}
8042
8043
8044// Memory functions
8045
8046@threadSafety("system")
Jesse Hall3fbc8562015-11-29 22:10:52 -08008047cmd VkResult vkAllocateMemory(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008048 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008049 const VkMemoryAllocateInfo* pAllocateInfo,
8050 const VkAllocationCallbacks* pAllocator,
8051 VkDeviceMemory* pMemory) {
Jesse Hallf4ab2b12015-11-30 16:04:55 -08008052 assert(pAllocateInfo.sType == VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008053 deviceObject := GetDevice(device)
8054
Jesse Hall3fbc8562015-11-29 22:10:52 -08008055 memory := ?
8056 pMemory[0] = memory
8057 State.DeviceMemories[memory] = new!DeviceMemoryObject(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008058 device: device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008059 allocationSize: pAllocateInfo[0].allocationSize)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008060
8061 return ?
8062}
8063
8064@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008065cmd void vkFreeMemory(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008066 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008067 VkDeviceMemory memory,
8068 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008069 deviceObject := GetDevice(device)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008070 memoryObject := GetDeviceMemory(memory)
8071 assert(memoryObject.device == device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008072
8073 // Check that no objects are still bound before freeing.
Jesse Hall3fbc8562015-11-29 22:10:52 -08008074 validate("MemoryCheck", len(memoryObject.boundObjects) == 0,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008075 "vkFreeMemory: objects still bound")
Jesse Hall3fbc8562015-11-29 22:10:52 -08008076 validate("MemoryCheck", len(memoryObject.boundCommandBuffers) == 0,
8077 "vkFreeMemory: commandBuffers still bound")
8078 State.DeviceMemories[memory] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008079}
8080
8081@threadSafety("app")
8082cmd VkResult vkMapMemory(
8083 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008084 VkDeviceMemory memory,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008085 VkDeviceSize offset,
8086 VkDeviceSize size,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008087 VkMemoryMapFlags flags,
8088 void** ppData) {
8089 deviceObject := GetDevice(device)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008090 memoryObject := GetDeviceMemory(memory)
8091 assert(memoryObject.device == device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008092
8093 assert(flags == as!VkMemoryMapFlags(0))
Jesse Hall3fbc8562015-11-29 22:10:52 -08008094 assert((offset + size) <= memoryObject.allocationSize)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008095
8096 return ?
8097}
8098
8099@threadSafety("app")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008100cmd void vkUnmapMemory(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008101 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008102 VkDeviceMemory memory) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008103 deviceObject := GetDevice(device)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008104 memoryObject := GetDeviceMemory(memory)
8105 assert(memoryObject.device == device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008106}
8107
8108cmd VkResult vkFlushMappedMemoryRanges(
8109 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008110 u32 memoryRangeCount
8111 const VkMappedMemoryRange* pMemoryRanges) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008112 deviceObject := GetDevice(device)
8113
Jesse Hall3fbc8562015-11-29 22:10:52 -08008114 memoryRanges := pMemoryRanges[0:memoryRangeCount]
8115 for i in (0 .. memoryRangeCount) {
8116 memoryRange := memoryRanges[i]
8117 memoryObject := GetDeviceMemory(memoryRange.memory)
8118 assert(memoryObject.device == device)
8119 assert((memoryRange.offset + memoryRange.size) <= memoryObject.allocationSize)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008120 }
8121
8122 return ?
8123}
8124
8125cmd VkResult vkInvalidateMappedMemoryRanges(
8126 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008127 u32 memoryRangeCount,
8128 const VkMappedMemoryRange* pMemoryRanges) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008129 deviceObject := GetDevice(device)
8130
Jesse Hall3fbc8562015-11-29 22:10:52 -08008131 memoryRanges := pMemoryRanges[0:memoryRangeCount]
8132 for i in (0 .. memoryRangeCount) {
8133 memoryRange := memoryRanges[i]
8134 memoryObject := GetDeviceMemory(memoryRange.memory)
8135 assert(memoryObject.device == device)
8136 assert((memoryRange.offset + memoryRange.size) <= memoryObject.allocationSize)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008137 }
8138
8139 return ?
8140}
8141
8142
8143// Memory management API functions
8144
Jesse Hall606a54e2015-11-19 22:17:28 -08008145cmd void vkGetDeviceMemoryCommitment(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008146 VkDevice device,
8147 VkDeviceMemory memory,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008148 VkDeviceSize* pCommittedMemoryInBytes) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008149 deviceObject := GetDevice(device)
8150
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008151 if memory != NULL_HANDLE {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008152 memoryObject := GetDeviceMemory(memory)
8153 assert(memoryObject.device == device)
8154 }
8155
8156 committedMemoryInBytes := ?
8157 pCommittedMemoryInBytes[0] = committedMemoryInBytes
Jesse Halld27f6aa2015-08-15 17:58:48 -07008158}
8159
Jesse Hall606a54e2015-11-19 22:17:28 -08008160cmd void vkGetBufferMemoryRequirements(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008161 VkDevice device,
8162 VkBuffer buffer,
8163 VkMemoryRequirements* pMemoryRequirements) {
8164 deviceObject := GetDevice(device)
8165 bufferObject := GetBuffer(buffer)
8166 assert(bufferObject.device == device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008167}
8168
8169cmd VkResult vkBindBufferMemory(
8170 VkDevice device,
8171 VkBuffer buffer,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008172 VkDeviceMemory memory,
8173 VkDeviceSize memoryOffset) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008174 deviceObject := GetDevice(device)
8175 bufferObject := GetBuffer(buffer)
8176 assert(bufferObject.device == device)
8177
8178 // Unbind buffer from previous memory object, if not VK_NULL_HANDLE.
Jesse Hall3fbc8562015-11-29 22:10:52 -08008179 if bufferObject.memory != NULL_HANDLE {
8180 memoryObject := GetDeviceMemory(bufferObject.memory)
8181 memoryObject.boundObjects[as!u64(buffer)] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008182 }
8183
8184 // Bind buffer to given memory object, if not VK_NULL_HANDLE.
Jesse Hall3fbc8562015-11-29 22:10:52 -08008185 if memory != NULL_HANDLE {
8186 memoryObject := GetDeviceMemory(memory)
8187 assert(memoryObject.device == device)
8188 memoryObject.boundObjects[as!u64(buffer)] = memoryOffset
Jesse Halld27f6aa2015-08-15 17:58:48 -07008189 }
Jesse Hall3fbc8562015-11-29 22:10:52 -08008190 bufferObject.memory = memory
8191 bufferObject.memoryOffset = memoryOffset
Jesse Halld27f6aa2015-08-15 17:58:48 -07008192
8193 return ?
8194}
8195
Jesse Hall606a54e2015-11-19 22:17:28 -08008196cmd void vkGetImageMemoryRequirements(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008197 VkDevice device,
8198 VkImage image,
8199 VkMemoryRequirements* pMemoryRequirements) {
8200 deviceObject := GetDevice(device)
8201 imageObject := GetImage(image)
8202 assert(imageObject.device == device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008203}
8204
8205cmd VkResult vkBindImageMemory(
8206 VkDevice device,
8207 VkImage image,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008208 VkDeviceMemory memory,
8209 VkDeviceSize memoryOffset) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008210 deviceObject := GetDevice(device)
8211 imageObject := GetImage(image)
8212 assert(imageObject.device == device)
8213
8214 // Unbind image from previous memory object, if not VK_NULL_HANDLE.
Jesse Hall3fbc8562015-11-29 22:10:52 -08008215 if imageObject.memory != NULL_HANDLE {
8216 memoryObject := GetDeviceMemory(imageObject.memory)
8217 memoryObject.boundObjects[as!u64(image)] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008218 }
8219
8220 // Bind image to given memory object, if not VK_NULL_HANDLE.
Jesse Hall3fbc8562015-11-29 22:10:52 -08008221 if memory != NULL_HANDLE {
8222 memoryObject := GetDeviceMemory(memory)
8223 assert(memoryObject.device == device)
8224 memoryObject.boundObjects[as!u64(image)] = memoryOffset
Jesse Halld27f6aa2015-08-15 17:58:48 -07008225 }
Jesse Hall3fbc8562015-11-29 22:10:52 -08008226 imageObject.memory = memory
8227 imageObject.memoryOffset = memoryOffset
Jesse Halld27f6aa2015-08-15 17:58:48 -07008228
8229 return ?
8230}
8231
Jesse Hall606a54e2015-11-19 22:17:28 -08008232cmd void vkGetImageSparseMemoryRequirements(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008233 VkDevice device,
8234 VkImage image,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008235 u32* pSparseMemoryRequirementCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008236 VkSparseImageMemoryRequirements* pSparseMemoryRequirements) {
8237 deviceObject := GetDevice(device)
8238 imageObject := GetImage(image)
8239 assert(imageObject.device == device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008240}
8241
Jesse Hall606a54e2015-11-19 22:17:28 -08008242cmd void vkGetPhysicalDeviceSparseImageFormatProperties(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008243 VkPhysicalDevice physicalDevice,
8244 VkFormat format,
8245 VkImageType type,
Jesse Hall091ed9e2015-11-30 00:55:29 -08008246 VkSampleCountFlagBits samples,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008247 VkImageUsageFlags usage,
8248 VkImageTiling tiling,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008249 u32* pPropertyCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008250 VkSparseImageFormatProperties* pProperties) {
8251 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008252}
8253
Jesse Halla6429252015-11-29 18:59:42 -08008254cmd VkResult vkQueueBindSparse(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008255 VkQueue queue,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008256 u32 bindInfoCount,
Jesse Halla6429252015-11-29 18:59:42 -08008257 const VkBindSparseInfo* pBindInfo,
8258 VkFence fence) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008259 queueObject := GetQueue(queue)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008260
8261 return ?
8262}
8263
8264
8265// Fence functions
8266
8267@threadSafety("system")
8268cmd VkResult vkCreateFence(
8269 VkDevice device,
8270 const VkFenceCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008271 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008272 VkFence* pFence) {
8273 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_FENCE_CREATE_INFO)
8274 deviceObject := GetDevice(device)
8275
8276 fence := ?
8277 pFence[0] = fence
8278 State.Fences[fence] = new!FenceObject(
Jesse Halld8bade02015-11-24 10:24:18 -08008279 device: device, signaled: (pCreateInfo.flags == as!VkFenceCreateFlags(VK_FENCE_CREATE_SIGNALED_BIT)))
Jesse Halld27f6aa2015-08-15 17:58:48 -07008280
8281 return ?
8282}
8283
8284@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008285cmd void vkDestroyFence(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008286 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008287 VkFence fence,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008288 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008289 deviceObject := GetDevice(device)
8290 fenceObject := GetFence(fence)
8291 assert(fenceObject.device == device)
8292
8293 State.Fences[fence] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008294}
8295
8296@threadSafety("system")
8297cmd VkResult vkResetFences(
8298 VkDevice device,
8299 u32 fenceCount,
8300 const VkFence* pFences) {
8301 deviceObject := GetDevice(device)
8302
8303 fences := pFences[0:fenceCount]
8304 for i in (0 .. fenceCount) {
8305 fence := fences[i]
8306 fenceObject := GetFence(fence)
8307 assert(fenceObject.device == device)
8308 fenceObject.signaled = false
8309 }
8310
8311 return ?
8312}
8313
8314@threadSafety("system")
8315cmd VkResult vkGetFenceStatus(
8316 VkDevice device,
8317 VkFence fence) {
8318 deviceObject := GetDevice(device)
8319 fenceObject := GetFence(fence)
8320 assert(fenceObject.device == device)
8321
8322 return ?
8323}
8324
8325@threadSafety("system")
8326cmd VkResult vkWaitForFences(
8327 VkDevice device,
8328 u32 fenceCount,
8329 const VkFence* pFences,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008330 VkBool32 waitAll,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008331 u64 timeout) { /// timeout in nanoseconds
8332 deviceObject := GetDevice(device)
8333
8334 fences := pFences[0:fenceCount]
8335 for i in (0 .. fenceCount) {
8336 fence := fences[i]
8337 fenceObject := GetFence(fence)
8338 assert(fenceObject.device == device)
8339 }
8340
8341 return ?
8342}
8343
8344
8345// Queue semaphore functions
8346
8347@threadSafety("system")
8348cmd VkResult vkCreateSemaphore(
8349 VkDevice device,
8350 const VkSemaphoreCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008351 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008352 VkSemaphore* pSemaphore) {
8353 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO)
8354 deviceObject := GetDevice(device)
8355
8356 semaphore := ?
8357 pSemaphore[0] = semaphore
8358 State.Semaphores[semaphore] = new!SemaphoreObject(device: device)
8359
8360 return ?
8361}
8362
8363@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008364cmd void vkDestroySemaphore(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008365 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008366 VkSemaphore semaphore,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008367 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008368 deviceObject := GetDevice(device)
8369 semaphoreObject := GetSemaphore(semaphore)
8370 assert(semaphoreObject.device == device)
8371
8372 State.Semaphores[semaphore] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008373}
8374
Jesse Halld27f6aa2015-08-15 17:58:48 -07008375
8376// Event functions
8377
8378@threadSafety("system")
8379cmd VkResult vkCreateEvent(
8380 VkDevice device,
8381 const VkEventCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008382 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008383 VkEvent* pEvent) {
8384 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_EVENT_CREATE_INFO)
8385 deviceObject := GetDevice(device)
8386
8387 event := ?
8388 pEvent[0] = event
8389 State.Events[event] = new!EventObject(device: device)
8390
8391 return ?
8392}
8393
8394@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008395cmd void vkDestroyEvent(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008396 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008397 VkEvent event,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008398 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008399 deviceObject := GetDevice(device)
8400 eventObject := GetEvent(event)
8401 assert(eventObject.device == device)
8402
8403 State.Events[event] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008404}
8405
8406@threadSafety("system")
8407cmd VkResult vkGetEventStatus(
8408 VkDevice device,
8409 VkEvent event) {
8410 deviceObject := GetDevice(device)
8411 eventObject := GetEvent(event)
8412 assert(eventObject.device == device)
8413
8414 return ?
8415}
8416
8417@threadSafety("system")
8418cmd VkResult vkSetEvent(
8419 VkDevice device,
8420 VkEvent event) {
8421 deviceObject := GetDevice(device)
8422 eventObject := GetEvent(event)
8423 assert(eventObject.device == device)
8424
8425 return ?
8426}
8427
8428@threadSafety("system")
8429cmd VkResult vkResetEvent(
8430 VkDevice device,
8431 VkEvent event) {
8432 deviceObject := GetDevice(device)
8433 eventObject := GetEvent(event)
8434 assert(eventObject.device == device)
8435
8436 return ?
8437}
8438
8439
8440// Query functions
8441
8442@threadSafety("system")
8443cmd VkResult vkCreateQueryPool(
8444 VkDevice device,
8445 const VkQueryPoolCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008446 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008447 VkQueryPool* pQueryPool) {
8448 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO)
8449 deviceObject := GetDevice(device)
8450
8451 queryPool := ?
8452 pQueryPool[0] = queryPool
8453 State.QueryPools[queryPool] = new!QueryPoolObject(device: device)
8454
8455 return ?
8456}
8457
8458@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008459cmd void vkDestroyQueryPool(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008460 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008461 VkQueryPool queryPool,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008462 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008463 deviceObject := GetDevice(device)
8464 queryPoolObject := GetQueryPool(queryPool)
8465 assert(queryPoolObject.device == device)
8466
8467 State.QueryPools[queryPool] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008468}
8469
8470@threadSafety("system")
8471cmd VkResult vkGetQueryPoolResults(
8472 VkDevice device,
8473 VkQueryPool queryPool,
Jesse Hallf9fa9a52016-01-08 16:08:51 -08008474 u32 firstQuery,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008475 u32 queryCount,
Jesse Halla9bb62b2015-11-21 19:31:56 -08008476 platform.size_t dataSize,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008477 void* pData,
Jesse Halla9bb62b2015-11-21 19:31:56 -08008478 VkDeviceSize stride,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008479 VkQueryResultFlags flags) {
8480 deviceObject := GetDevice(device)
8481 queryPoolObject := GetQueryPool(queryPool)
8482 assert(queryPoolObject.device == device)
8483
Jesse Halld27f6aa2015-08-15 17:58:48 -07008484 data := pData[0:dataSize]
8485
8486 return ?
8487}
8488
8489// Buffer functions
8490
8491@threadSafety("system")
8492cmd VkResult vkCreateBuffer(
8493 VkDevice device,
8494 const VkBufferCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008495 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008496 VkBuffer* pBuffer) {
8497 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO)
8498 deviceObject := GetDevice(device)
8499
8500 buffer := ?
8501 pBuffer[0] = buffer
8502 State.Buffers[buffer] = new!BufferObject(device: device)
8503
8504 return ?
8505}
8506
8507@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008508cmd void vkDestroyBuffer(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008509 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008510 VkBuffer buffer,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008511 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008512 deviceObject := GetDevice(device)
8513 bufferObject := GetBuffer(buffer)
8514 assert(bufferObject.device == device)
8515
Jesse Hall3fbc8562015-11-29 22:10:52 -08008516 assert(bufferObject.memory == 0)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008517 State.Buffers[buffer] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008518}
8519
8520
8521// Buffer view functions
8522
8523@threadSafety("system")
8524cmd VkResult vkCreateBufferView(
8525 VkDevice device,
8526 const VkBufferViewCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008527 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008528 VkBufferView* pView) {
8529 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO)
8530 deviceObject := GetDevice(device)
8531
8532 bufferObject := GetBuffer(pCreateInfo.buffer)
8533 assert(bufferObject.device == device)
8534
8535 view := ?
8536 pView[0] = view
8537 State.BufferViews[view] = new!BufferViewObject(device: device, buffer: pCreateInfo.buffer)
8538
8539 return ?
8540}
8541
8542@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008543cmd void vkDestroyBufferView(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008544 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008545 VkBufferView bufferView,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008546 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008547 deviceObject := GetDevice(device)
8548 bufferViewObject := GetBufferView(bufferView)
8549 assert(bufferViewObject.device == device)
8550
8551 State.BufferViews[bufferView] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008552}
8553
8554
8555// Image functions
8556
8557@threadSafety("system")
8558cmd VkResult vkCreateImage(
8559 VkDevice device,
8560 const VkImageCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008561 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008562 VkImage* pImage) {
8563 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO)
8564 deviceObject := GetDevice(device)
8565
8566 image := ?
8567 pImage[0] = image
8568 State.Images[image] = new!ImageObject(device: device)
8569
8570 return ?
8571}
8572
8573@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008574cmd void vkDestroyImage(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008575 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008576 VkImage image,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008577 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008578 deviceObject := GetDevice(device)
8579 imageObject := GetImage(image)
8580 assert(imageObject.device == device)
8581
Jesse Hall3fbc8562015-11-29 22:10:52 -08008582 assert(imageObject.memory == 0)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008583 State.Images[image] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008584}
8585
Jesse Hall606a54e2015-11-19 22:17:28 -08008586cmd void vkGetImageSubresourceLayout(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008587 VkDevice device,
8588 VkImage image,
8589 const VkImageSubresource* pSubresource,
8590 VkSubresourceLayout* pLayout) {
8591 deviceObject := GetDevice(device)
8592 imageObject := GetImage(image)
8593 assert(imageObject.device == device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008594}
8595
8596
8597// Image view functions
8598
8599@threadSafety("system")
8600cmd VkResult vkCreateImageView(
8601 VkDevice device,
8602 const VkImageViewCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008603 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008604 VkImageView* pView) {
8605 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO)
8606 deviceObject := GetDevice(device)
8607
8608 imageObject := GetImage(pCreateInfo.image)
8609 assert(imageObject.device == device)
8610
8611 view := ?
8612 pView[0] = view
8613 State.ImageViews[view] = new!ImageViewObject(device: device, image: pCreateInfo.image)
8614
8615 return ?
8616}
8617
8618@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008619cmd void vkDestroyImageView(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008620 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008621 VkImageView imageView,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008622 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008623 deviceObject := GetDevice(device)
8624 imageViewObject := GetImageView(imageView)
8625 assert(imageViewObject.device == device)
8626
8627 State.ImageViews[imageView] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008628}
8629
8630
8631// Shader functions
8632
8633cmd VkResult vkCreateShaderModule(
8634 VkDevice device,
8635 const VkShaderModuleCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008636 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008637 VkShaderModule* pShaderModule) {
8638 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO)
8639 deviceObject := GetDevice(device)
8640
8641 shaderModule := ?
8642 pShaderModule[0] = shaderModule
8643 State.ShaderModules[shaderModule] = new!ShaderModuleObject(device: device)
8644
8645 return ?
8646}
8647
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008648cmd void vkDestroyShaderModule(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008649 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008650 VkShaderModule shaderModule,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008651 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008652 deviceObject := GetDevice(device)
8653 shaderModuleObject := GetShaderModule(shaderModule)
8654 assert(shaderModuleObject.device == device)
8655
8656 State.ShaderModules[shaderModule] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008657}
8658
Jesse Halld27f6aa2015-08-15 17:58:48 -07008659
8660// Pipeline functions
8661
8662cmd VkResult vkCreatePipelineCache(
8663 VkDevice device,
8664 const VkPipelineCacheCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008665 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008666 VkPipelineCache* pPipelineCache) {
8667 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO)
8668 deviceObject := GetDevice(device)
8669
8670 pipelineCache := ?
8671 pPipelineCache[0] = pipelineCache
8672 State.PipelineCaches[pipelineCache] = new!PipelineCacheObject(device: device)
8673
8674 return ?
8675}
8676
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008677cmd void vkDestroyPipelineCache(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008678 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008679 VkPipelineCache pipelineCache,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008680 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008681 deviceObject := GetDevice(device)
8682 pipelineCacheObject := GetPipelineCache(pipelineCache)
8683 assert(pipelineCacheObject.device == device)
8684
8685 State.PipelineCaches[pipelineCache] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008686}
8687
Jesse Halld27f6aa2015-08-15 17:58:48 -07008688cmd VkResult vkGetPipelineCacheData(
8689 VkDevice device,
8690 VkPipelineCache pipelineCache,
Jesse Halla9bb62b2015-11-21 19:31:56 -08008691 platform.size_t* pDataSize,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008692 void* pData) {
8693 deviceObject := GetDevice(device)
8694 pipelineCacheObject := GetPipelineCache(pipelineCache)
8695 assert(pipelineCacheObject.device == device)
8696
8697 return ?
8698}
8699
8700cmd VkResult vkMergePipelineCaches(
8701 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008702 VkPipelineCache dstCache,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008703 u32 srcCacheCount,
8704 const VkPipelineCache* pSrcCaches) {
8705 deviceObject := GetDevice(device)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008706 dstCacheObject := GetPipelineCache(dstCache)
8707 assert(dstCacheObject.device == device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008708
8709 srcCaches := pSrcCaches[0:srcCacheCount]
8710 for i in (0 .. srcCacheCount) {
8711 srcCache := srcCaches[i]
8712 srcCacheObject := GetPipelineCache(srcCache)
8713 assert(srcCacheObject.device == device)
8714 }
8715
8716 return ?
8717}
8718
8719cmd VkResult vkCreateGraphicsPipelines(
8720 VkDevice device,
8721 VkPipelineCache pipelineCache,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008722 u32 createInfoCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008723 const VkGraphicsPipelineCreateInfo* pCreateInfos,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008724 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008725 VkPipeline* pPipelines) {
8726 deviceObject := GetDevice(device)
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008727 if pipelineCache != NULL_HANDLE {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008728 pipelineCacheObject := GetPipelineCache(pipelineCache)
8729 assert(pipelineCacheObject.device == device)
8730 }
8731
Jesse Hall03b6fe12015-11-24 12:44:21 -08008732 createInfos := pCreateInfos[0:createInfoCount]
8733 pipelines := pPipelines[0:createInfoCount]
8734 for i in (0 .. createInfoCount) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008735 pipeline := ?
8736 pipelines[i] = pipeline
8737 State.Pipelines[pipeline] = new!PipelineObject(device: device)
8738 }
8739
8740 return ?
8741}
8742
8743cmd VkResult vkCreateComputePipelines(
8744 VkDevice device,
8745 VkPipelineCache pipelineCache,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008746 u32 createInfoCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008747 const VkComputePipelineCreateInfo* pCreateInfos,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008748 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008749 VkPipeline* pPipelines) {
8750 deviceObject := GetDevice(device)
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008751 if pipelineCache != NULL_HANDLE {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008752 pipelineCacheObject := GetPipelineCache(pipelineCache)
8753 assert(pipelineCacheObject.device == device)
8754 }
8755
Jesse Hall03b6fe12015-11-24 12:44:21 -08008756 createInfos := pCreateInfos[0:createInfoCount]
8757 pipelines := pPipelines[0:createInfoCount]
8758 for i in (0 .. createInfoCount) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008759 pipeline := ?
8760 pipelines[i] = pipeline
8761 State.Pipelines[pipeline] = new!PipelineObject(device: device)
8762 }
8763
8764 return ?
8765}
8766
8767@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008768cmd void vkDestroyPipeline(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008769 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008770 VkPipeline pipeline,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008771 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008772 deviceObject := GetDevice(device)
8773 pipelineObjects := GetPipeline(pipeline)
8774 assert(pipelineObjects.device == device)
8775
8776 State.Pipelines[pipeline] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008777}
8778
8779
8780// Pipeline layout functions
8781
8782@threadSafety("system")
8783cmd VkResult vkCreatePipelineLayout(
8784 VkDevice device,
8785 const VkPipelineLayoutCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008786 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008787 VkPipelineLayout* pPipelineLayout) {
8788 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO)
8789 deviceObject := GetDevice(device)
8790
8791 pipelineLayout := ?
8792 pPipelineLayout[0] = pipelineLayout
8793 State.PipelineLayouts[pipelineLayout] = new!PipelineLayoutObject(device: device)
8794
8795 return ?
8796}
8797
8798@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008799cmd void vkDestroyPipelineLayout(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008800 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008801 VkPipelineLayout pipelineLayout,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008802 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008803 deviceObject := GetDevice(device)
8804 pipelineLayoutObjects := GetPipelineLayout(pipelineLayout)
8805 assert(pipelineLayoutObjects.device == device)
8806
8807 State.PipelineLayouts[pipelineLayout] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008808}
8809
8810
8811// Sampler functions
8812
8813@threadSafety("system")
8814cmd VkResult vkCreateSampler(
8815 VkDevice device,
8816 const VkSamplerCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008817 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008818 VkSampler* pSampler) {
8819 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO)
8820 deviceObject := GetDevice(device)
8821
8822 sampler := ?
8823 pSampler[0] = sampler
8824 State.Samplers[sampler] = new!SamplerObject(device: device)
8825
8826 return ?
8827}
8828
8829@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008830cmd void vkDestroySampler(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008831 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008832 VkSampler sampler,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008833 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008834 deviceObject := GetDevice(device)
8835 samplerObject := GetSampler(sampler)
8836 assert(samplerObject.device == device)
8837
8838 State.Samplers[sampler] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008839}
8840
8841
8842// Descriptor set functions
8843
8844@threadSafety("system")
8845cmd VkResult vkCreateDescriptorSetLayout(
8846 VkDevice device,
8847 const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008848 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008849 VkDescriptorSetLayout* pSetLayout) {
8850 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO)
8851 deviceObject := GetDevice(device)
8852
8853 setLayout := ?
8854 pSetLayout[0] = setLayout
8855 State.DescriptorSetLayouts[setLayout] = new!DescriptorSetLayoutObject(device: device)
8856
8857 return ?
8858}
8859
8860@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008861cmd void vkDestroyDescriptorSetLayout(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008862 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008863 VkDescriptorSetLayout descriptorSetLayout,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008864 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008865 deviceObject := GetDevice(device)
8866 descriptorSetLayoutObject := GetDescriptorSetLayout(descriptorSetLayout)
8867 assert(descriptorSetLayoutObject.device == device)
8868
8869 State.DescriptorSetLayouts[descriptorSetLayout] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008870}
8871
8872@threadSafety("system")
8873cmd VkResult vkCreateDescriptorPool(
8874 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008875 const VkDescriptorPoolCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008876 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008877 VkDescriptorPool* pDescriptorPool) {
8878 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO)
8879 deviceObject := GetDevice(device)
8880
8881 descriptorPool := ?
8882 pDescriptorPool[0] = descriptorPool
8883 State.DescriptorPools[descriptorPool] = new!DescriptorPoolObject(device: device)
8884
8885 return ?
8886}
8887
8888@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008889cmd void vkDestroyDescriptorPool(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008890 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008891 VkDescriptorPool descriptorPool,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008892 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008893 deviceObject := GetDevice(device)
8894 descriptorPoolObject := GetDescriptorPool(descriptorPool)
8895 assert(descriptorPoolObject.device == device)
8896
8897 State.DescriptorPools[descriptorPool] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008898}
8899
8900@threadSafety("app")
8901cmd VkResult vkResetDescriptorPool(
8902 VkDevice device,
Jesse Hallfbf97b02015-11-20 14:17:03 -08008903 VkDescriptorPool descriptorPool,
8904 VkDescriptorPoolResetFlags flags) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008905 deviceObject := GetDevice(device)
8906 descriptorPoolObject := GetDescriptorPool(descriptorPool)
8907 assert(descriptorPoolObject.device == device)
8908
8909 return ?
8910}
8911
8912@threadSafety("app")
Jesse Hall3fbc8562015-11-29 22:10:52 -08008913cmd VkResult vkAllocateDescriptorSets(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008914 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008915 const VkDescriptorSetAllocateInfo* pAllocateInfo,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008916 VkDescriptorSet* pDescriptorSets) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008917 deviceObject := GetDevice(device)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008918 allocInfo := pAllocateInfo[0]
Jesse Hallfbf97b02015-11-20 14:17:03 -08008919 descriptorPoolObject := GetDescriptorPool(allocInfo.descriptorPool)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008920
Jesse Hall03b6fe12015-11-24 12:44:21 -08008921 setLayouts := allocInfo.pSetLayouts[0:allocInfo.setCount]
8922 for i in (0 .. allocInfo.setCount) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008923 setLayout := setLayouts[i]
8924 setLayoutObject := GetDescriptorSetLayout(setLayout)
8925 assert(setLayoutObject.device == device)
8926 }
8927
Jesse Hall03b6fe12015-11-24 12:44:21 -08008928 descriptorSets := pDescriptorSets[0:allocInfo.setCount]
8929 for i in (0 .. allocInfo.setCount) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008930 descriptorSet := ?
8931 descriptorSets[i] = descriptorSet
8932 State.DescriptorSets[descriptorSet] = new!DescriptorSetObject(device: device)
8933 }
8934
8935 return ?
8936}
8937
Jesse Hallf09c6b12015-08-15 19:54:28 -07008938cmd VkResult vkFreeDescriptorSets(
8939 VkDevice device,
8940 VkDescriptorPool descriptorPool,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008941 u32 descriptorSetCount,
Jesse Hallf09c6b12015-08-15 19:54:28 -07008942 const VkDescriptorSet* pDescriptorSets) {
8943 deviceObject := GetDevice(device)
8944 descriptorPoolObject := GetDescriptorPool(descriptorPool)
8945
Jesse Hall03b6fe12015-11-24 12:44:21 -08008946 descriptorSets := pDescriptorSets[0:descriptorSetCount]
8947 for i in (0 .. descriptorSetCount) {
Jesse Hallf09c6b12015-08-15 19:54:28 -07008948 descriptorSet := descriptorSets[i]
8949 descriptorSetObject := GetDescriptorSet(descriptorSet)
8950 assert(descriptorSetObject.device == device)
8951 State.DescriptorSets[descriptorSet] = null
8952 }
8953
8954 return ?
8955}
8956
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008957cmd void vkUpdateDescriptorSets(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008958 VkDevice device,
Jesse Hallb00daad2015-11-29 19:46:20 -08008959 u32 descriptorWriteCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008960 const VkWriteDescriptorSet* pDescriptorWrites,
Jesse Hallb00daad2015-11-29 19:46:20 -08008961 u32 descriptorCopyCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008962 const VkCopyDescriptorSet* pDescriptorCopies) {
8963 deviceObject := GetDevice(device)
8964
Jesse Hallb00daad2015-11-29 19:46:20 -08008965 descriptorWrites := pDescriptorWrites[0:descriptorWriteCount]
8966 for i in (0 .. descriptorWriteCount) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008967 descriptorWrite := descriptorWrites[i]
Jesse Hall3fbc8562015-11-29 22:10:52 -08008968 descriptorWriteObject := GetDescriptorSet(descriptorWrite.dstSet)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008969 assert(descriptorWriteObject.device == device)
8970 }
8971
Jesse Hallb00daad2015-11-29 19:46:20 -08008972 descriptorCopies := pDescriptorCopies[0:descriptorCopyCount]
8973 for i in (0 .. descriptorCopyCount) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008974 descriptorCopy := descriptorCopies[i]
Jesse Hall3fbc8562015-11-29 22:10:52 -08008975 descriptorCopyObject := GetDescriptorSet(descriptorCopy.dstSet)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008976 assert(descriptorCopyObject.device == device)
8977 }
Jesse Halld27f6aa2015-08-15 17:58:48 -07008978}
8979
8980
8981// Framebuffer functions
8982
8983@threadSafety("system")
8984cmd VkResult vkCreateFramebuffer(
8985 VkDevice device,
8986 const VkFramebufferCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008987 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008988 VkFramebuffer* pFramebuffer) {
8989 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO)
8990 deviceObject := GetDevice(device)
8991
8992 framebuffer := ?
8993 pFramebuffer[0] = framebuffer
8994 State.Framebuffers[framebuffer] = new!FramebufferObject(device: device)
8995
8996 return ?
8997}
8998
8999@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009000cmd void vkDestroyFramebuffer(
Jesse Halld27f6aa2015-08-15 17:58:48 -07009001 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08009002 VkFramebuffer framebuffer,
Jesse Hall3fbc8562015-11-29 22:10:52 -08009003 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07009004 deviceObject := GetDevice(device)
9005 framebufferObject := GetFramebuffer(framebuffer)
9006 assert(framebufferObject.device == device)
9007
9008 State.Framebuffers[framebuffer] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07009009}
9010
9011
9012// Renderpass functions
9013
9014@threadSafety("system")
9015cmd VkResult vkCreateRenderPass(
9016 VkDevice device,
9017 const VkRenderPassCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08009018 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009019 VkRenderPass* pRenderPass) {
9020 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO)
9021 deviceObject := GetDevice(device)
9022
9023 renderpass := ?
9024 pRenderPass[0] = renderpass
9025 State.RenderPasses[renderpass] = new!RenderPassObject(device: device)
9026
9027 return ?
9028}
9029
9030@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009031cmd void vkDestroyRenderPass(
Jesse Halld27f6aa2015-08-15 17:58:48 -07009032 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08009033 VkRenderPass renderPass,
Jesse Hall3fbc8562015-11-29 22:10:52 -08009034 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07009035 deviceObject := GetDevice(device)
9036 renderPassObject := GetRenderPass(renderPass)
9037 assert(renderPassObject.device == device)
9038
9039 State.RenderPasses[renderPass] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07009040}
9041
Jesse Hall606a54e2015-11-19 22:17:28 -08009042cmd void vkGetRenderAreaGranularity(
Jesse Halld27f6aa2015-08-15 17:58:48 -07009043 VkDevice device,
9044 VkRenderPass renderPass,
9045 VkExtent2D* pGranularity) {
9046 deviceObject := GetDevice(device)
9047 renderPassObject := GetRenderPass(renderPass)
9048
9049 granularity := ?
9050 pGranularity[0] = granularity
Jesse Halld27f6aa2015-08-15 17:58:48 -07009051}
9052
9053// Command pool functions
9054
9055cmd VkResult vkCreateCommandPool(
9056 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08009057 const VkCommandPoolCreateInfo* pCreateInfo,
9058 const VkAllocationCallbacks* pAllocator,
9059 VkCommandPool* pCommandPool) {
9060 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009061 deviceObject := GetDevice(device)
9062
Jesse Hall3fbc8562015-11-29 22:10:52 -08009063 commandPool := ?
9064 pCommandPool[0] = commandPool
9065 State.CommandPools[commandPool] = new!CommandPoolObject(device: device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009066
9067 return ?
9068}
9069
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009070cmd void vkDestroyCommandPool(
Jesse Halld27f6aa2015-08-15 17:58:48 -07009071 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08009072 VkCommandPool commandPool,
9073 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07009074 deviceObject := GetDevice(device)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009075 commandPoolObject := GetCommandPool(commandPool)
9076 assert(commandPoolObject.device == device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009077
Jesse Hall3fbc8562015-11-29 22:10:52 -08009078 State.CommandPools[commandPool] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07009079}
9080
9081cmd VkResult vkResetCommandPool(
9082 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08009083 VkCommandPool commandPool,
9084 VkCommandPoolResetFlags flags) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07009085 deviceObject := GetDevice(device)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009086 commandPoolObject := GetCommandPool(commandPool)
9087 assert(commandPoolObject.device == device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009088
9089 return ?
9090}
9091
9092// Command buffer functions
9093
Jesse Hall3fbc8562015-11-29 22:10:52 -08009094macro void bindCommandBuffer(VkCommandBuffer commandBuffer, any obj, VkDeviceMemory memory) {
9095 memoryObject := GetDeviceMemory(memory)
9096 memoryObject.boundCommandBuffers[commandBuffer] = commandBuffer
Jesse Halld27f6aa2015-08-15 17:58:48 -07009097
Jesse Hall3fbc8562015-11-29 22:10:52 -08009098 commandBufferObject := GetCommandBuffer(commandBuffer)
9099 commandBufferObject.boundObjects[as!u64(obj)] = memory
Jesse Halld27f6aa2015-08-15 17:58:48 -07009100}
9101
Jesse Hall3fbc8562015-11-29 22:10:52 -08009102macro void unbindCommandBuffer(VkCommandBuffer commandBuffer, any obj, VkDeviceMemory memory) {
9103 memoryObject := GetDeviceMemory(memory)
9104 memoryObject.boundCommandBuffers[commandBuffer] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07009105
Jesse Hall3fbc8562015-11-29 22:10:52 -08009106 commandBufferObject := GetCommandBuffer(commandBuffer)
9107 commandBufferObject.boundObjects[as!u64(obj)] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07009108}
9109
9110@threadSafety("system")
Jesse Hall3fbc8562015-11-29 22:10:52 -08009111cmd VkResult vkAllocateCommandBuffers(
Jesse Halld27f6aa2015-08-15 17:58:48 -07009112 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08009113 const VkCommandBufferAllocateInfo* pAllocateInfo,
9114 VkCommandBuffer* pCommandBuffers) {
Jesse Hallf4ab2b12015-11-30 16:04:55 -08009115 assert(pAllocateInfo[0].sType == VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009116
Jesse Hall3dd678a2016-01-08 21:52:01 -08009117 count := pAllocateInfo[0].commandBufferCount
Jesse Hall3fbc8562015-11-29 22:10:52 -08009118 commandBuffers := pCommandBuffers[0:count]
Jesse Hallfbf97b02015-11-20 14:17:03 -08009119 for i in (0 .. count) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009120 commandBuffer := ?
9121 commandBuffers[i] = commandBuffer
9122 State.CommandBuffers[commandBuffer] = new!CommandBufferObject(device: device)
Jesse Hallfbf97b02015-11-20 14:17:03 -08009123 }
Jesse Halld27f6aa2015-08-15 17:58:48 -07009124
9125 return ?
9126}
9127
9128@threadSafety("system")
Jesse Hallfbf97b02015-11-20 14:17:03 -08009129cmd void vkFreeCommandBuffers(
Jesse Halld27f6aa2015-08-15 17:58:48 -07009130 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08009131 VkCommandPool commandPool,
Jesse Hall03b6fe12015-11-24 12:44:21 -08009132 u32 commandBufferCount,
Jesse Hall3fbc8562015-11-29 22:10:52 -08009133 const VkCommandBuffer* pCommandBuffers) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07009134 deviceObject := GetDevice(device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009135
Jesse Hall3fbc8562015-11-29 22:10:52 -08009136 commandBuffers := pCommandBuffers[0:commandBufferCount]
Jesse Hall03b6fe12015-11-24 12:44:21 -08009137 for i in (0 .. commandBufferCount) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009138 commandBufferObject := GetCommandBuffer(commandBuffers[i])
9139 assert(commandBufferObject.device == device)
Jesse Hallfbf97b02015-11-20 14:17:03 -08009140 // TODO: iterate over boundObjects and clear memory bindings
Jesse Hall3fbc8562015-11-29 22:10:52 -08009141 State.CommandBuffers[commandBuffers[i]] = null
Jesse Hallfbf97b02015-11-20 14:17:03 -08009142 }
Jesse Halld27f6aa2015-08-15 17:58:48 -07009143}
9144
9145@threadSafety("app")
9146cmd VkResult vkBeginCommandBuffer(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009147 VkCommandBuffer commandBuffer,
9148 const VkCommandBufferBeginInfo* pBeginInfo) {
9149 assert(pBeginInfo.sType == VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO)
9150 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009151
9152 // TODO: iterate over boundObjects and clear memory bindings
9153
9154 return ?
9155}
9156
9157@threadSafety("app")
9158cmd VkResult vkEndCommandBuffer(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009159 VkCommandBuffer commandBuffer) {
9160 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009161
9162 return ?
9163}
9164
9165@threadSafety("app")
9166cmd VkResult vkResetCommandBuffer(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009167 VkCommandBuffer commandBuffer,
9168 VkCommandBufferResetFlags flags) {
9169 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009170
9171 // TODO: iterate over boundObjects and clear memory bindings
9172
9173 return ?
9174}
9175
9176
9177// Command buffer building functions
9178
9179@threadSafety("app")
9180cmd void vkCmdBindPipeline(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009181 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009182 VkPipelineBindPoint pipelineBindPoint,
9183 VkPipeline pipeline) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009184 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009185 pipelineObject := GetPipeline(pipeline)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009186 assert(commandBufferObject.device == pipelineObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009187
Jesse Halld8bade02015-11-24 10:24:18 -08009188 queue := switch (pipelineBindPoint) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07009189 case VK_PIPELINE_BIND_POINT_COMPUTE: VK_QUEUE_COMPUTE_BIT
9190 case VK_PIPELINE_BIND_POINT_GRAPHICS: VK_QUEUE_GRAPHICS_BIT
9191 }
Jesse Hall3fbc8562015-11-29 22:10:52 -08009192 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, queue)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009193}
9194
9195@threadSafety("app")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009196cmd void vkCmdSetViewport(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009197 VkCommandBuffer commandBuffer,
Jesse Hallf9fa9a52016-01-08 16:08:51 -08009198 u32 firstViewport,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009199 u32 viewportCount,
9200 const VkViewport* pViewports) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009201 commandBufferObject := GetCommandBuffer(commandBuffer)
9202 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009203}
9204
9205@threadSafety("app")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009206cmd void vkCmdSetScissor(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009207 VkCommandBuffer commandBuffer,
Jesse Hallf9fa9a52016-01-08 16:08:51 -08009208 u32 firstScissor,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009209 u32 scissorCount,
9210 const VkRect2D* pScissors) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009211 commandBufferObject := GetCommandBuffer(commandBuffer)
9212 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009213}
9214
9215@threadSafety("app")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009216cmd void vkCmdSetLineWidth(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009217 VkCommandBuffer commandBuffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009218 f32 lineWidth) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009219 commandBufferObject := GetCommandBuffer(commandBuffer)
9220 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009221}
9222
9223@threadSafety("app")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009224cmd void vkCmdSetDepthBias(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009225 VkCommandBuffer commandBuffer,
Jesse Halla9bb62b2015-11-21 19:31:56 -08009226 f32 depthBiasConstantFactor,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009227 f32 depthBiasClamp,
Jesse Halla9bb62b2015-11-21 19:31:56 -08009228 f32 depthBiasSlopeFactor) {
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}
Jesse Halld27f6aa2015-08-15 17:58:48 -07009232
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009233@threadSafety("app")
9234cmd void vkCmdSetBlendConstants(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009235 VkCommandBuffer commandBuffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009236 // TODO(jessehall): apic only supports 'const' on pointer types. Using
9237 // an annotation as a quick hack to pass this to the template without
9238 // having to modify the AST and semantic model.
Jesse Hallb00daad2015-11-29 19:46:20 -08009239 @readonly f32[4] blendConstants) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009240 commandBufferObject := GetCommandBuffer(commandBuffer)
9241 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009242}
9243
9244@threadSafety("app")
9245cmd void vkCmdSetDepthBounds(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009246 VkCommandBuffer commandBuffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009247 f32 minDepthBounds,
9248 f32 maxDepthBounds) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009249 commandBufferObject := GetCommandBuffer(commandBuffer)
9250 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009251}
9252
9253@threadSafety("app")
9254cmd void vkCmdSetStencilCompareMask(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009255 VkCommandBuffer commandBuffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009256 VkStencilFaceFlags faceMask,
Jesse Hall65ab5522015-11-30 00:07:16 -08009257 u32 compareMask) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009258 commandBufferObject := GetCommandBuffer(commandBuffer)
9259 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009260}
9261
9262@threadSafety("app")
9263cmd void vkCmdSetStencilWriteMask(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009264 VkCommandBuffer commandBuffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009265 VkStencilFaceFlags faceMask,
Jesse Hall65ab5522015-11-30 00:07:16 -08009266 u32 writeMask) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009267 commandBufferObject := GetCommandBuffer(commandBuffer)
9268 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009269}
9270
9271@threadSafety("app")
9272cmd void vkCmdSetStencilReference(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009273 VkCommandBuffer commandBuffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009274 VkStencilFaceFlags faceMask,
Jesse Hall65ab5522015-11-30 00:07:16 -08009275 u32 reference) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009276 commandBufferObject := GetCommandBuffer(commandBuffer)
9277 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009278}
9279
9280@threadSafety("app")
9281cmd void vkCmdBindDescriptorSets(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009282 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009283 VkPipelineBindPoint pipelineBindPoint,
9284 VkPipelineLayout layout,
9285 u32 firstSet,
Jesse Hall03b6fe12015-11-24 12:44:21 -08009286 u32 descriptorSetCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009287 const VkDescriptorSet* pDescriptorSets,
9288 u32 dynamicOffsetCount,
9289 const u32* pDynamicOffsets) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009290 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009291
Jesse Hall03b6fe12015-11-24 12:44:21 -08009292 descriptorSets := pDescriptorSets[0:descriptorSetCount]
9293 for i in (0 .. descriptorSetCount) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07009294 descriptorSet := descriptorSets[i]
9295 descriptorSetObject := GetDescriptorSet(descriptorSet)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009296 assert(commandBufferObject.device == descriptorSetObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009297 }
9298
9299 dynamicOffsets := pDynamicOffsets[0:dynamicOffsetCount]
9300 for i in (0 .. dynamicOffsetCount) {
9301 dynamicOffset := dynamicOffsets[i]
9302 }
9303
Jesse Halld8bade02015-11-24 10:24:18 -08009304 queue := switch (pipelineBindPoint) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07009305 case VK_PIPELINE_BIND_POINT_COMPUTE: VK_QUEUE_COMPUTE_BIT
9306 case VK_PIPELINE_BIND_POINT_GRAPHICS: VK_QUEUE_GRAPHICS_BIT
9307 }
Jesse Hall3fbc8562015-11-29 22:10:52 -08009308 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, queue)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009309}
9310
9311@threadSafety("app")
9312cmd void vkCmdBindIndexBuffer(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009313 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009314 VkBuffer buffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009315 VkDeviceSize offset,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009316 VkIndexType indexType) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009317 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009318 bufferObject := GetBuffer(buffer)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009319 assert(commandBufferObject.device == bufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009320
Jesse Hall3fbc8562015-11-29 22:10:52 -08009321 bindCommandBuffer(commandBuffer, buffer, bufferObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009322
Jesse Hall3fbc8562015-11-29 22:10:52 -08009323 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009324}
9325
9326@threadSafety("app")
9327cmd void vkCmdBindVertexBuffers(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009328 VkCommandBuffer commandBuffer,
Jesse Hallf9fa9a52016-01-08 16:08:51 -08009329 u32 firstBinding,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009330 u32 bindingCount,
9331 const VkBuffer* pBuffers,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009332 const VkDeviceSize* pOffsets) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009333 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009334
Jesse Hallf9fa9a52016-01-08 16:08:51 -08009335 // TODO: check if not [firstBinding:firstBinding+bindingCount]
Jesse Halld27f6aa2015-08-15 17:58:48 -07009336 buffers := pBuffers[0:bindingCount]
9337 offsets := pOffsets[0:bindingCount]
9338 for i in (0 .. bindingCount) {
9339 buffer := buffers[i]
9340 offset := offsets[i]
9341 bufferObject := GetBuffer(buffer)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009342 assert(commandBufferObject.device == bufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009343
Jesse Hall3fbc8562015-11-29 22:10:52 -08009344 bindCommandBuffer(commandBuffer, buffer, bufferObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009345 }
9346
Jesse Hall3fbc8562015-11-29 22:10:52 -08009347 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009348}
9349
9350@threadSafety("app")
9351cmd void vkCmdDraw(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009352 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009353 u32 vertexCount,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009354 u32 instanceCount,
9355 u32 firstVertex,
9356 u32 firstInstance) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009357 commandBufferObject := GetCommandBuffer(commandBuffer)
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 vkCmdDrawIndexed(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009364 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009365 u32 indexCount,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009366 u32 instanceCount,
9367 u32 firstIndex,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009368 s32 vertexOffset,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009369 u32 firstInstance) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009370 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009371
Jesse Hall3fbc8562015-11-29 22:10:52 -08009372 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009373}
9374
9375@threadSafety("app")
9376cmd void vkCmdDrawIndirect(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009377 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009378 VkBuffer buffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009379 VkDeviceSize offset,
Jesse Hall03b6fe12015-11-24 12:44:21 -08009380 u32 drawCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009381 u32 stride) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009382 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009383 bufferObject := GetBuffer(buffer)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009384 assert(commandBufferObject.device == bufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009385
Jesse Hall3fbc8562015-11-29 22:10:52 -08009386 bindCommandBuffer(commandBuffer, buffer, bufferObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009387
Jesse Hall3fbc8562015-11-29 22:10:52 -08009388 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009389}
9390
9391@threadSafety("app")
9392cmd void vkCmdDrawIndexedIndirect(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009393 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009394 VkBuffer buffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009395 VkDeviceSize offset,
Jesse Hall03b6fe12015-11-24 12:44:21 -08009396 u32 drawCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009397 u32 stride) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009398 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009399 bufferObject := GetBuffer(buffer)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009400 assert(commandBufferObject.device == bufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009401
Jesse Hall3fbc8562015-11-29 22:10:52 -08009402 bindCommandBuffer(commandBuffer, buffer, bufferObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009403
Jesse Hall3fbc8562015-11-29 22:10:52 -08009404 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009405}
9406
9407@threadSafety("app")
9408cmd void vkCmdDispatch(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009409 VkCommandBuffer commandBuffer,
Jesse Hallad250842017-03-10 18:35:38 -08009410 u32 groupCountX,
9411 u32 groupCountY,
9412 u32 groupCountZ) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009413 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009414
Jesse Hall3fbc8562015-11-29 22:10:52 -08009415 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_COMPUTE_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009416}
9417
9418@threadSafety("app")
9419cmd void vkCmdDispatchIndirect(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009420 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009421 VkBuffer buffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009422 VkDeviceSize offset) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009423 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009424 bufferObject := GetBuffer(buffer)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009425 assert(commandBufferObject.device == bufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009426
Jesse Hall3fbc8562015-11-29 22:10:52 -08009427 bindCommandBuffer(commandBuffer, buffer, bufferObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009428
Jesse Hall3fbc8562015-11-29 22:10:52 -08009429 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_COMPUTE_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009430}
9431
9432@threadSafety("app")
9433cmd void vkCmdCopyBuffer(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009434 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009435 VkBuffer srcBuffer,
Jesse Hall3fbc8562015-11-29 22:10:52 -08009436 VkBuffer dstBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009437 u32 regionCount,
9438 const VkBufferCopy* pRegions) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009439 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009440 srcBufferObject := GetBuffer(srcBuffer)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009441 dstBufferObject := GetBuffer(dstBuffer)
9442 assert(commandBufferObject.device == srcBufferObject.device)
9443 assert(commandBufferObject.device == dstBufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009444
9445 regions := pRegions[0:regionCount]
9446 for i in (0 .. regionCount) {
9447 region := regions[i]
9448 }
9449
Jesse Hall3fbc8562015-11-29 22:10:52 -08009450 bindCommandBuffer(commandBuffer, srcBuffer, srcBufferObject.memory)
9451 bindCommandBuffer(commandBuffer, dstBuffer, dstBufferObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009452
Jesse Hall65ab5522015-11-30 00:07:16 -08009453 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_TRANSFER_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009454}
9455
9456@threadSafety("app")
9457cmd void vkCmdCopyImage(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009458 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009459 VkImage srcImage,
9460 VkImageLayout srcImageLayout,
Jesse Hall3fbc8562015-11-29 22:10:52 -08009461 VkImage dstImage,
9462 VkImageLayout dstImageLayout,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009463 u32 regionCount,
9464 const VkImageCopy* pRegions) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009465 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009466 srcImageObject := GetImage(srcImage)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009467 dstImageObject := GetImage(dstImage)
9468 assert(commandBufferObject.device == srcImageObject.device)
9469 assert(commandBufferObject.device == dstImageObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009470
9471 regions := pRegions[0:regionCount]
9472 for i in (0 .. regionCount) {
9473 region := regions[i]
9474 }
9475
Jesse Hall3fbc8562015-11-29 22:10:52 -08009476 bindCommandBuffer(commandBuffer, srcImage, srcImageObject.memory)
9477 bindCommandBuffer(commandBuffer, dstImage, dstImageObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009478
Jesse Hall65ab5522015-11-30 00:07:16 -08009479 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_TRANSFER_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009480}
9481
9482@threadSafety("app")
9483cmd void vkCmdBlitImage(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009484 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009485 VkImage srcImage,
9486 VkImageLayout srcImageLayout,
Jesse Hall3fbc8562015-11-29 22:10:52 -08009487 VkImage dstImage,
9488 VkImageLayout dstImageLayout,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009489 u32 regionCount,
9490 const VkImageBlit* pRegions,
Jesse Hall23ff73f2015-11-29 14:36:39 -08009491 VkFilter filter) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009492 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009493 srcImageObject := GetImage(srcImage)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009494 dstImageObject := GetImage(dstImage)
9495 assert(commandBufferObject.device == srcImageObject.device)
9496 assert(commandBufferObject.device == dstImageObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009497
9498 regions := pRegions[0:regionCount]
9499 for i in (0 .. regionCount) {
9500 region := regions[i]
9501 }
9502
Jesse Hall3fbc8562015-11-29 22:10:52 -08009503 bindCommandBuffer(commandBuffer, srcImage, srcImageObject.memory)
9504 bindCommandBuffer(commandBuffer, dstImage, dstImageObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009505
Jesse Hall3fbc8562015-11-29 22:10:52 -08009506 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009507}
9508
9509@threadSafety("app")
9510cmd void vkCmdCopyBufferToImage(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009511 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009512 VkBuffer srcBuffer,
Jesse Hall3fbc8562015-11-29 22:10:52 -08009513 VkImage dstImage,
9514 VkImageLayout dstImageLayout,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009515 u32 regionCount,
9516 const VkBufferImageCopy* pRegions) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009517 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009518 srcBufferObject := GetBuffer(srcBuffer)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009519 dstImageObject := GetImage(dstImage)
9520 assert(commandBufferObject.device == srcBufferObject.device)
9521 assert(commandBufferObject.device == dstImageObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009522
9523 regions := pRegions[0:regionCount]
9524 for i in (0 .. regionCount) {
9525 region := regions[i]
9526 }
9527
Jesse Hall3fbc8562015-11-29 22:10:52 -08009528 bindCommandBuffer(commandBuffer, srcBuffer, srcBufferObject.memory)
9529 bindCommandBuffer(commandBuffer, dstImage, dstImageObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009530
Jesse Hall65ab5522015-11-30 00:07:16 -08009531 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_TRANSFER_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009532}
9533
9534@threadSafety("app")
9535cmd void vkCmdCopyImageToBuffer(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009536 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009537 VkImage srcImage,
9538 VkImageLayout srcImageLayout,
Jesse Hall3fbc8562015-11-29 22:10:52 -08009539 VkBuffer dstBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009540 u32 regionCount,
9541 const VkBufferImageCopy* pRegions) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009542 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009543 srcImageObject := GetImage(srcImage)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009544 dstBufferObject := GetBuffer(dstBuffer)
9545 assert(commandBufferObject.device == srcImageObject.device)
9546 assert(commandBufferObject.device == dstBufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009547
9548 regions := pRegions[0:regionCount]
9549 for i in (0 .. regionCount) {
9550 region := regions[i]
9551 }
9552
Jesse Hall3fbc8562015-11-29 22:10:52 -08009553 bindCommandBuffer(commandBuffer, srcImage, srcImageObject.memory)
9554 bindCommandBuffer(commandBuffer, dstBuffer, dstBufferObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009555
Jesse Hall65ab5522015-11-30 00:07:16 -08009556 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_TRANSFER_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009557}
9558
9559@threadSafety("app")
9560cmd void vkCmdUpdateBuffer(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009561 VkCommandBuffer commandBuffer,
9562 VkBuffer dstBuffer,
9563 VkDeviceSize dstOffset,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009564 VkDeviceSize dataSize,
Jesse Hall56d386a2016-07-26 15:20:40 -07009565 const void* pData) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009566 commandBufferObject := GetCommandBuffer(commandBuffer)
9567 dstBufferObject := GetBuffer(dstBuffer)
9568 assert(commandBufferObject.device == dstBufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009569
9570 data := pData[0:dataSize]
9571
Jesse Hall3fbc8562015-11-29 22:10:52 -08009572 bindCommandBuffer(commandBuffer, dstBuffer, dstBufferObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009573
Jesse Hall65ab5522015-11-30 00:07:16 -08009574 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_TRANSFER_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009575}
9576
9577@threadSafety("app")
9578cmd void vkCmdFillBuffer(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009579 VkCommandBuffer commandBuffer,
9580 VkBuffer dstBuffer,
9581 VkDeviceSize dstOffset,
Jesse Hallb00daad2015-11-29 19:46:20 -08009582 VkDeviceSize size,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009583 u32 data) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009584 commandBufferObject := GetCommandBuffer(commandBuffer)
9585 dstBufferObject := GetBuffer(dstBuffer)
9586 assert(commandBufferObject.device == dstBufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009587
Jesse Hall65ab5522015-11-30 00:07:16 -08009588 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_TRANSFER_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009589}
9590
9591@threadSafety("app")
9592cmd void vkCmdClearColorImage(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009593 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009594 VkImage image,
9595 VkImageLayout imageLayout,
9596 const VkClearColorValue* pColor,
9597 u32 rangeCount,
9598 const VkImageSubresourceRange* pRanges) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009599 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009600 imageObject := GetImage(image)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009601 assert(commandBufferObject.device == imageObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009602
9603 ranges := pRanges[0:rangeCount]
9604 for i in (0 .. rangeCount) {
9605 range := ranges[i]
9606 }
9607
Jesse Hall3fbc8562015-11-29 22:10:52 -08009608 bindCommandBuffer(commandBuffer, image, imageObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009609
Jesse Hall3fbc8562015-11-29 22:10:52 -08009610 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009611}
9612
9613@threadSafety("app")
9614cmd void vkCmdClearDepthStencilImage(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009615 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009616 VkImage image,
9617 VkImageLayout imageLayout,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009618 const VkClearDepthStencilValue* pDepthStencil,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009619 u32 rangeCount,
9620 const VkImageSubresourceRange* pRanges) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009621 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009622 imageObject := GetImage(image)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009623 assert(commandBufferObject.device == imageObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009624
9625 ranges := pRanges[0:rangeCount]
9626 for i in (0 .. rangeCount) {
9627 range := ranges[i]
9628 }
9629
Jesse Hall3fbc8562015-11-29 22:10:52 -08009630 bindCommandBuffer(commandBuffer, image, imageObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009631
Jesse Hall3fbc8562015-11-29 22:10:52 -08009632 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009633}
9634
9635@threadSafety("app")
Jesse Hallae38f732015-11-19 21:32:50 -08009636cmd void vkCmdClearAttachments(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009637 VkCommandBuffer commandBuffer,
Jesse Hallae38f732015-11-19 21:32:50 -08009638 u32 attachmentCount,
9639 const VkClearAttachment* pAttachments,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009640 u32 rectCount,
Jesse Halla15a4bf2015-11-19 22:48:02 -08009641 const VkClearRect* pRects) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009642 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009643
9644 rects := pRects[0:rectCount]
9645 for i in (0 .. rectCount) {
9646 rect := rects[i]
9647 }
9648
Jesse Hall3fbc8562015-11-29 22:10:52 -08009649 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009650}
9651
9652@threadSafety("app")
9653cmd void vkCmdResolveImage(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009654 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009655 VkImage srcImage,
9656 VkImageLayout srcImageLayout,
Jesse Hall3fbc8562015-11-29 22:10:52 -08009657 VkImage dstImage,
9658 VkImageLayout dstImageLayout,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009659 u32 regionCount,
9660 const VkImageResolve* pRegions) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009661 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009662 srcImageObject := GetImage(srcImage)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009663 dstImageObject := GetImage(dstImage)
9664 assert(commandBufferObject.device == srcImageObject.device)
9665 assert(commandBufferObject.device == dstImageObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009666
9667 regions := pRegions[0:regionCount]
9668 for i in (0 .. regionCount) {
9669 region := regions[i]
9670 }
9671
Jesse Hall3fbc8562015-11-29 22:10:52 -08009672 bindCommandBuffer(commandBuffer, srcImage, srcImageObject.memory)
9673 bindCommandBuffer(commandBuffer, dstImage, dstImageObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009674
Jesse Hall3fbc8562015-11-29 22:10:52 -08009675 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009676}
9677
9678@threadSafety("app")
9679cmd void vkCmdSetEvent(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009680 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009681 VkEvent event,
9682 VkPipelineStageFlags stageMask) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009683 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009684 eventObject := GetEvent(event)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009685 assert(commandBufferObject.device == eventObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009686}
9687
9688@threadSafety("app")
9689cmd void vkCmdResetEvent(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009690 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009691 VkEvent event,
9692 VkPipelineStageFlags stageMask) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009693 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009694 eventObject := GetEvent(event)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009695 assert(commandBufferObject.device == eventObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009696}
9697
9698@threadSafety("app")
9699cmd void vkCmdWaitEvents(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009700 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009701 u32 eventCount,
9702 const VkEvent* pEvents,
9703 VkPipelineStageFlags srcStageMask,
Jesse Hall3fbc8562015-11-29 22:10:52 -08009704 VkPipelineStageFlags dstStageMask,
9705 u32 memoryBarrierCount,
Jesse Hall3dd678a2016-01-08 21:52:01 -08009706 const VkMemoryBarrier* pMemoryBarriers,
9707 u32 bufferMemoryBarrierCount,
9708 const VkBufferMemoryBarrier* pBufferMemoryBarriers,
9709 u32 imageMemoryBarrierCount,
9710 const VkImageMemoryBarrier* pImageMemoryBarriers) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009711 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009712
9713 events := pEvents[0:eventCount]
9714 for i in (0 .. eventCount) {
9715 event := events[i]
9716 eventObject := GetEvent(event)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009717 assert(commandBufferObject.device == eventObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009718 }
9719
Jesse Hall3dd678a2016-01-08 21:52:01 -08009720 memoryBarriers := pMemoryBarriers[0:memoryBarrierCount]
Jesse Hall3fbc8562015-11-29 22:10:52 -08009721 for i in (0 .. memoryBarrierCount) {
Jesse Hall3dd678a2016-01-08 21:52:01 -08009722 memoryBarrier := memoryBarriers[i]
9723 }
9724 bufferMemoryBarriers := pBufferMemoryBarriers[0:bufferMemoryBarrierCount]
9725 for i in (0 .. bufferMemoryBarrierCount) {
9726 bufferMemoryBarrier := bufferMemoryBarriers[i]
9727 bufferObject := GetBuffer(bufferMemoryBarrier.buffer)
9728 assert(bufferObject.device == commandBufferObject.device)
9729 }
9730 imageMemoryBarriers := pImageMemoryBarriers[0:imageMemoryBarrierCount]
9731 for i in (0 .. imageMemoryBarrierCount) {
9732 imageMemoryBarrier := imageMemoryBarriers[i]
9733 imageObject := GetImage(imageMemoryBarrier.image)
9734 assert(imageObject.device == commandBufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009735 }
9736}
9737
9738@threadSafety("app")
9739cmd void vkCmdPipelineBarrier(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009740 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009741 VkPipelineStageFlags srcStageMask,
Jesse Hall3fbc8562015-11-29 22:10:52 -08009742 VkPipelineStageFlags dstStageMask,
Jesse Halldc6d36c2015-11-29 19:12:15 -08009743 VkDependencyFlags dependencyFlags,
Jesse Hall3fbc8562015-11-29 22:10:52 -08009744 u32 memoryBarrierCount,
Jesse Hall3dd678a2016-01-08 21:52:01 -08009745 const VkMemoryBarrier* pMemoryBarriers,
9746 u32 bufferMemoryBarrierCount,
9747 const VkBufferMemoryBarrier* pBufferMemoryBarriers,
9748 u32 imageMemoryBarrierCount,
9749 const VkImageMemoryBarrier* pImageMemoryBarriers) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009750 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009751
Jesse Hall3dd678a2016-01-08 21:52:01 -08009752 memoryBarriers := pMemoryBarriers[0:memoryBarrierCount]
Jesse Hall3fbc8562015-11-29 22:10:52 -08009753 for i in (0 .. memoryBarrierCount) {
Jesse Hall3dd678a2016-01-08 21:52:01 -08009754 memoryBarrier := memoryBarriers[i]
9755 }
9756 bufferMemoryBarriers := pBufferMemoryBarriers[0:bufferMemoryBarrierCount]
9757 for i in (0 .. bufferMemoryBarrierCount) {
9758 bufferMemoryBarrier := bufferMemoryBarriers[i]
9759 bufferObject := GetBuffer(bufferMemoryBarrier.buffer)
9760 assert(bufferObject.device == commandBufferObject.device)
9761 }
9762 imageMemoryBarriers := pImageMemoryBarriers[0:imageMemoryBarrierCount]
9763 for i in (0 .. imageMemoryBarrierCount) {
9764 imageMemoryBarrier := imageMemoryBarriers[i]
9765 imageObject := GetImage(imageMemoryBarrier.image)
9766 assert(imageObject.device == commandBufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009767 }
9768}
9769
9770@threadSafety("app")
9771cmd void vkCmdBeginQuery(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009772 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009773 VkQueryPool queryPool,
Jesse Hall3dd678a2016-01-08 21:52:01 -08009774 u32 query,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009775 VkQueryControlFlags flags) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009776 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009777 queryPoolObject := GetQueryPool(queryPool)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009778 assert(commandBufferObject.device == queryPoolObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009779}
9780
9781@threadSafety("app")
9782cmd void vkCmdEndQuery(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009783 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009784 VkQueryPool queryPool,
Jesse Hall3dd678a2016-01-08 21:52:01 -08009785 u32 query) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009786 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009787 queryPoolObject := GetQueryPool(queryPool)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009788 assert(commandBufferObject.device == queryPoolObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009789}
9790
9791@threadSafety("app")
9792cmd void vkCmdResetQueryPool(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009793 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009794 VkQueryPool queryPool,
Jesse Hallf9fa9a52016-01-08 16:08:51 -08009795 u32 firstQuery,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009796 u32 queryCount) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009797 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009798 queryPoolObject := GetQueryPool(queryPool)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009799 assert(commandBufferObject.device == queryPoolObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009800}
9801
9802@threadSafety("app")
9803cmd void vkCmdWriteTimestamp(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009804 VkCommandBuffer commandBuffer,
Jesse Hall6f39a6d2015-11-24 11:08:36 -08009805 VkPipelineStageFlagBits pipelineStage,
Jesse Halla3a7a1d2015-11-24 11:37:23 -08009806 VkQueryPool queryPool,
Jesse Hall3dd678a2016-01-08 21:52:01 -08009807 u32 query) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009808 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halla3a7a1d2015-11-24 11:37:23 -08009809 queryPoolObject := GetQueryPool(queryPool)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009810 assert(commandBufferObject.device == queryPoolObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009811}
9812
9813@threadSafety("app")
9814cmd void vkCmdCopyQueryPoolResults(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009815 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009816 VkQueryPool queryPool,
Jesse Hallf9fa9a52016-01-08 16:08:51 -08009817 u32 firstQuery,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009818 u32 queryCount,
Jesse Hall3fbc8562015-11-29 22:10:52 -08009819 VkBuffer dstBuffer,
9820 VkDeviceSize dstOffset,
Jesse Halla9bb62b2015-11-21 19:31:56 -08009821 VkDeviceSize stride,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009822 VkQueryResultFlags flags) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009823 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009824 queryPoolObject := GetQueryPool(queryPool)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009825 dstBufferObject := GetBuffer(dstBuffer)
9826 assert(commandBufferObject.device == queryPoolObject.device)
9827 assert(commandBufferObject.device == dstBufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009828}
9829
9830cmd void vkCmdPushConstants(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009831 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009832 VkPipelineLayout layout,
9833 VkShaderStageFlags stageFlags,
Jesse Hall03b6fe12015-11-24 12:44:21 -08009834 u32 offset,
9835 u32 size,
Jesse Hallf4ab2b12015-11-30 16:04:55 -08009836 const void* pValues) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009837 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009838 layoutObject := GetPipelineLayout(layout)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009839 assert(commandBufferObject.device == layoutObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009840}
9841
9842@threadSafety("app")
9843cmd void vkCmdBeginRenderPass(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009844 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009845 const VkRenderPassBeginInfo* pRenderPassBegin,
Jesse Hall65ab5522015-11-30 00:07:16 -08009846 VkSubpassContents contents) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009847 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009848 renderPassObject := GetRenderPass(pRenderPassBegin.renderPass)
9849 framebufferObject := GetFramebuffer(pRenderPassBegin.framebuffer)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009850 assert(commandBufferObject.device == renderPassObject.device)
9851 assert(commandBufferObject.device == framebufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009852
Jesse Hall3fbc8562015-11-29 22:10:52 -08009853 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009854}
9855
9856cmd void vkCmdNextSubpass(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009857 VkCommandBuffer commandBuffer,
Jesse Hall65ab5522015-11-30 00:07:16 -08009858 VkSubpassContents contents) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009859 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009860}
9861
9862@threadSafety("app")
9863cmd void vkCmdEndRenderPass(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009864 VkCommandBuffer commandBuffer) {
9865 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009866
Jesse Hall3fbc8562015-11-29 22:10:52 -08009867 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009868}
9869
9870cmd void vkCmdExecuteCommands(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009871 VkCommandBuffer commandBuffer,
Jesse Hall3dd678a2016-01-08 21:52:01 -08009872 u32 commandBufferCount,
Jesse Hall3fbc8562015-11-29 22:10:52 -08009873 const VkCommandBuffer* pCommandBuffers) {
9874 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009875
Jesse Hall3dd678a2016-01-08 21:52:01 -08009876 commandBuffers := pCommandBuffers[0:commandBufferCount]
9877 for i in (0 .. commandBufferCount) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009878 secondaryCommandBuffer := commandBuffers[i]
9879 secondaryCommandBufferObject := GetCommandBuffer(secondaryCommandBuffer)
9880 assert(commandBufferObject.device == secondaryCommandBufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009881 }
9882}
9883
Ian Elliott28bd2c32017-10-13 09:21:12 -06009884//@vulkan1_1 functions
Daniel Koch09f7bf92017-10-05 00:26:58 -04009885
Ian Elliott28bd2c32017-10-13 09:21:12 -06009886@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009887cmd VkResult vkEnumerateInstanceVersion(
9888 u32* pApiVersion) {
9889 return ?
9890}
9891
Ian Elliott28bd2c32017-10-13 09:21:12 -06009892@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009893cmd VkResult vkBindBufferMemory2(
9894 VkDevice device,
9895 u32 bindInfoCount,
9896 const VkBindBufferMemoryInfo* pBindInfos) {
9897 return ?
9898}
9899
Ian Elliott28bd2c32017-10-13 09:21:12 -06009900@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009901cmd VkResult vkBindImageMemory2(
9902 VkDevice device,
9903 u32 bindInfoCount,
9904 const VkBindImageMemoryInfo* pBindInfos) {
9905 return ?
9906}
9907
Ian Elliott28bd2c32017-10-13 09:21:12 -06009908@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009909cmd void vkGetDeviceGroupPeerMemoryFeatures(
9910 VkDevice device,
9911 u32 heapIndex,
9912 u32 localDeviceIndex,
9913 u32 remoteDeviceIndex,
9914 VkPeerMemoryFeatureFlags* pPeerMemoryFeatures) {
9915}
9916
Ian Elliott28bd2c32017-10-13 09:21:12 -06009917@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009918cmd void vkCmdSetDeviceMask(
9919 VkCommandBuffer commandBuffer,
9920 u32 deviceMask) {
9921}
9922
Ian Elliott28bd2c32017-10-13 09:21:12 -06009923@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009924cmd void vkCmdDispatchBase(
9925 VkCommandBuffer commandBuffer,
9926 u32 baseGroupX,
9927 u32 baseGroupY,
9928 u32 baseGroupZ,
9929 u32 groupCountX,
9930 u32 groupCountY,
9931 u32 groupCountZ) {
9932}
9933
9934@threadSafety("system")
Ian Elliott28bd2c32017-10-13 09:21:12 -06009935@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009936cmd VkResult vkEnumeratePhysicalDeviceGroups(
9937 VkInstance instance,
9938 u32* pPhysicalDeviceGroupCount,
9939 VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties) {
9940 instanceObject := GetInstance(instance)
9941
9942 physicalDeviceGroupCount := as!u32(?)
9943 pPhysicalDeviceGroupCount[0] = physicalDeviceGroupCount
9944 physicalDevices := pPhysicalDeviceGroupProperties[0:physicalDeviceGroupCount]
9945
9946 for i in (0 .. physicalDeviceGroupCount) {
9947 physicalDevice := ?
9948 physicalDevices[i] = physicalDevice
9949 if !(physicalDevice in State.PhysicalDevices) {
9950 State.PhysicalDevices[physicalDevice] = new!PhysicalDeviceObject(instance: instance)
9951 }
9952 }
9953
9954 return ?
9955}
9956
Ian Elliott28bd2c32017-10-13 09:21:12 -06009957@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009958cmd void vkGetImageMemoryRequirements2(
9959 VkDevice device,
9960 const VkImageMemoryRequirementsInfo2* pInfo,
9961 VkMemoryRequirements2* pMemoryRequirements) {
9962}
9963
Ian Elliott28bd2c32017-10-13 09:21:12 -06009964@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009965cmd void vkGetBufferMemoryRequirements2(
9966 VkDevice device,
9967 const VkBufferMemoryRequirementsInfo2* pInfo,
9968 VkMemoryRequirements2* pMemoryRequirements) {
9969}
9970
Ian Elliott28bd2c32017-10-13 09:21:12 -06009971@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009972cmd void vkGetImageSparseMemoryRequirements2(
9973 VkDevice device,
9974 const VkImageSparseMemoryRequirementsInfo2* pInfo,
9975 u32* pSparseMemoryRequirementCount,
9976 VkSparseImageMemoryRequirements2* pSparseMemoryRequirements) {
9977}
9978
Ian Elliott28bd2c32017-10-13 09:21:12 -06009979@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009980cmd void vkGetPhysicalDeviceFeatures2(
9981 VkPhysicalDevice physicalDevice,
9982 VkPhysicalDeviceFeatures2* pFeatures) {
9983}
9984
Ian Elliott28bd2c32017-10-13 09:21:12 -06009985@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009986cmd void vkGetPhysicalDeviceProperties2(
9987 VkPhysicalDevice physicalDevice,
9988 VkPhysicalDeviceProperties2* pProperties) {
9989}
9990
Ian Elliott28bd2c32017-10-13 09:21:12 -06009991@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009992cmd void vkGetPhysicalDeviceFormatProperties2(
9993 VkPhysicalDevice physicalDevice,
9994 VkFormat format,
9995 VkFormatProperties2* pFormatProperties) {
9996}
9997
Ian Elliott28bd2c32017-10-13 09:21:12 -06009998@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009999cmd VkResult vkGetPhysicalDeviceImageFormatProperties2(
10000 VkPhysicalDevice physicalDevice,
10001 const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo,
10002 VkImageFormatProperties2* pImageFormatProperties) {
10003 return ?
10004}
10005
Ian Elliott28bd2c32017-10-13 09:21:12 -060010006@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -040010007cmd void vkGetPhysicalDeviceQueueFamilyProperties2(
10008 VkPhysicalDevice physicalDevice,
10009 u32* pQueueFamilyPropertyCount,
10010 VkQueueFamilyProperties2* pQueueFamilyProperties) {
10011}
10012
Ian Elliott28bd2c32017-10-13 09:21:12 -060010013@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -040010014cmd void vkGetPhysicalDeviceMemoryProperties2(
10015 VkPhysicalDevice physicalDevice,
10016 VkPhysicalDeviceMemoryProperties2* pMemoryProperties) {
10017}
10018
Ian Elliott28bd2c32017-10-13 09:21:12 -060010019@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -040010020cmd void vkGetPhysicalDeviceSparseImageFormatProperties2(
10021 VkPhysicalDevice physicalDevice,
10022 const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo,
10023 u32* pPropertyCount,
10024 VkSparseImageFormatProperties2* pProperties) {
10025}
10026
Ian Elliott28bd2c32017-10-13 09:21:12 -060010027@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -040010028cmd void vkTrimCommandPool(
10029 VkDevice device,
10030 VkCommandPool commandPool,
10031 VkCommandPoolTrimFlags flags) {
10032}
10033
10034
Ian Elliott28bd2c32017-10-13 09:21:12 -060010035@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -040010036cmd void vkGetDeviceQueue2(
10037 VkDevice device,
10038 const VkDeviceQueueInfo2* pQueueInfo,
10039 VkQueue* pQueue) {
10040 deviceObject := GetDevice(device)
10041
10042 queue := ?
10043 pQueue[0] = queue
10044
10045 if !(queue in State.Queues) {
10046 State.Queues[queue] = new!QueueObject(device: device)
10047 }
10048}
10049
Ian Elliott28bd2c32017-10-13 09:21:12 -060010050@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -040010051cmd VkResult vkCreateSamplerYcbcrConversion(
10052 VkDevice device,
10053 const VkSamplerYcbcrConversionCreateInfo* pCreateInfo,
10054 const VkAllocationCallbacks* pAllocator,
10055 VkSamplerYcbcrConversion* pYcbcrConversion) {
10056 return ?
10057}
10058
Ian Elliott28bd2c32017-10-13 09:21:12 -060010059@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -040010060cmd void vkDestroySamplerYcbcrConversion(
10061 VkDevice device,
10062 VkSamplerYcbcrConversion ycbcrConversion,
10063 const VkAllocationCallbacks* pAllocator) {
10064}
10065
Ian Elliott28bd2c32017-10-13 09:21:12 -060010066@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -040010067cmd VkResult vkCreateDescriptorUpdateTemplate(
10068 VkDevice device,
10069 const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo,
10070 const VkAllocationCallbacks* pAllocator,
10071 VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate) {
10072 return ?
10073}
10074
Ian Elliott28bd2c32017-10-13 09:21:12 -060010075@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -040010076cmd void vkDestroyDescriptorUpdateTemplate(
10077 VkDevice device,
10078 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
10079 const VkAllocationCallbacks* pAllocator) {
10080}
10081
Ian Elliott28bd2c32017-10-13 09:21:12 -060010082@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -040010083cmd void vkUpdateDescriptorSetWithTemplate(
10084 VkDevice device,
10085 VkDescriptorSet descriptorSet,
10086 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
10087 const void* pData) {
10088}
10089
Ian Elliott28bd2c32017-10-13 09:21:12 -060010090@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -040010091cmd void vkGetPhysicalDeviceExternalBufferProperties(
10092 VkPhysicalDevice physicalDevice,
10093 const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo,
10094 VkExternalBufferProperties* pExternalBufferProperties) {
10095}
10096
Ian Elliott28bd2c32017-10-13 09:21:12 -060010097@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -040010098cmd void vkGetPhysicalDeviceExternalFenceProperties(
10099 VkPhysicalDevice physicalDevice,
10100 const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo,
10101 VkExternalFenceProperties* pExternalFenceProperties) {
10102}
10103
Ian Elliott28bd2c32017-10-13 09:21:12 -060010104@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -040010105cmd void vkGetPhysicalDeviceExternalSemaphoreProperties(
10106 VkPhysicalDevice physicalDevice,
10107 const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo,
10108 VkExternalSemaphoreProperties* pExternalSemaphoreProperties) {
10109}
10110
Ian Elliott28bd2c32017-10-13 09:21:12 -060010111@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -040010112cmd void vkGetDescriptorSetLayoutSupport(
10113 VkDevice device,
10114 const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
10115 VkDescriptorSetLayoutSupport* pSupport) {
10116}
10117
10118
Jesse Hallad250842017-03-10 18:35:38 -080010119@extension("VK_KHR_surface") // 1
Jesse Hall1356b0d2015-11-23 17:24:58 -080010120cmd void vkDestroySurfaceKHR(
10121 VkInstance instance,
Jesse Hall0e74f002015-11-30 11:37:59 -080010122 VkSurfaceKHR surface,
10123 const VkAllocationCallbacks* pAllocator) {
Jesse Hall1356b0d2015-11-23 17:24:58 -080010124 instanceObject := GetInstance(instance)
10125 surfaceObject := GetSurface(surface)
10126 assert(surfaceObject.instance == instance)
Michael Lentine88594d72015-11-12 12:49:45 -080010127
Jesse Hall1356b0d2015-11-23 17:24:58 -080010128 State.Surfaces[surface] = null
Jesse Hall2818f932015-11-19 21:19:17 -080010129}
10130
Jesse Hallad250842017-03-10 18:35:38 -080010131@extension("VK_KHR_surface") // 1
Jesse Halla6429252015-11-29 18:59:42 -080010132cmd VkResult vkGetPhysicalDeviceSurfaceSupportKHR(
Jesse Hall1356b0d2015-11-23 17:24:58 -080010133 VkPhysicalDevice physicalDevice,
10134 u32 queueFamilyIndex,
Jesse Hall1356b0d2015-11-23 17:24:58 -080010135 VkSurfaceKHR surface,
Jesse Hallb00daad2015-11-29 19:46:20 -080010136 VkBool32* pSupported) {
10137 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
Michael Lentine88594d72015-11-12 12:49:45 -080010138
10139 return ?
10140}
10141
Jesse Hallad250842017-03-10 18:35:38 -080010142@extension("VK_KHR_surface") // 1
Jesse Hallb00daad2015-11-29 19:46:20 -080010143cmd VkResult vkGetPhysicalDeviceSurfaceCapabilitiesKHR(
10144 VkPhysicalDevice physicalDevice,
10145 VkSurfaceKHR surface,
10146 VkSurfaceCapabilitiesKHR* pSurfaceCapabilities) {
10147 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
10148
10149 surfaceCapabilities := ?
10150 pSurfaceCapabilities[0] = surfaceCapabilities
10151
10152 return ?
10153}
10154
Jesse Hallad250842017-03-10 18:35:38 -080010155@extension("VK_KHR_surface") // 1
Jesse Hallb00daad2015-11-29 19:46:20 -080010156cmd VkResult vkGetPhysicalDeviceSurfaceFormatsKHR(
10157 VkPhysicalDevice physicalDevice,
Jesse Hall1356b0d2015-11-23 17:24:58 -080010158 VkSurfaceKHR surface,
Jesse Hall03b6fe12015-11-24 12:44:21 -080010159 u32* pSurfaceFormatCount,
Jesse Hall1356b0d2015-11-23 17:24:58 -080010160 VkSurfaceFormatKHR* pSurfaceFormats) {
Jesse Hallb00daad2015-11-29 19:46:20 -080010161 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
Michael Lentine88594d72015-11-12 12:49:45 -080010162
10163 count := as!u32(?)
Jesse Hall03b6fe12015-11-24 12:44:21 -080010164 pSurfaceFormatCount[0] = count
Michael Lentine88594d72015-11-12 12:49:45 -080010165 surfaceFormats := pSurfaceFormats[0:count]
10166
10167 for i in (0 .. count) {
10168 surfaceFormat := ?
10169 surfaceFormats[i] = surfaceFormat
10170 }
10171
10172 return ?
10173}
10174
Jesse Hallad250842017-03-10 18:35:38 -080010175@extension("VK_KHR_surface") // 1
Jesse Hallb00daad2015-11-29 19:46:20 -080010176cmd VkResult vkGetPhysicalDeviceSurfacePresentModesKHR(
10177 VkPhysicalDevice physicalDevice,
Jesse Hall1356b0d2015-11-23 17:24:58 -080010178 VkSurfaceKHR surface,
Jesse Hall03b6fe12015-11-24 12:44:21 -080010179 u32* pPresentModeCount,
Jesse Hall1356b0d2015-11-23 17:24:58 -080010180 VkPresentModeKHR* pPresentModes) {
Jesse Hallb00daad2015-11-29 19:46:20 -080010181 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
Michael Lentine88594d72015-11-12 12:49:45 -080010182
10183 count := as!u32(?)
Jesse Hall03b6fe12015-11-24 12:44:21 -080010184 pPresentModeCount[0] = count
Michael Lentine88594d72015-11-12 12:49:45 -080010185 presentModes := pPresentModes[0:count]
10186
10187 for i in (0 .. count) {
10188 presentMode := ?
10189 presentModes[i] = presentMode
10190 }
10191
10192 return ?
10193}
10194
Jesse Hallad250842017-03-10 18:35:38 -080010195@extension("VK_KHR_swapchain") // 2
Michael Lentine88594d72015-11-12 12:49:45 -080010196cmd VkResult vkCreateSwapchainKHR(
10197 VkDevice device,
10198 const VkSwapchainCreateInfoKHR* pCreateInfo,
Jesse Hall0e74f002015-11-30 11:37:59 -080010199 const VkAllocationCallbacks* pAllocator,
Michael Lentine88594d72015-11-12 12:49:45 -080010200 VkSwapchainKHR* pSwapchain) {
Jesse Hall1356b0d2015-11-23 17:24:58 -080010201 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR)
Michael Lentine88594d72015-11-12 12:49:45 -080010202 deviceObject := GetDevice(device)
10203
10204 swapchain := ?
10205 pSwapchain[0] = swapchain
10206 State.Swapchains[swapchain] = new!SwapchainObject(device: device)
10207
10208 return ?
10209}
10210
Jesse Hallad250842017-03-10 18:35:38 -080010211@extension("VK_KHR_swapchain") // 2
Jesse Hall1356b0d2015-11-23 17:24:58 -080010212cmd void vkDestroySwapchainKHR(
Michael Lentine88594d72015-11-12 12:49:45 -080010213 VkDevice device,
Jesse Hall0e74f002015-11-30 11:37:59 -080010214 VkSwapchainKHR swapchain,
10215 const VkAllocationCallbacks* pAllocator) {
Michael Lentine88594d72015-11-12 12:49:45 -080010216 deviceObject := GetDevice(device)
10217 swapchainObject := GetSwapchain(swapchain)
10218 assert(swapchainObject.device == device)
10219
10220 State.Swapchains[swapchain] = null
Michael Lentine88594d72015-11-12 12:49:45 -080010221}
10222
Jesse Hallad250842017-03-10 18:35:38 -080010223@extension("VK_KHR_swapchain") // 2
Michael Lentine88594d72015-11-12 12:49:45 -080010224cmd VkResult vkGetSwapchainImagesKHR(
10225 VkDevice device,
10226 VkSwapchainKHR swapchain,
Jesse Hall03b6fe12015-11-24 12:44:21 -080010227 u32* pSwapchainImageCount,
Michael Lentine88594d72015-11-12 12:49:45 -080010228 VkImage* pSwapchainImages) {
10229 deviceObject := GetDevice(device)
10230
10231 count := as!u32(?)
Jesse Hall03b6fe12015-11-24 12:44:21 -080010232 pSwapchainImageCount[0] = count
Michael Lentine88594d72015-11-12 12:49:45 -080010233 swapchainImages := pSwapchainImages[0:count]
10234
10235 for i in (0 .. count) {
10236 swapchainImage := ?
10237 swapchainImages[i] = swapchainImage
Jesse Hall1356b0d2015-11-23 17:24:58 -080010238 State.Images[swapchainImage] = new!ImageObject(device: device)
Michael Lentine88594d72015-11-12 12:49:45 -080010239 }
10240
10241 return ?
10242}
10243
Jesse Hallad250842017-03-10 18:35:38 -080010244@extension("VK_KHR_swapchain") // 2
Michael Lentine88594d72015-11-12 12:49:45 -080010245cmd VkResult vkAcquireNextImageKHR(
10246 VkDevice device,
10247 VkSwapchainKHR swapchain,
10248 u64 timeout,
10249 VkSemaphore semaphore,
Jesse Hall1356b0d2015-11-23 17:24:58 -080010250 VkFence fence,
Michael Lentine88594d72015-11-12 12:49:45 -080010251 u32* pImageIndex) {
10252 deviceObject := GetDevice(device)
10253 swapchainObject := GetSwapchain(swapchain)
10254
10255 imageIndex := ?
10256 pImageIndex[0] = imageIndex
10257
10258 return ?
10259}
10260
Jesse Hallad250842017-03-10 18:35:38 -080010261@extension("VK_KHR_swapchain") // 2
Michael Lentine88594d72015-11-12 12:49:45 -080010262cmd VkResult vkQueuePresentKHR(
10263 VkQueue queue,
Jesse Hallf4ab2b12015-11-30 16:04:55 -080010264 const VkPresentInfoKHR* pPresentInfo) {
Michael Lentine88594d72015-11-12 12:49:45 -080010265 queueObject := GetQueue(queue)
10266
10267 presentInfo := ?
10268 pPresentInfo[0] = presentInfo
10269
10270 return ?
10271}
10272
Ian Elliott28bd2c32017-10-13 09:21:12 -060010273@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -040010274@extension("VK_KHR_swapchain") // 2
10275cmd VkResult vkGetDeviceGroupPresentCapabilitiesKHR(
10276 VkDevice device,
10277 VkDeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities) {
10278 return ?
10279}
10280
Ian Elliott28bd2c32017-10-13 09:21:12 -060010281@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -040010282@extension("VK_KHR_swapchain") // 2
10283cmd VkResult vkGetDeviceGroupSurfacePresentModesKHR(
10284 VkDevice device,
10285 VkSurfaceKHR surface,
10286 VkDeviceGroupPresentModeFlagsKHR* pModes) {
10287 return ?
10288}
10289
Ian Elliott28bd2c32017-10-13 09:21:12 -060010290@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -040010291@extension("VK_KHR_swapchain") // 2
10292cmd VkResult vkGetPhysicalDevicePresentRectanglesKHR(
10293 VkPhysicalDevice physicalDevice,
10294 VkSurfaceKHR surface,
10295 u32* pRectCount,
10296 VkRect2D* pRects) {
10297 return ?
10298}
10299
Ian Elliott28bd2c32017-10-13 09:21:12 -060010300@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -040010301@extension("VK_KHR_swapchain") // 2
10302cmd VkResult vkAcquireNextImage2KHR(
10303 VkDevice device,
10304 const VkAcquireNextImageInfoKHR* pAcquireInfo,
10305 u32* pImageIndex) {
10306 return ?
10307}
10308
Jesse Hallad250842017-03-10 18:35:38 -080010309@extension("VK_KHR_display") // 3
Jesse Hall1356b0d2015-11-23 17:24:58 -080010310cmd VkResult vkGetPhysicalDeviceDisplayPropertiesKHR(
10311 VkPhysicalDevice physicalDevice,
Jesse Hall03b6fe12015-11-24 12:44:21 -080010312 u32* pPropertyCount,
Jesse Hall1356b0d2015-11-23 17:24:58 -080010313 VkDisplayPropertiesKHR* pProperties) {
10314 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
10315 return ?
10316}
10317
Jesse Hallad250842017-03-10 18:35:38 -080010318@extension("VK_KHR_display") // 3
Jesse Halla6429252015-11-29 18:59:42 -080010319cmd VkResult vkGetPhysicalDeviceDisplayPlanePropertiesKHR(
10320 VkPhysicalDevice physicalDevice,
10321 u32* pPropertyCount,
10322 VkDisplayPlanePropertiesKHR* pProperties) {
10323 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
10324 return ?
10325}
10326
Jesse Hallad250842017-03-10 18:35:38 -080010327@extension("VK_KHR_display") // 3
Jesse Halla6429252015-11-29 18:59:42 -080010328cmd VkResult vkGetDisplayPlaneSupportedDisplaysKHR(
10329 VkPhysicalDevice physicalDevice,
Jesse Hall3dd678a2016-01-08 21:52:01 -080010330 u32 planeIndex,
Jesse Hallf4ab2b12015-11-30 16:04:55 -080010331 u32* pDisplayCount,
10332 VkDisplayKHR* pDisplays) {
Jesse Halla6429252015-11-29 18:59:42 -080010333 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
10334 return ?
10335}
10336
Jesse Hallad250842017-03-10 18:35:38 -080010337@extension("VK_KHR_display") // 3
Jesse Hall1356b0d2015-11-23 17:24:58 -080010338cmd VkResult vkGetDisplayModePropertiesKHR(
10339 VkPhysicalDevice physicalDevice,
10340 VkDisplayKHR display,
Jesse Hall03b6fe12015-11-24 12:44:21 -080010341 u32* pPropertyCount,
10342 VkDisplayModePropertiesKHR* pProperties) {
Jesse Hall1356b0d2015-11-23 17:24:58 -080010343 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
10344 return ?
10345}
10346
Jesse Hallad250842017-03-10 18:35:38 -080010347@extension("VK_KHR_display") // 3
Jesse Hall1356b0d2015-11-23 17:24:58 -080010348cmd VkResult vkCreateDisplayModeKHR(
10349 VkPhysicalDevice physicalDevice,
10350 VkDisplayKHR display,
10351 const VkDisplayModeCreateInfoKHR* pCreateInfo,
Jesse Hall0e74f002015-11-30 11:37:59 -080010352 const VkAllocationCallbacks* pAllocator,
Jesse Hall1356b0d2015-11-23 17:24:58 -080010353 VkDisplayModeKHR* pMode) {
10354 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
10355 return ?
10356}
10357
Jesse Hallad250842017-03-10 18:35:38 -080010358@extension("VK_KHR_display") // 3
Jesse Halla6429252015-11-29 18:59:42 -080010359cmd VkResult vkGetDisplayPlaneCapabilitiesKHR(
Jesse Hall1356b0d2015-11-23 17:24:58 -080010360 VkPhysicalDevice physicalDevice,
Jesse Hall9ba8bc82015-11-30 16:22:16 -080010361 VkDisplayModeKHR mode,
Jesse Hall1356b0d2015-11-23 17:24:58 -080010362 u32 planeIndex,
Jesse Halla6429252015-11-29 18:59:42 -080010363 VkDisplayPlaneCapabilitiesKHR* pCapabilities) {
Jesse Hall1356b0d2015-11-23 17:24:58 -080010364 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
10365 return ?
10366}
10367
Jesse Hallad250842017-03-10 18:35:38 -080010368@extension("VK_KHR_display") // 3
Jesse Halla6429252015-11-29 18:59:42 -080010369cmd VkResult vkCreateDisplayPlaneSurfaceKHR(
10370 VkInstance instance,
10371 const VkDisplaySurfaceCreateInfoKHR* pCreateInfo,
Jesse Hall0e74f002015-11-30 11:37:59 -080010372 const VkAllocationCallbacks* pAllocator,
Jesse Halla6429252015-11-29 18:59:42 -080010373 VkSurfaceKHR* pSurface) {
10374 return ?
10375}
10376
Jesse Hallad250842017-03-10 18:35:38 -080010377@extension("VK_KHR_display_swapchain") // 4
Jesse Hall9ba8bc82015-11-30 16:22:16 -080010378cmd VkResult vkCreateSharedSwapchainsKHR(
10379 VkDevice device,
10380 u32 swapchainCount,
10381 const VkSwapchainCreateInfoKHR* pCreateInfos,
10382 const VkAllocationCallbacks* pAllocator,
10383 VkSwapchainKHR* pSwapchains) {
10384 return ?
10385}
10386
Jesse Hallad250842017-03-10 18:35:38 -080010387@extension("VK_KHR_xlib_surface") // 5
Jesse Halla6429252015-11-29 18:59:42 -080010388cmd VkResult vkCreateXlibSurfaceKHR(
Jesse Hall1356b0d2015-11-23 17:24:58 -080010389 VkInstance instance,
Jesse Hallf9fa9a52016-01-08 16:08:51 -080010390 const VkXlibSurfaceCreateInfoKHR* pCreateInfo,
Jesse Hall0e74f002015-11-30 11:37:59 -080010391 const VkAllocationCallbacks* pAllocator,
Jesse Hall1356b0d2015-11-23 17:24:58 -080010392 VkSurfaceKHR* pSurface) {
10393 instanceObject := GetInstance(instance)
10394 return ?
10395}
10396
Jesse Hallad250842017-03-10 18:35:38 -080010397@extension("VK_KHR_xlib_surface") // 5
Jesse Halla6429252015-11-29 18:59:42 -080010398cmd VkBool32 vkGetPhysicalDeviceXlibPresentationSupportKHR(
10399 VkPhysicalDevice physicalDevice,
10400 u32 queueFamilyIndex,
10401 platform.Display* dpy,
Jesse Hall65ab5522015-11-30 00:07:16 -080010402 platform.VisualID visualID) {
Jesse Halla6429252015-11-29 18:59:42 -080010403 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
10404 return ?
10405}
10406
Jesse Hallad250842017-03-10 18:35:38 -080010407@extension("VK_KHR_xcb_surface") // 6
Jesse Hallf9fa9a52016-01-08 16:08:51 -080010408cmd VkResult vkCreateXcbSurfaceKHR(
Jesse Hall1356b0d2015-11-23 17:24:58 -080010409 VkInstance instance,
Jesse Hallf9fa9a52016-01-08 16:08:51 -080010410 const VkXcbSurfaceCreateInfoKHR* pCreateInfo,
Jesse Hall0e74f002015-11-30 11:37:59 -080010411 const VkAllocationCallbacks* pAllocator,
Jesse Hall1356b0d2015-11-23 17:24:58 -080010412 VkSurfaceKHR* pSurface) {
10413 instanceObject := GetInstance(instance)
10414 return ?
10415}
10416
Jesse Hallad250842017-03-10 18:35:38 -080010417@extension("VK_KHR_xcb_surface") // 6
Jesse Halla6429252015-11-29 18:59:42 -080010418cmd VkBool32 vkGetPhysicalDeviceXcbPresentationSupportKHR(
10419 VkPhysicalDevice physicalDevice,
10420 u32 queueFamilyIndex,
10421 platform.xcb_connection_t* connection,
10422 platform.xcb_visualid_t visual_id) {
10423 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
10424 return ?
10425}
10426
Jesse Hallad250842017-03-10 18:35:38 -080010427@extension("VK_KHR_wayland_surface") // 7
Jesse Hall1356b0d2015-11-23 17:24:58 -080010428cmd VkResult vkCreateWaylandSurfaceKHR(
10429 VkInstance instance,
Jesse Hallf9fa9a52016-01-08 16:08:51 -080010430 const VkWaylandSurfaceCreateInfoKHR* 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_wayland_surface") // 7
Jesse Halla6429252015-11-29 18:59:42 -080010438cmd VkBool32 vkGetPhysicalDeviceWaylandPresentationSupportKHR(
10439 VkPhysicalDevice physicalDevice,
10440 u32 queueFamilyIndex,
10441 platform.wl_display* display) {
10442 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
10443 return ?
10444}
10445
Jesse Hallad250842017-03-10 18:35:38 -080010446@extension("VK_KHR_android_surface") // 9
Jesse Hall1356b0d2015-11-23 17:24:58 -080010447cmd VkResult vkCreateAndroidSurfaceKHR(
10448 VkInstance instance,
Jesse Hallf9fa9a52016-01-08 16:08:51 -080010449 const VkAndroidSurfaceCreateInfoKHR* pCreateInfo,
Jesse Hall0e74f002015-11-30 11:37:59 -080010450 const VkAllocationCallbacks* pAllocator,
Jesse Hall1356b0d2015-11-23 17:24:58 -080010451 VkSurfaceKHR* pSurface) {
10452 instanceObject := GetInstance(instance)
10453 return ?
10454}
10455
Jesse Hallad250842017-03-10 18:35:38 -080010456@extension("VK_KHR_win32_surface") // 10
Jesse Hall1356b0d2015-11-23 17:24:58 -080010457cmd VkResult vkCreateWin32SurfaceKHR(
10458 VkInstance instance,
Jesse Hallf9fa9a52016-01-08 16:08:51 -080010459 const VkWin32SurfaceCreateInfoKHR* pCreateInfo,
Jesse Hall0e74f002015-11-30 11:37:59 -080010460 const VkAllocationCallbacks* pAllocator,
Jesse Hall1356b0d2015-11-23 17:24:58 -080010461 VkSurfaceKHR* pSurface) {
10462 instanceObject := GetInstance(instance)
10463 return ?
10464}
10465
Jesse Hallad250842017-03-10 18:35:38 -080010466@extension("VK_KHR_win32_surface") // 10
Jesse Halla6429252015-11-29 18:59:42 -080010467cmd VkResult vkGetPhysicalDeviceWin32PresentationSupportKHR(
10468 VkPhysicalDevice physicalDevice,
10469 u32 queueFamilyIndex) {
Jesse Halle2948d82016-02-25 04:19:32 -080010470 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
Jesse Halla6429252015-11-29 18:59:42 -080010471 return ?
10472}
10473
Jesse Hallad250842017-03-10 18:35:38 -080010474@extension("VK_ANDROID_native_buffer") // 11
Jesse Halld1abd742017-02-09 21:45:51 -080010475@optional
Chia-I Wub262ddc2016-03-22 07:38:20 +080010476cmd VkResult vkGetSwapchainGrallocUsageANDROID(
10477 VkDevice device,
10478 VkFormat format,
10479 VkImageUsageFlags imageUsage,
Jesse Halld1abd742017-02-09 21:45:51 -080010480 s32* grallocUsage) {
Chia-I Wub262ddc2016-03-22 07:38:20 +080010481 return ?
10482}
10483
Jesse Hallad250842017-03-10 18:35:38 -080010484@extension("VK_ANDROID_native_buffer") // 11
Jesse Halld1abd742017-02-09 21:45:51 -080010485@optional
Chris Forbes8e4438b2016-12-07 16:26:49 +130010486cmd VkResult vkGetSwapchainGrallocUsage2ANDROID(
10487 VkDevice device,
10488 VkFormat format,
10489 VkImageUsageFlags imageUsage,
10490 VkSwapchainImageUsageFlagsANDROID swapchainImageUsage,
Jesse Halld1abd742017-02-09 21:45:51 -080010491 u64* grallocConsumerUsage,
10492 u64* grallocProducerUsage) {
Chris Forbes8e4438b2016-12-07 16:26:49 +130010493 return ?
10494}
10495
Jesse Hallad250842017-03-10 18:35:38 -080010496@extension("VK_ANDROID_native_buffer") // 11
Chia-I Wub262ddc2016-03-22 07:38:20 +080010497cmd VkResult vkAcquireImageANDROID(
10498 VkDevice device,
10499 VkImage image,
10500 int nativeFenceFd,
10501 VkSemaphore semaphore,
10502 VkFence fence) {
10503 return ?
10504}
10505
Jesse Hallad250842017-03-10 18:35:38 -080010506@extension("VK_ANDROID_native_buffer") // 11
Chia-I Wub262ddc2016-03-22 07:38:20 +080010507cmd VkResult vkQueueSignalReleaseImageANDROID(
10508 VkQueue queue,
10509 u32 waitSemaphoreCount,
10510 const VkSemaphore* pWaitSemaphores,
10511 VkImage image,
10512 int* pNativeFenceFd) {
10513 return ?
10514}
10515
Jesse Hallad250842017-03-10 18:35:38 -080010516@extension("VK_EXT_debug_report") // 12
10517@external type void* PFN_vkDebugReportCallbackEXT
10518@extension("VK_EXT_debug_report") // 12
10519@pfn cmd VkBool32 vkDebugReportCallbackEXT(
10520 VkDebugReportFlagsEXT flags,
10521 VkDebugReportObjectTypeEXT objectType,
10522 u64 object,
10523 platform.size_t location,
10524 s32 messageCode,
10525 const char* pLayerPrefix,
10526 const char* pMessage,
10527 void* pUserData) {
10528 return ?
10529}
10530
10531@extension("VK_EXT_debug_report") // 12
10532cmd VkResult vkCreateDebugReportCallbackEXT(
10533 VkInstance instance,
10534 const VkDebugReportCallbackCreateInfoEXT* pCreateInfo,
10535 const VkAllocationCallbacks* pAllocator,
10536 VkDebugReportCallbackEXT* pCallback) {
10537 return ?
10538}
10539
10540@extension("VK_EXT_debug_report") // 12
10541cmd void vkDestroyDebugReportCallbackEXT(
10542 VkInstance instance,
10543 VkDebugReportCallbackEXT callback,
10544 const VkAllocationCallbacks* pAllocator) {
10545}
10546
10547@extension("VK_EXT_debug_report") // 12
10548cmd void vkDebugReportMessageEXT(
10549 VkInstance instance,
10550 VkDebugReportFlagsEXT flags,
10551 VkDebugReportObjectTypeEXT objectType,
10552 u64 object,
10553 platform.size_t location,
10554 s32 messageCode,
10555 const char* pLayerPrefix,
10556 const char* pMessage) {
10557}
10558
10559@extension("VK_EXT_debug_marker") // 23
10560cmd VkResult vkDebugMarkerSetObjectTagEXT(
10561 VkDevice device,
Jesse Hall77726222017-09-19 14:49:27 -050010562 const VkDebugMarkerObjectTagInfoEXT* pTagInfo) {
Jesse Hallad250842017-03-10 18:35:38 -080010563 return ?
10564}
10565
10566@extension("VK_EXT_debug_marker") // 23
10567cmd VkResult vkDebugMarkerSetObjectNameEXT(
10568 VkDevice device,
Jesse Hall77726222017-09-19 14:49:27 -050010569 const VkDebugMarkerObjectNameInfoEXT* pNameInfo) {
Jesse Hallad250842017-03-10 18:35:38 -080010570 return ?
10571}
10572
10573@extension("VK_EXT_debug_marker") // 23
10574cmd void vkCmdDebugMarkerBeginEXT(
10575 VkCommandBuffer commandBuffer,
Jesse Hall77726222017-09-19 14:49:27 -050010576 const VkDebugMarkerMarkerInfoEXT* pMarkerInfo) {
Jesse Hallad250842017-03-10 18:35:38 -080010577}
10578
10579@extension("VK_EXT_debug_marker") // 23
10580cmd void vkCmdDebugMarkerEndEXT(
10581 VkCommandBuffer commandBuffer) {
10582}
10583
10584@extension("VK_EXT_debug_marker") // 23
10585cmd void vkCmdDebugMarkerInsertEXT(
10586 VkCommandBuffer commandBuffer,
Jesse Hall77726222017-09-19 14:49:27 -050010587 const VkDebugMarkerMarkerInfoEXT* pMarkerInfo) {
Jesse Hallad250842017-03-10 18:35:38 -080010588}
10589
Jesse Hallf47e8f82018-10-27 23:41:45 -070010590@extension("VK_EXT_transform_feedback") // 29
10591cmd void vkCmdBindTransformFeedbackBuffersEXT(
10592 VkCommandBuffer commandBuffer,
10593 u32 firstBinding,
10594 u32 bindingCount,
10595 const VkBuffer* pBuffers,
10596 const VkDeviceSize* pOffsets,
10597 const VkDeviceSize* pSizes) {
10598}
10599
10600@extension("VK_EXT_transform_feedback") // 29
10601cmd void vkCmdBeginTransformFeedbackEXT(
10602 VkCommandBuffer commandBuffer,
10603 u32 firstCounterBuffer,
10604 u32 counterBufferCount,
10605 const VkBuffer* pCounterBuffers,
10606 const VkDeviceSize* pCounterBufferOffsets) {
10607}
10608
10609@extension("VK_EXT_transform_feedback") // 29
10610cmd void vkCmdEndTransformFeedbackEXT(
10611 VkCommandBuffer commandBuffer,
10612 u32 firstCounterBuffer,
10613 u32 counterBufferCount,
10614 const VkBuffer* pCounterBuffers,
10615 const VkDeviceSize* pCounterBufferOffsets) {
10616}
10617
10618@extension("VK_EXT_transform_feedback") // 29
10619cmd void vkCmdBeginQueryIndexedEXT(
10620 VkCommandBuffer commandBuffer,
10621 VkQueryPool queryPool,
10622 u32 query,
10623 VkQueryControlFlags flags,
10624 u32 index) {
10625}
10626
10627@extension("VK_EXT_transform_feedback") // 29
10628cmd void vkCmdEndQueryIndexedEXT(
10629 VkCommandBuffer commandBuffer,
10630 VkQueryPool queryPool,
10631 u32 query,
10632 u32 index) {
10633}
10634
10635@extension("VK_EXT_transform_feedback") // 29
10636cmd void vkCmdDrawIndirectByteCountEXT(
10637 VkCommandBuffer commandBuffer,
10638 u32 instanceCount,
10639 u32 firstInstance,
10640 VkBuffer counterBuffer,
10641 VkDeviceSize counterBufferOffset,
10642 u32 counterOffset,
10643 u32 vertexStride) {
10644}
10645
Jesse Hallad250842017-03-10 18:35:38 -080010646@extension("VK_AMD_draw_indirect_count") // 34
10647cmd void vkCmdDrawIndirectCountAMD(
10648 VkCommandBuffer commandBuffer,
10649 VkBuffer buffer,
10650 VkDeviceSize offset,
10651 VkBuffer countBuffer,
10652 VkDeviceSize countBufferOffset,
10653 u32 maxDrawCount,
10654 u32 stride) {
10655}
10656
10657@extension("VK_AMD_draw_indirect_count") // 34
10658cmd void vkCmdDrawIndexedIndirectCountAMD(
10659 VkCommandBuffer commandBuffer,
10660 VkBuffer buffer,
10661 VkDeviceSize offset,
10662 VkBuffer countBuffer,
10663 VkDeviceSize countBufferOffset,
10664 u32 maxDrawCount,
10665 u32 stride) {
10666}
10667
Jesse Hall8c954d32018-01-17 22:06:20 -080010668@extension("VK_AMD_shader_info") // 43
10669cmd VkResult vkGetShaderInfoAMD(
10670 VkDevice device,
10671 VkPipeline pipeline,
10672 VkShaderStageFlagBits shaderStage,
10673 VkShaderInfoTypeAMD infoType,
10674 platform.size_t* pInfoSize,
10675 void* pInfo) {
10676 return ?
10677}
10678
Jesse Hallad250842017-03-10 18:35:38 -080010679@extension("VK_NV_external_memory_capabilities") // 56
10680cmd VkResult vkGetPhysicalDeviceExternalImageFormatPropertiesNV(
10681 VkPhysicalDevice physicalDevice,
10682 VkFormat format,
10683 VkImageType type,
10684 VkImageTiling tiling,
10685 VkImageUsageFlags usage,
10686 VkImageCreateFlags flags,
10687 VkExternalMemoryHandleTypeFlagsNV externalHandleType,
10688 VkExternalImageFormatPropertiesNV* pExternalImageFormatProperties) {
10689 return ?
10690}
10691
10692@extension("VK_NV_external_memory_win32") // 58
10693cmd VkResult vkGetMemoryWin32HandleNV(
10694 VkDevice device,
10695 VkDeviceMemory memory,
10696 VkExternalMemoryHandleTypeFlagsNV handleType,
10697 platform.HANDLE* pHandle) {
10698 return ?
10699}
10700
10701@extension("VK_KHR_get_physical_device_properties2") // 60
10702cmd void vkGetPhysicalDeviceFeatures2KHR(
10703 VkPhysicalDevice physicalDevice,
10704 VkPhysicalDeviceFeatures2KHR* pFeatures) {
10705}
10706
10707@extension("VK_KHR_get_physical_device_properties2") // 60
10708cmd void vkGetPhysicalDeviceProperties2KHR(
10709 VkPhysicalDevice physicalDevice,
10710 VkPhysicalDeviceProperties2KHR* pProperties) {
10711}
10712
10713@extension("VK_KHR_get_physical_device_properties2") // 60
10714cmd void vkGetPhysicalDeviceFormatProperties2KHR(
10715 VkPhysicalDevice physicalDevice,
10716 VkFormat format,
10717 VkFormatProperties2KHR* pFormatProperties) {
10718}
10719
10720@extension("VK_KHR_get_physical_device_properties2") // 60
10721cmd VkResult vkGetPhysicalDeviceImageFormatProperties2KHR(
10722 VkPhysicalDevice physicalDevice,
10723 const VkPhysicalDeviceImageFormatInfo2KHR* pImageFormatInfo,
10724 VkImageFormatProperties2KHR* pImageFormatProperties) {
10725 return ?
10726}
10727
10728@extension("VK_KHR_get_physical_device_properties2") // 60
10729cmd void vkGetPhysicalDeviceQueueFamilyProperties2KHR(
10730 VkPhysicalDevice physicalDevice,
10731 u32* pQueueFamilyPropertyCount,
10732 VkQueueFamilyProperties2KHR* pQueueFamilyProperties) {
10733}
10734
10735@extension("VK_KHR_get_physical_device_properties2") // 60
10736cmd void vkGetPhysicalDeviceMemoryProperties2KHR(
10737 VkPhysicalDevice physicalDevice,
10738 VkPhysicalDeviceMemoryProperties2KHR* pMemoryProperties) {
10739}
10740
10741@extension("VK_KHR_get_physical_device_properties2") // 60
10742cmd void vkGetPhysicalDeviceSparseImageFormatProperties2KHR(
10743 VkPhysicalDevice physicalDevice,
10744 const VkPhysicalDeviceSparseImageFormatInfo2KHR* pFormatInfo,
10745 u32* pPropertyCount,
10746 VkSparseImageFormatProperties2KHR* pProperties) {
10747}
10748
Daniel Koch09f7bf92017-10-05 00:26:58 -040010749@extension("VK_KHR_device_group") // 61
10750cmd void vkGetDeviceGroupPeerMemoryFeaturesKHR(
Jesse Hallad250842017-03-10 18:35:38 -080010751 VkDevice device,
10752 u32 heapIndex,
10753 u32 localDeviceIndex,
10754 u32 remoteDeviceIndex,
Daniel Koch09f7bf92017-10-05 00:26:58 -040010755 VkPeerMemoryFeatureFlagsKHR* pPeerMemoryFeatures) {
Jesse Hallad250842017-03-10 18:35:38 -080010756}
10757
Daniel Koch09f7bf92017-10-05 00:26:58 -040010758@extension("VK_KHR_device_group") // 61
10759cmd void vkCmdSetDeviceMaskKHR(
Jesse Hallad250842017-03-10 18:35:38 -080010760 VkCommandBuffer commandBuffer,
10761 u32 deviceMask) {
10762}
10763
Jesse Hallad250842017-03-10 18:35:38 -080010764
Daniel Koch09f7bf92017-10-05 00:26:58 -040010765@extension("VK_KHR_device_group") // 61
10766cmd void vkCmdDispatchBaseKHR(
Jesse Hallad250842017-03-10 18:35:38 -080010767 VkCommandBuffer commandBuffer,
10768 u32 baseGroupX,
10769 u32 baseGroupY,
10770 u32 baseGroupZ,
10771 u32 groupCountX,
10772 u32 groupCountY,
10773 u32 groupCountZ) {
10774}
10775
Jesse Hallad250842017-03-10 18:35:38 -080010776@extension("VK_NN_vi_surface") // 63
10777cmd VkResult vkCreateViSurfaceNN(
10778 VkInstance instance,
10779 const VkViSurfaceCreateInfoNN* pCreateInfo,
10780 const VkAllocationCallbacks* pAllocator,
10781 VkSurfaceKHR* pSurface) {
10782 return ?
10783}
10784
10785@extension("VK_KHR_maintenance1") // 70
10786cmd void vkTrimCommandPoolKHR(
10787 VkDevice device,
10788 VkCommandPool commandPool,
10789 VkCommandPoolTrimFlagsKHR flags) {
10790}
10791
Daniel Koch09f7bf92017-10-05 00:26:58 -040010792@extension("VK_KHR_device_group_creation") // 71
10793@threadSafety("system")
10794cmd VkResult vkEnumeratePhysicalDeviceGroupsKHR(
Jesse Hallad250842017-03-10 18:35:38 -080010795 VkInstance instance,
10796 u32* pPhysicalDeviceGroupCount,
Daniel Koch09f7bf92017-10-05 00:26:58 -040010797 VkPhysicalDeviceGroupPropertiesKHR* pPhysicalDeviceGroupProperties) {
10798 instanceObject := GetInstance(instance)
10799
10800 physicalDeviceGroupCount := as!u32(?)
10801 pPhysicalDeviceGroupCount[0] = physicalDeviceGroupCount
10802 physicalDevices := pPhysicalDeviceGroupProperties[0:physicalDeviceGroupCount]
10803
10804 for i in (0 .. physicalDeviceGroupCount) {
10805 physicalDevice := ?
10806 physicalDevices[i] = physicalDevice
10807 if !(physicalDevice in State.PhysicalDevices) {
10808 State.PhysicalDevices[physicalDevice] = new!PhysicalDeviceObject(instance: instance)
10809 }
10810 }
10811
Jesse Hallad250842017-03-10 18:35:38 -080010812 return ?
10813}
10814
Jesse Hall9492f992017-08-28 12:10:06 -070010815@extension("VK_KHR_external_memory_capabilities") // 72
10816cmd void vkGetPhysicalDeviceExternalBufferPropertiesKHR(
Jesse Hallad250842017-03-10 18:35:38 -080010817 VkPhysicalDevice physicalDevice,
Jesse Hall9492f992017-08-28 12:10:06 -070010818 const VkPhysicalDeviceExternalBufferInfoKHR* pExternalBufferInfo,
10819 VkExternalBufferPropertiesKHR* pExternalBufferProperties) {
Jesse Hallad250842017-03-10 18:35:38 -080010820}
10821
Jesse Hall9492f992017-08-28 12:10:06 -070010822@extension("VK_KHR_external_memory_win32") // 74
10823cmd VkResult vkGetMemoryWin32HandleKHR(
Jesse Hallad250842017-03-10 18:35:38 -080010824 VkDevice device,
Jesse Hall9492f992017-08-28 12:10:06 -070010825 const VkMemoryGetWin32HandleInfoKHR* pGetWin32HandleInfo,
Jesse Hallad250842017-03-10 18:35:38 -080010826 platform.HANDLE* pHandle) {
10827 return ?
10828}
10829
Jesse Hall9492f992017-08-28 12:10:06 -070010830@extension("VK_KHR_external_memory_win32") // 74
10831cmd VkResult vkGetMemoryWin32HandlePropertiesKHR(
Jesse Hallad250842017-03-10 18:35:38 -080010832 VkDevice device,
Jesse Hall9492f992017-08-28 12:10:06 -070010833 VkExternalMemoryHandleTypeFlagBitsKHR handleType,
Jesse Hallad250842017-03-10 18:35:38 -080010834 platform.HANDLE handle,
Jesse Hall9492f992017-08-28 12:10:06 -070010835 VkMemoryWin32HandlePropertiesKHR* pMemoryWin32HandleProperties) {
Jesse Hallad250842017-03-10 18:35:38 -080010836 return ?
10837}
10838
Jesse Hall9492f992017-08-28 12:10:06 -070010839@extension("VK_KHR_external_memory_fd") // 75
10840cmd VkResult vkGetMemoryFdKHR(
Jesse Hallad250842017-03-10 18:35:38 -080010841 VkDevice device,
Jesse Hall9492f992017-08-28 12:10:06 -070010842 const VkMemoryGetFdInfoKHR* pGetFdInfo,
Jesse Hallad250842017-03-10 18:35:38 -080010843 s32* pFd) {
10844 return ?
10845}
10846
Jesse Hall9492f992017-08-28 12:10:06 -070010847@extension("VK_KHR_external_memory_fd") // 75
10848cmd VkResult vkGetMemoryFdPropertiesKHR(
Jesse Hallad250842017-03-10 18:35:38 -080010849 VkDevice device,
Jesse Hall9492f992017-08-28 12:10:06 -070010850 VkExternalMemoryHandleTypeFlagBitsKHR handleType,
Jesse Hallad250842017-03-10 18:35:38 -080010851 s32 fd,
Jesse Hall9492f992017-08-28 12:10:06 -070010852 VkMemoryFdPropertiesKHR* pMemoryFdProperties) {
Jesse Hallad250842017-03-10 18:35:38 -080010853 return ?
10854}
10855
Jesse Hall9492f992017-08-28 12:10:06 -070010856@extension("VK_KHR_external_semaphore_capabilities") // 77
10857cmd void vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(
Jesse Hallad250842017-03-10 18:35:38 -080010858 VkPhysicalDevice physicalDevice,
Jesse Hall9492f992017-08-28 12:10:06 -070010859 const VkPhysicalDeviceExternalSemaphoreInfoKHR* pExternalSemaphoreInfo,
10860 VkExternalSemaphorePropertiesKHR* pExternalSemaphoreProperties) {
Jesse Hallad250842017-03-10 18:35:38 -080010861}
10862
Jesse Hall9492f992017-08-28 12:10:06 -070010863@extension("VK_KHR_external_semaphore_win32") // 79
10864cmd VkResult vkImportSemaphoreWin32HandleKHR(
Jesse Hallad250842017-03-10 18:35:38 -080010865 VkDevice device,
Jesse Hall9492f992017-08-28 12:10:06 -070010866 const VkImportSemaphoreWin32HandleInfoKHR* pImportSemaphoreWin32HandleInfo) {
Jesse Hallad250842017-03-10 18:35:38 -080010867 return ?
10868}
10869
Jesse Hall9492f992017-08-28 12:10:06 -070010870@extension("VK_KHR_external_semaphore_win32") // 79
10871cmd VkResult vkGetSemaphoreWin32HandleKHR(
Jesse Hallad250842017-03-10 18:35:38 -080010872 VkDevice device,
Jesse Hall9492f992017-08-28 12:10:06 -070010873 const VkSemaphoreGetWin32HandleInfoKHR* pGetWin32HandleInfo,
Jesse Hallad250842017-03-10 18:35:38 -080010874 platform.HANDLE* pHandle) {
10875 return ?
10876}
10877
Jesse Hall9492f992017-08-28 12:10:06 -070010878@extension("VK_KHR_external_semaphore_fd") // 80
10879cmd VkResult vkImportSemaphoreFdKHR(
Jesse Hallad250842017-03-10 18:35:38 -080010880 VkDevice device,
Jesse Hall9492f992017-08-28 12:10:06 -070010881 const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo) {
Jesse Hallad250842017-03-10 18:35:38 -080010882 return ?
10883}
10884
Jesse Hall9492f992017-08-28 12:10:06 -070010885@extension("VK_KHR_external_semaphore_fd") // 80
10886cmd VkResult vkGetSemaphoreFdKHR(
Jesse Hallad250842017-03-10 18:35:38 -080010887 VkDevice device,
Jesse Hall9492f992017-08-28 12:10:06 -070010888 const VkSemaphoreGetFdInfoKHR* pGetFdInfo,
Jesse Hallad250842017-03-10 18:35:38 -080010889 s32* pFd) {
10890 return ?
10891}
10892
10893@extension("VK_KHR_push_descriptor") // 81
10894cmd void vkCmdPushDescriptorSetKHR(
10895 VkCommandBuffer commandBuffer,
10896 VkPipelineBindPoint pipelineBindPoint,
10897 VkPipelineLayout layout,
10898 u32 set,
10899 u32 descriptorWriteCount,
10900 const VkWriteDescriptorSet* pDescriptorWrites) {
10901}
10902
Jesse Halla13a3cf2018-07-09 15:51:52 -070010903@extension("VK_EXT_conditional_rendering") // 82
10904cmd void vkCmdBeginConditionalRenderingEXT(
10905 VkCommandBuffer commandBuffer,
10906 const VkConditionalRenderingBeginInfoEXT* pConditionalRenderingBegin) {
10907}
10908
10909@extension("VK_EXT_conditional_rendering") // 82
10910cmd void vkCmdEndConditionalRenderingEXT(
10911 VkCommandBuffer commandBuffer) {
10912}
10913
Jesse Hallad250842017-03-10 18:35:38 -080010914@extension("VK_KHR_descriptor_update_template") // 86
10915cmd VkResult vkCreateDescriptorUpdateTemplateKHR(
10916 VkDevice device,
10917 const VkDescriptorUpdateTemplateCreateInfoKHR* pCreateInfo,
10918 const VkAllocationCallbacks* pAllocator,
10919 VkDescriptorUpdateTemplateKHR* pDescriptorUpdateTemplate) {
10920 return ?
10921}
10922
10923@extension("VK_KHR_descriptor_update_template") // 86
10924cmd void vkDestroyDescriptorUpdateTemplateKHR(
10925 VkDevice device,
10926 VkDescriptorUpdateTemplateKHR descriptorUpdateTemplate,
10927 const VkAllocationCallbacks* pAllocator) {
10928}
10929
10930@extension("VK_KHR_descriptor_update_template") // 86
10931cmd void vkUpdateDescriptorSetWithTemplateKHR(
10932 VkDevice device,
10933 VkDescriptorSet descriptorSet,
10934 VkDescriptorUpdateTemplateKHR descriptorUpdateTemplate,
10935 const void* pData) {
10936}
10937
10938@extension("VK_KHR_descriptor_update_template") // 86
10939cmd void vkCmdPushDescriptorSetWithTemplateKHR(
10940 VkCommandBuffer commandBuffer,
10941 VkDescriptorUpdateTemplateKHR descriptorUpdateTemplate,
10942 VkPipelineLayout layout,
10943 u32 set,
10944 const void* pData) {
10945}
10946
10947@extension("VK_NVX_device_generated_commands") // 87
10948cmd void vkCmdProcessCommandsNVX(
10949 VkCommandBuffer commandBuffer,
10950 const VkCmdProcessCommandsInfoNVX* pProcessCommandsInfo) {
10951}
10952
10953@extension("VK_NVX_device_generated_commands") // 87
10954cmd void vkCmdReserveSpaceForCommandsNVX(
10955 VkCommandBuffer commandBuffer,
10956 const VkCmdReserveSpaceForCommandsInfoNVX* pReserveSpaceInfo) {
10957}
10958
10959@extension("VK_NVX_device_generated_commands") // 87
10960cmd VkResult vkCreateIndirectCommandsLayoutNVX(
10961 VkDevice device,
10962 const VkIndirectCommandsLayoutCreateInfoNVX* pCreateInfo,
10963 const VkAllocationCallbacks* pAllocator,
10964 VkIndirectCommandsLayoutNVX* pIndirectCommandsLayout) {
10965 return ?
10966}
10967
10968@extension("VK_NVX_device_generated_commands") // 87
10969cmd void vkDestroyIndirectCommandsLayoutNVX(
10970 VkDevice device,
10971 VkIndirectCommandsLayoutNVX indirectCommandsLayout,
10972 const VkAllocationCallbacks* pAllocator) {
10973}
10974
10975@extension("VK_NVX_device_generated_commands") // 87
10976cmd VkResult vkCreateObjectTableNVX(
10977 VkDevice device,
10978 const VkObjectTableCreateInfoNVX* pCreateInfo,
10979 const VkAllocationCallbacks* pAllocator,
10980 VkObjectTableNVX* pObjectTable) {
10981 return ?
10982}
10983
10984@extension("VK_NVX_device_generated_commands") // 87
10985cmd void vkDestroyObjectTableNVX(
10986 VkDevice device,
10987 VkObjectTableNVX objectTable,
10988 const VkAllocationCallbacks* pAllocator) {
10989}
10990
10991@extension("VK_NVX_device_generated_commands") // 87
10992cmd VkResult vkRegisterObjectsNVX(
10993 VkDevice device,
10994 VkObjectTableNVX objectTable,
10995 u32 objectCount,
10996 const VkObjectTableEntryNVX* const* ppObjectTableEntries,
10997 const u32* pObjectIndices) {
10998 return ?
10999}
11000
11001@extension("VK_NVX_device_generated_commands") // 87
11002cmd VkResult vkUnregisterObjectsNVX(
11003 VkDevice device,
11004 VkObjectTableNVX objectTable,
11005 u32 objectCount,
11006 const VkObjectEntryTypeNVX* pObjectEntryTypes,
11007 const u32* pObjectIndices) {
11008 return ?
11009}
11010
11011@extension("VK_NVX_device_generated_commands") // 87
11012cmd void vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX(
11013 VkPhysicalDevice physicalDevice,
11014 VkDeviceGeneratedCommandsFeaturesNVX* pFeatures,
11015 VkDeviceGeneratedCommandsLimitsNVX* pLimits) {
11016}
11017
11018@extension("VK_NV_clip_space_w_scaling") // 88
11019cmd void vkCmdSetViewportWScalingNV(
11020 VkCommandBuffer commandBuffer,
11021 u32 firstViewport,
11022 u32 viewportCount,
11023 const VkViewportWScalingNV* pViewportWScalings) {
11024}
11025
11026@extension("VK_EXT_direct_mode_display") // 89
11027cmd VkResult vkReleaseDisplayEXT(
11028 VkPhysicalDevice physicalDevice,
11029 VkDisplayKHR display) {
11030 return ?
11031}
11032
11033@extension("VK_EXT_acquire_xlib_display") // 90
11034cmd VkResult vkAcquireXlibDisplayEXT(
11035 VkPhysicalDevice physicalDevice,
11036 platform.Display* dpy,
11037 VkDisplayKHR display) {
11038 return ?
11039}
11040
11041@extension("VK_EXT_acquire_xlib_display") // 90
11042cmd VkResult vkGetRandROutputDisplayEXT(
11043 VkPhysicalDevice physicalDevice,
11044 platform.Display* dpy,
11045 platform.RROutput rrOutput,
11046 VkDisplayKHR* pDisplay) {
11047 return ?
11048}
11049
11050@extension("VK_EXT_display_surface_counter") // 91
11051cmd VkResult vkGetPhysicalDeviceSurfaceCapabilities2EXT(
11052 VkPhysicalDevice physicalDevice,
11053 VkSurfaceKHR surface,
11054 VkSurfaceCapabilities2EXT* pSurfaceCapabilities) {
11055 return ?
11056}
11057
11058@extension("VK_EXT_display_control") // 92
11059cmd VkResult vkDisplayPowerControlEXT(
11060 VkDevice device,
11061 VkDisplayKHR display,
11062 const VkDisplayPowerInfoEXT* pDisplayPowerInfo) {
11063 return ?
11064}
11065
11066@extension("VK_EXT_display_control") // 92
11067cmd VkResult vkRegisterDeviceEventEXT(
11068 VkDevice device,
11069 const VkDeviceEventInfoEXT* pDeviceEventInfo,
11070 const VkAllocationCallbacks* pAllocator,
11071 VkFence* pFence) {
11072 return ?
11073}
11074
11075@extension("VK_EXT_display_control") // 92
11076cmd VkResult vkRegisterDisplayEventEXT(
11077 VkDevice device,
11078 VkDisplayKHR display,
11079 const VkDisplayEventInfoEXT* pDisplayEventInfo,
11080 const VkAllocationCallbacks* pAllocator,
11081 VkFence* pFence) {
11082 return ?
11083}
11084
11085@extension("VK_EXT_display_control") // 92
11086cmd VkResult vkGetSwapchainCounterEXT(
11087 VkDevice device,
11088 VkSwapchainKHR swapchain,
11089 VkSurfaceCounterFlagBitsEXT counter,
11090 u64* pCounterValue) {
11091 return ?
11092}
11093
11094@extension("VK_GOOGLE_display_timing") // 93
Ian Elliott4c8bb2a2016-12-29 11:07:26 -070011095cmd VkResult vkGetRefreshCycleDurationGOOGLE(
Jesse Hallfdc8ab32017-03-10 21:01:57 -080011096 VkDevice device,
11097 VkSwapchainKHR swapchain,
11098 VkRefreshCycleDurationGOOGLE* pDisplayTimingProperties) {
Ian Elliott4c8bb2a2016-12-29 11:07:26 -070011099 deviceObject := GetDevice(device)
11100 swapchainObject := GetSwapchain(swapchain)
11101
11102 displayTimingProperties := ?
11103 pDisplayTimingProperties[0] = displayTimingProperties
11104
11105 return ?
11106}
11107
Jesse Hallad250842017-03-10 18:35:38 -080011108@extension("VK_GOOGLE_display_timing") // 93
Ian Elliott4c8bb2a2016-12-29 11:07:26 -070011109cmd VkResult vkGetPastPresentationTimingGOOGLE(
Jesse Hallfdc8ab32017-03-10 21:01:57 -080011110 VkDevice device,
11111 VkSwapchainKHR swapchain,
11112 u32* pPresentationTimingCount,
11113 VkPastPresentationTimingGOOGLE* pPresentationTimings) {
Ian Elliott4c8bb2a2016-12-29 11:07:26 -070011114 return ?
11115}
11116
Jesse Hallad250842017-03-10 18:35:38 -080011117@extension("VK_EXT_discard_rectangles") // 100
11118cmd void vkCmdSetDiscardRectangleEXT(
Jesse Hall26763382016-05-20 07:13:52 -070011119 VkCommandBuffer commandBuffer,
Jesse Hallad250842017-03-10 18:35:38 -080011120 u32 firstDiscardRectangle,
11121 u32 discardRectangleCount,
11122 const VkRect2D* pDiscardRectangles) {
Jesse Hall26763382016-05-20 07:13:52 -070011123}
11124
Jesse Hallad250842017-03-10 18:35:38 -080011125@extension("VK_EXT_hdr_metadata") // 106
Jesse Hall889cd9a2017-02-25 22:12:23 -080011126cmd void vkSetHdrMetadataEXT(
Jesse Hallfdc8ab32017-03-10 21:01:57 -080011127 VkDevice device,
11128 u32 swapchainCount,
11129 const VkSwapchainKHR* pSwapchains,
11130 const VkHdrMetadataEXT* pMetadata) {
Jesse Hall889cd9a2017-02-25 22:12:23 -080011131}
11132
Jesse Halla13a3cf2018-07-09 15:51:52 -070011133@extension("VK_KHR_create_renderpass2") // 110
11134cmd VkResult vkCreateRenderPass2KHR(
11135 VkDevice device,
11136 const VkRenderPassCreateInfo2KHR* pCreateInfo,
11137 const VkAllocationCallbacks* pAllocator,
11138 VkRenderPass* pRenderPass) {
11139 return ?
11140}
11141
11142@extension("VK_KHR_create_renderpass2") // 110
11143cmd void vkCmdBeginRenderPass2KHR(
11144 VkCommandBuffer commandBuffer,
11145 const VkRenderPassBeginInfo* pRenderPassBegin,
11146 const VkSubpassBeginInfoKHR* pSubpassBeginInfo) {
11147}
11148
11149@extension("VK_KHR_create_renderpass2") // 110
11150cmd void vkCmdNextSubpass2KHR(
11151 VkCommandBuffer commandBuffer,
11152 const VkSubpassBeginInfoKHR* pSubpassBeginInfo,
11153 const VkSubpassEndInfoKHR* pSubpassEndInfo) {
11154}
11155
11156@extension("VK_KHR_create_renderpass2") // 110
11157cmd void vkCmdEndRenderPass2KHR(
11158 VkCommandBuffer commandBuffer,
11159 const VkSubpassEndInfoKHR* pSubpassEndInfo) {
11160}
11161
Jesse Hallad250842017-03-10 18:35:38 -080011162@extension("VK_KHR_shared_presentable_image") // 112
Chris Forbes2e12cb82017-01-18 11:45:17 +130011163cmd VkResult vkGetSwapchainStatusKHR(
11164 VkDevice device,
11165 VkSwapchainKHR swapchain) {
11166 return ?
11167}
11168
Jesse Hall9492f992017-08-28 12:10:06 -070011169@extension("VK_KHR_external_fence_capabilities") // 113
11170cmd void vkGetPhysicalDeviceExternalFencePropertiesKHR(
11171 VkPhysicalDevice physicalDevice,
11172 const VkPhysicalDeviceExternalFenceInfoKHR* pExternalFenceInfo,
11173 VkExternalFencePropertiesKHR* pExternalFenceProperties) {
11174}
11175
11176@extension("VK_KHR_external_fence_win32") // 115
11177cmd VkResult vkImportFenceWin32HandleKHR(
11178 VkDevice device,
11179 const VkImportFenceWin32HandleInfoKHR* pImportFenceWin32HandleInfo) {
11180 return ?
11181}
11182
11183@extension("VK_KHR_external_fence_win32") // 115
11184cmd VkResult vkGetFenceWin32HandleKHR(
11185 VkDevice device,
11186 const VkFenceGetWin32HandleInfoKHR* pGetWin32HandleInfo,
11187 platform.HANDLE* pHandle) {
11188 return ?
11189}
11190
11191@extension("VK_KHR_external_fence_fd") // 116
11192cmd VkResult vkImportFenceFdKHR(
11193 VkDevice device,
11194 const VkImportFenceFdInfoKHR* pImportFenceFdInfo) {
11195 return ?
11196}
11197
11198@extension("VK_KHR_external_fence_fd") // 116
11199cmd VkResult vkGetFenceFdKHR(
11200 VkDevice device,
11201 const VkFenceGetFdInfoKHR* pGetFdInfo,
11202 int* pFd) {
11203 return ?
11204}
11205
Jesse Hall05556b12017-05-18 17:40:25 -070011206@extension("VK_KHR_get_surface_capabilities2") // 120
Chris Forbese2d3ee12017-03-16 16:10:15 +130011207cmd VkResult vkGetPhysicalDeviceSurfaceCapabilities2KHR(
11208 VkPhysicalDevice physicalDevice,
11209 const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo,
11210 VkSurfaceCapabilities2KHR* pSurfaceCapabilities) {
11211 return ?
11212}
11213
Jesse Hall05556b12017-05-18 17:40:25 -070011214@extension("VK_KHR_get_surface_capabilities2") // 120
Chris Forbese2d3ee12017-03-16 16:10:15 +130011215cmd VkResult vkGetPhysicalDeviceSurfaceFormats2KHR(
11216 VkPhysicalDevice physicalDevice,
11217 const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo,
11218 u32* pSurfaceFormatCount,
11219 VkSurfaceFormat2KHR* pSurfaceFormats) {
11220 return ?
11221}
11222
Jesse Hall54f8d132018-04-18 08:16:59 -070011223@extension("VK_KHR_display_properties2") // 122
11224cmd VkResult vkGetPhysicalDeviceDisplayProperties2KHR(
11225 VkPhysicalDevice physicalDevice,
11226 u32* pPropertyCount,
11227 VkDisplayProperties2KHR* pProperties) {
11228 return ?
11229}
11230
11231@extension("VK_KHR_display_properties2") // 122
11232cmd VkResult vkGetPhysicalDeviceDisplayPlaneProperties2KHR(
11233 VkPhysicalDevice physicalDevice,
11234 u32* pPropertyCount,
11235 VkDisplayPlaneProperties2KHR* pProperties) {
11236 return ?
11237}
11238
11239@extension("VK_KHR_display_properties2") // 122
11240cmd VkResult vkGetDisplayModeProperties2KHR(
11241 VkPhysicalDevice physicalDevice,
11242 VkDisplayKHR display,
11243 u32* pPropertyCount,
11244 VkDisplayModeProperties2KHR* pProperties) {
11245 return ?
11246}
11247
11248@extension("VK_KHR_display_properties2") // 122
11249cmd VkResult vkGetDisplayPlaneCapabilities2KHR(
11250 VkPhysicalDevice physicalDevice,
11251 const VkDisplayPlaneInfo2KHR* pDisplayPlaneInfo,
11252 VkDisplayPlaneCapabilities2KHR* pCapabilities) {
11253 return ?
11254}
11255
Jesse Hallad250842017-03-10 18:35:38 -080011256@extension("VK_MVK_ios_surface") // 123
11257cmd VkResult vkCreateIOSSurfaceMVK(
11258 VkInstance instance,
11259 const VkIOSSurfaceCreateInfoMVK* pCreateInfo,
11260 const VkAllocationCallbacks* pAllocator,
11261 VkSurfaceKHR* pSurface) {
11262 return ?
11263}
11264
11265@extension("VK_MVK_macos_surface") // 124
11266cmd VkResult vkCreateMacOSSurfaceMVK(
11267 VkInstance instance,
11268 const VkMacOSSurfaceCreateInfoMVK* pCreateInfo,
11269 const VkAllocationCallbacks* pAllocator,
11270 VkSurfaceKHR* pSurface) {
11271 return ?
11272}
11273
Jesse Hall8c954d32018-01-17 22:06:20 -080011274@extension("VK_EXT_debug_utils") // 129
11275@external type void* PFN_vkDebugUtilsMessengerCallbackEXT
11276@extension("VK_EXT_debug_utils") // 129
11277@pfn cmd VkBool32 vkDebugUtilsMessengerCallbackEXT(
11278 VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity,
11279 VkDebugUtilsMessageTypeFlagsEXT messageType,
11280 const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData,
11281 void* pUserData) {
11282 return ?
11283}
11284
11285@extension("VK_EXT_debug_utils") // 129
11286cmd VkResult vkSetDebugUtilsObjectNameEXT(
11287 VkDevice device,
11288 const VkDebugUtilsObjectNameInfoEXT* pNameInfo) {
11289 return ?
11290}
Jesse Hall72e6a132018-04-06 13:00:44 -070011291
Jesse Hall8c954d32018-01-17 22:06:20 -080011292@extension("VK_EXT_debug_utils") // 129
11293cmd VkResult vkSetDebugUtilsObjectTagEXT(
11294 VkDevice device,
11295 const VkDebugUtilsObjectTagInfoEXT* pTagInfo) {
11296 return ?
11297}
Jesse Hall72e6a132018-04-06 13:00:44 -070011298
Jesse Hall8c954d32018-01-17 22:06:20 -080011299@extension("VK_EXT_debug_utils") // 129
11300cmd void vkQueueBeginDebugUtilsLabelEXT(
11301 VkQueue queue,
11302 const VkDebugUtilsLabelEXT* pLabelInfo) {
11303}
Jesse Hall72e6a132018-04-06 13:00:44 -070011304
Jesse Hall8c954d32018-01-17 22:06:20 -080011305@extension("VK_EXT_debug_utils") // 129
11306cmd void vkQueueEndDebugUtilsLabelEXT(VkQueue queue) {
11307}
Jesse Hall72e6a132018-04-06 13:00:44 -070011308
Jesse Hall8c954d32018-01-17 22:06:20 -080011309@extension("VK_EXT_debug_utils") // 129
11310cmd void vkQueueInsertDebugUtilsLabelEXT(
11311 VkQueue queue,
11312 const VkDebugUtilsLabelEXT* pLabelInfo) {
11313}
Jesse Hall72e6a132018-04-06 13:00:44 -070011314
Jesse Hall8c954d32018-01-17 22:06:20 -080011315@extension("VK_EXT_debug_utils") // 129
11316cmd void vkCmdBeginDebugUtilsLabelEXT(
11317 VkCommandBuffer commandBuffer,
11318 const VkDebugUtilsLabelEXT* pLabelInfo) {
11319}
Jesse Hall72e6a132018-04-06 13:00:44 -070011320
Jesse Hall8c954d32018-01-17 22:06:20 -080011321@extension("VK_EXT_debug_utils") // 129
11322cmd void vkCmdEndDebugUtilsLabelEXT(VkCommandBuffer commandBuffer) {
11323}
11324
11325@extension("VK_EXT_debug_utils") // 129
11326cmd void vkCmdInsertDebugUtilsLabelEXT(
11327 VkCommandBuffer commandBuffer,
11328 const VkDebugUtilsLabelEXT* pLabelInfo) {
11329}
11330
11331@extension("VK_EXT_debug_utils") // 129
11332cmd VkResult vkCreateDebugUtilsMessengerEXT(
11333 VkInstance instance,
11334 const VkDebugUtilsMessengerCreateInfoEXT* pCreateInfo,
11335 const VkAllocationCallbacks* pAllocator,
11336 VkDebugUtilsMessengerEXT* pMessenger) {
11337 return ?
11338}
11339
11340@extension("VK_EXT_debug_utils") // 129
11341cmd void vkDestroyDebugUtilsMessengerEXT(
11342 VkInstance instance,
11343 VkDebugUtilsMessengerEXT messenger,
11344 const VkAllocationCallbacks* pAllocator) {
11345}
11346
11347@extension("VK_EXT_debug_utils") // 129
11348cmd void vkSubmitDebugUtilsMessageEXT(
11349 VkInstance instance,
11350 VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity,
11351 VkDebugUtilsMessageTypeFlagsEXT messageTypes,
11352 const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData) {
11353}
11354
Jesse Hall36215a92018-01-18 15:04:37 -080011355@extension("VK_ANDROID_external_memory_android_hardware_buffer") // 130
11356@vulkan1_1 // extension requires 1.1, and should become non-optional when 1.1 does
11357cmd VkResult vkGetAndroidHardwareBufferPropertiesANDROID(
11358 VkDevice device,
11359 const platform.AHardwareBuffer* buffer,
11360 VkAndroidHardwareBufferPropertiesANDROID* pProperties) {
11361 return ?
11362}
11363
11364@extension("VK_ANDROID_external_memory_android_hardware_buffer") // 130
11365@vulkan1_1 // extension requires 1.1, and should become non-optional when 1.1 does
11366cmd VkResult vkGetMemoryAndroidHardwareBufferANDROID(
11367 VkDevice device,
11368 const VkMemoryGetAndroidHardwareBufferInfoANDROID* pInfo,
11369 platform.AHardwareBuffer** pBuffer) {
11370 return ?
11371}
11372
Jesse Hall77726222017-09-19 14:49:27 -050011373@extension("VK_EXT_sample_locations") // 144
11374cmd void vkCmdSetSampleLocationsEXT(
11375 VkCommandBuffer commandBuffer,
11376 const VkSampleLocationsInfoEXT* pSampleLocationsInfo) {
11377}
11378
11379@extension("VK_EXT_sample_locations") // 144
11380cmd void vkGetPhysicalDeviceMultisamplePropertiesEXT(
11381 VkPhysicalDevice physicalDevice,
11382 VkSampleCountFlagBits samples,
11383 VkMultisamplePropertiesEXT* pMultisampleProperties) {
11384}
11385
Jesse Hall9492f992017-08-28 12:10:06 -070011386@extension("VK_KHR_get_memory_requirements2") // 147
11387cmd void vkGetImageMemoryRequirements2KHR(
11388 VkDevice device,
11389 const VkImageMemoryRequirementsInfo2KHR* pInfo,
11390 VkMemoryRequirements2KHR* pMemoryRequirements) {
11391}
11392
11393@extension("VK_KHR_get_memory_requirements2") // 147
11394cmd void vkGetBufferMemoryRequirements2KHR(
11395 VkDevice device,
11396 const VkBufferMemoryRequirementsInfo2KHR* pInfo,
11397 VkMemoryRequirements2KHR* pMemoryRequirements) {
11398}
11399
11400@extension("VK_KHR_get_memory_requirements2") // 147
11401cmd void vkGetImageSparseMemoryRequirements2KHR(
11402 VkDevice device,
11403 const VkImageSparseMemoryRequirementsInfo2KHR* pInfo,
11404 u32* pSparseMemoryRequirementCount,
11405 VkSparseImageMemoryRequirements2KHR* pSparseMemoryRequirements) {
11406}
11407
Jesse Hall076f95d2017-09-20 11:34:47 -070011408@extension("VK_KHR_sampler_ycbcr_conversion") // 157
11409cmd VkResult vkCreateSamplerYcbcrConversionKHR(
11410 VkDevice device,
11411 const VkSamplerYcbcrConversionCreateInfoKHR* pCreateInfo,
11412 const VkAllocationCallbacks* pAllocator,
11413 VkSamplerYcbcrConversionKHR* pYcbcrConversion) {
11414 return ?
11415}
11416
11417@extension("VK_KHR_sampler_ycbcr_conversion") // 157
11418cmd void vkDestroySamplerYcbcrConversionKHR(
11419 VkDevice device,
11420 VkSamplerYcbcrConversionKHR ycbcrConversion,
11421 const VkAllocationCallbacks* pAllocator) {
11422}
11423
11424@extension("VK_KHR_bind_memory2") // 158
11425cmd VkResult vkBindBufferMemory2KHR(
11426 VkDevice device,
11427 u32 bindInfoCount,
11428 const VkBindBufferMemoryInfoKHR* pBindInfos) {
11429 return ?
11430}
11431
11432@extension("VK_KHR_bind_memory2") // 158
11433cmd VkResult vkBindImageMemory2KHR(
11434 VkDevice device,
11435 u32 bindInfoCount,
11436 const VkBindImageMemoryInfoKHR* pBindInfos) {
11437 return ?
11438}
11439
Jesse Hallf47e8f82018-10-27 23:41:45 -070011440@extension("VK_EXT_image_drm_format_modifier") // 159
11441cmd VkResult vkGetImageDrmFormatModifierPropertiesEXT(
11442 VkDevice device,
11443 VkImage image,
11444 VkImageDrmFormatModifierPropertiesEXT* pProperties) {
11445 return ?
11446}
11447
Jesse Hall77726222017-09-19 14:49:27 -050011448@extension("VK_EXT_validation_cache") // 161
11449cmd VkResult vkCreateValidationCacheEXT(
11450 VkDevice device,
11451 const VkValidationCacheCreateInfoEXT* pCreateInfo,
11452 const VkAllocationCallbacks* pAllocator,
11453 VkValidationCacheEXT* pValidationCache) {
11454 return ?
11455}
11456
11457@extension("VK_EXT_validation_cache") // 161
11458cmd void vkDestroyValidationCacheEXT(
11459 VkDevice device,
11460 VkValidationCacheEXT validationCache,
11461 const VkAllocationCallbacks* pAllocator) {
11462}
11463
11464@extension("VK_EXT_validation_cache") // 161
11465cmd VkResult vkMergeValidationCachesEXT(
11466 VkDevice device,
11467 VkValidationCacheEXT dstCache,
11468 u32 srcCacheCount,
11469 const VkValidationCacheEXT* pSrcCaches) {
11470 return ?
11471}
11472
11473@extension("VK_EXT_validation_cache") // 161
11474cmd VkResult vkGetValidationCacheDataEXT(
11475 VkDevice device,
11476 VkValidationCacheEXT validationCache,
11477 platform.size_t* pDataSize,
11478 void* pData) {
11479 return ?
11480}
11481
Jesse Hallb5297192018-09-22 20:52:13 +020011482@extension("VK_NV_shading_rate_image") // 165
11483cmd void vkCmdBindShadingRateImageNV(
11484 VkCommandBuffer commandBuffer,
11485 VkImageView imageView,
11486 VkImageLayout imageLayout) {
11487}
11488
11489@extension("VK_NV_shading_rate_image") // 165
11490cmd void vkCmdSetViewportShadingRatePaletteNV(
11491 VkCommandBuffer commandBuffer,
11492 u32 firstViewport,
11493 u32 viewportCount,
11494 const VkShadingRatePaletteNV* pShadingRatePalettes) {
11495}
11496
11497@extension("VK_NV_shading_rate_image") // 165
11498cmd void vkCmdSetCoarseSampleOrderNV(
11499 VkCommandBuffer commandBuffer,
11500 VkCoarseSampleOrderTypeNV sampleOrderType,
11501 u32 customSampleOrderCount,
11502 const VkCoarseSampleOrderCustomNV* pCustomSampleOrders) {
11503}
11504
Jesse Halla363a8e2018-11-05 21:18:00 -070011505@extension("VK_NV_raytracing") // 166
11506cmd VkResult vkCreateAccelerationStructureNV(
Jesse Hallb5297192018-09-22 20:52:13 +020011507 VkDevice device,
Jesse Halla363a8e2018-11-05 21:18:00 -070011508 const VkAccelerationStructureCreateInfoNV* pCreateInfo,
Jesse Hallb5297192018-09-22 20:52:13 +020011509 const VkAllocationCallbacks* pAllocator,
Jesse Halla363a8e2018-11-05 21:18:00 -070011510 VkAccelerationStructureNV* pAccelerationStructure) {
Jesse Hallb5297192018-09-22 20:52:13 +020011511 return ?
11512}
11513
Jesse Halla363a8e2018-11-05 21:18:00 -070011514@extension("VK_NV_raytracing") // 166
11515cmd void vkDestroyAccelerationStructureNV(
Jesse Hallb5297192018-09-22 20:52:13 +020011516 VkDevice device,
Jesse Halla363a8e2018-11-05 21:18:00 -070011517 VkAccelerationStructureNV accelerationStructure,
Jesse Hallb5297192018-09-22 20:52:13 +020011518 const VkAllocationCallbacks* pAllocator) {
11519}
11520
Jesse Halla363a8e2018-11-05 21:18:00 -070011521@extension("VK_NV_raytracing") // 166
11522cmd void vkGetAccelerationStructureMemoryRequirementsNV(
Jesse Hallb5297192018-09-22 20:52:13 +020011523 VkDevice device,
Jesse Halla363a8e2018-11-05 21:18:00 -070011524 const VkAccelerationStructureMemoryRequirementsInfoNV* pInfo,
Jesse Hallb5297192018-09-22 20:52:13 +020011525 VkMemoryRequirements2KHR* pMemoryRequirements) {
11526}
11527
Jesse Halla363a8e2018-11-05 21:18:00 -070011528@extension("VK_NV_raytracing") // 166
11529cmd VkResult vkBindAccelerationStructureMemoryNV(
Jesse Hallb5297192018-09-22 20:52:13 +020011530 VkDevice device,
11531 u32 bindInfoCount,
Jesse Halla363a8e2018-11-05 21:18:00 -070011532 const VkBindAccelerationStructureMemoryInfoNV* pBindInfos) {
Jesse Hallb5297192018-09-22 20:52:13 +020011533 return ?
11534}
11535
Jesse Halla363a8e2018-11-05 21:18:00 -070011536@extension("VK_NV_raytracing") // 166
11537cmd void vkCmdBuildAccelerationStructureNV(
Jesse Hall2e6853c2018-10-02 14:05:37 -070011538 VkCommandBuffer commandBuffer,
Jesse Halla363a8e2018-11-05 21:18:00 -070011539 const VkAccelerationStructureInfoNV* pInfo,
Jesse Hall2e6853c2018-10-02 14:05:37 -070011540 VkBuffer instanceData,
11541 VkDeviceSize instanceOffset,
Jesse Hall2e6853c2018-10-02 14:05:37 -070011542 VkBool32 update,
Jesse Halla363a8e2018-11-05 21:18:00 -070011543 VkAccelerationStructureNV dst,
11544 VkAccelerationStructureNV src,
Jesse Hall2e6853c2018-10-02 14:05:37 -070011545 VkBuffer scratch,
11546 VkDeviceSize scratchOffset) {
Jesse Hallb5297192018-09-22 20:52:13 +020011547}
11548
Jesse Halla363a8e2018-11-05 21:18:00 -070011549@extension("VK_NV_raytracing") // 166
11550cmd void vkCmdCopyAccelerationStructureNV(
Jesse Hall2e6853c2018-10-02 14:05:37 -070011551 VkCommandBuffer commandBuffer,
Jesse Halla363a8e2018-11-05 21:18:00 -070011552 VkAccelerationStructureNV dst,
11553 VkAccelerationStructureNV src,
11554 VkCopyAccelerationStructureModeNV mode) {
Jesse Hallb5297192018-09-22 20:52:13 +020011555}
11556
Jesse Halla363a8e2018-11-05 21:18:00 -070011557@extension("VK_NV_raytracing") // 166
11558cmd void vkCmdTraceRaysNV(
Jesse Hall2e6853c2018-10-02 14:05:37 -070011559 VkCommandBuffer commandBuffer,
11560 VkBuffer raygenShaderBindingTableBuffer,
11561 VkDeviceSize raygenShaderBindingOffset,
11562 VkBuffer missShaderBindingTableBuffer,
11563 VkDeviceSize missShaderBindingOffset,
11564 VkDeviceSize missShaderBindingStride,
11565 VkBuffer hitShaderBindingTableBuffer,
11566 VkDeviceSize hitShaderBindingOffset,
11567 VkDeviceSize hitShaderBindingStride,
Jesse Halla363a8e2018-11-05 21:18:00 -070011568 VkBuffer callableShaderBindingTableBuffer,
11569 VkDeviceSize callableShaderBindingOffset,
11570 VkDeviceSize callableShaderBindingStride,
Jesse Hall2e6853c2018-10-02 14:05:37 -070011571 u32 width,
Jesse Halla363a8e2018-11-05 21:18:00 -070011572 u32 height,
11573 u32 depth) {
Jesse Hallb5297192018-09-22 20:52:13 +020011574}
11575
Jesse Halla363a8e2018-11-05 21:18:00 -070011576@extension("VK_NV_raytracing") // 166
11577cmd VkResult vkCreateRaytracingPipelinesNV(
Jesse Hallb5297192018-09-22 20:52:13 +020011578 VkDevice device,
11579 VkPipelineCache pipelineCache,
11580 u32 createInfoCount,
Jesse Halla363a8e2018-11-05 21:18:00 -070011581 const VkRayTracingPipelineCreateInfoNV* pCreateInfos,
Jesse Hallb5297192018-09-22 20:52:13 +020011582 const VkAllocationCallbacks* pAllocator,
11583 VkPipeline* pPipelines) {
11584 return ?
11585}
11586
Jesse Halla363a8e2018-11-05 21:18:00 -070011587@extension("VK_NV_raytracing") // 166
11588cmd VkResult vkGetRaytracingShaderHandlesNV(
Jesse Hall2e6853c2018-10-02 14:05:37 -070011589 VkDevice device,
11590 VkPipeline pipeline,
11591 u32 firstGroup,
11592 u32 groupCount,
11593 platform.size_t dataSize,
11594 void* pData) {
Jesse Hallb5297192018-09-22 20:52:13 +020011595 return ?
11596}
11597
Jesse Halla363a8e2018-11-05 21:18:00 -070011598@extension("VK_NV_raytracing") // 166
11599cmd VkResult vkGetAccelerationStructureHandleNV(
Jesse Hall2e6853c2018-10-02 14:05:37 -070011600 VkDevice device,
Jesse Halla363a8e2018-11-05 21:18:00 -070011601 VkAccelerationStructureNV accelerationStructure,
Jesse Hall2e6853c2018-10-02 14:05:37 -070011602 platform.size_t dataSize,
11603 void* pData) {
Jesse Hallb5297192018-09-22 20:52:13 +020011604 return ?
11605}
11606
Jesse Halla363a8e2018-11-05 21:18:00 -070011607@extension("VK_NV_raytracing") // 166
11608cmd void vkCmdWriteAccelerationStructurePropertiesNV(
Jesse Hall2e6853c2018-10-02 14:05:37 -070011609 VkCommandBuffer commandBuffer,
Jesse Halla363a8e2018-11-05 21:18:00 -070011610 u32 accelerationStructureCount,
11611 const VkAccelerationStructureNV* pAccelerationStructures,
Jesse Hall2e6853c2018-10-02 14:05:37 -070011612 VkQueryType queryType,
11613 VkQueryPool queryPool,
Jesse Halla363a8e2018-11-05 21:18:00 -070011614 u32 firstQuery) {
Jesse Hallb5297192018-09-22 20:52:13 +020011615}
11616
Jesse Halla363a8e2018-11-05 21:18:00 -070011617@extension("VK_NV_raytracing") // 166
11618cmd VkResult vkCompileDeferredNV(
Jesse Hall2e6853c2018-10-02 14:05:37 -070011619 VkDevice device,
11620 VkPipeline pipeline,
11621 u32 shader) {
Jesse Hallb5297192018-09-22 20:52:13 +020011622 return ?
11623}
11624
Daniel Koch09f7bf92017-10-05 00:26:58 -040011625@extension("VK_KHR_maintenance3") // 169
11626cmd void vkGetDescriptorSetLayoutSupportKHR(
11627 VkDevice device,
11628 const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
11629 VkDescriptorSetLayoutSupportKHR* pSupport) {
11630}
11631
Jesse Hall54f8d132018-04-18 08:16:59 -070011632@extension("VK_KHR_draw_indirect_count") // 170
11633cmd void vkCmdDrawIndirectCountKHR(
11634 VkCommandBuffer commandBuffer,
11635 VkBuffer buffer,
11636 VkDeviceSize offset,
11637 VkBuffer countBuffer,
11638 VkDeviceSize countBufferOffset,
11639 u32 maxDrawCount,
11640 u32 stride) {
11641}
11642
11643@extension("VK_KHR_draw_indirect_count") // 170
11644cmd void vkCmdDrawIndexedIndirectCountKHR(
11645 VkCommandBuffer commandBuffer,
11646 VkBuffer buffer,
11647 VkDeviceSize offset,
11648 VkBuffer countBuffer,
11649 VkDeviceSize countBufferOffset,
11650 u32 maxDrawCount,
11651 u32 stride) {
11652}
11653
Jesse Hall8c954d32018-01-17 22:06:20 -080011654@extension("VK_EXT_external_memory_host") // 179
11655cmd VkResult vkGetMemoryHostPointerPropertiesEXT(
11656 VkDevice device,
11657 VkExternalMemoryHandleTypeFlagBits handleType,
11658 const void* pHostPointer,
11659 VkMemoryHostPointerPropertiesEXT* pMemoryHostPointerProperties) {
11660 return ?
11661}
11662
Jesse Hall72e6a132018-04-06 13:00:44 -070011663@extension("VK_AMD_buffer_marker") // 180
11664cmd void vkCmdWriteBufferMarkerAMD(
11665 VkCommandBuffer commandBuffer,
11666 VkPipelineStageFlagBits pipelineStage,
11667 VkBuffer dstBuffer,
11668 VkDeviceSize dstOffset,
11669 u32 marker) {
11670}
11671
Jesse Hallf47e8f82018-10-27 23:41:45 -070011672@extension("VK_EXT_calibrated_timestamps") // 185
11673cmd VkResult vkGetPhysicalDeviceCalibrateableTimeDomainsEXT(
11674 VkPhysicalDevice physicalDevice,
11675 u32* pTimeDomainCount,
11676 VkTimeDomainEXT* pTimeDomains) {
11677 return ?
11678}
11679
11680@extension("VK_EXT_calibrated_timestamps") // 185
11681cmd VkResult vkGetCalibratedTimestampsEXT(
11682 VkDevice device,
11683 u32 timestampCount,
11684 const VkCalibratedTimestampInfoEXT* pTimestampInfos,
11685 u64* pTimestamps,
11686 u64* pMaxDeviation) {
11687 return ?
11688}
11689
Jesse Hallb5297192018-09-22 20:52:13 +020011690@extension("VK_NV_mesh_shader") // 203
11691cmd void vkCmdDrawMeshTasksNV(
11692 VkCommandBuffer commandBuffer,
11693 u32 taskCount,
11694 u32 firstTask) {
11695}
11696
11697@extension("VK_NV_mesh_shader") // 203
11698cmd void vkCmdDrawMeshTasksIndirectNV(
11699 VkCommandBuffer commandBuffer,
11700 VkBuffer buffer,
11701 VkDeviceSize offset,
11702 u32 drawCount,
11703 u32 stride) {
11704}
11705
11706@extension("VK_NV_mesh_shader") // 203
11707cmd void vkCmdDrawMeshTasksIndirectCountNV(
11708 VkCommandBuffer commandBuffer,
11709 VkBuffer buffer,
11710 VkDeviceSize offset,
11711 VkBuffer countBuffer,
11712 VkDeviceSize countBufferOffset,
11713 u32 maxDrawCount,
11714 u32 stride) {
11715}
11716
11717@extension("VK_NV_scissor_exclusive") // 206
11718cmd void vkCmdSetExclusiveScissorNV(
11719 VkCommandBuffer commandBuffer,
11720 u32 firstExclusiveScissor,
11721 u32 exclusiveScissorCount,
11722 const VkRect2D* pExclusiveScissors) {
11723}
11724
Jesse Hall115df0c2018-07-30 12:00:59 -070011725@extension("VK_NV_device_diagnostic_checkpoints") // 207
11726cmd void vkCmdSetCheckpointNV(
11727 VkCommandBuffer commandBuffer,
11728 const void* pCheckpointMarker) {
11729}
11730
11731@extension("VK_NV_device_diagnostic_checkpoints") // 207
11732cmd void vkGetQueueCheckpointDataNV(
11733 VkQueue queue,
11734 u32* pCheckpointDataCount,
11735 VkCheckpointDataNV* pCheckpointData) {
11736}
11737
Jesse Hall497c46f2018-10-08 12:52:48 -070011738@extension("VK_FUCHSIA_imagepipe_surface") // 215
11739cmd VkResult vkCreateImagePipeSurfaceFUCHSIA(
11740 VkInstance instance,
11741 const VkImagePipeSurfaceCreateInfoFUCHSIA* pCreateInfo,
11742 const VkAllocationCallbacks* pAllocator,
11743 VkSurfaceKHR* pSurface) {
11744 return ?
11745}
11746
Jesse Hall115df0c2018-07-30 12:00:59 -070011747
Jesse Halld27f6aa2015-08-15 17:58:48 -070011748////////////////
11749// Validation //
11750////////////////
11751
11752extern void validate(string layerName, bool condition, string message)
11753
11754
11755/////////////////////////////
11756// Internal State Tracking //
11757/////////////////////////////
11758
11759StateObject State
11760
11761@internal class StateObject {
11762 // Dispatchable objects.
11763 map!(VkInstance, ref!InstanceObject) Instances
11764 map!(VkPhysicalDevice, ref!PhysicalDeviceObject) PhysicalDevices
11765 map!(VkDevice, ref!DeviceObject) Devices
11766 map!(VkQueue, ref!QueueObject) Queues
Jesse Hall3fbc8562015-11-29 22:10:52 -080011767 map!(VkCommandBuffer, ref!CommandBufferObject) CommandBuffers
Jesse Halld27f6aa2015-08-15 17:58:48 -070011768
11769 // Non-dispatchable objects.
11770 map!(VkDeviceMemory, ref!DeviceMemoryObject) DeviceMemories
11771 map!(VkBuffer, ref!BufferObject) Buffers
11772 map!(VkBufferView, ref!BufferViewObject) BufferViews
11773 map!(VkImage, ref!ImageObject) Images
11774 map!(VkImageView, ref!ImageViewObject) ImageViews
Jesse Halld27f6aa2015-08-15 17:58:48 -070011775 map!(VkShaderModule, ref!ShaderModuleObject) ShaderModules
Jesse Halld27f6aa2015-08-15 17:58:48 -070011776 map!(VkPipeline, ref!PipelineObject) Pipelines
11777 map!(VkPipelineLayout, ref!PipelineLayoutObject) PipelineLayouts
11778 map!(VkSampler, ref!SamplerObject) Samplers
11779 map!(VkDescriptorSet, ref!DescriptorSetObject) DescriptorSets
11780 map!(VkDescriptorSetLayout, ref!DescriptorSetLayoutObject) DescriptorSetLayouts
11781 map!(VkDescriptorPool, ref!DescriptorPoolObject) DescriptorPools
Jesse Halld27f6aa2015-08-15 17:58:48 -070011782 map!(VkFence, ref!FenceObject) Fences
11783 map!(VkSemaphore, ref!SemaphoreObject) Semaphores
11784 map!(VkEvent, ref!EventObject) Events
11785 map!(VkQueryPool, ref!QueryPoolObject) QueryPools
11786 map!(VkFramebuffer, ref!FramebufferObject) Framebuffers
11787 map!(VkRenderPass, ref!RenderPassObject) RenderPasses
11788 map!(VkPipelineCache, ref!PipelineCacheObject) PipelineCaches
Jesse Hall3fbc8562015-11-29 22:10:52 -080011789 map!(VkCommandPool, ref!CommandPoolObject) CommandPools
Jesse Hall1356b0d2015-11-23 17:24:58 -080011790 map!(VkSurfaceKHR, ref!SurfaceObject) Surfaces
Michael Lentine88594d72015-11-12 12:49:45 -080011791 map!(VkSwapchainKHR, ref!SwapchainObject) Swapchains
Jesse Halld27f6aa2015-08-15 17:58:48 -070011792}
11793
11794@internal class InstanceObject {
11795}
11796
11797@internal class PhysicalDeviceObject {
11798 VkInstance instance
11799}
11800
11801@internal class DeviceObject {
11802 VkPhysicalDevice physicalDevice
11803}
11804
11805@internal class QueueObject {
11806 VkDevice device
11807 VkQueueFlags flags
11808}
11809
Jesse Hall3fbc8562015-11-29 22:10:52 -080011810@internal class CommandBufferObject {
Jesse Halld27f6aa2015-08-15 17:58:48 -070011811 VkDevice device
11812 map!(u64, VkDeviceMemory) boundObjects
11813 VkQueueFlags queueFlags
11814}
11815
11816@internal class DeviceMemoryObject {
Jesse Hall3fbc8562015-11-29 22:10:52 -080011817 VkDevice device
11818 VkDeviceSize allocationSize
11819 map!(u64, VkDeviceSize) boundObjects
11820 map!(VkCommandBuffer, VkCommandBuffer) boundCommandBuffers
Jesse Halld27f6aa2015-08-15 17:58:48 -070011821}
11822
11823@internal class BufferObject {
11824 VkDevice device
Jesse Hall3fbc8562015-11-29 22:10:52 -080011825 VkDeviceMemory memory
11826 VkDeviceSize memoryOffset
Jesse Halld27f6aa2015-08-15 17:58:48 -070011827}
11828
11829@internal class BufferViewObject {
11830 VkDevice device
11831 VkBuffer buffer
11832}
11833
11834@internal class ImageObject {
11835 VkDevice device
Jesse Hall3fbc8562015-11-29 22:10:52 -080011836 VkDeviceMemory memory
11837 VkDeviceSize memoryOffset
Jesse Halld27f6aa2015-08-15 17:58:48 -070011838}
11839
11840@internal class ImageViewObject {
11841 VkDevice device
11842 VkImage image
11843}
11844
Jesse Halld27f6aa2015-08-15 17:58:48 -070011845@internal class ShaderObject {
11846 VkDevice device
11847}
11848
11849@internal class ShaderModuleObject {
11850 VkDevice device
11851}
11852
11853@internal class PipelineObject {
11854 VkDevice device
11855}
11856
11857@internal class PipelineLayoutObject {
11858 VkDevice device
11859}
11860
11861@internal class SamplerObject {
11862 VkDevice device
11863}
11864
11865@internal class DescriptorSetObject {
11866 VkDevice device
11867}
11868
11869@internal class DescriptorSetLayoutObject {
11870 VkDevice device
11871}
11872
11873@internal class DescriptorPoolObject {
11874 VkDevice device
11875}
11876
Jesse Halld27f6aa2015-08-15 17:58:48 -070011877@internal class FenceObject {
11878 VkDevice device
11879 bool signaled
11880}
11881
11882@internal class SemaphoreObject {
11883 VkDevice device
11884}
11885
11886@internal class EventObject {
11887 VkDevice device
11888}
11889
11890@internal class QueryPoolObject {
11891 VkDevice device
11892}
11893
11894@internal class FramebufferObject {
11895 VkDevice device
11896}
11897
11898@internal class RenderPassObject {
11899 VkDevice device
11900}
11901
11902@internal class PipelineCacheObject {
11903 VkDevice device
11904}
11905
Jesse Hall3fbc8562015-11-29 22:10:52 -080011906@internal class CommandPoolObject {
Jesse Halld27f6aa2015-08-15 17:58:48 -070011907 VkDevice device
11908}
11909
Jesse Hall1356b0d2015-11-23 17:24:58 -080011910@internal class SurfaceObject {
11911 VkInstance instance
11912}
11913
Michael Lentine88594d72015-11-12 12:49:45 -080011914@internal class SwapchainObject {
11915 VkDevice device
11916}
11917
Jesse Halld27f6aa2015-08-15 17:58:48 -070011918macro ref!InstanceObject GetInstance(VkInstance instance) {
11919 assert(instance in State.Instances)
11920 return State.Instances[instance]
11921}
11922
11923macro ref!PhysicalDeviceObject GetPhysicalDevice(VkPhysicalDevice physicalDevice) {
11924 assert(physicalDevice in State.PhysicalDevices)
11925 return State.PhysicalDevices[physicalDevice]
11926}
11927
11928macro ref!DeviceObject GetDevice(VkDevice device) {
11929 assert(device in State.Devices)
11930 return State.Devices[device]
11931}
11932
11933macro ref!QueueObject GetQueue(VkQueue queue) {
11934 assert(queue in State.Queues)
11935 return State.Queues[queue]
11936}
11937
Jesse Hall3fbc8562015-11-29 22:10:52 -080011938macro ref!CommandBufferObject GetCommandBuffer(VkCommandBuffer commandBuffer) {
11939 assert(commandBuffer in State.CommandBuffers)
11940 return State.CommandBuffers[commandBuffer]
Jesse Halld27f6aa2015-08-15 17:58:48 -070011941}
11942
Jesse Hall3fbc8562015-11-29 22:10:52 -080011943macro ref!DeviceMemoryObject GetDeviceMemory(VkDeviceMemory memory) {
11944 assert(memory in State.DeviceMemories)
11945 return State.DeviceMemories[memory]
Jesse Halld27f6aa2015-08-15 17:58:48 -070011946}
11947
11948macro ref!BufferObject GetBuffer(VkBuffer buffer) {
11949 assert(buffer in State.Buffers)
11950 return State.Buffers[buffer]
11951}
11952
11953macro ref!BufferViewObject GetBufferView(VkBufferView bufferView) {
11954 assert(bufferView in State.BufferViews)
11955 return State.BufferViews[bufferView]
11956}
11957
11958macro ref!ImageObject GetImage(VkImage image) {
11959 assert(image in State.Images)
11960 return State.Images[image]
11961}
11962
11963macro ref!ImageViewObject GetImageView(VkImageView imageView) {
11964 assert(imageView in State.ImageViews)
11965 return State.ImageViews[imageView]
11966}
11967
Jesse Halld27f6aa2015-08-15 17:58:48 -070011968macro ref!ShaderModuleObject GetShaderModule(VkShaderModule shaderModule) {
11969 assert(shaderModule in State.ShaderModules)
11970 return State.ShaderModules[shaderModule]
11971}
11972
11973macro ref!PipelineObject GetPipeline(VkPipeline pipeline) {
11974 assert(pipeline in State.Pipelines)
11975 return State.Pipelines[pipeline]
11976}
11977
11978macro ref!PipelineLayoutObject GetPipelineLayout(VkPipelineLayout pipelineLayout) {
11979 assert(pipelineLayout in State.PipelineLayouts)
11980 return State.PipelineLayouts[pipelineLayout]
11981}
11982
11983macro ref!SamplerObject GetSampler(VkSampler sampler) {
11984 assert(sampler in State.Samplers)
11985 return State.Samplers[sampler]
11986}
11987
11988macro ref!DescriptorSetObject GetDescriptorSet(VkDescriptorSet descriptorSet) {
11989 assert(descriptorSet in State.DescriptorSets)
11990 return State.DescriptorSets[descriptorSet]
11991}
11992
11993macro ref!DescriptorSetLayoutObject GetDescriptorSetLayout(VkDescriptorSetLayout descriptorSetLayout) {
11994 assert(descriptorSetLayout in State.DescriptorSetLayouts)
11995 return State.DescriptorSetLayouts[descriptorSetLayout]
11996}
11997
11998macro ref!DescriptorPoolObject GetDescriptorPool(VkDescriptorPool descriptorPool) {
11999 assert(descriptorPool in State.DescriptorPools)
12000 return State.DescriptorPools[descriptorPool]
12001}
12002
Jesse Halld27f6aa2015-08-15 17:58:48 -070012003macro ref!FenceObject GetFence(VkFence fence) {
12004 assert(fence in State.Fences)
12005 return State.Fences[fence]
12006}
12007
12008macro ref!SemaphoreObject GetSemaphore(VkSemaphore semaphore) {
12009 assert(semaphore in State.Semaphores)
12010 return State.Semaphores[semaphore]
12011}
12012
12013macro ref!EventObject GetEvent(VkEvent event) {
12014 assert(event in State.Events)
12015 return State.Events[event]
12016}
12017
12018macro ref!QueryPoolObject GetQueryPool(VkQueryPool queryPool) {
12019 assert(queryPool in State.QueryPools)
12020 return State.QueryPools[queryPool]
12021}
12022
12023macro ref!FramebufferObject GetFramebuffer(VkFramebuffer framebuffer) {
12024 assert(framebuffer in State.Framebuffers)
12025 return State.Framebuffers[framebuffer]
12026}
12027
12028macro ref!RenderPassObject GetRenderPass(VkRenderPass renderPass) {
12029 assert(renderPass in State.RenderPasses)
12030 return State.RenderPasses[renderPass]
12031}
12032
12033macro ref!PipelineCacheObject GetPipelineCache(VkPipelineCache pipelineCache) {
12034 assert(pipelineCache in State.PipelineCaches)
12035 return State.PipelineCaches[pipelineCache]
12036}
12037
Jesse Hall3fbc8562015-11-29 22:10:52 -080012038macro ref!CommandPoolObject GetCommandPool(VkCommandPool commandPool) {
12039 assert(commandPool in State.CommandPools)
12040 return State.CommandPools[commandPool]
Jesse Hallf09c6b12015-08-15 19:54:28 -070012041}
Michael Lentine88594d72015-11-12 12:49:45 -080012042
Jesse Hall1356b0d2015-11-23 17:24:58 -080012043macro ref!SurfaceObject GetSurface(VkSurfaceKHR surface) {
12044 assert(surface in State.Surfaces)
12045 return State.Surfaces[surface]
12046}
12047
Michael Lentine88594d72015-11-12 12:49:45 -080012048macro ref!SwapchainObject GetSwapchain(VkSwapchainKHR swapchain) {
12049 assert(swapchain in State.Swapchains)
12050 return State.Swapchains[swapchain]
12051}
Jesse Halld8bade02015-11-24 10:24:18 -080012052
12053macro VkQueueFlags AddQueueFlag(VkQueueFlags flags, VkQueueFlagBits bit) {
12054 return as!VkQueueFlags(as!u32(flags) | as!u32(bit))
12055}